UNPKG

20.1 kBSource Map (JSON)View Raw
1{"version":3,"file":"AxisLabelCircular.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/axes/AxisLabelCircular.ts"],"names":[],"mappings":"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","sourcesContent":["/**\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 { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { 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\trelativeRotation?: number;\r\n\r\n\t/**\r\n\t * Distance of the label from circle line.\r\n\t */\r\n\tradius?: number | Percent;\r\n\r\n\t/**\r\n\t * Specifies if label should be bent along the circle\r\n\t *\r\n\t * @type {boolean}\r\n\t */\r\n\tbent?: boolean;\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\tpublic _properties!: IAxisLabelCircularProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IAxisLabelCircularAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAxisLabelCircularEvents;\r\n\r\n\t/**\r\n\t * Related data item.\r\n\t */\r\n\tpublic _dataItem: any;\r\n\r\n\t/**\r\n\t *\r\n\t * @ignore\r\n\t */\r\n\tpublic fdx: number = 0;\r\n\r\n\t/**\r\n\t *\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.locationOnPath = 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 - positioned along the circle.\r\n\t *\r\n\t * @param value Rotation angle\r\n\t */\r\n\tpublic set relativeRotation(value: number) {\r\n\t\tthis.setPropertyValue(\"relativeRotation\", value, true);\r\n\t\tif (!$type.hasValue(value)) {\r\n\t\t\tthis.rotation = undefined;\r\n\r\n\t\t\tlet dataItem = this.dataItem;\r\n\t\t\tif (dataItem && dataItem.component) {\r\n\t\t\t\tdataItem.component.invalidateDataItems();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return 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 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 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 * Specifies if label should be bent along the circle.\r\n\t *\r\n\t * IMPORTANT: Use this with caution, since it is quite CPU-greedy.\r\n\t *\r\n\t * @since 4.1.2\r\n\t * @default false\r\n\t * @param value Bent?\r\n\t */\r\n\tpublic set bent(value: boolean) {\r\n\t\tthis.setPropertyValue(\"bent\", value, true);\r\n\t\tthis.setPropertyValue(\"wrap\", false);\r\n\t\tthis.setPropertyValue(\"horizontalCenter\", \"none\");\r\n\t\tthis.setPropertyValue(\"verticalCenter\", \"none\");\r\n\r\n\t\tif (value) {\r\n\t\t\tthis.setPropertyValue(\"dx\", 0);\r\n\t\t\tthis.setPropertyValue(\"dy\", 0);\r\n\t\t\tthis.setPropertyValue(\"x\", 0);\r\n\t\t\tthis.setPropertyValue(\"y\", 0);\r\n\t\t\tthis.setPropertyValue(\"rotation\", 0)\r\n\t\t\t//this.setPropertyValue(\"relativeRotation\", undefined);\r\n\t\t\tthis.fdx = 0;\r\n\t\t\tthis.fdy = 0;\r\n\t\t\tthis.textAlign = \"middle\";\r\n\t\t}\r\n\t\telse{\r\n\t\t\tif(this.textPathElement){\r\n\t\t\t\tthis.textPathElement.dispose();\r\n\t\t\t\tthis.textPathElement = undefined;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Bent?\r\n\t */\r\n\tpublic get bent(): boolean {\r\n\t\treturn this.getPropertyValue(\"bent\");\r\n\t}\r\n\r\n\t/**\r\n\t * Returns label radius in pixels.\r\n\t * \r\n\t * @param axisRadius Radius\r\n\t * @return Pixel radius\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 * Returns label horizontal radius in pixels.\r\n\t * \r\n\t * @param axisRadius Radius\r\n\t * @param axisRadiusY Vertical radius\r\n\t * @return Radius\r\n\t */\r\n\tpublic pixelRadiusY(axisRadius: number, axisRadiusY: 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\tlet radius = this.radius;\r\n\r\n\t\tif ($type.isNumber(radius)) {\r\n\t\t\tradius *= axisRadiusY / axisRadius;\r\n\t\t\treturn $utils.relativeToValue(radius, axisRadius) * sign;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn $utils.relativeToValue(radius, axisRadiusY) * sign;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [fixPosition description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param point Label affixation point\r\n\t * @param axisRadius Distance from point (px)\r\n\t */\r\n\tpublic fixPosition(angle: number, axisRadius: number, axisRadiusY?: number, dx?: number, dy?: number) {\r\n\t\tif (!$type.isNumber(axisRadiusY)) {\r\n\t\t\taxisRadiusY = axisRadius;\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(dx)) {\r\n\t\t\tdx = 0;\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(dy)) {\r\n\t\t\tdy = 0;\r\n\t\t}\r\n\r\n\t\tlet point = { x: axisRadius * $math.cos(angle), y: axisRadiusY * $math.sin(angle) };\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 isNegative = false;\r\n\t\tlet realRadius = this.radius;\r\n\r\n\t\tif (realRadius instanceof Percent && realRadius.value < 0) {\r\n\t\t\tisNegative = true;\r\n\t\t}\r\n\t\telse if (realRadius < 0) {\r\n\t\t\tisNegative = true;\r\n\t\t}\r\n\r\n\t\tlet relativeRotation = this.relativeRotation;\r\n\t\tlet labelRadius = this.pixelRadius(axisRadius);\r\n\r\n\t\tif (this.bent) {\r\n\t\t\tlet point = { x: (axisRadius + labelRadius )* $math.cos(angle + 180), y: (axisRadiusY + labelRadius * axisRadiusY / axisRadius) * $math.sin(angle + 180) };\r\n\t\t\tthis.path = $path.moveTo(point) + $path.arcTo(angle + 180, 360, axisRadius + labelRadius, axisRadiusY + labelRadius * axisRadiusY / axisRadius);\r\n\t\t\t\r\n\t\t\tif (this.textPathElement) {\r\n\t\t\t\tthis.textPathElement.attr({ \"startOffset\": (this.locationOnPath * 100) + \"%\" })\r\n\t\t\t}\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// WHEN ROTATED\r\n\t\tif ($type.isNumber(relativeRotation)) {\r\n\r\n\t\t\tthis.horizontalCenter = \"none\";\r\n\t\t\tthis.verticalCenter = \"none\";\r\n\r\n\t\t\tangle = $math.fitAngleToRange(angle, -180, 180);\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\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 (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 = -pixelPaddingLeft - pixelPaddingRight;\r\n\t\t\t\t\tpixelHeight = - pixelHeight - pixelPaddingTop - pixelPaddingBottom;\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\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\r\n\t\t\tpoint.x += $math.cos(angle) * labelRadius;\r\n\t\t\tpoint.y += $math.sin(angle) * labelRadius * axisRadiusY / axisRadius;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// END OF ROTATED\r\n\t\t\tthis.horizontalCenter = \"middle\";\r\n\t\t\tthis.verticalCenter = \"middle\";\r\n\r\n\t\t\tif (isNegative) {\r\n\t\t\t\tthis.dx = 0;\r\n\t\t\t\tthis.dy = 0;\r\n\t\t\t\tpoint.x = (axisRadius + labelRadius) * $math.cos(angle);\r\n\t\t\t\tpoint.y = (axisRadiusY + labelRadius * axisRadiusY / axisRadius) * $math.sin(angle);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\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\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\t\t// @todo with this math doesn't work well with inside = true\r\n\t\t\t\tthis.dy = this._measuredHeight / 2 * $math.sin(angle) //(1 - (point.y + axisRadiusY) / (2 * axisRadiusY));\r\n\t\t\t\t// simmilar with dx\r\n\t\t\t\tthis.dx = this._measuredWidth / 2 * $math.cos(angle) //(1 - (point.x + axisRadius) / (2 * axisRadius));\r\n\r\n\t\t\t\tpoint.x += $math.cos(angle) * labelRadius;\r\n\t\t\t\tpoint.y += $math.sin(angle) * labelRadius * axisRadiusY / axisRadius;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpoint.x += dx;\r\n\t\tpoint.y += dy;\r\n\r\n\t\tthis.fdx = this.dx;\r\n\t\tthis.fdy = this.dy;\r\n\r\n\t\tthis.moveTo(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"]}
\No newline at end of file