minerva-design 1.3.0 → 1.5.0
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/CHANGELOG.md +18 -0
- package/README.md +21 -21
- package/custom-elements.json +18546 -7329
- package/dist/angular/fesm2022/minerva-angular.mjs +8303 -172
- package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
- package/dist/angular/types/minerva-angular.d.ts +2809 -0
- package/dist/charts/canvas.d.cts +8 -3
- package/dist/charts/canvas.d.ts +8 -3
- package/dist/charts/core.cjs +1 -1
- package/dist/charts/core.d.cts +10 -5
- package/dist/charts/core.d.ts +10 -5
- package/dist/charts/core.js +27 -8
- package/dist/charts/engine/axis.cjs +1 -1
- package/dist/charts/engine/axis.cjs.map +1 -1
- package/dist/charts/engine/axis.js +43 -20
- package/dist/charts/engine/axis.js.map +1 -1
- package/dist/charts/engine/canvas.cjs +1 -1
- package/dist/charts/engine/canvas.cjs.map +1 -1
- package/dist/charts/engine/canvas.d.cts +11 -1
- package/dist/charts/engine/canvas.d.ts +11 -1
- package/dist/charts/engine/canvas.js +193 -116
- package/dist/charts/engine/canvas.js.map +1 -1
- package/dist/charts/engine/chart.cjs +1 -1
- package/dist/charts/engine/chart.cjs.map +1 -1
- package/dist/charts/engine/chart.d.cts +1 -1
- package/dist/charts/engine/chart.d.ts +1 -1
- package/dist/charts/engine/chart.js +486 -350
- package/dist/charts/engine/chart.js.map +1 -1
- package/dist/charts/engine/color.cjs +1 -1
- package/dist/charts/engine/color.cjs.map +1 -1
- package/dist/charts/engine/color.d.cts +18 -0
- package/dist/charts/engine/color.d.ts +18 -0
- package/dist/charts/engine/color.js +47 -1
- package/dist/charts/engine/color.js.map +1 -1
- package/dist/charts/engine/controller.cjs +2 -2
- package/dist/charts/engine/controller.cjs.map +1 -1
- package/dist/charts/engine/controller.d.cts +44 -4
- package/dist/charts/engine/controller.d.ts +44 -4
- package/dist/charts/engine/controller.js +421 -314
- package/dist/charts/engine/controller.js.map +1 -1
- package/dist/charts/engine/data.cjs +1 -1
- package/dist/charts/engine/data.cjs.map +1 -1
- package/dist/charts/engine/data.d.cts +9 -1
- package/dist/charts/engine/data.d.ts +9 -1
- package/dist/charts/engine/data.js +65 -49
- package/dist/charts/engine/data.js.map +1 -1
- package/dist/charts/engine/defaults.cjs +2 -0
- package/dist/charts/engine/defaults.cjs.map +1 -0
- package/dist/charts/engine/defaults.d.cts +20 -0
- package/dist/charts/engine/defaults.d.ts +20 -0
- package/dist/charts/engine/defaults.js +35 -0
- package/dist/charts/engine/defaults.js.map +1 -0
- package/dist/charts/engine/format.cjs +1 -1
- package/dist/charts/engine/format.cjs.map +1 -1
- package/dist/charts/engine/format.d.cts +27 -6
- package/dist/charts/engine/format.d.ts +27 -6
- package/dist/charts/engine/format.js +59 -21
- package/dist/charts/engine/format.js.map +1 -1
- package/dist/charts/engine/graph/chart.cjs +2 -0
- package/dist/charts/engine/graph/chart.cjs.map +1 -0
- package/dist/charts/engine/graph/chart.d.cts +3 -0
- package/dist/charts/engine/graph/chart.d.ts +3 -0
- package/dist/charts/engine/graph/chart.js +1565 -0
- package/dist/charts/engine/graph/chart.js.map +1 -0
- package/dist/charts/engine/graph/circular.cjs +2 -0
- package/dist/charts/engine/graph/circular.cjs.map +1 -0
- package/dist/charts/engine/graph/circular.d.cts +16 -0
- package/dist/charts/engine/graph/circular.d.ts +16 -0
- package/dist/charts/engine/graph/circular.js +62 -0
- package/dist/charts/engine/graph/circular.js.map +1 -0
- package/dist/charts/engine/graph/dag.cjs +2 -0
- package/dist/charts/engine/graph/dag.cjs.map +1 -0
- package/dist/charts/engine/graph/dag.d.cts +34 -0
- package/dist/charts/engine/graph/dag.d.ts +34 -0
- package/dist/charts/engine/graph/dag.js +314 -0
- package/dist/charts/engine/graph/dag.js.map +1 -0
- package/dist/charts/engine/graph/dom.cjs +2 -0
- package/dist/charts/engine/graph/dom.cjs.map +1 -0
- package/dist/charts/engine/graph/dom.d.cts +23 -0
- package/dist/charts/engine/graph/dom.d.ts +23 -0
- package/dist/charts/engine/graph/dom.js +158 -0
- package/dist/charts/engine/graph/dom.js.map +1 -0
- package/dist/charts/engine/graph/force.cjs +2 -0
- package/dist/charts/engine/graph/force.cjs.map +1 -0
- package/dist/charts/engine/graph/force.d.cts +67 -0
- package/dist/charts/engine/graph/force.d.ts +67 -0
- package/dist/charts/engine/graph/force.js +325 -0
- package/dist/charts/engine/graph/force.js.map +1 -0
- package/dist/charts/engine/graph/geometry.cjs +2 -0
- package/dist/charts/engine/graph/geometry.cjs.map +1 -0
- package/dist/charts/engine/graph/geometry.d.cts +37 -0
- package/dist/charts/engine/graph/geometry.d.ts +37 -0
- package/dist/charts/engine/graph/geometry.js +144 -0
- package/dist/charts/engine/graph/geometry.js.map +1 -0
- package/dist/charts/engine/graph/index.cjs +1 -0
- package/dist/charts/engine/graph/index.d.cts +6 -0
- package/dist/charts/engine/graph/index.d.ts +6 -0
- package/dist/charts/engine/graph/index.js +6 -0
- package/dist/charts/engine/graph/labels.cjs +2 -0
- package/dist/charts/engine/graph/labels.cjs.map +1 -0
- package/dist/charts/engine/graph/labels.d.cts +12 -0
- package/dist/charts/engine/graph/labels.d.ts +12 -0
- package/dist/charts/engine/graph/labels.js +128 -0
- package/dist/charts/engine/graph/labels.js.map +1 -0
- package/dist/charts/engine/graph/model.cjs +2 -0
- package/dist/charts/engine/graph/model.cjs.map +1 -0
- package/dist/charts/engine/graph/model.d.cts +43 -0
- package/dist/charts/engine/graph/model.d.ts +43 -0
- package/dist/charts/engine/graph/model.js +88 -0
- package/dist/charts/engine/graph/model.js.map +1 -0
- package/dist/charts/engine/graph/sizing.cjs +2 -0
- package/dist/charts/engine/graph/sizing.cjs.map +1 -0
- package/dist/charts/engine/graph/sizing.d.cts +33 -0
- package/dist/charts/engine/graph/sizing.d.ts +33 -0
- package/dist/charts/engine/graph/sizing.js +60 -0
- package/dist/charts/engine/graph/sizing.js.map +1 -0
- package/dist/charts/engine/graph/tree.cjs +2 -0
- package/dist/charts/engine/graph/tree.cjs.map +1 -0
- package/dist/charts/engine/graph/tree.d.cts +30 -0
- package/dist/charts/engine/graph/tree.d.ts +30 -0
- package/dist/charts/engine/graph/tree.js +218 -0
- package/dist/charts/engine/graph/tree.js.map +1 -0
- package/dist/charts/engine/graph/types.d.cts +626 -0
- package/dist/charts/engine/graph/types.d.ts +626 -0
- package/dist/charts/engine/graph/worker.cjs +46 -0
- package/dist/charts/engine/graph/worker.cjs.map +1 -0
- package/dist/charts/engine/graph/worker.d.cts +36 -0
- package/dist/charts/engine/graph/worker.d.ts +36 -0
- package/dist/charts/engine/graph/worker.js +129 -0
- package/dist/charts/engine/graph/worker.js.map +1 -0
- package/dist/charts/engine/items.cjs +1 -1
- package/dist/charts/engine/items.cjs.map +1 -1
- package/dist/charts/engine/items.d.cts +15 -2
- package/dist/charts/engine/items.d.ts +15 -2
- package/dist/charts/engine/items.js +257 -81
- package/dist/charts/engine/items.js.map +1 -1
- package/dist/charts/engine/labels.cjs +2 -0
- package/dist/charts/engine/labels.cjs.map +1 -0
- package/dist/charts/engine/labels.d.cts +13 -0
- package/dist/charts/engine/labels.d.ts +13 -0
- package/dist/charts/engine/labels.js +98 -0
- package/dist/charts/engine/labels.js.map +1 -0
- package/dist/charts/engine/layout.cjs +1 -1
- package/dist/charts/engine/layout.cjs.map +1 -1
- package/dist/charts/engine/layout.d.cts +43 -2
- package/dist/charts/engine/layout.d.ts +43 -2
- package/dist/charts/engine/layout.js +62 -12
- package/dist/charts/engine/layout.js.map +1 -1
- package/dist/charts/engine/locale.cjs +2 -0
- package/dist/charts/engine/locale.cjs.map +1 -0
- package/dist/charts/engine/locale.d.cts +33 -0
- package/dist/charts/engine/locale.d.ts +33 -0
- package/dist/charts/engine/locale.js +68 -0
- package/dist/charts/engine/locale.js.map +1 -0
- package/dist/charts/engine/model.cjs +1 -1
- package/dist/charts/engine/model.cjs.map +1 -1
- package/dist/charts/engine/model.d.cts +77 -2
- package/dist/charts/engine/model.d.ts +77 -2
- package/dist/charts/engine/model.js +304 -116
- package/dist/charts/engine/model.js.map +1 -1
- package/dist/charts/engine/orderbook/book.cjs +2 -0
- package/dist/charts/engine/orderbook/book.cjs.map +1 -0
- package/dist/charts/engine/orderbook/book.d.cts +28 -0
- package/dist/charts/engine/orderbook/book.d.ts +28 -0
- package/dist/charts/engine/orderbook/book.js +134 -0
- package/dist/charts/engine/orderbook/book.js.map +1 -0
- package/dist/charts/engine/orderbook/depth.cjs +2 -0
- package/dist/charts/engine/orderbook/depth.cjs.map +1 -0
- package/dist/charts/engine/orderbook/depth.d.cts +7 -0
- package/dist/charts/engine/orderbook/depth.d.ts +7 -0
- package/dist/charts/engine/orderbook/depth.js +413 -0
- package/dist/charts/engine/orderbook/depth.js.map +1 -0
- package/dist/charts/engine/orderbook/format.cjs +2 -0
- package/dist/charts/engine/orderbook/format.cjs.map +1 -0
- package/dist/charts/engine/orderbook/format.d.cts +49 -0
- package/dist/charts/engine/orderbook/format.d.ts +49 -0
- package/dist/charts/engine/orderbook/format.js +65 -0
- package/dist/charts/engine/orderbook/format.js.map +1 -0
- package/dist/charts/engine/orderbook/heatmap.cjs +2 -0
- package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -0
- package/dist/charts/engine/orderbook/heatmap.d.cts +9 -0
- package/dist/charts/engine/orderbook/heatmap.d.ts +9 -0
- package/dist/charts/engine/orderbook/heatmap.js +822 -0
- package/dist/charts/engine/orderbook/heatmap.js.map +1 -0
- package/dist/charts/engine/orderbook/host.cjs +2 -0
- package/dist/charts/engine/orderbook/host.cjs.map +1 -0
- package/dist/charts/engine/orderbook/host.d.cts +50 -0
- package/dist/charts/engine/orderbook/host.d.ts +50 -0
- package/dist/charts/engine/orderbook/host.js +161 -0
- package/dist/charts/engine/orderbook/host.js.map +1 -0
- package/dist/charts/engine/orderbook/index.cjs +1 -0
- package/dist/charts/engine/orderbook/index.d.cts +6 -0
- package/dist/charts/engine/orderbook/index.d.ts +6 -0
- package/dist/charts/engine/orderbook/index.js +6 -0
- package/dist/charts/engine/orderbook/ladder.cjs +2 -0
- package/dist/charts/engine/orderbook/ladder.cjs.map +1 -0
- package/dist/charts/engine/orderbook/ladder.d.cts +6 -0
- package/dist/charts/engine/orderbook/ladder.d.ts +6 -0
- package/dist/charts/engine/orderbook/ladder.js +341 -0
- package/dist/charts/engine/orderbook/ladder.js.map +1 -0
- package/dist/charts/engine/orderbook/layout.cjs +2 -0
- package/dist/charts/engine/orderbook/layout.cjs.map +1 -0
- package/dist/charts/engine/orderbook/layout.d.cts +37 -0
- package/dist/charts/engine/orderbook/layout.d.ts +37 -0
- package/dist/charts/engine/orderbook/layout.js +70 -0
- package/dist/charts/engine/orderbook/layout.js.map +1 -0
- package/dist/charts/engine/orderbook/tape.cjs +2 -0
- package/dist/charts/engine/orderbook/tape.cjs.map +1 -0
- package/dist/charts/engine/orderbook/tape.d.cts +6 -0
- package/dist/charts/engine/orderbook/tape.d.ts +6 -0
- package/dist/charts/engine/orderbook/tape.js +450 -0
- package/dist/charts/engine/orderbook/tape.js.map +1 -0
- package/dist/charts/engine/orderbook/types.d.cts +751 -0
- package/dist/charts/engine/orderbook/types.d.ts +751 -0
- package/dist/charts/engine/overlay.cjs +1 -1
- package/dist/charts/engine/overlay.cjs.map +1 -1
- package/dist/charts/engine/overlay.d.cts +28 -2
- package/dist/charts/engine/overlay.d.ts +28 -2
- package/dist/charts/engine/overlay.js +138 -96
- package/dist/charts/engine/overlay.js.map +1 -1
- package/dist/charts/engine/presets.cjs +2 -2
- package/dist/charts/engine/presets.cjs.map +1 -1
- package/dist/charts/engine/presets.d.cts +273 -3
- package/dist/charts/engine/presets.d.ts +273 -3
- package/dist/charts/engine/presets.js +390 -38
- package/dist/charts/engine/presets.js.map +1 -1
- package/dist/charts/engine/renderers/detect.cjs +1 -1
- package/dist/charts/engine/renderers/detect.cjs.map +1 -1
- package/dist/charts/engine/renderers/detect.d.cts +2 -1
- package/dist/charts/engine/renderers/detect.d.ts +2 -1
- package/dist/charts/engine/renderers/detect.js +24 -19
- package/dist/charts/engine/renderers/detect.js.map +1 -1
- package/dist/charts/engine/renderers/gl.cjs +2 -0
- package/dist/charts/engine/renderers/gl.cjs.map +1 -0
- package/dist/charts/engine/renderers/gl.d.cts +21 -0
- package/dist/charts/engine/renderers/gl.d.ts +21 -0
- package/dist/charts/engine/renderers/gl.js +56 -0
- package/dist/charts/engine/renderers/gl.js.map +1 -0
- package/dist/charts/engine/renderers/shaders.cjs +143 -1
- package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
- package/dist/charts/engine/renderers/shaders.d.cts +16 -0
- package/dist/charts/engine/renderers/shaders.d.ts +16 -0
- package/dist/charts/engine/renderers/shaders.js +139 -1
- package/dist/charts/engine/renderers/shaders.js.map +1 -1
- package/dist/charts/engine/renderers/webgl.cjs +2 -0
- package/dist/charts/engine/renderers/webgl.cjs.map +1 -0
- package/dist/charts/engine/renderers/webgl.d.cts +4 -0
- package/dist/charts/engine/renderers/webgl.d.ts +4 -0
- package/dist/charts/engine/renderers/webgl.js +133 -0
- package/dist/charts/engine/renderers/webgl.js.map +1 -0
- package/dist/charts/engine/renderers/webgl2.cjs +1 -1
- package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
- package/dist/charts/engine/renderers/webgl2.d.cts +0 -1
- package/dist/charts/engine/renderers/webgl2.d.ts +0 -1
- package/dist/charts/engine/renderers/webgl2.js +59 -108
- package/dist/charts/engine/renderers/webgl2.js.map +1 -1
- package/dist/charts/engine/scale.cjs +1 -1
- package/dist/charts/engine/scale.cjs.map +1 -1
- package/dist/charts/engine/scale.js +1 -1
- package/dist/charts/engine/scale.js.map +1 -1
- package/dist/charts/engine/scene.cjs +1 -1
- package/dist/charts/engine/scene.cjs.map +1 -1
- package/dist/charts/engine/scene.d.cts +71 -8
- package/dist/charts/engine/scene.d.ts +71 -8
- package/dist/charts/engine/scene.js +465 -183
- package/dist/charts/engine/scene.js.map +1 -1
- package/dist/charts/engine/shapes/bullet.cjs +2 -0
- package/dist/charts/engine/shapes/bullet.cjs.map +1 -0
- package/dist/charts/engine/shapes/bullet.d.cts +6 -0
- package/dist/charts/engine/shapes/bullet.d.ts +6 -0
- package/dist/charts/engine/shapes/bullet.js +255 -0
- package/dist/charts/engine/shapes/bullet.js.map +1 -0
- package/dist/charts/engine/shapes/calendar.cjs +2 -0
- package/dist/charts/engine/shapes/calendar.cjs.map +1 -0
- package/dist/charts/engine/shapes/calendar.d.cts +38 -0
- package/dist/charts/engine/shapes/calendar.d.ts +38 -0
- package/dist/charts/engine/shapes/calendar.js +369 -0
- package/dist/charts/engine/shapes/calendar.js.map +1 -0
- package/dist/charts/engine/shapes/canvas.cjs +1 -1
- package/dist/charts/engine/shapes/canvas.cjs.map +1 -1
- package/dist/charts/engine/shapes/canvas.d.cts +7 -0
- package/dist/charts/engine/shapes/canvas.d.ts +7 -0
- package/dist/charts/engine/shapes/canvas.js +22 -13
- package/dist/charts/engine/shapes/canvas.js.map +1 -1
- package/dist/charts/engine/shapes/chart.cjs +1 -1
- package/dist/charts/engine/shapes/chart.cjs.map +1 -1
- package/dist/charts/engine/shapes/chart.d.cts +3 -2
- package/dist/charts/engine/shapes/chart.d.ts +3 -2
- package/dist/charts/engine/shapes/chart.js +49 -27
- package/dist/charts/engine/shapes/chart.js.map +1 -1
- package/dist/charts/engine/shapes/chord.cjs +2 -0
- package/dist/charts/engine/shapes/chord.cjs.map +1 -0
- package/dist/charts/engine/shapes/chord.d.cts +18 -0
- package/dist/charts/engine/shapes/chord.d.ts +18 -0
- package/dist/charts/engine/shapes/chord.js +414 -0
- package/dist/charts/engine/shapes/chord.js.map +1 -0
- package/dist/charts/engine/shapes/draw.cjs +1 -1
- package/dist/charts/engine/shapes/draw.cjs.map +1 -1
- package/dist/charts/engine/shapes/draw.d.cts +7 -1
- package/dist/charts/engine/shapes/draw.d.ts +7 -1
- package/dist/charts/engine/shapes/draw.js +62 -19
- package/dist/charts/engine/shapes/draw.js.map +1 -1
- package/dist/charts/engine/shapes/funnel.cjs +1 -1
- package/dist/charts/engine/shapes/funnel.cjs.map +1 -1
- package/dist/charts/engine/shapes/funnel.js +3 -3
- package/dist/charts/engine/shapes/funnel.js.map +1 -1
- package/dist/charts/engine/shapes/gauge.cjs +1 -1
- package/dist/charts/engine/shapes/gauge.cjs.map +1 -1
- package/dist/charts/engine/shapes/gauge.js +132 -95
- package/dist/charts/engine/shapes/gauge.js.map +1 -1
- package/dist/charts/engine/shapes/hit.cjs +1 -1
- package/dist/charts/engine/shapes/hit.cjs.map +1 -1
- package/dist/charts/engine/shapes/hit.d.cts +5 -1
- package/dist/charts/engine/shapes/hit.d.ts +5 -1
- package/dist/charts/engine/shapes/hit.js +89 -39
- package/dist/charts/engine/shapes/hit.js.map +1 -1
- package/dist/charts/engine/shapes/index.d.cts +6 -2
- package/dist/charts/engine/shapes/index.d.ts +6 -2
- package/dist/charts/engine/shapes/labels.cjs +2 -0
- package/dist/charts/engine/shapes/labels.cjs.map +1 -0
- package/dist/charts/engine/shapes/labels.d.cts +14 -0
- package/dist/charts/engine/shapes/labels.d.ts +14 -0
- package/dist/charts/engine/shapes/labels.js +154 -0
- package/dist/charts/engine/shapes/labels.js.map +1 -0
- package/dist/charts/engine/shapes/layout.cjs +2 -2
- package/dist/charts/engine/shapes/layout.cjs.map +1 -1
- package/dist/charts/engine/shapes/layout.d.cts +10 -3
- package/dist/charts/engine/shapes/layout.d.ts +10 -3
- package/dist/charts/engine/shapes/layout.js +239 -124
- package/dist/charts/engine/shapes/layout.js.map +1 -1
- package/dist/charts/engine/shapes/pie.cjs +1 -1
- package/dist/charts/engine/shapes/pie.cjs.map +1 -1
- package/dist/charts/engine/shapes/pie.js +2 -2
- package/dist/charts/engine/shapes/pie.js.map +1 -1
- package/dist/charts/engine/shapes/radar.cjs +1 -1
- package/dist/charts/engine/shapes/radar.cjs.map +1 -1
- package/dist/charts/engine/shapes/radar.d.cts +2 -2
- package/dist/charts/engine/shapes/radar.d.ts +2 -2
- package/dist/charts/engine/shapes/radar.js +50 -49
- package/dist/charts/engine/shapes/radar.js.map +1 -1
- package/dist/charts/engine/shapes/radialBar.cjs +2 -0
- package/dist/charts/engine/shapes/radialBar.cjs.map +1 -0
- package/dist/charts/engine/shapes/radialBar.d.cts +8 -0
- package/dist/charts/engine/shapes/radialBar.d.ts +8 -0
- package/dist/charts/engine/shapes/radialBar.js +155 -0
- package/dist/charts/engine/shapes/radialBar.js.map +1 -0
- package/dist/charts/engine/shapes/runtime.cjs +1 -1
- package/dist/charts/engine/shapes/runtime.cjs.map +1 -1
- package/dist/charts/engine/shapes/runtime.d.cts +9 -2
- package/dist/charts/engine/shapes/runtime.d.ts +9 -2
- package/dist/charts/engine/shapes/runtime.js +61 -51
- package/dist/charts/engine/shapes/runtime.js.map +1 -1
- package/dist/charts/engine/shapes/sankey.cjs +2 -0
- package/dist/charts/engine/shapes/sankey.cjs.map +1 -0
- package/dist/charts/engine/shapes/sankey.d.cts +29 -0
- package/dist/charts/engine/shapes/sankey.d.ts +29 -0
- package/dist/charts/engine/shapes/sankey.js +372 -0
- package/dist/charts/engine/shapes/sankey.js.map +1 -0
- package/dist/charts/engine/shapes/scene.cjs +1 -1
- package/dist/charts/engine/shapes/scene.cjs.map +1 -1
- package/dist/charts/engine/shapes/scene.d.cts +92 -8
- package/dist/charts/engine/shapes/scene.d.ts +92 -8
- package/dist/charts/engine/shapes/scene.js +76 -31
- package/dist/charts/engine/shapes/scene.js.map +1 -1
- package/dist/charts/engine/shapes/sunburst.cjs +2 -0
- package/dist/charts/engine/shapes/sunburst.cjs.map +1 -0
- package/dist/charts/engine/shapes/sunburst.d.cts +6 -0
- package/dist/charts/engine/shapes/sunburst.d.ts +6 -0
- package/dist/charts/engine/shapes/sunburst.js +261 -0
- package/dist/charts/engine/shapes/sunburst.js.map +1 -0
- package/dist/charts/engine/shapes/treemap.cjs +1 -1
- package/dist/charts/engine/shapes/treemap.cjs.map +1 -1
- package/dist/charts/engine/shapes/treemap.js +2 -2
- package/dist/charts/engine/shapes/treemap.js.map +1 -1
- package/dist/charts/engine/shapes/types.d.cts +550 -12
- package/dist/charts/engine/shapes/types.d.ts +550 -12
- package/dist/charts/engine/signature.cjs +1 -1
- package/dist/charts/engine/signature.cjs.map +1 -1
- package/dist/charts/engine/signature.js +1 -1
- package/dist/charts/engine/signature.js.map +1 -1
- package/dist/charts/engine/three-d/canvas2d.cjs +2 -0
- package/dist/charts/engine/three-d/canvas2d.cjs.map +1 -0
- package/dist/charts/engine/three-d/canvas2d.d.cts +7 -0
- package/dist/charts/engine/three-d/canvas2d.d.ts +7 -0
- package/dist/charts/engine/three-d/canvas2d.js +128 -0
- package/dist/charts/engine/three-d/canvas2d.js.map +1 -0
- package/dist/charts/engine/three-d/chart.cjs +2 -0
- package/dist/charts/engine/three-d/chart.cjs.map +1 -0
- package/dist/charts/engine/three-d/chart.d.cts +15 -0
- package/dist/charts/engine/three-d/chart.d.ts +15 -0
- package/dist/charts/engine/three-d/chart.js +621 -0
- package/dist/charts/engine/three-d/chart.js.map +1 -0
- package/dist/charts/engine/three-d/colormap.cjs +2 -0
- package/dist/charts/engine/three-d/colormap.cjs.map +1 -0
- package/dist/charts/engine/three-d/colormap.d.cts +16 -0
- package/dist/charts/engine/three-d/colormap.d.ts +16 -0
- package/dist/charts/engine/three-d/colormap.js +166 -0
- package/dist/charts/engine/three-d/colormap.js.map +1 -0
- package/dist/charts/engine/three-d/contours.cjs +2 -0
- package/dist/charts/engine/three-d/contours.cjs.map +1 -0
- package/dist/charts/engine/three-d/contours.d.cts +7 -0
- package/dist/charts/engine/three-d/contours.d.ts +7 -0
- package/dist/charts/engine/three-d/contours.js +47 -0
- package/dist/charts/engine/three-d/contours.js.map +1 -0
- package/dist/charts/engine/three-d/detect.cjs +2 -0
- package/dist/charts/engine/three-d/detect.cjs.map +1 -0
- package/dist/charts/engine/three-d/detect.d.cts +12 -0
- package/dist/charts/engine/three-d/detect.d.ts +12 -0
- package/dist/charts/engine/three-d/detect.js +37 -0
- package/dist/charts/engine/three-d/detect.js.map +1 -0
- package/dist/charts/engine/three-d/dom.cjs +2 -0
- package/dist/charts/engine/three-d/dom.cjs.map +1 -0
- package/dist/charts/engine/three-d/dom.d.cts +21 -0
- package/dist/charts/engine/three-d/dom.d.ts +21 -0
- package/dist/charts/engine/three-d/dom.js +98 -0
- package/dist/charts/engine/three-d/dom.js.map +1 -0
- package/dist/charts/engine/three-d/geometry.cjs +2 -0
- package/dist/charts/engine/three-d/geometry.cjs.map +1 -0
- package/dist/charts/engine/three-d/geometry.d.cts +82 -0
- package/dist/charts/engine/three-d/geometry.d.ts +82 -0
- package/dist/charts/engine/three-d/geometry.js +545 -0
- package/dist/charts/engine/three-d/geometry.js.map +1 -0
- package/dist/charts/engine/three-d/hover.cjs +2 -0
- package/dist/charts/engine/three-d/hover.cjs.map +1 -0
- package/dist/charts/engine/three-d/hover.d.cts +25 -0
- package/dist/charts/engine/three-d/hover.d.ts +25 -0
- package/dist/charts/engine/three-d/hover.js +131 -0
- package/dist/charts/engine/three-d/hover.js.map +1 -0
- package/dist/charts/engine/three-d/index.cjs +1 -0
- package/dist/charts/engine/three-d/index.d.cts +2 -0
- package/dist/charts/engine/three-d/index.d.ts +2 -0
- package/dist/charts/engine/three-d/index.js +2 -0
- package/dist/charts/engine/three-d/labels.cjs +2 -0
- package/dist/charts/engine/three-d/labels.cjs.map +1 -0
- package/dist/charts/engine/three-d/labels.d.cts +23 -0
- package/dist/charts/engine/three-d/labels.d.ts +23 -0
- package/dist/charts/engine/three-d/labels.js +136 -0
- package/dist/charts/engine/three-d/labels.js.map +1 -0
- package/dist/charts/engine/three-d/math.cjs +2 -0
- package/dist/charts/engine/three-d/math.cjs.map +1 -0
- package/dist/charts/engine/three-d/math.d.cts +84 -0
- package/dist/charts/engine/three-d/math.d.ts +84 -0
- package/dist/charts/engine/three-d/math.js +150 -0
- package/dist/charts/engine/three-d/math.js.map +1 -0
- package/dist/charts/engine/three-d/model.cjs +2 -0
- package/dist/charts/engine/three-d/model.cjs.map +1 -0
- package/dist/charts/engine/three-d/model.d.cts +132 -0
- package/dist/charts/engine/three-d/model.d.ts +132 -0
- package/dist/charts/engine/three-d/model.js +279 -0
- package/dist/charts/engine/three-d/model.js.map +1 -0
- package/dist/charts/engine/three-d/overlay.cjs +2 -0
- package/dist/charts/engine/three-d/overlay.cjs.map +1 -0
- package/dist/charts/engine/three-d/overlay.d.cts +72 -0
- package/dist/charts/engine/three-d/overlay.d.ts +72 -0
- package/dist/charts/engine/three-d/overlay.js +204 -0
- package/dist/charts/engine/three-d/overlay.js.map +1 -0
- package/dist/charts/engine/three-d/pick.cjs +2 -0
- package/dist/charts/engine/three-d/pick.cjs.map +1 -0
- package/dist/charts/engine/three-d/pick.d.cts +52 -0
- package/dist/charts/engine/three-d/pick.d.ts +52 -0
- package/dist/charts/engine/three-d/pick.js +220 -0
- package/dist/charts/engine/three-d/pick.js.map +1 -0
- package/dist/charts/engine/three-d/render-types.cjs +2 -0
- package/dist/charts/engine/three-d/render-types.cjs.map +1 -0
- package/dist/charts/engine/three-d/render-types.d.cts +103 -0
- package/dist/charts/engine/three-d/render-types.d.ts +103 -0
- package/dist/charts/engine/three-d/render-types.js +12 -0
- package/dist/charts/engine/three-d/render-types.js.map +1 -0
- package/dist/charts/engine/three-d/shaders.cjs +311 -0
- package/dist/charts/engine/three-d/shaders.cjs.map +1 -0
- package/dist/charts/engine/three-d/shaders.d.cts +25 -0
- package/dist/charts/engine/three-d/shaders.d.ts +25 -0
- package/dist/charts/engine/three-d/shaders.js +210 -0
- package/dist/charts/engine/three-d/shaders.js.map +1 -0
- package/dist/charts/engine/three-d/sort.cjs +2 -0
- package/dist/charts/engine/three-d/sort.cjs.map +1 -0
- package/dist/charts/engine/three-d/sort.d.cts +29 -0
- package/dist/charts/engine/three-d/sort.d.ts +29 -0
- package/dist/charts/engine/three-d/sort.js +145 -0
- package/dist/charts/engine/three-d/sort.js.map +1 -0
- package/dist/charts/engine/three-d/types.d.cts +615 -0
- package/dist/charts/engine/three-d/types.d.ts +615 -0
- package/dist/charts/engine/three-d/webgl.cjs +2 -0
- package/dist/charts/engine/three-d/webgl.cjs.map +1 -0
- package/dist/charts/engine/three-d/webgl.d.cts +10 -0
- package/dist/charts/engine/three-d/webgl.d.ts +10 -0
- package/dist/charts/engine/three-d/webgl.js +132 -0
- package/dist/charts/engine/three-d/webgl.js.map +1 -0
- package/dist/charts/engine/three-d/webgpu.cjs +2 -0
- package/dist/charts/engine/three-d/webgpu.cjs.map +1 -0
- package/dist/charts/engine/three-d/webgpu.d.cts +5 -0
- package/dist/charts/engine/three-d/webgpu.d.ts +5 -0
- package/dist/charts/engine/three-d/webgpu.js +260 -0
- package/dist/charts/engine/three-d/webgpu.js.map +1 -0
- package/dist/charts/engine/time.cjs +1 -1
- package/dist/charts/engine/time.cjs.map +1 -1
- package/dist/charts/engine/time.d.cts +13 -4
- package/dist/charts/engine/time.d.ts +13 -4
- package/dist/charts/engine/time.js +156 -91
- package/dist/charts/engine/time.js.map +1 -1
- package/dist/charts/engine/trading/chart.cjs +2 -0
- package/dist/charts/engine/trading/chart.cjs.map +1 -0
- package/dist/charts/engine/trading/chart.d.cts +13 -0
- package/dist/charts/engine/trading/chart.d.ts +13 -0
- package/dist/charts/engine/trading/chart.js +2206 -0
- package/dist/charts/engine/trading/chart.js.map +1 -0
- package/dist/charts/engine/trading/drawings.cjs +3 -0
- package/dist/charts/engine/trading/drawings.cjs.map +1 -0
- package/dist/charts/engine/trading/drawings.d.cts +95 -0
- package/dist/charts/engine/trading/drawings.d.ts +95 -0
- package/dist/charts/engine/trading/drawings.js +423 -0
- package/dist/charts/engine/trading/drawings.js.map +1 -0
- package/dist/charts/engine/trading/format.cjs +2 -0
- package/dist/charts/engine/trading/format.cjs.map +1 -0
- package/dist/charts/engine/trading/format.d.cts +73 -0
- package/dist/charts/engine/trading/format.d.ts +73 -0
- package/dist/charts/engine/trading/format.js +163 -0
- package/dist/charts/engine/trading/format.js.map +1 -0
- package/dist/charts/engine/trading/geometry.cjs +2 -0
- package/dist/charts/engine/trading/geometry.cjs.map +1 -0
- package/dist/charts/engine/trading/geometry.d.cts +55 -0
- package/dist/charts/engine/trading/geometry.d.ts +55 -0
- package/dist/charts/engine/trading/geometry.js +131 -0
- package/dist/charts/engine/trading/geometry.js.map +1 -0
- package/dist/charts/engine/trading/index.cjs +1 -0
- package/dist/charts/engine/trading/index.d.cts +4 -0
- package/dist/charts/engine/trading/index.d.ts +4 -0
- package/dist/charts/engine/trading/index.js +4 -0
- package/dist/charts/engine/trading/indicators.cjs +2 -0
- package/dist/charts/engine/trading/indicators.cjs.map +1 -0
- package/dist/charts/engine/trading/indicators.d.cts +275 -0
- package/dist/charts/engine/trading/indicators.d.ts +275 -0
- package/dist/charts/engine/trading/indicators.js +544 -0
- package/dist/charts/engine/trading/indicators.js.map +1 -0
- package/dist/charts/engine/trading/labels.cjs +2 -0
- package/dist/charts/engine/trading/labels.cjs.map +1 -0
- package/dist/charts/engine/trading/labels.d.cts +7 -0
- package/dist/charts/engine/trading/labels.d.ts +7 -0
- package/dist/charts/engine/trading/labels.js +171 -0
- package/dist/charts/engine/trading/labels.js.map +1 -0
- package/dist/charts/engine/trading/scale.cjs +2 -0
- package/dist/charts/engine/trading/scale.cjs.map +1 -0
- package/dist/charts/engine/trading/scale.d.cts +46 -0
- package/dist/charts/engine/trading/scale.d.ts +46 -0
- package/dist/charts/engine/trading/scale.js +100 -0
- package/dist/charts/engine/trading/scale.js.map +1 -0
- package/dist/charts/engine/trading/store.cjs +2 -0
- package/dist/charts/engine/trading/store.cjs.map +1 -0
- package/dist/charts/engine/trading/store.d.cts +83 -0
- package/dist/charts/engine/trading/store.d.ts +83 -0
- package/dist/charts/engine/trading/store.js +150 -0
- package/dist/charts/engine/trading/store.js.map +1 -0
- package/dist/charts/engine/trading/studies.cjs +2 -0
- package/dist/charts/engine/trading/studies.cjs.map +1 -0
- package/dist/charts/engine/trading/studies.d.cts +85 -0
- package/dist/charts/engine/trading/studies.d.ts +85 -0
- package/dist/charts/engine/trading/studies.js +510 -0
- package/dist/charts/engine/trading/studies.js.map +1 -0
- package/dist/charts/engine/trading/sync.cjs +2 -0
- package/dist/charts/engine/trading/sync.cjs.map +1 -0
- package/dist/charts/engine/trading/sync.d.cts +8 -0
- package/dist/charts/engine/trading/sync.d.ts +8 -0
- package/dist/charts/engine/trading/sync.js +25 -0
- package/dist/charts/engine/trading/sync.js.map +1 -0
- package/dist/charts/engine/trading/types.d.cts +1131 -0
- package/dist/charts/engine/trading/types.d.ts +1131 -0
- package/dist/charts/engine/types.d.cts +247 -22
- package/dist/charts/engine/types.d.ts +247 -22
- package/dist/charts/index.cjs +1 -1
- package/dist/charts/index.d.cts +8 -4
- package/dist/charts/index.d.ts +8 -4
- package/dist/charts/index.js +30 -11
- package/dist/charts/react/Chart.cjs +1 -1
- package/dist/charts/react/Chart.cjs.map +1 -1
- package/dist/charts/react/Chart.d.cts +4 -4
- package/dist/charts/react/Chart.d.ts +4 -4
- package/dist/charts/react/Chart.js +5 -1
- package/dist/charts/react/Chart.js.map +1 -1
- package/dist/charts/react/charts.cjs +1 -1
- package/dist/charts/react/charts.cjs.map +1 -1
- package/dist/charts/react/charts.d.cts +39 -1
- package/dist/charts/react/charts.d.ts +39 -1
- package/dist/charts/react/charts.js +312 -128
- package/dist/charts/react/charts.js.map +1 -1
- package/dist/charts/react/graph.cjs +2 -0
- package/dist/charts/react/graph.cjs.map +1 -0
- package/dist/charts/react/graph.d.cts +213 -0
- package/dist/charts/react/graph.d.ts +213 -0
- package/dist/charts/react/graph.js +159 -0
- package/dist/charts/react/graph.js.map +1 -0
- package/dist/charts/react/orderbook.cjs +2 -0
- package/dist/charts/react/orderbook.cjs.map +1 -0
- package/dist/charts/react/orderbook.d.cts +142 -0
- package/dist/charts/react/orderbook.d.ts +142 -0
- package/dist/charts/react/orderbook.js +182 -0
- package/dist/charts/react/orderbook.js.map +1 -0
- package/dist/charts/react/shapes.cjs +1 -1
- package/dist/charts/react/shapes.cjs.map +1 -1
- package/dist/charts/react/shapes.d.cts +374 -9
- package/dist/charts/react/shapes.d.ts +374 -9
- package/dist/charts/react/shapes.js +323 -93
- package/dist/charts/react/shapes.js.map +1 -1
- package/dist/charts/react/three-d.cjs +2 -0
- package/dist/charts/react/three-d.cjs.map +1 -0
- package/dist/charts/react/three-d.d.cts +151 -0
- package/dist/charts/react/three-d.d.ts +151 -0
- package/dist/charts/react/three-d.js +154 -0
- package/dist/charts/react/three-d.js.map +1 -0
- package/dist/charts/react/trading.cjs +2 -0
- package/dist/charts/react/trading.cjs.map +1 -0
- package/dist/charts/react/trading.d.cts +145 -0
- package/dist/charts/react/trading.d.ts +145 -0
- package/dist/charts/react/trading.js +126 -0
- package/dist/charts/react/trading.js.map +1 -0
- package/dist/charts/react/types.d.cts +143 -8
- package/dist/charts/react/types.d.ts +143 -8
- package/dist/core/contracts.cjs +1 -1
- package/dist/core/contracts.cjs.map +1 -1
- package/dist/core/contracts.js +1 -1
- package/dist/core/contracts.js.map +1 -1
- package/dist/native/charts/src/canvas.cjs +1 -1
- package/dist/native/charts/src/canvas.js +9 -3
- package/dist/native/charts/src/engine/axis.cjs +1 -1
- package/dist/native/charts/src/engine/axis.cjs.map +1 -1
- package/dist/native/charts/src/engine/axis.js +43 -20
- package/dist/native/charts/src/engine/axis.js.map +1 -1
- package/dist/native/charts/src/engine/color.cjs +1 -1
- package/dist/native/charts/src/engine/color.cjs.map +1 -1
- package/dist/native/charts/src/engine/color.js +47 -5
- package/dist/native/charts/src/engine/color.js.map +1 -1
- package/dist/native/charts/src/engine/controller.cjs +2 -2
- package/dist/native/charts/src/engine/controller.cjs.map +1 -1
- package/dist/native/charts/src/engine/controller.js +415 -308
- package/dist/native/charts/src/engine/controller.js.map +1 -1
- package/dist/native/charts/src/engine/data.cjs +1 -1
- package/dist/native/charts/src/engine/data.cjs.map +1 -1
- package/dist/native/charts/src/engine/data.js +65 -49
- package/dist/native/charts/src/engine/data.js.map +1 -1
- package/dist/native/charts/src/engine/format.cjs +1 -1
- package/dist/native/charts/src/engine/format.cjs.map +1 -1
- package/dist/native/charts/src/engine/format.js +59 -21
- package/dist/native/charts/src/engine/format.js.map +1 -1
- package/dist/native/charts/src/engine/labels.cjs +2 -0
- package/dist/native/charts/src/engine/labels.cjs.map +1 -0
- package/dist/native/charts/src/engine/labels.js +98 -0
- package/dist/native/charts/src/engine/labels.js.map +1 -0
- package/dist/native/charts/src/engine/layout.cjs +1 -1
- package/dist/native/charts/src/engine/layout.cjs.map +1 -1
- package/dist/native/charts/src/engine/layout.js +62 -12
- package/dist/native/charts/src/engine/layout.js.map +1 -1
- package/dist/native/charts/src/engine/locale.cjs +2 -0
- package/dist/native/charts/src/engine/locale.cjs.map +1 -0
- package/dist/native/charts/src/engine/locale.js +60 -0
- package/dist/native/charts/src/engine/locale.js.map +1 -0
- package/dist/native/charts/src/engine/model.cjs +1 -1
- package/dist/native/charts/src/engine/model.cjs.map +1 -1
- package/dist/native/charts/src/engine/model.js +307 -119
- package/dist/native/charts/src/engine/model.js.map +1 -1
- package/dist/native/charts/src/engine/overlay.cjs +1 -1
- package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
- package/dist/native/charts/src/engine/overlay.js +46 -23
- package/dist/native/charts/src/engine/overlay.js.map +1 -1
- package/dist/native/charts/src/engine/presets.cjs +2 -2
- package/dist/native/charts/src/engine/presets.cjs.map +1 -1
- package/dist/native/charts/src/engine/presets.js +470 -41
- package/dist/native/charts/src/engine/presets.js.map +1 -1
- package/dist/native/charts/src/engine/scale.cjs +1 -1
- package/dist/native/charts/src/engine/scale.cjs.map +1 -1
- package/dist/native/charts/src/engine/scale.js +1 -1
- package/dist/native/charts/src/engine/scale.js.map +1 -1
- package/dist/native/charts/src/engine/scene.cjs +1 -1
- package/dist/native/charts/src/engine/scene.cjs.map +1 -1
- package/dist/native/charts/src/engine/scene.js +489 -207
- package/dist/native/charts/src/engine/scene.js.map +1 -1
- package/dist/native/charts/src/engine/shapes/bullet.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/bullet.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/bullet.js +255 -0
- package/dist/native/charts/src/engine/shapes/bullet.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/calendar.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/calendar.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/calendar.js +369 -0
- package/dist/native/charts/src/engine/shapes/calendar.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/canvas.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/canvas.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/canvas.js +168 -0
- package/dist/native/charts/src/engine/shapes/canvas.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/chord.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/chord.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/chord.js +414 -0
- package/dist/native/charts/src/engine/shapes/chord.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/draw.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/draw.js +195 -0
- package/dist/native/charts/src/engine/shapes/draw.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/funnel.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/funnel.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/funnel.js +149 -0
- package/dist/native/charts/src/engine/shapes/funnel.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/gauge.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/gauge.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/gauge.js +210 -0
- package/dist/native/charts/src/engine/shapes/gauge.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/hit.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/hit.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/hit.js +135 -0
- package/dist/native/charts/src/engine/shapes/hit.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/labels.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/labels.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/labels.js +154 -0
- package/dist/native/charts/src/engine/shapes/labels.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/layout.cjs +3 -0
- package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/layout.js +358 -0
- package/dist/native/charts/src/engine/shapes/layout.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/pie.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/pie.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/pie.js +302 -0
- package/dist/native/charts/src/engine/shapes/pie.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/radar.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/radar.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/radar.js +198 -0
- package/dist/native/charts/src/engine/shapes/radar.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/radialBar.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/radialBar.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/radialBar.js +155 -0
- package/dist/native/charts/src/engine/shapes/radialBar.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/runtime.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/runtime.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/runtime.js +107 -0
- package/dist/native/charts/src/engine/shapes/runtime.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/sankey.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/sankey.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/sankey.js +372 -0
- package/dist/native/charts/src/engine/shapes/sankey.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/scene.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/scene.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/scene.js +168 -0
- package/dist/native/charts/src/engine/shapes/scene.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/sunburst.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/sunburst.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/sunburst.js +261 -0
- package/dist/native/charts/src/engine/shapes/sunburst.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/treemap.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/treemap.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/treemap.js +213 -0
- package/dist/native/charts/src/engine/shapes/treemap.js.map +1 -0
- package/dist/native/charts/src/engine/time.cjs +1 -1
- package/dist/native/charts/src/engine/time.cjs.map +1 -1
- package/dist/native/charts/src/engine/time.js +156 -91
- package/dist/native/charts/src/engine/time.js.map +1 -1
- package/dist/native/components/Chart/ChartBase.cjs +1 -1
- package/dist/native/components/Chart/ChartBase.cjs.map +1 -1
- package/dist/native/components/Chart/ChartBase.d.cts +1 -1
- package/dist/native/components/Chart/ChartBase.d.ts +1 -1
- package/dist/native/components/Chart/ChartBase.js +110 -107
- package/dist/native/components/Chart/ChartBase.js.map +1 -1
- package/dist/native/components/Chart/charts.cjs +1 -1
- package/dist/native/components/Chart/charts.cjs.map +1 -1
- package/dist/native/components/Chart/charts.d.cts +6 -1
- package/dist/native/components/Chart/charts.d.ts +6 -1
- package/dist/native/components/Chart/charts.js +53 -29
- package/dist/native/components/Chart/charts.js.map +1 -1
- package/dist/native/components/Chart/index.cjs +1 -1
- package/dist/native/components/Chart/index.d.cts +1 -1
- package/dist/native/components/Chart/index.d.ts +1 -1
- package/dist/native/components/Chart/index.js +2 -2
- package/dist/native/components/Chart/scene.cjs +1 -1
- package/dist/native/components/Chart/scene.cjs.map +1 -1
- package/dist/native/components/Chart/scene.js +315 -229
- package/dist/native/components/Chart/scene.js.map +1 -1
- package/dist/native/components/Chart/types.d.cts +26 -3
- package/dist/native/components/Chart/types.d.ts +26 -3
- package/dist/native/components/Charts/charts.cjs +2 -0
- package/dist/native/components/Charts/charts.cjs.map +1 -0
- package/dist/native/components/Charts/charts.d.cts +41 -0
- package/dist/native/components/Charts/charts.d.ts +41 -0
- package/dist/native/components/Charts/charts.js +350 -0
- package/dist/native/components/Charts/charts.js.map +1 -0
- package/dist/native/components/Charts/index.cjs +1 -0
- package/dist/native/components/Charts/index.d.cts +2 -0
- package/dist/native/components/Charts/index.d.ts +2 -0
- package/dist/native/components/Charts/index.js +2 -0
- package/dist/native/components/Charts/types.d.cts +155 -0
- package/dist/native/components/Charts/types.d.ts +155 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.cjs +2 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.cjs.map +1 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.d.cts +24 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.d.ts +24 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.js +272 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.js.map +1 -0
- package/dist/native/components/ShapeChart/charts.cjs +2 -0
- package/dist/native/components/ShapeChart/charts.cjs.map +1 -0
- package/dist/native/components/ShapeChart/charts.d.cts +43 -0
- package/dist/native/components/ShapeChart/charts.d.ts +43 -0
- package/dist/native/components/ShapeChart/charts.js +429 -0
- package/dist/native/components/ShapeChart/charts.js.map +1 -0
- package/dist/native/components/ShapeChart/draw.cjs +2 -0
- package/dist/native/components/ShapeChart/draw.cjs.map +1 -0
- package/dist/native/components/ShapeChart/draw.d.cts +4 -0
- package/dist/native/components/ShapeChart/draw.d.ts +4 -0
- package/dist/native/components/ShapeChart/draw.js +113 -0
- package/dist/native/components/ShapeChart/draw.js.map +1 -0
- package/dist/native/components/ShapeChart/geometry.cjs +2 -0
- package/dist/native/components/ShapeChart/geometry.cjs.map +1 -0
- package/dist/native/components/ShapeChart/geometry.d.cts +71 -0
- package/dist/native/components/ShapeChart/geometry.d.ts +71 -0
- package/dist/native/components/ShapeChart/geometry.js +681 -0
- package/dist/native/components/ShapeChart/geometry.js.map +1 -0
- package/dist/native/components/ShapeChart/index.cjs +1 -0
- package/dist/native/components/ShapeChart/index.d.cts +2 -0
- package/dist/native/components/ShapeChart/index.d.ts +2 -0
- package/dist/native/components/ShapeChart/index.js +2 -0
- package/dist/native/components/ShapeChart/recorder.cjs +2 -0
- package/dist/native/components/ShapeChart/recorder.cjs.map +1 -0
- package/dist/native/components/ShapeChart/recorder.d.cts +115 -0
- package/dist/native/components/ShapeChart/recorder.d.ts +115 -0
- package/dist/native/components/ShapeChart/recorder.js +583 -0
- package/dist/native/components/ShapeChart/recorder.js.map +1 -0
- package/dist/native/components/ShapeChart/types.d.cts +594 -0
- package/dist/native/components/ShapeChart/types.d.ts +594 -0
- package/dist/native/index.cjs +1 -1
- package/dist/native/index.d.cts +2 -0
- package/dist/native/index.d.ts +2 -0
- package/dist/native/index.js +14 -10
- package/dist/native/manifest.d.cts +6 -4
- package/dist/native/manifest.d.ts +6 -4
- package/dist/native/source/components/Chart/ChartBase.tsx +8 -1
- package/dist/native/source/components/Chart/charts.tsx +42 -6
- package/dist/native/source/components/Chart/index.ts +1 -0
- package/dist/native/source/components/Chart/scene.tsx +312 -98
- package/dist/native/source/components/Chart/types.ts +31 -1
- package/dist/native/source/components/Charts/charts.tsx +521 -0
- package/dist/native/source/components/Charts/index.ts +14 -0
- package/dist/native/source/components/Charts/types.ts +218 -0
- package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +486 -0
- package/dist/native/source/components/ShapeChart/charts.tsx +661 -0
- package/dist/native/source/components/ShapeChart/draw.tsx +201 -0
- package/dist/native/source/components/ShapeChart/geometry.ts +1366 -0
- package/dist/native/source/components/ShapeChart/index.ts +16 -0
- package/dist/native/source/components/ShapeChart/recorder.ts +845 -0
- package/dist/native/source/components/ShapeChart/types.ts +655 -0
- package/dist/native/source/index.ts +2 -0
- package/dist/native/source/manifest.ts +31 -4
- package/dist/taro/charts.d.ts +229 -4
- package/dist/taro/index.d.ts +1 -0
- package/dist/taro/index.js +8818 -2093
- package/dist/taro/manifest.d.ts +1 -0
- package/dist/taro/shape-charts.d.ts +629 -0
- package/dist/uni/AreaChart.vue +68 -0
- package/dist/uni/AreaChart.vue.d.ts +124 -0
- package/dist/uni/Badge.vue.d.ts +1 -1
- package/dist/uni/BarChart.vue.d.ts +5 -1
- package/dist/uni/BoxPlotChart.vue +66 -0
- package/dist/uni/BoxPlotChart.vue.d.ts +110 -0
- package/dist/uni/BubbleChart.vue +68 -0
- package/dist/uni/BubbleChart.vue.d.ts +110 -0
- package/dist/uni/BulletChart.vue +86 -0
- package/dist/uni/BulletChart.vue.d.ts +114 -0
- package/dist/uni/CalendarHeatmap.vue +92 -0
- package/dist/uni/CalendarHeatmap.vue.d.ts +131 -0
- package/dist/uni/CandlestickChart.vue +66 -0
- package/dist/uni/CandlestickChart.vue.d.ts +104 -0
- package/dist/uni/Chart.vue.d.ts +4 -0
- package/dist/uni/ChordChart.vue +93 -0
- package/dist/uni/ChordChart.vue.d.ts +136 -0
- package/dist/uni/DonutChart.vue +72 -0
- package/dist/uni/DonutChart.vue.d.ts +118 -0
- package/dist/uni/FunnelChart.vue +67 -0
- package/dist/uni/FunnelChart.vue.d.ts +108 -0
- package/dist/uni/GanttChart.vue +67 -0
- package/dist/uni/GanttChart.vue.d.ts +127 -0
- package/dist/uni/GaugeChart.vue +77 -0
- package/dist/uni/GaugeChart.vue.d.ts +127 -0
- package/dist/uni/HeatmapChart.vue +66 -0
- package/dist/uni/HeatmapChart.vue.d.ts +120 -0
- package/dist/uni/HistogramChart.vue +66 -0
- package/dist/uni/HistogramChart.vue.d.ts +125 -0
- package/dist/uni/HorizontalBarChart.vue +68 -0
- package/dist/uni/HorizontalBarChart.vue.d.ts +129 -0
- package/dist/uni/Input.vue.d.ts +1 -1
- package/dist/uni/LineChart.vue.d.ts +4 -0
- package/dist/uni/MixedChart.vue +68 -0
- package/dist/uni/MixedChart.vue.d.ts +110 -0
- package/dist/uni/NumberInput.vue.d.ts +1 -1
- package/dist/uni/PieChart.vue +72 -0
- package/dist/uni/PieChart.vue.d.ts +118 -0
- package/dist/uni/QuadrantChart.vue.d.ts +4 -0
- package/dist/uni/RadarChart.vue +67 -0
- package/dist/uni/RadarChart.vue.d.ts +114 -0
- package/dist/uni/RadialBarChart.vue +90 -0
- package/dist/uni/RadialBarChart.vue.d.ts +136 -0
- package/dist/uni/RangeAreaChart.vue +68 -0
- package/dist/uni/RangeAreaChart.vue.d.ts +106 -0
- package/dist/uni/ResponsiveGrid.vue.d.ts +1 -1
- package/dist/uni/SankeyChart.vue +88 -0
- package/dist/uni/SankeyChart.vue.d.ts +125 -0
- package/dist/uni/ScatterChart.vue.d.ts +4 -0
- package/dist/uni/ShapeChart.vue +73 -0
- package/dist/uni/ShapeChart.vue.d.ts +54 -0
- package/dist/uni/Sparkline.vue +58 -0
- package/dist/uni/Sparkline.vue.d.ts +81 -0
- package/dist/uni/SunburstChart.vue +90 -0
- package/dist/uni/SunburstChart.vue.d.ts +118 -0
- package/dist/uni/Textarea.vue.d.ts +1 -1
- package/dist/uni/TimePicker.vue.d.ts +1 -1
- package/dist/uni/ToastProvider.vue.d.ts +1 -1
- package/dist/uni/TreemapChart.vue +65 -0
- package/dist/uni/TreemapChart.vue.d.ts +104 -0
- package/dist/uni/WaterfallChart.vue +66 -0
- package/dist/uni/WaterfallChart.vue.d.ts +134 -0
- package/dist/uni/chart-canvas.d.ts +3 -0
- package/dist/uni/chart-canvas.js +4 -0
- package/dist/uni/chart-types.d.ts +240 -2
- package/dist/uni/chart-types.js +198 -0
- package/dist/uni/charts-canvas.js +8 -3
- package/dist/uni/index.d.ts +27 -1
- package/dist/uni/index.js +27 -1
- package/dist/uni/manifest.d.ts +279 -0
- package/dist/uni/manifest.js +397 -0
- package/dist/uni/named-chart-options.d.ts +95 -0
- package/dist/uni/named-chart-options.js +173 -0
- package/dist/uni/shape-chart-canvas.d.ts +53 -0
- package/dist/uni/shape-chart-canvas.js +333 -0
- package/dist/uni/shape-chart-types.d.ts +431 -0
- package/dist/uni/shape-chart-types.js +305 -0
- package/dist/vue/charts-global.d.ts +48 -0
- package/dist/vue/charts.d.ts +18 -0
- package/dist/vue/charts.js +56 -0
- package/dist/vue/charts.js.map +1 -0
- package/dist/vue/components/Chart/AreaChart.vue.d.ts +124 -0
- package/dist/vue/components/Chart/AreaChart.vue.js +7 -0
- package/dist/vue/components/Chart/AreaChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js +49 -0
- package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Bar3DChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/Bar3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Bar3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BarChart.vue.d.ts +123 -0
- package/dist/vue/components/Chart/BarChart.vue.js +7 -0
- package/dist/vue/components/Chart/BarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue.d.ts +120 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue.js +7 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js +63 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BubbleChart.vue.d.ts +106 -0
- package/dist/vue/components/Chart/BubbleChart.vue.js +7 -0
- package/dist/vue/components/Chart/BubbleChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js +52 -0
- package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BulletChart.vue.d.ts +117 -0
- package/dist/vue/components/Chart/BulletChart.vue.js +7 -0
- package/dist/vue/components/Chart/BulletChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js +64 -0
- package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue.d.ts +144 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue.js +7 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue.js.map +1 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js +77 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/CandlestickChart.vue.d.ts +94 -0
- package/dist/vue/components/Chart/CandlestickChart.vue.js +7 -0
- package/dist/vue/components/Chart/CandlestickChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Chart.vue.d.ts +103 -0
- package/dist/vue/components/Chart/Chart.vue.js +7 -0
- package/dist/vue/components/Chart/Chart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/ChordChart.vue.d.ts +153 -0
- package/dist/vue/components/Chart/ChordChart.vue.js +7 -0
- package/dist/vue/components/Chart/ChordChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js +81 -0
- package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/DependencyGraph.vue.d.ts +179 -0
- package/dist/vue/components/Chart/DependencyGraph.vue.js +7 -0
- package/dist/vue/components/Chart/DependencyGraph.vue.js.map +1 -0
- package/dist/vue/components/Chart/DependencyGraph.vue_vue_type_script_setup_true_lang.js +65 -0
- package/dist/vue/components/Chart/DependencyGraph.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/DepthChart.vue.d.ts +139 -0
- package/dist/vue/components/Chart/DepthChart.vue.js +7 -0
- package/dist/vue/components/Chart/DepthChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js +42 -0
- package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/DonutChart.vue.d.ts +104 -0
- package/dist/vue/components/Chart/DonutChart.vue.js +7 -0
- package/dist/vue/components/Chart/DonutChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/FunnelChart.vue.d.ts +105 -0
- package/dist/vue/components/Chart/FunnelChart.vue.js +7 -0
- package/dist/vue/components/Chart/FunnelChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js +58 -0
- package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/GanttChart.vue.d.ts +136 -0
- package/dist/vue/components/Chart/GanttChart.vue.js +7 -0
- package/dist/vue/components/Chart/GanttChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js +101 -0
- package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/GaugeChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/GaugeChart.vue.js +7 -0
- package/dist/vue/components/Chart/GaugeChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js +71 -0
- package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/GraphChart.vue.d.ts +184 -0
- package/dist/vue/components/Chart/GraphChart.vue.js +7 -0
- package/dist/vue/components/Chart/GraphChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js +62 -0
- package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +129 -0
- package/dist/vue/components/Chart/HeatmapChart.vue.js +7 -0
- package/dist/vue/components/Chart/HeatmapChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js +67 -0
- package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/HistogramChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/HistogramChart.vue.js +7 -0
- package/dist/vue/components/Chart/HistogramChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js +66 -0
- package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue.d.ts +121 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue.js +7 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Line3DChart.vue.d.ts +121 -0
- package/dist/vue/components/Chart/Line3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Line3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/LineChart.vue.d.ts +125 -0
- package/dist/vue/components/Chart/LineChart.vue.js +7 -0
- package/dist/vue/components/Chart/LineChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js +50 -0
- package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/MixedChart.vue.d.ts +103 -0
- package/dist/vue/components/Chart/MixedChart.vue.js +7 -0
- package/dist/vue/components/Chart/MixedChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/OrderBook.vue.d.ts +125 -0
- package/dist/vue/components/Chart/OrderBook.vue.js +7 -0
- package/dist/vue/components/Chart/OrderBook.vue.js.map +1 -0
- package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js +38 -0
- package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +130 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue.js +7 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue.js.map +1 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/PieChart.vue.d.ts +104 -0
- package/dist/vue/components/Chart/PieChart.vue.js +7 -0
- package/dist/vue/components/Chart/PieChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/QuadrantChart.vue.d.ts +186 -0
- package/dist/vue/components/Chart/QuadrantChart.vue.js +7 -0
- package/dist/vue/components/Chart/QuadrantChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js +107 -0
- package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/RadarChart.vue.d.ts +111 -0
- package/dist/vue/components/Chart/RadarChart.vue.js +7 -0
- package/dist/vue/components/Chart/RadarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js +61 -0
- package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/RadialBarChart.vue.d.ts +147 -0
- package/dist/vue/components/Chart/RadialBarChart.vue.js +7 -0
- package/dist/vue/components/Chart/RadialBarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js +78 -0
- package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue.d.ts +106 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue.js +7 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js +51 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/SankeyChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/SankeyChart.vue.js +7 -0
- package/dist/vue/components/Chart/SankeyChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js +71 -0
- package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue.d.ts +121 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/ScatterChart.vue.d.ts +94 -0
- package/dist/vue/components/Chart/ScatterChart.vue.js +7 -0
- package/dist/vue/components/Chart/ScatterChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/ShapeChart.vue.d.ts +39 -0
- package/dist/vue/components/Chart/ShapeChart.vue.js +7 -0
- package/dist/vue/components/Chart/ShapeChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js +43 -0
- package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Sparkline.vue.d.ts +90 -0
- package/dist/vue/components/Chart/Sparkline.vue.js +7 -0
- package/dist/vue/components/Chart/Sparkline.vue.js.map +1 -0
- package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js +66 -0
- package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/SunburstChart.vue.d.ts +123 -0
- package/dist/vue/components/Chart/SunburstChart.vue.js +7 -0
- package/dist/vue/components/Chart/SunburstChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js +68 -0
- package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Surface3DChart.vue.d.ts +143 -0
- package/dist/vue/components/Chart/Surface3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Surface3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js +60 -0
- package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/TimeAndSales.vue.d.ts +116 -0
- package/dist/vue/components/Chart/TimeAndSales.vue.js +7 -0
- package/dist/vue/components/Chart/TimeAndSales.vue.js.map +1 -0
- package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/TradingChart.vue.d.ts +208 -0
- package/dist/vue/components/Chart/TradingChart.vue.js +7 -0
- package/dist/vue/components/Chart/TradingChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js +101 -0
- package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/TreeChart.vue.d.ts +172 -0
- package/dist/vue/components/Chart/TreeChart.vue.js +7 -0
- package/dist/vue/components/Chart/TreeChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/TreeChart.vue_vue_type_script_setup_true_lang.js +56 -0
- package/dist/vue/components/Chart/TreeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/TreemapChart.vue.d.ts +97 -0
- package/dist/vue/components/Chart/TreemapChart.vue.js +7 -0
- package/dist/vue/components/Chart/TreemapChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js +54 -0
- package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/WaterfallChart.vue.d.ts +143 -0
- package/dist/vue/components/Chart/WaterfallChart.vue.js +7 -0
- package/dist/vue/components/Chart/WaterfallChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js +74 -0
- package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/cartesian.d.ts +47 -0
- package/dist/vue/components/Chart/cartesian.js +56 -0
- package/dist/vue/components/Chart/cartesian.js.map +1 -0
- package/dist/vue/components/Chart/engine.d.ts +35 -0
- package/dist/vue/components/Chart/engine.js +35 -0
- package/dist/vue/components/Chart/engine.js.map +1 -0
- package/dist/vue/components/Chart/graph.d.ts +153 -0
- package/dist/vue/components/Chart/graph.js +135 -0
- package/dist/vue/components/Chart/graph.js.map +1 -0
- package/dist/vue/components/Chart/index.d.ts +45 -0
- package/dist/vue/components/Chart/index.js +44 -0
- package/dist/vue/components/Chart/orderbook.d.ts +363 -0
- package/dist/vue/components/Chart/orderbook.js +128 -0
- package/dist/vue/components/Chart/orderbook.js.map +1 -0
- package/dist/vue/components/Chart/props.d.ts +188 -0
- package/dist/vue/components/Chart/props.js +92 -0
- package/dist/vue/components/Chart/props.js.map +1 -0
- package/dist/vue/components/Chart/shape.d.ts +41 -0
- package/dist/vue/components/Chart/shape.js +42 -0
- package/dist/vue/components/Chart/shape.js.map +1 -0
- package/dist/vue/components/Chart/three-d.d.ts +106 -0
- package/dist/vue/components/Chart/three-d.js +88 -0
- package/dist/vue/components/Chart/three-d.js.map +1 -0
- package/dist/vue/components/Chart/trading.d.ts +127 -0
- package/dist/vue/components/Chart/trading.js +63 -0
- package/dist/vue/components/Chart/trading.js.map +1 -0
- package/dist/vue/components/Chart/types.d.ts +209 -0
- package/dist/vue/global.d.ts +2 -0
- package/dist/vue/groups/charts.d.ts +1 -0
- package/dist/vue/groups/charts.js +95 -0
- package/dist/vue/groups/charts.js.map +1 -0
- package/dist/vue/index.d.ts +1 -0
- package/dist/vue/index.js +67 -23
- package/dist/vue/internal/register.d.ts +7 -0
- package/dist/vue/internal/register.js +14 -0
- package/dist/vue/internal/register.js.map +1 -0
- package/dist/vue/plugin.d.ts +9 -4
- package/dist/vue/plugin.js +7 -10
- package/dist/vue/plugin.js.map +1 -1
- package/dist/weapp/area-chart/index.js +1 -0
- package/dist/weapp/area-chart/index.json +1 -0
- package/dist/weapp/area-chart/index.wxml +1 -0
- package/dist/weapp/area-chart/index.wxss +1 -0
- package/dist/weapp/box-plot-chart/index.js +1 -0
- package/dist/weapp/box-plot-chart/index.json +1 -0
- package/dist/weapp/box-plot-chart/index.wxml +1 -0
- package/dist/weapp/box-plot-chart/index.wxss +1 -0
- package/dist/weapp/bubble-chart/index.js +1 -0
- package/dist/weapp/bubble-chart/index.json +1 -0
- package/dist/weapp/bubble-chart/index.wxml +1 -0
- package/dist/weapp/bubble-chart/index.wxss +1 -0
- package/dist/weapp/bullet-chart/index.js +1 -0
- package/dist/weapp/bullet-chart/index.json +1 -0
- package/dist/weapp/bullet-chart/index.wxml +1 -0
- package/dist/weapp/bullet-chart/index.wxss +1 -0
- package/dist/weapp/calendar-heatmap/index.js +1 -0
- package/dist/weapp/calendar-heatmap/index.json +1 -0
- package/dist/weapp/calendar-heatmap/index.wxml +1 -0
- package/dist/weapp/calendar-heatmap/index.wxss +1 -0
- package/dist/weapp/candlestick-chart/index.js +1 -0
- package/dist/weapp/candlestick-chart/index.json +1 -0
- package/dist/weapp/candlestick-chart/index.wxml +1 -0
- package/dist/weapp/candlestick-chart/index.wxss +1 -0
- package/dist/weapp/charts/canvas.js +12976 -0
- package/dist/weapp/charts/core.d.ts +2 -0
- package/dist/weapp/charts/core.js +42 -0
- package/dist/weapp/chord-chart/index.js +1 -0
- package/dist/weapp/chord-chart/index.json +1 -0
- package/dist/weapp/chord-chart/index.wxml +1 -0
- package/dist/weapp/chord-chart/index.wxss +1 -0
- package/dist/weapp/controls.js +1495 -4480
- package/dist/weapp/donut-chart/index.js +1 -0
- package/dist/weapp/donut-chart/index.json +1 -0
- package/dist/weapp/donut-chart/index.wxml +1 -0
- package/dist/weapp/donut-chart/index.wxss +1 -0
- package/dist/weapp/funnel-chart/index.js +1 -0
- package/dist/weapp/funnel-chart/index.json +1 -0
- package/dist/weapp/funnel-chart/index.wxml +1 -0
- package/dist/weapp/funnel-chart/index.wxss +1 -0
- package/dist/weapp/gantt-chart/index.js +1 -0
- package/dist/weapp/gantt-chart/index.json +1 -0
- package/dist/weapp/gantt-chart/index.wxml +1 -0
- package/dist/weapp/gantt-chart/index.wxss +1 -0
- package/dist/weapp/gauge-chart/index.js +1 -0
- package/dist/weapp/gauge-chart/index.json +1 -0
- package/dist/weapp/gauge-chart/index.wxml +1 -0
- package/dist/weapp/gauge-chart/index.wxss +1 -0
- package/dist/weapp/heatmap-chart/index.js +1 -0
- package/dist/weapp/heatmap-chart/index.json +1 -0
- package/dist/weapp/heatmap-chart/index.wxml +1 -0
- package/dist/weapp/heatmap-chart/index.wxss +1 -0
- package/dist/weapp/histogram-chart/index.js +1 -0
- package/dist/weapp/histogram-chart/index.json +1 -0
- package/dist/weapp/histogram-chart/index.wxml +1 -0
- package/dist/weapp/histogram-chart/index.wxss +1 -0
- package/dist/weapp/horizontal-bar-chart/index.js +1 -0
- package/dist/weapp/horizontal-bar-chart/index.json +1 -0
- package/dist/weapp/horizontal-bar-chart/index.wxml +1 -0
- package/dist/weapp/horizontal-bar-chart/index.wxss +1 -0
- package/dist/weapp/mixed-chart/index.js +1 -0
- package/dist/weapp/mixed-chart/index.json +1 -0
- package/dist/weapp/mixed-chart/index.wxml +1 -0
- package/dist/weapp/mixed-chart/index.wxss +1 -0
- package/dist/weapp/pie-chart/index.js +1 -0
- package/dist/weapp/pie-chart/index.json +1 -0
- package/dist/weapp/pie-chart/index.wxml +1 -0
- package/dist/weapp/pie-chart/index.wxss +1 -0
- package/dist/weapp/radar-chart/index.js +1 -0
- package/dist/weapp/radar-chart/index.json +1 -0
- package/dist/weapp/radar-chart/index.wxml +1 -0
- package/dist/weapp/radar-chart/index.wxss +1 -0
- package/dist/weapp/radial-bar-chart/index.js +1 -0
- package/dist/weapp/radial-bar-chart/index.json +1 -0
- package/dist/weapp/radial-bar-chart/index.wxml +1 -0
- package/dist/weapp/radial-bar-chart/index.wxss +1 -0
- package/dist/weapp/range-area-chart/index.js +1 -0
- package/dist/weapp/range-area-chart/index.json +1 -0
- package/dist/weapp/range-area-chart/index.wxml +1 -0
- package/dist/weapp/range-area-chart/index.wxss +1 -0
- package/dist/weapp/sankey-chart/index.js +1 -0
- package/dist/weapp/sankey-chart/index.json +1 -0
- package/dist/weapp/sankey-chart/index.wxml +1 -0
- package/dist/weapp/sankey-chart/index.wxss +1 -0
- package/dist/weapp/shape-chart/index.js +1 -0
- package/dist/weapp/shape-chart/index.json +1 -0
- package/dist/weapp/shape-chart/index.wxml +1 -0
- package/dist/weapp/shape-chart/index.wxss +1 -0
- package/dist/weapp/sparkline/index.js +1 -0
- package/dist/weapp/sparkline/index.json +1 -0
- package/dist/weapp/sparkline/index.wxml +1 -0
- package/dist/weapp/sparkline/index.wxss +1 -0
- package/dist/weapp/sunburst-chart/index.js +1 -0
- package/dist/weapp/sunburst-chart/index.json +1 -0
- package/dist/weapp/sunburst-chart/index.wxml +1 -0
- package/dist/weapp/sunburst-chart/index.wxss +1 -0
- package/dist/weapp/treemap-chart/index.js +1 -0
- package/dist/weapp/treemap-chart/index.json +1 -0
- package/dist/weapp/treemap-chart/index.wxml +1 -0
- package/dist/weapp/treemap-chart/index.wxss +1 -0
- package/dist/weapp/types.d.ts +549 -0
- package/dist/weapp/waterfall-chart/index.js +1 -0
- package/dist/weapp/waterfall-chart/index.json +1 -0
- package/dist/weapp/waterfall-chart/index.wxml +1 -0
- package/dist/weapp/waterfall-chart/index.wxss +1 -0
- package/dist/web-components/components/chart/chart.d.ts +58 -0
- package/dist/web-components/components/chart/chart.js +55 -0
- package/dist/web-components/components/chart/chart.js.map +1 -0
- package/dist/web-components/components/chart/charts.d.ts +254 -0
- package/dist/web-components/components/chart/charts.js +208 -0
- package/dist/web-components/components/chart/charts.js.map +1 -0
- package/dist/web-components/components/chart/engine-element.d.ts +53 -0
- package/dist/web-components/components/chart/engine-element.js +77 -0
- package/dist/web-components/components/chart/engine-element.js.map +1 -0
- package/dist/web-components/components/chart/extended.d.ts +234 -0
- package/dist/web-components/components/chart/extended.js +197 -0
- package/dist/web-components/components/chart/extended.js.map +1 -0
- package/dist/web-components/components/chart/series.d.ts +7 -0
- package/dist/web-components/components/chart/series.js +14 -0
- package/dist/web-components/components/chart/series.js.map +1 -0
- package/dist/web-components/components/chart/shape-chart.d.ts +199 -0
- package/dist/web-components/components/chart/shape-chart.js +161 -0
- package/dist/web-components/components/chart/shape-chart.js.map +1 -0
- package/dist/web-components/components/chart/shapes-extended.d.ts +198 -0
- package/dist/web-components/components/chart/shapes-extended.js +182 -0
- package/dist/web-components/components/chart/shapes-extended.js.map +1 -0
- package/dist/web-components/components/chart-3d/chart-3d.d.ts +111 -0
- package/dist/web-components/components/chart-3d/chart-3d.js +97 -0
- package/dist/web-components/components/chart-3d/chart-3d.js.map +1 -0
- package/dist/web-components/components/graph/graph.d.ts +154 -0
- package/dist/web-components/components/graph/graph.js +149 -0
- package/dist/web-components/components/graph/graph.js.map +1 -0
- package/dist/web-components/components/order-book/order-book.d.ts +165 -0
- package/dist/web-components/components/order-book/order-book.js +174 -0
- package/dist/web-components/components/order-book/order-book.js.map +1 -0
- package/dist/web-components/components/trading-chart/trading-chart.d.ts +143 -0
- package/dist/web-components/components/trading-chart/trading-chart.js +158 -0
- package/dist/web-components/components/trading-chart/trading-chart.js.map +1 -0
- package/dist/web-components/elements/chart-3d.d.ts +2 -0
- package/dist/web-components/elements/chart-3d.js +13 -0
- package/dist/web-components/elements/chart-3d.js.map +1 -0
- package/dist/web-components/elements/chart.d.ts +7 -0
- package/dist/web-components/elements/chart.js +44 -0
- package/dist/web-components/elements/chart.js.map +1 -0
- package/dist/web-components/elements/graph.d.ts +2 -0
- package/dist/web-components/elements/graph.js +12 -0
- package/dist/web-components/elements/graph.js.map +1 -0
- package/dist/web-components/elements/order-book.d.ts +2 -0
- package/dist/web-components/elements/order-book.js +13 -0
- package/dist/web-components/elements/order-book.js.map +1 -0
- package/dist/web-components/elements/trading-chart.d.ts +2 -0
- package/dist/web-components/elements/trading-chart.js +8 -0
- package/dist/web-components/elements/trading-chart.js.map +1 -0
- package/dist/web-components/html-custom-data.json +1470 -38
- package/dist/web-components/types/react.d.ts +494 -0
- package/dist/web-components/types/solid.d.ts +368 -0
- package/dist/web-components/types/svelte.d.ts +368 -0
- package/dist/web-components/types/vue.d.ts +410 -0
- package/package.json +128 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.js","names":["BarBuffer","next","o","x","y0","y1","color","LineBuffer","top","bottom","y","GAP","x0","t0","t1","dy","ta","tb","AreaBuffer","ok","a","b","clamp","v","candleMetrics","wick","dpr","body","spacing","odd","clampRange","lo","hi","pixelRange","min"],"sources":["../../../../../charts/src/engine/trading/geometry.ts"],"sourcesContent":["// GPU items of the trading chart. Positions are baked in device pixels of\n// the data canvas (one canvas under every pane): candles are snapped to\n// the pixel grid so they stay crisp, and every pane clips its own items.\n\nimport {\n BAR_STRIDE,\n GAP,\n type AreaItem,\n type BarItem,\n type LineItem,\n} from \"../renderers/types\";\nimport type { Rgba } from \"../color\";\n\n/** Growable list of bar instances (x, y0, y1, packed color) */\nexport class BarBuffer {\n private f = new Float32Array(256);\n private u = new Uint32Array(this.f.buffer);\n count = 0;\n\n push(x: number, y0: number, y1: number, color: number): void {\n if ((this.count + 1) * 4 > this.f.length) {\n const next = new Float32Array(this.f.length * 2);\n next.set(this.f);\n this.f = next;\n this.u = new Uint32Array(next.buffer);\n }\n const o = this.count * 4;\n this.f[o] = x;\n this.f[o + 1] = y0;\n this.f[o + 2] = y1;\n this.u[o + 3] = color;\n this.count++;\n }\n\n item(\n key: string,\n version: number,\n halfWidth: number,\n minHalf = 0,\n radius = 0,\n ): BarItem {\n return {\n kind: \"bar\",\n key,\n version,\n color: [1, 1, 1, 1],\n instances: this.f.buffer.slice(0, this.count * BAR_STRIDE),\n count: this.count,\n halfWidth,\n radius,\n inset: 0,\n minHalf,\n sorted: false,\n };\n }\n}\n\n/**\n * Polyline clipped to the band `top..bottom` (device y): segments leaving\n * the band are cut at its edge, NaN values break the line\n */\nexport class LineBuffer {\n private p = new Float32Array(512);\n count = 0;\n private px = NaN;\n private py = NaN;\n /** The last written point is the previous point itself */\n private open = false;\n\n constructor(\n private readonly top: number,\n private readonly bottom: number,\n ) {}\n\n private write(x: number, y: number) {\n if ((this.count + 1) * 2 > this.p.length) {\n const next = new Float32Array(this.p.length * 2);\n next.set(this.p);\n this.p = next;\n }\n this.p[this.count * 2] = x;\n this.p[this.count * 2 + 1] = y;\n this.count++;\n }\n\n private gap() {\n if (this.count && this.p[this.count * 2 - 1] < 1e37) this.write(GAP, GAP);\n }\n\n /** Breaks the line */\n break(): void {\n if (this.open) this.gap();\n this.open = false;\n this.px = this.py = NaN;\n }\n\n push(x: number, y: number): void {\n if (!Number.isFinite(x) || !Number.isFinite(y)) {\n this.break();\n return;\n }\n const { top, bottom } = this;\n if (!Number.isFinite(this.px)) {\n if (y >= top && y <= bottom) {\n this.gap();\n this.write(x, y);\n this.open = true;\n }\n this.px = x;\n this.py = y;\n return;\n }\n const x0 = this.px;\n const y0 = this.py;\n this.px = x;\n this.py = y;\n // clip the segment to the band (parametric t in 0..1)\n let t0 = 0;\n let t1 = 1;\n const dy = y - y0;\n if (dy === 0) {\n if (y0 < top || y0 > bottom) t0 = 2;\n } else {\n const ta = (top - y0) / dy;\n const tb = (bottom - y0) / dy;\n t0 = Math.max(t0, Math.min(ta, tb));\n t1 = Math.min(t1, Math.max(ta, tb));\n }\n if (t0 > t1) {\n if (this.open) this.gap();\n this.open = false;\n return;\n }\n if (!this.open || t0 > 0) {\n this.gap();\n this.write(x0 + (x - x0) * t0, y0 + dy * t0);\n }\n this.write(x0 + (x - x0) * t1, y0 + dy * t1);\n this.open = t1 >= 1;\n if (!this.open) this.gap();\n }\n\n item(key: string, version: number, color: Rgba, width: number): LineItem {\n return {\n kind: \"line\",\n key,\n version,\n color,\n points: this.p.slice(0, this.count * 2),\n count: this.count,\n width,\n sorted: false,\n };\n }\n}\n\n/** Area points (x, top, bottom), both edges clamped to a band */\nexport class AreaBuffer {\n private p = new Float32Array(768);\n count = 0;\n\n constructor(\n private readonly top: number,\n private readonly bottom: number,\n ) {}\n\n push(x: number, a: number, b: number): void {\n if ((this.count + 1) * 3 > this.p.length) {\n const next = new Float32Array(this.p.length * 2);\n next.set(this.p);\n this.p = next;\n }\n const o = this.count * 3;\n const ok = Number.isFinite(x) && Number.isFinite(a) && Number.isFinite(b);\n const clamp = (v: number) => Math.min(this.bottom, Math.max(this.top, v));\n this.p[o] = ok ? x : GAP;\n this.p[o + 1] = ok ? clamp(a) : GAP;\n this.p[o + 2] = ok ? clamp(b) : GAP;\n this.count++;\n }\n\n item(key: string, version: number, color: Rgba, opacity: number): AreaItem {\n return {\n kind: \"area\",\n key,\n version,\n color,\n points: this.p.slice(0, this.count * 3),\n count: this.count,\n opacity,\n sorted: false,\n };\n }\n}\n\n/** Candle metrics for a bar spacing (device px): crisp, centered wicks */\nexport interface CandleMetrics {\n /** Wick / outline width */\n wick: number;\n /** Body width (same parity as the wick, so the wick is centered) */\n body: number;\n /** x of a bar center snapped to the pixel grid */\n snap(x: number): number;\n}\n\nexport const candleMetrics = (spacing: number, dpr: number): CandleMetrics => {\n const wick = Math.max(1, Math.round(dpr));\n let body = Math.round(spacing * 0.72);\n if (body > spacing - 1) body = Math.floor(spacing - 1);\n if (body < wick) body = wick;\n if ((body - wick) % 2) body -= 1;\n const odd = wick % 2 === 1;\n return {\n wick,\n body,\n snap: (x) => (odd ? Math.floor(x) + 0.5 : Math.round(x)),\n };\n};\n\n/** Clamps a device y range to a band; null when outside */\nexport const clampRange = (\n a: number,\n b: number,\n top: number,\n bottom: number,\n): [number, number] | null => {\n let lo = Math.min(a, b);\n let hi = Math.max(a, b);\n if (!Number.isFinite(lo) || !Number.isFinite(hi)) return null;\n if (hi < top || lo > bottom) return null;\n lo = Math.max(top, lo);\n hi = Math.min(bottom, hi);\n return [lo, hi];\n};\n\n/** Rounds a device y range to whole pixels, at least `min` high */\nexport const pixelRange = (a: number, b: number, min = 1): [number, number] => {\n const lo = Math.round(Math.min(a, b));\n let hi = Math.round(Math.max(a, b));\n if (hi - lo < min) hi = lo + min;\n return [lo, hi];\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./indicators.cjs"),t=require("./chart.cjs"),n=require("./sync.cjs");exports.atr=e.atr,exports.bollinger=e.bollinger,exports.cci=e.cci,exports.createTradingChart=t.createTradingChart,exports.dmi=e.dmi,exports.donchian=e.donchian,exports.ema=e.ema,exports.heikinAshi=e.heikinAshi,exports.ichimoku=e.ichimoku,exports.kdj=e.kdj,exports.keltner=e.keltner,exports.macd=e.macd,exports.mfi=e.mfi,exports.obv=e.obv,exports.psar=e.psar,exports.resampleBars=e.resampleBars,exports.rsi=e.rsi,exports.sma=e.sma,exports.stochRsi=e.stochRsi,exports.supertrend=e.supertrend,exports.syncCharts=n.syncCharts,exports.volumeProfile=e.volumeProfile,exports.vwap=e.vwap,exports.williamsR=e.williamsR,exports.wma=e.wma;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type * from './types.cjs';
|
|
2
|
+
export { createTradingChart } from './chart.cjs';
|
|
3
|
+
export { syncCharts } from './sync.cjs';
|
|
4
|
+
export { atr, bollinger, cci, dmi, donchian, ema, heikinAshi, ichimoku, kdj, keltner, macd, mfi, obv, psar, resampleBars, rsi, sma, stochRsi, supertrend, volumeProfile, vwap, williamsR, wma, } from './indicators.cjs';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type * from './types.js';
|
|
2
|
+
export { createTradingChart } from './chart.js';
|
|
3
|
+
export { syncCharts } from './sync.js';
|
|
4
|
+
export { atr, bollinger, cci, dmi, donchian, ema, heikinAshi, ichimoku, kdj, keltner, macd, mfi, obv, psar, resampleBars, rsi, sma, stochRsi, supertrend, volumeProfile, vwap, williamsR, wma, } from './indicators.js';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { atr as e, bollinger as t, cci as n, dmi as r, donchian as i, ema as a, heikinAshi as o, ichimoku as s, kdj as c, keltner as l, macd as u, mfi as d, obv as f, psar as p, resampleBars as m, rsi as h, sma as g, stochRsi as _, supertrend as v, volumeProfile as y, vwap as b, williamsR as x, wma as S } from "./indicators.js";
|
|
2
|
+
import { createTradingChart as C } from "./chart.js";
|
|
3
|
+
import { syncCharts as w } from "./sync.js";
|
|
4
|
+
export { e as atr, t as bollinger, n as cci, C as createTradingChart, r as dmi, i as donchian, a as ema, o as heikinAshi, s as ichimoku, c as kdj, l as keltner, u as macd, d as mfi, f as obv, p as psar, m as resampleBars, h as rsi, g as sma, _ as stochRsi, v as supertrend, w as syncCharts, y as volumeProfile, b as vwap, x as williamsR, S as wma };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("./format.cjs");var t=Number.isFinite,n=e=>new Float64Array(e).fill(NaN),r=e=>Math.max(1,Math.floor(e)||1),i=(e,n,i,a,o=0)=>{let s=r(i),c=0,l=0;for(let n=Math.max(0,o-s);n<o;n++){let r=e[n];t(r)&&(c+=r,l++)}for(let r=o;r<n;r++){let n=e[r];if(t(n)&&(c+=n,l++),r>=s){let n=e[r-s];t(n)&&(c-=n,l--)}a[r]=l===s?c/s:NaN}},a=(e,n,r)=>{if(n<r-1)return NaN;let i=0;for(let a=n-r+1;a<=n;a++){let n=e[a];if(!t(n))return NaN;i+=n}return i/r},o=(e,n,r,i,o,s)=>{for(let c=s;c<n;c++){let n=e[c],s=c>0?o[c-1]:NaN;t(n)?t(s)?o[c]=s+i*(n-s):o[c]=a(e,c,r):o[c]=NaN}},s=(e,t,n,i,a=0)=>{let s=r(n);o(e,t,s,2/(s+1),i,a)},c=(e,t,n,i,a=0)=>{let s=r(n);o(e,t,s,1/s,i,a)},l=(e,n,i,o,s=0)=>{let c=r(i),l=c*(c+1)/2,u=n=>{if(n<c-1)return NaN;let r=0;for(let i=0;i<c;i++){let a=e[n-i];if(!t(a))return NaN;r+=(c-i)*a}return r},d=s>0?u(s-1):NaN,f=s>0?a(e,s-1,c)*c:NaN;for(let r=s;r<n;r++){let n=e[r];t(d)&&t(f)&&t(n)?(d=d-f+c*n,f=f+n-(r>=c?e[r-c]:0)):(d=u(r),f=a(e,r,c)*c),o[r]=t(d)?d/l:NaN}},u=(e,n,i,o,s=0)=>{let c=r(i);for(let r=s;r<n;r++){let n=a(e,r,c);if(!t(n)){o[r]=NaN;continue}let i=0;for(let t=r-c+1;t<=r;t++){let r=e[t]-n;i+=r*r}o[r]=Math.sqrt(i/c)}},d=(e,n,r,i,a,o)=>{let s=new Int32Array(r+1),c=0,l=0,u=-1,d=(e,t)=>o?e>=t:e<=t,f=n=>{let i=e[n];if(!t(i)){u=n,c=l=0;return}for(;l>c&&d(i,e[s[(l-1)%(r+1)]]);)l--;for(s[l%(r+1)]=n,l++;s[c%(r+1)]<=n-r;)c++};for(let e=Math.max(0,a-r+1);e<a;e++)f(e);for(let t=a;t<n;t++)f(t),i[t]=t<r-1||u>t-r||l===c?NaN:e[s[c%(r+1)]]},f=(e,n,i,a,o,s,c=0)=>{let l=r(i);for(let r=c;r<n;r++){if(o[r]=s[r]=NaN,a[r]=NaN,r===0)continue;let n=e[r]-e[r-1];if(t(n)){if(t(o[r-1])&&t(s[r-1]))o[r]=(o[r-1]*(l-1)+Math.max(n,0))/l,s[r]=(s[r-1]*(l-1)+Math.max(-n,0))/l;else if(r>=l){let n=0,i=0,a=!0;for(let o=r-l+1;o<=r;o++){let r=e[o]-e[o-1];if(!t(r)){a=!1;break}r>0?n+=r:i-=r}if(!a)continue;o[r]=n/l,s[r]=i/l}else continue;a[r]=s[r]===0?o[r]===0?50:100:100-100/(1+o[r]/s[r])}}},p=(e,n,r,i,a,o=0)=>{for(let s=o;s<i;s++){let i=e[s]-n[s];if(s===0||!t(r[s-1])){a[s]=i;continue}let o=r[s-1];a[s]=Math.max(i,Math.abs(e[s]-o),Math.abs(n[s]-o))}},m=(e,n,i,a,o,s,c,l,u,d,f=0)=>{let p=r(o),m=r(s),h=r(c);for(let r=f;r<a;r++){if(l[r]=u[r]=d[r]=NaN,r<p-1)continue;let a=-1/0,o=1/0;for(let t=r-p+1;t<=r;t++)e[t]>a&&(a=e[t]),n[t]<o&&(o=n[t]);let s=i[r];if(!t(a)||!t(o)||!t(s))continue;let c=a===o?50:(s-o)/(a-o)*100,f=r>0&&t(l[r-1])?l[r-1]:50,g=r>0&&t(u[r-1])?u[r-1]:50;l[r]=((m-1)*f+c)/m,u[r]=((h-1)*g+l[r])/h,d[r]=3*l[r]-2*u[r]}},h=864e5,g=(t,n,r=0)=>{if(n===`none`)return 0;let i=t+e.offsetOf(r,t)*6e4,a=Math.floor(i/h);if(n===`day`)return a;if(n===`week`)return Math.floor((a+3)/7);let o=new Date(i);return o.getUTCFullYear()*12+o.getUTCMonth()},_=(e,n,r,i,a,o,s,c,l,u,d,f=0)=>{for(let p=f;p<o;p++){let o=(e[p]+n[p]+r[p])/3,f=t(i[p])?i[p]:0,m=p>0&&(!a||g(a[p],s,c)===g(a[p-1],s,c)),h=m&&t(u[p-1])?u[p-1]:0,_=m&&t(d[p-1])?d[p-1]:0;u[p]=h+(t(o)?o*f:0),d[p]=_+f,l[p]=d[p]>0?u[p]/d[p]:t(o)?o:NaN}},v=(e,n,r,i,a,o,s=0)=>{for(let c=s;c<a;c++){let a=(e[c]+n[c]+r[c]+i[c])/4,s=c>0?o.open[c-1]:NaN,l=c>0?o.close[c-1]:NaN,u=t(s)&&t(l)?(s+l)/2:(e[c]+i[c])/2;o.open[c]=u,o.close[c]=a,o.high[c]=Math.max(n[c],u,a),o.low[c]=Math.min(r[c],u,a)}},y=(e,n,r,i,a=0)=>{for(let o=a;o<r;o++){if(o===0){i[o]=0;continue}let r=t(n[o])?n[o]:0,a=t(i[o-1])?i[o-1]:0,s=e[o]-e[o-1];i[o]=a+(s>0?r:s<0?-r:0)}},b=(e,t,n,r,i,a)=>{for(let o=a;o<r;o++)i[o]=(e[o]+t[o]+n[o])/3},x=(e,n,a,o,s,c,l,u,d=0)=>{let f=r(s);b(e,n,a,o,l,d),i(l,o,f,u,d);for(let e=d;e<o;e++){let n=u[e];if(!t(n)){c[e]=NaN;continue}let r=0;for(let t=e-f+1;t<=e;t++)r+=Math.abs(l[t]-n);r/=f,c[e]=r===0?0:(l[e]-n)/(.015*r)}},S=(e,n,i,a,o,s,c,l,u=0)=>{let f=r(o);d(e,a,f,c,u,!0),d(n,a,f,l,u,!1);for(let e=u;e<a;e++){let n=c[e],r=l[e];s[e]=!t(n)||!t(r)?NaN:n===r?-50:(n-i[e])/(n-r)*-100}},C=(e,n,i,a,o,s,c,l,u=0)=>{let d=r(s);b(e,n,i,o,l,Math.max(0,u-d-1));for(let e=u;e<o;e++){if(e<d){c[e]=NaN;continue}let n=0,r=0,i=!0;for(let o=e-d+1;o<=e;o++){let e=l[o]*(t(a[o])?a[o]:0);if(!t(e)||!t(l[o-1])){i=!1;break}l[o]>l[o-1]?n+=e:l[o]<l[o-1]&&(r+=e)}c[e]=i?r===0?n===0?50:100:100-100/(1+n/r):NaN}},w=(e,n,a,o,s,c,l,u,p,m=0)=>{let h=r(o);f(e,n,a,p.rsi,p.gain,p.loss,m),d(p.rsi,n,h,p.highest,m,!0),d(p.rsi,n,h,p.lowest,m,!1);for(let e=m;e<n;e++){let n=p.highest[e],r=p.lowest[e];p.raw[e]=!t(n)||!t(r)?NaN:n===r?50:(p.rsi[e]-r)/(n-r)*100}i(p.raw,n,s,l,m),i(l,n,c,u,m)},T=(e,n,r,i,a,o,s,l,u,d,f=0)=>{for(let t=f;t<i;t++){if(t===0){d.tr[t]=d.plusDm[t]=d.minusDm[t]=NaN;continue}let i=e[t]-e[t-1],a=n[t-1]-n[t];d.plusDm[t]=i>a&&i>0?i:0,d.minusDm[t]=a>i&&a>0?a:0;let o=r[t-1];d.tr[t]=Math.max(e[t]-n[t],Math.abs(e[t]-o),Math.abs(n[t]-o))}c(d.tr,i,a,d.smoothTr,f),c(d.plusDm,i,a,d.smoothPlus,f),c(d.minusDm,i,a,d.smoothMinus,f);for(let e=f;e<i;e++){let n=d.smoothTr[e];s[e]=n?100*d.smoothPlus[e]/n:NaN,l[e]=n?100*d.smoothMinus[e]/n:NaN;let r=s[e]+l[e];d.dx[e]=t(r)?r===0?0:100*Math.abs(s[e]-l[e])/r:NaN}c(d.dx,i,o,u,f)},E=(e,n,r,i,a,o,s,c,l=0)=>{let{ep:u,af:d,trend:f}=c;for(let c=l;c<r;c++){if(c===0){s[c]=u[c]=d[c]=f[c]=NaN;continue}if(!t(f[c-1])){let r=e[c]+n[c]>=e[c-1]+n[c-1];s[c]=r?Math.min(n[c-1],n[c]):Math.max(e[c-1],e[c]),u[c]=r?Math.max(e[c-1],e[c]):Math.min(n[c-1],n[c]),d[c]=i,f[c]=t(s[c])?r?1:-1:NaN;continue}let r=u[c-1],l=d[c-1],p=s[c-1]+l*(r-s[c-1]),m=c>=2?c-2:c-1;f[c-1]===1?(p=Math.min(p,n[c-1],n[m]),n[c]<p?(f[c]=-1,p=Math.max(r,e[c]),u[c]=n[c],d[c]=i):(f[c]=1,u[c]=Math.max(r,e[c]),d[c]=e[c]>r?Math.min(l+a,o):l)):(p=Math.max(p,e[c-1],e[m]),e[c]>p?(f[c]=1,p=Math.min(r,n[c]),u[c]=e[c],d[c]=i):(f[c]=-1,u[c]=Math.min(r,n[c]),d[c]=n[c]<r?Math.min(l+a,o):l)),s[c]=p}},D=(e,n,r,i,a,o,s,l,u,d=0)=>{let{tr:f,atr:m,upper:h,lower:g}=u;p(e,n,r,i,f,d),c(f,i,a,m,d);for(let a=d;a<i;a++){let i=m[a];if(!t(i)){s[a]=l[a]=h[a]=g[a]=NaN;continue}let c=(e[a]+n[a])/2,u=c+o*i,d=c-o*i,f=a>0?h[a-1]:NaN,p=a>0?g[a-1]:NaN,_=a>0?r[a-1]:NaN;t(p)&&!(d>p||_<p)&&(d=p),t(f)&&!(u<f||_>f)&&(u=f),h[a]=u,g[a]=d;let v=a>0?l[a-1]:NaN,y=t(v)?v===-1?r[a]>u?1:-1:r[a]<d?-1:1:-1;l[a]=y,s[a]=y===1?d:u}},O=(e,t,n,i,a,o,s,c)=>{let l=r(i);d(e,n,l,o,c,!0),d(t,n,l,s,c,!1);for(let e=c;e<n;e++)a[e]=(o[e]+s[e])/2},k=(e,t,n,r,i,a,o,s,c,l,u,d=0)=>{let{highest:f,lowest:p}=u;O(e,t,n,r,o,f,p,d),O(e,t,n,i,s,f,p,d),O(e,t,n,a,l,f,p,d);for(let e=d;e<n;e++)c[e]=(o[e]+s[e])/2},A=(e,t,n,i,a,o,s,c=0)=>{let l=r(i);d(e,n,l,a,c,!0),d(t,n,l,o,c,!1);for(let e=c;e<n;e++)s[e]=(a[e]+o[e])/2},j=(e,t,n,r,i,a,o,l,u,d,f,m=0)=>{s(n,r,i,l,m),p(e,t,n,r,f.tr,m),c(f.tr,r,o,f.atr,m);for(let e=m;e<r;e++)u[e]=l[e]+a*f.atr[e],d[e]=l[e]-a*f.atr[e]},M=(e,t)=>{let r=n(e.length);return i(e,e.length,t,r),r},ee=(e,t)=>{let r=n(e.length);return s(e,e.length,t,r),r},te=(e,t)=>{let r=n(e.length);return l(e,e.length,t,r),r},ne=(e,t=20,r=2)=>{let a=e.length,o=n(a),s=n(a),c=n(a),l=n(a);i(e,a,t,o),u(e,a,t,l);for(let e=0;e<a;e++)s[e]=o[e]+r*l[e],c[e]=o[e]-r*l[e];return{middle:o,upper:s,lower:c}},re=(e,t=12,r=26,i=9)=>{let a=e.length,o=n(a),c=n(a);s(e,a,t,o),s(e,a,r,c);let l=n(a);for(let e=0;e<a;e++)l[e]=o[e]-c[e];let u=n(a);s(l,a,i,u);let d=n(a);for(let e=0;e<a;e++)d[e]=l[e]-u[e];return{macd:l,signal:u,histogram:d}},N=(e,t=14)=>{let r=e.length,i=n(r);return f(e,r,t,i,n(r),n(r)),i},P=(e,t,r,i=9,a=3,o=3)=>{let s=r.length,c=n(s),l=n(s),u=n(s);return m(e,t,r,s,i,a,o,c,l,u),{k:c,d:l,j:u}},F=(e,t,r,i=14)=>{let a=r.length,o=n(a);p(e,t,r,a,o);let s=n(a);return c(o,a,i,s),s},I=(t,r,i,a,o={})=>{let s=i.length,c=n(s),l=o.timeZone;return _(t,r,i,a,o.time??null,s,o.reset??`day`,o.utcOffset??(l?t=>e.zoneOffset(t,l):0),c,n(s),n(s)),c},L=e=>{let t=e.close.length,r={open:n(t),high:n(t),low:n(t),close:n(t)};return v(e.open,e.high,e.low,e.close,t,r),r},R=(e,t)=>{let r=n(e.length);return y(e,t,e.length,r),r},z=(e,t,r,i=20)=>{let a=r.length,o=n(a);return x(e,t,r,a,i,o,n(a),n(a)),o},B=(e,t,r,i=14)=>{let a=r.length,o=n(a);return S(e,t,r,a,i,o,n(a),n(a)),o},V=(e,t,r,i,a=14)=>{let o=r.length,s=n(o);return C(e,t,r,i,o,a,s,n(o)),s},H=(e,t={})=>{let r=e.length,i=n(r),a=n(r);return w(e,r,t.rsiPeriod??14,t.stochPeriod??14,t.kPeriod??3,t.dPeriod??3,i,a,{rsi:n(r),gain:n(r),loss:n(r),highest:n(r),lowest:n(r),raw:n(r)}),{k:i,d:a}},U=(e,t,r,i=14,a=14)=>{let o=r.length,s=n(o),c=n(o),l=n(o);return T(e,t,r,o,i,a,s,c,l,{tr:n(o),plusDm:n(o),minusDm:n(o),smoothTr:n(o),smoothPlus:n(o),smoothMinus:n(o),dx:n(o)}),{plus:s,minus:c,adx:l}},W=(e,t,r={})=>{let i=e.length,a=n(i),o=r.start??.02;return E(e,t,i,o,r.increment??o,r.maximum??.2,a,{ep:n(i),af:n(i),trend:n(i)}),a},G=(e,t,r,i=10,a=3)=>{let o=r.length,s=n(o),c=n(o);return D(e,t,r,o,i,a,s,c,{tr:n(o),atr:n(o),upper:n(o),lower:n(o)}),{value:s,direction:c}},K=(e,t,r={})=>{let i=e.length,a={conversion:n(i),base:n(i),spanA:n(i),spanB:n(i)};return k(e,t,i,r.conversionPeriod??9,r.basePeriod??26,r.spanBPeriod??52,a.conversion,a.base,a.spanA,a.spanB,{highest:n(i),lowest:n(i)}),a},q=(e,t,r,i={})=>{let a=r.length,o={middle:n(a),upper:n(a),lower:n(a)};return j(e,t,r,a,i.period??20,i.multiplier??2,i.atrPeriod??10,o.middle,o.upper,o.lower,{tr:n(a),atr:n(a)}),o},J=(e,t,r=20)=>{let i=e.length,a={upper:n(i),lower:n(i),middle:n(i)};return A(e,t,i,r,a.upper,a.lower,a.middle),a},Y=(e,n={})=>{let r=e.close.length,i=Math.max(0,Math.floor(n.from??0)),a=Math.min(r-1,Math.floor(n.to??r-1)),o=Math.max(1,Math.floor(n.rows??24)),s=1/0,c=-1/0;for(let t=i;t<=a;t++)e.low[t]<s&&(s=e.low[t]),e.high[t]>c&&(c=e.high[t]);let l=new Float64Array(o),u=new Float64Array(o),d={low:s,high:c,step:0,up:l,down:u,total:0,poc:-1,valueAreaFrom:-1,valueAreaTo:-1};if(!t(s)||!t(c))return d;c===s&&(c+=Math.abs(s)*1e-6||1e-6,s-=Math.abs(s)*1e-6||1e-6);let f=(c-s)/o,p=0;for(let n=i;n<=a;n++){let r=e.volume[n],i=e.low[n],a=e.high[n];if(!(r>0)||!t(i)||!t(a))continue;let c=e.close[n]>=e.open[n]?l:u;p+=r;let d=Math.min(o-1,Math.max(0,Math.floor((i-s)/f))),m=Math.min(o-1,Math.max(0,Math.floor((a-s)/f)));if(d===m||a<=i){c[d]+=r;continue}let h=a-i;for(let e=d;e<=m;e++){let t=s+e*f,n=Math.min(a,t+f)-Math.max(i,t);n>0&&(c[e]+=r*n/h)}}if(!(p>0))return{...d,low:s,high:c,step:f};let m=0;for(let e=1;e<o;e++)l[e]+u[e]>l[m]+u[m]&&(m=e);let h=p*Math.min(1,Math.max(0,n.valueArea??.7)),g=m,_=m,v=l[m]+u[m];for(;v<h&&(g>0||_<o-1);){let e=g>0?l[g-1]+u[g-1]:-1;(_<o-1?l[_+1]+u[_+1]:-1)>=e?(_++,v+=l[_]+u[_]):(g--,v+=l[g]+u[g])}return{low:s,high:c,step:f,up:l,down:u,total:p,poc:m,valueAreaFrom:g,valueAreaTo:_}},X={s:1e3,m:6e4,h:36e5,H:36e5,d:h,D:h,w:7*h,W:7*h},Z=e=>{if(typeof e==`number`)return e>0?{unit:`ms`,count:e,ms:e}:null;let t=/^(\d+(?:\.\d+)?)([smhHdDwWM])$/.exec(e.trim());if(!t)return null;let n=Number(t[1]);if(!(n>0))return null;let r=t[2];return r===`M`?{unit:`month`,count:n,ms:n*30*h}:{unit:`ms`,count:n*X[r],ms:n*X[r]}},Q=(t,n,r=0)=>{let i=t+e.offsetOf(r,t)*6e4;if(n.unit===`month`){let e=new Date(i),t=e.getUTCFullYear()*12+e.getUTCMonth();return t-t%n.count}return n.count%(7*h)==0?Math.floor((i-4*h)/n.count):Math.floor(i/n.count)},$=(t,n,r=0)=>{let i=Q(t,n,r),a=n.unit===`month`?Date.UTC(Math.floor(i/12),i%12,1):n.count%(7*h)==0?i*n.count+4*h:i*n.count,o=a-e.offsetOf(r,t)*6e4;return a-e.offsetOf(r,o)*6e4},ie=e=>!Array.isArray(e);function ae(t,n,r=0){let i=Z(n);if(!i)throw Error(`Invalid timeframe: ${String(n)}`);let a=typeof r==`string`?t=>e.zoneOffset(t,r):r,o=ie(t),s=o?t.close.length:t.length,c=e=>{if(!o)return t[e];let n=t;return{time:n.time[e],open:n.open[e],high:n.high[e],low:n.low[e],close:n.close[e],volume:n.volume?n.volume[e]:void 0}},l=[],u=null,d=NaN;for(let e=0;e<s;e++){let t=c(e),n=Q(t.time,i,a);!u||n!==d?(u&&l.push(u),d=n,u={time:$(t.time,i,a),open:t.open,high:t.high,low:t.low,close:t.close,volume:t.volume??0}):(t.high>u.high&&(u.high=t.high),t.low<u.low&&(u.low=t.low),u.close=t.close,u.volume=(u.volume??0)+(t.volume??0))}if(u&&l.push(u),!o)return l;let f=l.length,p={time:new Float64Array(f),open:new Float64Array(f),high:new Float64Array(f),low:new Float64Array(f),close:new Float64Array(f),volume:new Float64Array(f)};return l.forEach((e,t)=>{p.time[t]=e.time,p.open[t]=e.open,p.high[t]=e.high,p.low[t]=e.low,p.close[t]=e.close,p.volume[t]=e.volume??0}),p}exports.atr=F,exports.bollinger=ne,exports.bucketKey=Q,exports.bucketStart=$,exports.cci=z,exports.cciInto=x,exports.dmi=U,exports.dmiInto=T,exports.donchian=J,exports.donchianInto=A,exports.ema=ee,exports.emaInto=s,exports.heikinAshi=L,exports.heikinAshiInto=v,exports.ichimoku=K,exports.ichimokuInto=k,exports.kdj=P,exports.kdjInto=m,exports.keltner=q,exports.keltnerInto=j,exports.macd=re,exports.mfi=V,exports.mfiInto=C,exports.obv=R,exports.obvInto=y,exports.parseTimeframe=Z,exports.psar=W,exports.psarInto=E,exports.resampleBars=ae,exports.rmaInto=c,exports.rsi=N,exports.rsiInto=f,exports.sessionKey=g,exports.sma=M,exports.smaInto=i,exports.stdevInto=u,exports.stochRsi=H,exports.stochRsiInto=w,exports.supertrend=G,exports.supertrendInto=D,exports.trueRangeInto=p,exports.volumeProfile=Y,exports.vwap=I,exports.vwapInto=_,exports.williamsR=B,exports.williamsRInto=S,exports.wma=te,exports.wmaInto=l;
|
|
2
|
+
//# sourceMappingURL=indicators.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indicators.cjs","names":["offsetOf","zoneOffset","require_format","finite","nanArray","n","periodOf","period","smaInto","p","sum","valid","j","from","v","src","i","old","windowMean","k","smoothInto","prev","out","alpha","emaInto","rmaInto","wmaInto","denominator","direct","num","stdevInto","mean","sq","d","extremeInto","queue","head","tail","lastNaN","better","highest","a","b","push","rsiInto","change","close","gain","loss","g","l","ok","c","trueRangeInto","range","high","low","pc","kdjInto","m1","kPeriod","m2","dPeriod","hh","ll","q","rsv","pk","pd","DAY","sessionKey","reset","t","time","utcOffset","day","date","vwapInto","tp","volume","same","basePv","pv","baseV","vol","heikinAshiInto","open","prevOpen","prevClose","o","obvInto","typicalInto","cciInto","typical","m","deviation","williamsRInto","lowest","mfiInto","positive","negative","flow","stochRsiInto","stochPeriod","rsiPeriod","work","dmiInto","up","down","tr","plus","minus","adxPeriod","adx","psarInto","trend","start","prevEp","ep","prevAf","af","sar","before","increment","maximum","supertrendInto","mid","multiplier","pu","upper","pl","lower","direction","midpointInto","ichimokuInto","conversionPeriod","conversion","basePeriod","base","spanBPeriod","spanB","donchianInto","keltnerInto","middle","atrPeriod","sma","values","ema","wma","bollinger","dev","macd","f","s","fast","slow","line","sig","signal","histogram","rsi","kdj","atr","vwap","zone","options","heikinAshi","bars","obv","cci","williamsR","mfi","stochRsi","dmi","psar","supertrend","value","ichimoku","keltner","donchian","volumeProfile","count","to","rows","lo","hi","empty","step","total","h","target","r0","r1","span","r","bottom","overlap","poc","wanted","inside","below","UNIT_MS","parseTimeframe","timeframe","match","unit","bucketKey","tf","months","bucketStart","key","shifted","guess","isColumns","resampleBars","offset","timeZone","columns","get","current","currentKey","bar","result"],"sources":["../../../../../charts/src/engine/trading/indicators.ts"],"sourcesContent":["// Technical indicators on columns of numbers (Float64Array out, NaN while\n// an indicator warms up). Every kernel computes the outputs from index\n// `from` on, assuming the outputs before it are up to date: the chart\n// recomputes only the last bar on each tick, even with a million bars.\n\nimport { offsetOf, zoneOffset, type UtcOffset } from \"./format\";\nimport type {\n TradingBar,\n TradingBarColumns,\n TradingBarsInput,\n TradingTimeframe,\n TradingVolumeProfile,\n} from \"./types\";\n\ntype Values = ArrayLike<number>;\n\nconst finite = Number.isFinite;\n\n/** Output array of `n` values, NaN-filled */\nconst nanArray = (n: number) => new Float64Array(n).fill(NaN);\n\nconst periodOf = (period: number) => Math.max(1, Math.floor(period) || 1);\n\n// ---------------------------------------------------------------- kernels\n\n/** Simple moving average of `src[0..n)` into `out`, from index `from` */\nexport const smaInto = (\n src: Values,\n n: number,\n period: number,\n out: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n let sum = 0;\n let valid = 0;\n // the window ending just before `from` (the loop below drops its oldest value)\n for (let j = Math.max(0, from - p); j < from; j++) {\n const v = src[j];\n if (finite(v)) {\n sum += v;\n valid++;\n }\n }\n for (let i = from; i < n; i++) {\n const v = src[i];\n if (finite(v)) {\n sum += v;\n valid++;\n }\n if (i >= p) {\n const old = src[i - p];\n if (finite(old)) {\n sum -= old;\n valid--;\n }\n }\n out[i] = valid === p ? sum / p : NaN;\n }\n};\n\n/** Mean of `src[i-p+1..i]`, NaN unless the window is complete */\nconst windowMean = (src: Values, i: number, p: number) => {\n if (i < p - 1) return NaN;\n let sum = 0;\n for (let k = i - p + 1; k <= i; k++) {\n const v = src[k];\n if (!finite(v)) return NaN;\n sum += v;\n }\n return sum / p;\n};\n\n/**\n * Exponential smoothing with factor `alpha`, seeded with the simple\n * average of the first complete window (the TradingView convention)\n */\nconst smoothInto = (\n src: Values,\n n: number,\n p: number,\n alpha: number,\n out: Float64Array,\n from: number,\n) => {\n for (let i = from; i < n; i++) {\n const v = src[i];\n const prev = i > 0 ? out[i - 1] : NaN;\n if (!finite(v)) out[i] = NaN;\n else if (finite(prev)) out[i] = prev + alpha * (v - prev);\n else out[i] = windowMean(src, i, p);\n }\n};\n\n/** Exponential moving average (alpha = 2 / (period + 1)) */\nexport const emaInto = (\n src: Values,\n n: number,\n period: number,\n out: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n smoothInto(src, n, p, 2 / (p + 1), out, from);\n};\n\n/** Wilder's moving average (alpha = 1 / period), used by RSI and ATR */\nexport const rmaInto = (\n src: Values,\n n: number,\n period: number,\n out: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n smoothInto(src, n, p, 1 / p, out, from);\n};\n\n/** Linearly weighted moving average (the newest bar weighs `period`) */\nexport const wmaInto = (\n src: Values,\n n: number,\n period: number,\n out: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n const denominator = (p * (p + 1)) / 2;\n const direct = (i: number) => {\n if (i < p - 1) return NaN;\n let num = 0;\n for (let k = 0; k < p; k++) {\n const v = src[i - k];\n if (!finite(v)) return NaN;\n num += (p - k) * v;\n }\n return num;\n };\n // numerator of the previous index and the sum of its window\n let num = from > 0 ? direct(from - 1) : NaN;\n let sum = from > 0 ? windowMean(src, from - 1, p) * p : NaN;\n for (let i = from; i < n; i++) {\n const v = src[i];\n if (finite(num) && finite(sum) && finite(v)) {\n num = num - sum + p * v;\n sum = sum + v - (i >= p ? src[i - p] : 0);\n } else {\n num = direct(i);\n sum = windowMean(src, i, p) * p;\n }\n out[i] = finite(num) ? num / denominator : NaN;\n }\n};\n\n/** Population standard deviation over the window (two passes: exact) */\nexport const stdevInto = (\n src: Values,\n n: number,\n period: number,\n out: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n for (let i = from; i < n; i++) {\n const mean = windowMean(src, i, p);\n if (!finite(mean)) {\n out[i] = NaN;\n continue;\n }\n let sq = 0;\n for (let k = i - p + 1; k <= i; k++) {\n const d = src[k] - mean;\n sq += d * d;\n }\n out[i] = Math.sqrt(sq / p);\n }\n};\n\n/**\n * Highest (or lowest) value of the window ending at each index, NaN while\n * the window is incomplete or holds a NaN. A monotonic queue of indices\n * makes it O(1) per bar whatever the period (Ichimoku uses 52 bars).\n */\nconst extremeInto = (\n src: Values,\n n: number,\n p: number,\n out: Float64Array,\n from: number,\n highest: boolean,\n) => {\n const queue = new Int32Array(p + 1);\n let head = 0;\n let tail = 0;\n let lastNaN = -1;\n const better = (a: number, b: number) => (highest ? a >= b : a <= b);\n const push = (i: number) => {\n const v = src[i];\n if (!finite(v)) {\n lastNaN = i;\n head = tail = 0;\n return;\n }\n while (tail > head && better(v, src[queue[(tail - 1) % (p + 1)]])) tail--;\n queue[tail % (p + 1)] = i;\n tail++;\n while (queue[head % (p + 1)] <= i - p) head++;\n };\n // the window ending just before `from`\n for (let i = Math.max(0, from - p + 1); i < from; i++) push(i);\n for (let i = from; i < n; i++) {\n push(i);\n out[i] =\n i < p - 1 || lastNaN > i - p || tail === head\n ? NaN\n : src[queue[head % (p + 1)]];\n }\n};\n\n/** RSI with Wilder smoothing; `gain` / `loss` hold the running averages */\nexport const rsiInto = (\n close: Values,\n n: number,\n period: number,\n out: Float64Array,\n gain: Float64Array,\n loss: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n for (let i = from; i < n; i++) {\n gain[i] = loss[i] = NaN;\n out[i] = NaN;\n if (i === 0) continue;\n const change = close[i] - close[i - 1];\n if (!finite(change)) continue;\n if (finite(gain[i - 1]) && finite(loss[i - 1])) {\n gain[i] = (gain[i - 1] * (p - 1) + Math.max(change, 0)) / p;\n loss[i] = (loss[i - 1] * (p - 1) + Math.max(-change, 0)) / p;\n } else if (i >= p) {\n let g = 0;\n let l = 0;\n let ok = true;\n for (let k = i - p + 1; k <= i; k++) {\n const c = close[k] - close[k - 1];\n if (!finite(c)) {\n ok = false;\n break;\n }\n if (c > 0) g += c;\n else l -= c;\n }\n if (!ok) continue;\n gain[i] = g / p;\n loss[i] = l / p;\n } else {\n continue;\n }\n out[i] =\n loss[i] === 0\n ? gain[i] === 0\n ? 50\n : 100\n : 100 - 100 / (1 + gain[i] / loss[i]);\n }\n};\n\n/** True range of each bar */\nexport const trueRangeInto = (\n high: Values,\n low: Values,\n close: Values,\n n: number,\n out: Float64Array,\n from = 0,\n): void => {\n for (let i = from; i < n; i++) {\n const range = high[i] - low[i];\n if (i === 0 || !finite(close[i - 1])) {\n out[i] = range;\n continue;\n }\n const pc = close[i - 1];\n out[i] = Math.max(range, Math.abs(high[i] - pc), Math.abs(low[i] - pc));\n }\n};\n\n/** KDJ: K and D smoothed from the raw stochastic value (seeded at 50), J = 3K − 2D */\nexport const kdjInto = (\n high: Values,\n low: Values,\n close: Values,\n n: number,\n period: number,\n kPeriod: number,\n dPeriod: number,\n k: Float64Array,\n d: Float64Array,\n j: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n const m1 = periodOf(kPeriod);\n const m2 = periodOf(dPeriod);\n for (let i = from; i < n; i++) {\n k[i] = d[i] = j[i] = NaN;\n if (i < p - 1) continue;\n let hh = -Infinity;\n let ll = Infinity;\n for (let q = i - p + 1; q <= i; q++) {\n if (high[q] > hh) hh = high[q];\n if (low[q] < ll) ll = low[q];\n }\n const c = close[i];\n if (!finite(hh) || !finite(ll) || !finite(c)) continue;\n const rsv = hh === ll ? 50 : ((c - ll) / (hh - ll)) * 100;\n const pk = i > 0 && finite(k[i - 1]) ? k[i - 1] : 50;\n const pd = i > 0 && finite(d[i - 1]) ? d[i - 1] : 50;\n k[i] = ((m1 - 1) * pk + rsv) / m1;\n d[i] = ((m2 - 1) * pd + k[i]) / m2;\n j[i] = 3 * k[i] - 2 * d[i];\n }\n};\n\nconst DAY = 86_400_000;\n\n/** Session key of a time: bars with the same key are in the same VWAP period */\nexport const sessionKey = (\n time: number,\n reset: \"day\" | \"week\" | \"month\" | \"none\",\n utcOffset: UtcOffset = 0,\n): number => {\n if (reset === \"none\") return 0;\n const t = time + offsetOf(utcOffset, time) * 60_000;\n const day = Math.floor(t / DAY);\n if (reset === \"day\") return day;\n // 1970-01-01 is a Thursday: weeks start on Monday\n if (reset === \"week\") return Math.floor((day + 3) / 7);\n const date = new Date(t);\n return date.getUTCFullYear() * 12 + date.getUTCMonth();\n};\n\n/** VWAP; `pv` / `vol` hold the cumulative sums of the period */\nexport const vwapInto = (\n high: Values,\n low: Values,\n close: Values,\n volume: Values,\n time: Values | null,\n n: number,\n reset: \"day\" | \"week\" | \"month\" | \"none\",\n utcOffset: UtcOffset,\n out: Float64Array,\n pv: Float64Array,\n vol: Float64Array,\n from = 0,\n): void => {\n for (let i = from; i < n; i++) {\n const tp = (high[i] + low[i] + close[i]) / 3;\n const v = finite(volume[i]) ? volume[i] : 0;\n const same =\n i > 0 &&\n (!time ||\n sessionKey(time[i], reset, utcOffset) ===\n sessionKey(time[i - 1], reset, utcOffset));\n const basePv = same && finite(pv[i - 1]) ? pv[i - 1] : 0;\n const baseV = same && finite(vol[i - 1]) ? vol[i - 1] : 0;\n pv[i] = basePv + (finite(tp) ? tp * v : 0);\n vol[i] = baseV + v;\n out[i] = vol[i] > 0 ? pv[i] / vol[i] : finite(tp) ? tp : NaN;\n }\n};\n\n/** Heikin-Ashi bars from regular bars */\nexport const heikinAshiInto = (\n open: Values,\n high: Values,\n low: Values,\n close: Values,\n n: number,\n out: {\n open: Float64Array;\n high: Float64Array;\n low: Float64Array;\n close: Float64Array;\n },\n from = 0,\n): void => {\n for (let i = from; i < n; i++) {\n const c = (open[i] + high[i] + low[i] + close[i]) / 4;\n const prevOpen = i > 0 ? out.open[i - 1] : NaN;\n const prevClose = i > 0 ? out.close[i - 1] : NaN;\n const o =\n finite(prevOpen) && finite(prevClose)\n ? (prevOpen + prevClose) / 2\n : (open[i] + close[i]) / 2;\n out.open[i] = o;\n out.close[i] = c;\n out.high[i] = Math.max(high[i], o, c);\n out.low[i] = Math.min(low[i], o, c);\n }\n};\n\n/** On-balance volume: the volume added on up closes, subtracted on down closes */\nexport const obvInto = (\n close: Values,\n volume: Values,\n n: number,\n out: Float64Array,\n from = 0,\n): void => {\n for (let i = from; i < n; i++) {\n if (i === 0) {\n out[i] = 0;\n continue;\n }\n const v = finite(volume[i]) ? volume[i] : 0;\n const prev = finite(out[i - 1]) ? out[i - 1] : 0;\n const change = close[i] - close[i - 1];\n out[i] = prev + (change > 0 ? v : change < 0 ? -v : 0);\n }\n};\n\n/** Typical price (high + low + close) / 3 */\nconst typicalInto = (\n high: Values,\n low: Values,\n close: Values,\n n: number,\n out: Float64Array,\n from: number,\n) => {\n for (let i = from; i < n; i++) out[i] = (high[i] + low[i] + close[i]) / 3;\n};\n\n/** Commodity channel index: distance of the typical price from its average, in mean deviations / 0.015 */\nexport const cciInto = (\n high: Values,\n low: Values,\n close: Values,\n n: number,\n period: number,\n out: Float64Array,\n typical: Float64Array,\n mean: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n typicalInto(high, low, close, n, typical, from);\n smaInto(typical, n, p, mean, from);\n for (let i = from; i < n; i++) {\n const m = mean[i];\n if (!finite(m)) {\n out[i] = NaN;\n continue;\n }\n let deviation = 0;\n for (let k = i - p + 1; k <= i; k++) deviation += Math.abs(typical[k] - m);\n deviation /= p;\n out[i] = deviation === 0 ? 0 : (typical[i] - m) / (0.015 * deviation);\n }\n};\n\n/** Williams %R (−100 to 0): the close within the range of the window, from its high */\nexport const williamsRInto = (\n high: Values,\n low: Values,\n close: Values,\n n: number,\n period: number,\n out: Float64Array,\n highest: Float64Array,\n lowest: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n extremeInto(high, n, p, highest, from, true);\n extremeInto(low, n, p, lowest, from, false);\n for (let i = from; i < n; i++) {\n const hh = highest[i];\n const ll = lowest[i];\n out[i] =\n !finite(hh) || !finite(ll)\n ? NaN\n : hh === ll\n ? -50\n : ((hh - close[i]) / (hh - ll)) * -100;\n }\n};\n\n/** Money flow index (0-100): an RSI of the typical price weighted by the volume */\nexport const mfiInto = (\n high: Values,\n low: Values,\n close: Values,\n volume: Values,\n n: number,\n period: number,\n out: Float64Array,\n typical: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n typicalInto(high, low, close, n, typical, Math.max(0, from - p - 1));\n for (let i = from; i < n; i++) {\n if (i < p) {\n out[i] = NaN;\n continue;\n }\n let positive = 0;\n let negative = 0;\n let ok = true;\n for (let k = i - p + 1; k <= i; k++) {\n const flow = typical[k] * (finite(volume[k]) ? volume[k] : 0);\n if (!finite(flow) || !finite(typical[k - 1])) {\n ok = false;\n break;\n }\n if (typical[k] > typical[k - 1]) positive += flow;\n else if (typical[k] < typical[k - 1]) negative += flow;\n }\n out[i] = !ok\n ? NaN\n : negative === 0\n ? positive === 0\n ? 50\n : 100\n : 100 - 100 / (1 + positive / negative);\n }\n};\n\n/** Working columns of the stochastic RSI */\nexport interface StochRsiWork {\n rsi: Float64Array;\n gain: Float64Array;\n loss: Float64Array;\n highest: Float64Array;\n lowest: Float64Array;\n raw: Float64Array;\n}\n\n/** Stochastic RSI: the stochastic of the RSI, smoothed into K and D */\nexport const stochRsiInto = (\n close: Values,\n n: number,\n rsiPeriod: number,\n stochPeriod: number,\n kPeriod: number,\n dPeriod: number,\n k: Float64Array,\n d: Float64Array,\n work: StochRsiWork,\n from = 0,\n): void => {\n const p = periodOf(stochPeriod);\n rsiInto(close, n, rsiPeriod, work.rsi, work.gain, work.loss, from);\n extremeInto(work.rsi, n, p, work.highest, from, true);\n extremeInto(work.rsi, n, p, work.lowest, from, false);\n for (let i = from; i < n; i++) {\n const hh = work.highest[i];\n const ll = work.lowest[i];\n work.raw[i] =\n !finite(hh) || !finite(ll)\n ? NaN\n : hh === ll\n ? 50\n : ((work.rsi[i] - ll) / (hh - ll)) * 100;\n }\n smaInto(work.raw, n, kPeriod, k, from);\n smaInto(k, n, dPeriod, d, from);\n};\n\n/** Working columns of the DMI */\nexport interface DmiWork {\n tr: Float64Array;\n plusDm: Float64Array;\n minusDm: Float64Array;\n smoothTr: Float64Array;\n smoothPlus: Float64Array;\n smoothMinus: Float64Array;\n dx: Float64Array;\n}\n\n/** Directional movement index (Wilder): +DI, −DI and the ADX */\nexport const dmiInto = (\n high: Values,\n low: Values,\n close: Values,\n n: number,\n period: number,\n adxPeriod: number,\n plus: Float64Array,\n minus: Float64Array,\n adx: Float64Array,\n work: DmiWork,\n from = 0,\n): void => {\n for (let i = from; i < n; i++) {\n if (i === 0) {\n work.tr[i] = work.plusDm[i] = work.minusDm[i] = NaN;\n continue;\n }\n const up = high[i] - high[i - 1];\n const down = low[i - 1] - low[i];\n work.plusDm[i] = up > down && up > 0 ? up : 0;\n work.minusDm[i] = down > up && down > 0 ? down : 0;\n const pc = close[i - 1];\n work.tr[i] = Math.max(\n high[i] - low[i],\n Math.abs(high[i] - pc),\n Math.abs(low[i] - pc),\n );\n }\n rmaInto(work.tr, n, period, work.smoothTr, from);\n rmaInto(work.plusDm, n, period, work.smoothPlus, from);\n rmaInto(work.minusDm, n, period, work.smoothMinus, from);\n for (let i = from; i < n; i++) {\n const tr = work.smoothTr[i];\n plus[i] = tr ? (100 * work.smoothPlus[i]) / tr : NaN;\n minus[i] = tr ? (100 * work.smoothMinus[i]) / tr : NaN;\n const sum = plus[i] + minus[i];\n work.dx[i] = !finite(sum)\n ? NaN\n : sum === 0\n ? 0\n : (100 * Math.abs(plus[i] - minus[i])) / sum;\n }\n rmaInto(work.dx, n, adxPeriod, adx, from);\n};\n\n/** Working columns of the parabolic SAR */\nexport interface PsarWork {\n /** Extreme point of the trend */\n ep: Float64Array;\n /** Acceleration factor */\n af: Float64Array;\n /** 1 rising, −1 falling */\n trend: Float64Array;\n}\n\n/** Parabolic stop and reverse (Wilder) */\nexport const psarInto = (\n high: Values,\n low: Values,\n n: number,\n start: number,\n increment: number,\n maximum: number,\n out: Float64Array,\n work: PsarWork,\n from = 0,\n): void => {\n const { ep, af, trend } = work;\n for (let i = from; i < n; i++) {\n if (i === 0) {\n out[i] = ep[i] = af[i] = trend[i] = NaN;\n continue;\n }\n if (!finite(trend[i - 1])) {\n // the first two bars set the direction\n const up = high[i] + low[i] >= high[i - 1] + low[i - 1];\n out[i] = up\n ? Math.min(low[i - 1], low[i])\n : Math.max(high[i - 1], high[i]);\n ep[i] = up\n ? Math.max(high[i - 1], high[i])\n : Math.min(low[i - 1], low[i]);\n af[i] = start;\n trend[i] = finite(out[i]) ? (up ? 1 : -1) : NaN;\n continue;\n }\n const prevEp = ep[i - 1];\n const prevAf = af[i - 1];\n let sar = out[i - 1] + prevAf * (prevEp - out[i - 1]);\n const before = i >= 2 ? i - 2 : i - 1;\n if (trend[i - 1] === 1) {\n sar = Math.min(sar, low[i - 1], low[before]);\n if (low[i] < sar) {\n trend[i] = -1;\n sar = Math.max(prevEp, high[i]);\n ep[i] = low[i];\n af[i] = start;\n } else {\n trend[i] = 1;\n ep[i] = Math.max(prevEp, high[i]);\n af[i] =\n high[i] > prevEp ? Math.min(prevAf + increment, maximum) : prevAf;\n }\n } else {\n sar = Math.max(sar, high[i - 1], high[before]);\n if (high[i] > sar) {\n trend[i] = 1;\n sar = Math.min(prevEp, low[i]);\n ep[i] = high[i];\n af[i] = start;\n } else {\n trend[i] = -1;\n ep[i] = Math.min(prevEp, low[i]);\n af[i] =\n low[i] < prevEp ? Math.min(prevAf + increment, maximum) : prevAf;\n }\n }\n out[i] = sar;\n }\n};\n\n/** Working columns of the SuperTrend */\nexport interface SupertrendWork {\n tr: Float64Array;\n atr: Float64Array;\n upper: Float64Array;\n lower: Float64Array;\n}\n\n/**\n * SuperTrend: a trailing band `multiplier` ATRs from the median price,\n * below the bars in an uptrend (`direction` 1), above them in a downtrend (−1)\n */\nexport const supertrendInto = (\n high: Values,\n low: Values,\n close: Values,\n n: number,\n period: number,\n multiplier: number,\n out: Float64Array,\n direction: Float64Array,\n work: SupertrendWork,\n from = 0,\n): void => {\n const { tr, atr: range, upper, lower } = work;\n trueRangeInto(high, low, close, n, tr, from);\n rmaInto(tr, n, period, range, from);\n for (let i = from; i < n; i++) {\n const a = range[i];\n if (!finite(a)) {\n out[i] = direction[i] = upper[i] = lower[i] = NaN;\n continue;\n }\n const mid = (high[i] + low[i]) / 2;\n let up = mid + multiplier * a;\n let down = mid - multiplier * a;\n const pu = i > 0 ? upper[i - 1] : NaN;\n const pl = i > 0 ? lower[i - 1] : NaN;\n const pc = i > 0 ? close[i - 1] : NaN;\n // the bands only tighten while the trend holds\n if (finite(pl) && !(down > pl || pc < pl)) down = pl;\n if (finite(pu) && !(up < pu || pc > pu)) up = pu;\n upper[i] = up;\n lower[i] = down;\n const pd = i > 0 ? direction[i - 1] : NaN;\n const d = !finite(pd)\n ? -1\n : pd === -1\n ? close[i] > up\n ? 1\n : -1\n : close[i] < down\n ? -1\n : 1;\n direction[i] = d;\n out[i] = d === 1 ? down : up;\n }\n};\n\n/** Midpoint of the highest high and the lowest low of a window */\nconst midpointInto = (\n high: Values,\n low: Values,\n n: number,\n period: number,\n out: Float64Array,\n highest: Float64Array,\n lowest: Float64Array,\n from: number,\n) => {\n const p = periodOf(period);\n extremeInto(high, n, p, highest, from, true);\n extremeInto(low, n, p, lowest, from, false);\n for (let i = from; i < n; i++) out[i] = (highest[i] + lowest[i]) / 2;\n};\n\n/** Working columns of Ichimoku */\nexport interface IchimokuWork {\n highest: Float64Array;\n lowest: Float64Array;\n}\n\n/**\n * Ichimoku lines at each bar (unshifted): conversion (Tenkan), base\n * (Kijun), leading span A and B (drawn `displacement − 1` bars ahead)\n */\nexport const ichimokuInto = (\n high: Values,\n low: Values,\n n: number,\n conversionPeriod: number,\n basePeriod: number,\n spanBPeriod: number,\n conversion: Float64Array,\n base: Float64Array,\n spanA: Float64Array,\n spanB: Float64Array,\n work: IchimokuWork,\n from = 0,\n): void => {\n const { highest, lowest } = work;\n midpointInto(\n high,\n low,\n n,\n conversionPeriod,\n conversion,\n highest,\n lowest,\n from,\n );\n midpointInto(high, low, n, basePeriod, base, highest, lowest, from);\n midpointInto(high, low, n, spanBPeriod, spanB, highest, lowest, from);\n for (let i = from; i < n; i++) spanA[i] = (conversion[i] + base[i]) / 2;\n};\n\n/** Donchian channel: highest high, lowest low and their midpoint */\nexport const donchianInto = (\n high: Values,\n low: Values,\n n: number,\n period: number,\n upper: Float64Array,\n lower: Float64Array,\n middle: Float64Array,\n from = 0,\n): void => {\n const p = periodOf(period);\n extremeInto(high, n, p, upper, from, true);\n extremeInto(low, n, p, lower, from, false);\n for (let i = from; i < n; i++) middle[i] = (upper[i] + lower[i]) / 2;\n};\n\n/** Keltner channel: an EMA of the close ± `multiplier` ATRs */\nexport const keltnerInto = (\n high: Values,\n low: Values,\n close: Values,\n n: number,\n period: number,\n multiplier: number,\n atrPeriod: number,\n middle: Float64Array,\n upper: Float64Array,\n lower: Float64Array,\n work: { tr: Float64Array; atr: Float64Array },\n from = 0,\n): void => {\n emaInto(close, n, period, middle, from);\n trueRangeInto(high, low, close, n, work.tr, from);\n rmaInto(work.tr, n, atrPeriod, work.atr, from);\n for (let i = from; i < n; i++) {\n upper[i] = middle[i] + multiplier * work.atr[i];\n lower[i] = middle[i] - multiplier * work.atr[i];\n }\n};\n\n// ------------------------------------------------------- public functions\n\n/**\n * Simple moving average: the mean of the last `period` values (NaN until\n * `period` values are available)\n */\nexport const sma = (values: Values, period: number): Float64Array => {\n const out = nanArray(values.length);\n smaInto(values, values.length, period, out);\n return out;\n};\n\n/** Exponential moving average, seeded with the simple average of the first `period` values */\nexport const ema = (values: Values, period: number): Float64Array => {\n const out = nanArray(values.length);\n emaInto(values, values.length, period, out);\n return out;\n};\n\n/** Linearly weighted moving average: the newest value weighs `period`, the oldest 1 */\nexport const wma = (values: Values, period: number): Float64Array => {\n const out = nanArray(values.length);\n wmaInto(values, values.length, period, out);\n return out;\n};\n\n/** Bollinger bands: simple average ± `multiplier` population standard deviations */\nexport const bollinger = (\n values: Values,\n period = 20,\n multiplier = 2,\n): { middle: Float64Array; upper: Float64Array; lower: Float64Array } => {\n const n = values.length;\n const middle = nanArray(n);\n const upper = nanArray(n);\n const lower = nanArray(n);\n const dev = nanArray(n);\n smaInto(values, n, period, middle);\n stdevInto(values, n, period, dev);\n for (let i = 0; i < n; i++) {\n upper[i] = middle[i] + multiplier * dev[i];\n lower[i] = middle[i] - multiplier * dev[i];\n }\n return { middle, upper, lower };\n};\n\n/** MACD line (fast EMA − slow EMA), its signal EMA and their difference */\nexport const macd = (\n values: Values,\n fast = 12,\n slow = 26,\n signal = 9,\n): { macd: Float64Array; signal: Float64Array; histogram: Float64Array } => {\n const n = values.length;\n const f = nanArray(n);\n const s = nanArray(n);\n emaInto(values, n, fast, f);\n emaInto(values, n, slow, s);\n const line = nanArray(n);\n for (let i = 0; i < n; i++) line[i] = f[i] - s[i];\n const sig = nanArray(n);\n emaInto(line, n, signal, sig);\n const histogram = nanArray(n);\n for (let i = 0; i < n; i++) histogram[i] = line[i] - sig[i];\n return { macd: line, signal: sig, histogram };\n};\n\n/** Relative strength index (0-100) with Wilder smoothing */\nexport const rsi = (values: Values, period = 14): Float64Array => {\n const n = values.length;\n const out = nanArray(n);\n rsiInto(values, n, period, out, nanArray(n), nanArray(n));\n return out;\n};\n\n/** KDJ stochastic: K and D smoothed (seeded at 50), J = 3K − 2D */\nexport const kdj = (\n high: Values,\n low: Values,\n close: Values,\n period = 9,\n kPeriod = 3,\n dPeriod = 3,\n): { k: Float64Array; d: Float64Array; j: Float64Array } => {\n const n = close.length;\n const k = nanArray(n);\n const d = nanArray(n);\n const j = nanArray(n);\n kdjInto(high, low, close, n, period, kPeriod, dPeriod, k, d, j);\n return { k, d, j };\n};\n\n/** Average true range with Wilder smoothing */\nexport const atr = (\n high: Values,\n low: Values,\n close: Values,\n period = 14,\n): Float64Array => {\n const n = close.length;\n const tr = nanArray(n);\n trueRangeInto(high, low, close, n, tr);\n const out = nanArray(n);\n rmaInto(tr, n, period, out);\n return out;\n};\n\n/**\n * Volume-weighted average of the typical price (high + low + close) / 3,\n * restarting each `reset` period (UTC, or shifted by `utcOffset` minutes,\n * or in the IANA `timeZone`); without `time`, a single cumulative average\n */\nexport const vwap = (\n high: Values,\n low: Values,\n close: Values,\n volume: Values,\n options: {\n time?: Values;\n reset?: \"day\" | \"week\" | \"month\" | \"none\";\n utcOffset?: number;\n timeZone?: string;\n } = {},\n): Float64Array => {\n const n = close.length;\n const out = nanArray(n);\n const zone = options.timeZone;\n vwapInto(\n high,\n low,\n close,\n volume,\n options.time ?? null,\n n,\n options.reset ?? \"day\",\n options.utcOffset ?? (zone ? (time: number) => zoneOffset(time, zone) : 0),\n out,\n nanArray(n),\n nanArray(n),\n );\n return out;\n};\n\n/** Heikin-Ashi bars: averaged bars that smooth out the noise of trends */\nexport const heikinAshi = (bars: {\n open: Values;\n high: Values;\n low: Values;\n close: Values;\n}): {\n open: Float64Array;\n high: Float64Array;\n low: Float64Array;\n close: Float64Array;\n} => {\n const n = bars.close.length;\n const out = {\n open: nanArray(n),\n high: nanArray(n),\n low: nanArray(n),\n close: nanArray(n),\n };\n heikinAshiInto(bars.open, bars.high, bars.low, bars.close, n, out);\n return out;\n};\n\n/** On-balance volume: the running sum of the volume, signed by the close change */\nexport const obv = (close: Values, volume: Values): Float64Array => {\n const out = nanArray(close.length);\n obvInto(close, volume, close.length, out);\n return out;\n};\n\n/** Commodity channel index (typically between −100 and +100 in a range) */\nexport const cci = (\n high: Values,\n low: Values,\n close: Values,\n period = 20,\n): Float64Array => {\n const n = close.length;\n const out = nanArray(n);\n cciInto(high, low, close, n, period, out, nanArray(n), nanArray(n));\n return out;\n};\n\n/** Williams %R, from −100 (close at the lowest low) to 0 (at the highest high) */\nexport const williamsR = (\n high: Values,\n low: Values,\n close: Values,\n period = 14,\n): Float64Array => {\n const n = close.length;\n const out = nanArray(n);\n williamsRInto(high, low, close, n, period, out, nanArray(n), nanArray(n));\n return out;\n};\n\n/** Money flow index (0-100): a volume-weighted RSI of the typical price */\nexport const mfi = (\n high: Values,\n low: Values,\n close: Values,\n volume: Values,\n period = 14,\n): Float64Array => {\n const n = close.length;\n const out = nanArray(n);\n mfiInto(high, low, close, volume, n, period, out, nanArray(n));\n return out;\n};\n\n/** Stochastic RSI (0-100): the stochastic of the RSI, smoothed into K and D */\nexport const stochRsi = (\n close: Values,\n options: {\n rsiPeriod?: number;\n stochPeriod?: number;\n kPeriod?: number;\n dPeriod?: number;\n } = {},\n): { k: Float64Array; d: Float64Array } => {\n const n = close.length;\n const k = nanArray(n);\n const d = nanArray(n);\n stochRsiInto(\n close,\n n,\n options.rsiPeriod ?? 14,\n options.stochPeriod ?? 14,\n options.kPeriod ?? 3,\n options.dPeriod ?? 3,\n k,\n d,\n {\n rsi: nanArray(n),\n gain: nanArray(n),\n loss: nanArray(n),\n highest: nanArray(n),\n lowest: nanArray(n),\n raw: nanArray(n),\n },\n );\n return { k, d };\n};\n\n/** Directional movement (Wilder): +DI, −DI and the average directional index */\nexport const dmi = (\n high: Values,\n low: Values,\n close: Values,\n period = 14,\n adxPeriod = 14,\n): { plus: Float64Array; minus: Float64Array; adx: Float64Array } => {\n const n = close.length;\n const plus = nanArray(n);\n const minus = nanArray(n);\n const adx = nanArray(n);\n dmiInto(high, low, close, n, period, adxPeriod, plus, minus, adx, {\n tr: nanArray(n),\n plusDm: nanArray(n),\n minusDm: nanArray(n),\n smoothTr: nanArray(n),\n smoothPlus: nanArray(n),\n smoothMinus: nanArray(n),\n dx: nanArray(n),\n });\n return { plus, minus, adx };\n};\n\n/**\n * Parabolic SAR (Wilder): a trailing stop below the bars in an uptrend,\n * above them in a downtrend, accelerating with each new extreme\n */\nexport const psar = (\n high: Values,\n low: Values,\n options: { start?: number; increment?: number; maximum?: number } = {},\n): Float64Array => {\n const n = high.length;\n const out = nanArray(n);\n const start = options.start ?? 0.02;\n psarInto(\n high,\n low,\n n,\n start,\n options.increment ?? start,\n options.maximum ?? 0.2,\n out,\n { ep: nanArray(n), af: nanArray(n), trend: nanArray(n) },\n );\n return out;\n};\n\n/**\n * SuperTrend: the trailing band (`value`) and the trend (`direction`: 1 up,\n * −1 down)\n */\nexport const supertrend = (\n high: Values,\n low: Values,\n close: Values,\n period = 10,\n multiplier = 3,\n): { value: Float64Array; direction: Float64Array } => {\n const n = close.length;\n const value = nanArray(n);\n const direction = nanArray(n);\n supertrendInto(high, low, close, n, period, multiplier, value, direction, {\n tr: nanArray(n),\n atr: nanArray(n),\n upper: nanArray(n),\n lower: nanArray(n),\n });\n return { value, direction };\n};\n\n/**\n * Ichimoku Kinkō Hyō, aligned on the bars that compute them: the leading\n * spans are plotted `displacement − 1` bars ahead and the lagging span is\n * the close plotted `displacement − 1` bars back\n */\nexport const ichimoku = (\n high: Values,\n low: Values,\n options: {\n conversionPeriod?: number;\n basePeriod?: number;\n spanBPeriod?: number;\n } = {},\n): {\n conversion: Float64Array;\n base: Float64Array;\n spanA: Float64Array;\n spanB: Float64Array;\n} => {\n const n = high.length;\n const out = {\n conversion: nanArray(n),\n base: nanArray(n),\n spanA: nanArray(n),\n spanB: nanArray(n),\n };\n ichimokuInto(\n high,\n low,\n n,\n options.conversionPeriod ?? 9,\n options.basePeriod ?? 26,\n options.spanBPeriod ?? 52,\n out.conversion,\n out.base,\n out.spanA,\n out.spanB,\n { highest: nanArray(n), lowest: nanArray(n) },\n );\n return out;\n};\n\n/** Keltner channel: EMA of the close ± `multiplier` average true ranges */\nexport const keltner = (\n high: Values,\n low: Values,\n close: Values,\n options: { period?: number; multiplier?: number; atrPeriod?: number } = {},\n): { middle: Float64Array; upper: Float64Array; lower: Float64Array } => {\n const n = close.length;\n const out = { middle: nanArray(n), upper: nanArray(n), lower: nanArray(n) };\n keltnerInto(\n high,\n low,\n close,\n n,\n options.period ?? 20,\n options.multiplier ?? 2,\n options.atrPeriod ?? 10,\n out.middle,\n out.upper,\n out.lower,\n { tr: nanArray(n), atr: nanArray(n) },\n );\n return out;\n};\n\n/** Donchian channel: highest high, lowest low and their midpoint over `period` bars */\nexport const donchian = (\n high: Values,\n low: Values,\n period = 20,\n): { upper: Float64Array; lower: Float64Array; middle: Float64Array } => {\n const n = high.length;\n const out = { upper: nanArray(n), lower: nanArray(n), middle: nanArray(n) };\n donchianInto(high, low, n, period, out.upper, out.lower, out.middle);\n return out;\n};\n\n/**\n * Volume profile: the volume of bars `from..to` (inclusive) spread over\n * `rows` price rows (each bar evenly over its low-high range), split by\n * rising / falling bars, with the point of control and the value area\n * (the rows around it holding `valueArea` of the volume, 70% by default)\n */\nexport const volumeProfile = (\n bars: {\n open: Values;\n high: Values;\n low: Values;\n close: Values;\n volume: Values;\n },\n options: {\n from?: number;\n to?: number;\n rows?: number;\n valueArea?: number;\n } = {},\n): TradingVolumeProfile => {\n const count = bars.close.length;\n const from = Math.max(0, Math.floor(options.from ?? 0));\n const to = Math.min(count - 1, Math.floor(options.to ?? count - 1));\n const rows = Math.max(1, Math.floor(options.rows ?? 24));\n let lo = Infinity;\n let hi = -Infinity;\n for (let i = from; i <= to; i++) {\n if (bars.low[i] < lo) lo = bars.low[i];\n if (bars.high[i] > hi) hi = bars.high[i];\n }\n const up = new Float64Array(rows);\n const down = new Float64Array(rows);\n const empty = {\n low: lo,\n high: hi,\n step: 0,\n up,\n down,\n total: 0,\n poc: -1,\n valueAreaFrom: -1,\n valueAreaTo: -1,\n };\n if (!finite(lo) || !finite(hi)) return empty;\n if (hi === lo) {\n hi += Math.abs(lo) * 1e-6 || 1e-6;\n lo -= Math.abs(lo) * 1e-6 || 1e-6;\n }\n const step = (hi - lo) / rows;\n let total = 0;\n for (let i = from; i <= to; i++) {\n const v = bars.volume[i];\n const l = bars.low[i];\n const h = bars.high[i];\n if (!(v > 0) || !finite(l) || !finite(h)) continue;\n const target = bars.close[i] >= bars.open[i] ? up : down;\n total += v;\n const r0 = Math.min(rows - 1, Math.max(0, Math.floor((l - lo) / step)));\n const r1 = Math.min(rows - 1, Math.max(0, Math.floor((h - lo) / step)));\n if (r0 === r1 || h <= l) {\n target[r0] += v;\n continue;\n }\n const span = h - l;\n for (let r = r0; r <= r1; r++) {\n const bottom = lo + r * step;\n const overlap = Math.min(h, bottom + step) - Math.max(l, bottom);\n if (overlap > 0) target[r] += (v * overlap) / span;\n }\n }\n if (!(total > 0)) return { ...empty, low: lo, high: hi, step };\n let poc = 0;\n for (let r = 1; r < rows; r++)\n if (up[r] + down[r] > up[poc] + down[poc]) poc = r;\n // grow the value area from the point of control toward the larger side\n const wanted = total * Math.min(1, Math.max(0, options.valueArea ?? 0.7));\n let a = poc;\n let b = poc;\n let inside = up[poc] + down[poc];\n while (inside < wanted && (a > 0 || b < rows - 1)) {\n const below = a > 0 ? up[a - 1] + down[a - 1] : -1;\n const above = b < rows - 1 ? up[b + 1] + down[b + 1] : -1;\n if (above >= below) {\n b++;\n inside += up[b] + down[b];\n } else {\n a--;\n inside += up[a] + down[a];\n }\n }\n return {\n low: lo,\n high: hi,\n step,\n up,\n down,\n total,\n poc,\n valueAreaFrom: a,\n valueAreaTo: b,\n };\n};\n\n// -------------------------------------------------------------- timeframes\n\n/** A parsed timeframe: a count of a unit, with its approximate duration */\nexport interface ParsedTimeframe {\n unit: \"ms\" | \"month\";\n count: number;\n /** Approximate duration in ms (30 days per month) */\n ms: number;\n}\n\nconst UNIT_MS: Record<string, number> = {\n s: 1000,\n m: 60_000,\n h: 3_600_000,\n H: 3_600_000,\n d: DAY,\n D: DAY,\n w: 7 * DAY,\n W: 7 * DAY,\n};\n\n/** `\"15m\"` -> 15 minutes, `\"1M\"` -> 1 month; `null` when invalid */\nexport const parseTimeframe = (\n timeframe: TradingTimeframe,\n): ParsedTimeframe | null => {\n if (typeof timeframe === \"number\") {\n return timeframe > 0\n ? { unit: \"ms\", count: timeframe, ms: timeframe }\n : null;\n }\n const match = /^(\\d+(?:\\.\\d+)?)([smhHdDwWM])$/.exec(timeframe.trim());\n if (!match) return null;\n const count = Number(match[1]);\n if (!(count > 0)) return null;\n const unit = match[2];\n if (unit === \"M\") return { unit: \"month\", count, ms: count * 30 * DAY };\n return {\n unit: \"ms\",\n count: count * UNIT_MS[unit],\n ms: count * UNIT_MS[unit],\n };\n};\n\n/**\n * Key of the bucket of `time` in the shifted (displayed) time: weeks start\n * on Monday, months on the 1st. Comparing keys rather than UTC starts keeps\n * a day whole when its offset changes (daylight saving).\n */\nexport const bucketKey = (\n time: number,\n tf: ParsedTimeframe,\n utcOffset: UtcOffset = 0,\n): number => {\n const t = time + offsetOf(utcOffset, time) * 60_000;\n if (tf.unit === \"month\") {\n const date = new Date(t);\n const months = date.getUTCFullYear() * 12 + date.getUTCMonth();\n return months - (months % tf.count);\n }\n if (tf.count % (7 * DAY) === 0) {\n // Monday-aligned weeks (the epoch is a Thursday)\n return Math.floor((t - 4 * DAY) / tf.count);\n }\n return Math.floor(t / tf.count);\n};\n\n/** Start of the bucket of `time` (weeks start on Monday, months on the 1st) */\nexport const bucketStart = (\n time: number,\n tf: ParsedTimeframe,\n utcOffset: UtcOffset = 0,\n): number => {\n const key = bucketKey(time, tf, utcOffset);\n const shifted =\n tf.unit === \"month\"\n ? Date.UTC(Math.floor(key / 12), key % 12, 1)\n : tf.count % (7 * DAY) === 0\n ? key * tf.count + 4 * DAY\n : key * tf.count;\n // the offset at the start itself (it may differ from the one at `time`)\n const guess = shifted - offsetOf(utcOffset, time) * 60_000;\n return shifted - offsetOf(utcOffset, guess) * 60_000;\n};\n\nconst isColumns = (bars: TradingBarsInput): bars is TradingBarColumns =>\n !Array.isArray(bars);\n\n/**\n * Aggregates bars into a longer timeframe (`\"5m\"` bars into `\"1H\"`, ...):\n * first open, highest high, lowest low, last close, summed volume. Buckets\n * are aligned on UTC, or shifted by `timeZone` (minutes from UTC, or an\n * IANA time zone such as `\"America/New_York\"`); weeks start on Monday.\n * Columns in, columns out (Float64Array).\n */\nexport function resampleBars(\n bars: readonly TradingBar[],\n timeframe: TradingTimeframe,\n timeZone?: number | string,\n): TradingBar[];\nexport function resampleBars(\n bars: TradingBarColumns,\n timeframe: TradingTimeframe,\n timeZone?: number | string,\n): TradingBarColumns;\nexport function resampleBars(\n bars: TradingBarsInput,\n timeframe: TradingTimeframe,\n timeZone: number | string = 0,\n): TradingBar[] | TradingBarColumns {\n const tf = parseTimeframe(timeframe);\n if (!tf) throw new Error(`Invalid timeframe: ${String(timeframe)}`);\n const offset: UtcOffset =\n typeof timeZone === \"string\"\n ? (time: number) => zoneOffset(time, timeZone)\n : timeZone;\n const columns = isColumns(bars);\n const n = columns ? bars.close.length : bars.length;\n const get = (i: number): TradingBar => {\n if (!columns) return (bars as readonly TradingBar[])[i];\n const c = bars as TradingBarColumns;\n return {\n time: c.time[i],\n open: c.open[i],\n high: c.high[i],\n low: c.low[i],\n close: c.close[i],\n volume: c.volume ? c.volume[i] : undefined,\n };\n };\n const out: TradingBar[] = [];\n let current: TradingBar | null = null;\n let currentKey = NaN;\n for (let i = 0; i < n; i++) {\n const bar = get(i);\n const key = bucketKey(bar.time, tf, offset);\n if (!current || key !== currentKey) {\n if (current) out.push(current);\n currentKey = key;\n current = {\n time: bucketStart(bar.time, tf, offset),\n open: bar.open,\n high: bar.high,\n low: bar.low,\n close: bar.close,\n volume: bar.volume ?? 0,\n };\n } else {\n if (bar.high > current.high) current.high = bar.high;\n if (bar.low < current.low) current.low = bar.low;\n current.close = bar.close;\n current.volume = (current.volume ?? 0) + (bar.volume ?? 0);\n }\n }\n if (current) out.push(current);\n if (!columns) return out;\n const m = out.length;\n const result = {\n time: new Float64Array(m),\n open: new Float64Array(m),\n high: new Float64Array(m),\n low: new Float64Array(m),\n close: new Float64Array(m),\n volume: new Float64Array(m),\n };\n out.forEach((bar, i) => {\n result.time[i] = bar.time;\n result.open[i] = bar.open;\n result.high[i] = bar.high;\n result.low[i] = bar.low;\n result.close[i] = bar.close;\n result.volume[i] = bar.volume ?? 0;\n });\n return result;\n}\n\n/** Highest / lowest of a window: exported for the KDJ-like studies of the chart */\nexport const highestInto = (\n src: Values,\n n: number,\n period: number,\n out: Float64Array,\n from = 0,\n): void => extremeInto(src, n, periodOf(period), out, from, true);\n\nexport const lowestInto = (\n src: Values,\n n: number,\n period: number,\n out: Float64Array,\n from = 0,\n): void => extremeInto(src, n, periodOf(period), out, from, false);\n"],"mappings":"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"}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import { UtcOffset } from './format.cjs';
|
|
2
|
+
import { TradingBar, TradingBarColumns, TradingTimeframe, TradingVolumeProfile } from './types.cjs';
|
|
3
|
+
type Values = ArrayLike<number>;
|
|
4
|
+
/** Simple moving average of `src[0..n)` into `out`, from index `from` */
|
|
5
|
+
export declare const smaInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
|
|
6
|
+
/** Exponential moving average (alpha = 2 / (period + 1)) */
|
|
7
|
+
export declare const emaInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
|
|
8
|
+
/** Wilder's moving average (alpha = 1 / period), used by RSI and ATR */
|
|
9
|
+
export declare const rmaInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
|
|
10
|
+
/** Linearly weighted moving average (the newest bar weighs `period`) */
|
|
11
|
+
export declare const wmaInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
|
|
12
|
+
/** Population standard deviation over the window (two passes: exact) */
|
|
13
|
+
export declare const stdevInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
|
|
14
|
+
/** RSI with Wilder smoothing; `gain` / `loss` hold the running averages */
|
|
15
|
+
export declare const rsiInto: (close: Values, n: number, period: number, out: Float64Array, gain: Float64Array, loss: Float64Array, from?: number) => void;
|
|
16
|
+
/** True range of each bar */
|
|
17
|
+
export declare const trueRangeInto: (high: Values, low: Values, close: Values, n: number, out: Float64Array, from?: number) => void;
|
|
18
|
+
/** KDJ: K and D smoothed from the raw stochastic value (seeded at 50), J = 3K − 2D */
|
|
19
|
+
export declare const kdjInto: (high: Values, low: Values, close: Values, n: number, period: number, kPeriod: number, dPeriod: number, k: Float64Array, d: Float64Array, j: Float64Array, from?: number) => void;
|
|
20
|
+
/** Session key of a time: bars with the same key are in the same VWAP period */
|
|
21
|
+
export declare const sessionKey: (time: number, reset: "day" | "week" | "month" | "none", utcOffset?: UtcOffset) => number;
|
|
22
|
+
/** VWAP; `pv` / `vol` hold the cumulative sums of the period */
|
|
23
|
+
export declare const vwapInto: (high: Values, low: Values, close: Values, volume: Values, time: Values | null, n: number, reset: "day" | "week" | "month" | "none", utcOffset: UtcOffset, out: Float64Array, pv: Float64Array, vol: Float64Array, from?: number) => void;
|
|
24
|
+
/** Heikin-Ashi bars from regular bars */
|
|
25
|
+
export declare const heikinAshiInto: (open: Values, high: Values, low: Values, close: Values, n: number, out: {
|
|
26
|
+
open: Float64Array;
|
|
27
|
+
high: Float64Array;
|
|
28
|
+
low: Float64Array;
|
|
29
|
+
close: Float64Array;
|
|
30
|
+
}, from?: number) => void;
|
|
31
|
+
/** On-balance volume: the volume added on up closes, subtracted on down closes */
|
|
32
|
+
export declare const obvInto: (close: Values, volume: Values, n: number, out: Float64Array, from?: number) => void;
|
|
33
|
+
/** Commodity channel index: distance of the typical price from its average, in mean deviations / 0.015 */
|
|
34
|
+
export declare const cciInto: (high: Values, low: Values, close: Values, n: number, period: number, out: Float64Array, typical: Float64Array, mean: Float64Array, from?: number) => void;
|
|
35
|
+
/** Williams %R (−100 to 0): the close within the range of the window, from its high */
|
|
36
|
+
export declare const williamsRInto: (high: Values, low: Values, close: Values, n: number, period: number, out: Float64Array, highest: Float64Array, lowest: Float64Array, from?: number) => void;
|
|
37
|
+
/** Money flow index (0-100): an RSI of the typical price weighted by the volume */
|
|
38
|
+
export declare const mfiInto: (high: Values, low: Values, close: Values, volume: Values, n: number, period: number, out: Float64Array, typical: Float64Array, from?: number) => void;
|
|
39
|
+
/** Working columns of the stochastic RSI */
|
|
40
|
+
export interface StochRsiWork {
|
|
41
|
+
rsi: Float64Array;
|
|
42
|
+
gain: Float64Array;
|
|
43
|
+
loss: Float64Array;
|
|
44
|
+
highest: Float64Array;
|
|
45
|
+
lowest: Float64Array;
|
|
46
|
+
raw: Float64Array;
|
|
47
|
+
}
|
|
48
|
+
/** Stochastic RSI: the stochastic of the RSI, smoothed into K and D */
|
|
49
|
+
export declare const stochRsiInto: (close: Values, n: number, rsiPeriod: number, stochPeriod: number, kPeriod: number, dPeriod: number, k: Float64Array, d: Float64Array, work: StochRsiWork, from?: number) => void;
|
|
50
|
+
/** Working columns of the DMI */
|
|
51
|
+
export interface DmiWork {
|
|
52
|
+
tr: Float64Array;
|
|
53
|
+
plusDm: Float64Array;
|
|
54
|
+
minusDm: Float64Array;
|
|
55
|
+
smoothTr: Float64Array;
|
|
56
|
+
smoothPlus: Float64Array;
|
|
57
|
+
smoothMinus: Float64Array;
|
|
58
|
+
dx: Float64Array;
|
|
59
|
+
}
|
|
60
|
+
/** Directional movement index (Wilder): +DI, −DI and the ADX */
|
|
61
|
+
export declare const dmiInto: (high: Values, low: Values, close: Values, n: number, period: number, adxPeriod: number, plus: Float64Array, minus: Float64Array, adx: Float64Array, work: DmiWork, from?: number) => void;
|
|
62
|
+
/** Working columns of the parabolic SAR */
|
|
63
|
+
export interface PsarWork {
|
|
64
|
+
/** Extreme point of the trend */
|
|
65
|
+
ep: Float64Array;
|
|
66
|
+
/** Acceleration factor */
|
|
67
|
+
af: Float64Array;
|
|
68
|
+
/** 1 rising, −1 falling */
|
|
69
|
+
trend: Float64Array;
|
|
70
|
+
}
|
|
71
|
+
/** Parabolic stop and reverse (Wilder) */
|
|
72
|
+
export declare const psarInto: (high: Values, low: Values, n: number, start: number, increment: number, maximum: number, out: Float64Array, work: PsarWork, from?: number) => void;
|
|
73
|
+
/** Working columns of the SuperTrend */
|
|
74
|
+
export interface SupertrendWork {
|
|
75
|
+
tr: Float64Array;
|
|
76
|
+
atr: Float64Array;
|
|
77
|
+
upper: Float64Array;
|
|
78
|
+
lower: Float64Array;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* SuperTrend: a trailing band `multiplier` ATRs from the median price,
|
|
82
|
+
* below the bars in an uptrend (`direction` 1), above them in a downtrend (−1)
|
|
83
|
+
*/
|
|
84
|
+
export declare const supertrendInto: (high: Values, low: Values, close: Values, n: number, period: number, multiplier: number, out: Float64Array, direction: Float64Array, work: SupertrendWork, from?: number) => void;
|
|
85
|
+
/** Working columns of Ichimoku */
|
|
86
|
+
export interface IchimokuWork {
|
|
87
|
+
highest: Float64Array;
|
|
88
|
+
lowest: Float64Array;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Ichimoku lines at each bar (unshifted): conversion (Tenkan), base
|
|
92
|
+
* (Kijun), leading span A and B (drawn `displacement − 1` bars ahead)
|
|
93
|
+
*/
|
|
94
|
+
export declare const ichimokuInto: (high: Values, low: Values, n: number, conversionPeriod: number, basePeriod: number, spanBPeriod: number, conversion: Float64Array, base: Float64Array, spanA: Float64Array, spanB: Float64Array, work: IchimokuWork, from?: number) => void;
|
|
95
|
+
/** Donchian channel: highest high, lowest low and their midpoint */
|
|
96
|
+
export declare const donchianInto: (high: Values, low: Values, n: number, period: number, upper: Float64Array, lower: Float64Array, middle: Float64Array, from?: number) => void;
|
|
97
|
+
/** Keltner channel: an EMA of the close ± `multiplier` ATRs */
|
|
98
|
+
export declare const keltnerInto: (high: Values, low: Values, close: Values, n: number, period: number, multiplier: number, atrPeriod: number, middle: Float64Array, upper: Float64Array, lower: Float64Array, work: {
|
|
99
|
+
tr: Float64Array;
|
|
100
|
+
atr: Float64Array;
|
|
101
|
+
}, from?: number) => void;
|
|
102
|
+
/**
|
|
103
|
+
* Simple moving average: the mean of the last `period` values (NaN until
|
|
104
|
+
* `period` values are available)
|
|
105
|
+
*/
|
|
106
|
+
export declare const sma: (values: Values, period: number) => Float64Array;
|
|
107
|
+
/** Exponential moving average, seeded with the simple average of the first `period` values */
|
|
108
|
+
export declare const ema: (values: Values, period: number) => Float64Array;
|
|
109
|
+
/** Linearly weighted moving average: the newest value weighs `period`, the oldest 1 */
|
|
110
|
+
export declare const wma: (values: Values, period: number) => Float64Array;
|
|
111
|
+
/** Bollinger bands: simple average ± `multiplier` population standard deviations */
|
|
112
|
+
export declare const bollinger: (values: Values, period?: number, multiplier?: number) => {
|
|
113
|
+
middle: Float64Array;
|
|
114
|
+
upper: Float64Array;
|
|
115
|
+
lower: Float64Array;
|
|
116
|
+
};
|
|
117
|
+
/** MACD line (fast EMA − slow EMA), its signal EMA and their difference */
|
|
118
|
+
export declare const macd: (values: Values, fast?: number, slow?: number, signal?: number) => {
|
|
119
|
+
macd: Float64Array;
|
|
120
|
+
signal: Float64Array;
|
|
121
|
+
histogram: Float64Array;
|
|
122
|
+
};
|
|
123
|
+
/** Relative strength index (0-100) with Wilder smoothing */
|
|
124
|
+
export declare const rsi: (values: Values, period?: number) => Float64Array;
|
|
125
|
+
/** KDJ stochastic: K and D smoothed (seeded at 50), J = 3K − 2D */
|
|
126
|
+
export declare const kdj: (high: Values, low: Values, close: Values, period?: number, kPeriod?: number, dPeriod?: number) => {
|
|
127
|
+
k: Float64Array;
|
|
128
|
+
d: Float64Array;
|
|
129
|
+
j: Float64Array;
|
|
130
|
+
};
|
|
131
|
+
/** Average true range with Wilder smoothing */
|
|
132
|
+
export declare const atr: (high: Values, low: Values, close: Values, period?: number) => Float64Array;
|
|
133
|
+
/**
|
|
134
|
+
* Volume-weighted average of the typical price (high + low + close) / 3,
|
|
135
|
+
* restarting each `reset` period (UTC, or shifted by `utcOffset` minutes,
|
|
136
|
+
* or in the IANA `timeZone`); without `time`, a single cumulative average
|
|
137
|
+
*/
|
|
138
|
+
export declare const vwap: (high: Values, low: Values, close: Values, volume: Values, options?: {
|
|
139
|
+
time?: Values;
|
|
140
|
+
reset?: "day" | "week" | "month" | "none";
|
|
141
|
+
utcOffset?: number;
|
|
142
|
+
timeZone?: string;
|
|
143
|
+
}) => Float64Array;
|
|
144
|
+
/** Heikin-Ashi bars: averaged bars that smooth out the noise of trends */
|
|
145
|
+
export declare const heikinAshi: (bars: {
|
|
146
|
+
open: Values;
|
|
147
|
+
high: Values;
|
|
148
|
+
low: Values;
|
|
149
|
+
close: Values;
|
|
150
|
+
}) => {
|
|
151
|
+
open: Float64Array;
|
|
152
|
+
high: Float64Array;
|
|
153
|
+
low: Float64Array;
|
|
154
|
+
close: Float64Array;
|
|
155
|
+
};
|
|
156
|
+
/** On-balance volume: the running sum of the volume, signed by the close change */
|
|
157
|
+
export declare const obv: (close: Values, volume: Values) => Float64Array;
|
|
158
|
+
/** Commodity channel index (typically between −100 and +100 in a range) */
|
|
159
|
+
export declare const cci: (high: Values, low: Values, close: Values, period?: number) => Float64Array;
|
|
160
|
+
/** Williams %R, from −100 (close at the lowest low) to 0 (at the highest high) */
|
|
161
|
+
export declare const williamsR: (high: Values, low: Values, close: Values, period?: number) => Float64Array;
|
|
162
|
+
/** Money flow index (0-100): a volume-weighted RSI of the typical price */
|
|
163
|
+
export declare const mfi: (high: Values, low: Values, close: Values, volume: Values, period?: number) => Float64Array;
|
|
164
|
+
/** Stochastic RSI (0-100): the stochastic of the RSI, smoothed into K and D */
|
|
165
|
+
export declare const stochRsi: (close: Values, options?: {
|
|
166
|
+
rsiPeriod?: number;
|
|
167
|
+
stochPeriod?: number;
|
|
168
|
+
kPeriod?: number;
|
|
169
|
+
dPeriod?: number;
|
|
170
|
+
}) => {
|
|
171
|
+
k: Float64Array;
|
|
172
|
+
d: Float64Array;
|
|
173
|
+
};
|
|
174
|
+
/** Directional movement (Wilder): +DI, −DI and the average directional index */
|
|
175
|
+
export declare const dmi: (high: Values, low: Values, close: Values, period?: number, adxPeriod?: number) => {
|
|
176
|
+
plus: Float64Array;
|
|
177
|
+
minus: Float64Array;
|
|
178
|
+
adx: Float64Array;
|
|
179
|
+
};
|
|
180
|
+
/**
|
|
181
|
+
* Parabolic SAR (Wilder): a trailing stop below the bars in an uptrend,
|
|
182
|
+
* above them in a downtrend, accelerating with each new extreme
|
|
183
|
+
*/
|
|
184
|
+
export declare const psar: (high: Values, low: Values, options?: {
|
|
185
|
+
start?: number;
|
|
186
|
+
increment?: number;
|
|
187
|
+
maximum?: number;
|
|
188
|
+
}) => Float64Array;
|
|
189
|
+
/**
|
|
190
|
+
* SuperTrend: the trailing band (`value`) and the trend (`direction`: 1 up,
|
|
191
|
+
* −1 down)
|
|
192
|
+
*/
|
|
193
|
+
export declare const supertrend: (high: Values, low: Values, close: Values, period?: number, multiplier?: number) => {
|
|
194
|
+
value: Float64Array;
|
|
195
|
+
direction: Float64Array;
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* Ichimoku Kinkō Hyō, aligned on the bars that compute them: the leading
|
|
199
|
+
* spans are plotted `displacement − 1` bars ahead and the lagging span is
|
|
200
|
+
* the close plotted `displacement − 1` bars back
|
|
201
|
+
*/
|
|
202
|
+
export declare const ichimoku: (high: Values, low: Values, options?: {
|
|
203
|
+
conversionPeriod?: number;
|
|
204
|
+
basePeriod?: number;
|
|
205
|
+
spanBPeriod?: number;
|
|
206
|
+
}) => {
|
|
207
|
+
conversion: Float64Array;
|
|
208
|
+
base: Float64Array;
|
|
209
|
+
spanA: Float64Array;
|
|
210
|
+
spanB: Float64Array;
|
|
211
|
+
};
|
|
212
|
+
/** Keltner channel: EMA of the close ± `multiplier` average true ranges */
|
|
213
|
+
export declare const keltner: (high: Values, low: Values, close: Values, options?: {
|
|
214
|
+
period?: number;
|
|
215
|
+
multiplier?: number;
|
|
216
|
+
atrPeriod?: number;
|
|
217
|
+
}) => {
|
|
218
|
+
middle: Float64Array;
|
|
219
|
+
upper: Float64Array;
|
|
220
|
+
lower: Float64Array;
|
|
221
|
+
};
|
|
222
|
+
/** Donchian channel: highest high, lowest low and their midpoint over `period` bars */
|
|
223
|
+
export declare const donchian: (high: Values, low: Values, period?: number) => {
|
|
224
|
+
upper: Float64Array;
|
|
225
|
+
lower: Float64Array;
|
|
226
|
+
middle: Float64Array;
|
|
227
|
+
};
|
|
228
|
+
/**
|
|
229
|
+
* Volume profile: the volume of bars `from..to` (inclusive) spread over
|
|
230
|
+
* `rows` price rows (each bar evenly over its low-high range), split by
|
|
231
|
+
* rising / falling bars, with the point of control and the value area
|
|
232
|
+
* (the rows around it holding `valueArea` of the volume, 70% by default)
|
|
233
|
+
*/
|
|
234
|
+
export declare const volumeProfile: (bars: {
|
|
235
|
+
open: Values;
|
|
236
|
+
high: Values;
|
|
237
|
+
low: Values;
|
|
238
|
+
close: Values;
|
|
239
|
+
volume: Values;
|
|
240
|
+
}, options?: {
|
|
241
|
+
from?: number;
|
|
242
|
+
to?: number;
|
|
243
|
+
rows?: number;
|
|
244
|
+
valueArea?: number;
|
|
245
|
+
}) => TradingVolumeProfile;
|
|
246
|
+
/** A parsed timeframe: a count of a unit, with its approximate duration */
|
|
247
|
+
export interface ParsedTimeframe {
|
|
248
|
+
unit: "ms" | "month";
|
|
249
|
+
count: number;
|
|
250
|
+
/** Approximate duration in ms (30 days per month) */
|
|
251
|
+
ms: number;
|
|
252
|
+
}
|
|
253
|
+
/** `"15m"` -> 15 minutes, `"1M"` -> 1 month; `null` when invalid */
|
|
254
|
+
export declare const parseTimeframe: (timeframe: TradingTimeframe) => ParsedTimeframe | null;
|
|
255
|
+
/**
|
|
256
|
+
* Key of the bucket of `time` in the shifted (displayed) time: weeks start
|
|
257
|
+
* on Monday, months on the 1st. Comparing keys rather than UTC starts keeps
|
|
258
|
+
* a day whole when its offset changes (daylight saving).
|
|
259
|
+
*/
|
|
260
|
+
export declare const bucketKey: (time: number, tf: ParsedTimeframe, utcOffset?: UtcOffset) => number;
|
|
261
|
+
/** Start of the bucket of `time` (weeks start on Monday, months on the 1st) */
|
|
262
|
+
export declare const bucketStart: (time: number, tf: ParsedTimeframe, utcOffset?: UtcOffset) => number;
|
|
263
|
+
/**
|
|
264
|
+
* Aggregates bars into a longer timeframe (`"5m"` bars into `"1H"`, ...):
|
|
265
|
+
* first open, highest high, lowest low, last close, summed volume. Buckets
|
|
266
|
+
* are aligned on UTC, or shifted by `timeZone` (minutes from UTC, or an
|
|
267
|
+
* IANA time zone such as `"America/New_York"`); weeks start on Monday.
|
|
268
|
+
* Columns in, columns out (Float64Array).
|
|
269
|
+
*/
|
|
270
|
+
export declare function resampleBars(bars: readonly TradingBar[], timeframe: TradingTimeframe, timeZone?: number | string): TradingBar[];
|
|
271
|
+
export declare function resampleBars(bars: TradingBarColumns, timeframe: TradingTimeframe, timeZone?: number | string): TradingBarColumns;
|
|
272
|
+
/** Highest / lowest of a window: exported for the KDJ-like studies of the chart */
|
|
273
|
+
export declare const highestInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
|
|
274
|
+
export declare const lowestInto: (src: Values, n: number, period: number, out: Float64Array, from?: number) => void;
|
|
275
|
+
export {};
|