{"version":3,"sources":["webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/Legend.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/Chart.js"],"names":["__webpack_require__","d","__webpack_exports__","LegendSettings","tslib__WEBPACK_IMPORTED_MODULE_0__","_core_Component__WEBPACK_IMPORTED_MODULE_1__","_core_DataItem__WEBPACK_IMPORTED_MODULE_2__","_core_utils_List__WEBPACK_IMPORTED_MODULE_3__","_core_elements_RoundedRectangle__WEBPACK_IMPORTED_MODULE_4__","_core_Container__WEBPACK_IMPORTED_MODULE_5__","_core_elements_Label__WEBPACK_IMPORTED_MODULE_6__","_core_utils_Keyboard__WEBPACK_IMPORTED_MODULE_7__","_core_Registry__WEBPACK_IMPORTED_MODULE_8__","_core_interaction_Interaction__WEBPACK_IMPORTED_MODULE_9__","_core_utils_Percent__WEBPACK_IMPORTED_MODULE_10__","_core_utils_InterfaceColorSet__WEBPACK_IMPORTED_MODULE_11__","_core_utils_Utils__WEBPACK_IMPORTED_MODULE_12__","_core_utils_Type__WEBPACK_IMPORTED_MODULE_13__","_core_Sprite__WEBPACK_IMPORTED_MODULE_14__","_core_utils_Disposer__WEBPACK_IMPORTED_MODULE_15__","_core_interaction_Mouse__WEBPACK_IMPORTED_MODULE_16__","_core_utils_Responsive__WEBPACK_IMPORTED_MODULE_17__","LegendDataItem","_super","_this","call","this","childrenCreated","className","applyTheme","Object","defineProperty","prototype","get","_label","label_1","component","labels","create","addSprite","_disposers","push","parent","itemContainer","removeValue","enumerable","configurable","properties","color","set","value","setProperty","_valueLabel","valueLabel_1","valueLabels","_itemContainer","component_1","itemContainer_1","itemContainers","togglable","events","on","ev","toggleDataItem","target","dataItem","undefined","focusable","focusedItem","dataContext","uidAttr","readerControls","readerLabelledBy","sprite","isDisposed","addDisposer","readerChecked","visible","disableType","isActive","enableType","dataItems","remove","_marker","marker_1","markers","createMarker","Legend","layout","setPropertyValue","applyOnClones","padding","margin","clickable","role","cursorOverStyle","pointer","background","fillOpacity","template","body","isKey","event","interfaceColors","marker","width","height","interactionsEnabled","setStateOnChildren","strokeOpacity","propertyFields","fill","valign","disabledColor","getFor","child","newValue","activeState","states","stroke","rectangle","createChild","label","text","valueLabel","align","textAlign","position","applyInternalDefaults","readerTitle","language","translate","createDataItem","validateDataElement","container","legendDataItem","legendSettings","createLegendMarker","useDefaultMarker","updateLegendValue","invalid","validate","currentText","__disabled","itemValueText","valueText","getPropertyValue","truncate","fullWords","maxWidth","invalidate","item","isHiding","isHidden","colorOrig","hidden","show","hide","handleDataItemPropertyChange","name","registeredClasses","relevant","widthXS","state","stateId","heightXS","isXS","disabled","ChartDataItem","Chart","_core_Registry__WEBPACK_IMPORTED_MODULE_1__","_core_Component__WEBPACK_IMPORTED_MODULE_2__","_core_utils_Disposer__WEBPACK_IMPORTED_MODULE_3__","_core_utils_List__WEBPACK_IMPORTED_MODULE_4__","_core_elements_Grip__WEBPACK_IMPORTED_MODULE_7__","_core_DataItem__WEBPACK_IMPORTED_MODULE_8__","_core_utils_Percent__WEBPACK_IMPORTED_MODULE_9__","_core_utils_Iterator__WEBPACK_IMPORTED_MODULE_10__","_core_utils_Type__WEBPACK_IMPORTED_MODULE_11__","_core_utils_Responsive__WEBPACK_IMPORTED_MODULE_12__","_legend","constructor","Error","titles","chartAndLegendContainer","shouldClone","chartContainer","showOnInit","processTitle","updateReaderTitleReferences","defaultState","transitionDuration","draw","fixLayout","legend","x","y","toBack","toFront","feedLegend","title","length","titleIds_1","iterator","uid","setSVGAttribute","aria-labelledby","join","removeSVGAttribute","setLegend","property","reset","dispose","processConfig","config","type","copyFrom","source","clone","removeChildren","_dragGrip","grip_1","tooltipContainer","touch","pixelPaddingLeft","paddingLeft","pixelPaddingRight","paddingRight","pixelPaddingTop","paddingTop","pixelPaddingBottom","paddingBottom","widthXXS","heightXXS"],"mappings":"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","file":"js/chunk-013b74ea.c30aba50.js","sourcesContent":["/**\r\n * Legend-related functionality.\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 { RoundedRectangle } from \"../core/elements/RoundedRectangle\";\r\nimport { Container } from \"../core/Container\";\r\nimport { Label } from \"../core/elements/Label\";\r\nimport { keyboard } from \"../core/utils/Keyboard\";\r\nimport { registry } from \"../core/Registry\";\r\nimport { getInteraction } from \"../core/interaction/Interaction\";\r\nimport { percent } from \"../core/utils/Percent\";\r\nimport { InterfaceColorSet } from \"../core/utils/InterfaceColorSet\";\r\nimport * as $utils from \"../core/utils/Utils\";\r\nimport * as $type from \"../core/utils/Type\";\r\nimport { Sprite } from \"../core/Sprite\";\r\nimport { Disposer } from \"../core/utils/Disposer\";\r\nimport { MouseCursorStyle } from \"../core/interaction/Mouse\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../core/utils/Responsive\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[Legend]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar LegendDataItem = /** @class */ (function (_super) {\r\n tslib_1.__extends(LegendDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function LegendDataItem() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * @ignore\r\n */\r\n _this.childrenCreated = false;\r\n _this.className = \"LegendDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(LegendDataItem.prototype, \"label\", {\r\n /**\r\n * A legend item's [[Label]] element.\r\n *\r\n * @return Label\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._label) {\r\n var label_1 = this.component.labels.create();\r\n this._label = label_1;\r\n this.addSprite(label_1);\r\n this._disposers.push(label_1);\r\n label_1.parent = this.itemContainer;\r\n this._disposers.push(new Disposer(function () {\r\n if ($type.hasValue(_this.component)) {\r\n _this.component.labels.removeValue(label_1);\r\n }\r\n }));\r\n }\r\n return this._label;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LegendDataItem.prototype, \"color\", {\r\n /**\r\n * @return Main color\r\n */\r\n get: function () {\r\n return this.properties.color;\r\n },\r\n /**\r\n * Main color of legend data item.\r\n *\r\n * This is set by the target element this legend item represents, like\r\n * a Series or a Slice.\r\n *\r\n * It can be used to derive a color in legend's sub-items, like label:\r\n *\r\n * ```TypeScript\r\n * chart.legend.labels.template.text = \"[{color}]{name}[/]\";\r\n * ```\r\n * ```JavaScript\r\n * chart.legend.labels.template.text = \"[{color}]{name}[/]\";\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"legend\": {\r\n * // ...\r\n * \"labels\": {\r\n * \"text\": \"[{color}]{name}[/]\"\r\n * }\r\n * }\r\n * }\r\n * ```\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/legend/#Legend_labels} For more information about configuring legend labels.\r\n * @param value Main color\r\n */\r\n set: function (value) {\r\n this.setProperty(\"color\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LegendDataItem.prototype, \"valueLabel\", {\r\n /**\r\n * A legend item's [[Label]] element for \"value label\".\r\n *\r\n * @return Label\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._valueLabel) {\r\n var valueLabel_1 = this.component.valueLabels.create();\r\n this._valueLabel = valueLabel_1;\r\n this.addSprite(valueLabel_1);\r\n this._disposers.push(valueLabel_1);\r\n valueLabel_1.parent = this.itemContainer;\r\n this._disposers.push(new Disposer(function () {\r\n if ($type.hasValue(_this.component)) {\r\n _this.component.valueLabels.removeValue(valueLabel_1);\r\n }\r\n }));\r\n }\r\n return this._valueLabel;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LegendDataItem.prototype, \"itemContainer\", {\r\n /**\r\n * A reference to the main [[Container]] that holds legend item's elements:\r\n * marker and labels.\r\n *\r\n * @return Item container\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._itemContainer) {\r\n var component_1 = this.component;\r\n var itemContainer_1 = component_1.itemContainers.create();\r\n this._itemContainer = itemContainer_1;\r\n this.addSprite(itemContainer_1);\r\n this._disposers.push(itemContainer_1);\r\n // Add click/tap event to toggle item\r\n if (itemContainer_1.togglable) {\r\n itemContainer_1.events.on(\"toggled\", function (ev) {\r\n component_1.toggleDataItem(ev.target.dataItem);\r\n }, undefined, false);\r\n }\r\n // Add focus event so that we can track which object is currently in focus\r\n // for keyboard toggling\r\n if (itemContainer_1.focusable) {\r\n itemContainer_1.events.on(\"focus\", function (ev) {\r\n component_1.focusedItem = ev.target.dataItem;\r\n }, undefined, false);\r\n itemContainer_1.events.on(\"blur\", function (ev) {\r\n component_1.focusedItem = undefined;\r\n }, undefined, false);\r\n }\r\n this._disposers.push(new Disposer(function () {\r\n if ($type.hasValue(_this.component)) {\r\n _this.component.itemContainers.removeValue(itemContainer_1);\r\n }\r\n }));\r\n if (this.dataContext.uidAttr) {\r\n itemContainer_1.readerControls = this.dataContext.uidAttr();\r\n itemContainer_1.readerLabelledBy = this.dataContext.uidAttr();\r\n }\r\n var sprite = this.dataContext;\r\n if ((sprite instanceof DataItem || sprite instanceof Sprite) && !sprite.isDisposed()) {\r\n itemContainer_1.addDisposer(sprite.events.on(\"visibilitychanged\", function (ev) {\r\n itemContainer_1.readerChecked = ev.visible;\r\n itemContainer_1.events.disableType(\"toggled\");\r\n itemContainer_1.isActive = !ev.visible;\r\n itemContainer_1.events.enableType(\"toggled\");\r\n }, undefined, false));\r\n sprite.addDisposer(new Disposer(function () {\r\n if (_this.component) {\r\n _this.component.dataItems.remove(_this);\r\n }\r\n }));\r\n if (sprite instanceof Sprite) {\r\n itemContainer_1.addDisposer(sprite.events.on(\"hidden\", function (ev) {\r\n itemContainer_1.readerChecked = false;\r\n itemContainer_1.events.disableType(\"toggled\");\r\n itemContainer_1.isActive = true;\r\n itemContainer_1.events.enableType(\"toggled\");\r\n }, undefined, false));\r\n itemContainer_1.addDisposer(sprite.events.on(\"shown\", function (ev) {\r\n itemContainer_1.readerChecked = true;\r\n itemContainer_1.events.disableType(\"toggled\");\r\n itemContainer_1.isActive = false;\r\n itemContainer_1.events.enableType(\"toggled\");\r\n }, undefined, false));\r\n }\r\n }\r\n }\r\n return this._itemContainer;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LegendDataItem.prototype, \"marker\", {\r\n /**\r\n * A [[Container]] that holds legend item's marker element.\r\n *\r\n * @return Marker\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._marker) {\r\n var marker_1 = this.component.markers.create();\r\n this._marker = marker_1;\r\n marker_1.parent = this.itemContainer;\r\n this.addSprite(marker_1);\r\n this._disposers.push(marker_1);\r\n this._disposers.push(new Disposer(function () {\r\n if ($type.hasValue(_this.component)) {\r\n _this.component.markers.removeValue(marker_1);\r\n }\r\n }));\r\n }\r\n return this._marker;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return LegendDataItem;\r\n}(DataItem));\r\nexport { LegendDataItem };\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a class that carries legend settings.\r\n *\r\n * A legend might change its settings dynamically. Legend can also be shared\r\n * by several elements, requiring different settings.\r\n *\r\n * Having legend's settings in a separate object is a good way to \"hot swap\"\r\n * a set of settings for the legend.\r\n */\r\nvar LegendSettings = /** @class */ (function () {\r\n function LegendSettings() {\r\n /**\r\n * Should marker be created for each legend item.\r\n */\r\n this.createMarker = true;\r\n }\r\n return LegendSettings;\r\n}());\r\nexport { LegendSettings };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * [[Legend]] class is used to create legend for the chart.\r\n *\r\n * @see {@link ILegendEvents} for a list of available events\r\n * @see {@link ILegendAdapters} for a list of available Adapters\r\n * @todo Verify/implement dynamic updating of legend items once the properties of related Series change\r\n */\r\nvar Legend = /** @class */ (function (_super) {\r\n tslib_1.__extends(Legend, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Legend() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Legend\";\r\n // Set defaults\r\n _this.layout = \"grid\";\r\n _this.setPropertyValue(\"useDefaultMarker\", false);\r\n _this.setPropertyValue(\"contentAlign\", \"center\");\r\n // Create a template container and list for legend items\r\n var itemContainer = new Container();\r\n itemContainer.applyOnClones = true;\r\n itemContainer.padding(10, 0, 10, 0);\r\n itemContainer.margin(0, 10, 0, 0);\r\n itemContainer.layout = \"horizontal\";\r\n itemContainer.clickable = true;\r\n itemContainer.focusable = true;\r\n itemContainer.role = \"switch\";\r\n itemContainer.togglable = true;\r\n itemContainer.cursorOverStyle = MouseCursorStyle.pointer;\r\n itemContainer.background.fillOpacity = 0; // creates hit area\r\n // Create container list using item template we just created\r\n _this.itemContainers = new ListTemplate(itemContainer);\r\n _this._disposers.push(new ListDisposer(_this.itemContainers));\r\n _this._disposers.push(_this.itemContainers.template);\r\n // Set up global keyboard events for toggling elements\r\n _this._disposers.push(getInteraction().body.events.on(\"keyup\", function (ev) {\r\n if (keyboard.isKey(ev.event, \"enter\") && _this.focusedItem && _this.focusedItem.itemContainer.clickable) {\r\n _this.toggleDataItem(_this.focusedItem);\r\n }\r\n }, _this));\r\n var interfaceColors = new InterfaceColorSet();\r\n // Create a template container and list for the a marker\r\n var marker = new Container();\r\n marker.width = 23;\r\n marker.height = 23;\r\n marker.interactionsEnabled = false;\r\n marker.applyOnClones = true;\r\n marker.setStateOnChildren = true;\r\n marker.background.fillOpacity = 0;\r\n marker.background.strokeOpacity = 0;\r\n marker.propertyFields.fill = \"fill\";\r\n marker.valign = \"middle\";\r\n var disabledColor = interfaceColors.getFor(\"disabledBackground\");\r\n marker.events.on(\"childadded\", function (event) {\r\n var child = event.newValue;\r\n var activeState = child.states.create(\"active\");\r\n activeState.properties.stroke = disabledColor;\r\n activeState.properties.fill = disabledColor;\r\n });\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 // Create a legend background element\r\n var rectangle = marker.createChild(RoundedRectangle);\r\n rectangle.width = percent(100);\r\n rectangle.height = percent(100);\r\n rectangle.applyOnClones = true;\r\n rectangle.propertyFields.fill = \"fill\";\r\n rectangle.strokeOpacity = 0;\r\n // Create a template container and list for item labels\r\n var label = new Label();\r\n label.text = \"{name}\";\r\n label.margin(0, 5, 0, 5);\r\n label.valign = \"middle\";\r\n label.applyOnClones = true;\r\n label.states.create(\"active\").properties.fill = interfaceColors.getFor(\"disabledBackground\");\r\n _this.labels = new ListTemplate(label);\r\n _this._disposers.push(new ListDisposer(_this.labels));\r\n _this._disposers.push(_this.labels.template);\r\n label.interactionsEnabled = false;\r\n // Create a template container and list for item value labels\r\n var valueLabel = new Label();\r\n valueLabel.margin(0, 5, 0, 0);\r\n valueLabel.valign = \"middle\";\r\n valueLabel.width = 50; // to avoid rearranging legend entries when value changes.\r\n valueLabel.align = \"right\";\r\n valueLabel.textAlign = \"end\";\r\n valueLabel.applyOnClones = true;\r\n valueLabel.states.create(\"active\").properties.fill = interfaceColors.getFor(\"disabledBackground\");\r\n valueLabel.interactionsEnabled = false;\r\n _this.valueLabels = new ListTemplate(valueLabel);\r\n _this._disposers.push(new ListDisposer(_this.valueLabels));\r\n _this._disposers.push(_this.valueLabels.template);\r\n _this.position = \"bottom\"; // don't use setPropertyValue here!\r\n // Create a state for disabled legend items\r\n itemContainer.states.create(\"active\");\r\n itemContainer.setStateOnChildren = true;\r\n // Apply accessibility settings\r\n _this.role = \"group\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n Legend.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Legend\");\r\n }\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n Legend.prototype.createDataItem = function () {\r\n return new LegendDataItem();\r\n };\r\n /**\r\n * [validateDataElement description]\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n * @todo Description\r\n * @todo Figure out how to update appearance of legend item without losing focus\r\n * @todo Update legend marker appearance as apperance of related series changes\r\n */\r\n Legend.prototype.validateDataElement = function (dataItem) {\r\n _super.prototype.validateDataElement.call(this, dataItem);\r\n // Get data item (legend item's) container\r\n var container = dataItem.itemContainer;\r\n var marker = dataItem.marker;\r\n $utils.used(dataItem.label);\r\n var valueLabel = dataItem.valueLabel;\r\n // Set parent and update current state\r\n container.parent = this;\r\n container.readerChecked = dataItem.dataContext.visible;\r\n // Tell series its legend data item\r\n dataItem.dataContext.legendDataItem = dataItem;\r\n var legendSettings = dataItem.dataContext.legendSettings;\r\n // If we are not using default markers, create a unique legend marker based\r\n // on the data item type\r\n var dataContext = dataItem.dataContext;\r\n if (dataContext.createLegendMarker && (!this.useDefaultMarker || !(dataContext instanceof Sprite))) {\r\n if (!dataItem.childrenCreated) {\r\n dataContext.createLegendMarker(marker);\r\n dataItem.childrenCreated = true;\r\n }\r\n }\r\n if (dataContext.updateLegendValue) {\r\n dataContext.updateLegendValue(); // this solves issue with external legend, as legend is created after chart updates legend values\r\n }\r\n if (valueLabel.invalid) {\r\n valueLabel.validate();\r\n }\r\n if (valueLabel.currentText == \"\" || valueLabel.currentText == undefined) {\r\n valueLabel.__disabled = true;\r\n }\r\n else {\r\n valueLabel.__disabled = false;\r\n }\r\n if (legendSettings && (legendSettings.itemValueText != undefined || legendSettings.valueText != undefined)) {\r\n valueLabel.__disabled = false;\r\n }\r\n var visible = dataItem.dataContext.visible;\r\n if (visible === undefined) {\r\n visible = true;\r\n }\r\n visible = $type.toBoolean(visible);\r\n dataItem.dataContext.visible = visible;\r\n container.events.disableType(\"toggled\");\r\n container.isActive = !visible;\r\n container.events.enableType(\"toggled\");\r\n };\r\n Object.defineProperty(Legend.prototype, \"position\", {\r\n /**\r\n * @return Position\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"position\");\r\n },\r\n /**\r\n * Position of the legend.\r\n *\r\n * Options: \"left\", \"right\", \"top\", \"bottom\" (default), or \"absolute\".\r\n *\r\n * IMPORTANT: [[MapChart]] will ignore this setting, as it is using different\r\n * layout structure than other charts.\r\n *\r\n * To position legend in [[MapChart]] set legend's `align` (`\"left\"` or\r\n * `\"right\"`) and `valign` (`\"top\"` or `\"bottom\"`) properties instead.\r\n *\r\n * @default \"bottom\"\r\n * @param value Position\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"position\", value)) {\r\n if (value == \"left\" || value == \"right\") {\r\n this.margin(10, 20, 10, 20);\r\n this.valign = \"middle\";\r\n this.itemContainers.template.width = percent(100);\r\n this.valueLabels.template.width = percent(100);\r\n this.labels.template.truncate = true;\r\n this.labels.template.fullWords = false;\r\n }\r\n else {\r\n this.itemContainers.template.width = undefined;\r\n this.itemContainers.template.maxWidth = undefined;\r\n this.valueLabels.template.width = 50;\r\n this.labels.template.truncate = false;\r\n this.width = percent(100);\r\n }\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Legend.prototype, \"useDefaultMarker\", {\r\n /**\r\n * @return Use default marker?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"useDefaultMarker\");\r\n },\r\n /**\r\n * Should legend try to mirror the look of the related item when building\r\n * the marker for legend item?\r\n *\r\n * If set to `true` it will try to make the marker look like its related\r\n * item.\r\n *\r\n * E.g. if an item is for a Line Series, it will display a line of the\r\n * same thickness, color, and will use the same bullets if series have them.\r\n *\r\n * @default false\r\n * @param value Use default marker?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"useDefaultMarker\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Toggles a legend item.\r\n *\r\n * @ignore Exclude from docs\r\n * @param item Legend item\r\n * @todo Maybe do it with togglable instead\r\n */\r\n Legend.prototype.toggleDataItem = function (item) {\r\n var dataContext = item.dataContext;\r\n if (!dataContext.visible || dataContext.isHiding || (dataContext instanceof Sprite && dataContext.isHidden)) {\r\n item.color = item.colorOrig;\r\n item.itemContainer.isActive = false;\r\n if (dataContext.hidden === true) {\r\n dataContext.hidden = false;\r\n }\r\n if (dataContext.show) {\r\n dataContext.show();\r\n }\r\n else {\r\n dataContext.visible = true;\r\n }\r\n }\r\n else {\r\n item.itemContainer.isActive = true;\r\n if (dataContext.hide) {\r\n dataContext.hide();\r\n }\r\n else {\r\n dataContext.visible = false;\r\n }\r\n item.color = new InterfaceColorSet().getFor(\"disabledBackground\");\r\n }\r\n };\r\n Object.defineProperty(Legend.prototype, \"preloader\", {\r\n /**\r\n * Override preloader method so that legend does not accidentally show its\r\n * own preloader.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Always `undefined`\r\n */\r\n get: function () {\r\n return;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * [handleDataItemPropertyChange description]\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Legend.prototype.handleDataItemPropertyChange = function (dataItem, name) {\r\n dataItem.valueLabel.invalidate();\r\n dataItem.label.invalidate();\r\n };\r\n return Legend;\r\n}(Component));\r\nexport { Legend };\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[\"Legend\"] = Legend;\r\n/**\r\n * Add default responsive rules\r\n */\r\n/**\r\n * Move legend to below the chart if chart is narrow\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.widthXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Legend && (target.position == \"left\" || target.position == \"right\")) {\r\n var state = target.states.create(stateId);\r\n state.properties.position = \"bottom\";\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Move legend to the right if chart is very short\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.heightXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Legend && (target.position == \"top\" || target.position == \"bottom\")) {\r\n var state = target.states.create(stateId);\r\n state.properties.position = \"right\";\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Disable legend altogether on small charts\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.isXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Legend) {\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=Legend.js.map","/**\r\n * [[Chart]] class provides base functionality for all chart types to inherit.\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 { registry } from \"../core/Registry\";\r\nimport { Component } from \"../core/Component\";\r\nimport { MutableValueDisposer } from \"../core/utils/Disposer\";\r\nimport { ListTemplate, ListDisposer } from \"../core/utils/List\";\r\nimport { Container } from \"../core/Container\";\r\nimport { Label } from \"../core/elements/Label\";\r\nimport { Grip } from \"../core/elements/Grip\";\r\nimport { DataItem } from \"../core/DataItem\";\r\nimport { percent } from \"../core/utils/Percent\";\r\nimport * as $iter from \"../core/utils/Iterator\";\r\nimport * as $type from \"../core/utils/Type\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../core/utils/Responsive\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[Chart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar ChartDataItem = /** @class */ (function (_super) {\r\n tslib_1.__extends(ChartDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ChartDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ChartDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return ChartDataItem;\r\n}(DataItem));\r\nexport { ChartDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A base class for all Charts.\r\n *\r\n * @see {@link IChartEvents} for a list of available Events\r\n * @see {@link IChartAdapters} for a list of available Adapters\r\n */\r\nvar Chart = /** @class */ (function (_super) {\r\n tslib_1.__extends(Chart, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Chart() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * A reference to chart's [[Legend]].\r\n * @ignore\r\n */\r\n _this._legend = new MutableValueDisposer();\r\n if (_this.constructor === Chart) {\r\n throw new Error(\"'Chart' cannot be instantiated directly. Please use a specific chart type.\");\r\n }\r\n _this.className = \"Chart\";\r\n // Create a list of titles\r\n var template = new Label();\r\n _this.titles = new ListTemplate(template);\r\n _this._disposers.push(new ListDisposer(_this.titles));\r\n _this._disposers.push(template);\r\n // Chart component is also a container. it holds _chartAndLegendCont and titles\r\n _this.width = percent(100);\r\n _this.height = percent(100);\r\n _this.layout = \"vertical\";\r\n // Chart and legend\r\n var chartAndLegendContainer = _this.createChild(Container);\r\n chartAndLegendContainer.shouldClone = false;\r\n chartAndLegendContainer.layout = \"vertical\";\r\n chartAndLegendContainer.width = percent(100);\r\n chartAndLegendContainer.height = percent(100);\r\n _this.chartAndLegendContainer = chartAndLegendContainer;\r\n // Chart container holds all the elements of a chart, extept titles and legend\r\n var chartContainer = chartAndLegendContainer.createChild(Container);\r\n chartContainer.shouldClone = false;\r\n chartContainer.width = percent(100);\r\n chartContainer.height = percent(100);\r\n _this.chartContainer = chartContainer;\r\n _this.showOnInit = true;\r\n _this._disposers.push(_this._legend);\r\n // Add title list events to apply certain formatting options and to make\r\n // the chart reference them as accessible screen reader labels\r\n _this.titles.events.on(\"inserted\", function (label) {\r\n _this.processTitle(label);\r\n _this.updateReaderTitleReferences();\r\n }, _this, false);\r\n _this.titles.events.on(\"removed\", function (label) {\r\n _this.updateReaderTitleReferences();\r\n }, _this, false);\r\n // Accessibility\r\n // It seems we can't set focusable on the whole chart because it seems to\r\n // mess up the whole focus event system - getting a focus on an inside\r\n // object also trigger focus on parent\r\n //this.focusable = true;\r\n _this.role = \"region\";\r\n _this.defaultState.transitionDuration = 1;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n Chart.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Chart\");\r\n }\r\n };\r\n /**\r\n * Initiates drawing of the chart.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Chart.prototype.draw = function () {\r\n this.fixLayout();\r\n _super.prototype.draw.call(this);\r\n };\r\n /**\r\n * Updates legend's hierarchy based on the position.\r\n */\r\n Chart.prototype.fixLayout = function () {\r\n var legend = this.legend;\r\n if (legend) {\r\n var chartAndLegendContainer = this.chartAndLegendContainer;\r\n var chartContainer = this.chartContainer;\r\n chartContainer.x = undefined;\r\n chartContainer.y = undefined;\r\n legend.x = undefined;\r\n legend.y = undefined;\r\n switch (legend.position) {\r\n case \"left\":\r\n chartAndLegendContainer.layout = \"horizontal\";\r\n if (!$type.isNumber(legend.width)) {\r\n legend.width = 200;\r\n }\r\n //legend.maxWidth = legend.width;\r\n legend.toBack();\r\n break;\r\n case \"right\":\r\n chartAndLegendContainer.layout = \"horizontal\";\r\n if (!$type.isNumber(legend.width)) {\r\n legend.width = 200;\r\n }\r\n //legend.maxWidth = legend.width;\r\n legend.toFront();\r\n break;\r\n case \"top\":\r\n chartAndLegendContainer.layout = \"vertical\";\r\n legend.maxWidth = undefined;\r\n legend.width = percent(100);\r\n legend.toBack();\r\n break;\r\n case \"bottom\":\r\n chartAndLegendContainer.layout = \"vertical\";\r\n legend.maxWidth = undefined;\r\n legend.width = percent(100);\r\n legend.toFront();\r\n }\r\n }\r\n };\r\n /**\r\n * Setups the legend to use the chart's data.\r\n */\r\n Chart.prototype.feedLegend = function () {\r\n // Nothing here. This method is provided only as a \"placeholder\" for\r\n // extending classes to override\r\n };\r\n /**\r\n * Adds a new title to the chart when it is inserted into chart's titles\r\n * list.\r\n * @param event An event object which is triggered when inserting into titles list\r\n * @return Label object\r\n */\r\n Chart.prototype.processTitle = function (event) {\r\n var title = event.newValue;\r\n title.parent = this;\r\n title.toBack();\r\n title.shouldClone = false;\r\n title.align = \"center\";\r\n // Need to explicitly apply the `id` attribute so it can be referenced by\r\n // `aria-labelledby`\r\n title.uidAttr();\r\n return title;\r\n };\r\n /**\r\n * Checks if chart has any title elements. If it does, we will use them in an\r\n * `aria-labelledby` attribute so that screen readers can use them to properly\r\n * describe the chart when it is focused or hovered.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Chart.prototype.updateReaderTitleReferences = function () {\r\n if (this.titles.length) {\r\n var titleIds_1 = [];\r\n $iter.each(this.titles.iterator(), function (title) {\r\n titleIds_1.push(title.uid);\r\n });\r\n this.setSVGAttribute({ \"aria-labelledby\": titleIds_1.join(\" \") });\r\n }\r\n else {\r\n this.removeSVGAttribute(\"aria-labelledby\");\r\n }\r\n };\r\n Object.defineProperty(Chart.prototype, \"legend\", {\r\n /**\r\n * @return Legend\r\n */\r\n get: function () {\r\n return this._legend.get();\r\n },\r\n /**\r\n * Holds the instance of chart's [[Leged]].\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/legend/} for more information about legends\r\n * @param Legend\r\n */\r\n set: function (legend) {\r\n this.setLegend(legend);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Prepares the legend instance for use in this chart.\r\n *\r\n * @param legend Legend\r\n */\r\n Chart.prototype.setLegend = function (legend) {\r\n var _this = this;\r\n if (this._legend.get() !== legend) {\r\n if (legend) {\r\n // Set legend options\r\n legend.parent = this.chartAndLegendContainer;\r\n this._legend.set(legend, legend.events.on(\"propertychanged\", function (event) {\r\n if (event.property == \"position\" || event.property == \"width\") {\r\n _this.fixLayout();\r\n }\r\n }, undefined, false));\r\n }\r\n else {\r\n this._legend.reset();\r\n }\r\n this.feedLegend();\r\n }\r\n };\r\n /**\r\n * Destroys this object and all related data.\r\n */\r\n Chart.prototype.dispose = function () {\r\n // otherwise there might be some errors when disposing chart which was just inited\r\n if (this.legend) {\r\n this.legend.dispose();\r\n }\r\n _super.prototype.dispose.call(this);\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 Chart.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Set up legend\r\n if ($type.hasValue(config.legend) && !$type.hasValue(config.legend.type)) {\r\n config.legend.type = \"Legend\";\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n /**\r\n * Copies all properties from another instance of [[Series]].\r\n *\r\n * @param source Source series\r\n */\r\n Chart.prototype.copyFrom = function (source) {\r\n this.titles.copyFrom(source.titles);\r\n if (source.legend) {\r\n this.legend = source.legend.clone();\r\n this.legend.removeChildren();\r\n }\r\n _super.prototype.copyFrom.call(this, source);\r\n };\r\n Object.defineProperty(Chart.prototype, \"dragGrip\", {\r\n /**\r\n * @return Grip\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._dragGrip) {\r\n var grip_1 = this.tooltipContainer.createChild(Grip);\r\n grip_1.align = \"right\";\r\n grip_1.valign = \"middle\";\r\n grip_1.hide(0);\r\n grip_1.events.on(\"down\", function (ev) {\r\n if (ev.touch) {\r\n _this.interactionsEnabled = false;\r\n }\r\n });\r\n grip_1.events.on(\"up\", function (ev) {\r\n _this.interactionsEnabled = true;\r\n });\r\n this.events.on(\"down\", function (ev) {\r\n if (ev.touch) {\r\n grip_1.show();\r\n }\r\n });\r\n this._dragGrip = grip_1;\r\n }\r\n return this._dragGrip;\r\n },\r\n /**\r\n * An instance of [[Grip]] which serves as a grip point which appears on\r\n * touch and allows scrolling whole page even if chart is occupying the\r\n * whole of the screen and would otherwise prevent scrolling.\r\n *\r\n * @since 4.4.0\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/touch/} For more information.\r\n * @param value Grip\r\n */\r\n set: function (value) {\r\n this._dragGrip = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Chart;\r\n}(Component));\r\nexport { Chart };\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[\"Chart\"] = Chart;\r\n/**\r\n * Add default responsive rules\r\n */\r\n/**\r\n * Reduce horizontal margins\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.widthXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Chart) {\r\n var state = target.states.create(stateId);\r\n if (target.pixelPaddingLeft > 10) {\r\n state.properties.paddingLeft = 10;\r\n }\r\n if (target.pixelPaddingRight > 10) {\r\n state.properties.paddingRight = 10;\r\n }\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Reduce vertical margins\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.heightXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Chart) {\r\n var state = target.states.create(stateId);\r\n if (target.pixelPaddingTop > 10) {\r\n state.properties.paddingTop = 10;\r\n }\r\n if (target.pixelPaddingBottom > 10) {\r\n state.properties.paddingBottom = 10;\r\n }\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Remove horizontal padding\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.widthXXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Chart) {\r\n var state = target.states.create(stateId);\r\n state.properties.paddingLeft = 0;\r\n state.properties.paddingRight = 0;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Remove vertical padding\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.heightXXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Chart) {\r\n var state = target.states.create(stateId);\r\n state.properties.paddingTop = 0;\r\n state.properties.paddingBottom = 0;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n//# sourceMappingURL=Chart.js.map"],"sourceRoot":""}