minerva-design 1.3.0 → 1.4.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 +9 -0
- package/README.md +21 -21
- package/custom-elements.json +13630 -4757
- package/dist/angular/fesm2022/minerva-angular.mjs +6872 -172
- package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
- package/dist/angular/types/minerva-angular.d.ts +2240 -0
- package/dist/charts/canvas.d.cts +7 -2
- package/dist/charts/canvas.d.ts +7 -2
- package/dist/charts/core.cjs +1 -1
- package/dist/charts/core.d.cts +7 -4
- package/dist/charts/core.d.ts +7 -4
- package/dist/charts/core.js +19 -8
- package/dist/charts/engine/axis.cjs +1 -1
- package/dist/charts/engine/axis.cjs.map +1 -1
- package/dist/charts/engine/axis.js +6 -6
- 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 +118 -68
- 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 +307 -285
- 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.js +2 -2
- package/dist/charts/engine/color.js.map +1 -1
- package/dist/charts/engine/controller.cjs +1 -1
- package/dist/charts/engine/controller.cjs.map +1 -1
- package/dist/charts/engine/controller.d.cts +12 -3
- package/dist/charts/engine/controller.d.ts +12 -3
- package/dist/charts/engine/controller.js +359 -299
- 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 +6 -0
- package/dist/charts/engine/data.d.ts +6 -0
- package/dist/charts/engine/data.js +63 -49
- package/dist/charts/engine/data.js.map +1 -1
- package/dist/charts/engine/format.cjs +1 -1
- package/dist/charts/engine/format.cjs.map +1 -1
- package/dist/charts/engine/format.d.cts +21 -6
- package/dist/charts/engine/format.d.ts +21 -6
- package/dist/charts/engine/format.js +46 -21
- package/dist/charts/engine/format.js.map +1 -1
- package/dist/charts/engine/items.cjs +1 -1
- package/dist/charts/engine/items.cjs.map +1 -1
- package/dist/charts/engine/items.js +211 -54
- 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 +74 -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 +34 -2
- package/dist/charts/engine/layout.d.ts +34 -2
- package/dist/charts/engine/layout.js +53 -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 +39 -1
- package/dist/charts/engine/model.d.ts +39 -1
- package/dist/charts/engine/model.js +212 -105
- 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 +48 -0
- package/dist/charts/engine/orderbook/format.d.ts +48 -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 +703 -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/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 +735 -0
- package/dist/charts/engine/orderbook/types.d.ts +735 -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 +18 -2
- package/dist/charts/engine/overlay.d.ts +18 -2
- package/dist/charts/engine/overlay.js +132 -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 +249 -1
- package/dist/charts/engine/presets.d.ts +249 -1
- package/dist/charts/engine/presets.js +367 -29
- 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.js +18 -15
- 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 +14 -4
- package/dist/charts/engine/scene.d.ts +14 -4
- package/dist/charts/engine/scene.js +292 -163
- 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 +45 -26
- package/dist/charts/engine/shapes/chart.js.map +1 -1
- 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 +3 -1
- package/dist/charts/engine/shapes/draw.d.ts +3 -1
- package/dist/charts/engine/shapes/draw.js +31 -18
- 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 +3 -1
- package/dist/charts/engine/shapes/hit.d.ts +3 -1
- package/dist/charts/engine/shapes/hit.js +29 -8
- package/dist/charts/engine/shapes/hit.js.map +1 -1
- package/dist/charts/engine/shapes/index.d.cts +4 -1
- package/dist/charts/engine/shapes/index.d.ts +4 -1
- 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 +146 -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 +8 -3
- package/dist/charts/engine/shapes/layout.d.ts +8 -3
- package/dist/charts/engine/shapes/layout.js +200 -113
- 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 +62 -8
- package/dist/charts/engine/shapes/scene.d.ts +62 -8
- package/dist/charts/engine/shapes/scene.js +33 -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 +439 -12
- package/dist/charts/engine/shapes/types.d.ts +439 -12
- 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 +4 -0
- package/dist/charts/engine/three-d/canvas2d.d.ts +4 -0
- package/dist/charts/engine/three-d/canvas2d.js +104 -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 +11 -0
- package/dist/charts/engine/three-d/detect.d.ts +11 -0
- package/dist/charts/engine/three-d/detect.js +35 -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 +76 -0
- package/dist/charts/engine/three-d/geometry.d.ts +76 -0
- package/dist/charts/engine/three-d/geometry.js +529 -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 +130 -0
- package/dist/charts/engine/three-d/model.d.ts +130 -0
- package/dist/charts/engine/three-d/model.js +277 -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 +197 -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 +82 -0
- package/dist/charts/engine/three-d/render-types.d.ts +82 -0
- package/dist/charts/engine/three-d/render-types.js +13 -0
- package/dist/charts/engine/three-d/render-types.js.map +1 -0
- package/dist/charts/engine/three-d/shaders.cjs +276 -0
- package/dist/charts/engine/three-d/shaders.cjs.map +1 -0
- package/dist/charts/engine/three-d/shaders.d.cts +26 -0
- package/dist/charts/engine/three-d/shaders.d.ts +26 -0
- package/dist/charts/engine/three-d/shaders.js +191 -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 +18 -0
- package/dist/charts/engine/three-d/sort.d.ts +18 -0
- package/dist/charts/engine/three-d/sort.js +71 -0
- package/dist/charts/engine/three-d/sort.js.map +1 -0
- package/dist/charts/engine/three-d/types.d.cts +588 -0
- package/dist/charts/engine/three-d/types.d.ts +588 -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 +130 -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 +249 -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 +3 -0
- package/dist/charts/engine/trading/chart.d.ts +3 -0
- package/dist/charts/engine/trading/chart.js +1507 -0
- package/dist/charts/engine/trading/chart.js.map +1 -0
- package/dist/charts/engine/trading/drawings.cjs +2 -0
- package/dist/charts/engine/trading/drawings.cjs.map +1 -0
- package/dist/charts/engine/trading/drawings.d.cts +57 -0
- package/dist/charts/engine/trading/drawings.d.ts +57 -0
- package/dist/charts/engine/trading/drawings.js +160 -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 +60 -0
- package/dist/charts/engine/trading/format.d.ts +60 -0
- package/dist/charts/engine/trading/format.js +131 -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 +3 -0
- package/dist/charts/engine/trading/index.d.ts +3 -0
- package/dist/charts/engine/trading/index.js +3 -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 +105 -0
- package/dist/charts/engine/trading/indicators.d.ts +105 -0
- package/dist/charts/engine/trading/indicators.js +268 -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 +91 -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 +62 -0
- package/dist/charts/engine/trading/store.d.ts +62 -0
- package/dist/charts/engine/trading/store.js +129 -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 +52 -0
- package/dist/charts/engine/trading/studies.d.ts +52 -0
- package/dist/charts/engine/trading/studies.js +254 -0
- package/dist/charts/engine/trading/studies.js.map +1 -0
- package/dist/charts/engine/trading/types.d.cts +656 -0
- package/dist/charts/engine/trading/types.d.ts +656 -0
- package/dist/charts/engine/types.d.cts +165 -14
- package/dist/charts/engine/types.d.ts +165 -14
- package/dist/charts/index.cjs +1 -1
- package/dist/charts/index.d.cts +7 -4
- package/dist/charts/index.d.ts +7 -4
- package/dist/charts/index.js +22 -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 +303 -131
- package/dist/charts/react/charts.js.map +1 -1
- 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 +291 -9
- package/dist/charts/react/shapes.d.ts +291 -9
- package/dist/charts/react/shapes.js +280 -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 +93 -0
- package/dist/charts/react/trading.d.ts +93 -0
- package/dist/charts/react/trading.js +95 -0
- package/dist/charts/react/trading.js.map +1 -0
- package/dist/charts/react/types.d.cts +132 -8
- package/dist/charts/react/types.d.ts +132 -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 +6 -6
- package/dist/native/charts/src/engine/axis.js.map +1 -1
- package/dist/native/charts/src/engine/controller.cjs +1 -1
- package/dist/native/charts/src/engine/controller.cjs.map +1 -1
- package/dist/native/charts/src/engine/controller.js +352 -292
- 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 +63 -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 +46 -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 +74 -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 +53 -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 +223 -116
- 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 +448 -33
- 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 +296 -167
- 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 +364 -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/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 +165 -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 +106 -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 +146 -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 +331 -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 +125 -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 +234 -217
- 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 +338 -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 +144 -0
- package/dist/native/components/Charts/types.d.ts +144 -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 +271 -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 +38 -0
- package/dist/native/components/ShapeChart/charts.d.ts +38 -0
- package/dist/native/components/ShapeChart/charts.js +387 -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 +104 -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 +602 -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 +106 -0
- package/dist/native/components/ShapeChart/recorder.d.ts +106 -0
- package/dist/native/components/ShapeChart/recorder.js +574 -0
- package/dist/native/components/ShapeChart/recorder.js.map +1 -0
- package/dist/native/components/ShapeChart/types.d.cts +509 -0
- package/dist/native/components/ShapeChart/types.d.ts +509 -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 +154 -84
- package/dist/native/source/components/Chart/types.ts +31 -1
- package/dist/native/source/components/Charts/charts.tsx +493 -0
- package/dist/native/source/components/Charts/index.ts +14 -0
- package/dist/native/source/components/Charts/types.ts +207 -0
- package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +484 -0
- package/dist/native/source/components/ShapeChart/charts.tsx +605 -0
- package/dist/native/source/components/ShapeChart/draw.tsx +170 -0
- package/dist/native/source/components/ShapeChart/geometry.ts +1185 -0
- package/dist/native/source/components/ShapeChart/index.ts +15 -0
- package/dist/native/source/components/ShapeChart/recorder.ts +830 -0
- package/dist/native/source/components/ShapeChart/types.ts +564 -0
- package/dist/native/source/index.ts +2 -0
- package/dist/native/source/manifest.ts +30 -4
- package/dist/taro/charts.d.ts +209 -4
- package/dist/taro/index.d.ts +1 -0
- package/dist/taro/index.js +7517 -1856
- package/dist/taro/manifest.d.ts +1 -0
- package/dist/taro/shape-charts.d.ts +537 -0
- package/dist/uni/AreaChart.vue +68 -0
- package/dist/uni/AreaChart.vue.d.ts +120 -0
- package/dist/uni/Badge.vue.d.ts +1 -1
- package/dist/uni/BoxPlotChart.vue +66 -0
- package/dist/uni/BoxPlotChart.vue.d.ts +102 -0
- package/dist/uni/BubbleChart.vue +68 -0
- package/dist/uni/BubbleChart.vue.d.ts +106 -0
- package/dist/uni/BulletChart.vue +86 -0
- package/dist/uni/BulletChart.vue.d.ts +110 -0
- package/dist/uni/CalendarHeatmap.vue +92 -0
- package/dist/uni/CalendarHeatmap.vue.d.ts +129 -0
- package/dist/uni/CandlestickChart.vue +66 -0
- package/dist/uni/CandlestickChart.vue.d.ts +100 -0
- package/dist/uni/DonutChart.vue +72 -0
- package/dist/uni/DonutChart.vue.d.ts +114 -0
- package/dist/uni/FunnelChart.vue +67 -0
- package/dist/uni/FunnelChart.vue.d.ts +104 -0
- package/dist/uni/GanttChart.vue +67 -0
- package/dist/uni/GanttChart.vue.d.ts +123 -0
- package/dist/uni/GaugeChart.vue +77 -0
- package/dist/uni/GaugeChart.vue.d.ts +123 -0
- package/dist/uni/HeatmapChart.vue +66 -0
- package/dist/uni/HeatmapChart.vue.d.ts +114 -0
- package/dist/uni/HistogramChart.vue +66 -0
- package/dist/uni/HistogramChart.vue.d.ts +121 -0
- package/dist/uni/HorizontalBarChart.vue +68 -0
- package/dist/uni/HorizontalBarChart.vue.d.ts +127 -0
- package/dist/uni/Input.vue.d.ts +1 -1
- package/dist/uni/MixedChart.vue +68 -0
- package/dist/uni/MixedChart.vue.d.ts +106 -0
- package/dist/uni/NumberInput.vue.d.ts +1 -1
- package/dist/uni/PieChart.vue +72 -0
- package/dist/uni/PieChart.vue.d.ts +114 -0
- package/dist/uni/RadarChart.vue +67 -0
- package/dist/uni/RadarChart.vue.d.ts +110 -0
- package/dist/uni/RadialBarChart.vue +90 -0
- package/dist/uni/RadialBarChart.vue.d.ts +132 -0
- package/dist/uni/RangeAreaChart.vue +68 -0
- package/dist/uni/RangeAreaChart.vue.d.ts +102 -0
- package/dist/uni/ResponsiveGrid.vue.d.ts +1 -1
- package/dist/uni/SankeyChart.vue +88 -0
- package/dist/uni/SankeyChart.vue.d.ts +121 -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 +77 -0
- package/dist/uni/SunburstChart.vue +90 -0
- package/dist/uni/SunburstChart.vue.d.ts +114 -0
- package/dist/uni/Textarea.vue.d.ts +1 -1
- package/dist/uni/TimePicker.vue.d.ts +1 -1
- package/dist/uni/TreemapChart.vue +65 -0
- package/dist/uni/TreemapChart.vue.d.ts +100 -0
- package/dist/uni/WaterfallChart.vue +66 -0
- package/dist/uni/WaterfallChart.vue.d.ts +125 -0
- package/dist/uni/chart-types.d.ts +216 -2
- package/dist/uni/chart-types.js +174 -0
- package/dist/uni/charts-canvas.js +8 -3
- package/dist/uni/index.d.ts +26 -1
- package/dist/uni/index.js +26 -1
- package/dist/uni/manifest.d.ts +272 -0
- package/dist/uni/manifest.js +387 -0
- package/dist/uni/named-chart-options.d.ts +88 -0
- package/dist/uni/named-chart-options.js +156 -0
- package/dist/uni/shape-chart-canvas.d.ts +51 -0
- package/dist/uni/shape-chart-canvas.js +342 -0
- package/dist/uni/shape-chart-types.d.ts +381 -0
- package/dist/uni/shape-chart-types.js +261 -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 +112 -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 +57 -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/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 +132 -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 +98 -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/HeatmapChart.vue.d.ts +125 -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 +65 -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 +128 -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 +114 -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 +160 -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 +70 -0
- package/dist/vue/components/Chart/TradingChart.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 +132 -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 +68 -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/index.d.ts +41 -0
- package/dist/vue/components/Chart/index.js +40 -0
- package/dist/vue/components/Chart/orderbook.d.ts +359 -0
- package/dist/vue/components/Chart/orderbook.js +126 -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 +105 -0
- package/dist/vue/components/Chart/trading.js +55 -0
- package/dist/vue/components/Chart/trading.js.map +1 -0
- package/dist/vue/components/Chart/types.d.ts +137 -0
- package/dist/vue/global.d.ts +38 -0
- package/dist/vue/groups/charts.d.ts +1 -0
- package/dist/vue/groups/charts.js +87 -0
- package/dist/vue/groups/charts.js.map +1 -0
- package/dist/vue/index.d.ts +1 -0
- package/dist/vue/index.js +63 -23
- package/dist/vue/plugin.js +12 -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 +11436 -0
- package/dist/weapp/charts/core.d.ts +2 -0
- package/dist/weapp/charts/core.js +41 -0
- package/dist/weapp/controls.js +1433 -4478
- 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 +466 -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 +252 -0
- package/dist/web-components/components/chart/charts.js +201 -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 +224 -0
- package/dist/web-components/components/chart/extended.js +183 -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 +162 -0
- package/dist/web-components/components/chart/shapes-extended.js +156 -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/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 +96 -0
- package/dist/web-components/components/trading-chart/trading-chart.js +96 -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 +43 -0
- package/dist/web-components/elements/chart.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 +1192 -29
- package/dist/web-components/types/react.d.ts +435 -0
- package/dist/web-components/types/solid.d.ts +321 -0
- package/dist/web-components/types/svelte.d.ts +321 -0
- package/dist/web-components/types/vue.d.ts +359 -0
- package/package.json +113 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.cjs","names":["paintAt","opaqueCss","cssWithAlpha","require_recorder","TAU","SEAM","MAX_PIECES","side","plane","p","planeOf","len","b","a","n","inside","grow","centroid","pts","s","pt","list","i","cross3","c","dist","polar","cx","r","cy","rotate","v","area","P","itemsOf","out","at","sub","line","to","close","flatten","start","it","items","sweep","step","tolerance","k","dedupe","last","closed","simplify","changed","scale","turn","forward","isFull","triangulate","idx","tris","guard","found","ia","ib","ic","blocked","iv","best","flat","t","convex","poly","V","mergeConvex","polys","merged","A","q","B","j","fromB","rest","candidate","edges","internalOf","outline","ref","shared","internal","ends","own","guards","e","convexPieces","bandPieces","O","outer","H","hole","sign","h","unwrap","angles","first","order","previous","uo","uh","oi","hi","clipViews","kept","planes","base","inset","size","extent","half","root","into","origin","theta","angle","u","off","d","o","rel","local","rh","clip","color","pieceViews","piece","x0","y0","x1","y1","asRoundRect","arcs","x","y","dx","dy","nearX","nearY","asConcentric","r1","r0","far","ringBox","wedgeViews","arc","a0","a1","span","gap","end","length","rf","rx","ry","phi","mid","rm","probe","hs","he","axis","p1","p2","m1","m2","roundBox","shadow","piecesViews","pieces","regionViews","subs","paths","circles","firstSub","box","ring","contains","inner","dashPolyline","pattern","dash","period","points","total","left","on","run","segmentBox","extra","cap","width","dotBox","strokeViews","w","op","plain","only","colorAt","ro","ri","band","pointAt","round","views","runs","closedRun","extend","dots","prev","next","l1","l2","cos","e0","e1","ux","uy","wrap","opacity","boundsCenter","fillOp","strokeOp","alpha","paint","textOp","framePrims","ops"],"sources":["../../../../../native/src/components/ShapeChart/geometry.ts"],"sourcesContent":["// Turns the recorded canvas operations into view primitives, without any\n// drawing module:\n// - circles, rings and rounded rectangles are views with a border radius;\n// - a region bounded by arcs of one center (pie slice, donut segment, gauge\n// arc) is a disc / ring view clipped by half-planes: its outline with the\n// arcs replaced by polylines outside the outer circle and inside the inner\n// one, split in convex pieces;\n// - other fills (radar areas, funnel stages, rounded polygons) are split in\n// convex pieces too, each the intersection of half-planes;\n// - a half-plane is a square view with `overflow: hidden`, rotated so that\n// one side lies on the edge: nesting one per edge clips the piece. Edges\n// shared by two pieces overlap by half a pixel and translucent shapes are\n// drawn opaque in a group with the opacity, so no seam shows;\n// - strokes are thin rotated views (round caps / joins: rounded ends), arcs\n// are bands, dashes are split like the canvas does;\n// - texts keep the canvas anchor, alignment, baseline and rotation.\n\nimport {\n cssWithAlpha,\n opaqueCss,\n paintAt,\n type Color,\n type DrawOp,\n type FillOp,\n type Segment,\n type StrokeOp,\n type Subpath,\n type TextOp,\n} from \"./recorder\";\n\nconst TAU = Math.PI * 2;\n/** Overlap of the pieces of one shape, in pixels */\nconst SEAM = 0.5;\n/** Most views of one shape's half-planes */\nconst MAX_PIECES = 160;\n\nexport type Pt = [number, number];\n\n/** A drawable view */\nexport type Prim =\n | {\n t: \"box\";\n x: number;\n y: number;\n w: number;\n h: number;\n color?: string;\n radius?: number;\n borderWidth?: number;\n borderColor?: string;\n /** Rotation around the center, radians */\n rotate?: number;\n shadow?: boolean;\n }\n | {\n /** Square clipping its children (`overflow: hidden`), rotated around its center */\n t: \"clip\";\n x: number;\n y: number;\n size: number;\n rotate: number;\n children: Prim[];\n }\n | { t: \"group\"; opacity: number; children: Prim[] }\n | {\n t: \"text\";\n text: string;\n x: number;\n y: number;\n size: number;\n weight: number;\n align: TextOp[\"align\"];\n baseline: TextOp[\"baseline\"];\n color: string;\n rotate: number;\n maxWidth?: number;\n halo?: string;\n };\n\n/** Clipping base of a convex piece: everything, or a disc / ring */\ntype Base =\n | { t: \"plane\" }\n | { t: \"disc\"; cx: number; cy: number; r0: number; r1: number };\n\ninterface Piece {\n pts: Pt[];\n /** Per edge (pts[i] -> pts[i + 1]): shared with another piece of the shape */\n internal: boolean[];\n /** Outline half-planes trimming the overlap of the shared edges */\n guards: Plane[];\n}\n\n/** Half-plane n·p >= d (n: unit normal pointing inside) */\ninterface Plane {\n n: Pt;\n d: number;\n}\n\nconst side = (plane: Plane, p: Pt) =>\n plane.n[0] * p[0] + plane.n[1] * p[1] - plane.d;\n\n/** Half-plane of the line a-b containing `inside`, grown by `grow` px */\nconst planeOf = (a: Pt, b: Pt, inside: Pt, grow: number): Plane | null => {\n const len = Math.hypot(b[0] - a[0], b[1] - a[1]);\n if (len < 1e-6) return null;\n let n: Pt = [-(b[1] - a[1]) / len, (b[0] - a[0]) / len];\n if (n[0] * (inside[0] - a[0]) + n[1] * (inside[1] - a[1]) < 0)\n n = [-n[0], -n[1]];\n return { n, d: n[0] * a[0] + n[1] * a[1] - grow };\n};\n\nconst centroid = (pts: readonly Pt[]): Pt => [\n pts.reduce((s, p) => s + p[0], 0) / Math.max(1, pts.length),\n pts.reduce((s, p) => s + p[1], 0) / Math.max(1, pts.length),\n];\n\nconst pt = (list: readonly Pt[], i: number) => list[i] as Pt;\nconst cross3 = (a: Pt, b: Pt, c: Pt) =>\n (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\nconst dist = (a: Pt, b: Pt) => Math.hypot(a[0] - b[0], a[1] - b[1]);\nconst polar = (cx: number, cy: number, r: number, a: number): Pt => [\n cx + r * Math.cos(a),\n cy + r * Math.sin(a),\n];\nconst rotate = (v: Pt, a: number): Pt => {\n const c = Math.cos(a);\n const s = Math.sin(a);\n return [v[0] * c - v[1] * s, v[0] * s + v[1] * c];\n};\n\nexport const area = (P: readonly Pt[]) => {\n let s = 0;\n for (let i = 0; i < P.length; i++) {\n const a = pt(P, i);\n const b = pt(P, (i + 1) % P.length);\n s += a[0] * b[1] - b[0] * a[1];\n }\n return s / 2;\n};\n\n// ---------------------------------------------------------------- paths\n\n/** Segment of a subpath with explicit ends (implicit joins and closing included) */\ntype Item =\n | { t: \"L\"; from: Pt; to: Pt }\n | { t: \"A\"; cx: number; cy: number; r: number; a0: number; a1: number };\n\n/** Items of a filled (implicitly closed) or stroked subpath, zero-length segments dropped */\nfunction itemsOf(sub: Subpath, close: boolean): Item[] {\n const out: Item[] = [];\n let at: Pt = [sub.x, sub.y];\n const line = (to: Pt) => {\n if (dist(at, to) > 1e-3) out.push({ t: \"L\", from: at, to });\n at = to;\n };\n for (const s of sub.segs) {\n if (s.t === \"L\") line([s.x, s.y]);\n else {\n line(polar(s.cx, s.cy, s.r, s.a0));\n out.push({ ...s });\n at = polar(s.cx, s.cy, s.r, s.a1);\n }\n }\n if (close) line([sub.x, sub.y]);\n return out;\n}\n\n/** Points of a subpath, arcs flattened to `tolerance` px */\nfunction flatten(items: readonly Item[], start: Pt, tolerance = 0.2): Pt[] {\n const out: Pt[] = [start];\n for (const it of items) {\n if (it.t === \"L\") out.push(it.to);\n else {\n const sweep = it.a1 - it.a0;\n const step =\n it.r > tolerance\n ? Math.max(0.04, 2 * Math.acos(Math.max(-1, 1 - tolerance / it.r)))\n : Math.PI / 2;\n const n = Math.min(128, Math.max(1, Math.ceil(Math.abs(sweep) / step)));\n out.push(polar(it.cx, it.cy, it.r, it.a0));\n for (let k = 1; k <= n; k++)\n out.push(polar(it.cx, it.cy, it.r, it.a0 + (sweep * k) / n));\n }\n }\n return dedupe(out);\n}\n\n/** Drops repeated points (and the closing copy of the first) */\nfunction dedupe(P: readonly Pt[], closed = true): Pt[] {\n const out: Pt[] = [];\n for (const p of P) {\n const last = out[out.length - 1];\n if (!last || dist(last, p) > 1e-3) out.push(p);\n }\n if (\n closed &&\n out.length > 1 &&\n dist(pt(out, 0), pt(out, out.length - 1)) <= 1e-3\n )\n out.pop();\n return out;\n}\n\n/** Drops the vertices between collinear edges */\nfunction simplify(P: readonly Pt[]): Pt[] {\n let list = dedupe(P);\n let changed = true;\n while (changed && list.length > 3) {\n changed = false;\n for (let i = 0; i < list.length; i++) {\n const a = pt(list, (i - 1 + list.length) % list.length);\n const b = pt(list, i);\n const c = pt(list, (i + 1) % list.length);\n const scale = Math.max(dist(a, b), dist(b, c), 1e-9);\n const turn = cross3(a, b, c) / scale;\n const forward =\n (b[0] - a[0]) * (c[0] - b[0]) + (b[1] - a[1]) * (c[1] - b[1]) > 0;\n if (Math.abs(turn) < 1e-4 && forward) {\n list = list.filter((_, k) => k !== i);\n changed = true;\n break;\n }\n }\n }\n return list;\n}\n\ntype ArcItem = Extract<Item, { t: \"A\" }>;\n\nconst isFull = (it: Item | undefined): it is ArcItem =>\n it?.t === \"A\" && Math.abs(it.a1 - it.a0) >= TAU - 1e-6;\n\n// ---------------------------------------------------------- decomposition\n\n/** Ear clipping of a simple polygon: triangles as indexes */\nexport function triangulate(P: readonly Pt[]): number[][] {\n const n = P.length;\n if (n < 3) return [];\n let idx = P.map((_, i) => i);\n if (area(P) < 0) idx = idx.reverse();\n const tris: number[][] = [];\n const inside = (p: Pt, a: Pt, b: Pt, c: Pt) =>\n cross3(a, b, p) > 1e-9 && cross3(b, c, p) > 1e-9 && cross3(c, a, p) > 1e-9;\n let guard = 0;\n while (idx.length > 3 && guard++ < n * n + 10) {\n let found = false;\n for (let k = 0; k < idx.length; k++) {\n const ia = idx[(k - 1 + idx.length) % idx.length] as number;\n const ib = idx[k] as number;\n const ic = idx[(k + 1) % idx.length] as number;\n const a = pt(P, ia);\n const b = pt(P, ib);\n const c = pt(P, ic);\n if (cross3(a, b, c) <= 1e-9) continue;\n let blocked = false;\n for (const iv of idx) {\n if (iv === ia || iv === ib || iv === ic) continue;\n const v = pt(P, iv);\n if (dist(v, a) < 1e-6 || dist(v, b) < 1e-6 || dist(v, c) < 1e-6)\n continue;\n if (inside(v, a, b, c)) {\n blocked = true;\n break;\n }\n }\n if (blocked) continue;\n tris.push([ia, ib, ic]);\n idx.splice(k, 1);\n found = true;\n break;\n }\n if (!found) {\n // degenerate (self-touching) outline: drop the flattest vertex\n let best = 0;\n let flat = Infinity;\n for (let k = 0; k < idx.length; k++) {\n const t = Math.abs(\n cross3(\n pt(P, idx[(k - 1 + idx.length) % idx.length] as number),\n pt(P, idx[k] as number),\n pt(P, idx[(k + 1) % idx.length] as number),\n ),\n );\n if (t < flat) {\n flat = t;\n best = k;\n }\n }\n idx.splice(best, 1);\n }\n }\n if (idx.length === 3) {\n const [ia, ib, ic] = idx as [number, number, number];\n if (cross3(pt(P, ia), pt(P, ib), pt(P, ic)) > 1e-9) tris.push([ia, ib, ic]);\n }\n return tris;\n}\n\nconst convex = (V: readonly Pt[], poly: readonly number[]) => {\n for (let i = 0; i < poly.length; i++) {\n const a = pt(V, poly[(i - 1 + poly.length) % poly.length] as number);\n const b = pt(V, poly[i] as number);\n const c = pt(V, poly[(i + 1) % poly.length] as number);\n if (cross3(a, b, c) < -1e-7 * Math.max(1, dist(a, b) * dist(b, c)))\n return false;\n }\n return true;\n};\n\n/**\n * Merges triangles (indexes into V, positively oriented) into convex\n * pieces across their shared edges (Hertel-Mehlhorn)\n */\nexport function mergeConvex(\n V: readonly Pt[],\n tris: readonly number[][],\n): Piece[] {\n const polys = tris.map((t) =>\n area(t.map((i) => pt(V, i))) < 0 ? [...t].reverse() : [...t],\n );\n let merged = true;\n while (merged) {\n merged = false;\n outer: for (let p = 0; p < polys.length; p++) {\n const A = polys[p] as number[];\n for (let i = 0; i < A.length; i++) {\n const a = A[i] as number;\n const b = A[(i + 1) % A.length] as number;\n for (let q = p + 1; q < polys.length; q++) {\n const B = polys[q] as number[];\n const j = B.findIndex(\n (v, k) => v === b && B[(k + 1) % B.length] === a,\n );\n if (j < 0) continue;\n // A from b around to a, then B strictly between a and b\n const ia = (i + 1) % A.length;\n const fromB: number[] = [];\n for (let k = 0; k < A.length; k++)\n fromB.push(A[(ia + k) % A.length] as number);\n const rest: number[] = [];\n for (let k = 2; k < B.length; k++)\n rest.push(B[(j + k) % B.length] as number);\n const candidate = [...fromB, ...rest];\n if (!convex(V, candidate)) continue;\n polys[p] = candidate;\n polys.splice(q, 1);\n merged = true;\n break outer;\n }\n }\n }\n }\n const edges = new Set<string>();\n for (const poly of polys)\n for (let i = 0; i < poly.length; i++)\n edges.add(`${poly[i]},${poly[(i + 1) % poly.length]}`);\n const internalOf = (poly: readonly number[]) =>\n poly.map((v, i) => edges.has(`${poly[(i + 1) % poly.length]},${v}`));\n // outline edges, with a point inside their piece\n const outline: { a: number; b: number; ref: Pt }[] = [];\n for (const poly of polys) {\n const ref = centroid(poly.map((i) => pt(V, i)));\n internalOf(poly).forEach((shared, i) => {\n if (!shared)\n outline.push({\n a: poly[i] as number,\n b: poly[(i + 1) % poly.length] as number,\n ref,\n });\n });\n }\n return polys.map((poly) => {\n const pts = poly.map((i) => pt(V, i));\n const internal = internalOf(poly);\n // the outline edges at the ends of the shared ones cut the overlap\n // where it would stick out of the shape (acute corners)\n const ends = new Set<number>();\n internal.forEach((shared, i) => {\n if (!shared) return;\n ends.add(poly[i] as number);\n ends.add(poly[(i + 1) % poly.length] as number);\n });\n const own = new Set(\n poly.map((v, i) => `${v},${poly[(i + 1) % poly.length]}`),\n );\n const guards: Plane[] = [];\n for (const e of outline) {\n if (!(ends.has(e.a) || ends.has(e.b)) || own.has(`${e.a},${e.b}`))\n continue;\n const plane = planeOf(pt(V, e.a), pt(V, e.b), e.ref, 0);\n if (plane && pts.every((p) => side(plane, p) >= -1e-6))\n guards.push(plane);\n }\n return { pts, internal, guards };\n });\n}\n\n/** Convex pieces of a simple polygon */\nexport function convexPieces(P: readonly Pt[]): Piece[] {\n const V = simplify(P);\n if (V.length < 3) return [];\n return mergeConvex(V, triangulate(V));\n}\n\n/** Convex pieces of a band between an outline and a hole around the same point */\nfunction bandPieces(outer: readonly Pt[], hole: readonly Pt[]): Piece[] {\n const O = simplify(outer);\n const H = simplify(hole);\n if (O.length < 3 || H.length < 3) return convexPieces(outer);\n const sign = (P: Pt[]) => (area(P) < 0 ? [...P].reverse() : P);\n const o = sign(O);\n const h = sign(H);\n const c: Pt = [\n h.reduce((s, p) => s + p[0], 0) / h.length,\n h.reduce((s, p) => s + p[1], 0) / h.length,\n ];\n const unwrap = (P: Pt[]) => {\n const angles = P.map((p) => Math.atan2(p[1] - c[1], p[0] - c[0]));\n let first = 0;\n angles.forEach((a, i) => {\n if (a < (angles[first] as number)) first = i;\n });\n const order = P.map((_, k) => (first + k) % P.length);\n const out: number[] = [];\n let previous = -Infinity;\n for (const i of order) {\n let a = angles[i] as number;\n while (a < previous) a += TAU;\n out.push(a);\n previous = a;\n }\n out.push((out[0] as number) + TAU);\n return { order, angles: out };\n };\n const uo = unwrap(o);\n const uh = unwrap(h);\n const V: Pt[] = [...o, ...h];\n const oi = (k: number) => uo.order[k % o.length] as number;\n const hi = (k: number) => o.length + (uh.order[k % h.length] as number);\n const tris: number[][] = [];\n let i = 0;\n let j = 0;\n while (i < o.length || j < h.length) {\n const nextO = i < o.length ? (uo.angles[i + 1] as number) : Infinity;\n const nextH = j < h.length ? (uh.angles[j + 1] as number) : Infinity;\n if (nextO <= nextH) {\n tris.push([oi(i), oi(i + 1), hi(j)]);\n i++;\n } else {\n tris.push([oi(i), hi(j + 1), hi(j)]);\n j++;\n }\n }\n return mergeConvex(\n V,\n tris.filter((t) => Math.abs(area(t.map((k) => pt(V, k)))) > 1e-6),\n );\n}\n\n// -------------------------------------------------------------- clipping\n\n/**\n * Views filling `base` clipped by half-planes: one rotated square with\n * `overflow: hidden` per plane, nested, its top side on the plane's line.\n * `ref` is a point of the drawn region, `extent` bounds the distance from\n * it to any point of the region.\n */\nfunction clipViews(\n planes: readonly Plane[],\n base: Base,\n color: string,\n ref: Pt,\n extent: number,\n): Prim[] {\n const kept: Plane[] = [];\n for (const plane of planes) {\n if (base.t === \"disc\") {\n const inset = side(plane, [base.cx, base.cy]);\n if (inset >= base.r1 - 1e-3) continue; // the whole disc is inside\n if (inset <= -base.r1) return []; // nothing left\n }\n kept.push(plane);\n }\n if (base.t === \"plane\" && !kept.length) return [];\n const size = 2 * extent + 8;\n const half = size / 2;\n\n const root: Prim[] = [];\n let into = root;\n let origin: Pt = [0, 0];\n let theta = 0;\n for (const { n, d } of kept) {\n const angle = Math.atan2(-n[0], n[1]);\n const u: Pt = [n[1], -n[0]];\n const off = n[0] * ref[0] + n[1] * ref[1] - d;\n const q: Pt = [ref[0] - off * n[0], ref[1] - off * n[1]];\n const o: Pt = [q[0] - half * u[0], q[1] - half * u[1]];\n const rel = angle - theta;\n const local = rotate([o[0] - origin[0], o[1] - origin[1]], -theta);\n const rh = rotate([half, half], rel);\n const clip: Prim = {\n t: \"clip\",\n x: local[0] - half + rh[0],\n y: local[1] - half + rh[1],\n size,\n rotate: rel,\n children: [],\n };\n into.push(clip);\n into = clip.children;\n origin = o;\n theta = angle;\n }\n if (base.t === \"disc\") {\n const c = rotate([base.cx - origin[0], base.cy - origin[1]], -theta);\n into.push({\n t: \"box\",\n x: c[0] - base.r1,\n y: c[1] - base.r1,\n w: base.r1 * 2,\n h: base.r1 * 2,\n radius: base.r1,\n ...(base.r0 > 0.25\n ? { borderWidth: base.r1 - base.r0, borderColor: color }\n : { color }),\n });\n } else into.push({ t: \"box\", x: 0, y: 0, w: size, h: size, color });\n return root;\n}\n\n/** Views drawing a convex piece of a shape */\nfunction pieceViews(piece: Piece, base: Base, color: string): Prim[] {\n const { pts } = piece;\n if (pts.length < 3) return [];\n const ref = centroid(pts);\n const planes: Plane[] = [];\n pts.forEach((a, i) => {\n const b = pt(pts, (i + 1) % pts.length);\n const plane = planeOf(a, b, ref, piece.internal[i] ? SEAM : 0);\n if (plane) planes.push(plane);\n });\n planes.push(...piece.guards);\n let x0 = Infinity;\n let y0 = Infinity;\n let x1 = -Infinity;\n let y1 = -Infinity;\n for (const p of pts) {\n x0 = Math.min(x0, p[0]);\n y0 = Math.min(y0, p[1]);\n x1 = Math.max(x1, p[0]);\n y1 = Math.max(y1, p[1]);\n }\n if (base.t === \"disc\") {\n x0 = Math.max(x0, base.cx - base.r1);\n y0 = Math.max(y0, base.cy - base.r1);\n x1 = Math.min(x1, base.cx + base.r1);\n y1 = Math.min(y1, base.cy + base.r1);\n }\n if (!(x1 > x0 && y1 > y0)) return [];\n // the centroid may lie outside the disc: distances from it, generously\n return clipViews(\n planes,\n base,\n color,\n ref,\n 2 * Math.hypot(x1 - x0, y1 - y0) + SEAM,\n );\n}\n\n// ------------------------------------------------------------ recognition\n\ninterface RoundRect {\n x: number;\n y: number;\n w: number;\n h: number;\n r: number;\n}\n\n/** An axis-aligned (rounded) rectangle */\nfunction asRoundRect(items: readonly Item[]): RoundRect | null {\n const arcs = items.filter((it) => it.t === \"A\");\n if (arcs.length !== 0 && arcs.length !== 4) return null;\n let r = 0;\n let x0 = Infinity;\n let y0 = Infinity;\n let x1 = -Infinity;\n let y1 = -Infinity;\n const grow = (x: number, y: number) => {\n x0 = Math.min(x0, x);\n y0 = Math.min(y0, y);\n x1 = Math.max(x1, x);\n y1 = Math.max(y1, y);\n };\n for (const it of items) {\n if (it.t === \"L\") {\n const dx = Math.abs(it.to[0] - it.from[0]);\n const dy = Math.abs(it.to[1] - it.from[1]);\n if (dx > 1e-3 && dy > 1e-3) return null;\n grow(it.from[0], it.from[1]);\n grow(it.to[0], it.to[1]);\n } else {\n if (Math.abs(Math.abs(it.a1 - it.a0) - Math.PI / 2) > 0.02) return null;\n if (r && Math.abs(it.r - r) > 0.01) return null;\n r = it.r;\n grow(it.cx - it.r, it.cy - it.r);\n grow(it.cx + it.r, it.cy + it.r);\n }\n }\n if (!(x1 > x0 && y1 > y0)) return null;\n for (const it of items) {\n if (it.t === \"A\") {\n const nearX =\n Math.abs(it.cx - (x0 + r)) < 0.05 || Math.abs(it.cx - (x1 - r)) < 0.05;\n const nearY =\n Math.abs(it.cy - (y0 + r)) < 0.05 || Math.abs(it.cy - (y1 - r)) < 0.05;\n if (!nearX || !nearY) return null;\n } else {\n // every straight side lies on the box\n const onX = (x: number) =>\n Math.abs(x - x0) < 0.05 || Math.abs(x - x1) < 0.05;\n const onY = (y: number) =>\n Math.abs(y - y0) < 0.05 || Math.abs(y - y1) < 0.05;\n const vertical = Math.abs(it.to[0] - it.from[0]) <= 1e-3;\n if (vertical ? !onX(it.from[0]) : !onY(it.from[1])) return null;\n }\n }\n if (!arcs.length && items.length < 4) return null;\n return { x: x0, y: y0, w: x1 - x0, h: y1 - y0, r };\n}\n\n/**\n * A region bounded by arcs of one center (and straight / curved sides inside\n * the ring of those arcs): its ring and the outline to clip it with\n */\nfunction asConcentric(\n items: readonly Item[],\n): { base: Extract<Base, { t: \"disc\" }>; outline: Pt[] } | null {\n const arcs = items.filter((it): it is ArcItem => it.t === \"A\");\n const first = arcs[0];\n if (!first) return null;\n const { cx, cy } = first;\n let r1 = 0;\n for (const a of arcs) {\n if (Math.hypot(a.cx - cx, a.cy - cy) > 0.5) return null;\n r1 = Math.max(r1, a.r);\n }\n let r0 = 0;\n for (const a of arcs) {\n if (Math.abs(a.r - r1) <= 0.5) continue;\n if (r0 && Math.abs(a.r - r0) > 0.5) return null;\n r0 = a.r;\n }\n const c: Pt = [cx, cy];\n for (const it of items)\n if (it.t === \"L\")\n for (const p of [it.from, it.to]) {\n const d = dist(p, c);\n if (d > r1 + 0.5 || (r0 > 0 && d < r0 - 0.5)) return null;\n }\n const outline: Pt[] = [];\n for (const it of items) {\n if (it.t === \"L\") {\n outline.push(it.from, it.to);\n continue;\n }\n const sweep = it.a1 - it.a0;\n if (Math.abs(it.r - r1) <= 0.5) {\n // tangents outside the outer circle: the disc does the rounding\n const n = Math.max(1, Math.ceil(Math.abs(sweep) / (Math.PI / 4)));\n const step = sweep / n;\n const far = r1 / Math.cos(step / 2);\n outline.push(polar(cx, cy, r1, it.a0));\n for (let k = 0; k < n; k++) {\n outline.push(polar(cx, cy, far, it.a0 + (k + 0.5) * step));\n outline.push(polar(cx, cy, r1, it.a0 + (k + 1) * step));\n }\n } else {\n // chords inside the inner circle: the ring does the rounding\n const n = Math.max(1, Math.ceil(Math.abs(sweep) / (Math.PI / 2)));\n for (let k = 0; k <= n; k++)\n outline.push(polar(cx, cy, it.r, it.a0 + (sweep * k) / n));\n }\n }\n return { base: { t: \"disc\", cx, cy, r0, r1 }, outline };\n}\n\nconst ringBox = (\n cx: number,\n cy: number,\n r1: number,\n r0: number,\n color: string,\n): Prim => ({\n t: \"box\",\n x: cx - r1,\n y: cy - r1,\n w: r1 * 2,\n h: r1 * 2,\n radius: r1,\n ...(r0 > 0.25 ? { borderWidth: r1 - r0, borderColor: color } : { color }),\n});\n\n/**\n * A sector of a ring between two straight sides (pie slices, donut segments,\n * gauge arcs, with or without gaps): the ring clipped by the two sides (two\n * halves split on the bisector past half a turn). Corner roundings are\n * dropped. `null` when the outline is something else.\n */\nfunction wedgeViews(\n items: readonly Item[],\n base: Extract<Base, { t: \"disc\" }>,\n color: string,\n /** Grows the straight sides (round caps cover them) */\n grow = 0,\n): Prim[] | null {\n const { cx, cy, r0, r1 } = base;\n const c: Pt = [cx, cy];\n const arcs = items.filter((it): it is ArcItem => it.t === \"A\");\n const outer = arcs.filter((a) => Math.abs(a.r - r1) <= 0.5);\n const arc = outer[0];\n if (!arc || outer.length !== 1 || arcs.length - outer.length > 1) return null;\n const a0 = Math.min(arc.a0, arc.a1);\n const a1 = Math.max(arc.a0, arc.a1);\n const span = a1 - a0;\n if (span >= TAU - 1e-3) return null;\n // the straight sides: radial segments, by the end of the arc they are at\n const gap = (a: number, b: number) => {\n const d = Math.abs(a - b) % TAU;\n return Math.min(d, TAU - d);\n };\n let start: Extract<Item, { t: \"L\" }> | null = null;\n let end: Extract<Item, { t: \"L\" }> | null = null;\n const length = (s: Extract<Item, { t: \"L\" }>) => dist(s.from, s.to);\n for (const it of items) {\n if (it.t !== \"L\" || length(it) < 0.3) continue;\n const far = dist(it.from, c) > dist(it.to, c) ? it.from : it.to;\n const rf = dist(far, c);\n if (rf < 0.5) continue;\n const dx = (it.to[0] - it.from[0]) / length(it);\n const dy = (it.to[1] - it.from[1]) / length(it);\n const rx = (far[0] - cx) / rf;\n const ry = (far[1] - cy) / rf;\n if (Math.abs(dx * ry - dy * rx) > 0.14) continue; // not radial (8°)\n const phi = Math.atan2(far[1] - cy, far[0] - cx);\n if (gap(phi, a0) <= gap(phi, a1)) {\n if (!start || length(it) > length(start)) start = it;\n } else if (!end || length(it) > length(end)) end = it;\n }\n if (!start || !end) return null;\n const mid = (a0 + a1) / 2;\n const rm = r0 > 0 ? (r0 + r1) / 2 : r1 / 2;\n const probe = polar(cx, cy, rm, mid);\n const hs = planeOf(start.from, start.to, probe, grow);\n const he = planeOf(end.from, end.to, probe, grow);\n if (!hs || !he || side(hs, probe) <= 0 || side(he, probe) <= 0) return null;\n const extent = 2 * r1 + SEAM;\n if (span <= Math.PI - 1e-3)\n return clipViews([hs, he], base, color, probe, extent);\n // past half a turn: the halves on each side of the bisector\n const axis: Pt = [cx + Math.cos(mid), cy + Math.sin(mid)];\n const p1 = polar(cx, cy, rm, a0 + span / 4);\n const p2 = polar(cx, cy, rm, a1 - span / 4);\n const m1 = planeOf(c, axis, p1, SEAM);\n const m2 = planeOf(c, axis, p2, SEAM);\n if (!m1 || !m2) return null;\n return [\n ...clipViews([hs, m1], base, color, p1, extent),\n ...clipViews([he, m2], base, color, p2, extent),\n ];\n}\n\nconst roundBox = (r: RoundRect, color: string, shadow: boolean): Prim => ({\n t: \"box\",\n x: r.x,\n y: r.y,\n w: r.w,\n h: r.h,\n color,\n ...(r.r > 0 ? { radius: r.r } : null),\n ...(shadow ? { shadow } : null),\n});\n\nfunction piecesViews(\n pieces: readonly Piece[],\n base: Base,\n color: string,\n): Prim[] {\n const out: Prim[] = [];\n for (const piece of pieces.slice(0, MAX_PIECES))\n out.push(...pieceViews(piece, base, color));\n return out;\n}\n\n/** Views filling the subpaths with one opaque color (nonzero rule) */\nexport function regionViews(\n paths: readonly Subpath[],\n color: string,\n shadow = false,\n): Prim[] {\n const subs = paths\n .map((sub) => ({ start: [sub.x, sub.y] as Pt, items: itemsOf(sub, true) }))\n .filter((s) => s.items.length > 0);\n if (!subs.length) return [];\n\n // full circles: a disc, or a ring with the hole\n if (subs.every((s) => s.items.length === 1 && isFull(s.items[0]))) {\n const circles = subs.map((s) => s.items[0] as ArcItem);\n const [a, b] = circles;\n if (\n a &&\n b &&\n circles.length === 2 &&\n Math.hypot(a.cx - b.cx, a.cy - b.cy) < 0.5 &&\n Math.abs(a.r - b.r) > 0.25 &&\n a.a1 - a.a0 > 0 !== b.a1 - b.a0 > 0\n )\n return [\n ringBox(a.cx, a.cy, Math.max(a.r, b.r), Math.min(a.r, b.r), color),\n ];\n return circles.map((c) => ringBox(c.cx, c.cy, c.r, 0, color));\n }\n\n const firstSub = subs[0];\n if (subs.length === 1 && firstSub) {\n const box = asRoundRect(firstSub.items);\n if (box) return [roundBox(box, color, shadow)];\n const ring = asConcentric(firstSub.items);\n if (ring)\n return (\n wedgeViews(firstSub.items, ring.base, color) ??\n piecesViews(convexPieces(ring.outline), ring.base, color)\n );\n }\n\n const polys = subs.map((s) => flatten(s.items, s.start));\n // an outline and a hole wound the other way (radar rings)\n const [outer, hole] = polys;\n if (\n polys.length === 2 &&\n outer &&\n hole &&\n area(outer) * area(hole) < 0 &&\n contains(outer, hole)\n )\n return piecesViews(bandPieces(outer, hole), { t: \"plane\" }, color);\n const out: Prim[] = [];\n for (const poly of polys)\n out.push(...piecesViews(convexPieces(poly), { t: \"plane\" }, color));\n return out;\n}\n\nfunction contains(outer: readonly Pt[], inner: readonly Pt[]) {\n const box = (P: readonly Pt[]) => {\n let x0 = Infinity;\n let y0 = Infinity;\n let x1 = -Infinity;\n let y1 = -Infinity;\n for (const p of P) {\n x0 = Math.min(x0, p[0]);\n y0 = Math.min(y0, p[1]);\n x1 = Math.max(x1, p[0]);\n y1 = Math.max(y1, p[1]);\n }\n return { x0, y0, x1, y1 };\n };\n const a = box(outer);\n const b = box(inner);\n return (\n b.x0 >= a.x0 - 0.5 &&\n b.y0 >= a.y0 - 0.5 &&\n b.x1 <= a.x1 + 0.5 &&\n b.y1 <= a.y1 + 0.5\n );\n}\n\n// ---------------------------------------------------------------- strokes\n\n/** Splits a polyline into its dashes (canvas `setLineDash`) */\nexport function dashPolyline(\n points: readonly Pt[],\n dash: readonly number[],\n): Pt[][] {\n let pattern = dash.filter((v) => Number.isFinite(v) && v >= 0);\n if (pattern.length % 2) pattern = [...pattern, ...pattern];\n const period = pattern.reduce((a, b) => a + b, 0);\n if (!pattern.length || period <= 0) return [points.slice()];\n let total = 0;\n for (let i = 1; i < points.length; i++)\n total += dist(pt(points, i - 1), pt(points, i));\n // keeps the number of views bounded\n const scale = total / period > 300 ? total / period / 300 : 1;\n const out: Pt[][] = [];\n let k = 0;\n let left = (pattern[0] as number) * scale;\n let on = true;\n let run: Pt[] = [pt(points, 0)];\n for (let i = 1; i < points.length; i++) {\n let a = pt(points, i - 1);\n const b = pt(points, i);\n let len = dist(a, b);\n while (len > 1e-9) {\n const step = Math.min(left, len);\n const t = step / len;\n const p: Pt = [a[0] + (b[0] - a[0]) * t, a[1] + (b[1] - a[1]) * t];\n if (on) run.push(p);\n a = p;\n len -= step;\n left -= step;\n if (left <= 1e-9) {\n if (on && run.length > 1) out.push(run);\n on = !on;\n k = (k + 1) % pattern.length;\n left = Math.max((pattern[k] as number) * scale, on ? 0 : 0.5);\n run = [p];\n }\n }\n }\n if (on && run.length > 1) out.push(run);\n return out;\n}\n\nconst segmentBox = (\n a: Pt,\n b: Pt,\n width: number,\n color: string,\n cap: StrokeOp[\"cap\"],\n): Prim => {\n const extra = cap === \"butt\" ? 0 : width;\n const length = dist(a, b) + extra;\n return {\n t: \"box\",\n x: (a[0] + b[0]) / 2 - length / 2,\n y: (a[1] + b[1]) / 2 - width / 2,\n w: length,\n h: width,\n color,\n ...(cap === \"round\" ? { radius: width / 2 } : null),\n rotate: Math.atan2(b[1] - a[1], b[0] - a[0]),\n };\n};\n\nconst dotBox = (p: Pt, d: number, color: string): Prim => ({\n t: \"box\",\n x: p[0] - d / 2,\n y: p[1] - d / 2,\n w: d,\n h: d,\n radius: d / 2,\n color,\n});\n\n/** Views of a stroke; `colorAt` gives the opaque color around a point */\nfunction strokeViews(op: StrokeOp, colorAt: (p: Pt) => string): Prim[] {\n const w = op.width;\n const subs = op.paths\n .map((sub) => ({\n start: [sub.x, sub.y] as Pt,\n items: itemsOf(sub, sub.closed),\n closed: sub.closed,\n }))\n .filter((s) => s.items.length > 0);\n if (!subs.length || !(w > 0)) return [];\n const plain = !op.paint.gradient && op.dash.length === 0;\n const first = subs[0];\n if (plain && subs.length === 1 && first) {\n const { items } = first;\n const only = items[0];\n // a circle: a ring view\n if (items.length === 1 && only && isFull(only))\n return [\n ringBox(\n only.cx,\n only.cy,\n only.r + w / 2,\n Math.max(0, only.r - w / 2),\n colorAt([only.cx, only.cy]),\n ),\n ];\n // an arc: a band (the region of its outline), with its caps\n if (items.length === 1 && only?.t === \"A\") {\n const ro = only.r + w / 2;\n const ri = only.r - w / 2;\n const color = colorAt([only.cx, only.cy]);\n const band: Subpath = {\n ...pointAt(only.cx, only.cy, ro, only.a0),\n closed: true,\n segs: [\n { t: \"A\", cx: only.cx, cy: only.cy, r: ro, a0: only.a0, a1: only.a1 },\n ri > 0.25\n ? {\n t: \"A\",\n cx: only.cx,\n cy: only.cy,\n r: ri,\n a0: only.a1,\n a1: only.a0,\n }\n : { t: \"L\", x: only.cx, y: only.cy },\n ] as Segment[],\n };\n const round = op.cap === \"round\";\n const ring = asConcentric(itemsOf(band, true));\n const views =\n (ring &&\n wedgeViews(\n itemsOf(band, true),\n ring.base,\n color,\n round ? SEAM : 0,\n )) ||\n regionViews([band], color);\n if (round)\n views.push(\n dotBox(polar(only.cx, only.cy, only.r, only.a0), w, color),\n dotBox(polar(only.cx, only.cy, only.r, only.a1), w, color),\n );\n return views;\n }\n // a rounded rectangle: a bordered view\n if (first.closed) {\n const box = asRoundRect(items);\n if (box)\n return [\n {\n t: \"box\",\n x: box.x - w / 2,\n y: box.y - w / 2,\n w: box.w + w,\n h: box.h + w,\n radius: box.r > 0 ? box.r + w / 2 : 0,\n borderWidth: w,\n borderColor: colorAt([box.x, box.y]),\n },\n ];\n }\n }\n const out: Prim[] = [];\n for (const sub of subs) {\n const flat = flatten(sub.items, sub.start, 0.25);\n const line = dedupe(sub.closed ? [...flat, pt(flat, 0)] : flat, false);\n if (line.length < 2) continue;\n const runs = op.dash.length ? dashPolyline(line, op.dash) : [line];\n for (const run of runs) {\n const n = run.length;\n const closedRun = n > 2 && dist(pt(run, 0), pt(run, n - 1)) < 1e-3;\n // joins of butt-capped strokes: thin ones and sharp corners get a\n // round dot; the gentle bends of wide strokes (sankey links) extend\n // the segments over the gap instead (a dot as wide as the stroke would\n // bulge out of a curved ribbon)\n const extend = new Array<number>(n).fill(0);\n const dots: number[] = [];\n if (op.cap !== \"round\" && w >= 1.5)\n for (let i = closedRun ? 0 : 1; i < n - 1; i++) {\n const prev = pt(run, i === 0 ? n - 2 : i - 1);\n const at = pt(run, i);\n const next = pt(run, i + 1);\n const l1 = dist(prev, at);\n const l2 = dist(at, next);\n const cos =\n l1 > 1e-9 && l2 > 1e-9\n ? ((at[0] - prev[0]) * (next[0] - at[0]) +\n (at[1] - prev[1]) * (next[1] - at[1])) /\n (l1 * l2)\n : 1;\n const turn = Math.acos(Math.max(-1, Math.min(1, cos)));\n if (op.cap === \"butt\" && w >= 6 && turn < Math.PI / 4) {\n extend[i] = (w / 2) * Math.tan(turn / 2) + 0.5;\n if (i === 0) extend[n - 1] = extend[0] as number;\n } else dots.push(i);\n }\n for (let i = 1; i < n; i++) {\n let a = pt(run, i - 1);\n let b = pt(run, i);\n const length = dist(a, b);\n const e0 = extend[i - 1] as number;\n const e1 = extend[i] as number;\n if (length > 1e-9 && (e0 > 0 || e1 > 0)) {\n const ux = (b[0] - a[0]) / length;\n const uy = (b[1] - a[1]) / length;\n a = [a[0] - ux * e0, a[1] - uy * e0];\n b = [b[0] + ux * e1, b[1] + uy * e1];\n }\n const mid: Pt = [(a[0] + b[0]) / 2, (a[1] + b[1]) / 2];\n out.push(segmentBox(a, b, w, colorAt(mid), op.cap));\n }\n for (const i of dots)\n out.push(dotBox(pt(run, i), w, colorAt(pt(run, i))));\n }\n }\n return out;\n}\n\nconst pointAt = (cx: number, cy: number, r: number, a: number) => {\n const [x, y] = polar(cx, cy, r, a);\n return { x, y };\n};\n\n// ------------------------------------------------------------------- ops\n\nconst wrap = (views: Prim[], opacity: number): Prim[] => {\n if (!views.length) return [];\n if (opacity >= 0.999) return views;\n return [{ t: \"group\", opacity, children: views }];\n};\n\nconst boundsCenter = (paths: readonly Subpath[]): Pt => {\n let x0 = Infinity;\n let y0 = Infinity;\n let x1 = -Infinity;\n let y1 = -Infinity;\n for (const sub of paths) {\n const grow = (x: number, y: number) => {\n x0 = Math.min(x0, x);\n y0 = Math.min(y0, y);\n x1 = Math.max(x1, x);\n y1 = Math.max(y1, y);\n };\n grow(sub.x, sub.y);\n for (const s of sub.segs) {\n if (s.t === \"L\") grow(s.x, s.y);\n else {\n grow(s.cx - s.r, s.cy - s.r);\n grow(s.cx + s.r, s.cy + s.r);\n }\n }\n }\n return Number.isFinite(x0) ? [(x0 + x1) / 2, (y0 + y1) / 2] : [0, 0];\n};\n\nfunction fillOp(op: FillOp): Prim[] {\n const color: Color = paintAt(op.paint, ...boundsCenter(op.paths));\n const opacity = color.a * op.alpha;\n if (opacity <= 0.002) return [];\n return wrap(regionViews(op.paths, opaqueCss(color), op.shadow), opacity);\n}\n\nfunction strokeOp(op: StrokeOp): Prim[] {\n const { paint } = op;\n let alpha = paint.color.a;\n if (paint.gradient?.stops.length)\n alpha = Math.max(...paint.gradient.stops.map((s) => s.color.a));\n const opacity = alpha * op.alpha;\n if (opacity <= 0.002) return [];\n const colorAt = (p: Pt) => {\n const c = paintAt(paint, p[0], p[1]);\n // gradient stops of different alphas: folded into the opaque color\n return paint.gradient && alpha > 0 && c.a < alpha - 1e-3\n ? cssWithAlpha(c, 1 / alpha)\n : opaqueCss(c);\n };\n return wrap(strokeViews(op, colorAt), opacity);\n}\n\nfunction textOp(op: TextOp): Prim[] {\n if (!op.text || op.alpha * op.color.a <= 0.002) return [];\n return [\n {\n t: \"text\",\n text: op.text,\n x: op.x,\n y: op.y,\n size: op.size,\n weight: op.weight,\n align: op.align,\n baseline: op.baseline,\n color: cssWithAlpha(op.color, op.alpha),\n rotate: op.rotate,\n ...(op.maxWidth !== undefined ? { maxWidth: op.maxWidth } : null),\n ...(op.halo ? { halo: cssWithAlpha(op.halo, op.alpha) } : null),\n },\n ];\n}\n\n/** Views of a recorded frame, in drawing order */\nexport function framePrims(ops: readonly DrawOp[]): Prim[] {\n const out: Prim[] = [];\n for (const op of ops) {\n if (op.kind === \"fill\") out.push(...fillOp(op));\n else if (op.kind === \"stroke\") out.push(...strokeOp(op));\n else out.push(...textOp(op));\n }\n return out;\n}\n"],"mappings":"kCA8BA,IAAMI,EAAM,KAAK,GAAK,EAEhBC,EAAO,GAEPC,EAAa,IAgEbC,GAAQ,EAAc,IAC1BC,EAAM,EAAE,GAAKC,EAAE,GAAKD,EAAM,EAAE,GAAKC,EAAE,GAAKD,EAAM,EAG1CE,GAAW,EAAO,EAAO,EAAY,IAA+B,CACxE,IAAMC,EAAM,KAAK,MAAMC,EAAE,GAAKC,EAAE,GAAID,EAAE,GAAKC,EAAE,EAAE,EAC/C,GAAIF,EAAM,KAAM,OAAO,KACvB,IAAIG,EAAQ,CAAC,EAAEF,EAAE,GAAKC,EAAE,IAAMF,GAAMC,EAAE,GAAKC,EAAE,IAAMF,CAAG,EAGtD,OAFIG,EAAE,IAAMC,EAAO,GAAKF,EAAE,IAAMC,EAAE,IAAMC,EAAO,GAAKF,EAAE,IAAM,IAC1D,EAAI,CAAC,CAACC,EAAE,GAAI,CAACA,EAAE,EAAE,GACZ,CAAE,IAAG,EAAGA,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKG,CAAK,CAClD,EAEMC,EAAY,GAA2B,CAC3CC,EAAI,QAAQ,EAAG,IAAMC,EAAIV,EAAE,GAAI,CAAC,EAAI,KAAK,IAAI,EAAGS,EAAI,MAAM,EAC1DA,EAAI,QAAQ,EAAG,IAAMC,EAAIV,EAAE,GAAI,CAAC,EAAI,KAAK,IAAI,EAAGS,EAAI,MAAM,CAC5D,EAEME,GAAM,EAAqB,IAAcC,EAAKC,GAC9CC,GAAU,EAAO,EAAO,KAC3BX,EAAE,GAAKC,EAAE,KAAOW,EAAE,GAAKX,EAAE,KAAOD,EAAE,GAAKC,EAAE,KAAOW,EAAE,GAAKX,EAAE,IACtDY,GAAQ,EAAO,IAAU,KAAK,MAAMZ,EAAE,GAAKD,EAAE,GAAIC,EAAE,GAAKD,EAAE,EAAE,EAC5Dc,GAAS,EAAY,EAAY,EAAW,IAAkB,CAClEC,EAAKC,EAAI,KAAK,IAAIf,CAAC,EACnBgB,EAAKD,EAAI,KAAK,IAAIf,CAAC,CACrB,EACMiB,GAAU,EAAO,IAAkB,CACvC,IAAMN,EAAI,KAAK,IAAIX,CAAC,EACdM,EAAI,KAAK,IAAIN,CAAC,EACpB,MAAO,CAACkB,EAAE,GAAKP,EAAIO,EAAE,GAAKZ,EAAGY,EAAE,GAAKZ,EAAIY,EAAE,GAAKP,CAAC,CAClD,EAEaQ,EAAQ,GAAqB,CACxC,IAAIb,EAAI,EACR,IAAK,IAAIG,EAAI,EAAGA,EAAIW,EAAE,OAAQ,IAAK,CACjC,IAAMpB,EAAIO,EAAGa,EAAGX,CAAC,EACXV,EAAIQ,EAAGa,GAAIX,EAAI,GAAKW,EAAE,MAAM,EAClC,GAAKpB,EAAE,GAAKD,EAAE,GAAKA,EAAE,GAAKC,EAAE,EAC9B,CACA,OAAOM,EAAI,CACb,EAUA,SAASe,EAAQ,EAAc,EAAwB,CACrD,IAAMC,EAAc,CAAC,EACjBC,EAAS,CAACC,EAAI,EAAGA,EAAI,CAAC,EACpBC,EAAQ,GAAW,CACnBb,EAAKW,EAAIG,CAAE,EAAI,MAAMJ,EAAI,KAAK,CAAE,EAAG,IAAK,KAAMC,EAAI,IAAG,CAAC,EAC1D,EAAKG,CACP,EACA,IAAK,IAAMpB,KAAKkB,EAAI,KACdlB,EAAE,IAAM,IAAKmB,EAAK,CAACnB,EAAE,EAAGA,EAAE,CAAC,CAAC,GAE9BmB,EAAKZ,EAAMP,EAAE,GAAIA,EAAE,GAAIA,EAAE,EAAGA,EAAE,EAAE,CAAC,EACjCgB,EAAI,KAAK,CAAE,GAAGhB,CAAE,CAAC,EACjB,EAAKO,EAAMP,EAAE,GAAIA,EAAE,GAAIA,EAAE,EAAGA,EAAE,EAAE,GAIpC,OADIqB,GAAOF,EAAK,CAACD,EAAI,EAAGA,EAAI,CAAC,CAAC,EACvBF,CACT,CAGA,SAASM,EAAQ,EAAwB,EAAW,EAAY,GAAW,CACzE,IAAMN,EAAY,CAACO,CAAK,EACxB,IAAK,IAAMC,KAAMC,EACf,GAAID,EAAG,IAAM,IAAKR,EAAI,KAAKQ,EAAG,EAAE,MAC3B,CACH,IAAME,EAAQF,EAAG,GAAKA,EAAG,GACnBG,EACJH,EAAG,EAAII,EACH,KAAK,IAAI,IAAM,EAAI,KAAK,KAAK,KAAK,IAAI,GAAI,EAAIA,EAAYJ,EAAG,CAAC,CAAC,CAAC,EAChE,KAAK,GAAK,EACV7B,EAAI,KAAK,IAAI,IAAK,KAAK,IAAI,EAAG,KAAK,KAAK,KAAK,IAAI+B,CAAK,EAAIC,CAAI,CAAC,CAAC,EACtEX,EAAI,KAAKT,EAAMiB,EAAG,GAAIA,EAAG,GAAIA,EAAG,EAAGA,EAAG,EAAE,CAAC,EACzC,IAAK,IAAIK,EAAI,EAAGA,GAAKlC,EAAG,IACtBqB,EAAI,KAAKT,EAAMiB,EAAG,GAAIA,EAAG,GAAIA,EAAG,EAAGA,EAAG,GAAME,EAAQG,EAAKlC,CAAC,CAAC,CAC/D,CAEF,OAAOmC,EAAOd,CAAG,CACnB,CAGA,SAASc,EAAO,EAAkB,EAAS,GAAY,CACrD,IAAMd,EAAY,CAAC,EACnB,IAAK,IAAM1B,KAAKwB,EAAG,CACjB,IAAMiB,EAAOf,EAAIA,EAAI,OAAS,IAC1B,CAACe,GAAQzB,EAAKyB,EAAMzC,CAAC,EAAI,OAAM0B,EAAI,KAAK1B,CAAC,CAC/C,CAOA,OALE0C,GACAhB,EAAI,OAAS,GACbV,EAAKL,EAAGe,EAAK,CAAC,EAAGf,EAAGe,EAAKA,EAAI,OAAS,CAAC,CAAC,GAAK,MAE7CA,EAAI,IAAI,EACHA,CACT,CAGA,SAASiB,EAAS,EAAwB,CACxC,IAAI/B,EAAO4B,EAAOhB,CAAC,EACfoB,EAAU,GACd,KAAOA,GAAWhC,EAAK,OAAS,GAAG,CACjC,EAAU,GACV,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAK,OAAQ,IAAK,CACpC,IAAMR,EAAIO,EAAGC,GAAOC,EAAI,EAAID,EAAK,QAAUA,EAAK,MAAM,EAChDT,EAAIQ,EAAGC,EAAMC,CAAC,EACdE,EAAIJ,EAAGC,GAAOC,EAAI,GAAKD,EAAK,MAAM,EAClCiC,EAAQ,KAAK,IAAI7B,EAAKZ,EAAGD,CAAC,EAAGa,EAAKb,EAAGY,CAAC,EAAG,IAAI,EAC7C+B,EAAOhC,EAAOV,EAAGD,EAAGY,CAAC,EAAI8B,EACzBE,GACH5C,EAAE,GAAKC,EAAE,KAAOW,EAAE,GAAKZ,EAAE,KAAOA,EAAE,GAAKC,EAAE,KAAOW,EAAE,GAAKZ,EAAE,IAAM,EAClE,GAAI,KAAK,IAAI2C,CAAI,EAAI,MAAQC,EAAS,CACpC,EAAOnC,EAAK,QAAQ,EAAG,IAAM2B,IAAM1B,CAAC,EACpC,EAAU,GACV,KACF,CACF,CACF,CACA,OAAOD,CACT,CAIA,IAAMoC,EAAU,GACdd,GAAI,IAAM,KAAO,KAAK,IAAIA,EAAG,GAAKA,EAAG,EAAE,GAAKvC,EAAM,KAKpD,SAAgBsD,EAAY,EAA8B,CACxD,IAAM5C,EAAImB,EAAE,OACZ,GAAInB,EAAI,EAAG,MAAO,CAAC,EACnB,IAAI6C,EAAM1B,EAAE,KAAK,EAAG,IAAMX,CAAC,EACvBU,EAAKC,CAAC,EAAI,IAAG,EAAM0B,EAAI,QAAQ,GACnC,IAAMC,EAAmB,CAAC,EACpB7C,GAAU,EAAO,EAAO,EAAO,IACnCQ,EAAOV,EAAGD,EAAGH,CAAC,EAAI,MAAQc,EAAOX,EAAGY,EAAGf,CAAC,EAAI,MAAQc,EAAOC,EAAGX,EAAGJ,CAAC,EAAI,KACpEoD,EAAQ,EACZ,KAAOF,EAAI,OAAS,GAAK,IAAU7C,EAAIA,EAAI,IAAI,CAC7C,IAAIgD,EAAQ,GACZ,IAAK,IAAId,EAAI,EAAGA,EAAIW,EAAI,OAAQ,IAAK,CACnC,IAAMI,EAAKJ,GAAKX,EAAI,EAAIW,EAAI,QAAUA,EAAI,QACpCK,EAAKL,EAAIX,GACTiB,EAAKN,GAAKX,EAAI,GAAKW,EAAI,QACvB9C,EAAIO,EAAGa,EAAG8B,CAAE,EACZnD,EAAIQ,EAAGa,EAAG+B,CAAE,EACZxC,EAAIJ,EAAGa,EAAGgC,CAAE,EAClB,GAAI1C,EAAOV,EAAGD,EAAGY,CAAC,GAAK,KAAM,SAC7B,IAAI0C,EAAU,GACd,IAAK,IAAMC,KAAMR,EAAK,CACpB,GAAIQ,IAAOJ,GAAMI,IAAOH,GAAMG,IAAOF,EAAI,SACzC,IAAMlC,EAAIX,EAAGa,EAAGkC,CAAE,EAClB,GAAI,IAAKpC,EAAGlB,CAAC,EAAI,MAAQY,EAAKM,EAAGnB,CAAC,EAAI,MAAQa,EAAKM,EAAGP,CAAC,EAAI,OAEvDT,EAAOgB,EAAGlB,EAAGD,EAAGY,CAAC,EAAG,CACtB,EAAU,GACV,KACF,CACF,CACA,GAAI,GAGJ,CAFAoC,EAAK,KAAK,CAACG,EAAIC,EAAIC,CAAE,CAAC,EACtBN,EAAI,OAAOX,EAAG,CAAC,EACf,EAAQ,GACR,KADQ,CAEV,CACA,GAAI,CAACc,EAAO,CAEV,IAAIM,EAAO,EACPC,EAAO,IACX,IAAK,IAAIrB,EAAI,EAAGA,EAAIW,EAAI,OAAQ,IAAK,CACnC,IAAMW,EAAI,KAAK,IACb/C,EACEH,EAAGa,EAAG0B,GAAKX,EAAI,EAAIW,EAAI,QAAUA,EAAI,OAAiB,EACtDvC,EAAGa,EAAG0B,EAAIX,EAAY,EACtB5B,EAAGa,EAAG0B,GAAKX,EAAI,GAAKW,EAAI,OAAiB,CAC3C,CACF,EACIW,EAAID,IACN,EAAOC,EACP,EAAOtB,EAEX,CACAW,EAAI,OAAOS,EAAM,CAAC,CACpB,CACF,CACA,GAAIT,EAAI,SAAW,EAAG,CACpB,GAAM,CAACI,EAAIC,EAAIC,GAAMN,EACjBpC,EAAOH,EAAGa,EAAG8B,CAAE,EAAG3C,EAAGa,EAAG+B,CAAE,EAAG5C,EAAGa,EAAGgC,CAAE,CAAC,EAAI,MAAML,EAAK,KAAK,CAACG,EAAIC,EAAIC,CAAE,CAAC,CAC5E,CACA,OAAOL,CACT,CAEA,IAAMW,GAAU,EAAkB,IAA4B,CAC5D,IAAK,IAAIjD,EAAI,EAAGA,EAAIkD,EAAK,OAAQ,IAAK,CACpC,IAAM3D,EAAIO,EAAGqD,EAAGD,GAAMlD,EAAI,EAAIkD,EAAK,QAAUA,EAAK,OAAiB,EAC7D5D,EAAIQ,EAAGqD,EAAGD,EAAKlD,EAAY,EAC3BE,EAAIJ,EAAGqD,EAAGD,GAAMlD,EAAI,GAAKkD,EAAK,OAAiB,EACrD,GAAIjD,EAAOV,EAAGD,EAAGY,CAAC,EAAI,MAAQ,KAAK,IAAI,EAAGC,EAAKZ,EAAGD,CAAC,EAAIa,EAAKb,EAAGY,CAAC,CAAC,EAC/D,MAAO,EACX,CACA,MAAO,EACT,EAMA,SAAgBkD,EACd,EACA,EACS,CACT,IAAMC,EAAQf,EAAK,IAAK,GACtB5B,EAAK,EAAE,IAAK,GAAMZ,EAAGqD,EAAGnD,CAAC,CAAC,CAAC,EAAI,EAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAI,CAAC,GAAG,CAAC,CAC7D,EACIsD,EAAS,GACb,KAAOA,GAAQ,CACb,EAAS,GACT,MAAO,IAAK,IAAInE,EAAI,EAAGA,EAAIkE,EAAM,OAAQ,IAAK,CAC5C,IAAME,EAAIF,EAAMlE,GAChB,IAAK,IAAIa,EAAI,EAAGA,EAAIuD,EAAE,OAAQ,IAAK,CACjC,IAAMhE,EAAIgE,EAAEvD,GACNV,EAAIiE,GAAGvD,EAAI,GAAKuD,EAAE,QACxB,IAAK,IAAIC,EAAIrE,EAAI,EAAGqE,EAAIH,EAAM,OAAQ,IAAK,CACzC,IAAMI,EAAIJ,EAAMG,GACVE,EAAID,EAAE,WACT,EAAG,IAAMhD,IAAMnB,GAAKmE,GAAG/B,EAAI,GAAK+B,EAAE,UAAYlE,CACjD,EACA,GAAImE,EAAI,EAAG,SAEX,IAAMjB,GAAMzC,EAAI,GAAKuD,EAAE,OACjBI,EAAkB,CAAC,EACzB,IAAK,IAAIjC,EAAI,EAAGA,EAAI6B,EAAE,OAAQ,IAC5BI,EAAM,KAAKJ,GAAGd,EAAKf,GAAK6B,EAAE,OAAiB,EAC7C,IAAMK,EAAiB,CAAC,EACxB,IAAK,IAAIlC,EAAI,EAAGA,EAAI+B,EAAE,OAAQ,IAC5BG,EAAK,KAAKH,GAAGC,EAAIhC,GAAK+B,EAAE,OAAiB,EAC3C,IAAMI,EAAY,CAAC,GAAGF,EAAO,GAAGC,CAAI,EACpC,GAAKX,EAAOE,EAAGU,CAAS,EAGxB,CAFA,EAAM1E,GAAK0E,EACXR,EAAM,OAAOG,EAAG,CAAC,EACjB,EAAS,GACT,MAAM,KADG,CAEX,CACF,CACF,CACF,CACA,IAAMM,EAAQ,IAAI,IAClB,IAAK,IAAMZ,KAAQG,EACjB,IAAK,IAAIrD,EAAI,EAAGA,EAAIkD,EAAK,OAAQ,IAC/BY,EAAM,IAAI,GAAGZ,EAAKlD,GAAG,GAAGkD,GAAMlD,EAAI,GAAKkD,EAAK,SAAS,EACzD,IAAMa,EAAc,GAClBb,EAAK,KAAK,EAAG,IAAMY,EAAM,IAAI,GAAGZ,GAAMlD,EAAI,GAAKkD,EAAK,QAAQ,GAAGzC,GAAG,CAAC,EAE/DuD,EAA+C,CAAC,EACtD,IAAK,IAAMd,KAAQG,EAAO,CACxB,IAAMY,EAAMtE,EAASuD,EAAK,IAAK,GAAMpD,EAAGqD,EAAGnD,CAAC,CAAC,CAAC,EAC9C+D,EAAWb,CAAI,CAAC,CAAC,SAAS,EAAQ,IAAM,CACjCgB,GACHF,EAAQ,KAAK,CACX,EAAGd,EAAKlD,GACR,EAAGkD,GAAMlD,EAAI,GAAKkD,EAAK,QACvB,KACF,CAAC,CACL,CAAC,CACH,CACA,OAAOG,EAAM,IAAK,GAAS,CACzB,IAAMzD,EAAMsD,EAAK,IAAK,GAAMpD,EAAGqD,EAAGnD,CAAC,CAAC,EAC9BmE,EAAWJ,EAAWb,CAAI,EAG1BkB,EAAO,IAAI,IACjBD,EAAS,SAAS,EAAQ,IAAM,CACzBD,IACLE,EAAK,IAAIlB,EAAKlD,EAAY,EAC1BoE,EAAK,IAAIlB,GAAMlD,EAAI,GAAKkD,EAAK,OAAiB,EAChD,CAAC,EACD,IAAMmB,EAAM,IAAI,IACdnB,EAAK,KAAK,EAAG,IAAM,GAAGzC,EAAE,GAAGyC,GAAMlD,EAAI,GAAKkD,EAAK,SAAS,CAC1D,EACMoB,EAAkB,CAAC,EACzB,IAAK,IAAMC,KAAKP,EAAS,CACvB,GAAI,EAAEI,EAAK,IAAIG,EAAE,CAAC,GAAKH,EAAK,IAAIG,EAAE,CAAC,IAAMF,EAAI,IAAI,GAAGE,EAAE,EAAE,GAAGA,EAAE,GAAG,EAC9D,SACF,IAAMrF,EAAQE,EAAQU,EAAGqD,EAAGoB,EAAE,CAAC,EAAGzE,EAAGqD,EAAGoB,EAAE,CAAC,EAAGA,EAAE,IAAK,CAAC,EAClDrF,GAASU,EAAI,MAAO,GAAMX,EAAKC,EAAOC,CAAC,GAAK,KAAK,GACnDmF,EAAO,KAAKpF,CAAK,CACrB,CACA,MAAO,CAAE,MAAK,WAAU,QAAO,CACjC,CAAC,CACH,CAGA,SAAgBsF,EAAa,EAA2B,CACtD,IAAMrB,EAAIrB,EAASnB,CAAC,EAEpB,OADIwC,EAAE,OAAS,EAAU,CAAC,EACnBC,EAAYD,EAAGf,EAAYe,CAAC,CAAC,CACtC,CAGA,SAASsB,EAAW,EAAsB,EAA8B,CACtE,IAAMC,EAAI5C,EAAS6C,CAAK,EAClBC,EAAI9C,EAAS+C,CAAI,EACvB,GAAIH,EAAE,OAAS,GAAKE,EAAE,OAAS,EAAG,OAAOJ,EAAaG,CAAK,EAC3D,IAAMG,EAAQ,GAAapE,EAAKC,CAAC,EAAI,EAAI,CAAC,GAAGA,CAAC,CAAC,CAAC,QAAQ,EAAIA,EACtD,EAAImE,EAAKJ,CAAC,EACVK,EAAID,EAAKF,CAAC,EACV1E,EAAQ,CACZ6E,EAAE,QAAQ,EAAG,IAAMlF,EAAIV,EAAE,GAAI,CAAC,EAAI4F,EAAE,OACpCA,EAAE,QAAQ,EAAG,IAAMlF,EAAIV,EAAE,GAAI,CAAC,EAAI4F,EAAE,MACtC,EACMC,EAAU,GAAY,CAC1B,IAAMC,EAAStE,EAAE,IAAK,GAAM,KAAK,MAAMxB,EAAE,GAAKe,EAAE,GAAIf,EAAE,GAAKe,EAAE,EAAE,CAAC,EAC5DgF,EAAQ,EACZD,EAAO,SAAS,EAAG,IAAM,CACnB1F,EAAK0F,EAAOC,KAAmB,EAAQlF,EAC7C,CAAC,EACD,IAAMmF,EAAQxE,EAAE,KAAK,EAAG,KAAOuE,EAAQxD,GAAKf,EAAE,MAAM,EAC9CE,EAAgB,CAAC,EACnBuE,EAAW,KACf,IAAK,IAAMpF,KAAKmF,EAAO,CACrB,IAAI5F,EAAI0F,EAAOjF,GACf,KAAOT,EAAI6F,GAAU,GAAKtG,EAC1B+B,EAAI,KAAKtB,CAAC,EACV,EAAWA,CACb,CAEA,OADAsB,EAAI,KAAMA,EAAI,GAAgB/B,CAAG,EAC1B,CAAE,QAAO,OAAQ+B,CAAI,CAC9B,EACMwE,EAAKL,EAAO,CAAC,EACbM,EAAKN,EAAOD,CAAC,EACb5B,EAAU,CAAC,GAAG,EAAG,GAAG4B,CAAC,EACrBQ,EAAM,GAAcF,EAAG,MAAM3D,EAAI,EAAE,QACnC8D,EAAM,GAAc,EAAE,OAAUF,EAAG,MAAM5D,EAAIqD,EAAE,QAC/CzC,EAAmB,CAAC,EACtBtC,EAAI,EACJ0D,EAAI,EACR,KAAO1D,EAAI,EAAE,QAAU0D,EAAIqB,EAAE,SACb/E,EAAI,EAAE,OAAUqF,EAAG,OAAOrF,EAAI,GAAgB,OAC9C0D,EAAIqB,EAAE,OAAUO,EAAG,OAAO5B,EAAI,GAAgB,MAE1DpB,EAAK,KAAK,CAACiD,EAAGvF,CAAC,EAAGuF,EAAGvF,EAAI,CAAC,EAAGwF,EAAG9B,CAAC,CAAC,CAAC,EACnC,MAEApB,EAAK,KAAK,CAACiD,EAAGvF,CAAC,EAAGwF,EAAG9B,EAAI,CAAC,EAAG8B,EAAG9B,CAAC,CAAC,CAAC,EACnC,KAGJ,OAAON,EACLD,EACAb,EAAK,OAAQ,GAAM,KAAK,IAAI5B,EAAKsC,EAAE,IAAK,GAAMlD,EAAGqD,EAAGzB,CAAC,CAAC,CAAC,CAAC,EAAI,IAAI,CAClE,CACF,CAUA,SAAS+D,EACP,EACA,EACA,EACA,EACA,EACQ,CACR,IAAMC,EAAgB,CAAC,EACvB,IAAK,IAAMxG,KAASyG,EAAQ,CAC1B,GAAIC,EAAK,IAAM,OAAQ,CACrB,IAAMC,EAAQ5G,EAAKC,EAAO,CAAC0G,EAAK,GAAIA,EAAK,EAAE,CAAC,EAC5C,GAAIC,GAASD,EAAK,GAAK,KAAM,SAC7B,GAAIC,GAAS,CAACD,EAAK,GAAI,MAAO,CAAC,CACjC,CACAF,EAAK,KAAKxG,CAAK,CACjB,CACA,GAAI0G,EAAK,IAAM,SAAW,CAACF,EAAK,OAAQ,MAAO,CAAC,EAChD,IAAMI,EAAO,EAAIC,EAAS,EACpBC,EAAOF,EAAO,EAEdG,EAAe,CAAC,EAClBC,EAAOD,EACPE,EAAa,CAAC,EAAG,CAAC,EAClBC,EAAQ,EACZ,IAAK,GAAM,CAAE,IAAG,OAAOV,EAAM,CAC3B,IAAMW,EAAQ,KAAK,MAAM,CAAC7G,EAAE,GAAIA,EAAE,EAAE,EAC9B8G,EAAQ,CAAC9G,EAAE,GAAI,CAACA,EAAE,EAAE,EACpB+G,EAAM/G,EAAE,GAAKyE,EAAI,GAAKzE,EAAE,GAAKyE,EAAI,GAAKuC,EACtChD,EAAQ,CAACS,EAAI,GAAKsC,EAAM/G,EAAE,GAAIyE,EAAI,GAAKsC,EAAM/G,EAAE,EAAE,EACjDiH,EAAQ,CAACjD,EAAE,GAAKwC,EAAOM,EAAE,GAAI9C,EAAE,GAAKwC,EAAOM,EAAE,EAAE,EAC/CI,EAAML,EAAQD,EACdO,EAAQnG,EAAO,CAACiG,EAAE,GAAKN,EAAO,GAAIM,EAAE,GAAKN,EAAO,EAAE,EAAG,CAACC,CAAK,EAC3DQ,EAAKpG,EAAO,CAACwF,EAAMA,CAAI,EAAGU,CAAG,EAC7BG,EAAa,CACjB,EAAG,OACH,EAAGF,EAAM,GAAKX,EAAOY,EAAG,GACxB,EAAGD,EAAM,GAAKX,EAAOY,EAAG,GACxB,OACA,OAAQF,EACR,SAAU,CAAC,CACb,EACAR,EAAK,KAAKW,CAAI,EACd,EAAOA,EAAK,SACZ,EAASJ,EACT,EAAQJ,CACV,CACA,GAAIT,EAAK,IAAM,OAAQ,CACrB,IAAM1F,EAAIM,EAAO,CAACoF,EAAK,GAAKO,EAAO,GAAIP,EAAK,GAAKO,EAAO,EAAE,EAAG,CAACC,CAAK,EACnEF,EAAK,KAAK,CACR,EAAG,MACH,EAAGhG,EAAE,GAAK0F,EAAK,GACf,EAAG1F,EAAE,GAAK0F,EAAK,GACf,EAAGA,EAAK,GAAK,EACb,EAAGA,EAAK,GAAK,EACb,OAAQA,EAAK,GACb,GAAIA,EAAK,GAAK,IACV,CAAE,YAAaA,EAAK,GAAKA,EAAK,GAAI,YAAakB,CAAM,EACrD,CAAE,OAAM,CACd,CAAC,CACH,MAAOZ,EAAK,KAAK,CAAE,EAAG,MAAO,EAAG,EAAG,EAAG,EAAG,EAAGJ,EAAM,EAAGA,EAAM,OAAM,CAAC,EAClE,OAAOG,CACT,CAGA,SAASc,EAAW,EAAc,EAAY,EAAuB,CACnE,GAAM,CAAE,OAAQC,EAChB,GAAIpH,EAAI,OAAS,EAAG,MAAO,CAAC,EAC5B,IAAMqE,EAAMtE,EAASC,CAAG,EAClB+F,EAAkB,CAAC,EACzB/F,EAAI,SAAS,EAAG,IAAM,CAEpB,IAAMV,EAAQE,EAAQG,EADZO,EAAGF,GAAMI,EAAI,GAAKJ,EAAI,MACP,EAAGqE,EAAK+C,EAAM,SAAShH,GAAKjB,EAAO,CAAC,EACzDG,GAAOyG,EAAO,KAAKzG,CAAK,CAC9B,CAAC,EACDyG,EAAO,KAAK,GAAGqB,EAAM,MAAM,EAC3B,IAAIC,EAAK,IACLC,EAAK,IACLC,EAAK,KACLC,EAAK,KACT,IAAK,IAAMjI,KAAKS,EACd,EAAK,KAAK,IAAIqH,EAAI9H,EAAE,EAAE,EACtB,EAAK,KAAK,IAAI+H,EAAI/H,EAAE,EAAE,EACtB,EAAK,KAAK,IAAIgI,EAAIhI,EAAE,EAAE,EACtB,EAAK,KAAK,IAAIiI,EAAIjI,EAAE,EAAE,EAUxB,OARIyG,EAAK,IAAM,SACb,EAAK,KAAK,IAAIqB,EAAIrB,EAAK,GAAKA,EAAK,EAAE,EACnC,EAAK,KAAK,IAAIsB,EAAItB,EAAK,GAAKA,EAAK,EAAE,EACnC,EAAK,KAAK,IAAIuB,EAAIvB,EAAK,GAAKA,EAAK,EAAE,EACnC,EAAK,KAAK,IAAIwB,EAAIxB,EAAK,GAAKA,EAAK,EAAE,GAE/BuB,EAAKF,GAAMG,EAAKF,EAEfzB,EACLE,EACAC,EACAkB,EACA7C,EACA,EAAI,KAAK,MAAMkD,EAAKF,EAAIG,EAAKF,CAAE,EAAInI,CACrC,EARkC,CAAC,CASrC,CAaA,SAASsI,EAAY,EAA0C,CAC7D,IAAMC,EAAOhG,EAAM,OAAQ,GAAOD,EAAG,IAAM,GAAG,EAC9C,GAAIiG,EAAK,SAAW,GAAKA,EAAK,SAAW,EAAG,OAAO,KACnD,IAAIhH,EAAI,EACJ2G,EAAK,IACLC,EAAK,IACLC,EAAK,KACLC,EAAK,KACH1H,GAAQ,EAAW,IAAc,CACrC,EAAK,KAAK,IAAIuH,EAAIM,CAAC,EACnB,EAAK,KAAK,IAAIL,EAAIM,CAAC,EACnB,EAAK,KAAK,IAAIL,EAAII,CAAC,EACnB,EAAK,KAAK,IAAIH,EAAII,CAAC,CACrB,EACA,IAAK,IAAMnG,KAAMC,EACf,GAAID,EAAG,IAAM,IAAK,CAChB,IAAMoG,EAAK,KAAK,IAAIpG,EAAG,GAAG,GAAKA,EAAG,KAAK,EAAE,EACnCqG,EAAK,KAAK,IAAIrG,EAAG,GAAG,GAAKA,EAAG,KAAK,EAAE,EACzC,GAAIoG,EAAK,MAAQC,EAAK,KAAM,OAAO,KACnChI,EAAK2B,EAAG,KAAK,GAAIA,EAAG,KAAK,EAAE,EAC3B3B,EAAK2B,EAAG,GAAG,GAAIA,EAAG,GAAG,EAAE,CACzB,KAAO,CAEL,GADI,KAAK,IAAI,KAAK,IAAIA,EAAG,GAAKA,EAAG,EAAE,EAAI,KAAK,GAAK,CAAC,EAAI,KAClDf,GAAK,KAAK,IAAIe,EAAG,EAAIf,CAAC,EAAI,IAAM,OAAO,KAC3C,EAAIe,EAAG,EACP3B,EAAK2B,EAAG,GAAKA,EAAG,EAAGA,EAAG,GAAKA,EAAG,CAAC,EAC/B3B,EAAK2B,EAAG,GAAKA,EAAG,EAAGA,EAAG,GAAKA,EAAG,CAAC,CACjC,CAEF,GAAI,EAAE8F,EAAKF,GAAMG,EAAKF,GAAK,OAAO,KAClC,IAAK,IAAM7F,KAAMC,EACf,GAAID,EAAG,IAAM,IAAK,CAChB,IAAMsG,EACJ,KAAK,IAAItG,EAAG,IAAM4F,EAAK3G,EAAE,EAAI,KAAQ,KAAK,IAAIe,EAAG,IAAM8F,EAAK7G,EAAE,EAAI,IAC9DsH,EACJ,KAAK,IAAIvG,EAAG,IAAM6F,EAAK5G,EAAE,EAAI,KAAQ,KAAK,IAAIe,EAAG,IAAM+F,EAAK9G,EAAE,EAAI,IACpE,GAAI,CAACqH,GAAS,CAACC,EAAO,OAAO,IAC/B,MAOE,GADiB,KAAK,IAAIvG,EAAG,GAAG,GAAKA,EAAG,KAAK,EAAE,GAAK,KACrC,EALF,GACX,KAAK,IAAIkG,EAAIN,CAAE,EAAI,KAAQ,KAAK,IAAIM,EAAIJ,CAAE,EAAI,IAIhC,CAAI9F,EAAG,KAAK,EAAE,EAAI,EAHrB,GACX,KAAK,IAAImG,EAAIN,CAAE,EAAI,KAAQ,KAAK,IAAIM,EAAIJ,CAAE,EAAI,IAEb,CAAI/F,EAAG,KAAK,EAAE,EAAG,OAAO,KAI/D,MADI,CAACiG,EAAK,QAAUhG,EAAM,OAAS,EAAU,KACtC,CAAE,EAAG2F,EAAI,EAAGC,EAAI,EAAGC,EAAKF,EAAI,EAAGG,EAAKF,EAAI,GAAE,CACnD,CAMA,SAASW,EACP,EAC8D,CAC9D,IAAMP,EAAOhG,EAAM,OAAQ,GAAsBD,EAAG,IAAM,GAAG,EACvD6D,EAAQoC,EAAK,GACnB,GAAI,CAACpC,EAAO,OAAO,KACnB,GAAM,CAAE,KAAI,MAAOA,EACf4C,EAAK,EACT,IAAK,IAAMvI,KAAK+H,EAAM,CACpB,GAAI,KAAK,MAAM/H,EAAE,GAAKc,EAAId,EAAE,GAAKgB,CAAE,EAAI,GAAK,OAAO,KACnD,EAAK,KAAK,IAAIuH,EAAIvI,EAAE,CAAC,CACvB,CACA,IAAIwI,EAAK,EACT,IAAK,IAAMxI,KAAK+H,EACd,GAAI,OAAK,IAAI/H,EAAE,EAAIuI,CAAE,GAAK,IAC1B,IAAIC,GAAM,KAAK,IAAIxI,EAAE,EAAIwI,CAAE,EAAI,GAAK,OAAO,KAC3C,EAAKxI,EAAE,CADoC,CAG7C,IAAMW,EAAQ,CAACG,EAAIE,CAAE,EACrB,IAAK,IAAMc,KAAMC,EACf,GAAID,EAAG,IAAM,IACX,IAAK,IAAMlC,IAAK,CAACkC,EAAG,KAAMA,EAAG,EAAE,EAAG,CAChC,IAAMmF,EAAIrG,EAAKhB,EAAGe,CAAC,EACnB,GAAIsG,EAAIsB,EAAK,IAAQC,EAAK,GAAKvB,EAAIuB,EAAK,GAAM,OAAO,IACvD,CACJ,IAAM/D,EAAgB,CAAC,EACvB,IAAK,IAAM3C,KAAMC,EAAO,CACtB,GAAID,EAAG,IAAM,IAAK,CAChB2C,EAAQ,KAAK3C,EAAG,KAAMA,EAAG,EAAE,EAC3B,QACF,CACA,IAAME,EAAQF,EAAG,GAAKA,EAAG,GACzB,GAAI,KAAK,IAAIA,EAAG,EAAIyG,CAAE,GAAK,GAAK,CAE9B,IAAM,EAAI,KAAK,IAAI,EAAG,KAAK,KAAK,KAAK,IAAIvG,CAAK,GAAK,KAAK,GAAK,EAAE,CAAC,EAC1DC,EAAOD,EAAQ,EACfyG,EAAMF,EAAK,KAAK,IAAItG,EAAO,CAAC,EAClCwC,EAAQ,KAAK5D,EAAMC,EAAIE,EAAIuH,EAAIzG,EAAG,EAAE,CAAC,EACrC,IAAK,IAAIK,EAAI,EAAGA,EAAI,EAAG,IACrBsC,EAAQ,KAAK5D,EAAMC,EAAIE,EAAIyH,EAAK3G,EAAG,IAAMK,EAAI,IAAOF,CAAI,CAAC,EACzDwC,EAAQ,KAAK5D,EAAMC,EAAIE,EAAIuH,EAAIzG,EAAG,IAAMK,EAAI,GAAKF,CAAI,CAAC,CAE1D,KAAO,CAEL,IAAM,EAAI,KAAK,IAAI,EAAG,KAAK,KAAK,KAAK,IAAID,CAAK,GAAK,KAAK,GAAK,EAAE,CAAC,EAChE,IAAK,IAAIG,EAAI,EAAGA,GAAK,EAAG,IACtBsC,EAAQ,KAAK5D,EAAMC,EAAIE,EAAIc,EAAG,EAAGA,EAAG,GAAME,EAAQG,EAAK,CAAC,CAAC,CAC7D,CACF,CACA,MAAO,CAAE,KAAM,CAAE,EAAG,OAAQ,KAAI,KAAI,KAAI,IAAG,EAAG,SAAQ,CACxD,CAEA,IAAMuG,GACJ,EACA,EACA,EACA,EACA,KACU,CACV,EAAG,MACH,EAAG5H,EAAKyH,EACR,EAAGvH,EAAKuH,EACR,EAAGA,EAAK,EACR,EAAGA,EAAK,EACR,OAAQA,EACR,GAAIC,EAAK,IAAO,CAAE,YAAaD,EAAKC,EAAI,YAAajB,CAAM,EAAI,CAAE,OAAM,CACzE,GAQA,SAASoB,EACP,EACA,EACA,EAEA,EAAO,EACQ,CACf,GAAM,CAAE,KAAI,KAAI,KAAI,MAAOtC,EACrB1F,EAAQ,CAACG,EAAIE,CAAE,EACf+G,EAAOhG,EAAM,OAAQ,GAAsBD,EAAG,IAAM,GAAG,EACvDsD,EAAQ2C,EAAK,OAAQ,GAAM,KAAK,IAAI/H,EAAE,EAAIuI,CAAE,GAAK,EAAG,EACpDK,EAAMxD,EAAM,GAClB,GAAI,CAACwD,GAAOxD,EAAM,SAAW,GAAK2C,EAAK,OAAS3C,EAAM,OAAS,EAAG,OAAO,KACzE,IAAMyD,EAAK,KAAK,IAAID,EAAI,GAAIA,EAAI,EAAE,EAC5BE,EAAK,KAAK,IAAIF,EAAI,GAAIA,EAAI,EAAE,EAC5BG,EAAOD,EAAKD,EAClB,GAAIE,GAAQxJ,EAAM,KAAM,OAAO,KAE/B,IAAMyJ,GAAO,EAAW,IAAc,CACpC,IAAM/B,EAAI,KAAK,IAAIjH,EAAID,CAAC,EAAIR,EAC5B,OAAO,KAAK,IAAI0H,EAAG1H,EAAM0H,CAAC,CAC5B,EACIpF,EAA0C,KAC1CoH,EAAwC,KACtCC,EAAU,GAAiCtI,EAAKN,EAAE,KAAMA,EAAE,EAAE,EAClE,IAAK,IAAMwB,KAAMC,EAAO,CACtB,GAAID,EAAG,IAAM,KAAOoH,EAAOpH,CAAE,EAAI,GAAK,SACtC,IAAM2G,EAAM7H,EAAKkB,EAAG,KAAMnB,CAAC,EAAIC,EAAKkB,EAAG,GAAInB,CAAC,EAAImB,EAAG,KAAOA,EAAG,GACvDqH,EAAKvI,EAAK6H,EAAK9H,CAAC,EACtB,GAAIwI,EAAK,GAAK,SACd,IAAMjB,GAAMpG,EAAG,GAAG,GAAKA,EAAG,KAAK,IAAMoH,EAAOpH,CAAE,EACxCqG,GAAMrG,EAAG,GAAG,GAAKA,EAAG,KAAK,IAAMoH,EAAOpH,CAAE,EACxCsH,GAAMX,EAAI,GAAK3H,GAAMqI,EACrBE,GAAMZ,EAAI,GAAKzH,GAAMmI,EAC3B,GAAI,KAAK,IAAIjB,EAAKmB,EAAKlB,EAAKiB,CAAE,EAAI,IAAM,SACxC,IAAME,EAAM,KAAK,MAAMb,EAAI,GAAKzH,EAAIyH,EAAI,GAAK3H,CAAE,EAC3CkI,EAAIM,EAAKT,CAAE,GAAKG,EAAIM,EAAKR,CAAE,GACzB,CAACjH,GAASqH,EAAOpH,CAAE,EAAIoH,EAAOrH,CAAK,KAAG,EAAQC,IACzC,CAACmH,GAAOC,EAAOpH,CAAE,EAAIoH,EAAOD,CAAG,KAAG,EAAMnH,EACrD,CACA,GAAI,CAACD,GAAS,CAACoH,EAAK,OAAO,KAC3B,IAAMM,GAAOV,EAAKC,GAAM,EAClBU,EAAKhB,EAAK,GAAKA,EAAKD,GAAM,EAAIA,EAAK,EACnCkB,EAAQ5I,EAAMC,EAAIE,EAAIwI,EAAID,CAAG,EAC7BG,EAAK7J,EAAQgC,EAAM,KAAMA,EAAM,GAAI4H,EAAOtJ,CAAI,EAC9CwJ,EAAK9J,EAAQoJ,EAAI,KAAMA,EAAI,GAAIQ,EAAOtJ,CAAI,EAChD,GAAI,CAACuJ,GAAM,CAACC,GAAMjK,EAAKgK,EAAID,CAAK,GAAK,GAAK/J,EAAKiK,EAAIF,CAAK,GAAK,EAAG,OAAO,KACvE,IAAMjD,EAAS,EAAI+B,EAAK/I,EACxB,GAAIuJ,GAAQ,KAAK,GAAK,KACpB,OAAO7C,EAAU,CAACwD,EAAIC,CAAE,EAAGtD,EAAMkB,EAAOkC,EAAOjD,CAAM,EAEvD,IAAMoD,EAAW,CAAC9I,EAAK,KAAK,IAAIyI,CAAG,EAAGvI,EAAK,KAAK,IAAIuI,CAAG,CAAC,EAClDM,EAAKhJ,EAAMC,EAAIE,EAAIwI,EAAIX,EAAKE,EAAO,CAAC,EACpCe,EAAKjJ,EAAMC,EAAIE,EAAIwI,EAAIV,EAAKC,EAAO,CAAC,EACpCgB,EAAKlK,EAAQc,EAAGiJ,EAAMC,EAAIrK,CAAI,EAC9BwK,EAAKnK,EAAQc,EAAGiJ,EAAME,EAAItK,CAAI,EAEpC,MADI,CAACuK,GAAM,CAACC,EAAW,KAChB,CACL,GAAG9D,EAAU,CAACwD,EAAIK,CAAE,EAAG1D,EAAMkB,EAAOsC,EAAIrD,CAAM,EAC9C,GAAGN,EAAU,CAACyD,EAAIK,CAAE,EAAG3D,EAAMkB,EAAOuC,EAAItD,CAAM,CAChD,CACF,CAEA,IAAMyD,GAAY,EAAc,EAAe,KAA2B,CACxE,EAAG,MACH,EAAGlJ,EAAE,EACL,EAAGA,EAAE,EACL,EAAGA,EAAE,EACL,EAAGA,EAAE,EACL,QACA,GAAIA,EAAE,EAAI,EAAI,CAAE,OAAQA,EAAE,CAAE,EAAI,KAChC,GAAImJ,EAAS,CAAE,QAAO,EAAI,IAC5B,GAEA,SAASC,EACP,EACA,EACA,EACQ,CACR,IAAM7I,EAAc,CAAC,EACrB,IAAK,IAAMmG,KAAS2C,EAAO,MAAM,EAAG3K,CAAU,EAC5C6B,EAAI,KAAK,GAAGkG,EAAWC,EAAOpB,EAAMkB,CAAK,CAAC,EAC5C,OAAOjG,CACT,CAGA,SAAgB+I,EACd,EACA,EACA,EAAS,GACD,CACR,IAAMC,EAAOC,EACV,IAAK,IAAS,CAAE,MAAO,CAAC/I,EAAI,EAAGA,EAAI,CAAC,EAAS,MAAOH,EAAQG,EAAK,EAAI,CAAE,EAAE,CAAC,CAC1E,OAAQ,GAAMlB,EAAE,MAAM,OAAS,CAAC,EACnC,GAAI,CAACgK,EAAK,OAAQ,MAAO,CAAC,EAG1B,GAAIA,EAAK,MAAO,GAAMhK,EAAE,MAAM,SAAW,GAAKsC,EAAOtC,EAAE,MAAM,EAAE,CAAC,EAAG,CACjE,IAAMkK,EAAUF,EAAK,IAAK,GAAMhK,EAAE,MAAM,EAAa,EAC/C,CAACN,EAAGD,GAAKyK,EAYf,OAVExK,GACAD,GACAyK,EAAQ,SAAW,GACnB,KAAK,MAAMxK,EAAE,GAAKD,EAAE,GAAIC,EAAE,GAAKD,EAAE,EAAE,EAAI,IACvC,KAAK,IAAIC,EAAE,EAAID,EAAE,CAAC,EAAI,KACtBC,EAAE,GAAKA,EAAE,GAAK,GAAMD,EAAE,GAAKA,EAAE,GAAK,EAE3B,CACL2I,EAAQ1I,EAAE,GAAIA,EAAE,GAAI,KAAK,IAAIA,EAAE,EAAGD,EAAE,CAAC,EAAG,KAAK,IAAIC,EAAE,EAAGD,EAAE,CAAC,EAAGwH,CAAK,CACnE,EACKiD,EAAQ,IAAK,GAAM9B,EAAQ/H,EAAE,GAAIA,EAAE,GAAIA,EAAE,EAAG,EAAG4G,CAAK,CAAC,CAC9D,CAEA,IAAMkD,EAAWH,EAAK,GACtB,GAAIA,EAAK,SAAW,GAAKG,EAAU,CACjC,IAAMC,EAAM5C,EAAY2C,EAAS,KAAK,EACtC,GAAIC,EAAK,MAAO,CAACT,EAASS,EAAKnD,EAAO2C,CAAM,CAAC,EAC7C,IAAMS,EAAOrC,EAAamC,EAAS,KAAK,EACxC,GAAIE,EACF,OACEhC,EAAW8B,EAAS,MAAOE,EAAK,KAAMpD,CAAK,GAC3C4C,EAAYlF,EAAa0F,EAAK,OAAO,EAAGA,EAAK,KAAMpD,CAAK,CAE9D,CAEA,IAAMzD,EAAQwG,EAAK,IAAK,GAAM1I,EAAQtB,EAAE,MAAOA,EAAE,KAAK,CAAC,EAEjD,CAAC8E,EAAOE,GAAQxB,EACtB,GACEA,EAAM,SAAW,GACjBsB,GACAE,GACAnE,EAAKiE,CAAK,EAAIjE,EAAKmE,CAAI,EAAI,GAC3BsF,EAASxF,EAAOE,CAAI,EAEpB,OAAO6E,EAAYjF,EAAWE,EAAOE,CAAI,EAAG,CAAE,EAAG,OAAQ,EAAGiC,CAAK,EACnE,IAAMjG,EAAc,CAAC,EACrB,IAAK,IAAMqC,KAAQG,EACjBxC,EAAI,KAAK,GAAG6I,EAAYlF,EAAatB,CAAI,EAAG,CAAE,EAAG,OAAQ,EAAG4D,CAAK,CAAC,EACpE,OAAOjG,CACT,CAEA,SAASsJ,EAAS,EAAsB,EAAsB,CAC5D,IAAMF,EAAO,GAAqB,CAChC,IAAIhD,EAAK,IACLC,EAAK,IACLC,EAAK,KACLC,EAAK,KACT,IAAK,IAAMjI,KAAKwB,EACd,EAAK,KAAK,IAAIsG,EAAI9H,EAAE,EAAE,EACtB,EAAK,KAAK,IAAI+H,EAAI/H,EAAE,EAAE,EACtB,EAAK,KAAK,IAAIgI,EAAIhI,EAAE,EAAE,EACtB,EAAK,KAAK,IAAIiI,EAAIjI,EAAE,EAAE,EAExB,MAAO,CAAE,KAAI,KAAI,KAAI,IAAG,CAC1B,EACMI,EAAI0K,EAAItF,CAAK,EACbrF,EAAI2K,EAAIG,CAAK,EACnB,OACE9K,EAAE,IAAMC,EAAE,GAAK,IACfD,EAAE,IAAMC,EAAE,GAAK,IACfD,EAAE,IAAMC,EAAE,GAAK,IACfD,EAAE,IAAMC,EAAE,GAAK,EAEnB,CAKA,SAAgB8K,EACd,EACA,EACQ,CACR,IAAIC,EAAUC,EAAK,OAAQ,GAAM,OAAO,SAAS9J,CAAC,GAAKA,GAAK,CAAC,EACzD6J,EAAQ,OAAS,IAAG,EAAU,CAAC,GAAGA,EAAS,GAAGA,CAAO,GACzD,IAAME,EAASF,EAAQ,QAAQ,EAAG,IAAM/K,EAAID,EAAG,CAAC,EAChD,GAAI,CAACgL,EAAQ,QAAUE,GAAU,EAAG,MAAO,CAACC,EAAO,MAAM,CAAC,EAC1D,IAAIC,EAAQ,EACZ,IAAK,IAAI1K,EAAI,EAAGA,EAAIyK,EAAO,OAAQ,IACjC,GAAStK,EAAKL,EAAG2K,EAAQzK,EAAI,CAAC,EAAGF,EAAG2K,EAAQzK,CAAC,CAAC,EAEhD,IAAMgC,EAAQ0I,EAAQF,EAAS,IAAME,EAAQF,EAAS,IAAM,EACtD3J,EAAc,CAAC,EACjBa,EAAI,EACJiJ,EAAQL,EAAQ,GAAgBtI,EAChC4I,EAAK,GACLC,EAAY,CAAC/K,EAAG2K,EAAQ,CAAC,CAAC,EAC9B,IAAK,IAAIzK,EAAI,EAAGA,EAAIyK,EAAO,OAAQ,IAAK,CACtC,IAAIlL,EAAIO,EAAG2K,EAAQzK,EAAI,CAAC,EAClBV,EAAIQ,EAAG2K,EAAQzK,CAAC,EAClBX,EAAMc,EAAKZ,EAAGD,CAAC,EACnB,KAAOD,EAAM,MAAM,CACjB,IAAMmC,EAAO,KAAK,IAAImJ,EAAMtL,CAAG,EACzB,EAAImC,EAAOnC,EACXF,EAAQ,CAACI,EAAE,IAAMD,EAAE,GAAKC,EAAE,IAAM,EAAGA,EAAE,IAAMD,EAAE,GAAKC,EAAE,IAAM,CAAC,EAC7DqL,GAAIC,EAAI,KAAK1L,CAAC,EAClB,EAAIA,EACJ,GAAOqC,EACP,GAAQA,EACJmJ,GAAQ,OACNC,GAAMC,EAAI,OAAS,GAAGhK,EAAI,KAAKgK,CAAG,EACtC,EAAK,CAACD,EACN,GAAKlJ,EAAI,GAAK4I,EAAQ,OACtB,EAAO,KAAK,IAAKA,EAAQ5I,GAAgBM,EAAO4I,EAAK,EAAI,EAAG,EAC5D,EAAM,CAACzL,CAAC,EAEZ,CACF,CAEA,OADIyL,GAAMC,EAAI,OAAS,GAAGhK,EAAI,KAAKgK,CAAG,EAC/BhK,CACT,CAEA,IAAMiK,GACJ,EACA,EACA,EACA,EACA,IACS,CACT,IAAMC,EAAQC,IAAQ,OAAS,EAAIC,EAC7BxC,EAAStI,EAAKZ,EAAGD,CAAC,EAAIyL,EAC5B,MAAO,CACL,EAAG,MACH,GAAIxL,EAAE,GAAKD,EAAE,IAAM,EAAImJ,EAAS,EAChC,GAAIlJ,EAAE,GAAKD,EAAE,IAAM,EAAI2L,EAAQ,EAC/B,EAAGxC,EACH,EAAGwC,EACH,QACA,GAAID,IAAQ,QAAU,CAAE,OAAQC,EAAQ,CAAE,EAAI,KAC9C,OAAQ,KAAK,MAAM3L,EAAE,GAAKC,EAAE,GAAID,EAAE,GAAKC,EAAE,EAAE,CAC7C,CACF,EAEM2L,GAAU,EAAO,EAAW,KAAyB,CACzD,EAAG,MACH,EAAG/L,EAAE,GAAKqH,EAAI,EACd,EAAGrH,EAAE,GAAKqH,EAAI,EACd,EAAGA,EACH,EAAGA,EACH,OAAQA,EAAI,EACZ,OACF,GAGA,SAAS2E,EAAY,EAAc,EAAoC,CACrE,IAAMC,EAAIC,EAAG,MACPxB,EAAOwB,EAAG,MACb,IAAK,IAAS,CACb,MAAO,CAACtK,EAAI,EAAGA,EAAI,CAAC,EACpB,MAAOH,EAAQG,EAAKA,EAAI,MAAM,EAC9B,OAAQA,EAAI,MACd,EAAE,CAAC,CACF,OAAQ,GAAMlB,EAAE,MAAM,OAAS,CAAC,EACnC,GAAI,CAACgK,EAAK,QAAU,EAAEuB,EAAI,GAAI,MAAO,CAAC,EACtC,IAAME,EAAQ,CAACD,EAAG,MAAM,UAAYA,EAAG,KAAK,SAAW,EACjDnG,EAAQ2E,EAAK,GACnB,GAAIyB,GAASzB,EAAK,SAAW,GAAK3E,EAAO,CACvC,GAAM,CAAE,SAAUA,EACZqG,EAAOjK,EAAM,GAEnB,GAAIA,EAAM,SAAW,GAAKiK,GAAQpJ,EAAOoJ,CAAI,EAC3C,MAAO,CACLtD,EACEsD,EAAK,GACLA,EAAK,GACLA,EAAK,EAAIH,EAAI,EACb,KAAK,IAAI,EAAGG,EAAK,EAAIH,EAAI,CAAC,EAC1BI,EAAQ,CAACD,EAAK,GAAIA,EAAK,EAAE,CAAC,CAC5B,CACF,EAEF,GAAIjK,EAAM,SAAW,GAAKiK,GAAM,IAAM,IAAK,CACzC,IAAME,EAAKF,EAAK,EAAIH,EAAI,EAClBM,EAAKH,EAAK,EAAIH,EAAI,EAClBtE,EAAQ0E,EAAQ,CAACD,EAAK,GAAIA,EAAK,EAAE,CAAC,EAClCI,EAAgB,CACpB,GAAGC,EAAQL,EAAK,GAAIA,EAAK,GAAIE,EAAIF,EAAK,EAAE,EACxC,OAAQ,GACR,KAAM,CACJ,CAAE,EAAG,IAAK,GAAIA,EAAK,GAAI,GAAIA,EAAK,GAAI,EAAGE,EAAI,GAAIF,EAAK,GAAI,GAAIA,EAAK,EAAG,EACpEG,EAAK,IACD,CACE,EAAG,IACH,GAAIH,EAAK,GACT,GAAIA,EAAK,GACT,EAAGG,EACH,GAAIH,EAAK,GACT,GAAIA,EAAK,EACX,EACA,CAAE,EAAG,IAAK,EAAGA,EAAK,GAAI,EAAGA,EAAK,EAAG,CACvC,CACF,EACMM,EAAQR,EAAG,MAAQ,QACnBnB,EAAOrC,EAAajH,EAAQ+K,EAAM,EAAI,CAAC,EACvCG,EACH5B,GACChC,EACEtH,EAAQ+K,EAAM,EAAI,EAClBzB,EAAK,KACLpD,EACA+E,EAAQ9M,EAAO,CACjB,GACF6K,EAAY,CAAC+B,CAAI,EAAG7E,CAAK,EAM3B,OALI+E,GACFC,EAAM,KACJZ,EAAO9K,EAAMmL,EAAK,GAAIA,EAAK,GAAIA,EAAK,EAAGA,EAAK,EAAE,EAAGH,EAAGtE,CAAK,EACzDoE,EAAO9K,EAAMmL,EAAK,GAAIA,EAAK,GAAIA,EAAK,EAAGA,EAAK,EAAE,EAAGH,EAAGtE,CAAK,CAC3D,EACKgF,CACT,CAEA,GAAI5G,EAAM,OAAQ,CAChB,IAAM+E,EAAM5C,EAAY/F,CAAK,EAC7B,GAAI2I,EACF,MAAO,CACL,CACE,EAAG,MACH,EAAGA,EAAI,EAAImB,EAAI,EACf,EAAGnB,EAAI,EAAImB,EAAI,EACf,EAAGnB,EAAI,EAAImB,EACX,EAAGnB,EAAI,EAAImB,EACX,OAAQnB,EAAI,EAAI,EAAIA,EAAI,EAAImB,EAAI,EAAI,EACpC,YAAaA,EACb,YAAaI,EAAQ,CAACvB,EAAI,EAAGA,EAAI,CAAC,CAAC,CACrC,CACF,CACJ,CACF,CACA,IAAMpJ,EAAc,CAAC,EACrB,IAAK,IAAME,KAAO8I,EAAM,CACtB,IAAM9G,EAAO5B,EAAQJ,EAAI,MAAOA,EAAI,MAAO,GAAI,EACzCC,EAAOW,EAAOZ,EAAI,OAAS,CAAC,GAAGgC,EAAMjD,EAAGiD,EAAM,CAAC,CAAC,EAAIA,EAAM,EAAK,EACrE,GAAI/B,EAAK,OAAS,EAAG,SACrB,IAAM+K,EAAOV,EAAG,KAAK,OAAShB,EAAarJ,EAAMqK,EAAG,IAAI,EAAI,CAACrK,CAAI,EACjE,IAAK,IAAM6J,KAAOkB,EAAM,CACtB,IAAMvM,EAAIqL,EAAI,OACRmB,EAAYxM,EAAI,GAAKW,EAAKL,EAAG+K,EAAK,CAAC,EAAG/K,EAAG+K,EAAKrL,EAAI,CAAC,CAAC,EAAI,KAKxDyM,EAAa,MAAczM,CAAC,CAAC,CAAC,KAAK,CAAC,EACpC0M,EAAiB,CAAC,EACxB,GAAIb,EAAG,MAAQ,SAAWD,GAAK,IAC7B,IAAK,IAAIpL,EAAI,IAAmBA,EAAIR,EAAI,EAAG,IAAK,CAC9C,IAAM2M,EAAOrM,EAAG+K,EAAK7K,IAAM,EAAIR,EAAI,EAAIQ,EAAI,CAAC,EACtCc,EAAKhB,EAAG+K,EAAK7K,CAAC,EACdoM,EAAOtM,EAAG+K,EAAK7K,EAAI,CAAC,EACpBqM,EAAKlM,EAAKgM,EAAMrL,CAAE,EAClBwL,EAAKnM,EAAKW,EAAIsL,CAAI,EAClBG,EACJF,EAAK,MAAQC,EAAK,OACZxL,EAAG,GAAKqL,EAAK,KAAOC,EAAK,GAAKtL,EAAG,KAChCA,EAAG,GAAKqL,EAAK,KAAOC,EAAK,GAAKtL,EAAG,MACnCuL,EAAKC,GACN,EACArK,EAAO,KAAK,KAAK,KAAK,IAAI,GAAI,KAAK,IAAI,EAAGsK,CAAG,CAAC,CAAC,EACjDlB,EAAG,MAAQ,QAAUD,GAAK,GAAKnJ,EAAO,KAAK,GAAK,GAClD,EAAOjC,GAAMoL,EAAI,EAAK,KAAK,IAAInJ,EAAO,CAAC,EAAI,GACvCjC,IAAM,IAAG,EAAOR,EAAI,GAAKyM,EAAO,KAC/BC,EAAK,KAAKlM,CAAC,CACpB,CACF,IAAK,IAAIA,EAAI,EAAGA,EAAIR,EAAG,IAAK,CAC1B,IAAID,EAAIO,EAAG+K,EAAK7K,EAAI,CAAC,EACjBV,EAAIQ,EAAG+K,EAAK7K,CAAC,EACXyI,EAAStI,EAAKZ,EAAGD,CAAC,EAClBkN,EAAKP,EAAOjM,EAAI,GAChByM,EAAKR,EAAOjM,GAClB,GAAIyI,EAAS,OAAS+D,EAAK,GAAKC,EAAK,GAAI,CACvC,IAAMC,GAAMpN,EAAE,GAAKC,EAAE,IAAMkJ,EACrBkE,GAAMrN,EAAE,GAAKC,EAAE,IAAMkJ,EAC3B,EAAI,CAAClJ,EAAE,GAAKmN,EAAKF,EAAIjN,EAAE,GAAKoN,EAAKH,CAAE,EACnC,EAAI,CAAClN,EAAE,GAAKoN,EAAKD,EAAInN,EAAE,GAAKqN,EAAKF,CAAE,CACrC,CACA,IAAM3D,EAAU,EAAEvJ,EAAE,GAAKD,EAAE,IAAM,GAAIC,EAAE,GAAKD,EAAE,IAAM,CAAC,EACrDuB,EAAI,KAAKiK,EAAWvL,EAAGD,EAAG8L,EAAGI,EAAQ1C,CAAG,EAAGuC,EAAG,GAAG,CAAC,CACpD,CACA,IAAK,IAAMrL,KAAKkM,EACdrL,EAAI,KAAKqK,EAAOpL,EAAG+K,EAAK7K,CAAC,EAAGoL,EAAGI,EAAQ1L,EAAG+K,EAAK7K,CAAC,CAAC,CAAC,CAAC,CACvD,CACF,CACA,OAAOa,CACT,CAEA,IAAM+K,GAAW,EAAY,EAAY,EAAW,IAAc,CAChE,GAAM,CAACrE,EAAGC,GAAKpH,EAAMC,EAAIE,EAAID,EAAGf,CAAC,EACjC,MAAO,CAAE,IAAG,GAAE,CAChB,EAIMqN,GAAQ,EAAe,IACtBd,EAAM,OACPe,GAAW,KAAcf,EACtB,CAAC,CAAE,EAAG,QAAS,UAAS,SAAUA,CAAM,CAAC,EAFtB,CAAC,EAKvBgB,EAAgB,GAAkC,CACtD,IAAI7F,EAAK,IACLC,EAAK,IACLC,EAAK,KACLC,EAAK,KACT,IAAK,IAAMrG,KAAO+I,EAAO,CACvB,IAAMpK,GAAQ,EAAW,IAAc,CACrC,EAAK,KAAK,IAAIuH,EAAIM,CAAC,EACnB,EAAK,KAAK,IAAIL,EAAIM,CAAC,EACnB,EAAK,KAAK,IAAIL,EAAII,CAAC,EACnB,EAAK,KAAK,IAAIH,EAAII,CAAC,CACrB,EACA9H,EAAKqB,EAAI,EAAGA,EAAI,CAAC,EACjB,IAAK,IAAMlB,KAAKkB,EAAI,KACdlB,EAAE,IAAM,IAAKH,EAAKG,EAAE,EAAGA,EAAE,CAAC,GAE5BH,EAAKG,EAAE,GAAKA,EAAE,EAAGA,EAAE,GAAKA,EAAE,CAAC,EAC3BH,EAAKG,EAAE,GAAKA,EAAE,EAAGA,EAAE,GAAKA,EAAE,CAAC,EAGjC,CACA,OAAO,OAAO,SAASoH,CAAE,EAAI,EAAEA,EAAKE,GAAM,GAAID,EAAKE,GAAM,CAAC,EAAI,CAAC,EAAG,CAAC,CACrE,EAEA,SAAS2F,EAAO,EAAoB,CAClC,IAAMjG,EAAepI,EAAAA,QAAQ2M,EAAG,MAAO,GAAGyB,EAAazB,EAAG,KAAK,CAAC,EAC1DwB,EAAU/F,EAAM,EAAIuE,EAAG,MAE7B,OADIwB,GAAW,KAAc,CAAC,EACvBD,EAAKhD,EAAYyB,EAAG,MAAO1M,EAAAA,UAAUmI,CAAK,EAAGuE,EAAG,MAAM,EAAGwB,CAAO,CACzE,CAEA,SAASG,EAAS,EAAsB,CACtC,GAAM,CAAE,SAAU3B,EACd4B,EAAQC,EAAM,MAAM,EACpBA,EAAM,UAAU,MAAM,SACxB,EAAQ,KAAK,IAAI,GAAGA,EAAM,SAAS,MAAM,IAAK,GAAMrN,EAAE,MAAM,CAAC,CAAC,GAChE,IAAMgN,EAAUI,EAAQ5B,EAAG,MAS3B,OARIwB,GAAW,KAAc,CAAC,EAQvBD,EAAKzB,EAAYE,EAPP,GAAU,CACzB,IAAMnL,EAAIxB,EAAAA,QAAQwO,EAAO/N,EAAE,GAAIA,EAAE,EAAE,EAEnC,OAAO+N,EAAM,UAAYD,EAAQ,GAAK/M,EAAE,EAAI+M,EAAQ,KAChDrO,EAAAA,aAAasB,EAAG,EAAI+M,CAAK,EACzBtO,EAAAA,UAAUuB,CAAC,CACjB,CACmC,EAAG2M,CAAO,CAC/C,CAEA,SAASM,EAAO,EAAoB,CAElC,MADI,CAAC9B,EAAG,MAAQA,EAAG,MAAQA,EAAG,MAAM,GAAK,KAAc,CAAC,EACjD,CACL,CACE,EAAG,OACH,KAAMA,EAAG,KACT,EAAGA,EAAG,EACN,EAAGA,EAAG,EACN,KAAMA,EAAG,KACT,OAAQA,EAAG,OACX,MAAOA,EAAG,MACV,SAAUA,EAAG,SACb,MAAOzM,EAAAA,aAAayM,EAAG,MAAOA,EAAG,KAAK,EACtC,OAAQA,EAAG,OACX,GAAIA,EAAG,WAAa,IAAA,GAAwC,KAA5B,CAAE,SAAUA,EAAG,QAAS,EACxD,GAAIA,EAAG,KAAO,CAAE,KAAMzM,EAAAA,aAAayM,EAAG,KAAMA,EAAG,KAAK,CAAE,EAAI,IAC5D,CACF,CACF,CAGA,SAAgB+B,EAAW,EAAgC,CACzD,IAAMvM,EAAc,CAAC,EACrB,IAAK,IAAMwK,KAAMgC,EACXhC,EAAG,OAAS,OAAQxK,EAAI,KAAK,GAAGkM,EAAO1B,CAAE,CAAC,EACrCA,EAAG,OAAS,SAAUxK,EAAI,KAAK,GAAGmM,EAAS3B,CAAE,CAAC,EAClDxK,EAAI,KAAK,GAAGsM,EAAO9B,CAAE,CAAC,EAE7B,OAAOxK,CACT"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { DrawOp, Subpath, TextOp } from './recorder.cjs';
|
|
2
|
+
export type Pt = [number, number];
|
|
3
|
+
/** A drawable view */
|
|
4
|
+
export type Prim = {
|
|
5
|
+
t: "box";
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
w: number;
|
|
9
|
+
h: number;
|
|
10
|
+
color?: string;
|
|
11
|
+
radius?: number;
|
|
12
|
+
borderWidth?: number;
|
|
13
|
+
borderColor?: string;
|
|
14
|
+
/** Rotation around the center, radians */
|
|
15
|
+
rotate?: number;
|
|
16
|
+
shadow?: boolean;
|
|
17
|
+
} | {
|
|
18
|
+
/** Square clipping its children (`overflow: hidden`), rotated around its center */
|
|
19
|
+
t: "clip";
|
|
20
|
+
x: number;
|
|
21
|
+
y: number;
|
|
22
|
+
size: number;
|
|
23
|
+
rotate: number;
|
|
24
|
+
children: Prim[];
|
|
25
|
+
} | {
|
|
26
|
+
t: "group";
|
|
27
|
+
opacity: number;
|
|
28
|
+
children: Prim[];
|
|
29
|
+
} | {
|
|
30
|
+
t: "text";
|
|
31
|
+
text: string;
|
|
32
|
+
x: number;
|
|
33
|
+
y: number;
|
|
34
|
+
size: number;
|
|
35
|
+
weight: number;
|
|
36
|
+
align: TextOp["align"];
|
|
37
|
+
baseline: TextOp["baseline"];
|
|
38
|
+
color: string;
|
|
39
|
+
rotate: number;
|
|
40
|
+
maxWidth?: number;
|
|
41
|
+
halo?: string;
|
|
42
|
+
};
|
|
43
|
+
interface Piece {
|
|
44
|
+
pts: Pt[];
|
|
45
|
+
/** Per edge (pts[i] -> pts[i + 1]): shared with another piece of the shape */
|
|
46
|
+
internal: boolean[];
|
|
47
|
+
/** Outline half-planes trimming the overlap of the shared edges */
|
|
48
|
+
guards: Plane[];
|
|
49
|
+
}
|
|
50
|
+
/** Half-plane n·p >= d (n: unit normal pointing inside) */
|
|
51
|
+
interface Plane {
|
|
52
|
+
n: Pt;
|
|
53
|
+
d: number;
|
|
54
|
+
}
|
|
55
|
+
export declare const area: (P: readonly Pt[]) => number;
|
|
56
|
+
/** Ear clipping of a simple polygon: triangles as indexes */
|
|
57
|
+
export declare function triangulate(P: readonly Pt[]): number[][];
|
|
58
|
+
/**
|
|
59
|
+
* Merges triangles (indexes into V, positively oriented) into convex
|
|
60
|
+
* pieces across their shared edges (Hertel-Mehlhorn)
|
|
61
|
+
*/
|
|
62
|
+
export declare function mergeConvex(V: readonly Pt[], tris: readonly number[][]): Piece[];
|
|
63
|
+
/** Convex pieces of a simple polygon */
|
|
64
|
+
export declare function convexPieces(P: readonly Pt[]): Piece[];
|
|
65
|
+
/** Views filling the subpaths with one opaque color (nonzero rule) */
|
|
66
|
+
export declare function regionViews(paths: readonly Subpath[], color: string, shadow?: boolean): Prim[];
|
|
67
|
+
/** Splits a polyline into its dashes (canvas `setLineDash`) */
|
|
68
|
+
export declare function dashPolyline(points: readonly Pt[], dash: readonly number[]): Pt[][];
|
|
69
|
+
/** Views of a recorded frame, in drawing order */
|
|
70
|
+
export declare function framePrims(ops: readonly DrawOp[]): Prim[];
|
|
71
|
+
export {};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { DrawOp, Subpath, TextOp } from './recorder.js';
|
|
2
|
+
export type Pt = [number, number];
|
|
3
|
+
/** A drawable view */
|
|
4
|
+
export type Prim = {
|
|
5
|
+
t: "box";
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
w: number;
|
|
9
|
+
h: number;
|
|
10
|
+
color?: string;
|
|
11
|
+
radius?: number;
|
|
12
|
+
borderWidth?: number;
|
|
13
|
+
borderColor?: string;
|
|
14
|
+
/** Rotation around the center, radians */
|
|
15
|
+
rotate?: number;
|
|
16
|
+
shadow?: boolean;
|
|
17
|
+
} | {
|
|
18
|
+
/** Square clipping its children (`overflow: hidden`), rotated around its center */
|
|
19
|
+
t: "clip";
|
|
20
|
+
x: number;
|
|
21
|
+
y: number;
|
|
22
|
+
size: number;
|
|
23
|
+
rotate: number;
|
|
24
|
+
children: Prim[];
|
|
25
|
+
} | {
|
|
26
|
+
t: "group";
|
|
27
|
+
opacity: number;
|
|
28
|
+
children: Prim[];
|
|
29
|
+
} | {
|
|
30
|
+
t: "text";
|
|
31
|
+
text: string;
|
|
32
|
+
x: number;
|
|
33
|
+
y: number;
|
|
34
|
+
size: number;
|
|
35
|
+
weight: number;
|
|
36
|
+
align: TextOp["align"];
|
|
37
|
+
baseline: TextOp["baseline"];
|
|
38
|
+
color: string;
|
|
39
|
+
rotate: number;
|
|
40
|
+
maxWidth?: number;
|
|
41
|
+
halo?: string;
|
|
42
|
+
};
|
|
43
|
+
interface Piece {
|
|
44
|
+
pts: Pt[];
|
|
45
|
+
/** Per edge (pts[i] -> pts[i + 1]): shared with another piece of the shape */
|
|
46
|
+
internal: boolean[];
|
|
47
|
+
/** Outline half-planes trimming the overlap of the shared edges */
|
|
48
|
+
guards: Plane[];
|
|
49
|
+
}
|
|
50
|
+
/** Half-plane n·p >= d (n: unit normal pointing inside) */
|
|
51
|
+
interface Plane {
|
|
52
|
+
n: Pt;
|
|
53
|
+
d: number;
|
|
54
|
+
}
|
|
55
|
+
export declare const area: (P: readonly Pt[]) => number;
|
|
56
|
+
/** Ear clipping of a simple polygon: triangles as indexes */
|
|
57
|
+
export declare function triangulate(P: readonly Pt[]): number[][];
|
|
58
|
+
/**
|
|
59
|
+
* Merges triangles (indexes into V, positively oriented) into convex
|
|
60
|
+
* pieces across their shared edges (Hertel-Mehlhorn)
|
|
61
|
+
*/
|
|
62
|
+
export declare function mergeConvex(V: readonly Pt[], tris: readonly number[][]): Piece[];
|
|
63
|
+
/** Convex pieces of a simple polygon */
|
|
64
|
+
export declare function convexPieces(P: readonly Pt[]): Piece[];
|
|
65
|
+
/** Views filling the subpaths with one opaque color (nonzero rule) */
|
|
66
|
+
export declare function regionViews(paths: readonly Subpath[], color: string, shadow?: boolean): Prim[];
|
|
67
|
+
/** Splits a polyline into its dashes (canvas `setLineDash`) */
|
|
68
|
+
export declare function dashPolyline(points: readonly Pt[], dash: readonly number[]): Pt[][];
|
|
69
|
+
/** Views of a recorded frame, in drawing order */
|
|
70
|
+
export declare function framePrims(ops: readonly DrawOp[]): Prim[];
|
|
71
|
+
export {};
|