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,423 @@
|
|
|
1
|
+
//#region src/engine/trading/drawings.ts
|
|
2
|
+
var e = [
|
|
3
|
+
0,
|
|
4
|
+
.236,
|
|
5
|
+
.382,
|
|
6
|
+
.5,
|
|
7
|
+
.618,
|
|
8
|
+
.786,
|
|
9
|
+
1
|
|
10
|
+
], t = [
|
|
11
|
+
"#787b86",
|
|
12
|
+
"#f23645",
|
|
13
|
+
"#ff9800",
|
|
14
|
+
"#4caf50",
|
|
15
|
+
"#089981",
|
|
16
|
+
"#2962ff",
|
|
17
|
+
"#787b86"
|
|
18
|
+
], n = (e) => {
|
|
19
|
+
switch (e) {
|
|
20
|
+
case "horizontalLine":
|
|
21
|
+
case "verticalLine":
|
|
22
|
+
case "text":
|
|
23
|
+
case "longPosition":
|
|
24
|
+
case "shortPosition": return 1;
|
|
25
|
+
case "parallelChannel":
|
|
26
|
+
case "pitchfork": return 3;
|
|
27
|
+
default: return 2;
|
|
28
|
+
}
|
|
29
|
+
}, r = (e) => e === "rectangle" || e === "parallelChannel" || e === "pitchfork" || e === "fibRetracement" || e === "text", i = (e) => e === "longPosition" || e === "shortPosition", a = (e, t) => e.points.map((e) => ({
|
|
30
|
+
x: t.x(t.index(e.time)),
|
|
31
|
+
y: t.y(e.price)
|
|
32
|
+
})), o = (e, t, n) => {
|
|
33
|
+
let r = t.x - e.x, i = r ? (n.x - e.x) / r : 0, a = n.y - (e.y + i * (t.y - e.y));
|
|
34
|
+
return {
|
|
35
|
+
base: [e, t],
|
|
36
|
+
parallel: [{
|
|
37
|
+
x: e.x,
|
|
38
|
+
y: e.y + a
|
|
39
|
+
}, {
|
|
40
|
+
x: t.x,
|
|
41
|
+
y: t.y + a
|
|
42
|
+
}]
|
|
43
|
+
};
|
|
44
|
+
}, s = (e, t, n) => {
|
|
45
|
+
let r = {
|
|
46
|
+
x: (t.x + n.x) / 2,
|
|
47
|
+
y: (t.y + n.y) / 2
|
|
48
|
+
}, i = {
|
|
49
|
+
x: r.x - e.x,
|
|
50
|
+
y: r.y - e.y
|
|
51
|
+
};
|
|
52
|
+
return {
|
|
53
|
+
median: [e, r],
|
|
54
|
+
upper: [t, {
|
|
55
|
+
x: t.x + i.x,
|
|
56
|
+
y: t.y + i.y
|
|
57
|
+
}],
|
|
58
|
+
lower: [n, {
|
|
59
|
+
x: n.x + i.x,
|
|
60
|
+
y: n.y + i.y
|
|
61
|
+
}]
|
|
62
|
+
};
|
|
63
|
+
}, c = (e) => {
|
|
64
|
+
let [t, n, r] = e;
|
|
65
|
+
return !t || !n || !r ? null : {
|
|
66
|
+
x0: Math.min(t.x, n.x),
|
|
67
|
+
x1: Math.max(t.x, n.x),
|
|
68
|
+
entry: t.y,
|
|
69
|
+
target: n.y,
|
|
70
|
+
stop: r.y
|
|
71
|
+
};
|
|
72
|
+
}, l = (e, t, n) => {
|
|
73
|
+
let r = a(e, t);
|
|
74
|
+
if (i(e.type)) {
|
|
75
|
+
let e = c(r), t = r[0];
|
|
76
|
+
if (!e || !t) return r.slice(0, 1);
|
|
77
|
+
let n = r[1] ? r[1].x : t.x;
|
|
78
|
+
return [
|
|
79
|
+
{
|
|
80
|
+
x: t.x,
|
|
81
|
+
y: e.entry
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
x: t.x,
|
|
85
|
+
y: e.target
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
x: t.x,
|
|
89
|
+
y: e.stop
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
x: n,
|
|
93
|
+
y: e.entry
|
|
94
|
+
}
|
|
95
|
+
];
|
|
96
|
+
}
|
|
97
|
+
if (e.type === "parallelChannel") {
|
|
98
|
+
let [e, t, n] = r;
|
|
99
|
+
if (!e || !t || !n) return r;
|
|
100
|
+
let { parallel: i } = o(e, t, n);
|
|
101
|
+
return [
|
|
102
|
+
e,
|
|
103
|
+
t,
|
|
104
|
+
{
|
|
105
|
+
x: (i[0].x + i[1].x) / 2,
|
|
106
|
+
y: (i[0].y + i[1].y) / 2
|
|
107
|
+
}
|
|
108
|
+
];
|
|
109
|
+
}
|
|
110
|
+
return e.type === "text" && n && r[0] ? [r[0]] : r;
|
|
111
|
+
}, u = (e, t, n) => {
|
|
112
|
+
let r = [...e.points];
|
|
113
|
+
if (i(e.type)) {
|
|
114
|
+
let [e, i, a] = r;
|
|
115
|
+
if (!e || !i || !a) return r;
|
|
116
|
+
switch (t) {
|
|
117
|
+
case 0: return [
|
|
118
|
+
n,
|
|
119
|
+
i,
|
|
120
|
+
a
|
|
121
|
+
];
|
|
122
|
+
case 1: return [
|
|
123
|
+
e,
|
|
124
|
+
{
|
|
125
|
+
...i,
|
|
126
|
+
price: n.price
|
|
127
|
+
},
|
|
128
|
+
a
|
|
129
|
+
];
|
|
130
|
+
case 2: return [
|
|
131
|
+
e,
|
|
132
|
+
i,
|
|
133
|
+
{
|
|
134
|
+
...a,
|
|
135
|
+
price: n.price
|
|
136
|
+
}
|
|
137
|
+
];
|
|
138
|
+
default: return [
|
|
139
|
+
e,
|
|
140
|
+
{
|
|
141
|
+
...i,
|
|
142
|
+
time: n.time
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
...a,
|
|
146
|
+
time: n.time
|
|
147
|
+
}
|
|
148
|
+
];
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return t >= 0 && t < r.length && (r[t] = n), r;
|
|
152
|
+
}, d = (e, t, n, r, i) => {
|
|
153
|
+
let a = n.x - t.x, o = n.y - t.y, s = a * a + o * o;
|
|
154
|
+
if (s === 0) return Math.hypot(e.x - t.x, e.y - t.y);
|
|
155
|
+
let c = ((e.x - t.x) * a + (e.y - t.y) * o) / s;
|
|
156
|
+
return r || (c = Math.max(0, c)), i || (c = Math.min(1, c)), Math.hypot(e.x - (t.x + c * a), e.y - (t.y + c * o));
|
|
157
|
+
}, f = (e, t) => {
|
|
158
|
+
let n = !1;
|
|
159
|
+
for (let r = 0, i = t.length - 1; r < t.length; i = r++) {
|
|
160
|
+
let a = t[r], o = t[i];
|
|
161
|
+
a && o && a.y > e.y != o.y > e.y && e.x < (o.x - a.x) * (e.y - a.y) / (o.y - a.y || 1e-9) + a.x && (n = !n);
|
|
162
|
+
}
|
|
163
|
+
return n;
|
|
164
|
+
}, p = (t, n, r, i = 6, u) => {
|
|
165
|
+
let p = l(t, n, u);
|
|
166
|
+
for (let e = 0; e < p.length; e++) {
|
|
167
|
+
let t = p[e];
|
|
168
|
+
if (t && Math.hypot(t.x - r.x, t.y - r.y) <= i + 2) return {
|
|
169
|
+
part: "handle",
|
|
170
|
+
index: e
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
let m = a(t, n), [h, g, _] = m;
|
|
174
|
+
if (!h) return null;
|
|
175
|
+
let v = (e) => e <= i ? { part: "body" } : null, y = (e, t, n, a) => r.x >= Math.min(e, n) - i && r.x <= Math.max(e, n) + i && r.y >= Math.min(t, a) - i && r.y <= Math.max(t, a) + i;
|
|
176
|
+
switch (t.type) {
|
|
177
|
+
case "horizontalLine": return v(Math.abs(r.y - h.y));
|
|
178
|
+
case "verticalLine": return v(Math.abs(r.x - h.x));
|
|
179
|
+
case "trendLine":
|
|
180
|
+
case "arrow": return g ? v(d(r, h, g, !1, !1)) : null;
|
|
181
|
+
case "ray": return g ? v(d(r, h, g, !1, !0)) : null;
|
|
182
|
+
case "extendedLine": return g ? v(d(r, h, g, !0, !0)) : null;
|
|
183
|
+
case "text": {
|
|
184
|
+
let e = u ?? {
|
|
185
|
+
x: h.x,
|
|
186
|
+
y: h.y,
|
|
187
|
+
w: 40,
|
|
188
|
+
h: 22
|
|
189
|
+
};
|
|
190
|
+
return y(e.x, e.y, e.x + e.w, e.y + e.h) ? { part: "body" } : null;
|
|
191
|
+
}
|
|
192
|
+
case "parallelChannel": {
|
|
193
|
+
if (!g || !_) return null;
|
|
194
|
+
let { parallel: e } = o(h, g, _);
|
|
195
|
+
return f(r, [
|
|
196
|
+
h,
|
|
197
|
+
g,
|
|
198
|
+
e[1],
|
|
199
|
+
e[0]
|
|
200
|
+
]) ? { part: "body" } : v(Math.min(d(r, h, g, !1, !1), d(r, e[0], e[1], !1, !1)));
|
|
201
|
+
}
|
|
202
|
+
case "pitchfork": {
|
|
203
|
+
if (!g || !_) return null;
|
|
204
|
+
let e = s(h, g, _);
|
|
205
|
+
return v(Math.min(d(r, e.median[0], e.median[1], !1, !0), d(r, e.upper[0], e.upper[1], !1, !0), d(r, e.lower[0], e.lower[1], !1, !0), d(r, g, _, !1, !1)));
|
|
206
|
+
}
|
|
207
|
+
case "longPosition":
|
|
208
|
+
case "shortPosition": {
|
|
209
|
+
let e = c(m);
|
|
210
|
+
if (!e) return null;
|
|
211
|
+
let t = Math.min(e.target, e.stop), n = Math.max(e.target, e.stop);
|
|
212
|
+
return y(e.x0, t, e.x1, n) ? { part: "body" } : null;
|
|
213
|
+
}
|
|
214
|
+
case "fibRetracement": {
|
|
215
|
+
if (!g) return null;
|
|
216
|
+
let t = Math.min(h.x, g.x), n = Math.max(h.x, g.x);
|
|
217
|
+
if (r.x < t - i || r.x > n + i) return null;
|
|
218
|
+
for (let t of e) {
|
|
219
|
+
let e = g.y + (h.y - g.y) * t;
|
|
220
|
+
if (Math.abs(r.y - e) <= i) return { part: "body" };
|
|
221
|
+
}
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
224
|
+
default: return g && y(h.x, h.y, g.x, g.y) ? { part: "body" } : null;
|
|
225
|
+
}
|
|
226
|
+
}, m = (e, t, n) => {
|
|
227
|
+
t === "dashed" ? e.setLineDash([6, 4]) : t === "dotted" ? e.setLineDash([Math.max(1, n), 3]) : e.setLineDash([]);
|
|
228
|
+
}, h = (e, t, n) => {
|
|
229
|
+
let r = t.x - e.x, i = t.y - e.y, a = Math.hypot(r, i);
|
|
230
|
+
if (!a) return t;
|
|
231
|
+
let o = (Math.abs(n.right - n.left) + Math.abs(n.bottom - n.top)) * 4;
|
|
232
|
+
return {
|
|
233
|
+
x: e.x + r / a * o,
|
|
234
|
+
y: e.y + i / a * o
|
|
235
|
+
};
|
|
236
|
+
}, g = (e, t, n, r, i, a) => {
|
|
237
|
+
e.beginPath(), typeof e.roundRect == "function" ? e.roundRect(t, n, r, i, a) : e.rect(t, n, r, i);
|
|
238
|
+
}, _ = (e, t, n, r, i) => {
|
|
239
|
+
let c = a(t, n), [u, d, f] = c;
|
|
240
|
+
if (!u) return null;
|
|
241
|
+
let p = (t.lineWidth ?? 1.5) + (i.hovered ? .5 : 0), g = t.fill !== !1, _ = null;
|
|
242
|
+
e.save(), e.lineWidth = p, e.strokeStyle = r.color, e.fillStyle = r.color, e.font = r.font, e.lineCap = "round", m(e, t.lineStyle, p);
|
|
243
|
+
let C = (t, n) => {
|
|
244
|
+
e.beginPath(), e.moveTo(t.x, t.y), e.lineTo(n.x, n.y), e.stroke();
|
|
245
|
+
}, w = (t, n = .1) => {
|
|
246
|
+
g && (e.save(), e.globalAlpha = n, e.beginPath(), t.forEach((t, n) => n ? e.lineTo(t.x, t.y) : e.moveTo(t.x, t.y)), e.closePath(), e.fill(), e.restore());
|
|
247
|
+
};
|
|
248
|
+
switch (t.type) {
|
|
249
|
+
case "horizontalLine":
|
|
250
|
+
C({
|
|
251
|
+
x: n.left,
|
|
252
|
+
y: u.y
|
|
253
|
+
}, {
|
|
254
|
+
x: n.right,
|
|
255
|
+
y: u.y
|
|
256
|
+
});
|
|
257
|
+
break;
|
|
258
|
+
case "verticalLine":
|
|
259
|
+
C({
|
|
260
|
+
x: u.x,
|
|
261
|
+
y: n.top
|
|
262
|
+
}, {
|
|
263
|
+
x: u.x,
|
|
264
|
+
y: n.bottom
|
|
265
|
+
});
|
|
266
|
+
break;
|
|
267
|
+
case "trendLine":
|
|
268
|
+
d && C(u, d);
|
|
269
|
+
break;
|
|
270
|
+
case "arrow":
|
|
271
|
+
d && v(e, u, d, p);
|
|
272
|
+
break;
|
|
273
|
+
case "ray":
|
|
274
|
+
d && C(u, h(u, d, n));
|
|
275
|
+
break;
|
|
276
|
+
case "extendedLine":
|
|
277
|
+
d && C(h(d, u, n), h(u, d, n));
|
|
278
|
+
break;
|
|
279
|
+
case "rectangle":
|
|
280
|
+
if (d) {
|
|
281
|
+
let t = Math.min(u.x, d.x), n = Math.min(u.y, d.y);
|
|
282
|
+
w([
|
|
283
|
+
{
|
|
284
|
+
x: t,
|
|
285
|
+
y: n
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
x: t + Math.abs(d.x - u.x),
|
|
289
|
+
y: n
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
x: t + Math.abs(d.x - u.x),
|
|
293
|
+
y: n + Math.abs(d.y - u.y)
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
x: t,
|
|
297
|
+
y: n + Math.abs(d.y - u.y)
|
|
298
|
+
}
|
|
299
|
+
]), e.strokeRect(t, n, Math.abs(d.x - u.x), Math.abs(d.y - u.y));
|
|
300
|
+
}
|
|
301
|
+
break;
|
|
302
|
+
case "parallelChannel":
|
|
303
|
+
if (d && f) {
|
|
304
|
+
let { parallel: t } = o(u, d, f);
|
|
305
|
+
w([
|
|
306
|
+
u,
|
|
307
|
+
d,
|
|
308
|
+
t[1],
|
|
309
|
+
t[0]
|
|
310
|
+
]), C(u, d), C(t[0], t[1]), e.save(), e.globalAlpha = .55, e.setLineDash([4, 4]), C({
|
|
311
|
+
x: u.x,
|
|
312
|
+
y: (u.y + t[0].y) / 2
|
|
313
|
+
}, {
|
|
314
|
+
x: d.x,
|
|
315
|
+
y: (d.y + t[1].y) / 2
|
|
316
|
+
}), e.restore();
|
|
317
|
+
} else d && C(u, d);
|
|
318
|
+
break;
|
|
319
|
+
case "pitchfork":
|
|
320
|
+
if (d && f) {
|
|
321
|
+
let t = s(u, d, f), r = (e) => h(e[0], e[1], n);
|
|
322
|
+
w([
|
|
323
|
+
d,
|
|
324
|
+
r(t.upper),
|
|
325
|
+
r(t.lower),
|
|
326
|
+
f
|
|
327
|
+
], .07), C(t.median[0], r(t.median)), C(d, r(t.upper)), C(f, r(t.lower)), e.save(), e.globalAlpha = .55, e.setLineDash([4, 4]), C(d, f), e.restore();
|
|
328
|
+
} else d && C(u, d);
|
|
329
|
+
break;
|
|
330
|
+
case "fibRetracement":
|
|
331
|
+
d && x(e, t, u, d, r, g, n);
|
|
332
|
+
break;
|
|
333
|
+
case "measure":
|
|
334
|
+
d && S(e, t, u, d, n, r);
|
|
335
|
+
break;
|
|
336
|
+
case "text":
|
|
337
|
+
_ = y(e, t, u, r, g);
|
|
338
|
+
break;
|
|
339
|
+
case "longPosition":
|
|
340
|
+
case "shortPosition": b(e, t, c, n, r);
|
|
341
|
+
}
|
|
342
|
+
if (i.selected || i.hovered) {
|
|
343
|
+
e.setLineDash([]), e.lineWidth = 1.5;
|
|
344
|
+
for (let a of l(t, n, _ ?? void 0)) e.beginPath(), e.arc(a.x, a.y, i.selected ? 4.5 : 3.5, 0, Math.PI * 2), e.fillStyle = r.background, e.fill(), e.strokeStyle = r.color, e.stroke();
|
|
345
|
+
}
|
|
346
|
+
return e.restore(), _;
|
|
347
|
+
}, v = (e, t, n, r) => {
|
|
348
|
+
let i = Math.atan2(n.y - t.y, n.x - t.x), a = 8 + r * 2, o = Math.hypot(n.x - t.x, n.y - t.y), s = o > a ? (o - a * .6) / o : 0;
|
|
349
|
+
e.beginPath(), e.moveTo(t.x, t.y), e.lineTo(t.x + (n.x - t.x) * s, t.y + (n.y - t.y) * s), e.stroke(), e.setLineDash([]), e.beginPath(), e.moveTo(n.x, n.y), e.lineTo(n.x - a * Math.cos(i - .42), n.y - a * Math.sin(i - .42)), e.lineTo(n.x - a * Math.cos(i + .42), n.y - a * Math.sin(i + .42)), e.closePath(), e.fill();
|
|
350
|
+
}, y = (e, t, n, r, i) => {
|
|
351
|
+
let a = t.fontSize ?? 13, o = (t.text || r.defaultText).split("\n");
|
|
352
|
+
e.font = `500 ${a}px ${r.fontFamily}`;
|
|
353
|
+
let s = Math.round(a * 1.35), c = Math.max(...o.map((t) => e.measureText(t).width)) + 18, l = o.length * s + 10, u = {
|
|
354
|
+
x: n.x,
|
|
355
|
+
y: n.y,
|
|
356
|
+
w: c,
|
|
357
|
+
h: l
|
|
358
|
+
};
|
|
359
|
+
return e.setLineDash([]), i && (g(e, n.x, n.y, c, l, 5), e.globalAlpha = .94, e.fillStyle = r.background, e.fill(), e.globalAlpha = .12, e.fillStyle = r.color, e.fill(), e.globalAlpha = 1, e.lineWidth = 1, e.strokeStyle = r.color, e.stroke(), e.fillStyle = r.color, e.fillRect(n.x + 1, n.y + 4, 3, l - 8)), e.fillStyle = i ? r.text : r.color, e.textAlign = "left", e.textBaseline = "middle", o.forEach((t, r) => e.fillText(t, n.x + 10, n.y + 5 + s * (r + .5))), u;
|
|
360
|
+
}, b = (e, t, n, r, i) => {
|
|
361
|
+
let a = c(n), [o, s, l] = t.points;
|
|
362
|
+
if (!a || !o || !s || !l) return;
|
|
363
|
+
let u = t.type === "longPosition", d = Math.max(1, a.x1 - a.x0);
|
|
364
|
+
e.setLineDash([]);
|
|
365
|
+
for (let [t, n] of [[a.target, i.up], [a.stop, i.down]]) e.globalAlpha = .16, e.fillStyle = n, e.fillRect(a.x0, Math.min(t, a.entry), d, Math.abs(t - a.entry)), e.globalAlpha = .7, e.strokeStyle = n, e.lineWidth = 1, e.beginPath(), e.moveTo(a.x0, Math.round(t) + .5), e.lineTo(a.x1, Math.round(t) + .5), e.stroke();
|
|
366
|
+
e.globalAlpha = 1, e.strokeStyle = i.text, e.lineWidth = 1, e.beginPath(), e.moveTo(a.x0, Math.round(a.entry) + .5), e.lineTo(a.x1, Math.round(a.entry) + .5), e.stroke();
|
|
367
|
+
let f = u ? 1 : -1, p = (e) => i.formatPercent((e - o.price) / o.price * 100), m = Math.abs(s.price - o.price), h = Math.abs(o.price - l.price), _ = h > 0 ? m / h : NaN, v = i.position, y = (t, n, o, s) => {
|
|
368
|
+
e.font = i.font;
|
|
369
|
+
let c = e.measureText(t).width + 14, l = Math.max(r.left + 2, Math.min(a.x0 + d / 2 - c / 2, r.right - c - 2)), u = s ? n - 24 : n + 4;
|
|
370
|
+
g(e, l, u, c, 20, 4), e.fillStyle = o, e.fill(), e.fillStyle = i.textOn(o), e.textAlign = "center", e.textBaseline = "middle", e.fillText(t, l + c / 2, u + 10.5);
|
|
371
|
+
}, b = a.target < a.entry;
|
|
372
|
+
y(i.fill(v.target, {
|
|
373
|
+
price: i.formatPrice(s.price),
|
|
374
|
+
change: p(s.price)
|
|
375
|
+
}), a.target, i.up, b), y(i.fill(v.stop, {
|
|
376
|
+
price: i.formatPrice(l.price),
|
|
377
|
+
change: p(l.price)
|
|
378
|
+
}), a.stop, i.down, !b);
|
|
379
|
+
let x = [u ? v.long : v.short, i.fill(v.riskReward, { ratio: Number.isFinite(_) ? _.toFixed(2) : "–" })];
|
|
380
|
+
if (Number.isFinite(i.last) && o.price) {
|
|
381
|
+
let e = (i.last - o.price) * f, n = i.formatPercent(e / o.price * 100), r = t.quantity === void 0 ? n : `${e * t.quantity >= 0 ? "+" : "−"}${i.formatPrice(Math.abs(e * t.quantity))} (${n})`;
|
|
382
|
+
x.push(i.fill(v.profit, { value: r }));
|
|
383
|
+
}
|
|
384
|
+
e.font = i.font;
|
|
385
|
+
let S = x.join(" · "), C = e.measureText(S).width + 16, w = Math.max(r.left + 2, Math.min(a.x0 + d / 2 - C / 2, r.right - C - 2)), T = a.entry - 10;
|
|
386
|
+
g(e, w, T, C, 20, 4), e.fillStyle = i.text, e.fill(), e.fillStyle = i.background, e.textAlign = "center", e.textBaseline = "middle", e.fillText(S, w + C / 2, T + 10.5);
|
|
387
|
+
}, x = (n, r, i, a, o, s, c) => {
|
|
388
|
+
let l = Math.min(i.x, a.x), u = Math.max(i.x, a.x), d = Math.max(l, c.left) + 4, f = r.points[0]?.price ?? 0, p = r.points[1]?.price ?? 0, m = e.map((e) => a.y + (i.y - a.y) * e);
|
|
389
|
+
if (s) for (let i = 0; i + 1 < e.length; i++) n.globalAlpha = .08, n.fillStyle = r.color ? o.color : t[i + 1] ?? o.color, n.fillRect(l, Math.min(m[i] ?? 0, m[i + 1] ?? 0), u - l, Math.abs((m[i + 1] ?? 0) - (m[i] ?? 0)));
|
|
390
|
+
n.globalAlpha = 1, n.textBaseline = "bottom", n.textAlign = "left", e.forEach((e, i) => {
|
|
391
|
+
let a = Math.round(m[i] ?? 0) + .5, s = r.color ? o.color : t[i] ?? o.color;
|
|
392
|
+
n.strokeStyle = s, n.fillStyle = s, n.beginPath(), n.moveTo(l, a), n.lineTo(u, a), n.stroke();
|
|
393
|
+
let c = p + (f - p) * e;
|
|
394
|
+
n.fillText(`${e} (${o.formatPrice(c)})`, d, a - 2);
|
|
395
|
+
}), n.setLineDash([4, 4]), n.strokeStyle = o.color, n.globalAlpha = .6, n.beginPath(), n.moveTo(i.x, i.y), n.lineTo(a.x, a.y), n.stroke(), n.globalAlpha = 1;
|
|
396
|
+
}, S = (e, t, n, r, i, a) => {
|
|
397
|
+
let [o, s] = t.points, c = s.price >= o.price, l = t.color ? a.color : c ? a.up : a.down, u = Math.min(n.x, r.x), d = Math.max(n.x, r.x), f = Math.min(n.y, r.y), p = Math.max(n.y, r.y);
|
|
398
|
+
e.setLineDash([]), e.fillStyle = l, e.globalAlpha = .14, e.fillRect(u, f, d - u, p - f), e.globalAlpha = 1, e.strokeStyle = l, e.lineWidth = 1;
|
|
399
|
+
let m = Math.round((u + d) / 2) + .5, h = Math.round((f + p) / 2) + .5, _ = (t, n) => {
|
|
400
|
+
e.beginPath(), e.moveTo(t.x, t.y), e.lineTo(n.x, n.y), e.stroke();
|
|
401
|
+
let r = Math.atan2(n.y - t.y, n.x - t.x);
|
|
402
|
+
e.beginPath(), e.moveTo(n.x, n.y), e.lineTo(n.x - 6 * Math.cos(r - .5), n.y - 6 * Math.sin(r - .5)), e.lineTo(n.x - 6 * Math.cos(r + .5), n.y - 6 * Math.sin(r + .5)), e.closePath(), e.fill();
|
|
403
|
+
};
|
|
404
|
+
p - f > 10 && _({
|
|
405
|
+
x: m,
|
|
406
|
+
y: c ? p : f
|
|
407
|
+
}, {
|
|
408
|
+
x: m,
|
|
409
|
+
y: c ? f : p
|
|
410
|
+
}), d - u > 10 && _({
|
|
411
|
+
x: n.x < r.x ? u : d,
|
|
412
|
+
y: h
|
|
413
|
+
}, {
|
|
414
|
+
x: n.x < r.x ? d : u,
|
|
415
|
+
y: h
|
|
416
|
+
});
|
|
417
|
+
let v = s.price - o.price, y = o.price ? v / o.price * 100 : NaN, b = Math.round(i.index(s.time) - i.index(o.time)), x = [`${v >= 0 ? "+" : "−"}${a.formatPrice(Math.abs(v))} (${a.formatPercent(y)})`, a.formatSpan(b, s.time - o.time)], S = x.map((t) => e.measureText(t).width), C = Math.max(...S) + 16, w = (u + d) / 2 - C / 2, T = c ? f - 38 - 6 : p + 6;
|
|
418
|
+
T < i.top + 2 && (T = p + 6), T + 38 > i.bottom - 2 && (T = Math.max(i.top + 2, f - 38 - 6)), g(e, w, T, C, 38, 4), e.fillStyle = l, e.fill(), e.fillStyle = a.textOn(l), e.textAlign = "center", e.textBaseline = "middle", e.fillText(x[0] ?? "", w + C / 2, T + 11), e.fillText(x[1] ?? "", w + C / 2, T + 27);
|
|
419
|
+
};
|
|
420
|
+
//#endregion
|
|
421
|
+
export { e as FIB_LEVELS, n as anchorCount, l as handlePoints, p as hitDrawing, r as isFillable, i as isPosition, u as moveHandle, _ as paintDrawing, a as screenPoints, m as setDash };
|
|
422
|
+
|
|
423
|
+
//# sourceMappingURL=drawings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawings.js","names":["FIB_LEVELS","FIB_COLORS","anchorCount","tool","isFillable","type","isPosition","screenPoints","drawing","m","p","channelLines","dx","b","a","t","c","dy","pitchforkLines","mid","dir","positionGeometry","entry","target","stop","pts","handlePoints","g","edge","parallel","box","moveHandle","points","index","point","distanceToSegment","len2","extendStart","extendEnd","inPolygon","inside","i","j","q","hitDrawing","handles","tolerance","near","d","inRect","x0","x1","y0","y1","r","lines","top","bottom","level","y","setDash","style","ctx","width","extend","len","k","roundRect","x","w","h","paintDrawing","third","state","filled","line","shade","alpha","paintArrow","far","paintFib","paintMeasure","paintText","angle","head","size","lineHeight","paintPosition","long","color","change","price","reward","risk","ratio","texts","label","tw","text","above","fill","targetUp","parts","move","percent","value","center","labelX","p1","p2","ys","rising","midX","midY","arrow","from","to","bars","widths","lx","ly"],"sources":["../../../../../charts/src/engine/trading/drawings.ts"],"sourcesContent":["// Drawings: geometry in CSS pixels, handles, hit tests and Canvas2D\n// painting. Anchors are stored as (time, price) so drawings stay on their\n// bars when the chart scrolls, zooms or receives new bars; a drawing lives\n// in a pane (the price pane or an indicator pane) and uses its scale.\n\nimport type {\n TradingDrawing,\n TradingDrawingPoint,\n TradingDrawingTool,\n TradingLineStyle,\n} from \"./types\";\n\n/** Converts between anchors and the pixels of a pane */\nexport interface DrawingMapper {\n /** x (CSS px) of a logical bar index */\n x(index: number): number;\n /** y (CSS px) of a price */\n y(price: number): number;\n /** Logical index of a time (extrapolated outside the bars) */\n index(time: number): number;\n /** Plot rectangle of the pane */\n left: number;\n right: number;\n top: number;\n bottom: number;\n}\n\nexport interface Point {\n x: number;\n y: number;\n}\n\n/** Rectangle in CSS pixels (text boxes, measured when painted) */\nexport interface Box {\n x: number;\n y: number;\n w: number;\n h: number;\n}\n\ntype DrawingType = Exclude<TradingDrawingTool, \"cursor\">;\n\n/** Fibonacci retracement levels */\nexport const FIB_LEVELS = [0, 0.236, 0.382, 0.5, 0.618, 0.786, 1];\nconst FIB_COLORS = [\n \"#787b86\",\n \"#f23645\",\n \"#ff9800\",\n \"#4caf50\",\n \"#089981\",\n \"#2962ff\",\n \"#787b86\",\n];\n\n/** Clicks that create a drawing (positions get a default target and stop) */\nexport const anchorCount = (tool: DrawingType): number => {\n switch (tool) {\n case \"horizontalLine\":\n case \"verticalLine\":\n case \"text\":\n case \"longPosition\":\n case \"shortPosition\":\n return 1;\n case \"parallelChannel\":\n case \"pitchfork\":\n return 3;\n default:\n return 2;\n }\n};\n\n/** Drawings with an area that `fill` can turn off */\nexport const isFillable = (type: DrawingType): boolean =>\n type === \"rectangle\" ||\n type === \"parallelChannel\" ||\n type === \"pitchfork\" ||\n type === \"fibRetracement\" ||\n type === \"text\";\n\nexport const isPosition = (type: DrawingType): boolean =>\n type === \"longPosition\" || type === \"shortPosition\";\n\nexport const screenPoints = (\n drawing: TradingDrawing,\n m: DrawingMapper,\n): Point[] =>\n drawing.points.map((p) => ({ x: m.x(m.index(p.time)), y: m.y(p.price) }));\n\n/** Lines of a parallel channel: the base line and the parallel through the third anchor */\nconst channelLines = (a: Point, b: Point, c: Point) => {\n const dx = b.x - a.x;\n const t = dx ? (c.x - a.x) / dx : 0;\n const dy = c.y - (a.y + t * (b.y - a.y));\n return {\n base: [a, b] as const,\n parallel: [\n { x: a.x, y: a.y + dy },\n { x: b.x, y: b.y + dy },\n ] as const,\n };\n};\n\n/** Median line of a pitchfork: from the pivot through the middle of the other anchors */\nconst pitchforkLines = (a: Point, b: Point, c: Point) => {\n const mid = { x: (b.x + c.x) / 2, y: (b.y + c.y) / 2 };\n const dir = { x: mid.x - a.x, y: mid.y - a.y };\n return {\n median: [a, mid] as const,\n upper: [b, { x: b.x + dir.x, y: b.y + dir.y }] as const,\n lower: [c, { x: c.x + dir.x, y: c.y + dir.y }] as const,\n };\n};\n\n/** Pixels of a position drawing: the box and its three prices */\nconst positionGeometry = (pts: Point[]) => {\n const [entry, target, stop] = pts;\n if (!entry || !target || !stop) return null;\n const x0 = Math.min(entry.x, target.x);\n const x1 = Math.max(entry.x, target.x);\n return { x0, x1, entry: entry.y, target: target.y, stop: stop.y };\n};\n\n/** Handles of a drawing, in the order `moveHandle` understands */\nexport const handlePoints = (\n drawing: TradingDrawing,\n m: DrawingMapper,\n box?: Box,\n): Point[] => {\n const pts = screenPoints(drawing, m);\n if (isPosition(drawing.type)) {\n const g = positionGeometry(pts);\n const entry = pts[0];\n if (!g || !entry) return pts.slice(0, 1);\n const edge = pts[1] ? pts[1].x : entry.x;\n return [\n { x: entry.x, y: g.entry },\n { x: entry.x, y: g.target },\n { x: entry.x, y: g.stop },\n { x: edge, y: g.entry },\n ];\n }\n if (drawing.type === \"parallelChannel\") {\n const [a, b, c] = pts;\n if (!a || !b || !c) return pts;\n const { parallel } = channelLines(a, b, c);\n return [\n a,\n b,\n {\n x: (parallel[0].x + parallel[1].x) / 2,\n y: (parallel[0].y + parallel[1].y) / 2,\n },\n ];\n }\n if (drawing.type === \"text\" && box && pts[0]) return [pts[0]];\n return pts;\n};\n\n/** New anchors after dragging handle `index` to `point` */\nexport const moveHandle = (\n drawing: TradingDrawing,\n index: number,\n point: TradingDrawingPoint,\n): TradingDrawingPoint[] => {\n const points = [...drawing.points];\n if (isPosition(drawing.type)) {\n const [entry, target, stop] = points;\n if (!entry || !target || !stop) return points;\n switch (index) {\n case 0:\n return [point, target, stop];\n case 1:\n return [entry, { ...target, price: point.price }, stop];\n case 2:\n return [entry, target, { ...stop, price: point.price }];\n default:\n return [\n entry,\n { ...target, time: point.time },\n { ...stop, time: point.time },\n ];\n }\n }\n if (index >= 0 && index < points.length) points[index] = point;\n return points;\n};\n\nconst distanceToSegment = (\n p: Point,\n a: Point,\n b: Point,\n extendStart: boolean,\n extendEnd: boolean,\n) => {\n const dx = b.x - a.x;\n const dy = b.y - a.y;\n const len2 = dx * dx + dy * dy;\n if (len2 === 0) return Math.hypot(p.x - a.x, p.y - a.y);\n let t = ((p.x - a.x) * dx + (p.y - a.y) * dy) / len2;\n if (!extendStart) t = Math.max(0, t);\n if (!extendEnd) t = Math.min(1, t);\n return Math.hypot(p.x - (a.x + t * dx), p.y - (a.y + t * dy));\n};\n\n/** Whether `p` is inside the quadrilateral `q` (convex or not, even-odd rule) */\nconst inPolygon = (p: Point, q: readonly Point[]) => {\n let inside = false;\n for (let i = 0, j = q.length - 1; i < q.length; j = i++) {\n const a = q[i];\n const b = q[j];\n if (!a || !b) continue;\n if (\n a.y > p.y !== b.y > p.y &&\n p.x < ((b.x - a.x) * (p.y - a.y)) / (b.y - a.y || 1e-9) + a.x\n )\n inside = !inside;\n }\n return inside;\n};\n\n/** Part of a drawing under the pointer */\nexport type DrawingHit = { part: \"handle\"; index: number } | { part: \"body\" };\n\nexport const hitDrawing = (\n drawing: TradingDrawing,\n m: DrawingMapper,\n p: Point,\n tolerance = 6,\n box?: Box,\n): DrawingHit | null => {\n const handles = handlePoints(drawing, m, box);\n for (let i = 0; i < handles.length; i++) {\n const q = handles[i];\n if (q && Math.hypot(q.x - p.x, q.y - p.y) <= tolerance + 2)\n return { part: \"handle\", index: i };\n }\n const pts = screenPoints(drawing, m);\n const [a, b, c] = pts;\n if (!a) return null;\n const near = (d: number) =>\n d <= tolerance ? { part: \"body\" as const } : null;\n const inRect = (x0: number, y0: number, x1: number, y1: number) =>\n p.x >= Math.min(x0, x1) - tolerance &&\n p.x <= Math.max(x0, x1) + tolerance &&\n p.y >= Math.min(y0, y1) - tolerance &&\n p.y <= Math.max(y0, y1) + tolerance;\n switch (drawing.type) {\n case \"horizontalLine\":\n return near(Math.abs(p.y - a.y));\n case \"verticalLine\":\n return near(Math.abs(p.x - a.x));\n case \"trendLine\":\n case \"arrow\":\n return b ? near(distanceToSegment(p, a, b, false, false)) : null;\n case \"ray\":\n return b ? near(distanceToSegment(p, a, b, false, true)) : null;\n case \"extendedLine\":\n return b ? near(distanceToSegment(p, a, b, true, true)) : null;\n case \"text\": {\n const r = box ?? { x: a.x, y: a.y, w: 40, h: 22 };\n return inRect(r.x, r.y, r.x + r.w, r.y + r.h) ? { part: \"body\" } : null;\n }\n case \"parallelChannel\": {\n if (!b || !c) return null;\n const { parallel } = channelLines(a, b, c);\n if (inPolygon(p, [a, b, parallel[1], parallel[0]]))\n return { part: \"body\" };\n return near(\n Math.min(\n distanceToSegment(p, a, b, false, false),\n distanceToSegment(p, parallel[0], parallel[1], false, false),\n ),\n );\n }\n case \"pitchfork\": {\n if (!b || !c) return null;\n const lines = pitchforkLines(a, b, c);\n return near(\n Math.min(\n distanceToSegment(p, lines.median[0], lines.median[1], false, true),\n distanceToSegment(p, lines.upper[0], lines.upper[1], false, true),\n distanceToSegment(p, lines.lower[0], lines.lower[1], false, true),\n distanceToSegment(p, b, c, false, false),\n ),\n );\n }\n case \"longPosition\":\n case \"shortPosition\": {\n const g = positionGeometry(pts);\n if (!g) return null;\n const top = Math.min(g.target, g.stop);\n const bottom = Math.max(g.target, g.stop);\n return inRect(g.x0, top, g.x1, bottom) ? { part: \"body\" } : null;\n }\n case \"fibRetracement\": {\n if (!b) return null;\n const x0 = Math.min(a.x, b.x);\n const x1 = Math.max(a.x, b.x);\n if (p.x < x0 - tolerance || p.x > x1 + tolerance) return null;\n for (const level of FIB_LEVELS) {\n const y = b.y + (a.y - b.y) * level;\n if (Math.abs(p.y - y) <= tolerance) return { part: \"body\" };\n }\n return null;\n }\n default:\n // rectangle, measure: inside or on the outline\n return b && inRect(a.x, a.y, b.x, b.y) ? { part: \"body\" } : null;\n }\n};\n\nexport const setDash = (\n ctx: CanvasRenderingContext2D,\n style: TradingLineStyle | undefined,\n width: number,\n) => {\n if (style === \"dashed\") ctx.setLineDash([6, 4]);\n else if (style === \"dotted\") ctx.setLineDash([Math.max(1, width), 3]);\n else ctx.setLineDash([]);\n};\n\n/** Texts of the position tools (templates of the chart labels) */\nexport interface PositionTexts {\n target: string;\n stop: string;\n riskReward: string;\n profit: string;\n long: string;\n short: string;\n}\n\n/** Values and helpers the painter needs from the chart */\nexport interface DrawingPaintContext {\n /** Resolved CSS color of a drawing */\n color: string;\n /** Text color on the plot */\n text: string;\n /** Background of the plot (handles) */\n background: string;\n /** Up / down colors (measure, positions) */\n up: string;\n down: string;\n font: string;\n /** Font family of the text drawings */\n fontFamily: string;\n formatPrice(price: number): string;\n formatPercent(value: number): string;\n /** `\"24 bars, 2d 4h\"` */\n formatSpan(bars: number, ms: number): string;\n /** Readable text color on a fill */\n textOn(fill: string): string;\n /** Default text of a text drawing */\n defaultText: string;\n /** Texts of the position tools */\n position: PositionTexts;\n /** Last price (profit of the position tools) */\n last: number;\n /** Fills `{name}` placeholders */\n fill(template: string, values: Record<string, string | number>): string;\n}\n\n/** Point at the end of a line through `a` and `b`, far past the plot */\nconst extend = (a: Point, b: Point, m: DrawingMapper): Point => {\n const dx = b.x - a.x;\n const dy = b.y - a.y;\n const len = Math.hypot(dx, dy);\n if (!len) return b;\n const k = (Math.abs(m.right - m.left) + Math.abs(m.bottom - m.top)) * 4;\n return { x: a.x + (dx / len) * k, y: a.y + (dy / len) * k };\n};\n\nconst roundRect = (\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n) => {\n ctx.beginPath();\n if (typeof ctx.roundRect === \"function\") ctx.roundRect(x, y, w, h, r);\n else ctx.rect(x, y, w, h);\n};\n\n/**\n * Paints a drawing (the context is clipped to its pane). Returns the box of\n * a text drawing, used by the hit tests.\n */\nexport const paintDrawing = (\n ctx: CanvasRenderingContext2D,\n drawing: TradingDrawing,\n m: DrawingMapper,\n c: DrawingPaintContext,\n state: { selected: boolean; hovered: boolean },\n): Box | null => {\n const pts = screenPoints(drawing, m);\n const [a, b, third] = pts;\n if (!a) return null;\n const width = (drawing.lineWidth ?? 1.5) + (state.hovered ? 0.5 : 0);\n const filled = drawing.fill !== false;\n let box: Box | null = null;\n ctx.save();\n ctx.lineWidth = width;\n ctx.strokeStyle = c.color;\n ctx.fillStyle = c.color;\n ctx.font = c.font;\n ctx.lineCap = \"round\";\n setDash(ctx, drawing.lineStyle, width);\n const line = (p: Point, q: Point) => {\n ctx.beginPath();\n ctx.moveTo(p.x, p.y);\n ctx.lineTo(q.x, q.y);\n ctx.stroke();\n };\n const shade = (points: readonly Point[], alpha = 0.1) => {\n if (!filled) return;\n ctx.save();\n ctx.globalAlpha = alpha;\n ctx.beginPath();\n points.forEach((p, i) => (i ? ctx.lineTo(p.x, p.y) : ctx.moveTo(p.x, p.y)));\n ctx.closePath();\n ctx.fill();\n ctx.restore();\n };\n switch (drawing.type) {\n case \"horizontalLine\":\n line({ x: m.left, y: a.y }, { x: m.right, y: a.y });\n break;\n case \"verticalLine\":\n line({ x: a.x, y: m.top }, { x: a.x, y: m.bottom });\n break;\n case \"trendLine\":\n if (b) line(a, b);\n break;\n case \"arrow\":\n if (b) paintArrow(ctx, a, b, width);\n break;\n case \"ray\":\n if (b) line(a, extend(a, b, m));\n break;\n case \"extendedLine\":\n if (b) line(extend(b, a, m), extend(a, b, m));\n break;\n case \"rectangle\":\n if (b) {\n const x = Math.min(a.x, b.x);\n const y = Math.min(a.y, b.y);\n shade([\n { x, y },\n { x: x + Math.abs(b.x - a.x), y },\n { x: x + Math.abs(b.x - a.x), y: y + Math.abs(b.y - a.y) },\n { x, y: y + Math.abs(b.y - a.y) },\n ]);\n ctx.strokeRect(x, y, Math.abs(b.x - a.x), Math.abs(b.y - a.y));\n }\n break;\n case \"parallelChannel\":\n if (b && third) {\n const { parallel } = channelLines(a, b, third);\n shade([a, b, parallel[1], parallel[0]]);\n line(a, b);\n line(parallel[0], parallel[1]);\n // the middle line, dashed\n ctx.save();\n ctx.globalAlpha = 0.55;\n ctx.setLineDash([4, 4]);\n line(\n { x: a.x, y: (a.y + parallel[0].y) / 2 },\n { x: b.x, y: (b.y + parallel[1].y) / 2 },\n );\n ctx.restore();\n } else if (b) {\n line(a, b);\n }\n break;\n case \"pitchfork\":\n if (b && third) {\n const lines = pitchforkLines(a, b, third);\n const far = (p: readonly [Point, Point]) => extend(p[0], p[1], m);\n shade([b, far(lines.upper), far(lines.lower), third], 0.07);\n line(lines.median[0], far(lines.median));\n line(b, far(lines.upper));\n line(third, far(lines.lower));\n ctx.save();\n ctx.globalAlpha = 0.55;\n ctx.setLineDash([4, 4]);\n line(b, third);\n ctx.restore();\n } else if (b) {\n line(a, b);\n }\n break;\n case \"fibRetracement\":\n if (b) paintFib(ctx, drawing, a, b, c, filled, m);\n break;\n case \"measure\":\n if (b) paintMeasure(ctx, drawing, a, b, m, c);\n break;\n case \"text\":\n box = paintText(ctx, drawing, a, c, filled);\n break;\n case \"longPosition\":\n case \"shortPosition\":\n paintPosition(ctx, drawing, pts, m, c);\n break;\n }\n if (state.selected || state.hovered) {\n ctx.setLineDash([]);\n ctx.lineWidth = 1.5;\n for (const p of handlePoints(drawing, m, box ?? undefined)) {\n ctx.beginPath();\n ctx.arc(p.x, p.y, state.selected ? 4.5 : 3.5, 0, Math.PI * 2);\n ctx.fillStyle = c.background;\n ctx.fill();\n ctx.strokeStyle = c.color;\n ctx.stroke();\n }\n }\n ctx.restore();\n return box;\n};\n\nconst paintArrow = (\n ctx: CanvasRenderingContext2D,\n a: Point,\n b: Point,\n width: number,\n) => {\n const angle = Math.atan2(b.y - a.y, b.x - a.x);\n const head = 8 + width * 2;\n const len = Math.hypot(b.x - a.x, b.y - a.y);\n // the shaft stops inside the head so the tip stays sharp\n const k = len > head ? (len - head * 0.6) / len : 0;\n ctx.beginPath();\n ctx.moveTo(a.x, a.y);\n ctx.lineTo(a.x + (b.x - a.x) * k, a.y + (b.y - a.y) * k);\n ctx.stroke();\n ctx.setLineDash([]);\n ctx.beginPath();\n ctx.moveTo(b.x, b.y);\n ctx.lineTo(\n b.x - head * Math.cos(angle - 0.42),\n b.y - head * Math.sin(angle - 0.42),\n );\n ctx.lineTo(\n b.x - head * Math.cos(angle + 0.42),\n b.y - head * Math.sin(angle + 0.42),\n );\n ctx.closePath();\n ctx.fill();\n};\n\nconst paintText = (\n ctx: CanvasRenderingContext2D,\n drawing: TradingDrawing,\n a: Point,\n c: DrawingPaintContext,\n filled: boolean,\n): Box => {\n const size = drawing.fontSize ?? 13;\n const lines = (drawing.text || c.defaultText).split(\"\\n\");\n ctx.font = `500 ${size}px ${c.fontFamily}`;\n const lineHeight = Math.round(size * 1.35);\n const w = Math.max(...lines.map((t) => ctx.measureText(t).width)) + 18;\n const h = lines.length * lineHeight + 10;\n const box = { x: a.x, y: a.y, w, h };\n ctx.setLineDash([]);\n if (filled) {\n // a note card: the plot background, a colored border and accent\n roundRect(ctx, a.x, a.y, w, h, 5);\n ctx.globalAlpha = 0.94;\n ctx.fillStyle = c.background;\n ctx.fill();\n ctx.globalAlpha = 0.12;\n ctx.fillStyle = c.color;\n ctx.fill();\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.strokeStyle = c.color;\n ctx.stroke();\n ctx.fillStyle = c.color;\n ctx.fillRect(a.x + 1, a.y + 4, 3, h - 8);\n }\n ctx.fillStyle = filled ? c.text : c.color;\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"middle\";\n lines.forEach((t, i) =>\n ctx.fillText(t, a.x + 10, a.y + 5 + lineHeight * (i + 0.5)),\n );\n return box;\n};\n\nconst paintPosition = (\n ctx: CanvasRenderingContext2D,\n drawing: TradingDrawing,\n pts: Point[],\n m: DrawingMapper,\n c: DrawingPaintContext,\n) => {\n const g = positionGeometry(pts);\n const [entry, target, stop] = drawing.points;\n if (!g || !entry || !target || !stop) return;\n const long = drawing.type === \"longPosition\";\n const w = Math.max(1, g.x1 - g.x0);\n ctx.setLineDash([]);\n // the reward zone and the risk zone\n for (const [y, color] of [\n [g.target, c.up],\n [g.stop, c.down],\n ] as const) {\n ctx.globalAlpha = 0.16;\n ctx.fillStyle = color;\n ctx.fillRect(g.x0, Math.min(y, g.entry), w, Math.abs(y - g.entry));\n ctx.globalAlpha = 0.7;\n ctx.strokeStyle = color;\n ctx.lineWidth = 1;\n ctx.beginPath();\n ctx.moveTo(g.x0, Math.round(y) + 0.5);\n ctx.lineTo(g.x1, Math.round(y) + 0.5);\n ctx.stroke();\n }\n ctx.globalAlpha = 1;\n ctx.strokeStyle = c.text;\n ctx.lineWidth = 1;\n ctx.beginPath();\n ctx.moveTo(g.x0, Math.round(g.entry) + 0.5);\n ctx.lineTo(g.x1, Math.round(g.entry) + 0.5);\n ctx.stroke();\n const dir = long ? 1 : -1;\n const change = (price: number) =>\n c.formatPercent(((price - entry.price) / entry.price) * 100);\n const reward = Math.abs(target.price - entry.price);\n const risk = Math.abs(entry.price - stop.price);\n const ratio = risk > 0 ? reward / risk : NaN;\n const texts = c.position;\n const label = (text: string, y: number, fill: string, above: boolean) => {\n ctx.font = c.font;\n const tw = ctx.measureText(text).width + 14;\n const x = Math.max(\n m.left + 2,\n Math.min(g.x0 + w / 2 - tw / 2, m.right - tw - 2),\n );\n const top = above ? y - 24 : y + 4;\n roundRect(ctx, x, top, tw, 20, 4);\n ctx.fillStyle = fill;\n ctx.fill();\n ctx.fillStyle = c.textOn(fill);\n ctx.textAlign = \"center\";\n ctx.textBaseline = \"middle\";\n ctx.fillText(text, x + tw / 2, top + 10.5);\n };\n const targetUp = g.target < g.entry;\n label(\n c.fill(texts.target, {\n price: c.formatPrice(target.price),\n change: change(target.price),\n }),\n g.target,\n c.up,\n targetUp,\n );\n label(\n c.fill(texts.stop, {\n price: c.formatPrice(stop.price),\n change: change(stop.price),\n }),\n g.stop,\n c.down,\n !targetUp,\n );\n // the side, the ratio and the profit at the last price\n const parts = [\n long ? texts.long : texts.short,\n c.fill(texts.riskReward, {\n ratio: Number.isFinite(ratio) ? ratio.toFixed(2) : \"–\",\n }),\n ];\n if (Number.isFinite(c.last) && entry.price) {\n const move = (c.last - entry.price) * dir;\n const percent = c.formatPercent((move / entry.price) * 100);\n const value =\n drawing.quantity !== undefined\n ? `${move * drawing.quantity >= 0 ? \"+\" : \"−\"}${c.formatPrice(Math.abs(move * drawing.quantity))} (${percent})`\n : percent;\n parts.push(c.fill(texts.profit, { value }));\n }\n ctx.font = c.font;\n const text = parts.join(\" · \");\n const tw = ctx.measureText(text).width + 16;\n const x = Math.max(\n m.left + 2,\n Math.min(g.x0 + w / 2 - tw / 2, m.right - tw - 2),\n );\n const center = g.entry - 10;\n roundRect(ctx, x, center, tw, 20, 4);\n ctx.fillStyle = c.text;\n ctx.fill();\n ctx.fillStyle = c.background;\n ctx.textAlign = \"center\";\n ctx.textBaseline = \"middle\";\n ctx.fillText(text, x + tw / 2, center + 10.5);\n};\n\nconst paintFib = (\n ctx: CanvasRenderingContext2D,\n drawing: TradingDrawing,\n a: Point,\n b: Point,\n c: DrawingPaintContext,\n filled: boolean,\n m: DrawingMapper,\n) => {\n const x0 = Math.min(a.x, b.x);\n const x1 = Math.max(a.x, b.x);\n // labels stay readable when the left anchor is scrolled out\n const labelX = Math.max(x0, m.left) + 4;\n const p1 = drawing.points[0]?.price ?? 0;\n const p2 = drawing.points[1]?.price ?? 0;\n const ys = FIB_LEVELS.map((level) => b.y + (a.y - b.y) * level);\n // bands between levels\n if (filled) {\n for (let i = 0; i + 1 < FIB_LEVELS.length; i++) {\n ctx.globalAlpha = 0.08;\n ctx.fillStyle = drawing.color ? c.color : (FIB_COLORS[i + 1] ?? c.color);\n ctx.fillRect(\n x0,\n Math.min(ys[i] ?? 0, ys[i + 1] ?? 0),\n x1 - x0,\n Math.abs((ys[i + 1] ?? 0) - (ys[i] ?? 0)),\n );\n }\n }\n ctx.globalAlpha = 1;\n ctx.textBaseline = \"bottom\";\n ctx.textAlign = \"left\";\n FIB_LEVELS.forEach((level, i) => {\n const y = Math.round(ys[i] ?? 0) + 0.5;\n const color = drawing.color ? c.color : (FIB_COLORS[i] ?? c.color);\n ctx.strokeStyle = color;\n ctx.fillStyle = color;\n ctx.beginPath();\n ctx.moveTo(x0, y);\n ctx.lineTo(x1, y);\n ctx.stroke();\n const price = p2 + (p1 - p2) * level;\n ctx.fillText(`${level} (${c.formatPrice(price)})`, labelX, y - 2);\n });\n // the trend line between the anchors\n ctx.setLineDash([4, 4]);\n ctx.strokeStyle = c.color;\n ctx.globalAlpha = 0.6;\n ctx.beginPath();\n ctx.moveTo(a.x, a.y);\n ctx.lineTo(b.x, b.y);\n ctx.stroke();\n ctx.globalAlpha = 1;\n};\n\nconst paintMeasure = (\n ctx: CanvasRenderingContext2D,\n drawing: TradingDrawing,\n a: Point,\n b: Point,\n m: DrawingMapper,\n c: DrawingPaintContext,\n) => {\n const [p1, p2] = drawing.points as [TradingDrawingPoint, TradingDrawingPoint];\n const rising = p2.price >= p1.price;\n const color = drawing.color ? c.color : rising ? c.up : c.down;\n const x0 = Math.min(a.x, b.x);\n const x1 = Math.max(a.x, b.x);\n const y0 = Math.min(a.y, b.y);\n const y1 = Math.max(a.y, b.y);\n ctx.setLineDash([]);\n ctx.fillStyle = color;\n ctx.globalAlpha = 0.14;\n ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n ctx.globalAlpha = 1;\n ctx.strokeStyle = color;\n ctx.lineWidth = 1;\n // arrows across the box\n const midX = Math.round((x0 + x1) / 2) + 0.5;\n const midY = Math.round((y0 + y1) / 2) + 0.5;\n const arrow = (from: Point, to: Point) => {\n ctx.beginPath();\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(to.x, to.y);\n ctx.stroke();\n const angle = Math.atan2(to.y - from.y, to.x - from.x);\n ctx.beginPath();\n ctx.moveTo(to.x, to.y);\n ctx.lineTo(\n to.x - 6 * Math.cos(angle - 0.5),\n to.y - 6 * Math.sin(angle - 0.5),\n );\n ctx.lineTo(\n to.x - 6 * Math.cos(angle + 0.5),\n to.y - 6 * Math.sin(angle + 0.5),\n );\n ctx.closePath();\n ctx.fill();\n };\n if (y1 - y0 > 10)\n arrow({ x: midX, y: rising ? y1 : y0 }, { x: midX, y: rising ? y0 : y1 });\n if (x1 - x0 > 10)\n arrow(\n { x: a.x < b.x ? x0 : x1, y: midY },\n { x: a.x < b.x ? x1 : x0, y: midY },\n );\n // label\n const change = p2.price - p1.price;\n const percent = p1.price ? (change / p1.price) * 100 : NaN;\n const bars = Math.round(m.index(p2.time) - m.index(p1.time));\n const lines = [\n `${change >= 0 ? \"+\" : \"−\"}${c.formatPrice(Math.abs(change))} (${c.formatPercent(percent)})`,\n c.formatSpan(bars, p2.time - p1.time),\n ];\n const widths = lines.map((t) => ctx.measureText(t).width);\n const w = Math.max(...widths) + 16;\n const h = 38;\n const lx = (x0 + x1) / 2 - w / 2;\n const below = !rising;\n // flip inside the pane when the label would leave it\n let ly = below ? y1 + 6 : y0 - h - 6;\n if (ly < m.top + 2) ly = y1 + 6;\n if (ly + h > m.bottom - 2) ly = Math.max(m.top + 2, y0 - h - 6);\n roundRect(ctx, lx, ly, w, h, 4);\n ctx.fillStyle = color;\n ctx.fill();\n ctx.fillStyle = c.textOn(color);\n ctx.textAlign = \"center\";\n ctx.textBaseline = \"middle\";\n ctx.fillText(lines[0] ?? \"\", lx + w / 2, ly + 11);\n ctx.fillText(lines[1] ?? \"\", lx + w / 2, ly + 27);\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../locale.cjs");var t=6e4,n=36e5,r=864e5,i=(t,n)=>e.numberFormat(e.resolveLocale(t),n),a=(e,t,n)=>{let r=0,i=Math.max(0,n-300,t);for(let t=i;t<n;t++){let n=Math.abs(e[t]);if(Number.isFinite(n))for(;r<8;){let e=n*10**r;if(Math.abs(e-Math.round(e))<1e-8*Math.max(1,e))break;r++}}return r},o=(e,t)=>{let n=Math.max(0,Math.min(12,Math.round(e))),r=i(t,{minimumFractionDigits:n,maximumFractionDigits:n});return e=>Number.isFinite(e)?s(r.format(e)):`–`},s=e=>e.replace(`-`,`−`),c=(t,n)=>{if(!Number.isFinite(t))return`–`;let r=i(n,{maximumFractionDigits:2}),a=Math.abs(t);for(let[i,o]of e.compactUnits(n))if(a>=i*.999995)return s(`${r.format(t/i)}${o}`);return s(r.format(t))},l=(e,t,n=2)=>{if(!Number.isFinite(e))return`–`;let r=i(t,{minimumFractionDigits:n,maximumFractionDigits:n}).format(Math.abs(e));return`${Math.abs(e)<.5*10**-n?``:e>0?`+`:`−`}${r}%`},u=(e,t,n)=>Number.isFinite(e)?s(i(n,{minimumFractionDigits:t,maximumFractionDigits:t}).format(e)):`–`,d=new Map,f=(t,n)=>{let r=`${t??``}|${JSON.stringify(n)}`,i=d.get(r);if(!i){let a={...n,timeZone:`UTC`};try{i=new Intl.DateTimeFormat(e.resolveLocale(t),a)}catch{i=new Intl.DateTimeFormat(`en`,a)}d.set(r,i)}return i},p=(e,t)=>typeof e==`number`?e:e(t),m=new Map,h=new Map,g=15*t,_=e=>v(e)!==null,v=e=>{let t=m.get(e);if(t===void 0){try{t=new Intl.DateTimeFormat(`en-US`,{timeZone:e,hourCycle:`h23`,year:`numeric`,month:`numeric`,day:`numeric`,hour:`numeric`,minute:`numeric`})}catch{t=null}m.set(e,t)}return t},y=(e,n)=>{let r=v(n);if(!r||!Number.isFinite(e))return-new Date(Number.isFinite(e)?e:0).getTimezoneOffset();let i=h.get(n);i||h.set(n,i=new Map);let a=Math.floor(e/g),o=i.get(a);if(o===void 0){let e=a*g,n={};for(let t of r.formatToParts(e))t.type!==`literal`&&(n[t.type]=Number(t.value));let s=Date.UTC(n.year??1970,(n.month??1)-1,n.day??1,(n.hour??0)%24,n.minute??0);o=Math.round((s-e)/t),i.size>5e4&&i.clear(),i.set(a,o)}return o},b=(e,r)=>{if(!Number.isFinite(e))return 70;let i=new Date(e),a=new Date(r);if(i.getUTCFullYear()!==a.getUTCFullYear())return 70;if(i.getUTCMonth()!==a.getUTCMonth())return 60;if(i.getUTCDate()!==a.getUTCDate())return 50;let o=[[12*n,46],[6*n,45],[3*n,44],[n,43],[30*t,34],[15*t,33],[5*t,32],[t,31],[3e4,24],[15e3,23],[5e3,22],[1e3,21]];for(let[t,n]of o)if(Math.floor(e/t)!==Math.floor(r/t))return n;return 10},x=(e,t,n,r)=>t>=70?f(n,{year:`numeric`}).format(e):t>=60?f(n,{month:`short`}).format(e):t>=50?r?f(n,{month:`short`,day:`numeric`}).format(e):f(n,{day:`numeric`}).format(e):t>=30?f(n,{hour:`2-digit`,minute:`2-digit`,hourCycle:`h23`}).format(e):f(n,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hourCycle:`h23`}).format(e),S=(e,t)=>{let n=e.map((e,t)=>t).sort((t,n)=>e[n].weight-e[t].weight||t-n),r=[],i=[];for(let a of n){let n=e[a],o=0,s=r.length;for(;o<s;){let e=o+s>>>1;r[e]<n.x?o=e+1:s=e}let c=o>0?r[o-1]:-1/0,l=o<r.length?r[o]:1/0;n.x-c<t||l-n.x<t||(r.splice(o,0,n.x),i.push(n))}return i.sort((e,t)=>e.x-t.x)},C=(e,t,n)=>{let r={weekday:`short`,year:`numeric`,month:`short`,day:`numeric`};return t>=864e5?f(n,r).format(e):f(n,{...r,hour:`2-digit`,minute:`2-digit`,...t<6e4?{second:`2-digit`}:{},hourCycle:`h23`}).format(e)},w=(e,t={days:`{count}d`,hours:`{count}h`})=>{let n=Math.max(0,Math.floor(e/1e3)),r=e=>String(e).padStart(2,`0`);if(n>=86400){let e=String(Math.floor(n/86400)),i=r(Math.floor(n%86400/3600));return`${t.days.replace(`{count}`,e)} ${t.hours.replace(`{count}`,i)}`}return n>=3600?`${r(Math.floor(n/3600))}:${r(Math.floor(n%3600/60))}:${r(n%60)}`:`${r(Math.floor(n/60))}:${r(n%60)}`},T=(e,t)=>{let n=[];for(let r=Math.max(1,t-64);r<t;r++){let t=e[r]-e[r-1];t>0&&Number.isFinite(t)&&n.push(t)}return n.length?(n.sort((e,t)=>e-t),n[Math.floor(n.length*.25)]):r};exports.DAY=r,exports.HOUR=n,exports.MINUTE=t,exports.boundaryWeight=b,exports.dateFormat=f,exports.detectPrecision=a,exports.formatCountdown=w,exports.formatCrosshairTime=C,exports.formatFixed=u,exports.formatPercent=l,exports.formatVolume=c,exports.inferTimeframe=T,exports.isTimeZone=_,exports.offsetOf=p,exports.pickTicks=S,exports.priceFormatter=o,exports.tickText=x,exports.typographicMinus=s,exports.zoneOffset=y;
|
|
2
|
+
//# sourceMappingURL=format.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.cjs","names":["sharedNumberFormat","resolveLocale","compactUnits","require_locale","MINUTE","HOUR","DAY","numberFormat","locale","options","detectPrecision","decimals","start","to","from","i","v","values","scaled","priceFormatter","p","precision","format","value","typographicMinus","text","formatVolume","abs","unit","suffix","formatPercent","formatFixed","dateFormats","dateFormat","key","full","offsetOf","offset","time","zoneFormats","zoneOffsets","QUARTER","isTimeZone","zoneFormat","timeZone","zoneOffset","cache","bucket","at","parts","part","local","boundaryWeight","prev","a","b","steps","weight","tickText","intraday","pickTicks","order","candidates","kept","result","c","lo","hi","mid","left","right","minGap","formatCrosshairTime","date","timeframeMs","shifted","formatCountdown","s","ms","pad","days","hours","units","inferTimeframe","gaps","n","d"],"sources":["../../../../../charts/src/engine/trading/format.ts"],"sourcesContent":["// Formatting of prices, volumes and times, and the labels of the time axis.\n// `locale` is resolved by the caller (`resolveLocale`) on hot paths.\n\nimport {\n compactUnits,\n numberFormat as sharedNumberFormat,\n resolveLocale,\n} from \"../locale\";\n\nexport const MINUTE = 60_000;\nexport const HOUR = 3_600_000;\nexport const DAY = 86_400_000;\n\nconst numberFormat = (\n locale: string | undefined,\n options: Intl.NumberFormatOptions,\n): Intl.NumberFormat => sharedNumberFormat(resolveLocale(locale), options);\n\n/** Decimals needed by the prices (0-8), detected from a sample of them */\nexport const detectPrecision = (\n values: ArrayLike<number>,\n from: number,\n to: number,\n): number => {\n let decimals = 0;\n const start = Math.max(0, to - 300, from);\n for (let i = start; i < to; i++) {\n const v = Math.abs(values[i]);\n if (!Number.isFinite(v)) continue;\n while (decimals < 8) {\n const scaled = v * 10 ** decimals;\n if (Math.abs(scaled - Math.round(scaled)) < 1e-8 * Math.max(1, scaled))\n break;\n decimals++;\n }\n }\n return decimals;\n};\n\n/** Price formatter: fixed decimals, grouped digits of `locale` */\nexport const priceFormatter = (\n precision: number,\n locale: string | undefined,\n): ((value: number) => string) => {\n const p = Math.max(0, Math.min(12, Math.round(precision)));\n const format = numberFormat(locale, {\n minimumFractionDigits: p,\n maximumFractionDigits: p,\n });\n return (value) =>\n Number.isFinite(value) ? typographicMinus(format.format(value)) : \"–\";\n};\n\n/** The minus sign (U+2212) instead of the hyphen-minus of `Intl` */\nexport const typographicMinus = (text: string): string =>\n text.replace(\"-\", \"−\");\n\n/** `12345678` -> `12.35M` (`1234.57万` in Chinese and Japanese) */\nexport const formatVolume = (value: number, locale?: string): string => {\n if (!Number.isFinite(value)) return \"–\";\n const format = numberFormat(locale, { maximumFractionDigits: 2 });\n const abs = Math.abs(value);\n for (const [unit, suffix] of compactUnits(locale)) {\n // 999,999 shows as 1M, not 1,000k\n if (abs >= unit * 0.999995)\n return typographicMinus(`${format.format(value / unit)}${suffix}`);\n }\n return typographicMinus(format.format(value));\n};\n\n/** `+1.25%` */\nexport const formatPercent = (\n value: number,\n locale?: string,\n decimals = 2,\n): string => {\n if (!Number.isFinite(value)) return \"–\";\n const text = numberFormat(locale, {\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals,\n }).format(Math.abs(value));\n const zero = Math.abs(value) < 0.5 * 10 ** -decimals;\n return `${zero ? \"\" : value > 0 ? \"+\" : \"−\"}${text}%`;\n};\n\n/** Any value with `decimals` decimals (indicator panes) */\nexport const formatFixed = (\n value: number,\n decimals: number,\n locale?: string,\n): string =>\n Number.isFinite(value)\n ? typographicMinus(\n numberFormat(locale, {\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals,\n }).format(value),\n )\n : \"–\";\n\n// ------------------------------------------------------------------ times\n\nconst dateFormats = new Map<string, Intl.DateTimeFormat>();\n\n/** Formats shifted times with the UTC getters (the offset is applied before) */\nexport const dateFormat = (\n locale: string | undefined,\n options: Intl.DateTimeFormatOptions,\n): Intl.DateTimeFormat => {\n const key = `${locale ?? \"\"}|${JSON.stringify(options)}`;\n let format = dateFormats.get(key);\n if (!format) {\n const full = { ...options, timeZone: \"UTC\" };\n try {\n format = new Intl.DateTimeFormat(resolveLocale(locale), full);\n } catch {\n format = new Intl.DateTimeFormat(\"en\", full);\n }\n dateFormats.set(key, format);\n }\n return format;\n};\n\n/** Offset of the displayed time from UTC, in minutes, at `time` */\nexport const offsetAt = (time: number, utcOffset: number | undefined) =>\n utcOffset ?? -new Date(Number.isFinite(time) ? time : 0).getTimezoneOffset();\n\n/** Offset from UTC in minutes: fixed, or a function of the time (time zones) */\nexport type UtcOffset = number | ((time: number) => number);\n\nexport const offsetOf = (offset: UtcOffset, time: number): number =>\n typeof offset === \"number\" ? offset : offset(time);\n\nconst zoneFormats = new Map<string, Intl.DateTimeFormat | null>();\nconst zoneOffsets = new Map<string, Map<number, number>>();\nconst QUARTER = 15 * MINUTE;\n\n/** Whether `timeZone` is a time zone known to `Intl` (`\"UTC\"`, `\"Asia/Shanghai\"`) */\nexport const isTimeZone = (timeZone: string): boolean =>\n zoneFormat(timeZone) !== null;\n\nconst zoneFormat = (timeZone: string) => {\n let format = zoneFormats.get(timeZone);\n if (format === undefined) {\n try {\n format = new Intl.DateTimeFormat(\"en-US\", {\n timeZone,\n hourCycle: \"h23\",\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n });\n } catch {\n format = null;\n }\n zoneFormats.set(timeZone, format);\n }\n return format;\n};\n\n/**\n * Offset of an IANA time zone from UTC at `time`, in minutes (daylight\n * saving included). Cached per quarter of an hour: zones change their\n * offset on quarter hours, and the time axis asks for every bar.\n */\nexport const zoneOffset = (time: number, timeZone: string): number => {\n const format = zoneFormat(timeZone);\n if (!format || !Number.isFinite(time))\n return -new Date(Number.isFinite(time) ? time : 0).getTimezoneOffset();\n let cache = zoneOffsets.get(timeZone);\n if (!cache) zoneOffsets.set(timeZone, (cache = new Map()));\n const bucket = Math.floor(time / QUARTER);\n let offset = cache.get(bucket);\n if (offset === undefined) {\n const at = bucket * QUARTER;\n const parts: Record<string, number> = {};\n for (const part of format.formatToParts(at))\n if (part.type !== \"literal\") parts[part.type] = Number(part.value);\n const local = Date.UTC(\n parts.year ?? 1970,\n (parts.month ?? 1) - 1,\n parts.day ?? 1,\n (parts.hour ?? 0) % 24,\n parts.minute ?? 0,\n );\n offset = Math.round((local - at) / MINUTE);\n if (cache.size > 50_000) cache.clear();\n cache.set(bucket, offset);\n }\n return offset;\n};\n\n/** Time shifted so that the UTC getters read the displayed time */\nexport const shiftTime = (time: number, utcOffset: number | undefined) =>\n time + offsetAt(time, utcOffset) * MINUTE;\n\n/**\n * Weight of the boundary between two consecutive (shifted) bar times: the\n * largest calendar unit that changes (year 70, month 60, day 50, hours\n * 43-46, minutes 31-34, seconds 21-24, 10 otherwise)\n */\nexport const boundaryWeight = (prev: number, time: number): number => {\n if (!Number.isFinite(prev)) return 70;\n const a = new Date(prev);\n const b = new Date(time);\n if (a.getUTCFullYear() !== b.getUTCFullYear()) return 70;\n if (a.getUTCMonth() !== b.getUTCMonth()) return 60;\n if (a.getUTCDate() !== b.getUTCDate()) return 50;\n const steps: readonly [number, number][] = [\n [12 * HOUR, 46],\n [6 * HOUR, 45],\n [3 * HOUR, 44],\n [HOUR, 43],\n [30 * MINUTE, 34],\n [15 * MINUTE, 33],\n [5 * MINUTE, 32],\n [MINUTE, 31],\n [30_000, 24],\n [15_000, 23],\n [5_000, 22],\n [1_000, 21],\n ];\n for (const [unit, weight] of steps) {\n if (Math.floor(prev / unit) !== Math.floor(time / unit)) return weight;\n }\n return 10;\n};\n\n/** A label of the time axis */\nexport interface TimeTick {\n /** x in CSS pixels */\n x: number;\n text: string;\n /** Larger unit (new day of an intraday chart, new month / year) */\n bold: boolean;\n}\n\n/** Text of a tick of weight `weight` at the shifted time `time` */\nexport const tickText = (\n time: number,\n weight: number,\n locale: string | undefined,\n intraday: boolean,\n): string => {\n if (weight >= 70) return dateFormat(locale, { year: \"numeric\" }).format(time);\n if (weight >= 60) return dateFormat(locale, { month: \"short\" }).format(time);\n if (weight >= 50) {\n return intraday\n ? dateFormat(locale, { month: \"short\", day: \"numeric\" }).format(time)\n : dateFormat(locale, { day: \"numeric\" }).format(time);\n }\n if (weight >= 30)\n return dateFormat(locale, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n hourCycle: \"h23\",\n }).format(time);\n return dateFormat(locale, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n hourCycle: \"h23\",\n }).format(time);\n};\n\n/**\n * Picks the time labels: candidates by decreasing weight, each kept when\n * no kept label is closer than `minGap` pixels\n */\nexport const pickTicks = (\n candidates: readonly { x: number; weight: number; time: number }[],\n minGap: number,\n): { x: number; weight: number; time: number }[] => {\n const order = candidates\n .map((_, i) => i)\n .sort((a, b) => candidates[b].weight - candidates[a].weight || a - b);\n const kept: number[] = [];\n const result: { x: number; weight: number; time: number }[] = [];\n for (const i of order) {\n const c = candidates[i];\n // binary search of the kept x positions\n let lo = 0;\n let hi = kept.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (kept[mid] < c.x) lo = mid + 1;\n else hi = mid;\n }\n const left = lo > 0 ? kept[lo - 1] : -Infinity;\n const right = lo < kept.length ? kept[lo] : Infinity;\n if (c.x - left < minGap || right - c.x < minGap) continue;\n kept.splice(lo, 0, c.x);\n result.push(c);\n }\n return result.sort((a, b) => a.x - b.x);\n};\n\n/** Full time of the crosshair label (`Tue 12 Mar '24 14:35`) */\nexport const formatCrosshairTime = (\n shifted: number,\n timeframeMs: number,\n locale: string | undefined,\n): string => {\n const date: Intl.DateTimeFormatOptions = {\n weekday: \"short\",\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n };\n if (timeframeMs >= DAY) return dateFormat(locale, date).format(shifted);\n return dateFormat(locale, {\n ...date,\n hour: \"2-digit\",\n minute: \"2-digit\",\n ...(timeframeMs < MINUTE ? { second: \"2-digit\" } : {}),\n hourCycle: \"h23\",\n }).format(shifted);\n};\n\n/**\n * Time left before a bar closes: `42`, `04:59`, `03:04:59`, `2d 04h` (the\n * day and hour templates replace `{count}`)\n */\nexport const formatCountdown = (\n ms: number,\n units: { days: string; hours: string } = {\n days: \"{count}d\",\n hours: \"{count}h\",\n },\n): string => {\n const s = Math.max(0, Math.floor(ms / 1000));\n const pad = (v: number) => String(v).padStart(2, \"0\");\n if (s >= 86_400) {\n const days = String(Math.floor(s / 86_400));\n const hours = pad(Math.floor((s % 86_400) / 3600));\n return `${units.days.replace(\"{count}\", days)} ${units.hours.replace(\"{count}\", hours)}`;\n }\n if (s >= 3600)\n return `${pad(Math.floor(s / 3600))}:${pad(Math.floor((s % 3600) / 60))}:${pad(s % 60)}`;\n return `${pad(Math.floor(s / 60))}:${pad(s % 60)}`;\n};\n\n/** Typical duration between bars: the median of the last gaps */\nexport const inferTimeframe = (time: ArrayLike<number>, n: number): number => {\n const gaps: number[] = [];\n for (let i = Math.max(1, n - 64); i < n; i++) {\n const d = time[i] - time[i - 1];\n if (d > 0 && Number.isFinite(d)) gaps.push(d);\n }\n if (!gaps.length) return DAY;\n gaps.sort((a, b) => a - b);\n // the smallest frequent gap: weekends and nights make larger ones\n return gaps[Math.floor(gaps.length * 0.25)];\n};\n"],"mappings":"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"}
|