@363045841yyt/klinechart-core 0.7.9 → 0.7.10

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 (234) hide show
  1. package/dist/engine/chart.d.ts.map +1 -1
  2. package/dist/engine/chart.js +39 -229
  3. package/dist/engine/chart.js.map +1 -1
  4. package/dist/engine/indicators/indicatorDefinitionRegistry.d.ts +10 -3
  5. package/dist/engine/indicators/indicatorDefinitionRegistry.d.ts.map +1 -1
  6. package/dist/engine/indicators/indicatorDefinitionRegistry.js +29 -2
  7. package/dist/engine/indicators/indicatorDefinitionRegistry.js.map +1 -1
  8. package/dist/engine/indicators/indicatorMetadata.d.ts +79 -2
  9. package/dist/engine/indicators/indicatorMetadata.d.ts.map +1 -1
  10. package/dist/engine/indicators/indicatorMetadata.js.map +1 -1
  11. package/dist/engine/indicators/indicatorRegistry.d.ts +5 -0
  12. package/dist/engine/indicators/indicatorRegistry.d.ts.map +1 -1
  13. package/dist/engine/indicators/indicatorRegistry.js +49 -5
  14. package/dist/engine/indicators/indicatorRegistry.js.map +1 -1
  15. package/dist/engine/indicators/registerBuiltins.d.ts +42 -0
  16. package/dist/engine/indicators/registerBuiltins.d.ts.map +1 -0
  17. package/dist/engine/indicators/registerBuiltins.js +46 -0
  18. package/dist/engine/indicators/registerBuiltins.js.map +1 -0
  19. package/dist/engine/indicators/scheduler.d.ts +2 -2
  20. package/dist/engine/indicators/scheduler.d.ts.map +1 -1
  21. package/dist/engine/indicators/scheduler.js +41 -11
  22. package/dist/engine/indicators/scheduler.js.map +1 -1
  23. package/dist/engine/indicators/stateComposer.d.ts +6 -4
  24. package/dist/engine/indicators/stateComposer.d.ts.map +1 -1
  25. package/dist/engine/indicators/stateComposer.js +80 -984
  26. package/dist/engine/indicators/stateComposer.js.map +1 -1
  27. package/dist/engine/indicators/visibleStateComposers.d.ts +145 -0
  28. package/dist/engine/indicators/visibleStateComposers.d.ts.map +1 -0
  29. package/dist/engine/indicators/visibleStateComposers.js +469 -0
  30. package/dist/engine/indicators/visibleStateComposers.js.map +1 -0
  31. package/dist/engine/renderers/Indicator/atr.d.ts.map +1 -1
  32. package/dist/engine/renderers/Indicator/atr.js +8 -0
  33. package/dist/engine/renderers/Indicator/atr.js.map +1 -1
  34. package/dist/engine/renderers/Indicator/boll.d.ts.map +1 -1
  35. package/dist/engine/renderers/Indicator/boll.js +47 -0
  36. package/dist/engine/renderers/Indicator/boll.js.map +1 -1
  37. package/dist/engine/renderers/Indicator/cci.d.ts.map +1 -1
  38. package/dist/engine/renderers/Indicator/cci.js +8 -1
  39. package/dist/engine/renderers/Indicator/cci.js.map +1 -1
  40. package/dist/engine/renderers/Indicator/chaikinVol.d.ts.map +1 -1
  41. package/dist/engine/renderers/Indicator/chaikinVol.js +7 -1
  42. package/dist/engine/renderers/Indicator/chaikinVol.js.map +1 -1
  43. package/dist/engine/renderers/Indicator/cmf.d.ts.map +1 -1
  44. package/dist/engine/renderers/Indicator/cmf.js +7 -1
  45. package/dist/engine/renderers/Indicator/cmf.js.map +1 -1
  46. package/dist/engine/renderers/Indicator/dema.d.ts.map +1 -1
  47. package/dist/engine/renderers/Indicator/dema.js +8 -1
  48. package/dist/engine/renderers/Indicator/dema.js.map +1 -1
  49. package/dist/engine/renderers/Indicator/donchian.d.ts.map +1 -1
  50. package/dist/engine/renderers/Indicator/donchian.js +8 -1
  51. package/dist/engine/renderers/Indicator/donchian.js.map +1 -1
  52. package/dist/engine/renderers/Indicator/ene.d.ts.map +1 -1
  53. package/dist/engine/renderers/Indicator/ene.js +45 -0
  54. package/dist/engine/renderers/Indicator/ene.js.map +1 -1
  55. package/dist/engine/renderers/Indicator/expma.d.ts.map +1 -1
  56. package/dist/engine/renderers/Indicator/expma.js +45 -0
  57. package/dist/engine/renderers/Indicator/expma.js.map +1 -1
  58. package/dist/engine/renderers/Indicator/fastk.d.ts.map +1 -1
  59. package/dist/engine/renderers/Indicator/fastk.js +8 -1
  60. package/dist/engine/renderers/Indicator/fastk.js.map +1 -1
  61. package/dist/engine/renderers/Indicator/fib.d.ts.map +1 -1
  62. package/dist/engine/renderers/Indicator/fib.js +8 -1
  63. package/dist/engine/renderers/Indicator/fib.js.map +1 -1
  64. package/dist/engine/renderers/Indicator/hma.d.ts.map +1 -1
  65. package/dist/engine/renderers/Indicator/hma.js +8 -1
  66. package/dist/engine/renderers/Indicator/hma.js.map +1 -1
  67. package/dist/engine/renderers/Indicator/hv.d.ts.map +1 -1
  68. package/dist/engine/renderers/Indicator/hv.js +7 -0
  69. package/dist/engine/renderers/Indicator/hv.js.map +1 -1
  70. package/dist/engine/renderers/Indicator/ichimoku.d.ts.map +1 -1
  71. package/dist/engine/renderers/Indicator/ichimoku.js +8 -1
  72. package/dist/engine/renderers/Indicator/ichimoku.js.map +1 -1
  73. package/dist/engine/renderers/Indicator/index.d.ts +7 -2
  74. package/dist/engine/renderers/Indicator/index.d.ts.map +1 -1
  75. package/dist/engine/renderers/Indicator/index.js +2 -114
  76. package/dist/engine/renderers/Indicator/index.js.map +1 -1
  77. package/dist/engine/renderers/Indicator/kama.d.ts.map +1 -1
  78. package/dist/engine/renderers/Indicator/kama.js +8 -1
  79. package/dist/engine/renderers/Indicator/kama.js.map +1 -1
  80. package/dist/engine/renderers/Indicator/keltner.d.ts.map +1 -1
  81. package/dist/engine/renderers/Indicator/keltner.js +8 -1
  82. package/dist/engine/renderers/Indicator/keltner.js.map +1 -1
  83. package/dist/engine/renderers/Indicator/kst.d.ts.map +1 -1
  84. package/dist/engine/renderers/Indicator/kst.js +8 -0
  85. package/dist/engine/renderers/Indicator/kst.js.map +1 -1
  86. package/dist/engine/renderers/Indicator/ma.d.ts.map +1 -1
  87. package/dist/engine/renderers/Indicator/ma.js +63 -0
  88. package/dist/engine/renderers/Indicator/ma.js.map +1 -1
  89. package/dist/engine/renderers/Indicator/macd.d.ts.map +1 -1
  90. package/dist/engine/renderers/Indicator/macd.js +8 -1
  91. package/dist/engine/renderers/Indicator/macd.js.map +1 -1
  92. package/dist/engine/renderers/Indicator/mfi.d.ts.map +1 -1
  93. package/dist/engine/renderers/Indicator/mfi.js +7 -1
  94. package/dist/engine/renderers/Indicator/mfi.js.map +1 -1
  95. package/dist/engine/renderers/Indicator/mom.d.ts.map +1 -1
  96. package/dist/engine/renderers/Indicator/mom.js +8 -0
  97. package/dist/engine/renderers/Indicator/mom.js.map +1 -1
  98. package/dist/engine/renderers/Indicator/obv.d.ts.map +1 -1
  99. package/dist/engine/renderers/Indicator/obv.js +7 -1
  100. package/dist/engine/renderers/Indicator/obv.js.map +1 -1
  101. package/dist/engine/renderers/Indicator/parkinson.d.ts.map +1 -1
  102. package/dist/engine/renderers/Indicator/parkinson.js +7 -0
  103. package/dist/engine/renderers/Indicator/parkinson.js.map +1 -1
  104. package/dist/engine/renderers/Indicator/pivot.d.ts.map +1 -1
  105. package/dist/engine/renderers/Indicator/pivot.js +8 -1
  106. package/dist/engine/renderers/Indicator/pivot.js.map +1 -1
  107. package/dist/engine/renderers/Indicator/pvt.d.ts.map +1 -1
  108. package/dist/engine/renderers/Indicator/pvt.js +7 -1
  109. package/dist/engine/renderers/Indicator/pvt.js.map +1 -1
  110. package/dist/engine/renderers/Indicator/roc.d.ts.map +1 -1
  111. package/dist/engine/renderers/Indicator/roc.js +7 -1
  112. package/dist/engine/renderers/Indicator/roc.js.map +1 -1
  113. package/dist/engine/renderers/Indicator/rsi.d.ts.map +1 -1
  114. package/dist/engine/renderers/Indicator/rsi.js +8 -1
  115. package/dist/engine/renderers/Indicator/rsi.js.map +1 -1
  116. package/dist/engine/renderers/Indicator/sar.d.ts.map +1 -1
  117. package/dist/engine/renderers/Indicator/sar.js +8 -1
  118. package/dist/engine/renderers/Indicator/sar.js.map +1 -1
  119. package/dist/engine/renderers/Indicator/stoch.d.ts.map +1 -1
  120. package/dist/engine/renderers/Indicator/stoch.js +8 -1
  121. package/dist/engine/renderers/Indicator/stoch.js.map +1 -1
  122. package/dist/engine/renderers/Indicator/structure.d.ts.map +1 -1
  123. package/dist/engine/renderers/Indicator/structure.js +8 -1
  124. package/dist/engine/renderers/Indicator/structure.js.map +1 -1
  125. package/dist/engine/renderers/Indicator/subPaneConfig.d.ts +1 -1
  126. package/dist/engine/renderers/Indicator/subPaneConfig.d.ts.map +1 -1
  127. package/dist/engine/renderers/Indicator/subPaneConfig.js.map +1 -1
  128. package/dist/engine/renderers/Indicator/supertrend.d.ts.map +1 -1
  129. package/dist/engine/renderers/Indicator/supertrend.js +8 -1
  130. package/dist/engine/renderers/Indicator/supertrend.js.map +1 -1
  131. package/dist/engine/renderers/Indicator/tema.d.ts.map +1 -1
  132. package/dist/engine/renderers/Indicator/tema.js +8 -1
  133. package/dist/engine/renderers/Indicator/tema.js.map +1 -1
  134. package/dist/engine/renderers/Indicator/trix.d.ts.map +1 -1
  135. package/dist/engine/renderers/Indicator/trix.js +7 -0
  136. package/dist/engine/renderers/Indicator/trix.js.map +1 -1
  137. package/dist/engine/renderers/Indicator/vma.d.ts.map +1 -1
  138. package/dist/engine/renderers/Indicator/vma.js +7 -0
  139. package/dist/engine/renderers/Indicator/vma.js.map +1 -1
  140. package/dist/engine/renderers/Indicator/volumeProfile.d.ts.map +1 -1
  141. package/dist/engine/renderers/Indicator/volumeProfile.js +7 -1
  142. package/dist/engine/renderers/Indicator/volumeProfile.js.map +1 -1
  143. package/dist/engine/renderers/Indicator/vwap.d.ts.map +1 -1
  144. package/dist/engine/renderers/Indicator/vwap.js +7 -1
  145. package/dist/engine/renderers/Indicator/vwap.js.map +1 -1
  146. package/dist/engine/renderers/Indicator/wma.d.ts.map +1 -1
  147. package/dist/engine/renderers/Indicator/wma.js +8 -1
  148. package/dist/engine/renderers/Indicator/wma.js.map +1 -1
  149. package/dist/engine/renderers/Indicator/wmsr.d.ts.map +1 -1
  150. package/dist/engine/renderers/Indicator/wmsr.js +8 -1
  151. package/dist/engine/renderers/Indicator/wmsr.js.map +1 -1
  152. package/dist/engine/renderers/Indicator/zones.d.ts.map +1 -1
  153. package/dist/engine/renderers/Indicator/zones.js +8 -1
  154. package/dist/engine/renderers/Indicator/zones.js.map +1 -1
  155. package/dist/engine/renderers/extremaMarkers.d.ts.map +1 -1
  156. package/dist/engine/renderers/extremaMarkers.js +0 -22
  157. package/dist/engine/renderers/extremaMarkers.js.map +1 -1
  158. package/dist/engine/renderers/subVolume.d.ts.map +1 -1
  159. package/dist/engine/renderers/subVolume.js +3 -0
  160. package/dist/engine/renderers/subVolume.js.map +1 -1
  161. package/dist/engine/subPaneManager.d.ts +1 -0
  162. package/dist/engine/subPaneManager.d.ts.map +1 -1
  163. package/dist/engine/subPaneManager.js +30 -237
  164. package/dist/engine/subPaneManager.js.map +1 -1
  165. package/dist/semantic/controller.d.ts +9 -4
  166. package/dist/semantic/controller.d.ts.map +1 -1
  167. package/dist/semantic/controller.js +57 -53
  168. package/dist/semantic/controller.js.map +1 -1
  169. package/dist/version.d.ts +1 -1
  170. package/dist/version.d.ts.map +1 -1
  171. package/dist/version.js +1 -1
  172. package/dist/version.js.map +1 -1
  173. package/package.json +1 -1
  174. package/src/engine/chart.ts +49 -229
  175. package/src/engine/indicators/__tests__/indicatorDefinitionRegistry.test.ts +59 -0
  176. package/src/engine/indicators/__tests__/indicatorRegistry.test.ts +62 -0
  177. package/src/engine/indicators/__tests__/registerBuiltins.test.ts +380 -0
  178. package/src/engine/indicators/__tests__/scheduler.test.ts +62 -32
  179. package/src/engine/indicators/__tests__/stateComposer.test.ts +444 -0
  180. package/src/engine/indicators/indicatorDefinitionRegistry.ts +49 -4
  181. package/src/engine/indicators/indicatorMetadata.ts +107 -2
  182. package/src/engine/indicators/indicatorRegistry.ts +54 -5
  183. package/src/engine/indicators/registerBuiltins.ts +47 -0
  184. package/src/engine/indicators/scheduler.ts +61 -13
  185. package/src/engine/indicators/stateComposer.ts +110 -1040
  186. package/src/engine/indicators/visibleStateComposers.ts +734 -0
  187. package/src/engine/renderers/Indicator/__tests__/createSubIndicatorRenderer.test.ts +61 -0
  188. package/src/engine/renderers/Indicator/atr.ts +9 -1
  189. package/src/engine/renderers/Indicator/boll.ts +53 -1
  190. package/src/engine/renderers/Indicator/cci.ts +9 -2
  191. package/src/engine/renderers/Indicator/chaikinVol.ts +8 -2
  192. package/src/engine/renderers/Indicator/cmf.ts +8 -2
  193. package/src/engine/renderers/Indicator/dema.ts +9 -2
  194. package/src/engine/renderers/Indicator/donchian.ts +9 -2
  195. package/src/engine/renderers/Indicator/ene.ts +51 -1
  196. package/src/engine/renderers/Indicator/expma.ts +51 -1
  197. package/src/engine/renderers/Indicator/fastk.ts +9 -2
  198. package/src/engine/renderers/Indicator/fib.ts +9 -2
  199. package/src/engine/renderers/Indicator/hma.ts +9 -2
  200. package/src/engine/renderers/Indicator/hv.ts +8 -1
  201. package/src/engine/renderers/Indicator/ichimoku.ts +9 -2
  202. package/src/engine/renderers/Indicator/index.ts +9 -121
  203. package/src/engine/renderers/Indicator/kama.ts +9 -2
  204. package/src/engine/renderers/Indicator/keltner.ts +9 -2
  205. package/src/engine/renderers/Indicator/kst.ts +9 -1
  206. package/src/engine/renderers/Indicator/ma.ts +69 -0
  207. package/src/engine/renderers/Indicator/macd.ts +9 -2
  208. package/src/engine/renderers/Indicator/mfi.ts +8 -2
  209. package/src/engine/renderers/Indicator/mom.ts +9 -1
  210. package/src/engine/renderers/Indicator/obv.ts +8 -2
  211. package/src/engine/renderers/Indicator/parkinson.ts +8 -1
  212. package/src/engine/renderers/Indicator/pivot.ts +9 -2
  213. package/src/engine/renderers/Indicator/pvt.ts +8 -2
  214. package/src/engine/renderers/Indicator/roc.ts +8 -2
  215. package/src/engine/renderers/Indicator/rsi.ts +9 -2
  216. package/src/engine/renderers/Indicator/sar.ts +9 -2
  217. package/src/engine/renderers/Indicator/stoch.ts +9 -2
  218. package/src/engine/renderers/Indicator/structure.ts +9 -2
  219. package/src/engine/renderers/Indicator/subPaneConfig.ts +1 -1
  220. package/src/engine/renderers/Indicator/supertrend.ts +9 -2
  221. package/src/engine/renderers/Indicator/tema.ts +9 -2
  222. package/src/engine/renderers/Indicator/trix.ts +8 -1
  223. package/src/engine/renderers/Indicator/vma.ts +8 -1
  224. package/src/engine/renderers/Indicator/volumeProfile.ts +8 -2
  225. package/src/engine/renderers/Indicator/vwap.ts +8 -2
  226. package/src/engine/renderers/Indicator/wma.ts +9 -2
  227. package/src/engine/renderers/Indicator/wmsr.ts +9 -2
  228. package/src/engine/renderers/Indicator/zones.ts +9 -2
  229. package/src/engine/renderers/extremaMarkers.ts +0 -24
  230. package/src/engine/renderers/subVolume.ts +3 -0
  231. package/src/engine/subPaneManager.ts +34 -274
  232. package/src/semantic/__tests__/controller.test.ts +84 -0
  233. package/src/semantic/controller.ts +69 -65
  234. package/src/version.ts +1 -1
@@ -0,0 +1,469 @@
1
+ function getSparseSeriesBundle(bundle, bundleKey) {
2
+ return bundle[bundleKey];
3
+ }
4
+ function calcSparseExtremes(series, range) {
5
+ if (series.length === 0 || range.start >= series.length) {
6
+ return { min: Infinity, max: -Infinity };
7
+ }
8
+ let min = Infinity;
9
+ let max = -Infinity;
10
+ const end = Math.min(range.end, series.length);
11
+ for (let i = range.start; i < end; i++) {
12
+ const v = series[i];
13
+ if (v !== undefined) {
14
+ min = Math.min(min, v);
15
+ max = Math.max(max, v);
16
+ }
17
+ }
18
+ return { min, max };
19
+ }
20
+ function computePaddedBounds(extremes, emptyState) {
21
+ if (!Number.isFinite(extremes.min) || !Number.isFinite(extremes.max)) {
22
+ return { valueMin: emptyState.valueMin, valueMax: emptyState.valueMax };
23
+ }
24
+ const range = extremes.max - extremes.min;
25
+ const padding = range > 0 ? range * 0.05 : Math.max(1, Math.abs(extremes.max) * 0.05);
26
+ return { valueMin: extremes.min - padding, valueMax: extremes.max + padding };
27
+ }
28
+ export function createSparseVisibleStateComposer(bundleKey, emptyState) {
29
+ return ({ bundle, visibleRange, timestamp, active }) => {
30
+ const source = getSparseSeriesBundle(bundle, bundleKey);
31
+ if (!active) {
32
+ return {
33
+ ...emptyState,
34
+ timestamp,
35
+ series: source.series,
36
+ params: source.params,
37
+ };
38
+ }
39
+ const extremes = calcSparseExtremes(source.series, visibleRange);
40
+ const bounds = computePaddedBounds(extremes, emptyState);
41
+ return {
42
+ timestamp,
43
+ series: source.series,
44
+ params: source.params,
45
+ valueMin: bounds.valueMin,
46
+ valueMax: bounds.valueMax,
47
+ visibleMin: extremes.min,
48
+ visibleMax: extremes.max,
49
+ };
50
+ };
51
+ }
52
+ function getRecordSeriesBundle(bundle, bundleKey) {
53
+ return bundle[bundleKey];
54
+ }
55
+ function calcRecordExtremes(series, range) {
56
+ let min = Infinity;
57
+ let max = -Infinity;
58
+ for (const key of Object.keys(series)) {
59
+ const arr = series[Number(key)];
60
+ if (!arr)
61
+ continue;
62
+ const end = Math.min(range.end, arr.length);
63
+ for (let i = range.start; i < end; i++) {
64
+ const v = arr[i];
65
+ if (v !== undefined) {
66
+ min = Math.min(min, v);
67
+ max = Math.max(max, v);
68
+ }
69
+ }
70
+ }
71
+ return { min, max };
72
+ }
73
+ export function createFixedRangeSparseVisibleStateComposer(bundleKey, emptyState) {
74
+ return ({ bundle, visibleRange, timestamp, active }) => {
75
+ const source = getSparseSeriesBundle(bundle, bundleKey);
76
+ if (!active) {
77
+ return {
78
+ ...emptyState,
79
+ timestamp,
80
+ series: source.series,
81
+ params: source.params,
82
+ };
83
+ }
84
+ const extremes = calcSparseExtremes(source.series, visibleRange);
85
+ return {
86
+ timestamp,
87
+ series: source.series,
88
+ params: source.params,
89
+ valueMin: emptyState.valueMin,
90
+ valueMax: emptyState.valueMax,
91
+ visibleMin: extremes.min,
92
+ visibleMax: extremes.max,
93
+ };
94
+ };
95
+ }
96
+ export function createFixedRangeRecordVisibleStateComposer(bundleKey, emptyState) {
97
+ return ({ bundle, visibleRange, timestamp, active }) => {
98
+ const source = getRecordSeriesBundle(bundle, bundleKey);
99
+ if (!active) {
100
+ return {
101
+ ...emptyState,
102
+ timestamp,
103
+ series: source.series,
104
+ enabledPeriods: source.enabledPeriods,
105
+ params: source.params,
106
+ };
107
+ }
108
+ const extremes = calcRecordExtremes(source.series, visibleRange);
109
+ return {
110
+ timestamp,
111
+ series: source.series,
112
+ enabledPeriods: source.enabledPeriods,
113
+ params: source.params,
114
+ valueMin: emptyState.valueMin,
115
+ valueMax: emptyState.valueMax,
116
+ visibleMin: extremes.min,
117
+ visibleMax: extremes.max,
118
+ };
119
+ };
120
+ }
121
+ export function createFixedRangePointVisibleStateComposer(bundleKey, emptyState, fields) {
122
+ return ({ bundle, visibleRange, timestamp, active }) => {
123
+ const source = getPointArraySeriesBundle(bundle, bundleKey);
124
+ if (!active) {
125
+ return {
126
+ ...emptyState,
127
+ timestamp,
128
+ series: source.series,
129
+ params: source.params,
130
+ };
131
+ }
132
+ const extremes = calcPointArrayExtremes(source.series, fields, visibleRange);
133
+ return {
134
+ timestamp,
135
+ series: source.series,
136
+ params: source.params,
137
+ valueMin: emptyState.valueMin,
138
+ valueMax: emptyState.valueMax,
139
+ visibleMin: extremes.min,
140
+ visibleMax: extremes.max,
141
+ };
142
+ };
143
+ }
144
+ function getDualSparseSeriesBundle(bundle, bundleKey) {
145
+ return bundle[bundleKey];
146
+ }
147
+ function getPointArraySeriesBundle(bundle, bundleKey) {
148
+ return bundle[bundleKey];
149
+ }
150
+ function calcPointArrayExtremes(series, fields, range) {
151
+ if (series.length === 0 || range.start >= series.length) {
152
+ return { min: Infinity, max: -Infinity };
153
+ }
154
+ let min = Infinity;
155
+ let max = -Infinity;
156
+ const end = Math.min(range.end, series.length);
157
+ for (let i = range.start; i < end; i++) {
158
+ const p = series[i];
159
+ if (p) {
160
+ for (const field of fields) {
161
+ const v = p[field];
162
+ if (typeof v === 'number' && Number.isFinite(v)) {
163
+ min = Math.min(min, v);
164
+ max = Math.max(max, v);
165
+ }
166
+ }
167
+ }
168
+ }
169
+ return { min, max };
170
+ }
171
+ function computeMAFamilyBounds(extremes, emptyBounds) {
172
+ if (!extremes || !Number.isFinite(extremes.min) || !Number.isFinite(extremes.max)) {
173
+ return { valueMin: emptyBounds.valueMin, valueMax: emptyBounds.valueMax };
174
+ }
175
+ const range = extremes.max - extremes.min;
176
+ const padding = range > 0 ? range * 0.05 : Math.max(1, Math.abs(extremes.max) * 0.05);
177
+ return { valueMin: extremes.min - padding, valueMax: extremes.max + padding };
178
+ }
179
+ export function createPaddedSparseVisibleStateComposer(bundleKey, emptyState) {
180
+ return ({ bundle, visibleRange, timestamp, active }) => {
181
+ const source = getSparseSeriesBundle(bundle, bundleKey);
182
+ if (!active) {
183
+ return {
184
+ ...emptyState,
185
+ timestamp,
186
+ series: source.series,
187
+ params: source.params,
188
+ };
189
+ }
190
+ const extremes = calcSparseExtremes(source.series, visibleRange);
191
+ const padding = Number.isFinite(extremes.max) && Number.isFinite(extremes.min)
192
+ ? Math.max(Math.abs(extremes.max), Math.abs(extremes.min)) * 0.1
193
+ : 0;
194
+ return {
195
+ timestamp,
196
+ series: source.series,
197
+ params: source.params,
198
+ valueMin: Number.isFinite(extremes.min) ? extremes.min - padding : emptyState.valueMin,
199
+ valueMax: Number.isFinite(extremes.max) ? extremes.max + padding : emptyState.valueMax,
200
+ visibleMin: extremes.min,
201
+ visibleMax: extremes.max,
202
+ };
203
+ };
204
+ }
205
+ export function createPaddedPointVisibleStateComposer(bundleKey, emptyState, fields) {
206
+ return ({ bundle, visibleRange, timestamp, active }) => {
207
+ const source = getPointArraySeriesBundle(bundle, bundleKey);
208
+ if (!active) {
209
+ return {
210
+ ...emptyState,
211
+ timestamp,
212
+ series: source.series,
213
+ params: source.params,
214
+ };
215
+ }
216
+ const extremes = calcPointArrayExtremes(source.series, fields, visibleRange);
217
+ const range = extremes.max - extremes.min;
218
+ const padding = range > 0 ? range * 0.1 : 0;
219
+ return {
220
+ timestamp,
221
+ series: source.series,
222
+ params: source.params,
223
+ valueMin: Number.isFinite(extremes.min) ? extremes.min - padding : emptyState.valueMin,
224
+ valueMax: Number.isFinite(extremes.max) ? extremes.max + padding : emptyState.valueMax,
225
+ visibleMin: extremes.min,
226
+ visibleMax: extremes.max,
227
+ };
228
+ };
229
+ }
230
+ export function createNonNegativeSparseVisibleStateComposer(bundleKey, emptyState) {
231
+ return ({ bundle, visibleRange, timestamp, active }) => {
232
+ const source = getSparseSeriesBundle(bundle, bundleKey);
233
+ if (!active) {
234
+ return {
235
+ ...emptyState,
236
+ timestamp,
237
+ series: source.series,
238
+ params: source.params,
239
+ };
240
+ }
241
+ const extremes = calcSparseExtremes(source.series, visibleRange);
242
+ const valueMax = Number.isFinite(extremes.max) ? extremes.max * 1.1 : emptyState.valueMax;
243
+ return {
244
+ timestamp,
245
+ series: source.series,
246
+ params: source.params,
247
+ valueMin: 0,
248
+ valueMax,
249
+ visibleMin: extremes.min,
250
+ visibleMax: extremes.max,
251
+ };
252
+ };
253
+ }
254
+ export function createMACDVisibleStateComposer(bundleKey, emptyState) {
255
+ return ({ bundle, visibleRange, timestamp, active }) => {
256
+ const source = getPointArraySeriesBundle(bundle, bundleKey);
257
+ if (!active) {
258
+ return {
259
+ ...emptyState,
260
+ timestamp,
261
+ series: source.series,
262
+ params: source.params,
263
+ };
264
+ }
265
+ const extremes = calcPointArrayExtremes(source.series, ['dif', 'dea', 'macd'], visibleRange);
266
+ const padding = Number.isFinite(extremes.max) && Number.isFinite(extremes.min)
267
+ ? Math.max(Math.abs(extremes.max), Math.abs(extremes.min)) * 0.1
268
+ : 0;
269
+ const latestIndex = visibleRange.end - 1;
270
+ const latestPoint = latestIndex >= 0 && latestIndex < source.series.length
271
+ ? source.series[latestIndex]
272
+ : null;
273
+ return {
274
+ timestamp,
275
+ series: source.series,
276
+ params: source.params,
277
+ valueMin: Number.isFinite(extremes.min) ? extremes.min - padding : emptyState.valueMin,
278
+ valueMax: Number.isFinite(extremes.max) ? extremes.max + padding : emptyState.valueMax,
279
+ visibleMin: extremes.min,
280
+ visibleMax: extremes.max,
281
+ latestValues: latestPoint ? {
282
+ dif: latestPoint.dif,
283
+ dea: latestPoint.dea,
284
+ macd: latestPoint.macd,
285
+ } : undefined,
286
+ };
287
+ };
288
+ }
289
+ export function createDualSparseVisibleStateComposer(bundleKey, emptyState) {
290
+ return ({ bundle, visibleRange, timestamp, active }) => {
291
+ const source = getDualSparseSeriesBundle(bundle, bundleKey);
292
+ if (!active) {
293
+ return {
294
+ ...emptyState,
295
+ timestamp,
296
+ series: source.series,
297
+ signalSeries: source.signalSeries,
298
+ params: source.params,
299
+ };
300
+ }
301
+ const seriesExtremes = calcSparseExtremes(source.series, visibleRange);
302
+ const signalExtremes = calcSparseExtremes(source.signalSeries, visibleRange);
303
+ const combinedMin = Math.min(seriesExtremes.min, signalExtremes.min);
304
+ const combinedMax = Math.max(seriesExtremes.max, signalExtremes.max);
305
+ let valueMin = emptyState.valueMin;
306
+ let valueMax = emptyState.valueMax;
307
+ if (Number.isFinite(combinedMin) && Number.isFinite(combinedMax)) {
308
+ const range = combinedMax - combinedMin;
309
+ const padding = range > 0 ? range * 0.05 : Math.max(1, Math.abs(combinedMax) * 0.05);
310
+ valueMin = combinedMin - padding;
311
+ valueMax = combinedMax + padding;
312
+ }
313
+ return {
314
+ timestamp,
315
+ series: source.series,
316
+ signalSeries: source.signalSeries,
317
+ params: source.params,
318
+ valueMin,
319
+ valueMax,
320
+ visibleMin: combinedMin,
321
+ visibleMax: combinedMax,
322
+ };
323
+ };
324
+ }
325
+ export function createValuePointVisibleStateComposer(bundleKey, emptyState, fields) {
326
+ return ({ bundle, visibleRange, timestamp, active }) => {
327
+ const source = getPointArraySeriesBundle(bundle, bundleKey);
328
+ if (!active) {
329
+ return {
330
+ ...emptyState,
331
+ timestamp,
332
+ series: source.series,
333
+ params: source.params,
334
+ };
335
+ }
336
+ const extremes = calcPointArrayExtremes(source.series, fields, visibleRange);
337
+ const bounds = computeMAFamilyBounds(Number.isFinite(extremes.min) && Number.isFinite(extremes.max) ? extremes : null, emptyState);
338
+ return {
339
+ timestamp,
340
+ series: source.series,
341
+ params: source.params,
342
+ valueMin: bounds.valueMin,
343
+ valueMax: bounds.valueMax,
344
+ visibleMin: extremes.min,
345
+ visibleMax: extremes.max,
346
+ };
347
+ };
348
+ }
349
+ export function createBandVisibleStateComposer(bundleKey, emptyState, minField, maxField) {
350
+ return ({ bundle, visibleRange, timestamp, active }) => {
351
+ const source = getPointArraySeriesBundle(bundle, bundleKey);
352
+ if (!active) {
353
+ return {
354
+ ...emptyState,
355
+ timestamp,
356
+ series: source.series,
357
+ params: source.params,
358
+ };
359
+ }
360
+ const minExtremes = calcPointArrayExtremes(source.series, [minField], visibleRange);
361
+ const maxExtremes = calcPointArrayExtremes(source.series, [maxField], visibleRange);
362
+ const extremes = {
363
+ min: minExtremes.min,
364
+ max: maxExtremes.max,
365
+ };
366
+ const bounds = computeMAFamilyBounds(Number.isFinite(extremes.min) && Number.isFinite(extremes.max) ? extremes : null, emptyState);
367
+ return {
368
+ timestamp,
369
+ series: source.series,
370
+ params: source.params,
371
+ valueMin: bounds.valueMin,
372
+ valueMax: bounds.valueMax,
373
+ visibleMin: extremes.min,
374
+ visibleMax: extremes.max,
375
+ };
376
+ };
377
+ }
378
+ export function createExactRangePointVisibleStateComposer(bundleKey, emptyState, fields) {
379
+ return ({ bundle, visibleRange, timestamp, active }) => {
380
+ const source = getPointArraySeriesBundle(bundle, bundleKey);
381
+ if (!active) {
382
+ return {
383
+ ...emptyState,
384
+ timestamp,
385
+ series: source.series,
386
+ params: source.params,
387
+ };
388
+ }
389
+ const extremes = calcPointArrayExtremes(source.series, fields, visibleRange);
390
+ return {
391
+ timestamp,
392
+ series: source.series,
393
+ params: source.params,
394
+ valueMin: extremes.min,
395
+ valueMax: extremes.max,
396
+ visibleMin: extremes.min,
397
+ visibleMax: extremes.max,
398
+ };
399
+ };
400
+ }
401
+ export function createFixedUnitVisibleStateComposer(bundleKey, emptyState) {
402
+ return ({ bundle, timestamp, active }) => {
403
+ const source = bundle[bundleKey];
404
+ if (!active) {
405
+ return {
406
+ ...emptyState,
407
+ timestamp,
408
+ series: source.series,
409
+ params: source.params,
410
+ };
411
+ }
412
+ return {
413
+ timestamp,
414
+ series: source.series,
415
+ params: source.params,
416
+ valueMin: 0,
417
+ valueMax: 1,
418
+ visibleMin: 0,
419
+ visibleMax: 1,
420
+ };
421
+ };
422
+ }
423
+ export function createCCIVisibleStateComposer(bundleKey, emptyState) {
424
+ return ({ bundle, visibleRange, timestamp, active }) => {
425
+ const source = getSparseSeriesBundle(bundle, bundleKey);
426
+ if (!active) {
427
+ return {
428
+ ...emptyState,
429
+ timestamp,
430
+ series: source.series,
431
+ params: source.params,
432
+ };
433
+ }
434
+ const extremes = calcSparseExtremes(source.series, visibleRange);
435
+ return {
436
+ timestamp,
437
+ series: source.series,
438
+ params: source.params,
439
+ valueMin: Math.min(extremes.min, emptyState.valueMin),
440
+ valueMax: Math.max(extremes.max, emptyState.valueMax),
441
+ visibleMin: extremes.min,
442
+ visibleMax: extremes.max,
443
+ };
444
+ };
445
+ }
446
+ export function createVolumeProfileVisibleStateComposer(bundleKey, emptyState) {
447
+ return ({ bundle, timestamp, active }) => {
448
+ const source = bundle[bundleKey];
449
+ if (!active) {
450
+ return {
451
+ ...emptyState,
452
+ timestamp,
453
+ series: source.series,
454
+ params: source.params,
455
+ };
456
+ }
457
+ const bins = source.series.bins;
458
+ return {
459
+ timestamp,
460
+ series: source.series,
461
+ params: source.params,
462
+ valueMin: bins[0]?.priceLow ?? 0,
463
+ valueMax: bins[bins.length - 1]?.priceHigh ?? 1,
464
+ visibleMin: source.series.val,
465
+ visibleMax: source.series.vah,
466
+ };
467
+ };
468
+ }
469
+ //# sourceMappingURL=visibleStateComposers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visibleStateComposers.js","sourceRoot":"","sources":["../../../src/engine/indicators/visibleStateComposers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"atr.d.ts","sourceRoot":"","sources":["../../../../src/engine/renderers/Indicator/atr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAiB,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAaxF,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAgBD,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,kBAAuB,GAAG,sBAAsB,CAmJhG;AAyBD;;GAEG;AACH,wBAAgB,eAAe,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,MAAM,GAAE,MAAkB,GAC3B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,IAAI,CAc3G"}
1
+ {"version":3,"file":"atr.d.ts","sourceRoot":"","sources":["../../../../src/engine/renderers/Indicator/atr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAiB,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAgBxF,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAgBD,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,kBAAuB,GAAG,sBAAsB,CAmJhG;AAyBD;;GAEG;AACH,wBAAgB,eAAe,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,MAAM,GAAE,MAAkB,GAC3B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,IAAI,CAc3G"}
@@ -35,8 +35,11 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
35
35
  import { RENDERER_PRIORITY } from '../../../plugin';
36
36
  import { resolveThemeColors } from '../../../tokens';
37
37
  import { createATRStateKey } from '../../indicators/atrState';
38
+ import { EMPTY_ATR_STATE } from '../../indicators/atrState';
39
+ import { createNonNegativeSparseVisibleStateComposer } from '../../indicators/visibleStateComposers';
38
40
  import { Indicator } from '../../indicators/indicatorDefinitionRegistry';
39
41
  import { resolveStateKey } from '../../indicators/indicatorMetadata';
42
+ import { createAtrScaleRendererPlugin } from './scale/atr_scale';
40
43
  const ATR_COLOR = '#d97706';
41
44
  function getATRStateKey(host, paneId) {
42
45
  const scheduler = host?.getService('indicatorScheduler');
@@ -215,6 +218,11 @@ let ATRIndicatorDefinition = (() => {
215
218
  stateKey: createATRStateKey,
216
219
  defaultPaneId: 'sub_ATR',
217
220
  paneIdField: 'atrPaneId',
221
+ scaleRendererFactory: createAtrScaleRendererPlugin,
222
+ updateConfig: (scheduler, params, paneId) => {
223
+ scheduler.updateATRConfig(params, paneId);
224
+ },
225
+ visibleState: { compose: createNonNegativeSparseVisibleStateComposer('atr', EMPTY_ATR_STATE) },
218
226
  applyResult: (host, state, paneId) => {
219
227
  host.setSharedState(createATRStateKey(paneId), state, 'indicator_scheduler');
220
228
  },
@@ -1 +1 @@
1
- {"version":3,"file":"atr.js","sourceRoot":"","sources":["../../../../src/engine/renderers/Indicator/atr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"atr.js","sourceRoot":"","sources":["../../../../src/engine/renderers/Indicator/atr.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"boll.d.ts","sourceRoot":"","sources":["../../../../src/engine/renderers/Indicator/boll.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAA6B,MAAM,iBAAiB,CAAA;AA0IxF,wBAAgB,wBAAwB,IAAI,sBAAsB,CAkLjE"}
1
+ {"version":3,"file":"boll.d.ts","sourceRoot":"","sources":["../../../../src/engine/renderers/Indicator/boll.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAA6B,MAAM,iBAAiB,CAAA;AA8LxF,wBAAgB,wBAAwB,IAAI,sBAAsB,CAkLjE"}
@@ -109,6 +109,33 @@ function getBOLLStateKey(host) {
109
109
  }
110
110
  return resolveStateKey(meta.stateKey);
111
111
  }
112
+ const computeBOLLPriceRange = (bundle, range) => {
113
+ const series = bundle.boll.series;
114
+ if (series.length === 0 || range.start >= series.length) {
115
+ return null;
116
+ }
117
+ let min = Infinity;
118
+ let max = -Infinity;
119
+ const end = Math.min(range.end, series.length);
120
+ for (let i = range.start; i < end; i++) {
121
+ const p = series[i];
122
+ if (p) {
123
+ min = Math.min(min, p.upper, p.middle, p.lower);
124
+ max = Math.max(max, p.upper, p.middle, p.lower);
125
+ }
126
+ }
127
+ return Number.isFinite(min) && Number.isFinite(max) ? { min, max } : null;
128
+ };
129
+ const composeBOLLRenderState = (bundle, range, timestamp) => {
130
+ const priceRange = computeBOLLPriceRange(bundle, range) ?? { min: Infinity, max: -Infinity };
131
+ return {
132
+ timestamp,
133
+ series: bundle.boll.series,
134
+ params: bundle.boll.params,
135
+ visibleMin: priceRange.min,
136
+ visibleMax: priceRange.max,
137
+ };
138
+ };
112
139
  let BOLLDefinition = (() => {
113
140
  let _classDecorators = [Indicator({
114
141
  name: 'boll',
@@ -116,6 +143,26 @@ let BOLLDefinition = (() => {
116
143
  category: 'main',
117
144
  stateKey: BOLL_STATE_KEY,
118
145
  defaultPaneId: 'main',
146
+ mainPane: {
147
+ rendererName: 'boll',
148
+ toActiveConfig: (params, active) => active
149
+ ? params
150
+ : { ...params, showUpper: false, showMiddle: false, showLower: false, showBand: false },
151
+ computePriceRange: computeBOLLPriceRange,
152
+ composeRenderState: composeBOLLRenderState,
153
+ },
154
+ updateConfig: (scheduler, params) => {
155
+ scheduler.updateBOLLConfig(params);
156
+ },
157
+ semantic: {
158
+ apply: (chart, indicator) => {
159
+ const params = indicator.params;
160
+ chart.updateRendererConfig('boll', {
161
+ period: params?.period || 20,
162
+ multiplier: params?.multiplier || 2,
163
+ });
164
+ },
165
+ },
119
166
  applyResult: (host, state, _paneId) => {
120
167
  host.setSharedState(BOLL_STATE_KEY, state, 'indicator_scheduler');
121
168
  },