"use strict"; function _react() { const data = _interopRequireDefault(require("react")); _react = function _react() { return data; }; return data; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react'), require('antd')) : typeof define === 'function' && define.amd ? define(['react', 'antd'], factory) : (global = global || self, global.tasks = factory(global.React$1, global.antd)); })(void 0, function (React$1, antd) { 'use strict'; var React$1__default = 'default' in React$1 ? React$1['default'] : React$1; function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; function unwrapExports(x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; } function createCommonjsModule(fn, module) { return module = { exports: {} }, fn(module, module.exports), module.exports; } var classnames = createCommonjsModule(function (module) { /*! Copyright (c) 2017 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ /* global define */ (function () { var hasOwn = {}.hasOwnProperty; function classNames() { var classes = []; for (var i = 0; i < arguments.length; i++) { var arg = arguments[i]; if (!arg) continue; var argType = typeof arg; if (argType === 'string' || argType === 'number') { classes.push(arg); } else if (Array.isArray(arg) && arg.length) { var inner = classNames.apply(null, arg); if (inner) { classes.push(inner); } } else if (argType === 'object') { for (var key in arg) { if (hasOwn.call(arg, key) && arg[key]) { classes.push(key); } } } } return classes.join(' '); } if (module.exports) { classNames.default = classNames; module.exports = classNames; } else { window.classNames = classNames; } })(); }); var tinycolor = createCommonjsModule(function (module) { // TinyColor v1.4.1 // https://github.com/bgrins/TinyColor // Brian Grinstead, MIT License (function (Math) { var trimLeft = /^\s+/, trimRight = /\s+$/, tinyCounter = 0, mathRound = Math.round, mathMin = Math.min, mathMax = Math.max, mathRandom = Math.random; function tinycolor(color, opts) { color = color ? color : ''; opts = opts || {}; // If input is already a tinycolor, return itself if (color instanceof tinycolor) { return color; } // If we are called as a function, call using new instead if (!(this instanceof tinycolor)) { return new tinycolor(color, opts); } var rgb = inputToRGB(color); this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = mathRound(100 * this._a) / 100, this._format = opts.format || rgb.format; this._gradientType = opts.gradientType; // Don't let the range of [0,255] come back in [0,1]. // Potentially lose a little bit of precision here, but will fix issues where // .5 gets interpreted as half of the total, instead of half of 1 // If it was supposed to be 128, this was already taken care of by `inputToRgb` if (this._r < 1) { this._r = mathRound(this._r); } if (this._g < 1) { this._g = mathRound(this._g); } if (this._b < 1) { this._b = mathRound(this._b); } this._ok = rgb.ok; this._tc_id = tinyCounter++; } tinycolor.prototype = { isDark: function isDark() { return this.getBrightness() < 128; }, isLight: function isLight() { return !this.isDark(); }, isValid: function isValid() { return this._ok; }, getOriginalInput: function getOriginalInput() { return this._originalInput; }, getFormat: function getFormat() { return this._format; }, getAlpha: function getAlpha() { return this._a; }, getBrightness: function getBrightness() { //http://www.w3.org/TR/AERT#color-contrast var rgb = this.toRgb(); return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000; }, getLuminance: function getLuminance() { //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef var rgb = this.toRgb(); var RsRGB, GsRGB, BsRGB, R, G, B; RsRGB = rgb.r / 255; GsRGB = rgb.g / 255; BsRGB = rgb.b / 255; if (RsRGB <= 0.03928) { R = RsRGB / 12.92; } else { R = Math.pow((RsRGB + 0.055) / 1.055, 2.4); } if (GsRGB <= 0.03928) { G = GsRGB / 12.92; } else { G = Math.pow((GsRGB + 0.055) / 1.055, 2.4); } if (BsRGB <= 0.03928) { B = BsRGB / 12.92; } else { B = Math.pow((BsRGB + 0.055) / 1.055, 2.4); } return 0.2126 * R + 0.7152 * G + 0.0722 * B; }, setAlpha: function setAlpha(value) { this._a = boundAlpha(value); this._roundA = mathRound(100 * this._a) / 100; return this; }, toHsv: function toHsv() { var hsv = rgbToHsv(this._r, this._g, this._b); return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a }; }, toHsvString: function toHsvString() { var hsv = rgbToHsv(this._r, this._g, this._b); var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100); return this._a == 1 ? "hsv(" + h + ", " + s + "%, " + v + "%)" : "hsva(" + h + ", " + s + "%, " + v + "%, " + this._roundA + ")"; }, toHsl: function toHsl() { var hsl = rgbToHsl(this._r, this._g, this._b); return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a }; }, toHslString: function toHslString() { var hsl = rgbToHsl(this._r, this._g, this._b); var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100); return this._a == 1 ? "hsl(" + h + ", " + s + "%, " + l + "%)" : "hsla(" + h + ", " + s + "%, " + l + "%, " + this._roundA + ")"; }, toHex: function toHex(allow3Char) { return rgbToHex(this._r, this._g, this._b, allow3Char); }, toHexString: function toHexString(allow3Char) { return '#' + this.toHex(allow3Char); }, toHex8: function toHex8(allow4Char) { return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char); }, toHex8String: function toHex8String(allow4Char) { return '#' + this.toHex8(allow4Char); }, toRgb: function toRgb() { return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a }; }, toRgbString: function toRgbString() { return this._a == 1 ? "rgb(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" : "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")"; }, toPercentageRgb: function toPercentageRgb() { return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a }; }, toPercentageRgbString: function toPercentageRgbString() { return this._a == 1 ? "rgb(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" : "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")"; }, toName: function toName() { if (this._a === 0) { return "transparent"; } if (this._a < 1) { return false; } return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false; }, toFilter: function toFilter(secondColor) { var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a); var secondHex8String = hex8String; var gradientType = this._gradientType ? "GradientType = 1, " : ""; if (secondColor) { var s = tinycolor(secondColor); secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a); } return "progid:DXImageTransform.Microsoft.gradient(" + gradientType + "startColorstr=" + hex8String + ",endColorstr=" + secondHex8String + ")"; }, toString: function toString(format) { var formatSet = !!format; format = format || this._format; var formattedString = false; var hasAlpha = this._a < 1 && this._a >= 0; var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "hex4" || format === "hex8" || format === "name"); if (needsAlphaFormat) { // Special case for "transparent", all other non-alpha formats // will return rgba when there is transparency. if (format === "name" && this._a === 0) { return this.toName(); } return this.toRgbString(); } if (format === "rgb") { formattedString = this.toRgbString(); } if (format === "prgb") { formattedString = this.toPercentageRgbString(); } if (format === "hex" || format === "hex6") { formattedString = this.toHexString(); } if (format === "hex3") { formattedString = this.toHexString(true); } if (format === "hex4") { formattedString = this.toHex8String(true); } if (format === "hex8") { formattedString = this.toHex8String(); } if (format === "name") { formattedString = this.toName(); } if (format === "hsl") { formattedString = this.toHslString(); } if (format === "hsv") { formattedString = this.toHsvString(); } return formattedString || this.toHexString(); }, clone: function clone() { return tinycolor(this.toString()); }, _applyModification: function _applyModification(fn, args) { var color = fn.apply(null, [this].concat([].slice.call(args))); this._r = color._r; this._g = color._g; this._b = color._b; this.setAlpha(color._a); return this; }, lighten: function lighten() { return this._applyModification(_lighten, arguments); }, brighten: function brighten() { return this._applyModification(_brighten, arguments); }, darken: function darken() { return this._applyModification(_darken, arguments); }, desaturate: function desaturate() { return this._applyModification(_desaturate, arguments); }, saturate: function saturate() { return this._applyModification(_saturate, arguments); }, greyscale: function greyscale() { return this._applyModification(_greyscale, arguments); }, spin: function spin() { return this._applyModification(_spin, arguments); }, _applyCombination: function _applyCombination(fn, args) { return fn.apply(null, [this].concat([].slice.call(args))); }, analogous: function analogous() { return this._applyCombination(_analogous, arguments); }, complement: function complement() { return this._applyCombination(_complement, arguments); }, monochromatic: function monochromatic() { return this._applyCombination(_monochromatic, arguments); }, splitcomplement: function splitcomplement() { return this._applyCombination(_splitcomplement, arguments); }, triad: function triad() { return this._applyCombination(_triad, arguments); }, tetrad: function tetrad() { return this._applyCombination(_tetrad, arguments); } }; // If input is an object, force 1 into "1.0" to handle ratios properly // String input requires "1.0" as input, so 1 will be treated as 1 tinycolor.fromRatio = function (color, opts) { if (typeof color == "object") { var newColor = {}; for (var i in color) { if (color.hasOwnProperty(i)) { if (i === "a") { newColor[i] = color[i]; } else { newColor[i] = convertToPercentage(color[i]); } } } color = newColor; } return tinycolor(color, opts); }; // Given a string or object, convert that input to RGB // Possible string inputs: // // "red" // "#f00" or "f00" // "#ff0000" or "ff0000" // "#ff000000" or "ff000000" // "rgb 255 0 0" or "rgb (255, 0, 0)" // "rgb 1.0 0 0" or "rgb (1, 0, 0)" // "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1" // "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1" // "hsl(0, 100%, 50%)" or "hsl 0 100% 50%" // "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1" // "hsv(0, 100%, 100%)" or "hsv 0 100% 100%" // function inputToRGB(color) { var rgb = { r: 0, g: 0, b: 0 }; var a = 1; var s = null; var v = null; var l = null; var ok = false; var format = false; if (typeof color == "string") { color = stringInputToObject(color); } if (typeof color == "object") { if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) { rgb = rgbToRgb(color.r, color.g, color.b); ok = true; format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb"; } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) { s = convertToPercentage(color.s); v = convertToPercentage(color.v); rgb = hsvToRgb(color.h, s, v); ok = true; format = "hsv"; } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) { s = convertToPercentage(color.s); l = convertToPercentage(color.l); rgb = hslToRgb(color.h, s, l); ok = true; format = "hsl"; } if (color.hasOwnProperty("a")) { a = color.a; } } a = boundAlpha(a); return { ok: ok, format: color.format || format, r: mathMin(255, mathMax(rgb.r, 0)), g: mathMin(255, mathMax(rgb.g, 0)), b: mathMin(255, mathMax(rgb.b, 0)), a: a }; } // Conversion Functions // -------------------- // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from: // // `rgbToRgb` // Handle bounds / percentage checking to conform to CSS color spec // // *Assumes:* r, g, b in [0, 255] or [0, 1] // *Returns:* { r, g, b } in [0, 255] function rgbToRgb(r, g, b) { return { r: bound01(r, 255) * 255, g: bound01(g, 255) * 255, b: bound01(b, 255) * 255 }; } // `rgbToHsl` // Converts an RGB color value to HSL. // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1] // *Returns:* { h, s, l } in [0,1] function rgbToHsl(r, g, b) { r = bound01(r, 255); g = bound01(g, 255); b = bound01(b, 255); var max = mathMax(r, g, b), min = mathMin(r, g, b); var h, s, l = (max + min) / 2; if (max == min) { h = s = 0; // achromatic } else { var d = max - min; s = l > 0.5 ? d / (2 - max - min) : d / (max + min); switch (max) { case r: h = (g - b) / d + (g < b ? 6 : 0); break; case g: h = (b - r) / d + 2; break; case b: h = (r - g) / d + 4; break; } h /= 6; } return { h: h, s: s, l: l }; } // `hslToRgb` // Converts an HSL color value to RGB. // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100] // *Returns:* { r, g, b } in the set [0, 255] function hslToRgb(h, s, l) { var r, g, b; h = bound01(h, 360); s = bound01(s, 100); l = bound01(l, 100); function hue2rgb(p, q, t) { if (t < 0) t += 1; if (t > 1) t -= 1; if (t < 1 / 6) return p + (q - p) * 6 * t; if (t < 1 / 2) return q; if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; return p; } if (s === 0) { r = g = b = l; // achromatic } else { var q = l < 0.5 ? l * (1 + s) : l + s - l * s; var p = 2 * l - q; r = hue2rgb(p, q, h + 1 / 3); g = hue2rgb(p, q, h); b = hue2rgb(p, q, h - 1 / 3); } return { r: r * 255, g: g * 255, b: b * 255 }; } // `rgbToHsv` // Converts an RGB color value to HSV // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1] // *Returns:* { h, s, v } in [0,1] function rgbToHsv(r, g, b) { r = bound01(r, 255); g = bound01(g, 255); b = bound01(b, 255); var max = mathMax(r, g, b), min = mathMin(r, g, b); var h, s, v = max; var d = max - min; s = max === 0 ? 0 : d / max; if (max == min) { h = 0; // achromatic } else { switch (max) { case r: h = (g - b) / d + (g < b ? 6 : 0); break; case g: h = (b - r) / d + 2; break; case b: h = (r - g) / d + 4; break; } h /= 6; } return { h: h, s: s, v: v }; } // `hsvToRgb` // Converts an HSV color value to RGB. // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100] // *Returns:* { r, g, b } in the set [0, 255] function hsvToRgb(h, s, v) { h = bound01(h, 360) * 6; s = bound01(s, 100); v = bound01(v, 100); var i = Math.floor(h), f = h - i, p = v * (1 - s), q = v * (1 - f * s), t = v * (1 - (1 - f) * s), mod = i % 6, r = [v, q, p, p, t, v][mod], g = [t, v, v, q, p, p][mod], b = [p, p, t, v, v, q][mod]; return { r: r * 255, g: g * 255, b: b * 255 }; } // `rgbToHex` // Converts an RGB color to hex // Assumes r, g, and b are contained in the set [0, 255] // Returns a 3 or 6 character hex function rgbToHex(r, g, b, allow3Char) { var hex = [pad2(mathRound(r).toString(16)), pad2(mathRound(g).toString(16)), pad2(mathRound(b).toString(16))]; // Return a 3 character hex if possible if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) { return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0); } return hex.join(""); } // `rgbaToHex` // Converts an RGBA color plus alpha transparency to hex // Assumes r, g, b are contained in the set [0, 255] and // a in [0, 1]. Returns a 4 or 8 character rgba hex function rgbaToHex(r, g, b, a, allow4Char) { var hex = [pad2(mathRound(r).toString(16)), pad2(mathRound(g).toString(16)), pad2(mathRound(b).toString(16)), pad2(convertDecimalToHex(a))]; // Return a 4 character hex if possible if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) { return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0); } return hex.join(""); } // `rgbaToArgbHex` // Converts an RGBA color to an ARGB Hex8 string // Rarely used, but required for "toFilter()" function rgbaToArgbHex(r, g, b, a) { var hex = [pad2(convertDecimalToHex(a)), pad2(mathRound(r).toString(16)), pad2(mathRound(g).toString(16)), pad2(mathRound(b).toString(16))]; return hex.join(""); } // `equals` // Can be called with any tinycolor input tinycolor.equals = function (color1, color2) { if (!color1 || !color2) { return false; } return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString(); }; tinycolor.random = function () { return tinycolor.fromRatio({ r: mathRandom(), g: mathRandom(), b: mathRandom() }); }; // Modification Functions // ---------------------- // Thanks to less.js for some of the basics here // function _desaturate(color, amount) { amount = amount === 0 ? 0 : amount || 10; var hsl = tinycolor(color).toHsl(); hsl.s -= amount / 100; hsl.s = clamp01(hsl.s); return tinycolor(hsl); } function _saturate(color, amount) { amount = amount === 0 ? 0 : amount || 10; var hsl = tinycolor(color).toHsl(); hsl.s += amount / 100; hsl.s = clamp01(hsl.s); return tinycolor(hsl); } function _greyscale(color) { return tinycolor(color).desaturate(100); } function _lighten(color, amount) { amount = amount === 0 ? 0 : amount || 10; var hsl = tinycolor(color).toHsl(); hsl.l += amount / 100; hsl.l = clamp01(hsl.l); return tinycolor(hsl); } function _brighten(color, amount) { amount = amount === 0 ? 0 : amount || 10; var rgb = tinycolor(color).toRgb(); rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * -(amount / 100)))); rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * -(amount / 100)))); rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * -(amount / 100)))); return tinycolor(rgb); } function _darken(color, amount) { amount = amount === 0 ? 0 : amount || 10; var hsl = tinycolor(color).toHsl(); hsl.l -= amount / 100; hsl.l = clamp01(hsl.l); return tinycolor(hsl); } // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue. // Values outside of this range will be wrapped into this range. function _spin(color, amount) { var hsl = tinycolor(color).toHsl(); var hue = (hsl.h + amount) % 360; hsl.h = hue < 0 ? 360 + hue : hue; return tinycolor(hsl); } // Combination Functions // --------------------- // Thanks to jQuery xColor for some of the ideas behind these // function _complement(color) { var hsl = tinycolor(color).toHsl(); hsl.h = (hsl.h + 180) % 360; return tinycolor(hsl); } function _triad(color) { var hsl = tinycolor(color).toHsl(); var h = hsl.h; return [tinycolor(color), tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }), tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })]; } function _tetrad(color) { var hsl = tinycolor(color).toHsl(); var h = hsl.h; return [tinycolor(color), tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }), tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }), tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })]; } function _splitcomplement(color) { var hsl = tinycolor(color).toHsl(); var h = hsl.h; return [tinycolor(color), tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }), tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l })]; } function _analogous(color, results, slices) { results = results || 6; slices = slices || 30; var hsl = tinycolor(color).toHsl(); var part = 360 / slices; var ret = [tinycolor(color)]; for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) { hsl.h = (hsl.h + part) % 360; ret.push(tinycolor(hsl)); } return ret; } function _monochromatic(color, results) { results = results || 6; var hsv = tinycolor(color).toHsv(); var h = hsv.h, s = hsv.s, v = hsv.v; var ret = []; var modification = 1 / results; while (results--) { ret.push(tinycolor({ h: h, s: s, v: v })); v = (v + modification) % 1; } return ret; } // Utility Functions // --------------------- tinycolor.mix = function (color1, color2, amount) { amount = amount === 0 ? 0 : amount || 50; var rgb1 = tinycolor(color1).toRgb(); var rgb2 = tinycolor(color2).toRgb(); var p = amount / 100; var rgba = { r: (rgb2.r - rgb1.r) * p + rgb1.r, g: (rgb2.g - rgb1.g) * p + rgb1.g, b: (rgb2.b - rgb1.b) * p + rgb1.b, a: (rgb2.a - rgb1.a) * p + rgb1.a }; return tinycolor(rgba); }; // Readability Functions // --------------------- // false // tinycolor.isReadable("#000", "#111",{level:"AA",size:"large"}) => false tinycolor.isReadable = function (color1, color2, wcag2) { var readability = tinycolor.readability(color1, color2); var wcag2Parms, out; out = false; wcag2Parms = validateWCAG2Parms(wcag2); switch (wcag2Parms.level + wcag2Parms.size) { case "AAsmall": case "AAAlarge": out = readability >= 4.5; break; case "AAlarge": out = readability >= 3; break; case "AAAsmall": out = readability >= 7; break; } return out; }; // `mostReadable` // Given a base color and a list of possible foreground or background // colors for that base, returns the most readable color. // Optionally returns Black or White if the most readable color is unreadable. // *Example* // tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:false}).toHexString(); // "#112255" // tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:true}).toHexString(); // "#ffffff" // tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"large"}).toHexString(); // "#faf3f3" // tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"small"}).toHexString(); // "#ffffff" tinycolor.mostReadable = function (baseColor, colorList, args) { var bestColor = null; var bestScore = 0; var readability; var includeFallbackColors, level, size; args = args || {}; includeFallbackColors = args.includeFallbackColors; level = args.level; size = args.size; for (var i = 0; i < colorList.length; i++) { readability = tinycolor.readability(baseColor, colorList[i]); if (readability > bestScore) { bestScore = readability; bestColor = tinycolor(colorList[i]); } } if (tinycolor.isReadable(baseColor, bestColor, { "level": level, "size": size }) || !includeFallbackColors) { return bestColor; } else { args.includeFallbackColors = false; return tinycolor.mostReadable(baseColor, ["#fff", "#000"], args); } }; // Big List of Colors // ------------------ // var names = tinycolor.names = { aliceblue: "f0f8ff", antiquewhite: "faebd7", aqua: "0ff", aquamarine: "7fffd4", azure: "f0ffff", beige: "f5f5dc", bisque: "ffe4c4", black: "000", blanchedalmond: "ffebcd", blue: "00f", blueviolet: "8a2be2", brown: "a52a2a", burlywood: "deb887", burntsienna: "ea7e5d", cadetblue: "5f9ea0", chartreuse: "7fff00", chocolate: "d2691e", coral: "ff7f50", cornflowerblue: "6495ed", cornsilk: "fff8dc", crimson: "dc143c", cyan: "0ff", darkblue: "00008b", darkcyan: "008b8b", darkgoldenrod: "b8860b", darkgray: "a9a9a9", darkgreen: "006400", darkgrey: "a9a9a9", darkkhaki: "bdb76b", darkmagenta: "8b008b", darkolivegreen: "556b2f", darkorange: "ff8c00", darkorchid: "9932cc", darkred: "8b0000", darksalmon: "e9967a", darkseagreen: "8fbc8f", darkslateblue: "483d8b", darkslategray: "2f4f4f", darkslategrey: "2f4f4f", darkturquoise: "00ced1", darkviolet: "9400d3", deeppink: "ff1493", deepskyblue: "00bfff", dimgray: "696969", dimgrey: "696969", dodgerblue: "1e90ff", firebrick: "b22222", floralwhite: "fffaf0", forestgreen: "228b22", fuchsia: "f0f", gainsboro: "dcdcdc", ghostwhite: "f8f8ff", gold: "ffd700", goldenrod: "daa520", gray: "808080", green: "008000", greenyellow: "adff2f", grey: "808080", honeydew: "f0fff0", hotpink: "ff69b4", indianred: "cd5c5c", indigo: "4b0082", ivory: "fffff0", khaki: "f0e68c", lavender: "e6e6fa", lavenderblush: "fff0f5", lawngreen: "7cfc00", lemonchiffon: "fffacd", lightblue: "add8e6", lightcoral: "f08080", lightcyan: "e0ffff", lightgoldenrodyellow: "fafad2", lightgray: "d3d3d3", lightgreen: "90ee90", lightgrey: "d3d3d3", lightpink: "ffb6c1", lightsalmon: "ffa07a", lightseagreen: "20b2aa", lightskyblue: "87cefa", lightslategray: "789", lightslategrey: "789", lightsteelblue: "b0c4de", lightyellow: "ffffe0", lime: "0f0", limegreen: "32cd32", linen: "faf0e6", magenta: "f0f", maroon: "800000", mediumaquamarine: "66cdaa", mediumblue: "0000cd", mediumorchid: "ba55d3", mediumpurple: "9370db", mediumseagreen: "3cb371", mediumslateblue: "7b68ee", mediumspringgreen: "00fa9a", mediumturquoise: "48d1cc", mediumvioletred: "c71585", midnightblue: "191970", mintcream: "f5fffa", mistyrose: "ffe4e1", moccasin: "ffe4b5", navajowhite: "ffdead", navy: "000080", oldlace: "fdf5e6", olive: "808000", olivedrab: "6b8e23", orange: "ffa500", orangered: "ff4500", orchid: "da70d6", palegoldenrod: "eee8aa", palegreen: "98fb98", paleturquoise: "afeeee", palevioletred: "db7093", papayawhip: "ffefd5", peachpuff: "ffdab9", peru: "cd853f", pink: "ffc0cb", plum: "dda0dd", powderblue: "b0e0e6", purple: "800080", rebeccapurple: "663399", red: "f00", rosybrown: "bc8f8f", royalblue: "4169e1", saddlebrown: "8b4513", salmon: "fa8072", sandybrown: "f4a460", seagreen: "2e8b57", seashell: "fff5ee", sienna: "a0522d", silver: "c0c0c0", skyblue: "87ceeb", slateblue: "6a5acd", slategray: "708090", slategrey: "708090", snow: "fffafa", springgreen: "00ff7f", steelblue: "4682b4", tan: "d2b48c", teal: "008080", thistle: "d8bfd8", tomato: "ff6347", turquoise: "40e0d0", violet: "ee82ee", wheat: "f5deb3", white: "fff", whitesmoke: "f5f5f5", yellow: "ff0", yellowgreen: "9acd32" }; // Make it easy to access colors via `hexNames[hex]` var hexNames = tinycolor.hexNames = flip(names); // Utilities // --------- // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }` function flip(o) { var flipped = {}; for (var i in o) { if (o.hasOwnProperty(i)) { flipped[o[i]] = i; } } return flipped; } // Return a valid alpha value [0,1] with all invalid values being set to 1 function boundAlpha(a) { a = parseFloat(a); if (isNaN(a) || a < 0 || a > 1) { a = 1; } return a; } // Take input from [0, n] and return it as [0, 1] function bound01(n, max) { if (isOnePointZero(n)) { n = "100%"; } var processPercent = isPercentage(n); n = mathMin(max, mathMax(0, parseFloat(n))); // Automatically convert percentage into number if (processPercent) { n = parseInt(n * max, 10) / 100; } // Handle floating point rounding errors if (Math.abs(n - max) < 0.000001) { return 1; } // Convert into [0, 1] range if it isn't already return n % max / parseFloat(max); } // Force a number between 0 and 1 function clamp01(val) { return mathMin(1, mathMax(0, val)); } // Parse a base-16 hex value into a base-10 integer function parseIntFromHex(val) { return parseInt(val, 16); } // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1 // function isOnePointZero(n) { return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1; } // Check to see if string passed in is a percentage function isPercentage(n) { return typeof n === "string" && n.indexOf('%') != -1; } // Force a hex value to have 2 characters function pad2(c) { return c.length == 1 ? '0' + c : '' + c; } // Replace a decimal with it's percentage value function convertToPercentage(n) { if (n <= 1) { n = n * 100 + "%"; } return n; } // Converts a decimal to a hex value function convertDecimalToHex(d) { return Math.round(parseFloat(d) * 255).toString(16); } // Converts a hex value to a decimal function convertHexToDecimal(h) { return parseIntFromHex(h) / 255; } var matchers = function () { // var CSS_INTEGER = "[-\\+]?\\d+%?"; // var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?"; // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome. var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")"; // Actual matching. // Parentheses and commas are optional, but not required. // Whitespace can take the place of commas or opening paren var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; return { CSS_UNIT: new RegExp(CSS_UNIT), rgb: new RegExp("rgb" + PERMISSIVE_MATCH3), rgba: new RegExp("rgba" + PERMISSIVE_MATCH4), hsl: new RegExp("hsl" + PERMISSIVE_MATCH3), hsla: new RegExp("hsla" + PERMISSIVE_MATCH4), hsv: new RegExp("hsv" + PERMISSIVE_MATCH3), hsva: new RegExp("hsva" + PERMISSIVE_MATCH4), hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/ }; }(); // `isValidCSSUnit` // Take in a single string / number and check to see if it looks like a CSS unit // (see `matchers` above for definition). function isValidCSSUnit(color) { return !!matchers.CSS_UNIT.exec(color); } // `stringInputToObject` // Permissive string parsing. Take in a number of formats, and output an object // based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}` function stringInputToObject(color) { color = color.replace(trimLeft, '').replace(trimRight, '').toLowerCase(); var named = false; if (names[color]) { color = names[color]; named = true; } else if (color == 'transparent') { return { r: 0, g: 0, b: 0, a: 0, format: "name" }; } // Try to match string input using regular expressions. // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360] // Just return an object and let the conversion functions handle that. // This way the result will be the same whether the tinycolor is initialized with string or object. var match; if (match = matchers.rgb.exec(color)) { return { r: match[1], g: match[2], b: match[3] }; } if (match = matchers.rgba.exec(color)) { return { r: match[1], g: match[2], b: match[3], a: match[4] }; } if (match = matchers.hsl.exec(color)) { return { h: match[1], s: match[2], l: match[3] }; } if (match = matchers.hsla.exec(color)) { return { h: match[1], s: match[2], l: match[3], a: match[4] }; } if (match = matchers.hsv.exec(color)) { return { h: match[1], s: match[2], v: match[3] }; } if (match = matchers.hsva.exec(color)) { return { h: match[1], s: match[2], v: match[3], a: match[4] }; } if (match = matchers.hex8.exec(color)) { return { r: parseIntFromHex(match[1]), g: parseIntFromHex(match[2]), b: parseIntFromHex(match[3]), a: convertHexToDecimal(match[4]), format: named ? "name" : "hex8" }; } if (match = matchers.hex6.exec(color)) { return { r: parseIntFromHex(match[1]), g: parseIntFromHex(match[2]), b: parseIntFromHex(match[3]), format: named ? "name" : "hex" }; } if (match = matchers.hex4.exec(color)) { return { r: parseIntFromHex(match[1] + '' + match[1]), g: parseIntFromHex(match[2] + '' + match[2]), b: parseIntFromHex(match[3] + '' + match[3]), a: convertHexToDecimal(match[4] + '' + match[4]), format: named ? "name" : "hex8" }; } if (match = matchers.hex3.exec(color)) { return { r: parseIntFromHex(match[1] + '' + match[1]), g: parseIntFromHex(match[2] + '' + match[2]), b: parseIntFromHex(match[3] + '' + match[3]), format: named ? "name" : "hex" }; } return false; } function validateWCAG2Parms(parms) { // return valid WCAG2 parms for isReadable. // If input parms are invalid, return {"level":"AA", "size":"small"} var level, size; parms = parms || { "level": "AA", "size": "small" }; level = (parms.level || "AA").toUpperCase(); size = (parms.size || "small").toLowerCase(); if (level !== "AA" && level !== "AAA") { level = "AA"; } if (size !== "small" && size !== "large") { size = "small"; } return { "level": level, "size": size }; } // Node: Export function if (module.exports) { module.exports = tinycolor; } // AMD/requirejs: Define the module else { window.tinycolor = tinycolor; } })(Math); }); var generate_1 = createCommonjsModule(function (module, exports) { var __importDefault = commonjsGlobal && commonjsGlobal.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var tinycolor2_1 = __importDefault(tinycolor); var hueStep = 2; // 色相阶梯 var saturationStep = 16; // 饱和度阶梯,浅色部分 var saturationStep2 = 5; // 饱和度阶梯,深色部分 var brightnessStep1 = 5; // 亮度阶梯,浅色部分 var brightnessStep2 = 15; // 亮度阶梯,深色部分 var lightColorCount = 5; // 浅色数量,主色上 var darkColorCount = 4; // 深色数量,主色下 function getHue(hsv, i, light) { var hue; // 根据色相不同,色相转向不同 if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) { hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i; } else { hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i; } if (hue < 0) { hue += 360; } else if (hue >= 360) { hue -= 360; } return hue; } function getSaturation(hsv, i, light) { // grey color don't change saturation if (hsv.h === 0 && hsv.s === 0) { return hsv.s; } var saturation; if (light) { saturation = Math.round(hsv.s * 100) - saturationStep * i; } else if (i === darkColorCount) { saturation = Math.round(hsv.s * 100) + saturationStep; } else { saturation = Math.round(hsv.s * 100) + saturationStep2 * i; } // 边界值修正 if (saturation > 100) { saturation = 100; } // 第一格的 s 限制在 6-10 之间 if (light && i === lightColorCount && saturation > 10) { saturation = 10; } if (saturation < 6) { saturation = 6; } return saturation; } function getValue(hsv, i, light) { if (light) { return Math.round(hsv.v * 100) + brightnessStep1 * i; } return Math.round(hsv.v * 100) - brightnessStep2 * i; } function generate(color) { var patterns = []; var pColor = tinycolor2_1.default(color); for (var i = lightColorCount; i > 0; i -= 1) { var hsv = pColor.toHsv(); var colorString = tinycolor2_1.default({ h: getHue(hsv, i, true), s: getSaturation(hsv, i, true), v: getValue(hsv, i, true) }).toHexString(); patterns.push(colorString); } patterns.push(pColor.toHexString()); for (var i = 1; i <= darkColorCount; i += 1) { var hsv = pColor.toHsv(); var colorString = tinycolor2_1.default({ h: getHue(hsv, i), s: getSaturation(hsv, i), v: getValue(hsv, i) }).toHexString(); patterns.push(colorString); } return patterns; } exports.default = generate; }); unwrapExports(generate_1); var lib = createCommonjsModule(function (module, exports) { var __importDefault = commonjsGlobal && commonjsGlobal.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var generate_1$1 = __importDefault(generate_1); exports.generate = generate_1$1.default; var presetPrimaryColors = { red: '#F5222D', volcano: '#FA541C', orange: '#FA8C16', gold: '#FAAD14', yellow: '#FADB14', lime: '#A0D911', green: '#52C41A', cyan: '#13C2C2', blue: '#1890FF', geekblue: '#2F54EB', purple: '#722ED1', magenta: '#EB2F96', grey: '#666666' }; exports.presetPrimaryColors = presetPrimaryColors; var presetPalettes = {}; exports.presetPalettes = presetPalettes; Object.keys(presetPrimaryColors).forEach(function (key) { presetPalettes[key] = generate_1$1.default(presetPrimaryColors[key]); presetPalettes[key].primary = presetPalettes[key][5]; }); var red = presetPalettes.red; exports.red = red; var volcano = presetPalettes.volcano; exports.volcano = volcano; var gold = presetPalettes.gold; exports.gold = gold; var orange = presetPalettes.orange; exports.orange = orange; var yellow = presetPalettes.yellow; exports.yellow = yellow; var lime = presetPalettes.lime; exports.lime = lime; var green = presetPalettes.green; exports.green = green; var cyan = presetPalettes.cyan; exports.cyan = cyan; var blue = presetPalettes.blue; exports.blue = blue; var geekblue = presetPalettes.geekblue; exports.geekblue = geekblue; var purple = presetPalettes.purple; exports.purple = purple; var magenta = presetPalettes.magenta; exports.magenta = magenta; var grey = presetPalettes.grey; exports.grey = grey; }); unwrapExports(lib); var lib_1 = lib.generate; var lib_2 = lib.presetPrimaryColors; var lib_3 = lib.presetPalettes; var lib_4 = lib.red; var lib_5 = lib.volcano; var lib_6 = lib.gold; var lib_7 = lib.orange; var lib_8 = lib.yellow; var lib_9 = lib.lime; var lib_10 = lib.green; var lib_11 = lib.cyan; var lib_12 = lib.blue; var lib_13 = lib.geekblue; var lib_14 = lib.purple; var lib_15 = lib.magenta; var lib_16 = lib.grey; /* eslint-disable no-console */ var warned = {}; function warning(valid, message) { // Support uglify if (!valid && console !== undefined) { console.error("Warning: ".concat(message)); } } function call(method, valid, message) { if (!valid && !warned[message]) { method(false, message); warned[message] = true; } } function warningOnce(valid, message) { call(warning, valid, message); } /* eslint-enable */ var containers = []; // will store container HTMLElement references var styleElements = []; // will store {prepend: HTMLElement, append: HTMLElement} var usage = 'insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).'; function insertCss(css, options) { options = options || {}; if (css === undefined) { throw new Error(usage); } var position = options.prepend === true ? 'prepend' : 'append'; var container = options.container !== undefined ? options.container : document.querySelector('head'); var containerId = containers.indexOf(container); // first time we see this container, create the necessary entries if (containerId === -1) { containerId = containers.push(container) - 1; styleElements[containerId] = {}; } // try to get the correponding container + position styleElement, create it otherwise var styleElement; if (styleElements[containerId] !== undefined && styleElements[containerId][position] !== undefined) { styleElement = styleElements[containerId][position]; } else { styleElement = styleElements[containerId][position] = createStyleElement(); if (position === 'prepend') { container.insertBefore(styleElement, container.childNodes[0]); } else { container.appendChild(styleElement); } } // strip potential UTF-8 BOM if css was read from a file if (css.charCodeAt(0) === 0xFEFF) { css = css.substr(1, css.length); } // actually add the stylesheet if (styleElement.styleSheet) { styleElement.styleSheet.cssText += css; } else { styleElement.textContent += css; } return styleElement; } function createStyleElement() { var styleElement = document.createElement('style'); styleElement.setAttribute('type', 'text/css'); return styleElement; } var insertCss_1 = insertCss; var insertCss_2 = insertCss; insertCss_1.insertCss = insertCss_2; function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function warning$1(valid, message) { warningOnce(valid, "[@ant-design/icons] ".concat(message)); } function isIconDefinition(target) { return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function'); } function normalizeAttrs() { var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return Object.keys(attrs).reduce(function (acc, key) { var val = attrs[key]; switch (key) { case 'class': acc.className = val; delete acc.class; break; default: acc[key] = val; } return acc; }, {}); } function generate(node, key, rootProps) { if (!rootProps) { return React$1__default.createElement(node.tag, _objectSpread({ key: key }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) { return generate(child, "".concat(key, "-").concat(node.tag, "-").concat(index)); })); } return React$1__default.createElement(node.tag, _objectSpread({ key: key }, normalizeAttrs(node.attrs), {}, rootProps), (node.children || []).map(function (child, index) { return generate(child, "".concat(key, "-").concat(node.tag, "-").concat(index)); })); } function getSecondaryColor(primaryColor) { // choose the second color return lib_1(primaryColor)[0]; } function normalizeTwoToneColors(twoToneColor) { if (!twoToneColor) { return []; } return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor]; } // These props make sure that the SVG behaviours like general text. var iconStyles = "\n.anticon {\n display: inline-block;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.anticon > * {\n line-height: 1;\n}\n\n.anticon svg {\n display: inline-block;\n}\n\n.anticon::before {\n display: none;\n}\n\n.anticon .anticon-icon {\n display: block;\n}\n\n.anticon[tabindex] {\n cursor: pointer;\n}\n\n.anticon-spin::before,\n.anticon-spin {\n display: inline-block;\n -webkit-animation: loadingCircle 1s infinite linear;\n animation: loadingCircle 1s infinite linear;\n}\n\n@-webkit-keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n"; var cssInjectedFlag = false; var useInsertStyles = function useInsertStyles() { var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles; React$1.useEffect(function () { if (!cssInjectedFlag) { insertCss_2(styleStr, { prepend: true }); cssInjectedFlag = true; } }, []); }; function _objectWithoutProperties$1(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$1(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose$1(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty$2(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var twoToneColorPalette = { primaryColor: '#333', secondaryColor: '#E6E6E6', calculated: false }; function setTwoToneColors(_ref) { var primaryColor = _ref.primaryColor, secondaryColor = _ref.secondaryColor; twoToneColorPalette.primaryColor = primaryColor; twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor); twoToneColorPalette.calculated = !!secondaryColor; } function getTwoToneColors() { return _objectSpread$1({}, twoToneColorPalette); } var IconBase = function IconBase(props) { var icon = props.icon, className = props.className, onClick = props.onClick, style = props.style, primaryColor = props.primaryColor, secondaryColor = props.secondaryColor, restProps = _objectWithoutProperties$1(props, ["icon", "className", "onClick", "style", "primaryColor", "secondaryColor"]); var colors = twoToneColorPalette; if (primaryColor) { colors = { primaryColor: primaryColor, secondaryColor: secondaryColor || getSecondaryColor(primaryColor) }; } useInsertStyles(); warning$1(isIconDefinition(icon), "icon should be icon definiton, but got ".concat(icon)); if (!isIconDefinition(icon)) { return null; } var target = icon; if (target && typeof target.icon === 'function') { target = _objectSpread$1({}, target, { icon: target.icon(colors.primaryColor, colors.secondaryColor) }); } return generate(target.icon, "svg-".concat(target.name), _objectSpread$1({ className: className, onClick: onClick, style: style, 'data-icon': target.name, width: '1em', height: '1em', fill: 'currentColor', 'aria-hidden': 'true' }, restProps)); }; IconBase.displayName = 'IconReact'; IconBase.getTwoToneColors = getTwoToneColors; IconBase.setTwoToneColors = setTwoToneColors; function _slicedToArray$1(arr, i) { return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _nonIterableRest$1(); } function _nonIterableRest$1() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } function _iterableToArrayLimit$1(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles$1(arr) { if (Array.isArray(arr)) return arr; } function setTwoToneColor(twoToneColor) { var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor), _normalizeTwoToneColo2 = _slicedToArray$1(_normalizeTwoToneColo, 2), primaryColor = _normalizeTwoToneColo2[0], secondaryColor = _normalizeTwoToneColo2[1]; return IconBase.setTwoToneColors({ primaryColor: primaryColor, secondaryColor: secondaryColor }); } function getTwoToneColor() { var colors = IconBase.getTwoToneColors(); if (!colors.calculated) { return colors.primaryColor; } return [colors.primaryColor, colors.secondaryColor]; } function _slicedToArray$2(arr, i) { return _arrayWithHoles$2(arr) || _iterableToArrayLimit$2(arr, i) || _nonIterableRest$2(); } function _nonIterableRest$2() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } function _iterableToArrayLimit$2(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles$2(arr) { if (Array.isArray(arr)) return arr; } function _defineProperty$3(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties$2(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$2(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose$2(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } // should move it to antd main repo? setTwoToneColor('#1890ff'); var Icon = React$1__default.forwardRef(function (props, ref) { var className = props.className, icon = props.icon, spin = props.spin, rotate = props.rotate, tabIndex = props.tabIndex, onClick = props.onClick, twoToneColor = props.twoToneColor, restProps = _objectWithoutProperties$2(props, ["className", "icon", "spin", "rotate", "tabIndex", "onClick", "twoToneColor"]); var classString = classnames('anticon', _defineProperty$3({}, "anticon-".concat(icon.name), Boolean(icon.name)), className); var svgClassString = classnames({ 'anticon-spin': !!spin || icon.name === 'loading' }); var iconTabIndex = tabIndex; if (iconTabIndex === undefined && onClick) { iconTabIndex = -1; } var svgStyle = rotate ? { msTransform: "rotate(".concat(rotate, "deg)"), transform: "rotate(".concat(rotate, "deg)") } : undefined; var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor), _normalizeTwoToneColo2 = _slicedToArray$2(_normalizeTwoToneColo, 2), primaryColor = _normalizeTwoToneColo2[0], secondaryColor = _normalizeTwoToneColo2[1]; return React$1__default.createElement("span", Object.assign({ role: "img", "aria-label": icon.name }, restProps, { ref: ref, tabIndex: iconTabIndex, onClick: onClick, className: classString }), React$1__default.createElement(IconBase, { className: svgClassString, icon: icon, primaryColor: primaryColor, secondaryColor: secondaryColor, style: svgStyle })); }); Icon.displayName = 'AntdIcon'; Icon.getTwoToneColor = getTwoToneColor; Icon.setTwoToneColor = setTwoToneColor; // This icon file is generated automatically. // tslint:disable var CaretRightOutlined = { "name": "caret-right", "theme": "outlined", "icon": { "tag": "svg", "attrs": { "viewBox": "0 0 1024 1024", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z" } }] } }; // GENERATE BY ./scripts/generate.ts var CaretRightOutlined$1 = function CaretRightOutlined$1(props, ref) { return React$1__default.createElement(Icon, Object.assign({}, props, { ref: ref, icon: CaretRightOutlined })); }; CaretRightOutlined$1.displayName = 'CaretRightOutlined'; var CaretRightOutlined$2 = React$1__default.forwardRef(CaretRightOutlined$1); // This icon file is generated automatically. // tslint:disable var PauseOutlined = { "name": "pause", "theme": "outlined", "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M304 176h80v672h-80zm408 0h-64c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8z" } }] } }; // GENERATE BY ./scripts/generate.ts var PauseOutlined$1 = function PauseOutlined$1(props, ref) { return React$1__default.createElement(Icon, Object.assign({}, props, { ref: ref, icon: PauseOutlined })); }; PauseOutlined$1.displayName = 'PauseOutlined'; var PauseOutlined$2 = React$1__default.forwardRef(PauseOutlined$1); // This icon file is generated automatically. // tslint:disable var ReloadOutlined = { "name": "reload", "theme": "outlined", "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z" } }] } }; // GENERATE BY ./scripts/generate.ts var ReloadOutlined$1 = function ReloadOutlined$1(props, ref) { return React$1__default.createElement(Icon, Object.assign({}, props, { ref: ref, icon: ReloadOutlined })); }; ReloadOutlined$1.displayName = 'ReloadOutlined'; var ReloadOutlined$2 = React$1__default.forwardRef(ReloadOutlined$1); // This icon file is generated automatically. // tslint:disable var SettingOutlined = { "name": "setting", "theme": "outlined", "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z" } }] } }; // GENERATE BY ./scripts/generate.ts var SettingOutlined$1 = function SettingOutlined$1(props, ref) { return React$1__default.createElement(Icon, Object.assign({}, props, { ref: ref, icon: SettingOutlined })); }; SettingOutlined$1.displayName = 'SettingOutlined'; var SettingOutlined$2 = React$1__default.forwardRef(SettingOutlined$1); function styleInject(css, ref) { if (ref === void 0) ref = {}; var insertAt = ref.insertAt; if (!css || typeof document === 'undefined') { return; } var head = document.head || document.getElementsByTagName('head')[0]; var style = document.createElement('style'); style.type = 'text/css'; if (insertAt === 'top') { if (head.firstChild) { head.insertBefore(style, head.firstChild); } else { head.appendChild(style); } } else { head.appendChild(style); } if (style.styleSheet) { style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); } } var css = ".ui-module_container__DScfm {\n width: 100%;\n padding: 0 20px;\n}\n.ui-module_section__2jFii {\n padding: 16px 24px 24px 0;\n height: 100%;\n overflow: hidden;\n}\n.ui-module_actions__205pP {\n margin: 0 auto 24px;\n}\n.ui-module_output__1wVJU {\n display: inline-block;\n}\n.ui-module_output__1wVJU:hover {\n color: #fff;\n}\n.ui-module_row__qWINA {\n height: 64px;\n line-height: 64px;\n}\n.ui-module_normal__2o9yT {\n overflow: hidden;\n}\n.ui-module_buttonGroup__3pz-9 > button {\n margin-right: 8px;\n}\n.ui-module_runningText__T08f7 {\n margin-left: 8px;\n}\n.ui-module_formatGroup__224Py {\n text-align: right;\n}\n.ui-module_logContainer__2_6Z_ {\n margin-top: 12px;\n height: calc(100% - 68px);\n overflow: hidden;\n}\n.ui-module_title__1zRD4 {\n font-size: 16px;\n color: rgba(255, 255, 255, 0.85);\n line-height: 24px;\n margin-bottom: 8px;\n}\n.ui-module_confirmMessage__3kg7k {\n margin-bottom: 24px;\n}\n.ui-module_modalContainer__VOWNM .ant-form-vertical .ant-form-item-label {\n padding: 0 0 12px;\n}\n.ui-module_modleLableTitle__2WAru {\n font-size: 14px;\n color: rgba(255, 255, 255, 0.85);\n line-height: 22px;\n margin-bottom: 2px;\n}\n.ui-module_modleLableDesc__1WXRA {\n font-size: 14px;\n color: rgba(255, 255, 255, 0.45);\n line-height: 22px;\n}\n.ui-module_modleLablelDescIcon__1KJla {\n display: inline-block;\n margin-left: 8px;\n}\n.ui-module_runningInfo__268DU {\n display: inline-block;\n margin-left: 8px;\n}\n"; var styles = { "container": "ui-module_container__DScfm", "section": "ui-module_section__2jFii", "actions": "ui-module_actions__205pP", "output": "ui-module_output__1wVJU", "row": "ui-module_row__qWINA", "normal": "ui-module_normal__2o9yT", "buttonGroup": "ui-module_buttonGroup__3pz-9", "runningText": "ui-module_runningText__T08f7", "formatGroup": "ui-module_formatGroup__224Py", "logContainer": "ui-module_logContainer__2_6Z_", "title": "ui-module_title__1zRD4", "confirmMessage": "ui-module_confirmMessage__3kg7k", "modalContainer": "ui-module_modalContainer__VOWNM", "modleLableTitle": "ui-module_modleLableTitle__2WAru", "modleLableDesc": "ui-module_modleLableDesc__1WXRA", "modleLablelDescIcon": "ui-module_modleLablelDescIcon__1KJla", "runningInfo": "ui-module_runningInfo__268DU" }; styleInject(css); var TaskState; (function (TaskState) { TaskState["INIT"] = "INIT"; TaskState["ING"] = "ING"; TaskState["SUCCESS"] = "SUCCESS"; TaskState["FAIL"] = "FAIL"; })(TaskState || (TaskState = {})); var TaskType; (function (TaskType) { TaskType["BUILD"] = "BUILD"; TaskType["DEV"] = "DEV"; TaskType["TEST"] = "TEST"; TaskType["LINT"] = "LINT"; TaskType["INSTALL"] = "INSTALL"; })(TaskType || (TaskType = {})); var TaskEventType; (function (TaskEventType) { TaskEventType["STD_OUT_DATA"] = "STD_OUT_DATA"; TaskEventType["STD_ERR_DATA"] = "STD_ERR_DATA"; TaskEventType["STATE_EVENT"] = "STATE_EVENT"; })(TaskEventType || (TaskEventType = {})); var LogType; (function (LogType) { LogType["STD_OUT"] = "STD_OUT"; LogType["STD_ERR"] = "STD_ERR"; })(LogType || (LogType = {})); var NpmClient; (function (NpmClient) { NpmClient["tnpm"] = "tnpm"; NpmClient["cnpm"] = "cnpm"; NpmClient["npm"] = "npm"; NpmClient["ayarn"] = "ayarn"; NpmClient["tyarn"] = "tyarn"; NpmClient["yarn"] = "yarn"; NpmClient["pnpm"] = "pnpm"; })(NpmClient || (NpmClient = {})); var callRemote; var listenRemote; var notify; var intl; function initApiToGloal(api) { callRemote = api.callRemote; // eslint-disable-line listenRemote = api.listenRemote; notify = api.notify; intl = api.intl; } var TriggerState; (function (TriggerState) { TriggerState["SUCCESS"] = "SUCCESS"; TriggerState["FAIL"] = "FAIL"; })(TriggerState || (TriggerState = {})); var runTask = /*#__PURE__*/function () { var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(taskType) { var args, env, result, errMsg, triggerState, _args = arguments; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: args = _args.length > 1 && _args[1] !== undefined ? _args[1] : {}; env = _args.length > 2 ? _args[2] : undefined; result = {}; errMsg = ''; triggerState = TriggerState.SUCCESS; _context.prev = 5; _context.next = 8; return callRemote({ type: 'tasks/run', payload: { type: taskType, args: args, env: env ? env : {} } }); case 8: result = _context.sent; _context.next = 15; break; case 11: _context.prev = 11; _context.t0 = _context["catch"](5); errMsg = _context.t0.message; triggerState = TriggerState.FAIL; case 15: return _context.abrupt("return", { triggerState: triggerState, result: result, errMsg: errMsg }); case 16: case "end": return _context.stop(); } } }, _callee, null, [[5, 11]]); })); return function runTask(_x) { return _ref.apply(this, arguments); }; }(); var cancelTask = /*#__PURE__*/function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(taskType) { var result, errMsg, triggerState; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: result = {}; errMsg = ''; triggerState = TriggerState.SUCCESS; _context2.prev = 3; _context2.next = 6; return callRemote({ type: 'tasks/cancel', payload: { type: taskType } }); case 6: result = _context2.sent; _context2.next = 13; break; case 9: _context2.prev = 9; _context2.t0 = _context2["catch"](3); errMsg = _context2.t0.stack; triggerState = TriggerState.FAIL; case 13: return _context2.abrupt("return", { triggerState: triggerState, result: result, errMsg: errMsg }); case 14: case "end": return _context2.stop(); } } }, _callee2, null, [[3, 9]]); })); return function cancelTask(_x2) { return _ref2.apply(this, arguments); }; }(); var getTaskDetail = /*#__PURE__*/function () { var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(taskType) { var log, dbPath, _args3 = arguments; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: log = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : true; dbPath = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : ''; _context3.next = 4; return callRemote({ type: 'tasks/detail', payload: { type: taskType, log: log, dbPath: dbPath } }); case 4: return _context3.abrupt("return", _context3.sent); case 5: case "end": return _context3.stop(); } } }, _callee3); })); return function getTaskDetail(_x3) { return _ref3.apply(this, arguments); }; }(); var TERMINAL_MAPS = {}; var getTerminalRefIns = function getTerminalRefIns(taskType, key) { if (!key || !taskType) { return null; } if (TERMINAL_MAPS[key]) { return TERMINAL_MAPS[key][taskType]; } }; var setTerminalRefIns = function setTerminalRefIns(taskType, key, ins) { TERMINAL_MAPS[key] = _defineProperty({}, taskType, ins); }; // function isChunkParsed(chunk) { // return (typeof chunk.parsedSize === 'number'); // } function walkModules() { var modules = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var cb = arguments.length > 1 ? arguments[1] : undefined; var _iterator = _createForOfIteratorHelper(modules), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var module = _step.value; if (cb(module) === false) return false; if (module.groups) { if (walkModules(module.groups, cb) === false) { return false; } } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } return false; } // function elementIsOutside(elem, container) { // return !(elem === container || container.contains(elem)); // } var Analyze = /*#__PURE__*/function () { function Analyze(chartData) { _classCallCheck(this, Analyze); this.cid = 0; this.allChunks = null; this.selectedChunks = null; this.cache = { visibleChunks: null }; this.setModules(chartData); } _createClass(Analyze, [{ key: "setModules", value: function setModules(modules) { var _this = this; walkModules(modules, function (module) { module.cid = _this.cid++; }); this.allChunks = modules; this.selectedChunks = this.allChunks; } }, { key: "visibleChunks", get: function get() { return this.allChunks; } }, { key: "activeSize", get: function get() { return 'parsedSize'; } }]); return Analyze; }(); // var _TaskType$BUILD, _TaskType$DEV, _TaskType$TEST, _TaskType$LINT, _TaskType$INSTALL, _NOTICE_MESSAGE_MAP; var NOTICE_MESSAGE_MAP = (_NOTICE_MESSAGE_MAP = {}, _defineProperty(_NOTICE_MESSAGE_MAP, TaskType.BUILD, (_TaskType$BUILD = {}, _defineProperty(_TaskType$BUILD, TaskState.SUCCESS, { title: 'org.umi.ui.tasks.notify.build.success.title', message: 'org.umi.ui.tasks.notify.build.success.message' }), _defineProperty(_TaskType$BUILD, TaskState.FAIL, { title: 'org.umi.ui.tasks.notify.build.fail.title', message: 'org.umi.ui.tasks.notify.build.fail.message' }), _TaskType$BUILD)), _defineProperty(_NOTICE_MESSAGE_MAP, TaskType.DEV, (_TaskType$DEV = {}, _defineProperty(_TaskType$DEV, TaskState.SUCCESS, { title: 'org.umi.ui.tasks.notify.dev.success.title', message: 'org.umi.ui.tasks.notify.dev.success.message' }), _defineProperty(_TaskType$DEV, TaskState.FAIL, { title: 'org.umi.ui.tasks.notify.dev.fail.title', message: 'org.umi.ui.tasks.notify.dev.fail.message' }), _TaskType$DEV)), _defineProperty(_NOTICE_MESSAGE_MAP, TaskType.TEST, (_TaskType$TEST = {}, _defineProperty(_TaskType$TEST, TaskState.SUCCESS, { title: 'org.umi.ui.tasks.notify.test.success.title', message: 'org.umi.ui.tasks.notify.test.success.message' }), _defineProperty(_TaskType$TEST, TaskState.FAIL, { title: 'org.umi.ui.tasks.notify.test.fail.title', message: 'org.umi.ui.tasks.notify.test.fail.message' }), _TaskType$TEST)), _defineProperty(_NOTICE_MESSAGE_MAP, TaskType.LINT, (_TaskType$LINT = {}, _defineProperty(_TaskType$LINT, TaskState.SUCCESS, { title: 'org.umi.ui.tasks.notify.lint.success.title', message: 'org.umi.ui.tasks.notify.lint.success.message' }), _defineProperty(_TaskType$LINT, TaskState.FAIL, { title: 'org.umi.ui.tasks.notify.lint.fail.title', message: 'org.umi.ui.tasks.notify.lint.fail.message' }), _TaskType$LINT)), _defineProperty(_NOTICE_MESSAGE_MAP, TaskType.INSTALL, (_TaskType$INSTALL = {}, _defineProperty(_TaskType$INSTALL, TaskState.SUCCESS, { title: 'org.umi.ui.tasks.notify.install.success.title', message: 'org.umi.ui.tasks.notify.install.success.message' }), _defineProperty(_TaskType$INSTALL, TaskState.FAIL, { title: 'org.umi.ui.tasks.notify.install.fail.title', message: 'org.umi.ui.tasks.notify.install.fail.message' }), _TaskType$INSTALL)), _NOTICE_MESSAGE_MAP); function getNoticeMessage(taskType, state) { return _objectSpread2({ type: state === TaskState.SUCCESS ? 'success' : 'error' }, NOTICE_MESSAGE_MAP[taskType][state]); } var useInit = function useInit(dep) { var _useState = React$1.useState(false), _useState2 = _slicedToArray(_useState, 2), init = _useState2[0], setInit = _useState2[1]; React$1.useEffect(function () { if (init || Object.keys(dep).length === 0) { return; } setInit(true); }, [dep]); return [init]; }; /** * Carrot Search FoamTree HTML5 (demo variant) * v3.4.5, 4fa198d722d767b68d0409e88290ea6de98d1eaa/4fa198d7, build FOAMTREE-SOFTWARE4-DIST-39, Jul 26, 2017 * * Carrot Search confidential. * Copyright 2002-2017, Carrot Search s.c, All Rights Reserved. */ (function () { var v = function () { var a = window.navigator.userAgent, l; try { window.localStorage.setItem('ftap5caavc', 'ftap5caavc'), window.localStorage.removeItem('ftap5caavc'), l = !0; } catch (k) { l = !1; } return { of: function of() { return /webkit/i.test(a); }, mf: function mf() { return /Mac/.test(a); }, lf: function lf() { return /iPad|iPod|iPhone/.test(a); }, hf: function hf() { return /Android/.test(a); }, ii: function ii() { return 'ontouchstart' in window || !!window.DocumentTouch && document instanceof window.DocumentTouch; }, hi: function hi() { return l; }, gi: function gi() { var a = document.createElement('canvas'); return !(!a.getContext || !a.getContext('2d')); }, Dd: function Dd(a, d) { return [].forEach && v.gi() ? a && a() : d && d(); } }; }(); var aa = function () { function a() { return window.performance && (window.performance.now || window.performance.mozNow || window.performance.msNow || window.performance.oNow || window.performance.webkitNow) || Date.now; } var l = a(); return { create: function create() { return { now: function () { var k = a(); return function () { return k.call(window.performance); }; }() }; }, now: function now() { return l.call(window.performance); } }; }(); function da() { function a() { if (!c) throw 'AF0'; var a = aa.now(); 0 !== g && (k.Kd = a - g); g = a; d = d.filter(function (a) { return null !== a; }); k.frames++; for (var e = 0; e < d.length; e++) { var b = d[e]; null !== b && (!0 === b.ye.call(b.Yg) ? d[e] = null : D.Sc(b.repeat) && (b.repeat = b.repeat - 1, 0 >= b.repeat && (d[e] = null))); } d = d.filter(function (a) { return null !== a; }); c = !1; l(); a = aa.now() - a; 0 !== a && (k.Jd = a); k.totalTime += a; k.Oe = 1e3 * k.frames / k.totalTime; g = 0 === d.length ? 0 : aa.now(); } function l() { 0 < d.length && !c && (c = !0, f(a)); } var k = this.rg = { frames: 0, totalTime: 0, Jd: 0, Kd: 0, Oe: 0 }; fa = k; var f = function () { return v.lf() ? function (a) { window.setTimeout(a, 0); } : window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function () { var a = aa.create(); return function (e) { var b = 0; window.setTimeout(function () { var d = a.now(); e(); b = a.now() - d; }, 16 > b ? 16 - b : 0); }; }(); }(), d = [], c = !1, g = 0; this.repeat = function (a, e, b) { this.cancel(a); d.push({ ye: a, Yg: b, repeat: e }); l(); }; this.d = function (a, e) { this.repeat(a, 1, e); }; this.cancel = function (a) { for (var e = 0; e < d.length; e++) { var b = d[e]; null !== b && b.ye === a && (d[e] = null); } }; this.k = function () { d = []; }; } var fa; var ga = v.Dd(function () { function a() { this.buffer = []; this.oa = 0; this.Gc = D.extend({}, g); } function l(a) { return function () { var e, b = this.buffer, d = this.oa; b[d++] = 'call'; b[d++] = a; b[d++] = arguments.length; for (e = 0; e < arguments.length; e++) { b[d++] = arguments[e]; } this.oa = d; }; } function k(a) { return function () { return d[a].apply(d, arguments); }; } var f = document.createElement('canvas'); f.width = 1; f.height = 1; var d = f.getContext('2d'), f = ['font'], c = 'fillStyle globalAlpha globalCompositeOperation lineCap lineDashOffset lineJoin lineWidth miterLimit shadowBlur shadowColor shadowOffsetX shadowOffsetY strokeStyle textAlign textBaseline'.split(' '), g = {}; c.concat(f).forEach(function (a) { g[a] = d[a]; }); a.prototype.clear = function () { this.oa = 0; }; a.prototype.Na = function () { return 0 === this.oa; }; a.prototype.Ta = function (a) { function e(a, b, e) { for (var d = 0, c = a.oa, f = a.buffer; d < e;) { f[c++] = b[d++]; } a.oa = c; } function b(a, b, e, d) { for (var c = 0; c < e;) { switch (b[c++]) { case 'set': a[b[c++]] = b[c++]; break; case 'setGlobalAlpha': a[b[c++]] = b[c++] * d; break; case 'call': var f = b[c++]; switch (b[c++]) { case 0: a[f](); break; case 1: a[f](b[c++]); break; case 2: a[f](b[c++], b[c++]); break; case 3: a[f](b[c++], b[c++], b[c++]); break; case 4: a[f](b[c++], b[c++], b[c++], b[c++]); break; case 5: a[f](b[c++], b[c++], b[c++], b[c++], b[c++]); break; case 6: a[f](b[c++], b[c++], b[c++], b[c++], b[c++], b[c++]); break; case 7: a[f](b[c++], b[c++], b[c++], b[c++], b[c++], b[c++], b[c++]); break; case 8: a[f](b[c++], b[c++], b[c++], b[c++], b[c++], b[c++], b[c++], b[c++]); break; case 9: a[f](b[c++], b[c++], b[c++], b[c++], b[c++], b[c++], b[c++], b[c++], b[c++]); break; default: throw 'CB0'; } } } } a instanceof ga ? e(a, this.buffer, this.oa) : b(a, this.buffer, this.oa, D.B(a.globalAlpha, 1)); }; a.prototype.replay = a.prototype.Ta; a.prototype.d = function () { return new a(); }; a.prototype.scratch = a.prototype.d; 'arc arcTo beginPath bezierCurveTo clearRect clip closePath drawImage fill fillRect fillText lineTo moveTo putImageData quadraticCurveTo rect rotate scale setLineDash setTransform stroke strokeRect strokeText transform translate'.split(' ').forEach(function (c) { a.prototype[c] = l(c); }); ['measureText', 'createLinearGradient', 'createRadialGradient', 'createPattern', 'getLineDash'].forEach(function (c) { a.prototype[c] = k(c); }); ['save', 'restore'].forEach(function (c) { a.prototype[c] = function (a, b) { return function () { a.apply(this, arguments); b.apply(this, arguments); }; }(l(c), k(c)); }); f.forEach(function (c) { Object.defineProperty(a.prototype, c, { set: function set(a) { d[c] = a; this.Gc[c] = a; var b = this.buffer; b[this.oa++] = 'set'; b[this.oa++] = c; b[this.oa++] = a; }, get: function get() { return this.Gc[c]; } }); }); c.forEach(function (c) { Object.defineProperty(a.prototype, c, { set: function set(a) { this.Gc[c] = a; var b = this.buffer; b[this.oa++] = 'globalAlpha' === c ? 'setGlobalAlpha' : 'set'; b[this.oa++] = c; b[this.oa++] = a; }, get: function get() { return this.Gc[c]; } }); }); a.prototype.roundRect = function (a, c, b, d, f) { this.beginPath(); this.moveTo(a + f, c); this.lineTo(a + b - f, c); this.quadraticCurveTo(a + b, c, a + b, c + f); this.lineTo(a + b, c + d - f); this.quadraticCurveTo(a + b, c + d, a + b - f, c + d); this.lineTo(a + f, c + d); this.quadraticCurveTo(a, c + d, a, c + d - f); this.lineTo(a, c + f); this.quadraticCurveTo(a, c, a + f, c); this.closePath(); }; a.prototype.fillPolygonWithText = function (a, c, b, d, f) { f || (f = {}); var k = { sb: D.B(f.maxFontSize, G.Ea.sb), Zc: D.B(f.minFontSize, G.Ea.Zc), lineHeight: D.B(f.lineHeight, G.Ea.lineHeight), pb: D.B(f.horizontalPadding, G.Ea.pb), eb: D.B(f.verticalPadding, G.Ea.eb), tb: D.B(f.maxTotalTextHeight, G.Ea.tb), fontFamily: D.B(f.fontFamily, G.Ea.fontFamily), fontStyle: D.B(f.fontStyle, G.Ea.fontStyle), fontVariant: D.B(f.fontVariant, G.Ea.fontVariant), fontWeight: D.B(f.fontWeight, G.Ea.fontWeight), verticalAlign: D.B(f.verticalAlign, G.Ea.verticalAlign) }, g = f.cache; if (g && D.Q(f, 'area')) { g.jd || (g.jd = new ga()); var r = f.area, s = D.B(f.cacheInvalidationThreshold, 0.05); a = G.xe(k, this, d, a, M.q(a, {}), { x: c, y: b }, f.allowForcedSplit || !1, f.allowEllipsis || !1, g, r, s, f.invalidateCache); } else a = G.Le(k, this, d, a, M.q(a, {}), { x: c, y: b }, f.allowForcedSplit || !1, f.allowEllipsis || !1); return a.la ? { fit: !0, lineCount: a.mc, fontSize: a.fontSize, box: { x: a.da.x, y: a.da.y, w: a.da.f, h: a.da.i }, ellipsis: a.ec } : { fit: !1 }; }; return a; }); var ha = v.Dd(function () { function a(a) { this.O = a; this.d = []; this.Ib = [void 0]; this.Nc = ['#SIZE#px sans-serif']; this.Ld = [0]; this.Md = [1]; this.ie = [0]; this.je = [0]; this.ke = [0]; this.Qd = [10]; this.hc = [10]; this.Sb = [this.Ib, this.Nc, this.hc, this.Ld, this.Md, this.ie, this.Qd, this.je, this.ke]; this.ga = [1, 0, 0, 1, 0, 0]; } function l(a) { var c = a.O, d = a.Sb[0].length - 1; a.Ib[d] && (c.setLineDash(a.Ib[d]), c.Tj = a.Ld[d]); c.miterLimit = a.Qd[d]; c.lineWidth = a.Md[d]; c.shadowBlur = a.ie[d]; c.shadowOffsetX = a.je[d]; c.shadowOffsetY = a.ke[d]; c.font = a.Nc[d].replace('#SIZE#', a.hc[d].toString()); } function k(a) { return function () { return this.O[a].apply(this.O, arguments); }; } function f(a) { return function (d, e) { var f = this.ga; return this.O[a].call(this.O, c(d, e, f), g(d, e, f)); }; } function d(a) { return function (d, e, f, k) { var r = this.ga; return this.O[a].call(this.O, c(d, e, r), g(d, e, r), f * r[0], k * r[3]); }; } function c(a, c, d) { return a * d[0] + c * d[2] + d[4]; } function g(a, c, d) { return a * d[1] + c * d[3] + d[5]; } function m(a, c) { for (var d = 0; d < a.length; d++) { a[d] *= c[0]; } return a; } a.prototype.save = function () { this.d.push(this.ga.slice(0)); for (var a = 0; a < this.Sb.length; a++) { var c = this.Sb[a]; c.push(c[c.length - 1]); } this.O.save(); }; a.prototype.restore = function () { this.ga = this.d.pop(); for (var a = 0; a < this.Sb.length; a++) { this.Sb[a].pop(); } this.O.restore(); l(this); }; a.prototype.scale = function (a, c) { var d = this.ga; d[0] *= a; d[1] *= a; d[2] *= c; d[3] *= c; var d = this.ga, e = this.Sb, f = e[0].length - 1, k = this.Ib[f]; k && m(k, d); for (k = 2; k < e.length; k++) { var g = e[k]; g[f] *= d[0]; } l(this); }; a.prototype.translate = function (a, c) { var d = this.ga; d[4] += d[0] * a + d[2] * c; d[5] += d[1] * a + d[3] * c; }; ['moveTo', 'lineTo'].forEach(function (b) { a.prototype[b] = f(b); }); ['clearRect', 'fillRect', 'strokeRect', 'rect'].forEach(function (b) { a.prototype[b] = d(b); }); 'fill stroke beginPath closePath clip createImageData createPattern getImageData putImageData getLineDash setLineDash'.split(' ').forEach(function (b) { a.prototype[b] = k(b); }); [{ vb: 'lineDashOffset', zb: function zb(a) { return a.Ld; } }, { vb: 'lineWidth', zb: function zb(a) { return a.Md; } }, { vb: 'miterLimit', zb: function zb(a) { return a.Qd; } }, { vb: 'shadowBlur', zb: function zb(a) { return a.ie; } }, { vb: 'shadowOffsetX', zb: function zb(a) { return a.je; } }, { vb: 'shadowOffsetY', zb: function zb(a) { return a.ke; } }].forEach(function (b) { Object.defineProperty(a.prototype, b.vb, { set: function set(a) { var c = b.zb(this); a *= this.ga[0]; c[c.length - 1] = a; this.O[b.vb] = a; } }); }); var e = /(\d+(?:\.\d+)?)px/; Object.defineProperty(a.prototype, 'font', { set: function set(a) { var c = e.exec(a); if (1 < c.length) { var d = this.hc.length - 1; this.hc[d] = parseFloat(c[1]); this.Nc[d] = a.replace(e, '#SIZE#px'); this.O.font = this.Nc[d].replace('#SIZE#', (this.hc[d] * this.ga[0]).toString()); } } }); 'fillStyle globalAlpha globalCompositeOperation lineCap lineJoin shadowColor strokeStyle textAlign textBaseline'.split(' ').forEach(function (b) { Object.defineProperty(a.prototype, b, { set: function set(a) { this.O[b] = a; } }); }); a.prototype.arc = function (a, d, e, f, k, r) { var s = this.ga; this.O.arc(c(a, d, s), g(a, d, s), e * s[0], f, k, r); }; a.prototype.arcTo = function (a, d, e, f, k) { var r = this.ga; this.O.arc(c(a, d, r), g(a, d, r), c(e, f, r), g(e, f, r), k * r[0]); }; a.prototype.bezierCurveTo = function (a, d, e, f, k, r) { var s = this.ga; this.O.bezierCurveTo(c(a, d, s), g(a, d, s), c(e, f, s), g(e, f, s), c(k, r, s), g(k, r, s)); }; a.prototype.drawImage = function (a, d, e, f, k, r, s, m, l) { function y(d, e, f, k) { A.push(c(d, e, x)); A.push(g(d, e, x)); f = D.V(f) ? a.width : f; k = D.V(k) ? a.height : k; A.push(f * x[0]); A.push(k * x[3]); } var x = this.ga, A = [a]; D.V(r) ? y(d, e, f, k) : y(r, s, m, l); this.O.drawImage.apply(this.O, A); }; a.prototype.quadraticCurveTo = function (a, d, e, f) { var k = this.ga; this.O.quadraticCurveTo(c(a, d, k), g(a, d, k), c(e, f, k), g(e, f, k)); }; a.prototype.fillText = function (a, d, e, f) { var k = this.ga; this.O.fillText(a, c(d, e, k), g(d, e, k), D.Sc(f) ? f * k[0] : 1e20); }; a.prototype.setLineDash = function (a) { a = m(a.slice(0), this.ga); this.Ib[this.Ib.length - 1] = a; this.O.setLineDash(a); }; return a; }); var ja = function () { var a = !v.of() || v.lf() || v.hf() ? 1 : 7; return { eh: function eh() { function l(a) { a.beginPath(); ia.le(a, m); } var k = document.createElement('canvas'); k.width = 800; k.height = 600; var f = k.getContext('2d'), d = k.width, k = k.height, c, g = 0, m = [{ x: 0, y: 100 }]; for (c = 1; 6 >= c; c++) { g = 2 * c * Math.PI / 6, m.push({ x: 0 + 100 * Math.sin(g), y: 0 + 100 * Math.cos(g) }); } c = { polygonPlainFill: [l, function (a) { a.fillStyle = 'rgb(255, 0, 0)'; a.fill(); }], polygonPlainStroke: [l, function (a) { a.strokeStyle = 'rgb(128, 0, 0)'; a.lineWidth = 2; a.closePath(); a.stroke(); }], polygonGradientFill: [l, function (a) { var b = a.createRadialGradient(0, 0, 10, 0, 0, 60); b.addColorStop(0, 'rgb(255, 0, 0)'); b.addColorStop(1, 'rgb(255, 255, 0)'); a.fillStyle = b; a.fill(); }], polygonGradientStroke: [l, function (a) { var b = a.createLinearGradient(-100, -100, 100, 100); b.addColorStop(0, 'rgb(224, 0, 0)'); b.addColorStop(1, 'rgb(32, 0, 0)'); a.strokeStyle = b; a.lineWidth = 2; a.closePath(); a.stroke(); }], polygonExposureShadow: [l, function (a) { a.shadowBlur = 50; a.shadowColor = 'rgba(0, 0, 0, 1)'; a.fillStyle = 'rgba(0, 0, 0, 1)'; a.globalCompositeOperation = 'source-over'; a.fill(); a.shadowBlur = 0; a.shadowColor = 'transparent'; a.globalCompositeOperation = 'destination-out'; a.fill(); }], labelPlainFill: [function (a) { a.fillStyle = '#000'; a.font = '24px sans-serif'; a.textAlign = 'center'; }, function (a) { a.fillText('Some text', 0, -16); a.fillText('for testing purposes', 0, 16); }] }; var g = 100 / Object.keys(c).length, e = aa.now(), b = {}, h; for (h in c) { var n = c[h], q = aa.now(), p, r = 0; do { f.save(); f.translate(Math.random() * d, Math.random() * k); p = 3 * Math.random() + 0.5; f.scale(p, p); for (p = 0; p < n.length; p++) { n[p](f); } f.restore(); r++; p = aa.now(); } while (p - q < g); b[h] = a * (p - q) / r; } b.total = aa.now() - e; return b; } }; }(); var ia = { le: function le(a, l) { var k = l[0]; a.moveTo(k.x, k.y); for (var f = l.length - 1; 0 < f; f--) { k = l[f], a.lineTo(k.x, k.y); } }, rj: function rj(a, l, k, f) { var d, c, g, m = [], e = 0, b = l.length; for (g = 0; g < b; g++) { d = l[g], c = l[(g + 1) % b], d = M.d(d, c), d = Math.sqrt(d), m.push(d), e += d; } k = f * (k + 0.5 * f * e / b); var h, n; f = {}; var e = {}, q = {}; for (g = 0; g < b; g++) { d = l[g], c = l[(g + 1) % b], h = l[(g + 2) % b], n = m[(g + 1) % b], n = Math.min(0.5, k / n), M.Aa(1 - n, c, h, e), M.Aa(n, c, h, q), 0 == g && (h = Math.min(0.5, k / m[0]), M.Aa(h, d, c, f), a.moveTo(f.x, f.y)), a.quadraticCurveTo(c.x, c.y, e.x, e.y), a.lineTo(q.x, q.y); } return !0; } }; function ka(a) { function l(a) { h[a].style.opacity = q * n[a]; } function k(a) { a.width = Math.round(c * a.n); a.height = Math.round(g * a.n); } function f() { return /relative|absolute|fixed/.test(window.getComputedStyle(d, null).getPropertyValue('position')); } var d, c, g, m, e, b = [], h = {}, n = {}, q = 0; this.H = function (b) { d = b; f() || (d.style.position = 'relative'); 0 != d.clientWidth && 0 != d.clientHeight || na.Pa('element has zero dimensions: ' + d.clientWidth + ' x ' + d.clientHeight + '.'); d.innerHTML = ''; c = d.clientWidth; g = d.clientHeight; m = 0 !== c ? c : void 0; e = 0 !== g ? g : void 0; 'embedded' === d.getAttribute('data-foamtree') && na.Pa('visualization already embedded in the element.'); d.setAttribute('data-foamtree', 'embedded'); a.c.p('stage:initialized', this, d, c, g); }; this.lb = function () { d.removeAttribute('data-foamtree'); b = []; h = {}; a.c.p('stage:disposed', this, d); }; this.k = function () { f() || (d.style.position = 'relative'); c = d.clientWidth; g = d.clientHeight; if (0 !== c && 0 !== g && (c !== m || g !== e)) { for (var h = b.length - 1; 0 <= h; h--) { k(b[h]); } a.c.p('stage:resized', m, e, c, g); m = c; e = g; } }; this.fj = function (a, b) { a.n = b; k(a); }; this.oc = function (c, e, f) { var g = document.createElement('canvas'); g.setAttribute('style', 'position: absolute; top: 0; bottom: 0; left: 0; right: 0; width: 100%; height: 100%; -webkit-touch-callout: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;'); g.n = e; k(g); b.push(g); h[c] = g; n[c] = 1; l(c); f || d.appendChild(g); a.c.p('stage:newLayer', c, g); return g; }; this.kc = function (a, b) { D.V(b) || (n[a] = b, l(a)); return n[a]; }; this.d = function (a) { D.V(a) || (q = a, D.Ga(h, function (a, b) { l(b); })); return q; }; } function oa(a) { function l(a, b, e) { y = !0; q.x = 0; q.y = 0; p.x = 0; p.y = 0; d = h; c.x = n.x; c.y = n.y; b(); g *= a; m = e ? g / d : a; m = Math.max(0.25 / d, m); return !0; } function k(a, b) { b.x = a.x / h + n.x; b.y = a.y / h + n.y; return b; } function f(a, b, c, d, e, f, k, h, g) { var s = (a - c) * (f - h) - (b - d) * (e - k); if (1e-5 > Math.abs(s)) return !1; g.x = ((a * d - b * c) * (e - k) - (a - c) * (e * h - f * k)) / s; g.y = ((a * d - b * c) * (f - h) - (b - d) * (e * h - f * k)) / s; return !0; } var d = 1, c = { x: 0, y: 0 }, g = 1, m = 1, e = 1, b = { x: 0, y: 0 }, h = 1, n = { x: 0, y: 0 }, q = { x: 0, y: 0 }, p = { x: 0, y: 0 }, r, s, w = { x: 0, y: 0, f: 0, i: 0 }, t = { x: 0, y: 0, f: 0, i: 0, scale: 1 }, y = !0; a.c.j('stage:initialized', function (a, b, c, d) { r = c; s = d; w.x = 0; w.y = 0; w.f = c; w.i = d; t.x = 0; t.y = 0; t.f = c; t.i = d; t.scale = 1; }); a.c.j('stage:resized', function (a, d, e, f) { function k(a) { a.x *= g; a.y *= m; } function h(a) { k(a); a.f *= g; a.i *= m; } r = e; s = f; var g = e / a, m = f / d; k(c); k(n); k(b); k(q); k(p); h(w); h(t); }); this.Yb = function (a, d) { return l(d, function () { k(a, b); }, !0); }; this.Y = function (a, d) { if (1 === Math.round(1e4 * d) / 1e4) { var c = w.x - n.x, e = w.y - n.y; l(1, function () {}, !0); return this.d(-c, -e); } return l(d, function () { for (var d = !1; !d;) { var d = Math.random(), c = Math.random(), e = Math.random(), k = Math.random(), d = f(a.x + d * a.f, a.y + c * a.i, w.x + d * w.f, w.y + c * w.i, a.x + e * a.f, a.y + k * a.i, w.x + e * w.f, w.y + k * w.i, b); } }, !0); }; this.sc = function (a, d) { var c, e, k, g; c = a.f / a.i; e = r / s; c < e ? (k = a.i * e, g = a.i, c = a.x - 0.5 * (k - a.f), e = a.y) : c > e ? (k = a.f, g = a.f * s / r, c = a.x, e = a.y - 0.5 * (g - a.i)) : (c = a.x, e = a.y, k = a.f, g = a.i); c -= k * d; e -= g * d; k *= 1 + 2 * d; if (f(c, e, n.x, n.y, c + k, e, n.x + r / h, n.y, b)) return l(r / h / k, D.ta, !1); y = !1; return this.d(h * (n.x - c), h * (n.y - e)); }; this.d = function (a, b) { var c = Math.round(1e4 * a) / 1e4, d = Math.round(1e4 * b) / 1e4; p.x += c / h; p.y += d / h; return 0 !== c || 0 !== d; }; this.reset = function (a) { a && this.content(0, 0, r, s); return this.Y({ x: w.x + n.x, y: w.y + n.y, f: w.f / h, i: w.i / h }, e / g); }; this.Qb = function (a) { e = Math.min(1, Math.round(1e4 * (a || g)) / 1e4); }; this.k = function () { return n.x < w.x ? (w.x - n.x) * h : n.x + r / h > w.x + w.f ? -(n.x + r / h - w.x - w.f) * h : 0; }; this.A = function () { return n.y < w.y ? (w.y - n.y) * h : n.y + s / h > w.y + w.i ? -(n.y + s / h - w.y - w.i) * h : 0; }; this.update = function (a) { var e = Math.abs(Math.log(m)); 6 > e ? e = 2 : (e /= 4, e += 3 * e * (1 < m ? a : 1 - a)); e = 1 < m ? Math.pow(a, e) : 1 - Math.pow(1 - a, e); e = (y ? e : 1) * (m - 1) + 1; h = d * e; n.x = b.x - (b.x - c.x) / e; n.y = b.y - (b.y - c.y) / e; n.x -= q.x * (1 - a) + p.x * a; n.y -= q.y * (1 - a) + p.y * a; 1 === a && (q.x = p.x, q.y = p.y); t.x = n.x; t.y = n.y; t.f = r / h; t.i = s / h; t.scale = h; }; this.S = function (a) { a.x = t.x; a.y = t.y; a.scale = t.scale; return a; }; this.absolute = function (a, b) { return k(a, b || {}); }; this.nd = function (a, b) { var c = b || {}; c.x = (a.x - n.x) * h; c.y = (a.y - n.y) * h; return c; }; this.Hc = function (a) { return this.scale() < e / a; }; this.Rd = function () { return D.Fd(h, 1); }; this.scale = function () { return Math.round(1e4 * h) / 1e4; }; this.content = function (a, b, c, d) { w.x = a; w.y = b; w.f = c; w.i = d; }; this.Jc = function (a, b) { var c; for (c = a.length - 1; 0 <= c; c--) { var d = a[c]; d.save(); d.scale(h, h); d.translate(-n.x, -n.y); } b(t); for (c = a.length - 1; 0 <= c; c--) { d = a[c], d.restore(); } }; } var S = new function () { function a(a) { if ('hsl' == a.model || 'hsla' == a.model) return a; var f = a.r /= 255, d = a.g /= 255, c = a.b /= 255, g = Math.max(f, d, c), m = Math.min(f, d, c), e, b = (g + m) / 2; if (g == m) e = m = 0;else { var h = g - m, m = 0.5 < b ? h / (2 - g - m) : h / (g + m); switch (g) { case f: e = (d - c) / h + (d < c ? 6 : 0); break; case d: e = (c - f) / h + 2; break; case c: e = (f - d) / h + 4; } e /= 6; } a.h = 360 * e; a.s = 100 * m; a.l = 100 * b; a.model = 'hsl'; return a; } var l = { h: 0, s: 0, l: 0, a: 1, model: 'hsla' }; this.Ba = function (k) { return D.Tc(k) ? a(S.Hg(k)) : D.jc(k) ? a(k) : l; }; this.Hg = function (a) { var f; return (f = /rgba\(\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*\)/.exec(a)) && 5 == f.length ? { r: parseFloat(f[1]), g: parseFloat(f[2]), b: parseFloat(f[3]), a: parseFloat(f[4]), model: 'rgba' } : (f = /hsla\(\s*([^,\s]+)\s*,\s*([^,%\s]+)%\s*,\s*([^,\s%]+)%\s*,\s*([^,\s]+)\s*\)/.exec(a)) && 5 == f.length ? { h: parseFloat(f[1]), s: parseFloat(f[2]), l: parseFloat(f[3]), a: parseFloat(f[4]), model: 'hsla' } : (f = /rgb\(\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*\)/.exec(a)) && 4 == f.length ? { r: parseFloat(f[1]), g: parseFloat(f[2]), b: parseFloat(f[3]), a: 1, model: 'rgb' } : (f = /hsl\(\s*([^,\s]+)\s*,\s*([^,\s%]+)%\s*,\s*([^,\s%]+)%\s*\)/.exec(a)) && 4 == f.length ? { h: parseFloat(f[1]), s: parseFloat(f[2]), l: parseFloat(f[3]), a: 1, model: 'hsl' } : (f = /#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(a)) && 4 == f.length ? { r: parseInt(f[1], 16), g: parseInt(f[2], 16), b: parseInt(f[3], 16), a: 1, model: 'rgb' } : (f = /#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(a)) && 4 == f.length ? { r: 17 * parseInt(f[1], 16), g: 17 * parseInt(f[2], 16), b: 17 * parseInt(f[3], 16), a: 1, model: 'rgb' } : l; }; this.Cg = function (a) { function f(a, b, c) { 0 > c && (c += 1); 1 < c && (c -= 1); return c < 1 / 6 ? a + 6 * (b - a) * c : 0.5 > c ? b : c < 2 / 3 ? a + (b - a) * (2 / 3 - c) * 6 : a; } if ('rgb' == a.model || 'rgba' == a.model) return Math.sqrt(a.r * a.r * 0.241 + a.g * a.g * 0.691 + a.b * a.b * 0.068) / 255; var d, c; d = a.l / 100; var g = a.s / 100; c = a.h / 360; if (0 == a.Wj) d = a = c = d;else { var g = 0.5 > d ? d * (1 + g) : d + g - d * g, m = 2 * d - g; d = f(m, g, c + 1 / 3); a = f(m, g, c); c = f(m, g, c - 1 / 3); } return Math.sqrt(65025 * d * d * 0.241 + 65025 * a * a * 0.691 + 65025 * c * c * 0.068) / 255; }; this.Ng = function (a) { if (D.Tc(a)) return a; if (D.jc(a)) switch (a.model) { case 'hsla': return S.Ig(a); case 'hsl': return S.Ac(a); case 'rgba': return S.Lg(a); case 'rgb': return S.Kg(a); default: return '#000'; } else return '#000'; }; this.Lg = function (a) { return 'rgba(' + (0.5 + a.r | 0) + ',' + (0.5 + a.g | 0) + ',' + (0.5 + a.b | 0) + ',' + a.a + ')'; }; this.Kg = function (a) { return 'rgba(' + (0.5 + a.r | 0) + ',' + (0.5 + a.g | 0) + ',' + (0.5 + a.b | 0) + ')'; }; this.Ig = function (a) { return 'hsla(' + (0.5 + a.h | 0) + ',' + (0.5 + a.s | 0) + '%,' + (0.5 + a.l | 0) + '%,' + a.a + ')'; }; this.Ac = function (a) { return 'hsl(' + (0.5 + a.h | 0) + ',' + (0.5 + a.s | 0) + '%,' + (0.5 + a.l | 0) + '%)'; }; this.Y = function (a, f, d) { return 'hsl(' + (0.5 + a | 0) + ',' + (0.5 + f | 0) + '%,' + (0.5 + d | 0) + '%)'; }; }(); function V() { var a = !1, l, k = [], f = this, d = new function () { this.N = function (c) { c && (a ? c.apply(f, l) : k.push(c)); return this; }; this.ih = function (a) { f = a; return { then: this.N }; }; }(); this.J = function () { l = arguments; for (var c = 0; c < k.length; c++) { k[c].apply(f, l); } a = !0; return this; }; this.L = function () { return d; }; } function pa(a) { var l = new V(), k = a.length; if (0 < a.length) for (var f = a.length - 1; 0 <= f; f--) { a[f].N(function () { 0 === --k && l.J(); }); } else l.J(); return l.L(); } function qa(a) { var l = 0; this.d = function () { l++; }; this.k = function () { l--; 0 === l && a(); }; this.clear = function () { l = 0; }; this.A = function () { return 0 === l; }; } var ra = { Ie: function Ie(a, l, k, f) { f = f || {}; a = a.getBoundingClientRect(); f.x = l - a.left; f.y = k - a.top; return f; } }; function sa() { var a = document, l = {}; this.addEventListener = function (k, f) { var d = l[k]; d || (d = [], l[k] = d); d.push(f); a.addEventListener(k, f); }; this.d = function () { D.Ga(l, function (k, f) { for (var d = k.length - 1; 0 <= d; d--) { a.removeEventListener(f, k[d]); } }); }; } function ta(a) { function l(a) { return function (b) { k(b) && a.apply(this, arguments); }; } function k(b) { for (b = b.target; b;) { if (b === a) return !0; b = b.parentElement; } return !1; } function f(a, b, c) { c = c || {}; d(a, c); for (var e = 0; e < b.length; e++) { b[e].call(a.target, c); } (void 0 === c.Mb && c.zi || 'prevent' === c.Mb) && a.preventDefault(); return c; } function d(b, c) { ra.Ie(a, b.clientX, b.clientY, c); c.altKey = b.altKey; c.metaKey = b.metaKey; c.ctrlKey = b.ctrlKey; c.shiftKey = b.shiftKey; c.xb = 3 === b.which; return c; } var c = new sa(), g = [], m = [], e = [], b = [], h = [], n = [], q = [], p = [], r = [], s = [], w = []; this.d = function (a) { g.push(a); }; this.k = function (a) { h.push(a); }; this.ya = function (a) { m.push(a); }; this.Ba = function (a) { e.push(a); }; this.Pa = function (a) { b.push(a); }; this.Aa = function (a) { w.push(a); }; this.za = function (a) { n.push(a); }; this.Ja = function (a) { q.push(a); }; this.Y = function (a) { p.push(a); }; this.A = function (a) { r.push(a); }; this.S = function (a) { s.push(a); }; this.lb = function () { c.d(); }; var t, y, x, A, B = { x: 0, y: 0 }, K = { x: 0, y: 0 }, C = !1, H = !1; c.addEventListener('mousedown', l(function (b) { if (b.target !== a) { var c = f(b, e); K.x = c.x; K.y = c.y; B.x = c.x; B.y = c.y; C = !0; f(b, p); y = !1; t = window.setTimeout(function () { 100 > M.d(B, c) && (window.clearTimeout(A), f(b, m), y = !0); }, 400); } })); c.addEventListener('mouseup', function (a) { function c(a) { var b = {}; b.x = a.pageX; b.y = a.pageY; return b; } f(a, b); if (C) { H && f(a, s); window.clearTimeout(t); if (!y && !H && k(a)) { var d = c(a); x && 100 > M.d(d, x) ? f(a, h) : f(a, g); x = d; A = window.setTimeout(function () { x = null; }, 350); } H = C = !1; } }); c.addEventListener('mousemove', function (a) { var b = d(a, {}); k(a) && f(a, n, { type: 'move' }); B.x = b.x; B.y = b.y; C && !H && 100 < M.d(K, B) && (H = !0); H && f(a, r, b); }); c.addEventListener('mouseout', l(function (a) { f(a, q, { type: 'out' }); })); c.addEventListener(void 0 !== document.onmousewheel ? 'mousewheel' : 'MozMousePixelScroll', l(function (a) { var b = a.wheelDelta, c = a.detail; f(a, w, { wd: (c ? b ? 0 < b / c / 40 * c ? 1 : -1 : -c / (v.mf() ? 40 : 19) : b / 40) / 3, zi: !0 }); })); c.addEventListener('contextmenu', l(function (a) { a.preventDefault(); })); } var X = function () { function a(a) { return function (c) { return Math.pow(c, a); }; } function l(a) { return function (c) { return 1 - Math.pow(1 - c, a); }; } function k(a) { return function (c) { return 1 > (c *= 2) ? 0.5 * Math.pow(c, a) : 1 - 0.5 * Math.abs(Math.pow(2 - c, a)); }; } function f(a) { return function (c) { for (var f = 0; f < a.length; f++) { c = (0, a[f])(c); } return c; }; } return { pa: function pa(a) { switch (a) { case 'linear': return X.Jb; case 'bounce': return X.Vg; case 'squareIn': return X.og; case 'squareOut': return X.Rb; case 'squareInOut': return X.pg; case 'cubicIn': return X.Zg; case 'cubicOut': return X.ze; case 'cubicInOut': return X.$g; case 'quadIn': return X.Ri; case 'quadOut': return X.Ti; case 'quadInOut': return X.Si; default: return X.Jb; } }, Jb: function Jb(a) { return a; }, Vg: f([k(2), function (a) { return 0 === a ? 0 : 1 === a ? 1 : a * (a * (a * (a * (25.9425 * a - 85.88) + 105.78) - 58.69) + 13.8475); }]), og: a(2), Rb: l(2), pg: k(2), Zg: a(3), ze: l(3), $g: k(3), Ri: a(2), Ti: l(2), Si: k(2), d: f }; }(); var D = { V: function V(a) { return void 0 === a; }, nf: function nf(a) { return null === a; }, Sc: function Sc(a) { return '[object Number]' === Object.prototype.toString.call(a); }, Tc: function Tc(a) { return '[object String]' === Object.prototype.toString.call(a); }, Gd: function Gd(a) { return 'function' === typeof a; }, jc: function jc(a) { return a === Object(a); }, Fd: function Fd(a, l) { return 1e-6 > a - l && -1e-6 < a - l; }, jf: function jf(a) { return D.V(a) || D.nf(a) || D.Tc(a) && !/\S/.test(a); }, Q: function Q(a, l) { return a && a.hasOwnProperty(l); }, ob: function ob(a, l) { if (a) for (var k = l.length - 1; 0 <= k; k--) { if (a.hasOwnProperty(l[k])) return !0; } return !1; }, extend: function extend(a) { D.dh(Array.prototype.slice.call(arguments, 1), function (l) { if (l) for (var k in l) { l.hasOwnProperty(k) && (a[k] = l[k]); } }); return a; }, A: function A(a, l) { return a.map(function (a) { return a[l]; }, []); }, dh: function dh(a, l, k) { null != a && (a.forEach ? a.forEach(l, k) : D.Ga(a, l, k)); }, Ga: function Ga(a, l, k) { for (var f in a) { if (a.hasOwnProperty(f) && !1 === l.call(k, a[f], f, a)) break; } }, B: function B() { for (var a = 0; a < arguments.length; a++) { var l = arguments[a]; if (!(D.V(l) || D.Sc(l) && isNaN(l) || D.Tc(l) && D.jf(l))) return l; } }, cg: function cg(a, l) { var k = a.indexOf(l); 0 <= k && a.splice(k, 1); }, ah: function ah(a, l, k) { var f; return function () { var d = this, c = arguments, g = k && !f; clearTimeout(f); f = setTimeout(function () { f = null; k || a.apply(d, c); }, l); g && a.apply(d, c); }; }, defer: function defer(a) { setTimeout(a, 1); }, k: function k(a) { return a; }, ta: function ta() {} }; var ua = { ji: function ji(a, l, k) { return v.hi() ? function () { var f = l + ':' + JSON.stringify(arguments), d = window.localStorage.getItem(f); d && (d = JSON.parse(d)); if (d && Date.now() - d.t < k) return d.v; d = a.apply(this, arguments); window.localStorage.setItem(f, JSON.stringify({ v: d, t: Date.now() })); return d; } : a; } }; var va = { m: function m(a, l) { function k() { var f = []; if (Array.isArray(a)) for (var d = 0; d < a.length; d++) { var c = a[d]; c && f.push(c.apply(l, arguments)); } else a && f.push(a.apply(l, arguments)); return f; } k.empty = function () { return 0 === a.length && !D.Gd(a); }; return k; } }; function wa() { var a = {}; this.j = function (l, k) { var f = a[l]; f || (f = [], a[l] = f); f.push(k); }; this.p = function (l, k) { var f = a[l]; if (f) for (var d = Array.prototype.slice.call(arguments, 1), c = 0; c < f.length; c++) { f[c].apply(this, d); } }; } var xa = { kg: function kg(a) { for (var l = '', k = 0; k < a.length; k++) { l += String.fromCharCode(a.charCodeAt(k) ^ 1); } return l; } }; function ya(a) { function l(b, d, k) { var l = this, p, r = 0; this.id = g++; this.name = k ? k : '{unnamed on ' + b + '}'; this.target = function () { return b; }; this.Gb = function () { return -1 != e.indexOf(l); }; this.start = function () { if (!l.Gb()) { if (-1 == e.indexOf(l)) { var b = m.now(); !0 === l.xf(b) && (e = e.slice(), e.push(l)); } 0 < e.length && a.repeat(f); } return this; }; this.stop = function () { for (c(l); p < d.length; p++) { var a = d[p]; a.jb && a.Ya.call(); } return this; }; this.eg = function () { p = void 0; }; this.xf = function (a) { r++; if (0 !== d.length) { var b; D.V(p) ? (p = 0, b = d[p], b.W && b.W.call(b, a, r, l)) : b = d[p]; for (; p < d.length;) { if (b.Ya && b.Ya.call(b, a, r, l)) return !0; b.Da && b.Da.call(b, a, r, l); D.V(p) && (p = -1); ++p < d.length && (b = d[p], b.W && b.W.call(b, a, r, l)); } } return !1; }; } function k(a) { return D.V(a) ? e.slice() : e.filter(function (c) { return c.target() === a; }); } function f() { d(); 0 == e.length && a.cancel(f); } function d() { var a = m.now(); e.forEach(function (d) { !0 !== d.xf(a) && c(d); }); } function c(a) { e = e.filter(function (c) { return c !== a; }); } var g = 0, m = aa.create(), e = []; this.d = function () { for (var a = e.length - 1; 0 <= a; a--) { e[a].stop(); } e = []; }; this.D = function () { function a() {} function c(a) { var b = a.target, d = a.duration, e = a.ca, f, g; this.W = function () { f = {}; for (var c in a.G) { b.hasOwnProperty(c) && (f[c] = { start: D.V(a.G[c].start) ? b[c] : D.Gd(a.G[c].start) ? a.G[c].start.call(void 0) : a.G[c].start, end: D.V(a.G[c].end) ? b[c] : D.Gd(a.G[c].end) ? a.G[c].end.call(void 0) : a.G[c].end, P: D.V(a.G[c].P) ? X.Jb : a.G[c].P }); } g = m.now(); }; this.Ya = function () { var a = m.now() - g, a = 0 === d ? 1 : Math.min(d, a) / d, c; for (c in f) { var k = f[c]; b[c] = k.start + (k.end - k.start) * k.P(a); } e && e.call(b, a); return 1 > a; }; } function d(a, b, c) { this.jb = c; this.Ya = function () { a.call(b); return !1; }; } function e(a) { var b; this.W = function (c, d) { b = d + a; }; this.Ya = function (a, c) { return c < b; }; } function f(a) { var b; this.W = function (c) { b = c + a; }; this.Ya = function (a) { return a < b; }; } function g(a) { this.W = function () { a.forEach(function (a) { a.start(); }); }; this.Ya = function () { for (var b = 0; b < a.length; b++) { if (a[b].Gb()) return !0; } return !1; }; } a.m = function (a, b) { return new function () { function k(b, c, e, f) { return c ? (D.V(e) && (e = a), b.Bb(new d(c, e, f))) : b; } var m = []; this.Bb = function (a) { m.push(a); return this; }; this.fb = function (a) { return this.Bb(new f(a)); }; this.oe = function (a) { return this.Bb(new e(a || 1)); }; this.call = function (a, b) { return k(this, a, b, !1); }; this.jb = function (a, b) { return k(this, a, b, !0); }; this.ia = function (b) { D.V(b.target) && (b.target = a); return this.Bb(new c(b)); }; this.Za = function (a) { return this.Bb(new g(a)); }; this.eg = function () { return this.Bb({ Ya: function Ya(a, b) { b.eg(); return !0; } }); }; this.xa = function () { return new l(a, m, b); }; this.start = function () { return this.xa().start(); }; this.Fg = function () { var a = new V(); this.oe().call(a.J).xa(); return a.L(); }; this.bb = function () { var a = this.Fg(); this.start(); return a; }; }(); }; a.tc = function (c) { k(c).forEach(function (a) { a.stop(); }); return a.m(c, void 0); }; return a; }(); } var Z = function () { var a = { He: function He(a, k) { if (a.e) for (var f = a.e, d = 0; d < f.length; d++) { k(f[d], d); } }, Kc: function Kc(l, k) { if (l.e) for (var f = l.e, d = 0; d < f.length; d++) { if (!1 === a.Kc(f[d], k) || !1 === k(f[d], d)) return !1; } } }; a.F = a.Kc; a.Lc = function (l, k) { if (l.e) for (var f = l.e, d = 0; d < f.length; d++) { if (!1 === k(f[d], d) || !1 === a.Lc(f[d], k)) return !1; } }; a.Fa = function (l, k) { if (l.e) for (var f = l.e, d = 0; d < f.length; d++) { if (!1 === a.Fa(f[d], k)) return !1; } return k(l); }; a.Nj = a.Fa; a.xd = function (l, k) { !1 !== k(l) && a.Lc(l, k); }; a.Mc = function (l, k) { var f = []; a.Lc(l, function (a) { f.push(a); }); return k ? f.filter(k) : f; }; a.Ge = function (a, k) { for (var f = a.parent; f && !1 !== k(f);) { f = f.parent; } }; a.ki = function (a, k) { for (var f = a.parent; f && f !== k;) { f = f.parent; } return !!f; }; return a; }(); var M = new function () { function a(a, f) { var d = a.x - f.x, c = a.y - f.y; return d * d + c * c; } function l(a, f, d) { for (var c = 0; c < a.length; c++) { var g = M.za(a[c], a[c + 1] || a[0], f, d, !0); if (g) return g; } } this.za = function (a, f, d, c, g) { var m = a.x; a = a.y; var e = f.x - m; f = f.y - a; var b = d.x, h = d.y; d = c.x - b; var n = c.y - h; c = e * n - d * f; if (!(1e-12 >= c && -1e-12 <= c) && (b = b - m, h = h - a, d = (b * n - d * h) / c, c = (b * f - e * h) / c, 0 <= c && (g || 1 >= c) && 0 <= d && 1 >= d)) return { x: m + e * d, y: a + f * d }; }; this.Jg = function (a, f, d, c) { var g = a.x; a = a.y; var m = f.x - g; f = f.y - a; var e = d.x; d = d.y; var b = c.x - e; c = c.y - d; var h = m * c - b * f; if (!(1e-12 >= h && -1e-12 <= h) && (c = ((e - g) * c - b * (d - a)) / h, 0 <= c && 1 >= c)) return { x: g + m * c, y: a + f * c }; }; this.Bc = function (a, f, d) { for (var c = M.k(f, {}), g = M.k(d, {}), m, e = g.x - c.x, b = g.y - c.y, h = [], g = 0; g < d.length; g++) { m = d[g], h.push({ x: m.x - e, y: m.y - b }); } d = []; m = []; for (g = 0; g < a.length; g++) { var n = a[g], q = l(f, c, n); q ? (d.push(q), m.push(l(h, c, n))) : (d.push(null), m.push(null)); } for (g = 0; g < a.length; g++) { if (q = d[g], n = m[g], q && n) { f = a[g]; var h = c, p = q.x - c.x, q = q.y - c.y, q = Math.sqrt(p * p + q * q); if (1e-12 < q) { var p = f.x - c.x, r = f.y - c.y, q = Math.sqrt(p * p + r * r) / q; f.x = h.x + q * (n.x - h.x); f.y = h.y + q * (n.y - h.y); } else f.x = h.x, f.y = h.y; } } for (g = 0; g < a.length; g++) { m = a[g], m.x += e, m.y += b; } }; this.q = function (a, f) { if (0 !== a.length) { var d, c, g, m; d = c = a[0].x; g = m = a[0].y; for (var e = a.length; 0 < --e;) { d = Math.min(d, a[e].x), c = Math.max(c, a[e].x), g = Math.min(g, a[e].y), m = Math.max(m, a[e].y); } f.x = d; f.y = g; f.f = c - d; f.i = m - g; return f; } }; this.A = function (a) { return [{ x: a.x, y: a.y }, { x: a.x + a.f, y: a.y }, { x: a.x + a.f, y: a.y + a.i }, { x: a.x, y: a.y + a.i }]; }; this.k = function (a, f) { for (var d = 0, c = 0, g = a.length, m = a[0], e = 0, b = 1; b < g - 1; b++) { var h = a[b], n = a[b + 1], l = m.y + h.y + n.y, p = (h.x - m.x) * (n.y - m.y) - (n.x - m.x) * (h.y - m.y), d = d + p * (m.x + h.x + n.x), c = c + p * l, e = e + p; } f.x = d / (3 * e); f.y = c / (3 * e); f.ja = e / 2; return f; }; this.re = function (a, f) { this.k(a, f); f.Ob = Math.sqrt(f.ja / Math.PI); }; this.Va = function (a, f) { for (var d = 0; d < a.length; d++) { var c = a[d], g = a[d + 1] || a[0]; if (0 > (f.y - c.y) * (g.x - c.x) - (f.x - c.x) * (g.y - c.y)) return !1; } return !0; }; this.Mg = function (a, f, d) { var c = a.x, g = f.x; a.x > f.x && (c = f.x, g = a.x); g > d.x + d.f && (g = d.x + d.f); c < d.x && (c = d.x); if (c > g) return !1; var m = a.y, e = f.y, b = f.x - a.x; 1e-7 < Math.abs(b) && (e = (f.y - a.y) / b, a = a.y - e * a.x, m = e * c + a, e = e * g + a); m > e && (c = e, e = m, m = c); e > d.y + d.i && (e = d.y + d.i); m < d.y && (m = d.y); return m <= e; }; this.se = function (k, f, d, c, g) { var m, e; function b(b, c, d) { if (f.x === n.x && f.y === n.y) return d; var g = l(k, f, n), p = Math.sqrt(a(g, f) / (b * b + c * c)); return p < h ? (h = p, m = g.x, e = g.y, 0 !== c ? Math.abs(e - f.y) / Math.abs(c) : Math.abs(m - f.x) / Math.abs(b)) : d; } c = D.B(c, 0.5); g = D.B(g, 0.5); d = D.B(d, 1); var h = Number.MAX_VALUE; e = m = 0; var n = { x: 0, y: 0 }, q, p = c * d; d = (1 - c) * d; c = 1 - g; n.x = f.x - p; n.y = f.y - g; q = b(p, g, q); n.x = f.x + d; n.y = f.y - g; q = b(d, g, q); n.x = f.x - p; n.y = f.y + c; q = b(p, c, q); n.x = f.x + d; n.y = f.y + c; return q = b(d, c, q); }; this.Eg = function (a, f) { function d(a, c, d) { var e = c.x, f = d.x; c = c.y; d = d.y; var g = f - e, k = d - c; return Math.abs(k * a.x - g * a.y - e * d + f * c) / Math.sqrt(g * g + k * k); } for (var c = a.length, g = d(f, a[c - 1], a[0]), m = 0; m < c - 1; m++) { var e = d(f, a[m], a[m + 1]); e < g && (g = e); } return g; }; this.Wb = function (a, f, d) { var c; d = { x: f.x + Math.cos(d), y: f.y - Math.sin(d) }; var g = [], m = [], e = a.length; for (c = 0; c < e; c++) { var b = M.Jg(a[c], a[(c + 1) % e], f, d); if (b && (g.push(b), 2 == m.push(c))) break; } if (2 == g.length) { var b = g[0], g = g[1], h = m[0], m = m[1], n = [g, b]; for (c = h + 1; c <= m; c++) { n.push(a[c]); } for (c = [b, g]; m != h;) { m = (m + 1) % e, c.push(a[m]); } a = [n, c]; e = d.x - f.x; c = g.x - b.x; 0 === e && (e = d.y - f.y, c = g.y - b.y); (0 > e ? -1 : 0 < e ? 1 : 0) !== (0 > c ? -1 : 0 < c ? 1 : 0) && a.reverse(); return a; } }; this.Aa = function (a, f, d, c) { c.x = a * (f.x - d.x) + d.x; c.y = a * (f.y - d.y) + d.y; return c; }; this.d = a; this.qe = function (a, f, d) { if (D.Sc(f)) f = 2 * Math.PI * f / 360;else { var c = M.q(a, {}); switch (f) { case 'random': f = Math.random() * Math.PI * 2; break; case 'top': f = Math.atan2(-c.i, 0); break; case 'bottom': f = Math.atan2(c.i, 0); break; case 'topleft': f = Math.atan2(-c.i, -c.f); break; default: f = Math.atan2(c.i, c.f); } } c = M.k(a, {}); return M.Aa(d, l(a, c, { x: c.x + Math.cos(f), y: c.y + Math.sin(f) }), c, {}); }; return this; }(); var za = new function () { function a(a, d) { this.face = a; this.kd = d; this.pc = this.dd = null; } function l(a, d, f) { this.ma = [a, d, f]; this.C = Array(3); var e = d.y - a.y, b = f.z - a.z, h = d.x - a.x; d = d.z - a.z; var k = f.x - a.x; a = f.y - a.y; this.Oa = { x: e * b - d * a, y: d * k - h * b, z: h * a - e * k }; this.kb = []; this.td = this.visible = !1; } this.S = function (c) { function f(b, c, d) { var g, h, k = b.ma[0], m = b.Oa, r = m.x, s = m.y, m = m.z, l = Array(n); c = c.kb; g = c.length; for (e = 0; e < g; e++) { h = c[e].kd, l[h.index] = !0, 0 > r * (h.x - k.x) + s * (h.y - k.y) + m * (h.z - k.z) && a.d(b, h); } c = d.kb; g = c.length; for (e = 0; e < g; e++) { h = c[e].kd, !0 !== l[h.index] && 0 > r * (h.x - k.x) + s * (h.y - k.y) + m * (h.z - k.z) && a.d(b, h); } } var m, e, b, h, n = c.length; for (m = 0; m < n; m++) { c[m].index = m, c[m].$b = null; } var q = [], p; if (0 < (p = function () { function b(a, c, d, e) { var f = (c.y - a.y) * (d.z - a.z) - (c.z - a.z) * (d.y - a.y), g = (c.z - a.z) * (d.x - a.x) - (c.x - a.x) * (d.z - a.z), h = (c.x - a.x) * (d.y - a.y) - (c.y - a.y) * (d.x - a.x); return f * e.x + g * e.y + h * e.z > f * a.x + g * a.y + h * a.z ? new l(a, c, d) : new l(d, c, a); } function d(a, b, c, e) { function f(a, b, c) { a = a.ma; b = a[0] == b ? 0 : a[1] == b ? 1 : 2; return a[(b + 1) % 3] != c ? (b + 2) % 3 : b; } b.C[f(b, c, e)] = a; a.C[f(a, e, c)] = b; } if (4 > n) return 0; var e = c[0], f = c[1], g = c[2], h = c[3], k = b(e, f, g, h), m = b(e, g, h, f), r = b(e, f, h, g), s = b(f, g, h, e); d(k, m, g, e); d(k, r, e, f); d(k, s, f, g); d(m, r, h, e); d(m, s, g, h); d(r, s, h, f); q.push(k, m, r, s); for (e = 4; e < n; e++) { for (f = c[e], g = 0; 4 > g; g++) { h = q[g], k = h.ma[0], m = h.Oa, 0 > m.x * (f.x - k.x) + m.y * (f.y - k.y) + m.z * (f.z - k.z) && a.d(h, f); } } return 4; }())) { for (; p < n;) { b = c[p]; if (b.$b) { for (m = b.$b; null !== m;) { m.face.visible = !0, m = m.pc; } var r, s; m = 0; a: for (; m < q.length; m++) { if (h = q[m], !1 === h.visible) { var w = h.C; for (e = 0; 3 > e; e++) { if (!0 === w[e].visible) { r = h; s = e; break a; } } } } h = []; var w = [], t = r, y = s; do { if (h.push(t), w.push(y), y = (y + 1) % 3, !1 === t.C[y].visible) { do { for (m = t.ma[y], t = t.C[y], e = 0; 3 > e; e++) { t.ma[e] == m && (y = e); } } while (!1 === t.C[y].visible && (t !== r || y !== s)); } } while (t !== r || y !== s); var x = null, A = null; for (m = 0; m < h.length; m++) { var t = h[m], y = w[m], B = t.C[y], K = t.ma[(y + 1) % 3], C = t.ma[y], H = K.y - b.y, Q = C.z - b.z, O = K.x - b.x, P = K.z - b.z, F = C.x - b.x, T = C.y - b.y, N; 0 < d.length ? (N = d.pop(), N.ma[0] = b, N.ma[1] = K, N.ma[2] = C, N.Oa.x = H * Q - P * T, N.Oa.y = P * F - O * Q, N.Oa.z = O * T - H * F, N.kb.length = 0, N.visible = !1, N.td = !0) : N = { ma: [b, K, C], C: Array(3), Oa: { x: H * Q - P * T, y: P * F - O * Q, z: O * T - H * F }, kb: [], visible: !1 }; q.push(N); t.C[y] = N; N.C[1] = t; null !== A && (A.C[0] = N, N.C[2] = A); A = N; null === x && (x = N); f(N, t, B); } A.C[0] = x; x.C[2] = A; m = []; for (e = 0; e < q.length; e++) { if (h = q[e], !0 === h.visible) { w = h.kb; t = w.length; for (b = 0; b < t; b++) { y = w[b], x = y.dd, A = y.pc, null !== x && (x.pc = A), null !== A && (A.dd = x), null === x && (y.kd.$b = A), k.push(y); } h.td && d.push(h); } else m.push(h); } q = m; } p++; } for (m = 0; m < q.length; m++) { h = q[m], h.td && d.push(h); } } return { Je: q }; }; a.d = function (c, d) { var f; 0 < k.length ? (f = k.pop(), f.face = c, f.kd = d, f.pc = null, f.dd = null) : f = new a(c, d); c.kb.push(f); var e = d.$b; null !== e && (e.dd = f); f.pc = e; d.$b = f; }; for (var k = Array(2e3), f = 0; f < k.length; f++) { k[f] = new a(null, null); } for (var d = Array(1e3), f = 0; f < d.length; f++) { d[f] = { ma: Array(3), C: Array(3), Oa: { x: 0, y: 0, z: 0 }, kb: [], visible: !1 }; } }(); var Aa = new function () { function a(a, f, d, c, g, m, e, b) { var h = (a - d) * (m - b) - (f - c) * (g - e); return Math.abs(h) < l ? void 0 : { x: ((a * c - f * d) * (g - e) - (a - d) * (g * b - m * e)) / h, y: ((a * c - f * d) * (m - b) - (f - c) * (g * b - m * e)) / h }; } var l = 1e-12; this.cb = function (k, f) { for (var d = k[0], c = d.x, g = d.y, m = d.x, e = d.y, b = k.length - 1; 0 < b; b--) { d = k[b], c = Math.min(c, d.x), g = Math.min(g, d.y), m = Math.max(m, d.x), e = Math.max(e, d.y); } if (m - c < 3 * f || e - g < 3 * f) d = void 0;else { a: { d = !0; void 0 == d && (d = !1); c = []; g = k.length; for (m = 0; m <= g; m++) { var e = k[m % g], b = k[(m + 1) % g], h = k[(m + 2) % g], n, q, p; n = b.x - e.x; q = b.y - e.y; p = Math.sqrt(n * n + q * q); var r = f * n / p, s = f * q / p; n = h.x - b.x; q = h.y - b.y; p = Math.sqrt(n * n + q * q); n = f * n / p; q = f * q / p; if (e = a(e.x - s, e.y + r, b.x - s, b.y + r, b.x - q, b.y + n, h.x - q, h.y + n)) if (c.push(e), h = c.length, d && 3 <= h && (e = c[h - 3], b = c[h - 2], h = c[h - 1], 0 > (b.x - e.x) * (h.y - e.y) - (h.x - e.x) * (b.y - e.y))) { d = void 0; break a; } } c.shift(); d = 3 > c.length ? void 0 : c; } if (!d) a: { c = k.slice(0); for (d = 0; d < k.length; d++) { m = k[d % k.length]; b = k[(d + 1) % k.length]; h = b.x - m.x; g = b.y - m.y; e = Math.sqrt(h * h + g * g); h = f * h / e; e = f * g / e; g = m.x - e; m = m.y + h; e = b.x - e; b = b.y + h; if (0 != c.length) { s = g - e; q = m - b; h = []; n = p = !0; r = void 0; for (r = 0; r < c.length; r++) { var w = s * (m - c[r].y) - (g - c[r].x) * q; w <= l && w >= -l && (w = 0); h.push(w); 0 < w && (p = !1); 0 > w && (n = !1); } if (p) c = [];else if (!n) { s = []; for (r = 0; r < c.length; r++) { q = (r + 1) % c.length, p = h[r], n = h[q], 0 <= p && s.push(c[r]), (0 < p && 0 > n || 0 > p && 0 < n) && s.push(a(c[r].x, c[r].y, c[q].x, c[q].y, g, m, e, b)); } c = s; } } if (3 > c.length) { d = void 0; break a; } } d = c; } } return d; }; return this; }(); var Ba = new function () { function a(a) { for (var f = a[0].x, d = a[0].y, c = f, g = d, m = 1; m < a.length; m++) { var e = a[m], f = Math.min(f, e.x), d = Math.min(d, e.y), c = Math.max(c, e.x), g = Math.max(g, e.y); } a = c - f; g = g - d; return [{ x: f + 2 * a, y: d + 2 * g, f: 0 }, { x: f + 2 * a, y: d - 2 * g, f: 0 }, { x: f - 2 * a, y: d + 2 * g, f: 0 }]; } var l = 1e-12; this.S = function (k, f) { function d() { for (b = 0; b < p.length; b++) { var a = p[b], c = a.ma, d = c[0], e = c[1], f = c[2], c = d.x, g = d.y, d = d.z, h = e.x, k = e.y, e = e.z, r = f.x, m = f.y, f = f.z, s = c * (k - m) + h * (m - g) + r * (g - k); a.ha = { x: -(g * (e - f) + k * (f - d) + m * (d - e)) / s / 2, y: -(d * (h - r) + e * (r - c) + f * (c - h)) / s / 2 }; } } function c(a) { for (b = 0; b < p.length; b++) { var c = p[b]; c.ub = !M.Va(a, c.ha); } } function g(a, b) { var c = Array(b.length), d; for (d = 0; d < c.length; d++) { c[d] = []; } for (d = 0; d < a.length; d++) { var e = a[d]; if (!(0 > e.Oa.z)) for (var f = e.C, g = 0; g < f.length; g++) { var h = f[g]; if (!(0 > h.Oa.z)) { var k = e.ma, r = k[(g + 1) % 3].index, k = k[g].index; 2 < r && c[r - 3].push([e, h, 2 < k ? b[k - 3] : null]); } } } return c; } function m(a) { var b = [a[0]], c = a[0][0], d = a[0][1], e = a.length, f = 1; a: for (; f < e; f++) { for (var g = 1; g < e; g++) { var h = a[g]; if (null !== h) { if (h[1] === c) if (b.unshift(h), c = h[0], a[g] = null, b.length === e) break a;else continue; if (h[0] === d && (b.push(h), d = h[1], a[g] = null, b.length === e)) break a; } } } b[0][0] != b[e - 1][1] && b.push([b[e - 1][1], b[0][0]]); return b; } function e(a, b, c, d) { var e = [], f = [], g = c.length, h, k = b.length, r = 0, m = -1, s = -1, n = -1, p = null, q = d; for (d = 0; d < g; d++) { var w = (q + 1) % g, t = c[q][0], E = c[w][0]; if (M.d(t.ha, E.ha) > l) if (t.ub && E.ub) { var I = [], J = []; for (h = 0; h < k; h++) { m = (r + 1) % k; if (p = M.za(b[r], b[m], t.ha, E.ha, !1)) if (J.push(r), 2 === I.push(p)) break; r = m; } if (2 === I.length) { m = I[1]; p = M.d(t.ha, I[0]); m = M.d(t.ha, m); t = p < m ? 0 : 1; p = p < m ? 1 : 0; m = J[t]; -1 === s && (s = m); if (-1 !== n) for (; m != n;) { n = (n + 1) % k, e.push(b[n]), f.push(null); } e.push(I[t], I[p]); f.push(c[q][2], null); n = J[p]; } } else if (t.ub && !E.ub) for (h = 0; h < k; h++) { m = (r + 1) % k; if (p = M.za(b[r], b[m], t.ha, E.ha, !1)) { if (-1 !== n) for (I = n; r != I;) { I = (I + 1) % k, e.push(b[I]), f.push(null); } e.push(p); f.push(c[q][2]); -1 === s && (s = r); break; } r = m; } else if (!t.ub && E.ub) for (h = 0; h < k; h++) { m = (r + 1) % k; if (p = M.za(b[r], b[m], t.ha, E.ha, !1)) { e.push(t.ha, p); f.push(c[q][2], null); n = r; break; } r = m; } else e.push(t.ha), f.push(c[q][2]); q = w; } if (0 == e.length) f = e = null;else if (-1 !== n) for (; s != n;) { n = (n + 1) % k, e.push(b[n]), f.push(null); } a.o = e; a.C = f; } if (1 === k.length) k[0].o = f.slice(0), k[0].C = [];else { var b, h; h = a(f); var n = [], q; for (b = 0; b < h.length; b++) { q = h[b], n.push({ x: q.x, y: q.y, z: q.x * q.x + q.y * q.y - q.f }); } for (b = 0; b < k.length; b++) { q = k[b], q.o = null, n.push({ x: q.x, y: q.y, z: q.x * q.x + q.y * q.y - q.f }); } var p = za.S(n).Je; d(); c(f); n = g(p, k); for (b = 0; b < k.length; b++) { if (q = n[b], 0 !== q.length) { var r = k[b]; q = m(q); var s = q.length, w = -1; for (h = 0; h < s; h++) { q[h][0].ub && (w = h); } if (0 <= w) e(r, f, q, w);else { var w = [], t = []; for (h = 0; h < s; h++) { M.d(q[h][0].ha, q[(h + 1) % s][0].ha) > l && (w.push(q[h][0].ha), t.push(q[h][2])); } r.o = w; r.C = t; } r.o && 3 > r.o.length && (r.o = null, r.C = null); } } } }; this.zc = function (k, f) { var d, c, g = !1, m = k.length; for (c = 0; c < m; c++) { d = k[c], null === d.o && (g = !0), d.pe = d.f; } if (g) { var g = a(f), e = [], b, h; c = k.length; for (d = 0; d < g.length; d++) { b = g[d], e.push({ x: b.x, y: b.y, z: b.x * b.x + b.y * b.y }); } for (d = 0; d < c; d++) { b = k[d], e.push({ x: b.x, y: b.y, z: b.x * b.x + b.y * b.y }); } b = za.S(e).Je; g = Array(c); for (d = 0; d < c; d++) { g[d] = {}; } e = b.length; for (d = 0; d < e; d++) { if (h = b[d], 0 < h.Oa.z) { var n = h.ma, l = n.length; for (h = 0; h < l - 1; h++) { var p = n[h].index - 3, r = n[h + 1].index - 3; 0 <= p && 0 <= r && (g[p][r] = !0, g[r][p] = !0); } h = n[0].index - 3; 0 <= r && 0 <= h && (g[r][h] = !0, g[h][r] = !0); } } for (d = 0; d < c; d++) { h = g[d]; b = k[d]; var r = Number.MAX_VALUE, e = null, s; for (s in h) { h = k[s], n = M.d(b, h), r > n && (r = n, e = h); } b.Uj = e; b.vf = Math.sqrt(r); } for (c = 0; c < m; c++) { d = k[c], s = Math.min(Math.sqrt(d.f), 0.95 * d.vf), d.f = s * s; } this.S(k, f); for (c = 0; c < m; c++) { d = k[c], d.pe !== d.f && 0 < d.uc && (s = Math.min(d.uc, d.pe - d.f), d.f += s, d.uc -= s); } } }; }(); var Ca = new function () { this.Dg = function (a) { a = a.e; for (var l = 0, k = a.length, f = 0; f < k; f++) { var d = a[f]; if (d.o) { var c = d.x, g = d.y; M.k(d.o, d); c = c - d.x; d = g - d.y; d = (0 < c ? c : -c) + (0 < d ? d : -d); l < d && (l = d); } } return l; }; this.ya = function (a, l) { var k = a.e, f, d, c, g; switch (l) { case 'random': return a.e[Math.floor(k.length * Math.random())]; case 'topleft': f = k[0]; var m = f.x + f.y; for (g = 1; g < k.length; g++) { d = k[g], c = d.x + d.y, c < m && (m = c, f = d); } return f; case 'bottomright': f = k[0]; m = f.x + f.y; for (g = 1; g < k.length; g++) { d = k[g], c = d.x + d.y, c > m && (m = c, f = d); } return f; default: f = k[0]; c = d = M.d(a, f); for (g = k.length - 1; 1 <= g; g--) { m = k[g], d = M.d(a, m), d < c && (c = d, f = m); } return f; } }; this.Ja = function (a, l, k) { var f = a.e; if (f[0].C) { var d = f.length; for (a = 0; a < d; a++) { f[a].ld = !1, f[a].ic = 0; } var d = [], c, g; g = c = 0; d[c++] = l || f[0]; for (l = l.ic = 0; g < c;) { if (f = d[g++], !f.ld && f.C) { k(f, l++, f.ic); f.ld = !0; var m = f.C, e = m.length; for (a = 0; a < e; a++) { var b = m[a]; b && !0 !== b.ld && (0 === b.ic && (b.ic = f.ic + 1), d[c++] = b); } } } } else for (a = 0; a < f.length; a++) { k(f[a], a, 1); } }; }(); var G = function () { function a(a, e, h, r, s, p, w, P) { var F = D.extend({}, m, a); 1 > a.lineHeight && (a.lineHeight = 1); a = F.fontFamily; var T = F.fontStyle + ' ' + F.fontVariant + ' ' + F.fontWeight, N = F.sb, U = F.Zc, u = T + ' ' + a; F.Ne = u; var z = { la: !1, mc: 0, fontSize: 0 }; e.save(); e.font = T + ' ' + x + 'px ' + a; e.textBaseline = 'middle'; e.textAlign = 'center'; l(e, F); h = h.trim(); t.text = h; d(r, s, p, y); if (/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/.test(h)) f(t), k(e, t, u), c(F, t, y, U, N, !0, z);else if (k(e, t, u), c(F, t, y, U, N, !1, z), !z.la && (w && (f(t), k(e, t, u)), P || w)) P && (z.ec = !0), c(F, t, y, U, U, !0, z); if (z.la) { var L = '', E = 0, I = Number.MAX_VALUE, J = Number.MIN_VALUE; g(F, t, z.mc, z.fontSize, y, z.ec, function (a, c) { 0 < L.length && c === b && (L += b); L += a; }, function (a, b, c, d, f) { d === q && (L += n); e.save(); e.translate(p.x, b); a = z.fontSize / x; e.scale(a, a); e.fillText(L, 0, 0); e.restore(); L = c; E < f && (E = f); I > b && (I = b); J < b && (J = b); }); z.da = { x: p.x - E / 2, y: I - z.fontSize / 2, f: E, i: J - I + z.fontSize }; e.restore(); } else e.clear && e.clear(); return z; } function l(a, c) { var d = c.Ne, f = e[d]; void 0 === f && (f = {}, e[d] = f); f[b] = a.measureText(b).width; f[h] = a.measureText(h).width; } function k(a, b, c) { var d, f = b.text.split(/(\n|[ \f\r\t\v\u2028\u2029]+|\u00ad+|\u200b+)/), g = [], h = [], k = f.length >>> 1; for (d = 0; d < k; d++) { g.push(f[2 * d]), h.push(f[2 * d + 1]); } 2 * d < f.length && (g.push(f[2 * d]), h.push(void 0)); c = e[c]; for (d = 0; d < g.length; d++) { f = g[d], k = c[f], void 0 === k && (k = a.measureText(f).width, c[f] = k); } b.md = g; b.lg = h; } function f(a) { for (var c = a.text.split(/\s+/), d = [], e = { '.': !0, ',': !0, ';': !0, '?': !0, '!': !0, ':': !0, "\u3002": !0 }, f = 0; f < c.length; f++) { var g = c[f]; if (3 < g.length) { for (var h = '', h = h + g.charAt(0), h = h + g.charAt(1), k = 2; k < g.length - 2; k++) { var r = g.charAt(k); e[r] || (h += p); h += r; } h += p; h += g.charAt(g.length - 2); h += g.charAt(g.length - 1); d.push(h); } else d.push(g); } a.text = d.join(b); } function d(a, b, c, d) { for (var e, f, g = 0; g < a.length; g++) { a[g].y === b.y && (void 0 === e ? e = g : f = g); } void 0 === f && (f = e); e !== f && a[f].x < a[e].x && (g = e, e = f, f = g); d.o = a; d.q = b; d.vd = c; d.tf = e; d.uf = f; } function c(a, b, c, d, e, f, h) { var k = a.lineHeight, r = Math.max(a.eb, 0.001), m = a.tb, n = b.md, s = c.vd, p = c.q, l = void 0, q = void 0; switch (a.verticalAlign) { case 'top': s = p.y + p.i - s.y; break; case 'bottom': s = s.y - p.y; break; default: s = 2 * Math.min(s.y - p.y, p.y + p.i - s.y); } m = Math.min(s, m * c.q.i); if (0 >= m) h.la = !1;else { s = d; e = Math.min(e, m); p = Math.min(1, m / Math.max(20, b.md.length)); do { var w = (s + e) / 2, t = Math.min(n.length, Math.floor((m + w * (k - 1 - 2 * r)) / (w * k))), y = void 0; if (0 < t) { var x = 1, Y = t; do { var $ = Math.floor((x + Y) / 2); if (g(a, b, $, w, c, f && w === d && $ === t, null, null)) { if (Y = l = y = $, x === Y) break; } else if (x = $ + 1, x > Y) break; } while (1); } void 0 !== y ? s = q = w : e = w; } while (e - s > p); void 0 === q ? (h.la = !1, h.fontSize = 0) : (h.la = !0, h.fontSize = q, h.mc = l, h.ec = f && w === s); } } function g(a, c, d, f, g, k, m, n) { var p = a.pb, l = f * (a.lineHeight - 1), q = a.verticalAlign, t = Math.max(a.eb, 0.001); a = e[a.Ne]; var y = c.md; c = c.lg; var z = g.o, L = g.vd, E = g.tf, I = g.uf, J; switch (q) { case 'top': g = L.y + f / 2 + f * t; J = 1; break; case 'bottom': g = L.y - (f * d + l * (d - 1)) + f / 2 - f * t; J = -1; break; default: g = L.y - (f * (d - 1) / 2 + l * (d - 1) / 2), J = 1; } q = g; for (t = 0; t < d; t++) { r[2 * t] = g - f / 2, r[2 * t + 1] = g + f / 2, g += J * f, g += J * l; } for (; s.length < r.length;) { s.push(Array(2)); } t = r; g = 2 * d; J = s; for (var R = z.length, Y = E, E = (E - 1 + R) % R, $ = I, I = (I + 1) % R, W = 0; W < g;) { for (var ea = t[W], ba = z[E]; ba.y < ea;) { Y = E, E = (E - 1 + R) % R, ba = z[E]; } for (var ca = z[I]; ca.y < ea;) { $ = I, I = (I + 1) % R, ca = z[I]; } var la = z[Y], ma = z[$], ca = ma.x + (ca.x - ma.x) * (ea - ma.y) / (ca.y - ma.y); J[W][0] = la.x + (ba.x - la.x) * (ea - la.y) / (ba.y - la.y); J[W][1] = ca; W++; } for (t = 0; t < d; t++) { z = 2 * t, g = L.x, J = g - s[z][0], R = s[z][1] - g, J = J < R ? J : R, R = g - s[z + 1][0], z = s[z + 1][1] - g, z = R < z ? R : z, w[t] = 2 * (J < z ? J : z) - p * f; } Y = a[b] * f / x; J = a[h] * f / x; p = 0; E = w[p]; L = 0; z = void 0; for (t = 0; t < y.length; t++) { g = y[t]; $ = c[t]; R = a[g] * f / x; if (L + R < E && y.length - t >= d - p && '\n' != z) L += R, ' ' === $ && (L += Y), m && m(g, z);else { if (R > E && (p !== d - 1 || !k)) return !1; if (p + 1 >= d) { if (k) { d = E - L - J; if (d > J || R > J) d = Math.floor(g.length * d / R), 0 < d && m && m(g.substring(0, d), z); m && m(h, void 0); n && n(p, q, g, z, L); return !0; } return !1; } p++; n && n(p, q, g, z, L); q += f; q += l; E = w[p]; L = R; ' ' === $ && (L += Y); if (R > E && (p !== d || !k)) return !1; } z = $; } n && n(p, q, void 0, void 0, L); return !0; } var m = { sb: 72, Zc: 0, lineHeight: 1.05, pb: 1, eb: 0.5, tb: 0.9, fontFamily: 'sans-serif', fontStyle: 'normal', fontWeight: 'normal', fontVariant: 'normal', verticalAlign: 'center' }, e = {}, b = ' ', h = "\u2026", n = "\u2010", q = "\xAD", p = "\u200B", r = [], s = [], w = [], t = { text: '', md: void 0, lg: void 0 }, y = { o: void 0, q: void 0, vd: void 0, tf: 0, uf: 0 }, x = 100; return { Le: a, xe: function xe(b, c, d, e, f, g, h, k, m, r, s, n) { var p, l = 0, q = 0; d = d.toString().trim(); !n && m.result && d === m.sg && Math.abs(r - m.ue) / r <= s && (p = m.result, p.la && (l = g.x - m.zg, q = g.y - m.Ag, s = m.jd, c.save(), c.translate(l, q), s.Ta(c), c.restore())); p || (s = m.jd, s.clear(), p = a(b, s, d, e, f, g, h, k), p.la && s.Ta(c), m.ue = r, m.zg = g.x, m.Ag = g.y, m.result = p, m.sg = d); return p.la ? { la: !0, mc: p.mc, fontSize: p.fontSize, da: { x: p.da.x + l, y: p.da.y + q, f: p.da.f, i: p.da.i }, ec: p.ec } : { la: !1 }; }, yi: function yi() { return { ue: 0, zg: 0, Ag: 0, result: void 0, jd: new ga(), sg: void 0 }; }, Ea: m }; }(); var Da = new function () { function a(a, d) { return function (c, g, m, e) { function b(a, c, e, f, g) { if (0 != a.length) { var r = a.shift(), s = k(r), n, p, l, q; if (d(f, g)) { n = c; l = s / f; do { s = r.shift(); p = s.vc; q = p / l; p = s; var P = e, F = l; p.x = n + q / 2; p.y = P + F / 2; m && h(s, n, e, q, l); n += q; } while (0 < r.length); return b(a, c, e + l, f, g - l); } n = e; q = s / g; do { s = r.shift(), p = s.vc, l = p / q, p = s, P = n, F = l, p.x = c + q / 2, p.y = P + F / 2, m && h(s, c, n, q, l), n += l; } while (0 < r.length); return b(a, c + q, e, f - q, g); } } function h(a, b, c, d, e) { a.o = [{ x: b, y: c }, { x: b + d, y: c }, { x: b + d, y: c + e }, { x: b, y: c + e }]; } var n = g.x, l = g.y, p = g.f; g = g.i; if (0 != c.length) if (1 == c.length) c[0].x = n + p / 2, c[0].y = l + g / 2, c[0].Ed = 0, m && h(c[0], n, l, p, g);else { c = c.slice(0); for (var r = 0, s = 0; s < c.length; s++) { r += c[s].T; } r = p * g / r; for (s = 0; s < c.length; s++) { c[s].vc = c[s].T * r; } e = a(c, p, g, [[c.shift()]], e); b(e, n, l, p, g); } }; } function l(a, d, c, g) { function m(a) { return Math.max(Math.pow(h * a / b, c), Math.pow(b / (h * a), g)); } var e = k(a), b = e * e, h = d * d; d = m(a[0].vc); for (e = 1; e < a.length; e++) { d = Math.max(d, m(a[e].vc)); } return d; } function k(a) { for (var d = 0, c = 0; c < a.length; c++) { d += a[c].vc; } return d; } this.te = a(function (a, d, c, g, m) { m = Math.pow(2, m); for (var e = 1 / m, b = d < c; 0 < a.length;) { var h = g[g.length - 1], n = a.shift(), q = b ? d : c, p = b ? m : e, r = b ? e : m, s = l(h, q, p, r); h.push(n); q = l(h, q, p, r); s < q && (h.pop(), g.push([n]), b ? c -= k(h) / d : d -= k(h) / c, b = d < c); } return g; }, function (a, d) { return a < d; }); this.Xb = a(function (a, d, c, g, k) { function e(a) { if (1 < g.length) { for (var c = g[g.length - 1], e = g[g.length - 2].slice(0), f = 0; f < c.length; f++) { e.push(c[f]); } l(e, d, b, h) < a && g.splice(-2, 2, e); } } for (var b = Math.pow(2, k), h = 1 / b; 0 < a.length;) { c = g[g.length - 1]; k = l(c, d, b, h); if (0 == a.length) return; var n = a.shift(); c.push(n); var q = l(c, d, b, h); k < q && (c.pop(), e(k), g.push([n])); } e(l(g[g.length - 1], d, b, h)); return g; }, function () { return !0; }); }(); function Ea(a) { var l = {}, k = a.Ud, f; a.c.j('model:loaded', function (a) { f = a; }); this.H = function () { a.c.p('api:initialized', this); }; this.Dc = function (a, c, f, m) { this.pd(l, c); this.qd(l, c); this.od(l, c, !1); m && m(l); a(k, l, f); }; this.ud = function (a, c, g, k, e, b, h) { if (a) { for (a = c.length - 1; 0 <= a; a--) { var n = c[a], l = D.extend({ group: n.group }, e); l[g] = k(n); b(l); } 0 < c.length && h(D.extend({ groups: Z.Mc(f, k).map(function (a) { return a.group; }) }, e)); } }; this.qd = function (a, c) { a.selected = c.selected; a.hovered = c.Eb; a.open = c.open; a.openness = c.Lb; a.exposed = c.U; a.exposure = c.ka; a.transitionProgress = c.ua; a.revealed = !c.ba.Na(); a.browseable = c.Qa ? c.M : void 0; a.visible = c.ea; a.labelDrawn = c.ra && c.ra.la; return a; }; this.pd = function (a, c) { var f = c.parent; a.group = c.group; a.parent = f && f.group; a.weightNormalized = c.xg; a.level = c.R - 1; a.siblingCount = f && f.e.length; a.hasChildren = !c.empty(); a.index = c.index; a.indexByWeight = c.Ed; a.description = c.description; a.attribution = c.na; return a; }; this.od = function (a, c, f) { a.polygonCenterX = c.K.x; a.polygonCenterY = c.K.y; a.polygonArea = c.K.ja; a.boxLeft = c.q.x; a.boxTop = c.q.y; a.boxWidth = c.q.f; a.boxHeight = c.q.i; if (c.ra && c.ra.la) { var k = c.ra.da; a.labelBoxLeft = k.x; a.labelBoxTop = k.y; a.labelBoxWidth = k.f; a.labelBoxHeight = k.i; a.labelFontSize = c.ra.fontSize; } f && c.aa && (a.polygon = c.aa.map(function (a) { return { x: a.x, y: a.y }; }), a.neighbors = c.C && c.C.map(function (a) { return a && a.group; })); return a; }; } var na = new function () { var a = window.console; this.Pa = function (a) { throw 'FoamTree: ' + a; }; this.info = function (l) { a.info('FoamTree: ' + l); }; this.warn = function (l) { a.warn('FoamTree: ' + l); }; }(); function Fa(a) { function l(b, c) { b.e = []; b.La = !0; var e = d(c), f = 0; if ('flattened' == a.Ua && 0 < c.length && 0 < b.R) { var g = c.reduce(function (a, b) { return a + D.B(b.weight, 1); }, 0), h = k(b.group, !1); h.description = !0; h.T = g * a.cc; h.index = f++; h.parent = b; h.R = b.R + 1; h.id = h.id + '_d'; b.e.push(h); } for (g = 0; g < c.length; g++) { var r = c[g], h = D.B(r.weight, 1); if (0 >= h) if (a.uj) h = 0.9 * e;else continue; r = k(r, !0); r.T = h; r.index = f; r.parent = b; r.R = b.R + 1; b.e.push(r); f++; } } function k(a, b) { var c = new Ga(); f(a); c.id = a.__id; c.group = a; b && (n[a.__id] = c); return c; } function f(a) { D.Q(a, '__id') || (Object.defineProperty(a, '__id', { enumerable: !1, configurable: !1, writable: !1, value: h }), h++); } function d(a) { for (var b = Number.MAX_VALUE, c = 0; c < a.length; c++) { var d = a[c].weight; 0 < d && b > d && (b = d); } b === Number.MAX_VALUE && (b = 1); return b; } function c(a) { if (!a.empty()) { a = a.e; var b = 0, c; for (c = a.length - 1; 0 <= c; c--) { var d = a[c].T; b < d && (b = d); } for (c = a.length - 1; 0 <= c; c--) { d = a[c], d.xg = d.T / b; } } } function g(a) { if (!a.empty()) { a = a.e.slice(0).sort(function (a, b) { return a.T < b.T ? 1 : a.T > b.T ? -1 : a.index - b.index; }); for (var b = 0; b < a.length; b++) { a[b].Ed = b; } } } function m() { for (var c = b.e.reduce(function (a, b) { return a + b.T; }, 0), d = 0; d < b.e.length; d++) { var e = b.e[d]; e.na && (e.T = Math.max(0.025, a.Ug) * c); } } var e = this, b = new Ga(), h, n, q, p, r; this.H = function () { return b; }; this.S = function (b) { var d = b.group.groups, e = a.qi; return !b.e && !b.description && d && 0 < d.length && r + d.length <= e ? (r += d.length, l(b, d), c(b), g(b), !0) : !1; }; this.Y = function (a) { function d(a) { var b = a.groups; if (b) for (var c = 0; c < b.length; c++) { var e = b[c]; f(e); var g = e.__id; n[g] = null; p[g] = a; g = e.id; D.V(g) || (q[g] = e); d(e); } } function e(a, b) { if (!a) return b; var c = Math.max(b, a.__id || 0), d = a.groups; if (d && 0 < d.length) for (var f = d.length - 1; 0 <= f; f--) { c = e(d[f], c); } return c; } b.group = a; b.Ca = !1; b.M = !1; b.Qa = !1; b.open = !0; b.Lb = 1; h = e(a, 0) + 1; n = {}; q = {}; p = {}; r = 0; a && (f(a), n[a.__id] = b, D.V(a.id) || (q[a.id] = a), d(a)); l(b, a && a.groups || []); (function (a) { if (!a.empty()) { var b = k({ attribution: !0 }); b.index = a.e.length; b.parent = a; b.R = a.R + 1; b.na = !0; a.e.push(b); } })(b); c(b); m(); g(b); }; this.update = function () { Z.Fa(b, function (a) { if (!a.empty()) { a = a.e; for (var b = d(a.map(function (a) { return a.group; })), c = 0; c < a.length; c++) { var e = a[c]; e.T = 0 < e.group.weight ? e.group.weight : 0.9 * b; } } }); c(b); m(); g(b); }; this.k = function (a) { return function () { if (D.V(a) || D.nf(a)) return []; if (Array.isArray(a)) return a.map(e.d, e); if (D.jc(a)) { if (D.Q(a, '__id')) return [e.d(a)]; if (D.Q(a, 'all')) { var c = []; Z.F(b, function (a) { c.push(a); }); return c; } if (D.Q(a, 'groups')) return e.k(a.groups); } return [e.d(a)]; }().filter(function (a) { return void 0 !== a; }); }; this.d = function (a) { if (D.jc(a) && D.Q(a, '__id')) { if (a = a.__id, D.Q(n, a)) { if (null === n[a]) { for (var b = p[a], c = []; b;) { b = b.__id; c.push(b); if (n[b]) break; b = p[b]; } for (b = c.length - 1; 0 <= b; b--) { this.S(n[c[b]]); } } return n[a]; } } else if (D.Q(q, a)) return this.d(q[a]); }; this.A = function (a, b, c) { return { e: e.k(a), Ia: D.B(a && a[b], !0), Ha: D.B(a && a.keepPrevious, c) }; }; } function Ha(a, l, k) { var f = {}; l.Ha && Z.F(a, function (a) { k(a) && (f[a.id] = a); }); a = l.e; l = l.Ia; for (var d = a.length - 1; 0 <= d; d--) { var c = a[d]; f[c.id] = l ? c : void 0; } var g = []; D.Ga(f, function (a) { void 0 !== a && g.push(a); }); return g; } function Ia(a) { function l(a, b) { var c = a.ka; b.opacity = 1; b.Ka = 1; b.va = 0 > c ? 1 - p.ei / 100 * c : 1; b.wa = 0 > c ? 1 - p.fi / 100 * c : 1; b.fa = 0 > c ? 1 + 0.5 * c : 1; } function k(a) { a = a.ka; return Math.max(0.001, 0 === a ? 1 : 1 + a * (p.Xa - 1)); } function f(a, b) { for (var c = a.reduce(function (a, b) { a[b.id] = b; return a; }, {}), d = a.length - 1; 0 <= d; d--) { Z.F(a[d], function (a) { c[a.id] = void 0; }); } var e = []; D.Ga(c, function (a) { a && Z.Ge(a, function (a) { a.open || e.push(a); }); }); var f = []; D.Ga(c, function (a) { a && a.open && f.push(a); }); d = []; 0 !== e.length && d.push(x.Kb({ e: e, Ia: !0, Ha: !0 }, b, !0)); return pa(d); } function d(d, f, k, n) { var l = m(); if (0 === d.length && !l) return new V().J().L(); var q = d.reduce(function (a, b) { a[b.id] = !0; return a; }, {}), s = []; d = []; if (A.reduce(function (a, b) { return a || q[b.id] && (!b.U || 1 !== b.ka) || !q[b.id] && !b.parent.U && (b.U || -1 !== b.ka); }, !1)) { var x = [], C = {}; A.forEach(function (a) { q[a.id] && (a.U || s.push(a), a.U = !0, Z.Fa(a, function (a) { x.push(b(a, 1)); C[a.id] = !0; })); }); 0 < x.length ? (Z.F(r, function (a) { q[a.id] || (a.U && s.push(a), a.U = !1); C[a.id] || x.push(b(a, -1)); }), d.push(y.D.m({}).Za(x).call(h).bb()), c(q), d.push(g(l)), k && (t.sc(B, p.Qc, p.Wa, X.pa(p.gc)), t.Qb())) : (d.push(e(k)), f && Z.F(r, function (a) { a.U && s.push(a); })); } return pa(d).N(function () { w.ud(f, s, 'exposed', function (a) { return a.U; }, { indirect: n }, a.options.Ef, a.options.Df); }); } function c(a) { A.reduce(n(!0, void 0, function (b) { return b.U || a[b.id]; }), q(B)); B.x -= B.f * (p.Xa - 1) / 2; B.y -= B.i * (p.Xa - 1) / 2; B.f *= p.Xa; B.i *= p.Xa; } function g(b) { if (b || !t.Rd()) return y.D.m(s).ia({ duration: 0.7 * p.Wa, G: { x: { end: B.x + B.f / 2, P: X.pa(p.gc) }, y: { end: B.y + B.i / 2, P: X.pa(p.gc) } }, ca: function ca() { a.c.p('foamtree:dirty', !0); } }).bb(); s.x = B.x + B.f / 2; s.y = B.y + B.i / 2; return new V().J().L(); } function m() { return !!A && A.reduce(function (a, b) { return a || 0 !== b.ka; }, !1); } function e(a) { var c = [], d = []; Z.F(r, function (a) { 0 !== a.ka && d.push(b(a, 0, function () { this.U = !1; })); }); c.push(y.D.m({}).Za(d).bb()); t.content(0, 0, K, C); a && (c.push(t.reset(p.Wa, X.pa(p.gc))), t.Qb()); return pa(c); } function b(b, c, d) { var e = y.D.m(b); 0 === b.ka && 0 !== c && e.call(function () { this.Cc(H); this.Ab(l); }); e.ia({ duration: p.Wa, G: { ka: { end: c, P: X.pa(p.gc) } }, ca: function ca() { r.I = !0; r.Ma = !0; a.c.p('foamtree:dirty', !0); } }); 0 === c && e.call(function () { this.Nd(); this.nc(); this.fd(H); this.ed(l); }); return e.call(d).xa(); } function h() { var a = r.e.reduce(n(!1, H.Ub, void 0), q({})).da, b = p.Qc, c = Math.min(a.x, B.x - B.f * b), d = Math.max(a.x + a.f, B.x + B.f * (1 + b)), e = Math.min(a.y, B.y - B.i * b), a = Math.max(a.y + a.i, B.y + B.i * (1 + b)); t.content(c, e, d - c, a - e); } function n(a, b, c) { var d = {}; return function (e, f) { if (!c || c(f)) { for (var g = a ? f.aa || f.o : f.o, h, k = g.length - 1; 0 <= k; k--) { h = void 0 !== b ? b(f, g[k], d) : g[k], e.$c = Math.min(e.$c, h.x), e.Od = Math.max(e.Od, h.x), e.ad = Math.min(e.ad, h.y), e.Pd = Math.max(e.Pd, h.y); } e.da.x = e.$c; e.da.y = e.ad; e.da.f = e.Od - e.$c; e.da.i = e.Pd - e.ad; } return e; }; } function q(a) { return { $c: Number.MAX_VALUE, Od: Number.MIN_VALUE, ad: Number.MAX_VALUE, Pd: Number.MIN_VALUE, da: a }; } var p = a.options, r, s, w, t, y, x, A, B, K, C, H = { rf: function rf(a, b) { b.scale = k(a); return !1; }, Tb: function Tb(a, b) { var c = k(a), d = s.x, e = s.y; b.translate(d, e); b.scale(c, c); b.translate(-d, -e); }, Vb: function Vb(a, b, c) { a = k(a); var d = s.x, e = s.y; c.x = (b.x - d) / a + d; c.y = (b.y - e) / a + e; }, Ub: function Ub(a, b, c) { a = k(a); var d = s.x, e = s.y; c.x = (b.x - d) * a + d; c.y = (b.y - e) * a + e; return c; } }; a.c.j('stage:initialized', function (a, b, c, d) { s = { x: c / 2, y: d / 2 }; K = c; C = d; B = { x: 0, y: 0, f: K, i: C }; }); a.c.j('stage:resized', function (a, b, c, d) { s.x *= c / a; s.y *= d / b; K = c; C = d; }); a.c.j('api:initialized', function (a) { w = a; }); a.c.j('zoom:initialized', function (a) { t = a; }); a.c.j('model:loaded', function (a, b) { r = a; A = b; }); a.c.j('model:childrenAttached', function (a) { A = a; }); a.c.j('timeline:initialized', function (a) { y = a; }); a.c.j('openclose:initialized', function (a) { x = a; }); var Q = ['groupExposureScale', 'groupUnexposureScale', 'groupExposureZoomMargin']; a.c.j('options:changed', function (a) { D.ob(a, Q) && m() && (c({}), t.Bj(B, p.Qc), t.Qb()); }); this.H = function () { a.c.p('expose:initialized', this); }; this.fc = function (a, b, c, e) { var g = a.e.reduce(function (a, b) { for (var c = b; c = c.parent;) { a[c.id] = !0; } return a; }, {}), h = Ha(r, a, function (a) { return a.U && !a.open && !g[a.id]; }), k = new V(); f(h, b).N(function () { d(h.filter(function (a) { return a.o && a.aa; }), b, c, e).N(k.J); }); return k.L(); }; } function Ja(a) { function l(d) { function b(a, b) { var c = Math.min(1, Math.max(0, a.ua)); b.opacity = c; b.va = 1; b.wa = c; b.Ka = c; b.fa = a.Hb; } var h = a.options, k = h.pj, l = h.qj, p = h.mj, r = h.nj, s = h.oj, w = h.fe, t = k + l + p + r + s, y = 0 < t ? w / t : 0, x = []; m.hb(h.hg, h.gg, h.ig, h.jg, h.fg); if (0 === y && d.e && d.M) { w = d.e; for (t = 0; t < w.length; t++) { var A = w[t]; A.ua = 1; A.Hb = 1; A.Ab(b); A.nc(); A.ed(b); } d.I = !0; a.c.p('foamtree:dirty', 0 < y); return new V().J().L(); } if (d.e && d.M) { Ca.Ja(d, Ca.ya(d, a.options.he), function (c, d, e) { c.Cc(m); c.Ab(b); e = 'groups' === a.options.ge ? e : d; d = f.D.m(c).fb(e * y * k).ia({ duration: y * l, G: { ua: { end: 1, P: X.pa(h.lj) } }, ca: function ca() { this.I = !0; a.c.p('foamtree:dirty', 0 < y); } }).xa(); e = f.D.m(c).fb(g ? y * (p + e * r) : 0).ia({ duration: g ? y * s : 0, G: { Hb: { end: 1, P: X.Jb } }, ca: function ca() { this.I = !0; a.c.p('foamtree:dirty', 0 < y); } }).xa(); c = f.D.m(c).Za([d, e]).oe().jb(function () { this.Nd(); this.nc(); this.fd(m); this.ed(b); }).xa(); x.push(c); }); c.d(); var B = new V(); f.D.m({}).Za(x).call(function () { c.k(); B.J(); }).start(); return B.L(); } return new V().J().L(); } var k, f, c = new qa(D.ta); a.c.j('stage:initialized', function () {}); a.c.j('stage:resized', function () {}); a.c.j('stage:newLayer', function (a, b) {}); a.c.j('model:loaded', function (a) { k = a; c.clear(); }); a.c.j('zoom:initialized', function () {}); a.c.j('timeline:initialized', function (a) { f = a; }); var g = !1; a.c.j('render:renderers:resolved', function (a) { g = a.labelPlainFill || !1; }); var m = new function () { var a = 0, b = 0, c = 0, d = 0, f = 0, g = 0; this.hb = function (k, m, l, t, y) { a = 1 + m; b = 1 - a; c = l; d = t; f = y; g = k; }; this.rf = function (g, k) { k.scale = a + b * g.ua; return 0 !== f || 0 !== c || 0 !== d; }; this.Tb = function (k, m) { var l = a + b * k.ua, t = k.parent, y = g * k.x + (1 - g) * t.x, x = g * k.y + (1 - g) * t.y; m.translate(y, x); m.scale(l, l); l = 1 - k.ua; m.rotate(f * Math.PI * l); m.translate(-y, -x); m.translate(t.q.f * c * l, t.q.i * d * l); }; this.Vb = function (f, k, m) { var l = a + b * f.ua, q = g * f.x + (1 - g) * f.parent.x, x = g * f.y + (1 - g) * f.parent.y, A = 1 - f.ua; f = f.parent; m.x = (k.x - q) / l + q - f.q.f * c * A; m.y = (k.y - x) / l + x - f.q.i * d * A; }; this.Ub = function (f, k, m) { var l = a + b * f.ua, q = g * f.x + (1 - g) * f.parent.x, x = g * f.y + (1 - g) * f.parent.y, A = 1 - f.ua; f = f.parent; m.x = (k.x - q) * l + q - f.q.f * c * A; m.y = (k.y - x) * l + x - f.q.i * d * A; }; }(); this.H = function () {}; this.k = function () { function d(a, b) { var c = Math.min(1, Math.max(0, a.ua)); b.opacity = c; b.va = 1; b.wa = c; b.Ka = c; b.fa = a.Hb; } function b(a, b) { var c = Math.min(1, Math.max(0, a.Zd)); b.opacity = c; b.Ka = c; b.va = 1; b.wa = 1; b.fa = a.Hb; } var h = a.options, n = h.Yd, l = h.Ii, p = h.Ji, r = h.Ki, s = h.Ei, w = h.Fi, t = h.Gi, y = h.Ai, x = h.Bi, A = h.Ci, B = s + w + t + y + x + A + l + p + r, K = 0 < B ? n / B : 0, C = []; c.A() ? m.hb(h.Oi, h.Mi, h.Pi, h.Qi, h.Li) : m.hb(h.hg, h.gg, h.ig, h.jg, h.fg); Ca.Ja(k, Ca.ya(k, a.options.Ni), function (c, k, n) { var B = 'groups' === a.options.Hi ? n : k; C.push(f.D.m(c).call(function () { this.Ab(d); }).fb(g ? K * (s + B * w) : 0).ia({ duration: g ? K * t : 0, G: { Hb: { end: 0, P: X.Jb } }, ca: function ca() { this.I = !0; a.c.p('foamtree:dirty', !0); } }).xa()); Z.F(c, function (c) { C.push(f.D.m(c).call(function () { this.Cc(m); this.Ab(b); }).fb(K * (y + x * B)).ia({ duration: K * A, G: { Zd: { end: 0, P: X.Jb } }, ca: function ca() { this.I = !0; a.c.p('foamtree:dirty', !0); } }).jb(function () { this.selected = !1; this.fd(m); }).xa()); }); C.push(f.D.m(c).call(function () { this.Cc(m); }).fb(K * (l + p * B)).ia({ duration: K * r, G: { ua: { end: 0, P: X.pa(h.Di) } }, ca: function ca() { this.I = !0; a.c.p('foamtree:dirty', !0); } }).jb(function () { this.selected = !1; this.fd(m); }).xa()); }); return f.D.m({}).Za(C).bb(); }; this.d = function (a) { return l(a); }; } function Ka(a) { function l(a, b) { var d = []; Z.F(g, function (b) { if (b.e) { var c = D.Q(a, b.id); b.open !== c && (c || b.U || Z.F(b, function (a) { if (a.U) return d.push(b), !1; })); } }); if (0 === d.length) return new V().J().L(); var f; for (f = d.length - 1; 0 <= f; f--) { d[f].open = !1; } var k = c.fc({ e: d, Ia: !0, Ha: !0 }, b, !0, !0); for (f = d.length - 1; 0 <= f; f--) { d[f].open = !0; } return k; } function k(c, b, h) { function k(b, c) { b.Ab(l); var e = d.D.m(b).ia({ duration: a.options.cd, G: { Lb: { end: c ? 1 : 0, P: X.ze } }, ca: function ca() { this.I = !0; a.c.p('foamtree:dirty', !0); } }).call(function () { this.open = c; b.gb = !1; }).jb(function () { this.nc(); this.ed(l); delete f[this.id]; }).xa(); return f[b.id] = e; } function l(a, b) { b.opacity = 1 - a.Lb; b.va = 1; b.wa = 1; b.fa = 1; b.Ka = 1; } var p = [], r = []; Z.F(g, function (a) { if (a.M && a.X) { var b = D.Q(c, a.id), d = f[a.id]; if (d && d.Gb()) d.stop();else if (a.open === b) return; a.gb = b; b || (a.open = b, a.Td = !1); r.push(a); p.push(k(a, b)); } }); return 0 < p.length ? (a.c.p('openclose:changing'), d.D.m({}).Za(p).bb().N(function () { m.ud(b, r, 'open', function (a) { return a.open; }, { indirect: h }, a.options.Mf, a.options.Lf); })) : new V().J().L(); } var f, d, c, g, m; a.c.j('api:initialized', function (a) { m = a; }); a.c.j('model:loaded', function (a) { g = a; f = {}; }); a.c.j('timeline:initialized', function (a) { d = a; }); a.c.j('expose:initialized', function (a) { c = a; }); this.H = function () { a.c.p('openclose:initialized', this); }; this.Kb = function (c, b, d) { if ('flattened' == a.options.Ua) return new V().J().L(); c = Ha(g, c, function (a) { return a.open || a.gb; }); for (var f = new V(), m = 0; m < c.length; m++) { c[m].gb = !0; } 0 < c.length && a.c.p('foamtree:attachChildren', c); var p = c.reduce(function (a, b) { a[b.id] = !0; return a; }, {}); l(p, b).N(function () { k(p, b, d).N(f.J); }); return f.L(); }; } function La(a) { function l(d, c) { var g = Ha(k, d, function (a) { return a.selected; }); Z.F(k, function (a) { !0 === a.selected && (a.selected = !a.selected, a.I = !a.I, a.ab = !a.ab); }); var m; for (m = g.length - 1; 0 <= m; m--) { var e = g[m]; e.selected = !e.selected; e.I = !e.I; e.ab = !e.ab; } var b = []; Z.F(k, function (a) { a.I && b.push(a); }); 0 < b.length && a.c.p('foamtree:dirty', !1); f.ud(c, b, 'selected', function (a) { return a.selected; }, {}, a.options.Of, a.options.Nf); } var k, f; a.c.j('api:initialized', function (a) { f = a; }); a.c.j('model:loaded', function (a) { k = a; }); this.H = function () { a.c.p('select:initialized', this); }; this.select = function (a, c) { return l(a, c); }; } function Ma(a) { function l(a) { return function (b) { a.call(this, { x: b.x, y: b.y, scale: b.scale, wd: b.delta, ctrlKey: b.ctrlKey, metaKey: b.metaKey, altKey: b.altKey, shiftKey: b.shiftKey, xb: b.secondary, touches: b.touches }); }; } function k() { function b(a) { return function (b) { b.x *= N / q.clientWidth; b.y *= U / q.clientHeight; return a(b); }; } 'external' !== n.gf && ('hammerjs' === n.gf && D.Q(window, 'Hammer') && (E.H(q), E.m('tap', b(h.d), !0), E.m('doubletap', b(h.k), !0), E.m('hold', b(h.ya), !0), E.m('touch', b(h.Aa), !1), E.m('release', b(h.Ba), !1), E.m('dragstart', b(h.Y), !0), E.m('drag', b(h.A), !0), E.m('dragend', b(h.S), !0), E.m('transformstart', b(h.Va), !0), E.m('transform', b(h.Ja), !0), E.m('transformend', b(h.cb), !0)), F = new ta(q), T = new sa(), F.d(b(h.d)), F.k(b(h.k)), F.ya(b(h.ya)), F.Ba(b(h.Aa)), F.Pa(b(h.Ba)), F.Y(b(h.Y)), F.A(b(h.A)), F.S(b(h.S)), F.za(b(h.za)), F.Ja(b(h.za)), F.Aa(b(h.Pa)), T.addEventListener('keyup', function (b) { var c = !1, d = void 0, e = n.Sf({ keyCode: b.keyCode, preventDefault: function preventDefault() { c = !0; }, preventOriginalEventDefault: function preventOriginalEventDefault() { d = 'prevent'; }, allowOriginalEventDefault: function allowOriginalEventDefault() { d = 'allow'; } }); 'prevent' === d && b.preventDefault(); (c = c || 0 <= e.indexOf(!1)) || 27 === b.keyCode && a.c.p('interaction:reset'); })); } function f() { p.Hc(2) ? a.c.p('interaction:reset') : p.normalize(n.wc, X.pa(n.xc)); } function d(a) { return function () { x.empty() || a.apply(this, arguments); }; } function c(a, b, c) { var d = {}, f = {}; return function (g) { var h; switch (a) { case 'click': h = n.yf; break; case 'doubleclick': h = n.zf; break; case 'hold': h = n.Ff; break; case 'hover': h = n.Gf; break; case 'mousemove': h = n.If; break; case 'mousewheel': h = n.Kf; break; case 'mousedown': h = n.Hf; break; case 'mouseup': h = n.Jf; break; case 'dragstart': h = n.Cf; break; case 'drag': h = n.Af; break; case 'dragend': h = n.Bf; break; case 'transformstart': h = n.Rf; break; case 'transform': h = n.Pf; break; case 'transformend': h = n.Qf; } var k = !1, l = !h.empty(), r = p.absolute(g, d), q = (b || l) && m(r), s = (b || l) && e(r); l && (l = q ? q.group : null, r = q ? q.Vb(r, f) : r, g.Mb = void 0, h = h({ type: a, group: l, topmostClosedGroup: l, bottommostOpenGroup: s ? s.group : null, x: g.x, y: g.y, xAbsolute: r.x, yAbsolute: r.y, scale: D.B(g.scale, 1), secondary: g.xb, touches: D.B(g.touches, 1), delta: D.B(g.wd, 0), ctrlKey: g.ctrlKey, metaKey: g.metaKey, altKey: g.altKey, shiftKey: g.shiftKey, preventDefault: function preventDefault() { k = !0; }, preventOriginalEventDefault: function preventOriginalEventDefault() { g.Mb = 'prevent'; }, allowOriginalEventDefault: function allowOriginalEventDefault() { g.Mb = 'allow'; } }), k = k || 0 <= h.indexOf(!1), q && q.na && 'click' === a && (k = !1)); k || c && c({ Ec: q, Wg: s }, g); }; } function g(a) { function b(a, c) { var d = c.e; if (d) { for (var e = -Number.MAX_VALUE, f, g = 0; g < d.length; g++) { var h = d[g]; !h.description && h.ea && I(h, a) && h.scale > e && (f = h, e = h.scale); } var k; f && (k = b(a, f)); return k || f; } } return b(a, x); } function m(a, b) { var c; if ('flattened' == n.Ua) c = g(a);else { c = b || 0; for (var d = u.length, e = void 0, f = 0; f < d; f++) { var h = u[f]; h.scale > c && !1 === h.open && h.ea && I(h, a) && (e = h, c = h.scale); } c = e; } return c; } function e(a) { var b = void 0, c = 0; Z.Kc(x, function (d) { !0 === d.open && d.ea && d.scale > c && I(d, a) && (b = d, c = d.scale); }); return b; } var b = v.mf(), h = this, n = a.options, q, p, r, s, w, t, y, x, A = !1, B, K, C, H, Q, O, P, F, T, N, U; a.c.j('stage:initialized', function (a, b, c, d) { q = b; N = c; U = d; k(); }); a.c.j('stage:resized', function (a, b, c, d) { N = c; U = d; }); a.c.j('stage:disposed', function () { F.lb(); E.lb(); T.d(); }); a.c.j('expose:initialized', function (a) { s = a; }); a.c.j('zoom:initialized', function (a) { p = a; }); a.c.j('openclose:initialized', function (a) { w = a; }); a.c.j('select:initialized', function (a) { t = a; }); a.c.j('titlebar:initialized', function (a) { y = a; }); a.c.j('timeline:initialized', function (a) { r = a; }); var u; a.c.j('model:loaded', function (a, b) { x = a; u = b; }); a.c.j('model:childrenAttached', function (a) { u = a; }); this.H = function () {}; this.Aa = d(c('mousedown', !1, function () { p.vi(); })); this.Ba = d(c('mouseup', !1, void 0)); this.d = d(c('click', !0, function (a, b) { if (!b.xb && !b.shiftKey) { var c = a.Ec; c && (c.na ? document.location.href = xa.kg('iuuq;..b`ssnurd`sbi/bnl.gn`lusdd') : t.select({ e: [c], Ia: !c.selected, Ha: b.metaKey || b.ctrlKey }, !0)); } })); this.k = d(c('doubleclick', !0, function (b, c) { var d, e; if (c.xb || c.shiftKey) { if (d = b.Ec) d.parent.U && (d = d.parent), e = { e: d.parent !== x ? [d.parent] : [], Ia: !0, Ha: !1 }, t.select(e, !0), s.fc(e, !0, !0, !1); } else if (d = b.Ec) e = { e: [d], Ia: !0, Ha: !1 }, d.gb = !0, a.c.p('foamtree:attachChildren', [d]), s.fc(e, !0, !0, !1); d && r.D.m({}).fb(n.Wa / 2).call(function () { w.Kb({ e: Z.Mc(x, function (a) { return a.Td && !Z.ki(d, a); }), Ia: !1, Ha: !0 }, !0, !0); d.Td = !0; w.Kb({ e: [d], Ia: !(c.xb || c.shiftKey), Ha: !0 }, !0, !0); }).start(); })); this.ya = d(c('hold', !0, function (a, b) { var c = !(b.metaKey || b.ctrlKey || b.shiftKey) && !b.xb, d; (d = c ? a.Ec : a.Wg) && d !== x && w.Kb({ e: [d], Ia: c, Ha: !0 }, !0, !1); })); this.Y = d(c('dragstart', !1, function (a, b) { B = b.x; K = b.y; C = Date.now(); A = !0; })); this.A = d(c('drag', !1, function (a, b) { if (A) { var c = Date.now(); O = Math.min(1, c - C); C = c; var c = b.x - B, d = b.y - K; p.ti(c, d); H = c; Q = d; B = b.x; K = b.y; } })); this.S = d(c('dragend', !1, function () { if (A) { A = !1; var a = Math.sqrt(H * H + Q * Q) / O; 4 <= a ? p.ui(a, H, Q) : p.wf(); } })); this.Va = d(c('transformstart', !1, function (a, b) { P = 1; B = b.x; K = b.y; })); var z = 1, L = !1; this.Ja = d(c('transform', !1, function (a, b) { var c = b.scale - 0.01; p.Qg(b, c / P, b.x - B, b.y - K); P = c; B = b.x; K = b.y; z = P; L = L || 2 < b.touches; })); this.cb = d(c('transformend', !1, function () { L && 0.8 > z ? a.c.p('interaction:reset') : f(); L = !1; })); this.Pa = d(c('mousewheel', !1, function () { var a = D.ah(function () { f(); }, 300); return function (c, d) { var e = n.Hj; 1 !== e && (e = Math.pow(e, d.wd), b ? (p.Rg(d, e), a()) : p.Yb(d, e, n.wc, X.pa(n.xc)).N(f)); }; }())); this.za = d(function () { var b = void 0, d = {}, e = !1, f, g = c('hover', !1, function () { b && (b.Eb = !1, b.I = !0); f && (f.Eb = !0, f.I = !0); y.update(f); a.c.p('foamtree:dirty', !1); }), h = c('mousemove', !1, void 0); return function (a) { if ('out' === a.type) f = void 0, e = f !== b;else if (p.absolute(a, d), b && !b.open && I(b, d)) { var c = m(d, b.scale); c && c != b ? (e = !0, f = c) : e = !1; } else f = m(d), e = f !== b; e && (g(a), b = f, e = !1); b && h(a); }; }()); this.hb = { click: l(this.d), doubleclick: l(this.k), hold: l(this.ya), mouseup: l(this.Ba), mousedown: l(this.Aa), dragstart: l(this.Y), drag: l(this.A), dragend: l(this.S), transformstart: l(this.Va), transform: l(this.Ja), transformend: l(this.cb), hover: l(this.za), mousewheel: l(this.Pa) }; var E = function () { function a(b, c) { return function (a) { a = a.gesture; var d = a.center, d = ra.Ie(q, d.pageX, d.pageY, {}); d.scale = a.scale; d.xb = 1 < a.touches.length; d.touches = a.touches.length; b.call(q, d); (void 0 === d.Mb && c || 'prevent' === d.Mb) && a.preventDefault(); }; } var b, c = {}; return { H: function H(a) { b = window.Hammer(a, { doubletap_interval: 350, hold_timeout: 400, doubletap_distance: 10 }); }, m: function m(d, e, f) { c[d] = e; b.on(d, a(e, f)); }, lb: function lb() { b && D.Ga(c, function (a, c) { b.off(c, a); }); } }; }(), I = function () { var a = {}; return function (b, c) { b.Vb(c, a); return b.aa && M.Va(b.aa, a); }; }(); } function Na(a) { function l(a, c, f, k) { var e, b = 0, h = []; for (e = 0; e < c.length; e++) { var l = Math.sqrt(M.d(c[e], c[(e + 1) % c.length])); h.push(l); b += l; } for (e = 0; e < h.length; e++) { h[e] /= b; } a[0].x = f.x; a[0].y = f.y; var q = l = b = 0; for (e = 1; e < a.length; e++) { for (var p = a[e], r = 0.95 * Math.pow(e / a.length, k), b = b + 0.3819; l < b;) { l += h[q], q = (q + 1) % h.length; } var s = (q - 1 + h.length) % h.length, w = 1 - (l - b) / h[s], t = c[s].x, s = c[s].y, y = c[q].x, x = c[q].y, t = (t - f.x) * r + f.x, s = (s - f.y) * r + f.y, y = (y - f.x) * r + f.x, x = (x - f.y) * r + f.y; p.x = t * (1 - w) + y * w; p.y = s * (1 - w) + x * w; } } var k = { random: { Fb: function Fb(a, c) { for (var f = 0; f < a.length; f++) { var k = a[f]; k.x = c.x + Math.random() * c.f; k.y = c.y + Math.random() * c.i; } }, Zb: 'box' }, ordered: { Fb: function Fb(a, c) { var g = a.slice(0); f.lc && g.sort(Oa); Da.Xb(g, c, !1, f.ce); }, Zb: 'box' }, squarified: { Fb: function Fb(a, c) { var g = a.slice(0); f.lc && g.sort(Oa); Da.te(g, c, !1, f.ce); }, Zb: 'box' }, fisheye: { Fb: function Fb(a, c, g) { a = a.slice(0); f.lc && a.sort(Oa); l(a, c, g, 0.25); }, Zb: 'polygon' }, blackhole: { Fb: function Fb(a, c, g) { a = a.slice(0); f.lc && a.sort(Oa).reverse(); l(a, c, g, 1); }, Zb: 'polygon' } }; k.order = k.ordered; k.treemap = k.squarified; var f = a.options; this.d = function (a, c, g) { if (0 < a.length) { g = k[g.relaxationInitializer || g.initializer || f.gj || 'random']; if ('box' === g.Zb) { var m = M.q(c, {}); g.Fb(a, m); M.Bc(a, M.A(m), c); } else g.Fb(a, c, M.k(c, {})); for (m = a.length - 1; 0 <= m; m--) { g = a[m]; if (g.description) { a = M.qe(c, f.Ic, f.bh); g.x = a.x; g.y = a.y; break; } if (g.na) { a = M.qe(c, f.ve, f.Sg); g.x = a.x; g.y = a.y; break; } } } }; } function Pa(a) { var l, k = a.options, f = new Qa(a, this), d = new Ra(a, this), c = { relaxed: f, ordered: d, squarified: d }, g = c[a.options.Wc] || f; this.Bg = 5e-5; a.c.j('model:loaded', function (a) { l = a; }); a.c.j('options:changed', function (a) { a.layout && D.Q(c, k.Wc) && (g = c[k.Wc]); }); this.step = function (a, c, b, d) { return g.step(a, c, b, d); }; this.complete = function (a) { g.complete(a); }; this.kf = function (a) { return a === l ? !0 : 2 * Math.sqrt(a.K.ja / (Math.PI * a.e.length)) >= Math.max(k.Ve, 5e-5); }; this.yd = function (a, c) { for (var b = Math.pow(k.Ra, a.R), d = k.mb * b, b = k.Ad * b, f = a.e, l = f.length - 1; 0 <= l; l--) { var p = f[l]; g.we(p, b); var r = p; r.aa = 0 < d ? Aa.cb(r.o, d) : r.o; r.aa && (M.q(r.aa, r.q), M.re(r.aa, r.K)); p.e && c.push(p); } }; this.qc = function (a) { g.qc(a); }; this.Nb = function (a) { g.Nb(a); }; } function Qa(a, l) { function k(a) { if (a.e) { a = a.e; for (var b = 0; b < a.length; b++) { var c = a[b]; c.uc = c.rc * n.Rh; } } } function f(a, c) { l.kf(a) && (a.u || (a.u = Aa.cb(a.o, n.Ad * Math.pow(n.Ra, a.R - 1)), a.u && 'flattened' == n.Ua && 'stab' == n.dc && m(a)), a.u && (b.Nb(a), q.d(d(a), a.u, a.group), a.M = !0, c(a)), k(a)); } function d(a) { return 'stab' == n.dc && 0 < a.e.length && a.e[0].description ? a.e.slice(1) : a.e; } function c(a) { var b = d(a); Ba.S(b, a.u); Ba.zc(b, a.u); return Ca.Dg(a) * Math.sqrt(h.K.ja / a.K.ja); } function g(a) { return a < n.bg || 1e-4 > a; } function m(a) { var b = n.cc / (1 + n.cc), c = M.q(a.u, {}), d = { x: c.x, y: 0 }, e = c.y, f = c.i, g = n.Ce * Math.pow(n.Ra, a.R - 1), h = f * n.Be, k = n.Ic; 'bottom' == k || 0 <= k && 180 > k ? (k = Math.PI, e += f, f = -1) : (k = 0, f = 1); for (var l, m = a.u, p = k, q = 0, P = 1, F = M.k(m, {}), T = F.ja, b = T * b, N = 0; q < P && 20 > N++;) { var U = (q + P) / 2; d.y = c.y + c.i * U; l = M.Wb(m, d, p); M.k(l[0], F); var u = F.ja - b; if (0.01 >= Math.abs(u) / T) break;else 0 < (0 == p ? 1 : -1) * u ? P = U : q = U; } M.q(l[0], c); if (c.i < g || c.i > h) d.y = c.i < g ? e + f * Math.min(g, h) : e + f * h, l = M.Wb(a.u, d, k); a.e[0].o = l[0]; a.u = l[1]; } function e(a) { a !== h && 2 * Math.sqrt(a.K.ja / (Math.PI * a.e.length)) < Math.max(0.85 * n.Ve, l.Bg) && (a.M = !1, a.Ca = !1, a.Qa = !0, a.u = null); } var b = this, h, n = a.options, q = new Na(a), p = 0; a.c.j('model:loaded', function (a) { h = a; p = 0; }); this.step = function (a, b, k, m) { function q(b) { b.M && b.Ca ? e(b) : b.Qa && b.o && f(b, function () { var c = d(b); Ba.S(c, b.u); Ba.zc(c, b.u); a(b); }); if (!b.u || !b.M) return 0; var h; b.parent && b.parent.Z || b.La ? (h = c(b), m && m(b), b.La = !g(h) && !k, b.Z = !0) : h = 0; l.yd(b, B); return h; } function x(a, b, c) { p < a && (p = a); var d = n.bg; n.Sd(b ? 1 : 1 - (a - d) / (p - d || 1), b, c); b && (p = 0); } for (var A = 0, B = [h]; 0 < B.length;) { A = Math.max(A, q(B.shift())); } var K = g(A); b && x(A, K, k); return K; }; this.complete = function (a) { for (var b = [h]; 0 < b.length;) { var d = b.shift(); !d.M && d.Qa && d.o && f(d, a); if (d.u) { if (d.parent && d.parent.Z || d.La) { for (var e = 1e-4 > d.K.ja, k = 0; !(g(c(d)) || e && 32 < k++);) {} d.Z = !0; d.La = !1; } l.yd(d, b); } } }; this.qc = function (a) { Z.F(a, k); }; this.we = function (a, b) { if (a.M) { var c = a.u; c && (a.Xd = c); a.u = Aa.cb(a.o, b); a.u && 'flattened' == n.Ua && 'stab' == n.dc && m(a); c && !a.u && (a.Z = !0); a.u && a.Xd && M.Bc(d(a), a.Xd, a.u); } }; this.Nb = function (a) { for (var b = d(a), c = a.ja, e, f = e = 0; f < b.length; f++) { e += b[f].T; } a.ak = e; for (a = 0; a < b.length; a++) { f = b[a], f.qg = f.f, f.rc = c / Math.PI * (0 < e ? f.T / e : 1 / b.length); } }; } function Ra(a, l) { function k(a, c) { if (l.kf(a)) { if (!a.u || a.parent && a.parent.Z) { var e = m.Ad * Math.pow(m.Ra, a.R - 1); a.u = M.A(d(M.q(a.o, {}), e)); } a.u && (a.M = !0, c(a)); } else a.M = !1, Z.Fa(a, function (a) { a.u = null; }); } function f(a) { function d(a) { function b() { e.o = M.A(f); e.x = f.x + f.f / 2; e.y = f.y + f.i / 2; } var c = m.cc / (1 + m.cc), e = a.e[0], f = M.q(a.u, {}), g = f.i, c = Math.min(Math.max(g * c, m.Ce * Math.pow(m.Ra, a.R - 1)), g * m.Be), h = m.Ic; 'bottom' == h || 0 <= h && 180 > h ? (f.i = g - c, a.u = M.A(f), f.y += g - c, f.i = c, b()) : (f.i = c, b(), f.y += c, f.i = g - c, a.u = M.A(f)); } var f; 'stab' == m.dc && 0 < a.e.length && a.e[0].description ? (f = a.e.slice(1), d(a)) : f = a.e; m.lc && f.sort(Oa); 'floating' == m.dc && c(f, m.Ic, function (a) { return a.description; }); c(f, m.ve, function (a) { return a.na; }); var g = M.q(a.u, {}); (e[m.Wc] || Da.Xb)(f, g, !0, m.ce); a.La = !1; a.Z = !0; a.I = !0; a.Ma = !0; } function d(a, c) { var d = 2 * c; a.x += c; a.y += c; a.f -= d; a.i -= d; return a; } function c(a, c, d) { for (var e = 0; e < a.length; e++) { var f = a[e]; if (d(f)) { a.splice(e, 1); 'topleft' == c || 135 <= c && 315 > c ? a.unshift(f) : a.push(f); break; } } } var g, m = a.options, e = { squarified: Da.te, ordered: Da.Xb }; a.c.j('model:loaded', function (a) { g = a; }); this.step = function (a, c, d) { this.complete(a); c && m.Sd(1, !0, d); return !0; }; this.complete = function (a) { for (var c = [g]; 0 < c.length;) { var d = c.shift(); (!d.M || d.parent && d.parent.Z) && d.Qa && d.o && k(d, a); d.u && ((d.parent && d.parent.Z || d.La) && f(d), l.yd(d, c)); } }; this.Nb = this.qc = this.we = D.ta; } var Sa = new function () { this.Gg = function (a) { a.beginPath(); a.moveTo(3.2, 497); a.bezierCurveTo(0.1, 495.1, 0, 494.1, 0, 449.6); a.bezierCurveTo(0, 403.5, -0.1, 404.8, 4.1, 402.6); a.bezierCurveTo(5.2, 402, 7.4, 401.4, 9, 401.2); a.bezierCurveTo(10.6, 401, 31.2, 400.6, 54.7, 400.2); a.bezierCurveTo(99.5, 399.4, 101, 399.5, 104.6, 402.3); a.bezierCurveTo(107.9, 404.9, 107.6, 404, 129.3, 473.2); a.bezierCurveTo(131, 478.6, 132.9, 484.4, 133.4, 486.1); a.bezierCurveTo(135.2, 491.4, 135.4, 494.9, 134, 496.4); a.bezierCurveTo(132.8, 497.7, 131.7, 497.7, 68.6, 497.7); a.bezierCurveTo(24.2, 497.7, 4, 497.5, 3.2, 497); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); a.beginPath(); a.moveTo(162.1, 497); a.bezierCurveTo(159.5, 496.3, 157.7, 494.6, 156.2, 491.6); a.bezierCurveTo(155.5, 490.3, 148.7, 469.4, 141.1, 445.2); a.bezierCurveTo(126.1, 397.5, 125.6, 395.4, 128.1, 389.8); a.bezierCurveTo(129.5, 386.7, 164.1, 339, 168, 334.9); a.bezierCurveTo(170.3, 332.5, 172.2, 332.1, 175.1, 333.7); a.bezierCurveTo(176.1, 334.2, 189.3, 347, 204.3, 362.1); a.bezierCurveTo(229.4, 387.4, 231.8, 390, 233.5, 394); a.bezierCurveTo(235.2, 397.8, 235.4, 399.2, 235.4, 404.3); a.bezierCurveTo(235.3, 415, 230.5, 489.9, 229.8, 492.5); a.bezierCurveTo(228.4, 497.5, 229.2, 497.4, 194.7, 497.5); a.bezierCurveTo(177.8, 497.6, 163.1, 497.4, 162.1, 497); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); a.beginPath(); a.moveTo(258.7, 497); a.bezierCurveTo(255.8, 496.1, 252.6, 492.3, 252, 489.1); a.bezierCurveTo(251.4, 484.8, 256.8, 405.2, 258.1, 401.1); a.bezierCurveTo(260.4, 393.4, 262.7, 391.1, 300.4, 359.2); a.bezierCurveTo(319.9, 342.6, 337.7, 327.9, 339.9, 326.5); a.bezierCurveTo(347.4, 321.6, 350.4, 321, 372, 320.5); a.bezierCurveTo(393.4, 320, 400.5, 320.4, 407.5, 322.5); a.bezierCurveTo(413.9, 324.4, 487.4, 359.5, 490.6, 362.1); a.bezierCurveTo(492, 363.3, 493.9, 365.8, 495, 367.7); a.lineTo(496.8, 371.2); a.lineTo(497, 419.3); a.bezierCurveTo(497.1, 445.7, 497, 468, 496.8, 468.8); a.bezierCurveTo(496.2, 471.6, 489.6, 480.8, 485, 485.3); a.bezierCurveTo(478.6, 491.7, 474.9, 494.1, 468.2, 496); a.lineTo(462.3, 497.7); a.lineTo(361.6, 497.7); a.bezierCurveTo(303.1, 497.6, 259.9, 497.3, 258.7, 497); a.closePath(); a.fillStyle = 'rgba(200,200,200,1)'; a.fill(); a.beginPath(); a.moveTo(4.4, 380.8); a.bezierCurveTo(2.9, 380.2, 1.7, 379.8, 1.6, 379.8); a.bezierCurveTo(1.5, 379.8, 1.2, 378.8, 0.7, 377.6); a.bezierCurveTo(0.2, 376.1, 0, 361.6, 0, 331.2); a.bezierCurveTo(0, 281.2, -0.2, 283.1, 4.9, 280.9); a.bezierCurveTo(7.1, 279.9, 19.3, 278.2, 54.8, 274.1); a.bezierCurveTo(80.6, 271.1, 102.9, 268.6, 104.4, 268.6); a.bezierCurveTo(105.8, 268.6, 109.1, 269.4, 111.7, 270.4); a.bezierCurveTo(116, 272.1, 117.2, 273.2, 133.4, 289.3); a.bezierCurveTo(150.9, 306.8, 153.4, 310, 153.4, 314.5); a.bezierCurveTo(153.4, 317.6, 151.1, 321.3, 136.4, 341.2); a.bezierCurveTo(109.4, 377.8, 111.6, 375.3, 105.4, 378.1); a.lineTo(101.3, 380); a.lineTo(75.7, 380.5); a.bezierCurveTo(6.8, 381.8, 7.3, 381.8, 4.4, 380.8); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); a.beginPath(); a.moveTo(243.5, 372.4); a.bezierCurveTo(240.2, 370.8, 136.6, 266.7, 134.2, 262.6); a.bezierCurveTo(132.1, 259, 131.7, 254.9, 133.2, 251.3); a.bezierCurveTo(134.5, 248.2, 166.3, 206, 169.3, 203.4); a.bezierCurveTo(172.6, 200.5, 178.5, 198.4, 183.2, 198.4); a.bezierCurveTo(187.1, 198.4, 275.2, 204.1, 281.6, 204.8); a.bezierCurveTo(289.7, 205.7, 294.6, 208.7, 297.6, 214.6); a.bezierCurveTo(300.5, 220.3, 327.4, 297.4, 327.8, 301.1); a.bezierCurveTo(328.3, 305.7, 326.7, 310.4, 323.4, 314); a.bezierCurveTo(322, 315.6, 307.8, 327.9, 291.9, 341.3); a.bezierCurveTo(256.2, 371.4, 256.6, 371.2, 253.9, 372.5); a.bezierCurveTo(251.1, 373.9, 246.5, 373.9, 243.5, 372.4); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); a.beginPath(); a.moveTo(489.3, 339.1); a.bezierCurveTo(488.6, 338.9, 473.7, 331.9, 456.3, 323.6); a.bezierCurveTo(435.9, 313.9, 423.8, 307.8, 422.4, 306.4); a.bezierCurveTo(419.5, 303.7, 418, 300.2, 418, 296.1); a.bezierCurveTo(418, 292.5, 438, 185, 439.3, 181.6); a.bezierCurveTo(441.2, 176.6, 445.5, 173.1, 450.8, 172.1); a.bezierCurveTo(456, 171.2, 487.1, 169.2, 489.6, 169.7); a.bezierCurveTo(493.1, 170.3, 495.5, 171.9, 497, 174.7); a.bezierCurveTo(498.1, 176.7, 498.2, 181.7, 498.4, 253.2); a.bezierCurveTo(498.5, 295.3, 498.4, 330.9, 498.2, 332.5); a.bezierCurveTo(497.5, 337.4, 493.7, 340.2, 489.3, 339.1); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); a.beginPath(); a.moveTo(353.2, 300.7); a.bezierCurveTo(350.4, 299.8, 347.9, 297.9, 346.5, 295.6); a.bezierCurveTo(345.8, 294.5, 338.2, 273.7, 329.6, 249.5); a.bezierCurveTo(314.6, 207.1, 314.1, 205.3, 314.1, 200.4); a.bezierCurveTo(314.1, 196.7, 314.4, 194.6, 315.3, 193); a.bezierCurveTo(316, 191.7, 322.5, 181.6, 329.8, 170.6); a.bezierCurveTo(346.8, 144.8, 345.4, 145.8, 365.8, 144.4); a.bezierCurveTo(380.9, 143.4, 385.7, 143.7, 390.6, 146.3); a.bezierCurveTo(397.3, 149.8, 417.4, 164.4, 419.2, 167); a.bezierCurveTo(422.4, 171.8, 422.4, 171.8, 410.6, 234.4); a.bezierCurveTo(402.3, 278.6, 399.3, 293.2, 398.1, 295.3); a.bezierCurveTo(395.4, 300.1, 393.7, 300.5, 373, 300.9); a.bezierCurveTo(363.1, 301.1, 354.2, 301, 353.2, 300.7); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); a.beginPath(); a.moveTo(6.2, 259.9); a.bezierCurveTo(4.9, 259.2, 3.2, 257.8, 2.4, 256.8); a.bezierCurveTo(1, 254.9, 1, 254.8, 0.8, 148.7); a.bezierCurveTo(0.7, 74, 0.9, 40.8, 1.4, 36.7); a.bezierCurveTo(2.3, 29.6, 4.7, 24.4, 9.8, 18.3); a.bezierCurveTo(14.1, 13.1, 20.9, 7.3, 25, 5.3); a.bezierCurveTo(26.5, 4.6, 31, 3.3, 34.9, 2.6); a.bezierCurveTo(41.3, 1.3, 44.2, 1.2, 68.5, 1.4); a.lineTo(95.1, 1.6); a.lineTo(99, 3.5); a.bezierCurveTo(101.2, 4.6, 103.9, 6.6, 105.2, 8.1); a.bezierCurveTo(107.7, 11, 153.1, 88.2, 155.8, 94); a.bezierCurveTo(159.1, 101.4, 159.6, 104.7, 159.5, 121.6); a.bezierCurveTo(159.5, 147.8, 158.4, 177.2, 157.3, 181); a.bezierCurveTo(156.8, 182.8, 155.6, 186.1, 154.6, 188.1); a.bezierCurveTo(152.6, 192.2, 119.5, 237.2, 115.1, 241.8); a.bezierCurveTo(112.1, 244.9, 106.3, 248.3, 102, 249.4); a.bezierCurveTo(99.2, 250.1, 13, 261.1, 10.1, 261.1); a.bezierCurveTo(9.2, 261.1, 7.5, 260.6, 6.2, 259.9); a.closePath(); a.fillStyle = 'rgba(200,200,200,1)'; a.fill(); a.beginPath(); a.moveTo(234.1, 183.4); a.bezierCurveTo(180.2, 179.7, 182.3, 180, 179.5, 174.5); a.lineTo(178, 171.4); a.lineTo(178.7, 142.4); a.bezierCurveTo(179.4, 114.8, 179.5, 113.3, 180.9, 110.4); a.bezierCurveTo(183.5, 105, 182.7, 105.2, 237.9, 95.3); a.bezierCurveTo(285.1, 86.7, 287.9, 86.3, 291, 87.1); a.bezierCurveTo(292.8, 87.6, 295.3, 88.8, 296.7, 89.9); a.bezierCurveTo(299.1, 91.8, 321.9, 124.4, 325, 130.3); a.bezierCurveTo(326.9, 134, 327.2, 139.1, 325.7, 142.6); a.bezierCurveTo(324.5, 145.5, 302.5, 179.1, 300.2, 181.5); a.bezierCurveTo(297, 184.9, 293.5, 186.3, 287.4, 186.5); a.bezierCurveTo(284.4, 186.6, 260.4, 185.2, 234.1, 183.4); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); a.beginPath(); a.moveTo(435.8, 153.4); a.bezierCurveTo(434.8, 153.1, 433, 152.3, 431.7, 151.6); a.bezierCurveTo(428.4, 150, 410.1, 137.1, 407, 134.4); a.bezierCurveTo(404.1, 131.8, 402.7, 128.3, 403.2, 125.1); a.bezierCurveTo(403.6, 122.9, 420.3, 81.3, 423, 75.9); a.bezierCurveTo(424.7, 72.6, 426.6, 70.4, 429.3, 68.9); a.bezierCurveTo(431.1, 67.9, 435, 67.7, 462.2, 67.6); a.lineTo(493.1, 67.3); a.lineTo(495.4, 69.6); a.bezierCurveTo(497, 71.3, 497.8, 72.8, 498.1, 75); a.bezierCurveTo(498.4, 76.6, 498.5, 92.9, 498.4, 111.1); a.bezierCurveTo(498.2, 141.2, 498.1, 144.3, 497, 146.3); a.bezierCurveTo(494.8, 150.3, 493.3, 150.6, 470.3, 152.4); a.bezierCurveTo(448.6, 154, 438.8, 154.3, 435.8, 153.4); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); a.beginPath(); a.moveTo(346.6, 125.3); a.bezierCurveTo(345, 124.5, 342.6, 122.6, 341.4, 121); a.bezierCurveTo(337.1, 115.7, 313, 79.8, 311.6, 76.7); a.bezierCurveTo(309.4, 71.7, 309.3, 68, 311.2, 58.2); a.bezierCurveTo(319.2, 16.9, 321.3, 7.1, 322.4, 5.2); a.bezierCurveTo(323.1, 4, 324.7, 2.4, 326, 1.6); a.bezierCurveTo(328.3, 0.3, 329.4, 0.3, 353.9, 0.3); a.bezierCurveTo(379.2, 0.3, 379.5, 0.3, 382.4, 1.8); a.bezierCurveTo(384, 2.7, 386, 4.5, 386.9, 5.9); a.bezierCurveTo(388.6, 8.6, 405.1, 46.3, 407.2, 52.2); a.bezierCurveTo(408.7, 56.3, 408.8, 60.7, 407.7, 64.1); a.bezierCurveTo(407.3, 65.4, 402.2, 78.2, 396.3, 92.7); a.bezierCurveTo(382.6, 126.3, 384.1, 124.6, 366.6, 126); a.bezierCurveTo(353.4, 127.1, 350, 127, 346.6, 125.3); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); a.beginPath(); a.moveTo(179.2, 85.6); a.bezierCurveTo(175.7, 84.6, 171.9, 82, 170, 79.2); a.bezierCurveTo(167.2, 75.2, 130.6, 12.4, 129.3, 9.3); a.bezierCurveTo(128.2, 6.7, 128.1, 5.9, 128.8, 4.2); a.bezierCurveTo(130.5, 0, 125.2, 0.3, 211.7, 0); a.bezierCurveTo(255.3, -0.1, 292.2, 0, 293.9, 0.3); a.bezierCurveTo(297.7, 0.8, 301.1, 4, 301.8, 7.6); a.bezierCurveTo(302.3, 10.5, 293.9, 55.2, 291.9, 59.6); a.bezierCurveTo(290.4, 63, 286.1, 66.9, 282.3, 68.3); a.bezierCurveTo(279.6, 69.3, 193.5, 85.1, 185.5, 86.1); a.bezierCurveTo(183.8, 86.3, 181, 86.1, 179.2, 85.6); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); a.beginPath(); a.moveTo(431.9, 47.7); a.bezierCurveTo(428.7, 46.9, 426.4, 45.2, 424.6, 42.3); a.bezierCurveTo(421.8, 37.8, 409.2, 7.7, 409.2, 5.5); a.bezierCurveTo(409.2, 1.2, 408, 1.3, 451.6, 1.3); a.bezierCurveTo(495, 1.3, 494, 1.2, 496.1, 5.4); a.bezierCurveTo(497, 7.2, 497.2, 10.2, 497, 25.5); a.lineTo(496.8, 43.5); a.lineTo(494.9, 45.4); a.lineTo(493, 47.3); a.lineTo(474.8, 47.7); a.bezierCurveTo(450.1, 48.3, 434.5, 48.3, 431.9, 47.7); a.closePath(); a.fillStyle = 'rgba(200,200,200,1)'; a.fill(); a.beginPath(); a.moveTo(1.3, 511.9); a.lineTo(1.3, 514.3); a.lineTo(3.7, 514.3); a.bezierCurveTo(7.2, 514.4, 9.5, 515.5, 10.6, 517.6); a.bezierCurveTo(11.7, 519.8, 12.1, 522.7, 12, 526.3); a.lineTo(12, 591); a.lineTo(22.8, 591); a.lineTo(22.8, 553.2); a.lineTo(49.9, 553.2); a.lineTo(49.9, 548.5); a.lineTo(22.8, 548.5); a.lineTo(22.8, 516.7); a.lineTo(41.9, 516.7); a.bezierCurveTo(46.7, 516.7, 50.4, 517.8, 52.9, 520); a.bezierCurveTo(55.5, 522.2, 56.8, 525.7, 56.8, 530.5); a.lineTo(59.2, 530.5); a.lineTo(59.2, 521.5); a.bezierCurveTo(59.3, 519, 58.7, 516.8, 57.3, 514.9); a.bezierCurveTo(55.9, 513, 53.1, 512, 49, 511.9); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); a.beginPath(); a.moveTo(107.6, 562.8); a.bezierCurveTo(107.6, 569.9, 106.2, 575.7, 103.5, 580.3); a.bezierCurveTo(100.8, 584.8, 97.2, 587.2, 92.7, 587.4); a.bezierCurveTo(88.1, 587.2, 84.5, 584.8, 81.8, 580.3); a.bezierCurveTo(79.1, 575.7, 77.8, 569.9, 77.7, 562.8); a.bezierCurveTo(77.8, 555.8, 79.1, 550, 81.8, 545.4); a.bezierCurveTo(84.5, 540.8, 88.1, 538.4, 92.7, 538.3); a.bezierCurveTo(97.2, 538.4, 100.8, 540.8, 103.5, 545.4); a.bezierCurveTo(106.2, 550, 107.6, 555.8, 107.6, 562.8); a.moveTo(66.3, 562.8); a.bezierCurveTo(66.4, 571.1, 68.7, 578, 73.2, 583.5); a.bezierCurveTo(77.8, 589.1, 84.2, 591.9, 92.7, 592.1); a.bezierCurveTo(101.1, 591.9, 107.6, 589.1, 112.1, 583.5); a.bezierCurveTo(116.7, 578, 118.9, 571.1, 119, 562.8); a.bezierCurveTo(118.9, 554.5, 116.7, 547.6, 112.1, 542.1); a.bezierCurveTo(107.6, 536.6, 101.1, 533.7, 92.7, 533.5); a.bezierCurveTo(84.2, 533.7, 77.8, 536.6, 73.2, 542.1); a.bezierCurveTo(68.7, 547.6, 66.4, 554.5, 66.3, 562.8); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); a.beginPath(); a.moveTo(161.5, 579.6); a.bezierCurveTo(160.3, 581.4, 158.9, 583.1, 157.2, 584.5); a.bezierCurveTo(155.4, 585.9, 153.1, 586.7, 150.1, 586.8); a.bezierCurveTo(147, 586.8, 144.4, 585.9, 142.2, 584); a.bezierCurveTo(140, 582.1, 138.9, 579.3, 138.8, 575.4); a.bezierCurveTo(138.8, 571.7, 140.5, 568.9, 143.8, 566.7); a.bezierCurveTo(147.2, 564.6, 151.9, 563.5, 157.9, 563.4); a.lineTo(161.5, 563.4); a.moveTo(172.3, 591); a.lineTo(172.3, 558.6); a.bezierCurveTo(172.1, 548.2, 169.9, 541.3, 165.8, 538); a.bezierCurveTo(161.7, 534.7, 156.9, 533.2, 151.3, 533.5); a.bezierCurveTo(147.6, 533.5, 144.1, 533.8, 140.8, 534.5); a.bezierCurveTo(137.4, 535.1, 135, 536.2, 133.4, 537.7); a.bezierCurveTo(131.9, 539.2, 131.1, 540.8, 130.7, 542.6); a.bezierCurveTo(130.4, 544.4, 130.3, 546.4, 130.4, 548.5); a.lineTo(135.8, 548.5); a.bezierCurveTo(136.7, 544.6, 138.3, 542, 140.5, 540.5); a.bezierCurveTo(142.8, 538.9, 145.6, 538.2, 148.9, 538.3); a.bezierCurveTo(152.6, 538.1, 155.6, 539.4, 157.9, 542.2); a.bezierCurveTo(160.2, 545, 161.4, 550.5, 161.5, 558.6); a.lineTo(157.9, 558.6); a.bezierCurveTo(149.6, 558.5, 142.5, 559.7, 136.6, 562.1); a.bezierCurveTo(130.7, 564.5, 127.6, 568.9, 127.4, 575.4); a.bezierCurveTo(127.7, 581.8, 129.8, 586.3, 133.6, 588.7); a.bezierCurveTo(137.4, 591.1, 141.1, 592.3, 144.7, 592.1); a.bezierCurveTo(149.2, 592.1, 152.8, 591.3, 155.6, 590); a.bezierCurveTo(158.3, 588.6, 160.3, 587.1, 161.5, 585.6); a.lineTo(162.1, 585.6); a.lineTo(166.3, 591); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); a.beginPath(); a.moveTo(200.3, 539.5); a.bezierCurveTo(199.8, 538, 198.7, 536.8, 197, 536); a.bezierCurveTo(195.4, 535.1, 193.1, 534.7, 190.2, 534.7); a.lineTo(179.4, 534.7); a.lineTo(179.4, 537.1); a.lineTo(181.8, 537.1); a.bezierCurveTo(185.3, 537.1, 187.6, 538.2, 188.7, 540.4); a.bezierCurveTo(189.8, 542.5, 190.3, 545.4, 190.2, 549.1); a.lineTo(190.2, 591); a.lineTo(200.9, 591); a.lineTo(200.9, 545.2); a.bezierCurveTo(202.4, 543.5, 204.2, 542, 206.2, 540.8); a.bezierCurveTo(208.3, 539.6, 210.5, 538.9, 212.9, 538.9); a.bezierCurveTo(215.9, 538.8, 218.3, 540, 219.9, 542.5); a.bezierCurveTo(221.6, 544.9, 222.4, 549.1, 222.5, 555); a.lineTo(222.5, 591); a.lineTo(233.2, 591); a.lineTo(233.2, 555); a.bezierCurveTo(233.3, 553.8, 233.2, 552.3, 233.2, 550.6); a.bezierCurveTo(233.1, 549, 232.9, 547.6, 232.6, 546.7); a.bezierCurveTo(233.9, 544.8, 235.7, 543, 238, 541.4); a.bezierCurveTo(240.4, 539.8, 242.7, 539, 245.2, 538.9); a.bezierCurveTo(248.2, 538.8, 250.6, 540, 252.3, 542.5); a.bezierCurveTo(253.9, 544.9, 254.8, 549.1, 254.8, 555); a.lineTo(254.8, 591); a.lineTo(265.6, 591); a.lineTo(265.6, 555); a.bezierCurveTo(265.4, 546.5, 263.8, 540.8, 260.6, 537.8); a.bezierCurveTo(257.4, 534.7, 253.4, 533.3, 248.8, 533.5); a.bezierCurveTo(245.4, 533.5, 242.2, 534.2, 238.9, 535.7); a.bezierCurveTo(235.7, 537.1, 233, 539.2, 230.9, 541.9); a.bezierCurveTo(229.3, 538.6, 227.3, 536.4, 224.8, 535.2); a.bezierCurveTo(222.3, 534, 219.5, 533.4, 216.5, 533.5); a.bezierCurveTo(212.9, 533.6, 209.8, 534.2, 207.1, 535.4); a.bezierCurveTo(204.5, 536.5, 202.4, 537.9, 200.9, 539.5); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); a.beginPath(); a.moveTo(284, 511.9); a.bezierCurveTo(279.9, 512, 277.2, 513, 275.8, 514.9); a.bezierCurveTo(274.4, 516.8, 273.7, 519, 273.8, 521.5); a.lineTo(273.8, 530.5); a.lineTo(276.2, 530.5); a.bezierCurveTo(276.3, 525.7, 277.6, 522.2, 280.1, 520); a.bezierCurveTo(282.7, 517.8, 286.4, 516.7, 291.2, 516.7); a.lineTo(302, 516.7); a.lineTo(302, 590.9); a.lineTo(312.7, 590.9); a.lineTo(312.7, 516.7); a.lineTo(339.7, 516.7); a.lineTo(339.7, 511.9); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); a.beginPath(); a.moveTo(349.4, 590.9); a.lineTo(360.2, 590.9); a.lineTo(360.2, 546.7); a.bezierCurveTo(361.4, 544.8, 363, 543.4, 364.9, 542.3); a.bezierCurveTo(366.9, 541.2, 369.1, 540.7, 371.5, 540.7); a.bezierCurveTo(373.7, 540.7, 375.5, 541, 377.2, 541.6); a.bezierCurveTo(378.9, 542.2, 380.2, 543.1, 381.1, 544.3); a.lineTo(385.9, 540.7); a.bezierCurveTo(385.3, 539.5, 384.7, 538.4, 384, 537.5); a.bezierCurveTo(383.4, 536.6, 382.6, 535.9, 381.7, 535.3); a.bezierCurveTo(380.8, 534.7, 379.7, 534.2, 378.3, 533.9); a.bezierCurveTo(377, 533.6, 375.8, 533.5, 374.5, 533.5); a.bezierCurveTo(370.9, 533.6, 367.9, 534.3, 365.5, 535.7); a.bezierCurveTo(363.2, 537, 361.4, 538.5, 360.2, 540.1); a.lineTo(359.6, 540.1); a.bezierCurveTo(359, 538.3, 357.9, 536.9, 356.3, 536); a.bezierCurveTo(354.6, 535.1, 352.4, 534.7, 349.4, 534.7); a.lineTo(339.8, 534.7); a.lineTo(339.8, 537.1); a.lineTo(341, 537.1); a.bezierCurveTo(344.5, 537.1, 346.8, 538.2, 347.9, 540.4); a.bezierCurveTo(349, 542.5, 349.5, 545.4, 349.4, 549.1); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); a.beginPath(); a.moveTo(440.3, 559.8); a.bezierCurveTo(440.3, 551.4, 438.3, 544.9, 434.4, 540.4); a.bezierCurveTo(430.4, 535.8, 424.4, 533.5, 416.3, 533.5); a.bezierCurveTo(408.8, 533.7, 403, 536.6, 399, 542.1); a.bezierCurveTo(395, 547.6, 393, 554.5, 393, 562.8); a.bezierCurveTo(393, 571.1, 395.1, 578, 399.3, 583.5); a.bezierCurveTo(403.5, 589.1, 409.7, 591.9, 418.1, 592.1); a.bezierCurveTo(422.6, 592.2, 426.7, 591.2, 430.2, 589.2); a.bezierCurveTo(433.8, 587.2, 437, 584, 439.7, 579.6); a.lineTo(437.3, 577.8); a.bezierCurveTo(435.2, 580.8, 432.9, 583.1, 430.2, 584.8); a.bezierCurveTo(427.6, 586.5, 424.4, 587.3, 420.5, 587.4); a.bezierCurveTo(415.4, 587.2, 411.4, 585.1, 408.6, 580.9); a.bezierCurveTo(405.8, 576.8, 404.4, 571.3, 404.4, 564.6); a.lineTo(440, 564.6); a.moveTo(404.4, 559.8); a.bezierCurveTo(404.4, 553.7, 405.6, 548.7, 407.9, 544.9); a.bezierCurveTo(410.3, 541, 413.3, 539, 416.9, 538.9); a.bezierCurveTo(421.1, 538.9, 424.3, 540.8, 426.4, 544.4); a.bezierCurveTo(428.4, 548.1, 429.5, 553.2, 429.5, 559.8); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); a.beginPath(); a.moveTo(497.1, 559.8); a.bezierCurveTo(497.1, 551.4, 495.1, 544.9, 491.2, 540.4); a.bezierCurveTo(487.2, 535.8, 481.2, 533.5, 473.1, 533.5); a.bezierCurveTo(465.6, 533.7, 459.9, 536.6, 455.9, 542.1); a.bezierCurveTo(451.9, 547.6, 449.8, 554.5, 449.8, 562.8); a.bezierCurveTo(449.8, 571.1, 451.9, 578, 456.1, 583.5); a.bezierCurveTo(460.3, 589.1, 466.6, 591.9, 474.9, 592.1); a.bezierCurveTo(479.4, 592.2, 483.5, 591.2, 487.1, 589.2); a.bezierCurveTo(490.6, 587.2, 493.8, 584, 496.5, 579.6); a.lineTo(494.1, 577.8); a.bezierCurveTo(492, 580.8, 489.7, 583.1, 487.1, 584.8); a.bezierCurveTo(484.4, 586.5, 481.2, 587.3, 477.3, 587.4); a.bezierCurveTo(472.2, 587.2, 468.2, 585.1, 465.4, 580.9); a.bezierCurveTo(462.6, 576.8, 461.2, 571.3, 461.2, 564.6); a.lineTo(496.8, 564.6); a.moveTo(461.2, 559.8); a.bezierCurveTo(461.2, 553.7, 462.4, 548.7, 464.8, 544.9); a.bezierCurveTo(467.1, 541, 470.1, 539, 473.7, 538.9); a.bezierCurveTo(477.9, 538.9, 481.1, 540.8, 483.2, 544.4); a.bezierCurveTo(485.3, 548.1, 486.3, 553.2, 486.3, 559.8); a.closePath(); a.fillStyle = 'rgba(220,20,3,1)'; a.fill(); }; }(); Sa.yc = { width: 498, height: 592 }; function Ta(a, l) { function k(a, b) { var c = a.K.Ob, d = c / 15, e = 0.5 * c / 15, c = c / 5, f = a.K.x, g = a.K.y; b.fillRect(f - e, g - e, d, d); b.fillRect(f - e - c, g - e, d, d); b.fillRect(f - e + c, g - e, d, d); } function f(a, b, c, d) { null === a && c.clearRect(0, 0, H, Q); var e, f = Array(W.length); for (e = W.length - 1; 0 <= e; e--) { f[e] = W[e].qa(c, d); } for (e = W.length - 1; 0 <= e; e--) { f[e] && W[e].W(c, d); } T.Jc([c, C], function (d) { var e; if (null !== a) { c.save(); c.globalCompositeOperation = 'destination-out'; c.fillStyle = c.strokeStyle = 'rgba(255, 255, 255, 1)'; for (e = a.length - 1; 0 <= e; e--) { var g = a[e], h = g.o; h && (c.save(), c.beginPath(), g.Tb(c), ia.le(c, h), c.fill(), g = u.mb * Math.pow(u.Ra, g.R - 1), 0 < g && (c.lineWidth = g / 2, c.stroke()), c.restore()); } c.restore(); } d = d.scale; if (0 !== b.length) { e = {}; for (h = W.length - 1; 0 <= h; h--) { W[h].Og(e); } for (g = $.length - 1; 0 <= g; g--) { if (h = $[g], e[h.id]) for (var k = h.be, h = 0; h < b.length; h++) { var l = b[h]; !l.parent || l.parent.Ca && l.parent.M ? k(l, d) : l.ba.clear(); } } } for (e = W.length - 1; 0 <= e; e--) { g = W[e], f[e] && g.ee(b, c, d); } }); for (e = W.length - 1; 0 <= e; e--) { f[e] && W[e].Da(c); } u.rd && (c.canvas.style.opacity = 0.99, setTimeout(function () { c.canvas.style.opacity = 1; }, 1)); } function d(a) { s === t ? a < 0.9 * q && (s = w, x = A, e()) : a >= q && (s = t, x = B, e()); } function c() { function a(b, c, d) { b.Cb = Math.floor(1e3 * b.scale) - d * c; 0 < b.opacity && !b.open && c++; var e = b.e; if (e) for (var f = e.length - 1; 0 <= f; f--) { b.$ && a(e[f], c, d); } } var b = null, c = null, e = null; T.Jc([], function (f) { d(f.scale); var h = !1; Z.F(z, function (a) { a.$ && (h = a.Nd() || h, a.nc(), a.Sa = P.d(a) || a.Sa); }); h && (z.I = !0); var k = 'onSurfaceDirty' === u.oh; Z.xd(z, function (a) { a.parent && a.parent.Z && (a.ba.clear(), a.Sa = !0, k || (a.Fc = !0, a.ac.clear())); k && (a.Fc = !0, a.ac.clear()); }); var l = f.scale * f.scale; Z.xd(z, function (a) { if (a.M) { for (var b = a.e, c = 0; c < b.length; c++) { if (5 < b[c].K.ja * l) { a.X = !0; return; } } a.X = !1; } }); n(f); e = []; Z.Lc(z, function (a) { if (a.parent.X && a.ea && a.$) { e.push(a); for (var b = a.parent; b !== z && (b.open || 0 === b.opacity);) { b = b.parent; } b !== z && 0.02 > Math.abs(b.scale - a.scale) && (a.scale = Math.min(a.scale, b.scale)); } }); a(z, 0, 'flattened' == u.Ua ? -1 : 1); e.sort(function (a, b) { return a.Cb - b.Cb; }); if (g()) b = e, c = null;else { var m = {}, p = {}, q = 'none' != u.Cd && u.mb < u.nb / 2, r = u.mb < u.Rc / 2 + u.Bd * u.Xe.a; Z.F(z, function (a) { if (a.$ && !a.description && (a.Z || a.I || a.Yc && a.parent.X && a.Sa)) { var b, c, d = [a], e = a.C || a.parent.e; if (q) for (b = 0; b < e.length; b++) { (c = e[b]) && d.push(c); } else if (r) if (!a.selected && a.ab) { c = !0; for (b = 0; b < e.length; b++) { e[b] ? d.push(e[b]) : c = !1; } !c && 1 < a.R && d.push(a.parent); } else for (b = 0; b < e.length; b++) { (c = e[b]) && c.selected && d.push(c); } var f; for (b = a.parent; b != z;) { b.selected && (f = b), b = b.parent; } f && d.push(f); for (b = 0; b < d.length; b++) { f = d[b]; for (a = f.parent; a && a !== z;) { 0 < a.opacity && (f = a), a = a.parent; } p[f.id] = !0; Z.Fa(f, function (a) { m[a.id] = !0; }); } } }); b = e.filter(function (a) { return m[a.id]; }); c = b.filter(function (a) { return p[a.id]; }); } }); (function () { var a = !1; u.ag && Z.F(z, function (b) { if (b.$ && 0 !== b.sa.a && 1 !== b.sa.a) return a = !0, !1; }); a ? (Z.Kc(z, function (a) { if (a.$ && (a.opacity !== a.bd || a.Ma)) { var b = a.e; if (b) { for (var c = 0, d = b.length - 1; 0 <= d; d--) { c = Math.max(c, b[d].Xc); } a.Xc = c + a.opacity * a.sa.a; } else a.Xc = a.opacity * a.sa.a; } }), Z.F(z, function (a) { if (a.$ && (a.opacity !== a.bd || a.Ma)) { for (var b = a.Xc, c = a; (c = c.parent) && c !== z;) { b += c.opacity * c.sa.a * u.Zf; } a.sd = 0 < b ? 1 - Math.pow(1 - a.sa.a, 1 / b) : 0; a.bd = a.opacity; } })) : Z.F(z, function (a) { a.$ && (a.sd = 1, a.bd = -1); }); })(); return { wg: b, vg: c, ea: e }; } function g() { var a = z.Z || z.I || 'none' == u.ef; if (!a && !z.empty()) { var b = z.e[0].scale; Z.F(z, function (c) { if (c.$ && c.ea && c.scale !== b) return a = !0, !1; }); } !a && 0 < u.Re && 1 != u.Xa && Z.F(z, function (b) { if (b.$ && 0 < b.ka) return a = !0, !1; }); 'accurate' == u.ef && (a = (a = a || 0 === u.mb) || 'none' != u.Cd && u.mb < u.nb / 2, !a && u.mb < u.Rc / 2 + u.Bd * u.Xe.a && Z.F(z, function (b) { if (b.$ && (b.selected && !b.ab || !b.selected && b.ab)) return a = !0, !1; })); return a; } function m() { if (u.n !== u.yb) return !0; var a = 'polygonPlainFill polygonPlainStroke polygonGradientFill polygonGradientStroke labelPlainFill contentDecoration'.split(' '); Z.F(z, function (b) { if (b.$ && b.U) return a.push('polygonExposureShadow'), !1; }); for (var b = a.length - 1; 0 <= b; b--) { var c = a[b]; if (!!E[c] !== !!J[c]) return !0; } return !1; } function e() { function a(c, d, e, f, g) { function h(a, b, c, d, e) { a[d] && (b -= c * p[d], a[d] = !1, e && (b += c * p[e], a[e] = !0)); return b; } c = D.extend({}, c); switch (e) { case 'never': c.labelPlainFill = !1; break; case 'always': case 'auto': c.labelPlainFill = !0; } if (u.Pc) switch (f) { case 'never': c.contentDecoration = !1; break; case 'always': case 'auto': c.contentDecoration = !0; } else c.contentDecoration = !1; var k = 0; D.Ga(c, function (a, b) { a && (k += d * p['contentDecoration' === b ? 'labelPlainFill' : b]); }); c.polygonExposureShadow = b; k += 2 * p.polygonExposureShadow; if (k <= g || (k = h(c, k, 2, 'polygonExposureShadow')) <= g || (k = h(c, k, d, 'polygonGradientFill', 'polygonPlainFill')) <= g || (k = h(c, k, d, 'polygonGradientStroke')) <= g || (k = h(c, k, d, 'polygonPlainStroke')) <= g || 'auto' === f && (k = h(c, k, d, 'contentDecoration')) <= g) return c; 'auto' === e && (k = h(c, k, d, 'labelPlainFill')); return c; } var b = s === w, c = 0, d = 0; Z.He(z, function (a) { var b = 1; Z.F(a, function () { b++; }); c += b; d = Math.max(d, b); }); var e = {}; switch (u.xh) { case 'plain': e.polygonPlainFill = !0; break; case 'gradient': e.polygonPlainFill = !b, e.polygonGradientFill = b; } switch (u.Cd) { case 'plain': e.polygonPlainStroke = !0; break; case 'gradient': e.polygonPlainStroke = !b, e.polygonGradientStroke = b; } E = a(e, c, u.Fj, u.Dj, u.Ej); J = a(e, 2 * d, 'always', 'always', u.hh); I = a(e, c, 'always', 'always', u.gh); } function b(a) { return function (b, c) { return b === s ? !0 === E[a] : !0 === (c ? J : I)[a]; }; } function h(a, b) { return function (c, d) { return a(c, d) && b(c, d); }; } function n(a) { z.ea = !0; Z.xd(z, function (b) { if (b.$ && b.X && b.Ca && b.M && (z.I || b.Z || b.me)) { b.me = !1; var c = b.e, d = { x: 0, y: 0, f: 0, i: 0 }, e = !!b.u; if (1 < H / a.f) { var f; for (f = c.length - 1; 0 <= f; f--) { c[f].ea = !1; } if (b.ea && e) for (f = c.length - 1; 0 <= f; f--) { if (b = c[f], 1 !== b.scale && (b.Vb(a, d), d.f = a.f / b.scale, d.i = a.i / b.scale), !1 === b.ea && b.o) { var e = b.o, g = e.length; if (M.Va(b.o, 1 === b.scale ? a : d)) b.ea = !0;else for (var h = 0; h < g; h++) { if (M.Mg(e[h], e[(h + 1) % g], 1 === b.scale ? a : d)) { b.ea = !0; b.C && (b = b.C[h]) && (c[b.index].ea = !0); break; } } } } } else for (f = 0; f < c.length; f++) { c[f].ea = e; } } }); } var q = v.of() ? 50 : 1e4, p, r, s, w, t, y, x, A, B, K, C, H, Q, O, P = new Ua(a), F = new Va(a), T, N, U, u = a.options, z, L, E, I, J; a.c.j('stage:initialized', function (a, b, c, d) { O = a; H = c; Q = d; r = O.oc('wireframe', u.yb, !1); w = r.getContext('2d'); t = new ha(w); y = O.oc('hifi', u.n, !1); A = y.getContext('2d'); B = new ha(A); s = w; x = A; w.n = u.yb; t.n = u.yb; A.n = u.n; B.n = u.n; K = O.oc('tmp', Math.max(u.n, u.yb), !0); C = K.getContext('2d'); C.n = 1; [w, A, C].forEach(function (a) { a.scale(a.n, a.n); }); }); a.c.j('stage:resized', function (a, b, c, d) { H = c; Q = d; [w, A, C].forEach(function (a) { a.scale(a.n, a.n); }); }); a.c.j('model:loaded', function (b) { function c(a) { var b = 0; if (!a.empty()) { for (var d = a.e, e = d.length - 1; 0 <= e; e--) { b = Math.max(b, c(d[e])); } b += 1; } return a.ng = b; } z = b; L = !0; c(z); e(); a.c.p('render:renderers:resolved', E, J, I); }); var R = 'groupFillType groupStrokeType wireframeDrawMaxDuration wireframeLabelDrawing wireframeContentDecorationDrawing finalCompleteDrawMaxDuration finalIncrementalDrawMaxDuration groupContentDecorator'.split(' '), Y = ['groupLabelLightColor', 'groupLabelDarkColor', 'groupLabelColorThreshold', 'groupUnexposureLabelColorThreshold']; a.c.j('options:changed', function (a) { function b(a, c, d, e) { O.fj(a, d); c.n = d; e && c.scale(d, d); } a.dataObject || (D.ob(a, R) && e(), D.ob(a, Y) && Z.F(z, function (a) { a.zd = -1; })); var c = D.Q(a, 'pixelRatio'); a = D.Q(a, 'wireframePixelRatio'); if (c || a) c && b(y, x, u.n, !0), a && b(r, s, u.yb, !0), b(K, C, Math.max(u.n, u.yb), !1); }); a.c.j('zoom:initialized', function (a) { T = a; }); a.c.j('timeline:initialized', function (a) { N = a; }); a.c.j('api:initialized', function (a) { U = a; }); var $ = [{ id: 'offsetPolygon', be: function be(a) { if ((a.selected || 0 < a.opacity && !1 === a.open || !a.X) && a.ba.Na()) { var b = a.ba; b.clear(); if (a.aa) { var c = a.aa, d = u.jh; 0 < d ? (d = Math.min(1, d * Math.pow(1 - u.kh * d, a.ng)), ia.rj(b, c, a.parent.K.Ob / 32, d)) : ia.le(b, c); } a.Vd = !0; } } }, { id: 'label', be: function be(a) { a.Sa && a.Yc && P.k(a); } }, { id: 'custom', be: function be(b, c) { if (b.aa && (0 < b.opacity && (!1 === b.open || !0 === b.selected) || !b.X) && b.Fc && a.options.Pc && !b.na) { var d = {}; U.pd(d, b); U.qd(d, b); U.od(d, b, !0); d.context = b.ac; d.polygonContext = b.ba; d.labelContext = b.Uc; d.shapeDirty = b.Vd; d.viewportScale = c; var e = { groupLabelDrawn: !0, groupPolygonDrawn: !0 }; a.options.nh(a.Ud, d, e); e.groupLabelDrawn || (b.pf = !1); e.groupPolygonDrawn || (b.Wd = !1); b.Vd = !1; b.Fc = !1; } } }].reverse(), W = [new function (a) { var b = Array(a.length); this.ee = function (c, d, e) { if (0 !== c.length) { var f, g, h = [], k = c[0].Cb; for (f = 0; f < c.length; f++) { g = c[f], g.Cb !== k && (h.push(f), k = g.Cb); } h.push(f); for (var l = k = 0; l < h.length; l++) { for (var m = h[l], p = a.length - 1; 0 <= p; p--) { if (b[p]) { var n = a[p]; d.save(); for (f = k; f < m; f++) { g = c[f], d.save(), g.Tb(d), n.wb.call(n, g, d, e), d.restore(); } n.ib.call(n, d, e); d.restore(); } } k = m; } } }; this.qa = function (c, d) { for (var e = !1, f = a.length - 1; 0 <= f; f--) { b[f] = a[f].qa(c, d), e |= b[f]; } return e; }; this.W = function (c, d) { for (var e = a.length - 1; 0 <= e; e--) { if (b[e]) { var f = a[e]; f.W.call(f, c, d); } } }; this.Da = function (c) { for (var d = a.length - 1; 0 <= d; d--) { if (b[d]) { var e = a[d]; e.Da.call(e, c); } } }; this.Og = function (c) { for (var d = a.length - 1; 0 <= d; d--) { var e = a[d]; if (b[d]) for (var f = e.$a.length - 1; 0 <= f; f--) { c[e.$a[f]] = !0; } } }; }([{ $a: ['offsetPolygon'], qa: b('polygonExposureShadow'), W: function W(a) { C.save(); C.scale(a.n, a.n); }, Da: function Da() { C.restore(); }, d: function d() {}, ib: function ib(a) { this.mg && (this.mg = !1, a.save(), a.setTransform(1, 0, 0, 1, 0, 0), a.drawImage(K, 0, 0, a.canvas.width, a.canvas.height, 0, 0, a.canvas.width, a.canvas.height), a.restore(), C.save(), C.setTransform(1, 0, 0, 1, 0, 0), C.clearRect(0, 0, K.width, K.height), C.restore()); }, wb: function wb(a, b, c) { if (!(a.open && a.X || a.ba.Na())) { var d = u.Re * a.opacity * a.ka * ('flattened' == u.Ua ? 1 - a.parent.ka : (1 - a.Lb) * a.parent.Lb) * (1.1 <= u.Xa ? 1 : (u.Xa - 1) / 0.1); 0 < d && (C.save(), C.beginPath(), a.Tb(C), a.ba.Ta(C), C.shadowBlur = c * b.n * d, C.shadowColor = u.ph, C.fillStyle = 'rgba(0, 0, 0, 1)', C.globalCompositeOperation = 'source-over', C.globalAlpha = a.opacity, C.fill(), C.shadowBlur = 0, C.shadowColor = 'transparent', C.globalCompositeOperation = 'destination-out', C.fill(), C.restore(), this.mg = !0); } } }, { $a: ['offsetPolygon'], qa: function qa() { return !0; }, W: function () { function a(b) { var d = b.sa, e = b.Eb, f = b.selected, g = c(d.l * b.va + (e ? u.Ch : 0) + (f ? u.Th : 0)), h = c(d.s * b.wa + (e ? u.Dh : 0) + (f ? u.Uh : 0)); b = b.Qe; b.h = (d.h + (e ? u.Bh : 0) + (f ? u.Sh : 0)) % 360; b.s = h; b.l = g; return b; } function c(a) { return 100 < a ? 100 : 0 > a ? 0 : a; } var d = [{ type: 'fill', qa: b('polygonPlainFill'), hd: function hd(b, c) { c.fillStyle = S.Ac(a(b)); } }, { type: 'fill', qa: b('polygonGradientFill'), hd: function hd(b, d) { var e = b.K.Ob, f = a(b), e = d.createRadialGradient(b.x, b.y, 0, b.x, b.y, e * u.th); e.addColorStop(0, S.Y((f.h + u.qh) % 360, c(f.s + u.sh), c(f.l + u.rh))); e.addColorStop(1, S.Y((f.h + u.uh) % 360, c(f.s + u.wh), c(f.l + u.vh))); b.ba.Ta(d); d.fillStyle = e; } }, { type: 'stroke', qa: h(b('polygonPlainStroke'), function () { return 0 < u.nb; }), hd: function hd(a, b) { var d = a.sa, e = a.Eb, f = a.selected; b.strokeStyle = S.Y((d.h + u.af + (e ? u.Se : 0) + (f ? u.Ye : 0)) % 360, c(d.s * a.wa + u.cf + (e ? u.Ue : 0) + (f ? u.$e : 0)), c(d.l * a.va + u.bf + (e ? u.Te : 0) + (f ? u.Ze : 0))); b.lineWidth = u.nb * Math.pow(u.Ra, a.R - 1); } }, { type: 'stroke', qa: h(b('polygonGradientStroke'), function () { return 0 < u.nb; }), hd: function hd(a, b) { var d = a.K.Ob * u.$h, e = a.sa, f = Math.PI * u.Wh / 180, d = b.createLinearGradient(a.x + d * Math.cos(f), a.y + d * Math.sin(f), a.x + d * Math.cos(f + Math.PI), a.y + d * Math.sin(f + Math.PI)), g = a.Eb, h = a.selected, f = (e.h + u.af + (g ? u.Se : 0) + (h ? u.Ye : 0)) % 360, k = c(e.s * a.wa + u.cf + (g ? u.Ue : 0) + (h ? u.$e : 0)), e = c(e.l * a.va + u.bf + (g ? u.Te : 0) + (h ? u.Ze : 0)); d.addColorStop(0, S.Y((f + u.Xh) % 360, c(k + u.Zh), c(e + u.Yh))); d.addColorStop(1, S.Y((f + u.ai) % 360, c(k + u.ci), c(e + u.bi))); b.strokeStyle = d; b.lineWidth = u.nb * Math.pow(u.Ra, a.R - 1); } }], e = Array(d.length); return function (a, b) { for (var c = d.length - 1; 0 <= c; c--) { e[c] = d[c].qa(a, b); } this.vj = d; this.Xg = e; }; }(), Da: function Da() {}, d: function d() {}, ib: function ib() {}, wb: function wb(a, b) { if (a.Wd && !((0 === a.opacity || a.open) && a.X || a.ba.Na() || !u.De && a.description)) { var c = this.vj, d = this.Xg; b.beginPath(); a.ba.Ta(b); for (var e = !1, f = !1, g = c.length - 1; 0 <= g; g--) { var h = c[g]; if (d[g]) switch (h.hd(a, b), h.type) { case 'fill': e = !0; break; case 'stroke': f = !0; } } c = (a.X ? a.opacity : 1) * a.sa.a; d = !a.empty(); g = u.ag ? a.sd : 1; e && (e = d && a.X && a.M && a.e[0].$ ? 1 - a.e.reduce(function (a, b) { return a + b.ua * b.Zd; }, 0) / a.e.length * (1 - u.Zf) : 1, b.globalAlpha = c * e * g, Wa(b)); f && (b.globalAlpha = c * (d ? u.wi : 1) * g, b.closePath(), Xa(b), b.stroke()); } } }, { $a: ['offsetPolygon'], qa: function qa() { return 0 < u.Rc; }, W: function W() {}, Da: function Da() {}, d: function d() {}, ib: function ib() {}, wb: function wb(a, b, c) { if (a.Wd && a.selected && !a.ba.Na()) { b.globalAlpha = a.Ka; b.beginPath(); var d = Math.pow(u.Ra, a.R - 1); b.lineWidth = u.Rc * d; b.strokeStyle = u.Vh; var e = u.Bd; 0 < e && (b.shadowBlur = e * d * c * b.n, b.shadowColor = u.We); a.ba.Ta(b); b.closePath(); b.stroke(); } } }, { $a: [], qa: function qa() { return !0; }, W: function W() {}, Da: function Da() {}, d: function d() {}, ib: function ib() {}, wb: function wb(a, b) { function c(d) { var e = Sa.yc.width, f = Sa.yc.height, g = M.se(a.aa, a.K, e / f), g = Math.min(Math.min(0.9 * g, 0.5 * a.q.i) / f, 0.5 * a.q.f / e); b.save(); b.translate(a.x, a.y); b.globalAlpha = a.opacity * a.fa; b.scale(g, g); b.translate(-e / 2, -f / 2); d(b); b.restore(); } a.na && !a.ba.Na() && c(function (a) { Sa.Gg(a); }); } }, { $a: [], qa: function (a, b) { return function (c, d) { return a(c, d) || b(c, d); }; }(b('labelPlainFill'), h(b('contentDecoration'), function () { return u.Pc; })), W: function W() {}, Da: function Da() {}, d: function d() {}, ib: function ib() {}, wb: function wb(a, b, c) { (0 < a.opacity && 0 < a.fa && !a.open || !a.X) && !a.ba.Na() && (a.Vc = a.ra && a.ra.la && u.n * a.ra.fontSize * a.scale * c >= u.Ph, !u.De && a.description ? a.rb = a.parent.rb : 'auto' === a.Hd ? (b = a.Qe, c = b.h + (b.s << 9) + (b.l << 16), a.zd !== c && (a.rb = S.Cg(b) > (0 > a.ka ? u.di : u.Eh) ? u.Fh : u.Oh, a.zd = c)) : a.rb = a.Hd); } }, { $a: ['custom'], qa: h(b('contentDecoration'), function () { return u.Pc; }), W: function W() {}, Da: function Da() {}, d: function d() {}, ib: function ib() {}, wb: function wb(a, b) { !(0 < a.opacity && 0 < a.fa && !a.open || !a.X) || a.ac.Na() || a.ba.Na() || (a.Vc || void 0 === a.ra ? (b.globalAlpha = a.fa * (a.X ? a.opacity : 1) * (a.empty() ? 1 : u.$f), b.fillStyle = a.rb, b.strokeStyle = a.rb, a.ac.Ta(b)) : k(a, b)); } }, { $a: ['label'], qa: b('labelPlainFill'), W: function W() {}, Da: function Da() {}, d: function d() {}, ib: function ib() {}, wb: function wb(a, b, c) { a.pf && a.Yc && (0 < a.opacity && 0 < a.fa && !a.open || !a.X) && !a.ba.Na() && a.ra && (b.fillStyle = a.rb, b.globalAlpha = a.fa * (a.X ? a.opacity : 1) * (a.empty() ? 1 : u.$f), a.Vc ? Ya(a, b, c) : k(a, b)); } }].reverse())]; this.H = function () { p = ua.ji(function () { return ja.eh(); }, 'CarrotSearchFoamTree', 12096e5)($a()); F.H(); }; this.clear = function () { s.clearRect(0, 0, H, Q); x.clearRect(0, 0, H, Q); }; var ea = !1, ba = void 0; this.k = function (a) { ea ? ba = a : a(); }; this.ee = function () { function a() { window.clearTimeout(b); ea = !0; b = setTimeout(function () { ea = !1; if (m()) { var a = !g(); f(null, d.ea, x, a); D.defer(function () { ca.sj(); ba && (ba(), ba = void 0); }); } }, Math.max(u.Gj, 3 * l.rg.Kd, 3 * l.rg.Jd)); } var b, d; return function (b) { ab(F); d = c(); var e = null !== d.vg, g = 0 < O.kc('hifi'), h = g && (e || !b); b = e || L || !b; L = !1; g && !h && ca.tj(); f(d.vg, d.wg, h ? x : s, b); Z.Fa(z, function (a) { a.Z = !1; a.I = !1; a.ab = !1; }); h || a(); u.Vf(e); }; }(); this.d = function (a) { a = a || {}; ab(F); z.I = !0; var b = c(), d = u.n; try { var e = D.B(a.pixelRatio, u.n); u.n = e; var g = O.oc('export', e, !0), h = g.getContext('2d'); s === t && (h = new ha(h)); h.scale(e, e); var k = D.Q(a, 'backgroundColor'); k && (h.save(), h.fillStyle = a.backgroundColor, h.fillRect(0, 0, H, Q), h.restore()); f(k ? [] : null, b.wg, h, !0); } finally { u.n = d; } return g.toDataURL(D.B(a.format, 'image/png'), D.B(a.quality, 0.8)); }; var ca = function () { function a(b, d, e, f) { function g(a, b, c, d) { return N.D.m({ opacity: O.kc(a) }).ia({ duration: c, G: { opacity: { end: b, P: d } }, ca: function ca() { O.kc(a, this.opacity); } }).xa(); } var h = D.Fd(O.kc(b), 1), k = D.Fd(O.kc(e), 0); if (!h || !k) { for (var l = c.length - 1; 0 <= l; l--) { c[l].stop(); } c = []; h || c.push(g(b, 1, d, X.Rb)); k || c.push(g(e, 0, f, X.og)); return N.D.m({}).Za(c).start(); } } var b, c = []; return { tj: function tj() { u.rd ? 1 !== r.style.opacity && (r.style.visibility = 'visible', y.style.visibility = 'hidden', r.style.opacity = 1, y.style.opacity = 0) : b && b.Gb() || (b = a('wireframe', u.Me, 'hifi', u.Me)); }, sj: function sj() { u.rd ? (y.style.visibility = 'visible', r.style.visibility = 'hidden', r.style.opacity = 0, y.style.opacity = 1) : a('hifi', u.yg, 'wireframe', u.yg); } }; }(); ab = function ab(a) { a.apply(); }; Wa = function Wa(a) { a.fill(); }; Xa = function Xa(a) { a.stroke(); }; return this; } var Wa, Xa, ab; function Ua(a) { function l(a) { return f.Nh ? (e.fontFamily = d.fontFamily, e.fontStyle = d.fontStyle, e.fontVariant = d.fontVariant, e.fontWeight = d.fontWeight, e.lineHeight = d.lineHeight, e.horizontalPadding = d.pb, e.verticalPadding = d.eb, e.maxTotalTextHeight = d.tb, e.maxFontSize = d.sb, g.Dc(f.Mh, a, e), c.fontFamily = e.fontFamily, c.fontStyle = e.fontStyle, c.fontVariant = e.fontVariant, c.fontWeight = e.fontWeight, c.lineHeight = e.lineHeight, c.pb = e.horizontalPadding, c.eb = e.verticalPadding, c.tb = e.maxTotalTextHeight, c.sb = e.maxFontSize, c) : d; } function k(a) { 'undefined' !== typeof a.groupLabelFontFamily && (d.fontFamily = a.groupLabelFontFamily); 'undefined' !== typeof a.groupLabelFontStyle && (d.fontStyle = a.groupLabelFontStyle); 'undefined' !== typeof a.groupLabelFontVariant && (d.fontVariant = a.groupLabelFontVariant); 'undefined' !== typeof a.groupLabelFontWeight && (d.fontWeight = a.groupLabelFontWeight); 'undefined' !== typeof a.groupLabelLineHeight && (d.lineHeight = a.groupLabelLineHeight); 'undefined' !== typeof a.groupLabelHorizontalPadding && (d.pb = a.groupLabelHorizontalPadding); 'undefined' !== typeof a.groupLabelVerticalPadding && (d.eb = a.groupLabelVerticalPadding); 'undefined' !== typeof a.groupLabelMaxTotalHeight && (d.tb = a.groupLabelMaxTotalHeight); 'undefined' !== typeof a.groupLabelMaxFontSize && (d.sb = a.groupLabelMaxFontSize); } var f = a.options, d = {}, c = {}, g, m = { groupLabel: '' }, e = {}; a.c.j('api:initialized', function (a) { g = a; }); a.c.j('options:changed', k); k(a.Ud); this.d = function (a) { if (!a.aa) return !1; var c = a.group.label; f.Hh && !a.na && (m.labelText = c, g.Dc(f.Gh, a, m), c = m.labelText); a.qf = c; return a.Id != c; }; this.k = function (a) { var c = a.qf; a.Id = c; a.Uc.clear(); a.ra = void 0; !a.aa || D.jf(c) || 'flattened' == f.Ua && !a.empty() && a.M || (a.ra = G.xe(l(a), a.Uc, c, a.aa, a.q, a.K, !1, !1, a.li, a.K.ja, f.Qh, a.Sa)); a.Sa = !1; }; Ya = this.A = function (a, c) { a.Uc.Ta(c); }; } var Ya; function Va(a) { function l(a, c) { var d = a.e, e = d.length, f, g, k = m.K.Ob; for (f = 0; f < e; f++) { g = d[f], g.Db = (180 * (Math.atan2(g.x - a.x, g.y - a.y) + c) / Math.PI + 180) / 360, g.Oc = Math.min(1, Math.sqrt(M.d(g, a)) / k); } } function k(a, c) { var d = a.e, e = d.length; if (1 === e || 2 === e && d[0].description) d[0].Db = 0.5;else { var f, g, k = 0, l = Number.MAX_VALUE, m = Math.sin(c), y = Math.cos(c); for (f = 0; f < e; f++) { g = d[f]; var x = g.x * m + g.y * y; k < x && (k = x); l > x && (l = x); g.Db = x; g.Oc = 1; } for (f = 0; f < e; f++) { g = d[f], g.Db = (g.Db - l) / (k - l); } } } function f(a, c, d, e) { c = c[e]; return c + (d[e] - c) * a; } var d = { radial: l, linear: k }, c = a.options, g, m, e = { groupColor: null, labelColor: null }; a.c.j('model:loaded', function (a) { m = a; }); a.c.j('api:initialized', function (a) { g = a; }); this.H = function () {}; this.apply = function () { function a(d) { if (d.M && d.Ca) { var k = d.e, l, m; if (d.Z || d.Ma || w) { 0 === d.R ? n(d, c.Vi * Math.PI / 180) : q(d, c.Zi * Math.PI / 180); for (l = k.length - 1; 0 <= l; l--) { m = k[l]; m.Ma = !0; var C = m.Db, H, Q, O, P, F = m.Pe; 0 === d.R ? (H = f(C, p, r, 'h'), Q = (y + (1 - y) * m.Oc) * f(C, p, r, 's'), O = (1 + (0 > m.ka ? t * (m.ka + 1) : t) * (1 - m.Oc)) * f(C, p, r, 'l'), P = f(C, p, r, 'a')) : (O = d.sa, H = O.h, Q = O.s, O = h(O.l, C, c.$i, c.aj), P = d.Pe.a); F.h = H; F.s = Q; F.l = O; F.a = P; H = m.sa; m.na ? (H.h = 0, H.s = 0, H.l = 'light' == c.Tg ? 90 : 10, H.a = 1) : (H.h = F.h, H.s = F.s, H.l = F.l, H.a = F.a); w && !m.na && (e.groupColor = H, e.labelColor = 'auto', g.Dc(s, m, e, function (a) { a.ratio = C; }), m.sa = S.Ba(e.groupColor), m.sa.a = D.Q(e.groupColor, 'a') ? e.groupColor.a : 1, 'auto' !== e.labelColor && (m.Hd = S.Ng(e.labelColor))); } d.Ma = !1; } for (l = k.length - 1; 0 <= l; l--) { a(k[l]); } } } function h(a, b, c, d) { var e = 0 > a + c * d ? 0 : 100 < a + c * d ? 100 : a + c * d; return e + b * ((0 > a - c * (1 - d) ? 0 : 100 < a - c * (1 - d) ? 100 : a - c * (1 - d)) - e); } var n = d[c.Ui] || l, q = k, p = c.dj, r = c.Xi, s = c.lh, w = c.mh, t = c.Yi, y = c.bj; a(m); }; return this; } function Ga() { this.uc = this.pe = this.rc = this.qg = this.f = this.xg = this.T = this.y = this.x = this.id = 0; this.o = this.parent = this.e = null; this.q = { x: 0, y: 0, f: 0, i: 0 }; this.C = null; this.Id = this.qf = void 0; this.ld = !1; this.Oc = this.Db = 0; this.Pe = { h: 0, s: 0, l: 0, a: 0, model: 'hsla' }; this.sa = { h: 0, s: 0, l: 0, a: 0, model: 'hsla' }; this.Qe = { h: 0, s: 0, l: 0, model: 'hsl' }; this.zd = -1; this.Hd = 'auto'; this.rb = '#000'; this.ng = this.R = this.Ed = this.index = 0; this.na = !1; this.ja = this.vf = 0; this.ea = !1; this.aa = null; this.K = { x: 0, y: 0, ja: 0, Ob: 0 }; this.Xd = this.u = null; this.Yc = this.$ = this.ab = this.Fc = this.me = this.Vd = this.Sa = this.Ma = this.I = this.Z = this.La = this.Ca = this.M = this.Qa = !1; this.wa = this.va = this.Ka = this.fa = this.opacity = this.scale = 1; this.ua = 0; this.Zd = 1; this.Lb = this.ka = this.Hb = 0; this.description = this.selected = this.Eb = this.Td = this.open = this.U = !1; this.Cb = 0; this.pf = this.Wd = this.X = !0; this.ra = void 0; this.Vc = !1; this.Uc = new ga(); this.ba = new ga(); this.ac = new ga(); this.li = G.yi(); this.Xc = 0; this.sd = 1; this.bd = -1; this.empty = function () { return !this.e || 0 === this.e.length; }; var a = []; this.Cc = function (d) { a.push(d); }; this.fd = function (d) { D.cg(a, d); }; var l = { scale: 1 }; this.Nd = function () { var d = !1; this.scale = 1; for (var c = 0; c < a.length; c++) { d = a[c].rf(this, l) || d, this.scale *= l.scale; } return d; }; this.Tb = function (d) { for (var c = 0; c < a.length; c++) { a[c].Tb(this, d); } }; this.Ub = function (d, c) { c.x = d.x; c.y = d.y; for (var f = 0; f < a.length; f++) { a[f].Ub(this, c, c); } return c; }; this.Vb = function (d, c) { c.x = d.x; c.y = d.y; for (var f = 0; f < a.length; f++) { a[f].Vb(this, c, c); } return c; }; var k = []; this.Ab = function (a) { k.push(a); }; this.ed = function (a) { D.cg(k, a); }; var f = { opacity: 1, wa: 1, va: 1, fa: 1, Ka: 1 }; this.nc = function () { if (0 !== k.length) { this.Ka = this.fa = this.va = this.wa = this.opacity = 1; for (var a = k.length - 1; 0 <= a; a--) { (0, k[a])(this, f), this.opacity *= f.opacity, this.va *= f.va, this.wa *= f.wa, this.fa *= f.fa, this.Ka *= f.Ka; } } }; } function Oa(a, l) { return l.T > a.T ? 1 : l.T < a.T ? -1 : a.index - l.index; } function bb(a) { var l = this, k, f, d, c, g = a.options, m, e; a.c.j('stage:initialized', function (b, e, m, q) { d = m; c = q; k = b.oc('titlebar', g.n, !1); f = k.getContext('2d'); f.n = g.n; f.scale(f.n, f.n); a.c.p('titlebar:initialized', l); }); a.c.j('stage:resized', function (a, e, g, k) { d = g; c = k; f.scale(f.n, f.n); }); a.c.j('zoom:initialized', function (a) { e = a; }); a.c.j('api:initialized', function (a) { m = a; }); a.c.j('model:loaded', function () { f.clearRect(0, 0, d, c); }); this.update = function (a) { f.clearRect(0, 0, d, c); if (a) { !a.empty() && a.e[0].description && (a = a.e[0]); var h = g.Aj, k = g.zj, l = Math.min(c / 2, g.ne + 2 * h), p = l - 2 * h, r = d - 2 * k; if (!(0 >= p || 0 >= r)) { var s = a.Vc ? a.ra.fontSize * a.scale * e.scale() : 0, w, t = { titleBarText: a.Id, titleBarTextColor: g.ug, titleBarBackgroundColor: g.tg, titleBarMaxFontSize: g.ne, titleBarShown: s < g.ri }; a.na ? w = xa.kg('B`ssnu!Rd`sbi!Gn`lUsdd!whrt`mh{`uhno/!Bmhbj!uid!mnfn!un!fn!un!iuuq;..b`ssnurd`sbi/bnl.gn`lusdd!gns!lnsd!edu`hmr/') : (m.Dc(g.wj, a, t, function (a) { a.titleBarWidth = r; a.titleBarHeight = p; a.labelFontSize = s; a.viewportScale = e.scale(); }), w = t.titleBarText); w && 0 !== w.length && t.titleBarShown && (a = e.nd(a.Ub(a, {}), {}).y > c / 2, h = { x: k, y: a ? h : c - l + h, f: r, i: p }, k = M.A(h), f.fillStyle = g.tg, f.fillRect(0, a ? 0 : c - l, d, l), f.fillStyle = g.ug, G.Le({ fontFamily: g.xj || g.Ih, fontStyle: g.Yj || g.Jh, fontWeight: g.$j || g.Lh, fontVariant: g.Zj || g.Kh, sb: g.ne, Zc: g.yj, pb: 0, eb: 0, tb: 1 }, f, w, k, h, { x: h.x + h.f / 2, y: h.y + h.i / 2 }, !0, !0).la || f.clearRect(0, 0, d, c)); } } }; } function cb(a) { function l(a, b, c) { t = !0; h && h.stop(); q && q.stop(); return g(e.reset(a), b, c).N(function () { t = !1; }); } function k(b) { e.update(b); s.I = !0; a.c.p('foamtree:dirty', !0); } function f(a, b) { return e.d((0 !== e.k() ? 0.35 : 1) * a, (0 !== e.A() ? 0.35 : 1) * b); } function d() { if (1 === b.Pb) { var a = Math.round(1e4 * e.k()) / 1e4; 0 !== a && (n.$d = a, h = w.D.tc(n).ia({ duration: 500, G: { x: { start: a, end: 0, P: X.Rb } }, ca: function ca() { e.d(n.x - n.$d, 0); k(1); n.$d = n.x; } }).start()); } } function c() { if (1 === b.Pb) { var a = Math.round(1e4 * e.A()) / 1e4; 0 !== a && (p.ae = a, q = w.D.tc(p).ia({ duration: 500, G: { y: { start: a, end: 0, P: X.Rb } }, ca: function ca() { e.d(0, p.y - p.ae); k(1); p.ae = p.y; } }).start()); } } function g(a, c, d) { return a ? w.D.tc(b).ia({ duration: void 0 === c ? 700 : c, G: { Pb: { start: 0, end: 1, P: d || X.pg } }, ca: function ca() { k(b.Pb); } }).bb() : new V().J().L(); } function m(a) { return function () { return t ? new V().J().L() : a.apply(this, arguments); }; } var e = new oa(a), b = { Pb: 1 }, h, n = { Ee: 0, x: 0, $d: 0 }, q, p = { Fe: 0, y: 0, ae: 0 }, r = this, s, w, t = !1; a.c.j('model:loaded', function (a) { s = a; e.reset(!1); e.update(1); }); a.c.j('timeline:initialized', function (a) { w = a; }); this.H = function () { a.c.p('zoom:initialized', this); }; this.reset = function (a, b) { e.Qb(1); return l(!0, a, b); }; this.normalize = m(function (a, b) { e.Hc(1) ? l(!1, a, b) : r.wf(); }); this.wf = function () { d(); c(); }; this.k = m(function (a, b, c, d) { return r.sc(a.q, b, c, d); }); this.Yb = m(function (a, b, c, d) { return g(e.Yb(a, b), c, d); }); this.sc = m(function (a, b, c, d) { return g(e.sc(a, b), c, d); }); this.Bj = m(function (a, b) { e.sc(a, b) && k(1); }); this.ti = m(function (a, c) { 1 === b.Pb && f(a, c) && k(1); }); this.Rg = m(function (a, b) { e.Yb(a, b) && k(1); }); this.Qg = m(function (a, b, c, d) { a = 0 | e.Yb(a, b); (a |= f(c, d)) && k(1); }); this.ui = m(function (a, g, l) { 1 === b.Pb && (h = w.D.tc(n).ia({ duration: a / 0.03, G: { Ee: { start: g, end: 0, P: X.Rb } }, ca: function ca() { e.d(n.Ee, 0) && k(1); d(); } }).start(), q = w.D.tc(p).ia({ duration: a / 0.03, G: { Fe: { start: l, end: 0, P: X.Rb } }, ca: function ca() { f(0, p.Fe) && k(1); c(); } }).start()); }); this.vi = function () { h && 0 === e.k() && h.stop(); q && 0 === e.A() && q.stop(); }; this.Jc = function (a, b) { e.Jc(a, b); }; this.Qb = function (a) { return e.Qb(a); }; this.Hc = function (a) { return e.Hc(a); }; this.Rd = function () { return e.Rd(); }; this.absolute = function (a, b) { return e.absolute(a, b); }; this.nd = function (a, b) { return e.nd(a, b); }; this.scale = function () { return e.scale(); }; this.d = function (a) { return e.S(a); }; this.content = function (a, b, c, d) { e.content(a, b, c, d); }; } function db(a, l, k) { function f(a) { var b = []; Z.F(q, function (c) { a(c) && b.push(c.group); }); return { groups: b }; } function d(a, b) { var c = n.options, d = c.kj, e = c.jj, c = c.fe, f = 0 < d + e ? c : 0, g = []; Ca.Ja(a, Ca.ya(a, n.options.he), function (a, c, h) { c = 'groups' === n.options.ge ? h : c; a.e && (a = r.D.m(a).fb(f * (e + d * c)).call(b).xa(), g.push(a)); }); return r.D.m({}).Za(g).bb(); } function c(a) { Y || (Y = !0, p.d(function () { Y = !1; n.c.p('repaint:before'); B.ee(this.Pg); }, { Pg: a })); } function g(a) { function c(a, b) { var f = a.$; a.$ = b <= d; a.Yc = b <= e; a.$ !== f && Z.Ge(a, function (a) { a.me = !0; }); a.open || a.gb || b++; if (f = a.e) for (var g = 0; g < f.length; g++) { c(f[g], b); } } var d = n.options.sf, e = Math.min(n.options.sf, n.options.oi); if (a) for (var f = 0; f < a.length; f++) { var g = a[f]; c(g, b(g)); } else c(q, 0); } function m(a, b) { var c = [], d = e(a, b); d.si && n.c.p('model:childrenAttached', Z.Mc(q)); d.ej && A.complete(function (a) { J.qb(a); c.push(a); }); for (var f = d = 0; f < c.length; f++) { var g = c[f]; g.e && (d += g.e.length); g.Ca = !0; H.d(g); } return d; } function e(a, b) { function c(a, b) { var k = !a.na && b - (a.gb ? 1 : 0) < d; f = f || k; a.Qa = a.Qa || k; a.open || a.gb || b++; var l = a.e; !l && k && (e = x.S(a) || e, l = a.e, h && (a.Sa = !0)); if (l) for (k = 0; k < l.length; k++) { g.push(l[k], b); } } var d = b || n.options.pi, e = !1, f = !1, g, h = 'flattened' === l.Ua; for (g = a ? a.reduce(function (a, b) { a.push(b, 1); return a; }, []) : [q, 1]; 0 < g.length;) { c(g.shift(), g.shift()); } return { si: e, ej: f }; } function b(a) { for (var b = 0; a.parent;) { a.open || a.gb || b++, a = a.parent; } return b; } var h = this, n = { c: new wa(), options: l, Ud: k }, q, p = new da(), r = new ya(p), s = aa.create(), w = new ka(n), t = new cb(n), y = new Ea(n), x = new Fa(n.options), A = new Pa(n), B = new Ta(n, p), K = new Ma(n); new bb(n); var C = new Ia(n), H = new Ja(n), Q = new Ka(n), O = new La(n); n.c.j('stage:initialized', function (a, b, c, d) { u.ff(c, d); }); n.c.j('stage:resized', function (a, b, c, d) { u.ij(a, b, c, d); }); n.c.j('foamtree:attachChildren', m); n.c.j('openclose:changing', g); n.c.j('interaction:reset', function () { R(!0); }); n.c.j('foamtree:dirty', c); this.H = function () { n.c.p('timeline:initialized', r); q = x.H(); w.H(a); y.H(); B.H(); K.H(); C.H(); H.H(); t.H(); Q.H(); O.H(); }; this.lb = function () { r.d(); I.stop(); p.k(); w.lb(); }; var P = 'groupLabelFontFamily groupLabelFontStyle groupLabelFontVariant groupLabelFontWeight groupLabelLineHeight groupLabelHorizontalPadding groupLabelVerticalPadding groupLabelDottingThreshold groupLabelMaxTotalHeight groupLabelMinFontSize groupLabelMaxFontSize groupLabelDecorator'.split(' '), F = 'rainbowColorDistribution rainbowLightnessDistribution rainbowColorDistributionAngle rainbowLightnessDistributionAngle rainbowColorModelStartPoint rainbowLightnessCorrection rainbowSaturationCorrection rainbowStartColor rainbowEndColor rainbowHueShift rainbowHueShiftCenter rainbowSaturationShift rainbowSaturationShiftCenter rainbowLightnessShift rainbowLightnessShiftCenter attributionTheme'.split(' '), T = !1, N = ['groupBorderRadius', 'groupBorderRadiusCorrection', 'groupBorderWidth', 'groupInsetWidth', 'groupBorderWidthScaling'], U = ['maxGroupLevelsDrawn', 'maxGroupLabelLevelsDrawn']; this.Xb = function (a) { n.c.p('options:changed', a); D.ob(a, P) && Z.F(q, function (a) { a.Sa = !0; }); D.ob(a, F) && (q.Ma = !0); D.ob(a, N) && (T = !0); D.ob(a, U) && (g(), m()); }; this.reload = function () { z.reload(); }; this.yc = function (a, b) { D.defer(function () { if (T) u.mi(a), T = !1;else { if (b) for (var d = x.k(b), e = d.length - 1; 0 <= e; e--) { d[e].I = !0; } else q.I = !0; c(a); } }); }; this.Y = function () { w.k(); }; this.update = function () { x.update(); u.Cj(); }; this.reset = function () { return R(!1); }; this.S = B.d; this.Ja = function () { var a = {}; return function (b, c) { var d = x.d(b); return d ? y.od(a, d, c) : null; }; }(); this.Ba = function () { var a = { x: 0, y: 0 }, b = { x: 0, y: 0 }; return function (c, d) { var e = x.d(c); return e ? (a.x = d.x, a.y = d.y, e.Ub(a, a), t.nd(a, a), b.x = a.x, b.y = a.y, b) : null; }; }(); this.ya = function () { var a = {}; return function (b) { return (b = x.d(b)) ? y.qd(a, b) : null; }; }(); this.Wb = function () { var a = {}; return function (b) { return (b = x.d(b)) ? y.pd(a, b) : null; }; }(); this.za = function () { var a = {}; return function () { return t.d(a); }; }(); this.zc = function () { this.A({ groups: f(function (a) { return a.group.selected; }), newState: !0, keepPrevious: !1 }); this.k({ groups: f(function (a) { return a.group.open; }), newState: !0, keepPrevious: !1 }); this.d({ groups: f(function (a) { return a.group.exposed; }), newState: !0, keepPrevious: !1 }); }; this.Pa = function () { return f(function (a) { return a.U; }); }; this.d = function (a) { return z.submit(function () { return C.fc(x.A(a, 'exposed', !1), !1, !0, !1); }); }; this.cb = function () { return f(function (a) { return a.open; }); }; this.k = function (a) { return z.submit(function () { return Q.Kb(x.A(a, 'open', !0), !1, !1); }); }; this.Va = function () { return f(function (a) { return a.selected; }); }; this.A = function (a) { return z.submit(function () { O.select(x.A(a, 'selected', !0), !1); return new V().J().L(); }); }; this.Bc = function (a) { return (a = x.d(a)) ? a === q ? t.reset(l.wc, X.pa(l.xc)) : t.k(a, l.Qc, l.wc, X.pa(l.xc)) : new V().J().L(); }; this.Aa = function (a, b) { var c = x.k(a); if (c) { var d = m(c, b); g(c); return d; } return 0; }; this.hb = function (a) { return K.hb[a]; }; this.Ac = function () { var a = fa; return { frames: a.frames, totalTime: a.totalTime, lastFrameTime: a.Jd, lastInterFrameTime: a.Kd, fps: a.Oe }; }; var u = function () { function a(c, f) { var g = c || d, h = f || e; d = g; e = h; var k = l.bc && l.bc.boundary; k && 2 < k.length ? q.o = k.map(function (a) { return { x: g * a.x, y: h * a.y }; }) : q.o = [{ x: 0, y: 0 }, { x: g, y: 0 }, { x: g, y: h }, { x: 0, y: h }]; b(); } function b() { q.Z = !0; q.u = q.o; q.q = M.q(q.o, q.q); q.K = q; M.re(q.o, q.K); } var d, e; return { ff: a, ij: function ij(b, d, e, f) { J.stop(); var g = e / b, h = f / d; Z.He(q, function (a) { a.x = a.x * g + (Math.random() - 0.5) * e / 1e3; a.y = a.y * h + (Math.random() - 0.5) * f / 1e3; }); a(e, f); q.La = !0; A.step(J.qb, !0, !1, function (a) { var b = a.e; if (b) { A.Nb(a); for (var c = b.length - 1; 0 <= c; c--) { var d = b[c]; d.f = d.rc; } a.La = !0; } }) ? c(!1) : (A.qc(q), n.options.de ? (c(!1), I.dg(), I.gd()) : (A.complete(J.qb), q.Ma = !0, c(!1))); }, mi: function mi(a) { var d = !1; q.empty() || (b(), I.Gb() || (d = A.step(J.qb, !1, !1), c(a))); return d; }, Cj: function Cj() { Z.Fa(q, function (a) { a.empty() || A.Nb(a); }); A.qc(q); n.options.de ? (I.dg(), Z.Fa(q, function (a) { a.empty() || J.df(a); })) : (Z.Fa(q, function (a) { a.empty() || J.qb(q); }), A.complete(J.qb), q.Ma = !0, c(!1)); } }; }(), z = function () { function a() { 0 === l.Yd && t.reset(0); n.options.Uf(l.bc); u.ff(); x.Y(l.bc); e(); g(); n.c.p('model:loaded', q, Z.Mc(q)); var d; q.empty() || (q.open = !0, q.Qa = !0, l.de ? d = I.gd() : (I.xi(), d = f()), b(), 0 < l.fe ? (B.clear(), w.d(1)) : d = pa([d, c(1)])); n.options.Tf(l.bc); d && (n.options.Xf(), d.N(function () { B.k(function () { p.d(n.options.Wf); }); })); } function b() { var a = l.Wa, c = l.cd; l.Wa = 0; l.cd = 0; h.zc(); l.Wa = a; l.cd = c; } function c(a, b) { return 0 === l.Ke || b ? (w.d(a), new V().J().L()) : r.D.m({ opacity: w.d() }).oe(2).ia({ duration: l.Ke, G: { opacity: { end: a, P: X.pa(l.fh) } }, ca: function ca() { w.d(this.opacity); } }).bb(); } function f() { Z.Fa(q, function (a) { a.Ca = !1; }); var a = new V(), b = new qa(a.J); b.d(); q.Ca = !0; H.d(q).N(b.k); d(q, function Za() { this.M && this.o && (this.Z = this.Ca = !0, b.d(), H.d(this).N(b.k), b.d(), d(this, Za).N(b.k)); }); return a.L(); } function k() { for (var a = 0; a < s.length; a++) { var b = s[a], c = b.action(); D.Q(c, 'then') ? c.N(b.Ae.J) : b.Ae.J(); } s = []; } var m = !1, s = []; return { reload: function reload() { m || (q.empty() ? a() : (J.stop(), r.d(), I.stop(), m = !0, pa(0 < l.Yd ? [H.k(), R(!1)] : [c(0)]).N(function () { c(0, !0); m = !1; a(); D.defer(k); }))); }, submit: function submit(a) { if (m) { var b = new V(); s.push({ action: a, Ae: b }); return b.L(); } return a(); } }; }(), L, E = new qa(function () { L.J(); }), I = function () { function a() { f || (E.A() && (L = new V()), E.d(), b(), f = !0, p.repeat(e)); return L.L(); } function b() { g = s.now(); } function e() { var b = s.now() - g > l.hj, b = A.step(function (b) { b.Ca = !0; J.df(b); E.d(); H.d(b).N(E.k); E.d(); d(b, function () { this.Qa = !0; a(); }).N(E.k); }, !0, b) || b; c(!0); b && (f = !1, E.k()); return b; } var f = !1, g; return { xi: function xi() { A.complete(J.qb); }, gd: a, dg: b, Gb: function Gb() { return !E.A(); }, stop: function stop() { p.cancel(e); f = !1; E.clear(); } }; }(), J = function () { function a(b) { var c = !b.empty(); b.Ca = !0; if (c) { for (var d = b.e, e = d.length - 1; 0 <= e; e--) { var f = d[e]; f.f = f.rc; } b.La = !0; } return c; } var b = []; return { df: function df(c) { var d = n.options, e = d.zh; 0 < e ? Ca.Ja(c, Ca.ya(c, n.options.he), function (a, c, f) { c = 'groups' === n.options.ge ? f : c; E.d(); b.push(r.D.m(a).fb(c * d.yh * e).ia({ duration: e, G: { f: { start: a.qg, end: a.rc, P: X.pa(d.Ah) } }, ca: function ca() { this.f = Math.max(0, this.f); this.parent.La = !0; I.gd(); } }).jb(E.k).start()); }) : a(c) && I.gd(); }, qb: a, stop: function stop() { for (var a = b.length - 1; 0 <= a; a--) { b[a].stop(); } b = []; } }; }(), R = function () { var a = !1; return function (b) { if (a) return new V().J().L(); a = !0; var c = []; c.push(t.reset(l.wc, X.pa(l.xc))); var d = new V(); C.fc({ e: [], Ia: !1, Ha: !1 }, b, !1, !0).N(function () { Q.Kb({ e: [], Ia: !1, Ha: !1 }, b, !1).N(d.J); }); c.push(d.L()); return pa(c).N(function () { a = !1; b && l.Yf(); }); }; }(), Y = !1; } function $a() { return { version: '3.4.5', build: '4fa198d722d767b68d0409e88290ea6de98d1eaa/4fa198d7', brandingAllowed: !1 }; } v.Dd(function () { window.CarrotSearchFoamTree = function (a) { function l(a, b) { if (!m || m.exists(a)) switch (a) { case 'selection': return h.Va(); case 'open': return h.cb(); case 'exposure': return h.Pa(); case 'state': return h.ya.apply(this, b); case 'geometry': return h.Ja.apply(this, b); case 'hierarchy': return h.Wb.apply(this, b); case 'containerCoordinates': return h.Ba.apply(this, b); case 'imageData': return h.S.apply(this, b); case 'viewport': return h.za(); case 'times': return h.Ac(); case 'onModelChanged': case 'onRedraw': case 'onRolloutStart': case 'onRolloutComplete': case 'onRelaxationStep': case 'onGroupHover': case 'onGroupOpenOrCloseChanging': case 'onGroupExposureChanging': case 'onGroupSelectionChanging': case 'onGroupSelectionChanged': case 'onGroupClick': case 'onGroupDoubleClick': case 'onGroupHold': var c = e[a]; return Array.isArray(c) ? c : [c]; default: return e[a]; } } function k(a) { function c(a, b) { return D.Q(f, a) ? (b(f[a]), delete f[a], 1) : 0; } var f; if (0 === arguments.length) return 0; 1 === arguments.length ? f = D.extend({}, arguments[0]) : 2 === arguments.length && (f = {}, f[arguments[0]] = arguments[1]); m && m.validate(f, b.ni); var g = 0; h && (g += c('selection', h.A), g += c('open', h.k), g += c('exposure', h.d)); var k = {}; D.Ga(f, function (a, b) { if (e[b] !== a || D.jc(a)) k[b] = a, g++; e[b] = a; }); 0 < g && d(k); return g; } function f(a, b) { var c = 'on' + a.charAt(0).toUpperCase() + a.slice(1), f = e[c]; e[c] = b(Array.isArray(f) ? f : [f]); f = {}; f[c] = e[c]; d(f); } function d(a) { (function () { function c(b, d) { return D.Q(a, b) || void 0 === d ? va.m(e[b], g) : d; } b.ni = e.logging; b.bc = e.dataObject; b.n = e.pixelRatio; b.yb = e.wireframePixelRatio; b.Ua = e.stacking; b.dc = e.descriptionGroupType; b.Ic = e.descriptionGroupPosition; b.bh = e.descriptionGroupDistanceFromCenter; b.cc = e.descriptionGroupSize; b.Ce = e.descriptionGroupMinHeight; b.Be = e.descriptionGroupMaxHeight; b.De = e.descriptionGroupPolygonDrawn; b.Wc = e.layout; b.lc = e.layoutByWeightOrder; b.uj = e.showZeroWeightGroups; b.Ve = e.groupMinDiameter; b.ce = e.rectangleAspectRatioPreference; b.gj = e.initializer || e.relaxationInitializer; b.hj = e.relaxationMaxDuration; b.de = e.relaxationVisible; b.bg = e.relaxationQualityThreshold; b.Rh = e.groupResizingBudget; b.zh = e.groupGrowingDuration; b.yh = e.groupGrowingDrag; b.Ah = e.groupGrowingEasing; b.jh = e.groupBorderRadius; b.mb = e.groupBorderWidth; b.Ra = e.groupBorderWidthScaling; b.Ad = e.groupInsetWidth; b.kh = e.groupBorderRadiusCorrection; b.nb = e.groupStrokeWidth; b.Rc = e.groupSelectionOutlineWidth; b.Vh = e.groupSelectionOutlineColor; b.Bd = e.groupSelectionOutlineShadowSize; b.We = e.groupSelectionOutlineShadowColor; b.Sh = e.groupSelectionFillHueShift; b.Uh = e.groupSelectionFillSaturationShift; b.Th = e.groupSelectionFillLightnessShift; b.Ye = e.groupSelectionStrokeHueShift; b.$e = e.groupSelectionStrokeSaturationShift; b.Ze = e.groupSelectionStrokeLightnessShift; b.xh = e.groupFillType; b.th = e.groupFillGradientRadius; b.qh = e.groupFillGradientCenterHueShift; b.sh = e.groupFillGradientCenterSaturationShift; b.rh = e.groupFillGradientCenterLightnessShift; b.uh = e.groupFillGradientRimHueShift; b.wh = e.groupFillGradientRimSaturationShift; b.vh = e.groupFillGradientRimLightnessShift; b.Cd = e.groupStrokeType; b.nb = e.groupStrokeWidth; b.af = e.groupStrokePlainHueShift; b.cf = e.groupStrokePlainSaturationShift; b.bf = e.groupStrokePlainLightnessShift; b.$h = e.groupStrokeGradientRadius; b.Wh = e.groupStrokeGradientAngle; b.ai = e.groupStrokeGradientUpperHueShift; b.ci = e.groupStrokeGradientUpperSaturationShift; b.bi = e.groupStrokeGradientUpperLightnessShift; b.Xh = e.groupStrokeGradientLowerHueShift; b.Zh = e.groupStrokeGradientLowerSaturationShift; b.Yh = e.groupStrokeGradientLowerLightnessShift; b.Bh = e.groupHoverFillHueShift; b.Dh = e.groupHoverFillSaturationShift; b.Ch = e.groupHoverFillLightnessShift; b.Se = e.groupHoverStrokeHueShift; b.Ue = e.groupHoverStrokeSaturationShift; b.Te = e.groupHoverStrokeLightnessShift; b.Xa = e.groupExposureScale; b.ph = e.groupExposureShadowColor; b.Re = e.groupExposureShadowSize; b.Qc = e.groupExposureZoomMargin; b.ei = e.groupUnexposureLightnessShift; b.fi = e.groupUnexposureSaturationShift; b.di = e.groupUnexposureLabelColorThreshold; b.Wa = e.exposeDuration; b.gc = e.exposeEasing; b.cd = e.openCloseDuration; b.lh = va.m(e.groupColorDecorator, g); b.mh = e.groupColorDecorator !== D.ta; b.Gh = va.m(e.groupLabelDecorator, g); b.Hh = e.groupLabelDecorator !== D.ta; b.Mh = va.m(e.groupLabelLayoutDecorator, g); b.Nh = e.groupLabelLayoutDecorator !== D.ta; b.nh = va.m(e.groupContentDecorator, g); b.Pc = e.groupContentDecorator !== D.ta; b.oh = e.groupContentDecoratorTriggering; b.cj = e.rainbowStartColor; b.Wi = e.rainbowEndColor; b.Ui = e.rainbowColorDistribution; b.Vi = e.rainbowColorDistributionAngle; b.Zi = e.rainbowLightnessDistributionAngle; b.$i = e.rainbowLightnessShift; b.aj = e.rainbowLightnessShiftCenter; b.bj = e.rainbowSaturationCorrection; b.Yi = e.rainbowLightnessCorrection; b.Zf = e.parentFillOpacity; b.wi = e.parentStrokeOpacity; b.$f = e.parentLabelOpacity; b.ag = e.parentOpacityBalancing; b.Qh = e.groupLabelUpdateThreshold; b.Ih = e.groupLabelFontFamily; b.Jh = e.groupLabelFontStyle; b.Kh = e.groupLabelFontVariant; b.Lh = e.groupLabelFontWeight; b.Ph = e.groupLabelMinFontSize; b.Qj = e.groupLabelMaxFontSize; b.Pj = e.groupLabelLineHeight; b.Oj = e.groupLabelHorizontalPadding; b.Sj = e.groupLabelVerticalPadding; b.Rj = e.groupLabelMaxTotalHeight; b.Fh = e.groupLabelDarkColor; b.Oh = e.groupLabelLightColor; b.Eh = e.groupLabelColorThreshold; b.Ej = e.wireframeDrawMaxDuration; b.Fj = e.wireframeLabelDrawing; b.Dj = e.wireframeContentDecorationDrawing; b.yg = e.wireframeToFinalFadeDuration; b.Gj = e.wireframeToFinalFadeDelay; b.gh = e.finalCompleteDrawMaxDuration; b.hh = e.finalIncrementalDrawMaxDuration; b.Me = e.finalToWireframeFadeDuration; b.rd = e.androidStockBrowserWorkaround; b.ef = e.incrementalDraw; b.qi = e.maxGroups; b.pi = e.maxGroupLevelsAttached; b.sf = e.maxGroupLevelsDrawn; b.oi = e.maxGroupLabelLevelsDrawn; b.he = e.rolloutStartPoint; b.ge = e.rolloutMethod; b.lj = e.rolloutEasing; b.fe = e.rolloutDuration; b.gg = e.rolloutScalingStrength; b.ig = e.rolloutTranslationXStrength; b.jg = e.rolloutTranslationYStrength; b.fg = e.rolloutRotationStrength; b.hg = e.rolloutTransformationCenter; b.pj = e.rolloutPolygonDrag; b.qj = e.rolloutPolygonDuration; b.mj = e.rolloutLabelDelay; b.nj = e.rolloutLabelDrag; b.oj = e.rolloutLabelDuration; b.kj = e.rolloutChildGroupsDrag; b.jj = e.rolloutChildGroupsDelay; b.Ni = e.pullbackStartPoint; b.Hi = e.pullbackMethod; b.Di = e.pullbackEasing; b.Vj = e.pullbackType; b.Yd = e.pullbackDuration; b.Mi = e.pullbackScalingStrength; b.Pi = e.pullbackTranslationXStrength; b.Qi = e.pullbackTranslationYStrength; b.Li = e.pullbackRotationStrength; b.Oi = e.pullbackTransformationCenter; b.Ii = e.pullbackPolygonDelay; b.Ji = e.pullbackPolygonDrag; b.Ki = e.pullbackPolygonDuration; b.Ei = e.pullbackLabelDelay; b.Fi = e.pullbackLabelDrag; b.Gi = e.pullbackLabelDuration; b.Ai = e.pullbackChildGroupsDelay; b.Bi = e.pullbackChildGroupsDrag; b.Ci = e.pullbackChildGroupsDuration; b.Ke = e.fadeDuration; b.fh = e.fadeEasing; b.Hj = e.zoomMouseWheelFactor; b.wc = e.zoomMouseWheelDuration; b.xc = e.zoomMouseWheelEasing; b.ri = e.maxLabelSizeForTitleBar; b.xj = e.titleBarFontFamily; b.tg = e.titleBarBackgroundColor; b.ug = e.titleBarTextColor; b.yj = e.titleBarMinFontSize; b.ne = e.titleBarMaxFontSize; b.zj = e.titleBarTextPaddingLeftRight; b.Aj = e.titleBarTextPaddingTopBottom; b.wj = e.titleBarDecorator; b.Lj = e.attributionText; b.Ij = e.attributionLogo; b.Kj = e.attributionLogoScale; b.Mj = e.attributionUrl; b.ve = e.attributionPosition; b.Sg = e.attributionDistanceFromCenter; b.Ug = e.attributionWeight; b.Tg = e.attributionTheme; b.gf = e.interactionHandler; b.Uf = c('onModelChanging', b.Uf); b.Tf = c('onModelChanged', b.Tf); b.Vf = c('onRedraw', b.Vf); b.Xf = c('onRolloutStart', b.Xf); b.Wf = c('onRolloutComplete', b.Wf); b.Sd = c('onRelaxationStep', b.Sd); b.Yf = c('onViewReset', b.Yf); b.Mf = c('onGroupOpenOrCloseChanging', b.Mf); b.Lf = c('onGroupOpenOrCloseChanged', b.Lf); b.Ef = c('onGroupExposureChanging', b.Ef); b.Df = c('onGroupExposureChanged', b.Df); b.Of = c('onGroupSelectionChanging', b.Of); b.Nf = c('onGroupSelectionChanged', b.Nf); b.Gf = c('onGroupHover', b.Gf); b.If = c('onGroupMouseMove', b.If); b.yf = c('onGroupClick', b.yf); b.zf = c('onGroupDoubleClick', b.zf); b.Ff = c('onGroupHold', b.Ff); b.Kf = c('onGroupMouseWheel', b.Kf); b.Jf = c('onGroupMouseUp', b.Jf); b.Hf = c('onGroupMouseDown', b.Hf); b.Cf = c('onGroupDragStart', b.Cf); b.Af = c('onGroupDrag', b.Af); b.Bf = c('onGroupDragEnd', b.Bf); b.Rf = c('onGroupTransformStart', b.Rf); b.Pf = c('onGroupTransform', b.Pf); b.Qf = c('onGroupTransformEnd', b.Qf); b.Sf = c('onKeyUp', b.Sf); })(); b.dj = S.Ba(b.cj); b.Xi = S.Ba(b.Wi); b.Xe = S.Ba(b.We); b.Jj = null; h && (h.Xb(a), D.Q(a, 'dataObject') && h.reload()); } function c(a) { return function () { return a.apply(this, arguments).ih(g); }; } var g = this, m = window.CarrotSearchFoamTree.asserts, e = D.extend({}, window.CarrotSearchFoamTree.defaults), b = {}; k(a); (a = e.element || document.getElementById(e.id)) || na.Pa('Element to embed FoamTree in not found.'); e.element = a; var h = new db(a, b, e); h.H(); var n = { get: function get(a) { return 0 === arguments.length ? D.extend({}, e) : l(arguments[0], Array.prototype.slice.call(arguments, 1)); }, set: k, on: function on(a, b) { f(a, function (a) { a.push(b); return a; }); }, off: function off(a, b) { f(a, function (a) { return a.filter(function (a) { return a !== b; }); }); }, resize: h.Y, redraw: h.yc, update: h.update, attach: h.Aa, select: c(h.A), expose: c(h.d), open: c(h.k), reset: c(h.reset), zoom: c(h.Bc), trigger: function trigger(a, b) { var c = h.hb(a); c && c(b); }, dispose: function dispose() { function a() { throw 'FoamTree instance disposed'; } h.lb(); D.Ga(n, function (b, c) { 'dispose' !== c && (g[c] = a); }); } }; D.Ga(n, function (a, b) { g[b] = a; }); h.reload(); }; window['CarrotSearchFoamTree.asserts'] && (window.CarrotSearchFoamTree.asserts = window['CarrotSearchFoamTree.asserts'], delete window['CarrotSearchFoamTree.asserts']); window.CarrotSearchFoamTree.supported = !0; window.CarrotSearchFoamTree.version = $a; window.CarrotSearchFoamTree.defaults = Object.freeze({ id: void 0, element: void 0, logging: !1, dataObject: void 0, pixelRatio: 1, wireframePixelRatio: 1, layout: 'relaxed', layoutByWeightOrder: !0, showZeroWeightGroups: !0, groupMinDiameter: 10, rectangleAspectRatioPreference: -1, relaxationInitializer: 'fisheye', relaxationMaxDuration: 3e3, relaxationVisible: !1, relaxationQualityThreshold: 1, stacking: 'hierarchical', descriptionGroupType: 'stab', descriptionGroupPosition: 225, descriptionGroupDistanceFromCenter: 1, descriptionGroupSize: 0.125, descriptionGroupMinHeight: 35, descriptionGroupMaxHeight: 0.5, descriptionGroupPolygonDrawn: !1, maxGroups: 5e4, maxGroupLevelsAttached: 4, maxGroupLevelsDrawn: 4, maxGroupLabelLevelsDrawn: 3, groupGrowingDuration: 0, groupGrowingEasing: 'bounce', groupGrowingDrag: 0, groupResizingBudget: 2, groupBorderRadius: 0.15, groupBorderWidth: 4, groupBorderWidthScaling: 0.6, groupInsetWidth: 6, groupBorderRadiusCorrection: 1, groupSelectionOutlineWidth: 5, groupSelectionOutlineColor: '#222', groupSelectionOutlineShadowSize: 0, groupSelectionOutlineShadowColor: '#fff', groupSelectionFillHueShift: 0, groupSelectionFillSaturationShift: 0, groupSelectionFillLightnessShift: 0, groupSelectionStrokeHueShift: 0, groupSelectionStrokeSaturationShift: 0, groupSelectionStrokeLightnessShift: -10, groupFillType: 'gradient', groupFillGradientRadius: 1, groupFillGradientCenterHueShift: 0, groupFillGradientCenterSaturationShift: 0, groupFillGradientCenterLightnessShift: 20, groupFillGradientRimHueShift: 0, groupFillGradientRimSaturationShift: 0, groupFillGradientRimLightnessShift: -5, groupStrokeType: 'plain', groupStrokeWidth: 1.5, groupStrokePlainHueShift: 0, groupStrokePlainSaturationShift: 0, groupStrokePlainLightnessShift: -10, groupStrokeGradientRadius: 1, groupStrokeGradientAngle: 45, groupStrokeGradientUpperHueShift: 0, groupStrokeGradientUpperSaturationShift: 0, groupStrokeGradientUpperLightnessShift: 20, groupStrokeGradientLowerHueShift: 0, groupStrokeGradientLowerSaturationShift: 0, groupStrokeGradientLowerLightnessShift: -20, groupHoverFillHueShift: 0, groupHoverFillSaturationShift: 0, groupHoverFillLightnessShift: 20, groupHoverStrokeHueShift: 0, groupHoverStrokeSaturationShift: 0, groupHoverStrokeLightnessShift: -10, groupExposureScale: 1.15, groupExposureShadowColor: 'rgba(0, 0, 0, 0.5)', groupExposureShadowSize: 50, groupExposureZoomMargin: 0.1, groupUnexposureLightnessShift: 65, groupUnexposureSaturationShift: -65, groupUnexposureLabelColorThreshold: 0.35, exposeDuration: 700, exposeEasing: 'squareInOut', groupColorDecorator: D.ta, groupLabelDecorator: D.ta, groupLabelLayoutDecorator: D.ta, groupContentDecorator: D.ta, groupContentDecoratorTriggering: 'onLayoutDirty', openCloseDuration: 500, rainbowColorDistribution: 'radial', rainbowColorDistributionAngle: -45, rainbowLightnessDistributionAngle: 45, rainbowSaturationCorrection: 0.1, rainbowLightnessCorrection: 0.4, rainbowStartColor: 'hsla(0, 100%, 55%, 1)', rainbowEndColor: 'hsla(359, 100%, 55%, 1)', rainbowLightnessShift: 30, rainbowLightnessShiftCenter: 0.4, parentFillOpacity: 0.7, parentStrokeOpacity: 1, parentLabelOpacity: 1, parentOpacityBalancing: !0, wireframeDrawMaxDuration: 15, wireframeLabelDrawing: 'auto', wireframeContentDecorationDrawing: 'auto', wireframeToFinalFadeDuration: 500, wireframeToFinalFadeDelay: 300, finalCompleteDrawMaxDuration: 80, finalIncrementalDrawMaxDuration: 100, finalToWireframeFadeDuration: 200, androidStockBrowserWorkaround: v.hf(), incrementalDraw: 'fast', groupLabelFontFamily: 'sans-serif', groupLabelFontStyle: 'normal', groupLabelFontWeight: 'normal', groupLabelFontVariant: 'normal', groupLabelLineHeight: 1.05, groupLabelHorizontalPadding: 1, groupLabelVerticalPadding: 1, groupLabelMinFontSize: 6, groupLabelMaxFontSize: 160, groupLabelMaxTotalHeight: 0.9, groupLabelUpdateThreshold: 0.05, groupLabelDarkColor: '#000', groupLabelLightColor: '#fff', groupLabelColorThreshold: 0.35, rolloutStartPoint: 'center', rolloutEasing: 'squareOut', rolloutMethod: 'groups', rolloutDuration: 2e3, rolloutScalingStrength: -0.7, rolloutTranslationXStrength: 0, rolloutTranslationYStrength: 0, rolloutRotationStrength: -0.7, rolloutTransformationCenter: 0.7, rolloutPolygonDrag: 0.1, rolloutPolygonDuration: 0.5, rolloutLabelDelay: 0.8, rolloutLabelDrag: 0.1, rolloutLabelDuration: 0.5, rolloutChildGroupsDrag: 0.1, rolloutChildGroupsDelay: 0.2, pullbackStartPoint: 'center', pullbackEasing: 'squareIn', pullbackMethod: 'groups', pullbackDuration: 1500, pullbackScalingStrength: -0.7, pullbackTranslationXStrength: 0, pullbackTranslationYStrength: 0, pullbackRotationStrength: -0.7, pullbackTransformationCenter: 0.7, pullbackPolygonDelay: 0.3, pullbackPolygonDrag: 0.1, pullbackPolygonDuration: 0.8, pullbackLabelDelay: 0, pullbackLabelDrag: 0.1, pullbackLabelDuration: 0.3, pullbackChildGroupsDelay: 0.1, pullbackChildGroupsDrag: 0.1, pullbackChildGroupsDuration: 0.3, fadeDuration: 700, fadeEasing: 'cubicInOut', zoomMouseWheelFactor: 1.5, zoomMouseWheelDuration: 500, zoomMouseWheelEasing: 'squareOut', maxLabelSizeForTitleBar: 8, titleBarFontFamily: null, titleBarFontStyle: 'normal', titleBarFontWeight: 'normal', titleBarFontVariant: 'normal', titleBarBackgroundColor: 'rgba(0, 0, 0, 0.5)', titleBarTextColor: 'rgba(255, 255, 255, 1)', titleBarMinFontSize: 10, titleBarMaxFontSize: 40, titleBarTextPaddingLeftRight: 20, titleBarTextPaddingTopBottom: 15, titleBarDecorator: D.ta, attributionText: null, attributionLogo: null, attributionLogoScale: 0.5, attributionUrl: 'http://carrotsearch.com/foamtree', attributionPosition: 'bottom-right', attributionDistanceFromCenter: 1, attributionWeight: 0.025, attributionTheme: 'light', interactionHandler: v.ii() ? 'hammerjs' : 'builtin', onModelChanging: [], onModelChanged: [], onRedraw: [], onRolloutStart: [], onRolloutComplete: [], onRelaxationStep: [], onViewReset: [], onGroupOpenOrCloseChanging: [], onGroupOpenOrCloseChanged: [], onGroupExposureChanging: [], onGroupExposureChanged: [], onGroupSelectionChanging: [], onGroupSelectionChanged: [], onGroupHover: [], onGroupMouseMove: [], onGroupClick: [], onGroupDoubleClick: [], onGroupHold: [], onGroupMouseWheel: [], onGroupMouseUp: [], onGroupMouseDown: [], onGroupDragStart: [], onGroupDrag: [], onGroupDragEnd: [], onGroupTransformStart: [], onGroupTransform: [], onGroupTransformEnd: [], onKeyUp: [], selection: null, open: null, exposure: null, imageData: null, hierarchy: null, geometry: null, containerCoordinates: null, state: null, viewport: null, times: null }); window.CarrotSearchFoamTree.geometry = Object.freeze(function () { return { rectangleInPolygon: function rectangleInPolygon(a, l, k, f, d, c, g) { d = D.B(d, 1); c = D.B(c, 0.5); g = D.B(g, 0.5); a = M.se(a, { x: l, y: k }, f, c, g) * d; return { x: l - a * f * c, y: k - a * g, w: a * f, h: a }; }, circleInPolygon: function circleInPolygon(a, l, k) { return M.Eg(a, { x: l, y: k }); }, stabPolygon: function stabPolygon(a, l, k, f) { return M.Wb(a, { x: l, y: k }, f); }, polygonCentroid: function polygonCentroid(a) { a = M.k(a, {}); return { x: a.x, y: a.y, area: a.ja }; }, boundingBox: function boundingBox(a) { for (var l = a[0].x, k = a[0].y, f = a[0].x, d = a[0].y, c = 1; c < a.length; c++) { var g = a[c]; g.x < l && (l = g.x); g.y < k && (k = g.y); g.x > f && (f = g.x); g.y > d && (d = g.y); } return { x: l, y: k, w: f - l, h: d - k }; } }; }()); }, function () { window.CarrotSearchFoamTree = function () { window.console.error('FoamTree is not supported on this browser.'); }; window.CarrotSearchFoamTree.Xj = !1; }); })(); var Treemap = /*#__PURE__*/function (_Component) { _inherits(Treemap, _Component); var _super = _createSuper(Treemap); function Treemap() { var _this; _classCallCheck(this, Treemap); _this = _super.apply(this, arguments); _this.treemap = null; _this.node = null; _this.saveNodeRef = function (node) { return _this.node = node; }; _this.resize = function () { _this.treemap.resize(); }; return _this; } _createClass(Treemap, [{ key: "componentDidMount", value: function componentDidMount() { this.treemap = this.createTreemap(); window.addEventListener('resize', this.resize); } }, { key: "shouldComponentUpdate", value: function shouldComponentUpdate() { return false; } }, { key: "componentWillUnmount", value: function componentWillUnmount() { window.removeEventListener('resize', this.resize); this.treemap.dispose(); } }, { key: "render", value: function render() { var _this$props = this.props, className = _this$props.className, data = _this$props.data, onMouseLeave = _this$props.onMouseLeave; return _react().default.createElement("div", { className: className, data: data, onMouseLeave: onMouseLeave, ref: this.saveNodeRef }); } }, { key: "getTreemapDataObject", value: function getTreemapDataObject() { var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.data; return { groups: data }; } }, { key: "createTreemap", value: function createTreemap() { var component = this; var props = this.props; return new CarrotSearchFoamTree({ element: this.node, layout: 'squarified', stacking: 'flattened', pixelRatio: window.devicePixelRatio || 1, maxGroups: Infinity, maxGroupLevelsDrawn: Infinity, maxGroupLabelLevelsDrawn: Infinity, maxGroupLevelsAttached: Infinity, groupMinDiameter: 0, groupLabelVerticalPadding: 0.2, rolloutDuration: 0, pullbackDuration: 0, fadeDuration: 0, // groupFillType: 'gradient', attributionTheme: 'light', groupExposureZoomMargin: 0.2, zoomMouseWheelDuration: 300, openCloseDuration: 200, dataObject: this.getTreemapDataObject(), // color rainbowStartColor: 'hsl(240, 12%, 21%)', rainbowEndColor: 'hsl(240, 12%, 21%)', rainbowSaturationCorrection: 1, titleBarDecorator: function titleBarDecorator(opts, props, vars) { vars.titleBarShown = false; }, onGroupHover: function onGroupHover(event) { if (event.group && event.group.attribution) { event.preventDefault(); return; } if (props.onGroupHover) { props.onGroupHover.call(component, event); } } }); } }]); return Treemap; }(React$1.Component); var css$1 = ".index-module_container__skUW6 {\n color: #000;\n position: fixed;\n padding: 5px 10px;\n border-radius: 4px;\n background: #fff;\n border: 1px solid #aaa;\n opacity: 0.7;\n white-space: nowrap;\n visibility: visible;\n transition: opacity 0.2s ease, visibility 0.2s ease;\n}\n.index-module_hidden__1u-c7 {\n opacity: 0;\n visibility: hidden;\n}\n"; var styles$1 = { "container": "index-module_container__skUW6", "hidden": "index-module_hidden__1u-c7" }; styleInject(css$1); var Tooltip = /*#__PURE__*/function (_React$Component) { _inherits(Tooltip, _React$Component); var _super = _createSuper(Tooltip); function Tooltip() { var _this; _classCallCheck(this, Tooltip); _this = _super.apply(this, arguments); _this.node = null; _this.mouseCoords = { x: 0, y: 0 }; _this.state = { left: 0, top: 0 }; _this.handleMouseMove = function (event) { Object.assign(_this.mouseCoords, { x: event.pageX, y: event.pageY }); if (_this.props.visible) { _this.updatePosition(); } }; _this.saveNode = function (node) { return _this.node = node; }; return _this; } _createClass(Tooltip, [{ key: "getStyle", value: function getStyle() { return { left: this.state.left, top: this.state.top }; } }, { key: "updatePosition", value: function updatePosition() { if (!this.props.visible) return; var pos = { left: this.mouseCoords.x + Tooltip.marginX, top: this.mouseCoords.y + Tooltip.marginY }; var boundingRect = this.node.getBoundingClientRect(); if (pos.left + boundingRect.width > window.innerWidth) { // Shifting horizontally pos.left = window.innerWidth - boundingRect.width; } if (pos.top + boundingRect.height > window.innerHeight) { // Flipping vertically pos.top = this.mouseCoords.y - Tooltip.marginY - boundingRect.height; } this.setState(pos); } }, { key: "componentDidMount", value: function componentDidMount() { document.addEventListener('mousemove', this.handleMouseMove, true); } }, { key: "shouldComponentUpdate", value: function shouldComponentUpdate(nextProps) { return this.props.visible || nextProps.visible; } }, { key: "componentWillUnmount", value: function componentWillUnmount() { document.removeEventListener('mousemove', this.handleMouseMove, true); } }, { key: "render", value: function render() { var _cls; var _this$props = this.props, children = _this$props.children, visible = _this$props.visible; var className = classnames((_cls = {}, _defineProperty(_cls, styles$1.container, true), _defineProperty(_cls, styles$1.hidden, !visible), _cls)); return React$1__default.createElement("div", { ref: this.saveNode, className: className, style: this.getStyle() }, children); } }]); return Tooltip; }(React$1__default.Component); Tooltip.marginX = 10; Tooltip.marginY = 10; var filesize = createCommonjsModule(function (module, exports) { /** * filesize * * @copyright 2019 Jason Mulligan * @license BSD-3-Clause * @version 4.2.1 */ (function (global) { var b = /^(b|B)$/, symbol = { iec: { bits: ["b", "Kib", "Mib", "Gib", "Tib", "Pib", "Eib", "Zib", "Yib"], bytes: ["B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"] }, jedec: { bits: ["b", "Kb", "Mb", "Gb", "Tb", "Pb", "Eb", "Zb", "Yb"], bytes: ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"] } }, fullform = { iec: ["", "kibi", "mebi", "gibi", "tebi", "pebi", "exbi", "zebi", "yobi"], jedec: ["", "kilo", "mega", "giga", "tera", "peta", "exa", "zetta", "yotta"] }; /** * filesize * * @method filesize * @param {Mixed} arg String, Int or Float to transform * @param {Object} descriptor [Optional] Flags * @return {String} Readable file size String */ function filesize(arg) { var descriptor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var result = [], val = 0, e = void 0, base = void 0, bits = void 0, ceil = void 0, full = void 0, fullforms = void 0, locale = void 0, localeOptions = void 0, neg = void 0, num = void 0, output = void 0, round = void 0, unix = void 0, separator = void 0, spacer = void 0, standard = void 0, symbols = void 0; if (isNaN(arg)) { throw new TypeError("Invalid number"); } bits = descriptor.bits === true; unix = descriptor.unix === true; base = descriptor.base || 2; round = descriptor.round !== void 0 ? descriptor.round : unix ? 1 : 2; locale = descriptor.locale !== void 0 ? descriptor.locale : ""; localeOptions = descriptor.localeOptions || {}; separator = descriptor.separator !== void 0 ? descriptor.separator : ""; spacer = descriptor.spacer !== void 0 ? descriptor.spacer : unix ? "" : " "; symbols = descriptor.symbols || {}; standard = base === 2 ? descriptor.standard || "jedec" : "jedec"; output = descriptor.output || "string"; full = descriptor.fullform === true; fullforms = descriptor.fullforms instanceof Array ? descriptor.fullforms : []; e = descriptor.exponent !== void 0 ? descriptor.exponent : -1; num = Number(arg); neg = num < 0; ceil = base > 2 ? 1000 : 1024; // Flipping a negative number to determine the size if (neg) { num = -num; } // Determining the exponent if (e === -1 || isNaN(e)) { e = Math.floor(Math.log(num) / Math.log(ceil)); if (e < 0) { e = 0; } } // Exceeding supported length, time to reduce & multiply if (e > 8) { e = 8; } if (output === "exponent") { return e; } // Zero is now a special case because bytes divide by 1 if (num === 0) { result[0] = 0; result[1] = unix ? "" : symbol[standard][bits ? "bits" : "bytes"][e]; } else { val = num / (base === 2 ? Math.pow(2, e * 10) : Math.pow(1000, e)); if (bits) { val = val * 8; if (val >= ceil && e < 8) { val = val / ceil; e++; } } result[0] = Number(val.toFixed(e > 0 ? round : 0)); if (result[0] === ceil && e < 8 && descriptor.exponent === void 0) { result[0] = 1; e++; } result[1] = base === 10 && e === 1 ? bits ? "kb" : "kB" : symbol[standard][bits ? "bits" : "bytes"][e]; if (unix) { result[1] = standard === "jedec" ? result[1].charAt(0) : e > 0 ? result[1].replace(/B$/, "") : result[1]; if (b.test(result[1])) { result[0] = Math.floor(result[0]); result[1] = ""; } } } // Decorating a 'diff' if (neg) { result[0] = -result[0]; } // Applying custom symbol result[1] = symbols[result[1]] || result[1]; if (locale === true) { result[0] = result[0].toLocaleString(); } else if (locale.length > 0) { result[0] = result[0].toLocaleString(locale, localeOptions); } else if (separator.length > 0) { result[0] = result[0].toString().replace(".", separator); } // Returning Array, Object, or String (default) if (output === "array") { return result; } if (full) { result[1] = fullforms[e] ? fullforms[e] : fullform[standard][e] + (bits ? "bit" : "byte") + (result[0] === 1 ? "" : "s"); } if (output === "object") { return { value: result[0], symbol: result[1] }; } return result.join(spacer); } // Partial application for functional programming filesize.partial = function (opt) { return function (arg) { return filesize(arg, opt); }; }; // CommonJS, AMD, script tag { module.exports = filesize; } })(); }); var css$2 = ".index-module_container__2C5q4 {\n align-items: stretch;\n display: flex;\n height: 100%;\n position: relative;\n width: 100%;\n}\n.index-module_map__2fYJJ {\n flex: 1;\n}\n.index-module_sidebarGroup__ph8SW {\n font: var(--main-font);\n margin-bottom: 20px;\n}\n.index-module_showOption__1ybV7 {\n margin-top: 5px;\n}\n.index-module_activeSize__3GqWC {\n font-weight: bold;\n}\n.index-module_foundModulesInfo___RlAU {\n display: flex;\n font: var(--main-font);\n margin: 8px 0 0;\n}\n.index-module_foundModulesInfoItem__1wxIK + .index-module_foundModulesInfoItem__1wxIK {\n margin-left: 15px;\n}\n.index-module_foundModulesContainer__3Gc1x {\n margin-top: 15px;\n max-height: 600px;\n overflow: auto;\n}\n.index-module_foundModulesChunk__2ltJC + .index-module_foundModulesChunk__2ltJC {\n margin-top: 15px;\n}\n.index-module_foundModulesChunkName__oPsqG {\n cursor: pointer;\n font: var(--main-font);\n font-weight: bold;\n margin-bottom: 7px;\n}\n.index-module_foundModulesList__2k2mP {\n margin-left: 7px;\n}\n.index-module_iframeContainer__Y0Jdy {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.index-module_reload__TrGzV {\n position: absolute;\n top: 12px;\n right: 12px;\n z-index: 100;\n cursor: pointer;\n color: #aaa;\n width: 24px;\n height: 24px;\n}\n.index-module_iframe__VmBe_ {\n width: 100%;\n height: 100%;\n border: 0;\n}\n.index-module_empty__2mU2Q {\n width: 100%;\n height: 100%;\n text-align: center;\n display: table;\n background: #2d2d3b;\n border-radius: 2px;\n}\n.index-module_empty__2mU2Q > div {\n display: table-cell;\n vertical-align: middle;\n}\n.index-module_empty__2mU2Q > div > div {\n background: url(https://gw.alipayobjects.com/zos/basement_prod/53593be6-ee02-4ad8-85fe-d1245f9e6710.svg);\n width: 32px;\n height: 32px;\n margin: 0 auto 12px;\n}\n.index-module_empty__2mU2Q > div > span {\n font-size: 14px;\n color: rgba(255, 255, 255, 0.45);\n line-height: 22px;\n}\n"; var styles$2 = { "container": "index-module_container__2C5q4", "map": "index-module_map__2fYJJ", "sidebarGroup": "index-module_sidebarGroup__ph8SW", "showOption": "index-module_showOption__1ybV7", "activeSize": "index-module_activeSize__3GqWC", "foundModulesInfo": "index-module_foundModulesInfo___RlAU", "foundModulesInfoItem": "index-module_foundModulesInfoItem__1wxIK", "foundModulesContainer": "index-module_foundModulesContainer__3Gc1x", "foundModulesChunk": "index-module_foundModulesChunk__2ltJC", "foundModulesChunkName": "index-module_foundModulesChunkName__oPsqG", "foundModulesList": "index-module_foundModulesList__2k2mP", "iframeContainer": "index-module_iframeContainer__Y0Jdy", "reload": "index-module_reload__TrGzV", "iframe": "index-module_iframe__VmBe_", "empty": "index-module_empty__2mU2Q" }; styleInject(css$2); var SIZE_SWITCH_ITEMS = [{ label: 'Stat', prop: 'statSize' }, { label: 'Parsed', prop: 'parsedSize' }, { label: 'Gzipped', prop: 'gzipSize' }]; var AnalyzeComponent = /*#__PURE__*/function (_Component) { _inherits(AnalyzeComponent, _Component); var _super = _createSuper(AnalyzeComponent); function AnalyzeComponent(props) { var _this; _classCallCheck(this, AnalyzeComponent); _this = _super.call(this, props); _this.treemap = null; _this.iframeRef = null; _this.saveRef = function (treemap) { _this.treemap = treemap; }; _this.state = { showTooltip: false, tooltipContent: '', showReloadFlag: false }; _this.handleMouseLeaveTreemap = function () { _this.setState({ showTooltip: false }); }; _this.getTooltipContent = function (module) { if (!module) return null; return React$1__default.createElement("div", null, React$1__default.createElement("div", null, React$1__default.createElement("strong", null, module.label)), React$1__default.createElement("br", null), _this.renderModuleSize(module, 'stat'), !module.inaccurateSizes && _this.renderModuleSize(module, 'parsed'), !module.inaccurateSizes && _this.renderModuleSize(module, 'gzip'), module.path && React$1__default.createElement("div", null, "Path: ", React$1__default.createElement("strong", null, module.path)), module.isAsset && React$1__default.createElement("div", null, React$1__default.createElement("br", null), React$1__default.createElement("strong", null, React$1__default.createElement("em", null, "Right-click to view options related to this chunk")))); }; _this.handleTreemapGroupHover = function (event) { var group = event.group; if (!group) { _this.setState({ showTooltip: false }); return; } _this.setState({ showTooltip: true, tooltipContent: _this.getTooltipContent(group) }); }; _this.showReload = function () { _this.setState({ showReloadFlag: true }); }; _this.hideReload = function () { _this.setState({ showReloadFlag: false }); }; _this.reloadIframe = function () { if (!_this.iframeRef || !_this.iframeRef.current) { return; } _this.iframeRef.current.contentWindow.location = _this.props.src; }; _this.iframeRef = React$1__default.createRef(); return _this; } _createClass(AnalyzeComponent, [{ key: "renderModuleSize", value: function renderModuleSize(module, sizeType) { var sizeProp = "".concat(sizeType, "Size"); var size = module[sizeProp]; var sizeLabel = SIZE_SWITCH_ITEMS.find(function (item) { return item.prop === sizeProp; }).label; return typeof size === 'number' ? React$1__default.createElement("div", { className: styles$2.activeSize }, sizeLabel, " size: ", React$1__default.createElement("strong", null, filesize(size))) : null; } }, { key: "render", value: function render() { var _this$props = this.props, analyze = _this$props.analyze, src = _this$props.src, api = _this$props.api; var showReloadFlag = this.state.showReloadFlag; var intl = api.intl; if (!src && !analyze) { return React$1__default.createElement("div", { className: styles$2.empty }, React$1__default.createElement("div", null, React$1__default.createElement("div", { className: "icon" }), React$1__default.createElement("span", null, intl({ id: 'org.umi.ui.tasks.analyze.empty' })))); } return React$1__default.createElement("div", { className: styles$2.container, onMouseEnter: this.showReload, onMouseLeave: this.hideReload }, src ? React$1__default.createElement("div", { className: styles$2.iframeContainer }, showReloadFlag ? React$1__default.createElement("div", { className: styles$2.reload, onClick: this.reloadIframe }, React$1__default.createElement(ReloadOutlined$2, null)) : null, React$1__default.createElement("iframe", { ref: this.iframeRef, className: styles$2.iframe, src: src })) : React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement(Treemap, { className: styles$2.map, ref: this.saveRef, weightProp: "parsedSize", data: analyze.visibleChunks, onMouseLeave: this.handleMouseLeaveTreemap, onGroupHover: this.handleTreemapGroupHover }), React$1__default.createElement(Tooltip, { visible: this.state.showTooltip }, this.state.tooltipContent))); } }]); return AnalyzeComponent; }(React$1.Component); var DevComponent = function DevComponent(_ref) { var taskType = _ref.taskType, namespace = _ref.namespace, api = _ref.api, _ref$detail = _ref.detail, detail = _ref$detail === void 0 ? {} : _ref$detail, dispatch = _ref.dispatch, dbPath = _ref.dbPath, iife = _ref.iife, Terminal = _ref.Terminal; var intl = api.intl; var isEnglish = api.getLocale() === 'en-US'; var _Form$useForm = antd.Form.useForm(), _Form$useForm2 = _slicedToArray(_Form$useForm, 1), form = _Form$useForm2[0]; var _useState = React$1.useState(false), _useState2 = _slicedToArray(_useState, 2), modalVisible = _useState2[0], setModalVisible = _useState2[1]; var _useState3 = React$1.useState(''), _useState4 = _slicedToArray(_useState3, 2), log = _useState4[0], setLog = _useState4[1]; var _useState5 = React$1.useState('log'), _useState6 = _slicedToArray(_useState5, 2), view = _useState6[0], setView = _useState6[1]; var _useState7 = React$1.useState({ UMI_UI_SERVER: 'none', UMI_UI_PORT: window.location.port, BABEL_POLYFILL: true, HMR: true, BABEL_CACHE: true, MOCK: true, BROWSER: true, CLEAR_CONSOLE: true, PORT: null, FORK_TS_CHECKER: false, UMI_UI: null }), _useState8 = _slicedToArray(_useState7, 2), env = _useState8[0], setEnv = _useState8[1]; var _useInit = useInit(detail), _useInit2 = _slicedToArray(_useInit, 1), init = _useInit2[0]; React$1.useEffect(function () { if (!init) { return function () {}; } if (view === 'log') { dispatch({ type: "".concat(namespace, "/getTaskDetail"), payload: { taskType: taskType, log: true, dbPath: dbPath, callback: function callback(_ref2) { var log = _ref2.log; setLog(log); } } }); } if (iife) { dev(); } // UnMount: reset form return function () { form.resetFields(); var terminal = getTerminalRefIns(taskType, api.currentProject.key); if (terminal) { terminal.clear(); } }; }, [init, view, iife]); function dev() { return _dev.apply(this, arguments); } function _dev() { _dev = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: dispatch({ type: "".concat(namespace, "/exec"), payload: { taskType: taskType, args: { analyze: true, dbPath: dbPath }, env: env } }); case 1: case "end": return _context.stop(); } } }, _callee); })); return _dev.apply(this, arguments); } function cancelDev() { return _cancelDev.apply(this, arguments); } function _cancelDev() { _cancelDev = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: dispatch({ type: "".concat(namespace, "/cancel"), payload: { taskType: taskType } }); case 1: case "end": return _context2.stop(); } } }, _callee2); })); return _cancelDev.apply(this, arguments); } var openModal = function openModal() { setModalVisible(true); }; var handleOk = function handleOk() { form.validateFields().then(function (values) { setEnv(_objectSpread2({}, env, {}, values)); setModalVisible(false); }).catch(function (_) {}); }; var handleCancel = function handleCancel() { setModalVisible(false); }; var toggleView = function toggleView(e) { var value = e.target.value; setView(value); }; var stopEventPop = function stopEventPop(e) { e && e.stopPropagation(); e && e.preventDefault(); }; var EnvLabel = function EnvLabel(props) { return React$1__default.createElement("div", null, React$1__default.createElement("div", { onClick: stopEventPop, className: styles.modleLableTitle }, intl({ id: props.title })), React$1__default.createElement("div", { className: styles.modleLableDesc }, React$1__default.createElement("span", { onClick: stopEventPop }, intl({ id: props.desc })), React$1__default.createElement("a", { className: styles.modleLablelDescIcon, href: isEnglish ? props.link.replace(/\/zh\//, '/') : props.link, target: "_blank" }, intl({ id: 'org.umi.ui.tasks.env.detail' })))); }; var isTaskRunning = detail && [TaskState.ING, TaskState.SUCCESS].indexOf(detail.state) > -1; var outputRunningInfo = function outputRunningInfo(_ref3) { var _map; var state = _ref3.state, localUrl = _ref3.localUrl, hasError = _ref3.hasError; if (!state || state === TaskState.INIT) { return null; } var map = (_map = {}, _defineProperty(_map, TaskState.ING, { status: 'processing', text: React$1__default.createElement("span", null, intl({ id: hasError ? 'org.umi.ui.tasks.dev.state.starting.error' : 'org.umi.ui.tasks.dev.state.starting' })) }), _defineProperty(_map, TaskState.SUCCESS, { status: 'success', text: React$1__default.createElement("span", null, localUrl ? React$1__default.createElement(React$1__default.Fragment, null, intl({ id: 'org.umi.ui.tasks.dev.state.success' }), React$1__default.createElement("a", { href: localUrl, target: "_blank" }, localUrl)) : null) }), _defineProperty(_map, TaskState.FAIL, { status: 'error', text: React$1__default.createElement("span", null, intl({ id: 'org.umi.ui.tasks.dev.state.fail' })) }), _map); return React$1__default.createElement("div", { className: styles.runningInfo }, React$1__default.createElement(antd.Badge, { status: map[state].status }), React$1__default.createElement("span", null, map[state].text)); }; var detailHost = "https://umijs.org/".concat(isEnglish ? '' : 'zh'); return React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement("h1", { className: styles.title }, intl({ id: 'org.umi.ui.tasks.dev' })), React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement(antd.Row, { type: "flex", justify: "space-between" }, React$1__default.createElement(antd.Col, { className: styles.buttonGroup }, React$1__default.createElement(antd.Button, { size: api.mini ? 'small' : 'default', type: "primary", onClick: isTaskRunning ? cancelDev : dev }, isTaskRunning ? React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement(PauseOutlined$2, null), React$1__default.createElement("span", { className: styles.runningText }, ' ', intl({ id: 'org.umi.ui.tasks.dev.cancel' }))) : React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement(CaretRightOutlined$2, null), React$1__default.createElement("span", { className: styles.runningText }, ' ', intl({ id: 'org.umi.ui.tasks.dev.start' })))), React$1__default.createElement(antd.Button, { size: api.mini ? 'small' : 'default', onClick: openModal }, intl({ id: 'org.umi.ui.tasks.envs' })), outputRunningInfo(detail), React$1__default.createElement(antd.Modal, { visible: modalVisible, title: intl({ id: 'org.umi.ui.tasks.envs' }), onOk: handleOk, onCancel: handleCancel }, React$1__default.createElement("div", { className: styles.modalContainer }, React$1__default.createElement(antd.Form, { name: "devEnv", form: form, initialValues: env, layout: "vertical" }, React$1__default.createElement(antd.Form.Item, { label: intl({ id: 'org.umi.ui.tasks.envs.port' }), name: "PORT" }, React$1__default.createElement(antd.Input, null)), React$1__default.createElement(antd.Form.Item, { label: React$1__default.createElement(EnvLabel, { title: "org.umi.ui.tasks.envs.babelPolyfill", desc: "org.umi.ui.tasks.envs.babelPolyfill.desc", link: "".concat(detailHost, "/guide/env-variables.html#babel-polyfill") }), name: "BABEL_POLYFILL", valuePropName: "checked" }, React$1__default.createElement(antd.Switch, { size: "small" })), React$1__default.createElement(antd.Form.Item, { label: React$1__default.createElement(EnvLabel, { title: "org.umi.ui.tasks.envs.hmr", desc: "org.umi.ui.tasks.envs.hmr.desc", link: "".concat(detailHost, "/guide/env-variables.html#hmr") }), name: "HMR", valuePropName: "checked" }, React$1__default.createElement(antd.Switch, { size: "small" })), React$1__default.createElement(antd.Form.Item, { label: React$1__default.createElement(EnvLabel, { title: "org.umi.ui.tasks.envs.babelCache", desc: "org.umi.ui.tasks.envs.babelCache.desc", link: "".concat(detailHost, "/guide/env-variables.html#babel-cache") }), name: "BABEL_CACHE", valuePropName: "checked" }, React$1__default.createElement(antd.Switch, { size: "small" })), React$1__default.createElement(antd.Form.Item, { label: React$1__default.createElement(EnvLabel, { title: "org.umi.ui.tasks.envs.mock", desc: "org.umi.ui.tasks.envs.mock.desc", link: "".concat(detailHost, "/guide/env-variables.html#mock") }), name: "MOCK", valuePropName: "checked" }, React$1__default.createElement(antd.Switch, { size: "small" })), window.g_bigfish ? null : React$1__default.createElement(antd.Form.Item, { label: React$1__default.createElement(EnvLabel, { title: "org.umi.ui.tasks.envs.BROWSER", desc: "org.umi.ui.tasks.envs.BROWSER.desc", link: "".concat(detailHost, "/guide/env-variables.html#browser") }), name: "BROWSER", valuePropName: "checked" }, React$1__default.createElement(antd.Switch, { size: "small" })), React$1__default.createElement(antd.Form.Item, { label: React$1__default.createElement(EnvLabel, { title: "org.umi.ui.tasks.envs.clear", desc: "org.umi.ui.tasks.envs.clear.desc", link: "".concat(detailHost, "/guide/env-variables.html#clear-console") }), name: "CLEAR_CONSOLE", valuePropName: "checked" }, React$1__default.createElement(antd.Switch, { size: "small" })), React$1__default.createElement(antd.Form.Item, { label: React$1__default.createElement(EnvLabel, { title: "org.umi.ui.tasks.envs.tsCheck", desc: "org.umi.ui.tasks.envs.tsCheck.desc", link: "".concat(detailHost, "/guide/env-variables.html#fork-ts-checker") }), name: "FORK_TS_CHECKER", valuePropName: "checked" }, React$1__default.createElement(antd.Switch, { size: "small" })), React$1__default.createElement(antd.Form.Item, { label: React$1__default.createElement(EnvLabel, { title: "org.umi.ui.tasks.envs.umiUI", desc: "org.umi.ui.tasks.envs.umiUI.desc", link: "".concat(detailHost, "/guide/env-variables.html#umi-ui") }), name: "UMI_UI", valuePropName: "checked" }, React$1__default.createElement(antd.Switch, { size: "small" })))))), React$1__default.createElement(antd.Col, { className: styles.formatGroup }, React$1__default.createElement(antd.Radio.Group, { size: api.mini ? 'small' : 'default', defaultValue: "log", value: view, buttonStyle: "solid", onChange: toggleView }, React$1__default.createElement(antd.Radio.Button, { value: "log" }, intl({ id: 'org.umi.ui.tasks.log' })), React$1__default.createElement(antd.Radio.Button, { value: "analyze" }, intl({ id: 'org.umi.ui.tasks.analyze' }))))), React$1__default.createElement("div", { className: styles.logContainer }, view === 'log' ? React$1__default.createElement(Terminal, { onInit: function onInit(ins) { if (ins) { setTerminalRefIns(taskType, api.currentProject.key, ins); } }, defaultValue: log }) : React$1__default.createElement(AnalyzeComponent, { api: api, src: detail.analyzePort ? "http://".concat(window.location.hostname, ":").concat(detail.analyzePort) : null })))); }; var BuildComponent = function BuildComponent(_ref) { var taskType = _ref.taskType, namespace = _ref.namespace, api = _ref.api, _ref$detail = _ref.detail, detail = _ref$detail === void 0 ? {} : _ref$detail, dispatch = _ref.dispatch, dbPath = _ref.dbPath, iife = _ref.iife, Terminal = _ref.Terminal; var intl = api.intl; var isEnglish = api.getLocale() === 'en-US'; var _Form$useForm = antd.Form.useForm(), _Form$useForm2 = _slicedToArray(_Form$useForm, 1), form = _Form$useForm2[0]; var _useState = React$1.useState(false), _useState2 = _slicedToArray(_useState, 2), modalVisible = _useState2[0], setModalVisible = _useState2[1]; var _useState3 = React$1.useState(''), _useState4 = _slicedToArray(_useState3, 2), log = _useState4[0], setLog = _useState4[1]; var _useState5 = React$1.useState('log'), _useState6 = _slicedToArray(_useState5, 2), view = _useState6[0], setView = _useState6[1]; var _useState7 = React$1.useState({ BABEL_CACHE: true, BABEL_POLYFILL: true, COMPRESS: true, CSS_COMPRESS: true, HTML: true, FORK_TS_CHECKER: false }), _useState8 = _slicedToArray(_useState7, 2), env = _useState8[0], setEnv = _useState8[1]; var _useInit = useInit(detail), _useInit2 = _slicedToArray(_useInit, 1), init = _useInit2[0]; React$1.useEffect(function () { if (!init) { return function () {}; } if (view === 'log') { dispatch({ type: "".concat(namespace, "/getTaskDetail"), payload: { taskType: taskType, log: true, dbPath: dbPath, callback: function callback(_ref2) { var log = _ref2.log; setLog(log); } } }); } if (iife) { build(); } return function () { form.resetFields(); var terminal = getTerminalRefIns(taskType, api.currentProject.key); if (terminal) { terminal.clear(); } }; }, [init, view, iife]); function build() { return _build.apply(this, arguments); } function _build() { _build = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: dispatch({ type: "".concat(namespace, "/exec"), payload: { taskType: taskType, args: { analyze: true, dbPath: dbPath }, env: env } }); case 1: case "end": return _context.stop(); } } }, _callee); })); return _build.apply(this, arguments); } function cancelBuild() { return _cancelBuild.apply(this, arguments); } function _cancelBuild() { _cancelBuild = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: dispatch({ type: "".concat(namespace, "/cancel"), payload: { taskType: taskType } }); case 1: case "end": return _context2.stop(); } } }, _callee2); })); return _cancelBuild.apply(this, arguments); } var openModal = function openModal() { setModalVisible(true); }; var handleOk = function handleOk() { form.validateFields().then(function (values) { setEnv(values); setModalVisible(false); }).catch(function (info) { setModalVisible(false); }); }; var handleCancel = function handleCancel() { setModalVisible(false); }; var stopEventPop = function stopEventPop(e) { e && e.stopPropagation(); e && e.preventDefault(); }; var EnvLabel = function EnvLabel(props) { return React$1__default.createElement("div", null, React$1__default.createElement("div", { onClick: stopEventPop, className: styles.modleLableTitle }, intl({ id: props.title })), React$1__default.createElement("div", { className: styles.modleLableDesc }, React$1__default.createElement("span", { onClick: stopEventPop }, intl({ id: props.desc })), React$1__default.createElement("a", { className: styles.modleLablelDescIcon, href: isEnglish ? props.link.replace(/\/zh\//, '/') : props.link, target: "_blank" }, intl({ id: 'org.umi.ui.tasks.env.detail' })))); }; var toggleView = function toggleView(e) { var value = e.target.value; setView(value); }; var isTaskRunning = detail.state === TaskState.ING; var detailHost = "https://umijs.org/".concat(isEnglish ? '' : 'zh'); return React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement("h1", { className: styles.title }, intl({ id: 'org.umi.ui.tasks.build' })), React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement(antd.Row, { type: "flex", justify: "space-between" }, React$1__default.createElement(antd.Col, { className: styles.buttonGroup }, React$1__default.createElement(antd.Button, { size: api.mini ? 'small' : 'default', type: "primary", onClick: isTaskRunning ? cancelBuild : build }, isTaskRunning ? React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement(PauseOutlined$2, null), React$1__default.createElement("span", { className: styles.runningText }, ' ', intl({ id: 'org.umi.ui.tasks.build.cancel' }))) : React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement(CaretRightOutlined$2, null), React$1__default.createElement("span", { className: styles.runningText }, ' ', intl({ id: 'org.umi.ui.tasks.build.start' })))), React$1__default.createElement(antd.Button, { size: api.mini ? 'small' : 'default', onClick: openModal }, intl({ id: 'org.umi.ui.tasks.envs' })), React$1__default.createElement(antd.Modal, { visible: modalVisible, title: intl({ id: 'org.umi.ui.tasks.envs' }), onOk: handleOk, onCancel: handleCancel }, React$1__default.createElement("div", { className: styles.modalContainer }, React$1__default.createElement(antd.Form, { name: "buildEnv", form: form, initialValues: env, layout: "vertical" }, React$1__default.createElement(antd.Form.Item, { label: React$1__default.createElement(EnvLabel, { title: "org.umi.ui.tasks.envs.compress", desc: "org.umi.ui.tasks.envs.compress.desc", link: "".concat(detailHost, "/guide/env-variables.html#compress") }), name: "COMPRESS", valuePropName: "checked" }, React$1__default.createElement(antd.Switch, { size: "small" })), React$1__default.createElement(antd.Form.Item, { label: React$1__default.createElement(EnvLabel, { title: "org.umi.ui.tasks.envs.cssCompress", desc: "org.umi.ui.tasks.envs.cssCompress.desc", link: "".concat(detailHost, "/guide/env-variables.html#css-compress") }), name: "CSS_COMPRESS", valuePropName: "checked" }, React$1__default.createElement(antd.Switch, { size: "small" })), React$1__default.createElement(antd.Form.Item, { label: React$1__default.createElement(EnvLabel, { title: "org.umi.ui.tasks.envs.babelPolyfill", desc: "org.umi.ui.tasks.envs.babelPolyfill.desc", link: "".concat(detailHost, "/guide/env-variables.html#babel-polyfill") }), name: "BABEL_POLYFILL", valuePropName: "checked" }, React$1__default.createElement(antd.Switch, { size: "small" })), React$1__default.createElement(antd.Form.Item, { label: React$1__default.createElement(EnvLabel, { title: "org.umi.ui.tasks.envs.babelCache", desc: "org.umi.ui.tasks.envs.babelCache.desc", link: "".concat(detailHost, "/guide/env-variables.html#babel-cache") }), name: "BABEL_CACHE", valuePropName: "checked" }, React$1__default.createElement(antd.Switch, { size: "small" })), React$1__default.createElement(antd.Form.Item, { label: React$1__default.createElement(EnvLabel, { title: "org.umi.ui.tasks.envs.html", desc: "org.umi.ui.tasks.envs.html.desc", link: "".concat(detailHost, "/guide/env-variables.html#html") }), name: "HTML", valuePropName: "checked" }, React$1__default.createElement(antd.Switch, { size: "small" })), React$1__default.createElement(antd.Form.Item, { label: React$1__default.createElement(EnvLabel, { title: "org.umi.ui.tasks.envs.tsCheck", desc: "org.umi.ui.tasks.envs.tsCheck.desc", link: "".concat(detailHost, "/guide/env-variables.html#fork-ts-checker") }), name: "FORK_TS_CHECKER", valuePropName: "checked" }, React$1__default.createElement(antd.Switch, { size: "small" })))))), React$1__default.createElement(antd.Col, { className: styles.formatGroup }, React$1__default.createElement(antd.Radio.Group, { size: api.mini ? 'small' : 'default', defaultValue: "log", value: view, buttonStyle: "solid", onChange: toggleView }, React$1__default.createElement(antd.Radio.Button, { value: "log" }, intl({ id: 'org.umi.ui.tasks.log' })), React$1__default.createElement(antd.Radio.Button, { value: "analyze" }, intl({ id: 'org.umi.ui.tasks.analyze' }))))), React$1__default.createElement("div", { className: styles.logContainer }, view === 'log' ? React$1__default.createElement(Terminal, { onInit: function onInit(ins) { setTerminalRefIns(taskType, api.currentProject.key, ins); }, defaultValue: log }) : React$1__default.createElement(AnalyzeComponent, { api: api, analyze: detail.analyze })))); }; var LintComponent = function LintComponent(_ref) { var taskType = _ref.taskType, namespace = _ref.namespace, api = _ref.api, _ref$detail = _ref.detail, detail = _ref$detail === void 0 ? {} : _ref$detail, dispatch = _ref.dispatch, iife = _ref.iife, Terminal = _ref.Terminal; var intl = api.intl; var _useState = React$1.useState(''), _useState2 = _slicedToArray(_useState, 2), log = _useState2[0], setLog = _useState2[1]; var _useInit = useInit(detail), _useInit2 = _slicedToArray(_useInit, 1), init = _useInit2[0]; React$1.useEffect(function () { if (!init) { return function () {}; } dispatch({ type: "".concat(namespace, "/getTaskDetail"), payload: { taskType: taskType, callback: function callback(_ref2) { var log = _ref2.log; setLog(log); } } }); if (iife) { lint(); } return function () { var terminal = getTerminalRefIns(taskType, api.currentProject.key); if (terminal) { terminal.clear(); } }; }, [init, iife]); function lint() { return _lint.apply(this, arguments); } function _lint() { _lint = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: dispatch({ type: "".concat(namespace, "/exec"), payload: { taskType: taskType } }); case 1: case "end": return _context.stop(); } } }, _callee); })); return _lint.apply(this, arguments); } function cancelLint() { return _cancelLint.apply(this, arguments); } function _cancelLint() { _cancelLint = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: dispatch({ type: "".concat(namespace, "/cancel"), payload: { taskType: taskType } }); case 1: case "end": return _context2.stop(); } } }, _callee2); })); return _cancelLint.apply(this, arguments); } var isTaskRunning = detail && detail.state === TaskState.ING; return React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement("h1", { className: styles.title }, intl({ id: 'org.umi.ui.tasks.lint' })), React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement(antd.Row, null, React$1__default.createElement(antd.Col, { span: 24, className: styles.buttonGroup }, React$1__default.createElement(antd.Button, { size: api.mini ? 'small' : 'default', type: "primary", onClick: isTaskRunning ? cancelLint : lint }, isTaskRunning ? React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement(PauseOutlined$2, null), React$1__default.createElement("span", { className: styles.runningText }, ' ', intl({ id: 'org.umi.ui.tasks.lint.cancel' }))) : React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement(CaretRightOutlined$2, null), React$1__default.createElement("span", { className: styles.runningText }, ' ', intl({ id: 'org.umi.ui.tasks.lint.start' })))))), React$1__default.createElement("div", { className: styles.logContainer }, React$1__default.createElement(Terminal, { defaultValue: log, onInit: function onInit(ins) { if (ins) { setTerminalRefIns(taskType, api.currentProject.key, ins); } } }), ")}"))); }; var TestComponent = function TestComponent(_ref) { var taskType = _ref.taskType, namespace = _ref.namespace, api = _ref.api, dispatch = _ref.dispatch, _ref$detail = _ref.detail, detail = _ref$detail === void 0 ? {} : _ref$detail, Terminal = _ref.Terminal; var intl = api.intl; var _useState = React$1.useState(''), _useState2 = _slicedToArray(_useState, 2), log = _useState2[0], setLog = _useState2[1]; var _useInit = useInit(detail), _useInit2 = _slicedToArray(_useInit, 1), init = _useInit2[0]; // UnMount: reset form React$1.useEffect(function () { if (!init) { return function () {}; } dispatch({ type: "".concat(namespace, "/getTaskDetail"), payload: { taskType: taskType, callback: function callback(_ref2) { var log = _ref2.log; setLog(log); } } }); return function () { var terminal = getTerminalRefIns(taskType, api.currentProject.key); if (terminal) { terminal.clear(); } }; }, [init]); function test() { return _test.apply(this, arguments); } function _test() { _test = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: dispatch({ type: "".concat(namespace, "/exec"), payload: { taskType: taskType } }); case 1: case "end": return _context.stop(); } } }, _callee); })); return _test.apply(this, arguments); } function cancelTest() { return _cancelTest.apply(this, arguments); } function _cancelTest() { _cancelTest = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: dispatch({ type: "".concat(namespace, "/exec"), payload: { taskType: taskType } }); case 1: case "end": return _context2.stop(); } } }, _callee2); })); return _cancelTest.apply(this, arguments); } var isTaskRunning = detail && detail.state === TaskState.ING; return React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement("h1", { className: styles.title }, intl({ id: 'org.umi.ui.tasks.test' })), React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement(antd.Row, null, React$1__default.createElement(antd.Col, { span: 24, className: styles.buttonGroup }, React$1__default.createElement(antd.Button, { size: api.mini ? 'small' : 'default', type: "primary", onClick: isTaskRunning ? cancelTest : test }, isTaskRunning ? React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement(PauseOutlined$2, null), React$1__default.createElement("span", { className: styles.runningText }, ' ', intl({ id: 'org.umi.ui.tasks.test.cancel' }))) : React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement(CaretRightOutlined$2, null), React$1__default.createElement("span", { className: styles.runningText }, ' ', intl({ id: 'org.umi.ui.tasks.test.start' })))))), React$1__default.createElement("div", { className: styles.logContainer }, React$1__default.createElement(Terminal, { defaultValue: log, onInit: function onInit(ins) { if (ins) { setTerminalRefIns(taskType, api.currentProject.key, ins); } } })))); }; var Option = antd.Select.Option; var InstallComponent = function InstallComponent(_ref) { var taskType = _ref.taskType, namespace = _ref.namespace, api = _ref.api, dispatch = _ref.dispatch, _ref$detail = _ref.detail, detail = _ref$detail === void 0 ? {} : _ref$detail, Terminal = _ref.Terminal; var intl = api.intl; var _useState = React$1.useState(''), _useState2 = _slicedToArray(_useState, 2), log = _useState2[0], setLog = _useState2[1]; var _useState3 = React$1.useState([]), _useState4 = _slicedToArray(_useState3, 2), npmClients = _useState4[0], setNpmClients = _useState4[1]; var _useState5 = React$1.useState(false), _useState6 = _slicedToArray(_useState5, 2), modalVisible = _useState6[0], setModalVisible = _useState6[1]; var _Form$useForm = antd.Form.useForm(), _Form$useForm2 = _slicedToArray(_Form$useForm, 1), form = _Form$useForm2[0]; var _useInit = useInit(detail), _useInit2 = _slicedToArray(_useInit, 1), init = _useInit2[0]; React$1.useEffect(function () { if (!init) { return; } dispatch({ type: "".concat(namespace, "/getTaskDetail"), payload: { taskType: taskType, callback: function callback(_ref2) { var log = _ref2.log; setLog(log); } } }); _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var _yield$api$callRemote, data; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return api.callRemote({ type: '@@project/getNpmClients' }); case 2: _yield$api$callRemote = _context.sent; data = _yield$api$callRemote.data; setNpmClients(data); form.setFieldsValue({ npmClient: data[0] }); case 6: case "end": return _context.stop(); } } }, _callee); }))(); }, [init]); // UnMount: reset form React$1.useEffect(function () { return function () { form.resetFields(); var terminal = getTerminalRefIns(taskType, api.currentProject.key); if (terminal) { terminal.clear(); } }; }, []); function install(_x) { return _install.apply(this, arguments); } function _install() { _install = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(npmClient) { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: dispatch({ type: "".concat(namespace, "/exec"), payload: { taskType: taskType, env: { NPM_CLIENT: npmClient } } }); case 1: case "end": return _context2.stop(); } } }, _callee2); })); return _install.apply(this, arguments); } function cancelInstall() { return _cancelInstall.apply(this, arguments); } function _cancelInstall() { _cancelInstall = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: dispatch({ type: "".concat(namespace, "/cancel"), payload: { taskType: taskType } }); case 1: case "end": return _context3.stop(); } } }, _callee3); })); return _cancelInstall.apply(this, arguments); } var openModal = function openModal() { setModalVisible(true); }; var handleOk = function handleOk() { form.validateFields().then(function (values) { install(values.npmClient); setModalVisible(false); }).catch(function (_) {}); }; var handleCancel = function handleCancel() { setModalVisible(false); }; var isTaskRunning = detail && detail.state === TaskState.ING; return React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement("h1", { className: styles.title }, intl({ id: 'org.umi.ui.tasks.install' })), React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement(antd.Row, null, React$1__default.createElement(antd.Col, { span: 24, className: styles.buttonGroup }, React$1__default.createElement(antd.Button, { size: api.mini ? 'small' : 'default', type: "primary", onClick: isTaskRunning ? cancelInstall : openModal }, isTaskRunning ? React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement(PauseOutlined$2, null), React$1__default.createElement("span", { className: styles.runningText }, ' ', intl({ id: 'org.umi.ui.tasks.install.cancel' }))) : React$1__default.createElement(React$1__default.Fragment, null, React$1__default.createElement(CaretRightOutlined$2, null), React$1__default.createElement("span", { className: styles.runningText }, ' ', intl({ id: 'org.umi.ui.tasks.install.start' })))), React$1__default.createElement(antd.Modal, { visible: modalVisible, title: intl({ id: 'org.umi.ui.tasks.install' }), onOk: handleOk, onCancel: handleCancel }, React$1__default.createElement("div", { className: styles.modalContainer }, React$1__default.createElement("div", { className: styles.confirmMessage }, intl({ id: 'org.umi.ui.tasks.install.tip' })), React$1__default.createElement(antd.Form, { name: "intasllEnv", form: form, layout: "vertical" }, React$1__default.createElement(antd.Form.Item, { label: intl({ id: 'org.umi.ui.tasks.install.npmClient' }), name: "npmClient" }, React$1__default.createElement(antd.Select, { style: { width: 120 } }, npmClients.map(function (key) { return React$1__default.createElement(Option, { key: key, value: key }, key); })))))))), React$1__default.createElement("div", { className: styles.logContainer }, React$1__default.createElement(Terminal, { defaultValue: log, onInit: function onInit(ins) { if (ins) { setTerminalRefIns(taskType, api.currentProject.key, ins); } } }), ")}"))); }; var enUS = { 'org.umi.ui.tasks.title': 'Task', 'org.umi.ui.tasks.description': 'The project of starting, building, checking', 'org.umi.ui.tasks.dashboard.dev': 'DEV', 'org.umi.ui.tasks.dashboard.build': 'BUILD', 'org.umi.ui.tasks.dashboard.lint': 'LINT', 'org.umi.ui.tasks.dev': 'DEV', 'org.umi.ui.tasks.build': 'BUILD', 'org.umi.ui.tasks.test': 'TEST', 'org.umi.ui.tasks.lint': 'LINT', 'org.umi.ui.tasks.install': 'INSTALL', 'org.umi.ui.tasks.dev.desc': 'Start local project', 'org.umi.ui.tasks.build.desc': 'Build local project', 'org.umi.ui.tasks.test.desc': 'Test local project', 'org.umi.ui.tasks.lint.desc': 'Lint local project', 'org.umi.ui.tasks.install.desc': 'Install local project', 'org.umi.ui.tasks.env.detail': 'View Detail', 'org.umi.ui.tasks.terminal.clear': 'Clear Logs', 'org.umi.ui.tasks.terminal.bottom': 'Scroll Bottom', 'org.umi.ui.tasks.log': 'Log', 'org.umi.ui.tasks.analyze': 'Analyze', // dev 'org.umi.ui.tasks.dev.startError': 'Start project error', 'org.umi.ui.tasks.dev.cancelError': 'Cancel start error', 'org.umi.ui.tasks.dev.start': 'START', 'org.umi.ui.tasks.dev.cancel': 'STOP', 'org.umi.ui.tasks.dev.state.starting': 'Starting...', 'org.umi.ui.tasks.dev.state.starting.error': 'Compile error', 'org.umi.ui.tasks.dev.state.success': 'Started at: ', 'org.umi.ui.tasks.dev.state.fail': 'Started failed', 'org.umi.ui.tasks.envs.port': 'PORT', 'org.umi.ui.tasks.envs.babelPolyfill': '@babel/polyfill', 'org.umi.ui.tasks.envs.babelPolyfill.desc': 'Babel polyfill.', 'org.umi.ui.tasks.envs.hmr': 'HMR', 'org.umi.ui.tasks.envs.hmr.desc': 'Webpack hot module replacement.', 'org.umi.ui.tasks.envs.babelCache': 'BABEL_CACHE', 'org.umi.ui.tasks.envs.babelCache.desc': 'BABEL CACHE.', 'org.umi.ui.tasks.envs.mock': 'MOCK', 'org.umi.ui.tasks.envs.mock.desc': 'Mock.', 'org.umi.ui.tasks.envs.BROWSER': 'Browser', 'org.umi.ui.tasks.envs.BROWSER.desc': 'Open browser when start up.', 'org.umi.ui.tasks.envs.clear': 'CLEAR CONSOLE', 'org.umi.ui.tasks.envs.clear.desc': 'Clear terminal log.', 'org.umi.ui.tasks.envs.tsCheck': 'TS Check', 'org.umi.ui.tasks.envs.tsCheck.desc': 'TypeScript definition check.', 'org.umi.ui.tasks.envs.umiUI': 'UmiUI', 'org.umi.ui.tasks.envs.umiUI.desc': 'Open Umi UI.', // build 'org.umi.ui.tasks.build.buildError': 'Build project error', 'org.umi.ui.tasks.build.cancelError': 'Cancel build error', 'org.umi.ui.tasks.build.start': 'BUILD', 'org.umi.ui.tasks.build.cancel': 'STOP', 'org.umi.ui.tasks.envs': 'ENVS', 'org.umi.ui.tasks.envs.compress': 'COMPRESS', 'org.umi.ui.tasks.envs.compress.desc': 'Compress js file.', 'org.umi.ui.tasks.envs.cssCompress': 'CSS COMPRESS', 'org.umi.ui.tasks.envs.cssCompress.desc': 'Compress css file.', 'org.umi.ui.tasks.envs.html': 'HTML', 'org.umi.ui.tasks.envs.html.desc': 'Generate html.', // test 'org.umi.ui.tasks.test.testError': 'Test project error', 'org.umi.ui.tasks.test.cancelError': 'Cancel test error', 'org.umi.ui.tasks.test.start': 'RUN', 'org.umi.ui.tasks.test.cancel': 'STOP', // lint 'org.umi.ui.tasks.lint.execError': 'Lint project error', 'org.umi.ui.tasks.lint.cancelError': 'Cancel lint error', 'org.umi.ui.tasks.lint.start': 'RUN', 'org.umi.ui.tasks.lint.cancel': 'STOP', // install 'org.umi.ui.tasks.install.execError': 'Install dependences error', 'org.umi.ui.tasks.install.cancelError': 'Cancel install error', 'org.umi.ui.tasks.install.start': 'INSTALL', 'org.umi.ui.tasks.install.cancel': 'STOP', 'org.umi.ui.tasks.install.tip': 'Reinstall dependences?', 'org.umi.ui.tasks.install.npmClient': 'Npm Client', 'org.umi.ui.tasks.install.okText': 'OK', 'org.umi.ui.tasks.install.cancelText': 'Cancel', // log 'org.umi.ui.tasks.log.title': 'LOG', // notify 'org.umi.ui.tasks.notify.build.success.title': 'Build Success', 'org.umi.ui.tasks.notify.build.success.message': 'Success', 'org.umi.ui.tasks.notify.build.fail.title': 'Build Fail', 'org.umi.ui.tasks.notify.build.fail.message': 'Fail', 'org.umi.ui.tasks.notify.dev.success.title': 'Dev Success', 'org.umi.ui.tasks.notify.dev.success.message': 'Success', 'org.umi.ui.tasks.notify.dev.fail.title': 'Dev Fail', 'org.umi.ui.tasks.notify.dev.fail.message': 'Fail', 'org.umi.ui.tasks.notify.test.success.title': 'Test Success', 'org.umi.ui.tasks.notify.test.success.message': 'Success', 'org.umi.ui.tasks.notify.test.fail.title': 'Test Fail', 'org.umi.ui.tasks.notify.test.fail.message': 'Fail', 'org.umi.ui.tasks.notify.lint.success.title': 'Lint Success', 'org.umi.ui.tasks.notify.lint.success.message': 'Success', 'org.umi.ui.tasks.notify.lint.fail.title': 'Lint Fail', 'org.umi.ui.tasks.notify.lint.fail.message': 'Fail', 'org.umi.ui.tasks.notify.install.success.title': 'Install Success', 'org.umi.ui.tasks.notify.install.success.message': 'Success', 'org.umi.ui.tasks.notify.install.fail.title': 'Install Fail', 'org.umi.ui.tasks.notify.install.fail.message': 'Fail', // analyze 'org.umi.ui.tasks.analyze.empty': 'Show after task success...' }; var zhCN = { 'org.umi.ui.tasks.title': '任务', 'org.umi.ui.tasks.description': '项目的启动、构建、检查功能', 'org.umi.ui.tasks.dashboard.dev': '启动', 'org.umi.ui.tasks.dashboard.build': '构建', 'org.umi.ui.tasks.dashboard.lint': '检查', 'org.umi.ui.tasks.dev': '本地开发', 'org.umi.ui.tasks.build': '构建', 'org.umi.ui.tasks.test': '测试', 'org.umi.ui.tasks.lint': '代码风格检查', 'org.umi.ui.tasks.install': '重装依赖', 'org.umi.ui.tasks.dev.desc': '启动本地服务器', 'org.umi.ui.tasks.build.desc': '项目构建', 'org.umi.ui.tasks.lint.desc': '代码风格校验', 'org.umi.ui.tasks.test.desc': '项目测试', 'org.umi.ui.tasks.install.desc': '重装项目依赖', 'org.umi.ui.tasks.env.detail': '查看详情', 'org.umi.ui.tasks.terminal.clear': '清空日志 ', 'org.umi.ui.tasks.terminal.bottom': '至底部', 'org.umi.ui.tasks.log': '日志', 'org.umi.ui.tasks.analyze': '分析', // dev 'org.umi.ui.tasks.dev.startError': '启动项目失败', 'org.umi.ui.tasks.dev.cancelError': '取消启动失败', 'org.umi.ui.tasks.dev.start': '启动', 'org.umi.ui.tasks.dev.cancel': '停止', 'org.umi.ui.tasks.dev.state.starting': '启动中...', 'org.umi.ui.tasks.dev.state.starting.error': '编译失败', 'org.umi.ui.tasks.dev.state.success': '启动于:', 'org.umi.ui.tasks.dev.state.fail': '启动失败', 'org.umi.ui.tasks.envs': '环境变量', 'org.umi.ui.tasks.envs.port': '端口号', 'org.umi.ui.tasks.envs.port.placeholder': '默认端口号为 8000', 'org.umi.ui.tasks.envs.port.desc': '本地开发端口号。', 'org.umi.ui.tasks.envs.babelPolyfill': '@babel/polyfill', 'org.umi.ui.tasks.envs.babelPolyfill.desc': 'Babel 补丁。', 'org.umi.ui.tasks.envs.hmr': 'HMR', 'org.umi.ui.tasks.envs.hmr.desc': 'Webpack 热更新。', 'org.umi.ui.tasks.envs.babelCache': 'BABEL_CACHE', 'org.umi.ui.tasks.envs.babelCache.desc': 'Babel 缓存。', 'org.umi.ui.tasks.envs.mock': 'MOCK', 'org.umi.ui.tasks.envs.mock.desc': 'MOCK。', 'org.umi.ui.tasks.envs.BROWSER': '浏览器', 'org.umi.ui.tasks.envs.BROWSER.desc': '自动打开浏览器。', 'org.umi.ui.tasks.envs.clear': '日志清屏', 'org.umi.ui.tasks.envs.clear.desc': '启动日志自动清除。', 'org.umi.ui.tasks.envs.tsCheck': 'TypeScript 类型检查', 'org.umi.ui.tasks.envs.tsCheck.desc': 'TypeScript 类型定义检查(适用于 TypeScript 项目)。', 'org.umi.ui.tasks.envs.umiUI': 'UmiUI', 'org.umi.ui.tasks.envs.umiUI.desc': '打开 Umi UI。', // build 'org.umi.ui.tasks.build.buildError': '执行构建失败', 'org.umi.ui.tasks.build.cancelError': '取消构建失败', 'org.umi.ui.tasks.build.start': '构建', 'org.umi.ui.tasks.build.cancel': '停止', 'org.umi.ui.tasks.envs.compress': 'JS 压缩', 'org.umi.ui.tasks.envs.compress.desc': '压缩 JS 文件。', 'org.umi.ui.tasks.envs.cssCompress': 'CSS 压缩', 'org.umi.ui.tasks.envs.cssCompress.desc': '压缩 CSS 文件。', 'org.umi.ui.tasks.envs.html': 'HTML', 'org.umi.ui.tasks.envs.html.desc': '产物生成 HTML。', // test 'org.umi.ui.tasks.test.testError': '执行测试失败', 'org.umi.ui.tasks.test.cancelError': '取消测试失败', 'org.umi.ui.tasks.test.start': '执行', 'org.umi.ui.tasks.test.cancel': '停止', // lint 'org.umi.ui.tasks.lint.execError': '执行代码规范检查失败', 'org.umi.ui.tasks.lint.cancelError': '取消代码检查失败', 'org.umi.ui.tasks.lint.start': '执行', 'org.umi.ui.tasks.lint.cancel': '停止', // install 'org.umi.ui.tasks.install.execError': '安装依赖失败', 'org.umi.ui.tasks.install.cancelError': '取消安装依赖失败', 'org.umi.ui.tasks.install.start': '安装', 'org.umi.ui.tasks.install.cancel': '停止', 'org.umi.ui.tasks.install.tip': '确认重新安装依赖么?', 'org.umi.ui.tasks.install.npmClient': '使用客户端', 'org.umi.ui.tasks.install.okText': '确认', 'org.umi.ui.tasks.install.cancelText': '取消', // log 'org.umi.ui.tasks.log.title': '输出', // notify 'org.umi.ui.tasks.notify.build.success.title': '构建成功', 'org.umi.ui.tasks.notify.build.success.message': '成功', 'org.umi.ui.tasks.notify.build.fail.title': '构建失败', 'org.umi.ui.tasks.notify.build.fail.message': '失败', 'org.umi.ui.tasks.notify.dev.success.title': '启动成功', 'org.umi.ui.tasks.notify.dev.success.message': '成功', 'org.umi.ui.tasks.notify.dev.fail.title': '启动失败', 'org.umi.ui.tasks.notify.dev.fail.message': '失败', 'org.umi.ui.tasks.notify.test.success.title': '测试成果', 'org.umi.ui.tasks.notify.test.success.message': '成功', 'org.umi.ui.tasks.notify.test.fail.title': '测试失败', 'org.umi.ui.tasks.notify.test.fail.message': '失败', 'org.umi.ui.tasks.notify.lint.success.title': '代码规范检查成功', 'org.umi.ui.tasks.notify.lint.success.message': '成功', 'org.umi.ui.tasks.notify.lint.fail.title': '代码规范检查失败', 'org.umi.ui.tasks.notify.lint.fail.message': '失败', 'org.umi.ui.tasks.notify.install.success.title': '安装依赖成功', 'org.umi.ui.tasks.notify.install.success.message': '成功', 'org.umi.ui.tasks.notify.install.fail.title': '安装依赖失败', 'org.umi.ui.tasks.notify.install.fail.message': '失败', // analyze 'org.umi.ui.tasks.analyze.empty': '任务成功后展示...' }; var namespace = 'org.umi.taskManager'; var init = false; var model = { namespace: namespace, state: { currentProject: {}, tasks: {}, dbPath: {} }, effects: { // 初始化 taskManager init: /*#__PURE__*/regeneratorRuntime.mark(function init(_ref, _ref2) { var payload, callback, call, put, currentProject, getSharedDataDir, _yield$callRemote, taskStates, dir; return regeneratorRuntime.wrap(function init$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: payload = _ref.payload, callback = _ref.callback; call = _ref2.call, put = _ref2.put; currentProject = payload.currentProject, getSharedDataDir = payload.getSharedDataDir; _context.next = 5; return callRemote({ type: 'plugin/init', payload: { key: currentProject.key } }); case 5: _yield$callRemote = _context.sent; taskStates = _yield$callRemote.states; _context.next = 9; return getSharedDataDir(); case 9: dir = _context.sent; _context.next = 12; return put({ type: 'initCurrentProjectState', payload: { currentProject: currentProject, taskStates: taskStates, dbPath: dir } }); case 12: case "end": return _context.stop(); } } }, init); }), // 执行任务 exec: /*#__PURE__*/regeneratorRuntime.mark(function exec(_ref3, _ref4) { var payload, call, taskType, args, env; return regeneratorRuntime.wrap(function exec$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: payload = _ref3.payload; call = _ref4.call; taskType = payload.taskType, args = payload.args, env = payload.env; _context2.next = 5; return call(runTask, taskType, args, env); case 5: case "end": return _context2.stop(); } } }, exec); }), // 取消任务 cancel: /*#__PURE__*/regeneratorRuntime.mark(function cancel(_ref5, _ref6) { var payload, call, taskType; return regeneratorRuntime.wrap(function cancel$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: payload = _ref5.payload; call = _ref6.call; taskType = payload.taskType; _context3.next = 5; return call(cancelTask, taskType); case 5: case "end": return _context3.stop(); } } }, cancel); }), // 获取任务详情(获取日志时使用 -> 前端不做 log 的存储) getTaskDetail: /*#__PURE__*/regeneratorRuntime.mark(function getTaskDetail$1(_ref7, _ref8) { var payload, put, call, taskType, callback, log, dbPath, result; return regeneratorRuntime.wrap(function getTaskDetail$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: payload = _ref7.payload; put = _ref8.put, call = _ref8.call; taskType = payload.taskType, callback = payload.callback, log = payload.log, dbPath = payload.dbPath; _context4.next = 5; return call(getTaskDetail, taskType, log, dbPath); case 5: result = _context4.sent; callback && callback(result); _context4.next = 9; return put({ type: 'updateWebpackStats', payload: result }); case 9: case "end": return _context4.stop(); } } }, getTaskDetail$1); }), // 更新日志 writeLog: /*#__PURE__*/regeneratorRuntime.mark(function writeLog(_ref9, _ref10) { var payload, select, taskType, log, projectKey, modal, key, ins; return regeneratorRuntime.wrap(function writeLog$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: payload = _ref9.payload; select = _ref10.select; taskType = payload.taskType, log = payload.log, projectKey = payload.key; _context5.next = 5; return select(function (state) { return state[namespace]; }); case 5: modal = _context5.sent; key = modal && modal.currentProject && modal.currentProject.key; if (key) { _context5.next = 9; break; } return _context5.abrupt("return"); case 9: ins = getTerminalRefIns(taskType, projectKey); if (ins) { _context5.next = 12; break; } return _context5.abrupt("return"); case 12: ins.write(log.replace(/\n/g, '\r\n')); case 13: case "end": return _context5.stop(); } } }, writeLog); }) }, reducers: { initCurrentProjectState: function initCurrentProjectState(state, _ref11) { var payload = _ref11.payload; var currentProject = payload.currentProject, taskStates = payload.taskStates, dbPath = payload.dbPath; return _objectSpread2({}, state, { currentProject: currentProject, tasks: _objectSpread2({}, state.tasks, _defineProperty({}, currentProject.path, taskStates)), dbPath: _objectSpread2({}, state.dbPath, _defineProperty({}, currentProject.path, dbPath)) }); }, updateTaskDetail: function updateTaskDetail(state, _ref12) { var payload = _ref12.payload; var taskType = payload.taskType, detail = payload.detail, cwd = payload.cwd; var stats = detail.stats, rest = _objectWithoutProperties(detail, ["stats"]); return _objectSpread2({}, state, { tasks: _objectSpread2({}, state.tasks, _defineProperty({}, cwd, _objectSpread2({}, state.tasks[cwd], _defineProperty({}, taskType, _objectSpread2({}, state.tasks[cwd][taskType], {}, rest, { analyze: stats ? new Analyze(stats) : null }))))) }); }, updateWebpackStats: function updateWebpackStats(state, _ref13) { var payload = _ref13.payload; var currentCwd = payload.currentCwd, stats = payload.stats, type = payload.type; return _objectSpread2({}, state, { tasks: _objectSpread2({}, state.tasks, _defineProperty({}, currentCwd, _objectSpread2({}, state.tasks[currentCwd], _defineProperty({}, type, _objectSpread2({}, state.tasks[currentCwd][type], { analyze: stats ? new Analyze(stats) : null }))))) }); } }, subscriptions: { setup: function setup(_ref14) { var history = _ref14.history, dispatch = _ref14.dispatch; history.listen(function (_ref15) { var pathname = _ref15.pathname; if (init) { return; } if (pathname === '/tasks') { init = true; // 接收状态通知 listenRemote({ type: 'org.umi.task.state', onMessage: function onMessage(_ref16) { var detail = _ref16.detail, taskType = _ref16.taskType, cwd = _ref16.cwd; // 更新 state 数据 dispatch({ type: 'updateTaskDetail', payload: { detail: detail, taskType: taskType, cwd: cwd } }); // 成功或者失败的时候做通知 if ([TaskState.INIT, TaskState.ING].indexOf(detail.state) > -1) { return; } var _getNoticeMessage = getNoticeMessage(taskType, detail.state), title = _getNoticeMessage.title, message = _getNoticeMessage.message, rest = _objectWithoutProperties(_getNoticeMessage, ["title", "message"]); // TODO: 这儿应该加上项目的名称 notify(_objectSpread2({ title: intl({ id: title }), message: intl({ id: message }) }, rest)); } }); // 日志更新 listenRemote({ type: 'org.umi.task.log', onMessage: function onMessage(_ref17) { var _ref17$log = _ref17.log, log = _ref17$log === void 0 ? '' : _ref17$log, taskType = _ref17.taskType, key = _ref17.key; if (!log) { return; } dispatch({ type: 'writeLog', payload: { taskType: taskType, log: log, key: key } }); } }); } }); } } }; var ui = function ui(api) { var _SCRIPTS; initApiToGloal(api); var TwoColumnPanel = api.TwoColumnPanel; var imgProperty = { width: api.mini ? '24' : '32', height: api.mini ? '24' : '32' }; var SCRIPTS = (_SCRIPTS = {}, _defineProperty(_SCRIPTS, TaskType.DEV, { key: 'dev', title: 'org.umi.ui.tasks.dev', icon: React$1__default.createElement("img", Object.assign({}, imgProperty, { src: "https://gw.alipayobjects.com/zos/basement_prod/6000d285-334d-4513-a405-2d9f890f56e9.svg" })), description: 'org.umi.ui.tasks.dev.desc', Component: DevComponent }), _defineProperty(_SCRIPTS, TaskType.BUILD, { key: 'build', title: 'org.umi.ui.tasks.build', icon: React$1__default.createElement("img", Object.assign({}, imgProperty, { src: "https://gw.alipayobjects.com/zos/basement_prod/6000d285-334d-4513-a405-2d9f890f56e9.svg" })), description: 'org.umi.ui.tasks.build.desc', Component: BuildComponent }), _defineProperty(_SCRIPTS, TaskType.LINT, { key: 'lint', title: 'org.umi.ui.tasks.lint', icon: React$1__default.createElement("img", Object.assign({}, imgProperty, { src: "https://gw.alipayobjects.com/zos/basement_prod/fb3b6fab-253e-41fc-981a-8bfc5dc4fede.svg" })), description: 'org.umi.ui.tasks.lint.desc', Component: LintComponent }), _defineProperty(_SCRIPTS, TaskType.TEST, { key: 'test', title: 'org.umi.ui.tasks.test', icon: React$1__default.createElement("img", Object.assign({}, imgProperty, { src: "https://gw.alipayobjects.com/zos/basement_prod/f0d64a31-1767-4ab7-a7f9-eea044d92ce3.svg" })), description: 'org.umi.ui.tasks.test.desc', Component: TestComponent }), _defineProperty(_SCRIPTS, TaskType.INSTALL, { key: 'install', title: 'org.umi.ui.tasks.install', icon: React$1__default.createElement("img", Object.assign({}, imgProperty, { src: "https://gw.alipayobjects.com/zos/basement_prod/d9fbc2fa-5bb6-46f4-bd15-385a94bc6d1c.svg" })), description: 'org.umi.ui.tasks.install.desc', Component: InstallComponent }), _SCRIPTS); var ApiTerminal = api.Terminal; var Terminal = function Terminal(props) { return React$1__default.createElement(ApiTerminal, Object.assign({ config: _objectSpread2({ allowTransparency: true, fontFamily: "operator mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace", cursorBlink: false, cursorStyle: 'underline', disableStdin: true }, api.isMini() ? { fontSize: 12 } : {}) }, props)); }; var TasksView = function TasksView(_ref) { var taskManager = _ref.taskManager, dispatch = _ref.dispatch; // 初始化 taskManager dva model React$1.useEffect(function () { dispatch({ type: "".concat(model.namespace, "/init"), payload: { currentProject: api.currentProject, getSharedDataDir: api.getSharedDataDir } }); }, []); var sections = Object.keys(SCRIPTS).filter(function (item) { if (api.mini && item === TaskType.DEV) { return false; } return true; }); // 立即执行参数 var _api$getSearchParams = api.getSearchParams(), searchIIFE = _api$getSearchParams.iife; var iife = searchIIFE === 'true'; return React$1__default.createElement(TwoColumnPanel, { sections: sections.map(function (taskType) { var _SCRIPTS$taskType = SCRIPTS[taskType], key = _SCRIPTS$taskType.key, title = _SCRIPTS$taskType.title, icon = _SCRIPTS$taskType.icon, description = _SCRIPTS$taskType.description, Component = _SCRIPTS$taskType.Component; var currentProjectKey = api.currentProject.path; var detail = taskManager.tasks[currentProjectKey] && taskManager.tasks[currentProjectKey][taskType]; var dbPath = taskManager.dbPath[currentProjectKey]; return { key: key, title: title, icon: icon, description: description, component: function component() { return React$1__default.createElement("div", { className: styles.section }, React$1__default.createElement(Component, { taskType: taskType, iife: iife, api: api, detail: detail, dispatch: dispatch, dbPath: dbPath, Terminal: Terminal, namespace: model.namespace })); } }; }) }); }; // 注册 model api.registerModel(model); api.addLocales({ 'zh-CN': zhCN, 'en-US': enUS }); var FormattedMessage = api.intl.FormattedMessage; var commonContent = [React$1__default.createElement("a", { onClick: function onClick() { return api.redirect('/tasks?type=block&active=build&iife=true'); } }, React$1__default.createElement(FormattedMessage, { id: "org.umi.ui.tasks.dashboard.build" })), React$1__default.createElement("a", { onClick: function onClick() { return api.redirect('/tasks?type=block&active=lint&iife=true'); } }, React$1__default.createElement(FormattedMessage, { id: "org.umi.ui.tasks.dashboard.lint" }))]; api.addDashboard({ // 唯一标识,org.umi.dashboard.card.${key} key: 'org.umi.dashboard.card.task', title: React$1__default.createElement(FormattedMessage, { id: "org.umi.ui.tasks.title" }), description: React$1__default.createElement(FormattedMessage, { id: "org.umi.ui.tasks.description" }), icon: React$1__default.createElement(SettingOutlined$2, null), content: api.mini ? // mini 下没有 dev commonContent : [React$1__default.createElement("a", { onClick: function onClick() { return api.redirect('/tasks?type=block&active=dev&iife=true'); } }, React$1__default.createElement(FormattedMessage, { id: "org.umi.ui.tasks.dashboard.dev" }))].concat(commonContent) }); api.addPanel({ title: 'org.umi.ui.tasks.title', path: '/tasks', icon: { type: 'project', theme: 'filled' }, component: api.connect(function (state) { return { taskManager: state[model.namespace] }; })(TasksView) }); }; return ui; });