@amcharts/amcharts5 5.5.3 → 5.5.4
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.
- package/.internal/charts/stock/indicators/OverboughtOversold.d.ts.map +1 -1
- package/.internal/charts/stock/indicators/OverboughtOversold.js +17 -3
- package/.internal/charts/stock/indicators/OverboughtOversold.js.map +1 -1
- package/.internal/core/Registry.js +1 -1
- package/.internal/core/Registry.js.map +1 -1
- package/CHANGELOG.md +6 -0
- package/examples/javascript/flow-arc-horizontal/package.json +1 -1
- package/examples/javascript/flow-arc-vertical/package.json +1 -1
- package/examples/javascript/flow-chord/package.json +1 -1
- package/examples/javascript/flow-chord-directed/package.json +1 -1
- package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/javascript/flow-sankey/package.json +1 -1
- package/examples/javascript/gauge/package.json +1 -1
- package/examples/javascript/gauge-bands/package.json +1 -1
- package/examples/javascript/hierarchy-force-directed/package.json +1 -1
- package/examples/javascript/hierarchy-pack/package.json +1 -1
- package/examples/javascript/hierarchy-partition/package.json +1 -1
- package/examples/javascript/hierarchy-sunburst/package.json +1 -1
- package/examples/javascript/hierarchy-tree/package.json +1 -1
- package/examples/javascript/hierarchy-treemap/package.json +1 -1
- package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
- package/examples/javascript/jest/package.json +1 -1
- package/examples/javascript/json-pie/package.json +1 -1
- package/examples/javascript/json-xy/package.json +1 -1
- package/examples/javascript/map-animating-along-lines/package.json +1 -1
- package/examples/javascript/map-day-and-night/package.json +1 -1
- package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/javascript/map-with-bubbles/package.json +1 -1
- package/examples/javascript/map-zoom-to-country/package.json +1 -1
- package/examples/javascript/misc-40-charts/package.json +1 -1
- package/examples/javascript/misc-microchart-grid/package.json +1 -1
- package/examples/javascript/pie-chart/package.json +1 -1
- package/examples/javascript/pie-donut-chart/package.json +1 -1
- package/examples/javascript/pie-variable-radius/package.json +1 -1
- package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
- package/examples/javascript/radar-heat-map/package.json +1 -1
- package/examples/javascript/radar-line/package.json +1 -1
- package/examples/javascript/radar-time-line/package.json +1 -1
- package/examples/javascript/sliced-funnel/package.json +1 -1
- package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/javascript/sliced-pyramid/package.json +1 -1
- package/examples/javascript/stock-chart/package.json +1 -1
- package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
- package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
- package/examples/javascript/stock-chart-intraday/package.json +1 -1
- package/examples/javascript/stock-chart-live/package.json +1 -1
- package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/javascript/venn-diagram/package.json +1 -1
- package/examples/javascript/wordcloud-with-data/package.json +1 -1
- package/examples/javascript/wordcloud-with-text/package.json +1 -1
- package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/javascript/xy-bubble/package.json +1 -1
- package/examples/javascript/xy-candlestick/package.json +1 -1
- package/examples/javascript/xy-clustered-column/package.json +1 -1
- package/examples/javascript/xy-column/package.json +1 -1
- package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/javascript/xy-data-grouping/package.json +1 -1
- package/examples/javascript/xy-draggable-range/package.json +1 -1
- package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/javascript/xy-dumbbell plot/package.json +1 -1
- package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/javascript/xy-line/package.json +1 -1
- package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/javascript/xy-live-data/package.json +1 -1
- package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/javascript/xy-ohlc/package.json +1 -1
- package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/javascript/xy-smoothed-line/package.json +1 -1
- package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/javascript/xy-stacked-column/package.json +1 -1
- package/examples/javascript/xy-stacked-step/package.json +1 -1
- package/examples/javascript/xy-stock/package.json +1 -1
- package/examples/javascript/xy-stock-comparing/package.json +1 -1
- package/examples/typescript/flow-arc-horizontal/package.json +1 -1
- package/examples/typescript/flow-arc-vertical/package.json +1 -1
- package/examples/typescript/flow-chord/package.json +1 -1
- package/examples/typescript/flow-chord-directed/package.json +1 -1
- package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/typescript/flow-sankey/package.json +1 -1
- package/examples/typescript/gauge/package.json +1 -1
- package/examples/typescript/gauge-bands/package.json +1 -1
- package/examples/typescript/hierarchy-force-directed/package.json +1 -1
- package/examples/typescript/hierarchy-pack/package.json +1 -1
- package/examples/typescript/hierarchy-partition/package.json +1 -1
- package/examples/typescript/hierarchy-sunburst/package.json +1 -1
- package/examples/typescript/hierarchy-tree/package.json +1 -1
- package/examples/typescript/hierarchy-treemap/package.json +1 -1
- package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
- package/examples/typescript/jest/package.json +1 -1
- package/examples/typescript/json-pie/package.json +1 -1
- package/examples/typescript/json-xy/package.json +1 -1
- package/examples/typescript/map-animating-along-lines/package.json +1 -1
- package/examples/typescript/map-day-and-night/package.json +1 -1
- package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/typescript/map-with-bubbles/package.json +1 -1
- package/examples/typescript/map-zoom-to-country/package.json +1 -1
- package/examples/typescript/misc-40-charts/package.json +1 -1
- package/examples/typescript/misc-microchart-grid/package.json +1 -1
- package/examples/typescript/pie-chart/package.json +1 -1
- package/examples/typescript/pie-donut-chart/package.json +1 -1
- package/examples/typescript/pie-variable-radius/package.json +1 -1
- package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
- package/examples/typescript/radar-heat-map/package.json +1 -1
- package/examples/typescript/radar-line/package.json +1 -1
- package/examples/typescript/radar-time-line/package.json +1 -1
- package/examples/typescript/sliced-funnel/package.json +1 -1
- package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/typescript/sliced-pyramid/package.json +1 -1
- package/examples/typescript/stock-chart/package.json +1 -1
- package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
- package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
- package/examples/typescript/stock-chart-intraday/package.json +1 -1
- package/examples/typescript/stock-chart-live/package.json +1 -1
- package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/typescript/venn-diagram/package.json +1 -1
- package/examples/typescript/wordcloud-with-data/package.json +1 -1
- package/examples/typescript/wordcloud-with-text/package.json +1 -1
- package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/typescript/xy-bubble/package.json +1 -1
- package/examples/typescript/xy-candlestick/package.json +1 -1
- package/examples/typescript/xy-clustered-column/package.json +1 -1
- package/examples/typescript/xy-column/package.json +1 -1
- package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/typescript/xy-data-grouping/package.json +1 -1
- package/examples/typescript/xy-draggable-range/package.json +1 -1
- package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/typescript/xy-dumbbell plot/package.json +1 -1
- package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/typescript/xy-line/package.json +1 -1
- package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/typescript/xy-live-data/package.json +1 -1
- package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/typescript/xy-ohlc/package.json +1 -1
- package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/typescript/xy-smoothed-line/package.json +1 -1
- package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/typescript/xy-stacked-column/package.json +1 -1
- package/examples/typescript/xy-stacked-step/package.json +1 -1
- package/examples/typescript/xy-stock/package.json +1 -1
- package/examples/typescript/xy-stock-comparing/package.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverboughtOversold.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/OverboughtOversold.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC1H,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAQrD,MAAM,WAAW,2BAA4B,SAAQ,uBAAuB;IAE3E;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC;IAExB;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;CAAI;AAE9E,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;CAAI;AAG5E;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;IACrD,OAAc,SAAS,EAAE,MAAM,CAAwB;IACvD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAoE;IAE5F,SAAS,EAAE,2BAA2B,CAAC;IACvC,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,OAAO,EAAE,yBAAyB,CAAC;IAE3C,UAAU,EAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC1C,MAAM,EAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACtC,QAAQ,EAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAExC,aAAa,EAAG,oBAAoB,CAAC;IACrC,eAAe,EAAG,oBAAoB,CAAC;IAE9C;;OAEG;IACY,MAAM,EAAE,UAAU,CAAC;IAE3B,iBAAiB,EAAE,yBAAyB,EAAE,CAgBlD;IAEH,SAAS,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"OverboughtOversold.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/OverboughtOversold.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC1H,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAQrD,MAAM,WAAW,2BAA4B,SAAQ,uBAAuB;IAE3E;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC;IAExB;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;CAAI;AAE9E,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;CAAI;AAG5E;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;IACrD,OAAc,SAAS,EAAE,MAAM,CAAwB;IACvD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAoE;IAE5F,SAAS,EAAE,2BAA2B,CAAC;IACvC,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,OAAO,EAAE,yBAAyB,CAAC;IAE3C,UAAU,EAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC1C,MAAM,EAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACtC,QAAQ,EAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAExC,aAAa,EAAG,oBAAoB,CAAC;IACrC,eAAe,EAAG,oBAAoB,CAAC;IAE9C;;OAEG;IACY,MAAM,EAAE,UAAU,CAAC;IAE3B,iBAAiB,EAAE,yBAAyB,EAAE,CAgBlD;IAEH,SAAS,CAAC,SAAS;IA6InB,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,UAAU;IAS9D,aAAa,IAAI,UAAU;IAY3B,gBAAgB;IA4ChB,eAAe;CAQtB"}
|
|
@@ -70,6 +70,20 @@ export class OverboughtOversold extends ChartIndicator {
|
|
|
70
70
|
this._themeTags.push("overboughtoversold");
|
|
71
71
|
super._afterNew();
|
|
72
72
|
const chart = this.panel;
|
|
73
|
+
const yAxis = this.yAxis;
|
|
74
|
+
yAxis.set("strictMinMax", true);
|
|
75
|
+
yAxis.onPrivate("max", (max) => {
|
|
76
|
+
const overBought = this.get("overBought", 0);
|
|
77
|
+
if ($type.isNumber(max) && max < overBought) {
|
|
78
|
+
yAxis.setPrivateRaw("max", overBought);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
yAxis.onPrivate("min", (min) => {
|
|
82
|
+
const overSold = this.get("overSold", 0);
|
|
83
|
+
if ($type.isNumber(min) && min > overSold) {
|
|
84
|
+
yAxis.setPrivateRaw("min", overSold);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
73
87
|
// middle grid
|
|
74
88
|
this.middle = this.yAxis.createAxisRange(this.yAxis.makeDataItem({}));
|
|
75
89
|
const middleGrid = this.middle.get("grid");
|
|
@@ -77,13 +91,13 @@ export class OverboughtOversold extends ChartIndicator {
|
|
|
77
91
|
middleGrid._applyThemes();
|
|
78
92
|
const middleLabel = this.middle.get("label");
|
|
79
93
|
middleLabel.setAll({ visible: true, forceHidden: false });
|
|
80
|
-
const opposite =
|
|
94
|
+
const opposite = yAxis.get("renderer").get("opposite");
|
|
81
95
|
let side = "left";
|
|
82
96
|
if (opposite) {
|
|
83
97
|
side = "right";
|
|
84
98
|
}
|
|
85
99
|
// overbought range
|
|
86
|
-
const overBought =
|
|
100
|
+
const overBought = yAxis.makeDataItem({});
|
|
87
101
|
this.overBought = overBought;
|
|
88
102
|
overBought.set("endValue", 500);
|
|
89
103
|
overBought.set("affectsMinMax", false);
|
|
@@ -124,7 +138,7 @@ export class OverboughtOversold extends ChartIndicator {
|
|
|
124
138
|
const overBoughtLabel = overBought.get("label");
|
|
125
139
|
overBoughtLabel.setAll({ visible: true, forceHidden: false, location: 0 });
|
|
126
140
|
// oversold range
|
|
127
|
-
const overSold =
|
|
141
|
+
const overSold = yAxis.makeDataItem({});
|
|
128
142
|
this.overSold = overSold;
|
|
129
143
|
overSold.set("endValue", -500);
|
|
130
144
|
overSold.set("affectsMinMax", false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverboughtOversold.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/OverboughtOversold.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\nimport type { IValueAxisDataItem } from \"../../xy/axes/ValueAxis\";\r\nimport type { DataItem } from \"../../../core/render/Component\";\r\nimport type { Color } from \"../../../core/util/Color\";\r\n\r\nimport { ChartIndicator, IChartIndicatorSettings, IChartIndicatorPrivate, IChartIndicatorEvents } from \"./ChartIndicator\";\r\nimport { LineSeries, ILineSeriesAxisRange } from \"../../xy/series/LineSeries\";\r\nimport { Button } from \"../../../core/render/Button\";\r\nimport { Graphics } from \"../../../core/render/Graphics\";\r\nimport { AxisBullet } from \"../../xy/axes/AxisBullet\";\r\nimport type { AxisRendererY } from \"../../xy/axes/AxisRendererY\";\r\nimport * as $math from \"../../../core/util/Math\";\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\n\r\nexport interface IOverboughtOversoldSettings extends IChartIndicatorSettings {\r\n\r\n\t/**\r\n\t * A value for \"overbought\" threshold.\r\n\t */\r\n\toverBought?: number;\r\n\r\n\t/**\r\n\t * A value for \"oversold\" threshold.\r\n\t */\r\n\toverSold?: number;\r\n\r\n\t/**\r\n\t * A color for \"overbought\" section.\r\n\t */\r\n\toverBoughtColor?: Color;\r\n\r\n\t/**\r\n\t * A color for \"oversold\" section.\r\n\t */\r\n\toverSoldColor?: Color;\r\n}\r\n\r\nexport interface IOverboughtOversoldPrivate extends IChartIndicatorPrivate { }\r\n\r\nexport interface IOverboughtOversoldEvents extends IChartIndicatorEvents { }\r\n\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class OverboughtOversold extends ChartIndicator {\r\n\tpublic static className: string = \"OverboughtOversold\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([OverboughtOversold.className]);\r\n\r\n\tdeclare public _settings: IOverboughtOversoldSettings;\r\n\tdeclare public _privateSettings: IOverboughtOversoldPrivate;\r\n\tdeclare public _events: IOverboughtOversoldEvents;\r\n\r\n\tpublic overBought!: DataItem<IValueAxisDataItem>;\r\n\tpublic middle!: DataItem<IValueAxisDataItem>;\r\n\tpublic overSold!: DataItem<IValueAxisDataItem>;\r\n\r\n\tpublic overSoldRange!: ILineSeriesAxisRange;\r\n\tpublic overBoughtRange!: ILineSeriesAxisRange;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tdeclare public series: LineSeries;\r\n\r\n\tpublic _editableSettings: IIndicatorEditableSetting[] = [{\r\n\t\tkey: \"overBought\",\r\n\t\tname: this.root.language.translateAny(\"Overbought\"),\r\n\t\ttype: \"number\"\r\n\t}, {\r\n\t\tkey: \"overBoughtColor\",\r\n\t\tname: this.root.language.translateAny(\"Overbought\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"overSold\",\r\n\t\tname: this.root.language.translateAny(\"Oversold\"),\r\n\t\ttype: \"number\"\r\n\t}, {\r\n\t\tkey: \"overSoldColor\",\r\n\t\tname: this.root.language.translateAny(\"Oversold\"),\r\n\t\ttype: \"color\"\r\n\t}];\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis._themeTags.push(\"overboughtoversold\");\r\n\r\n\t\tsuper._afterNew();\r\n\r\n\t\tconst chart = this.panel;\r\n\r\n\t\t// middle grid\r\n\t\tthis.middle = this.yAxis.createAxisRange(this.yAxis.makeDataItem({}));\r\n\t\tconst middleGrid = this.middle.get(\"grid\")!;\r\n\t\tmiddleGrid.setAll({ themeTags: [\"middlegrid\"] });\r\n\t\tmiddleGrid._applyThemes();\r\n\r\n\t\tconst middleLabel = this.middle.get(\"label\")!;\r\n\t\tmiddleLabel.setAll({ visible: true, forceHidden: false });\r\n\r\n\t\tconst opposite = (this.yAxis.get(\"renderer\") as AxisRendererY).get(\"opposite\");\r\n\t\tlet side = \"left\";\r\n\t\tif (opposite) {\r\n\t\t\tside = \"right\"\r\n\t\t}\r\n\r\n\t\t// overbought range\r\n\t\tconst overBought = this.yAxis.makeDataItem({});\r\n\t\tthis.overBought = overBought;\r\n\t\toverBought.set(\"endValue\", 500);\r\n\t\toverBought.set(\"affectsMinMax\", false);\r\n\r\n\t\tconst overBoughtRB = Button.new(this._root, {\r\n\t\t\tthemeTags: [\"rangegrip\", \"vertical\", side],\r\n\t\t\ticon: Graphics.new(this._root, {\r\n\t\t\t\tthemeTags: [\"rangegrip\", \"icon\"]\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\t// restrict from being dragged vertically\r\n\t\toverBoughtRB.adapters.add(\"x\", function() {\r\n\t\t\treturn 0;\r\n\t\t});\r\n\r\n\t\t// restrict from being dragged outside of plot\r\n\t\toverBoughtRB.adapters.add(\"y\", function(y) {\r\n\t\t\tif ($type.isNumber(y)) {\r\n\t\t\t\treturn $math.fitToRange(y, 0, chart.plotContainer.height());\r\n\t\t\t}\r\n\t\t\treturn y;\r\n\t\t});\r\n\r\n\t\t// change range when y changes\r\n\t\toverBoughtRB.events.on(\"dragged\", () => {\r\n\t\t\tthis._updateRange(overBoughtRB, \"overBought\");\r\n\t\t});\r\n\r\n\t\toverBought.set(\"bullet\", AxisBullet.new(this._root, {\r\n\t\t\tlocation: 0,\r\n\t\t\tsprite: overBoughtRB\r\n\t\t}))\r\n\r\n\t\tconst overBoughtRange = this.series.createAxisRange(overBought);\r\n\t\tthis.overBoughtRange = overBoughtRange;\r\n\t\tconst overBoughtFills = overBoughtRange.fills;\r\n\t\tif (overBoughtFills) {\r\n\t\t\toverBoughtFills.template.set(\"themeTags\", [\"overbought\", \"fill\"]);\r\n\t\t}\r\n\r\n\t\tconst overBoughtGrid = overBought.get(\"grid\")!;\r\n\t\toverBoughtGrid.setAll({ themeTags: [\"overbought\"], visible: true });\r\n\t\toverBoughtGrid._applyThemes();\r\n\r\n\t\tconst overBoughtLabel = overBought.get(\"label\")!;\r\n\t\toverBoughtLabel.setAll({ visible: true, forceHidden: false, location: 0 });\r\n\r\n\t\t// oversold range\r\n\t\tconst overSold = this.yAxis.makeDataItem({});\r\n\t\tthis.overSold = overSold;\r\n\t\toverSold.set(\"endValue\", -500);\r\n\t\toverSold.set(\"affectsMinMax\", false);\r\n\r\n\r\n\t\tconst overSoldRB = Button.new(this._root, {\r\n\t\t\tthemeTags: [\"rangegrip\", \"vertical\", side],\r\n\t\t\ticon: Graphics.new(this._root, {\r\n\t\t\t\tthemeTags: [\"rangegrip\", \"icon\"]\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\t// restrict from being dragged vertically\r\n\t\toverSoldRB.adapters.add(\"x\", function() {\r\n\t\t\treturn 0;\r\n\t\t});\r\n\r\n\t\t// restrict from being dragged outside of plot\r\n\t\toverSoldRB.adapters.add(\"y\", function(y) {\r\n\t\t\tif ($type.isNumber(y)) {\r\n\t\t\t\treturn $math.fitToRange(y, 0, chart.plotContainer.height());\r\n\t\t\t}\r\n\t\t\treturn y;\r\n\t\t});\r\n\r\n\t\t// change range when y changes\r\n\t\toverSoldRB.events.on(\"dragged\", () => {\r\n\t\t\tthis._updateRange(overSoldRB, \"overSold\");\r\n\t\t});\r\n\r\n\t\toverSold.set(\"bullet\", AxisBullet.new(this._root, {\r\n\t\t\tlocation: 0,\r\n\t\t\tsprite: overSoldRB\r\n\t\t}))\r\n\r\n\r\n\t\tconst overSoldRange = this.series.createAxisRange(overSold);\r\n\t\tthis.overSoldRange = overSoldRange;\r\n\t\tconst overSoldFills = overSoldRange.fills;\r\n\t\tif (overSoldFills) {\r\n\t\t\toverSoldFills.template.set(\"themeTags\", [\"oversold\", \"fill\"]);\r\n\t\t}\r\n\r\n\t\tconst overSoldGrid = overSold.get(\"grid\")!;\r\n\t\toverSoldGrid.setAll({ themeTags: [\"oversold\"], visible: true });\r\n\t\toverSoldGrid._applyThemes();\r\n\r\n\t\tconst overSoldLabel = overSold.get(\"label\")!;\r\n\t\toverSoldLabel.setAll({ visible: true, forceHidden: false, location: 0 });\r\n\t}\r\n\r\n\tprotected _updateRange(button: Button, key: \"overBought\" | \"overSold\") {\r\n\t\tconst chart = this.yAxis.chart;\r\n\t\tif (chart) {\r\n\t\t\tconst position = this.yAxis.toAxisPosition(button.y() / chart.plotContainer.height());\r\n\t\t\tthis.set(key, Math.round(this.yAxis.positionToValue(position)));\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tpublic _createSeries(): LineSeries {\r\n\t\treturn this.panel.series.push(LineSeries.new(this._root, {\r\n\t\t\tthemeTags: [\"indicator\"],\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis,\r\n\t\t\tvalueXField: \"valueX\",\r\n\t\t\tvalueYField: \"valueS\",\r\n\t\t\tstroke: this.get(\"seriesColor\"),\r\n\t\t\tfill: undefined\r\n\t\t}))\r\n\t}\r\n\r\n\tpublic _prepareChildren() {\r\n\t\tsuper._prepareChildren();\r\n\r\n\t\tconst overBoughtLabel = this.overBought.get(\"label\")!;\r\n\t\tconst overSoldLabel = this.overSold.get(\"label\")!;\r\n\t\tconst middleLabel = this.middle.get(\"label\")!;\r\n\r\n\t\tif (this.isDirty(\"overBought\") || this.isDirty(\"overSold\")) {\r\n\t\t\tconst numberFormatter = this.getNumberFormatter();\r\n\r\n\t\t\tconst overSoldValue = this.get(\"overSold\", 0);\r\n\t\t\tconst overBoughtValue = this.get(\"overBought\", 0);\r\n\t\t\tconst middleValue = overSoldValue + (overBoughtValue - overSoldValue) / 2;\r\n\r\n\t\t\toverBoughtLabel.set(\"text\", numberFormatter.format(overBoughtValue));\r\n\t\t\toverSoldLabel.set(\"text\", numberFormatter.format(overSoldValue));\r\n\t\t\tmiddleLabel.set(\"text\", numberFormatter.format(middleValue));\r\n\r\n\t\t\tthis.overBought.set(\"value\", overBoughtValue);\r\n\t\t\tthis.overSold.set(\"value\", overSoldValue);\r\n\r\n\t\t\tthis.middle.set(\"value\", middleValue);\r\n\t\t\tthis.yAxis.set(\"baseValue\", middleValue);\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"overSoldColor\")) {\r\n\t\t\tconst color = this.get(\"overSoldColor\");\r\n\t\t\toverSoldLabel.set(\"fill\", color);\r\n\r\n\t\t\tthis.overSold.get(\"grid\")!.set(\"stroke\", color);\r\n\t\t\tthis.overSoldRange.fills!.template.set(\"fill\", color);\r\n\t\t\tthis.overSoldRange.strokes!.template.set(\"stroke\", color);\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"overBoughtColor\")) {\r\n\t\t\tconst color = this.get(\"overBoughtColor\");\r\n\t\t\toverBoughtLabel.set(\"fill\", color);\r\n\r\n\t\t\tthis.overBought.get(\"grid\")!.set(\"stroke\", color);\r\n\t\t\tthis.overBoughtRange.fills!.template.set(\"fill\", color);\r\n\t\t\tthis.overBoughtRange.strokes!.template.set(\"stroke\", color);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\r\n\t\tif (this.isDirty(\"period\")) {\r\n\t\t\tthis._dataDirty = true;\r\n\t\t}\r\n\r\n\t\tsuper._updateChildren();\r\n\t}\r\n}"]}
|
|
1
|
+
{"version":3,"file":"OverboughtOversold.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/OverboughtOversold.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\nimport type { IValueAxisDataItem } from \"../../xy/axes/ValueAxis\";\r\nimport type { DataItem } from \"../../../core/render/Component\";\r\nimport type { Color } from \"../../../core/util/Color\";\r\n\r\nimport { ChartIndicator, IChartIndicatorSettings, IChartIndicatorPrivate, IChartIndicatorEvents } from \"./ChartIndicator\";\r\nimport { LineSeries, ILineSeriesAxisRange } from \"../../xy/series/LineSeries\";\r\nimport { Button } from \"../../../core/render/Button\";\r\nimport { Graphics } from \"../../../core/render/Graphics\";\r\nimport { AxisBullet } from \"../../xy/axes/AxisBullet\";\r\nimport type { AxisRendererY } from \"../../xy/axes/AxisRendererY\";\r\nimport * as $math from \"../../../core/util/Math\";\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\n\r\nexport interface IOverboughtOversoldSettings extends IChartIndicatorSettings {\r\n\r\n\t/**\r\n\t * A value for \"overbought\" threshold.\r\n\t */\r\n\toverBought?: number;\r\n\r\n\t/**\r\n\t * A value for \"oversold\" threshold.\r\n\t */\r\n\toverSold?: number;\r\n\r\n\t/**\r\n\t * A color for \"overbought\" section.\r\n\t */\r\n\toverBoughtColor?: Color;\r\n\r\n\t/**\r\n\t * A color for \"oversold\" section.\r\n\t */\r\n\toverSoldColor?: Color;\r\n}\r\n\r\nexport interface IOverboughtOversoldPrivate extends IChartIndicatorPrivate { }\r\n\r\nexport interface IOverboughtOversoldEvents extends IChartIndicatorEvents { }\r\n\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class OverboughtOversold extends ChartIndicator {\r\n\tpublic static className: string = \"OverboughtOversold\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([OverboughtOversold.className]);\r\n\r\n\tdeclare public _settings: IOverboughtOversoldSettings;\r\n\tdeclare public _privateSettings: IOverboughtOversoldPrivate;\r\n\tdeclare public _events: IOverboughtOversoldEvents;\r\n\r\n\tpublic overBought!: DataItem<IValueAxisDataItem>;\r\n\tpublic middle!: DataItem<IValueAxisDataItem>;\r\n\tpublic overSold!: DataItem<IValueAxisDataItem>;\r\n\r\n\tpublic overSoldRange!: ILineSeriesAxisRange;\r\n\tpublic overBoughtRange!: ILineSeriesAxisRange;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tdeclare public series: LineSeries;\r\n\r\n\tpublic _editableSettings: IIndicatorEditableSetting[] = [{\r\n\t\tkey: \"overBought\",\r\n\t\tname: this.root.language.translateAny(\"Overbought\"),\r\n\t\ttype: \"number\"\r\n\t}, {\r\n\t\tkey: \"overBoughtColor\",\r\n\t\tname: this.root.language.translateAny(\"Overbought\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"overSold\",\r\n\t\tname: this.root.language.translateAny(\"Oversold\"),\r\n\t\ttype: \"number\"\r\n\t}, {\r\n\t\tkey: \"overSoldColor\",\r\n\t\tname: this.root.language.translateAny(\"Oversold\"),\r\n\t\ttype: \"color\"\r\n\t}];\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis._themeTags.push(\"overboughtoversold\");\r\n\r\n\t\tsuper._afterNew();\r\n\r\n\t\tconst chart = this.panel;\r\n\t\tconst yAxis = this.yAxis;\r\n\t\tyAxis.set(\"strictMinMax\", true);\r\n\r\n\t\tyAxis.onPrivate(\"max\", (max) => {\r\n\t\t\tconst overBought = this.get(\"overBought\", 0);\r\n\t\t\tif ($type.isNumber(max) && max < overBought) {\r\n\t\t\t\tyAxis.setPrivateRaw(\"max\", overBought);\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tyAxis.onPrivate(\"min\", (min) => {\r\n\t\t\tconst overSold = this.get(\"overSold\", 0);\r\n\t\t\tif ($type.isNumber(min) && min > overSold) {\r\n\t\t\t\tyAxis.setPrivateRaw(\"min\", overSold);\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// middle grid\r\n\t\tthis.middle = this.yAxis.createAxisRange(this.yAxis.makeDataItem({}));\r\n\t\tconst middleGrid = this.middle.get(\"grid\")!;\r\n\t\tmiddleGrid.setAll({ themeTags: [\"middlegrid\"] });\r\n\t\tmiddleGrid._applyThemes();\r\n\r\n\t\tconst middleLabel = this.middle.get(\"label\")!;\r\n\t\tmiddleLabel.setAll({ visible: true, forceHidden: false });\r\n\r\n\t\tconst opposite = (yAxis.get(\"renderer\") as AxisRendererY).get(\"opposite\");\r\n\t\tlet side = \"left\";\r\n\t\tif (opposite) {\r\n\t\t\tside = \"right\"\r\n\t\t}\r\n\r\n\t\t// overbought range\r\n\t\tconst overBought = yAxis.makeDataItem({});\r\n\t\tthis.overBought = overBought;\r\n\t\toverBought.set(\"endValue\", 500);\r\n\t\toverBought.set(\"affectsMinMax\", false);\r\n\r\n\t\tconst overBoughtRB = Button.new(this._root, {\r\n\t\t\tthemeTags: [\"rangegrip\", \"vertical\", side],\r\n\t\t\ticon: Graphics.new(this._root, {\r\n\t\t\t\tthemeTags: [\"rangegrip\", \"icon\"]\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\t// restrict from being dragged vertically\r\n\t\toverBoughtRB.adapters.add(\"x\", function() {\r\n\t\t\treturn 0;\r\n\t\t});\r\n\r\n\t\t// restrict from being dragged outside of plot\r\n\t\toverBoughtRB.adapters.add(\"y\", function(y) {\r\n\t\t\tif ($type.isNumber(y)) {\r\n\t\t\t\treturn $math.fitToRange(y, 0, chart.plotContainer.height());\r\n\t\t\t}\r\n\t\t\treturn y;\r\n\t\t});\r\n\r\n\t\t// change range when y changes\r\n\t\toverBoughtRB.events.on(\"dragged\", () => {\r\n\t\t\tthis._updateRange(overBoughtRB, \"overBought\");\r\n\t\t});\r\n\r\n\t\toverBought.set(\"bullet\", AxisBullet.new(this._root, {\r\n\t\t\tlocation: 0,\r\n\t\t\tsprite: overBoughtRB\r\n\t\t}))\r\n\r\n\t\tconst overBoughtRange = this.series.createAxisRange(overBought);\r\n\t\tthis.overBoughtRange = overBoughtRange;\r\n\t\tconst overBoughtFills = overBoughtRange.fills;\r\n\t\tif (overBoughtFills) {\r\n\t\t\toverBoughtFills.template.set(\"themeTags\", [\"overbought\", \"fill\"]);\r\n\t\t}\r\n\r\n\t\tconst overBoughtGrid = overBought.get(\"grid\")!;\r\n\t\toverBoughtGrid.setAll({ themeTags: [\"overbought\"], visible: true });\r\n\t\toverBoughtGrid._applyThemes();\r\n\r\n\t\tconst overBoughtLabel = overBought.get(\"label\")!;\r\n\t\toverBoughtLabel.setAll({ visible: true, forceHidden: false, location: 0 });\r\n\r\n\t\t// oversold range\r\n\t\tconst overSold = yAxis.makeDataItem({});\r\n\t\tthis.overSold = overSold;\r\n\t\toverSold.set(\"endValue\", -500);\r\n\t\toverSold.set(\"affectsMinMax\", false);\r\n\r\n\r\n\t\tconst overSoldRB = Button.new(this._root, {\r\n\t\t\tthemeTags: [\"rangegrip\", \"vertical\", side],\r\n\t\t\ticon: Graphics.new(this._root, {\r\n\t\t\t\tthemeTags: [\"rangegrip\", \"icon\"]\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\t// restrict from being dragged vertically\r\n\t\toverSoldRB.adapters.add(\"x\", function() {\r\n\t\t\treturn 0;\r\n\t\t});\r\n\r\n\t\t// restrict from being dragged outside of plot\r\n\t\toverSoldRB.adapters.add(\"y\", function(y) {\r\n\t\t\tif ($type.isNumber(y)) {\r\n\t\t\t\treturn $math.fitToRange(y, 0, chart.plotContainer.height());\r\n\t\t\t}\r\n\t\t\treturn y;\r\n\t\t});\r\n\r\n\t\t// change range when y changes\r\n\t\toverSoldRB.events.on(\"dragged\", () => {\r\n\t\t\tthis._updateRange(overSoldRB, \"overSold\");\r\n\t\t});\r\n\r\n\t\toverSold.set(\"bullet\", AxisBullet.new(this._root, {\r\n\t\t\tlocation: 0,\r\n\t\t\tsprite: overSoldRB\r\n\t\t}))\r\n\r\n\r\n\t\tconst overSoldRange = this.series.createAxisRange(overSold);\r\n\t\tthis.overSoldRange = overSoldRange;\r\n\t\tconst overSoldFills = overSoldRange.fills;\r\n\t\tif (overSoldFills) {\r\n\t\t\toverSoldFills.template.set(\"themeTags\", [\"oversold\", \"fill\"]);\r\n\t\t}\r\n\r\n\t\tconst overSoldGrid = overSold.get(\"grid\")!;\r\n\t\toverSoldGrid.setAll({ themeTags: [\"oversold\"], visible: true });\r\n\t\toverSoldGrid._applyThemes();\r\n\r\n\t\tconst overSoldLabel = overSold.get(\"label\")!;\r\n\t\toverSoldLabel.setAll({ visible: true, forceHidden: false, location: 0 });\r\n\t}\r\n\r\n\tprotected _updateRange(button: Button, key: \"overBought\" | \"overSold\") {\r\n\t\tconst chart = this.yAxis.chart;\r\n\t\tif (chart) {\r\n\t\t\tconst position = this.yAxis.toAxisPosition(button.y() / chart.plotContainer.height());\r\n\t\t\tthis.set(key, Math.round(this.yAxis.positionToValue(position)));\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tpublic _createSeries(): LineSeries {\r\n\t\treturn this.panel.series.push(LineSeries.new(this._root, {\r\n\t\t\tthemeTags: [\"indicator\"],\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis,\r\n\t\t\tvalueXField: \"valueX\",\r\n\t\t\tvalueYField: \"valueS\",\r\n\t\t\tstroke: this.get(\"seriesColor\"),\r\n\t\t\tfill: undefined\r\n\t\t}))\r\n\t}\r\n\r\n\tpublic _prepareChildren() {\r\n\t\tsuper._prepareChildren();\r\n\r\n\t\tconst overBoughtLabel = this.overBought.get(\"label\")!;\r\n\t\tconst overSoldLabel = this.overSold.get(\"label\")!;\r\n\t\tconst middleLabel = this.middle.get(\"label\")!;\r\n\r\n\t\tif (this.isDirty(\"overBought\") || this.isDirty(\"overSold\")) {\r\n\t\t\tconst numberFormatter = this.getNumberFormatter();\r\n\r\n\t\t\tconst overSoldValue = this.get(\"overSold\", 0);\r\n\t\t\tconst overBoughtValue = this.get(\"overBought\", 0);\r\n\t\t\tconst middleValue = overSoldValue + (overBoughtValue - overSoldValue) / 2;\r\n\r\n\t\t\toverBoughtLabel.set(\"text\", numberFormatter.format(overBoughtValue));\r\n\t\t\toverSoldLabel.set(\"text\", numberFormatter.format(overSoldValue));\r\n\t\t\tmiddleLabel.set(\"text\", numberFormatter.format(middleValue));\r\n\r\n\t\t\tthis.overBought.set(\"value\", overBoughtValue);\r\n\t\t\tthis.overSold.set(\"value\", overSoldValue);\r\n\r\n\t\t\tthis.middle.set(\"value\", middleValue);\r\n\t\t\tthis.yAxis.set(\"baseValue\", middleValue);\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"overSoldColor\")) {\r\n\t\t\tconst color = this.get(\"overSoldColor\");\r\n\t\t\toverSoldLabel.set(\"fill\", color);\r\n\r\n\t\t\tthis.overSold.get(\"grid\")!.set(\"stroke\", color);\r\n\t\t\tthis.overSoldRange.fills!.template.set(\"fill\", color);\r\n\t\t\tthis.overSoldRange.strokes!.template.set(\"stroke\", color);\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"overBoughtColor\")) {\r\n\t\t\tconst color = this.get(\"overBoughtColor\");\r\n\t\t\toverBoughtLabel.set(\"fill\", color);\r\n\r\n\t\t\tthis.overBought.get(\"grid\")!.set(\"stroke\", color);\r\n\t\t\tthis.overBoughtRange.fills!.template.set(\"fill\", color);\r\n\t\t\tthis.overBoughtRange.strokes!.template.set(\"stroke\", color);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\r\n\t\tif (this.isDirty(\"period\")) {\r\n\t\t\tthis._dataDirty = true;\r\n\t\t}\r\n\r\n\t\tsuper._updateChildren();\r\n\t}\r\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Registry.js","sourceRoot":"","sources":["../../../../src/.internal/core/Registry.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,OAAO,QAAQ;IAArB;QACC;;WAEG;QACH;;;;mBAA2B,OAAO;WAAC;QAEnC;;;WAGG;QACH;;;;mBAAqB,EAAE;WAAC;QAExB;;WAEG;QACH;;;;mBAAyC,EAAE;WAAC;QAE5C;;WAEG;QACH;;;;mBAAsB,EAAE;WAAC;IAE1B,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACzC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAGD;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACrC,IAAI,IAAI,CAAC;IACT,OAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;KACf;AACF,CAAC","sourcesContent":["\r\n/**\r\n * @ignore\r\n */\r\nexport class Registry {\r\n\t/**\r\n\t * Currently running version of amCharts.\r\n\t */\r\n\treadonly version: string = \"5.5.
|
|
1
|
+
{"version":3,"file":"Registry.js","sourceRoot":"","sources":["../../../../src/.internal/core/Registry.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,OAAO,QAAQ;IAArB;QACC;;WAEG;QACH;;;;mBAA2B,OAAO;WAAC;QAEnC;;;WAGG;QACH;;;;mBAAqB,EAAE;WAAC;QAExB;;WAEG;QACH;;;;mBAAyC,EAAE;WAAC;QAE5C;;WAEG;QACH;;;;mBAAsB,EAAE;WAAC;IAE1B,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACzC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAGD;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACrC,IAAI,IAAI,CAAC;IACT,OAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;KACf;AACF,CAAC","sourcesContent":["\r\n/**\r\n * @ignore\r\n */\r\nexport class Registry {\r\n\t/**\r\n\t * Currently running version of amCharts.\r\n\t */\r\n\treadonly version: string = \"5.5.4\";\r\n\r\n\t/**\r\n\t * List of applied licenses.\r\n\t * @ignore\r\n\t */\r\n\tlicenses: String[] = [];\r\n\r\n\t/**\r\n\t * Entities that have their `id` setting set.\r\n\t */\r\n\tentitiesById: { [index: string]: any } = {};\r\n\r\n\t/**\r\n\t * All created [[Root]] elements.\r\n\t */\r\n\trootElements: any[] = [];\r\n\r\n}\r\n\r\n/**\r\n\t* @ignore\r\n */\r\nexport const registry = new Registry();\r\n\r\n/**\r\n * Adds a license, e.g.:\r\n *\r\n * ```TypeScript\r\n * am5.addLicense(\"xxxxxxxx\");\r\n * ```\r\n * ```JavaScript\r\n * am5.addLicense(\"xxxxxxxx\");\r\n * ```\r\n *\r\n * Multiple licenses can be added to cover for multiple products.\r\n *\r\n * @param license License key\r\n */\r\nexport function addLicense(license: string): void {\r\n\tregistry.licenses.push(license);\r\n}\r\n\r\n\r\n/**\r\n * Disposes all [[Root]] elements.\r\n */\r\nexport function disposeAllRootElements(): void {\r\n\tlet root;\r\n\twhile(root = registry.rootElements.pop()) {\r\n\t\troot.dispose();\r\n\t}\r\n}\r\n"]}
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
|
|
|
5
5
|
Please note, that this project, while following numbering syntax, it DOES NOT
|
|
6
6
|
adhere to [Semantic Versioning](http://semver.org/spec/v2.0.0.html) rules.
|
|
7
7
|
|
|
8
|
+
## [5.5.4] - 2023-11-01
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- All `StockChart` indicators with OverBought/Oversold ranges were zooming to the selected series range (they should not).
|
|
12
|
+
|
|
13
|
+
|
|
8
14
|
## [5.5.3] - 2023-11-01
|
|
9
15
|
|
|
10
16
|
### Added
|