{"version":3,"sources":["webpack:///../../../../../src/.internal/charts/axes/AxisRendererCircular.ts","webpack:///../../../../../src/.internal/charts/map/ZoomControl.ts","webpack:///../../../../../src/.internal/charts/axes/AxisLabelCircular.ts","webpack:///../../../../../src/.internal/charts/axes/AxisFillCircular.ts","webpack:///../../../../../src/.internal/core/responsive/ResponsiveDefaults.ts","webpack:///../../../../../src/.internal/charts/map/SmallMap.ts","webpack:///../../../../../src/.internal/charts/axes/GridCircular.ts"],"names":["__webpack_require__","d","__webpack_exports__","AxisRendererCircular","__WEBPACK_IMPORTED_MODULE_0_tslib__","__WEBPACK_IMPORTED_MODULE_1__AxisRenderer__","__WEBPACK_IMPORTED_MODULE_2__AxisFillCircular__","__WEBPACK_IMPORTED_MODULE_3__GridCircular__","__WEBPACK_IMPORTED_MODULE_4__AxisLabelCircular__","__WEBPACK_IMPORTED_MODULE_5__core_Registry__","__WEBPACK_IMPORTED_MODULE_6__core_utils_Percent__","__WEBPACK_IMPORTED_MODULE_7__core_utils_Math__","__WEBPACK_IMPORTED_MODULE_8__core_rendering_Path__","__WEBPACK_IMPORTED_MODULE_9__core_utils_Utils__","__WEBPACK_IMPORTED_MODULE_10__core_utils_Type__","_super","_this","call","this","pixelRadiusReal","layout","className","isMeasured","startAngle","endAngle","useChartAngles","radius","Object","grid","template","location","labels","ticks","pixelPerfect","tooltipLocation","line","strokeOpacity","applyTheme","prototype","setAxis","axis","tooltip","adapter","add","x","target","point","pixelX","y","pixelY","pixelRadius","Math","cos","atan2","sin","validate","chart","invalid","defineProperty","PI","getPropertyValue","value","setPercentProperty","invalidate","setPropertyValue","innerRadius","positionToPoint","position","coordinate","positionToCoordinate","angle","axisLength","positionToAngle","arc","end","start","renderer","inversed","updateAxisLine","path","updateGridElement","endPosition","element","gridInnerRadius","zIndex","toggleVisibility","updateTickElement","tick","tickLength","length","inside","updateLabelElement","label","fixPoint","positionItem","minLabelPosition","maxLabelPosition","fitsToBounds","invalidateAxisItems","invalidateSeries","getPositionRangePath","startPosition","cornerRadius","pixelInnerRadius","createGrid","createFill","createLabel","pointToPosition","coordinateToPosition","registeredClasses","ZoomControl","__WEBPACK_IMPORTED_MODULE_1__core_Container__","__WEBPACK_IMPORTED_MODULE_2__core_elements_Button__","__WEBPACK_IMPORTED_MODULE_3__core_elements_RoundedRectangle__","__WEBPACK_IMPORTED_MODULE_4__core_utils_Disposer__","__WEBPACK_IMPORTED_MODULE_5__core_utils_Keyboard__","__WEBPACK_IMPORTED_MODULE_6__core_interaction_Interaction__","__WEBPACK_IMPORTED_MODULE_7__core_utils_Percent__","__WEBPACK_IMPORTED_MODULE_8__core_Registry__","__WEBPACK_IMPORTED_MODULE_9__core_utils_InterfaceColorSet__","_chart","align","valign","padding","interfaceColors","plusButton","createChild","shouldClone","text","width","slider","background","fill","getFor","fillOpacity","events","on","handleBackgroundClick","updateThumbSize","thumb","draggable","handleThumbDrag","minusButton","role","readerLive","readerTitle","language","translate","event","property","fixLayout","undefined","_disposers","push","height","marginTop","marginBottom","toFront","toBack","minX","maxX","minY","maxY","marginLeft","marginRight","sprite","spritePoint","maxPower","log","maxZoomLevel","LN2","minPower","minZoomLevel","power","pixelHeight","zoomLevel","pow","zoomToGeoPoint","zoomGeoPoint","get","set","updateThumb","zoomOut","body","ev","topParent","hasFocused","isKey","isFocused","zoomIn","minHeight","min","stepCount","visible","minWidth","pixelWidth","isDown","step","createBackground","AxisLabelCircular","__WEBPACK_IMPORTED_MODULE_1__AxisLabel__","__WEBPACK_IMPORTED_MODULE_2__core_Registry__","__WEBPACK_IMPORTED_MODULE_3__core_utils_Math__","__WEBPACK_IMPORTED_MODULE_4__core_utils_Type__","__WEBPACK_IMPORTED_MODULE_5__core_utils_Utils__","fdx","fdy","axisRadius","sign","axisRadiusY","relativeRotation","dy","_measuredHeight","dx","_measuredWidth","labelRadius","bbox","rotation","dH","dW","pixelPaddingBottom","pixelPaddingTop","pixelPaddingLeft","pixelPaddingRight","AxisFillCircular","paper","__WEBPACK_IMPORTED_MODULE_2__core_utils_Percent__","draw","fillPath","__WEBPACK_IMPORTED_MODULE_1__AxisFill__","__WEBPACK_IMPORTED_MODULE_3__core_Registry__","__WEBPACK_IMPORTED_MODULE_0__charts_axes_AxisRenderer__","__WEBPACK_IMPORTED_MODULE_1__charts_axes_AxisRendererX__","__WEBPACK_IMPORTED_MODULE_2__charts_axes_AxisRendererY__","__WEBPACK_IMPORTED_MODULE_3__charts_axes_AxisRendererCircular__","__WEBPACK_IMPORTED_MODULE_4__charts_Chart__","__WEBPACK_IMPORTED_MODULE_5__charts_Legend__","__WEBPACK_IMPORTED_MODULE_6__charts_map_SmallMap__","__WEBPACK_IMPORTED_MODULE_7__charts_map_ZoomControl__","relevant","container","state","object","stateId","states","create","properties","disabled","SmallMap","__WEBPACK_IMPORTED_MODULE_2__core_elements_Rectangle__","__WEBPACK_IMPORTED_MODULE_3__core_utils_List__","__WEBPACK_IMPORTED_MODULE_6__core_utils_Color__","__WEBPACK_IMPORTED_MODULE_7__core_utils_InterfaceColorSet__","__WEBPACK_IMPORTED_MODULE_8__core_utils_Utils__","__WEBPACK_IMPORTED_MODULE_9__core_utils_Type__","percentHeight","percentWidth","margin","moveToPosition","updateMapSize","seriesContainer","rectangle","stroke","strokeWidth","verticalCenter","horizontalCenter","_series","handleSeriesAdded","handleSeriesRemoved","series","newValue","contains","newSeries","clone","removeValue","dataUsers","parent","interactionsEnabled","rectPoint","geoPoint","seriesPointToGeo","updateRectangle","scale","ceil","scaleRatio","afterDraw","moveTo","maskRectangle","processConfig","config","i","len","map","hasKey","getKey","GridCircular","__WEBPACK_IMPORTED_MODULE_1__Grid__"],"mappings":"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","file":"deps/responsivedefaults.js","sourcesContent":["/**\r\n * Module, defining Axis Renderer for circular axes.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisRenderer, IAxisRendererProperties, IAxisRendererAdapters, IAxisRendererEvents } from \"./AxisRenderer\";\r\nimport { Axis } from \"./Axis\";\r\nimport { AxisFillCircular } from \"./AxisFillCircular\";\r\nimport { SpriteEventDispatcher, AMEvent } from \"../../core/Sprite\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { AxisTick } from \"./AxisTick\";\r\nimport { GridCircular } from \"./GridCircular\";\r\nimport { AxisLabelCircular } from \"./AxisLabelCircular\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent, Percent } from \"../../core/utils/Percent\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisRendererCircular]].\r\n */\r\nexport interface IAxisRendererCircularProperties extends IAxisRendererProperties {\r\n\r\n\t/**\r\n\t * Start angle of the circular axis in degrees (0-360).\r\n\t *\r\n\t * @type {number}\r\n\t */\r\n\tstartAngle?: number;\r\n\r\n\t/**\r\n\t * End angle of the circular axis in degrees (0-360).\r\n\t *\r\n\t * @type {number}\r\n\t */\r\n\tendAngle?: number;\r\n\r\n\t/**\r\n\t * Outer radius of the circular axis.\r\n\t *\r\n\t * Can either be absolute (pixels) or relative ([[Percent]]).\r\n\t *\r\n\t * @type {number | Percent}\r\n\t */\r\n\tradius?: number | Percent;\r\n\r\n\t/**\r\n\t * Inner radius of the circular axis.\r\n\t *\r\n\t * Can either be absolute (pixels) or relative ([[Percent]]).\r\n\t *\r\n\t * @type {number | Percent}\r\n\t */\r\n\tinnerRadius?: number | Percent;\r\n\r\n\t/**\r\n\t * Specifies if axis should use it's own start/end angles or the ones set on chart.\r\n\t *\r\n\t * @type {boolean}\r\n\t */\r\n\tuseChartAngles?: boolean;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[AxisRendererCircular]].\r\n */\r\nexport interface IAxisRendererCircularEvents extends IAxisRendererEvents { }\r\n\r\n/**\r\n * Defines adapters for [[AxisRenderer]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisRendererCircularAdapters extends IAxisRendererAdapters, IAxisRendererCircularProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A renderer for circular axis.\r\n */\r\nexport class AxisRendererCircular extends AxisRenderer {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t *\r\n\t * @type {IAxisRendererProperties}\r\n\t */\r\n\tpublic _properties!: IAxisRendererCircularProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t *\r\n\t * @type {IAxisRendererAdapters}\r\n\t */\r\n\tpublic _adapter!: IAxisRendererCircularAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t *\r\n\t * @type {IAxisRendererCircularEvents}\r\n\t */\r\n\tpublic _events!: IAxisRendererCircularEvents;\r\n\r\n\t/**\r\n\t * Defines type of the grid elements.\r\n\t *\r\n\t * @type {GridCircular}\r\n\t */\r\n\tpublic _gridType: GridCircular;\r\n\r\n\t/**\r\n\t * Defines type for the fill elements.\r\n\t *\r\n\t * @type {AxisFillCircular}\r\n\t */\r\n\tpublic _fillType: AxisFillCircular;\r\n\r\n\t/**\r\n\t * Defines type for the label elements.\r\n\t *\r\n\t * @type {AxisLabelCircular}\r\n\t */\r\n\tpublic _labelType: AxisLabelCircular;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic pixelRadiusReal: number = 0;\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t *\r\n\t * @param {Axis} axis Related axis\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\r\n\t\t// axis.layout = \"none\"; // does not trigger redraw when size changes\r\n\t\tthis.layout = \"none\";\r\n\r\n\t\tthis.className = \"AxisRendererCircular\";\r\n\t\tthis.isMeasured = false;\r\n\t\tthis.startAngle = -90;\r\n\t\tthis.endAngle = 270;\r\n\r\n\t\tthis.useChartAngles = true;\r\n\t\tthis.radius = percent(100);\r\n\r\n\t\tthis.isMeasured = false;\r\n\r\n\t\tthis.grid.template.location = 0;\r\n\r\n\t\tthis.labels.template.location = 0;\r\n\t\tthis.labels.template.radius = 15;\r\n\r\n\t\tthis.ticks.template.location = 0;\r\n\t\tthis.ticks.template.pixelPerfect = false;\r\n\t\tthis.tooltipLocation = 0;\r\n\r\n\t\tthis.line.strokeOpacity = 0;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t* @ignore\r\n\t*/\r\n\tpublic setAxis(axis: Axis) {\r\n\t\tsuper.setAxis(axis);\r\n\t\taxis.isMeasured = false;\r\n\r\n\t\t// modify x and y so that tooltip would always be on circle\r\n\t\tlet tooltip = axis.tooltip;\r\n\r\n\t\ttooltip.adapter.add(\"dx\", (x, target) => {\r\n\t\t\tlet point: IPoint = $utils.svgPointToSprite({ x: target.pixelX, y: target.pixelY }, this);\r\n\t\t\treturn this.pixelRadius * Math.cos(Math.atan2(point.y, point.x)) - point.x;\r\n\t\t});\r\n\r\n\t\ttooltip.adapter.add(\"dy\", (y, target) => {\r\n\t\t\tlet point: IPoint = $utils.svgPointToSprite({ x: target.pixelX, y: target.pixelY }, this);\r\n\t\t\treturn this.pixelRadius * Math.sin(Math.atan2(point.y, point.x)) - point.y;\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Validates Axis renderer.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate() {\r\n\t\t// so that radius would be updated\r\n\t\tif (this.chart && this.chart.invalid) {\r\n\t\t\tthis.chart.validate();\r\n\t\t}\r\n\r\n\t\tsuper.validate();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns actual length of the Axis, in pixels.\r\n\t *\r\n\t * @return {number} Length (px)\r\n\t */\r\n\tpublic get axisLength(): number {\r\n\t\treturn 2 * Math.PI * this.pixelRadius;\r\n\t}\r\n\r\n\t/**\r\n\t * Outer radius of the axis.\r\n\t *\r\n\t * Can be absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @param {number | Percent} value Outer radius\r\n\t */\r\n\tpublic set radius(value: number | Percent) {\r\n\t\tif (this.setPercentProperty(\"radius\", value, false, false, 10, false)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidate();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return {number | Percent} Outer radius\r\n\t */\r\n\tpublic get radius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"radius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Outer radius in pixels.\r\n\t *\r\n\t * @return {number} Outer radius (px)\r\n\t */\r\n\tpublic get pixelRadius(): number {\r\n\t\treturn $utils.relativeRadiusToValue(this.radius, this.pixelRadiusReal) || 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Inner radius of the axis.\r\n\t *\r\n\t * Can be absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @param {number | Percent} value Inner radius\r\n\t */\r\n\tpublic set innerRadius(value: number | Percent) {\r\n\t\tif (this.setPercentProperty(\"innerRadius\", value, false, false, 10, false)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidate();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return {number | Percent} Inner radius\r\n\t */\r\n\tpublic get innerRadius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"innerRadius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Specifies if axis should use its own `startAngle` and `endAngle` or\r\n\t * inherit them from relative properties from chart.\r\n\t *\r\n\t * @default false\r\n\t * @param {boolean} value Use chart's angles\r\n\t */\r\n\tpublic set useChartAngles(value: boolean) {\r\n\t\tthis.setPropertyValue(\"useChartAngles\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return {boolean} Use chart angles\r\n\t */\r\n\tpublic get useChartAngles(): boolean {\r\n\t\treturn this.getPropertyValue(\"useChartAngles\");\r\n\t}\r\n\r\n\t/**\r\n\t * Inner radius in pixels.\r\n\t *\r\n\t * @return {number} Inner radius (px)\r\n\t */\r\n\tpublic get pixelInnerRadius(): number {\r\n\t\treturn $utils.relativeRadiusToValue(this.innerRadius, this.pixelRadiusReal) || 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Converts relative position on axis to point coordinates.\r\n\t *\r\n\t * @param {number} position Position (0-1)\r\n\t * @return {IPoint} Point\r\n\t */\r\n\tpublic positionToPoint(position: number): IPoint {\r\n\t\tlet coordinate: number = this.positionToCoordinate(position);\r\n\t\tlet angle: number = this.startAngle + (this.endAngle - this.startAngle) * coordinate / this.axisLength;\r\n\t\treturn { x: this.pixelRadius * $math.cos(angle), y: this.pixelRadius * $math.sin(angle) };\r\n\t}\r\n\r\n\t/**\r\n\t * Converts relative position (0-1) on axis to angle in degrees (0-360).\r\n\t *\r\n\t * @param {number} position Position (0-1)\r\n\t * @return {number} Angle (0-360)\r\n\t */\r\n\tpublic positionToAngle(position: number): number {\r\n\t\tlet axis: Axis = this.axis;\r\n\r\n\t\tlet arc: number = (this.endAngle - this.startAngle) / (axis.end - axis.start);\r\n\r\n\t\tlet angle: number;\r\n\r\n\t\tif (axis.renderer.inversed) {\r\n\t\t\tangle = this.startAngle + (axis.end - position) * arc;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tangle = this.startAngle + (position - axis.start) * arc;\r\n\t\t}\r\n\r\n\t\treturn $math.round(angle, 3);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions the axis line element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateAxisLine() {\r\n\t\tlet radius: number = this.pixelRadius;\r\n\t\tlet startAngle: number = this.startAngle;\r\n\t\tlet endAngle: number = this.endAngle;\r\n\r\n\t\tlet arc: number = endAngle - startAngle;\r\n\t\tthis.line.path = $path.moveTo({ x: radius * $math.cos(startAngle), y: radius * $math.sin(startAngle) }) + $path.arcTo(startAngle, arc, radius, radius);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a grid element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param {Grid} grid Grid element\r\n\t * @param {number} position Starting position\r\n\t * @param {number} endPosition End position\r\n\t */\r\n\tpublic updateGridElement(grid: GridCircular, position: number, endPosition: number) {\r\n\t\tposition = position + (endPosition - position) * grid.location;\r\n\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\t\tif (grid.element) {\r\n\t\t\tlet angle: number = $math.DEGREES * Math.atan2(point.y, point.x);\r\n\t\t\tlet radius: number = $utils.relativeRadiusToValue($type.hasValue(grid.radius) ? grid.radius : percent(100), this.pixelRadius);\r\n\r\n\t\t\tlet gridInnerRadius = $utils.relativeRadiusToValue(grid.innerRadius, this.pixelRadius);\r\n\t\t\tgrid.zIndex = 0;\r\n\r\n\t\t\tlet innerRadius: number = $utils.relativeRadiusToValue($type.isNumber(gridInnerRadius) ? gridInnerRadius : this.innerRadius, this.pixelRadius, true);\r\n\t\t\tgrid.path = $path.moveTo({ x: innerRadius * $math.cos(angle), y: innerRadius * $math.sin(angle) }) + $path.lineTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) });\r\n\t\t}\r\n\t\tthis.toggleVisibility(grid, position, 0, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a tick element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param {AxisTick} tick Tick element\r\n\t * @param {number} position Starting position\r\n\t * @param {number} endPosition End position\r\n\t */\r\n\tpublic updateTickElement(tick: AxisTick, position: number, endPosition: number) {\r\n\r\n\t\tposition = position + (endPosition - position) * tick.location;\r\n\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\r\n\t\tif (tick.element) {\r\n\t\t\tlet radius: number = this.pixelRadius;\r\n\t\t\tlet angle: number = $math.DEGREES * Math.atan2(point.y, point.x);\r\n\t\t\tlet tickLength: number = tick.length;\r\n\t\t\tif (tick.inside) {\r\n\t\t\t\ttickLength = -tickLength;\r\n\t\t\t}\r\n\t\t\ttick.zIndex = 1;\r\n\t\t\ttick.path = $path.moveTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) }) + $path.lineTo({ x: (radius + tickLength) * $math.cos(angle), y: (radius + tickLength) * $math.sin(angle) });\r\n\t\t}\r\n\r\n\t\tthis.toggleVisibility(tick, position, 0, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a label element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param {AxisLabel} label Label element\r\n\t * @param {number} position Starting position\r\n\t * @param {number} endPosition Ending position\r\n\t */\r\n\tpublic updateLabelElement(label: this[\"_labelType\"], position: number, endPosition: number, location?: number) {\r\n\r\n\t\tif (!$type.hasValue(location)) {\r\n\t\t\tlocation = label.location;\r\n\t\t}\r\n\r\n\t\tposition = position + (endPosition - position) * location;\r\n\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\r\n\t\tlabel.fixPoint(point, this.pixelRadius);\r\n\t\tlabel.zIndex = 2;\r\n\r\n\t\tthis.positionItem(label, point);\r\n\r\n\t\tthis.toggleVisibility(label, position, this.minLabelPosition, this.maxLabelPosition);\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if point is within bounds of a container.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param {IPoint} point Point coordinates\r\n\t * @return {boolean} Fits?\r\n\t */\r\n\tpublic fitsToBounds(point: IPoint): boolean {\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * Start angle of the axis in degrees (0-360).\r\n\t *\r\n\t * @param {number} value Start angle\r\n\t */\r\n\tpublic set startAngle(value: number) {\r\n\t\t// do not normalize angel here!\r\n\t\tif (this.setPropertyValue(\"startAngle\", value)) {\r\n\t\t\tthis.invalidateAxisItems();\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return {number} Start angle\r\n\t */\r\n\tpublic get startAngle(): number {\r\n\t\treturn this.getPropertyValue(\"startAngle\");\r\n\t}\r\n\r\n\t/**\r\n\t * End angle of the axis in degrees (0-360).\r\n\t *\r\n\t * @param {number} value End angle\r\n\t */\r\n\tpublic set endAngle(value: number) {\r\n\t\t// do not normalize angel here!\r\n\t\tif (this.setPropertyValue(\"endAngle\", value)) {\r\n\t\t\tthis.invalidateAxisItems();\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return {number} End angle\r\n\t */\r\n\tpublic get endAngle(): number {\r\n\t\treturn this.getPropertyValue(\"endAngle\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * [getPositionRangePath description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param {number} startPosition Starting position\r\n\t * @param {number} endPosition End position\r\n\t * @return {string} SVG path\r\n\t */\r\n\tpublic getPositionRangePath(startPosition: number, endPosition: number, radius?: number | Percent, innerRadius?: number | Percent, cornerRadius?: number): string {\r\n\t\tlet path: string = \"\";\r\n\t\tif ($type.isNumber(startPosition) && $type.isNumber(endPosition)) {\r\n\r\n\t\t\tif (!$type.hasValue(radius)) {\r\n\t\t\t\tradius = this.radius;\r\n\t\t\t}\r\n\r\n\t\t\tstartPosition = $math.max(startPosition, this.axis.start);\r\n\t\t\tendPosition = $math.min(endPosition, this.axis.end);\r\n\r\n\t\t\tif (endPosition < startPosition) {\r\n\t\t\t\tendPosition = startPosition;\r\n\t\t\t}\r\n\r\n\t\t\tlet pixelRadius: number = $utils.relativeRadiusToValue(radius, this.pixelRadius);\r\n\t\t\tlet pixelInnerRadius: number = $utils.relativeRadiusToValue(innerRadius, this.pixelRadius, true);\r\n\r\n\t\t\tlet startAngle: number = this.positionToAngle(startPosition);\r\n\t\t\tlet endAngle: number = this.positionToAngle(endPosition);\r\n\r\n\t\t\tlet arc: number = endAngle - startAngle;\r\n\r\n\t\t\tpath = $path.arc(startAngle, arc, pixelRadius, pixelInnerRadius, pixelRadius, cornerRadius);\r\n\t\t}\r\n\r\n\t\treturn path;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new grid element, suitable for this Axis Renderer type.\r\n\t *\r\n\t * @return {GridCircular} Grid element\r\n\t */\r\n\tpublic createGrid(): this[\"_gridType\"] {\r\n\t\treturn new GridCircular();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new fill element, suitable for this Axis Renderer type.\r\n\t *\r\n\t * @return {AxisFillCircular} Fill element\r\n\t */\r\n\tpublic createFill(axis: Axis): this[\"_fillType\"] {\r\n\t\treturn new AxisFillCircular(axis);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new label element, suitable for this Axis Renderer type.\r\n\t *\r\n\t * @return {AxisLabelCircular} Label element\r\n\t */\r\n\tpublic createLabel(): this[\"_labelType\"] {\r\n\t\treturn new AxisLabelCircular();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Converts a point at specific coordinates to a relative position (0-1)\r\n\t * on the axis.\r\n\t *\r\n\t * @param {IPoint} point Point\r\n\t * @return {number} Position (0-1)\r\n\t */\r\n\tpublic pointToPosition(point: IPoint) {\r\n\t\tlet angle = $math.fitAngleToRange($math.getAngle(point), this.startAngle, this.endAngle);\r\n\t\treturn this.coordinateToPosition((angle - this.startAngle) / 360 * this.axisLength);\r\n\t}\r\n}\r\n\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[\"AxisRendererCircular\"] = AxisRendererCircular;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/charts/axes/AxisRendererCircular.ts","/**\r\n * Zoom control module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../../core/Container\";\r\nimport { Sprite, ISpriteEvents, SpriteEventDispatcher, AMEvent } from \"../../core/Sprite\";\r\nimport { Button } from \"../../core/elements/Button\";\r\nimport { MapChart } from \"../types/MapChart\";\r\nimport { RoundedRectangle } from \"../../core/elements/RoundedRectangle\";\r\nimport { MutableValueDisposer, MultiDisposer } from \"../../core/utils/Disposer\";\r\nimport { keyboard } from \"../../core/utils/Keyboard\";\r\nimport { getInteraction } from \"../../core/interaction/Interaction\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[ZoomControl]].\r\n */\r\nexport interface IZoomControlProperties extends IContainerProperties { }\r\n\r\n/**\r\n * Defines events for [[ZoomControl]].\r\n */\r\nexport interface IZoomControlEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines adapters for [[ZoomControl]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IZoomControlAdapters extends IContainerAdapters, IZoomControlProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a control for zooming the map.\r\n *\r\n * @see {@link IZoomControlEvents} for a list of available events\r\n * @see {@link IZoomControlAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class ZoomControl extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t *\r\n\t * @type {IZoomControlProperties}\r\n\t */\r\n\tpublic _properties!: IZoomControlProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t *\r\n\t * @type {IZoomControlAdapters}\r\n\t */\r\n\tpublic _adapter!: IZoomControlAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t *\r\n\t * @type {IZoomControlEvents}\r\n\t */\r\n\tpublic _events!: IZoomControlEvents;\r\n\r\n\t/**\r\n\t * Zoom in button element.\r\n\t *\r\n\t * @type {Button}\r\n\t */\r\n\tpublic plusButton: Button;\r\n\r\n\t/**\r\n\t * Zoom out button element.\r\n\t *\r\n\t * @type {Button}\r\n\t */\r\n\tpublic minusButton: Button;\r\n\r\n\t/**\r\n\t * A zoom slider background element.\r\n\t *\r\n\t * @type {Container}\r\n\t */\r\n\tpublic slider: Container;\r\n\r\n\t/**\r\n\t * A zoom slider thumb element.\r\n\t * @type {Button}\r\n\t */\r\n\tpublic thumb: Button;\r\n\r\n\t/**\r\n\t * A target map.\r\n\t *\r\n\t * @type {MutableValueDisposer}\r\n\t */\r\n\tprotected _chart: MutableValueDisposer = new MutableValueDisposer();\r\n\r\n\t/**\r\n\t * A type to use for the background element for zoom control.\r\n\t *\r\n\t * @type {RoundedRectangle}\r\n\t */\r\n\tpublic _background: RoundedRectangle;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"ZoomControl\";\r\n\r\n\t\tthis.align = \"right\";\r\n\t\tthis.valign = \"bottom\";\r\n\r\n\t\tthis.layout = \"vertical\";\r\n\t\tthis.padding(5, 5, 5, 5);\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\tlet plusButton: Button = this.createChild(Button);\r\n\t\tplusButton.shouldClone = false;\r\n\t\tplusButton.label.text = \"+\";\r\n\t\tplusButton.width = percent(100);\r\n\t\tplusButton.padding(5, 5, 5, 5);\r\n\t\t//plusButton.fontFamily = \"Verdana\";\r\n\t\tthis.plusButton = plusButton;\r\n\r\n\t\tlet slider: Container = this.createChild(Container);\r\n\t\tslider.shouldClone = false;\r\n\t\tslider.width = percent(100);\r\n\t\tslider.background.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n\t\tslider.background.fillOpacity = 0.05;\r\n\t\tslider.background.events.on(\"hit\", this.handleBackgroundClick, this, false);\r\n\t\tslider.events.on(\"sizechanged\", this.updateThumbSize, this, false);\r\n\t\tthis.slider = slider;\r\n\r\n\t\tlet thumb: Button = slider.createChild(Button);\r\n\t\tthumb.shouldClone = false;\r\n\t\tthumb.padding(0, 0, 0, 0);\r\n\t\tthumb.draggable = true;\r\n\t\tthumb.events.on(\"drag\", this.handleThumbDrag, this, false);\r\n\t\tthis.thumb = thumb;\r\n\r\n\t\tlet minusButton: Button = this.createChild(Button);\r\n\t\tminusButton.shouldClone = false;\r\n\t\tminusButton.label.text = \"-\";\r\n\t\tminusButton.padding(5, 5, 5, 5);\r\n\t\t//minusButton.fontFamily = \"Verdana\";\r\n\t\tthis.minusButton = minusButton;\r\n\r\n\t\t// Set roles\r\n\t\tthis.thumb.role = \"slider\";\r\n\t\tthis.thumb.readerLive = \"polite\";\r\n\r\n\t\t// Set reader text\r\n\t\tthis.thumb.readerTitle = this.language.translate(\"Use arrow keys to zoom in and out\");\r\n\t\tthis.minusButton.readerTitle = this.language.translate(\"Press ENTER to zoom in\");\r\n\t\tthis.plusButton.readerTitle = this.language.translate(\"Press ENTER to zoom out\");\r\n\r\n\t\tthis.applyTheme();\r\n\r\n\t\tthis.events.on(\"propertychanged\", (event) => {\r\n\t\t\tif (event.property == \"layout\") {\r\n\t\t\t\tthis.fixLayout();\r\n\t\t\t}\r\n\t\t}, undefined, false);\r\n\r\n\t\tthis._disposers.push(this._chart);\r\n\r\n\t\tthis.fixLayout();\r\n\t}\r\n\r\n\tprotected fixLayout() {\r\n\t\tif (this.layout == \"vertical\") {\r\n\t\t\tthis.width = 40;\r\n\t\t\tthis.height = undefined;\r\n\t\t\tthis.minusButton.width = percent(100);\r\n\t\t\tthis.thumb.width = percent(100);\r\n\t\t\tthis.plusButton.width = percent(100);\r\n\t\t\tthis.slider.width = percent(100);\r\n\t\t\tthis.minusButton.marginTop = 1;\r\n\t\t\tthis.plusButton.marginBottom = 2;\r\n\t\t\tthis.slider.height = 0;\r\n\t\t\tthis.minusButton.toFront();\r\n\t\t\tthis.plusButton.toBack();\r\n\t\t\tthis.thumb.minX = 0;\r\n\t\t\tthis.thumb.maxX = 0;\r\n\t\t\tthis.thumb.minY = 0;\r\n\t\t}\r\n\t\telse if (this.layout == \"horizontal\") {\r\n\t\t\tthis.thumb.minX = 0;\r\n\t\t\tthis.thumb.minY = 0;\r\n\t\t\tthis.thumb.maxY = 0;\r\n\t\t\tthis.height = 40;\r\n\t\t\tthis.width = undefined;\r\n\t\t\tthis.minusButton.height = percent(100);\r\n\t\t\tthis.minusButton.width = 30;\r\n\t\t\tthis.thumb.height = percent(100);\r\n\t\t\tthis.thumb.width = undefined;\r\n\t\t\tthis.plusButton.height = percent(100);\r\n\t\t\tthis.plusButton.width = 30;\r\n\t\t\tthis.slider.height = percent(100);\r\n\t\t\tthis.slider.width = 0;\r\n\t\t\tthis.minusButton.marginLeft = 2;\r\n\t\t\tthis.plusButton.marginRight = 2;\r\n\t\t\tthis.minusButton.toBack();\r\n\t\t\tthis.plusButton.toFront();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Handles zoom operation after clicking on the slider background.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param {AMEvent[\"hit\"]} event Event\r\n\t */\r\n\tpublic handleBackgroundClick(event: AMEvent[\"hit\"]): void {\r\n\t\tlet sprite: Sprite = event.target;\r\n\t\tlet y: number = event.spritePoint.y;\r\n\t\tlet chart: MapChart = this.chart;\r\n\r\n\t\tlet maxPower: number = Math.log(chart.maxZoomLevel) / Math.LN2;\r\n\t\tlet minPower: number = Math.log(chart.minZoomLevel) / Math.LN2;\r\n\r\n\t\tlet power: number = (sprite.pixelHeight - y) / sprite.pixelHeight * (minPower + (maxPower - minPower));\r\n\t\tlet zoomLevel: number = Math.pow(2, power);\r\n\t\tchart.zoomToGeoPoint(chart.zoomGeoPoint, zoomLevel);\r\n\t}\r\n\r\n\t/**\r\n\t * A main chart/map that this zoom control is for.\r\n\t *\r\n\t * @param {MapChart} chart Map/chart\r\n\t */\r\n\tpublic set chart(chart: MapChart) {\r\n\t\tthis._chart.set(chart, new MultiDisposer([\r\n\t\t\tchart.events.on(\"maxsizechanged\", this.updateThumbSize, this, false),\r\n\t\t\tchart.events.on(\"zoomlevelchanged\", this.updateThumb, this, false),\r\n\t\t\t\r\n\t\t\tthis.minusButton.events.on(\"hit\", () => { chart.zoomOut(chart.zoomGeoPoint) }, chart, false),\r\n\r\n\t\t\tgetInteraction().body.events.on(\"keyup\", (ev) => {\r\n\t\t\t\tif (this.topParent.hasFocused) {\r\n\t\t\t\t\tif (keyboard.isKey(ev.event, \"enter\")) {\r\n\t\t\t\t\t\tif (this.minusButton.isFocused) {\r\n\t\t\t\t\t\t\tchart.zoomOut()\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (this.plusButton.isFocused) {\r\n\t\t\t\t\t\t\tchart.zoomIn()\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (keyboard.isKey(ev.event, \"plus\")) {\r\n\t\t\t\t\t\tchart.zoomIn();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (keyboard.isKey(ev.event, \"minus\")) {\r\n\t\t\t\t\t\tchart.zoomOut();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, chart),\r\n\t\t\tthis.plusButton.events.on(\"hit\", () => { chart.zoomIn(chart.zoomGeoPoint) }, chart, false)\r\n\t\t]));\r\n\t}\r\n\r\n\t/**\r\n\t * @return {MapChart} Map/chart\r\n\t */\r\n\tpublic get chart(): MapChart {\r\n\t\treturn this._chart.get();\r\n\t}\r\n\r\n\t/**\r\n\t * Updates the slider's thumb size based on the available zoom space.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateThumbSize(): void {\r\n\t\tlet chart = this.chart;\r\n\t\tif (chart) {\r\n\t\t\tlet slider: Container = this.slider;\r\n\t\t\tlet thumb: Button = this.thumb;\r\n\t\t\tif (this.layout == \"vertical\") {\r\n\t\t\t\tthumb.minHeight = Math.min(this.slider.pixelHeight, 20);\r\n\r\n\t\t\t\tthumb.height = slider.pixelHeight / this.stepCount;\r\n\t\t\t\tthumb.maxY = slider.pixelHeight - thumb.pixelHeight;\r\n\r\n\t\t\t\tif (thumb.pixelHeight <= 1) {\r\n\t\t\t\t\tthumb.visible = false;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthumb.visible = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthumb.minWidth = Math.min(this.slider.pixelWidth, 20);\r\n\t\t\t\tthumb.width = slider.pixelWidth / this.stepCount;\r\n\t\t\t\tthumb.maxX = slider.pixelWidth - thumb.pixelWidth;\r\n\r\n\t\t\t\tif (thumb.pixelWidth <= 1) {\r\n\t\t\t\t\tthumb.visible = false;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthumb.visible = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates thumb according to current zoom position from map.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateThumb(): void {\r\n\t\tlet slider: Container = this.slider;\r\n\t\tlet chart: MapChart = this.chart;\r\n\t\tlet thumb: Button = this.thumb;\r\n\r\n\t\tif (!thumb.isDown) {\r\n\t\t\tlet step: number = (Math.log(chart.zoomLevel) - Math.log(this.chart.minZoomLevel)) / Math.LN2;\r\n\r\n\t\t\tif (this.layout == \"vertical\") {\r\n\t\t\t\tthumb.y = slider.pixelHeight - (slider.pixelHeight - thumb.pixelHeight) * step / this.stepCount - thumb.pixelHeight;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthumb.x = slider.pixelWidth * step / this.stepCount;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms the actual map when slider position changes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic handleThumbDrag(): void {\r\n\t\tlet slider: Container = this.slider;\r\n\t\tlet chart: MapChart = this.chart;\r\n\t\tlet thumb: Button = this.thumb;\r\n\t\tlet step: number;\r\n\r\n\t\tlet minStep = Math.log(this.chart.minZoomLevel) / Math.LN2;\r\n\r\n\t\tif (this.layout == \"vertical\") {\r\n\t\t\tstep = this.stepCount * (slider.pixelHeight - thumb.pixelY - thumb.pixelHeight) / (slider.pixelHeight - thumb.pixelHeight);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tstep = this.stepCount * thumb.pixelX / slider.pixelWidth;\r\n\t\t}\r\n\t\tstep = minStep + step;\r\n\r\n\t\tlet zoomLevel: number = Math.pow(2, step);\r\n\t\tchart.zoomToGeoPoint(undefined, zoomLevel, false, 0);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the step countfor the slider grid according to map's min and max\r\n\t * zoom level settings.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return {number} Step count\r\n\t */\r\n\tpublic get stepCount(): number {\r\n\t\treturn Math.log(this.chart.maxZoomLevel) / Math.LN2 - Math.log(this.chart.minZoomLevel) / Math.LN2;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a background element for slider control.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return {this} Background\r\n\t */\r\n\tpublic createBackground(): this[\"_background\"] {\r\n\t\treturn new RoundedRectangle();\r\n\t}\r\n\r\n}\r\n\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[\"ZoomControl\"] = ZoomControl;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/charts/map/ZoomControl.ts","/**\r\n * Axis Label module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisLabel, IAxisLabelProperties, IAxisLabelAdapters, IAxisLabelEvents } from \"./AxisLabel\";\r\nimport { SpriteEventDispatcher, AMEvent } from \"../../core/Sprite\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { percent, Percent } from \"../../core/utils/Percent\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisLabelCircular]].\r\n */\r\nexport interface IAxisLabelCircularProperties extends IAxisLabelProperties {\r\n\r\n\t/**\r\n\t * Rotation angle of the label in relation to circle line.\r\n\t *\r\n\t * @type {number}\r\n\t */\r\n\trelativeRotation?: number;\r\n\r\n\t/**\r\n\t * Distance of the label from circle line.\r\n\t *\r\n\t * @type {number}\r\n\t */\r\n\tradius?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[AxisLabelCircular]].\r\n */\r\nexport interface IAxisLabelCircularEvents extends IAxisLabelEvents { }\r\n\r\n/**\r\n * Defines adapters for [[AxisLabelCircular]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisLabelCircularAdapters extends IAxisLabelAdapters, IAxisLabelCircularProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Use to create labels on circular axis.\r\n *\r\n * @see {@link IAxisLabelCircularEvents} for a list of available events\r\n * @see {@link IAxisLabelCircularAdapters} for a list of available Adapters\r\n */\r\nexport class AxisLabelCircular extends AxisLabel {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t *\r\n\t * @type {IAxisLabelCircularProperties}\r\n\t */\r\n\tpublic _properties!: IAxisLabelCircularProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t *\r\n\t * @type {IAxisLabelCircularAdapters}\r\n\t */\r\n\tpublic _adapter!: IAxisLabelCircularAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t *\r\n\t * @type {IAxisLabelCircularEvents}\r\n\t */\r\n\tpublic _events!: IAxisLabelCircularEvents;\r\n\r\n\t/**\r\n\t * Related data item.\r\n\t *\r\n\t * @type {any}\r\n\t */\r\n\tpublic _dataItem: any;\r\n\r\n\t/**\r\n\t *\r\n\t * @type {number}\r\n\t * @ignore\r\n\t */\r\n\tpublic fdx: number = 0;\r\n\r\n\t/**\r\n\t *\r\n\t * @type {number}\r\n\t * @ignore\r\n\t */\r\n\tpublic fdy: number = 0;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"AxisLabelCircular\";\r\n\t\tthis.padding(0, 0, 0, 0);\r\n\t\tthis.location = 0.5;\r\n\t\tthis.radius = 0;\r\n\t\tthis.isMeasured = false;\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Relative rotation of the label.\r\n\t *\r\n\t * It is an angle to circle. In case 90, labels will be positioned like rays\r\n\t * of light, if 0 - positione along the circle.\r\n\t *\r\n\t * @param {number} value Rotation angle\r\n\t */\r\n\tpublic set relativeRotation(value: number) {\r\n\t\tthis.setPropertyValue(\"relativeRotation\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return {number} Rotation angle\r\n\t */\r\n\tpublic get relativeRotation(): number {\r\n\t\treturn this.getPropertyValue(\"relativeRotation\");\r\n\t}\r\n\r\n\t/**\r\n\t * Distance from axis circle to label in pixels or percent.\r\n\t *\r\n\t * @param {number} value Distance (px or percent)\r\n\t */\r\n\tpublic set radius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return {number} Distance (px)\r\n\t */\r\n\tpublic get radius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"radius\");\r\n\t}\r\n\r\n\t/**\r\n\t * returns label radius in pixels\r\n\t */\r\n\tpublic pixelRadius(axisRadius: number): number {\r\n\t\tlet sign: number = 1;\r\n\t\tif (this.inside) {\r\n\t\t\tsign = -1;\r\n\t\t}\r\n\r\n\t\treturn $utils.relativeToValue(this.radius, axisRadius) * sign;\r\n\t}\r\n\r\n\t/**\r\n\t * [fixPoint description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param {IPoint} point Label affixation point\r\n\t * @param {number} axisRadius Distance from point (px)\r\n\t * @return {IPoint} [description]\r\n\t */\r\n\tpublic fixPoint(point: IPoint, axisRadius: number, axisRadiusY?:number): IPoint {\r\n\t\tlet angle: number = $math.DEGREES * Math.atan2(point.y, point.x);\r\n\r\n\t\tif(!$type.isNumber(axisRadiusY)){\r\n\t\t\taxisRadiusY = axisRadius;\r\n\t\t}\r\n\r\n\t\tif (this.invalid) {\r\n\t\t\tthis.validate(); //@todo\" check if we need this\r\n\t\t}\r\n\r\n\t\tlet relativeRotation = this.relativeRotation;\r\n\t\t// we don't use valign for labels because then they would jump while animating. instead we modify dy depending on a y position\r\n\t\t// this math makes dy to be 1 at the top of the circle, 0.5 at the middle and 1 at the bottom\r\n\t\t// @todo with this math doesn't work well with inside = true\r\n\t\tthis.dy = -this._measuredHeight * (1 - (point.y + axisRadius) / (2 * axisRadius));\r\n\t\t// simmilar with dx\r\n\t\tthis.dx = -this._measuredWidth * (1 - (point.x + axisRadius) / (2 * axisRadius));\r\n\r\n\t\tlet labelRadius = this.pixelRadius(axisRadius);\r\n\r\n\t\tif ($type.isNumber(relativeRotation)) {\r\n\r\n\t\t\tlet pixelWidth = this.bbox.width;\r\n\t\t\tlet pixelHeight = this.bbox.height;\r\n\r\n\t\t\tif (angle > 90 || angle < -90) {\r\n\t\t\t\tif (relativeRotation == -90) {\r\n\t\t\t\t\trelativeRotation = 90;\r\n\t\t\t\t\tpixelWidth = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (relativeRotation == -90) {\r\n\t\t\t\t\tpixelHeight = - pixelHeight;\r\n\t\t\t\t}\r\n\t\t\t\tif (relativeRotation == 90) {\r\n\t\t\t\t\trelativeRotation = -90;\r\n\t\t\t\t\tpixelWidth = 0;\r\n\t\t\t\t\tpixelHeight = - pixelHeight;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.rotation = relativeRotation + angle + 90;\r\n\r\n\t\t\tlet dH = $math.sin(relativeRotation) / 2;\r\n\t\t\tlet dW = $math.cos(relativeRotation) / 2;\r\n\r\n\t\t\tlet rotation = this.rotation;\r\n\r\n\t\t\tthis.dx = pixelHeight * dH * $math.sin(rotation) - pixelWidth * dW * $math.cos(rotation);\r\n\t\t\tthis.dy = -pixelHeight * dH * $math.cos(rotation) - pixelWidth * dW * $math.sin(rotation);\r\n\r\n\t\t\tlet pixelPaddingBottom = this.pixelPaddingBottom;\r\n\t\t\tlet pixelPaddingTop = this.pixelPaddingTop;\r\n\t\t\tlet pixelPaddingLeft = this.pixelPaddingLeft;\r\n\t\t\tlet pixelPaddingRight = this.pixelPaddingRight;\r\n\r\n\t\t\tif (!this.inside) {\r\n\t\t\t\tlabelRadius += (pixelHeight + pixelPaddingBottom + pixelPaddingTop) * $math.cos(relativeRotation) + (pixelWidth + pixelPaddingLeft + pixelPaddingRight) * $math.sin(relativeRotation);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (angle > 90 || angle < -90) {\r\n\t\t\t\t\tlabelRadius -= (pixelPaddingBottom + pixelPaddingTop) * $math.cos(relativeRotation) + (pixelPaddingLeft + pixelPaddingRight) * $math.sin(relativeRotation);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tlabelRadius += (pixelPaddingBottom + this.bbox.height + pixelPaddingTop) * $math.cos(relativeRotation) + (pixelPaddingLeft + pixelPaddingRight + this.bbox.width) * $math.sin(relativeRotation);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.fdx = this.dx;\r\n\t\tthis.fdy = this.dy;\r\n\r\n\t\tpoint.x += $math.cos(angle) * labelRadius;\r\n\t\tpoint.y += $math.sin(angle) * labelRadius * axisRadiusY / axisRadius;\r\n\r\n\t\treturn point;\r\n\t}\r\n\r\n}\r\n\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[\"AxisLabelCircular\"] = AxisLabelCircular;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/charts/axes/AxisLabelCircular.ts","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisFill, IAxisFillProperties, IAxisFillAdapters, IAxisFillEvents } from \"./AxisFill\";\r\nimport { IDisposer, MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport { Axis } from \"./Axis\";\r\nimport { SpriteEventDispatcher, AMEvent } from \"../../core/Sprite\";\r\nimport { Percent, percent } from \"../../core/utils/Percent\";\r\nimport { AxisRendererCircular } from \"./AxisRendererCircular\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisFillCircular]].\r\n */\r\nexport interface IAxisFillCircularProperties extends IAxisFillProperties {\r\n\r\n\t/**\r\n\t * Inner radius. Relative ir absolute.\r\n\t *\r\n\t * @type {number | Percent}\r\n\t */\r\n\tinnerRadius?: number | Percent;\r\n\r\n\t/**\r\n\t * Outer radius. Relative or absolute.\r\n\t *\r\n\t * @type {number | Percent}\r\n\t */\r\n\tradius?: number | Percent;\r\n\r\n\t/**\r\n\t * Corner radius for the fill. In pixels.\r\n\t *\r\n\t * @type {number}\r\n\t */\r\n\tcornerRadius?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[AxisFillCircular]].\r\n */\r\nexport interface IAxisFillCircularEvents extends IAxisFillEvents { }\r\n\r\n/**\r\n * Defines adapters for [[AxisFillCircular]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisFillCircularAdapters extends IAxisFillAdapters, IAxisFillCircularProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Provides fill element functionality for circular Axes.\r\n *\r\n * @see {@link IAxisFillCircularEvents} for a list of available events\r\n * @see {@link IAxisFillCircularAdapters} for a list of available Adapters\r\n * @todo Needs description\r\n */\r\nexport class AxisFillCircular extends AxisFill {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t *\r\n\t * @type {IAxisFillCircularProperties}\r\n\t */\r\n\tpublic _properties!: IAxisFillCircularProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t *\r\n\t * @type {IAxisFillCircularAdapters}\r\n\t */\r\n\tpublic _adapter!: IAxisFillCircularAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t *\r\n\t * @type {IAxisFillCircularEvents}\r\n\t */\r\n\tpublic _events!: IAxisFillCircularEvents;\r\n\r\n\t/**\r\n\t * An SVG path, used to draw fill shape.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @type {string}\r\n\t */\r\n\tpublic fillPath: string;\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t *\r\n\t * @param {Axis} axis Axis\r\n\t */\r\n\tconstructor(axis: Axis) {\r\n\t\tsuper(axis);\r\n\r\n\t\tthis.className = \"AxisFillCircular\";\r\n\r\n\t\tthis.element = this.paper.add(\"path\");\r\n\r\n\t\tthis.radius = percent(100);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the fill element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\tsuper.draw();\r\n\t\tif (this.axis) {\r\n\t\t\tlet renderer: AxisRendererCircular = this.axis.renderer;\r\n\t\t\tthis.fillPath = renderer.getPositionRangePath(this.startPosition, this.endPosition, this.radius, $type.hasValue(this.innerRadius) ? this.innerRadius : renderer.innerRadius, this.cornerRadius);\r\n\t\t\tthis.path = this.fillPath;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Inner radius of the fill. Relative ([[Percent]]) or absolute (pixels).\r\n\t *\r\n\t * @param {number | Percent} value Inner radius\r\n\t */\r\n\tpublic set innerRadius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return {number} Inner radius\r\n\t */\r\n\tpublic get innerRadius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"innerRadius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Outer radius of the fill. Relative ([[Percent]]) or absolute (pixels).\r\n\t *\r\n\t * @param {number | Percent} value Outer radius\r\n\t */\r\n\tpublic set radius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return {number} Outer radius\r\n\t */\r\n\tpublic get radius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"radius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Corner radius for the fill. In pixels.\r\n\t *\r\n\t * @param {number} value Corner radius (px)\r\n\t */\r\n\tpublic set cornerRadius(value: number) {\r\n\t\tthis.setPropertyValue(\"cornerRadius\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return {number} Corner radius (px)\r\n\t */\r\n\tpublic get cornerRadius(): number {\r\n\t\treturn this.getPropertyValue(\"cornerRadius\");\r\n\t}\r\n\r\n}\r\n\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[\"AxisFillCircular\"] = AxisFillCircular;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/charts/axes/AxisFillCircular.ts","/**\r\n * Defines default Responsive rules\r\n * @hidden\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite, ISpriteProperties, ISpriteAdapters } from \"../Sprite\";\r\nimport { SpriteState } from \"../SpriteState\";\r\nimport { Container } from \"../Container\";\r\nimport { Optional } from \"../utils/Type\";\r\nimport { AxisRenderer } from \"../../charts/axes/AxisRenderer\";\r\nimport { AxisRendererX } from \"../../charts/axes/AxisRendererX\";\r\nimport { AxisRendererY } from \"../../charts/axes/AxisRendererY\";\r\nimport { AxisRendererCircular } from \"../../charts/axes/AxisRendererCircular\";\r\nimport { Chart } from \"../../charts/Chart\";\r\nimport { Legend } from \"../../charts/Legend\";\r\nimport { SmallMap } from \"../../charts/map/SmallMap\";\r\nimport { ZoomControl } from \"../../charts/map/ZoomControl\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * RULES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Default rules.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Do not create states for objects that do not have any overrides\r\n */\r\nexport default [\r\n\r\n\t/**\r\n\t * --------------------------------------------------------------------------\r\n\t * Microcharts and sparklines\r\n\t * W<=100 || H<=100\r\n\t * @todo\r\n\t */\r\n\r\n\t{\r\n\r\n\t\trelevant: (container: Container): boolean => {\r\n\r\n\t\t\tif ((container.pixelWidth <= 100) || (container.pixelHeight <= 100)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t},\r\n\r\n\t\tstate: (object: Sprite, stateId: string): Optional> => {\r\n\r\n\t\t\t// Put vertical axis labels inside\r\n\t\t\tif (object instanceof AxisRenderer) {\r\n\t\t\t\tlet state = object.states.create(stateId);\r\n\t\t\t\tstate.properties.minLabelPosition = 1;\r\n\t\t\t\tstate.properties.maxLabelPosition = 0;\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t},\r\n\r\n\r\n\t/**\r\n\t * --------------------------------------------------------------------------\r\n\t * Narrow\r\n\t * W<=200\r\n\t */\r\n\r\n\t{\r\n\r\n\t\trelevant: (container: Container): boolean => {\r\n\r\n\t\t\tif ((container.pixelWidth <= 200)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t},\r\n\r\n\t\tstate: (object: Sprite, stateId: string): Optional> => {\r\n\r\n\t\t\t// Put vertical axis labels inside\r\n\t\t\tif (object instanceof AxisRendererY) {\r\n\t\t\t\tlet state = object.states.create(stateId);\r\n\t\t\t\tstate.properties.inside = true;\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\r\n\t\t\tif (object instanceof AxisRendererCircular) {\r\n\t\t\t\tlet state = object.states.create(stateId);\r\n\t\t\t\tstate.properties.inside = true;\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\r\n\t\t\tif (object instanceof SmallMap) {\r\n\t\t\t\tlet state = object.states.create(stateId);\r\n\t\t\t\tstate.properties.disabled = true;\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\r\n\t\t\t/*if (object instanceof Container && object.parent instanceof ZoomControl && !(object instanceof Button)) {\r\n\t\t\t\tlet state = object.states.create(stateId);\r\n\t\t\t\tstate.properties.height = 0;\r\n\t\t\t\treturn state;\r\n\t\t\t}*/\r\n\r\n\t\t\tif (object instanceof ZoomControl) {\r\n\t\t\t\tlet state = object.states.create(stateId);\r\n\t\t\t\tstate.properties.layout = \"vertical\";\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\r\n\t\t\tif (object instanceof Chart) {\r\n\t\t\t\tlet state = object.states.create(stateId);\r\n\t\t\t\tstate.properties.marginLeft = 0;\r\n\t\t\t\tstate.properties.marginRight = 0;\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\r\n\t\t\tif (object instanceof Legend && (object.position == \"left\" || object.position == \"right\")) {\r\n\t\t\t\tlet state = object.states.create(stateId);\r\n\t\t\t\tstate.properties.position = \"bottom\";\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t},\r\n\r\n\t/**\r\n\t * --------------------------------------------------------------------------\r\n\t * Short\r\n\t * H<=200\r\n\t */\r\n\r\n\t{\r\n\r\n\t\trelevant: (container: Container): boolean => {\r\n\r\n\t\t\tif ((container.pixelHeight <= 200)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t},\r\n\r\n\t\tstate: (object: Sprite, stateId: string): Optional> => {\r\n\r\n\t\t\t// Put vertical axis labels inside\r\n\t\t\tif (object instanceof AxisRendererX) {\r\n\t\t\t\tlet state = object.states.create(stateId);\r\n\t\t\t\tstate.properties.inside = true;\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\r\n\t\t\tif (object instanceof AxisRendererCircular) {\r\n\t\t\t\tlet state = object.states.create(stateId);\r\n\t\t\t\tstate.properties.inside = true;\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\r\n\t\t\tif (object instanceof SmallMap) {\r\n\t\t\t\tlet state = object.states.create(stateId);\r\n\t\t\t\tstate.properties.disabled = true;\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\r\n\t\t\t/*if (object instanceof Container && object.parent instanceof ZoomControl && !(object instanceof Button)) {\r\n\t\t\t\tlet state = object.states.create(stateId);\r\n\t\t\t\tstate.properties.width = 100;\r\n\t\t\t\treturn state;\r\n\t\t\t}*/\r\n\r\n\t\t\tif (object instanceof ZoomControl) {\r\n\t\t\t\tlet state = object.states.create(stateId);\r\n\t\t\t\tstate.properties.layout = \"horizontal\";\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\r\n\t\t\tif (object instanceof Chart) {\r\n\t\t\t\tlet state = object.states.create(stateId);\r\n\t\t\t\tstate.properties.marginTop = 0;\r\n\t\t\t\tstate.properties.marginBottom = 0;\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\r\n\t\t\tif (object instanceof Legend && (object.position == \"bottom\" || object.position == \"top\")) {\r\n\t\t\t\tlet state = object.states.create(stateId);\r\n\t\t\t\tstate.properties.position = \"right\";\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t},\r\n\r\n\r\n\t/**\r\n\t * --------------------------------------------------------------------------\r\n\t * Super-small\r\n\t * W<=200 && H<=200\r\n\t */\r\n\r\n\t{\r\n\r\n\t\trelevant: (container: Container): boolean => {\r\n\r\n\t\t\tif ((container.pixelWidth <= 200) && (container.pixelHeight <= 200)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t},\r\n\r\n\t\tstate: (object: Sprite, stateId: string): Optional> => {\r\n\r\n\t\t\t// Hide legend\r\n\t\t\tif (object instanceof Legend) {\r\n\t\t\t\tlet state = object.states.create(stateId);\r\n\t\t\t\tstate.properties.disabled = true;\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\r\n\t\t\tif (object instanceof ZoomControl) {\r\n\t\t\t\tlet state = object.states.create(stateId);\r\n\t\t\t\tstate.properties.disabled = true;\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n];\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/core/responsive/ResponsiveDefaults.ts","/**\r\n * A module for the mini-map control.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../../core/Container\";\r\nimport { Sprite, ISpriteEvents, SpriteEventDispatcher, AMEvent } from \"../../core/Sprite\";\r\nimport { Rectangle } from \"../../core/elements/Rectangle\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { IGeoPoint } from \"../../core/defs/IGeoPoint\";\r\nimport { MapChart } from \"../types/MapChart\";\r\nimport { MapSeries } from \"./MapSeries\";\r\nimport { List, IListEvents } from \"../../core/utils/List\";\r\nimport { MutableValueDisposer, MultiDisposer } from \"../../core/utils/Disposer\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { color } from \"../../core/utils/Color\";\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/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[SmallMap]].\r\n */\r\nexport interface ISmallMapProperties extends IContainerProperties { }\r\n\r\n/**\r\n * Defines events for [[SmallMap]].\r\n */\r\nexport interface ISmallMapEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines adapters for [[SmallMap]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ISmallMapAdapters extends IContainerAdapters, ISmallMapProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a \"bird's eye\" view of the whole map.\r\n *\r\n * This control creates a mini-map with the whole of the map, highlighting\r\n * the area which is in the current viewport of the map map.\r\n *\r\n * @see {@link ISmallMapEvents} for a list of available events\r\n * @see {@link ISmallMapAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class SmallMap extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t *\r\n\t * @type {SmallMaPproperties}\r\n\t */\r\n\tpublic _properties!: ISmallMapProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t *\r\n\t * @type {ISmallMapAdapters}\r\n\t */\r\n\tpublic _adapter!: ISmallMapAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t *\r\n\t * @type {ISmallMapEvents}\r\n\t */\r\n\tpublic _events!: ISmallMapEvents;\r\n\r\n\t/**\r\n\t * A target map.\r\n\t *\r\n\t * @type {MutableValueDisposer}\r\n\t */\r\n\tprotected _chart: MutableValueDisposer = new MutableValueDisposer();\r\n\r\n\t/**\r\n\t * A container that holds the visual elements for the mini-map.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @type {Container}\r\n\t */\r\n\tpublic seriesContainer: Container;\r\n\r\n\t/**\r\n\t * The rectangle element which highlights current viewport.\r\n\t *\r\n\t * @type {Rectangle}\r\n\t */\r\n\tpublic rectangle: Rectangle;\r\n\r\n\t/**\r\n\t * A list of map series used to draw the mini-map.\r\n\t *\r\n\t * @type {List}\r\n\t */\r\n\tprotected _series: List;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"SmallMap\";\r\n\r\n\t\t// Set defaults\r\n\t\tthis.align = \"left\";\r\n\t\tthis.valign = \"bottom\";\r\n\t\tthis.percentHeight = 20;\r\n\t\tthis.percentWidth = 20;\r\n\t\tthis.margin(5, 5, 5, 5);\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\t// Set background defailts\r\n\t\tthis.background.fillOpacity = 0.9;\r\n\t\tthis.background.fill = interfaceColors.getFor(\"background\");\r\n\r\n\t\t// Set up events\r\n\t\tthis.events.on(\"hit\", this.moveToPosition, this, false);\r\n\t\tthis.events.on(\"maxsizechanged\", this.updateMapSize, this, false);\r\n\r\n\t\t// Create a container\r\n\t\tthis.seriesContainer = this.createChild(Container);\r\n\t\tthis.seriesContainer.shouldClone = false;\r\n\r\n\t\t// Create an outline rectangle\r\n\t\tlet rectangle: Rectangle = this.createChild(Rectangle);\r\n\t\trectangle.shouldClone = false;\r\n\t\trectangle.stroke = interfaceColors.getFor(\"alternativeBackground\");\r\n\t\trectangle.strokeWidth = 1;\r\n\t\trectangle.strokeOpacity = 0.5;\r\n\t\trectangle.fill = color(); //\"none\";\r\n\t\trectangle.verticalCenter = \"middle\";\r\n\t\trectangle.horizontalCenter = \"middle\";\r\n\t\trectangle.isMeasured = false;\r\n\t\tthis.rectangle = rectangle;\r\n\r\n\t\tthis._disposers.push(this._chart);\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * A list of map series used to draw the mini-map.\r\n\t *\r\n\t * @readonly\r\n\t * @return {List} Series\r\n\t */\r\n\tpublic get series(): List {\r\n\t\tif (!this._series) {\r\n\t\t\tthis._series = new List();\r\n\t\t\tthis._series.events.on(\"inserted\", this.handleSeriesAdded, this, false);\r\n\t\t\tthis._series.events.on(\"removed\", this.handleSeriesRemoved, this, false);\r\n\t\t}\r\n\t\treturn this._series;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Decorates a new series when they are pushed into a `series` list.\r\n\t *\r\n\t * @param {IListEvents[\"inserted\"]} event Event\r\n\t */\r\n\tprotected handleSeriesAdded(event: IListEvents[\"inserted\"]) {\r\n\t\tlet series: MapSeries = event.newValue;\r\n\t\tif (this.chart.series.contains(series)) {\r\n\t\t\tlet newSeries = series.clone();\r\n\t\t\tthis._series.removeValue(series);\r\n\t\t\tthis._series.push(newSeries);\r\n\t\t\tseries = newSeries;\r\n\r\n\t\t\tthis.chart.dataUsers.push(newSeries);\r\n\t\t}\r\n\t\tseries.chart = this.chart;\r\n\t\tseries.parent = this.seriesContainer;\r\n\t\tseries.interactionsEnabled = false;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Cleans up after series are removed from Scrollbar.\r\n\t *\r\n\t * @param {IListEvents[\"removed\"]} event Event\r\n\t */\r\n\tprotected handleSeriesRemoved(event: IListEvents[\"removed\"]) {\r\n\t\t//let sourceSeries: MapSeries = event.oldValue;\r\n\t\tthis.invalidate();\r\n\t}\r\n\r\n\t/**\r\n\t * Moves main map pan position after click on the small map.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param {AMEvent[\"hit\"]} event Event\r\n\t */\r\n\tpublic moveToPosition(event: AMEvent[\"hit\"]) {\r\n\t\tlet rectPoint: IPoint = $utils.spritePointToSprite(event.spritePoint, this, this.seriesContainer);\r\n\t\tlet geoPoint: IGeoPoint = this.chart.seriesPointToGeo(rectPoint);\r\n\t\tthis.chart.zoomToGeoPoint(geoPoint, this.chart.zoomLevel, true);\r\n\t}\r\n\r\n\t/**\r\n\t * A chart/map that this control is meant for.\r\n\t *\r\n\t * @param {MapChart} chart Chart/map\r\n\t */\r\n\tpublic set chart(chart: MapChart) {\r\n\t\tif (this.chart != chart) {\r\n\t\t\tthis._chart.set(chart, new MultiDisposer([\r\n\t\t\t\t//chart.events.on(\"zoomlevelchanged\", this.updateRectangle, this, false),\r\n\t\t\t\tchart.events.on(\"mappositionchanged\", this.updateRectangle, this, false),\r\n\t\t\t\tchart.events.on(\"scaleratiochanged\", this.updateMapSize, this, false)\r\n\t\t\t]));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return {MapChart} Chart/map\r\n\t */\r\n\tpublic get chart(): MapChart {\r\n\t\treturn this._chart.get();\r\n\t}\r\n\r\n\t/**\r\n\t * Updates the viewport recangle as per current map zoom/pan position.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateRectangle(): void {\r\n\t\tlet chart: MapChart = this.chart;\r\n\t\tlet zoomLevel: number = chart.zoomLevel;\r\n\t\tlet rectangle: Rectangle = this.rectangle;\r\n\r\n\t\trectangle.width = this.pixelWidth / zoomLevel;\r\n\t\trectangle.height = this.pixelHeight / zoomLevel;\r\n\r\n\t\tlet scale: number = Math.min(this.percentWidth, this.percentHeight) / 100;\r\n\r\n\t\tlet seriesContainer: Container = chart.seriesContainer;\r\n\r\n\t\trectangle.x = Math.ceil((zoomLevel * seriesContainer.pixelWidth / 2 - seriesContainer.pixelX) * scale / zoomLevel)// + rectangle.pixelWidth / 2);\r\n\t\trectangle.y = Math.ceil((zoomLevel * seriesContainer.pixelHeight / 2 - seriesContainer.pixelY) * scale / zoomLevel)// + rectangle.pixelHeight / 2);\r\n\r\n\t\trectangle.validate();\r\n\t}\r\n\r\n\t/**\r\n\t * Update map size so that internal elements can redraw themselves after\r\n\t * the size of the small map changes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateMapSize(): void {\r\n\t\tif (this.chart) {\r\n\t\t\tthis.seriesContainer.scale = this.chart.scaleRatio * Math.min(this.percentWidth, this.percentHeight) / 100;\r\n\t\t\tthis.updateRectangle();\r\n\t\t\tthis.afterDraw();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Update elements after drawing the small map.\r\n\t */\r\n\tprotected afterDraw(): void {\r\n\t\tsuper.afterDraw();\r\n\t\tthis.seriesContainer.moveTo({ x: this.pixelWidth / 2, y: this.pixelHeight / 2 });\r\n\t\tthis.rectangle.maskRectangle = { x: -1, y: -1, width: Math.ceil(this.pixelWidth + 2), height: Math.ceil(this.pixelHeight + 2) };\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param {object} config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Set up series\r\n\t\t\tif ($type.hasValue(config.series) && $type.isArray(config.series)) {\r\n\t\t\t\tfor (let i = 0, len = config.series.length; i < len; i++) {\r\n\t\t\t\t\tlet series = config.series[i];\r\n\t\t\t\t\tif ($type.hasValue(series) && $type.isString(series) && this.map.hasKey(series)) {\r\n\t\t\t\t\t\tconfig.series[i] = this.map.getKey(series);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\r\n\t}\r\n\r\n}\r\n\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[\"SmallMap\"] = SmallMap;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/charts/map/SmallMap.ts","/**\r\n * A module defining functionality for circular axis grid elements.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { SpriteEventDispatcher, AMEvent } from \"../../core/Sprite\";\r\nimport { Grid, IGridProperties, IGridAdapters, IGridEvents } from \"./Grid\";\r\nimport { Axis, AxisItemLocation } from \"./Axis\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Percent } from \"../../core/utils/Percent\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[GridCircular]].\r\n */\r\nexport interface IGridCircularProperties extends IGridProperties {\r\n\r\n\t/**\r\n\t * Inner radius of the circular grid. (absolute or relative)\r\n\t *\r\n\t * @type {number | Percent}\r\n\t */\r\n\tinnerRadius: number | Percent;\r\n\r\n\t/**\r\n\t * Outer radius of the circular grid. (absolute or relative)\r\n\t *\r\n\t * @type {number | Percent}\r\n\t */\r\n\tradius: number | Percent;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[GridCircular]].\r\n */\r\nexport interface IGridCircularEvents extends IGridEvents { }\r\n\r\n/**\r\n * Defines adapters for [[GridCircular]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IGridCircularAdapters extends IGridAdapters, IGridCircularProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a circular grid element for circular-type axis.\r\n *\r\n * @see {@link IGridCircularEvents} for a list of available events\r\n * @see {@link IGridCircularAdapters} for a list of available Adapters\r\n * @todo Review: container is better, as we'll be able to attach something to the GridCircular, also with 3d charts we might need some additional elements\r\n */\r\nexport class GridCircular extends Grid {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t *\r\n\t * @type {IGridCircularProperties}\r\n\t */\r\n\tpublic _properties!: IGridCircularProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t *\r\n\t * @type {IGridCircularAdapters}\r\n\t */\r\n\tpublic _adapter!: IGridCircularAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t *\r\n\t * @type {IGridCircularEvents}\r\n\t */\r\n\tpublic _events!: IGridCircularEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"GridCircular\";\r\n\t\tthis.pixelPerfect = false;\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Inner radius of the circular grid. (absolute or relative)\r\n\t *\r\n\t * @param {number | Percent} value Inner radius\r\n\t */\r\n\tpublic set innerRadius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return {number} Inner radius\r\n\t */\r\n\tpublic get innerRadius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"innerRadius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Outer radius of the circular grid. (absolute or relative)\r\n\t *\r\n\t * @param {number | Percent} value Outer radius\r\n\t */\r\n\tpublic set radius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return {number} Outer radius\r\n\t */\r\n\tpublic get radius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"radius\");\r\n\t}\r\n\r\n}\r\n\r\n\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[\"GridCircular\"] = GridCircular;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/charts/axes/GridCircular.ts"],"sourceRoot":""}