{"version":3,"file":"js/chunk-vendors-efb43e96.9ba0cb48.js","mappings":"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","sources":["webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/Bullet.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/Candlestick.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/ChordLink.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/ChordNode.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/CircleBullet.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/ClockHand.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/Column.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/Column3D.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/ConeColumn.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/CurvedColumn.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/ErrorBullet.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/FlowDiagramLink.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/FlowDiagramNode.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/FunnelSlice.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/FunnelTick.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/HeatLegend.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/LabelBullet.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/NavigationBar.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/OHLC.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/PieTick.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/RadarColumn.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/SankeyLink.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/SankeyNode.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/Tick.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/elements/XYChartScrollbar.js"],"sourcesContent":["/**\r\n * Module that defines everything related to building bullets.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../core/Container\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../../core/utils/Responsive\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to creates bullets.\r\n *\r\n * @see {@link IBulletEvents} for a list of available events\r\n * @see {@link IBulletAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar Bullet = /** @class */ (function (_super) {\r\n __extends(Bullet, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Bullet() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Bullet\";\r\n _this.isMeasured = false;\r\n _this.tooltipX = 0;\r\n _this.tooltipY = 0;\r\n _this.layout = \"none\";\r\n _this.applyOnClones = true;\r\n _this.copyToLegendMarker = true;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(Bullet.prototype, \"locationX\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"locationX\");\r\n },\r\n /**\r\n * Relative horizontal location within cell. (0-1)\r\n *\r\n * @param value Location (0-1)\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"locationX\", value)) {\r\n var dataItem = this.dataItem;\r\n if (dataItem && dataItem.component) {\r\n dataItem.component.invalidate();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Bullet.prototype, \"locationY\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"locationY\");\r\n },\r\n /**\r\n * Relative vertical location within cell. (0-1)\r\n *\r\n * @param value Location (0-1)\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"locationY\", value)) {\r\n var dataItem = this.dataItem;\r\n if (dataItem && dataItem.component) {\r\n dataItem.component.invalidate();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Bullet.prototype, \"xField\", {\r\n /**\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"xField\");\r\n },\r\n /**\r\n * [xField description]\r\n *\r\n * @todo Description\r\n * @param value [description]\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"xField\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Bullet.prototype, \"yField\", {\r\n /**\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"yField\");\r\n },\r\n /**\r\n * [yField description]\r\n *\r\n * Description\r\n * @param value [description]\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"yField\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Bullet.prototype, \"isDynamic\", {\r\n /**\r\n * @return Redraw on data change?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"isDynamic\");\r\n },\r\n /**\r\n * Indicates if the bullet is \"dynamic\".\r\n *\r\n * In most cases the bullets remain the same, even if the underlying data\r\n * changes.\r\n *\r\n * However, in cases where bullet also displays a label, or its size depends\r\n * on data, it also needs to be redrawn when the underlying data changes.\r\n *\r\n * Only those bullets that have set `isDynamic = true` will be redrawn each\r\n * time data changes. Regular bullets will be reused as they are.\r\n *\r\n * @default false\r\n * @param value Redraw on data change?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"isDynamic\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Bullet.prototype, \"copyToLegendMarker\", {\r\n /**\r\n * @return Redraw on data change?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"copyToLegendMarker\");\r\n },\r\n /**\r\n * Indicates if the bullet should be copied to legend marker\r\n *\r\n * @default false\r\n * @param value Redraw on data change?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"copyToLegendMarker\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Bullet;\r\n}(Container));\r\nexport { Bullet };\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[\"Bullet\"] = Bullet;\r\n/**\r\n * Add default responsive rules\r\n */\r\n/**\r\n * Hide bullets\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.isXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Bullet) {\r\n var state = target.states.create(stateId);\r\n state.properties.disabled = true;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n//# sourceMappingURL=Bullet.js.map","/**\r\n * Module that defines everything related to building Candlesticks.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Column } from \"./Column\";\r\nimport { Line } from \"../../core/elements/Line\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to creates Candlesticks.\r\n *\r\n * @see {@link ICandlestickEvents} for a list of available events\r\n * @see {@link ICandlestickAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar Candlestick = /** @class */ (function (_super) {\r\n __extends(Candlestick, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Candlestick() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Candlestick\";\r\n _this.layout = \"none\";\r\n return _this;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n Candlestick.prototype.createAssets = function () {\r\n _super.prototype.createAssets.call(this);\r\n this.lowLine = this.createChild(Line);\r\n this.lowLine.shouldClone = false;\r\n this.highLine = this.createChild(Line);\r\n this.highLine.shouldClone = false;\r\n };\r\n /**\r\n * Copies all parameters from another [[Candlestick]].\r\n *\r\n * @param source Source Candlestick\r\n */\r\n Candlestick.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (this.lowLine) {\r\n this.lowLine.copyFrom(source.lowLine);\r\n }\r\n if (this.highLine) {\r\n this.highLine.copyFrom(source.highLine);\r\n }\r\n };\r\n return Candlestick;\r\n}(Column));\r\nexport { Candlestick };\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[\"Candlestick\"] = Candlestick;\r\n//# sourceMappingURL=Candlestick.js.map","/**\r\n * ChordLink module\r\n */\r\nimport { __extends } from \"tslib\";\r\nimport { FlowDiagramLink } from \"./FlowDiagramLink\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { QuadraticCurve } from \"../../core/elements/QuadraticCurve\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * This class creates a link (waved color-filled line) between two nodes in a\r\n * Chord Diagram.\r\n *\r\n * @see {@link IChordLinkEvents} for a list of available events\r\n * @see {@link IChordLinkAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar ChordLink = /** @class */ (function (_super) {\r\n __extends(ChordLink, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ChordLink() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ChordLink\";\r\n _this.middleLine = _this.createChild(QuadraticCurve);\r\n _this.middleLine.shouldClone = false;\r\n _this.middleLine.strokeOpacity = 0;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * (Re)validates (redraws) the link.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ChordLink.prototype.validate = function () {\r\n _super.prototype.validate.call(this);\r\n if (!this.isTemplate) {\r\n var startAngle = this.startAngle;\r\n var endAngle = this.endAngle;\r\n var arc = this.arc;\r\n var radius = this.radius;\r\n var fromNode = this.dataItem.fromNode;\r\n var toNode = this.dataItem.toNode;\r\n var fromX = 0;\r\n var fromY = 0;\r\n if (fromNode) {\r\n fromX = fromNode.pixelX + fromNode.dx;\r\n fromY = fromNode.pixelY + fromNode.dy;\r\n }\r\n var toX = 0;\r\n var toY = 0;\r\n if (toNode) {\r\n toX = toNode.pixelX + toNode.dx;\r\n toY = toNode.pixelY + toNode.dy;\r\n }\r\n if (radius > 0) {\r\n var x1 = radius * $math.cos(startAngle) + fromX;\r\n var y1 = radius * $math.sin(startAngle) + fromY;\r\n var x2 = radius * $math.cos(endAngle) + toX;\r\n var y2 = radius * $math.sin(endAngle) + toY;\r\n //let cpAngle = startAngle + arc + (endAngle - startAngle - arc) / 2;\r\n //let arcWidth = $math.getDistance({x:x1, y:y1}, {x:x4, y:y4});\r\n //let cpx = (arcWidth) * $math.cos(cpAngle);\r\n //let cpy = (arcWidth) * $math.sin(cpAngle);\r\n var cp = { x: 0, y: 0 };\r\n var path = $path.moveTo({ x: x1, y: y1 });\r\n path += $path.arcTo(startAngle, arc, radius);\r\n path += $path.quadraticCurveTo({ x: x2, y: y2 }, cp);\r\n path += $path.arcTo(endAngle, arc, radius);\r\n path += $path.quadraticCurveTo({ x: x1, y: y1 }, cp);\r\n if (arc > 0) {\r\n this.link.path = path;\r\n }\r\n else {\r\n this.link.path = \"\";\r\n }\r\n if (this.maskBullets) {\r\n this.bulletsMask.path = path;\r\n this.bulletsContainer.mask = this.bulletsMask;\r\n }\r\n var mAngle1 = startAngle + arc / 2;\r\n var mAngle2 = endAngle + arc / 2;\r\n var middleLine = this.middleLine;\r\n middleLine.x1 = radius * $math.cos(mAngle1) + fromX;\r\n middleLine.y1 = radius * $math.sin(mAngle1) + fromY;\r\n middleLine.x2 = radius * $math.cos(mAngle2) + toX;\r\n middleLine.y2 = radius * $math.sin(mAngle2) + toY;\r\n middleLine.cpx = 0;\r\n middleLine.cpy = 0;\r\n middleLine.stroke = this.fill;\r\n this.positionBullets();\r\n }\r\n }\r\n };\r\n Object.defineProperty(ChordLink.prototype, \"radius\", {\r\n /**\r\n * @return End Y\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"radius\");\r\n },\r\n /**\r\n * [radius description]\r\n *\r\n * @todo Description\r\n * @param value End Y\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"radius\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ChordLink.prototype, \"arc\", {\r\n /**\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"arc\");\r\n },\r\n /**\r\n * [arc description]\r\n *\r\n * @todo Description\r\n * @param value [description]\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"arc\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ChordLink;\r\n}(FlowDiagramLink));\r\nexport { ChordLink };\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[\"ChordLink\"] = ChordLink;\r\n//# sourceMappingURL=ChordLink.js.map","/**\r\n * ChordNode module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { FlowDiagramNode } from \"./FlowDiagramNode\";\r\nimport { AxisLabelCircular } from \"../axes/AxisLabelCircular\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Slice } from \"../../core/elements/Slice\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { Bullet } from \"../elements/Bullet\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a node in a Chord Diagram.\r\n *\r\n * A Chord node is a block with a value, which represents its size on the\r\n * diagram.\r\n *\r\n * Nodes are connected via [[ChordLink]] elements.\r\n *\r\n * @see {@link IChordNodeEvents} for a list of available events\r\n * @see {@link IChordNodeAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar ChordNode = /** @class */ (function (_super) {\r\n __extends(ChordNode, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ChordNode() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ChordNode\";\r\n var label = _this.createChild(AxisLabelCircular);\r\n label.location = 0.5;\r\n label.radius = 5;\r\n label.text = \"{name}\";\r\n label.zIndex = 1;\r\n label.shouldClone = false;\r\n _this.label = label;\r\n _this.layout = \"none\";\r\n _this.events.on(\"positionchanged\", _this.updateRotation, _this, false);\r\n _this.isMeasured = false;\r\n _this.slice = _this.createChild(Slice);\r\n _this.slice.isMeasured = false;\r\n var hiddenState = _this.hiddenState;\r\n hiddenState.properties.fill = new InterfaceColorSet().getFor(\"disabledBackground\");\r\n hiddenState.properties.opacity = 0.5;\r\n hiddenState.properties.visible = true;\r\n _this.setStateOnChildren = false;\r\n _this.slice.hiddenState.properties.visible = true;\r\n _this.adapter.add(\"tooltipX\", function (tooltipX, target) {\r\n return target.slice.ix * (target.slice.radius - (target.slice.radius - target.slice.pixelInnerRadius) / 2);\r\n });\r\n _this.adapter.add(\"tooltipY\", function (tooltipY, target) {\r\n return target.slice.iy * (target.slice.radius - (target.slice.radius - target.slice.pixelInnerRadius) / 2);\r\n });\r\n return _this;\r\n }\r\n /**\r\n * Invalidates all links, attached to this node.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ChordNode.prototype.invalidateLinks = function () {\r\n var _this = this;\r\n _super.prototype.invalidateLinks.call(this);\r\n var label = this.label;\r\n var slice = this.slice;\r\n var chart = this.chart;\r\n if (chart && slice) {\r\n var sum = this.total;\r\n var arc_1 = slice.arc;\r\n var sliceStartAngle_1 = slice.startAngle;\r\n this.children.each(function (child) {\r\n if (child instanceof Bullet) {\r\n var locationX = child.locationX;\r\n if (!$type.isNumber(locationX)) {\r\n locationX = 0.5;\r\n }\r\n var locationY = child.locationY;\r\n if (!$type.isNumber(locationY)) {\r\n locationY = 1;\r\n }\r\n var childAngle = sliceStartAngle_1 + arc_1 * locationX;\r\n var childRadius = locationY * slice.radius;\r\n child.x = childRadius * $math.cos(childAngle);\r\n child.y = childRadius * $math.sin(childAngle);\r\n }\r\n });\r\n var labelAngle = sliceStartAngle_1 + arc_1 * label.location;\r\n var startAngle = sliceStartAngle_1 + (1 - sum / this.adjustedTotal) * arc_1 * 0.5; // if value of a node is > then sum of the links, add to center link\r\n if ($type.isNaN(startAngle)) {\r\n startAngle = sliceStartAngle_1;\r\n }\r\n label.fixPosition(labelAngle, slice.radius);\r\n this.nextAngle = startAngle;\r\n if (this._outgoingSorted) {\r\n $iter.each(this._outgoingSorted, function (dataItem) {\r\n var link = dataItem.link;\r\n link.parent = _this.chart.linksContainer;\r\n var value = dataItem.getWorkingValue(\"value\");\r\n if ($type.isNumber(value)) {\r\n if (chart.nonRibbon) {\r\n var percentWidth = link.percentWidth;\r\n if (!$type.isNumber(percentWidth)) {\r\n percentWidth = 5;\r\n }\r\n percentWidth = percentWidth / 100;\r\n link.startAngle = sliceStartAngle_1 + arc_1 / 2 - arc_1 / 2 * percentWidth;\r\n link.arc = arc_1 * percentWidth;\r\n }\r\n else {\r\n link.arc = value * chart.valueAngle;\r\n link.startAngle = _this.nextAngle;\r\n _this.nextAngle += link.arc;\r\n }\r\n if (!dataItem.toNode) {\r\n link.endAngle = link.startAngle;\r\n }\r\n link.radius = slice.pixelInnerRadius;\r\n }\r\n //link.validate();\r\n });\r\n }\r\n if (this._incomingSorted) {\r\n $iter.each(this._incomingSorted, function (dataItem) {\r\n var link = dataItem.link;\r\n link.radius = slice.pixelInnerRadius;\r\n if (chart.nonRibbon) {\r\n var percentWidth = link.percentWidth;\r\n if (!$type.isNumber(percentWidth)) {\r\n percentWidth = 5;\r\n }\r\n percentWidth = percentWidth / 100;\r\n link.endAngle = sliceStartAngle_1 + arc_1 / 2 - arc_1 / 2 * percentWidth;\r\n link.arc = arc_1 * percentWidth;\r\n }\r\n else {\r\n link.endAngle = _this.nextAngle;\r\n var value = dataItem.getWorkingValue(\"value\");\r\n if ($type.isNumber(value)) {\r\n link.arc = value * chart.valueAngle; // yes, this is needed\r\n _this.nextAngle += link.arc;\r\n }\r\n }\r\n if (!dataItem.fromNode) {\r\n link.startAngle = link.endAngle;\r\n }\r\n //link.validate();\r\n });\r\n }\r\n }\r\n };\r\n /**\r\n * @ignore\r\n * updates slice start angle so that when we drag a node it would face the center\r\n */\r\n ChordNode.prototype.updateRotation = function () {\r\n var slice = this.slice;\r\n var mAngle = this.trueStartAngle + slice.arc / 2;\r\n var radius = slice.radius;\r\n var tx = radius * $math.cos(mAngle);\r\n var ty = radius * $math.sin(mAngle);\r\n var angle = $math.getAngle({ x: tx + this.pixelX, y: ty + this.pixelY });\r\n slice.startAngle = this.trueStartAngle + (angle - mAngle);\r\n this.dx = -this.pixelX;\r\n this.dy = -this.pixelY;\r\n };\r\n /**\r\n * Copies properties and labels from another [[ChordNode]].\r\n *\r\n * @param source Source node\r\n */\r\n ChordNode.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.label.copyFrom(source.label);\r\n this.slice.copyFrom(source.slice);\r\n };\r\n return ChordNode;\r\n}(FlowDiagramNode));\r\nexport { ChordNode };\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[\"ChordNode\"] = ChordNode;\r\n//# sourceMappingURL=ChordNode.js.map","/**\r\n * Bullet module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Bullet } from \"./Bullet\";\r\nimport { Circle } from \"../../core/elements/Circle\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a bullet with a textual label.\r\n *\r\n * Uses [[Label]] instance to draw the label, so the label itself is\r\n * configurable.\r\n *\r\n * @see {@link IBulletEvents} for a list of available events\r\n * @see {@link IBulletAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar CircleBullet = /** @class */ (function (_super) {\r\n __extends(CircleBullet, _super);\r\n /**\r\n * Constructor\r\n */\r\n function CircleBullet() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"CircleBullet\";\r\n var circle = _this.createChild(Circle);\r\n circle.shouldClone = false;\r\n circle.radius = 5;\r\n circle.isMeasured = false;\r\n _this.circle = circle;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Copies all proprities and related stuff from another instance of\r\n * [[CircleBullet]].\r\n *\r\n * @param source Source element\r\n */\r\n CircleBullet.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.circle.copyFrom(source.circle);\r\n };\r\n return CircleBullet;\r\n}(Bullet));\r\nexport { CircleBullet };\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[\"CircleBullet\"] = CircleBullet;\r\n//# sourceMappingURL=CircleBullet.js.map","/**\r\n * Functionality for drawing simple ClockHands\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../core/Container\";\r\nimport { Circle } from \"../../core/elements/Circle\";\r\nimport { Trapezoid } from \"../../core/elements/Trapezoid\";\r\nimport { MutableValueDisposer, MultiDisposer } from \"../../core/utils/Disposer\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * ClockHand class is capable of drawing a simple pointy shape with optionally\r\n * rounderd corners and an icon.\r\n *\r\n * @see {@link IClockHandEvents} for a list of available events\r\n * @see {@link IClockHandAdapters} for a list of available Adapters\r\n * @todo Improve\r\n * @important\r\n */\r\nvar ClockHand = /** @class */ (function (_super) {\r\n __extends(ClockHand, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ClockHand() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * An Axis hand is related to.\r\n */\r\n _this._axis = new MutableValueDisposer();\r\n _this.className = \"ClockHand\";\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n _this.stroke = _this.fill;\r\n var pin = new Circle();\r\n pin.radius = 5;\r\n _this.pin = pin;\r\n _this.isMeasured = false;\r\n _this.startWidth = 5;\r\n _this.endWidth = 1;\r\n _this.width = percent(100);\r\n _this.height = percent(100);\r\n _this.radius = percent(100);\r\n _this.innerRadius = percent(0);\r\n var hand = new Trapezoid();\r\n _this.hand = hand;\r\n _this._disposers.push(_this._axis);\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Re(validates) the clock hand, effectively redrawing it.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ClockHand.prototype.validate = function () {\r\n _super.prototype.validate.call(this);\r\n var hand = this.hand;\r\n hand.width = this.pixelWidth;\r\n var h = Math.max(this.startWidth, this.endWidth);\r\n hand.height = h;\r\n hand.leftSide = percent(this.startWidth / h * 100);\r\n hand.rightSide = percent(this.endWidth / h * 100);\r\n if (this.axis) {\r\n var renderer = this.axis.renderer;\r\n var x0 = $utils.relativeRadiusToValue(this.innerRadius, renderer.pixelRadius);\r\n var x1 = $utils.relativeRadiusToValue(this.radius, renderer.pixelRadius);\r\n hand.x = x0;\r\n hand.y = -h / 2;\r\n hand.width = x1 - x0;\r\n }\r\n };\r\n Object.defineProperty(ClockHand.prototype, \"pin\", {\r\n /**\r\n * @return Pin element\r\n */\r\n get: function () {\r\n return this._pin;\r\n },\r\n /**\r\n * A circle element used as hand's base. (pin)\r\n *\r\n * @param pin Pin element\r\n */\r\n set: function (pin) {\r\n if (this._pin) {\r\n this.removeDispose(this._pin);\r\n }\r\n if (pin) {\r\n this._pin = pin;\r\n pin.parent = this;\r\n this._disposers.push(pin);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClockHand.prototype, \"hand\", {\r\n /**\r\n * @return Hand element\r\n */\r\n get: function () {\r\n return this._hand;\r\n },\r\n /**\r\n * A trapezoid shape used for hand itself.\r\n *\r\n * The shape of the trapezoid is controlled by ClockHand's `startWidth` and\r\n * `endWidth` properties.\r\n *\r\n * Set `endWidth` to 1 (px) to make it pointy.\r\n *\r\n * @param hand Hand element\r\n */\r\n set: function (hand) {\r\n if (this._hand) {\r\n this.removeDispose(this._hand);\r\n }\r\n if (hand) {\r\n this._hand = hand;\r\n hand.parent = this;\r\n this._disposers.push(hand);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClockHand.prototype, \"radius\", {\r\n /**\r\n * @return Radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"radius\");\r\n },\r\n /**\r\n * Radius of the hand's outer end. (tip)\r\n *\r\n * Absolute (px) or relative ([[Percent]]).\r\n *\r\n * @default Percent(0)\r\n * @param value Radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClockHand.prototype, \"innerRadius\", {\r\n /**\r\n * @return Radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"innerRadius\");\r\n },\r\n /**\r\n * Radius of the hand's inner end. (base)\r\n *\r\n * Absolute (px) or relative ([[Percent]]).\r\n *\r\n * @default Percent(0)\r\n * @param value Radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClockHand.prototype, \"startWidth\", {\r\n /**\r\n * @return Width (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startWidth\");\r\n },\r\n /**\r\n * Width, in pixels, of the clock hand's inner end. (base)\r\n *\r\n * @default 5\r\n * @param value Width (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"startWidth\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClockHand.prototype, \"endWidth\", {\r\n /**\r\n * @return Width (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endWidth\");\r\n },\r\n /**\r\n * Width, in pixels, of the clock hand's outer end. (tip)\r\n *\r\n * @default 1\r\n * @param value Width (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"endWidth\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClockHand.prototype, \"rotationDirection\", {\r\n /**\r\n * @return rotationDirection\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"rotationDirection\");\r\n },\r\n /**\r\n * Rotation direction\r\n *\r\n * @default any\r\n * @param value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"rotationDirection\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Moves clock hand to particular value.\r\n *\r\n * If `duration` is set to a number in milliseconds, the hand will move\r\n * to the new position gracefully, rather than jumping rigth to it.\r\n *\r\n * Alternatively, you can also set `value` directly.\r\n *\r\n * @param value New value\r\n * @param duration Animation duration (ms)\r\n * @param easing Animation easing function\r\n */\r\n ClockHand.prototype.showValue = function (value, duration, easing) {\r\n this._value = value;\r\n if (value != undefined) {\r\n if (!$type.isNumber(duration)) {\r\n duration = 0;\r\n }\r\n if (this.axis) {\r\n var renderer = this.axis.renderer;\r\n var newAngle = renderer.positionToAngle(this.axis.anyToPosition(value));\r\n var currentAngle = this.rotation;\r\n if (this.rotationDirection == \"clockWise\") {\r\n if (newAngle < currentAngle) {\r\n this.rotation = currentAngle - 360;\r\n }\r\n }\r\n if (this.rotationDirection == \"counterClockWise\") {\r\n if (newAngle > currentAngle) {\r\n this.rotation = currentAngle + 360;\r\n }\r\n }\r\n this.animate({ property: \"rotation\", to: newAngle }, duration, easing);\r\n }\r\n }\r\n };\r\n Object.defineProperty(ClockHand.prototype, \"currentPosition\", {\r\n /**\r\n * Returns hand's relative position on axis\r\n */\r\n get: function () {\r\n if (this.axis) {\r\n var renderer = this.axis.renderer;\r\n return renderer.angleToPosition(this.rotation);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClockHand.prototype, \"value\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this._value;\r\n },\r\n /**\r\n * A current value clock hand is pointing to.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.showValue(value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClockHand.prototype, \"axis\", {\r\n /**\r\n * @return Axis\r\n */\r\n get: function () {\r\n return this._axis.get();\r\n },\r\n /**\r\n * An Axis clock hand is associated with.\r\n *\r\n * Hand's `value` relates to values on the Axis.\r\n *\r\n * @param axis Axis\r\n */\r\n set: function (axis) {\r\n if (this.axis != axis) {\r\n this._axis.set(axis, new MultiDisposer([\r\n axis.events.on(\"datavalidated\", this.updateValue, this, false),\r\n axis.events.on(\"datarangechanged\", this.updateValue, this, false),\r\n axis.events.on(\"dataitemsvalidated\", this.updateValue, this, false),\r\n axis.events.on(\"propertychanged\", this.invalidate, this, false)\r\n ]));\r\n }\r\n if (axis) {\r\n var chart = axis.chart;\r\n if (chart) {\r\n this.rotation = chart.startAngle;\r\n }\r\n }\r\n this.parent = axis.renderer;\r\n this.zIndex = 5;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Triggers `value` accessor, so that Hand animates to new position, in case\r\n * value has changed.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ClockHand.prototype.updateValue = function () {\r\n this.value = this.value;\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 ClockHand.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Connect clock hands with axes\r\n if ($type.hasValue(config.axis) && $type.isString(config.axis) && this.map.hasKey(config.axis)) {\r\n config.axis = this.map.getKey(config.axis);\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n return ClockHand;\r\n}(Container));\r\nexport { ClockHand };\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[\"ClockHand\"] = ClockHand;\r\n//# sourceMappingURL=ClockHand.js.map","/**\r\n * Module that defines everything related to building Columns.\r\n * It is a container which has column element which is a RoundedRectangle.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../core/Container\";\r\nimport { RoundedRectangle } from \"../../core/elements/RoundedRectangle\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport * as $math from \"../../core/utils/Math\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to creates Columns.\r\n *\r\n * @see {@link IColumnEvents} for a list of available events\r\n * @see {@link IColumnAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar Column = /** @class */ (function (_super) {\r\n __extends(Column, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Column() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Column\";\r\n _this.width = percent(80);\r\n _this.height = percent(80);\r\n //this.isMeasured = true; // for correct position of the tooltip\r\n _this.events.disableType(\"transformed\"); // not to bug parent\r\n _this.applyOnClones = true;\r\n _this.strokeOpacity = 1;\r\n _this.layout = \"none\";\r\n _this.createAssets();\r\n // otherwise users will have to set layout themselves if they'll want to align, scale etc children\r\n _this.events.on(\"childadded\", _this.handleKidAdded, _this, false);\r\n return _this;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n Column.prototype.handleKidAdded = function () {\r\n if (this.layout == \"none\") {\r\n this.layout = \"absolute\";\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Column.prototype.createAssets = function () {\r\n this.column = this.createChild(RoundedRectangle);\r\n this.column.shouldClone = false;\r\n this.column.isMeasured = false;\r\n this.column.cornerRadius(0, 0, 0, 0);\r\n this._disposers.push(this.column);\r\n };\r\n /**\r\n * @ignore Exclude from docs\r\n */\r\n Column.prototype.validate = function () {\r\n _super.prototype.validate.call(this);\r\n var column = this.column;\r\n if (column) {\r\n column.width = $math.min(this.pixelWidth, this.maxWidth);\r\n column.height = $math.min(this.pixelHeight, this.maxHeight);\r\n if (column.invalid) {\r\n column.validate(); // important!\r\n }\r\n }\r\n };\r\n /**\r\n * Copies all parameters from another [[Column]].\r\n *\r\n * @param source Source Column\r\n */\r\n Column.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (this.column) {\r\n this.column.copyFrom(source.column);\r\n }\r\n };\r\n Object.defineProperty(Column.prototype, \"bbox\", {\r\n /**\r\n * Returns bounding box (square) for this element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n get: function () {\r\n if (this.definedBBox) {\r\n return this.definedBBox;\r\n }\r\n if (this.column) {\r\n return { x: 0, y: 0, width: this.column.measuredWidth, height: this.column.measuredHeight };\r\n }\r\n else {\r\n return { x: 0, y: 0, width: $math.min(this.pixelWidth, this.maxWidth), height: $math.min(this.pixelHeight, this.maxHeight) };\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Column;\r\n}(Container));\r\nexport { Column };\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[\"Column\"] = Column;\r\n//# sourceMappingURL=Column.js.map","/**\r\n * Module that defines everything related to building 3D Columns.\r\n * It is a container which has column3D element which is a Rectangle3D.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Column } from \"./Column\";\r\nimport { Rectangle3D } from \"../../core/elements/3d/Rectangle3D\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to creates Column3Ds.\r\n *\r\n * @see {@link IColumn3DEvents} for a list of available events\r\n * @see {@link IColumn3DAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar Column3D = /** @class */ (function (_super) {\r\n __extends(Column3D, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Column3D() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Column3D\";\r\n return _this;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n Column3D.prototype.createAssets = function () {\r\n this.column3D = this.createChild(Rectangle3D);\r\n this.column3D.shouldClone = false;\r\n this.column3D.strokeOpacity = 0;\r\n // some dirty hack so that if user access column, it won't get error\r\n this.column = this.column3D;\r\n };\r\n /**\r\n * @ignore Exclude from docs\r\n */\r\n Column3D.prototype.validate = function () {\r\n _super.prototype.validate.call(this);\r\n if (this.column3D) {\r\n this.column3D.width = this.pixelWidth;\r\n this.column3D.height = this.pixelHeight;\r\n if (this.column3D.invalid) {\r\n this.column3D.validate();\r\n }\r\n }\r\n };\r\n /**\r\n * Copies all parameters from another [[Column3D]].\r\n *\r\n * @param source Source Column3D\r\n */\r\n Column3D.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (this.column3D) {\r\n this.column3D.copyFrom(source.column3D);\r\n }\r\n };\r\n /**\r\n * Sets actual `fill` property on the SVG element, including applicable color\r\n * modifiers.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Fill\r\n */\r\n Column3D.prototype.setFill = function (value) {\r\n _super.prototype.setFill.call(this, value);\r\n this.column.fill = value;\r\n };\r\n return Column3D;\r\n}(Column));\r\nexport { Column3D };\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[\"Column3D\"] = Column3D;\r\n//# sourceMappingURL=Column3D.js.map","/**\r\n * Module that defines everything related to building Cone Columns.\r\n * It is a container which has coneColumn element which is a Cone.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Column } from \"./Column\";\r\nimport { Cone } from \"../../core/elements/3d/Cone\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to creates ConeColumns.\r\n *\r\n * @see {@link IConeColumnEvents} for a list of available events\r\n * @see {@link IConeColumnAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar ConeColumn = /** @class */ (function (_super) {\r\n __extends(ConeColumn, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ConeColumn() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ConeColumn\";\r\n return _this;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n ConeColumn.prototype.createAssets = function () {\r\n this.coneColumn = this.createChild(Cone);\r\n this.coneColumn.shouldClone = false;\r\n // some dirty hack so that if user access column, it won't get error\r\n this.column = this.coneColumn;\r\n };\r\n /**\r\n * Copies all parameters from another [[ConeColumn]].\r\n *\r\n * @param source Source ConeColumn\r\n */\r\n ConeColumn.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (this.coneColumn) {\r\n this.coneColumn.copyFrom(source.coneColumn);\r\n }\r\n };\r\n return ConeColumn;\r\n}(Column));\r\nexport { ConeColumn };\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[\"ConeColumn\"] = ConeColumn;\r\n//# sourceMappingURL=ConeColumn.js.map","/**\r\n * Module that defines everything related to building Curved Columns.\r\n * It is a container which has CurvedColumn element which is a Sprite.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Column } from \"./Column\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $smoothing from \"../../core/rendering/Smoothing\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to creates CurvedColumns.\r\n *\r\n * @see {@link ICurvedColumnEvents} for a list of available events\r\n * @see {@link ICurvedColumnAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar CurvedColumn = /** @class */ (function (_super) {\r\n __extends(CurvedColumn, _super);\r\n /**\r\n * Constructor\r\n */\r\n function CurvedColumn() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"CurvedColumn\";\r\n return _this;\r\n }\r\n /**\r\n * [createAssets description]\r\n *\r\n * @todo Description\r\n * @ignore Exclude from docs\r\n */\r\n CurvedColumn.prototype.createAssets = function () {\r\n this.curvedColumn = this.createChild(Sprite);\r\n this.curvedColumn.shouldClone = false;\r\n this.setPropertyValue(\"tension\", 0.7);\r\n this.width = percent(120);\r\n this.height = percent(120);\r\n // some dirty hack so that if user access column, it won't get error\r\n this.column = this.curvedColumn;\r\n };\r\n /**\r\n * Draws the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n CurvedColumn.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n var w = this.realWidth;\r\n var h = this.realHeight;\r\n var x = this.realX - this.pixelX;\r\n var y = this.realY - this.pixelY;\r\n var points;\r\n // TODO can this be removed ?\r\n $utils.used(this.width);\r\n var tensionX = 1;\r\n var tensionY = 1;\r\n if (this.orientation == \"vertical\") {\r\n tensionX = this.tension;\r\n points = [{ x: 0, y: h + y }, { x: w / 2, y: y }, { x: w, y: h + y }];\r\n }\r\n else {\r\n tensionY = this.tension;\r\n h = Math.abs(h);\r\n points = [{ x: x, y: h }, { x: x + w, y: h / 2 }, { x: x, y: 0 }];\r\n }\r\n var path = $path.moveTo(points[0]) + new $smoothing.Tension(tensionX, tensionY).smooth(points);\r\n this.column.path = path;\r\n };\r\n /**\r\n * Copies all parameters from another [[CurvedColumn]].\r\n *\r\n * @param source Source CurvedColumn\r\n */\r\n CurvedColumn.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (this.curvedColumn) {\r\n this.curvedColumn.copyFrom(source.curvedColumn);\r\n }\r\n };\r\n Object.defineProperty(CurvedColumn.prototype, \"tension\", {\r\n /**\r\n * @return Tension (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tension\");\r\n },\r\n /**\r\n * Horizontal tension of the curve.\r\n *\r\n * Tension defines how \"lose\" the line will be.\r\n *\r\n * 1 is the maximum tension which would result in pointy columns with\r\n * straight edges.\r\n *\r\n * The smaller the tension th wider the column will be.\r\n *\r\n * @default 0.7\r\n * @param value tension (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"tension\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CurvedColumn.prototype, \"orientation\", {\r\n /**\r\n * Orientation\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"orientation\");\r\n },\r\n /**\r\n * Orientation of the column.\r\n *\r\n * Available options: \"vertical\" (default) and \"horizontal\".\r\n *\r\n * @default \"vertical\"\r\n * @param value Orientation\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"orientation\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return CurvedColumn;\r\n}(Column));\r\nexport { CurvedColumn };\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[\"CurvedColumn\"] = CurvedColumn;\r\n//# sourceMappingURL=CurvedColumn.js.map","/**\r\n * Bullet module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Bullet } from \"./Bullet\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a bullet with a textual label.\r\n *\r\n * Uses [[Label]] instance to draw the label, so the label itself is\r\n * configurable.\r\n *\r\n * @see {@link IBulletEvents} for a list of available events\r\n * @see {@link IBulletAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar ErrorBullet = /** @class */ (function (_super) {\r\n __extends(ErrorBullet, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ErrorBullet() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ErrorBullet\";\r\n _this.errorLine = _this.createChild(Sprite);\r\n _this.errorLine.shouldClone = false;\r\n _this.width = 20;\r\n _this.height = 20;\r\n _this.strokeOpacity = 1;\r\n _this.isDynamic = true;\r\n return _this;\r\n }\r\n ErrorBullet.prototype.validatePosition = function () {\r\n _super.prototype.validatePosition.call(this);\r\n var w = this.pixelWidth / 2;\r\n var h = this.pixelHeight / 2;\r\n this.errorLine.path = $path.moveTo({ x: -w, y: -h }) + $path.lineTo({ x: w, y: -h }) + $path.moveTo({ x: 0, y: -h }) + $path.lineTo({ x: 0, y: h }) + $path.moveTo({ x: -w, y: h }) + $path.lineTo({ x: w, y: h });\r\n };\r\n /**\r\n * Copies all proprities and related stuff from another instance of\r\n * [[ErrorBullet]].\r\n *\r\n * @param source Source element\r\n */\r\n ErrorBullet.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.errorLine.copyFrom(source.errorLine);\r\n };\r\n return ErrorBullet;\r\n}(Bullet));\r\nexport { ErrorBullet };\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[\"ErrorBullet\"] = ErrorBullet;\r\n//# sourceMappingURL=ErrorBullet.js.map","/**\r\n * FlowDiagramLink module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { LinearGradient } from \"../../core/rendering/fills/LinearGradient\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Bullet } from \"../elements/Bullet\";\r\nimport { Color } from \"../../core/utils/Color\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { Polyline } from \"../../core/elements/Polyline\";\r\nimport { Line } from \"../../core/elements/Line\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * This class creates a link (waved color-filled line) between two nodes in a\r\n * Flow Diagram.\r\n *\r\n * @see {@link IFlowDiagramLinkEvents} for a list of available events\r\n * @see {@link IFlowDiagramLinkAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar FlowDiagramLink = /** @class */ (function (_super) {\r\n __extends(FlowDiagramLink, _super);\r\n /**\r\n * Constructor\r\n */\r\n function FlowDiagramLink() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"FlowDiagramLink\";\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.maskBullets = false;\r\n _this.colorMode = \"fromNode\";\r\n _this.layout = \"none\";\r\n _this.isMeasured = false;\r\n _this.startAngle = 0;\r\n _this.endAngle = 0;\r\n _this.strokeOpacity = 0;\r\n // this is very important, otherwise the container will be shifted\r\n _this.verticalCenter = \"none\";\r\n _this.horizontalCenter = \"none\";\r\n _this.tooltipText = \"{fromName}→{toName}:{value.value}\";\r\n _this.tooltipLocation = 0.5;\r\n _this.link = _this.createChild(Sprite);\r\n _this.link.shouldClone = false;\r\n _this.link.setElement(_this.paper.add(\"path\"));\r\n _this.link.isMeasured = false;\r\n _this.fillOpacity = 0.2;\r\n _this.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Positions bullets\r\n * @ignore\r\n */\r\n FlowDiagramLink.prototype.positionBullets = function () {\r\n var _this = this;\r\n $iter.each(this.bullets.iterator(), function (bullet) {\r\n bullet.parent = _this.bulletsContainer;\r\n bullet.maxWidth = _this.maxWidth;\r\n bullet.maxHeight = _this.maxHeight;\r\n _this.positionBullet(bullet);\r\n });\r\n };\r\n Object.defineProperty(FlowDiagramLink.prototype, \"bulletsContainer\", {\r\n /**\r\n * Bullets container\r\n */\r\n get: function () {\r\n if (!this._bulletsContainer) {\r\n var bulletsContainer = this.createChild(Container);\r\n bulletsContainer.shouldClone = false;\r\n bulletsContainer.layout = \"none\";\r\n this._bulletsContainer = bulletsContainer;\r\n }\r\n return this._bulletsContainer;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramLink.prototype, \"bulletsMask\", {\r\n /**\r\n * Bullets mask sprite\r\n */\r\n get: function () {\r\n if (!this._bulletsMask) {\r\n var bulletsMask = this.createChild(Sprite);\r\n bulletsMask.shouldClone = false;\r\n bulletsMask.setElement(this.paper.add(\"path\"));\r\n bulletsMask.isMeasured = false;\r\n this._bulletsMask = bulletsMask;\r\n }\r\n return this._bulletsMask;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Positions bullets at relative bullet.locationX position on the link.\r\n * @ignore\r\n */\r\n FlowDiagramLink.prototype.positionBullet = function (bullet) {\r\n var location = bullet.locationX;\r\n if (!$type.isNumber(location)) {\r\n location = bullet.locationY;\r\n }\r\n if (!$type.isNumber(location)) {\r\n location = 0.5;\r\n }\r\n var point = this.middleLine.positionToPoint(location);\r\n bullet.moveTo(point);\r\n var rotationField = bullet.propertyFields.rotation;\r\n var angle;\r\n if (bullet.dataItem) {\r\n var dataContext = bullet.dataItem.dataContext;\r\n angle = dataContext[rotationField];\r\n }\r\n if (!$type.isNumber(angle)) {\r\n angle = point.angle;\r\n }\r\n bullet.rotation = angle;\r\n };\r\n Object.defineProperty(FlowDiagramLink.prototype, \"startAngle\", {\r\n /**\r\n * @return Start angle\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startAngle\");\r\n },\r\n /**\r\n * [startAngle description]\r\n *\r\n * @todo Description\r\n * @param value Start angle\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"startAngle\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramLink.prototype, \"endAngle\", {\r\n /**\r\n * @return End angle\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endAngle\");\r\n },\r\n /**\r\n * [endAngle description]\r\n *\r\n * @todo Description\r\n * @param value End angle\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"endAngle\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramLink.prototype, \"colorMode\", {\r\n /**\r\n * Fill mode\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"colorMode\");\r\n },\r\n /**\r\n * Should link be filled with a solid color, color of from node, color of toNode or gradient between node colors.\r\n * Some of the links, like ChordLink does not support gradiens well.\r\n *\r\n * @param value Fill mode\r\n */\r\n set: function (value) {\r\n if (value == \"gradient\") {\r\n var color = this.fill;\r\n this.gradient.stops.clear();\r\n if (color instanceof Color) {\r\n this.gradient.addColor(color);\r\n this.gradient.addColor(color);\r\n }\r\n this.fill = this.gradient;\r\n this.stroke = this.gradient;\r\n }\r\n this.setPropertyValue(\"colorMode\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramLink.prototype, \"maskBullets\", {\r\n /**\r\n * @return mask bullets value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maskBullets\");\r\n },\r\n /**\r\n * Should link bullets be masked or not\r\n *\r\n * @param value\r\n * @default false\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"maskBullets\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramLink.prototype, \"tooltipLocation\", {\r\n /**\r\n * Tooltip location value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tooltipLocation\");\r\n },\r\n /**\r\n * Relative location of a tooltip.\r\n * @default 0.5\r\n *\r\n * @param value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"tooltipLocation\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Adds color steps in the link gradient.\r\n *\r\n * @param value Fill option\r\n */\r\n FlowDiagramLink.prototype.setFill = function (value) {\r\n _super.prototype.setFill.call(this, value);\r\n var gradient = this._gradient;\r\n if (gradient && value instanceof Color) {\r\n gradient.stops.clear();\r\n gradient.addColor(value);\r\n gradient.addColor(value);\r\n }\r\n };\r\n /**\r\n * Updates bounding box based on element dimension settings.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n FlowDiagramLink.prototype.measureElement = function () {\r\n };\r\n Object.defineProperty(FlowDiagramLink.prototype, \"bullets\", {\r\n /**\r\n * List of bullets\r\n *\r\n * @return [description]\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._bullets) {\r\n this._bullets = new ListTemplate(new Bullet());\r\n this._disposers.push(new ListDisposer(this._bullets));\r\n this._disposers.push(this._bullets.template);\r\n this._bullets.events.on(\"inserted\", function (event) {\r\n event.newValue.events.on(\"propertychanged\", function (event) {\r\n if (event.property == \"locationX\" || event.property == \"locationY\") {\r\n _this.positionBullet(event.target);\r\n }\r\n }, undefined, false);\r\n }, undefined, false);\r\n }\r\n return this._bullets;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies properties from another [[FlowDiagramLink]].\r\n *\r\n * @param source Source link\r\n */\r\n FlowDiagramLink.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.bullets.copyFrom(source.bullets);\r\n var middleLine = this.middleLine;\r\n if (middleLine) {\r\n if (middleLine instanceof Line && source.middleLine instanceof Line) {\r\n middleLine.copyFrom(source.middleLine);\r\n }\r\n if (middleLine instanceof Polyline && source.middleLine instanceof Polyline) {\r\n middleLine.copyFrom(source.middleLine);\r\n }\r\n }\r\n this.link.copyFrom(source.link);\r\n };\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Tooltip X (px)\r\n */\r\n FlowDiagramLink.prototype.getTooltipX = function () {\r\n if (this.middleLine) {\r\n return this.middleLine.positionToPoint(this.tooltipLocation).x;\r\n }\r\n };\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Tooltip Y (px)\r\n */\r\n FlowDiagramLink.prototype.getTooltipY = function () {\r\n if (this.middleLine) {\r\n return this.middleLine.positionToPoint(this.tooltipLocation).y;\r\n }\r\n };\r\n Object.defineProperty(FlowDiagramLink.prototype, \"gradient\", {\r\n /**\r\n * A gradiend instance that is used to provided colored gradient fills for\r\n * the Flow link.\r\n */\r\n get: function () {\r\n if (!this._gradient) {\r\n this._gradient = new LinearGradient();\r\n }\r\n return this._gradient;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return FlowDiagramLink;\r\n}(Container));\r\nexport { FlowDiagramLink };\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[\"FlowDiagramLink\"] = FlowDiagramLink;\r\n//# sourceMappingURL=FlowDiagramLink.js.map","/**\r\n * FlowDiagramNode module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../core/Container\";\r\nimport { visualProperties } from \"../../core/Sprite\";\r\nimport { List } from \"../../core/utils/List\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $string from \"../../core/utils/String\";\r\nimport * as $order from \"../../core/utils/Order\";\r\nimport * as $number from \"../../core/utils/Number\";\r\nimport { RoundedRectangle } from \"../../core/elements/RoundedRectangle\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport { LegendSettings } from \"../Legend\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a node in a Flow Diagram.\r\n *\r\n * A Flow node is a block with a value, which represents its size on the\r\n * diagram.\r\n *\r\n * Nodes are connected via [[FlowLink]] elements.\r\n *\r\n * @see {@link IFlowDiagramNodeEvents} for a list of available events\r\n * @see {@link IFlowDiagramNodeAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar FlowDiagramNode = /** @class */ (function (_super) {\r\n __extends(FlowDiagramNode, _super);\r\n /**\r\n * Constructor\r\n */\r\n function FlowDiagramNode() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Settings for the appearance of the related legend items.\r\n */\r\n _this.legendSettings = new LegendSettings();\r\n _this.className = \"FlowDiagramNode\";\r\n _this.isMeasured = false;\r\n // TODO can this be removed ?\r\n new InterfaceColorSet();\r\n _this.draggable = true;\r\n _this.inert = true;\r\n _this.setStateOnChildren = true;\r\n _this.events.on(\"positionchanged\", _this.invalidateLinks, _this, false);\r\n _this.events.on(\"sizechanged\", _this.invalidateLinks, _this, false);\r\n return _this;\r\n //this.events.on(\"hit\", this.handleHit, this, false);\r\n }\r\n /**\r\n * @ignore\r\n */\r\n FlowDiagramNode.prototype.handleHit = function (event) {\r\n if (this.isHidden || this.isHiding) {\r\n this.show();\r\n }\r\n else {\r\n this.hide();\r\n }\r\n };\r\n /**\r\n * Shows hidden node.\r\n *\r\n * @param duration Duration of reveal animation (ms)\r\n * @return Animation\r\n */\r\n FlowDiagramNode.prototype.show = function (duration) {\r\n var animation = _super.prototype.show.call(this, duration);\r\n this.outgoingDataItems.each(function (dataItem) {\r\n if (!dataItem.toNode || (dataItem.toNode && !dataItem.toNode.isHidden)) {\r\n dataItem.setWorkingValue(\"value\", dataItem.getValue(\"value\"), duration);\r\n dataItem.link.show();\r\n }\r\n });\r\n this.incomingDataItems.each(function (dataItem) {\r\n if (!dataItem.fromNode || (dataItem.fromNode && !dataItem.fromNode.isHidden)) {\r\n dataItem.setWorkingValue(\"value\", dataItem.getValue(\"value\"), duration);\r\n dataItem.link.show();\r\n }\r\n });\r\n return animation;\r\n };\r\n /**\r\n * Hides node.\r\n *\r\n * @param duration Duration of hiding animation (ms)\r\n * @return Animation\r\n */\r\n FlowDiagramNode.prototype.hide = function (duration) {\r\n var animation = _super.prototype.hide.call(this, duration);\r\n this.outgoingDataItems.each(function (dataItem) {\r\n dataItem.setWorkingValue(\"value\", 0, duration);\r\n dataItem.link.hide();\r\n });\r\n this.incomingDataItems.each(function (dataItem) {\r\n dataItem.setWorkingValue(\"value\", 0, duration);\r\n dataItem.link.hide();\r\n });\r\n return animation;\r\n };\r\n /**\r\n * Marks node as invalid, for redrawal in the next update cycle.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n FlowDiagramNode.prototype.validate = function () {\r\n if (!this.isDisposed()) {\r\n _super.prototype.validate.call(this);\r\n this.invalidateLinks();\r\n }\r\n };\r\n /**\r\n * Invalidates all links, attached to this node.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n FlowDiagramNode.prototype.invalidateLinks = function () {\r\n var _this = this;\r\n this.outgoingDataItems.each(function (dataItem) {\r\n var link = dataItem.link;\r\n if (link.colorMode == \"fromNode\") {\r\n link.fill = link.dataItem.fromNode.color;\r\n }\r\n if (link.colorMode == \"gradient\") {\r\n link.fill = link.gradient;\r\n link.stroke = link.gradient;\r\n var stop_1 = link.gradient.stops.getIndex(0);\r\n if (stop_1) {\r\n stop_1.color = _this.color;\r\n link.gradient.validate();\r\n }\r\n }\r\n });\r\n this.incomingDataItems.each(function (dataItem) {\r\n var link = dataItem.link;\r\n if (link.colorMode == \"toNode\") {\r\n link.fill = link.dataItem.toNode.color;\r\n }\r\n if (link.colorMode == \"gradient\") {\r\n link.fill = link.gradient;\r\n link.stroke = link.gradient;\r\n var stop_2 = link.gradient.stops.getIndex(1);\r\n if (stop_2) {\r\n stop_2.color = _this.color;\r\n link.gradient.validate();\r\n }\r\n }\r\n });\r\n };\r\n Object.defineProperty(FlowDiagramNode.prototype, \"incomingDataItems\", {\r\n /**\r\n * List of incoming items (links).\r\n *\r\n * @readonly\r\n * @return Incoming items\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._incomingDataItems) {\r\n var incomingDataItems = new List();\r\n incomingDataItems.events.on(\"inserted\", function () {\r\n if (_this.chart.sortBy == \"name\") {\r\n _this._incomingSorted = $iter.sort(_this._incomingDataItems.iterator(), function (x, y) { return $string.order(x.fromName, y.fromName); });\r\n }\r\n else if (_this.chart.sortBy == \"value\") {\r\n _this._incomingSorted = $iter.sort(_this._incomingDataItems.iterator(), function (x, y) { return $order.reverse($number.order(x.value, y.value)); });\r\n }\r\n else {\r\n _this._incomingSorted = _this._incomingDataItems.iterator();\r\n }\r\n }, undefined, false);\r\n this._incomingDataItems = incomingDataItems;\r\n }\r\n return this._incomingDataItems;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramNode.prototype, \"outgoingDataItems\", {\r\n /**\r\n * List of outgoing items (links).\r\n *\r\n * @readonly\r\n * @return Outgoing items\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._outgoingDataItems) {\r\n var outgoingDataItems = new List();\r\n outgoingDataItems.events.on(\"inserted\", function () {\r\n if (_this.chart.sortBy == \"name\") {\r\n _this._outgoingSorted = $iter.sort(_this._outgoingDataItems.iterator(), function (x, y) { return $string.order(x.fromName, y.fromName); });\r\n }\r\n else if (_this.chart.sortBy == \"value\") {\r\n _this._outgoingSorted = $iter.sort(_this._outgoingDataItems.iterator(), function (x, y) { return $order.reverse($number.order(x.value, y.value)); });\r\n }\r\n else {\r\n _this._outgoingSorted = _this._outgoingDataItems.iterator();\r\n }\r\n }, undefined, false);\r\n this._outgoingDataItems = outgoingDataItems;\r\n }\r\n return this._outgoingDataItems;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramNode.prototype, \"name\", {\r\n /**\r\n * @return Name\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"name\");\r\n },\r\n /**\r\n * A name of the node.\r\n *\r\n * @param value Name\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"name\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramNode.prototype, \"total\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"total\");\r\n },\r\n /**\r\n * Sum of all incoming+outgoing link values\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"total\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramNode.prototype, \"totalIncoming\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"totalIncoming\");\r\n },\r\n /**\r\n * Sum of all incomming link values.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"totalIncoming\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramNode.prototype, \"totalOutgoing\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"totalOutgoing\");\r\n },\r\n /**\r\n * Sum of all outgoing link values.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"totalOutgoing\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramNode.prototype, \"color\", {\r\n /**\r\n * @return Color\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"color\");\r\n },\r\n /**\r\n * Node's color.\r\n *\r\n * @param value Color\r\n */\r\n set: function (value) {\r\n this.setColorProperty(\"color\", value);\r\n if (this._background) {\r\n this._background.fill = value;\r\n }\r\n this.fill = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates elements in related legend container, that mimics the look of this\r\n * Series.\r\n *\r\n * @ignore Exclude from docs\r\n * @param marker Legend item container\r\n */\r\n FlowDiagramNode.prototype.createLegendMarker = function (marker) {\r\n var w = marker.pixelWidth;\r\n var h = marker.pixelHeight;\r\n marker.removeChildren();\r\n var column = marker.createChild(RoundedRectangle);\r\n column.shouldClone = false;\r\n $object.copyProperties(this, column, visualProperties);\r\n column.stroke = this.fill;\r\n column.copyFrom(this);\r\n column.padding(0, 0, 0, 0); // if columns will have padding (which is often), legend marker will be very narrow\r\n column.width = w;\r\n column.height = h;\r\n var legendDataItem = marker.dataItem;\r\n legendDataItem.color = column.fill;\r\n legendDataItem.colorOrig = column.fill;\r\n };\r\n Object.defineProperty(FlowDiagramNode.prototype, \"legendDataItem\", {\r\n /**\r\n * @return Data item\r\n */\r\n get: function () {\r\n return this._legendDataItem;\r\n },\r\n /**\r\n * Legend data item that corresponds to this series.\r\n *\r\n * @param value Data item\r\n */\r\n set: function (value) {\r\n this._legendDataItem = value;\r\n this._legendDataItem.itemContainer.deepInvalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return FlowDiagramNode;\r\n}(Container));\r\nexport { FlowDiagramNode };\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[\"FlowDiagramNode\"] = FlowDiagramNode;\r\n//# sourceMappingURL=FlowDiagramNode.js.map","/**\r\n * Module that defines everything related to building Funnel slices.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../core/Container\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to create [[FunnelSlice]] elements.\r\n *\r\n * @see {@link IFunnelSliceEvents} for a list of available events\r\n * @see {@link IFunnelSliceAdapters} for a list of available adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/sliced-chart/} for documentation\r\n * @important\r\n */\r\nvar FunnelSlice = /** @class */ (function (_super) {\r\n __extends(FunnelSlice, _super);\r\n /**\r\n * Constructor\r\n */\r\n function FunnelSlice() {\r\n var _this = _super.call(this) || this;\r\n _this.slice = _this.createChild(Sprite);\r\n _this.slice.shouldClone = false;\r\n _this.slice.setElement(_this.paper.add(\"path\"));\r\n _this.slice.isMeasured = false;\r\n _this.orientation = \"vertical\";\r\n _this.bottomWidth = percent(100);\r\n _this.topWidth = percent(100);\r\n _this.isMeasured = false;\r\n _this.width = 10;\r\n _this.height = 10;\r\n _this.expandDistance = 0;\r\n _this.className = \"FunnelSlice\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the element.\r\n */\r\n FunnelSlice.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n var pt = this.pixelPaddingTop;\r\n var pb = this.pixelPaddingBottom;\r\n var pr = this.pixelPaddingRight;\r\n var pl = this.pixelPaddingLeft;\r\n var w = this.pixelWidth - pr - pl;\r\n var h = this.pixelHeight - pt - pb;\r\n var ed = this.expandDistance;\r\n var path = \"\";\r\n if (this.orientation == \"vertical\") {\r\n var tw = $utils.relativeToValue(this.topWidth, w);\r\n var bw = $utils.relativeToValue(this.bottomWidth, w);\r\n var tl = { x: (w - tw) / 2 + pl, y: pt };\r\n var tr = { x: (w + tw) / 2 + pl, y: pt };\r\n var br = { x: (w + bw) / 2 + pl, y: pt + h };\r\n var bl = { x: (w - bw) / 2 + pl, y: pt + h };\r\n var cpr = { x: tr.x + (br.x - tr.x) / 2 + ed * h, y: tr.y + 0.5 * h };\r\n var cpl = { x: tl.x + (bl.x - tl.x) / 2 - ed * h, y: tl.y + 0.5 * h };\r\n var qp1 = $path.lineTo(br);\r\n var qp2 = $path.lineTo(tl);\r\n if (ed != 0) {\r\n qp1 = $path.quadraticCurveTo(br, cpr);\r\n qp2 = $path.quadraticCurveTo(tl, cpl);\r\n }\r\n path = $path.moveTo(tl) + $path.lineTo(tr) + qp1 + $path.lineTo(bl) + qp2;\r\n this.tickPoint = { x: tr.x + (br.x - tr.x) / 2, y: tr.y + (br.y - tr.y) / 2 };\r\n }\r\n else {\r\n var tw = $utils.relativeToValue(this.topWidth, h);\r\n var bw = $utils.relativeToValue(this.bottomWidth, h);\r\n var tt = { x: pl, y: (h - tw) / 2 + pt };\r\n var tb = { x: pl, y: (h + tw) / 2 + pt };\r\n var bt = { x: pl + w, y: (h - bw) / 2 + pt };\r\n var bb = { x: pl + w, y: (h + bw) / 2 + pt };\r\n var cpr = { y: tt.y + (bt.y - tt.y) / 2 - ed * w, x: tt.x + 0.5 * w };\r\n var cpl = { y: tb.y + (bb.y - tb.y) / 2 + ed * w, x: tb.x + 0.5 * w };\r\n var qp1 = $path.lineTo(bt);\r\n var qp2 = $path.lineTo(tb);\r\n if (ed != 0) {\r\n qp1 = $path.quadraticCurveTo(bt, cpr);\r\n qp2 = $path.quadraticCurveTo(tb, cpl);\r\n }\r\n path = $path.moveTo(tb) + $path.lineTo(tt) + qp1 + $path.lineTo(bb) + qp2;\r\n this.tickPoint = { y: tb.y + (bb.y - tb.y) / 2, x: tb.x + (bb.x - tb.x) / 2 };\r\n }\r\n this.slice.path = path;\r\n this.invalidateLayout();\r\n };\r\n FunnelSlice.prototype.getPoint = function (locationX, locationY) {\r\n var pt = this.pixelPaddingTop;\r\n var pb = this.pixelPaddingBottom;\r\n var pr = this.pixelPaddingRight;\r\n var pl = this.pixelPaddingLeft;\r\n var w = this.pixelWidth - pr - pl;\r\n var h = this.pixelHeight - pt - pb;\r\n if (this.orientation == \"vertical\") {\r\n var tw = $utils.relativeToValue(this.topWidth, w);\r\n var bw = $utils.relativeToValue(this.bottomWidth, w);\r\n var tl = { x: (w - tw) / 2 + pl, y: pt };\r\n var tr = { x: (w + tw) / 2 + pl, y: pt };\r\n var br = { x: (w + bw) / 2 + pl, y: pt + h };\r\n var bl = { x: (w - bw) / 2 + pl, y: pt + h };\r\n var mlx = tl.x + (bl.x - tl.x) * locationY;\r\n var mrx = tr.x + (br.x - tr.x) * locationY;\r\n return { x: mlx + (mrx - mlx) * locationX, y: tr.y + (br.y - tr.y) * locationY };\r\n }\r\n else {\r\n var tw = $utils.relativeToValue(this.topWidth, h);\r\n var bw = $utils.relativeToValue(this.bottomWidth, h);\r\n var tt = { x: pl, y: (h - tw) / 2 + pt };\r\n var tb = { x: pl, y: (h + tw) / 2 + pt };\r\n var bt = { x: pl + w, y: (h - bw) / 2 + pt };\r\n var bb = { x: pl + w, y: (h + bw) / 2 + pt };\r\n var mty = tt.y + (bt.y - tt.y) * locationX;\r\n var mby = tb.y + (bb.y - tb.y) * locationX;\r\n return { y: mty + (mby - mty) * locationY, x: tt.x + (bt.x - tt.x) * locationX };\r\n }\r\n };\r\n Object.defineProperty(FunnelSlice.prototype, \"bottomWidth\", {\r\n /**\r\n * @return bottom width\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"bottomWidth\");\r\n },\r\n /**\r\n * Bottom width in pixels or percent.\r\n *\r\n * IMPORTANT: this setting might be used to set dimensions if you use slice\r\n * as a standalone element. If it's a part of [[FunnelSeries]] this setting\r\n * becomes read-only as it will be automatically reset by series.\r\n *\r\n * @param value Bottom width\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"bottomWidth\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FunnelSlice.prototype, \"topWidth\", {\r\n /**\r\n * @return Top width\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"topWidth\");\r\n },\r\n /**\r\n * Top width in pixels or percent.\r\n *\r\n * IMPORTANT: this setting might be used to set dimensions if you use slice\r\n * as a standalone element. If it's a part of [[FunnelSeries]] this setting\r\n * becomes read-only as it will be automatically reset by series.\r\n *\r\n * @param value Top width\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"topWidth\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FunnelSlice.prototype, \"orientation\", {\r\n /**\r\n * @return Orientation\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"orientation\");\r\n },\r\n /**\r\n * Orientation of the funnel slice: \"horizontal\" or \"vertical\".\r\n *\r\n * IMPORTANT: this setting might be used to set orintation if you use slice\r\n * as a standalone element. If it's a part of [[FunnelSeries]] this setting\r\n * becomes read-only as it will be automatically reset by series.\r\n *\r\n * @param value Orientation\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"orientation\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FunnelSlice.prototype, \"expandDistance\", {\r\n /**\r\n * @return expandDistance\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"expandDistance\");\r\n },\r\n /**\r\n * A relative distance slice's sides should be bent to. It's relative to the\r\n * height of the slice.\r\n *\r\n * Zero (default) will mean the sides will be perfectly straight.\r\n *\r\n * Positive value will make them bend outwards, resulting in \"puffed\" slices.\r\n *\r\n * Negative values will make them bend inwards.\r\n *\r\n * @default 0\r\n * @param {number}\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"expandDistance\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies all parameters from another [[Sprite]].\r\n *\r\n * @param source Source Sprite\r\n */\r\n FunnelSlice.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (this.slice) {\r\n this.slice.copyFrom(source.slice);\r\n }\r\n };\r\n return FunnelSlice;\r\n}(Container));\r\nexport { FunnelSlice };\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[\"FunnelSlice\"] = FunnelSlice;\r\n//# sourceMappingURL=FunnelSlice.js.map","/**\r\n * Funnel tick module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Tick } from \"../elements/Tick\";\r\nimport { MutableValueDisposer, MultiDisposer } from \"../../core/utils/Disposer\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws an tick line for a funnel slice connecting it to a related label.\r\n *\r\n * @see {@link IFunnelTickEvents} for a list of available events\r\n * @see {@link IFunnelTickAdapters} for a list of available Adapters\r\n */\r\nvar FunnelTick = /** @class */ (function (_super) {\r\n __extends(FunnelTick, _super);\r\n /**\r\n * Constructor\r\n */\r\n function FunnelTick() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * A label element this tick is attached to.\r\n */\r\n _this._label = new MutableValueDisposer();\r\n /**\r\n * A slice element this tick is attached to.\r\n */\r\n _this._slice = new MutableValueDisposer();\r\n _this.className = \"FunnelTick\";\r\n _this.element = _this.paper.add(\"path\");\r\n _this._disposers.push(_this._label);\r\n _this._disposers.push(_this._slice);\r\n _this.setPropertyValue(\"locationX\", 0);\r\n _this.setPropertyValue(\"locationY\", 0);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the tick element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n FunnelTick.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n var slice = this.slice;\r\n var point = slice.getPoint(this.locationX, this.locationY);\r\n if (point) {\r\n var label = this.label;\r\n var series = slice.dataItem.component;\r\n var p0 = void 0;\r\n var p1 = void 0;\r\n var p2 = void 0;\r\n if (series.orientation == \"vertical\") {\r\n var x1 = label.pixelX;\r\n var y1 = label.pixelY;\r\n if (!series.labelsOpposite) {\r\n x1 += label.maxRight;\r\n }\r\n p0 = $utils.spritePointToSprite(point, slice, this.parent);\r\n p2 = $utils.spritePointToSprite({ x: x1, y: y1 }, label.parent, this.parent);\r\n p1 = { x: label.parent.pixelX - this.length, y: p2.y };\r\n if (!series.labelsOpposite) {\r\n p1.x = label.parent.measuredWidth + this.length;\r\n }\r\n }\r\n else {\r\n var x1 = label.pixelX;\r\n var y1 = label.pixelY;\r\n if (!series.labelsOpposite) {\r\n y1 += label.maxBottom;\r\n }\r\n p0 = $utils.spritePointToSprite(point, slice, this.parent);\r\n p2 = $utils.spritePointToSprite({ x: x1, y: y1 }, label.parent, this.parent);\r\n p1 = { x: p2.x, y: label.parent.pixelY - this.length };\r\n if (!series.labelsOpposite) {\r\n p1.y = label.parent.measuredHeight + this.length;\r\n }\r\n }\r\n this.path = $path.moveTo(p0) + $path.lineTo(p1) + $path.lineTo(p2);\r\n }\r\n };\r\n Object.defineProperty(FunnelTick.prototype, \"slice\", {\r\n /**\r\n * @return FunnelSlice\r\n */\r\n get: function () {\r\n return this._slice.get();\r\n },\r\n /**\r\n * [[FunnelSlice]] element tick is attached to.\r\n *\r\n * @param slice Slice\r\n */\r\n set: function (slice) {\r\n this._slice.set(slice, new MultiDisposer([\r\n slice.events.on(\"transformed\", this.invalidate, this, false),\r\n slice.events.on(\"validated\", this.invalidate, this, false)\r\n ]));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FunnelTick.prototype, \"label\", {\r\n /**\r\n * @return Label\r\n */\r\n get: function () {\r\n return this._label.get();\r\n },\r\n /**\r\n * [[Label]] element tick is attached to.\r\n *\r\n * @param label Label\r\n */\r\n set: function (label) {\r\n this._label.set(label, label.events.on(\"transformed\", this.invalidate, this, false));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FunnelTick.prototype, \"locationX\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"locationX\");\r\n },\r\n /**\r\n * A relative horizontal position within target element a tick is pointing\r\n * to.\r\n *\r\n * A scale is from 0 to 1, where 0 means left edge, and 1 right edge.\r\n *\r\n * You can also set any value in-between (e.g. 0.5 will point to the middle\r\n * of the slice), or outside 0-1 range, which will put tick anchor position\r\n * outside target element.\r\n *\r\n * @param value Location (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"locationX\", value, false, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FunnelTick.prototype, \"locationY\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"locationY\");\r\n },\r\n /**\r\n * A relative vertical position within target element a tick is pointing\r\n * to.\r\n *\r\n * A scale is from 0 to 1, where 0 means top edge, and 1 bottom edge.\r\n *\r\n * You can also set any value in-between (e.g. 0.5 will point to the middle\r\n * of the slice), or outside 0-1 range, which will put tick anchor position\r\n * outside target element.\r\n *\r\n * @param value Location (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"locationY\", value, false, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return FunnelTick;\r\n}(Tick));\r\nexport { FunnelTick };\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[\"FunnelTick\"] = FunnelTick;\r\n//# sourceMappingURL=FunnelTick.js.map","/**\r\n * HeatLegend module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../core/Container\";\r\nimport { LinearGradient } from \"../../core/rendering/fills/LinearGradient\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { toColor, Color } from \"../../core/utils/Color\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { ValueAxis } from \"../../charts/axes/ValueAxis\";\r\nimport { AxisRendererX } from \"../../charts/axes/AxisRendererX\";\r\nimport { AxisRendererY } from \"../../charts/axes/AxisRendererY\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $colors from \"../../core/utils/Colors\";\r\nimport { RoundedRectangle } from \"../../core/elements/RoundedRectangle\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * This class creates a link (waved color-filled line) between two nodes in a\r\n * Sankey Diagram.\r\n *\r\n * @see {@link IHeatLegendEvents} for a list of available events\r\n * @see {@link IHeatLegendAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar HeatLegend = /** @class */ (function (_super) {\r\n __extends(HeatLegend, _super);\r\n /**\r\n * Constructor\r\n */\r\n function HeatLegend() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"HeatLegend\";\r\n _this.markerContainer = _this.createChild(Container);\r\n _this.markerContainer.shouldClone = false;\r\n _this.markerCount = 1;\r\n // Create a template container and list for the a marker\r\n var marker = new RoundedRectangle();\r\n marker.minHeight = 20;\r\n marker.minWidth = 20;\r\n marker.interactionsEnabled = false;\r\n marker.fillOpacity = 1;\r\n marker.cornerRadius(0, 0, 0, 0);\r\n _this.markerContainer.minHeight = 20;\r\n _this.markerContainer.minWidth = 20;\r\n _this.orientation = \"horizontal\";\r\n _this.markers = new ListTemplate(marker);\r\n _this._disposers.push(new ListDisposer(_this.markers));\r\n _this._disposers.push(_this.markers.template);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n HeatLegend.prototype.getMinFromRules = function (property) {\r\n var series = this.series;\r\n if (series) {\r\n var minValue_1;\r\n $iter.eachContinue(series.heatRules.iterator(), function (heatRule) {\r\n if (heatRule.property == property) {\r\n minValue_1 = heatRule.min;\r\n return false;\r\n }\r\n return true;\r\n });\r\n return minValue_1;\r\n }\r\n };\r\n HeatLegend.prototype.getMaxFromRules = function (property) {\r\n var series = this.series;\r\n if (series) {\r\n var maxValue_1;\r\n $iter.each(series.heatRules.iterator(), function (heatRule) {\r\n if (heatRule.property == property) {\r\n maxValue_1 = heatRule.max;\r\n return false;\r\n }\r\n return true;\r\n });\r\n return maxValue_1;\r\n }\r\n };\r\n /**\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n HeatLegend.prototype.validate = function () {\r\n _super.prototype.validate.call(this);\r\n this.valueAxis.renderer.inversed = this.reverseOrder;\r\n var series = this.series;\r\n var minColor = this.minColor;\r\n var maxColor = this.maxColor;\r\n if (!$type.hasValue(minColor)) {\r\n minColor = toColor(this.getMinFromRules(\"fill\"));\r\n }\r\n if (!$type.hasValue(maxColor)) {\r\n maxColor = toColor(this.getMaxFromRules(\"fill\"));\r\n }\r\n if (series) {\r\n var seriesFill = series.fill;\r\n if (!$type.hasValue(minColor) && seriesFill instanceof Color) {\r\n minColor = seriesFill;\r\n }\r\n if (!$type.hasValue(maxColor) && seriesFill instanceof Color) {\r\n maxColor = seriesFill;\r\n }\r\n }\r\n if (!$type.hasValue(maxColor)) {\r\n maxColor = toColor(this.getMaxFromRules(\"fill\"));\r\n }\r\n var minOpacity = $type.toNumber(this.getMinFromRules(\"fillOpacity\"));\r\n if (!$type.isNumber(minOpacity)) {\r\n minOpacity = 1;\r\n }\r\n var maxOpacity = $type.toNumber(this.getMaxFromRules(\"fillOpacity\"));\r\n if (!$type.isNumber(maxOpacity)) {\r\n maxOpacity = 1;\r\n }\r\n var minStrokeOpacity = $type.toNumber(this.getMinFromRules(\"strokeOpacity\"));\r\n if (!$type.isNumber(minStrokeOpacity)) {\r\n minStrokeOpacity = 1;\r\n }\r\n var maxStrokeOpacity = $type.toNumber(this.getMaxFromRules(\"strokeOpacity\"));\r\n if (!$type.isNumber(maxStrokeOpacity)) {\r\n maxStrokeOpacity = 1;\r\n }\r\n var minStroke = toColor(this.getMinFromRules(\"stroke\"));\r\n var maxStroke = toColor(this.getMaxFromRules(\"stroke\"));\r\n //if (series) {\r\n for (var i = 0; i < this.markerCount; i++) {\r\n var marker = this.markers.getIndex(i);\r\n if (!marker) {\r\n marker = this.markers.create();\r\n marker.parent = this.markerContainer;\r\n marker.height = percent(100);\r\n marker.width = percent(100);\r\n }\r\n if (this.markerCount == 1) {\r\n var gradient = new LinearGradient();\r\n if (this.reverseOrder) {\r\n gradient.addColor(maxColor, maxOpacity);\r\n gradient.addColor(minColor, minOpacity);\r\n }\r\n else {\r\n gradient.addColor(minColor, minOpacity);\r\n gradient.addColor(maxColor, maxOpacity);\r\n }\r\n if (this.orientation == \"vertical\") {\r\n gradient.rotation = -90;\r\n }\r\n marker.fill = gradient;\r\n if ($type.hasValue(minStroke) && $type.hasValue(maxStroke)) {\r\n var strokeGradient = new LinearGradient();\r\n if (this.reverseOrder) {\r\n strokeGradient.addColor(maxStroke, maxStrokeOpacity);\r\n strokeGradient.addColor(minStroke, minStrokeOpacity);\r\n }\r\n else {\r\n strokeGradient.addColor(minStroke, minStrokeOpacity);\r\n strokeGradient.addColor(maxStroke, maxStrokeOpacity);\r\n }\r\n if (this.orientation == \"vertical\") {\r\n strokeGradient.rotation = -90;\r\n }\r\n marker.stroke = strokeGradient;\r\n }\r\n }\r\n else {\r\n var c = i;\r\n if (this.reverseOrder) {\r\n c = this.markerCount - i - 1;\r\n }\r\n var color = new Color($colors.interpolate(minColor.rgb, maxColor.rgb, c / this.markerCount));\r\n marker.fill = color;\r\n var opacity = minOpacity + (maxOpacity - minOpacity) * c / this.markerCount;\r\n marker.fillOpacity = opacity;\r\n if ($type.hasValue(minStroke) && $type.hasValue(maxStroke)) {\r\n var color_1 = new Color($colors.interpolate(minStroke.rgb, maxStroke.rgb, c / this.markerCount));\r\n marker.stroke = color_1;\r\n var opacity_1 = minStrokeOpacity + (maxStrokeOpacity - minStrokeOpacity) * c / this.markerCount;\r\n marker.strokeOpacity = opacity_1;\r\n }\r\n }\r\n }\r\n var renderer = this.valueAxis.renderer;\r\n if (this.markerCount > 1) {\r\n if (this.orientation == \"horizontal\") {\r\n renderer.minGridDistance = this.measuredWidth / this.markerCount;\r\n }\r\n else {\r\n renderer.minGridDistance = this.measuredHeight / this.markerCount;\r\n }\r\n }\r\n this.valueAxis.invalidate();\r\n for (var i = this.markerCount, len = this.markers.length; i < len; i++) {\r\n this.markers.getIndex(i).parent = undefined;\r\n }\r\n };\r\n Object.defineProperty(HeatLegend.prototype, \"minColor\", {\r\n /**\r\n * Returns minColor value\r\n * @return {Color}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"minColor\");\r\n },\r\n /**\r\n * Min color of a heat legend. If a series is set for the legend, minColor is taken from series.\r\n *\r\n * @param {Color}\r\n */\r\n set: function (value) {\r\n if (!(value instanceof Color)) {\r\n value = toColor(value);\r\n }\r\n this.setColorProperty(\"minColor\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatLegend.prototype, \"maxColor\", {\r\n /**\r\n * Returns maxColor value\r\n * @return {Color}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maxColor\");\r\n },\r\n /**\r\n * Max color of a heat legend. If a series is set for the legend, maxColor is taken from series.\r\n *\r\n * @param {Color}\r\n */\r\n set: function (value) {\r\n if (!(value instanceof Color)) {\r\n value = toColor(value);\r\n }\r\n this.setColorProperty(\"maxColor\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatLegend.prototype, \"markerCount\", {\r\n /**\r\n * Returns number of color squares (markers).\r\n * @return {number}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"markerCount\");\r\n },\r\n /**\r\n * Number of color squares (markers) in the heat legend. If only 1 marker is used, it will be filled with gradient.\r\n *\r\n * @param {number}\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"markerCount\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatLegend.prototype, \"minValue\", {\r\n /**\r\n * Returns minimum value of heat legend.\r\n * @return {number}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"minValue\");\r\n },\r\n /**\r\n * Minimum value of heat legend's value axis. If a series is set for the legend, min is taken from series.\r\n *\r\n * @param {number}\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"minValue\", value);\r\n this.valueAxis.min = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatLegend.prototype, \"maxValue\", {\r\n /**\r\n * Returns maximum value of heat legend.\r\n * @return {number}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maxValue\");\r\n },\r\n /**\r\n * Maximum value of heat legend's value axis. If a series is set for the legend, max is taken from series.\r\n *\r\n * @param {number}\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"maxValue\", value);\r\n this.valueAxis.max = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatLegend.prototype, \"orientation\", {\r\n /**\r\n * Returns orientation value.\r\n *\r\n * @return {\"horizontal\" | \"vertical\"}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"orientation\");\r\n },\r\n /**\r\n * Heat legend orientation. Note, if you change orientation of a heat legend, you must set value axis renderer properties after that, as with orientation renderer changes.\r\n *\r\n * @param {\"horizontal\" | \"vertical\"}\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"orientation\", value, true);\r\n var markerContainer = this.markerContainer;\r\n var valueAxis = this.valueAxis;\r\n // HORIZONTAL\r\n if (value == \"horizontal\") {\r\n if (!$type.hasValue(this.width)) {\r\n this.width = 200;\r\n }\r\n this.height = undefined;\r\n valueAxis.width = percent(100);\r\n valueAxis.height = undefined;\r\n valueAxis.tooltip.pointerOrientation = \"vertical\";\r\n this.layout = \"vertical\";\r\n markerContainer.width = percent(100);\r\n markerContainer.height = undefined;\r\n if (!(valueAxis.renderer instanceof AxisRendererX)) {\r\n valueAxis.renderer = new AxisRendererX();\r\n }\r\n }\r\n // VERTICAL\r\n else {\r\n if (!$type.hasValue(this.height)) {\r\n this.height = 200;\r\n }\r\n this.width = undefined;\r\n this.layout = \"horizontal\";\r\n markerContainer.width = undefined;\r\n markerContainer.height = percent(100);\r\n valueAxis.height = percent(100);\r\n valueAxis.width = undefined;\r\n valueAxis.tooltip.pointerOrientation = \"horizontal\";\r\n if (!(valueAxis.renderer instanceof AxisRendererY)) {\r\n valueAxis.renderer = new AxisRendererY();\r\n }\r\n valueAxis.renderer.inside = true;\r\n valueAxis.renderer.labels.template.inside = true;\r\n this.markerContainer.reverseOrder = true;\r\n }\r\n var renderer = valueAxis.renderer;\r\n renderer.grid.template.disabled = true;\r\n renderer.axisFills.template.disabled = true;\r\n renderer.baseGrid.disabled = true;\r\n renderer.labels.template.padding(2, 3, 2, 3);\r\n renderer.minHeight = undefined;\r\n renderer.minWidth = undefined;\r\n this.markerContainer.layout = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatLegend.prototype, \"valueAxis\", {\r\n /**\r\n * Returns valueAxis value.\r\n * @return {ValueAxis}\r\n */\r\n get: function () {\r\n if (!this._valueAxis) {\r\n this.valueAxis = this.createChild(ValueAxis);\r\n this.valueAxis.shouldClone = false;\r\n }\r\n return this._valueAxis;\r\n },\r\n /**\r\n * Sets a value axis of heat legend. Value axis for heat legend is created automatically.\r\n * @param {ValueAxis}\r\n */\r\n set: function (valueAxis) {\r\n this._valueAxis = valueAxis;\r\n valueAxis.parent = this;\r\n valueAxis.strictMinMax = true;\r\n this.orientation = this.orientation;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatLegend.prototype, \"series\", {\r\n /**\r\n * Returns series value.\r\n * @return {Series}\r\n */\r\n get: function () {\r\n return this._series;\r\n },\r\n /**\r\n * You can set series for heat legend. It will take min, max, minColor and maxColor values from this series.\r\n * @param series\r\n */\r\n set: function (series) {\r\n var _this = this;\r\n this._series = series;\r\n var dataField = \"value\";\r\n try {\r\n var dataFieldDefined = series.heatRules.getIndex(0).dataField;\r\n if (dataFieldDefined) {\r\n dataField = dataFieldDefined;\r\n }\r\n }\r\n catch (err) {\r\n }\r\n this.updateMinMax(series.dataItem.values[dataField].low, series.dataItem.values[dataField].high);\r\n series.dataItem.events.on(\"calculatedvaluechanged\", function (event) {\r\n _this.updateMinMax(series.dataItem.values[dataField].low, series.dataItem.values[dataField].high);\r\n }, undefined, false);\r\n series.heatRules.events.on(\"inserted\", this.invalidate, this, false);\r\n series.heatRules.events.on(\"removed\", this.invalidate, this, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Updates min/max of value axis.\r\n * @ignore\r\n */\r\n HeatLegend.prototype.updateMinMax = function (min, max) {\r\n var valueAxis = this.valueAxis;\r\n if (!$type.isNumber(this.minValue)) {\r\n valueAxis.min = min;\r\n valueAxis.invalidate();\r\n }\r\n if (!$type.isNumber(this.maxValue)) {\r\n valueAxis.max = max;\r\n valueAxis.invalidate();\r\n }\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 HeatLegend.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Set up series\r\n if ($type.hasValue(config.series) && $type.isString(config.series)) {\r\n if ($type.isString(config.series)) {\r\n if (this.map.hasKey(config.series)) {\r\n config.series = this.map.getKey(config.series);\r\n }\r\n else {\r\n var seriesId_1 = config.series;\r\n var disposer_1 = this.map.events.on(\"insertKey\", function (ev) {\r\n if (ev.key == seriesId_1) {\r\n this.series = ev.newValue;\r\n disposer_1.dispose();\r\n }\r\n }, this);\r\n this._disposers.push(disposer_1);\r\n delete config.series;\r\n }\r\n }\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n return HeatLegend;\r\n}(Container));\r\nexport { HeatLegend };\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[\"HeatLegend\"] = HeatLegend;\r\n//# sourceMappingURL=HeatLegend.js.map","/**\r\n * Bullet module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Bullet } from \"./Bullet\";\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a bullet with a textual label.\r\n *\r\n * Uses [[Label]] instance to draw the label, so the label itself is\r\n * configurable.\r\n *\r\n * @see {@link IBulletEvents} for a list of available events\r\n * @see {@link IBulletAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar LabelBullet = /** @class */ (function (_super) {\r\n __extends(LabelBullet, _super);\r\n /**\r\n * Constructor\r\n */\r\n function LabelBullet() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"LabelBullet\";\r\n var label = _this.createChild(Label);\r\n label.shouldClone = false;\r\n label.verticalCenter = \"middle\";\r\n label.horizontalCenter = \"middle\";\r\n label.truncate = true;\r\n label.hideOversized = false;\r\n label.maxWidth = 500;\r\n label.maxHeight = 500;\r\n label.stroke = color();\r\n label.strokeOpacity = 0;\r\n label.fill = new InterfaceColorSet().getFor(\"text\");\r\n _this.events.on(\"maxsizechanged\", _this.handleMaxSize, _this, false);\r\n _this.label = label;\r\n // not good, as lineSeries will have labels somewhere in the middle.\r\n //this.locationX = 0.5;\r\n //this.locationY = 0.5;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n LabelBullet.prototype.handleMaxSize = function () {\r\n this.label.maxWidth = this.maxWidth;\r\n this.label.maxHeight = this.maxHeight;\r\n };\r\n /**\r\n * Copies all proprities and related stuff from another instance of\r\n * [[LabelBullet]].\r\n *\r\n * @param source Source element\r\n */\r\n LabelBullet.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.label.copyFrom(source.label);\r\n };\r\n return LabelBullet;\r\n}(Bullet));\r\nexport { LabelBullet };\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[\"LabelBullet\"] = LabelBullet;\r\n//# sourceMappingURL=LabelBullet.js.map","/**\r\n * Functionality for drawing simple NavigationBar.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Component } from \"../../core/Component\";\r\nimport { DataItem } from \"../../core/DataItem\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { TextLink } from \"../../core/elements/TextLink\";\r\nimport { Triangle } from \"../../core/elements/Triangle\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[NavigationBar]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar NavigationBarDataItem = /** @class */ (function (_super) {\r\n __extends(NavigationBarDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function NavigationBarDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"NavigationBarDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(NavigationBarDataItem.prototype, \"name\", {\r\n /**\r\n * @return Name\r\n */\r\n get: function () {\r\n return this.properties[\"name\"];\r\n },\r\n /**\r\n * Name of the navigation bar item.\r\n *\r\n * @param value Name\r\n */\r\n set: function (value) {\r\n this.setProperty(\"name\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return NavigationBarDataItem;\r\n}(DataItem));\r\nexport { NavigationBarDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * NavigationBar class can be used to create a multi-level breadcrumb-style\r\n * navigation control.\r\n *\r\n * @see {@link INavigationBarEvents} for a list of available events\r\n * @see {@link INavigationBarAdapters} for a list of available Adapters\r\n * @todo Implement better\r\n * @important\r\n */\r\nvar NavigationBar = /** @class */ (function (_super) {\r\n __extends(NavigationBar, _super);\r\n /**\r\n * Constructor\r\n */\r\n function NavigationBar() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"NavigationBar\";\r\n var interfaceColors = new InterfaceColorSet();\r\n var textLink = new TextLink();\r\n textLink.valign = \"middle\";\r\n textLink.paddingTop = 8;\r\n textLink.paddingBottom = 8;\r\n _this.paddingBottom = 2;\r\n _this.links = new ListTemplate(textLink);\r\n _this._disposers.push(new ListDisposer(_this.links));\r\n _this._disposers.push(textLink);\r\n _this._linksIterator = new $iter.ListIterator(_this.links, function () { return _this.links.create(); });\r\n _this._linksIterator.createNewItems = true;\r\n var triangle = new Triangle();\r\n triangle.direction = \"right\";\r\n triangle.width = 8;\r\n triangle.height = 12;\r\n triangle.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n triangle.fillOpacity = 0.5;\r\n triangle.valign = \"middle\";\r\n triangle.marginLeft = 10;\r\n triangle.marginRight = 10;\r\n _this.separators = new ListTemplate(triangle);\r\n _this._disposers.push(new ListDisposer(_this.separators));\r\n _this._disposers.push(triangle);\r\n var activeLink = new TextLink();\r\n _this.activeLink = activeLink;\r\n activeLink.copyFrom(textLink);\r\n activeLink.valign = \"middle\";\r\n activeLink.fontWeight = \"bold\";\r\n _this.width = percent(100);\r\n _this.layout = \"grid\";\r\n _this.dataFields.name = \"name\";\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Completely redraws the navigation bar.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n NavigationBar.prototype.validateDataElements = function () {\r\n this.removeChildren();\r\n this._linksIterator.reset();\r\n _super.prototype.validateDataElements.call(this);\r\n //@todo: dispose\r\n };\r\n /**\r\n * Creates a visual element for a data item (nav item).\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n NavigationBar.prototype.validateDataElement = function (dataItem) {\r\n _super.prototype.validateDataElement.call(this, dataItem);\r\n var textLink;\r\n if (dataItem.index < this.dataItems.length - 1) {\r\n textLink = this._linksIterator.getLast();\r\n textLink.parent = this;\r\n var separator = this.separators.create();\r\n separator.parent = this;\r\n separator.valign = \"middle\";\r\n }\r\n else {\r\n textLink = this.activeLink;\r\n textLink.events.copyFrom(this.links.template.events);\r\n textLink.hide(0);\r\n textLink.show();\r\n textLink.parent = this;\r\n }\r\n textLink.dataItem = dataItem;\r\n textLink.text = dataItem.name;\r\n textLink.validate();\r\n };\r\n return NavigationBar;\r\n}(Component));\r\nexport { NavigationBar };\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[\"NavigationBar\"] = NavigationBar;\r\nregistry.registeredClasses[\"NavigationBarDataItem\"] = NavigationBarDataItem;\r\n//# sourceMappingURL=NavigationBar.js.map","/**\r\n * Module that defines everything related to building OHLCs.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Candlestick } from \"./Candlestick\";\r\nimport { Line } from \"../../core/elements/Line\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to creates OHLCs.\r\n *\r\n * @see {@link IOHLCEvents} for a list of available events\r\n * @see {@link IOHLCAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar OHLC = /** @class */ (function (_super) {\r\n __extends(OHLC, _super);\r\n /**\r\n * Constructor\r\n */\r\n function OHLC() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"OHLC\";\r\n _this.layout = \"none\";\r\n return _this;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n OHLC.prototype.createAssets = function () {\r\n //super.createAssets();\r\n this.openLine = this.createChild(Line);\r\n this.openLine.shouldClone = false;\r\n this.highLowLine = this.createChild(Line);\r\n this.highLowLine.shouldClone = false;\r\n this.closeLine = this.createChild(Line);\r\n this.closeLine.shouldClone = false;\r\n };\r\n /**\r\n * Copies all parameters from another [[OHLC]].\r\n *\r\n * @param source Source OHLC\r\n */\r\n OHLC.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (this.openLine) {\r\n this.openLine.copyFrom(source.openLine);\r\n }\r\n if (this.highLowLine) {\r\n this.highLowLine.copyFrom(source.highLowLine);\r\n }\r\n if (this.closeLine) {\r\n this.closeLine.copyFrom(source.closeLine);\r\n }\r\n };\r\n return OHLC;\r\n}(Candlestick));\r\nexport { OHLC };\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[\"OHLC\"] = OHLC;\r\n//# sourceMappingURL=OHLC.js.map","/**\r\n * Pie tick module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Tick } from \"../elements/Tick\";\r\nimport { MutableValueDisposer, MultiDisposer } from \"../../core/utils/Disposer\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws an tick line for a pie slice connecting it to a related label.\r\n *\r\n * @see {@link IPieTickEvents} for a list of available events\r\n * @see {@link IPieTickAdapters} for a list of available Adapters\r\n */\r\nvar PieTick = /** @class */ (function (_super) {\r\n __extends(PieTick, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PieTick() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * A label element this tick is attached to.\r\n */\r\n _this._label = new MutableValueDisposer();\r\n /**\r\n * A slice element this tick is attached to.\r\n */\r\n _this._slice = new MutableValueDisposer();\r\n _this.className = \"PieTick\";\r\n _this.element = _this.paper.add(\"polyline\");\r\n _this._disposers.push(_this._label);\r\n _this._disposers.push(_this._slice);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the tick element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n PieTick.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n var slice = this.slice;\r\n var label = this.label;\r\n var series = slice.dataItem.component;\r\n if (slice && slice.radius > 0 && label && label.text) {\r\n var x0 = slice.dx + slice.slice.dx + slice.pixelX + slice.ix * slice.radius * slice.scale;\r\n var y0 = slice.dy + slice.slice.dy + slice.pixelY + slice.iy * slice.radiusY * slice.scale;\r\n var x1 = void 0;\r\n var y1 = void 0;\r\n var x2 = void 0;\r\n var y2 = void 0;\r\n if (series.alignLabels) {\r\n x1 = label.pixelX - this.length;\r\n y1 = label.pixelY;\r\n x2 = label.pixelX;\r\n y2 = y1;\r\n if (label.horizontalCenter == \"right\") {\r\n x1 += 2 * this.length;\r\n x2 = x1 - this.length;\r\n }\r\n }\r\n else {\r\n var r = label.pixelRadius(slice.radius);\r\n x1 = x0 + r * slice.ix;\r\n y1 = y0 + r * slice.iy;\r\n x2 = x1;\r\n y2 = y1;\r\n }\r\n this.element.attr({ \"points\": [x0, y0, x1, y1, x2, y2] });\r\n }\r\n };\r\n Object.defineProperty(PieTick.prototype, \"slice\", {\r\n /**\r\n * @return Slice\r\n */\r\n get: function () {\r\n return this._slice.get();\r\n },\r\n /**\r\n * Slice element tick is attached to.\r\n *\r\n * @param slice Slice\r\n */\r\n set: function (slice) {\r\n this._slice.set(slice, new MultiDisposer([\r\n slice.events.on(\"transformed\", this.invalidate, this),\r\n slice.events.on(\"validated\", this.invalidate, this)\r\n ]));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieTick.prototype, \"label\", {\r\n /**\r\n * @return Label\r\n */\r\n get: function () {\r\n return this._label.get();\r\n },\r\n /**\r\n * Label element tick is attached to.\r\n *\r\n * @param label Label\r\n */\r\n set: function (label) {\r\n this._label.set(label, label.events.on(\"transformed\", this.invalidate, this, false));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return PieTick;\r\n}(Tick));\r\nexport { PieTick };\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[\"PieTick\"] = PieTick;\r\n//# sourceMappingURL=PieTick.js.map","/**\r\n * Module that defines everything related to building RadarColumns.\r\n * It is a container which has radarColumn element which is a Slice.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Column } from \"./Column\";\r\nimport { Slice } from \"../../core/elements/Slice\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to creates RadarColumns.\r\n *\r\n * @see {@link IRadarColumnEvents} for a list of available events\r\n * @see {@link IRadarColumnAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar RadarColumn = /** @class */ (function (_super) {\r\n __extends(RadarColumn, _super);\r\n /**\r\n * Constructor\r\n */\r\n function RadarColumn() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"RadarColumn\";\r\n return _this;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n RadarColumn.prototype.createAssets = function () {\r\n this.radarColumn = this.createChild(Slice);\r\n this.radarColumn.shouldClone = false;\r\n this.radarColumn.strokeOpacity = undefined;\r\n // some dirty hack so that if user access column, it won't get error\r\n this.column = this.radarColumn;\r\n };\r\n /**\r\n * Copies all parameters from another [[RadarColumn]].\r\n *\r\n * @param source Source RadarColumn\r\n */\r\n RadarColumn.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (this.radarColumn) {\r\n this.radarColumn.copyFrom(source.radarColumn);\r\n }\r\n };\r\n /**\r\n * X coordinate for the slice tooltip.\r\n *\r\n * @return X\r\n * @ignore\r\n */\r\n RadarColumn.prototype.getTooltipX = function () {\r\n var value = this.getPropertyValue(\"tooltipX\");\r\n if (!$type.isNumber(value)) {\r\n return this.radarColumn.getTooltipX();\r\n }\r\n return value;\r\n };\r\n /**\r\n * Y coordinate for the slice tooltip.\r\n *\r\n * @return Y\r\n * @ignore\r\n */\r\n RadarColumn.prototype.getTooltipY = function () {\r\n var value = this.getPropertyValue(\"tooltipX\");\r\n if (!$type.isNumber(value)) {\r\n return this.radarColumn.getTooltipY();\r\n }\r\n return value;\r\n };\r\n return RadarColumn;\r\n}(Column));\r\nexport { RadarColumn };\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[\"RadarColumn\"] = RadarColumn;\r\n//# sourceMappingURL=RadarColumn.js.map","/**\r\n * SankeyLink module\r\n */\r\nimport { __extends, __read } from \"tslib\";\r\nimport { FlowDiagramLink } from \"./FlowDiagramLink\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Polyspline } from \"../../core/elements/Polyspline\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $smoothing from \"../../core/rendering/Smoothing\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * This class creates a link (waved color-filled line) between two nodes in a\r\n * Sankey Diagram.\r\n *\r\n * @see {@link ISankeyLinkEvents} for a list of available events\r\n * @see {@link ISankeyLinkAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar SankeyLink = /** @class */ (function (_super) {\r\n __extends(SankeyLink, _super);\r\n /**\r\n * Constructor\r\n */\r\n function SankeyLink() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"SankeyLink\";\r\n // TODO can this be removed ?\r\n new InterfaceColorSet();\r\n _this.tension = 0.8;\r\n _this.controlPointDistance = 0.2;\r\n _this.startAngle = 0;\r\n _this.endAngle = 0;\r\n _this.linkWidth = 0;\r\n _this.startX = 0;\r\n _this.endX = 0;\r\n _this.startY = 0;\r\n _this.endY = 0;\r\n _this.middleLine = _this.createChild(Polyspline);\r\n _this.middleLine.shouldClone = false;\r\n _this.middleLine.strokeOpacity = 0;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n SankeyLink.prototype.makeBackwards = function () {\r\n if (this.states.getKey(\"backwards\") != undefined) {\r\n this.setState(\"backwards\");\r\n }\r\n };\r\n /**\r\n * (Re)validates (redraws) the link.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n SankeyLink.prototype.validate = function () {\r\n var _a, _b, _c, _d;\r\n _super.prototype.validate.call(this);\r\n if (!this.isTemplate) {\r\n var x0 = this.startX;\r\n var y0 = this.startY;\r\n var x1 = this.endX;\r\n var y1 = this.endY;\r\n if (this.states.getKey(\"backwards\")) {\r\n this.setState(\"default\");\r\n }\r\n if (this.dataItem) {\r\n var chart = this.dataItem.component;\r\n if (chart) {\r\n if (chart.orientation == \"horizontal\") {\r\n if (x1 < x0) {\r\n _a = __read([x1, x0], 2), x0 = _a[0], x1 = _a[1];\r\n _b = __read([y1, y0], 2), y0 = _b[0], y1 = _b[1];\r\n this.makeBackwards();\r\n }\r\n }\r\n else {\r\n if (y1 < y0) {\r\n _c = __read([y1, y0], 2), y0 = _c[0], y1 = _c[1];\r\n _d = __read([x1, x0], 2), x0 = _d[0], x1 = _d[1];\r\n this.makeBackwards();\r\n }\r\n }\r\n }\r\n }\r\n if (!$type.isNumber(x1)) {\r\n x1 = x0;\r\n }\r\n if (!$type.isNumber(y1)) {\r\n y1 = y0;\r\n }\r\n var startAngle = this.startAngle;\r\n var endAngle = this.endAngle;\r\n var w = this.linkWidth;\r\n var path = \"\";\r\n var xt0 = x0;\r\n var yt0 = y0;\r\n var xt1 = x1;\r\n var yt1 = y1;\r\n var xb0 = x0 + w * $math.sin(startAngle);\r\n var xb1 = x1 + w * $math.sin(endAngle);\r\n var yb0 = y0 + w * $math.cos(startAngle);\r\n var yb1 = y1 + w * $math.cos(endAngle);\r\n var xm0 = x0 + w / 2 * $math.sin(startAngle);\r\n var xm1 = x1 + w / 2 * $math.sin(endAngle);\r\n var ym0 = y0 + w / 2 * $math.cos(startAngle);\r\n var ym1 = y1 + w / 2 * $math.cos(endAngle);\r\n this.zIndex = this.zIndex || this.dataItem.index;\r\n var tensionX = this.tension + (1 - this.tension) * $math.sin(startAngle);\r\n var tensionY = this.tension + (1 - this.tension) * $math.cos(startAngle);\r\n this.middleLine.tensionX = tensionX;\r\n this.middleLine.tensionY = tensionY;\r\n if ($type.isNumber(w) && ($type.isNumber(x0) && $type.isNumber(x1) && $type.isNumber(y0) && $type.isNumber(y1))) {\r\n // solves issues with gradient fill of straight lines\r\n if ($math.round(xt0, 3) == $math.round(xt1, 3)) {\r\n xt1 += 0.01;\r\n }\r\n if ($math.round(yt0, 3) == $math.round(yt1, 3)) {\r\n yt1 += 0.01;\r\n }\r\n if ($math.round(xb0, 3) == $math.round(xb1, 3)) {\r\n xb1 += 0.01;\r\n }\r\n if ($math.round(yb0, 3) == $math.round(yb1, 3)) {\r\n yb1 += 0.01;\r\n }\r\n var minX = Math.min(xb0, xb1, xt0, xt1);\r\n var minY = Math.min(yb0, yb1, yt0, yt1);\r\n var maxX = Math.max(xb0, xb1, xt0, xt1);\r\n var maxY = Math.max(yb0, yb1, yt0, yt1);\r\n this._bbox = {\r\n x: minX,\r\n y: minY,\r\n width: maxX - minX,\r\n height: maxY - minY\r\n };\r\n var cpd = this.controlPointDistance;\r\n var kxt0 = xt0 + (xt1 - xt0) * cpd * $math.cos(startAngle);\r\n var kyt0 = yt0 + (yt1 - yt0) * cpd * $math.sin(startAngle);\r\n var kxt1 = xt1 - (xt1 - xt0) * cpd * $math.cos(endAngle);\r\n var kyt1 = yt1 - (yt1 - yt0) * cpd * $math.sin(endAngle);\r\n var kxm0 = xm0 + (xm1 - xm0) * cpd * $math.cos(startAngle);\r\n var kym0 = ym0 + (ym1 - ym0) * cpd * $math.sin(startAngle);\r\n var kxm1 = xm1 - (xm1 - xm0) * cpd * $math.cos(endAngle);\r\n var kym1 = ym1 - (ym1 - ym0) * cpd * $math.sin(endAngle);\r\n var angle = $math.getAngle({ x: kxt0, y: kyt0 }, { x: kxt1, y: kyt1 });\r\n var dx = (w / $math.cos(angle) - w) / $math.tan(angle) * $math.cos(startAngle);\r\n var dy = (w / $math.sin(angle) - w) * $math.tan(angle) * $math.sin(startAngle);\r\n var kxb0 = -dx / 2 + xb0 + (xb1 - xb0) * cpd * $math.cos(startAngle);\r\n var kyb0 = -dy / 2 + yb0 + (yb1 - yb0) * cpd * $math.sin(startAngle);\r\n var kxb1 = -dx / 2 + xb1 - (xb1 - xb0) * cpd * $math.cos(endAngle);\r\n var kyb1 = -dy / 2 + yb1 - (yb1 - yb0) * cpd * $math.sin(endAngle);\r\n if (ym1 == ym0) {\r\n ym1 += 0.01;\r\n }\r\n this.middleLine.segments = [[{ x: xm0, y: ym0 }, { x: kxm0, y: kym0 }, { x: kxm1, y: kym1 }, { x: xm1, y: ym1 }]];\r\n kxt0 += dx / 2;\r\n kyt0 += dy / 2;\r\n kxt1 += dx / 2;\r\n kyt1 += dy / 2;\r\n path += $path.moveTo({ x: xt0, y: yt0 });\r\n path += new $smoothing.Tension(tensionX, tensionY).smooth([{ x: xt0, y: yt0 }, { x: kxt0, y: kyt0 }, { x: kxt1, y: kyt1 }, { x: xt1, y: yt1 }]);\r\n path += $path.lineTo({ x: xb1, y: yb1 });\r\n path += new $smoothing.Tension(tensionX, tensionY).smooth([{ x: xb1, y: yb1 }, { x: kxb1, y: kyb1 }, { x: kxb0, y: kyb0 }, { x: xb0, y: yb0 }]);\r\n path += $path.closePath();\r\n }\r\n this.link.path = path;\r\n if (this.maskBullets) {\r\n this.bulletsMask.path = path;\r\n this.bulletsContainer.mask = this.bulletsMask;\r\n }\r\n this.positionBullets();\r\n }\r\n };\r\n Object.defineProperty(SankeyLink.prototype, \"startX\", {\r\n /**\r\n * @return Start X\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startX\");\r\n },\r\n /**\r\n * [startX description]\r\n *\r\n * @todo Description\r\n * @param value Start X\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"startX\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SankeyLink.prototype, \"endX\", {\r\n /**\r\n * @return End X\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endX\");\r\n },\r\n /**\r\n * [endX description]\r\n *\r\n * @todo Description\r\n * @param value End X\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"endX\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SankeyLink.prototype, \"startY\", {\r\n /**\r\n * @return Start Y\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startY\");\r\n },\r\n /**\r\n * [startY description]\r\n *\r\n * @todo Description\r\n * @param value Start Y\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"startY\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SankeyLink.prototype, \"endY\", {\r\n /**\r\n * @return End Y\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endY\");\r\n },\r\n /**\r\n * [endY description]\r\n *\r\n * @todo Description\r\n * @param value End Y\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"endY\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SankeyLink.prototype, \"linkWidth\", {\r\n /**\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"linkWidth\");\r\n },\r\n /**\r\n * [linkWidth description]\r\n *\r\n * @todo Description\r\n * @param value [description]\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"linkWidth\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SankeyLink.prototype, \"controlPointDistance\", {\r\n /**\r\n * @return relative control point distance\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"controlPointDistance\");\r\n },\r\n /**\r\n * Distance of control point of a link, defines relative distance from a node at which linke should bend\r\n * @default 0.2\r\n * @param value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"controlPointDistance\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SankeyLink.prototype, \"tension\", {\r\n /**\r\n * @return tension value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tension\");\r\n },\r\n /**\r\n * Tension of a spline, 1 would make the link to have sharp edges\r\n * @default 0.8\r\n * @param value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"tension\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return SankeyLink;\r\n}(FlowDiagramLink));\r\nexport { SankeyLink };\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[\"SankeyLink\"] = SankeyLink;\r\n//# sourceMappingURL=SankeyLink.js.map","/**\r\n * SankeyNode module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { FlowDiagramNode } from \"./FlowDiagramNode\";\r\nimport { LabelBullet } from \"./LabelBullet\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a node in a Sankey Diagram.\r\n *\r\n * A Sankey node is a block with a value, which represents its size on the\r\n * diagram.\r\n *\r\n * Nodes are connected via [[SankeyLink]] elements.\r\n *\r\n * @see {@link ISankeyNodeEvents} for a list of available events\r\n * @see {@link ISankeyNodeAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar SankeyNode = /** @class */ (function (_super) {\r\n __extends(SankeyNode, _super);\r\n /**\r\n * Constructor\r\n */\r\n function SankeyNode() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * [nextInCoord description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n _this.nextInCoord = 0;\r\n /**\r\n * [nextOutCoord description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n _this.nextOutCoord = 0;\r\n _this.className = \"SankeyNode\";\r\n _this.width = 10;\r\n _this.height = 10;\r\n var nameLabel = _this.createChild(LabelBullet);\r\n nameLabel.shouldClone = false;\r\n //@should we auto update these locations if position is changed?\r\n nameLabel.locationX = 1;\r\n nameLabel.locationY = 0.5;\r\n nameLabel.label.text = \"{name}\";\r\n //nameLabel.label.textElement.hideOversized = false;\r\n nameLabel.width = 150;\r\n nameLabel.height = 150;\r\n nameLabel.label.horizontalCenter = \"left\";\r\n nameLabel.label.padding(0, 5, 0, 5);\r\n _this.nameLabel = nameLabel;\r\n var valueLabel = _this.createChild(LabelBullet);\r\n valueLabel.shouldClone = false;\r\n valueLabel.label.hideOversized = false;\r\n valueLabel.locationX = 0.5;\r\n valueLabel.locationY = 0.5;\r\n valueLabel.width = 150;\r\n valueLabel.height = 150;\r\n //valueLabel.label.text = \"{value}\";\r\n valueLabel.label.horizontalCenter = \"middle\";\r\n _this.valueLabel = valueLabel;\r\n var hiddenState = _this.hiddenState;\r\n hiddenState.properties.fill = new InterfaceColorSet().getFor(\"disabledBackground\");\r\n hiddenState.properties.opacity = 0.5;\r\n hiddenState.properties.visible = true;\r\n _this.background.hiddenState.copyFrom(hiddenState);\r\n return _this;\r\n }\r\n /**\r\n * Invalidates all links, attached to this node.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n SankeyNode.prototype.invalidateLinks = function () {\r\n var _this = this;\r\n _super.prototype.invalidateLinks.call(this);\r\n this.nextInCoord = 0;\r\n this.nextOutCoord = 0;\r\n var chart = this.chart;\r\n if (chart) {\r\n var orientation_1 = chart.orientation;\r\n if (this._incomingSorted) {\r\n $iter.each(this._incomingSorted, function (dataItem) {\r\n var link = dataItem.link;\r\n var value = dataItem.getWorkingValue(\"value\");\r\n if ($type.isNumber(value)) {\r\n link.parent = _this.chart.linksContainer;\r\n var x = void 0;\r\n var y = void 0;\r\n var angle = void 0;\r\n if (orientation_1 == \"horizontal\") {\r\n x = _this.pixelX + _this.dx;\r\n y = _this.nextInCoord + _this.pixelY + _this.dy;\r\n angle = 0;\r\n }\r\n else {\r\n y = _this.pixelY + _this.dy;\r\n x = _this.nextInCoord + _this.pixelX + _this.dx;\r\n angle = 90;\r\n }\r\n link.endX = x;\r\n link.endY = y;\r\n link.startAngle = angle;\r\n link.endAngle = angle;\r\n link.gradient.rotation = angle;\r\n link.linkWidth = value * chart.valueHeight;\r\n if (!dataItem.fromNode) {\r\n if (orientation_1 == \"horizontal\") {\r\n link.maxWidth = 200;\r\n link.startX = _this.pixelX + _this.dx - link.maxWidth;\r\n link.startY = link.endY;\r\n }\r\n else {\r\n link.maxHeight = 200;\r\n link.startX = link.endX;\r\n link.startY = _this.pixelY + _this.dy - link.maxHeight;\r\n }\r\n // TODO is this needed ?\r\n $utils.used(link.gradient);\r\n link.fill = dataItem.toNode.color;\r\n var stop_1 = link.gradient.stops.getIndex(0);\r\n if (stop_1) {\r\n if (link.colorMode == \"gradient\") {\r\n stop_1.color = _this.color;\r\n }\r\n stop_1.opacity = 0;\r\n link.fill = link.gradient;\r\n link.stroke = link.gradient;\r\n link.gradient.validate();\r\n }\r\n }\r\n //link.validate();\r\n _this.nextInCoord += link.linkWidth;\r\n }\r\n });\r\n }\r\n if (this._outgoingSorted) {\r\n $iter.each(this._outgoingSorted, function (dataItem) {\r\n var link = dataItem.link;\r\n link.parent = _this.chart.linksContainer;\r\n var value = dataItem.getWorkingValue(\"value\");\r\n if ($type.isNumber(value)) {\r\n var x = void 0;\r\n var y = void 0;\r\n var angle = void 0;\r\n if (orientation_1 == \"horizontal\") {\r\n angle = 0;\r\n x = _this.pixelX + _this.pixelWidth + _this.dx - 1;\r\n y = _this.nextOutCoord + _this.pixelY + _this.dy;\r\n }\r\n else {\r\n angle = 90;\r\n x = _this.nextOutCoord + _this.pixelX + _this.dx;\r\n y = _this.pixelY + _this.pixelHeight + _this.dy - 1;\r\n }\r\n link.startX = x;\r\n link.startY = y;\r\n link.startAngle = angle;\r\n link.endAngle = angle;\r\n link.gradient.rotation = angle;\r\n link.linkWidth = value * _this.chart.valueHeight;\r\n if (!dataItem.toNode) {\r\n if (orientation_1 == \"horizontal\") {\r\n link.maxWidth = 200;\r\n link.endX = _this.pixelX + link.maxWidth + _this.dx;\r\n link.endY = link.startY;\r\n }\r\n else {\r\n link.maxHeight = 200;\r\n link.endX = link.startX;\r\n link.endY = _this.pixelY + link.maxHeight + _this.dy;\r\n }\r\n link.opacity = _this.opacity;\r\n var stop_2 = link.gradient.stops.getIndex(1);\r\n if (stop_2) {\r\n if (link.colorMode == \"gradient\") {\r\n stop_2.color = _this.color;\r\n }\r\n stop_2.opacity = 0;\r\n link.fill = link.gradient;\r\n link.stroke = link.gradient;\r\n link.gradient.validate();\r\n }\r\n }\r\n //link.validate();\r\n _this.nextOutCoord += link.linkWidth;\r\n }\r\n });\r\n }\r\n }\r\n this.positionBullet(this.nameLabel);\r\n this.positionBullet(this.valueLabel);\r\n };\r\n /**\r\n * Positions the bullet so it is centered within the node element.\r\n *\r\n * @param bullet Target bullet\r\n */\r\n SankeyNode.prototype.positionBullet = function (bullet) {\r\n if (bullet) {\r\n bullet.x = this.measuredWidth * bullet.locationX;\r\n bullet.y = this.measuredHeight * bullet.locationY;\r\n }\r\n };\r\n Object.defineProperty(SankeyNode.prototype, \"level\", {\r\n /**\r\n * @return Level\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"level\");\r\n },\r\n /**\r\n * A level node is displayed at. (0 - ...)\r\n *\r\n * Levels are measured from left to right.\r\n *\r\n * The nodes in the left-most column will have `level = 0`.\r\n *\r\n * Nodes in second column - `level = 1`, etc.\r\n *\r\n * @param value Level\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"level\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies properties and labels from another [[SankeyNode]].\r\n *\r\n * @param source Source node\r\n */\r\n SankeyNode.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.nameLabel.copyFrom(source.nameLabel);\r\n this.valueLabel.copyFrom(source.valueLabel);\r\n };\r\n return SankeyNode;\r\n}(FlowDiagramNode));\r\nexport { SankeyNode };\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[\"SankeyNode\"] = SankeyNode;\r\n//# sourceMappingURL=SankeyNode.js.map","/**\r\n * Tick module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A basic Tick class.\r\n *\r\n * A tick is a short dash, mainly connecting an object like axis or slice to\r\n * it's textual label.\r\n *\r\n * @see {@link ITickEvents} for a list of available events\r\n * @see {@link ITickAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar Tick = /** @class */ (function (_super) {\r\n __extends(Tick, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Tick() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Tick\";\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.fillOpacity = 0;\r\n _this.length = 6;\r\n _this.strokeOpacity = 0.2;\r\n _this.stroke = interfaceColors.getFor(\"grid\");\r\n _this.isMeasured = false;\r\n _this.nonScalingStroke = true;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(Tick.prototype, \"length\", {\r\n /**\r\n * @return Length (px)\r\n */\r\n get: function () {\r\n if (this.disabled) {\r\n return 0;\r\n }\r\n return this.getPropertyValue(\"length\");\r\n },\r\n /**\r\n * Length of the tick in pixels.\r\n *\r\n * @param value Length (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"length\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Tick;\r\n}(Sprite));\r\nexport { Tick };\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[\"Tick\"] = Tick;\r\n//# sourceMappingURL=Tick.js.map","/**\r\n * A module with functionality for buildin a scrollbar with an XY graph in it.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Scrollbar } from \"../../core/elements/Scrollbar\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { List } from \"../../core/utils/List\";\r\nimport { MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport { XYChart } from \"../types/XYChart\";\r\nimport { ValueAxis } from \"../axes/ValueAxis\";\r\nimport { DateAxis } from \"../axes/DateAxis\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { DesaturateFilter } from \"../../core/rendering/filters/DesaturateFilter\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport { options } from \"../../core/Options\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A special version of the Scrollbar that has an XY chart in it.\r\n *\r\n * Used mainly as an advanced scrollbar with a preview for other XY charts.\r\n *\r\n * However, can be used as standalone element.\r\n *\r\n * @see {@link IXYChartScrollbarEvents} for a list of available events\r\n * @see {@link IXYChartScrollbarAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar XYChartScrollbar = /** @class */ (function (_super) {\r\n __extends(XYChartScrollbar, _super);\r\n /**\r\n * Constructor\r\n */\r\n function XYChartScrollbar() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * A chart element Scrollbar is for.\r\n */\r\n _this._chart = new MutableValueDisposer();\r\n _this.className = \"XYChartScrollbar\";\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.padding(0, 0, 0, 0);\r\n var scrollbarChart = _this.createChild(XYChart);\r\n scrollbarChart.shouldClone = false;\r\n scrollbarChart.margin(0, 0, 0, 0);\r\n scrollbarChart.padding(0, 0, 0, 0);\r\n scrollbarChart.interactionsEnabled = false;\r\n _this._scrollbarChart = scrollbarChart;\r\n if (!$utils.isIE()) {\r\n var filter = new DesaturateFilter();\r\n filter.filterUnits = \"userSpaceOnUse\";\r\n scrollbarChart.plotContainer.filters.push(filter);\r\n }\r\n _this._disposers.push(_this._scrollbarChart);\r\n _this.minHeight = 60;\r\n _this.minWidth = 60;\r\n var unselectedOverlay = _this.createChild(Sprite);\r\n unselectedOverlay.shouldClone = false;\r\n unselectedOverlay.setElement(_this.paper.add(\"path\"));\r\n unselectedOverlay.fill = interfaceColors.getFor(\"background\");\r\n unselectedOverlay.fillOpacity = 0.8;\r\n unselectedOverlay.interactionsEnabled = false;\r\n unselectedOverlay.isMeasured = false;\r\n unselectedOverlay.toBack();\r\n _this._unselectedOverlay = unselectedOverlay;\r\n _this._disposers.push(_this._unselectedOverlay);\r\n scrollbarChart.toBack();\r\n _this.background.cornerRadius(0, 0, 0, 0);\r\n var thumbBackground = _this.thumb.background;\r\n thumbBackground.cornerRadius(0, 0, 0, 0);\r\n thumbBackground.fillOpacity = 0;\r\n thumbBackground.fill = interfaceColors.getFor(\"background\");\r\n var hoverState = thumbBackground.states.getKey(\"hover\");\r\n if (hoverState) {\r\n hoverState.properties.fillOpacity = 0.2;\r\n }\r\n var downState = thumbBackground.states.getKey(\"down\");\r\n if (downState) {\r\n downState.properties.fillOpacity = 0.4;\r\n }\r\n _this._disposers.push(_this._chart);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(XYChartScrollbar.prototype, \"series\", {\r\n /**\r\n * A list of series that are used to draw graph(s) on the scrollbar.\r\n *\r\n * @readonly\r\n * @return Series\r\n */\r\n get: function () {\r\n if (!this._series) {\r\n this._series = new List();\r\n this._disposers.push(this._series.events.on(\"inserted\", this.handleSeriesAdded, this, false));\r\n this._disposers.push(this._series.events.on(\"removed\", this.handleSeriesRemoved, this, false));\r\n }\r\n return this._series;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Decorates a new series when they are pushed into a `series` list.\r\n *\r\n * @param event Event\r\n */\r\n XYChartScrollbar.prototype.handleSeriesAdded = function (event) {\r\n var _this = this;\r\n var sourceSeries = event.newValue;\r\n if (!sourceSeries.xAxis || !sourceSeries.yAxis) {\r\n return;\r\n }\r\n var scrollbarChart = this.scrollbarChart;\r\n scrollbarChart.zoomOutButton.disabled = true;\r\n this.chart = sourceSeries.chart;\r\n scrollbarChart.dateFormatter.inputDateFormat = this.chart.dateFormatter.inputDateFormat;\r\n // Ensure that scrollbar chart shares the same locale as parent chart\r\n scrollbarChart.language.locale = this.chart.language.locale;\r\n var addXAxis = true;\r\n var addYAxis = true;\r\n // check if we haven't added clone of x or y axis before\r\n $iter.each(this.series.iterator(), function (series) {\r\n if (series != sourceSeries) {\r\n if (series.xAxis == sourceSeries.xAxis && _this.scrollbarChart.xAxes.length > 0) {\r\n addXAxis = false;\r\n }\r\n if (series.yAxis == sourceSeries.yAxis && _this.scrollbarChart.yAxes.length > 0) {\r\n addYAxis = false;\r\n }\r\n }\r\n });\r\n sourceSeries.events.on(\"beforedisposed\", function () {\r\n _this.series.removeValue(sourceSeries);\r\n });\r\n var interfaceColors = new InterfaceColorSet();\r\n var series = sourceSeries.clone();\r\n if (options.onlyShowOnViewport || options.queue) {\r\n this.addDisposer(this.chart.events.on(\"removedfromqueue\", function () {\r\n scrollbarChart.invalidateData();\r\n }));\r\n }\r\n if ($utils.isIE()) {\r\n series.stroke = color(\"#aaaaaa\");\r\n series.fill = series.stroke;\r\n series.propertyFields.fill = undefined;\r\n series.propertyFields.stroke = undefined;\r\n }\r\n sourceSeries.scrollbarSeries = series;\r\n if (addXAxis) {\r\n var xAxis = sourceSeries.xAxis.clone();\r\n scrollbarChart.xAxes.moveValue(xAxis);\r\n xAxis.title.disabled = true;\r\n xAxis.rangeChangeDuration = 0;\r\n //xAxis.id = sourceSeries.uid;\r\n var renderer = xAxis.renderer;\r\n renderer.ticks.template.disabled = true;\r\n renderer.inside = true;\r\n renderer.labels.template.inside = true;\r\n renderer.line.strokeOpacity = 0;\r\n renderer.minLabelPosition = 0.02;\r\n renderer.maxLabelPosition = 0.98;\r\n renderer.line.disabled = true;\r\n renderer.axisFills.template.disabled = true;\r\n renderer.baseGrid.disabled = true;\r\n renderer.grid.template.strokeOpacity = 0.05;\r\n renderer.minWidth = undefined;\r\n renderer.minHeight = undefined;\r\n renderer.padding(0, 0, 0, 0);\r\n renderer.chart = scrollbarChart;\r\n renderer.margin(0, 0, 0, 0);\r\n xAxis.width = percent(100);\r\n var labelsTemplate = renderer.labels.template;\r\n labelsTemplate.fillOpacity = 0.5;\r\n xAxis.maxZoomCount = undefined;\r\n xAxis.minZoomCount = undefined;\r\n if (xAxis instanceof DateAxis) {\r\n var vAxis_1 = xAxis;\r\n var sourceAxis = sourceSeries.xAxis;\r\n vAxis_1.groupCount = sourceAxis.groupCount * 5;\r\n vAxis_1.min = undefined;\r\n vAxis_1.max = undefined;\r\n this._disposers.push(vAxis_1.clonedFrom.events.on(\"extremeschanged\", function () {\r\n if ($type.isNumber(vAxis_1.clonedFrom.minDefined)) {\r\n vAxis_1.min = vAxis_1.clonedFrom.minDefined;\r\n }\r\n if ($type.isNumber(vAxis_1.clonedFrom.maxDefined)) {\r\n vAxis_1.max = vAxis_1.clonedFrom.maxDefined;\r\n }\r\n }, undefined, false));\r\n }\r\n else if (xAxis instanceof ValueAxis) {\r\n var vAxis_2 = xAxis;\r\n vAxis_2.min = undefined;\r\n vAxis_2.max = undefined;\r\n if (!$type.isNumber(vAxis_2.clonedFrom.minDefined)) {\r\n vAxis_2.min = undefined;\r\n }\r\n if (!$type.isNumber(vAxis_2.clonedFrom.maxDefined)) {\r\n vAxis_2.max = undefined;\r\n }\r\n this._disposers.push(vAxis_2.clonedFrom.events.on(\"extremeschanged\", function () {\r\n if ($type.isNumber(vAxis_2.clonedFrom.minDefined)) {\r\n vAxis_2.min = vAxis_2.clonedFrom.min;\r\n }\r\n if ($type.isNumber(vAxis_2.clonedFrom.maxDefined)) {\r\n vAxis_2.max = vAxis_2.clonedFrom.max;\r\n }\r\n }, undefined, false));\r\n }\r\n series.xAxis = xAxis;\r\n }\r\n else {\r\n this.scrollbarChart.xAxes.each(function (xAxis) {\r\n if (xAxis.clonedFrom == sourceSeries.xAxis) {\r\n series.xAxis = xAxis;\r\n }\r\n });\r\n }\r\n if (addYAxis) {\r\n var yAxis = sourceSeries.yAxis.clone();\r\n scrollbarChart.yAxes.moveValue(yAxis);\r\n yAxis.title.disabled = true;\r\n yAxis.rangeChangeDuration = 0;\r\n var renderer = yAxis.renderer;\r\n renderer.ticks.template.disabled = true;\r\n renderer.inside = true;\r\n renderer.labels.template.inside = true;\r\n renderer.line.strokeOpacity = 0;\r\n renderer.minLabelPosition = 0.02;\r\n renderer.maxLabelPosition = 0.98;\r\n renderer.line.disabled = true;\r\n renderer.axisFills.template.disabled = true;\r\n renderer.grid.template.stroke = interfaceColors.getFor(\"background\");\r\n renderer.baseGrid.disabled = true;\r\n renderer.grid.template.strokeOpacity = 0.05;\r\n renderer.minWidth = undefined;\r\n renderer.minHeight = undefined;\r\n renderer.chart = scrollbarChart;\r\n renderer.padding(0, 0, 0, 0);\r\n renderer.margin(0, 0, 0, 0);\r\n yAxis.height = percent(100);\r\n var labelsTemplate = renderer.labels.template;\r\n labelsTemplate.fillOpacity = 0.5;\r\n series.yAxis = yAxis;\r\n yAxis.maxZoomCount = undefined;\r\n yAxis.minZoomCount = undefined;\r\n if (yAxis instanceof DateAxis) {\r\n var vAxis_3 = yAxis;\r\n vAxis_3.min = undefined;\r\n vAxis_3.max = undefined;\r\n var sourceAxis = sourceSeries.yAxis;\r\n yAxis.groupCount = sourceAxis.groupCount * 5;\r\n this._disposers.push(vAxis_3.clonedFrom.events.on(\"extremeschanged\", function () {\r\n if ($type.isNumber(vAxis_3.clonedFrom.minDefined)) {\r\n vAxis_3.min = vAxis_3.clonedFrom.minDefined;\r\n }\r\n if ($type.isNumber(vAxis_3.clonedFrom.maxDefined)) {\r\n vAxis_3.max = vAxis_3.clonedFrom.maxDefined;\r\n }\r\n }));\r\n }\r\n else if (yAxis instanceof ValueAxis) {\r\n var vAxis_4 = yAxis;\r\n vAxis_4.min = undefined;\r\n vAxis_4.max = undefined;\r\n if (!$type.isNumber(vAxis_4.clonedFrom.minDefined)) {\r\n vAxis_4.min = undefined;\r\n }\r\n if (!$type.isNumber(vAxis_4.clonedFrom.maxDefined)) {\r\n vAxis_4.max = undefined;\r\n }\r\n this._disposers.push(vAxis_4.clonedFrom.events.on(\"extremeschanged\", function () {\r\n if ($type.isNumber(vAxis_4.clonedFrom.minDefined)) {\r\n vAxis_4.min = vAxis_4.clonedFrom.minDefined;\r\n }\r\n if ($type.isNumber(vAxis_4.clonedFrom.maxDefined)) {\r\n vAxis_4.max = vAxis_4.clonedFrom.maxDefined;\r\n }\r\n }));\r\n }\r\n }\r\n else {\r\n this.scrollbarChart.yAxes.each(function (yAxis) {\r\n if (yAxis.clonedFrom == sourceSeries.yAxis) {\r\n series.yAxis = yAxis;\r\n }\r\n });\r\n }\r\n series.rangeChangeDuration = 0;\r\n series.interpolationDuration = 0;\r\n series.defaultState.transitionDuration = 0;\r\n series.showOnInit = false;\r\n this._disposers.push(series.events.on(\"validated\", this.zoomOutAxes, this, false));\r\n // data might be set drectly on series\r\n this._disposers.push(sourceSeries.events.on(\"datavalidated\", function () {\r\n if (series.data != sourceSeries.data) { // data setter doesn't check this\r\n series.data = sourceSeries.data;\r\n }\r\n }, undefined, false));\r\n series.defaultState.properties.visible = true;\r\n scrollbarChart.series.push(series);\r\n this.updateByOrientation();\r\n };\r\n /**\r\n * @ignore\r\n */\r\n XYChartScrollbar.prototype.updateByOrientation = function () {\r\n var _this = this;\r\n if (this._scrollbarChart) {\r\n $iter.each(this._scrollbarChart.xAxes.iterator(), function (xAxis) {\r\n var renderer = xAxis.renderer;\r\n if (_this.orientation == \"vertical\") {\r\n renderer.grid.template.disabled = true;\r\n renderer.labels.template.disabled = true;\r\n renderer.minGridDistance = 10;\r\n }\r\n else {\r\n renderer.grid.template.disabled = false;\r\n renderer.labels.template.disabled = false;\r\n renderer.minGridDistance = xAxis.clonedFrom.renderer.minGridDistance;\r\n }\r\n });\r\n $iter.each(this._scrollbarChart.yAxes.iterator(), function (yAxis) {\r\n var renderer = yAxis.renderer;\r\n if (_this.orientation == \"horizontal\") {\r\n renderer.grid.template.disabled = true;\r\n renderer.labels.template.disabled = true;\r\n renderer.minGridDistance = 10;\r\n }\r\n else {\r\n renderer.grid.template.disabled = false;\r\n renderer.labels.template.disabled = false;\r\n renderer.minGridDistance = yAxis.clonedFrom.renderer.minGridDistance;\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Cleans up after series are removed from Scrollbar.\r\n *\r\n * @param event Event\r\n */\r\n XYChartScrollbar.prototype.handleSeriesRemoved = function (event) {\r\n var sourceSeries = event.oldValue;\r\n var scrollbarChart = this.scrollbarChart;\r\n scrollbarChart.series.each(function (series) {\r\n if (series && series.clonedFrom == sourceSeries) {\r\n scrollbarChart.series.removeValue(series);\r\n }\r\n });\r\n if (scrollbarChart.series.length == 0) {\r\n scrollbarChart.xAxes.clear();\r\n scrollbarChart.yAxes.clear();\r\n }\r\n try {\r\n sourceSeries.events.off(\"validated\", this.zoomOutAxes, this);\r\n }\r\n catch (err) {\r\n }\r\n };\r\n Object.defineProperty(XYChartScrollbar.prototype, \"scrollbarChart\", {\r\n /**\r\n * A chart element that is used to display graphs in the Scrollbar.\r\n *\r\n * This is not the same as `chart`. It's a totally independent instance of\r\n * [[XYChart]] with separate config, series, etc.\r\n *\r\n * It can be configured just like any other [[XYChart]].\r\n *\r\n * @readonly\r\n * @return Scrollbar's internal chart\r\n */\r\n get: function () {\r\n return this._scrollbarChart;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYChartScrollbar.prototype, \"chart\", {\r\n /**\r\n * @return Chart\r\n */\r\n get: function () {\r\n return this._chart.get();\r\n },\r\n /**\r\n * A chart that Scrollbar belongs to.\r\n *\r\n * @param chart Chart\r\n */\r\n set: function (chart) {\r\n if (this._chart.get() !== chart) {\r\n this._chart.set(chart, chart.events.on(\"datavalidated\", this.handleDataChanged, this, false));\r\n this.handleDataChanged();\r\n this._scrollbarChart.dataProvider = chart; // this makes scrollbar chart do not validate data untill charts' data is validated\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYChartScrollbar.prototype, \"unselectedOverlay\", {\r\n /**\r\n * A [[Sprite]] object representing overlay that is used to dim area of the\r\n * scrollbar that is currently not selected.\r\n *\r\n * Use its `fillOpacity` to set opacity of the fill, with `0` (zero)\r\n * completely disabling the dimming, and `1` making unselected area completely\r\n * blank.\r\n *\r\n * @since 4.6.1\r\n * @readonly\r\n * @return Unselected area curtain element\r\n */\r\n get: function () {\r\n return this._unselectedOverlay;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Updates Scrollbar's internal chart's data when the main chart's data\r\n * changes.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYChartScrollbar.prototype.handleDataChanged = function () {\r\n if (this.chart.data != this.scrollbarChart.data) {\r\n this.scrollbarChart.data = this.chart.data;\r\n }\r\n else {\r\n // add data is handled in XYChart\r\n // invalidating all data caused the problem: https://github.com/amcharts/amcharts4/issues/2096\r\n this.scrollbarChart.invalidateRawData();\r\n }\r\n };\r\n /**\r\n * Zooms out all axes on the internal chart.\r\n */\r\n XYChartScrollbar.prototype.zoomOutAxes = function () {\r\n var scrollbarChart = this.scrollbarChart;\r\n $iter.each(scrollbarChart.xAxes.iterator(), function (x) {\r\n x.zoom({ start: 0, end: 1 }, true, true);\r\n });\r\n $iter.each(scrollbarChart.yAxes.iterator(), function (y) {\r\n y.zoom({ start: 0, end: 1 }, true, true);\r\n });\r\n };\r\n /**\r\n * Updates scrollbar thumb.\r\n *\r\n * @ignore\r\n */\r\n XYChartScrollbar.prototype.updateThumb = function (dispatchEvents) {\r\n if (dispatchEvents === void 0) { dispatchEvents = true; }\r\n _super.prototype.updateThumb.call(this, dispatchEvents);\r\n if (this._unselectedOverlay) {\r\n var thumb = this.thumb;\r\n var x = thumb.pixelX || 0;\r\n var y = thumb.pixelY || 0;\r\n var w = thumb.pixelWidth || 0;\r\n var h = thumb.pixelHeight || 0;\r\n var path = \"\";\r\n if (this.orientation == \"horizontal\") {\r\n path = $path.rectToPath({\r\n x: -1,\r\n y: 0,\r\n width: x,\r\n height: h\r\n });\r\n path += $path.rectToPath({\r\n x: x + w,\r\n y: 0,\r\n width: (this.pixelWidth || 0) - x - w,\r\n height: h\r\n });\r\n }\r\n else {\r\n path = $path.rectToPath({\r\n x: 0,\r\n y: 0,\r\n width: w,\r\n height: y\r\n });\r\n path += $path.rectToPath({\r\n x: 0,\r\n y: y + h,\r\n width: w,\r\n height: (this.pixelHeight || 0) - y - h\r\n });\r\n }\r\n this._unselectedOverlay.path = path;\r\n }\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 XYChartScrollbar.prototype.processConfig = function (config) {\r\n if (config) {\r\n if ($type.hasValue(config.series) && $type.isArray(config.series)) {\r\n for (var i = 0, len = config.series.length; i < len; i++) {\r\n var series = config.series[i];\r\n if ($type.hasValue(series) && $type.isString(series)) {\r\n if (this.map.hasKey(series)) {\r\n config.series[i] = this.map.getKey(series);\r\n }\r\n else {\r\n throw Error(\"XYChartScrollbar error: Series with id `\" + series + \"` does not exist.\");\r\n }\r\n }\r\n }\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n return XYChartScrollbar;\r\n}(Scrollbar));\r\nexport { XYChartScrollbar };\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[\"XYChartScrollbar\"] = XYChartScrollbar;\r\n//# sourceMappingURL=XYChartScrollbar.js.map"],"names":["Bullet","_super","_this","call","this","className","isMeasured","tooltipX","tooltipY","layout","applyOnClones","copyToLegendMarker","applyTheme","Object","defineProperty","prototype","get","getPropertyValue","set","value","setPropertyValue","dataItem","component","invalidate","enumerable","configurable","relevant","state","target","stateId","states","create","properties","disabled","Candlestick","createAssets","lowLine","createChild","shouldClone","highLine","copyFrom","source","ChordLink","middleLine","strokeOpacity","validate","isTemplate","startAngle","endAngle","arc","radius","fromNode","toNode","fromX","fromY","pixelX","dx","pixelY","dy","toX","toY","x1","y1","x2","y2","cp","x","y","path","link","maskBullets","bulletsMask","bulletsContainer","mask","mAngle1","mAngle2","cpx","cpy","stroke","fill","positionBullets","ChordNode","label","location","text","zIndex","events","on","updateRotation","slice","hiddenState","getFor","opacity","visible","setStateOnChildren","adapter","add","ix","pixelInnerRadius","iy","invalidateLinks","chart","sum","total","arc_1","sliceStartAngle_1","children","each","child","locationX","locationY","childAngle","childRadius","labelAngle","adjustedTotal","fixPosition","nextAngle","_outgoingSorted","parent","linksContainer","getWorkingValue","nonRibbon","percentWidth","valueAngle","_incomingSorted","mAngle","trueStartAngle","tx","ty","angle","CircleBullet","circle","C","ClockHand","_axis","interfaceColors","pin","startWidth","endWidth","width","height","innerRadius","hand","_disposers","push","pixelWidth","h","Math","max","leftSide","rightSide","axis","renderer","x0","pixelRadius","_pin","removeDispose","_hand","setPercentProperty","showValue","duration","easing","_value","undefined","newAngle","positionToAngle","anyToPosition","currentAngle","rotation","rotationDirection","animate","property","to","angleToPosition","updateValue","processConfig","config","map","hasKey","getKey","Column","disableType","handleKidAdded","column","cornerRadius","maxWidth","pixelHeight","maxHeight","invalid","definedBBox","measuredWidth","measuredHeight","Column3D","column3D","setFill","ConeColumn","coneColumn","CurvedColumn","curvedColumn","draw","points","w","realWidth","realHeight","realX","realY","tensionX","tensionY","orientation","tension","abs","smooth","ErrorBullet","errorLine","isDynamic","validatePosition","FlowDiagramLink","colorMode","verticalCenter","horizontalCenter","tooltipText","tooltipLocation","setElement","paper","fillOpacity","bullets","iterator","bullet","positionBullet","_bulletsContainer","_bulletsMask","point","positionToPoint","moveTo","rotationField","propertyFields","dataContext","color","gradient","stops","clear","addColor","_gradient","measureElement","_bullets","template","event","newValue","getTooltipX","getTooltipY","FlowDiagramNode","legendSettings","draggable","inert","handleHit","isHidden","isHiding","show","hide","animation","outgoingDataItems","setWorkingValue","getValue","incomingDataItems","isDisposed","stop_1","getIndex","stop_2","_incomingDataItems","sortBy","fromName","_outgoingDataItems","setColorProperty","_background","createLegendMarker","marker","removeChildren","padding","legendDataItem","colorOrig","_legendDataItem","itemContainer","deepInvalidate","FunnelSlice","bottomWidth","topWidth","expandDistance","pt","pixelPaddingTop","pb","pixelPaddingBottom","pr","pixelPaddingRight","pl","pixelPaddingLeft","ed","tw","bw","tl","tr","br","bl","cpr","cpl","qp1","qp2","tickPoint","tt","tb","bt","bb","invalidateLayout","getPoint","mlx","mrx","mty","mby","FunnelTick","_label","_slice","element","series","p0","p1","p2","labelsOpposite","maxRight","length","maxBottom","HeatLegend","markerContainer","markerCount","minHeight","minWidth","interactionsEnabled","markers","getMinFromRules","minValue_1","heatRules","heatRule","min","getMaxFromRules","maxValue_1","valueAxis","inversed","reverseOrder","minColor","maxColor","seriesFill","minOpacity","maxOpacity","minStrokeOpacity","maxStrokeOpacity","minStroke","maxStroke","i","strokeGradient","c","rgb","color_1","opacity_1","minGridDistance","len","tooltip","pointerOrientation","inside","labels","grid","axisFills","baseGrid","_valueAxis","strictMinMax","_series","dataField","dataFieldDefined","err","updateMinMax","values","low","high","minValue","maxValue","seriesId_1","disposer_1","ev","key","dispose","LabelBullet","truncate","hideOversized","handleMaxSize","NavigationBarDataItem","setProperty","NavigationBar","textLink","valign","paddingTop","paddingBottom","links","_linksIterator","createNewItems","triangle","direction","marginLeft","marginRight","separators","activeLink","fontWeight","dataFields","name","validateDataElements","reset","validateDataElement","index","dataItems","getLast","separator","OHLC","openLine","highLowLine","closeLine","PieTick","scale","y0","radiusY","alignLabels","r","attr","RadarColumn","radarColumn","SankeyLink","controlPointDistance","linkWidth","startX","endX","startY","endY","makeBackwards","setState","_a","_b","_c","_d","xt0","yt0","xt1","yt1","xb0","xb1","yb0","yb1","xm0","xm1","ym0","ym1","minX","minY","maxX","maxY","_bbox","cpd","kxt0","kyt0","kxt1","kyt1","kxm0","kym0","kxm1","kym1","kxb0","kyb0","kxb1","kyb1","segments","SankeyNode","nextInCoord","nextOutCoord","nameLabel","valueLabel","background","orientation_1","valueHeight","Tick","nonScalingStroke","XYChartScrollbar","_chart","scrollbarChart","margin","_scrollbarChart","filter","filterUnits","plotContainer","filters","unselectedOverlay","toBack","_unselectedOverlay","thumbBackground","thumb","hoverState","downState","handleSeriesAdded","handleSeriesRemoved","sourceSeries","xAxis","yAxis","zoomOutButton","dateFormatter","inputDateFormat","language","locale","addXAxis","addYAxis","xAxes","yAxes","removeValue","clone","addDisposer","invalidateData","scrollbarSeries","moveValue","title","rangeChangeDuration","ticks","line","minLabelPosition","maxLabelPosition","labelsTemplate","maxZoomCount","minZoomCount","vAxis_1","sourceAxis","groupCount","clonedFrom","minDefined","maxDefined","vAxis_2","vAxis_3","vAxis_4","interpolationDuration","defaultState","transitionDuration","showOnInit","zoomOutAxes","data","updateByOrientation","oldValue","off","handleDataChanged","dataProvider","invalidateRawData","zoom","start","end","updateThumb","dispatchEvents","Error"],"sourceRoot":""}