@amcharts/amcharts5 5.9.4 → 5.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/.internal/charts/stock/StockChartDefaultTheme.d.ts.map +1 -1
  2. package/.internal/charts/stock/StockChartDefaultTheme.js +5 -2
  3. package/.internal/charts/stock/StockChartDefaultTheme.js.map +1 -1
  4. package/.internal/charts/stock/drawing/CalloutSeries.d.ts.map +1 -1
  5. package/.internal/charts/stock/drawing/CalloutSeries.js +6 -2
  6. package/.internal/charts/stock/drawing/CalloutSeries.js.map +1 -1
  7. package/.internal/charts/stock/drawing/DoodleSeries.d.ts.map +1 -1
  8. package/.internal/charts/stock/drawing/DoodleSeries.js +0 -6
  9. package/.internal/charts/stock/drawing/DoodleSeries.js.map +1 -1
  10. package/.internal/charts/stock/drawing/DrawingSeries.d.ts +2 -2
  11. package/.internal/charts/stock/drawing/DrawingSeries.d.ts.map +1 -1
  12. package/.internal/charts/stock/drawing/DrawingSeries.js +10 -38
  13. package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
  14. package/.internal/charts/stock/drawing/LabelSeries.d.ts +6 -5
  15. package/.internal/charts/stock/drawing/LabelSeries.d.ts.map +1 -1
  16. package/.internal/charts/stock/drawing/LabelSeries.js +52 -68
  17. package/.internal/charts/stock/drawing/LabelSeries.js.map +1 -1
  18. package/.internal/charts/stock/drawing/PolylineSeries.js +0 -1
  19. package/.internal/charts/stock/drawing/PolylineSeries.js.map +1 -1
  20. package/.internal/charts/stock/indicators/VolumeProfile.d.ts.map +1 -1
  21. package/.internal/charts/stock/indicators/VolumeProfile.js +4 -65
  22. package/.internal/charts/stock/indicators/VolumeProfile.js.map +1 -1
  23. package/.internal/charts/stock/toolbar/DrawingControl.d.ts +7 -0
  24. package/.internal/charts/stock/toolbar/DrawingControl.d.ts.map +1 -1
  25. package/.internal/charts/stock/toolbar/DrawingControl.js +2 -1
  26. package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
  27. package/.internal/charts/stock/toolbar/DrawingToolControl.d.ts +7 -0
  28. package/.internal/charts/stock/toolbar/DrawingToolControl.d.ts.map +1 -1
  29. package/.internal/charts/stock/toolbar/DrawingToolControl.js +2 -1
  30. package/.internal/charts/stock/toolbar/DrawingToolControl.js.map +1 -1
  31. package/.internal/charts/stock/toolbar/StockIcons.js +1 -1
  32. package/.internal/charts/stock/toolbar/StockIcons.js.map +1 -1
  33. package/.internal/charts/xy/XYChartDefaultTheme.d.ts.map +1 -1
  34. package/.internal/charts/xy/XYChartDefaultTheme.js +2 -0
  35. package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
  36. package/.internal/charts/xy/XYCursor.d.ts +1 -0
  37. package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
  38. package/.internal/charts/xy/XYCursor.js +10 -1
  39. package/.internal/charts/xy/XYCursor.js.map +1 -1
  40. package/.internal/charts/xy/axes/ValueAxis.d.ts +1 -0
  41. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  42. package/.internal/charts/xy/axes/ValueAxis.js +20 -2
  43. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  44. package/.internal/core/Classes.d.ts +2 -0
  45. package/.internal/core/Classes.d.ts.map +1 -1
  46. package/.internal/core/Classes.js.map +1 -1
  47. package/.internal/core/Registry.js +1 -1
  48. package/.internal/core/Registry.js.map +1 -1
  49. package/.internal/core/Root.d.ts.map +1 -1
  50. package/.internal/core/Root.js +8 -2
  51. package/.internal/core/Root.js.map +1 -1
  52. package/.internal/core/render/EditableLabel.d.ts +54 -0
  53. package/.internal/core/render/EditableLabel.d.ts.map +1 -0
  54. package/.internal/core/render/EditableLabel.js +278 -0
  55. package/.internal/core/render/EditableLabel.js.map +1 -0
  56. package/.internal/core/render/Graphics.d.ts.map +1 -1
  57. package/.internal/core/render/Graphics.js +1 -19
  58. package/.internal/core/render/Graphics.js.map +1 -1
  59. package/.internal/core/render/Label.d.ts +4 -1
  60. package/.internal/core/render/Label.d.ts.map +1 -1
  61. package/.internal/core/render/Label.js.map +1 -1
  62. package/.internal/core/render/RadialLabel.d.ts.map +1 -1
  63. package/.internal/core/render/RadialLabel.js +2 -0
  64. package/.internal/core/render/RadialLabel.js.map +1 -1
  65. package/.internal/core/render/Sprite.d.ts +7 -0
  66. package/.internal/core/render/Sprite.d.ts.map +1 -1
  67. package/.internal/core/render/Sprite.js +10 -0
  68. package/.internal/core/render/Sprite.js.map +1 -1
  69. package/.internal/core/util/Utils.d.ts +29 -7
  70. package/.internal/core/util/Utils.d.ts.map +1 -1
  71. package/.internal/core/util/Utils.js +43 -8
  72. package/.internal/core/util/Utils.js.map +1 -1
  73. package/.internal/plugins/json/Classes-script.d.ts +2 -0
  74. package/.internal/plugins/json/Classes-script.d.ts.map +1 -1
  75. package/.internal/plugins/json/Classes-script.js +1 -0
  76. package/.internal/plugins/json/Classes-script.js.map +1 -1
  77. package/.internal/plugins/json/Classes.d.ts +2 -0
  78. package/.internal/plugins/json/Classes.d.ts.map +1 -1
  79. package/.internal/plugins/json/Classes.js +1 -0
  80. package/.internal/plugins/json/Classes.js.map +1 -1
  81. package/.internal/themes/DefaultTheme.d.ts.map +1 -1
  82. package/.internal/themes/DefaultTheme.js +21 -0
  83. package/.internal/themes/DefaultTheme.js.map +1 -1
  84. package/CHANGELOG.md +36 -0
  85. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  86. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  87. package/examples/javascript/flow-chord/package.json +1 -1
  88. package/examples/javascript/flow-chord-directed/package.json +1 -1
  89. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  90. package/examples/javascript/flow-sankey/package.json +1 -1
  91. package/examples/javascript/gauge/package.json +1 -1
  92. package/examples/javascript/gauge-bands/package.json +1 -1
  93. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  94. package/examples/javascript/hierarchy-pack/package.json +1 -1
  95. package/examples/javascript/hierarchy-partition/package.json +1 -1
  96. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  97. package/examples/javascript/hierarchy-tree/package.json +1 -1
  98. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  99. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  100. package/examples/javascript/jest/package.json +1 -1
  101. package/examples/javascript/json-pie/package.json +1 -1
  102. package/examples/javascript/json-xy/package.json +1 -1
  103. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  104. package/examples/javascript/map-clustered-points/package.json +1 -1
  105. package/examples/javascript/map-day-and-night/package.json +1 -1
  106. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  107. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  108. package/examples/javascript/map-with-bubbles/package.json +1 -1
  109. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  110. package/examples/javascript/misc-40-charts/package.json +1 -1
  111. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  112. package/examples/javascript/pie-chart/package.json +1 -1
  113. package/examples/javascript/pie-donut-chart/package.json +1 -1
  114. package/examples/javascript/pie-variable-radius/package.json +1 -1
  115. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  116. package/examples/javascript/radar-heat-map/package.json +1 -1
  117. package/examples/javascript/radar-line/package.json +1 -1
  118. package/examples/javascript/radar-time-line/package.json +1 -1
  119. package/examples/javascript/sliced-funnel/package.json +1 -1
  120. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  121. package/examples/javascript/sliced-pyramid/package.json +1 -1
  122. package/examples/javascript/stock-chart/package.json +1 -1
  123. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  124. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  125. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  126. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  127. package/examples/javascript/stock-chart-live/package.json +1 -1
  128. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  129. package/examples/javascript/venn-diagram/package.json +1 -1
  130. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  131. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  132. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  133. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  134. package/examples/javascript/xy-bubble/package.json +1 -1
  135. package/examples/javascript/xy-candlestick/package.json +1 -1
  136. package/examples/javascript/xy-clustered-column/package.json +1 -1
  137. package/examples/javascript/xy-column/package.json +1 -1
  138. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  139. package/examples/javascript/xy-data-grouping/package.json +1 -1
  140. package/examples/javascript/xy-draggable-range/package.json +1 -1
  141. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  142. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  143. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  144. package/examples/javascript/xy-line/package.json +1 -1
  145. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  146. package/examples/javascript/xy-live-data/package.json +1 -1
  147. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  148. package/examples/javascript/xy-ohlc/package.json +1 -1
  149. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  150. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  151. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  152. package/examples/javascript/xy-stacked-column/package.json +1 -1
  153. package/examples/javascript/xy-stacked-step/package.json +1 -1
  154. package/examples/javascript/xy-stock/package.json +1 -1
  155. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  156. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  157. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  158. package/examples/typescript/flow-chord/package.json +1 -1
  159. package/examples/typescript/flow-chord-directed/package.json +1 -1
  160. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  161. package/examples/typescript/flow-sankey/package.json +1 -1
  162. package/examples/typescript/gauge/package.json +1 -1
  163. package/examples/typescript/gauge-bands/package.json +1 -1
  164. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  165. package/examples/typescript/hierarchy-pack/package.json +1 -1
  166. package/examples/typescript/hierarchy-partition/package.json +1 -1
  167. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  168. package/examples/typescript/hierarchy-tree/package.json +1 -1
  169. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  170. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  171. package/examples/typescript/jest/package.json +1 -1
  172. package/examples/typescript/json-pie/package.json +1 -1
  173. package/examples/typescript/json-xy/package.json +1 -1
  174. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  175. package/examples/typescript/map-clustered-points/package.json +1 -1
  176. package/examples/typescript/map-day-and-night/package.json +1 -1
  177. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  178. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  179. package/examples/typescript/map-with-bubbles/package.json +1 -1
  180. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  181. package/examples/typescript/misc-40-charts/package.json +1 -1
  182. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  183. package/examples/typescript/pie-chart/package.json +1 -1
  184. package/examples/typescript/pie-donut-chart/package.json +1 -1
  185. package/examples/typescript/pie-variable-radius/package.json +1 -1
  186. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  187. package/examples/typescript/radar-heat-map/package.json +1 -1
  188. package/examples/typescript/radar-line/package.json +1 -1
  189. package/examples/typescript/radar-time-line/package.json +1 -1
  190. package/examples/typescript/sliced-funnel/package.json +1 -1
  191. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  192. package/examples/typescript/sliced-pyramid/package.json +1 -1
  193. package/examples/typescript/stock-chart/package.json +1 -1
  194. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  195. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  196. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  197. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  198. package/examples/typescript/stock-chart-live/package.json +1 -1
  199. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  200. package/examples/typescript/venn-diagram/package.json +1 -1
  201. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  202. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  203. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  204. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  205. package/examples/typescript/xy-bubble/package.json +1 -1
  206. package/examples/typescript/xy-candlestick/package.json +1 -1
  207. package/examples/typescript/xy-clustered-column/package.json +1 -1
  208. package/examples/typescript/xy-column/package.json +1 -1
  209. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  210. package/examples/typescript/xy-data-grouping/package.json +1 -1
  211. package/examples/typescript/xy-draggable-range/package.json +1 -1
  212. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  213. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  214. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  215. package/examples/typescript/xy-line/package.json +1 -1
  216. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  217. package/examples/typescript/xy-live-data/package.json +1 -1
  218. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  219. package/examples/typescript/xy-ohlc/package.json +1 -1
  220. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  221. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  222. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  223. package/examples/typescript/xy-stacked-column/package.json +1 -1
  224. package/examples/typescript/xy-stacked-step/package.json +1 -1
  225. package/examples/typescript/xy-stock/package.json +1 -1
  226. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  227. package/index.d.ts +3 -0
  228. package/index.d.ts.map +1 -1
  229. package/index.js +3 -0
  230. package/index.js.map +1 -1
  231. package/package.json +1 -1
@@ -0,0 +1,278 @@
1
+ import { Label } from "./Label";
2
+ import { Container } from "./Container";
3
+ import { RoundedRectangle } from "./RoundedRectangle";
4
+ import { Percent } from "../util/Percent";
5
+ import { color } from "../util/Color";
6
+ import * as $utils from "../util/Utils";
7
+ import * as $type from "../util/Type";
8
+ import * as $array from "../util/Array";
9
+ /**
10
+ * Editable label.
11
+ *
12
+ * @since 5.9.5
13
+ */
14
+ export class EditableLabel extends Label {
15
+ _afterNew() {
16
+ super._afterNew();
17
+ const input = this.children.push(Container.new(this._root, {
18
+ html: "<textarea class=\"am5-editable-label\"></textarea>",
19
+ isMeasured: false
20
+ }));
21
+ input.hide();
22
+ const editOn = this.get("editOn", "click");
23
+ if (editOn != "none") {
24
+ input.events.on(editOn, (_ev) => {
25
+ // this is here just to make it interactive
26
+ });
27
+ this.events.on(editOn, (_ev) => {
28
+ this.set("active", true);
29
+ });
30
+ }
31
+ this.setPrivate("input", input);
32
+ // Set background
33
+ let background = this.get("background");
34
+ if (!background) {
35
+ background = this.set("background", RoundedRectangle.new(this._root, {
36
+ themeTags: ["editablelabel", "background"]
37
+ }));
38
+ }
39
+ else {
40
+ background.set("themeTags", ["editablelabel", "background"]);
41
+ }
42
+ }
43
+ _prepareChildren() {
44
+ super._prepareChildren();
45
+ this._maybeInitTextarea();
46
+ }
47
+ _updateChildren() {
48
+ super._updateChildren();
49
+ if (this.isDirty("active")) {
50
+ const editing = this.get("active", false);
51
+ if (editing) {
52
+ this._startEditing();
53
+ }
54
+ else {
55
+ this._stopEditing();
56
+ }
57
+ const bg = this.get("background");
58
+ if (bg) {
59
+ bg.set("active", editing);
60
+ }
61
+ }
62
+ ;
63
+ this._syncText();
64
+ this._syncStyle();
65
+ }
66
+ _maybeInitTextarea() {
67
+ if (!this._isInited()) {
68
+ const input = this.getPrivate("input");
69
+ if (input && input.getPrivate("htmlElement")) {
70
+ const el = input.getPrivate("htmlElement");
71
+ const textarea = el.querySelector(".am5-editable-label");
72
+ if (textarea) {
73
+ this.setPrivate("textarea", textarea);
74
+ // Resize textarea on keypress
75
+ textarea.addEventListener("input", _ev => {
76
+ if (this.get("multiLine") === false) {
77
+ // replace line breaks with spaces for single-line labels
78
+ textarea.value = textarea.value.replace(/\n/g, " ");
79
+ }
80
+ this.set("text", textarea.value);
81
+ this._syncStyle();
82
+ });
83
+ // Finish editing on blur
84
+ textarea.addEventListener("blur", _ev => this.set("active", false));
85
+ // Finish editing on ESC press
86
+ if ($utils.supports("keyboardevents")) {
87
+ this._disposers.push($utils.addEventListener(document, "keydown", (ev) => {
88
+ if ($utils.getEventKey(ev) == "Escape") {
89
+ this.set("active", false);
90
+ }
91
+ }));
92
+ }
93
+ // Intercept ENTER if necessary
94
+ this._disposers.push($utils.addEventListener(document, "keydown", (ev) => {
95
+ if ($utils.getEventKey(ev) == "Enter" && this.get("multiLine") === false) {
96
+ // Single-line label, save instead of breaking into new line
97
+ ev.preventDefault();
98
+ this.set("active", false);
99
+ }
100
+ }));
101
+ this.events.dispatch("inited", {
102
+ type: "inited",
103
+ target: this
104
+ });
105
+ }
106
+ }
107
+ }
108
+ }
109
+ _isInited() {
110
+ return this.getPrivate("textarea") ? true : false;
111
+ }
112
+ _startEditing() {
113
+ if (!this._isInited()) {
114
+ this.events.once("inited", () => {
115
+ this._startEditing();
116
+ });
117
+ return;
118
+ }
119
+ this._text.set("opacity", 0);
120
+ const input = this.getPrivate("input");
121
+ const textarea = this.getPrivate("textarea");
122
+ if (textarea) {
123
+ if (this.get("text", "") == "") {
124
+ this.set("text", " ");
125
+ }
126
+ input.show(0);
127
+ this.setTimeout(() => {
128
+ // size textarea to fit its actual content
129
+ this._syncStyle();
130
+ textarea.focus();
131
+ }, 100);
132
+ }
133
+ }
134
+ _stopEditing() {
135
+ if (!this._isInited()) {
136
+ this.events.once("inited", () => {
137
+ this._stopEditing();
138
+ });
139
+ return;
140
+ }
141
+ const input = this.getPrivate("input");
142
+ const textarea = this.getPrivate("textarea");
143
+ if (textarea) {
144
+ this.set("text", textarea.value);
145
+ input.hide(0);
146
+ this._text.set("opacity", 1);
147
+ }
148
+ }
149
+ _syncStyle() {
150
+ const input = this.getPrivate("input");
151
+ const textarea = this.getPrivate("textarea");
152
+ if (textarea) {
153
+ // Set up HTML
154
+ const el = input.getPrivate("htmlElement");
155
+ // Reset all styles
156
+ const computedStyles = window.getComputedStyle(textarea);
157
+ $array.each(computedStyles, (style) => {
158
+ textarea.style[style] = "initial";
159
+ });
160
+ // Remove textarea attributes
161
+ textarea.style.color = this.get("fill", color(0x000000)).toCSS(this.get("fillOpacity", 1));
162
+ textarea.style.backgroundColor = "rgba(0, 0, 0, 0)";
163
+ textarea.style.border = "none";
164
+ textarea.style.outline = "none";
165
+ textarea.style.padding = "0";
166
+ // Wrapping
167
+ textarea.wrap = "off";
168
+ textarea.style.resize = "none";
169
+ // Place carret under mouse cursor
170
+ // @todo
171
+ // Size
172
+ // Handle maxWidth
173
+ textarea.style.overflow = "hidden";
174
+ const maxWidth = this.get("maxWidth", 0) - this.get("paddingLeft", 0) - this.get("paddingRight", 0);
175
+ if (maxWidth > 0) {
176
+ textarea.style.maxWidth = maxWidth + "px";
177
+ }
178
+ else {
179
+ textarea.style.minWidth = textarea.scrollWidth + "px";
180
+ }
181
+ textarea.style.height = "auto";
182
+ textarea.style.minHeight = textarea.scrollHeight + "px";
183
+ // Line height
184
+ const lineHeight = this.get("lineHeight");
185
+ if (!lineHeight) {
186
+ textarea.style.lineHeight = "1.2";
187
+ }
188
+ else if (lineHeight instanceof Percent) {
189
+ textarea.style.lineHeight = lineHeight.value + "";
190
+ }
191
+ else if ($type.isNumber(lineHeight)) {
192
+ textarea.style.lineHeight = lineHeight + "";
193
+ }
194
+ // Font stuff
195
+ let fontFamily = this.get("fontFamily");
196
+ if (!fontFamily) {
197
+ fontFamily = getComputedStyle(input.getPrivate("htmlElement"), "font-family").getPropertyValue("font-family");
198
+ }
199
+ textarea.style.fontFamily = fontFamily;
200
+ let fontSize = this.get("fontSize");
201
+ if (!fontSize) {
202
+ fontSize = getComputedStyle(input.getPrivate("htmlElement"), "font-size").getPropertyValue("font-size");
203
+ }
204
+ else if ($type.isNumber(fontSize)) {
205
+ fontSize = fontSize + "px";
206
+ }
207
+ else {
208
+ fontSize = fontSize;
209
+ }
210
+ textarea.style.fontSize = fontSize;
211
+ let fontWeight = this.get("fontWeight");
212
+ if (!fontWeight) {
213
+ fontWeight = getComputedStyle(input.getPrivate("htmlElement"), "font-weight").getPropertyValue("font-weight");
214
+ }
215
+ else {
216
+ fontWeight = fontWeight;
217
+ }
218
+ textarea.style.fontWeight = fontWeight;
219
+ let fontStyle = this.get("fontStyle");
220
+ if (!fontStyle) {
221
+ fontStyle = getComputedStyle(input.getPrivate("htmlElement"), "font-style").getPropertyValue("font-style");
222
+ }
223
+ else {
224
+ fontStyle = fontStyle;
225
+ }
226
+ textarea.style.fontStyle = fontStyle;
227
+ const oversizeBehavior = this.get("oversizedBehavior");
228
+ if (oversizeBehavior == "wrap") {
229
+ textarea.style.whiteSpace = "pre-wrap";
230
+ }
231
+ else {
232
+ textarea.style.whiteSpace = "nowrap";
233
+ }
234
+ // Adjust textarea postion based on textAlign setting
235
+ this._root.events.on("frameended", () => {
236
+ const textAlign = this.get("textAlign", "start");
237
+ if (textAlign == "center") {
238
+ textarea.style.textAlign = "center";
239
+ if (!el.style.transform.match(/translateX/)) {
240
+ el.style.transform += " translateX(-50%)";
241
+ }
242
+ }
243
+ else if (textAlign == "end") {
244
+ textarea.style.textAlign = "right";
245
+ if (!el.style.transform.match(/translateX/)) {
246
+ el.style.transform += "translateX(-100%)";
247
+ }
248
+ }
249
+ else {
250
+ textarea.style.textAlign = textAlign;
251
+ }
252
+ });
253
+ }
254
+ }
255
+ _syncText() {
256
+ const textarea = this.getPrivate("textarea");
257
+ let text = this.get("text", "");
258
+ if (text == " ") {
259
+ text = "";
260
+ }
261
+ if (textarea) {
262
+ textarea.value = text;
263
+ }
264
+ }
265
+ }
266
+ Object.defineProperty(EditableLabel, "className", {
267
+ enumerable: true,
268
+ configurable: true,
269
+ writable: true,
270
+ value: "EditableLabel"
271
+ });
272
+ Object.defineProperty(EditableLabel, "classNames", {
273
+ enumerable: true,
274
+ configurable: true,
275
+ writable: true,
276
+ value: Label.classNames.concat([EditableLabel.className])
277
+ });
278
+ //# sourceMappingURL=EditableLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditableLabel.js","sourceRoot":"","sources":["../../../../../src/.internal/core/render/EditableLabel.ts"],"names":[],"mappings":"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","sourcesContent":["import { Label, ILabelPrivate, ILabelSettings, ILabelEvents } from \"./Label\";\nimport { Container } from \"./Container\";\nimport { RoundedRectangle } from \"./RoundedRectangle\";\nimport { Percent } from \"../util/Percent\"\nimport { color } from \"../util/Color\";\n\n\nimport * as $utils from \"../util/Utils\"\nimport * as $type from \"../util/Type\"\nimport * as $array from \"../util/Array\"\n\nexport interface IEditableLabelSettings extends ILabelSettings {\n\n\t/**\n\t * Start editing on click (`\"click\"`; default) or double-click ('\"dblclick\"').\n\t *\n\t * All available options:\n\t *\n\t * *`\"click\"` (default)\n\t * *`\"dblclick\"`\n\t * *`\"rightclick\"`\n\t * *`\"middleclick\"`\n\t * *`\"none\"`\n\t *\n\t * @default \"click\"\n\t */\n\teditOn?: \"click\" | \"dblclick\" | \"rightclick\" | \"middleclick\" | \"none\";\n\n\t/**\n\t * Allow multiple lines (`true` - dfault) or no (`false`).\n\t *\n\t * @default true\n\t * @since 5.9.6\n\t */\n\tmultiLine?: boolean;\n\n}\n\nexport interface IEditableLabelPrivate extends ILabelPrivate {\n\tinput: Container;\n\ttextarea: HTMLTextAreaElement;\n}\n\nexport interface IEditableLabelEvents extends ILabelEvents {\n\tinited: {};\n}\n\n/**\n * Editable label.\n *\n * @since 5.9.5\n */\nexport class EditableLabel extends Label {\n\n\tdeclare public _settings: IEditableLabelSettings;\n\tdeclare public _privateSettings: IEditableLabelPrivate;\n\tdeclare public _events: IEditableLabelEvents;\n\n\tpublic static className: string = \"EditableLabel\";\n\tpublic static classNames: Array<string> = Label.classNames.concat([EditableLabel.className]);\n\n\tprotected _afterNew() {\n\t\tsuper._afterNew();\n\n\t\tconst input = this.children.push(Container.new(this._root, {\n\t\t\thtml: \"<textarea class=\\\"am5-editable-label\\\"></textarea>\",\n\t\t\tisMeasured: false\n\t\t}));\n\n\t\tinput.hide();\n\n\t\tconst editOn: any = this.get(\"editOn\", \"click\");\n\n\t\tif (editOn != \"none\") {\n\t\t\tinput.events.on(editOn, (_ev) => {\n\t\t\t\t// this is here just to make it interactive\n\t\t\t});\n\n\t\t\tthis.events.on(editOn, (_ev) => {\n\t\t\t\tthis.set(\"active\", true);\n\t\t\t});\n\t\t}\n\n\t\tthis.setPrivate(\"input\", input);\n\n\t\t// Set background\n\t\tlet background = this.get(\"background\");\n\n\t\tif (!background) {\n\t\t\tbackground = this.set(\"background\", RoundedRectangle.new(this._root, {\n\t\t\t\tthemeTags: [\"editablelabel\", \"background\"]\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tbackground.set(\"themeTags\", [\"editablelabel\", \"background\"]);\n\t\t}\n\n\t}\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\t\tthis._maybeInitTextarea();\n\t}\n\n\tpublic _updateChildren() {\n\t\tsuper._updateChildren();\n\n\t\tif (this.isDirty(\"active\")) {\n\n\t\t\tconst editing = this.get(\"active\", false);\n\t\t\tif (editing) {\n\t\t\t\tthis._startEditing();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._stopEditing();\n\t\t\t}\n\n\t\t\tconst bg = this.get(\"background\");\n\t\t\tif (bg) {\n\t\t\t\tbg.set(\"active\", editing);\n\t\t\t}\n\t\t};\n\n\t\tthis._syncText();\n\t\tthis._syncStyle();\n\t}\n\n\tprotected _maybeInitTextarea() {\n\t\tif (!this._isInited()) {\n\t\t\tconst input = this.getPrivate(\"input\");\n\t\t\tif (input && input.getPrivate(\"htmlElement\")) {\n\t\t\t\tconst el = input.getPrivate(\"htmlElement\")!;\n\t\t\t\tconst textarea = el.querySelector(\".am5-editable-label\") as HTMLTextAreaElement;\n\t\t\t\tif (textarea) {\n\t\t\t\t\tthis.setPrivate(\"textarea\", textarea as HTMLTextAreaElement);\n\n\t\t\t\t\t// Resize textarea on keypress\n\t\t\t\t\ttextarea.addEventListener(\"input\", _ev => {\n\t\t\t\t\t\tif (this.get(\"multiLine\") === false) {\n\t\t\t\t\t\t\t// replace line breaks with spaces for single-line labels\n\t\t\t\t\t\t\ttextarea.value = textarea.value.replace(/\\n/g, \" \");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.set(\"text\", textarea.value);\n\t\t\t\t\t\tthis._syncStyle();\n\t\t\t\t\t});\n\n\t\t\t\t\t// Finish editing on blur\n\t\t\t\t\ttextarea.addEventListener(\"blur\", _ev => this.set(\"active\", false));\n\n\t\t\t\t\t// Finish editing on ESC press\n\t\t\t\t\tif ($utils.supports(\"keyboardevents\")) {\n\t\t\t\t\t\tthis._disposers.push($utils.addEventListener(document, \"keydown\", (ev: KeyboardEvent) => {\n\t\t\t\t\t\t\tif ($utils.getEventKey(ev) == \"Escape\") {\n\t\t\t\t\t\t\t\tthis.set(\"active\", false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\n\t\t\t\t\t// Intercept ENTER if necessary\n\t\t\t\t\tthis._disposers.push($utils.addEventListener(document, \"keydown\", (ev: KeyboardEvent) => {\n\t\t\t\t\t\tif ($utils.getEventKey(ev) == \"Enter\" && this.get(\"multiLine\") === false) {\n\t\t\t\t\t\t\t// Single-line label, save instead of breaking into new line\n\t\t\t\t\t\t\tev.preventDefault();\n\t\t\t\t\t\t\tthis.set(\"active\", false);\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\n\t\t\t\t\tthis.events.dispatch(\"inited\", {\n\t\t\t\t\t\ttype: \"inited\",\n\t\t\t\t\t\ttarget: this\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _isInited(): boolean {\n\t\treturn this.getPrivate(\"textarea\") ? true : false;\n\t}\n\n\tprotected _startEditing() {\n\t\tif (!this._isInited()) {\n\t\t\tthis.events.once(\"inited\", () => {\n\t\t\t\tthis._startEditing();\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tthis._text.set(\"opacity\", 0);\n\t\tconst input = this.getPrivate(\"input\");\n\t\tconst textarea = this.getPrivate(\"textarea\");\n\t\tif (textarea) {\n\t\t\tif (this.get(\"text\", \"\") == \"\") {\n\t\t\t\tthis.set(\"text\", \" \");\n\t\t\t}\n\t\t\tinput.show(0);\n\t\t\tthis.setTimeout(() => {\n\t\t\t\t// size textarea to fit its actual content\n\t\t\t\tthis._syncStyle();\n\t\t\t\ttextarea.focus();\n\t\t\t}, 100);\n\t\t}\n\t}\n\n\tprotected _stopEditing() {\n\t\tif (!this._isInited()) {\n\t\t\tthis.events.once(\"inited\", () => {\n\t\t\t\tthis._stopEditing();\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst input = this.getPrivate(\"input\");\n\t\tconst textarea = this.getPrivate(\"textarea\");\n\t\tif (textarea) {\n\t\t\tthis.set(\"text\", textarea.value);\n\t\t\tinput.hide(0);\n\t\t\tthis._text.set(\"opacity\", 1);\n\t\t}\n\t}\n\n\tprotected _syncStyle() {\n\t\tconst input = this.getPrivate(\"input\");\n\t\tconst textarea = this.getPrivate(\"textarea\");\n\t\tif (textarea) {\n\t\t\t// Set up HTML\n\t\t\tconst el = input.getPrivate(\"htmlElement\")!;\n\n\t\t\t// Reset all styles\n\t\t\tconst computedStyles = window.getComputedStyle(textarea);\n\t\t\t$array.each(computedStyles, (style: any) => {\n\t\t\t\ttextarea.style[style] = \"initial\";\n\t\t\t});\n\n\t\t\t// Remove textarea attributes\n\t\t\ttextarea.style.color = this.get(\"fill\", color(0x000000)).toCSS(this.get(\"fillOpacity\", 1));\n\t\t\ttextarea.style.backgroundColor = \"rgba(0, 0, 0, 0)\";\n\t\t\ttextarea.style.border = \"none\";\n\t\t\ttextarea.style.outline = \"none\";\n\t\t\ttextarea.style.padding = \"0\";\n\n\t\t\t// Wrapping\n\t\t\ttextarea.wrap = \"off\";\n\t\t\ttextarea.style.resize = \"none\";\n\n\t\t\t// Place carret under mouse cursor\n\t\t\t// @todo\n\n\t\t\t// Size\n\t\t\t// Handle maxWidth\n\t\t\ttextarea.style.overflow = \"hidden\";\n\t\t\tconst maxWidth = this.get(\"maxWidth\", 0) - this.get(\"paddingLeft\", 0) - this.get(\"paddingRight\", 0);\n\t\t\tif (maxWidth > 0) {\n\t\t\t\ttextarea.style.maxWidth = maxWidth + \"px\";\n\t\t\t}\n\t\t\telse {\n\t\t\t\ttextarea.style.minWidth = textarea.scrollWidth + \"px\";\n\t\t\t}\n\n\t\t\ttextarea.style.height = \"auto\";\n\t\t\ttextarea.style.minHeight = textarea.scrollHeight + \"px\";\n\n\t\t\t// Line height\n\t\t\tconst lineHeight = this.get(\"lineHeight\");\n\t\t\tif (!lineHeight) {\n\t\t\t\ttextarea.style.lineHeight = \"1.2\";\n\t\t\t}\n\t\t\telse if (lineHeight instanceof Percent) {\n\t\t\t\ttextarea.style.lineHeight = lineHeight.value + \"\";\n\t\t\t}\n\t\t\telse if ($type.isNumber(lineHeight)) {\n\t\t\t\ttextarea.style.lineHeight = lineHeight + \"\";\n\t\t\t}\n\n\t\t\t// Font stuff\n\t\t\tlet fontFamily: any = this.get(\"fontFamily\");\n\t\t\tif (!fontFamily) {\n\t\t\t\tfontFamily = getComputedStyle(input.getPrivate(\"htmlElement\")!, \"font-family\").getPropertyValue(\"font-family\");\n\t\t\t}\n\t\t\ttextarea.style.fontFamily = fontFamily;\n\n\t\t\tlet fontSize: any = this.get(\"fontSize\");\n\t\t\tif (!fontSize) {\n\t\t\t\tfontSize = getComputedStyle(input.getPrivate(\"htmlElement\")!, \"font-size\").getPropertyValue(\"font-size\");\n\t\t\t}\n\t\t\telse if ($type.isNumber(fontSize)) {\n\t\t\t\tfontSize = fontSize + \"px\";\n\t\t\t}\n\t\t\telse {\n\t\t\t\tfontSize = fontSize;\n\t\t\t}\n\t\t\ttextarea.style.fontSize = fontSize;\n\n\t\t\tlet fontWeight: any = this.get(\"fontWeight\");\n\t\t\tif (!fontWeight) {\n\t\t\t\tfontWeight = getComputedStyle(input.getPrivate(\"htmlElement\")!, \"font-weight\").getPropertyValue(\"font-weight\");\n\t\t\t}\n\t\t\telse {\n\t\t\t\tfontWeight = fontWeight;\n\t\t\t}\n\t\t\ttextarea.style.fontWeight = fontWeight;\n\n\t\t\tlet fontStyle: any = this.get(\"fontStyle\");\n\t\t\tif (!fontStyle) {\n\t\t\t\tfontStyle = getComputedStyle(input.getPrivate(\"htmlElement\")!, \"font-style\").getPropertyValue(\"font-style\");\n\t\t\t}\n\t\t\telse {\n\t\t\t\tfontStyle = fontStyle;\n\t\t\t}\n\t\t\ttextarea.style.fontStyle = fontStyle;\n\n\t\t\tconst oversizeBehavior = this.get(\"oversizedBehavior\");\n\t\t\tif (oversizeBehavior == \"wrap\") {\n\t\t\t\ttextarea.style.whiteSpace = \"pre-wrap\";\n\t\t\t}\n\t\t\telse {\n\t\t\t\ttextarea.style.whiteSpace = \"nowrap\";\n\t\t\t}\n\n\t\t\t// Adjust textarea postion based on textAlign setting\n\t\t\tthis._root.events.on(\"frameended\", () => {\n\t\t\t\tconst textAlign = this.get(\"textAlign\", \"start\");\n\t\t\t\tif (textAlign == \"center\") {\n\t\t\t\t\ttextarea.style.textAlign = \"center\";\n\t\t\t\t\tif (!el.style.transform.match(/translateX/)) {\n\t\t\t\t\t\tel.style.transform += \" translateX(-50%)\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (textAlign == \"end\") {\n\t\t\t\t\ttextarea.style.textAlign = \"right\";\n\t\t\t\t\tif (!el.style.transform.match(/translateX/)) {\n\t\t\t\t\t\tel.style.transform += \"translateX(-100%)\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttextarea.style.textAlign = textAlign;\n\t\t\t\t}\n\t\t\t});\n\n\t\t}\n\t}\n\n\tprotected _syncText() {\n\t\tconst textarea = this.getPrivate(\"textarea\");\n\t\tlet text = this.get(\"text\", \"\");\n\t\tif (text == \" \") {\n\t\t\ttext = \"\";\n\t\t}\n\t\tif (textarea) {\n\t\t\ttextarea.value = text;\n\t\t}\n\t}\n\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Graphics.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Graphics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAM1D,eAAO,MAAM,cAAc,UAAqU,CAAC;AAEjW,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IAEzD;;;;OAIG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC;IAEb;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC;IAEf;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,YAAY,CAAC,EAAE,QAAQ,CAAC;IAExB;;;;OAIG;IACH,cAAc,CAAC,EAAE,QAAQ,CAAC;IAE1B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAEpC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAExD;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAE3B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;CACvC;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc;CAEvD;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;CAErD;AAED;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,MAAM;IAEpB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,OAAO,EAAE,eAAe,CAAC;IAEjC,QAAQ,EAAE,SAAS,CAAuC;IAEjE,SAAS,CAAC,MAAM,UAAS;IAEzB,OAAc,SAAS,EAAE,MAAM,CAAc;IAC7C,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAkD;IAElF,cAAc;IAiDd,QAAQ;IAuCR,aAAa;CAuKpB"}
1
+ {"version":3,"file":"Graphics.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Graphics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAM1D,eAAO,MAAM,cAAc,UAAqU,CAAC;AAEjW,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IAEzD;;;;OAIG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC;IAEb;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC;IAEf;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,YAAY,CAAC,EAAE,QAAQ,CAAC;IAExB;;;;OAIG;IACH,cAAc,CAAC,EAAE,QAAQ,CAAC;IAE1B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAEpC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAExD;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAE3B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;CACvC;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc;CAEvD;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;CAErD;AAED;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,MAAM;IAEpB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,OAAO,EAAE,eAAe,CAAC;IAEjC,QAAQ,EAAE,SAAS,CAAuC;IAEjE,SAAS,CAAC,MAAM,UAAS;IAEzB,OAAc,SAAS,EAAE,MAAM,CAAc;IAC7C,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAkD;IAElF,cAAc;IAiDd,QAAQ;IAwCR,aAAa;CAoJpB"}
@@ -89,7 +89,7 @@ export class Graphics extends Sprite {
89
89
  const blendMode = this.get("blendMode", BlendMode.NORMAL);
90
90
  this._display.blendMode = blendMode;
91
91
  const draw = this.get("draw");
92
- if (draw) {
92
+ if (draw && typeof draw === "function") {
93
93
  draw(this._display, this);
94
94
  }
95
95
  const svgPath = this.get("svgPath");
@@ -113,7 +113,6 @@ export class Graphics extends Sprite {
113
113
  const shadowOffsetX = this.get("shadowOffsetX");
114
114
  const shadowOffsetY = this.get("shadowOffsetY");
115
115
  const shadowOpacity = this.get("shadowOpacity");
116
- //const bounds = this._display.getLocalBounds();
117
116
  if (shadowColor && (shadowBlur || shadowOffsetX || shadowOffsetY)) {
118
117
  this._display.shadow(shadowColor, shadowBlur, shadowOffsetX, shadowOffsetY, shadowOpacity);
119
118
  }
@@ -144,23 +143,6 @@ export class Graphics extends Sprite {
144
143
  }
145
144
  }
146
145
  if (fillPattern) {
147
- /*
148
- let changed = false;
149
- if (fill && (!fillPattern.get("fill") || fillPattern.get("fillInherited"))) {
150
- fillPattern.set("fill", fill);
151
- fillPattern.set("fillInherited", true)
152
- changed = true;
153
- }
154
- if (stroke && (!fillPattern.get("color") || fillPattern.get("colorInherited"))) {
155
- fillPattern.set("color", stroke);
156
- fillPattern.set("colorInherited", true)
157
- changed = true;
158
- }
159
- if (changed) {
160
- // @todo: is this OK?
161
- fillPattern._changed();
162
- }
163
- */
164
146
  const pattern = fillPattern.pattern;
165
147
  if (pattern) {
166
148
  this._display.beginFill(pattern, fillOpacity);
@@ -1 +1 @@
1
- {"version":3,"file":"Graphics.js","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Graphics.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Color } from \"../util/Color\";\nimport type { Pattern } from \"../render/patterns/Pattern\";\nimport type { Gradient } from \"../render/gradients/Gradient\";\n\nimport { PicturePattern } from \"../render/patterns/PicturePattern\";\nimport { ISpriteSettings, ISpritePrivate, ISpriteEvents, Sprite } from \"./Sprite\";\nimport { IGraphics, BlendMode } from \"./backend/Renderer\";\n\nimport * as $type from \"../util/Type\";\nimport * as $array from \"../util/Array\";\n\n\nexport const visualSettings = [\"fill\", \"fillOpacity\", \"stroke\", \"strokeWidth\", \"strokeOpacity\", \"fillPattern\", \"strokePattern\", \"fillGradient\", \"strokeGradient\", \"strokeDasharray\", \"strokeDashoffset\", \"shadowBlur\", \"shadowColor\", \"shadowOpacity\", \"shadowOffsetX\", \"shadowOffsetY\", \"blur\", \"sepia\", \"invert\", \"brightness\", \"hue\", \"contrast\", \"saturate\"];\n\nexport interface IGraphicsSettings extends ISpriteSettings {\n\n\t/**\n\t * Fill color.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/} for more information\n\t */\n\tfill?: Color;\n\n\t/**\n\t * Stroke (border or line) color.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/} for more information\n\t */\n\tstroke?: Color;\n\n\t/**\n\t * Fill pattern.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/patterns/} for more information\n\t */\n\tfillPattern?: Pattern;\n\n\t/**\n\t * Stroke (border or line) pattern.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/patterns/} for more information\n\t */\n\tstrokePattern?: Pattern;\n\n\t/**\n\t * Fill gradient.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/gradients/} for more information\n\t */\n\tfillGradient?: Gradient;\n\n\t/**\n\t * Stroke (border or line) gradient.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/gradients/} for more information\n\t */\n\tstrokeGradient?: Gradient;\n\n\t/**\n\t * Stroke (border or line) dash settings.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/#Dashed_lines} for more information\n\t */\n\tstrokeDasharray?: number[] | number;\n\n\t/**\n\t * Stroke (border or line) dash offset.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/#Dashed_lines} for more information\n\t */\n\tstrokeDashoffset?: number;\n\n\t/**\n\t * Opacity of the fill. 0 - fully transparent; 1 - fully opaque.\n\t */\n\tfillOpacity?: number;\n\n\t/**\n\t * Opacity of the stroke (border or line). 0 - fully transparent; 1 - fully opaque.\n\t */\n\tstrokeOpacity?: number;\n\n\t/**\n\t * Width of the stroke (border or line) in pixels.\n\t */\n\tstrokeWidth?: number;\n\n\t/**\n\t * Indicates if stroke of a Graphics should stay the same when it's scale changes. Note, this doesn't take into account parent container scale changes.\n\t * @default false\n\t */\n\tnonScalingStroke?: boolean;\n\n\t/**\n\t * Drawing function.\n\t *\n\t * Must use renderer (`display` parameter) methods to draw.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/graphics/#Custom_draw_functions} for more info\n\t */\n\tdraw?: (display: IGraphics, graphics: Graphics) => void;\n\n\t/**\n\t * Rendering mode.\n\t *\n\t * @default BlendMode.NORMAL (\"source-over\")\n\t * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation} for more information\n\t * @ignore\n\t */\n\tblendMode?: BlendMode;\n\n\t/**\n\t * Draw a shape using an SVG path.\n\t *\n\t * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths} for more information\n\t */\n\tsvgPath?: string;\n\n\t/**\n\t * Color of the element's shadow.\n\t *\n\t * For this to work at least one of the following needs to be set as well:\n\t * `shadowBlur`, `shadowOffsetX`, `shadowOffsetY`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowColor?: Color | null;\n\n\t/**\n\t * Blurriness of the the shadow.\n\t *\n\t * The bigger the number, the more blurry shadow will be.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowBlur?: number;\n\n\t/**\n\t * Horizontal shadow offset in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOffsetX?: number;\n\n\t/**\n\t * Vertical shadow offset in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOffsetY?: number;\n\n\t/**\n\t * Opacity of the shadow (0-1).\n\t *\n\t * If not set, will use the same as `fillOpacity` of the element.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOpacity?: number;\n\n\t/**\n\t * A method to be used on anchor points (joints) of the multi-point line.\n\t *\n\t * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin} for more info\n\t * @default \"miter\"\n\t * @since 5.2.10\n\t */\n\tlineJoin?: \"miter\" | \"round\" | \"bevel\";\n}\n\nexport interface IGraphicsPrivate extends ISpritePrivate {\n\n}\n\nexport interface IGraphicsEvents extends ISpriteEvents {\n\n}\n\n/**\n * Base class used for drawing shapes.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/graphics/} for more info\n * @important\n */\nexport class Graphics extends Sprite {\n\n\tdeclare public _settings: IGraphicsSettings;\n\tdeclare public _privateSettings: IGraphicsPrivate;\n\tdeclare public _events: IGraphicsEvents;\n\n\tpublic _display: IGraphics = this._root._renderer.makeGraphics();\n\n\tprotected _clear = false;\n\n\tpublic static className: string = \"Graphics\";\n\tpublic static classNames: Array<string> = Sprite.classNames.concat([Graphics.className]);\n\n\tpublic _beforeChanged() {\n\t\tsuper._beforeChanged();\n\n\t\tif (this.isDirty(\"draw\") || this.isDirty(\"svgPath\")) {\n\t\t\tthis.markDirtyBounds();\n\t\t}\n\n\t\tif (this.isDirty(\"fill\") || this.isDirty(\"stroke\") || this.isDirty(\"visible\") || this.isDirty(\"forceHidden\") || this.isDirty(\"scale\") || this.isDirty(\"fillGradient\") || this.isDirty(\"strokeGradient\") || this.isDirty(\"fillPattern\") || this.isDirty(\"strokePattern\") || this.isDirty(\"fillOpacity\") || this.isDirty(\"strokeOpacity\") || this.isDirty(\"strokeWidth\") || this.isDirty(\"draw\") || this.isDirty(\"blendMode\") || this.isDirty(\"strokeDasharray\") || this.isDirty(\"strokeDashoffset\") || this.isDirty(\"svgPath\") || this.isDirty(\"lineJoin\") || this.isDirty(\"shadowColor\") || this.isDirty(\"shadowBlur\") || this.isDirty(\"shadowOffsetX\") || this.isDirty(\"shadowOffsetY\")) {\n\t\t\tthis._clear = true;\n\t\t}\n\n\t\tthis._display.crisp = this.get(\"crisp\", false);\n\n\t\tif (this.isDirty(\"fillGradient\")) {\n\t\t\tconst gradient = this.get(\"fillGradient\");\n\t\t\tif (gradient) {\n\t\t\t\tthis._display.isMeasured = true;\n\t\t\t\tconst gradientTarget = gradient.get(\"target\");\n\t\t\t\tif (gradientTarget) {\n\t\t\t\t\tthis._disposers.push(gradientTarget.events.on(\"boundschanged\", () => {\n\t\t\t\t\t\tthis._markDirtyKey(\"fill\");\n\t\t\t\t\t}))\n\t\t\t\t\tthis._disposers.push(\n\t\t\t\t\t\tgradientTarget.events.on(\"positionchanged\", () => {\n\t\t\t\t\t\t\tthis._markDirtyKey(\"fill\");\n\t\t\t\t\t\t}))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"strokeGradient\")) {\n\t\t\tconst gradient = this.get(\"strokeGradient\");\n\t\t\tif (gradient) {\n\t\t\t\tthis._display.isMeasured = true;\n\t\t\t\tconst gradientTarget = gradient.get(\"target\");\n\t\t\t\tif (gradientTarget) {\n\t\t\t\t\tthis._disposers.push(\n\t\t\t\t\t\tgradientTarget.events.on(\"boundschanged\", () => {\n\t\t\t\t\t\t\tthis._markDirtyKey(\"stroke\");\n\t\t\t\t\t\t}))\n\t\t\t\t\tthis._disposers.push(\n\t\t\t\t\t\tgradientTarget.events.on(\"positionchanged\", () => {\n\t\t\t\t\t\t\tthis._markDirtyKey(\"stroke\");\n\t\t\t\t\t\t}))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _changed() {\n\t\tsuper._changed();\n\n\t\tif (this._clear) {\n\t\t\tthis.markDirtyBounds();\n\t\t\tthis.markDirtyLayer();\n\t\t\tthis._display.clear();\n\n\t\t\tlet strokeDasharray = this.get(\"strokeDasharray\");\n\t\t\tif ($type.isNumber(strokeDasharray)) {\n\t\t\t\tif (strokeDasharray < 0.5) {\n\t\t\t\t\tstrokeDasharray = [0];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tstrokeDasharray = [strokeDasharray]\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._display.setLineDash(strokeDasharray as number[]);\n\n\t\t\tconst strokeDashoffset = this.get(\"strokeDashoffset\");\n\t\t\tif (strokeDashoffset) {\n\t\t\t\tthis._display.setLineDashOffset(strokeDashoffset);\n\t\t\t}\n\n\t\t\tconst blendMode = this.get(\"blendMode\", BlendMode.NORMAL);\n\t\t\tthis._display.blendMode = blendMode;\n\n\t\t\tconst draw = this.get(\"draw\");\n\t\t\tif (draw) {\n\t\t\t\tdraw(this._display, this);\n\t\t\t}\n\n\t\t\tconst svgPath = this.get(\"svgPath\");\n\t\t\tif (svgPath != null) {\n\t\t\t\tthis._display.svgPath(svgPath!);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _afterChanged() {\n\t\tsuper._afterChanged();\n\n\t\tif (this._clear) {\n\t\t\tconst fill = this.get(\"fill\");\n\t\t\tconst fillGradient = this.get(\"fillGradient\");\n\t\t\tconst fillPattern = this.get(\"fillPattern\");\n\t\t\tconst fillOpacity = this.get(\"fillOpacity\");\n\n\t\t\tconst stroke = this.get(\"stroke\");\n\t\t\tconst strokeGradient = this.get(\"strokeGradient\");\n\t\t\tconst strokePattern = this.get(\"strokePattern\");\n\n\t\t\tconst shadowColor = this.get(\"shadowColor\");\n\t\t\tconst shadowBlur = this.get(\"shadowBlur\");\n\t\t\tconst shadowOffsetX = this.get(\"shadowOffsetX\");\n\t\t\tconst shadowOffsetY = this.get(\"shadowOffsetY\");\n\t\t\tconst shadowOpacity = this.get(\"shadowOpacity\");\n\n\t\t\t//const bounds = this._display.getLocalBounds();\n\n\t\t\tif (shadowColor && (shadowBlur || shadowOffsetX || shadowOffsetY)) {\n\t\t\t\tthis._display.shadow(shadowColor, shadowBlur, shadowOffsetX, shadowOffsetY, shadowOpacity);\n\t\t\t}\n\n\t\t\tif (fill && !fillGradient) {\n\t\t\t\tthis._display.beginFill(fill, fillOpacity);\n\t\t\t\tthis._display.endFill();\n\t\t\t}\n\n\t\t\tif (fillGradient) {\n\t\t\t\tif (fill) {\n\t\t\t\t\tconst stops = fillGradient.get(\"stops\", []);\n\t\t\t\t\tif (stops.length) {\n\t\t\t\t\t\t$array.each(stops, (stop: any) => {\n\t\t\t\t\t\t\tif ((!stop.color || stop.colorInherited) && fill) {\n\t\t\t\t\t\t\t\tstop.color = fill;\n\t\t\t\t\t\t\t\tstop.colorInherited = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (stop.opacity == null || stop.opacityInherited) {\n\t\t\t\t\t\t\t\tstop.opacity = fillOpacity;\n\t\t\t\t\t\t\t\tstop.opacityInherited = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst gradient = fillGradient.getFill(this);\n\t\t\t\tif (gradient) {\n\t\t\t\t\tthis._display.beginFill(gradient, fillOpacity);\n\t\t\t\t\tthis._display.endFill();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (fillPattern) {\n\t\t\t\t/*\n\t\t\t\tlet changed = false;\n\t\t\t\tif (fill && (!fillPattern.get(\"fill\") || fillPattern.get(\"fillInherited\"))) {\n\t\t\t\t\tfillPattern.set(\"fill\", fill);\n\t\t\t\t\tfillPattern.set(\"fillInherited\", true)\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t\tif (stroke && (!fillPattern.get(\"color\") || fillPattern.get(\"colorInherited\"))) {\n\t\t\t\t\tfillPattern.set(\"color\", stroke);\n\t\t\t\t\tfillPattern.set(\"colorInherited\", true)\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t\tif (changed) {\n\t\t\t\t\t// @todo: is this OK?\n\t\t\t\t\tfillPattern._changed();\n\t\t\t\t}\n\t\t\t\t*/\n\t\t\t\tconst pattern = fillPattern.pattern;\n\t\t\t\tif (pattern) {\n\t\t\t\t\tthis._display.beginFill(pattern, fillOpacity);\n\t\t\t\t\tthis._display.endFill();\n\n\t\t\t\t\tif (fillPattern instanceof PicturePattern) {\n\t\t\t\t\t\tfillPattern.events.once(\"loaded\", () => {\n\t\t\t\t\t\t\tthis._clear = true;\n\t\t\t\t\t\t\tthis.markDirty();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (stroke || strokeGradient || strokePattern) {\n\t\t\t\tconst strokeOpacity = this.get(\"strokeOpacity\");\n\t\t\t\tlet strokeWidth = this.get(\"strokeWidth\", 1);\n\n\t\t\t\tif (this.get(\"nonScalingStroke\")) {\n\t\t\t\t\tstrokeWidth = strokeWidth / this.get(\"scale\", 1)\n\t\t\t\t}\n\n\t\t\t\tif (this.get(\"crisp\")) {\n\t\t\t\t\tstrokeWidth /= this._root._renderer.resolution;\n\t\t\t\t}\n\n\t\t\t\tconst lineJoin = this.get(\"lineJoin\");\n\n\t\t\t\tif (stroke && !strokeGradient) {\n\t\t\t\t\tthis._display.lineStyle(strokeWidth, stroke, strokeOpacity, lineJoin);\n\t\t\t\t\tthis._display.endStroke();\n\t\t\t\t}\n\n\n\t\t\t\tif (strokeGradient) {\n\t\t\t\t\tconst stops = strokeGradient.get(\"stops\", []);\n\t\t\t\t\tif (stops.length) {\n\t\t\t\t\t\t$array.each(stops, (stop: any) => {\n\t\t\t\t\t\t\tif ((!stop.color || stop.colorInherited) && stroke) {\n\t\t\t\t\t\t\t\tstop.color = stroke;\n\t\t\t\t\t\t\t\tstop.colorInherited = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (stop.opacity == null || stop.opacityInherited) {\n\t\t\t\t\t\t\t\tstop.opacity = strokeOpacity;\n\t\t\t\t\t\t\t\tstop.opacityInherited = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t\tconst gradient = strokeGradient.getFill(this);\n\t\t\t\t\tif (gradient) {\n\t\t\t\t\t\tthis._display.lineStyle(strokeWidth, gradient, strokeOpacity, lineJoin);\n\t\t\t\t\t\tthis._display.endStroke();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (strokePattern) {\n\t\t\t\t\t/*\n\t\t\t\t\tlet changed = false;\n\t\t\t\t\t\n\t\t\t\t\tif (stroke && (!strokePattern.get(\"color\") || strokePattern.get(\"colorInherited\"))) {\n\t\t\t\t\t\tstrokePattern.set(\"color\", stroke);\n\t\t\t\t\t\tstrokePattern.set(\"colorInherited\", true);\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t\tif (changed) {\n\t\t\t\t\t\t// @todo: is this OK?\n\t\t\t\t\t\tstrokePattern._changed();\n\t\t\t\t\t}\n\t\t\t\t\t*/\n\t\t\t\t\tlet pattern = strokePattern.pattern;\n\n\t\t\t\t\tif (pattern) {\n\t\t\t\t\t\tthis._display.lineStyle(strokeWidth, pattern, strokeOpacity, lineJoin);\n\t\t\t\t\t\tthis._display.endStroke();\n\n\t\t\t\t\t\tif (strokePattern instanceof PicturePattern) {\n\t\t\t\t\t\t\tstrokePattern.events.once(\"loaded\", () => {\n\t\t\t\t\t\t\t\tthis._clear = true;\n\t\t\t\t\t\t\t\tthis.markDirty();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.getPrivate(\"showingTooltip\")) {\n\t\t\t\tthis.showTooltip();\n\t\t\t}\n\t\t}\n\n\t\tthis._clear = false;\n\t}\n\n}\n"]}
1
+ {"version":3,"file":"Graphics.js","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Graphics.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Color } from \"../util/Color\";\nimport type { Pattern } from \"../render/patterns/Pattern\";\nimport type { Gradient } from \"../render/gradients/Gradient\";\n\nimport { PicturePattern } from \"../render/patterns/PicturePattern\";\nimport { ISpriteSettings, ISpritePrivate, ISpriteEvents, Sprite } from \"./Sprite\";\nimport { IGraphics, BlendMode } from \"./backend/Renderer\";\n\nimport * as $type from \"../util/Type\";\nimport * as $array from \"../util/Array\";\n\n\nexport const visualSettings = [\"fill\", \"fillOpacity\", \"stroke\", \"strokeWidth\", \"strokeOpacity\", \"fillPattern\", \"strokePattern\", \"fillGradient\", \"strokeGradient\", \"strokeDasharray\", \"strokeDashoffset\", \"shadowBlur\", \"shadowColor\", \"shadowOpacity\", \"shadowOffsetX\", \"shadowOffsetY\", \"blur\", \"sepia\", \"invert\", \"brightness\", \"hue\", \"contrast\", \"saturate\"];\n\nexport interface IGraphicsSettings extends ISpriteSettings {\n\n\t/**\n\t * Fill color.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/} for more information\n\t */\n\tfill?: Color;\n\n\t/**\n\t * Stroke (border or line) color.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/} for more information\n\t */\n\tstroke?: Color;\n\n\t/**\n\t * Fill pattern.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/patterns/} for more information\n\t */\n\tfillPattern?: Pattern;\n\n\t/**\n\t * Stroke (border or line) pattern.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/patterns/} for more information\n\t */\n\tstrokePattern?: Pattern;\n\n\t/**\n\t * Fill gradient.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/gradients/} for more information\n\t */\n\tfillGradient?: Gradient;\n\n\t/**\n\t * Stroke (border or line) gradient.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/gradients/} for more information\n\t */\n\tstrokeGradient?: Gradient;\n\n\t/**\n\t * Stroke (border or line) dash settings.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/#Dashed_lines} for more information\n\t */\n\tstrokeDasharray?: number[] | number;\n\n\t/**\n\t * Stroke (border or line) dash offset.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/#Dashed_lines} for more information\n\t */\n\tstrokeDashoffset?: number;\n\n\t/**\n\t * Opacity of the fill. 0 - fully transparent; 1 - fully opaque.\n\t */\n\tfillOpacity?: number;\n\n\t/**\n\t * Opacity of the stroke (border or line). 0 - fully transparent; 1 - fully opaque.\n\t */\n\tstrokeOpacity?: number;\n\n\t/**\n\t * Width of the stroke (border or line) in pixels.\n\t */\n\tstrokeWidth?: number;\n\n\t/**\n\t * Indicates if stroke of a Graphics should stay the same when it's scale changes. Note, this doesn't take into account parent container scale changes.\n\t * @default false\n\t */\n\tnonScalingStroke?: boolean;\n\n\t/**\n\t * Drawing function.\n\t *\n\t * Must use renderer (`display` parameter) methods to draw.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/graphics/#Custom_draw_functions} for more info\n\t */\n\tdraw?: (display: IGraphics, graphics: Graphics) => void;\n\n\t/**\n\t * Rendering mode.\n\t *\n\t * @default BlendMode.NORMAL (\"source-over\")\n\t * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation} for more information\n\t * @ignore\n\t */\n\tblendMode?: BlendMode;\n\n\t/**\n\t * Draw a shape using an SVG path.\n\t *\n\t * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths} for more information\n\t */\n\tsvgPath?: string;\n\n\t/**\n\t * Color of the element's shadow.\n\t *\n\t * For this to work at least one of the following needs to be set as well:\n\t * `shadowBlur`, `shadowOffsetX`, `shadowOffsetY`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowColor?: Color | null;\n\n\t/**\n\t * Blurriness of the the shadow.\n\t *\n\t * The bigger the number, the more blurry shadow will be.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowBlur?: number;\n\n\t/**\n\t * Horizontal shadow offset in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOffsetX?: number;\n\n\t/**\n\t * Vertical shadow offset in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOffsetY?: number;\n\n\t/**\n\t * Opacity of the shadow (0-1).\n\t *\n\t * If not set, will use the same as `fillOpacity` of the element.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOpacity?: number;\n\n\t/**\n\t * A method to be used on anchor points (joints) of the multi-point line.\n\t *\n\t * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin} for more info\n\t * @default \"miter\"\n\t * @since 5.2.10\n\t */\n\tlineJoin?: \"miter\" | \"round\" | \"bevel\";\n}\n\nexport interface IGraphicsPrivate extends ISpritePrivate {\n\n}\n\nexport interface IGraphicsEvents extends ISpriteEvents {\n\n}\n\n/**\n * Base class used for drawing shapes.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/graphics/} for more info\n * @important\n */\nexport class Graphics extends Sprite {\n\n\tdeclare public _settings: IGraphicsSettings;\n\tdeclare public _privateSettings: IGraphicsPrivate;\n\tdeclare public _events: IGraphicsEvents;\n\n\tpublic _display: IGraphics = this._root._renderer.makeGraphics();\n\n\tprotected _clear = false;\n\n\tpublic static className: string = \"Graphics\";\n\tpublic static classNames: Array<string> = Sprite.classNames.concat([Graphics.className]);\n\n\tpublic _beforeChanged() {\n\t\tsuper._beforeChanged();\n\n\t\tif (this.isDirty(\"draw\") || this.isDirty(\"svgPath\")) {\n\t\t\tthis.markDirtyBounds();\n\t\t}\n\n\t\tif (this.isDirty(\"fill\") || this.isDirty(\"stroke\") || this.isDirty(\"visible\") || this.isDirty(\"forceHidden\") || this.isDirty(\"scale\") || this.isDirty(\"fillGradient\") || this.isDirty(\"strokeGradient\") || this.isDirty(\"fillPattern\") || this.isDirty(\"strokePattern\") || this.isDirty(\"fillOpacity\") || this.isDirty(\"strokeOpacity\") || this.isDirty(\"strokeWidth\") || this.isDirty(\"draw\") || this.isDirty(\"blendMode\") || this.isDirty(\"strokeDasharray\") || this.isDirty(\"strokeDashoffset\") || this.isDirty(\"svgPath\") || this.isDirty(\"lineJoin\") || this.isDirty(\"shadowColor\") || this.isDirty(\"shadowBlur\") || this.isDirty(\"shadowOffsetX\") || this.isDirty(\"shadowOffsetY\")) {\n\t\t\tthis._clear = true;\n\t\t}\n\n\t\tthis._display.crisp = this.get(\"crisp\", false);\n\n\t\tif (this.isDirty(\"fillGradient\")) {\n\t\t\tconst gradient = this.get(\"fillGradient\");\n\t\t\tif (gradient) {\n\t\t\t\tthis._display.isMeasured = true;\n\t\t\t\tconst gradientTarget = gradient.get(\"target\");\n\t\t\t\tif (gradientTarget) {\n\t\t\t\t\tthis._disposers.push(gradientTarget.events.on(\"boundschanged\", () => {\n\t\t\t\t\t\tthis._markDirtyKey(\"fill\");\n\t\t\t\t\t}))\n\t\t\t\t\tthis._disposers.push(\n\t\t\t\t\t\tgradientTarget.events.on(\"positionchanged\", () => {\n\t\t\t\t\t\t\tthis._markDirtyKey(\"fill\");\n\t\t\t\t\t\t}))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"strokeGradient\")) {\n\t\t\tconst gradient = this.get(\"strokeGradient\");\n\t\t\tif (gradient) {\n\t\t\t\tthis._display.isMeasured = true;\n\t\t\t\tconst gradientTarget = gradient.get(\"target\");\n\t\t\t\tif (gradientTarget) {\n\t\t\t\t\tthis._disposers.push(\n\t\t\t\t\t\tgradientTarget.events.on(\"boundschanged\", () => {\n\t\t\t\t\t\t\tthis._markDirtyKey(\"stroke\");\n\t\t\t\t\t\t}))\n\t\t\t\t\tthis._disposers.push(\n\t\t\t\t\t\tgradientTarget.events.on(\"positionchanged\", () => {\n\t\t\t\t\t\t\tthis._markDirtyKey(\"stroke\");\n\t\t\t\t\t\t}))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _changed() {\n\t\tsuper._changed();\n\n\t\tif (this._clear) {\n\t\t\tthis.markDirtyBounds();\n\t\t\tthis.markDirtyLayer();\n\t\t\tthis._display.clear();\n\n\t\t\tlet strokeDasharray = this.get(\"strokeDasharray\");\n\t\t\tif ($type.isNumber(strokeDasharray)) {\n\t\t\t\tif (strokeDasharray < 0.5) {\n\t\t\t\t\tstrokeDasharray = [0];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tstrokeDasharray = [strokeDasharray]\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._display.setLineDash(strokeDasharray as number[]);\n\n\t\t\tconst strokeDashoffset = this.get(\"strokeDashoffset\");\n\t\t\tif (strokeDashoffset) {\n\t\t\t\tthis._display.setLineDashOffset(strokeDashoffset);\n\t\t\t}\n\n\t\t\tconst blendMode = this.get(\"blendMode\", BlendMode.NORMAL);\n\t\t\tthis._display.blendMode = blendMode;\n\n\t\t\tconst draw = this.get(\"draw\");\n\n\t\t\tif (draw && typeof draw === \"function\") {\n\t\t\t\tdraw(this._display, this);\n\t\t\t}\n\n\t\t\tconst svgPath = this.get(\"svgPath\");\n\t\t\tif (svgPath != null) {\n\t\t\t\tthis._display.svgPath(svgPath!);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _afterChanged() {\n\t\tsuper._afterChanged();\n\n\t\tif (this._clear) {\n\t\t\tconst fill = this.get(\"fill\");\n\t\t\tconst fillGradient = this.get(\"fillGradient\");\n\t\t\tconst fillPattern = this.get(\"fillPattern\");\n\t\t\tconst fillOpacity = this.get(\"fillOpacity\");\n\n\t\t\tconst stroke = this.get(\"stroke\");\n\t\t\tconst strokeGradient = this.get(\"strokeGradient\");\n\t\t\tconst strokePattern = this.get(\"strokePattern\");\n\n\t\t\tconst shadowColor = this.get(\"shadowColor\");\n\t\t\tconst shadowBlur = this.get(\"shadowBlur\");\n\t\t\tconst shadowOffsetX = this.get(\"shadowOffsetX\");\n\t\t\tconst shadowOffsetY = this.get(\"shadowOffsetY\");\n\t\t\tconst shadowOpacity = this.get(\"shadowOpacity\");\n\n\t\t\tif (shadowColor && (shadowBlur || shadowOffsetX || shadowOffsetY)) {\n\t\t\t\tthis._display.shadow(shadowColor, shadowBlur, shadowOffsetX, shadowOffsetY, shadowOpacity);\n\t\t\t}\n\n\t\t\tif (fill && !fillGradient) {\n\t\t\t\tthis._display.beginFill(fill, fillOpacity);\n\t\t\t\tthis._display.endFill();\n\t\t\t}\n\n\t\t\tif (fillGradient) {\n\t\t\t\tif (fill) {\n\t\t\t\t\tconst stops = fillGradient.get(\"stops\", []);\n\t\t\t\t\tif (stops.length) {\n\t\t\t\t\t\t$array.each(stops, (stop: any) => {\n\t\t\t\t\t\t\tif ((!stop.color || stop.colorInherited) && fill) {\n\t\t\t\t\t\t\t\tstop.color = fill;\n\t\t\t\t\t\t\t\tstop.colorInherited = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (stop.opacity == null || stop.opacityInherited) {\n\t\t\t\t\t\t\t\tstop.opacity = fillOpacity;\n\t\t\t\t\t\t\t\tstop.opacityInherited = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst gradient = fillGradient.getFill(this);\n\t\t\t\tif (gradient) {\n\t\t\t\t\tthis._display.beginFill(gradient, fillOpacity);\n\t\t\t\t\tthis._display.endFill();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (fillPattern) {\n\t\t\t\tconst pattern = fillPattern.pattern;\n\t\t\t\tif (pattern) {\n\t\t\t\t\tthis._display.beginFill(pattern, fillOpacity);\n\t\t\t\t\tthis._display.endFill();\n\n\t\t\t\t\tif (fillPattern instanceof PicturePattern) {\n\t\t\t\t\t\tfillPattern.events.once(\"loaded\", () => {\n\t\t\t\t\t\t\tthis._clear = true;\n\t\t\t\t\t\t\tthis.markDirty();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (stroke || strokeGradient || strokePattern) {\n\t\t\t\tconst strokeOpacity = this.get(\"strokeOpacity\");\n\t\t\t\tlet strokeWidth = this.get(\"strokeWidth\", 1);\n\n\t\t\t\tif (this.get(\"nonScalingStroke\")) {\n\t\t\t\t\tstrokeWidth = strokeWidth / this.get(\"scale\", 1)\n\t\t\t\t}\n\n\t\t\t\tif (this.get(\"crisp\")) {\n\t\t\t\t\tstrokeWidth /= this._root._renderer.resolution;\n\t\t\t\t}\n\n\t\t\t\tconst lineJoin = this.get(\"lineJoin\");\n\n\t\t\t\tif (stroke && !strokeGradient) {\n\t\t\t\t\tthis._display.lineStyle(strokeWidth, stroke, strokeOpacity, lineJoin);\n\t\t\t\t\tthis._display.endStroke();\n\t\t\t\t}\n\n\n\t\t\t\tif (strokeGradient) {\n\t\t\t\t\tconst stops = strokeGradient.get(\"stops\", []);\n\t\t\t\t\tif (stops.length) {\n\t\t\t\t\t\t$array.each(stops, (stop: any) => {\n\t\t\t\t\t\t\tif ((!stop.color || stop.colorInherited) && stroke) {\n\t\t\t\t\t\t\t\tstop.color = stroke;\n\t\t\t\t\t\t\t\tstop.colorInherited = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (stop.opacity == null || stop.opacityInherited) {\n\t\t\t\t\t\t\t\tstop.opacity = strokeOpacity;\n\t\t\t\t\t\t\t\tstop.opacityInherited = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t\tconst gradient = strokeGradient.getFill(this);\n\t\t\t\t\tif (gradient) {\n\t\t\t\t\t\tthis._display.lineStyle(strokeWidth, gradient, strokeOpacity, lineJoin);\n\t\t\t\t\t\tthis._display.endStroke();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (strokePattern) {\n\t\t\t\t\t/*\n\t\t\t\t\tlet changed = false;\n\t\t\t\t\t\n\t\t\t\t\tif (stroke && (!strokePattern.get(\"color\") || strokePattern.get(\"colorInherited\"))) {\n\t\t\t\t\t\tstrokePattern.set(\"color\", stroke);\n\t\t\t\t\t\tstrokePattern.set(\"colorInherited\", true);\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t\tif (changed) {\n\t\t\t\t\t\t// @todo: is this OK?\n\t\t\t\t\t\tstrokePattern._changed();\n\t\t\t\t\t}\n\t\t\t\t\t*/\n\t\t\t\t\tlet pattern = strokePattern.pattern;\n\n\t\t\t\t\tif (pattern) {\n\t\t\t\t\t\tthis._display.lineStyle(strokeWidth, pattern, strokeOpacity, lineJoin);\n\t\t\t\t\t\tthis._display.endStroke();\n\n\t\t\t\t\t\tif (strokePattern instanceof PicturePattern) {\n\t\t\t\t\t\t\tstrokePattern.events.once(\"loaded\", () => {\n\t\t\t\t\t\t\t\tthis._clear = true;\n\t\t\t\t\t\t\t\tthis.markDirty();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.getPrivate(\"showingTooltip\")) {\n\t\t\t\tthis.showTooltip();\n\t\t\t}\n\t\t}\n\n\t\tthis._clear = false;\n\t}\n\n}\n"]}
@@ -2,7 +2,7 @@ import type { Color } from "../util/Color";
2
2
  import type { Percent } from "../util/Percent";
3
3
  import type { DataItem, IComponentDataItem } from "./Component";
4
4
  import { Text } from "../render/Text";
5
- import { Container, IContainerPrivate, IContainerSettings } from "./Container";
5
+ import { Container, IContainerPrivate, IContainerSettings, IContainerEvents } from "./Container";
6
6
  export interface ILabelSettings extends IContainerSettings {
7
7
  /**
8
8
  * Labels' text.
@@ -185,6 +185,8 @@ export interface ILabelSettings extends IContainerSettings {
185
185
  }
186
186
  export interface ILabelPrivate extends IContainerPrivate {
187
187
  }
188
+ export interface ILabelEvents extends IContainerEvents {
189
+ }
188
190
  /**
189
191
  * Creates a label with support for in-line styling and data bindings.
190
192
  *
@@ -193,6 +195,7 @@ export interface ILabelPrivate extends IContainerPrivate {
193
195
  export declare class Label extends Container {
194
196
  _settings: ILabelSettings;
195
197
  _privateSettings: ILabelPrivate;
198
+ _events: ILabelEvents;
196
199
  protected _text: Text;
197
200
  protected _textKeys: Array<string>;
198
201
  static className: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Label.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Label.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Label.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Label.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Label.js","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Label.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Color } from \"../util/Color\";\nimport type { Percent } from \"../util/Percent\";\nimport type { DataItem, IComponentDataItem } from \"./Component\";\n\nimport { Text } from \"../render/Text\";\nimport { p50, p100 } from \"../util/Percent\";\nimport { Container, IContainerPrivate, IContainerSettings } from \"./Container\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $type from \"../../core/util/Type\";\n\n\nexport interface ILabelSettings extends IContainerSettings {\n\n\t/**\n\t * Labels' text.\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/text-styling/} for text styling info\n\t * \n\t */\n\ttext?: string;\n\n\t/**\n\t * Text color.\n\t */\n\tfill?: Color;\n\n\t/**\n\t * Text opacity.\n\t *\n\t * @default 1\n\t * @ince 5.2.39\n\t */\n\tfillOpacity?: number;\n\n\t/**\n\t * Alignment.\n\t */\n\ttextAlign?: \"start\" | \"end\" | \"left\" | \"right\" | \"center\";\n\n\t/**\n\t * Font family to use for the label.\n\t *\n\t * Multiple fonts can be separated by commas.\n\t */\n\tfontFamily?: string;\n\n\t/**\n\t * Font size in misc any supported CSS format (pixel, point, em, etc.).\n\t */\n\tfontSize?: string | number;\n\n\t/**\n\t * Font weight.\n\t */\n\tfontWeight?: \"normal\" | \"bold\" | \"bolder\" | \"lighter\" | \"100\" | \"200\" | \"300\" | \"400\" | \"500\" | \"600\" | \"700\" | \"800\" | \"900\";\n\n\t/**\n\t * Font style.\n\t */\n\tfontStyle?: \"normal\" | \"italic\" | \"oblique\";\n\n\t/**\n\t * Font variant.\n\t */\n\tfontVariant?: \"normal\" | \"small-caps\";\n\n\t/**\n\t * Text decoration.\n\t *\n\t * Supported options `\"underline\"`, `\"line-through\"`.\n\t *\n\t * @since 5.0.15\n\t */\n\ttextDecoration?: \"underline\" | \"line-through\";\n\n\t/**\n\t * Line height in percent or absolute pixels.\n\t */\n\tlineHeight?: Percent | number;\n\n\t/**\n\t * How mouch of the height should be considered to go below baseline.\n\t *\n\t * @default 0.19\n\t */\n\tbaselineRatio?: number;\n\n\t/**\n\t * Opacity of the label.\n\t *\n\t * 0 - fully transparent; 1 - fully opaque.\n\t */\n\topacity?: number;\n\n\t/**\n\t * Text direction.\n\t *\n\t * @default \"ltr\"\n\t */\n\tdirection?: \"ltr\" | \"rtl\";\n\n\t/**\n\t * A base line to use when aligning text chunks vertically.\n\t */\n\ttextBaseline?: \"top\" | \"hanging\" | \"middle\" | \"alphabetic\" | \"ideographic\" | \"bottom\";\n\n\t/**\n\t * How to handle labels that do not fit into its designated space.\n\t *\n\t * LIMITATIONS: on circular labels, the only values supported are `\"hide\"` and\n\t * `\"truncate\"`. The latter will ignore `breakWords` setting.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/labels/#Oversized_text} for more info\n\t */\n\toversizedBehavior?: \"none\" | \"hide\" | \"fit\" | \"wrap\" | \"wrap-no-break\" | \"truncate\";\n\n\t/**\n\t * Whether words can be broken when truncating or wrapping text.\n\t *\n\t * @default false\n\t */\n\tbreakWords?: boolean;\n\n\t/**\n\t * Ellipsis characters to use when truncating text.\n\t *\n\t * Will use Unicode ellipsis symbol (`\"…\"`) by default, which might not be\n\t * available in all fonts. If ellipsis looks broken, use different\n\t * characters. E.g.:\n\t *\n\t * ```TypeScript\n\t * label.set(\"ellipsis\", \"...\");\n\t * ```\n\t * ```JavaScript\n\t * label.set(\"ellipsis\", \"...\");\n\t * ```\n\t *\n\t *\n\t * @default \"…\"\n\t */\n\tellipsis?: string;\n\n\t/**\n\t * Minimum relative scale allowed for label when scaling down\n\t * when `oversizedBehavior` is set to `\"fit\"`.\n\t *\n\t * If fitting the label would require it to scale beyond `minScale` it would\n\t * be hidden instead.\n\t */\n\tminScale?: number;\n\n\t/**\n\t * If set to `true` the label will parse `text` for data placeholders and\n\t * will try to populate them with actual data.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/labels/#Data_placeholders} for more info\n\t */\n\tpopulateText?: boolean;\n\n\t/**\n\t * If set to `true`, will ignore in-line formatting blocks and will display\n\t * text exactly as it is.\n\t *\n\t * @default false\n\t */\n\tignoreFormatting?: boolean;\n\n\t/**\n\t * Color of the element's shadow.\n\t *\n\t * For this to work at least one of the following needs to be set as well:\n\t * `shadowBlur`, `shadowOffsetX`, `shadowOffsetY`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowColor?: Color | null;\n\n\t/**\n\t * Blurriness of the the shadow.\n\t *\n\t * The bigger the number, the more blurry shadow will be.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowBlur?: number;\n\n\t/**\n\t * Horizontal shadow offset in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOffsetX?: number;\n\n\t/**\n\t * Vertical shadow offset in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOffsetY?: number;\n\n\t/**\n\t * Opacity of the shadow (0-1).\n\t *\n\t * If not set, will use the same as `fillOpacity` of the element.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOpacity?: number;\n\n\t/**\n\t * Maximum number of characters to allow in label.\n\t *\n\t * If the `text` is longer than `maxChars`, the text will be truncated\n\t * using the `breakWords` and `ellipsis` settings.\n\t * \n\t * @since 5.7.2\n\t */\n\tmaxChars?: number;\n\n\t// The following migh be supported some day:\n\t// padding?: number;\n\t// stroke?: number;\n\t// strokeThickness?: number;\n\t// trim?: number;\n\t// wordWrap?: boolean;\n\t// leading?: number;\n\t// letterSpacing?: number;\n}\n\nexport interface ILabelPrivate extends IContainerPrivate {\n}\n\n/**\n * Creates a label with support for in-line styling and data bindings.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/labels/} for more info\n */\nexport class Label extends Container {\n\n\tdeclare public _settings: ILabelSettings;\n\tdeclare public _privateSettings: ILabelPrivate;\n\n\tprotected _text!: Text;\n\n\tprotected _textKeys: Array<string> = [\n\t\t\"text\",\n\t\t\"fill\",\n\t\t\"fillOpacity\",\n\t\t\"textAlign\",\n\t\t\"fontFamily\",\n\t\t\"fontSize\",\n\t\t\"fontStyle\",\n\t\t\"fontWeight\",\n\t\t\"fontStyle\",\n\t\t\"fontVariant\",\n\t\t\"textDecoration\",\n\t\t\"shadowColor\",\n\t\t\"shadowBlur\",\n\t\t\"shadowOffsetX\",\n\t\t\"shadowOffsetY\",\n\t\t\"shadowOpacity\",\n\t\t// \"leading\",\n\t\t// \"letterSpacing\",\n\t\t\"lineHeight\",\n\t\t\"baselineRatio\",\n\t\t//\"padding\",\n\t\t// \"stroke\",\n\t\t// \"strokeThickness\",\n\t\t// \"trim\",\n\t\t// \"wordWrap\",\n\t\t\"direction\",\n\t\t\"textBaseline\",\n\t\t\"oversizedBehavior\",\n\t\t\"breakWords\",\n\t\t\"ellipsis\",\n\t\t\"minScale\",\n\t\t\"populateText\",\n\t\t\"role\",\n\t\t\"ignoreFormatting\",\n\t\t\"maxChars\",\n\t\t\"ariaLabel\"\n\t];\n\n\tpublic static className: string = \"Label\";\n\tpublic static classNames: Array<string> = Container.classNames.concat([Label.className]);\n\n\t/**\n\t * @ignore Text is not to be used directly\n\t */\n\tpublic get text(): Text {\n\t\treturn this._text;\n\t}\n\n\tprotected _afterNew() {\n\t\tsuper._afterNew();\n\n\t\tthis._makeText();\n\n\t\t$array.each(this._textKeys, (property) => {\n\t\t\tconst propValue = this.get(property as any);\n\t\t\tif (propValue != undefined) {\n\t\t\t\tthis._text.set(property as any, propValue);\n\t\t\t}\n\t\t});\n\n\t\tif (this.get(\"html\", \"\") !== \"\") {\n\t\t\tthis._text.set(\"text\", \"\");\n\t\t}\n\n\t\tthis.onPrivate(\"maxWidth\", () => {\n\t\t\tthis._setMaxDimentions();\n\t\t});\n\n\t\tthis.onPrivate(\"maxHeight\", () => {\n\t\t\tthis._setMaxDimentions();\n\t\t});\n\t}\n\n\tpublic _makeText() {\n\t\tthis._text = this.children.push(Text.new(this._root, {}));\n\t}\n\n\tpublic _updateChildren() {\n\t\tsuper._updateChildren();\n\n\t\tconst text = this._text;\n\n\t\t$array.each(this._textKeys, (property) => {\n\t\t\tthis._text.set(property as any, this.get(property as any));\n\t\t})\n\n\t\tif (this.isDirty(\"maxWidth\") || this.isDirty(\"maxHeight\") || this.isDirty(\"rotation\")) {\n\t\t\tthis._setMaxDimentions();\n\t\t}\n\n\t\t// Do not show regular text if HTML is used\n\t\tif (this.get(\"html\", \"\") !== \"\") {\n\t\t\ttext.set(\"text\", \"\");\n\t\t}\n\t\telse {\n\t\t\ttext.set(\"text\", this.get(\"text\"));\n\t\t\tthis._maybeUpdateHTMLColor();\n\t\t}\n\n\t\tif (this.isDirty(\"fill\")) {\n\t\t\tthis._maybeUpdateHTMLColor();\n\t\t}\n\n\t\tif (this.isDirty(\"textAlign\") || this.isDirty(\"width\")) {\n\t\t\tconst textAlign = this.get(\"textAlign\");\n\t\t\tlet x: number | Percent | undefined;\n\t\t\tif (this.get(\"width\") != null) {\n\t\t\t\tif (textAlign == \"right\") {\n\t\t\t\t\tx = p100;\n\t\t\t\t}\n\t\t\t\telse if (textAlign == \"center\") {\n\t\t\t\t\tx = p50;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tx = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (textAlign == \"left\" || textAlign == \"start\") {\n\t\t\t\t\tx = this.get(\"paddingLeft\", 0);\n\t\t\t\t}\n\t\t\t\telse if (textAlign == \"right\" || textAlign == \"end\") {\n\t\t\t\t\tx = -this.get(\"paddingRight\", 0);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttext.set(\"x\", x);\n\t\t}\n\n\t\tconst background = this.get(\"background\");\n\t\tif (background) {\n\t\t\tbackground.setPrivate(\"visible\", text._display.textVisible);\n\t\t}\n\t}\n\n\tprotected _maybeUpdateHTMLColor() {\n\t\tconst htmlElement = this.getPrivate(\"htmlElement\");\n\t\tif (htmlElement && this.get(\"fill\")) {\n\t\t\thtmlElement.style.color = this.get(\"fill\")!.toCSSHex();\n\t\t}\n\t}\n\n\tprotected _setMaxDimentions() {\n\t\tconst rotation = this.get(\"rotation\");\n\t\tconst vertical = rotation == 90 || rotation == 270 || rotation == -90;\n\t\tconst text = this._text;\n\n\t\tconst maxWidth = this.get(\"maxWidth\", this.getPrivate(\"maxWidth\", Infinity));\n\t\tif ($type.isNumber(maxWidth)) {\n\t\t\ttext.set(vertical ? \"maxHeight\" : \"maxWidth\", maxWidth - this.get(\"paddingLeft\", 0) - this.get(\"paddingRight\", 0));\n\t\t}\n\t\telse {\n\t\t\ttext.set(vertical ? \"maxHeight\" : \"maxWidth\", undefined);\n\t\t}\n\n\t\tconst maxHeight = this.get(\"maxHeight\", this.getPrivate(\"maxHeight\", Infinity));\n\t\tif ($type.isNumber(maxHeight)) {\n\t\t\ttext.set(vertical ? \"maxWidth\" : \"maxHeight\", maxHeight - this.get(\"paddingTop\", 0) - this.get(\"paddingBottom\", 0));\n\t\t}\n\t\telse {\n\t\t\ttext.set(vertical ? \"maxWidth\" : \"maxHeight\", undefined);\n\t\t}\n\n\t\tthis.root.events.once(\"frameended\", () => {\n\t\t\ttext.markDirtyBounds();\n\t\t})\n\t}\n\n\tpublic _setDataItem(dataItem?: DataItem<IComponentDataItem>): void {\n\t\tsuper._setDataItem(dataItem);\n\t\tthis._markDirtyKey(\"text\")\n\t\tconst text = this._text;\n\t\tif (text.get(\"populateText\")) {\n\t\t\ttext.markDirtyText();\n\t\t}\n\t\tconst html = this.get(\"html\");\n\t\tif (html && html !== \"\") {\n\t\t\tthis._updateHTMLContent();\n\t\t}\n\t}\n\n\t/**\n\t * Returns text with populated placeholders and formatting if `populateText` is\n\t * set to `true`.\n\t *\n\t * @return Populated text\n\t */\n\tpublic getText(): string {\n\t\treturn this._text._getText();\n\t}\n\n\t/**\n\t * Returns \"aria-label\" text with populated placeholders and formatting\n\t * if `populateText` is set to `true`.\n\t *\n\t * @return Populated text\n\t */\n\tpublic getAccessibleText(): string {\n\t\treturn this._text._getAccessibleText();\n\t}\n}\n"]}
1
+ {"version":3,"file":"Label.js","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Label.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Color } from \"../util/Color\";\nimport type { Percent } from \"../util/Percent\";\nimport type { DataItem, IComponentDataItem } from \"./Component\";\n\nimport { Text } from \"../render/Text\";\nimport { p50, p100 } from \"../util/Percent\";\nimport { Container, IContainerPrivate, IContainerSettings, IContainerEvents } from \"./Container\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $type from \"../../core/util/Type\";\n\n\nexport interface ILabelSettings extends IContainerSettings {\n\n\t/**\n\t * Labels' text.\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/text-styling/} for text styling info\n\t * \n\t */\n\ttext?: string;\n\n\t/**\n\t * Text color.\n\t */\n\tfill?: Color;\n\n\t/**\n\t * Text opacity.\n\t *\n\t * @default 1\n\t * @ince 5.2.39\n\t */\n\tfillOpacity?: number;\n\n\t/**\n\t * Alignment.\n\t */\n\ttextAlign?: \"start\" | \"end\" | \"left\" | \"right\" | \"center\";\n\n\t/**\n\t * Font family to use for the label.\n\t *\n\t * Multiple fonts can be separated by commas.\n\t */\n\tfontFamily?: string;\n\n\t/**\n\t * Font size in misc any supported CSS format (pixel, point, em, etc.).\n\t */\n\tfontSize?: string | number;\n\n\t/**\n\t * Font weight.\n\t */\n\tfontWeight?: \"normal\" | \"bold\" | \"bolder\" | \"lighter\" | \"100\" | \"200\" | \"300\" | \"400\" | \"500\" | \"600\" | \"700\" | \"800\" | \"900\";\n\n\t/**\n\t * Font style.\n\t */\n\tfontStyle?: \"normal\" | \"italic\" | \"oblique\";\n\n\t/**\n\t * Font variant.\n\t */\n\tfontVariant?: \"normal\" | \"small-caps\";\n\n\t/**\n\t * Text decoration.\n\t *\n\t * Supported options `\"underline\"`, `\"line-through\"`.\n\t *\n\t * @since 5.0.15\n\t */\n\ttextDecoration?: \"underline\" | \"line-through\";\n\n\t/**\n\t * Line height in percent or absolute pixels.\n\t */\n\tlineHeight?: Percent | number;\n\n\t/**\n\t * How mouch of the height should be considered to go below baseline.\n\t *\n\t * @default 0.19\n\t */\n\tbaselineRatio?: number;\n\n\t/**\n\t * Opacity of the label.\n\t *\n\t * 0 - fully transparent; 1 - fully opaque.\n\t */\n\topacity?: number;\n\n\t/**\n\t * Text direction.\n\t *\n\t * @default \"ltr\"\n\t */\n\tdirection?: \"ltr\" | \"rtl\";\n\n\t/**\n\t * A base line to use when aligning text chunks vertically.\n\t */\n\ttextBaseline?: \"top\" | \"hanging\" | \"middle\" | \"alphabetic\" | \"ideographic\" | \"bottom\";\n\n\t/**\n\t * How to handle labels that do not fit into its designated space.\n\t *\n\t * LIMITATIONS: on circular labels, the only values supported are `\"hide\"` and\n\t * `\"truncate\"`. The latter will ignore `breakWords` setting.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/labels/#Oversized_text} for more info\n\t */\n\toversizedBehavior?: \"none\" | \"hide\" | \"fit\" | \"wrap\" | \"wrap-no-break\" | \"truncate\";\n\n\t/**\n\t * Whether words can be broken when truncating or wrapping text.\n\t *\n\t * @default false\n\t */\n\tbreakWords?: boolean;\n\n\t/**\n\t * Ellipsis characters to use when truncating text.\n\t *\n\t * Will use Unicode ellipsis symbol (`\"…\"`) by default, which might not be\n\t * available in all fonts. If ellipsis looks broken, use different\n\t * characters. E.g.:\n\t *\n\t * ```TypeScript\n\t * label.set(\"ellipsis\", \"...\");\n\t * ```\n\t * ```JavaScript\n\t * label.set(\"ellipsis\", \"...\");\n\t * ```\n\t *\n\t *\n\t * @default \"…\"\n\t */\n\tellipsis?: string;\n\n\t/**\n\t * Minimum relative scale allowed for label when scaling down\n\t * when `oversizedBehavior` is set to `\"fit\"`.\n\t *\n\t * If fitting the label would require it to scale beyond `minScale` it would\n\t * be hidden instead.\n\t */\n\tminScale?: number;\n\n\t/**\n\t * If set to `true` the label will parse `text` for data placeholders and\n\t * will try to populate them with actual data.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/labels/#Data_placeholders} for more info\n\t */\n\tpopulateText?: boolean;\n\n\t/**\n\t * If set to `true`, will ignore in-line formatting blocks and will display\n\t * text exactly as it is.\n\t *\n\t * @default false\n\t */\n\tignoreFormatting?: boolean;\n\n\t/**\n\t * Color of the element's shadow.\n\t *\n\t * For this to work at least one of the following needs to be set as well:\n\t * `shadowBlur`, `shadowOffsetX`, `shadowOffsetY`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowColor?: Color | null;\n\n\t/**\n\t * Blurriness of the the shadow.\n\t *\n\t * The bigger the number, the more blurry shadow will be.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowBlur?: number;\n\n\t/**\n\t * Horizontal shadow offset in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOffsetX?: number;\n\n\t/**\n\t * Vertical shadow offset in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOffsetY?: number;\n\n\t/**\n\t * Opacity of the shadow (0-1).\n\t *\n\t * If not set, will use the same as `fillOpacity` of the element.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOpacity?: number;\n\n\t/**\n\t * Maximum number of characters to allow in label.\n\t *\n\t * If the `text` is longer than `maxChars`, the text will be truncated\n\t * using the `breakWords` and `ellipsis` settings.\n\t * \n\t * @since 5.7.2\n\t */\n\tmaxChars?: number;\n\n\t// The following migh be supported some day:\n\t// padding?: number;\n\t// stroke?: number;\n\t// strokeThickness?: number;\n\t// trim?: number;\n\t// wordWrap?: boolean;\n\t// leading?: number;\n\t// letterSpacing?: number;\n}\n\nexport interface ILabelPrivate extends IContainerPrivate {\n}\n\nexport interface ILabelEvents extends IContainerEvents {\n}\n\n/**\n * Creates a label with support for in-line styling and data bindings.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/labels/} for more info\n */\nexport class Label extends Container {\n\n\tdeclare public _settings: ILabelSettings;\n\tdeclare public _privateSettings: ILabelPrivate;\n\tdeclare public _events: ILabelEvents;\n\n\tprotected _text!: Text;\n\n\tprotected _textKeys: Array<string> = [\n\t\t\"text\",\n\t\t\"fill\",\n\t\t\"fillOpacity\",\n\t\t\"textAlign\",\n\t\t\"fontFamily\",\n\t\t\"fontSize\",\n\t\t\"fontStyle\",\n\t\t\"fontWeight\",\n\t\t\"fontStyle\",\n\t\t\"fontVariant\",\n\t\t\"textDecoration\",\n\t\t\"shadowColor\",\n\t\t\"shadowBlur\",\n\t\t\"shadowOffsetX\",\n\t\t\"shadowOffsetY\",\n\t\t\"shadowOpacity\",\n\t\t// \"leading\",\n\t\t// \"letterSpacing\",\n\t\t\"lineHeight\",\n\t\t\"baselineRatio\",\n\t\t//\"padding\",\n\t\t// \"stroke\",\n\t\t// \"strokeThickness\",\n\t\t// \"trim\",\n\t\t// \"wordWrap\",\n\t\t\"direction\",\n\t\t\"textBaseline\",\n\t\t\"oversizedBehavior\",\n\t\t\"breakWords\",\n\t\t\"ellipsis\",\n\t\t\"minScale\",\n\t\t\"populateText\",\n\t\t\"role\",\n\t\t\"ignoreFormatting\",\n\t\t\"maxChars\",\n\t\t\"ariaLabel\"\n\t];\n\n\tpublic static className: string = \"Label\";\n\tpublic static classNames: Array<string> = Container.classNames.concat([Label.className]);\n\n\t/**\n\t * @ignore Text is not to be used directly\n\t */\n\tpublic get text(): Text {\n\t\treturn this._text;\n\t}\n\n\tprotected _afterNew() {\n\t\tsuper._afterNew();\n\n\t\tthis._makeText();\n\n\t\t$array.each(this._textKeys, (property) => {\n\t\t\tconst propValue = this.get(property as any);\n\t\t\tif (propValue != undefined) {\n\t\t\t\tthis._text.set(property as any, propValue);\n\t\t\t}\n\t\t});\n\n\t\tif (this.get(\"html\", \"\") !== \"\") {\n\t\t\tthis._text.set(\"text\", \"\");\n\t\t}\n\n\t\tthis.onPrivate(\"maxWidth\", () => {\n\t\t\tthis._setMaxDimentions();\n\t\t});\n\n\t\tthis.onPrivate(\"maxHeight\", () => {\n\t\t\tthis._setMaxDimentions();\n\t\t});\n\t}\n\n\tpublic _makeText() {\n\t\tthis._text = this.children.push(Text.new(this._root, {}));\n\t}\n\n\tpublic _updateChildren() {\n\t\tsuper._updateChildren();\n\n\t\tconst text = this._text;\n\n\t\t$array.each(this._textKeys, (property) => {\n\t\t\tthis._text.set(property as any, this.get(property as any));\n\t\t})\n\n\t\tif (this.isDirty(\"maxWidth\") || this.isDirty(\"maxHeight\") || this.isDirty(\"rotation\")) {\n\t\t\tthis._setMaxDimentions();\n\t\t}\n\n\t\t// Do not show regular text if HTML is used\n\t\tif (this.get(\"html\", \"\") !== \"\") {\n\t\t\ttext.set(\"text\", \"\");\n\t\t}\n\t\telse {\n\t\t\ttext.set(\"text\", this.get(\"text\"));\n\t\t\tthis._maybeUpdateHTMLColor();\n\t\t}\n\n\t\tif (this.isDirty(\"fill\")) {\n\t\t\tthis._maybeUpdateHTMLColor();\n\t\t}\n\n\t\tif (this.isDirty(\"textAlign\") || this.isDirty(\"width\")) {\n\t\t\tconst textAlign = this.get(\"textAlign\");\n\t\t\tlet x: number | Percent | undefined;\n\t\t\tif (this.get(\"width\") != null) {\n\t\t\t\tif (textAlign == \"right\") {\n\t\t\t\t\tx = p100;\n\t\t\t\t}\n\t\t\t\telse if (textAlign == \"center\") {\n\t\t\t\t\tx = p50;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tx = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (textAlign == \"left\" || textAlign == \"start\") {\n\t\t\t\t\tx = this.get(\"paddingLeft\", 0);\n\t\t\t\t}\n\t\t\t\telse if (textAlign == \"right\" || textAlign == \"end\") {\n\t\t\t\t\tx = -this.get(\"paddingRight\", 0);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttext.set(\"x\", x);\n\t\t}\n\n\t\tconst background = this.get(\"background\");\n\t\tif (background) {\n\t\t\tbackground.setPrivate(\"visible\", text._display.textVisible);\n\t\t}\n\t}\n\n\tprotected _maybeUpdateHTMLColor() {\n\t\tconst htmlElement = this.getPrivate(\"htmlElement\");\n\t\tif (htmlElement && this.get(\"fill\")) {\n\t\t\thtmlElement.style.color = this.get(\"fill\")!.toCSSHex();\n\t\t}\n\t}\n\n\tprotected _setMaxDimentions() {\n\t\tconst rotation = this.get(\"rotation\");\n\t\tconst vertical = rotation == 90 || rotation == 270 || rotation == -90;\n\t\tconst text = this._text;\n\n\t\tconst maxWidth = this.get(\"maxWidth\", this.getPrivate(\"maxWidth\", Infinity));\n\t\tif ($type.isNumber(maxWidth)) {\n\t\t\ttext.set(vertical ? \"maxHeight\" : \"maxWidth\", maxWidth - this.get(\"paddingLeft\", 0) - this.get(\"paddingRight\", 0));\n\t\t}\n\t\telse {\n\t\t\ttext.set(vertical ? \"maxHeight\" : \"maxWidth\", undefined);\n\t\t}\n\n\t\tconst maxHeight = this.get(\"maxHeight\", this.getPrivate(\"maxHeight\", Infinity));\n\t\tif ($type.isNumber(maxHeight)) {\n\t\t\ttext.set(vertical ? \"maxWidth\" : \"maxHeight\", maxHeight - this.get(\"paddingTop\", 0) - this.get(\"paddingBottom\", 0));\n\t\t}\n\t\telse {\n\t\t\ttext.set(vertical ? \"maxWidth\" : \"maxHeight\", undefined);\n\t\t}\n\n\t\tthis.root.events.once(\"frameended\", () => {\n\t\t\ttext.markDirtyBounds();\n\t\t})\n\t}\n\n\tpublic _setDataItem(dataItem?: DataItem<IComponentDataItem>): void {\n\t\tsuper._setDataItem(dataItem);\n\t\tthis._markDirtyKey(\"text\")\n\t\tconst text = this._text;\n\t\tif (text.get(\"populateText\")) {\n\t\t\ttext.markDirtyText();\n\t\t}\n\t\tconst html = this.get(\"html\");\n\t\tif (html && html !== \"\") {\n\t\t\tthis._updateHTMLContent();\n\t\t}\n\t}\n\n\t/**\n\t * Returns text with populated placeholders and formatting if `populateText` is\n\t * set to `true`.\n\t *\n\t * @return Populated text\n\t */\n\tpublic getText(): string {\n\t\treturn this._text._getText();\n\t}\n\n\t/**\n\t * Returns \"aria-label\" text with populated placeholders and formatting\n\t * if `populateText` is set to `true`.\n\t *\n\t * @return Populated text\n\t */\n\tpublic getAccessibleText(): string {\n\t\treturn this._text._getAccessibleText();\n\t}\n}\n"]}