{"version":3,"sources":["webpack:///./node_modules/@amcharts/amcharts5/.internal/core/render/RadialText.js","webpack:///./node_modules/@amcharts/amcharts5/.internal/core/render/RadialLabel.js","webpack:///./node_modules/@amcharts/amcharts5/.internal/charts/percent/PercentSeries.js","webpack:///./node_modules/d3-shape/src/math.js","webpack:///./node_modules/d3-shape/src/arc.js","webpack:///./node_modules/@amcharts/amcharts5/.internal/core/render/Slice.js","webpack:///./node_modules/@amcharts/amcharts5/.internal/charts/pie/PieSeries.js","webpack:///./node_modules/@amcharts/amcharts5/.internal/charts/percent/PercentDefaultTheme.js","webpack:///./node_modules/@amcharts/amcharts5/.internal/charts/percent/PercentChart.js","webpack:///./node_modules/@amcharts/amcharts5/.internal/charts/pie/PieChart.js"],"names":["Text","super","arguments","Object","defineProperty","this","enumerable","configurable","writable","value","_root","_renderer","makeRadialText","textStyle","_afterNew","_beforeChanged","_display","clear","isDirty","textType","get","markDirtyBounds","radius","startAngle","inside","orientation","kerning","classNames","concat","className","Label","_textKeys","push","_text","children","new","radiusPrivate","getPrivate","innerRadiusPrivate","baseRadius","_updateChildren","isPrivateDirty","labelAngle","set","sin","cos","angle","setAll","paddingTop","paddingBottom","paddingLeft","paddingRight","x","y","setRaw","_flipped","_dirty","rotation","markDirtyPosition","dx","dy","bounds","localBounds","w","right","left","h","bottom","top","centerX","Percent","_updatePosition","Series","Container","position","isMeasured","_makeSlices","_makeLabels","_makeTicks","dataItem","slice","slicesContainer","slices","make","on","updateLegendMarker","_setDataItem","label","labelsContainer","labels","tick","ticksContainer","ticks","fields","colors","reset","_prepareChildren","_lLabels","_rLabels","_hLabels","_valuesDirty","sum","absSum","valueHigh","valueLow","Infinity","count","_dataItems","valueWorking","Math","abs","percentTotal","setPrivateRaw","duration","_super","create","show","promises","call","_sequencedShowHide","Promise","all","hide","text","markDirtyText","updateLegendValue","_arrange","_arrangeDown","_arrangeUp","_arrangeLeft","_arrangeRight","dataItems","_updateTick","_afterChanged","processDataItem","next","showDataItem","easing","animation","animate","key","to","waitForStop","states","applyAnimate","hideDataItem","hiddenState","hideTooltip","disposeDataItem","removeValue","dispose","isHidden","hover","unhover","legendDataItem","markerRectangle","setting","_getNextDown","sort","a","b","l","adjustedLocalBounds","labelTop","maxHeight","_getNextUp","labelBottom","labelLeft","maxWidth","labelRight","_updateSize","markDirty","_dataItem","_dispose","chart","series","atan2","max","min","sqrt","epsilon","pi","PI","halfPi","tau","acos","asin","arcInnerRadius","d","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","intersect","x0","y0","x1","y1","x2","y2","x3","y3","x10","y10","x32","y32","t","cornerTangents","r1","rc","cw","x01","y01","lo","ox","oy","x11","y11","x00","y00","d2","r","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","cornerRadius","constant","padRadius","context","path","arc","buffer","r0","apply","a0","a1","da","moveTo","t0","t1","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","ax","ay","bx","by","kc","lc","lineTo","closePath","centroid","_","length","Graphics","tooltipX","tooltipY","dRadius","dInnerRadius","ix","iy","_clear","_changed","generator","_generator","middleAngle","shiftRadius","List","Template","_new","themeTags","template","RadialLabel","Tick","makeSlice","events","makeLabel","makeTick","_maxRadius","labelsTemplate","currentAngle","currentArc","color","_setDefault","setPrivate","labelRadius","isHiding","location","pl","pr","points","bullet","sprite","locationX","locationY","Theme","setupDefaultRules","ic","interfaceColors","rule","bind","legendLabelText","legendValueText","ColorSet","width","height","alignLabels","opacity","toggleKey","tooltipText","strokeWidth","strokeOpacity","role","lineJoin","scale","populateText","startLocation","endLocation","sequencedInterpolation","interactive","expandDistance","centerY","fillOpacity","valueIs","SerialChart","_defaultThemes","chartContainer","seriesContainer","bulletsContainer","_processSeries","moveValue","innerWidth","innerHeight","wr","hr","innerBounds","mr","prevRadius","each","_markDirtyKey","index","indexOf","seriesRadius","seriesInnerRadius"],"mappings":"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","file":"js/chunk-02bceeb0.4cf6eece.js","sourcesContent":["import { Text } from \"./Text\";\r\nimport * as $math from \"../util/Math\";\r\n/**\r\n * @ignore\r\n */\r\nexport class RadialText extends Text {\r\n constructor() {\r\n super(...arguments);\r\n Object.defineProperty(this, \"_display\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: this._root._renderer.makeRadialText(\"\", this.textStyle)\r\n });\r\n }\r\n _afterNew() {\r\n super._afterNew();\r\n }\r\n _beforeChanged() {\r\n super._beforeChanged();\r\n this._display.clear();\r\n if (this.isDirty(\"textType\")) {\r\n this._display.textType = this.get(\"textType\");\r\n this.markDirtyBounds();\r\n }\r\n if (this.isDirty(\"radius\")) {\r\n this._display.radius = this.get(\"radius\");\r\n this.markDirtyBounds();\r\n }\r\n if (this.isDirty(\"startAngle\")) {\r\n this._display.startAngle = (this.get(\"startAngle\", 0) + 90) * $math.RADIANS;\r\n this.markDirtyBounds();\r\n }\r\n if (this.isDirty(\"inside\")) {\r\n this._display.inside = this.get(\"inside\");\r\n this.markDirtyBounds();\r\n }\r\n if (this.isDirty(\"orientation\")) {\r\n this._display.orientation = this.get(\"orientation\");\r\n this.markDirtyBounds();\r\n }\r\n if (this.isDirty(\"kerning\")) {\r\n this._display.kerning = this.get(\"kerning\");\r\n this.markDirtyBounds();\r\n }\r\n }\r\n}\r\nObject.defineProperty(RadialText, \"className\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: \"RadialText\"\r\n});\r\nObject.defineProperty(RadialText, \"classNames\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: Text.classNames.concat([RadialText.className])\r\n});\r\n//# sourceMappingURL=RadialText.js.map","// import * as $object from \"../util/Object\";\r\nimport { p50, Percent } from \"../util/Percent\";\r\nimport { Label } from \"./Label\";\r\nimport { RadialText } from \"./RadialText\";\r\nimport * as $math from \"../util/Math\";\r\nimport * as $utils from \"../util/Utils\";\r\nexport class RadialLabel extends Label {\r\n constructor() {\r\n super(...arguments);\r\n Object.defineProperty(this, \"_flipped\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: false\r\n });\r\n }\r\n _afterNew() {\r\n this._textKeys.push(\"textType\", \"kerning\");\r\n super._afterNew();\r\n }\r\n _makeText() {\r\n this._text = this.children.push(RadialText.new(this._root, {}));\r\n }\r\n /**\r\n * Returns base radius in pixels.\r\n *\r\n * @return Base radius\r\n */\r\n baseRadius() {\r\n const radiusPrivate = this.getPrivate(\"radius\", 0);\r\n const innerRadiusPrivate = this.getPrivate(\"innerRadius\", 0);\r\n const baseRadius = this.get(\"baseRadius\", 0);\r\n return innerRadiusPrivate + $utils.relativeToValue(baseRadius, radiusPrivate - innerRadiusPrivate);\r\n }\r\n /**\r\n * Returns radius adjustment in pixels.\r\n *\r\n * @return Radius\r\n */\r\n radius() {\r\n const inside = this.get(\"inside\", false);\r\n return this.baseRadius() + this.get(\"radius\", 0) * (inside ? -1 : 1);\r\n }\r\n _updateChildren() {\r\n super._updateChildren();\r\n if (this.isDirty(\"baseRadius\") || this.isPrivateDirty(\"radius\") || this.isPrivateDirty(\"innerRadius\") || this.isDirty(\"labelAngle\") || this.isDirty(\"radius\") || this.isDirty(\"inside\") || this.isDirty(\"orientation\") || this.isDirty(\"textType\")) {\r\n const textType = this.get(\"textType\", \"adjusted\");\r\n const inside = this.get(\"inside\", false);\r\n const orientation = this.get(\"orientation\");\r\n let labelAngle = $math.normalizeAngle(this.get(\"labelAngle\", 0));\r\n this._text.set(\"startAngle\", this.get(\"labelAngle\", 0));\r\n this._text.set(\"inside\", inside);\r\n const sin = $math.sin(labelAngle);\r\n const cos = $math.cos(labelAngle);\r\n let baseRadius = this.baseRadius();\r\n let radius = this.radius();\r\n this._display.angle = 0;\r\n if (textType == \"circular\") {\r\n this.setAll({\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n paddingLeft: 0,\r\n paddingRight: 0\r\n });\r\n // Circular labels are handled and positioned differently\r\n this._text.set(\"orientation\", orientation);\r\n this._text.set(\"radius\", radius);\r\n }\r\n else {\r\n if (baseRadius == 0) {\r\n labelAngle = 0;\r\n radius = 0;\r\n }\r\n // Positioning of radial/regular labels are teh same\r\n let x = radius * cos;\r\n let y = radius * sin;\r\n if (textType == \"radial\") {\r\n this.setRaw(\"x\", x);\r\n this.setRaw(\"y\", y);\r\n if ((labelAngle < 90) || (labelAngle > 270) || orientation != \"auto\") {\r\n this._display.angle = labelAngle; // + 90;\r\n this._flipped = false;\r\n }\r\n else {\r\n this._display.angle = labelAngle + 180;\r\n this._flipped = true;\r\n }\r\n this._dirty.rotation = false;\r\n }\r\n else if (textType == \"adjusted\") {\r\n this.setRaw(\"centerX\", p50);\r\n this.setRaw(\"centerY\", p50);\r\n this.setRaw(\"x\", x);\r\n this.setRaw(\"y\", y);\r\n }\r\n else if (textType == \"regular\") {\r\n this.setRaw(\"x\", x);\r\n this.setRaw(\"y\", y);\r\n }\r\n }\r\n this.markDirtyPosition();\r\n this.markDirtyBounds();\r\n }\r\n }\r\n _updatePosition() {\r\n const textType = this.get(\"textType\", \"regular\");\r\n const inside = this.get(\"inside\", false);\r\n let dx = 0;\r\n let dy = 0;\r\n let labelAngle = this.get(\"labelAngle\", 0);\r\n let bounds = this.localBounds();\r\n let w = bounds.right - bounds.left;\r\n let h = bounds.bottom - bounds.top;\r\n if (textType == \"radial\") {\r\n if (this._flipped) {\r\n let centerX = this.get(\"centerX\");\r\n if (centerX instanceof Percent) {\r\n w = w * (1 - centerX.value * 2);\r\n }\r\n dx = w * $math.cos(labelAngle);\r\n dy = w * $math.sin(labelAngle);\r\n }\r\n }\r\n else if (!inside && textType == \"adjusted\") {\r\n dx = w / 2 * $math.cos(labelAngle);\r\n dy = h / 2 * $math.sin(labelAngle);\r\n }\r\n this.setRaw(\"dx\", dx);\r\n this.setRaw(\"dy\", dy);\r\n super._updatePosition();\r\n }\r\n /**\r\n * @ignore\r\n */\r\n get text() {\r\n return this._text;\r\n }\r\n}\r\nObject.defineProperty(RadialLabel, \"className\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: \"RadialLabel\"\r\n});\r\nObject.defineProperty(RadialLabel, \"classNames\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: Label.classNames.concat([RadialLabel.className])\r\n});\r\n//# sourceMappingURL=RadialLabel.js.map","import { __awaiter } from \"tslib\";\r\nimport { Series } from \"../../core/render/Series\";\r\nimport { Container } from \"../../core/render/Container\";\r\nimport { visualSettings } from \"../../core/render/Graphics\";\r\nimport * as $array from \"../../core/util/Array\";\r\nimport * as $type from \"../../core/util/Type\";\r\n/**\r\n * A base class for any percent chart series.\r\n */\r\nexport class PercentSeries extends Series {\r\n constructor() {\r\n super(...arguments);\r\n Object.defineProperty(this, \"slicesContainer\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: this.children.push(Container.new(this._root, { position: \"absolute\", isMeasured: false }))\r\n });\r\n Object.defineProperty(this, \"labelsContainer\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: this.children.push(Container.new(this._root, { position: \"absolute\", isMeasured: false }))\r\n });\r\n Object.defineProperty(this, \"ticksContainer\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: this.children.push(Container.new(this._root, { position: \"absolute\", isMeasured: false }))\r\n });\r\n Object.defineProperty(this, \"_lLabels\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: []\r\n });\r\n Object.defineProperty(this, \"_rLabels\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: []\r\n });\r\n Object.defineProperty(this, \"_hLabels\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: []\r\n });\r\n /**\r\n * A [[ListTemplate]] of all slices in series.\r\n *\r\n * `slices.template` can also be used to configure slices.\r\n */\r\n Object.defineProperty(this, \"slices\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: this._makeSlices()\r\n });\r\n /**\r\n * A [[ListTemplate]] of all slice labels in series.\r\n *\r\n * `labels.template` can also be used to configure slice labels.\r\n */\r\n Object.defineProperty(this, \"labels\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: this._makeLabels()\r\n });\r\n /**\r\n * A [[ListTemplate]] of all slice ticks in series.\r\n *\r\n * `ticks.template` can also be used to configure slice ticks.\r\n */\r\n Object.defineProperty(this, \"ticks\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: this._makeTicks()\r\n });\r\n }\r\n /**\r\n * @ignore\r\n */\r\n makeSlice(dataItem) {\r\n const slice = this.slicesContainer.children.push(this.slices.make());\r\n slice.on(\"fill\", () => {\r\n this.updateLegendMarker(dataItem);\r\n });\r\n slice.on(\"stroke\", () => {\r\n this.updateLegendMarker(dataItem);\r\n });\r\n slice._setDataItem(dataItem);\r\n dataItem.set(\"slice\", slice);\r\n this.slices.push(slice);\r\n return slice;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n makeLabel(dataItem) {\r\n const label = this.labelsContainer.children.push(this.labels.make());\r\n label._setDataItem(dataItem);\r\n dataItem.set(\"label\", label);\r\n this.labels.push(label);\r\n return label;\r\n }\r\n _shouldMakeBullet(dataItem) {\r\n if (dataItem.get(\"value\") != null) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n makeTick(dataItem) {\r\n const tick = this.ticksContainer.children.push(this.ticks.make());\r\n tick._setDataItem(dataItem);\r\n dataItem.set(\"tick\", tick);\r\n this.ticks.push(tick);\r\n return tick;\r\n }\r\n _afterNew() {\r\n this.fields.push(\"category\", \"fill\");\r\n super._afterNew();\r\n }\r\n _onDataClear() {\r\n const colors = this.get(\"colors\");\r\n if (colors) {\r\n colors.reset();\r\n }\r\n }\r\n _prepareChildren() {\r\n super._prepareChildren();\r\n this._lLabels = [];\r\n this._rLabels = [];\r\n this._hLabels = [];\r\n if (this._valuesDirty) {\r\n let sum = 0;\r\n let absSum = 0;\r\n let valueHigh = 0;\r\n let valueLow = Infinity;\r\n let count = 0;\r\n $array.each(this._dataItems, (dataItem) => {\r\n let valueWorking = dataItem.get(\"valueWorking\", 0);\r\n sum += valueWorking;\r\n absSum += Math.abs(valueWorking);\r\n });\r\n $array.each(this._dataItems, (dataItem) => {\r\n let value = dataItem.get(\"valueWorking\", 0);\r\n if (value > valueHigh) {\r\n valueHigh = value;\r\n }\r\n if (value < valueLow) {\r\n valueLow = value;\r\n }\r\n count++;\r\n let percentTotal = value / absSum;\r\n if (absSum == 0) {\r\n percentTotal = 0;\r\n }\r\n dataItem.setRaw(\"valuePercentTotal\", percentTotal * 100);\r\n });\r\n this.setPrivateRaw(\"valueLow\", valueLow);\r\n this.setPrivateRaw(\"valueHigh\", valueHigh);\r\n this.setPrivateRaw(\"valueSum\", sum);\r\n this.setPrivateRaw(\"valueAverage\", sum / count);\r\n this.setPrivateRaw(\"valueAbsoluteSum\", absSum);\r\n }\r\n }\r\n /**\r\n * Shows hidden series.\r\n *\r\n * @param duration Animation duration in milliseconds\r\n * @return Animation promise\r\n */\r\n show(duration) {\r\n const _super = Object.create(null, {\r\n show: { get: () => super.show }\r\n });\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let promises = [];\r\n promises.push(_super.show.call(this, duration));\r\n promises.push(this._sequencedShowHide(true, duration));\r\n yield Promise.all(promises);\r\n });\r\n }\r\n /**\r\n * Hide whole series.\r\n *\r\n * @param duration Animation duration in milliseconds\r\n * @return Animation promise\r\n */\r\n hide(duration) {\r\n const _super = Object.create(null, {\r\n hide: { get: () => super.hide }\r\n });\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let promises = [];\r\n promises.push(_super.hide.call(this, duration));\r\n promises.push(this._sequencedShowHide(false, duration));\r\n yield Promise.all(promises);\r\n });\r\n }\r\n /**\r\n * @ignore\r\n */\r\n _updateChildren() {\r\n super._updateChildren();\r\n if (this._valuesDirty) {\r\n $array.each(this._dataItems, (dataItem) => {\r\n dataItem.get(\"label\").text.markDirtyText();\r\n });\r\n }\r\n if (this.isDirty(\"legendLabelText\") || this.isDirty(\"legendValueText\")) {\r\n $array.each(this._dataItems, (dataItem) => {\r\n this.updateLegendValue(dataItem);\r\n });\r\n }\r\n this._arrange();\r\n }\r\n _arrange() {\r\n this._arrangeDown(this._lLabels);\r\n this._arrangeUp(this._lLabels);\r\n this._arrangeDown(this._rLabels);\r\n this._arrangeUp(this._rLabels);\r\n this._arrangeLeft(this._hLabels);\r\n this._arrangeRight(this._hLabels);\r\n $array.each(this.dataItems, (dataItem) => {\r\n this._updateTick(dataItem);\r\n });\r\n }\r\n _afterChanged() {\r\n super._afterChanged();\r\n this._arrange();\r\n }\r\n processDataItem(dataItem) {\r\n super.processDataItem(dataItem);\r\n if (dataItem.get(\"fill\") == null) {\r\n let colors = this.get(\"colors\");\r\n if (colors) {\r\n dataItem.setRaw(\"fill\", colors.next());\r\n }\r\n }\r\n }\r\n /**\r\n * Shows series's data item.\r\n *\r\n * @param dataItem Data item\r\n * @param duration Animation duration in milliseconds\r\n * @return Promise\r\n */\r\n showDataItem(dataItem, duration) {\r\n const _super = Object.create(null, {\r\n showDataItem: { get: () => super.showDataItem }\r\n });\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const promises = [_super.showDataItem.call(this, dataItem, duration)];\r\n if (!$type.isNumber(duration)) {\r\n duration = this.get(\"stateAnimationDuration\", 0);\r\n }\r\n const easing = this.get(\"stateAnimationEasing\");\r\n let value = dataItem.get(\"value\");\r\n const animation = dataItem.animate({ key: \"valueWorking\", to: value, duration: duration, easing: easing });\r\n if (animation) {\r\n promises.push(animation.waitForStop());\r\n }\r\n const tick = dataItem.get(\"tick\");\r\n if (tick) {\r\n promises.push(tick.show(duration));\r\n }\r\n const label = dataItem.get(\"label\");\r\n if (label) {\r\n promises.push(label.show(duration));\r\n }\r\n const slice = dataItem.get(\"slice\");\r\n if (slice) {\r\n promises.push(slice.show(duration));\r\n }\r\n if (slice.get(\"active\")) {\r\n slice.states.applyAnimate(\"active\");\r\n }\r\n yield Promise.all(promises);\r\n });\r\n }\r\n /**\r\n * Hides series's data item.\r\n *\r\n * @param dataItem Data item\r\n * @param duration Animation duration in milliseconds\r\n * @return Promise\r\n */\r\n hideDataItem(dataItem, duration) {\r\n const _super = Object.create(null, {\r\n hideDataItem: { get: () => super.hideDataItem }\r\n });\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const promises = [_super.hideDataItem.call(this, dataItem, duration)];\r\n const hiddenState = this.states.create(\"hidden\", {});\r\n if (!$type.isNumber(duration)) {\r\n duration = hiddenState.get(\"stateAnimationDuration\", this.get(\"stateAnimationDuration\", 0));\r\n }\r\n const easing = hiddenState.get(\"stateAnimationEasing\", this.get(\"stateAnimationEasing\"));\r\n const animation = dataItem.animate({ key: \"valueWorking\", to: 0, duration: duration, easing: easing });\r\n if (animation) {\r\n promises.push(animation.waitForStop());\r\n }\r\n const tick = dataItem.get(\"tick\");\r\n if (tick) {\r\n promises.push(tick.hide(duration));\r\n }\r\n const label = dataItem.get(\"label\");\r\n if (label) {\r\n promises.push(label.hide(duration));\r\n }\r\n const slice = dataItem.get(\"slice\");\r\n slice.hideTooltip();\r\n if (slice) {\r\n promises.push(slice.hide(duration));\r\n }\r\n yield Promise.all(promises);\r\n });\r\n }\r\n /**\r\n * @ignore\r\n */\r\n disposeDataItem(dataItem) {\r\n super.disposeDataItem(dataItem);\r\n let label = dataItem.get(\"label\");\r\n if (label) {\r\n this.labels.removeValue(label);\r\n label.dispose();\r\n }\r\n let tick = dataItem.get(\"tick\");\r\n if (tick) {\r\n this.ticks.removeValue(tick);\r\n tick.dispose();\r\n }\r\n let slice = dataItem.get(\"slice\");\r\n if (slice) {\r\n this.slices.removeValue(slice);\r\n slice.dispose();\r\n }\r\n }\r\n /**\r\n * Triggers hover on a series data item.\r\n *\r\n * @since 5.0.7\r\n * @param dataItem Target data item\r\n */\r\n hoverDataItem(dataItem) {\r\n const slice = dataItem.get(\"slice\");\r\n if (slice && !slice.isHidden()) {\r\n slice.hover();\r\n }\r\n }\r\n /**\r\n * Triggers un-hover on a series data item.\r\n *\r\n * @since 5.0.7\r\n * @param dataItem Target data item\r\n */\r\n unhoverDataItem(dataItem) {\r\n const slice = dataItem.get(\"slice\");\r\n if (slice) {\r\n slice.unhover();\r\n }\r\n }\r\n /**\r\n * @ignore\r\n */\r\n updateLegendMarker(dataItem) {\r\n if (dataItem) {\r\n const slice = dataItem.get(\"slice\");\r\n if (slice) {\r\n const legendDataItem = dataItem.get(\"legendDataItem\");\r\n if (legendDataItem) {\r\n const markerRectangle = legendDataItem.get(\"markerRectangle\");\r\n $array.each(visualSettings, (setting) => {\r\n if (slice.get(setting) != null) {\r\n markerRectangle.set(setting, slice.get(setting));\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n _arrangeDown(labels) {\r\n if (labels) {\r\n let next = this._getNextDown();\r\n labels.sort((a, b) => {\r\n if (a.y > b.y) {\r\n return 1;\r\n }\r\n else if (a.y < b.y) {\r\n return -1;\r\n }\r\n else {\r\n return 0;\r\n }\r\n });\r\n $array.each(labels, (l) => {\r\n const bounds = l.label.adjustedLocalBounds();\r\n let labelTop = bounds.top;\r\n if (l.y + labelTop < next) {\r\n l.y = next - labelTop;\r\n }\r\n l.label.set(\"y\", l.y);\r\n next = l.y + bounds.bottom;\r\n });\r\n }\r\n }\r\n _getNextUp() {\r\n return this.labelsContainer.maxHeight();\r\n }\r\n _getNextDown() {\r\n return 0;\r\n }\r\n _arrangeUp(labels) {\r\n if (labels) {\r\n let next = this._getNextUp();\r\n labels.sort((a, b) => {\r\n if (a.y < b.y) {\r\n return 1;\r\n }\r\n else if (a.y > b.y) {\r\n return -1;\r\n }\r\n else {\r\n return 0;\r\n }\r\n });\r\n $array.each(labels, (l) => {\r\n const bounds = l.label.adjustedLocalBounds();\r\n let labelBottom = bounds.bottom;\r\n if (l.y + labelBottom > next) {\r\n l.y = next - labelBottom;\r\n }\r\n l.label.set(\"y\", l.y);\r\n next = l.y + bounds.top;\r\n });\r\n }\r\n }\r\n _arrangeRight(labels) {\r\n if (labels) {\r\n let next = 0;\r\n labels.sort((a, b) => {\r\n if (a.y > b.y) {\r\n return 1;\r\n }\r\n else if (a.y < b.y) {\r\n return -1;\r\n }\r\n else {\r\n return 0;\r\n }\r\n });\r\n $array.each(labels, (l) => {\r\n const bounds = l.label.adjustedLocalBounds();\r\n let labelLeft = bounds.left;\r\n if (l.y + labelLeft < next) {\r\n l.y = next - labelLeft;\r\n }\r\n l.label.set(\"x\", l.y);\r\n next = l.y + bounds.right;\r\n });\r\n }\r\n }\r\n _arrangeLeft(labels) {\r\n if (labels) {\r\n let next = this.labelsContainer.maxWidth();\r\n labels.sort((a, b) => {\r\n if (a.y < b.y) {\r\n return 1;\r\n }\r\n else if (a.y > b.y) {\r\n return -1;\r\n }\r\n else {\r\n return 0;\r\n }\r\n });\r\n $array.each(labels, (l) => {\r\n const bounds = l.label.adjustedLocalBounds();\r\n let labelRight = bounds.right;\r\n if (l.y + labelRight > next) {\r\n l.y = next - labelRight;\r\n }\r\n l.label.set(\"x\", l.y);\r\n next = l.y + bounds.left;\r\n });\r\n }\r\n }\r\n _updateSize() {\r\n super._updateSize();\r\n this.markDirty();\r\n }\r\n _updateTick(_dataItem) {\r\n }\r\n _dispose() {\r\n super._dispose();\r\n const chart = this.chart;\r\n if (chart) {\r\n chart.series.removeValue(this);\r\n }\r\n }\r\n}\r\nObject.defineProperty(PercentSeries, \"className\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: \"PercentSeries\"\r\n});\r\nObject.defineProperty(PercentSeries, \"classNames\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: Series.classNames.concat([PercentSeries.className])\r\n});\r\n//# sourceMappingURL=PercentSeries.js.map","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import { Graphics } from \"./Graphics\";\r\nimport * as $type from \"../util/Type\";\r\nimport { Percent } from \"../util/Percent\";\r\nimport { arc } from \"d3-shape\";\r\nimport * as $math from \"../util/Math\";\r\n/**\r\n * Draws a slice shape.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/graphics/} for more info\r\n */\r\nexport class Slice extends Graphics {\r\n constructor() {\r\n super(...arguments);\r\n /**\r\n * @ignore\r\n */\r\n Object.defineProperty(this, \"ix\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: 0\r\n });\r\n /**\r\n * @ignore\r\n */\r\n Object.defineProperty(this, \"iy\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: 0\r\n });\r\n Object.defineProperty(this, \"_generator\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: arc()\r\n });\r\n }\r\n _getTooltipPoint() {\r\n let tooltipX = this.get(\"tooltipX\");\r\n let tooltipY = this.get(\"tooltipY\");\r\n let x = 0;\r\n let y = 0;\r\n if ($type.isNumber(tooltipX)) {\r\n x = tooltipX;\r\n }\r\n if ($type.isNumber(tooltipY)) {\r\n y = tooltipY;\r\n }\r\n let radius = this.get(\"radius\", 0);\r\n let innerRadius = this.get(\"innerRadius\", 0);\r\n let dRadius = this.get(\"dRadius\", 0);\r\n let dInnerRadius = this.get(\"dInnerRadius\", 0);\r\n radius += dRadius;\r\n innerRadius += dInnerRadius;\r\n if (innerRadius < 0) {\r\n innerRadius = radius + innerRadius;\r\n }\r\n if (tooltipX instanceof Percent) {\r\n x = this.ix * (innerRadius + (radius - innerRadius) * tooltipX.value);\r\n }\r\n if (tooltipY instanceof Percent) {\r\n y = this.iy * (innerRadius + (radius - innerRadius) * tooltipY.value);\r\n }\r\n if (this.get(\"arc\") >= 360 && innerRadius == 0) {\r\n x = 0;\r\n y = 0;\r\n }\r\n return { x, y };\r\n }\r\n _beforeChanged() {\r\n super._beforeChanged();\r\n if (this.isDirty(\"radius\") || this.isDirty(\"arc\") || this.isDirty(\"innerRadius\") || this.isDirty(\"startAngle\") || this.isDirty(\"dRadius\") || this.isDirty(\"dInnerRadius\") || this.isDirty(\"cornerRadius\") || this.isDirty(\"shiftRadius\")) {\r\n this._clear = true;\r\n }\r\n }\r\n _changed() {\r\n super._changed();\r\n if (this._clear) {\r\n let startAngle = this.get(\"startAngle\", 0);\r\n let arc = this.get(\"arc\", 0);\r\n const generator = this._generator;\r\n if (arc < 0) {\r\n startAngle = startAngle + arc;\r\n arc = arc * -1;\r\n }\r\n if (arc > 0.1) { // this fixes bug with full circle when arc is very small\r\n generator.cornerRadius(this.get(\"cornerRadius\", 0));\r\n }\r\n generator.context(this._display);\r\n let radius = this.get(\"radius\", 0);\r\n let innerRadius = this.get(\"innerRadius\", 0);\r\n let dRadius = this.get(\"dRadius\", 0);\r\n let dInnerRadius = this.get(\"dInnerRadius\", 0);\r\n radius += dRadius;\r\n innerRadius += dInnerRadius;\r\n if (innerRadius < 0) {\r\n innerRadius = radius + innerRadius;\r\n }\r\n generator({ innerRadius: innerRadius, outerRadius: radius, startAngle: (startAngle + 90) * $math.RADIANS, endAngle: (startAngle + arc + 90) * $math.RADIANS });\r\n let middleAngle = startAngle + arc / 2;\r\n this.ix = $math.cos(middleAngle);\r\n this.iy = $math.sin(middleAngle);\r\n const shiftRadius = this.get(\"shiftRadius\", 0);\r\n this.setRaw(\"dx\", this.ix * shiftRadius);\r\n this.setRaw(\"dy\", this.iy * shiftRadius);\r\n this.markDirtyPosition();\r\n }\r\n }\r\n}\r\nObject.defineProperty(Slice, \"className\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: \"Slice\"\r\n});\r\nObject.defineProperty(Slice, \"classNames\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: Graphics.classNames.concat([Slice.className])\r\n});\r\n//# sourceMappingURL=Slice.js.map","import { PercentSeries } from \"../percent/PercentSeries\";\r\nimport { Template } from \"../../core/util/Template\";\r\nimport { Slice } from \"../../core/render/Slice\";\r\nimport { Tick } from \"../../core/render/Tick\";\r\nimport { RadialLabel } from \"../../core/render/RadialLabel\";\r\nimport { ListTemplate } from \"../../core/util/List\";\r\nimport { p100 } from \"../../core/util/Percent\";\r\nimport * as $array from \"../../core/util/Array\";\r\nimport * as $math from \"../../core/util/Math\";\r\nimport * as $utils from \"../../core/util/Utils\";\r\n/**\r\n * Creates a series for a [[PieChart]].\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/percent-charts/pie-chart/} for more info\r\n * @important\r\n */\r\nexport class PieSeries extends PercentSeries {\r\n _makeSlices() {\r\n return new ListTemplate(Template.new({}), () => Slice._new(this._root, {\r\n themeTags: $utils.mergeTags(this.slices.template.get(\"themeTags\", []), [\"pie\", \"series\"])\r\n }, [this.slices.template]));\r\n }\r\n _makeLabels() {\r\n return new ListTemplate(Template.new({}), () => RadialLabel._new(this._root, {\r\n themeTags: $utils.mergeTags(this.labels.template.get(\"themeTags\", []), [\"pie\", \"series\"])\r\n }, [this.labels.template]));\r\n }\r\n _makeTicks() {\r\n return new ListTemplate(Template.new({}), () => Tick._new(this._root, {\r\n themeTags: $utils.mergeTags(this.ticks.template.get(\"themeTags\", []), [\"pie\", \"series\"])\r\n }, [this.ticks.template]));\r\n }\r\n processDataItem(dataItem) {\r\n super.processDataItem(dataItem);\r\n const slice = this.makeSlice(dataItem);\r\n slice.on(\"scale\", () => {\r\n this._updateTick(dataItem);\r\n });\r\n slice.on(\"shiftRadius\", () => {\r\n this._updateTick(dataItem);\r\n });\r\n slice.events.on(\"positionchanged\", () => {\r\n this._updateTick(dataItem);\r\n });\r\n const label = this.makeLabel(dataItem);\r\n label.events.on(\"positionchanged\", () => {\r\n this._updateTick(dataItem);\r\n });\r\n this.makeTick(dataItem);\r\n slice.events.on(\"positionchanged\", () => {\r\n label.markDirty();\r\n });\r\n }\r\n _getNextUp() {\r\n const chart = this.chart;\r\n if (chart) {\r\n return chart._maxRadius;\r\n }\r\n return this.labelsContainer.maxHeight() / 2;\r\n }\r\n _getNextDown() {\r\n const chart = this.chart;\r\n if (chart) {\r\n return -chart._maxRadius;\r\n }\r\n return -this.labelsContainer.maxHeight() / 2;\r\n }\r\n _prepareChildren() {\r\n super._prepareChildren();\r\n const chart = this.chart;\r\n if (chart) {\r\n if (this.isDirty(\"alignLabels\")) {\r\n let labelsTemplate = this.labels.template;\r\n if (this.get(\"alignLabels\")) {\r\n labelsTemplate.set(\"textType\", \"aligned\");\r\n }\r\n else {\r\n let textType = labelsTemplate.get(\"textType\");\r\n if (textType == null || textType == \"aligned\") {\r\n labelsTemplate.set(\"textType\", \"adjusted\");\r\n }\r\n }\r\n }\r\n if (this._valuesDirty || this.isDirty(\"radius\") || this.isDirty(\"innerRadius\") || this.isDirty(\"startAngle\") || this.isDirty(\"endAngle\") || this.isDirty(\"alignLabels\")) {\r\n this.markDirtyBounds();\r\n const startAngle = this.get(\"startAngle\", chart.get(\"startAngle\", -90));\r\n const endAngle = this.get(\"endAngle\", chart.get(\"endAngle\", 270));\r\n const arc = endAngle - startAngle;\r\n let currentAngle = startAngle;\r\n const radius = chart.radius(this);\r\n this.setPrivateRaw(\"radius\", radius);\r\n let innerRadius = chart.innerRadius(this) * chart.getPrivate(\"irModifyer\", 1);\r\n if (innerRadius < 0) {\r\n innerRadius = radius + innerRadius;\r\n }\r\n //if (radius > 0) {\r\n $array.each(this._dataItems, (dataItem) => {\r\n this.updateLegendValue(dataItem);\r\n let currentArc = arc * dataItem.get(\"valuePercentTotal\") / 100;\r\n const slice = dataItem.get(\"slice\");\r\n if (slice) {\r\n slice.set(\"radius\", radius);\r\n slice.set(\"innerRadius\", innerRadius);\r\n slice.set(\"startAngle\", currentAngle);\r\n slice.set(\"arc\", currentArc);\r\n const color = dataItem.get(\"fill\");\r\n slice._setDefault(\"fill\", color);\r\n slice._setDefault(\"stroke\", color);\r\n }\r\n let middleAngle = $math.normalizeAngle(currentAngle + currentArc / 2);\r\n const label = dataItem.get(\"label\");\r\n if (label) {\r\n label.setPrivate(\"radius\", radius);\r\n label.setPrivate(\"innerRadius\", innerRadius);\r\n label.set(\"labelAngle\", middleAngle);\r\n if (label.get(\"textType\") == \"aligned\") {\r\n let labelRadius = radius + label.get(\"radius\", 0);\r\n let y = radius * $math.sin(middleAngle);\r\n if (middleAngle > 90 && middleAngle <= 270) {\r\n if (!label.isHidden() && !label.isHiding()) {\r\n this._lLabels.push({ label: label, y: y });\r\n }\r\n labelRadius *= -1;\r\n labelRadius -= this.labelsContainer.get(\"paddingLeft\", 0);\r\n label.set(\"centerX\", p100);\r\n label.setPrivateRaw(\"left\", true);\r\n }\r\n else {\r\n if (!label.isHidden() && !label.isHiding()) {\r\n this._rLabels.push({ label: label, y: y });\r\n }\r\n labelRadius += this.labelsContainer.get(\"paddingRight\", 0);\r\n label.set(\"centerX\", 0);\r\n label.setPrivateRaw(\"left\", false);\r\n }\r\n label.set(\"x\", labelRadius);\r\n label.set(\"y\", radius * $math.sin(middleAngle));\r\n }\r\n }\r\n currentAngle += currentArc;\r\n this._updateTick(dataItem);\r\n });\r\n //}\r\n }\r\n }\r\n }\r\n _updateTick(dataItem) {\r\n const tick = dataItem.get(\"tick\");\r\n const label = dataItem.get(\"label\");\r\n const slice = dataItem.get(\"slice\");\r\n const location = tick.get(\"location\", 1);\r\n if (tick && label && slice) {\r\n const radius = (slice.get(\"shiftRadius\", 0) + slice.get(\"radius\", 0)) * slice.get(\"scale\", 1) * location;\r\n const labelAngle = label.get(\"labelAngle\", 0);\r\n const cos = $math.cos(labelAngle);\r\n const sin = $math.sin(labelAngle);\r\n const labelsContainer = this.labelsContainer;\r\n const pl = labelsContainer.get(\"paddingLeft\", 0);\r\n const pr = labelsContainer.get(\"paddingRight\", 0);\r\n let x = 0;\r\n let y = 0;\r\n x = label.x();\r\n y = label.y();\r\n let points = [];\r\n if (x != 0 && y != 0) {\r\n if (label.get(\"textType\") == \"circular\") {\r\n const labelRadius = label.radius() - label.get(\"paddingBottom\", 0);\r\n const labelAngle = label.get(\"labelAngle\", 0);\r\n x = labelRadius * $math.cos(labelAngle);\r\n y = labelRadius * $math.sin(labelAngle);\r\n }\r\n let dx = -pr;\r\n if (label.getPrivate(\"left\")) {\r\n dx = pl;\r\n }\r\n points = [{ x: slice.x() + radius * cos, y: slice.y() + radius * sin }, { x: x + dx, y: y }, { x: x, y: y }];\r\n }\r\n tick.set(\"points\", points);\r\n }\r\n }\r\n _positionBullet(bullet) {\r\n const sprite = bullet.get(\"sprite\");\r\n if (sprite) {\r\n const dataItem = sprite.dataItem;\r\n const slice = dataItem.get(\"slice\");\r\n if (slice) {\r\n const innerRadius = slice.get(\"innerRadius\", 0);\r\n const radius = slice.get(\"radius\", 0);\r\n const startAngle = slice.get(\"startAngle\", 0);\r\n const arc = slice.get(\"arc\", 0);\r\n const locationX = bullet.get(\"locationX\", 0.5);\r\n const locationY = bullet.get(\"locationY\", 0.5);\r\n const angle = startAngle + arc * locationX;\r\n const r = innerRadius + (radius - innerRadius) * locationY;\r\n sprite.setAll({ x: $math.cos(angle) * r, y: $math.sin(angle) * r });\r\n }\r\n }\r\n }\r\n}\r\nObject.defineProperty(PieSeries, \"className\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: \"PieSeries\"\r\n});\r\nObject.defineProperty(PieSeries, \"classNames\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: PercentSeries.classNames.concat([PieSeries.className])\r\n});\r\n//# sourceMappingURL=PieSeries.js.map","import { Theme } from \"../../core/Theme\";\r\nimport { percent, p50, p100 } from \"../../core/util/Percent\";\r\nimport { ColorSet } from \"../../core/util/ColorSet\";\r\nimport { setColor } from \"../../themes/DefaultTheme\";\r\n/**\r\n * @ignore\r\n */\r\nexport class PercentDefaultTheme extends Theme {\r\n setupDefaultRules() {\r\n super.setupDefaultRules();\r\n const ic = this._root.interfaceColors;\r\n const r = this.rule.bind(this);\r\n /**\r\n * ========================================================================\r\n * charts/percent\r\n * ========================================================================\r\n */\r\n r(\"PercentSeries\").setAll({\r\n legendLabelText: \"{category}\",\r\n legendValueText: \"{valuePercentTotal.formatNumber('0.00p')}\",\r\n colors: ColorSet.new(this._root, {}),\r\n width: p100,\r\n height: p100\r\n });\r\n /**\r\n * ========================================================================\r\n * charts/pie\r\n * ========================================================================\r\n */\r\n r(\"PieChart\").setAll({\r\n radius: percent(80),\r\n startAngle: -90,\r\n endAngle: 270\r\n });\r\n r(\"PieSeries\").setAll({\r\n alignLabels: true,\r\n startAngle: -90,\r\n endAngle: 270\r\n });\r\n r(\"PieSeries\").states.create(\"hidden\", { endAngle: -90, opacity: 0 });\r\n r(\"Slice\", [\"pie\"]).setAll({\r\n position: \"absolute\",\r\n isMeasured: false,\r\n x: 0,\r\n y: 0,\r\n toggleKey: \"active\",\r\n tooltipText: \"{category}: {valuePercentTotal.formatNumber('0.00p')}\",\r\n strokeWidth: 1,\r\n strokeOpacity: 1,\r\n role: \"figure\",\r\n lineJoin: \"round\"\r\n });\r\n r(\"Slice\", [\"pie\"]).states.create(\"active\", { shiftRadius: 20, scale: 1 });\r\n r(\"Slice\", [\"pie\"]).states.create(\"hoverActive\", { scale: 1.04 });\r\n r(\"Slice\", [\"pie\"]).states.create(\"hover\", { scale: 1.04 });\r\n r(\"RadialLabel\", [\"pie\"]).setAll({\r\n textType: \"aligned\",\r\n radius: 10,\r\n text: \"{category}: {valuePercentTotal.formatNumber('0.00p')}\",\r\n paddingTop: 5,\r\n paddingBottom: 5,\r\n populateText: true\r\n });\r\n r(\"Tick\", [\"pie\"]).setAll({\r\n location: 1\r\n });\r\n /**\r\n * ========================================================================\r\n * charts/funnel\r\n * ========================================================================\r\n */\r\n r(\"SlicedChart\").setAll({\r\n paddingLeft: 10,\r\n paddingRight: 10,\r\n paddingTop: 10,\r\n paddingBottom: 10\r\n });\r\n /**\r\n * ------------------------------------------------------------------------\r\n * charts/funnel: Funnel\r\n * ------------------------------------------------------------------------\r\n */\r\n r(\"FunnelSeries\").setAll({\r\n startLocation: 0,\r\n endLocation: 1,\r\n orientation: \"vertical\",\r\n alignLabels: true,\r\n sequencedInterpolation: true\r\n });\r\n r(\"FunnelSlice\").setAll({\r\n interactive: true,\r\n expandDistance: 0,\r\n //tooltipText: \"{category}: {valuePercentTotal.formatNumber('0.00p')}\"\r\n });\r\n r(\"FunnelSlice\").states.create(\"hover\", { expandDistance: 0.15 });\r\n r(\"Label\", [\"funnel\"]).setAll({\r\n populateText: true,\r\n text: \"{category}: {valuePercentTotal.formatNumber('0.00p')}\",\r\n centerY: p50\r\n });\r\n r(\"Label\", [\"funnel\", \"horizontal\"]).setAll({\r\n centerX: 0,\r\n centerY: p50,\r\n rotation: -90\r\n });\r\n // Class: Label\r\n r(\"Label\", [\"funnel\", \"vertical\"]).setAll({\r\n centerY: p50,\r\n centerX: 0\r\n });\r\n r(\"Tick\", [\"funnel\"]).setAll({\r\n location: 1\r\n });\r\n r(\"FunnelSlice\", [\"funnel\", \"link\"]).setAll({\r\n fillOpacity: 0.5,\r\n strokeOpacity: 0,\r\n expandDistance: -0.1\r\n });\r\n r(\"FunnelSlice\", [\"funnel\", \"link\", \"vertical\"]).setAll({\r\n height: 10,\r\n });\r\n r(\"FunnelSlice\", [\"funnel\", \"link\", \"horizontal\"]).setAll({\r\n width: 10\r\n });\r\n /**\r\n * ------------------------------------------------------------------------\r\n * charts/funnel: Pyramid\r\n * ------------------------------------------------------------------------\r\n */\r\n r(\"PyramidSeries\").setAll({\r\n valueIs: \"area\"\r\n });\r\n r(\"FunnelSlice\", [\"pyramid\", \"link\"]).setAll({\r\n fillOpacity: 0.5\r\n });\r\n r(\"FunnelSlice\", [\"pyramid\", \"link\", \"vertical\"]).setAll({\r\n height: 0\r\n });\r\n r(\"FunnelSlice\", [\"pyramid\", \"link\", \"horizontal\"]).setAll({\r\n width: 0\r\n });\r\n r(\"FunnelSlice\", [\"pyramid\"]).setAll({\r\n interactive: true,\r\n expandDistance: 0\r\n });\r\n r(\"FunnelSlice\", [\"pyramid\"]).states.create(\"hover\", { expandDistance: 0.15 });\r\n r(\"Label\", [\"pyramid\"]).setAll({\r\n populateText: true,\r\n text: \"{category}: {valuePercentTotal.formatNumber('0.00p')}\",\r\n centerY: p50\r\n });\r\n r(\"Label\", [\"pyramid\", \"horizontal\"]).setAll({\r\n centerX: 0,\r\n centerY: p50,\r\n rotation: -90\r\n });\r\n r(\"Label\", [\"pyramid\", \"vertical\"]).setAll({\r\n centerY: p50,\r\n centerX: 0\r\n });\r\n r(\"Tick\", [\"pyramid\"]).setAll({\r\n location: 1\r\n });\r\n /**\r\n * ------------------------------------------------------------------------\r\n * charts/funnel: Pictorial\r\n * ------------------------------------------------------------------------\r\n */\r\n // Class: FunnelSlice\r\n r(\"FunnelSlice\", [\"pictorial\"]).setAll({\r\n interactive: true,\r\n tooltipText: \"{category}: {valuePercentTotal.formatNumber('0.00p')}\"\r\n });\r\n r(\"Label\", [\"pictorial\"]).setAll({\r\n populateText: true,\r\n text: \"{category}: {valuePercentTotal.formatNumber('0.00p')}\",\r\n centerY: p50\r\n });\r\n r(\"Label\", [\"pictorial\", \"horizontal\"]).setAll({\r\n centerX: 0,\r\n centerY: p50,\r\n rotation: -90\r\n });\r\n r(\"Label\", [\"pictorial\", \"vertical\"]).setAll({\r\n centerY: p50,\r\n centerX: 0\r\n });\r\n r(\"FunnelSlice\", [\"pictorial\", \"link\"]).setAll({\r\n fillOpacity: 0.5,\r\n width: 0,\r\n height: 0\r\n });\r\n r(\"Tick\", [\"pictorial\"]).setAll({\r\n location: 0.5\r\n });\r\n {\r\n const rule = r(\"Graphics\", [\"pictorial\", \"background\"]);\r\n rule.setAll({\r\n fillOpacity: 0.2\r\n });\r\n setColor(rule, \"fill\", ic, \"alternativeBackground\");\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=PercentDefaultTheme.js.map","import { SerialChart } from \"../../core/render/SerialChart\";\r\nimport { PercentDefaultTheme } from \"./PercentDefaultTheme\";\r\n/**\r\n * Base class for [[PieChart]].\r\n *\r\n * Also used for percent-based series, like [[FunnelSeries]], [[PyramidSeries]], etc.\r\n *\r\n * @important\r\n */\r\nexport class PercentChart extends SerialChart {\r\n _afterNew() {\r\n this._defaultThemes.push(PercentDefaultTheme.new(this._root));\r\n super._afterNew();\r\n this.chartContainer.children.push(this.seriesContainer);\r\n this.seriesContainer.children.push(this.bulletsContainer);\r\n }\r\n _processSeries(series) {\r\n super._processSeries(series);\r\n this.seriesContainer.children.moveValue(this.bulletsContainer, this.seriesContainer.children.length - 1);\r\n }\r\n}\r\nObject.defineProperty(PercentChart, \"className\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: \"PercentChart\"\r\n});\r\nObject.defineProperty(PercentChart, \"classNames\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: SerialChart.classNames.concat([PercentChart.className])\r\n});\r\n//# sourceMappingURL=PercentChart.js.map","import { Percent } from \"../../core/util/Percent\";\r\nimport { PercentChart } from \"../percent/PercentChart\";\r\nimport { p50 } from \"../../core/util/Percent\";\r\nimport * as $utils from \"../../core/util/Utils\";\r\nimport * as $math from \"../../core/util/Math\";\r\n/**\r\n * Creates a pie chart.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/percent-charts/pie-chart/} for more info\r\n * @important\r\n */\r\nexport class PieChart extends PercentChart {\r\n constructor() {\r\n super(...arguments);\r\n Object.defineProperty(this, \"_maxRadius\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: 1\r\n });\r\n }\r\n _afterNew() {\r\n super._afterNew();\r\n this.seriesContainer.setAll({ x: p50, y: p50 });\r\n }\r\n _prepareChildren() {\r\n super._prepareChildren();\r\n const chartContainer = this.chartContainer;\r\n const w = chartContainer.innerWidth();\r\n const h = chartContainer.innerHeight();\r\n const startAngle = this.get(\"startAngle\", 0);\r\n const endAngle = this.get(\"endAngle\", 0);\r\n const innerRadius = this.get(\"innerRadius\");\r\n let bounds = $math.getArcBounds(0, 0, startAngle, endAngle, 1);\r\n const wr = w / (bounds.right - bounds.left);\r\n const hr = h / (bounds.bottom - bounds.top);\r\n let innerBounds = { left: 0, right: 0, top: 0, bottom: 0 };\r\n if (innerRadius instanceof Percent) {\r\n let value = innerRadius.value;\r\n let mr = Math.min(wr, hr);\r\n value = Math.max(mr * value, mr - Math.min(h, w)) / mr;\r\n innerBounds = $math.getArcBounds(0, 0, startAngle, endAngle, value);\r\n this.setPrivateRaw(\"irModifyer\", value / innerRadius.value);\r\n }\r\n bounds = $math.mergeBounds([bounds, innerBounds]);\r\n const prevRadius = this._maxRadius;\r\n this._maxRadius = Math.min(wr, hr);\r\n const radius = $utils.relativeToValue(this.get(\"radius\", 0), this._maxRadius);\r\n this.seriesContainer.setAll({\r\n dy: -radius * (bounds.bottom + bounds.top) / 2, dx: -radius * (bounds.right + bounds.left) / 2\r\n });\r\n if (this.isDirty(\"startAngle\") || this.isDirty(\"endAngle\") || prevRadius != this._maxRadius) {\r\n this.series.each((series) => {\r\n series._markDirtyKey(\"startAngle\");\r\n });\r\n }\r\n if (this.isDirty(\"innerRadius\") || this.isDirty(\"radius\")) {\r\n this.series.each((series) => {\r\n series._markDirtyKey(\"innerRadius\");\r\n });\r\n }\r\n }\r\n /**\r\n * Returns outer radius in pixels.\r\n *\r\n * If optional series parameter is passed in, it will return outer radius\r\n * of that particular series.\r\n *\r\n * @param series Series\r\n * @return Radius in pixels\r\n */\r\n radius(series) {\r\n let radius = $utils.relativeToValue(this.get(\"radius\", 0), this._maxRadius);\r\n let innerRadius = $utils.relativeToValue(this.get(\"innerRadius\", 0), radius);\r\n if (series) {\r\n let index = this.series.indexOf(series);\r\n let length = this.series.length;\r\n let seriesRadius = series.get(\"radius\");\r\n if (seriesRadius != null) {\r\n return innerRadius + $utils.relativeToValue(seriesRadius, radius - innerRadius);\r\n }\r\n else {\r\n return innerRadius + (radius - innerRadius) / length * (index + 1);\r\n }\r\n }\r\n return radius;\r\n }\r\n /**\r\n * Returns inner radius in pixels.\r\n *\r\n * If optional series parameter is passed in, it will return inner radius\r\n * of that particular series.\r\n *\r\n * @param series Series\r\n * @return Radius in pixels\r\n */\r\n innerRadius(series) {\r\n const radius = this.radius();\r\n let innerRadius = $utils.relativeToValue(this.get(\"innerRadius\", 0), radius);\r\n if (innerRadius < 0) {\r\n innerRadius = radius + innerRadius;\r\n }\r\n if (series) {\r\n let index = this.series.indexOf(series);\r\n let length = this.series.length;\r\n let seriesInnerRadius = series.get(\"innerRadius\");\r\n if (seriesInnerRadius != null) {\r\n return innerRadius + $utils.relativeToValue(seriesInnerRadius, radius - innerRadius);\r\n }\r\n else {\r\n return innerRadius + (radius - innerRadius) / length * index;\r\n }\r\n }\r\n return innerRadius;\r\n }\r\n}\r\nObject.defineProperty(PieChart, \"className\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: \"PieChart\"\r\n});\r\nObject.defineProperty(PieChart, \"classNames\", {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: PercentChart.classNames.concat([PieChart.className])\r\n});\r\n//# sourceMappingURL=PieChart.js.map"],"sourceRoot":""}