{"version":3,"sources":["webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/RadialGradient.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/filters/DesaturateFilter.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/Group.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/RectPattern.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/filters/Filter.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/filters/ColorizeFilter.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/Path.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/Smoothing.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/filters/BlurFilter.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/Pattern.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/GradientModifier.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/filters/DropShadowFilter.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/LinePattern.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/LinearGradientModifier.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/filters/LightenFilter.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/AMElement.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/Paper.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/LinearGradient.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/filters/FocusFilter.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/RadialGradientModifier.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/SVGContainer.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/ColorModifier.js"],"names":["__webpack_require__","d","__webpack_exports__","RadialGradient","tslib__WEBPACK_IMPORTED_MODULE_0__","_Base__WEBPACK_IMPORTED_MODULE_1__","_utils_List__WEBPACK_IMPORTED_MODULE_2__","_Paper__WEBPACK_IMPORTED_MODULE_3__","_Registry__WEBPACK_IMPORTED_MODULE_4__","_utils_Iterator__WEBPACK_IMPORTED_MODULE_5__","_utils_Type__WEBPACK_IMPORTED_MODULE_6__","_utils_Percent__WEBPACK_IMPORTED_MODULE_7__","_super","_this","call","this","_stops","element","paper","addGroup","id","getUniqueId","attr","_disposers","push","applyTheme","prototype","draw","gradientElement","cx","value","percent","cy","fx","fy","removeChildNodes","iterator","a","i","stop","offset","length","gradientStop","add","color","stop-color","toString","opacity","stop-opacity","addColor","Object","defineProperty","get","_paper","set","appendDef","enumerable","configurable","_cx","_cy","_fx","_fy","copyFrom","source","stops","clear","registeredClasses","DesaturateFilter","_Filter__WEBPACK_IMPORTED_MODULE_1__","_Registry__WEBPACK_IMPORTED_MODULE_2__","className","feColorMatrix","type","filterPrimitives","width","height","saturation","properties","values","Group","_AMElement__WEBPACK_IMPORTED_MODULE_1__","elementName","node","appendChild","addToBack","first","childNodes","insertBefore","removeElement","parentNode","removeChild","err","hasChild","innerHTML","removeChildren","childNode","firstChild","_Pattern__WEBPACK_IMPORTED_MODULE_1__","RectPattern","rectHeight","rectWidth","_rect","addElement","Filter","_Paper__WEBPACK_IMPORTED_MODULE_2__","_utils_Animation__WEBPACK_IMPORTED_MODULE_3__","_utils_List__WEBPACK_IMPORTED_MODULE_4__","_utils_Object__WEBPACK_IMPORTED_MODULE_5__","_utils_Iterator__WEBPACK_IMPORTED_MODULE_6__","isTemplate","_scale","_nonScaling","events","on","ev","newValue","appendPrimitives","filterElement","filterPrimitive","animate","animationOptions","duration","easing","animation","start","filter","key","_animations","updateScale","setSprite","_sprite","filters","removeValue","ColorizeFilter","intensity","applyFilter","r","g","b","ii","rgb","polyline","moveTo","lineTo","quadraticCurveTo","cubicCurveTo","closePath","arcTo","arc","arcToPoint","rectangle","rectToPath","_utils_Math__WEBPACK_IMPORTED_MODULE_0__","_utils_Type__WEBPACK_IMPORTED_MODULE_1__","_Options__WEBPACK_IMPORTED_MODULE_3__","points","path","prevPoint","x","y","minStep","minPolylineStep","len","point","controlPoint","controlPointA","controlPointB","startAngle","radius","radiusY","c","segments","Math","ceil","abs","l","pax","pay","endAngle","ax","ay","innerRadius","cornerRadius","innerCornerRadius","temp","crSin","innerRadiusY","cornerRadiusY","innerCornerRadiusY","crAngle","asin","crAngleY","crInnerAngle","crInnerAngleY","middleAngle","mPoint","a0","b0","c0","d0","b1","d1","sweepFlag","largeArcFlag","xAxisRotation","Boolean","sweepFlagValue","largeArcFlagValue","rect","ccw","L","Tension","wavedLine","_Registry__WEBPACK_IMPORTED_MODULE_0__","_Path__WEBPACK_IMPORTED_MODULE_1__","_utils_Array__WEBPACK_IMPORTED_MODULE_2__","_utils_Utils__WEBPACK_IMPORTED_MODULE_3__","_utils_Math__WEBPACK_IMPORTED_MODULE_4__","tensionX","tensionY","_tensionX","_tensionY","smooth","last","closed","p0","p1","p2","p3","point1","point2","waveLength","waveHeight","tension","adjustWaveLength","x1","y1","x2","y2","distance","round","getCache","angle","atan2","cos","sin","waveLengthX","waveLengthY","halfWaveCount","sign","setCache","Basis","info","_closed","x0","NaN","x3","x4","y0","y3","y4","output","pushCurve","pushPoint","_a","BlurFilter","feGaussianBlur","result","in","blur","stdDeviation","scale","Pattern","_utils_List__WEBPACK_IMPORTED_MODULE_3__","_utils_Animation__WEBPACK_IMPORTED_MODULE_4__","_Registry__WEBPACK_IMPORTED_MODULE_5__","_utils_InterfaceColorSet__WEBPACK_IMPORTED_MODULE_6__","_utils_Iterator__WEBPACK_IMPORTED_MODULE_7__","_utils_Object__WEBPACK_IMPORTED_MODULE_8__","_utils_Type__WEBPACK_IMPORTED_MODULE_9__","_elements","patternUnits","interfaceColors","backgroundFill","getFor","backgroundOpacity","fillOpacity","fill","stroke","strokeOpacity","strokeWidth","shapeRendering","rotation","patternElement","background","shape-rendering","hex","fill-opacity","stroke-opacity","stroke-width","removeDispose","processConfig","config","elements","sprite","createEntryInstance","GradientModifier","_ColorModifier__WEBPACK_IMPORTED_MODULE_1__","_utils_Math__WEBPACK_IMPORTED_MODULE_3__","_utils_Type__WEBPACK_IMPORTED_MODULE_4__","lightnesses","brightnesses","opacities","offsets","_lightnesses","_brightnesses","_opacities","_offsets","modify","gradient","count","lightness","brightness","undefined","brighten","lighten","DropShadowFilter","_utils_Color__WEBPACK_IMPORTED_MODULE_2__","_Registry__WEBPACK_IMPORTED_MODULE_3__","feOffset","feFlood","flood-color","feComposite","in2","operator","feMerge","dx","dy","flood-opacity","LinePattern","_line","LinearGradientModifier","_LinearGradient__WEBPACK_IMPORTED_MODULE_1__","_GradientModifier__WEBPACK_IMPORTED_MODULE_2__","clone","LightenFilter","v","AMElement","_utils_DOM__WEBPACK_IMPORTED_MODULE_0__","_utils_Object__WEBPACK_IMPORTED_MODULE_1__","_utils_Type__WEBPACK_IMPORTED_MODULE_2__","_isDisposed","_x","_y","_rotation","document","createElementNS","removeNode","_transformString","transform","transfromString","setAttribute","getBBox","bbox","svgbbox","textContent","removeAttr","attribute","removeAttribute","attributes","attributeName","attributeValue","getAttr","getAttribute","attrNS","ns","setAttributeNS","getAttrNS","getAttributeNS","removeStyle","style","getStyle","addStyle","addClass","name","removeClass","setClass","isDisposed","dispose","Paper","getGhostPaper","_AMElement__WEBPACK_IMPORTED_MODULE_0__","_Group__WEBPACK_IMPORTED_MODULE_1__","_SVGContainer__WEBPACK_IMPORTED_MODULE_2__","_utils_DOM__WEBPACK_IMPORTED_MODULE_3__","container","svg","desc","createTextNode","defs","overflow","groupName","append","foreignObject","supportsForeignObject","implementation","hasFeature","ghostPaper","ghostDiv","createElement","hidden","body","ghostSvgContainer","SVGContainer","LinearGradient","_utils_Math__WEBPACK_IMPORTED_MODULE_6__","_utils_Type__WEBPACK_IMPORTED_MODULE_7__","validate","PI","FocusFilter","_utils_InterfaceColorSet__WEBPACK_IMPORTED_MODULE_2__","feMorphology","feBlend","mode","group","outline","_RadialGradient__WEBPACK_IMPORTED_MODULE_1__","RadialGradientModifier","svgContainers","_utils_Disposer__WEBPACK_IMPORTED_MODULE_0__","_elements_Popup__WEBPACK_IMPORTED_MODULE_1__","_elements_Modal__WEBPACK_IMPORTED_MODULE_2__","_utils_Utils__WEBPACK_IMPORTED_MODULE_4__","_utils_DOM__WEBPACK_IMPORTED_MODULE_5__","_utils_Array__WEBPACK_IMPORTED_MODULE_6__","css_element_queries_src_ResizeSensor__WEBPACK_IMPORTED_MODULE_8__","css_element_queries_src_ResizeSensor__WEBPACK_IMPORTED_MODULE_8___default","n","htmlElement","_disposed","autoResize","nonExportableSprites","cssScale","callback","measure","resizeSensor","detach","svgContainer","position","maxWidth","maxHeight","checkTransform","_container","item","_modal","openModal","text","title","closeModal","modal","content","readerTitle","open","close","_popups","popupTemplate","template","openPopup","popup","popups","create","closeAllPopups","each","div","window","getComputedStyle","matrix","getPropertyValue","split","Number","sqrt","isNaN","HTMLElement","ColorModifier"],"mappings":"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","file":"js/chunk-01164f58.4a49ea19.js","sourcesContent":["/**\r\n * Contains code and logic for generating radial gradients.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../../Base\";\r\nimport { List } from \"../../utils/List\";\r\nimport { getGhostPaper } from \"../Paper\";\r\nimport { registry } from \"../../Registry\";\r\nimport * as $iter from \"../../utils/Iterator\";\r\nimport * as $type from \"../../utils/Type\";\r\nimport { Percent } from \"../../utils/Percent\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Radial gradient class.\r\n */\r\nvar RadialGradient = /** @class */ (function (_super) {\r\n tslib_1.__extends(RadialGradient, _super);\r\n /**\r\n * Constructor\r\n */\r\n function RadialGradient() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * List of colors switch definitions in a gradient.\r\n */\r\n _this._stops = new List();\r\n _this.element = _this.paper.addGroup(\"radialGradient\");\r\n _this.id = \"gradient-\" + registry.getUniqueId();\r\n _this.element.attr({ \"id\": _this.id });\r\n _this._disposers.push(_this.element);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws gradient.\r\n */\r\n RadialGradient.prototype.draw = function () {\r\n var _this = this;\r\n var gradientElement = this.element;\r\n if ($type.isNumber(this.cx)) {\r\n var value = this.cx;\r\n if (value instanceof Percent) {\r\n value = value.percent + \"%\";\r\n }\r\n gradientElement.attr({ \"cx\": value });\r\n }\r\n if ($type.isNumber(this.cy)) {\r\n var value = this.cy;\r\n if (value instanceof Percent) {\r\n value = value.percent + \"%\";\r\n }\r\n gradientElement.attr({ \"cy\": value });\r\n }\r\n if (this.fx) {\r\n var value = this.fx;\r\n if (value instanceof Percent) {\r\n value = value.percent + \"%\";\r\n }\r\n gradientElement.attr({ \"fx\": value });\r\n }\r\n if (this.fy) {\r\n var value = this.fy;\r\n if (value instanceof Percent) {\r\n value = value.percent + \"%\";\r\n }\r\n gradientElement.attr({ \"fy\": value });\r\n }\r\n gradientElement.removeChildNodes();\r\n $iter.each($iter.indexed(this._stops.iterator()), function (a) {\r\n var i = a[0];\r\n var stop = a[1];\r\n var offset = stop.offset;\r\n if (!$type.isNumber(offset)) {\r\n offset = i / (_this._stops.length - 1);\r\n }\r\n var gradientStop = _this.paper.add(\"stop\");\r\n if ($type.hasValue(stop.color)) {\r\n gradientStop.attr({ \"stop-color\": stop.color.toString() });\r\n }\r\n if ($type.isNumber(stop.opacity)) {\r\n gradientStop.attr({ \"stop-opacity\": stop.opacity });\r\n }\r\n if ($type.isNumber(offset)) {\r\n gradientStop.attr({ \"offset\": offset });\r\n }\r\n gradientElement.add(gradientStop);\r\n });\r\n };\r\n /**\r\n * Adds a color step to the gradient.\r\n *\r\n * @param color Color (hex code or named color)\r\n * @param opacity Opacity (value from 0 to 1; 0 completely transaprent, 1 fully opaque)\r\n * @param offset Position of color in the gradient (value 0 to 1; 0 meaning start of the gradient and 1 end)\r\n */\r\n RadialGradient.prototype.addColor = function (color, opacity, offset) {\r\n this._stops.push({ color: color, opacity: opacity, offset: offset });\r\n this.draw();\r\n };\r\n Object.defineProperty(RadialGradient.prototype, \"paper\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Paper\r\n */\r\n get: function () {\r\n if (this._paper) {\r\n return this._paper;\r\n }\r\n return getGhostPaper();\r\n },\r\n /**\r\n * A [[Paper]] instace to use for the gradient.\r\n *\r\n * @ignore Exclude from docs\r\n * @param paper Paper\r\n */\r\n set: function (paper) {\r\n if (this._paper != paper) {\r\n this._paper = paper;\r\n this.draw();\r\n paper.appendDef(this.element);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RadialGradient.prototype, \"cx\", {\r\n get: function () {\r\n return this._cx;\r\n },\r\n /**\r\n * Center x coordinate of the gradient, can be set as number or Percent\r\n *\r\n * @param point Center point\r\n */\r\n set: function (value) {\r\n this._cx = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RadialGradient.prototype, \"cy\", {\r\n get: function () {\r\n return this._cy;\r\n },\r\n /**\r\n * Center y coordinate of the gradient, can be set as number or Percent\r\n *\r\n * @param point Center point\r\n */\r\n set: function (value) {\r\n this._cy = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RadialGradient.prototype, \"fx\", {\r\n get: function () {\r\n return this._fx;\r\n },\r\n /**\r\n * y coordinate of the focal point of a gradient, can be set in pixels or as Percent\r\n *\r\n * @param point Center point\r\n */\r\n set: function (value) {\r\n this._fx = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RadialGradient.prototype, \"fy\", {\r\n get: function () {\r\n return this._fy;\r\n },\r\n /**\r\n * y coordinate of the focal point of a gradient, can be set in pixels or as Percent\r\n *\r\n * @param point Center point\r\n */\r\n set: function (value) {\r\n this._fy = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n RadialGradient.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.stops.copyFrom(source.stops);\r\n this.cx = source.cx;\r\n this.cy = source.cy;\r\n this.fx = source.fx;\r\n this.fy = source.fy;\r\n };\r\n Object.defineProperty(RadialGradient.prototype, \"stops\", {\r\n /**\r\n * A list of color stops in the gradient.\r\n *\r\n * @return Stops\r\n */\r\n get: function () {\r\n return this._stops;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Clears the gradient.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n RadialGradient.prototype.clear = function () {\r\n this._stops.clear();\r\n };\r\n return RadialGradient;\r\n}(BaseObject));\r\nexport { RadialGradient };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RadialGradient\"] = RadialGradient;\r\n//# sourceMappingURL=RadialGradient.js.map","/**\r\n * Module for \"Desaturate\" filter.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Filter } from \"./Filter\";\r\nimport { registry } from \"../../Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creats a \"Desaturate\" filter\r\n */\r\nvar DesaturateFilter = /** @class */ (function (_super) {\r\n tslib_1.__extends(DesaturateFilter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function DesaturateFilter() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"DesaturateFilter\";\r\n // Create elements\r\n // NOTE: we do not need to add each individual element to `_disposers`\r\n // because `filterPrimitives` has an event handler which automatically adds\r\n // anything added to it to `_disposers`\r\n _this.feColorMatrix = _this.paper.add(\"feColorMatrix\");\r\n _this.feColorMatrix.attr({ \"type\": \"saturate\" });\r\n _this.filterPrimitives.push(_this.feColorMatrix);\r\n // Set default properties\r\n _this.width = 120;\r\n _this.height = 120;\r\n _this.saturation = 0;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(DesaturateFilter.prototype, \"saturation\", {\r\n /**\r\n * @return Saturation (0-1)\r\n */\r\n get: function () {\r\n return this.properties[\"saturation\"];\r\n },\r\n /**\r\n * Saturation.\r\n *\r\n * 0 - completely desaturated.\r\n * 1 - fully saturated (gray).\r\n *\r\n * @param value Saturation (0-1)\r\n */\r\n set: function (value) {\r\n this.properties[\"saturation\"] = value;\r\n this.feColorMatrix.attr({ \"values\": value.toString() });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return DesaturateFilter;\r\n}(Filter));\r\nexport { DesaturateFilter };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"DesaturateFilter\"] = DesaturateFilter;\r\n//# sourceMappingURL=DesaturateFilter.js.map","import * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AMElement } from \"./AMElement\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates an SVG `` element.\r\n *\r\n * SVG groups are used for elements that need more elements just one.\r\n *\r\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Element/g} About `` element\r\n */\r\nvar Group = /** @class */ (function (_super) {\r\n tslib_1.__extends(Group, _super);\r\n /**\r\n * Constructor.\r\n *\r\n * @param elementName Element type (should be \"g\")\r\n */\r\n function Group(elementName) {\r\n return _super.call(this, elementName) || this;\r\n }\r\n /**\r\n * Adds an element to group.\r\n *\r\n * This will manipulate DOM. `element` will be physically moved into group.\r\n *\r\n * @param element Element\r\n */\r\n Group.prototype.add = function (element) {\r\n if (element) {\r\n this.node.appendChild(element.node);\r\n }\r\n };\r\n /**\r\n * Adds an element to group.\r\n *\r\n * This will manipulate DOM. `element` will be physically moved into group.\r\n *\r\n * @param element Element\r\n */\r\n Group.prototype.addToBack = function (element) {\r\n if (element) {\r\n var first = this.node.childNodes[0];\r\n if (first) {\r\n if (first != element.node) {\r\n this.node.insertBefore(element.node, first);\r\n }\r\n }\r\n else {\r\n this.node.appendChild(element.node);\r\n }\r\n }\r\n };\r\n /**\r\n * Removes the `element` from group.\r\n *\r\n * Please note that this will not dispose the element itself, it will just\r\n * remove it from the group.\r\n *\r\n * @param element Element\r\n */\r\n Group.prototype.removeElement = function (element) {\r\n // todo: not sure about the speed, need to investigate, maybe it's faster to check if node is a child\r\n if (element) {\r\n try {\r\n if (element.node && element.node.parentNode == this.node) {\r\n this.node.removeChild(element.node);\r\n }\r\n }\r\n catch (err) {\r\n }\r\n }\r\n };\r\n /**\r\n * Checks if this group already has the child element added\r\n *\r\n * @param element\r\n * @return {boolean}\r\n */\r\n Group.prototype.hasChild = function (element) {\r\n for (var i = 0; i < this.node.childNodes.length; i++) {\r\n if (this.node.childNodes[i] == element.node) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Object.defineProperty(Group.prototype, \"content\", {\r\n /**\r\n * @return SVG markup\r\n */\r\n get: function () {\r\n return this.node.innerHTML;\r\n },\r\n /**\r\n * Content of the group element.\r\n *\r\n * Can be used to add a lot of proprietary SVG markup into group.\r\n *\r\n * @param value SVG markup\r\n */\r\n set: function (value) {\r\n this.node.innerHTML = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Removes all children from the group.\r\n */\r\n Group.prototype.removeChildren = function () {\r\n if (this.node.childNodes) {\r\n while (this.node.childNodes.length > 0) {\r\n var childNode = this.node.firstChild;\r\n if (childNode && childNode.parentNode) {\r\n childNode.parentNode.removeChild(childNode);\r\n }\r\n }\r\n }\r\n };\r\n return Group;\r\n}(AMElement));\r\nexport { Group };\r\n//# sourceMappingURL=Group.js.map","/**\r\n * Rectangular pattern module.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Pattern } from \"./Pattern\";\r\nimport { registry } from \"../../Registry\";\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Rectangular pattern\r\n */\r\nvar RectPattern = /** @class */ (function (_super) {\r\n tslib_1.__extends(RectPattern, _super);\r\n /**\r\n * Constructor\r\n */\r\n function RectPattern() {\r\n var _this = _super.call(this) || this;\r\n _this.rectHeight = 1;\r\n _this.rectWidth = 1;\r\n return _this;\r\n }\r\n /**\r\n * Draws the rectangular element.\r\n */\r\n RectPattern.prototype.draw = function () {\r\n if (this._rect) {\r\n this.removeElement(this._rect);\r\n }\r\n this._rect = this.paper.add(\"rect\");\r\n this._rect.attr({ \"width\": this.rectWidth, \"height\": this.rectHeight });\r\n this.addElement(this._rect);\r\n _super.prototype.draw.call(this);\r\n };\r\n Object.defineProperty(RectPattern.prototype, \"rectWidth\", {\r\n /**\r\n * @return Width (px)\r\n */\r\n get: function () {\r\n return this.properties[\"rectWidth\"];\r\n },\r\n /**\r\n * Rectangle width in pixels.\r\n *\r\n * @param value Width (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"rectWidth\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RectPattern.prototype, \"rectHeight\", {\r\n /**\r\n * @return Height (px)\r\n */\r\n get: function () {\r\n return this.properties[\"rectHeight\"];\r\n },\r\n /**\r\n * Rectangle height in pixels.\r\n *\r\n * @param value Height (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"rectHeight\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return RectPattern;\r\n}(Pattern));\r\nexport { RectPattern };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RectPattern\"] = RectPattern;\r\n//# sourceMappingURL=RectPattern.js.map","/**\r\n * This module contains a base class for an SVG filter.\r\n *\r\n * Filters can be used to decorate, change and transform just about any DOM\r\n * element.\r\n *\r\n * A Filter works by applying one or more effects (primitives) to SVG element.\r\n *\r\n * For more information on how SVG filters work, refer to\r\n * [this MDN tutorial](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/SVG_Filters_Tutorial).\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../../Base\";\r\nimport { getGhostPaper } from \"../Paper\";\r\nimport { Animation, AnimationDisposer } from \"../../utils/Animation\";\r\nimport { List } from \"../../utils/List\";\r\nimport * as $object from \"../../utils/Object\";\r\nimport * as $iter from \"../../utils/Iterator\";\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Base filter class.\r\n *\r\n * This class while can be instantiated will not do anything. It is just a base\r\n * functionality for any other \"real\" filters to extend.\r\n *\r\n * Filters can be used to decorate, change and transform just about any DOM\r\n * element.\r\n *\r\n * A Filter works by applying one or more effects (primitives) to SVG element.\r\n *\r\n * For more information on how SVG filters work, refer to\r\n * [this MDN tutorial](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/SVG_Filters_Tutorial).\r\n *\r\n * @todo Example\r\n */\r\nvar Filter = /** @class */ (function (_super) {\r\n tslib_1.__extends(Filter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Filter() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * A storage for Filter property/value pairs.\r\n *\r\n * @ignore Exclude from docs\r\n * @see {@link FilterProperties}\r\n */\r\n _this.properties = {};\r\n /**\r\n * Identifies if this object is a \"template\" and should not be treated as\r\n * real object that is drawn or actually used in the chart.\r\n */\r\n _this.isTemplate = false;\r\n /**\r\n * [_scale description]\r\n *\r\n * @todo Description\r\n */\r\n _this._scale = 1;\r\n /**\r\n * [_nonScaling description]\r\n *\r\n * @todo Description\r\n */\r\n _this._nonScaling = true;\r\n _this.className = \"Filter\";\r\n // Create a list to hold primitives (effect elements)\r\n _this.filterPrimitives = new List();\r\n // Automatically add added primitives to `_disposers` so they are discarded\r\n // when Filter object is destroyed (disposed)\r\n _this.filterPrimitives.events.on(\"inserted\", function (ev) {\r\n _this._disposers.push(ev.newValue);\r\n });\r\n // Set default dimensions\r\n _this.width = 120;\r\n _this.height = 120;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Appends actual filter elements to the filter group.\r\n *\r\n * @ignore Exclude from docs\r\n * @param filterElement An SVG `` element to add filter element to\r\n */\r\n Filter.prototype.appendPrimitives = function (filterElement) {\r\n $iter.each(this.filterPrimitives.iterator(), function (filterPrimitive) {\r\n filterElement.add(filterPrimitive);\r\n });\r\n };\r\n /**\r\n * Uses Transitions filter's values from current to target. This is used to\r\n * smoothly appear filter, rather than it pop into effect.\r\n *\r\n * @ignore Exclude from docs\r\n * @param animationOptions Animation options\r\n * @param duration Duration in milliseconds\r\n * @param easing Easing function\r\n * @return Animation instance\r\n */\r\n Filter.prototype.animate = function (animationOptions, duration, easing) {\r\n var animation = new Animation(this, animationOptions, duration, easing).start();\r\n return animation;\r\n };\r\n Object.defineProperty(Filter.prototype, \"width\", {\r\n /**\r\n * @return Width (%)\r\n */\r\n get: function () {\r\n return this.properties[\"width\"];\r\n },\r\n /**\r\n * Width of the filter element in percent.\r\n *\r\n * If the filter is designed to \"bleed out\" of the original target element,\r\n * like for example a shadow, you need this bigger than 100, or the\r\n * non-fitting parts will be clipped.\r\n *\r\n * @default 120\r\n * @param value Width (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"width\"] = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Filter.prototype, \"height\", {\r\n /**\r\n * @return Height\r\n */\r\n get: function () {\r\n return this.properties[\"height\"];\r\n },\r\n /**\r\n * Height of the filter element in percent.\r\n *\r\n * If the filter is designed to \"bleed out\" of the original target element,\r\n * like for example a shadow, you need this bigger than 100, or the\r\n * non-fitting parts will be clipped.\r\n *\r\n * @default 120\r\n * @param value Height (%)\r\n */\r\n set: function (value) {\r\n this.properties[\"height\"] = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies properties from another [[Filter]] object.\r\n *\r\n * @param filter Source [[Filter]] object\r\n */\r\n Filter.prototype.copyFrom = function (filter) {\r\n var _this = this;\r\n _super.prototype.copyFrom.call(this, filter);\r\n $object.each(filter.properties, function (key, value) {\r\n _this[key] = value;\r\n });\r\n };\r\n Object.defineProperty(Filter.prototype, \"paper\", {\r\n /**\r\n * @return Paper\r\n */\r\n get: function () {\r\n if (this._paper) {\r\n return this._paper;\r\n }\r\n return getGhostPaper();\r\n },\r\n /**\r\n * Sets [[Paper]] instance to create filter's elements in.\r\n *\r\n * @ignore Exclude from docs\r\n * @param paper Paper\r\n */\r\n set: function (paper) {\r\n if (this._paper != paper) {\r\n this._paper = paper;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Filter.prototype, \"animations\", {\r\n /**\r\n * All animations currently in play.\r\n *\r\n * @ignore Exclude from docs\r\n * @return List of animations\r\n */\r\n get: function () {\r\n if (!this._animations) {\r\n this._animations = [];\r\n this._disposers.push(new AnimationDisposer(this._animations));\r\n }\r\n return this._animations;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Filter.prototype, \"scale\", {\r\n /**\r\n * @ignore Exclude from docs\r\n */\r\n get: function () {\r\n return this._scale;\r\n },\r\n /**\r\n * [[Sprite]] uses this method to inform filter about it's scale.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n set: function (value) {\r\n this._scale = value;\r\n this.updateScale();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Updates filter properties which depend on scale.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Filter.prototype.updateScale = function () {\r\n // Dummy method for extending classes to override.\r\n };\r\n Object.defineProperty(Filter.prototype, \"nonScaling\", {\r\n /**\r\n * @return Non scaling?\r\n */\r\n get: function () {\r\n return this._nonScaling;\r\n },\r\n /**\r\n * If a filter is non scaling, it will look the same even if the sprite is\r\n * scaled, otherwise filter will scale together with a [[Sprite]].\r\n *\r\n * @default false\r\n * @param value Non scaling?\r\n */\r\n set: function (value) {\r\n this._nonScaling = value;\r\n if (!value) {\r\n this._scale = 1;\r\n }\r\n this.updateScale();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Filter.prototype, \"sprite\", {\r\n /**\r\n * A target element this filter is currently attached to.\r\n *\r\n * We need to keep track of it because one filter can be used for just one\r\n * element, so we have to remove it from the old \"parent\" when attaching to\r\n * the new one.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Target element\r\n */\r\n set: function (value) {\r\n this.setSprite(value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets filter's target element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Element filter is being attached to\r\n */\r\n Filter.prototype.setSprite = function (value) {\r\n if (this._sprite && this._sprite != value) {\r\n this._sprite.filters.removeValue(this);\r\n }\r\n this._sprite = value;\r\n };\r\n return Filter;\r\n}(BaseObject));\r\nexport { Filter };\r\n//# sourceMappingURL=Filter.js.map","/**\r\n * Module for \"Colorize\" filter.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Filter } from \"./Filter\";\r\nimport { registry } from \"../../Registry\";\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a \"Colorize\" filter.\r\n */\r\nvar ColorizeFilter = /** @class */ (function (_super) {\r\n tslib_1.__extends(ColorizeFilter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ColorizeFilter() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ColorizeFilter\";\r\n // Create elements\r\n // NOTE: we do not need to add each individual element to `_disposers`\r\n // because `filterPrimitives` has an event handler which automatically adds\r\n // anything added to it to `_disposers`\r\n _this.feColorMatrix = _this.paper.add(\"feColorMatrix\");\r\n _this.feColorMatrix.attr({ \"type\": \"matrix\" });\r\n //this.feColorMatrix.setAttribute(\"in\", \"SourceAlpha\");\r\n _this.filterPrimitives.push(_this.feColorMatrix);\r\n // Set default properties\r\n _this.intensity = 1;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * (Re)applies colors to the already existing filter by modifying filyer's\r\n * color matrix element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ColorizeFilter.prototype.applyFilter = function () {\r\n var i = this.intensity;\r\n var ii = 1 - i;\r\n var r;\r\n var g;\r\n var b;\r\n var color = this.color;\r\n if (color && color.rgb) {\r\n r = color.rgb.r / 255 * i;\r\n g = color.rgb.g / 255 * i;\r\n b = color.rgb.b / 255 * i;\r\n }\r\n else {\r\n r = 0;\r\n g = 0;\r\n b = 0;\r\n }\r\n this.feColorMatrix.attr({ \"values\": ii + \" 0 0 0 \" + r + \" 0 \" + ii + \" 0 0 \" + g + \" 0 0 \" + ii + \" 0 \" + b + \" 0 0 0 1 0\" });\r\n };\r\n Object.defineProperty(ColorizeFilter.prototype, \"color\", {\r\n /**\r\n * @return Color\r\n */\r\n get: function () {\r\n return this.properties[\"color\"];\r\n },\r\n /**\r\n * Target color to apply to the element.\r\n *\r\n * Depending on the `intensity`, all colors of the target element will steer\r\n * towards this color.\r\n *\r\n * E.g. setting to `am4core.color(\"greener\")` will make all colors greener.\r\n *\r\n * @param value Color\r\n */\r\n set: function (value) {\r\n this.properties[\"color\"] = value;\r\n this.applyFilter();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ColorizeFilter.prototype, \"intensity\", {\r\n /**\r\n * @return Intensity (0-1)\r\n */\r\n get: function () {\r\n return this.properties.intensity;\r\n },\r\n /**\r\n * Intensity of the color (0-1).\r\n *\r\n * The bigger the number the more of a `color` target's colors will become.\r\n *\r\n * 0 means the colors will remain as they are.\r\n * 1 means all colors will become the target `color`.\r\n *\r\n * @default 1\r\n * @param value Intensity (0-1)\r\n */\r\n set: function (value) {\r\n this.properties.intensity = value;\r\n this.applyFilter();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ColorizeFilter;\r\n}(Filter));\r\nexport { ColorizeFilter };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ColorizeFilter\"] = ColorizeFilter;\r\n//# sourceMappingURL=ColorizeFilter.js.map","/**\r\n * A collection of functions that deals with path calculations.\r\n */\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $type from \"../utils/Type\";\r\nimport { getGhostPaper } from \"../rendering/Paper\";\r\nimport { options } from \"../Options\";\r\n/**\r\n * ============================================================================\r\n * PATH FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Returns an SVG path from a number of points.\r\n *\r\n * @ignore Exclude from docs\r\n * @param points An array of line elbow points\r\n * @return SVG path\r\n */\r\nexport function polyline(points) {\r\n var path = lineTo(points[0]);\r\n var prevPoint = { x: 0, y: 0 };\r\n var minStep = options.minPolylineStep;\r\n if (!$type.isNumber(minStep)) {\r\n minStep = 0.5;\r\n }\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n var point = points[i];\r\n if ($math.getDistance(point, prevPoint) > minStep) {\r\n path += lineTo(point);\r\n prevPoint = point;\r\n }\r\n }\r\n return path;\r\n}\r\n/**\r\n * Returns a starting point of an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point Starting point\r\n * @return SVG path\r\n */\r\nexport function moveTo(point) {\r\n return \" M\" + $math.round(point.x, 4) + \",\" + $math.round(point.y, 4) + \" \";\r\n}\r\n/**\r\n * Returns a line part of SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point SVG path\r\n * @return SVG path\r\n */\r\nexport function lineTo(point) {\r\n return \" L\" + $math.round(point.x, 4) + \",\" + $math.round(point.y, 4) + \" \";\r\n}\r\n/**\r\n * Returns a quadratic curve part of an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point End point of the curve\r\n * @param controlPoint Control point\r\n * @return SVG path\r\n */\r\nexport function quadraticCurveTo(point, controlPoint) {\r\n return \" Q\" + $math.round(controlPoint.x, 4)\r\n + \",\" + $math.round(controlPoint.y, 4) + \" \" + $math.round(point.x, 4)\r\n + \",\" + $math.round(point.y, 4);\r\n}\r\n/**\r\n * Returns a cubic curve part of an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point End point of the curve\r\n * @param controlPointA Control point A\r\n * @param controlPointB Control point B\r\n * @return SVG path\r\n */\r\nexport function cubicCurveTo(point, controlPointA, controlPointB) {\r\n return \" C\" + $math.round(controlPointA.x, 4)\r\n + \",\" + $math.round(controlPointA.y, 4) + \" \" + $math.round(controlPointB.x, 4)\r\n + \",\" + $math.round(controlPointB.y, 4) + \" \" + $math.round(point.x, 4)\r\n + \",\" + $math.round(point.y, 4);\r\n}\r\n/**\r\n * Returns a terminator for an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @return SVG path\r\n */\r\nexport function closePath() {\r\n return \" Z\";\r\n}\r\n/**\r\n * Returns an arc part of an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Better parameter descriptions\r\n * @param startAngle Starting angle\r\n * @param arc Arc\r\n * @param radius Radius\r\n * @param radiusY Vertical radius\r\n * @return SVG path\r\n */\r\nexport function arcTo(startAngle, arc, radius, radiusY) {\r\n if (arc == 0) {\r\n return \"\";\r\n }\r\n if (!$type.isNumber(radiusY)) {\r\n radiusY = radius;\r\n }\r\n var path = \"\";\r\n var c = \",\";\r\n var segments = Math.ceil(Math.abs(arc) / 180);\r\n var l = 1;\r\n if (arc < 0) {\r\n l = 0;\r\n }\r\n // previous, as we use a not A\r\n var pax = 0;\r\n var pay = 0;\r\n // center\r\n var cx = -$math.cos(startAngle) * radius;\r\n var cy = -$math.sin(startAngle) * radiusY;\r\n // foir very short angles and big radius, solves artefacts\r\n if (arc < 0.5 && radius > 3000) {\r\n var endAngle = startAngle + arc;\r\n var ax = $math.round($math.cos(endAngle) * radius, 4);\r\n var ay = $math.round($math.sin(endAngle) * radiusY, 4);\r\n return lineTo({ x: ax, y: ay });\r\n }\r\n for (var i = 0; i < segments; i++) {\r\n var endAngle = startAngle + arc / segments * (i + 1);\r\n var ax = $math.round($math.cos(endAngle) * radius + cx - pax, 4);\r\n var ay = $math.round($math.sin(endAngle) * radiusY + cy - pay, 4);\r\n path += \" a\" + radius + c + radiusY + c + 0 + c + 0 + c + l + c + ax + c + ay;\r\n pax = ax;\r\n pay = ay;\r\n }\r\n return path;\r\n}\r\n/**\r\n * Creates an arc path.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param startAngle [description]\r\n * @param arc [description]\r\n * @param radius [description]\r\n * @param innerRadius [description]\r\n * @param radiusY [description]\r\n * @param cornerRadius [description]\r\n * @param innerCornerRadius [description]\r\n * @return SVG path\r\n */\r\nexport function arc(startAngle, arc, radius, innerRadius, radiusY, cornerRadius, innerCornerRadius) {\r\n if (arc == 0) {\r\n return \"\";\r\n }\r\n if (!$type.isNumber(innerRadius)) {\r\n innerRadius = 0;\r\n }\r\n if (radius == 0 && innerRadius <= 0) {\r\n return \"\";\r\n }\r\n if (radius < innerRadius) {\r\n var temp = radius;\r\n radius = innerRadius;\r\n innerRadius = temp;\r\n if ($type.isNumber(radiusY)) {\r\n radiusY = radiusY / innerRadius * radius;\r\n }\r\n }\r\n arc = $math.min(arc, 360);\r\n if (arc == 360) {\r\n cornerRadius = 0;\r\n innerCornerRadius = 0;\r\n }\r\n var endAngle = startAngle + arc;\r\n var crSin = $math.sin($math.min(arc, 45) / 2);\r\n radiusY = $type.isNumber(radiusY) ? radiusY : radius;\r\n cornerRadius = cornerRadius || 0;\r\n innerCornerRadius = $type.isNumber(innerCornerRadius) ? innerCornerRadius : cornerRadius;\r\n var innerRadiusY = (radiusY / radius) * innerRadius;\r\n var cornerRadiusY = (radiusY / radius) * cornerRadius;\r\n var innerCornerRadiusY = (radiusY / radius) * innerCornerRadius;\r\n cornerRadius = $math.fitToRange(cornerRadius, 0, (radius - innerRadius) / 2);\r\n cornerRadiusY = $math.fitToRange(cornerRadiusY, 0, (radiusY - innerRadiusY) / 2);\r\n innerCornerRadius = $math.fitToRange(innerCornerRadius, 0, (radius - innerRadius) / 2);\r\n innerCornerRadiusY = $math.fitToRange(innerCornerRadiusY, 0, (radiusY - innerRadiusY) / 2);\r\n cornerRadius = $math.round($math.fitToRange(cornerRadius, 0, radius * crSin), 4);\r\n cornerRadiusY = $math.round($math.fitToRange(cornerRadiusY, 0, radiusY * crSin), 4);\r\n innerCornerRadius = $math.round($math.fitToRange(innerCornerRadius, 0, innerRadius * crSin), 4);\r\n innerCornerRadiusY = $math.round($math.fitToRange(innerCornerRadiusY, 0, innerRadiusY * crSin), 4);\r\n var crAngle = Math.asin(cornerRadius / radius / 2) * $math.DEGREES * 2;\r\n var crAngleY = Math.asin(cornerRadiusY / radiusY / 2) * $math.DEGREES * 2;\r\n if (innerRadius < innerCornerRadius) {\r\n innerRadius = innerCornerRadius;\r\n }\r\n if (innerRadiusY < innerCornerRadiusY) {\r\n innerRadiusY = innerCornerRadiusY;\r\n }\r\n var crInnerAngle = Math.asin(innerCornerRadius / innerRadius / 2) * $math.DEGREES * 2;\r\n var crInnerAngleY = Math.asin(innerCornerRadiusY / innerRadiusY / 2) * $math.DEGREES * 2;\r\n if (!$type.isNumber(crInnerAngle)) {\r\n crInnerAngle = 0;\r\n }\r\n if (!$type.isNumber(crInnerAngleY)) {\r\n crInnerAngleY = 0;\r\n }\r\n var middleAngle = startAngle + arc / 2;\r\n var mPoint = { x: $math.round($math.cos(middleAngle) * innerRadius, 4), y: $math.sin(middleAngle) * innerRadiusY };\r\n var a0 = { x: $math.cos(startAngle) * (innerRadius + innerCornerRadius), y: $math.sin(startAngle) * (innerRadiusY + innerCornerRadiusY) };\r\n var b0 = { x: $math.cos(startAngle) * (radius - cornerRadius), y: $math.sin(startAngle) * (radiusY - cornerRadiusY) };\r\n var c0 = { x: $math.cos(endAngle) * (radius - cornerRadius), y: $math.sin(endAngle) * (radiusY - cornerRadiusY) };\r\n var d0 = { x: $math.cos(endAngle) * (innerRadius + innerCornerRadius), y: $math.sin(endAngle) * (innerRadiusY + innerCornerRadiusY) };\r\n var b1 = { x: $math.cos(startAngle + crAngle) * radius, y: $math.sin(startAngle + crAngleY) * radiusY };\r\n var d1 = { x: $math.cos(endAngle - crInnerAngle) * innerRadius, y: $math.sin(endAngle - crInnerAngleY) * innerRadiusY };\r\n // some magic math\r\n innerCornerRadius += innerCornerRadius * $math.sin(crInnerAngle / 2);\r\n innerCornerRadiusY += innerCornerRadiusY * $math.sin(crInnerAngleY / 2);\r\n if (crInnerAngle > (endAngle - startAngle) / 2) {\r\n d1 = mPoint;\r\n }\r\n var path = \"\";\r\n // start from b if this is full circle\r\n if (arc == 360) {\r\n path = moveTo(b0);\r\n }\r\n // otherwise start from a\r\n else {\r\n path = moveTo(a0);\r\n path += lineTo(b0);\r\n path += arcToPoint(b1, cornerRadius, cornerRadiusY, true);\r\n }\r\n // draw arc\r\n path += arcTo(startAngle + crAngle, arc - 2 * crAngle, radius, radiusY);\r\n // draw inner arc\r\n if ($type.isNumber(innerRadius) && innerRadius != 0) {\r\n // move to B if this is full circle\r\n if (arc == 360 && cornerRadius == 0) {\r\n path += moveTo(d0);\r\n }\r\n // draw line otherwise\r\n else {\r\n path += arcToPoint(c0, cornerRadius, cornerRadiusY, true);\r\n path += lineTo(d0);\r\n path += arcToPoint(d1, innerCornerRadius, innerCornerRadiusY, true);\r\n }\r\n path += arcTo(endAngle - crInnerAngle, -(arc - 2 * crInnerAngle), innerRadius, innerRadiusY);\r\n if (arc < 360 || cornerRadius > 0) {\r\n path += arcToPoint(a0, innerCornerRadius, innerCornerRadiusY, true);\r\n }\r\n path += lineTo(a0);\r\n }\r\n else {\r\n path += arcToPoint(c0, cornerRadius, cornerRadiusY, true);\r\n if (arc < 360) {\r\n path += lineTo(a0);\r\n }\r\n }\r\n return path;\r\n}\r\n/**\r\n * Creates a path for an arc to specific coordinate.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param point Reference point\r\n * @param radius Radius\r\n * @param radiusY Vertical radius (for skewed arcs)\r\n * @param sweepFlag [description]\r\n * @param largeArcFlag [description]\r\n * @param xAxisRotation [description]\r\n * @return Arc path\r\n */\r\nexport function arcToPoint(point, radius, radiusY, sweepFlag, largeArcFlag, xAxisRotation) {\r\n if (radius == 0) {\r\n return \"\";\r\n }\r\n xAxisRotation = xAxisRotation || 0;\r\n largeArcFlag = Boolean(largeArcFlag);\r\n sweepFlag = Boolean(sweepFlag);\r\n var c = \",\";\r\n var sweepFlagValue = +sweepFlag; // converts to 1 or 0\r\n var largeArcFlagValue = +largeArcFlag; // converts to 1 or 0\r\n return \" A\" + radius + c + radiusY + c + xAxisRotation + c + largeArcFlagValue + c + sweepFlagValue + c + $math.round(point.x, 4) + c + $math.round(point.y, 4);\r\n}\r\n/**\r\n * Creates a new rectangle.\r\n *\r\n * @ignore Exclude from docs\r\n * @param width Width (px)\r\n * @param height Height (px)\r\n * @param x X position\r\n * @param y Y position\r\n * @return Rectangle\r\n */\r\nexport function rectangle(width, height, x, y) {\r\n if (!$type.isNumber(x)) {\r\n x = 0;\r\n }\r\n if (!$type.isNumber(y)) {\r\n y = 0;\r\n }\r\n return moveTo({ x: x, y: y }) + lineTo({ x: x + width, y: y }) + lineTo({ x: x + width, y: y + height }) + lineTo({ x: x, y: y + height }) + closePath();\r\n}\r\n/**\r\n * Converts a rectangle to an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @param rect Rectangle\r\n * @param ccw Counter-clockwise?\r\n * @return SVG path\r\n */\r\nexport function rectToPath(rect, ccw) {\r\n var c = \",\";\r\n var L = \" L\";\r\n if (ccw) {\r\n return \"M\" + rect.x\r\n + c + rect.y + L + rect.x\r\n + c + (rect.y + rect.height) + L + (rect.x + rect.width)\r\n + c + (rect.y + rect.height) + L + (rect.x + rect.width)\r\n + c + rect.y + L + rect.x\r\n + c + rect.y;\r\n }\r\n else {\r\n return \"M\" + rect.x\r\n + c + rect.y + L + (rect.x + rect.width)\r\n + c + rect.y + L + (rect.x + rect.width)\r\n + c + (rect.y + rect.height) + L + rect.x\r\n + c + (rect.y + rect.height) + L + rect.x\r\n + c + rect.y;\r\n }\r\n}\r\n/**\r\n * Converts SVG path to array of points.\r\n *\r\n * Note, this is experimental feature based on method which is deprecated\r\n * on some browsers and some browsers do not support it at all.\r\n *\r\n * You can save the output of this function, but not rely on it completely.\r\n */\r\nexport function pathToPoints(path, pointCount) {\r\n var paper = getGhostPaper();\r\n var svgPath = paper.add(\"path\").node;\r\n svgPath.setAttribute(\"d\", path);\r\n if (svgPath.getPointAtLength && svgPath.getTotalLength) {\r\n var length_1 = svgPath.getTotalLength();\r\n var toPoints = [];\r\n for (var i = 0; i < pointCount; i++) {\r\n var point = svgPath.getPointAtLength(i / pointCount * length_1);\r\n toPoints.push({ x: point.x, y: point.y });\r\n }\r\n return toPoints;\r\n }\r\n svgPath.remove();\r\n}\r\nexport function spiralPoints(cx, cy, radius, radiusY, innerRadius, step, radiusStep) {\r\n var r = innerRadius + 0.01;\r\n var angle = 0;\r\n var points = [];\r\n while (r < radius) {\r\n var stepSize = step;\r\n if (stepSize / 2 > r) {\r\n stepSize = 2 * r;\r\n }\r\n angle += 2 * Math.asin(stepSize / 2 / r);\r\n var degrees = angle * $math.DEGREES;\r\n var point = { x: cx + r * Math.cos(angle), y: cy + r * radiusY / radius * Math.sin(angle) };\r\n points.push(point);\r\n r = innerRadius + degrees / 360 * radiusStep;\r\n }\r\n return points;\r\n}\r\nexport function pointsToPath(points) {\r\n var path = moveTo(points[0]);\r\n if (points && points.length > 0) {\r\n for (var i = 1; i < points.length; i++) {\r\n path += lineTo(points[i]);\r\n }\r\n }\r\n return path;\r\n}\r\n//# sourceMappingURL=Path.js.map","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { registry } from \"../Registry\";\r\nimport * as $path from \"./Path\";\r\nimport * as $array from \"../utils/Array\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport * as $math from \"../utils/Math\";\r\n/**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nvar Tension = /** @class */ (function () {\r\n /**\r\n * Constructor.\r\n *\r\n * @param tensionX [description]\r\n * @param tensionY [description]\r\n */\r\n function Tension(tensionX, tensionY) {\r\n this._tensionX = tensionX;\r\n this._tensionY = tensionY;\r\n }\r\n /**\r\n * [smooth description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param points [description]\r\n * @return [description]\r\n */\r\n Tension.prototype.smooth = function (points) {\r\n var tensionX = this._tensionX;\r\n var tensionY = this._tensionY;\r\n if (points.length < 3 || (tensionX >= 1 && tensionY >= 1)) {\r\n return $path.polyline(points);\r\n }\r\n var first = points[0];\r\n var last = points[points.length - 1];\r\n var closed = false;\r\n if ($math.round(first.x, 3) == $math.round(last.x) && $math.round(first.y) == $math.round(last.y)) {\r\n closed = true;\r\n }\r\n // Can't moveTo here, as it wont be possible to have fill then.\r\n var path = \"\";\r\n for (var i = 0, len = points.length - 1; i < len; i++) {\r\n var p0 = points[i - 1];\r\n var p1 = points[i];\r\n var p2 = points[i + 1];\r\n var p3 = points[i + 2];\r\n if (i === 0) {\r\n if (closed) {\r\n p0 = points[points.length - 2];\r\n }\r\n else {\r\n p0 = points[i];\r\n }\r\n }\r\n else if (i == points.length - 2) {\r\n if (closed) {\r\n p3 = points[1];\r\n }\r\n else {\r\n p3 = points[i + 1];\r\n }\r\n }\r\n var controlPointA = $math.getCubicControlPointA(p0, p1, p2, p3, tensionX, tensionY);\r\n var controlPointB = $math.getCubicControlPointB(p0, p1, p2, p3, tensionX, tensionY);\r\n path += $path.cubicCurveTo(p2, controlPointA, controlPointB);\r\n }\r\n return path;\r\n };\r\n return Tension;\r\n}());\r\nexport { Tension };\r\n/**\r\n * Returns a waved line SVG path between two points.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point1 Starting point\r\n * @param point2 Ending point\r\n * @param waveLength Wave length\r\n * @param waveHeight Wave height\r\n * @param adjustWaveLength Adjust wave length based on the actual line length\r\n * @return SVG path\r\n */\r\nexport function wavedLine(point1, point2, waveLength, waveHeight, tension, adjustWaveLength) {\r\n var x1 = point1.x;\r\n var y1 = point1.y;\r\n var x2 = point2.x;\r\n var y2 = point2.y;\r\n var distance = $math.getDistance(point1, point2);\r\n if (adjustWaveLength) {\r\n waveLength = distance / Math.round(distance / waveLength);\r\n }\r\n var d = registry.getCache($utils.stringify([\"wavedLine\", point1.x, point2.x, point1.y, point2.y, waveLength, waveHeight]));\r\n if (!d) {\r\n if (distance > 0) {\r\n var angle = Math.atan2(y2 - y1, x2 - x1);\r\n var cos = Math.cos(angle);\r\n var sin = Math.sin(angle);\r\n var waveLengthX = waveLength * cos;\r\n var waveLengthY = waveLength * sin;\r\n if (waveLength <= 1 || waveHeight <= 1) {\r\n d = $path.lineTo(point2);\r\n }\r\n else {\r\n var halfWaveCount = Math.round(2 * distance / waveLength);\r\n var points = [];\r\n var sign = 1;\r\n if (x2 < x1) {\r\n sign *= -1;\r\n }\r\n if (y2 < y1) {\r\n sign *= -1;\r\n }\r\n for (var i = 0; i <= halfWaveCount; i++) {\r\n sign *= -1;\r\n var x = x1 + i * waveLengthX / 2 + sign * waveHeight / 2 * sin;\r\n var y = y1 + i * waveLengthY / 2 - sign * waveHeight / 2 * cos;\r\n points.push({ x: x, y: y });\r\n }\r\n d = new Tension(tension, tension).smooth(points);\r\n }\r\n }\r\n else {\r\n d = \"\";\r\n }\r\n registry.setCache($utils.stringify([\"wavedLine\", point1.x, point2.x, point1.y, point2.y, waveLength, waveHeight]), d);\r\n }\r\n return d;\r\n}\r\n/**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nvar Basis = /** @class */ (function () {\r\n /**\r\n * Constructor.\r\n *\r\n * @param info [description]\r\n */\r\n function Basis(info) {\r\n this._closed = info.closed;\r\n }\r\n /**\r\n * [smooth description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param points [description]\r\n * @return [description]\r\n */\r\n Basis.prototype.smooth = function (points) {\r\n var _this = this;\r\n var x0 = NaN;\r\n var x1 = NaN;\r\n var x2 = NaN;\r\n var x3 = NaN;\r\n var x4 = NaN;\r\n var y0 = NaN;\r\n var y1 = NaN;\r\n var y2 = NaN;\r\n var y3 = NaN;\r\n var y4 = NaN;\r\n var point = 0;\r\n var output = \"\";\r\n var pushCurve = function (x, y) {\r\n output += $path.cubicCurveTo({\r\n x: (x0 + 4 * x1 + x) / 6,\r\n y: (y0 + 4 * y1 + y) / 6\r\n }, {\r\n x: (2 * x0 + x1) / 3,\r\n y: (2 * y0 + y1) / 3\r\n }, {\r\n x: (x0 + 2 * x1) / 3,\r\n y: (y0 + 2 * y1) / 3\r\n });\r\n };\r\n var pushPoint = function (_a) {\r\n var x = _a.x, y = _a.y;\r\n switch (point) {\r\n case 0:\r\n point = 1;\r\n if (_this._closed) {\r\n x2 = x;\r\n y2 = y;\r\n }\r\n else {\r\n output += $path.lineTo({ x: x, y: y });\r\n }\r\n break;\r\n case 1:\r\n point = 2;\r\n if (_this._closed) {\r\n x3 = x;\r\n y3 = y;\r\n }\r\n break;\r\n case 2:\r\n point = 3;\r\n if (_this._closed) {\r\n x4 = x;\r\n y4 = y;\r\n output += $path.moveTo({ x: (x0 + 4 * x1 + x) / 6, y: (y0 + 4 * y1 + y) / 6 });\r\n break;\r\n }\r\n else {\r\n output += $path.lineTo({ x: (5 * x0 + x1) / 6, y: (5 * y0 + y1) / 6 });\r\n // fall-through\r\n }\r\n default:\r\n pushCurve(x, y);\r\n break;\r\n }\r\n x0 = x1;\r\n x1 = x;\r\n y0 = y1;\r\n y1 = y;\r\n };\r\n $array.each(points, pushPoint);\r\n if (this._closed) {\r\n switch (point) {\r\n case 1:\r\n output += $path.moveTo({ x: x2, y: y2 });\r\n output += $path.closePath();\r\n break;\r\n case 2:\r\n output += $path.moveTo({ x: (x2 + 2 * x3) / 3, y: (y2 + 2 * y3) / 3 });\r\n output += $path.lineTo({ x: (x3 + 2 * x2) / 3, y: (y3 + 2 * y2) / 3 });\r\n output += $path.closePath();\r\n break;\r\n case 3:\r\n pushPoint({ x: x2, y: y2 });\r\n pushPoint({ x: x3, y: y3 });\r\n pushPoint({ x: x4, y: y4 });\r\n break;\r\n }\r\n }\r\n else {\r\n switch (point) {\r\n case 3:\r\n pushCurve(x1, y1);\r\n // fall-through\r\n case 2:\r\n output += $path.lineTo({ x: x1, y: y1 });\r\n break;\r\n }\r\n output += $path.closePath();\r\n }\r\n return output;\r\n };\r\n return Basis;\r\n}());\r\nexport { Basis };\r\n//# sourceMappingURL=Smoothing.js.map","/**\r\n * Module for \"Blur\" filter.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Filter } from \"./Filter\";\r\nimport { registry } from \"../../Registry\";\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a \"Blur\" filter.\r\n */\r\nvar BlurFilter = /** @class */ (function (_super) {\r\n tslib_1.__extends(BlurFilter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function BlurFilter() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"BlurFilter\";\r\n // Create elements\r\n // NOTE: we do not need to add each individual element to `_disposers`\r\n // because `filterPrimitives` has an event handler which automatically adds\r\n // anything added to it to `_disposers`\r\n _this.feGaussianBlur = _this.paper.add(\"feGaussianBlur\");\r\n _this.feGaussianBlur.attr({ \"result\": \"blurOut\", \"in\": \"SourceGraphic\" });\r\n _this.filterPrimitives.push(_this.feGaussianBlur);\r\n // Set default properties\r\n _this.width = 200;\r\n _this.height = 200;\r\n _this.blur = 1.5;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(BlurFilter.prototype, \"blur\", {\r\n /**\r\n * @return Blur\r\n */\r\n get: function () {\r\n return this.properties.blur;\r\n },\r\n /**\r\n * Blur value.\r\n *\r\n * The bigger the value, the blurrier the target element will become.\r\n *\r\n * @default 1.5\r\n * @param value Blur\r\n */\r\n set: function (value) {\r\n this.properties.blur = value;\r\n this.feGaussianBlur.attr({ \"stdDeviation\": value / this.scale });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return BlurFilter;\r\n}(Filter));\r\nexport { BlurFilter };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"BlurFilter\"] = BlurFilter;\r\n//# sourceMappingURL=BlurFilter.js.map","/**\r\n * Pattern module.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../../Base\";\r\nimport { getGhostPaper } from \"../Paper\";\r\nimport { List, ListDisposer } from \"../../utils/List\";\r\nimport { Animation, AnimationDisposer } from \"../../utils/Animation\";\r\nimport { registry } from \"../../Registry\";\r\nimport { InterfaceColorSet } from \"../../utils/InterfaceColorSet\";\r\nimport * as $iter from \"../../utils/Iterator\";\r\nimport * as $object from \"../../utils/Object\";\r\nimport * as $type from \"../../utils/Type\";\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Base class to define patterns.\r\n */\r\nvar Pattern = /** @class */ (function (_super) {\r\n tslib_1.__extends(Pattern, _super);\r\n //public propertyValues = new Dictionary();\r\n /**\r\n * Constructor\r\n */\r\n function Pattern() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * List of elements the pattern consists of.\r\n */\r\n _this._elements = new List();\r\n /**\r\n * A storage for Filter property/value pairs.\r\n *\r\n * @ignore Exclude from docs\r\n * @see {@link PatternProperties}\r\n */\r\n _this.properties = {};\r\n _this.className = \"Pattern\";\r\n // Set defaults\r\n _this.width = 10;\r\n _this.height = 10;\r\n _this.x = 0;\r\n _this.y = 0;\r\n _this.patternUnits = \"userSpaceOnUse\";\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.backgroundFill = interfaceColors.getFor(\"background\");\r\n _this.backgroundOpacity = 0;\r\n _this.fillOpacity = 1;\r\n _this.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n _this.stroke = interfaceColors.getFor(\"alternativeBackground\");\r\n _this.strokeOpacity = 1;\r\n _this.strokeWidth = 1;\r\n _this.shapeRendering = \"crispEdges\";\r\n _this.rotation = 0;\r\n // Create main group to store pattern elements inelements\r\n _this.element = _this.paper.addGroup(\"pattern\");\r\n _this.id = \"pattern-\" + registry.getUniqueId();\r\n _this.element.attr({ \"id\": _this.id });\r\n _this._disposers.push(_this.element);\r\n // Make elements disposable\r\n _this._disposers.push(new ListDisposer(_this._elements));\r\n // Request again to trigger getter/setter code\r\n _this.patternUnits = _this.patternUnits;\r\n _this.width = _this.width;\r\n _this.height = _this.height;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the pattern.\r\n */\r\n Pattern.prototype.draw = function () {\r\n var _this = this;\r\n var patternElement = this.element;\r\n if (patternElement) {\r\n patternElement.removeChildNodes();\r\n var background = this.paper.add(\"rect\");\r\n background.attr({ \"width\": this.width, \"height\": this.height, \"shape-rendering\": \"crispEdges\", \"fill\": this.backgroundFill.hex, \"fill-opacity\": this.backgroundOpacity, \"stroke\": this.backgroundFill.hex, \"stroke-opacity\": this.backgroundOpacity });\r\n patternElement.add(background);\r\n patternElement.attr({ \"x\": this.x, \"y\": this.y, \"width\": this.width, \"height\": this.height, \"stroke\": this.stroke.hex, \"fill\": this.fill.hex, \"fill-opacity\": this.fillOpacity, \"stroke-opacity\": this.strokeOpacity, \"stroke-width\": this.strokeWidth, \"shape-rendering\": this.shapeRendering, \"patternUnits\": this.patternUnits });\r\n $iter.each(this._elements.iterator(), function (element) {\r\n element.rotation = _this.rotation;\r\n _this.element.add(element);\r\n });\r\n }\r\n };\r\n /**\r\n * Animate pattern properties.\r\n *\r\n * @see {@link Animation}\r\n * @param animationOptions Animation options\r\n * @param duration Duration (ms)\r\n * @param easing Easing function\r\n * @return Animation instance\r\n */\r\n Pattern.prototype.animate = function (animationOptions, duration, easing) {\r\n return new Animation(this, animationOptions, duration, easing).start();\r\n };\r\n /**\r\n * Adds an element to the pattern.\r\n *\r\n * @param element Element\r\n */\r\n Pattern.prototype.addElement = function (element) {\r\n this._elements.push(element);\r\n this._disposers.push(element);\r\n };\r\n /**\r\n * Remove an element from the pattern.\r\n *\r\n * @param element Element\r\n */\r\n Pattern.prototype.removeElement = function (element) {\r\n this._elements.removeValue(element);\r\n this.removeDispose(element);\r\n };\r\n Object.defineProperty(Pattern.prototype, \"elements\", {\r\n /**\r\n * Returns the list of SVG elements comprising the pattern.\r\n *\r\n * @return Pattern elements\r\n */\r\n get: function () {\r\n return this._elements;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"fillOpacity\", {\r\n /**\r\n * @return Opacity (0-1)\r\n */\r\n get: function () {\r\n return this.properties[\"fillOpacity\"];\r\n },\r\n /**\r\n * Pattern fill opacity. (0-1)\r\n *\r\n * @param value Opacity (0-1)\r\n */\r\n set: function (value) {\r\n this.properties[\"fillOpacity\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"fill\", {\r\n /**\r\n * @return Fill color\r\n */\r\n get: function () {\r\n return this.properties[\"fill\"];\r\n },\r\n /**\r\n * Fill color of the pattern.\r\n *\r\n * @param value Fill color\r\n */\r\n set: function (value) {\r\n this.properties[\"fill\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"backgroundFill\", {\r\n /**\r\n * @return Background color\r\n */\r\n get: function () {\r\n return this.properties[\"backgroundFill\"];\r\n },\r\n /**\r\n * Pattern background fill color.\r\n *\r\n * @param value Background color\r\n */\r\n set: function (value) {\r\n this.properties[\"backgroundFill\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"backgroundOpacity\", {\r\n /**\r\n * @return Background opacity (0-1)\r\n */\r\n get: function () {\r\n return this.properties[\"backgroundOpacity\"];\r\n },\r\n /**\r\n * Pattern backgorund opacity. (0-1)\r\n *\r\n * @param value Background opacity (0-1)\r\n */\r\n set: function (value) {\r\n this.properties[\"backgroundOpacity\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"stroke\", {\r\n /**\r\n * @return Color\r\n */\r\n get: function () {\r\n return this.properties[\"stroke\"];\r\n },\r\n /**\r\n * Pattern stroke (border) color.\r\n *\r\n * @param value Color\r\n */\r\n set: function (value) {\r\n this.properties[\"stroke\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"strokeOpacity\", {\r\n /**\r\n * @return Opacity (0-1)\r\n */\r\n get: function () {\r\n return this.properties[\"strokeOpacity\"];\r\n },\r\n /**\r\n * Pattern stroke opacity. (0-1)\r\n *\r\n * @param value Opacity (0-1)\r\n */\r\n set: function (value) {\r\n this.properties[\"strokeOpacity\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"strokeWidth\", {\r\n /**\r\n * @return Stroke thickness (px)\r\n */\r\n get: function () {\r\n return this.properties[\"strokeWidth\"];\r\n },\r\n /**\r\n * Pattern stroke thickness in pixels.\r\n *\r\n * @param value Stroke thickness (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"strokeWidth\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"shapeRendering\", {\r\n get: function () {\r\n return this.properties[\"shapeRendering\"];\r\n },\r\n /**\r\n * Shape rendering\r\n * @param value [description]\r\n */\r\n set: function (value) {\r\n this.properties[\"shapeRendering\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"rotation\", {\r\n /**\r\n * @return Rotation\r\n */\r\n get: function () {\r\n return this.properties[\"rotation\"];\r\n },\r\n /**\r\n * Pattern rotation in degrees.\r\n *\r\n * @param value Rotation\r\n */\r\n set: function (value) {\r\n this.properties[\"rotation\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"patternUnits\", {\r\n /**\r\n * @return Units\r\n */\r\n get: function () {\r\n return this.properties[\"patternUnits\"];\r\n },\r\n /**\r\n * Pattern measuring units.\r\n *\r\n * Available options: \"userSpaceOnUse\" | \"objectBoundingBox\".\r\n *\r\n * @param value Units\r\n */\r\n set: function (value) {\r\n this.properties[\"patternUnits\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"width\", {\r\n /**\r\n * @return Width (px)\r\n */\r\n get: function () {\r\n return this.properties[\"width\"];\r\n },\r\n /**\r\n * Pattern width in pixels.\r\n *\r\n * @param value Width (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"width\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"height\", {\r\n /**\r\n * @return Height (px)\r\n */\r\n get: function () {\r\n return this.properties[\"height\"];\r\n },\r\n /**\r\n * Pattern height in pixels.\r\n *\r\n * @param value Height (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"height\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"x\", {\r\n /**\r\n * @return X (px)\r\n */\r\n get: function () {\r\n return this.properties[\"x\"];\r\n },\r\n /**\r\n * X position. (pixels)\r\n *\r\n * @param value X (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"x\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"y\", {\r\n /**\r\n * @return Y (px)\r\n */\r\n get: function () {\r\n return this.properties[\"y\"];\r\n },\r\n /**\r\n * Y position (px).\r\n *\r\n * @param value Y (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"y\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"paper\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Paper\r\n */\r\n get: function () {\r\n if (this._paper) {\r\n return this._paper;\r\n }\r\n return getGhostPaper();\r\n },\r\n /**\r\n * [[Paper]] instance to draw pattern in.\r\n *\r\n * @ignore Exclude from docs\r\n * @param paper Paper\r\n */\r\n set: function (paper) {\r\n if (this._paper != paper) {\r\n this._paper = paper;\r\n this.draw();\r\n paper.appendDef(this.element);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies properties from another Pattern instance.\r\n *\r\n * @param source Source pattern\r\n */\r\n Pattern.prototype.copyFrom = function (source) {\r\n var _this = this;\r\n _super.prototype.copyFrom.call(this, source);\r\n $object.each(source.properties, function (key, value) {\r\n _this[key] = value;\r\n });\r\n };\r\n Object.defineProperty(Pattern.prototype, \"animations\", {\r\n /**\r\n * A list of animations currently running on the patter.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Animation list\r\n */\r\n get: function () {\r\n if (!this._animations) {\r\n this._animations = [];\r\n this._disposers.push(new AnimationDisposer(this._animations));\r\n }\r\n return this._animations;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n Pattern.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Set up series\r\n if ($type.hasValue(config.elements) && $type.isArray(config.elements)) {\r\n for (var i = 0, len = config.elements.length; i < len; i++) {\r\n var element = config.elements[i];\r\n if ($type.hasValue(element[\"type\"])) {\r\n var sprite = this.createEntryInstance(element);\r\n if (sprite instanceof BaseObject) {\r\n sprite.config = element;\r\n }\r\n this.addElement($type.hasValue(element[\"typeProperty\"])\r\n ? sprite[element[\"typeProperty\"]]\r\n : sprite.element);\r\n }\r\n }\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n return Pattern;\r\n}(BaseObject));\r\nexport { Pattern };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Pattern\"] = Pattern;\r\n//# sourceMappingURL=Pattern.js.map","import * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ColorModifier } from \"./ColorModifier\";\r\nimport { registry } from \"../../Registry\";\r\nimport * as $math from \"../../utils/Math\";\r\nimport * as $type from \"../../utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * This class can be used to modify linear gradient steps, changing visual\r\n * properties like lightness, brightness, opacity of each set.\r\n *\r\n * It can also set offsets for each gradient step.\r\n *\r\n * E.g. if I want to fill a columns in a column series to be a solid fill from\r\n * top to 80% of height, then gradually fades out, I can use the following\r\n * gradient modifier as a `fillModifier`:\r\n *\r\n * ```TypeScript\r\n * let fillModifier = new am4core.GradientModifier();\r\n * fillModifier.opacities = [1, 1, 0];\r\n * fillModifier.offsets = [0, 0.8, 1];\r\n * columnSeries.columns.template.fillModifier = fillModifier;\r\n * ```\r\n * ```JavaScript\r\n * var fillModifier = new am4core.GradientModifier();\r\n * fillModifier.opacities = [1, 1, 0];\r\n * fillModifier.offsets = [0, 0.8, 1];\r\n * columnSeries.columns.template.fillModifier = fillModifier;\r\n * ```\r\n * ```JSON\r\n * \"series\": [{\r\n * \"type\": \"ColumnSeries\",\r\n * \"columns\": {\r\n * \"fillModifier\": {\r\n * \"type\": \"GradientModifier\",\r\n * \"opacities\": [1, 1, 0],\r\n * \"offsets\": [0, 0.8, 1]\r\n * }\r\n * }\r\n * }]\r\n * ```\r\n */\r\nvar GradientModifier = /** @class */ (function (_super) {\r\n tslib_1.__extends(GradientModifier, _super);\r\n /**\r\n * Constructor.\r\n */\r\n function GradientModifier() {\r\n var _this = _super.call(this) || this;\r\n _this.lightnesses = [];\r\n _this.brightnesses = [];\r\n _this.opacities = [];\r\n _this.offsets = [];\r\n _this.className = \"GradientModifier\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(GradientModifier.prototype, \"lightnesses\", {\r\n /**\r\n * @return Lightness values\r\n */\r\n get: function () {\r\n return this._lightnesses;\r\n },\r\n /**\r\n * An array of lightness values for each step.\r\n *\r\n * @param value Lightness values\r\n */\r\n set: function (value) {\r\n this._lightnesses = value;\r\n this._brightnesses = [];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(GradientModifier.prototype, \"brightnesses\", {\r\n /**\r\n * @return Brightness values\r\n */\r\n get: function () {\r\n return this._brightnesses;\r\n },\r\n /**\r\n * An array of brightness values for each step.\r\n *\r\n * @param value Brightness values\r\n */\r\n set: function (value) {\r\n this._brightnesses = value;\r\n this._lightnesses = [];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(GradientModifier.prototype, \"opacities\", {\r\n /**\r\n * @return Opacity values\r\n */\r\n get: function () {\r\n return this._opacities;\r\n },\r\n /**\r\n * An array of opacity values for each step.\r\n *\r\n * @param value Opacity values\r\n */\r\n set: function (value) {\r\n this._opacities = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(GradientModifier.prototype, \"offsets\", {\r\n /**\r\n * @return Offsets\r\n */\r\n get: function () {\r\n return this._offsets;\r\n },\r\n /**\r\n * An array of relative position (0-1) for each step.\r\n *\r\n * If not set, all steps will be of equal relative length.\r\n *\r\n * @param value Offsets\r\n */\r\n set: function (value) {\r\n this._offsets = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Modifies the color based on step setting.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Source color\r\n * @return A gradient that matches set modification rules\r\n */\r\n GradientModifier.prototype.modify = function (value) {\r\n // Clear current gradient\r\n this.gradient.clear();\r\n // Get step count\r\n var count = 0;\r\n if (this.opacities) {\r\n count = $math.max(count, this.opacities.length);\r\n }\r\n if (this.lightnesses) {\r\n count = $math.max(count, this.lightnesses.length);\r\n }\r\n if (this.brightnesses) {\r\n count = $math.max(count, this.brightnesses.length);\r\n }\r\n // Init step values\r\n var opacity = 1, lightness, brightness;\r\n // Apply steps\r\n for (var i = 0; i < count; i++) {\r\n // Take base color\r\n var color = value;\r\n // Check if there are any parameters for this step\r\n if (this.opacities && $type.isNumber(this.opacities[i])) {\r\n opacity = this.opacities[i];\r\n }\r\n if (this.lightnesses && $type.isNumber(this.lightnesses[i])) {\r\n lightness = this.lightnesses[i];\r\n brightness = undefined;\r\n }\r\n if (this.brightnesses && $type.isNumber(this.brightnesses[i])) {\r\n brightness = this.brightnesses[i];\r\n lightness = undefined;\r\n }\r\n // Check if we need to brighten/lighten color\r\n if ($type.isNumber(brightness)) {\r\n color = value.brighten(this.brightnesses[i]);\r\n }\r\n else if ($type.isNumber(lightness)) {\r\n color = value.lighten(this.lightnesses[i]);\r\n }\r\n // Get offset (it's OK if it's undefined)\r\n var offset = this.offsets[i];\r\n // Apply step\r\n this.gradient.addColor(color, opacity, offset);\r\n }\r\n return this.gradient;\r\n };\r\n GradientModifier.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this._offsets = source.offsets;\r\n this._brightnesses = source.brightnesses;\r\n this._lightnesses = source.lightnesses;\r\n this._opacities = source.opacities;\r\n };\r\n return GradientModifier;\r\n}(ColorModifier));\r\nexport { GradientModifier };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"GradientModifier\"] = GradientModifier;\r\n//# sourceMappingURL=GradientModifier.js.map","/**\r\n * Module for \"Drop Shadow\" filter.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Filter } from \"./Filter\";\r\nimport { color } from \"../../utils/Color\";\r\nimport { registry } from \"../../Registry\";\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creats a \"Drop Shadow\" filter.\r\n */\r\nvar DropShadowFilter = /** @class */ (function (_super) {\r\n tslib_1.__extends(DropShadowFilter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function DropShadowFilter() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"DropShadowFilter\";\r\n // Create elements\r\n // NOTE: we do not need to add each individual element to `_disposers`\r\n // because `filterPrimitives` has an event handler which automatically adds\r\n // anything added to it to `_disposers`\r\n _this.color = color(\"#000\");\r\n _this.feGaussianBlur = _this.paper.add(\"feGaussianBlur\");\r\n _this.feGaussianBlur.attr({ \"result\": \"blurOut\", \"in\": \"SourceGraphic\" });\r\n _this.filterPrimitives.push(_this.feGaussianBlur);\r\n _this.feOffset = _this.paper.add(\"feOffset\");\r\n _this.feOffset.attr({ \"result\": \"offsetBlur\" });\r\n _this.filterPrimitives.push(_this.feOffset);\r\n _this.feFlood = _this.paper.add(\"feFlood\");\r\n _this.feFlood.attr({ \"flood-color\": _this.color });\r\n _this.filterPrimitives.push(_this.feFlood);\r\n _this.feComposite = _this.paper.add(\"feComposite\");\r\n _this.feComposite.attr({ \"in2\": \"offsetBlur\", operator: \"in\" });\r\n _this.filterPrimitives.push(_this.feComposite);\r\n _this.feMerge = _this.paper.addGroup(\"feMerge\");\r\n _this.feMerge.add(_this.paper.add(\"feMergeNode\"));\r\n _this.feMerge.add(_this.paper.add(\"feMergeNode\").attr({ \"in\": \"SourceGraphic\" }));\r\n _this.filterPrimitives.push(_this.feMerge);\r\n // Set default properties\r\n _this.width = 200;\r\n _this.height = 200;\r\n _this.blur = 1.5;\r\n _this.dx = 3;\r\n _this.dy = 3;\r\n _this.opacity = 0.5;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(DropShadowFilter.prototype, \"color\", {\r\n /**\r\n * @return Color\r\n */\r\n get: function () {\r\n return this.properties.color;\r\n },\r\n /**\r\n * Shadow color.\r\n *\r\n * @param value Color\r\n */\r\n set: function (value) {\r\n this.properties.color = value;\r\n if (this.feFlood) {\r\n this.feFlood.attr({ \"flood-color\": value });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropShadowFilter.prototype, \"opacity\", {\r\n /**\r\n * @return Opacity (0-1)\r\n */\r\n get: function () {\r\n return this.properties.opacity;\r\n },\r\n /**\r\n * Opacity of the shadow. (0-1)\r\n *\r\n * @param value Opacity (0-1)\r\n */\r\n set: function (value) {\r\n this.properties.opacity = value;\r\n this.feFlood.attr({ \"flood-opacity\": value });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropShadowFilter.prototype, \"dx\", {\r\n /**\r\n * @return Horizontal offset (px)\r\n */\r\n get: function () {\r\n return this.properties.dx;\r\n },\r\n /**\r\n * Horizontal offset in pixels.\r\n *\r\n * @param value Horizontal offset (px)\r\n */\r\n set: function (value) {\r\n this.properties.dx = value;\r\n this.feOffset.attr({ \"dx\": value / this.scale });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropShadowFilter.prototype, \"dy\", {\r\n /**\r\n * @return Vertical offset (px)\r\n */\r\n get: function () {\r\n return this.properties.dy;\r\n },\r\n /**\r\n * Vertical offset in pixels.\r\n *\r\n * @param value Vertical offset (px)\r\n */\r\n set: function (value) {\r\n this.properties.dy = value;\r\n this.feOffset.attr({ \"dy\": value / this.scale });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropShadowFilter.prototype, \"blur\", {\r\n /**\r\n * @return Blur\r\n */\r\n get: function () {\r\n return this.properties.blur;\r\n },\r\n /**\r\n * Blur.\r\n *\r\n * @param value Blur\r\n */\r\n set: function (value) {\r\n this.properties.blur = value;\r\n this.feGaussianBlur.attr({ \"stdDeviation\": value / this.scale });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * [updateScale description]\r\n *\r\n * @todo Description\r\n */\r\n DropShadowFilter.prototype.updateScale = function () {\r\n this.dx = this.dx;\r\n this.dy = this.dy;\r\n this.blur = this.blur;\r\n };\r\n return DropShadowFilter;\r\n}(Filter));\r\nexport { DropShadowFilter };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"DropShadowFilter\"] = DropShadowFilter;\r\n//# sourceMappingURL=DropShadowFilter.js.map","import * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Pattern } from \"./Pattern\";\r\nimport { registry } from \"../../Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Line pattern.\r\n */\r\nvar LinePattern = /** @class */ (function (_super) {\r\n tslib_1.__extends(LinePattern, _super);\r\n /**\r\n * Constructor\r\n */\r\n function LinePattern() {\r\n var _this = _super.call(this) || this;\r\n _this._line = _this.paper.add(\"line\");\r\n _this.addElement(_this._line);\r\n return _this;\r\n }\r\n /**\r\n * Draws the pattern.\r\n */\r\n LinePattern.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n if (this._line) {\r\n this._line.attr({ \"x2\": this.width * 2 }); // to solve rotation\r\n }\r\n };\r\n return LinePattern;\r\n}(Pattern));\r\nexport { LinePattern };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"LinePattern\"] = LinePattern;\r\n//# sourceMappingURL=LinePattern.js.map","import * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { LinearGradient } from \"./LinearGradient\";\r\nimport { GradientModifier } from \"./GradientModifier\";\r\nimport { registry } from \"../../Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * This class can be used to modify linear gradient steps, changing visual\r\n * properties like lightness, brightness, opacity of each set.\r\n *\r\n * It can also set offsets for each gradient step.\r\n *\r\n * E.g. if I want to fill a columns in a column series to be a solid fill from\r\n * top to 80% of height, then gradually fades out, I can use the following\r\n * gradient modifier as a `fillModifier`:\r\n *\r\n * ```TypeScript\r\n * let fillModifier = new am4core.LinearGradientModifier();\r\n * fillModifier.opacities = [1, 1, 0];\r\n * fillModifier.offsets = [0, 0.8, 1];\r\n * columnSeries.columns.template.fillModifier = fillModifier;\r\n * ```\r\n * ```JavaScript\r\n * var fillModifier = new am4core.LinearGradientModifier();\r\n * fillModifier.opacities = [1, 1, 0];\r\n * fillModifier.offsets = [0, 0.8, 1];\r\n * columnSeries.columns.template.fillModifier = fillModifier;\r\n * ```\r\n * ```JSON\r\n * \"series\": [{\r\n * \"type\": \"ColumnSeries\",\r\n * \"columns\": {\r\n * \"fillModifier\": {\r\n * \"type\": \"LinearGradientModifier\",\r\n * \"opacities\": [1, 1, 0],\r\n * \"offsets\": [0, 0.8, 1]\r\n * }\r\n * }\r\n * }]\r\n * ```\r\n */\r\nvar LinearGradientModifier = /** @class */ (function (_super) {\r\n tslib_1.__extends(LinearGradientModifier, _super);\r\n /**\r\n * Constructor.\r\n */\r\n function LinearGradientModifier() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"LinearGradientModifier\";\r\n _this.gradient = new LinearGradient();\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n LinearGradientModifier.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.gradient = source.gradient.clone();\r\n };\r\n return LinearGradientModifier;\r\n}(GradientModifier));\r\nexport { LinearGradientModifier };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"LinearGradientModifier\"] = LinearGradientModifier;\r\n//# sourceMappingURL=LinearGradientModifier.js.map","/**\r\n * Module for \"Lighten\" filter.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Filter } from \"./Filter\";\r\nimport { registry } from \"../../Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a \"Lighten\" filter.\r\n */\r\nvar LightenFilter = /** @class */ (function (_super) {\r\n tslib_1.__extends(LightenFilter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function LightenFilter() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"LightenFilter\";\r\n // Create elements\r\n // NOTE: we do not need to add each individual element to `_disposers`\r\n // because `filterPrimitives` has an event handler which automatically adds\r\n // anything added to it to `_disposers`\r\n _this.feColorMatrix = _this.paper.add(\"feColorMatrix\");\r\n _this.feColorMatrix.attr({ \"type\": \"matrix\" });\r\n _this.filterPrimitives.push(_this.feColorMatrix);\r\n // Set default properties\r\n _this.lightness = 0;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(LightenFilter.prototype, \"lightness\", {\r\n /**\r\n * @return Lightness\r\n */\r\n get: function () {\r\n return this.properties[\"lightness\"];\r\n },\r\n /**\r\n * Lightness of the target colors.\r\n *\r\n * If `lightness` is a positive number, the filter will make all colors\r\n * lighter.\r\n *\r\n * If `lightness` is negative, colors will be darkened.\r\n *\r\n * @param value Lightness\r\n */\r\n set: function (value) {\r\n this.properties[\"lightness\"] = value;\r\n var v = value + 1;\r\n this.feColorMatrix.attr({ \"values\": v + \" 0 0 0 0 0 \" + v + \" 0 0 0 0 0 \" + v + \" 0 0 0 0 0 1 0\" });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return LightenFilter;\r\n}(Filter));\r\nexport { LightenFilter };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"LightenFilter\"] = LightenFilter;\r\n//# sourceMappingURL=LightenFilter.js.map","/**\r\n * [[AMElement]] represents any SVG element and related functionality.\r\n */\r\nimport * as $dom from \"../utils/DOM\";\r\nimport * as $object from \"../utils/Object\";\r\nimport * as $type from \"../utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A base class for all SVG elements. Provides low-level DOM functionality.\r\n *\r\n * All visual elements extend this class.\r\n */\r\nvar AMElement = /** @class */ (function () {\r\n /**\r\n * Constructor creates a new element or uses the one that was passed in.\r\n *\r\n * @param element Element reference node type\r\n */\r\n function AMElement(element) {\r\n /**\r\n * Indicates if the element was already disposed.\r\n */\r\n this._isDisposed = false;\r\n /**\r\n * Current X coordinate.\r\n */\r\n this._x = 0;\r\n /**\r\n * Current Y coordinate.\r\n */\r\n this._y = 0;\r\n /**\r\n * Current rotation.\r\n */\r\n this._rotation = 0;\r\n /**\r\n * Current scale.\r\n */\r\n this._scale = 1;\r\n if (typeof element === \"string\") {\r\n this.node = document.createElementNS($dom.SVGNS, element);\r\n }\r\n else {\r\n this.node = element;\r\n }\r\n }\r\n /**\r\n * Removes element's node from DOM.\r\n */\r\n AMElement.prototype.removeNode = function () {\r\n if (this.node) {\r\n if (this.node.parentNode) {\r\n this.node.parentNode.removeChild(this.node);\r\n }\r\n }\r\n };\r\n Object.defineProperty(AMElement.prototype, \"transformString\", {\r\n /**\r\n * Returns `transform` attribute of the element.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Transform attribute value\r\n */\r\n get: function () {\r\n if (this.node) {\r\n return this._transformString;\r\n /*\r\n const value = this.node.getAttribute(\"transform\");\r\n \r\n if (value !== null) {\r\n return value;\r\n }*/\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Appply position, rotation and scale properties via elemen's `transform`\r\n * property\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AMElement.prototype.transform = function () {\r\n var transfromString = \"translate(\" + this._x + \",\" + this._y + \")\";\r\n if (this._scale != 1) {\r\n transfromString += ((transfromString ? \" \" : \"\") + \"scale(\" + this._scale + \")\");\r\n }\r\n if (this._rotation != 0) {\r\n transfromString += ((transfromString ? \" \" : \"\") + \"rotate(\" + this._rotation + \")\");\r\n }\r\n this._transformString = transfromString;\r\n this.node.setAttribute(\"transform\", transfromString);\r\n };\r\n /**\r\n * Returns bounding box of the element.\r\n *\r\n * ATTENTION: Bounding box calculations are extremely costly so should be\r\n * used sparingly and cached whenever possible.\r\n *\r\n * @return Bounding rectangle\r\n */\r\n AMElement.prototype.getBBox = function () {\r\n var bbox = {\r\n width: 0,\r\n height: 0,\r\n x: 0,\r\n y: 0\r\n };\r\n // FF would fail if getBBox() is called without node added to parent\r\n if (this.node && this.node.parentNode) {\r\n try { // again for ff. TODO: check if this doesn't slow down\r\n var svgbbox = this.node.getBBox();\r\n bbox.x = svgbbox.x;\r\n bbox.y = svgbbox.y;\r\n bbox.width = svgbbox.width;\r\n bbox.height = svgbbox.height;\r\n }\r\n catch (err) { }\r\n }\r\n return bbox;\r\n };\r\n /**\r\n * Moves the element to new coordinates.\r\n *\r\n * @param x Target X\r\n * @param y Target Y\r\n */\r\n AMElement.prototype.moveTo = function (point) {\r\n if (point) {\r\n var x = point.x;\r\n var y = point.y;\r\n if (this._x != x || this._y != y) {\r\n this._x = x;\r\n this._y = y;\r\n this.transform();\r\n }\r\n }\r\n };\r\n Object.defineProperty(AMElement.prototype, \"content\", {\r\n /**\r\n * Returns element's contents as SVG markup.\r\n *\r\n * @return Contents\r\n */\r\n get: function () {\r\n // @todo Do not use `innerHTML` as this is not reliable and will not work on all browsers\r\n return this.node.innerHTML || \"\";\r\n },\r\n /**\r\n * Element's SVG contents.\r\n *\r\n * @param value Contents\r\n */\r\n set: function (value) {\r\n // @todo Do not use `innerHTML` as this is not reliable and will not work on all browsers\r\n this.node.innerHTML = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AMElement.prototype, \"textContent\", {\r\n /**\r\n * @return Text contents\r\n */\r\n get: function () {\r\n return this.node.textContent || \"\";\r\n },\r\n /**\r\n * Text contents of the SVG element.\r\n *\r\n * @param value Text contents\r\n */\r\n set: function (value) {\r\n this.node.textContent = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AMElement.prototype, \"x\", {\r\n /**\r\n * @return X coordinate (px)\r\n */\r\n get: function () {\r\n return this._x;\r\n },\r\n /**\r\n * Element's X position in pixels.\r\n *\r\n * @param value X coordinate (px)\r\n */\r\n set: function (value) {\r\n if (this._x != value) {\r\n this._x = value;\r\n this.transform();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AMElement.prototype, \"y\", {\r\n /**\r\n * @return Y coordinate (px)\r\n */\r\n get: function () {\r\n return this._y;\r\n },\r\n /**\r\n * Element's Y position in pixels.\r\n *\r\n * @param value Y coordinate (px)\r\n */\r\n set: function (value) {\r\n if (this._y != value) {\r\n this._y = value;\r\n this.transform();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AMElement.prototype, \"rotation\", {\r\n /**\r\n * @return Rotation\r\n */\r\n get: function () {\r\n return this._rotation;\r\n },\r\n /**\r\n * Element's rotation in degrees.\r\n *\r\n * @param value Rotation\r\n */\r\n set: function (angle) {\r\n if (this._rotation != angle) {\r\n this._rotation = angle;\r\n this.transform();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AMElement.prototype, \"scale\", {\r\n /**\r\n * @return Scale\r\n */\r\n get: function () {\r\n return this._scale;\r\n },\r\n /**\r\n * Element's scale where 1 is original size.\r\n *\r\n * Setting to 0.5 will reduce element's size by 50%, 2 will make element\r\n * twice as large, etc.\r\n *\r\n * @param value Scale\r\n */\r\n set: function (value) {\r\n if (this._scale != value) {\r\n this._scale = value;\r\n this.transform();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Removes an attribute from element.\r\n *\r\n * @param attribute Attribute to remove\r\n */\r\n AMElement.prototype.removeAttr = function (attribute) {\r\n this.node.removeAttribute(attribute);\r\n };\r\n /**\r\n * Sets a set of attributes on a element.\r\n *\r\n * @param attributes An object with attribute names (key) and values\r\n * @return The same element\r\n */\r\n AMElement.prototype.attr = function (attributes) {\r\n var _this = this;\r\n $object.each(attributes, function (attributeName, attributeValue) {\r\n if (!$type.hasValue(attributeValue)) {\r\n _this.node.removeAttribute(attributeName);\r\n }\r\n else {\r\n // this is for performance testing\r\n //if(attributeValue == this.node.getAttribute(attributeName)){\r\n //\tconsole.log(attributeName, attributeValue)\r\n //}\r\n _this.node.setAttribute(attributeName, attributeValue);\r\n }\r\n });\r\n return this;\r\n };\r\n /**\r\n * Returns a value of a node attribute.\r\n *\r\n * @param attribute Attribute name\r\n * @return Attribute value\r\n */\r\n AMElement.prototype.getAttr = function (attribute) {\r\n return this.node.getAttribute(attribute);\r\n };\r\n /**\r\n * Sets a single attribute of the element's node using namesspace.\r\n *\r\n * @param ns Namespace\r\n * @param attribute Attribute\r\n * @param value Value\r\n * @return The same element\r\n */\r\n AMElement.prototype.attrNS = function (ns, attribute, value) {\r\n this.node.setAttributeNS(ns, attribute, value);\r\n return this;\r\n };\r\n /**\r\n * Returns a namespaced attribute value from node.\r\n *\r\n * @param ns Namespace\r\n * @param attribute Attribute\r\n * @return Attribute value\r\n */\r\n AMElement.prototype.getAttrNS = function (ns, attribute) {\r\n return this.node.getAttributeNS(ns, attribute);\r\n };\r\n /**\r\n * Removes `style` attribute from node.\r\n *\r\n * @param attribute Attribute to remove\r\n */\r\n AMElement.prototype.removeStyle = function (attribute) {\r\n // @todo Review because it's a bit messy and maybe not needed (pratically not used)\r\n delete this.node.style[attribute];\r\n };\r\n /**\r\n * Returns style attribute value.\r\n *\r\n * @param attribute Style attribute value\r\n * @return Attribute value\r\n */\r\n AMElement.prototype.getStyle = function (attribute) {\r\n // @todo Review because it's a bit messy and maybe not needed (pratically not used)\r\n return this.node.style[attribute];\r\n };\r\n /**\r\n * Adds style attributes to element's node.\r\n *\r\n * @param attributes Object containing attribute: value pairs\r\n * @return The same element\r\n */\r\n AMElement.prototype.addStyle = function (attributes) {\r\n var _this = this;\r\n // @todo Review because it's a bit messy and maybe not needed (pratically not used)\r\n $object.each(attributes, function (attributeName, attributeValue) {\r\n if (!$type.hasValue(attributeValue)) {\r\n _this.removeStyle(attributeName);\r\n }\r\n else {\r\n _this.node.style[attributeName] = attributeValue;\r\n }\r\n });\r\n return this;\r\n };\r\n /**\r\n * Adds a class to element.\r\n *\r\n * @param name Class name\r\n */\r\n AMElement.prototype.addClass = function (name) {\r\n $dom.addClass(this.node, name);\r\n };\r\n /**\r\n * Removes a class from element.\r\n *\r\n * @param name Class name\r\n */\r\n AMElement.prototype.removeClass = function (name) {\r\n $dom.removeClass(this.node, name);\r\n };\r\n /**\r\n * Sets a class name on element.\r\n *\r\n * @param name Class name\r\n */\r\n AMElement.prototype.setClass = function (name) {\r\n this.node.setAttribute(\"class\", name);\r\n };\r\n /**\r\n * Removes all element's child nodes, basically leaving it empty.\r\n */\r\n AMElement.prototype.removeChildNodes = function () {\r\n // remove all children\r\n while (this.node.childNodes.length > 0) {\r\n this.node.removeChild(this.node.firstChild);\r\n }\r\n };\r\n /**\r\n * Was this element already been disposed?\r\n *\r\n * @return Disposed?\r\n */\r\n AMElement.prototype.isDisposed = function () {\r\n return this._isDisposed;\r\n };\r\n /**\r\n * Disposes element.\r\n */\r\n AMElement.prototype.dispose = function () {\r\n this.removeNode();\r\n };\r\n return AMElement;\r\n}());\r\nexport { AMElement };\r\n//# sourceMappingURL=AMElement.js.map","/**\r\n * Paper class just like the white sheet of pressed fiber it draws its name\r\n * inspiration from is used as a starting point to start a drawing.\r\n *\r\n * Before we can start adding elements (drawing) we need to take out a new sheet\r\n * of paper, or in this instance create a blank SVG element.\r\n *\r\n * This class creates such element, as well as implements methods needed to\r\n * start adding elements to it.\r\n */\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AMElement } from \"./AMElement\";\r\nimport { Group } from \"./Group\";\r\nimport { SVGContainer } from \"./SVGContainer\";\r\nimport * as $dom from \"../utils/DOM\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Paper class which when instantiated will create an SVG element as well as\r\n * some of the sub-elements like ``, ``.\r\n *\r\n * Use its methods like `addGroup` and `append` to add elements to the paper.\r\n */\r\nvar Paper = /** @class */ (function () {\r\n /**\r\n * Creates main `` container and related elements.\r\n *\r\n * @param container A reference to HTML element to create `` in\r\n */\r\n function Paper(container, id) {\r\n // Store container reference\r\n this.container = container;\r\n this.id = id;\r\n // Create SVG element\r\n var svg = document.createElementNS($dom.SVGNS, \"svg\");\r\n svg.setAttribute(\"version\", \"1.1\");\r\n svg.setAttributeNS($dom.XMLNS, \"xmlns\", $dom.SVGNS);\r\n svg.setAttributeNS($dom.XMLNS, \"xmlns:xlink\", $dom.XLINK);\r\n svg.setAttribute(\"role\", \"group\");\r\n this.container.appendChild(svg);\r\n // Add description\r\n var desc = document.createElementNS($dom.SVGNS, \"desc\");\r\n desc.appendChild(document.createTextNode(\"JavaScript chart by amCharts\"));\r\n svg.appendChild(desc);\r\n // Add defs\r\n this.defs = document.createElementNS($dom.SVGNS, \"defs\");\r\n svg.appendChild(this.defs);\r\n // Set width and height to fit container\r\n svg.style.width = \"100%\";\r\n svg.style.height = \"100%\";\r\n svg.style.overflow = \"visible\";\r\n // Store variable\r\n this.svg = svg;\r\n }\r\n /**\r\n * Creates and returns a new element. Does not attach it to Paper yet.\r\n *\r\n * @param elementName Element name\r\n * @return New element\r\n */\r\n Paper.prototype.add = function (elementName) {\r\n return new AMElement(elementName);\r\n };\r\n /**\r\n * Creates and returns a new Group element. Does not attach it to Paper.\r\n *\r\n * @param groupName Element name\r\n * @return New Group\r\n */\r\n Paper.prototype.addGroup = function (groupName) {\r\n return new Group(groupName);\r\n };\r\n /**\r\n * Appends an element to Paper.\r\n *\r\n * @param element Element to append\r\n */\r\n Paper.prototype.append = function (element) {\r\n if (element) {\r\n this.svg.appendChild(element.node);\r\n }\r\n };\r\n /**\r\n * Appends an element to `` block of the Paper.\r\n *\r\n * @param element Element\r\n */\r\n Paper.prototype.appendDef = function (element) {\r\n if (element) {\r\n this.defs.appendChild(element.node);\r\n }\r\n };\r\n /**\r\n * Creates and returns new `` element. Does not append it to\r\n * Paper.\r\n *\r\n * @return A foreignObject element\r\n */\r\n Paper.prototype.foreignObject = function () {\r\n var element = new AMElement(\"foreignObject\");\r\n //this.append(element);\r\n return element;\r\n };\r\n /**\r\n * Checks if browser supports `` elements.\r\n *\r\n * @return Supports `foreignObject`?\r\n */\r\n Paper.prototype.supportsForeignObject = function () {\r\n return document.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#Extensibility\", \"1.1\");\r\n };\r\n return Paper;\r\n}());\r\nexport { Paper };\r\nvar ghostPaper = null;\r\n/**\r\n * A [[Paper]] instance to create elements, that are not yet ready to be\r\n * placed in visible DOM.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport function getGhostPaper() {\r\n if (ghostPaper === null) {\r\n // ghost is used to draw elements while real paper is not yet created or Sprite doesn't know parent yet\r\n var ghostDiv = document.createElement(\"div\");\r\n ghostDiv.hidden = true;\r\n document.body.appendChild(ghostDiv);\r\n var ghostSvgContainer = new SVGContainer(ghostDiv);\r\n ghostPaper = new Paper(ghostSvgContainer.SVGContainer, \"ghost\");\r\n }\r\n return ghostPaper;\r\n}\r\n//# sourceMappingURL=Paper.js.map","/**\r\n * Contains code and logic for generating linear gradients.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../../Base\";\r\nimport { List } from \"../../utils/List\";\r\nimport { getGhostPaper } from \"../Paper\";\r\nimport { registry } from \"../../Registry\";\r\nimport * as $iter from \"../../utils/Iterator\";\r\nimport * as $math from \"../../utils/Math\";\r\nimport * as $type from \"../../utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Linear gradient class.\r\n */\r\nvar LinearGradient = /** @class */ (function (_super) {\r\n tslib_1.__extends(LinearGradient, _super);\r\n /**\r\n * Constructor.\r\n */\r\n function LinearGradient() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * List of colors switch definitions in a gradient.\r\n */\r\n _this._stops = new List();\r\n /**\r\n * Gradient direction.\r\n */\r\n _this._rotation = 0;\r\n _this.className = \"LinearGradient\";\r\n _this._stops.events.on(\"setIndex\", _this.validate, _this);\r\n _this._stops.events.on(\"inserted\", _this.validate, _this);\r\n // Create element\r\n _this.element = _this.paper.addGroup(\"linearGradient\");\r\n _this.id = \"gradient-\" + registry.getUniqueId();\r\n _this.element.attr({ \"id\": _this.id });\r\n _this._disposers.push(_this.element);\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws gradient.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n LinearGradient.prototype.validate = function () {\r\n var _this = this;\r\n var rotation = (this._rotation + 90) * $math.RADIANS;\r\n var x1 = Math.round(50 + Math.sin(rotation + Math.PI) * 50) + '%';\r\n var y1 = Math.round(50 + Math.cos(rotation) * 50) + '%';\r\n var x2 = Math.round(50 + Math.sin(rotation) * 50) + '%';\r\n var y2 = Math.round(50 + Math.cos(rotation + Math.PI) * 50) + '%';\r\n var gradientElement = this.element;\r\n gradientElement.removeChildNodes();\r\n gradientElement.attr({ \"x1\": x1, \"x2\": x2, \"y1\": y1, \"y2\": y2 });\r\n $iter.each($iter.indexed(this._stops.iterator()), function (a) {\r\n var i = a[0];\r\n var stop = a[1];\r\n var offset = stop.offset;\r\n if (!$type.isNumber(offset)) {\r\n offset = i / (_this._stops.length - 1);\r\n }\r\n var gradientStop = _this.paper.add(\"stop\");\r\n if ($type.hasValue(stop.color)) {\r\n gradientStop.attr({ \"stop-color\": stop.color.toString() });\r\n }\r\n if ($type.isNumber(stop.opacity)) {\r\n gradientStop.attr({ \"stop-opacity\": stop.opacity });\r\n }\r\n if ($type.isNumber(offset)) {\r\n gradientStop.attr({ \"offset\": offset });\r\n }\r\n gradientElement.add(gradientStop);\r\n });\r\n };\r\n /**\r\n * Clears the gradient.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n LinearGradient.prototype.clear = function () {\r\n this._stops.clear();\r\n };\r\n /**\r\n * Adds a color step to the gradient.\r\n *\r\n * @param color Color (hex code or named color)\r\n * @param opacity Opacity (value from 0 to 1; 0 completely transaprent, 1 fully opaque)\r\n * @param offset Position of color in the gradient (value 0 to 1; 0 meaning start of the gradient and 1 end)\r\n */\r\n LinearGradient.prototype.addColor = function (color, opacity, offset) {\r\n this._stops.push({ color: color, opacity: opacity, offset: offset });\r\n };\r\n Object.defineProperty(LinearGradient.prototype, \"stops\", {\r\n /**\r\n * A list of color stops in the gradient.\r\n *\r\n * @return Stops\r\n */\r\n get: function () {\r\n return this._stops;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LinearGradient.prototype, \"paper\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Paper\r\n */\r\n get: function () {\r\n if (this._paper) {\r\n return this._paper;\r\n }\r\n return getGhostPaper();\r\n },\r\n /**\r\n * [[Paper]] instace to use for the gradient.\r\n *\r\n * @ignore Exclude from docs\r\n * @param paper Paper\r\n */\r\n set: function (paper) {\r\n if (this._paper != paper) {\r\n this._paper = paper;\r\n this.validate();\r\n paper.appendDef(this.element);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LinearGradient.prototype, \"rotation\", {\r\n /**\r\n * @return Rotation\r\n */\r\n get: function () {\r\n return this._rotation;\r\n },\r\n /**\r\n * Rotation (direction) of the gradient in degrees.\r\n *\r\n * @param value Rotation\r\n */\r\n set: function (value) {\r\n //this.element.attr({ \"gradientTransform\": \"rotate(\" + value + \" 10 100)\" });\r\n this._rotation = value;\r\n this.validate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LinearGradient.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.stops.copyFrom(source.stops);\r\n this._rotation = source.rotation;\r\n };\r\n return LinearGradient;\r\n}(BaseObject));\r\nexport { LinearGradient };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"LinearGradient\"] = LinearGradient;\r\n//# sourceMappingURL=LinearGradient.js.map","/**\r\n * Module for \"Focus\" filter.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { Filter } from \"./Filter\";\r\nimport { InterfaceColorSet } from \"../../utils/InterfaceColorSet\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a \"Focus\" filter.\r\n */\r\nvar FocusFilter = /** @class */ (function (_super) {\r\n tslib_1.__extends(FocusFilter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function FocusFilter() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"FocusFilter\";\r\n // Create elements\r\n // NOTE: we do not need to add each individual element to `_disposers`\r\n // because `filterPrimitives` has an event handler which automatically adds\r\n // anything added to it to `_disposers`\r\n _this.feFlood = _this.paper.add(\"feFlood\");\r\n _this.feFlood.attr({ \"flood-color\": new InterfaceColorSet().getFor(\"primaryButtonHover\"), \"result\": \"base\" });\r\n _this.filterPrimitives.push(_this.feFlood);\r\n _this.feMorphology = _this.paper.add(\"feMorphology\");\r\n _this.feMorphology.attr({ \"result\": \"bigger\", \"in\": \"SourceGraphic\", \"operator\": \"dilate\", \"radius\": \"2\" });\r\n _this.filterPrimitives.push(_this.feMorphology);\r\n _this.feColorMatrix = _this.paper.add(\"feColorMatrix\");\r\n _this.feColorMatrix.attr({ \"result\": \"mask\", \"in\": \"bigger\", \"type\": \"matrix\", \"values\": \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0\" });\r\n _this.filterPrimitives.push(_this.feColorMatrix);\r\n _this.feComposite = _this.paper.add(\"feComposite\");\r\n _this.feComposite.attr({ \"result\": \"drop\", \"in\": \"base\", \"in2\": \"mask\", \"operator\": \"in\" });\r\n _this.filterPrimitives.push(_this.feComposite);\r\n _this.feBlend = _this.paper.add(\"feBlend\");\r\n _this.feBlend.attr({ \"in\": \"SourceGraphic\", \"in2\": \"drop\", \"mode\": \"normal\" });\r\n _this.filterPrimitives.push(_this.feBlend);\r\n // Set default properties\r\n _this.width = 130;\r\n _this.height = 130;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(FocusFilter.prototype, \"stroke\", {\r\n /**\r\n * @return Color\r\n */\r\n get: function () {\r\n return this.properties[\"stroke\"];\r\n },\r\n /**\r\n * Stroke (outline) color.\r\n *\r\n * @param value Color\r\n */\r\n set: function (value) {\r\n this.properties[\"stroke\"] = value;\r\n this.feFlood.attr({ \"flood-color\": value });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FocusFilter.prototype, \"strokeWidth\", {\r\n /**\r\n * @return Outline thickness (px)\r\n */\r\n get: function () {\r\n return this.properties[\"strokeWidth\"];\r\n },\r\n /**\r\n * Stroke (outline) thickness in pixels.\r\n *\r\n * @param value Outline thickness (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"strokeWidth\"] = value;\r\n this.feMorphology.attr({ \"radius\": value });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FocusFilter.prototype, \"opacity\", {\r\n /**\r\n * @return Outline opacity (0-1)\r\n */\r\n get: function () {\r\n return this.properties[\"opacity\"];\r\n },\r\n /**\r\n * Opacity of the outline. (0-1)\r\n *\r\n * @param value Outline opacity (0-1)\r\n */\r\n set: function (value) {\r\n this.properties[\"opacity\"] = value;\r\n this.feColorMatrix.attr({ \"values\": \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \" + value + \" 0\" });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets filter's target element.\r\n *\r\n * In addition it also disables built-in focus outline on element this\r\n * filter is applied to.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Element filter is being attached to\r\n */\r\n FocusFilter.prototype.setSprite = function (value) {\r\n if (this._sprite && this._sprite != value) {\r\n this._sprite.group.removeStyle(\"outline\");\r\n }\r\n value.group.addStyle({\r\n \"outline\": \"none\"\r\n });\r\n _super.prototype.setSprite.call(this, value);\r\n };\r\n return FocusFilter;\r\n}(Filter));\r\nexport { FocusFilter };\r\n//# sourceMappingURL=FocusFilter.js.map","import * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { RadialGradient } from \"./RadialGradient\";\r\nimport { GradientModifier } from \"./GradientModifier\";\r\nimport { registry } from \"../../Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * This class can be used to modify radial gradient steps, changing visual\r\n * properties like lightness, brightness, opacity of each set.\r\n *\r\n * It can also set offsets for each gradient step.\r\n *\r\n * E.g. if I want to fill a columns in a column series to be a solid fill from\r\n * top to 80% of height, then gradually fades out, I can use the following\r\n * gradient modifier as a `fillModifier`:\r\n *\r\n * ```TypeScript\r\n * let fillModifier = new am4core.LinearGradientModifier();\r\n * fillModifier.opacities = [1, 1, 0];\r\n * fillModifier.offsets = [0, 0.8, 1];\r\n * columnSeries.columns.template.fillModifier = fillModifier;\r\n * ```\r\n * ```JavaScript\r\n * var fillModifier = new am4core.LinearGradientModifier();\r\n * fillModifier.opacities = [1, 1, 0];\r\n * fillModifier.offsets = [0, 0.8, 1];\r\n * columnSeries.columns.template.fillModifier = fillModifier;\r\n * ```\r\n * ```JSON\r\n * \"series\": [{\r\n * \"type\": \"ColumnSeries\",\r\n * \"columns\": {\r\n * \"fillModifier\": {\r\n * \"type\": \"LinearGradientModifier\",\r\n * \"opacities\": [1, 1, 0],\r\n * \"offsets\": [0, 0.8, 1]\r\n * }\r\n * }\r\n * }]\r\n * ```\r\n */\r\nvar RadialGradientModifier = /** @class */ (function (_super) {\r\n tslib_1.__extends(RadialGradientModifier, _super);\r\n /**\r\n * Constructor.\r\n */\r\n function RadialGradientModifier() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"RadialGradientModifier\";\r\n _this.gradient = new RadialGradient();\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n RadialGradientModifier.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.gradient = source.gradient.clone();\r\n };\r\n return RadialGradientModifier;\r\n}(GradientModifier));\r\nexport { RadialGradientModifier };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RadialGradientModifier\"] = RadialGradientModifier;\r\n//# sourceMappingURL=RadialGradientModifier.js.map","/**\r\n * This functionality is related to the HTML wrapper that houses `` tag.\r\n */\r\nimport { Disposer } from \"../utils/Disposer\";\r\nimport { Popup } from \"../elements/Popup\";\r\nimport { Modal } from \"../elements/Modal\";\r\nimport { ListTemplate, ListDisposer } from \"../utils/List\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport * as $dom from \"../utils/DOM\";\r\nimport * as $array from \"../utils/Array\";\r\nimport * as $type from \"../utils/Type\";\r\nimport ResizeSensor from \"css-element-queries/src/ResizeSensor\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A array of all SVG Containers (one SVG container per chart instance).\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport var svgContainers = [];\r\n/**\r\n * A class used to create an HTML wrapper for the SVG contents.\r\n */\r\nvar SVGContainer = /** @class */ (function () {\r\n /**\r\n * Constructor\r\n *\r\n * * Creates an HTML wrapper for SVG\r\n */\r\n function SVGContainer(htmlElement) {\r\n var _this = this;\r\n /**\r\n * Indicates if this object has already been deleted. Any\r\n * destruction/disposal code should take this into account when deciding\r\n * wheter to run potentially costly disposal operations if they already have\r\n * been run.\r\n */\r\n this._disposed = false;\r\n /**\r\n * If this component is in a separate HTML container, `autoResize` means the\r\n * module will constantly measure container's size and adopt contents to it.\r\n */\r\n this.autoResize = true;\r\n /**\r\n * Holds list of references to [[Sprite]] objects that should not be exported\r\n * when exporting chart to an image.\r\n *\r\n * @ignore\r\n */\r\n this.nonExportableSprites = [];\r\n /**\r\n * List of objects that need to be disposed when this one is disposed.\r\n */\r\n this._disposers = [];\r\n this.cssScale = 1;\r\n // Log parent HTML element\r\n this.htmlElement = htmlElement;\r\n var callback = function () { _this.measure(); };\r\n this.resizeSensor = new ResizeSensor(htmlElement, callback);\r\n this._disposers.push(new Disposer(function () {\r\n _this.resizeSensor.detach(callback);\r\n }));\r\n // Adds to containers array\r\n svgContainers.push(this);\r\n /**\r\n * Create child div for the container - it will have svg node\r\n * It might seem that this container is not necessay, however having it solves\r\n * a problems with mouse position detection and some other.\r\n */\r\n var svgContainer = document.createElement(\"div\");\r\n var style = svgContainer.style;\r\n style.width = \"100%\";\r\n style.height = \"100%\";\r\n style.position = \"relative\";\r\n htmlElement.appendChild(svgContainer);\r\n this.SVGContainer = svgContainer;\r\n }\r\n /**\r\n * Measures size of parent HTML element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n SVGContainer.prototype.measure = function () {\r\n var width = $utils.width(this.htmlElement);\r\n var height = $utils.height(this.htmlElement);\r\n var container = this.container;\r\n if (container) {\r\n if (this.width != width || this.height != height) {\r\n this.width = width;\r\n this.height = height;\r\n if (width > 0) {\r\n container.maxWidth = width;\r\n }\r\n if (height > 0) {\r\n container.maxHeight = height;\r\n }\r\n $dom.fixPixelPerfect(this.SVGContainer);\r\n }\r\n if (!container.maxWidth) {\r\n container.maxWidth = 0;\r\n }\r\n if (!container.maxHeight) {\r\n container.maxHeight = 0;\r\n }\r\n this.cssScale = 1;\r\n this.checkTransform(this.htmlElement);\r\n }\r\n };\r\n Object.defineProperty(SVGContainer.prototype, \"container\", {\r\n /**\r\n * @return Container\r\n */\r\n get: function () {\r\n return this._container;\r\n },\r\n /**\r\n * A [[Container]] element which is placed into container.\r\n *\r\n * @param container Container\r\n */\r\n set: function (container) {\r\n this._container = container;\r\n this.measure();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns if this object has been already been disposed.\r\n *\r\n * @return Is disposed?\r\n */\r\n SVGContainer.prototype.isDisposed = function () {\r\n return this._disposed;\r\n };\r\n /**\r\n * Removes this container from SVG container list in system, which\r\n * effectively disables size change monitoring for it.\r\n */\r\n SVGContainer.prototype.dispose = function () {\r\n if (!this._disposed) {\r\n $array.remove(svgContainers, this);\r\n }\r\n $array.each(this._disposers, function (item) {\r\n item.dispose();\r\n });\r\n };\r\n Object.defineProperty(SVGContainer.prototype, \"hideOverflow\", {\r\n /**\r\n * Indicates if chart container should have its style set\r\n * to `overflow: hidden`.\r\n *\r\n * Normally, we don't want that, so that certain elements, such as tooltips,\r\n * would be able to go outside chart area.\r\n *\r\n * There is one issue though. Some browsers ignore SVG masks and would\r\n * display scrollbars if chart elements, that go outside chart area extend\r\n * outside window.\r\n *\r\n * This is especially true for [[MapChart]], which can have its elements\r\n * extend very widely when zoomed in. Even if those parts are not visible\r\n * because of SVG masks, some browsers might still display window scrollbars.\r\n *\r\n * This is why we set this setting to `true` in [[MapChart]].\r\n *\r\n * Other charts use default of `false`.\r\n */\r\n set: function (value) {\r\n if (value) {\r\n this.SVGContainer.style.overflow = \"hidden\";\r\n }\r\n else {\r\n this.SVGContainer.style.overflow = \"\";\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SVGContainer.prototype, \"modal\", {\r\n /**\r\n * ==========================================================================\r\n * MODAL/POPUP RELATED STUFF\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Returns a [[Modal]] instance, associated with this chart.\r\n * (elements top parent)\r\n *\r\n * Accessing modal does not make it appear. To make a modal appear, use\r\n * `showModal()` method.\r\n *\r\n * @see {@link Modal} for more information about using Modal windows\r\n * @return Modal instance\r\n */\r\n get: function () {\r\n if (!$type.hasValue(this._modal)) {\r\n // Create new modal\r\n this._modal = new Modal();\r\n this._modal.container = this.SVGContainer;\r\n // Add to disposers\r\n this._disposers.push(this._modal);\r\n }\r\n return this._modal;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Opens a modal window with specific content (`text` parameter) and,\r\n * optionally, `title`.\r\n *\r\n * The `text` parameter can contain HTML content.\r\n *\r\n * @see {@link Modal} for more information about using Modal windows\r\n * @param text Modal contents\r\n * @param title Title for the modal window\r\n */\r\n SVGContainer.prototype.openModal = function (text, title) {\r\n // Hide previous modal\r\n this.closeModal();\r\n // Create modal\r\n var modal = this.modal;\r\n modal.content = text;\r\n modal.readerTitle = title;\r\n modal.open();\r\n return modal;\r\n };\r\n /**\r\n * Hides modal window if there is one currently open.\r\n */\r\n SVGContainer.prototype.closeModal = function () {\r\n if (this._modal) {\r\n this.modal.close();\r\n }\r\n };\r\n Object.defineProperty(SVGContainer.prototype, \"popups\", {\r\n /**\r\n * A list of popups for this chart.\r\n *\r\n * @return Popups\r\n */\r\n get: function () {\r\n if (!$type.hasValue(this._popups)) {\r\n // Create popup template\r\n var popupTemplate = new Popup();\r\n popupTemplate.container = this.SVGContainer;\r\n // Create the list\r\n this._popups = new ListTemplate(popupTemplate);\r\n // Add to disposers\r\n this._disposers.push(new ListDisposer(this._popups));\r\n this._disposers.push(this._popups.template);\r\n }\r\n return this._popups;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates, opens, and returns a new [[Popup]] window.\r\n *\r\n * `text` can be any valid HTML.\r\n *\r\n * `title` is currently not supported.\r\n *\r\n * @param text Popup contents\r\n * @param title Popup title\r\n * @return Popup instance\r\n */\r\n SVGContainer.prototype.openPopup = function (text, title) {\r\n var popup = this.popups.create();\r\n popup.content = text;\r\n if ($type.hasValue(title)) {\r\n popup.title = title;\r\n }\r\n popup.open();\r\n return popup;\r\n };\r\n /**\r\n * Closes all currently open popup windows\r\n */\r\n SVGContainer.prototype.closeAllPopups = function () {\r\n this.popups.each(function (popup) {\r\n popup.close();\r\n });\r\n };\r\n SVGContainer.prototype.checkTransform = function (div) {\r\n if (window.getComputedStyle) {\r\n if (div && div.style) {\r\n var style = window.getComputedStyle(div, null);\r\n if (style) {\r\n var matrix = style.getPropertyValue(\"-webkit-transform\") ||\r\n style.getPropertyValue(\"-moz-transform\") ||\r\n style.getPropertyValue(\"-ms-transform\") ||\r\n style.getPropertyValue(\"-o-transform\") ||\r\n style.getPropertyValue(\"transform\");\r\n if (matrix && matrix !== \"none\") {\r\n var values = matrix.split('(')[1].split(')')[0].split(',');\r\n var a = Number(values[0]);\r\n var b = Number(values[1]);\r\n var scale = Math.sqrt(a * a + b * b);\r\n if (!isNaN(scale)) {\r\n this.cssScale *= scale;\r\n }\r\n }\r\n }\r\n }\r\n if (div.parentNode && div.parentNode instanceof HTMLElement) {\r\n this.checkTransform(div.parentNode);\r\n }\r\n }\r\n };\r\n return SVGContainer;\r\n}());\r\nexport { SVGContainer };\r\n//# sourceMappingURL=SVGContainer.js.map","import * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../../Base\";\r\nimport { registry } from \"../../Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A base class for color modifiers.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nvar ColorModifier = /** @class */ (function (_super) {\r\n tslib_1.__extends(ColorModifier, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ColorModifier() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ColorModifier\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Modifies color value.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Original color\r\n * @return Modified\r\n */\r\n ColorModifier.prototype.modify = function (value) {\r\n return value;\r\n };\r\n return ColorModifier;\r\n}(BaseObject));\r\nexport { ColorModifier };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ColorModifier\"] = ColorModifier;\r\n//# sourceMappingURL=ColorModifier.js.map"],"sourceRoot":""}