{"version":3,"sources":["webpack:///./node_modules/@amcharts/amcharts5/.internal/charts/xy/axes/CategoryAxis.js","webpack:///./node_modules/@amcharts/amcharts5/.internal/charts/xy/series/BaseColumnSeries.js","webpack:///./node_modules/@amcharts/amcharts5/.internal/charts/xy/series/ColumnSeries.js","webpack:///./node_modules/@amcharts/amcharts5/.internal/core/render/Legend.js"],"names":["CategoryAxis","super","arguments","Object","defineProperty","this","enumerable","configurable","writable","value","_settings","themeTags","fields","push","setPrivateRaw","addTag","_afterNew","_prepareChildren","len","dataItems","length","i","_valuesDirty","_itemMap","dataItem","setRaw","get","Math","max","round","min","_sizeDirty","isDirty","isPrivateDirty","_handleRangeChange","_prepareAxisItems","_updateAxisRanges","series","startCategory","startIndex","endCategory","endIndex","baseAxis","xAxis","yAxis","_markDirtyAxes","key","openKey","otherAxis","className","startDataItem","endDataItem","indexOf","setPrivate","hasValue","__valueXShowFields","__valueYShowFields","_a","renderer","minorLabelsEnabled","minorGridEnabled","maxCount","axisLength","frequency","ceil","floor","_frequency","j","_toggleDataItem","f","_createAssets","count","_prepareDataItem","_updateGhost","fillIndex","categoryLocation","endCategoryLocation","index","categoryToIndex","position","indexToPosition","fillEndIndex","fillEndPosition","endPosition","updateLabel","updateGrid","updateTick","updateFill","_processBullet","updateBullet","fillRule","getPrivate","axisDataItem","positionToCoordinate","NaN","field","cellLocation","_axisLocation","category","getDataItemPositionX","getDataItemPositionY","location","startLocation","endLocation","axisPositionToIndex","_adjustPosition","label","tooltip","_setDataItem","text","markDirtyText","fieldName","seriesDataItem","start","end","duration","zoom","zoomToIndexes","classNames","concat","BaseColumnSeries","listTemplate","makeColumn","_makeFieldNames","categoryAxis","valueAxis","isType","_xOpenField","_xField","_yOpenField","_yField","inited","_createGraphics","chart","_ph","plotContainer","height","_pw","width","columnsTemplate","columns","template","set","clusterCount","stacked","xRenderer","yRenderer","cellStartLocation","cellEndLocation","cellLocationX0","cellLocationX1","cellLocationY0","cellLocationY1","_aLocationX0","_aLocationX1","_aLocationY0","_aLocationY1","_axesDirty","_stackDirty","_toggleColumn","previous","_updateGraphics","_skipped","updateLegendMarker","_updateChildren","graphics","_makeGraphics","legendDataItem","markerRectangle","ds","states","lookup","setting","graphicsArray","dispose","axisRanges","each","axisRange","container","rangeGraphics","children","undefined","createAxisRange","previousDataItem","xField","yField","valueX","valueY","xOpenField","yOpenField","locationX","locationY","openLocationX","openLocationY","xStart","xEnd","yStart","yEnd","l","r","t","b","vcy","vcx","fitW","fitH","offset","x","y","stackToItemY","component","basePosition","stackToItemX","_updateSeriesGraphics","_applyGraphicsStates","maxWidth","maxHeight","ptl","getPoint","pbr","tooltipPoint","point","_x","_y","abs","_handleDataSetChange","_dataItems","dropFromOpen","riseFromOpen","dropFromPrevious","riseFromPrevious","open","close","previousClose","apply","disposeDataItem","removeValue","list","_super","create","hideDataItem","promises","call","hide","Promise","all","visible","bullets","bullet","showDataItem","show","lastDataItem","column","_getTooltipTarget","ColumnSeries","new","_new","_root","mainContainer","make","_processAxisRange","Legend","itemContainers","themeTagsSelf","background","markers","labels","valueLabels","markerRectangles","itemContainer","marker","valueLabel","processDataItem","makeItemContainer","nameField","fillField","strokeField","clickTarget","item","dataContext","makeMarker","useDefaultMarker","makeMarkerRectangle","fill","stroke","on","createLegendMarker","setAll","makeLabel","_getText","_t","markDirtyAccessibility","name","makeValueLabel","clickContainer","_addClickEvents","values","sort","a","targetA","targetB","indexA","data","indexB","updateLegendValue","events","hoverDataItem","unhoverDataItem","labelText","isHidden","readerAlert","locale","di"],"mappings":"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","file":"js/chunk-12316366.22dbef86.js","sourcesContent":["import { Axis } from \"./Axis\";\r\nimport * as $array from \"../../../core/util/Array\";\r\nimport * as $type from \"../../../core/util/Type\";\r\nimport * as $math from \"../../../core/util/Math\";\r\nimport * as $utils from \"../../../core/util/Utils\";\r\nimport { populateString } from \"../../../core/util/PopulateString\";\r\n/**\r\n * Creates a category axis.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/category-axis/} for more info\r\n * @important\r\n */\r\nexport class CategoryAxis extends Axis {\r\n constructor() {\r\n super(...arguments);\r\n Object.defineProperty(this, \"_frequency\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: 1\r\n });\r\n Object.defineProperty(this, \"_itemMap\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: {}\r\n });\r\n }\r\n _afterNew() {\r\n this._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"axis\"]);\r\n this.fields.push(\"category\");\r\n this.setPrivateRaw(\"name\", \"category\");\r\n this.addTag(\"category\");\r\n super._afterNew();\r\n }\r\n _prepareChildren() {\r\n super._prepareChildren();\r\n const len = this.dataItems.length;\r\n let i = 0;\r\n if (this._valuesDirty) {\r\n this._itemMap = {};\r\n $array.each(this.dataItems, (dataItem) => {\r\n dataItem.setRaw(\"index\", i);\r\n this._itemMap[dataItem.get(\"category\")] = dataItem;\r\n i++;\r\n });\r\n this.setPrivateRaw(\"maxZoomFactor\", len);\r\n }\r\n this.setPrivateRaw(\"startIndex\", Math.max(Math.round(this.get(\"start\", 0) * len), 0));\r\n this.setPrivateRaw(\"endIndex\", Math.min(Math.round(this.get(\"end\", 1) * len), len));\r\n if (this._sizeDirty || this._valuesDirty || (this.isDirty(\"start\") || this.isDirty(\"end\") || this.isPrivateDirty(\"endIndex\") || this.isPrivateDirty(\"startIndex\") || this.isPrivateDirty(\"width\") || this.isPrivateDirty(\"height\"))) {\r\n if (this.dataItems.length > 0) {\r\n this._handleRangeChange();\r\n this._prepareAxisItems();\r\n this._updateAxisRanges();\r\n }\r\n }\r\n }\r\n _handleRangeChange() {\r\n $array.each(this.series, (series) => {\r\n let startCategory = this.dataItems[this.startIndex()].get(\"category\");\r\n let endCategory = this.dataItems[this.endIndex() - 1].get(\"category\");\r\n let baseAxis = series.get(\"baseAxis\");\r\n let xAxis = series.get(\"xAxis\");\r\n let yAxis = series.get(\"yAxis\");\r\n if (xAxis instanceof CategoryAxis && yAxis instanceof CategoryAxis) {\r\n series._markDirtyAxes();\r\n }\r\n else if (baseAxis === this) {\r\n let key;\r\n let openKey;\r\n let otherAxis = yAxis;\r\n if (xAxis === baseAxis) {\r\n if (series.get(\"categoryXField\")) {\r\n key = \"categoryX\";\r\n }\r\n if (series.get(\"openCategoryXField\")) {\r\n openKey = \"openCategoryX\";\r\n }\r\n }\r\n else if (yAxis === baseAxis) {\r\n if (series.get(\"categoryYField\")) {\r\n key = \"categoryY\";\r\n }\r\n if (series.get(\"openCategoryYField\")) {\r\n openKey = \"openCategoryY\";\r\n }\r\n otherAxis = xAxis;\r\n }\r\n if (otherAxis.className == \"ValueAxis\") {\r\n if (key || openKey) {\r\n let startDataItem;\r\n let endDataItem;\r\n for (let i = 0, len = series.dataItems.length; i < len; i++) {\r\n let dataItem = series.dataItems[i];\r\n if (key) {\r\n if (dataItem.get(key) === startCategory) {\r\n startDataItem = dataItem;\r\n break;\r\n }\r\n }\r\n if (openKey) {\r\n if (dataItem.get(openKey) === startCategory) {\r\n startDataItem = dataItem;\r\n break;\r\n }\r\n }\r\n }\r\n for (let i = series.dataItems.length - 1; i >= 0; i--) {\r\n let dataItem = series.dataItems[i];\r\n if (key) {\r\n if (dataItem.get(key) === endCategory) {\r\n endDataItem = dataItem;\r\n break;\r\n }\r\n }\r\n if (openKey) {\r\n if (dataItem.get(openKey) === endCategory) {\r\n endDataItem = dataItem;\r\n break;\r\n }\r\n }\r\n }\r\n let startIndex = 0;\r\n let endIndex = series.dataItems.length;\r\n if (startDataItem) {\r\n startIndex = series.dataItems.indexOf(startDataItem);\r\n }\r\n if (endDataItem) {\r\n endIndex = series.dataItems.indexOf(endDataItem) + 1;\r\n }\r\n series.setPrivate(\"startIndex\", startIndex);\r\n series.setPrivate(\"endIndex\", endIndex);\r\n let hasValue = false;\r\n for (let i = startIndex; i < endIndex; i++) {\r\n const dataItem = series.dataItems[i];\r\n $array.each(series.__valueXShowFields, (key) => {\r\n let value = dataItem.get(key);\r\n if (value != null) {\r\n hasValue = true;\r\n }\r\n });\r\n $array.each(series.__valueYShowFields, (key) => {\r\n let value = dataItem.get(key);\r\n if (value != null) {\r\n hasValue = true;\r\n }\r\n });\r\n if (hasValue) {\r\n break;\r\n }\r\n }\r\n series.setPrivate(\"outOfSelection\", !hasValue);\r\n }\r\n }\r\n series._markDirtyAxes(); // must be outside\r\n }\r\n });\r\n }\r\n _prepareAxisItems() {\r\n var _a;\r\n const renderer = this.get(\"renderer\");\r\n const len = this.dataItems.length;\r\n let startIndex = this.startIndex();\r\n if (startIndex > 0) {\r\n startIndex--;\r\n }\r\n let endIndex = this.endIndex();\r\n if (endIndex < len) {\r\n endIndex++;\r\n }\r\n const minorLabelsEnabled = renderer.get(\"minorLabelsEnabled\");\r\n const minorGridEnabled = renderer.get(\"minorGridEnabled\", minorLabelsEnabled);\r\n let maxCount = renderer.axisLength() / Math.max(renderer.get(\"minGridDistance\"), 1);\r\n let frequency = Math.max(1, Math.min(len, Math.ceil((endIndex - startIndex) / maxCount)));\r\n startIndex = Math.floor(startIndex / frequency) * frequency;\r\n this._frequency = frequency;\r\n for (let j = 0; j < len; j++) {\r\n this._toggleDataItem(this.dataItems[j], false);\r\n }\r\n let f = this.dataItems[startIndex].get(\"index\", 0);\r\n for (let i = startIndex; i < endIndex; i = i + frequency) {\r\n let dataItem = this.dataItems[i];\r\n this._createAssets(dataItem, []);\r\n this._toggleDataItem(dataItem, true);\r\n let count = frequency;\r\n if (minorGridEnabled) {\r\n count = 1;\r\n }\r\n this._prepareDataItem(dataItem, f, count);\r\n f++;\r\n }\r\n if (renderer.get(\"minorGridEnabled\")) {\r\n for (let i = startIndex; i < endIndex; i++) {\r\n let dataItem = this.dataItems[i];\r\n if (i % frequency != 0) {\r\n this._createAssets(dataItem, [\"minor\"], true);\r\n this._toggleDataItem(dataItem, true);\r\n this._prepareDataItem(dataItem, 0, 1);\r\n if (!minorLabelsEnabled) {\r\n (_a = dataItem.get(\"label\")) === null || _a === void 0 ? void 0 : _a.setPrivate(\"visible\", false);\r\n }\r\n }\r\n }\r\n }\r\n this._updateGhost();\r\n }\r\n _prepareDataItem(dataItem, fillIndex, count) {\r\n let renderer = this.get(\"renderer\");\r\n let categoryLocation = dataItem.get(\"categoryLocation\", 0);\r\n let endCategoryLocation = dataItem.get(\"endCategoryLocation\", 1);\r\n let index = dataItem.get(\"index\");\r\n if (!$type.isNumber(index)) {\r\n index = this.categoryToIndex(dataItem.get(\"category\"));\r\n }\r\n let position = this.indexToPosition(index, categoryLocation);\r\n let endCategory = dataItem.get(\"endCategory\");\r\n let endIndex;\r\n if (endCategory) {\r\n endIndex = this.categoryToIndex(endCategory);\r\n if (!$type.isNumber(endIndex)) {\r\n endIndex = index;\r\n }\r\n }\r\n else {\r\n endIndex = index;\r\n }\r\n let endPosition = this.indexToPosition(endIndex, endCategoryLocation);\r\n let fillEndIndex;\r\n let fillEndPosition;\r\n if (dataItem.get(\"isRange\")) {\r\n fillEndIndex = endIndex;\r\n }\r\n else {\r\n fillEndIndex = index + this._frequency - 1;\r\n }\r\n fillEndPosition = this.indexToPosition(fillEndIndex, endCategoryLocation);\r\n renderer.updateLabel(dataItem.get(\"label\"), position, endPosition, count);\r\n renderer.updateGrid(dataItem.get(\"grid\"), position, endPosition);\r\n renderer.updateTick(dataItem.get(\"tick\"), position, endPosition, count);\r\n renderer.updateFill(dataItem.get(\"axisFill\"), position, fillEndPosition);\r\n this._processBullet(dataItem);\r\n renderer.updateBullet(dataItem.get(\"bullet\"), position, endPosition);\r\n const fillRule = this.get(\"fillRule\");\r\n if (fillRule) {\r\n fillRule(dataItem, fillIndex);\r\n }\r\n }\r\n startIndex() {\r\n let len = this.dataItems.length;\r\n return Math.min(Math.max(this.getPrivate(\"startIndex\", 0), 0), len - 1);\r\n }\r\n endIndex() {\r\n let len = this.dataItems.length;\r\n return Math.max(1, Math.min(this.getPrivate(\"endIndex\", len), len));\r\n }\r\n /**\r\n * @ignore\r\n */\r\n baseValue() {\r\n }\r\n /**\r\n * @ignore\r\n */\r\n basePosition() {\r\n return 0;\r\n }\r\n /**\r\n * Returns X coordinate in pixels corresponding to specific category index.\r\n *\r\n * @param value Index\r\n * @return X coordinate\r\n */\r\n getX(value) {\r\n let axisDataItem = this._itemMap[value];\r\n if (axisDataItem) {\r\n return this._settings.renderer.positionToCoordinate(this.indexToPosition(axisDataItem.get(\"index\", 0)));\r\n }\r\n return NaN;\r\n }\r\n /**\r\n * Returns Y coordinate in pixels corresponding to specific category index.\r\n *\r\n * @param value Index\r\n * @return Y coordinate\r\n */\r\n getY(value) {\r\n let axisDataItem = this._itemMap[value];\r\n if (axisDataItem) {\r\n return this._settings.renderer.positionToCoordinate(this.indexToPosition(axisDataItem.get(\"index\", 0)));\r\n }\r\n return NaN;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n getDataItemPositionX(dataItem, field, cellLocation, _axisLocation) {\r\n const category = dataItem.get(field);\r\n const axisDataItem = this._itemMap[category];\r\n if (axisDataItem) {\r\n return this.indexToPosition(axisDataItem.get(\"index\", 0), cellLocation);\r\n }\r\n return NaN;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n getDataItemCoordinateX(dataItem, field, cellLocation, _axisLocation) {\r\n return this._settings.renderer.positionToCoordinate(this.getDataItemPositionX(dataItem, field, cellLocation, _axisLocation));\r\n }\r\n /**\r\n * @ignore\r\n */\r\n getDataItemPositionY(dataItem, field, cellLocation, _axisLocation) {\r\n const category = dataItem.get(field);\r\n const axisDataItem = this._itemMap[category];\r\n if (axisDataItem) {\r\n return this.indexToPosition(axisDataItem.get(\"index\", 0), cellLocation);\r\n }\r\n return NaN;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n getDataItemCoordinateY(dataItem, field, cellLocation, _axisLocation) {\r\n return this._settings.renderer.positionToCoordinate(this.getDataItemPositionY(dataItem, field, cellLocation, _axisLocation));\r\n }\r\n /**\r\n * Converts category index to a relative position.\r\n *\r\n * `location` indicates relative position within category: 0 - start, 1 - end.\r\n *\r\n * If not set, will use middle (0.5) of the category.\r\n *\r\n * @param index Index\r\n * @param location Location\r\n * @return Index\r\n */\r\n indexToPosition(index, location) {\r\n if (!$type.isNumber(location)) {\r\n location = 0.5;\r\n }\r\n let len = this.dataItems.length;\r\n let startLocation = this.get(\"startLocation\", 0);\r\n let endLocation = this.get(\"endLocation\", 1);\r\n len -= startLocation;\r\n len -= (1 - endLocation);\r\n let position = (index + location - startLocation) / len;\r\n let dataItem = this.dataItems[index];\r\n if (dataItem) {\r\n position += dataItem.get(\"deltaPosition\", 0);\r\n }\r\n return position;\r\n }\r\n /**\r\n * Returns an index of a category.\r\n *\r\n * @param category Category to look up\r\n * @return Index\r\n */\r\n categoryToIndex(category) {\r\n let dataItem = this._itemMap[category];\r\n if (dataItem) {\r\n return dataItem.get(\"index\");\r\n }\r\n return NaN;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n dataItemToPosition(dataItem) {\r\n return this.indexToPosition(dataItem.get(\"index\"));\r\n }\r\n /**\r\n * @ignore\r\n */\r\n roundAxisPosition(position, location) {\r\n position += (0.5 - location) / this.dataItems.length;\r\n return this.indexToPosition(this.axisPositionToIndex(position), location);\r\n }\r\n /**\r\n * Returns an index of the category that corresponds to specific pixel\r\n * position within axis.\r\n *\r\n * @param position Position (px)\r\n * @return Category index\r\n */\r\n axisPositionToIndex(position) {\r\n let len = this.dataItems.length;\r\n return $math.fitToRange(Math.floor(position * len), 0, len - 1); //$math.fitToRange(Math.floor((end - start) * len * position + len * start), 0, len - 1);\r\n }\r\n /**\r\n * Returns text to be used in an axis tooltip for specific relative position.\r\n *\r\n * @param position Position\r\n * @return Tooltip text\r\n */\r\n getTooltipText(position, _adjustPosition) {\r\n //@todo number formatter + tag\r\n const dataItem = this.dataItems[this.axisPositionToIndex(position)];\r\n if (dataItem) {\r\n const label = dataItem.get(\"label\");\r\n if (label) {\r\n return populateString(label, this.get(\"tooltipText\", \"\"));\r\n }\r\n }\r\n }\r\n _updateTooltipText(tooltip, position) {\r\n tooltip._setDataItem(this.dataItems[this.axisPositionToIndex(position)]);\r\n tooltip.label.text.markDirtyText();\r\n }\r\n /**\r\n * Returns a data item from series that is closest to the `position`.\r\n *\r\n * @param series Series\r\n * @param position Relative position\r\n * @return Data item\r\n */\r\n getSeriesItem(series, position) {\r\n if (this.dataItems.length > 0) {\r\n let fieldName = (this.getPrivate(\"name\") + this.get(\"renderer\").getPrivate(\"letter\"));\r\n let index = this.axisPositionToIndex(position);\r\n // try simple first\r\n let seriesDataItem = series.dataItems[index];\r\n let axisDataItem = this.dataItems[index];\r\n let category = axisDataItem.get(\"category\");\r\n if (seriesDataItem && axisDataItem) {\r\n if (seriesDataItem.get(fieldName) === category) {\r\n return seriesDataItem;\r\n }\r\n }\r\n // if not found, try looking\r\n for (let i = 0, len = series.dataItems.length; i < len; i++) {\r\n let dataItem = series.dataItems[i];\r\n if (dataItem.get(fieldName) === category) {\r\n return dataItem;\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Zooms the axis to specific `start` and `end` indexes.\r\n *\r\n * Optional `duration` specifies duration of zoom animation in milliseconds.\r\n *\r\n * @param start Start index\r\n * @param end End index\r\n * @param duration Duration in milliseconds\r\n */\r\n zoomToIndexes(start, end, duration) {\r\n let len = this.dataItems.length;\r\n this.zoom(start / len, end / len, duration);\r\n }\r\n zoomToCategories(startCategory, endCategory, duration) {\r\n this.zoomToIndexes(this.categoryToIndex(startCategory), this.categoryToIndex(endCategory) + 1, duration);\r\n }\r\n /**\r\n * Returns position span between start and end of a single cell in axis.\r\n *\r\n * @since 5.2.30\r\n * @return Position\r\n */\r\n getCellWidthPosition() {\r\n return this._frequency / this.dataItems.length / (this.get(\"end\", 1) - this.get(\"start\", 0));\r\n }\r\n}\r\nObject.defineProperty(CategoryAxis, \"className\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: \"CategoryAxis\"\r\n});\r\nObject.defineProperty(CategoryAxis, \"classNames\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: Axis.classNames.concat([CategoryAxis.className])\r\n});\r\n//# sourceMappingURL=CategoryAxis.js.map","import { __awaiter } from \"tslib\";\r\nimport { XYSeries } from \"./XYSeries\";\r\nimport { Percent } from \"../../../core/util/Percent\";\r\nimport { visualSettings } from \"../../../core/render/Graphics\";\r\nimport * as $array from \"../../../core/util/Array\";\r\nimport * as $type from \"../../../core/util/Type\";\r\n/**\r\n * Base class for all \"column-based\" series\r\n */\r\nexport class BaseColumnSeries extends XYSeries {\r\n constructor() {\r\n super(...arguments);\r\n Object.defineProperty(this, \"_ph\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: 0\r\n });\r\n Object.defineProperty(this, \"_pw\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: 0\r\n });\r\n }\r\n _makeGraphics(listTemplate, dataItem) {\r\n return this.makeColumn(dataItem, listTemplate);\r\n }\r\n _makeFieldNames() {\r\n super._makeFieldNames();\r\n const xAxis = this.get(\"xAxis\");\r\n const yAxis = this.get(\"yAxis\");\r\n const categoryAxis = \"CategoryAxis\";\r\n const valueAxis = \"ValueAxis\";\r\n if (xAxis.isType(categoryAxis)) {\r\n if (!this.get(\"openCategoryXField\")) {\r\n this._xOpenField = this._xField;\r\n }\r\n }\r\n if (xAxis.isType(valueAxis)) {\r\n if (!this.get(\"openValueXField\")) {\r\n this._xOpenField = this._xField;\r\n }\r\n }\r\n if (yAxis.isType(categoryAxis)) {\r\n if (!this.get(\"openCategoryYField\")) {\r\n this._yOpenField = this._yField;\r\n }\r\n }\r\n if (yAxis.isType(valueAxis)) {\r\n if (!this.get(\"openValueYField\")) {\r\n this._yOpenField = this._yField;\r\n }\r\n }\r\n }\r\n _prepareChildren() {\r\n super._prepareChildren();\r\n const xAxis = this.get(\"xAxis\");\r\n const yAxis = this.get(\"yAxis\");\r\n const len = this.dataItems.length;\r\n const startIndex = Math.max(0, this.startIndex() - 2);\r\n const endIndex = Math.min(this.endIndex() + 2, len - 1);\r\n if (xAxis.inited && yAxis.inited) {\r\n for (let i = startIndex; i <= endIndex; i++) {\r\n let dataItem = this.dataItems[i];\r\n this._createGraphics(dataItem);\r\n }\r\n }\r\n }\r\n _updateChildren() {\r\n const chart = this.chart;\r\n if (chart) {\r\n this._ph = chart.plotContainer.height();\r\n this._pw = chart.plotContainer.width();\r\n }\r\n const xAxis = this.get(\"xAxis\");\r\n const yAxis = this.get(\"yAxis\");\r\n const baseAxis = this.get(\"baseAxis\");\r\n const columnsTemplate = this.columns.template;\r\n if (this.isDirty(\"fill\")) {\r\n if (columnsTemplate.get(\"fill\") == null) {\r\n columnsTemplate.set(\"fill\", this.get(\"fill\"));\r\n }\r\n }\r\n if (this.isDirty(\"stroke\")) {\r\n if (columnsTemplate.get(\"stroke\") == null) {\r\n columnsTemplate.set(\"stroke\", this.get(\"stroke\"));\r\n }\r\n }\r\n let index = 0;\r\n let clusterCount = 0;\r\n let i = 0;\r\n $array.each(baseAxis.series, (series) => {\r\n if (series instanceof BaseColumnSeries) {\r\n const stacked = series.get(\"stacked\");\r\n if (stacked && i == 0) {\r\n clusterCount++;\r\n }\r\n if (!stacked && series.get(\"clustered\")) {\r\n clusterCount++;\r\n }\r\n }\r\n if (series === this) {\r\n index = clusterCount - 1;\r\n }\r\n i++;\r\n });\r\n if (!this.get(\"clustered\")) {\r\n index = 0;\r\n clusterCount = 1;\r\n }\r\n if (clusterCount === 0) {\r\n clusterCount = 1;\r\n index = 0;\r\n }\r\n const xRenderer = xAxis.get(\"renderer\");\r\n const yRenderer = yAxis.get(\"renderer\");\r\n const cellStartLocation = \"cellStartLocation\";\r\n const cellEndLocation = \"cellEndLocation\";\r\n const cellLocationX0 = xRenderer.get(cellStartLocation, 0);\r\n const cellLocationX1 = xRenderer.get(cellEndLocation, 1);\r\n const cellLocationY0 = yRenderer.get(cellStartLocation, 0);\r\n const cellLocationY1 = yRenderer.get(cellEndLocation, 1);\r\n this._aLocationX0 = cellLocationX0 + (index / clusterCount) * (cellLocationX1 - cellLocationX0);\r\n this._aLocationX1 = cellLocationX0 + (index + 1) / clusterCount * (cellLocationX1 - cellLocationX0);\r\n ;\r\n this._aLocationY0 = cellLocationY0 + (index / clusterCount) * (cellLocationY1 - cellLocationY0);\r\n this._aLocationY1 = cellLocationY0 + (index + 1) / clusterCount * (cellLocationY1 - cellLocationY0);\r\n if (xAxis.inited && yAxis.inited) {\r\n if (this._axesDirty || this._valuesDirty || this._stackDirty || this.isDirty(\"vcx\") || this.isDirty(\"vcy\") || this._sizeDirty) {\r\n const len = this.dataItems.length;\r\n let startIndex = Math.max(0, this.startIndex() - 2);\r\n let endIndex = Math.min(this.endIndex() + 2, len - 1);\r\n for (let i = 0; i < startIndex; i++) {\r\n this._toggleColumn(this.dataItems[i], false);\r\n }\r\n let previous = this.dataItems[startIndex];\r\n for (let i = startIndex; i <= endIndex; i++) {\r\n let dataItem = this.dataItems[i];\r\n if (dataItem.get(\"valueX\") != null && dataItem.get(\"valueY\") != null) {\r\n previous = dataItem;\r\n if (i > 0 && startIndex > 0) {\r\n for (let j = i - 1; j >= 0; j--) {\r\n let dataItem = this.dataItems[j];\r\n if (dataItem.get(\"valueX\") != null && dataItem.get(\"valueY\") != null) {\r\n previous = dataItem;\r\n break;\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n else {\r\n this._toggleColumn(dataItem, false);\r\n }\r\n }\r\n for (let i = startIndex; i <= endIndex; i++) {\r\n let dataItem = this.dataItems[i];\r\n this._updateGraphics(dataItem, previous);\r\n if (dataItem.get(\"valueX\") != null && dataItem.get(\"valueY\") != null) {\r\n previous = dataItem;\r\n }\r\n }\r\n for (let i = endIndex + 1; i < len; i++) {\r\n this._toggleColumn(this.dataItems[i], false);\r\n }\r\n }\r\n }\r\n else {\r\n this._skipped = true;\r\n }\r\n this.updateLegendMarker(this.get(\"tooltipDataItem\"));\r\n super._updateChildren();\r\n }\r\n _createGraphics(dataItem) {\r\n let graphics = dataItem.get(\"graphics\");\r\n if (!graphics) {\r\n graphics = this._makeGraphics(this.columns, dataItem);\r\n dataItem.set(\"graphics\", graphics);\r\n graphics._setDataItem(dataItem);\r\n const legendDataItem = dataItem.get(\"legendDataItem\");\r\n if (legendDataItem) {\r\n const markerRectangle = legendDataItem.get(\"markerRectangle\");\r\n if (markerRectangle) {\r\n const ds = markerRectangle.states.lookup(\"default\");\r\n $array.each(visualSettings, (setting) => {\r\n const value = graphics.get(setting, this.get(setting));\r\n markerRectangle.set(setting, value);\r\n ds.set(setting, value);\r\n });\r\n }\r\n }\r\n let graphicsArray = dataItem.get(\"rangeGraphics\");\r\n if (graphicsArray) {\r\n $array.each(graphicsArray, (graphics) => {\r\n graphics.dispose();\r\n });\r\n }\r\n graphicsArray = [];\r\n dataItem.setRaw(\"rangeGraphics\", graphicsArray);\r\n this.axisRanges.each((axisRange) => {\r\n const container = axisRange.container;\r\n const rangeGraphics = this._makeGraphics(axisRange.columns, dataItem);\r\n if (graphicsArray) {\r\n graphicsArray.push(rangeGraphics);\r\n }\r\n rangeGraphics.setPrivate(\"list\", axisRange.columns);\r\n container.children.push(rangeGraphics);\r\n });\r\n }\r\n }\r\n createAxisRange(axisDataItem) {\r\n $array.each(this.dataItems, (dataItem) => {\r\n const graphics = dataItem.get(\"graphics\");\r\n if (graphics) {\r\n graphics.dispose();\r\n dataItem.set(\"graphics\", undefined);\r\n }\r\n });\r\n return super.createAxisRange(axisDataItem);\r\n }\r\n _updateGraphics(dataItem, previousDataItem) {\r\n let graphics = dataItem.get(\"graphics\");\r\n //if (!graphics) {\r\n //\tthis._createGraphics(dataItem);\r\n //\tgraphics = dataItem.get(\"graphics\")!;\r\n //}\r\n const xField = this._xField;\r\n const yField = this._yField;\r\n const valueX = dataItem.get(xField);\r\n const valueY = dataItem.get(yField);\r\n if (valueX != null && valueY != null) {\r\n const xOpenField = this._xOpenField;\r\n const yOpenField = this._yOpenField;\r\n const locationX = this.get(\"locationX\", dataItem.get(\"locationX\", 0.5));\r\n const locationY = this.get(\"locationY\", dataItem.get(\"locationY\", 0.5));\r\n const openLocationX = this.get(\"openLocationX\", dataItem.get(\"openLocationX\", locationX));\r\n const openLocationY = this.get(\"openLocationY\", dataItem.get(\"openLocationY\", locationY));\r\n const width = graphics.get(\"width\");\r\n const height = graphics.get(\"height\");\r\n const stacked = this.get(\"stacked\");\r\n const xAxis = this.get(\"xAxis\");\r\n const yAxis = this.get(\"yAxis\");\r\n const baseAxis = this.get(\"baseAxis\");\r\n const xStart = xAxis.get(\"start\");\r\n const xEnd = xAxis.get(\"end\");\r\n const yStart = yAxis.get(\"start\");\r\n const yEnd = yAxis.get(\"end\");\r\n let l;\r\n let r;\r\n let t;\r\n let b;\r\n let vcy = this.get(\"vcy\", 1);\r\n let vcx = this.get(\"vcx\", 1);\r\n let fitW = false;\r\n let fitH = false;\r\n if (yAxis.isType(\"CategoryAxis\") && xAxis.isType(\"CategoryAxis\")) {\r\n let startLocation = this._aLocationX0 + openLocationX - 0.5;\r\n let endLocation = this._aLocationX1 + locationX - 0.5;\r\n if (width instanceof Percent) {\r\n let offset = (endLocation - startLocation) * (1 - width.value) / 2;\r\n startLocation += offset;\r\n endLocation -= offset;\r\n }\r\n l = xAxis.getDataItemPositionX(dataItem, xOpenField, startLocation, vcx);\r\n r = xAxis.getDataItemPositionX(dataItem, xField, endLocation, vcx);\r\n startLocation = this._aLocationY0 + openLocationY - 0.5;\r\n endLocation = this._aLocationY1 + locationY - 0.5;\r\n if (height instanceof Percent) {\r\n let offset = (endLocation - startLocation) * (1 - height.value) / 2;\r\n startLocation += offset;\r\n endLocation -= offset;\r\n }\r\n t = yAxis.getDataItemPositionY(dataItem, yOpenField, startLocation, vcy);\r\n b = yAxis.getDataItemPositionY(dataItem, yField, endLocation, vcy);\r\n dataItem.setRaw(\"point\", { x: l + (r - l) / 2, y: t + (b - t) / 2 });\r\n }\r\n else if (xAxis === baseAxis) {\r\n let startLocation = this._aLocationX0 + openLocationX - 0.5;\r\n let endLocation = this._aLocationX1 + locationX - 0.5;\r\n if (width instanceof Percent) {\r\n let offset = (endLocation - startLocation) * (1 - width.value) / 2;\r\n startLocation += offset;\r\n endLocation -= offset;\r\n }\r\n l = xAxis.getDataItemPositionX(dataItem, xOpenField, startLocation, vcx);\r\n r = xAxis.getDataItemPositionX(dataItem, xField, endLocation, vcx);\r\n t = yAxis.getDataItemPositionY(dataItem, yField, locationY, vcy);\r\n if (this._yOpenField !== this._yField) {\r\n b = yAxis.getDataItemPositionY(dataItem, yOpenField, openLocationY, vcy);\r\n }\r\n else {\r\n if (stacked) {\r\n let stackToItemY = dataItem.get(\"stackToItemY\");\r\n if (stackToItemY) {\r\n b = yAxis.getDataItemPositionY(stackToItemY, yField, openLocationY, stackToItemY.component.get(\"vcy\"));\r\n }\r\n else {\r\n b = yAxis.basePosition();\r\n }\r\n }\r\n else {\r\n b = yAxis.basePosition();\r\n }\r\n }\r\n dataItem.setRaw(\"point\", { x: l + (r - l) / 2, y: t });\r\n fitH = true;\r\n }\r\n else if (yAxis === baseAxis) {\r\n let startLocation = this._aLocationY0 + openLocationY - 0.5;\r\n let endLocation = this._aLocationY1 + locationY - 0.5;\r\n if (height instanceof Percent) {\r\n let offset = (endLocation - startLocation) * (1 - height.value) / 2;\r\n startLocation += offset;\r\n endLocation -= offset;\r\n }\r\n t = yAxis.getDataItemPositionY(dataItem, yOpenField, startLocation, vcy);\r\n b = yAxis.getDataItemPositionY(dataItem, yField, endLocation, vcy);\r\n r = xAxis.getDataItemPositionX(dataItem, xField, locationX, vcx);\r\n if (this._xOpenField !== this._xField) {\r\n l = xAxis.getDataItemPositionX(dataItem, xOpenField, openLocationX, vcx);\r\n }\r\n else {\r\n if (stacked) {\r\n let stackToItemX = dataItem.get(\"stackToItemX\");\r\n if (stackToItemX) {\r\n l = xAxis.getDataItemPositionX(stackToItemX, xField, openLocationX, stackToItemX.component.get(\"vcx\"));\r\n }\r\n else {\r\n l = xAxis.basePosition();\r\n }\r\n }\r\n else {\r\n l = xAxis.basePosition();\r\n }\r\n }\r\n fitW = true;\r\n dataItem.setRaw(\"point\", { x: r, y: t + (b - t) / 2 });\r\n }\r\n this._updateSeriesGraphics(dataItem, graphics, l, r, t, b, fitW, fitH);\r\n if ((l < xStart && r < xStart) || (l > xEnd && r > xEnd) || (t < yStart && b <= yStart) || (t >= yEnd && b > yEnd) || $type.isNaN(l) || $type.isNaN(t)) {\r\n this._toggleColumn(dataItem, false);\r\n }\r\n else {\r\n this._toggleColumn(dataItem, true);\r\n }\r\n let rangeGraphics = dataItem.get(\"rangeGraphics\");\r\n if (rangeGraphics) {\r\n $array.each(rangeGraphics, (graphics) => {\r\n this._updateSeriesGraphics(dataItem, graphics, l, r, t, b, fitW, fitH);\r\n });\r\n }\r\n this._applyGraphicsStates(dataItem, previousDataItem);\r\n }\r\n }\r\n _updateSeriesGraphics(dataItem, graphics, l, r, t, b, fitW, fitH) {\r\n const width = graphics.get(\"width\");\r\n const height = graphics.get(\"height\");\r\n const maxWidth = graphics.get(\"maxWidth\");\r\n const maxHeight = graphics.get(\"maxHeight\");\r\n const ptl = this.getPoint(l, t);\r\n const pbr = this.getPoint(r, b);\r\n const tooltipPoint = dataItem.get(\"point\");\r\n if (tooltipPoint) {\r\n const point = this.getPoint(tooltipPoint.x, tooltipPoint.y);\r\n tooltipPoint.x = point.x + this._x;\r\n tooltipPoint.y = point.y + this._y;\r\n }\r\n l = ptl.x;\r\n r = pbr.x;\r\n t = ptl.y;\r\n b = pbr.y;\r\n if ($type.isNumber(width)) {\r\n const offset = ((r - l) - width) / 2;\r\n l += offset;\r\n r -= offset;\r\n }\r\n if ($type.isNumber(maxWidth) && maxWidth < Math.abs(r - l)) {\r\n const offset = ((r - l) - maxWidth) / 2;\r\n l += offset;\r\n r -= offset;\r\n }\r\n if ($type.isNumber(height)) {\r\n const offset = ((b - t) - height) / 2;\r\n t += offset;\r\n b -= offset;\r\n }\r\n if ($type.isNumber(maxHeight) && maxHeight < Math.abs(b - t)) {\r\n const offset = ((b - t) - maxHeight) / 2;\r\n t += offset;\r\n b -= offset;\r\n }\r\n if (this.get(\"adjustBulletPosition\")) {\r\n if (fitW) {\r\n r = Math.min(Math.max(0, r), this._pw);\r\n l = Math.min(Math.max(0, l), this._pw);\r\n }\r\n if (fitH) {\r\n t = Math.min(Math.max(0, t), this._ph);\r\n b = Math.min(Math.max(0, b), this._ph);\r\n }\r\n }\r\n dataItem.setRaw(\"left\", l);\r\n dataItem.setRaw(\"right\", r);\r\n dataItem.setRaw(\"top\", t);\r\n dataItem.setRaw(\"bottom\", b);\r\n graphics.setPrivate(\"width\", r - l);\r\n graphics.setPrivate(\"height\", b - t);\r\n graphics.set(\"x\", l);\r\n graphics.set(\"y\", b - (b - t));\r\n }\r\n _handleDataSetChange() {\r\n super._handleDataSetChange();\r\n $array.each(this._dataItems, (dataItem) => {\r\n this._toggleColumn(dataItem, false);\r\n });\r\n }\r\n _applyGraphicsStates(dataItem, previousDataItem) {\r\n const graphics = dataItem.get(\"graphics\");\r\n const dropFromOpen = graphics.states.lookup(\"dropFromOpen\");\r\n const riseFromOpen = graphics.states.lookup(\"riseFromOpen\");\r\n const dropFromPrevious = graphics.states.lookup(\"dropFromPrevious\");\r\n const riseFromPrevious = graphics.states.lookup(\"riseFromPrevious\");\r\n if (dropFromOpen || dropFromPrevious || riseFromOpen || riseFromPrevious) {\r\n const xAxis = this.get(\"xAxis\");\r\n const yAxis = this.get(\"yAxis\");\r\n const baseAxis = this.get(\"baseAxis\");\r\n let open;\r\n let close;\r\n let previousClose;\r\n if (baseAxis === xAxis && yAxis.isType(\"ValueAxis\")) {\r\n open = dataItem.get(this._yOpenField);\r\n close = dataItem.get(this._yField);\r\n previousClose = previousDataItem.get(this._yField);\r\n }\r\n else if (baseAxis === yAxis && xAxis.isType(\"ValueAxis\")) {\r\n open = dataItem.get(this._xOpenField);\r\n close = dataItem.get(this._xField);\r\n previousClose = previousDataItem.get(this._xField);\r\n }\r\n if ($type.isNumber(open) && $type.isNumber(close)) {\r\n if (close < open) {\r\n if (dropFromOpen) {\r\n dropFromOpen.apply();\r\n }\r\n }\r\n else {\r\n if (riseFromOpen) {\r\n riseFromOpen.apply();\r\n }\r\n }\r\n if ($type.isNumber(previousClose)) {\r\n if (close < previousClose) {\r\n if (dropFromPrevious) {\r\n dropFromPrevious.apply();\r\n }\r\n }\r\n else {\r\n if (riseFromPrevious) {\r\n riseFromPrevious.apply();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * @ignore\r\n */\r\n disposeDataItem(dataItem) {\r\n super.disposeDataItem(dataItem);\r\n const graphics = dataItem.get(\"graphics\");\r\n if (graphics) {\r\n this.columns.removeValue(graphics);\r\n graphics.dispose();\r\n }\r\n const rangeGraphics = dataItem.get(\"rangeGraphics\");\r\n if (rangeGraphics) {\r\n $array.each(rangeGraphics, (graphics) => {\r\n const list = graphics.getPrivate(\"list\");\r\n if (list) {\r\n list.removeValue(graphics);\r\n }\r\n graphics.dispose();\r\n });\r\n }\r\n }\r\n /**\r\n * Hides series's data item.\r\n *\r\n * @param dataItem Data item\r\n * @param duration Animation duration in milliseconds\r\n * @return Promise\r\n */\r\n hideDataItem(dataItem, duration) {\r\n const _super = Object.create(null, {\r\n hideDataItem: { get: () => super.hideDataItem }\r\n });\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const promises = [_super.hideDataItem.call(this, dataItem, duration)];\r\n const graphics = dataItem.get(\"graphics\");\r\n if (graphics) {\r\n promises.push(graphics.hide(duration));\r\n }\r\n const rangeGraphics = dataItem.get(\"rangeGraphics\");\r\n if (rangeGraphics) {\r\n $array.each(rangeGraphics, (graphics) => {\r\n promises.push(graphics.hide(duration));\r\n });\r\n }\r\n yield Promise.all(promises);\r\n });\r\n }\r\n _toggleColumn(dataItem, visible) {\r\n const graphics = dataItem.get(\"graphics\");\r\n if (graphics) {\r\n graphics.setPrivate(\"visible\", visible);\r\n }\r\n const rangeGraphics = dataItem.get(\"rangeGraphics\");\r\n if (rangeGraphics) {\r\n $array.each(rangeGraphics, (graphics) => {\r\n graphics.setPrivate(\"visible\", visible);\r\n });\r\n }\r\n const bullets = dataItem.bullets;\r\n if (bullets) {\r\n $array.each(bullets, (bullet) => {\r\n bullet.setPrivate(\"hidden\", !visible);\r\n });\r\n }\r\n }\r\n /**\r\n * Shows series's data item.\r\n *\r\n * @param dataItem Data item\r\n * @param duration Animation duration in milliseconds\r\n * @return Promise\r\n */\r\n showDataItem(dataItem, duration) {\r\n const _super = Object.create(null, {\r\n showDataItem: { get: () => super.showDataItem }\r\n });\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const promises = [_super.showDataItem.call(this, dataItem, duration)];\r\n const graphics = dataItem.get(\"graphics\");\r\n if (graphics) {\r\n promises.push(graphics.show(duration));\r\n }\r\n const rangeGraphics = dataItem.get(\"rangeGraphics\");\r\n if (rangeGraphics) {\r\n $array.each(rangeGraphics, (graphics) => {\r\n promises.push(graphics.show(duration));\r\n });\r\n }\r\n yield Promise.all(promises);\r\n });\r\n }\r\n /**\r\n * @ignore\r\n */\r\n updateLegendMarker(dataItem) {\r\n let legendDataItem = this.get(\"legendDataItem\");\r\n if (this.get(\"useLastColorForLegendMarker\")) {\r\n if (!dataItem) {\r\n const lastDataItem = this.dataItems[this.endIndex() - 1];\r\n if (lastDataItem) {\r\n dataItem = lastDataItem;\r\n }\r\n }\r\n }\r\n if (legendDataItem) {\r\n let graphics = this.columns.template;\r\n if (dataItem) {\r\n let column = dataItem.get(\"graphics\");\r\n if (column) {\r\n graphics = column;\r\n }\r\n }\r\n const markerRectangle = legendDataItem.get(\"markerRectangle\");\r\n if (markerRectangle) {\r\n if (!legendDataItem.get(\"itemContainer\").get(\"disabled\")) {\r\n const ds = markerRectangle.states.lookup(\"default\");\r\n $array.each(visualSettings, (setting) => {\r\n const value = graphics.get(setting, this.get(setting));\r\n markerRectangle.set(setting, value);\r\n ds.set(setting, value);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n _getTooltipTarget(dataItem) {\r\n if (this.get(\"seriesTooltipTarget\") == \"bullet\") {\r\n return super._getTooltipTarget(dataItem);\r\n }\r\n let column = dataItem.get(\"graphics\");\r\n if (column) {\r\n return column;\r\n }\r\n return this;\r\n }\r\n}\r\nObject.defineProperty(BaseColumnSeries, \"className\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: \"BaseColumnSeries\"\r\n});\r\nObject.defineProperty(BaseColumnSeries, \"classNames\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: XYSeries.classNames.concat([BaseColumnSeries.className])\r\n});\r\n//# sourceMappingURL=BaseColumnSeries.js.map","import { BaseColumnSeries } from \"./BaseColumnSeries\";\r\nimport { Template } from \"../../../core/util/Template\";\r\nimport { ListTemplate } from \"../../../core/util/List\";\r\nimport { RoundedRectangle } from \"../../../core/render/RoundedRectangle\";\r\nimport * as $utils from \"../../../core/util/Utils\";\r\nexport class ColumnSeries extends BaseColumnSeries {\r\n constructor() {\r\n super(...arguments);\r\n /**\r\n * A [[TemplateList]] of all columns in series.\r\n *\r\n * `columns.template` can be used to set default settings for all columns,\r\n * or to change on existing ones.\r\n */\r\n Object.defineProperty(this, \"columns\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: new ListTemplate(Template.new({}), () => RoundedRectangle._new(this._root, {\r\n position: \"absolute\",\r\n themeTags: $utils.mergeTags(this.columns.template.get(\"themeTags\", []), [\"series\", \"column\"])\r\n }, [this.columns.template]))\r\n });\r\n }\r\n /**\r\n * @ignore\r\n */\r\n makeColumn(dataItem, listTemplate) {\r\n const column = this.mainContainer.children.push(listTemplate.make());\r\n column._setDataItem(dataItem);\r\n listTemplate.push(column);\r\n return column;\r\n }\r\n _processAxisRange(axisRange) {\r\n super._processAxisRange(axisRange);\r\n axisRange.columns = new ListTemplate(Template.new({}), () => RoundedRectangle._new(this._root, {\r\n position: \"absolute\",\r\n themeTags: $utils.mergeTags(axisRange.columns.template.get(\"themeTags\", []), [\"series\", \"column\"]),\r\n }, [this.columns.template, axisRange.columns.template]));\r\n }\r\n}\r\nObject.defineProperty(ColumnSeries, \"className\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: \"ColumnSeries\"\r\n});\r\nObject.defineProperty(ColumnSeries, \"classNames\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: BaseColumnSeries.classNames.concat([ColumnSeries.className])\r\n});\r\n//# sourceMappingURL=ColumnSeries.js.map","import { Series } from \"./Series\";\r\nimport { Container } from \"../../core/render/Container\";\r\nimport { Label } from \"../../core/render/Label\";\r\nimport { RoundedRectangle } from \"../../core/render/RoundedRectangle\";\r\nimport { Template } from \"../../core/util/Template\";\r\nimport { ListTemplate } from \"../../core/util/List\";\r\nimport * as $utils from \"../../core/util/Utils\";\r\n/**\r\n * A universal legend control.\r\n *\r\n * @important\r\n * @see {@link https://www.amcharts.com/docs/v5/concepts/legend/} for more info\r\n */\r\nexport class Legend extends Series {\r\n constructor() {\r\n super(...arguments);\r\n /**\r\n * List of all [[Container]] elements for legend items.\r\n *\r\n * @default new ListTemplate\r\n */\r\n Object.defineProperty(this, \"itemContainers\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: new ListTemplate(Template.new({}), () => Container._new(this._root, {\r\n themeTags: $utils.mergeTags(this.itemContainers.template.get(\"themeTags\", []), [\"legend\", \"item\"]),\r\n themeTagsSelf: $utils.mergeTags(this.itemContainers.template.get(\"themeTagsSelf\", []), [\"itemcontainer\"]),\r\n background: RoundedRectangle.new(this._root, {\r\n themeTags: $utils.mergeTags(this.itemContainers.template.get(\"themeTags\", []), [\"legend\", \"item\", \"background\"]),\r\n themeTagsSelf: $utils.mergeTags(this.itemContainers.template.get(\"themeTagsSelf\", []), [\"itemcontainer\"])\r\n })\r\n }, [this.itemContainers.template]))\r\n });\r\n /**\r\n * List of legend marker elements.\r\n *\r\n * @default new ListTemplate\r\n */\r\n Object.defineProperty(this, \"markers\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: new ListTemplate(Template.new({}), () => Container._new(this._root, {\r\n themeTags: $utils.mergeTags(this.markers.template.get(\"themeTags\", []), [\"legend\", \"marker\"])\r\n }, [this.markers.template]))\r\n });\r\n /**\r\n * List of legend label elements.\r\n *\r\n * @default new ListTemplate