{"version":3,"sources":["webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/FlowDiagramLink.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/ConeColumn.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/ChordNode.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/ChordLink.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/Column.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/HeatLegend.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/CurvedColumn.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/SankeyLink.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/Bullet.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/FlowDiagramNode.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/CircleBullet.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/FunnelSlice.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/Column3D.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/FunnelTick.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/RadarColumn.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/PieTick.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/LabelBullet.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/Tick.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/NavigationBar.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/XYChartScrollbar.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/ErrorBullet.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/Candlestick.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/ClockHand.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/OHLC.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/SankeyNode.js"],"names":["__webpack_require__","d","__webpack_exports__","FlowDiagramLink","tslib__WEBPACK_IMPORTED_MODULE_0__","_core_Sprite__WEBPACK_IMPORTED_MODULE_1__","_core_Container__WEBPACK_IMPORTED_MODULE_2__","_core_rendering_fills_LinearGradient__WEBPACK_IMPORTED_MODULE_3__","_core_Registry__WEBPACK_IMPORTED_MODULE_4__","_elements_Bullet__WEBPACK_IMPORTED_MODULE_5__","_core_utils_Color__WEBPACK_IMPORTED_MODULE_6__","_core_utils_List__WEBPACK_IMPORTED_MODULE_7__","_core_elements_Polyline__WEBPACK_IMPORTED_MODULE_8__","_core_elements_Line__WEBPACK_IMPORTED_MODULE_9__","_core_utils_InterfaceColorSet__WEBPACK_IMPORTED_MODULE_10__","_core_utils_Iterator__WEBPACK_IMPORTED_MODULE_11__","_core_utils_Type__WEBPACK_IMPORTED_MODULE_12__","_super","_this","call","this","className","interfaceColors","maskBullets","colorMode","layout","isMeasured","startAngle","endAngle","strokeOpacity","verticalCenter","horizontalCenter","tooltipText","tooltipLocation","link","createChild","shouldClone","setElement","paper","add","fillOpacity","fill","getFor","applyTheme","prototype","positionBullets","bullets","iterator","bullet","parent","bulletsContainer","maxWidth","maxHeight","positionBullet","Object","defineProperty","get","_bulletsContainer","enumerable","configurable","_bulletsMask","bulletsMask","location","locationX","locationY","point","middleLine","positionToPoint","moveTo","angle","rotationField","propertyFields","rotation","dataItem","dataContext","getPropertyValue","set","value","setPropertyValue","color","gradient","stops","clear","addColor","stroke","setFill","_gradient","measureElement","_bullets","_disposers","push","template","events","on","event","newValue","property","target","undefined","copyFrom","source","getTooltipX","x","getTooltipY","y","registeredClasses","ConeColumn","_Column__WEBPACK_IMPORTED_MODULE_1__","_core_elements_3d_Cone__WEBPACK_IMPORTED_MODULE_2__","_core_Registry__WEBPACK_IMPORTED_MODULE_3__","createAssets","coneColumn","column","ChordNode","_FlowDiagramNode__WEBPACK_IMPORTED_MODULE_1__","_axes_AxisLabelCircular__WEBPACK_IMPORTED_MODULE_2__","_core_elements_Slice__WEBPACK_IMPORTED_MODULE_4__","_core_utils_InterfaceColorSet__WEBPACK_IMPORTED_MODULE_5__","_core_utils_Iterator__WEBPACK_IMPORTED_MODULE_6__","_core_utils_Math__WEBPACK_IMPORTED_MODULE_7__","_core_utils_Type__WEBPACK_IMPORTED_MODULE_8__","_elements_Bullet__WEBPACK_IMPORTED_MODULE_9__","label","radius","text","zIndex","updateRotation","slice","hiddenState","properties","opacity","visible","setStateOnChildren","adapter","tooltipX","ix","pixelInnerRadius","tooltipY","iy","invalidateLinks","chart","sum","total","arc_1","arc","sliceStartAngle_1","children","each","child","childAngle","childRadius","labelAngle","adjustedTotal","fixPosition","nextAngle","_outgoingSorted","linksContainer","getWorkingValue","nonRibbon","percentWidth","valueAngle","toNode","_incomingSorted","fromNode","mAngle","trueStartAngle","tx","ty","pixelX","pixelY","dx","dy","ChordLink","_FlowDiagramLink__WEBPACK_IMPORTED_MODULE_1__","_core_Registry__WEBPACK_IMPORTED_MODULE_2__","_core_elements_QuadraticCurve__WEBPACK_IMPORTED_MODULE_3__","_core_utils_Math__WEBPACK_IMPORTED_MODULE_4__","_core_rendering_Path__WEBPACK_IMPORTED_MODULE_5__","validate","isTemplate","fromX","fromY","toX","toY","x1","y1","x2","y2","cp","path","mask","mAngle1","mAngle2","cpx","cpy","Column","_core_Container__WEBPACK_IMPORTED_MODULE_1__","_core_elements_RoundedRectangle__WEBPACK_IMPORTED_MODULE_2__","_core_utils_Percent__WEBPACK_IMPORTED_MODULE_4__","_core_utils_Math__WEBPACK_IMPORTED_MODULE_5__","width","height","applyOnClones","handleKidAdded","cornerRadius","pixelWidth","pixelHeight","invalid","definedBBox","measuredWidth","measuredHeight","_core_rendering_fills_LinearGradient__WEBPACK_IMPORTED_MODULE_2__","_core_utils_Color__WEBPACK_IMPORTED_MODULE_4__","_core_utils_List__WEBPACK_IMPORTED_MODULE_5__","_core_utils_Percent__WEBPACK_IMPORTED_MODULE_6__","_charts_axes_ValueAxis__WEBPACK_IMPORTED_MODULE_7__","_charts_axes_AxisRendererX__WEBPACK_IMPORTED_MODULE_8__","_charts_axes_AxisRendererY__WEBPACK_IMPORTED_MODULE_9__","_core_utils_Iterator__WEBPACK_IMPORTED_MODULE_10__","_core_utils_Type__WEBPACK_IMPORTED_MODULE_11__","_core_utils_Colors__WEBPACK_IMPORTED_MODULE_12__","_core_elements_RoundedRectangle__WEBPACK_IMPORTED_MODULE_13__","HeatLegend","markerContainer","markerCount","marker","minHeight","minWidth","interactionsEnabled","orientation","markers","getMinFromRules","minValue_1","series","heatRules","heatRule","min","getMaxFromRules","maxValue_1","max","minColor","maxColor","seriesFill","minOpacity","maxOpacity","minStrokeOpacity","maxStrokeOpacity","minStroke","maxStroke","i","getIndex","create","strokeGradient","rgb","color_1","opacity_1","renderer","valueAxis","minGridDistance","invalidate","len","length","setColorProperty","tooltip","pointerOrientation","inside","labels","reverseOrder","grid","disabled","axisFills","baseGrid","padding","_valueAxis","strictMinMax","_series","dataField","dataFieldDefined","err","updateMinMax","values","low","high","minValue","maxValue","processConfig","config","map","hasKey","getKey","seriesId_1","disposer_1","ev","key","dispose","CurvedColumn","_core_Sprite__WEBPACK_IMPORTED_MODULE_2__","_core_rendering_Path__WEBPACK_IMPORTED_MODULE_3__","_core_utils_Utils__WEBPACK_IMPORTED_MODULE_4__","_core_Registry__WEBPACK_IMPORTED_MODULE_5__","_core_rendering_Smoothing__WEBPACK_IMPORTED_MODULE_6__","_core_utils_Percent__WEBPACK_IMPORTED_MODULE_7__","curvedColumn","draw","points","w","realWidth","h","realHeight","realX","realY","tensionX","tensionY","tension","smooth","SankeyLink","_core_elements_Polyspline__WEBPACK_IMPORTED_MODULE_3__","_core_utils_InterfaceColorSet__WEBPACK_IMPORTED_MODULE_4__","_core_utils_Type__WEBPACK_IMPORTED_MODULE_6__","_core_rendering_Smoothing__WEBPACK_IMPORTED_MODULE_7__","_core_rendering_Path__WEBPACK_IMPORTED_MODULE_8__","controlPointDistance","linkWidth","startX","endX","startY","endY","x0","y0","xt0","yt0","xt1","yt1","xb0","xb1","yb0","yb1","xm0","xm1","ym0","ym1","index","minX","Math","minY","maxX","maxY","_bbox","cpd","kxt0","kyt0","kxt1","kyt1","kxm0","kym0","kxm1","kym1","kxb0","kyb0","kxb1","kyb1","segments","Bullet","_core_utils_Responsive__WEBPACK_IMPORTED_MODULE_3__","copyToLegendMarker","relevant","isXS","state","stateId","states","FlowDiagramNode","_core_utils_List__WEBPACK_IMPORTED_MODULE_3__","_core_utils_String__WEBPACK_IMPORTED_MODULE_7__","_core_utils_Order__WEBPACK_IMPORTED_MODULE_8__","_core_utils_Number__WEBPACK_IMPORTED_MODULE_9__","_core_elements_RoundedRectangle__WEBPACK_IMPORTED_MODULE_10__","_core_utils_Object__WEBPACK_IMPORTED_MODULE_11__","_Legend__WEBPACK_IMPORTED_MODULE_12__","legendSettings","draggable","inert","handleHit","isHidden","isHiding","show","hide","duration","animation","outgoingDataItems","setWorkingValue","getValue","incomingDataItems","isDisposed","stop_1","stop_2","_incomingDataItems","sortBy","fromName","_outgoingDataItems","_background","createLegendMarker","removeChildren","legendDataItem","colorOrig","_legendDataItem","itemContainer","deepInvalidate","_Bullet__WEBPACK_IMPORTED_MODULE_1__","_core_elements_Circle__WEBPACK_IMPORTED_MODULE_2__","CircleBullet","circle","FunnelSlice","_core_utils_Utils__WEBPACK_IMPORTED_MODULE_5__","_core_rendering_Path__WEBPACK_IMPORTED_MODULE_6__","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","setPercentProperty","Column3D","_core_elements_3d_Rectangle3D__WEBPACK_IMPORTED_MODULE_2__","column3D","FunnelTick","_elements_Tick__WEBPACK_IMPORTED_MODULE_1__","_core_utils_Disposer__WEBPACK_IMPORTED_MODULE_2__","_label","_slice","element","component","labelsOpposite","maxRight","p0","p1","maxBottom","RadarColumn","_core_elements_Slice__WEBPACK_IMPORTED_MODULE_2__","_core_utils_Type__WEBPACK_IMPORTED_MODULE_4__","radarColumn","PieTick","scale","radiusY","alignLabels","r","pixelRadius","attr","LabelBullet","_core_elements_Label__WEBPACK_IMPORTED_MODULE_2__","truncate","hideOversized","handleMaxSize","Tick","_core_utils_InterfaceColorSet__WEBPACK_IMPORTED_MODULE_3__","nonScalingStroke","_core_Component__WEBPACK_IMPORTED_MODULE_1__","_core_DataItem__WEBPACK_IMPORTED_MODULE_2__","_core_elements_TextLink__WEBPACK_IMPORTED_MODULE_4__","_core_elements_Triangle__WEBPACK_IMPORTED_MODULE_5__","_core_Registry__WEBPACK_IMPORTED_MODULE_6__","_core_utils_InterfaceColorSet__WEBPACK_IMPORTED_MODULE_7__","_core_utils_Percent__WEBPACK_IMPORTED_MODULE_8__","_core_utils_Iterator__WEBPACK_IMPORTED_MODULE_9__","NavigationBarDataItem","setProperty","NavigationBar","textLink","valign","paddingTop","paddingBottom","links","_linksIterator","createNewItems","triangle","direction","marginLeft","marginRight","separators","activeLink","fontWeight","dataFields","name","validateDataElements","reset","validateDataElement","dataItems","getLast","separator","XYChartScrollbar","_core_elements_Scrollbar__WEBPACK_IMPORTED_MODULE_1__","_core_utils_Disposer__WEBPACK_IMPORTED_MODULE_4__","_types_XYChart__WEBPACK_IMPORTED_MODULE_5__","_core_rendering_filters_DesaturateFilter__WEBPACK_IMPORTED_MODULE_8__","_core_utils_Type__WEBPACK_IMPORTED_MODULE_10__","_core_rendering_Path__WEBPACK_IMPORTED_MODULE_11__","_chart","scrollbarChart","margin","_scrollbarChart","unselectedOverlay","toBack","_unselectedOverlay","background","thumbBackground","thumb","hoverState","downState","handleSeriesAdded","handleSeriesRemoved","sourceSeries","zoomOutButton","addXAxis","addYAxis","xAxis","yAxis","clone","xAxes","moveValue","title","rangeChangeDuration","id","uid","ticks","line","minLabelPosition","maxLabelPosition","labelsTemplate","clonedFrom","yAxes","interpolationDuration","defaultState","transitionDuration","showOnInit","zoomOutAxes","data","filters","updateByOrientation","oldValue","off","handleDataChanged","dataProvider","zoom","start","end","updateThumb","Error","_core_rendering_Path__WEBPACK_IMPORTED_MODULE_4__","ErrorBullet","errorLine","isDynamic","validatePosition","Candlestick","_core_elements_Line__WEBPACK_IMPORTED_MODULE_2__","lowLine","highLine","ClockHand","_core_elements_Trapezoid__WEBPACK_IMPORTED_MODULE_3__","_core_utils_Percent__WEBPACK_IMPORTED_MODULE_5__","_core_utils_Utils__WEBPACK_IMPORTED_MODULE_8__","_core_utils_Type__WEBPACK_IMPORTED_MODULE_9__","_axis","pin","startWidth","endWidth","innerRadius","hand","leftSide","rightSide","axis","_pin","removeDispose","_hand","showValue","easing","_value","newAngle","positionToAngle","anyToPosition","currentAngle","rotationDirection","animate","to","updateValue","OHLC","_Candlestick__WEBPACK_IMPORTED_MODULE_1__","openLine","highLowLine","closeLine","SankeyNode","_LabelBullet__WEBPACK_IMPORTED_MODULE_2__","_core_utils_Iterator__WEBPACK_IMPORTED_MODULE_5__","_core_utils_Utils__WEBPACK_IMPORTED_MODULE_7__","nextInCoord","nextOutCoord","nameLabel","valueLabel","orientation_1","valueHeight"],"mappings":"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","file":"js/chunk-16df9769.0eb01044.js","sourcesContent":["/**\r\n * FlowDiagramLink module\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 tslib_1.__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 * 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 * as tslib_1 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 tslib_1.__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 * ChordNode module\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 tslib_1.__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 * ChordLink module\r\n */\r\nimport * as tslib_1 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 tslib_1.__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 * 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 * as tslib_1 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 tslib_1.__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.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.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 * HeatLegend module\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 tslib_1.__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 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 gradient.addColor(minColor, minOpacity);\r\n gradient.addColor(maxColor, maxOpacity);\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 strokeGradient.addColor(minStroke, minStrokeOpacity);\r\n strokeGradient.addColor(maxStroke, maxStrokeOpacity);\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 color = new Color($colors.interpolate(minColor.rgb, maxColor.rgb, i / this.markerCount));\r\n marker.fill = color;\r\n var opacity = minOpacity + (maxOpacity - minOpacity) * i / 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, i / this.markerCount));\r\n marker.stroke = color_1;\r\n var opacity_1 = minStrokeOpacity + (maxStrokeOpacity - minStrokeOpacity) * i / 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 (!$type.isObject(value)) {\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 * 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 * as tslib_1 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 tslib_1.__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 points = [{ x: x, y: 0 }, { x: x + w, y: h / 2 }, { x: x, y: h }];\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 * SankeyLink module\r\n */\r\nimport * as tslib_1 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 tslib_1.__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 /**\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 _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 (!$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 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 * Module that defines everything related to building bullets.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 tslib_1.__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 this.setPropertyValue(\"locationX\", value, false, true);\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 this.setPropertyValue(\"locationY\", value, false, true);\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 * FlowDiagramNode module\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 tslib_1.__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 }\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 }\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 });\r\n this.incomingDataItems.each(function (dataItem) {\r\n dataItem.setWorkingValue(\"value\", 0, duration);\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 * Bullet module\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 tslib_1.__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 * Module that defines everything related to building Funnel slices.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 tslib_1.__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 = \"\";\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 = \"\";\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 * 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 * as tslib_1 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 tslib_1.__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 * Funnel tick module.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 tslib_1.__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 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 var p0 = $utils.spritePointToSprite(point, slice, this.parent);\r\n var p1 = $utils.spritePointToSprite({ x: x1, y: y1 }, label.parent, this.parent);\r\n this.path = $path.moveTo(p0) + $path.lineTo(p1);\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 var p0 = $utils.spritePointToSprite(point, slice, this.parent);\r\n var p1 = $utils.spritePointToSprite({ x: x1, y: y1 }, label.parent, this.parent);\r\n this.path = $path.moveTo(p0) + $path.lineTo(p1);\r\n }\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 * 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 * as tslib_1 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 tslib_1.__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 */\r\n RadarColumn.prototype.getTooltipX = function () {\r\n var value = this.getPropertyValue(\"tooltipX\");\r\n if (!$type.isNumber(value)) {\r\n value = this.radarColumn.tooltipX;\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 */\r\n RadarColumn.prototype.getTooltipY = function () {\r\n var value = this.getPropertyValue(\"tooltipX\");\r\n if (!$type.isNumber(value)) {\r\n value = this.radarColumn.tooltipY;\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 * Pie tick module.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 tslib_1.__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 * Bullet module\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 tslib_1.__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 * Tick module\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 tslib_1.__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 * Functionality for drawing simple NavigationBar.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 tslib_1.__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 tslib_1.__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 * A module with functionality for buildin a scrollbar with an XY graph in it.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 { 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\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 tslib_1.__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 _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 sourceSeries = event.newValue;\r\n var scrollbarChart = this.scrollbarChart;\r\n scrollbarChart.zoomOutButton.disabled = true;\r\n this.chart = sourceSeries.chart;\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) {\r\n addXAxis = false;\r\n }\r\n if (series.yAxis == sourceSeries.yAxis) {\r\n addYAxis = false;\r\n }\r\n }\r\n });\r\n var interfaceColors = new InterfaceColorSet();\r\n var series = sourceSeries.clone();\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 var labelsTemplate = renderer.labels.template;\r\n labelsTemplate.fillOpacity = 0.5;\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 var labelsTemplate = renderer.labels.template;\r\n labelsTemplate.fillOpacity = 0.5;\r\n series.yAxis = yAxis;\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 series.filters.push(new DesaturateFilter());\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 sourceSeries.events.off(\"validated\", this.zoomOutAxes, this);\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 /**\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 //@todo: what if raw data changed?\r\n if (this.chart.data != this.scrollbarChart.data) {\r\n this.scrollbarChart.data = this.chart.data;\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 XYChartScrollbar.prototype.updateThumb = function () {\r\n _super.prototype.updateThumb.call(this);\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","/**\r\n * Bullet module\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 tslib_1.__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 * Module that defines everything related to building Candlesticks.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 tslib_1.__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 * Functionality for drawing simple ClockHands\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 tslib_1.__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, \"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 OHLCs.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 tslib_1.__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 * SankeyNode module\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { 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 tslib_1.__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"],"sourceRoot":""}