@devexperts/dxcharts-lite 1.0.1 → 2.0.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/README.md +4 -4
- package/dist/chart/animation/canvas-animation.d.ts +1 -1
- package/dist/chart/animation/canvas-animation.js +135 -2
- package/dist/chart/animation/types/animation.d.ts +1 -1
- package/dist/chart/animation/types/animation.js +44 -2
- package/dist/chart/animation/types/color-alpha-animation.d.ts +2 -2
- package/dist/chart/animation/types/color-alpha-animation.js +61 -2
- package/dist/chart/animation/types/color-transition-animation.d.ts +2 -2
- package/dist/chart/animation/types/color-transition-animation.js +87 -2
- package/dist/chart/animation/types/viewport-movement-animation.d.ts +1 -1
- package/dist/chart/animation/types/viewport-movement-animation.js +64 -2
- package/dist/chart/animation/viewport-model-animation.d.ts +1 -1
- package/dist/chart/animation/viewport-model-animation.js +21 -2
- package/dist/chart/bootstrap.d.ts +52 -49
- package/dist/chart/bootstrap.js +450 -2
- package/dist/chart/canvas/canvas-bounds-container.d.ts +1 -6
- package/dist/chart/canvas/canvas-bounds-container.js +816 -2
- package/dist/chart/canvas/canvas-chart-html.d.ts +1 -1
- package/dist/chart/canvas/canvas-chart-html.js +17 -19
- package/dist/chart/canvas/chart-elements.d.ts +2 -5
- package/dist/chart/canvas/chart-elements.js +23 -2
- package/dist/chart/canvas/cursor.handler.d.ts +1 -1
- package/dist/chart/canvas/cursor.handler.js +123 -2
- package/dist/chart/canvas/layout-creator.d.ts +1 -1
- package/dist/chart/canvas/layout-creator.js +35 -2
- package/dist/chart/canvas/y-axis-bounds.container.d.ts +3 -3
- package/dist/chart/canvas/y-axis-bounds.container.js +68 -2
- package/dist/chart/chart-container.d.ts +1 -1
- package/dist/chart/chart-container.js +2 -2
- package/dist/chart/chart.config.d.ts +5 -6
- package/dist/chart/chart.config.js +646 -2
- package/dist/chart/chart.d.ts +62 -0
- package/dist/chart/chart.js +106 -0
- package/dist/chart/components/chart/basic-scale.d.ts +3 -3
- package/dist/chart/components/chart/basic-scale.js +32 -2
- package/dist/chart/components/chart/candle-transformer.functions.d.ts +1 -1
- package/dist/chart/components/chart/candle-transformer.functions.js +16 -2
- package/dist/chart/components/chart/candle-width-calculator.functions.d.ts +1 -1
- package/dist/chart/components/chart/candle-width-calculator.functions.js +3 -2
- package/dist/chart/components/chart/candle.functions.d.ts +1 -1
- package/dist/chart/components/chart/candle.functions.js +45 -2
- package/dist/chart/components/chart/chart-area-pan.handler.d.ts +4 -4
- package/dist/chart/components/chart/chart-area-pan.handler.js +198 -2
- package/dist/chart/components/chart/chart-base.model.d.ts +1 -1
- package/dist/chart/components/chart/chart-base.model.js +67 -2
- package/dist/chart/components/chart/chart.component.d.ts +8 -4
- package/dist/chart/components/chart/chart.component.js +409 -2
- package/dist/chart/components/chart/chart.model.d.ts +5 -12
- package/dist/chart/components/chart/chart.model.js +955 -2
- package/dist/chart/components/chart/data-series.high-low-provider.d.ts +1 -1
- package/dist/chart/components/chart/data-series.high-low-provider.js +35 -2
- package/dist/chart/components/chart/fake-candles.d.ts +1 -1
- package/dist/chart/components/chart/fake-candles.js +98 -2
- package/dist/chart/components/chart/price.formatter.d.ts +1 -1
- package/dist/chart/components/chart/price.formatter.js +36 -2
- package/dist/chart/components/chart/secondary-chart-colors-pool.d.ts +1 -1
- package/dist/chart/components/chart/secondary-chart-colors-pool.js +69 -2
- package/dist/chart/components/cross_tool/cross-tool.component.d.ts +1 -1
- package/dist/chart/components/cross_tool/cross-tool.component.js +86 -2
- package/dist/chart/components/cross_tool/cross-tool.drawer.d.ts +1 -1
- package/dist/chart/components/cross_tool/cross-tool.drawer.js +33 -2
- package/dist/chart/components/cross_tool/cross-tool.model.d.ts +1 -1
- package/dist/chart/components/cross_tool/cross-tool.model.js +108 -2
- package/dist/chart/components/cross_tool/types/cross-and-labels.drawer.d.ts +1 -1
- package/dist/chart/components/cross_tool/types/cross-and-labels.drawer.js +138 -2
- package/dist/chart/components/cross_tool/types/none.drawer.d.ts +1 -1
- package/dist/chart/components/cross_tool/types/none.drawer.js +4 -2
- package/dist/chart/components/dran-n-drop_helper/drag-n-drop-x.component.d.ts +1 -1
- package/dist/chart/components/dran-n-drop_helper/drag-n-drop-x.component.js +29 -2
- package/dist/chart/components/dran-n-drop_helper/drag-n-drop-y.component.d.ts +1 -1
- package/dist/chart/components/dran-n-drop_helper/drag-n-drop-y.component.js +25 -2
- package/dist/chart/components/dran-n-drop_helper/drag-n-drop.component.d.ts +1 -1
- package/dist/chart/components/dran-n-drop_helper/drag-n-drop.component.js +54 -2
- package/dist/chart/components/dynamic-objects/dynamic-objects.component.d.ts +13 -0
- package/dist/chart/components/dynamic-objects/dynamic-objects.component.js +20 -0
- package/dist/chart/components/dynamic-objects/dynamic-objects.drawer.d.ts +18 -0
- package/dist/chart/components/dynamic-objects/dynamic-objects.drawer.js +23 -0
- package/dist/chart/components/dynamic-objects/dynamic-objects.model.d.ts +63 -0
- package/dist/chart/components/dynamic-objects/dynamic-objects.model.js +136 -0
- package/dist/chart/components/events/events-hit-test.drawer.d.ts +1 -1
- package/dist/chart/components/events/events-hit-test.drawer.js +64 -2
- package/dist/chart/components/events/events.component.d.ts +1 -1
- package/dist/chart/components/events/events.component.js +62 -2
- package/dist/chart/components/events/events.drawer.d.ts +1 -1
- package/dist/chart/components/events/events.drawer.js +196 -2
- package/dist/chart/components/events/events.model.d.ts +1 -1
- package/dist/chart/components/events/events.model.js +70 -2
- package/dist/chart/components/grid/grid.component.d.ts +3 -3
- package/dist/chart/components/grid/grid.component.js +32 -2
- package/dist/chart/components/grid/grid.drawer.d.ts +5 -4
- package/dist/chart/components/grid/grid.drawer.js +107 -2
- package/dist/chart/components/high_low/high-low.component.d.ts +1 -1
- package/dist/chart/components/high_low/high-low.component.js +13 -2
- package/dist/chart/components/high_low/high-low.drawer.d.ts +1 -1
- package/dist/chart/components/high_low/high-low.drawer.js +127 -2
- package/dist/chart/components/highlights/highlights.component.d.ts +1 -1
- package/dist/chart/components/highlights/highlights.component.js +47 -2
- package/dist/chart/components/highlights/highlights.drawer.d.ts +1 -1
- package/dist/chart/components/highlights/highlights.drawer.js +155 -2
- package/dist/chart/components/highlights/highlights.model.d.ts +1 -1
- package/dist/chart/components/highlights/highlights.model.js +76 -2
- package/dist/chart/components/labels_generator/numeric-axis-labels.generator.d.ts +2 -2
- package/dist/chart/components/labels_generator/numeric-axis-labels.generator.js +200 -2
- package/dist/chart/components/navigation_map/navigation-map-move.handler.d.ts +3 -3
- package/dist/chart/components/navigation_map/navigation-map-move.handler.js +109 -2
- package/dist/chart/components/navigation_map/navigation-map.component.d.ts +1 -1
- package/dist/chart/components/navigation_map/navigation-map.component.js +113 -2
- package/dist/chart/components/navigation_map/navigation-map.drawer.d.ts +1 -1
- package/dist/chart/components/navigation_map/navigation-map.drawer.js +245 -2
- package/dist/chart/components/navigation_map/navigation-map.model.d.ts +1 -1
- package/dist/chart/components/navigation_map/navigation-map.model.js +34 -3
- package/dist/chart/components/pan/chart-pan.component.d.ts +3 -3
- package/dist/chart/components/pan/chart-pan.component.js +52 -2
- package/dist/chart/components/pane/extent/y-extent-component.d.ts +13 -19
- package/dist/chart/components/pane/extent/y-extent-component.js +121 -2
- package/dist/chart/components/pane/pane-hit-test.controller.d.ts +1 -1
- package/dist/chart/components/pane/pane-hit-test.controller.js +56 -2
- package/dist/chart/components/pane/pane-manager.component.d.ts +11 -6
- package/dist/chart/components/pane/pane-manager.component.js +149 -2
- package/dist/chart/components/pane/pane.component.d.ts +18 -34
- package/dist/chart/components/pane/pane.component.js +279 -2
- package/dist/chart/components/resizer/bar-resizer.component.d.ts +1 -1
- package/dist/chart/components/resizer/bar-resizer.component.js +140 -2
- package/dist/chart/components/resizer/bar-resizer.drawer.d.ts +1 -1
- package/dist/chart/components/resizer/bar-resizer.drawer.js +47 -2
- package/dist/chart/components/snapshot/snapshot.component.d.ts +1 -1
- package/dist/chart/components/snapshot/snapshot.component.js +49 -2
- package/dist/chart/components/volumes/separate-volumes.component.d.ts +7 -11
- package/dist/chart/components/volumes/separate-volumes.component.js +64 -2
- package/dist/chart/components/volumes/volume-color-resolvers.functions.d.ts +1 -1
- package/dist/chart/components/volumes/volume-color-resolvers.functions.js +19 -2
- package/dist/chart/components/volumes/volumes.component.d.ts +9 -9
- package/dist/chart/components/volumes/volumes.component.js +95 -2
- package/dist/chart/components/volumes/volumes.drawer.d.ts +6 -13
- package/dist/chart/components/volumes/volumes.drawer.js +141 -2
- package/dist/chart/components/volumes/volumes.formatter.d.ts +1 -1
- package/dist/chart/components/volumes/volumes.formatter.js +32 -2
- package/dist/chart/components/volumes/volumes.model.d.ts +3 -3
- package/dist/chart/components/volumes/volumes.model.js +44 -2
- package/dist/chart/components/watermark/water-mark.component.d.ts +1 -1
- package/dist/chart/components/watermark/water-mark.component.js +104 -2
- package/dist/chart/components/watermark/water-mark.drawer.d.ts +1 -1
- package/dist/chart/components/watermark/water-mark.drawer.js +188 -2
- package/dist/chart/components/x_axis/numeric-x-axis-labels.generator.d.ts +1 -1
- package/dist/chart/components/x_axis/numeric-x-axis-labels.generator.js +28 -2
- package/dist/chart/components/x_axis/time/parser/time-formats-matchers.functions.d.ts +1 -1
- package/dist/chart/components/x_axis/time/parser/time-formats-matchers.functions.js +188 -2
- package/dist/chart/components/x_axis/time/parser/time-formats-parser.functions.d.ts +1 -1
- package/dist/chart/components/x_axis/time/parser/time-formats-parser.functions.js +77 -2
- package/dist/chart/components/x_axis/time/parser/time-formats-validators.functions.d.ts +1 -1
- package/dist/chart/components/x_axis/time/parser/time-formats-validators.functions.js +80 -2
- package/dist/chart/components/x_axis/time/parser/time-formats.model.d.ts +1 -1
- package/dist/chart/components/x_axis/time/parser/time-formats.model.js +15 -2
- package/dist/chart/components/x_axis/time/x-axis-weights.functions.d.ts +2 -2
- package/dist/chart/components/x_axis/time/x-axis-weights.functions.js +144 -2
- package/dist/chart/components/x_axis/time/x-axis-weights.generator.d.ts +1 -1
- package/dist/chart/components/x_axis/time/x-axis-weights.generator.js +74 -2
- package/dist/chart/components/x_axis/x-axis-draw.functions.d.ts +1 -1
- package/dist/chart/components/x_axis/x-axis-draw.functions.js +50 -2
- package/dist/chart/components/x_axis/x-axis-labels.drawer.d.ts +1 -1
- package/dist/chart/components/x_axis/x-axis-labels.drawer.js +71 -2
- package/dist/chart/components/x_axis/x-axis-labels.generator.d.ts +3 -3
- package/dist/chart/components/x_axis/x-axis-labels.generator.js +333 -2
- package/dist/chart/components/x_axis/x-axis-labels.model.d.ts +1 -1
- package/dist/chart/components/x_axis/x-axis-labels.model.js +36 -2
- package/dist/chart/components/x_axis/x-axis-scale.handler.d.ts +3 -3
- package/dist/chart/components/x_axis/x-axis-scale.handler.js +61 -2
- package/dist/chart/components/x_axis/x-axis-time-labels.drawer.d.ts +1 -1
- package/dist/chart/components/x_axis/x-axis-time-labels.drawer.js +83 -2
- package/dist/chart/components/x_axis/x-axis.component.d.ts +3 -3
- package/dist/chart/components/x_axis/x-axis.component.js +120 -2
- package/dist/chart/components/y_axis/label-color.functions.d.ts +1 -1
- package/dist/chart/components/y_axis/label-color.functions.js +54 -2
- package/dist/chart/components/y_axis/numeric-y-axis-labels.generator.d.ts +5 -5
- package/dist/chart/components/y_axis/numeric-y-axis-labels.generator.js +34 -2
- package/dist/chart/components/y_axis/price_labels/data-series-y-axis-labels.provider.d.ts +4 -4
- package/dist/chart/components/y_axis/price_labels/data-series-y-axis-labels.provider.js +68 -2
- package/dist/chart/components/y_axis/price_labels/labels-positions-calculator.d.ts +1 -1
- package/dist/chart/components/y_axis/price_labels/labels-positions-calculator.js +57 -2
- package/dist/chart/components/y_axis/price_labels/last-candle-labels.provider.d.ts +1 -1
- package/dist/chart/components/y_axis/price_labels/last-candle-labels.provider.js +96 -2
- package/dist/chart/components/y_axis/price_labels/price-label.drawer.d.ts +3 -3
- package/dist/chart/components/y_axis/price_labels/price-label.drawer.js +120 -2
- package/dist/chart/components/y_axis/price_labels/y-axis-labels.model.d.ts +10 -9
- package/dist/chart/components/y_axis/price_labels/y-axis-labels.model.js +202 -2
- package/dist/chart/components/y_axis/price_labels/y-axis-price-labels.drawer.d.ts +7 -8
- package/dist/chart/components/y_axis/price_labels/y-axis-price-labels.drawer.js +59 -2
- package/dist/chart/components/y_axis/y-axis-base-labels.model.d.ts +7 -5
- package/dist/chart/components/y_axis/y-axis-base-labels.model.js +48 -2
- package/dist/chart/components/y_axis/y-axis-labels.drawer.d.ts +5 -5
- package/dist/chart/components/y_axis/y-axis-labels.drawer.js +162 -2
- package/dist/chart/components/y_axis/y-axis-scale.handler.d.ts +3 -3
- package/dist/chart/components/y_axis/y-axis-scale.handler.js +73 -2
- package/dist/chart/components/y_axis/y-axis.component.d.ts +33 -42
- package/dist/chart/components/y_axis/y-axis.component.js +221 -2
- package/dist/chart/components/y_axis/y-axis.drawer.d.ts +10 -13
- package/dist/chart/components/y_axis/y-axis.drawer.js +97 -2
- package/dist/chart/components/y_axis/y-axis.model.d.ts +10 -18
- package/dist/chart/components/y_axis/y-axis.model.js +34 -2
- package/dist/chart/drawers/chart-background.drawer.d.ts +1 -1
- package/dist/chart/drawers/chart-background.drawer.js +70 -2
- package/dist/chart/drawers/chart-type-drawers/area.drawer.d.ts +1 -1
- package/dist/chart/drawers/chart-type-drawers/area.drawer.js +70 -2
- package/dist/chart/drawers/chart-type-drawers/bar.drawer.d.ts +1 -1
- package/dist/chart/drawers/chart-type-drawers/bar.drawer.js +58 -2
- package/dist/chart/drawers/chart-type-drawers/baseline.drawer.d.ts +1 -1
- package/dist/chart/drawers/chart-type-drawers/baseline.drawer.js +85 -2
- package/dist/chart/drawers/chart-type-drawers/candle.drawer.d.ts +1 -1
- package/dist/chart/drawers/chart-type-drawers/candle.drawer.js +163 -2
- package/dist/chart/drawers/chart-type-drawers/histogram.drawer.d.ts +1 -1
- package/dist/chart/drawers/chart-type-drawers/histogram.drawer.js +58 -2
- package/dist/chart/drawers/chart-type-drawers/line.drawer.d.ts +1 -1
- package/dist/chart/drawers/chart-type-drawers/line.drawer.js +39 -2
- package/dist/chart/drawers/chart-type-drawers/scatter-plot.drawer.d.ts +1 -1
- package/dist/chart/drawers/chart-type-drawers/scatter-plot.drawer.js +20 -2
- package/dist/chart/drawers/clear-canvas.drawer.d.ts +1 -1
- package/dist/chart/drawers/clear-canvas.drawer.js +15 -2
- package/dist/chart/drawers/composite.drawer.d.ts +1 -1
- package/dist/chart/drawers/composite.drawer.js +68 -2
- package/dist/chart/drawers/data-series-drawers/candle-series-wrapper.d.ts +1 -1
- package/dist/chart/drawers/data-series-drawers/candle-series-wrapper.js +51 -2
- package/dist/chart/drawers/data-series-drawers/color-candle.drawer.d.ts +1 -1
- package/dist/chart/drawers/data-series-drawers/color-candle.drawer.js +36 -2
- package/dist/chart/drawers/data-series-drawers/data-series-drawers.utils.d.ts +1 -1
- package/dist/chart/drawers/data-series-drawers/data-series-drawers.utils.js +17 -2
- package/dist/chart/drawers/data-series-drawers/difference-cloud.drawer.d.ts +1 -1
- package/dist/chart/drawers/data-series-drawers/difference-cloud.drawer.js +107 -2
- package/dist/chart/drawers/data-series-drawers/histogram.drawer.d.ts +1 -1
- package/dist/chart/drawers/data-series-drawers/histogram.drawer.js +24 -2
- package/dist/chart/drawers/data-series-drawers/linear.drawer.d.ts +1 -1
- package/dist/chart/drawers/data-series-drawers/linear.drawer.js +20 -2
- package/dist/chart/drawers/data-series-drawers/points.drawer.d.ts +1 -1
- package/dist/chart/drawers/data-series-drawers/points.drawer.js +20 -2
- package/dist/chart/drawers/data-series-drawers/rectangular-tool.drawer.d.ts +1 -1
- package/dist/chart/drawers/data-series-drawers/rectangular-tool.drawer.js +8 -2
- package/dist/chart/drawers/data-series-drawers/text.drawer.d.ts +1 -1
- package/dist/chart/drawers/data-series-drawers/text.drawer.js +26 -2
- package/dist/chart/drawers/data-series-drawers/trend-histogram.drawer.d.ts +1 -1
- package/dist/chart/drawers/data-series-drawers/trend-histogram.drawer.js +36 -2
- package/dist/chart/drawers/data-series-drawers/triangle.drawer.d.ts +1 -1
- package/dist/chart/drawers/data-series-drawers/triangle.drawer.js +23 -2
- package/dist/chart/drawers/data-series.drawer.d.ts +6 -8
- package/dist/chart/drawers/data-series.drawer.js +57 -2
- package/dist/chart/drawers/drawing-manager.d.ts +2 -2
- package/dist/chart/drawers/drawing-manager.js +178 -2
- package/dist/chart/drawers/ht-data-series.drawer.d.ts +1 -1
- package/dist/chart/drawers/ht-data-series.drawer.js +38 -2
- package/dist/chart/events/event-bus.d.ts +1 -1
- package/dist/chart/events/event-bus.js +74 -2
- package/dist/chart/events/events.d.ts +1 -1
- package/dist/chart/events/events.js +4 -2
- package/dist/chart/inputhandlers/candle-tap.handler.d.ts +1 -1
- package/dist/chart/inputhandlers/candle-tap.handler.js +47 -2
- package/dist/chart/inputhandlers/chart-resize.handler.d.ts +1 -1
- package/dist/chart/inputhandlers/chart-resize.handler.js +99 -2
- package/dist/chart/inputhandlers/cross-event-producer.component.d.ts +1 -1
- package/dist/chart/inputhandlers/cross-event-producer.component.js +68 -2
- package/dist/chart/inputhandlers/hover-producer.component.d.ts +3 -3
- package/dist/chart/inputhandlers/hover-producer.component.js +229 -2
- package/dist/chart/inputhandlers/main-canvas-touch.handler.d.ts +3 -3
- package/dist/chart/inputhandlers/main-canvas-touch.handler.js +81 -2
- package/dist/chart/inputlisteners/canvas-input-listener.component.d.ts +1 -1
- package/dist/chart/inputlisteners/canvas-input-listener.component.js +630 -2
- package/dist/chart/model/baseline.model.d.ts +1 -1
- package/dist/chart/model/baseline.model.js +89 -2
- package/dist/chart/model/bounds.model.d.ts +1 -1
- package/dist/chart/model/bounds.model.js +2 -2
- package/dist/chart/model/candle-hover.d.ts +1 -1
- package/dist/chart/model/candle-hover.js +71 -2
- package/dist/chart/model/candle-series-high-low.provider.d.ts +1 -1
- package/dist/chart/model/candle-series-high-low.provider.js +46 -2
- package/dist/chart/model/candle-series.model.d.ts +4 -4
- package/dist/chart/model/candle-series.model.js +246 -2
- package/dist/chart/model/candle.model.d.ts +1 -1
- package/dist/chart/model/candle.model.js +70 -2
- package/dist/chart/model/canvas.model.d.ts +1 -1
- package/dist/chart/model/canvas.model.js +229 -2
- package/dist/chart/model/chart-base-element.d.ts +1 -1
- package/dist/chart/model/chart-base-element.js +130 -2
- package/dist/chart/model/compare-series-hover.d.ts +1 -1
- package/dist/chart/model/compare-series-hover.js +26 -2
- package/dist/chart/model/data-series-view.d.ts +6 -6
- package/dist/chart/model/data-series-view.js +112 -2
- package/dist/chart/model/data-series.config.d.ts +1 -1
- package/dist/chart/model/data-series.config.js +15 -2
- package/dist/chart/model/data-series.model.d.ts +5 -5
- package/dist/chart/model/data-series.model.js +282 -2
- package/dist/chart/model/date-time.formatter.d.ts +1 -1
- package/dist/chart/model/date-time.formatter.js +152 -2
- package/dist/chart/model/hit-test-canvas.model.d.ts +2 -2
- package/dist/chart/model/hit-test-canvas.model.js +257 -2
- package/dist/chart/model/main-candle-series.model.d.ts +2 -2
- package/dist/chart/model/main-candle-series.model.js +30 -2
- package/dist/chart/model/scale.model.d.ts +3 -2
- package/dist/chart/model/scale.model.js +317 -2
- package/dist/chart/model/scaling/auto-scale.model.d.ts +1 -1
- package/dist/chart/model/scaling/auto-scale.model.js +98 -2
- package/dist/chart/model/scaling/constrait.functions.d.ts +1 -1
- package/dist/chart/model/scaling/constrait.functions.js +62 -2
- package/dist/chart/model/scaling/lock-ratio.model.d.ts +1 -1
- package/dist/chart/model/scaling/lock-ratio.model.js +18 -2
- package/dist/chart/model/scaling/move-chart.functions.d.ts +1 -1
- package/dist/chart/model/scaling/move-chart.functions.js +23 -2
- package/dist/chart/model/scaling/viewport.model.d.ts +3 -3
- package/dist/chart/model/scaling/viewport.model.js +280 -2
- package/dist/chart/model/scaling/x-zooming.functions.d.ts +1 -1
- package/dist/chart/model/scaling/x-zooming.functions.js +36 -2
- package/dist/chart/model/time-zone.model.d.ts +1 -1
- package/dist/chart/model/time-zone.model.js +110 -2
- package/dist/chart/model/visual-candle.d.ts +1 -1
- package/dist/chart/model/visual-candle.js +135 -2
- package/dist/chart/utils/__tests__/array.utils.test.d.ts +1 -1
- package/dist/chart/utils/__tests__/array.utils.test.js +136 -2
- package/dist/chart/utils/{perfomance/debounce.utils.js → __tests__/math.utils.test.d.ts} +2 -2
- package/dist/chart/utils/__tests__/math.utils.test.js +19 -0
- package/dist/chart/utils/__tests__/object.utils.test.d.ts +1 -1
- package/dist/chart/utils/__tests__/object.utils.test.js +12 -2
- package/dist/chart/utils/__tests__/priceIncrementsUtils.test.d.ts +1 -1
- package/dist/chart/utils/__tests__/priceIncrementsUtils.test.js +30 -2
- package/dist/chart/utils/array.utils.d.ts +2 -2
- package/dist/chart/utils/array.utils.js +270 -2
- package/dist/chart/utils/auto-period-detector.utils.d.ts +1 -1
- package/dist/chart/utils/auto-period-detector.utils.js +40 -2
- package/dist/chart/utils/candles-generator-ts.utils.d.ts +1 -1
- package/dist/chart/utils/candles-generator-ts.utils.js +21 -2
- package/dist/chart/utils/candles-generator.utils.d.ts +1 -1
- package/dist/chart/utils/candles-generator.utils.js +162 -2
- package/dist/chart/utils/candles.utils.d.ts +1 -1
- package/dist/chart/utils/candles.utils.js +43 -2
- package/dist/chart/utils/canvas/canvas-drawing-functions.utils.d.ts +1 -1
- package/dist/chart/utils/canvas/canvas-drawing-functions.utils.js +145 -2
- package/dist/chart/utils/canvas/canvas-font-measure-tool.utils.d.ts +1 -1
- package/dist/chart/utils/canvas/canvas-font-measure-tool.utils.js +52 -2
- package/dist/chart/utils/canvas/canvas-text-functions.utils.d.ts +1 -1
- package/dist/chart/utils/canvas/canvas-text-functions.utils.js +157 -2
- package/dist/chart/utils/color.utils.d.ts +1 -1
- package/dist/chart/utils/color.utils.js +32 -2
- package/dist/chart/utils/device/browser.utils.d.ts +1 -1
- package/dist/chart/utils/device/browser.utils.js +11 -2
- package/dist/chart/utils/device/device-detector.utils.d.ts +1 -1
- package/dist/chart/utils/device/device-detector.utils.js +25 -2
- package/dist/chart/utils/device/device-pixel-ratio.utils.d.ts +1 -1
- package/dist/chart/utils/device/device-pixel-ratio.utils.js +22 -2
- package/dist/chart/utils/device/touchpad.utils.d.ts +1 -1
- package/dist/chart/utils/device/touchpad.utils.js +92 -2
- package/dist/chart/utils/dom.utils.d.ts +1 -1
- package/dist/chart/utils/dom.utils.js +16 -2
- package/dist/chart/utils/function.utils.d.ts +1 -1
- package/dist/chart/utils/function.utils.js +17 -2
- package/dist/chart/utils/linkedList.utils.d.ts +28 -0
- package/dist/chart/utils/linkedList.utils.js +138 -0
- package/dist/chart/utils/math.utils.d.ts +1 -1
- package/dist/chart/utils/math.utils.js +116 -2
- package/dist/chart/utils/merge.utils.d.ts +1 -1
- package/dist/chart/utils/merge.utils.js +57 -2
- package/dist/chart/utils/object.utils.d.ts +1 -1
- package/dist/chart/utils/object.utils.js +44 -2
- package/dist/chart/utils/{perfomance → performance}/animation-frame-cache.utils.d.ts +1 -1
- package/dist/chart/utils/performance/animation-frame-cache.utils.js +77 -0
- package/dist/chart/utils/{perfomance → performance}/debounce.utils.d.ts +1 -1
- package/dist/chart/utils/performance/debounce.utils.js +12 -0
- package/dist/chart/utils/{perfomance → performance}/memoize.utils.d.ts +1 -1
- package/dist/chart/utils/performance/memoize.utils.js +74 -0
- package/dist/chart/utils/{perfomance → performance}/request-animation-frame-throttle.utils.d.ts +1 -1
- package/dist/chart/utils/performance/request-animation-frame-throttle.utils.js +43 -0
- package/dist/chart/utils/{perfomance → performance}/throttle.utils.d.ts +1 -1
- package/dist/chart/utils/performance/throttle.utils.js +26 -0
- package/dist/chart/utils/price-increments.utils.d.ts +2 -1
- package/dist/chart/utils/price-increments.utils.js +128 -2
- package/dist/chart/utils/uuid.utils.d.ts +1 -1
- package/dist/chart/utils/uuid.utils.js +5 -2
- package/dist/dxchart.min.js +10 -13
- package/dist/index.d.ts +4 -4
- package/dist/index.js +21 -2
- package/package.json +4 -4
- package/dist/chart/utils/perfomance/animation-frame-cache.utils.js +0 -6
- package/dist/chart/utils/perfomance/memoize.utils.js +0 -6
- package/dist/chart/utils/perfomance/request-animation-frame-throttle.utils.js +0 -6
- package/dist/chart/utils/perfomance/throttle.utils.js +0 -6
|
@@ -1,6 +1,142 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (C)
|
|
2
|
+
* Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
|
|
3
3
|
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
4
|
* If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
5
|
*/
|
|
6
|
-
import{CanvasElement
|
|
6
|
+
import { CanvasElement } from '../../../canvas/canvas-bounds-container';
|
|
7
|
+
import { avoidAntialiasing, drawRoundedRect } from '../../../utils/canvas/canvas-drawing-functions.utils';
|
|
8
|
+
import { priceLabelDrawersMap } from '../../y_axis/price_labels/price-label.drawer';
|
|
9
|
+
export class CrossAndLabelsDrawerType {
|
|
10
|
+
constructor(config, canvasBoundsContainer, paneManager, crossDrawPredicate = () => true, noLines) {
|
|
11
|
+
this.config = config;
|
|
12
|
+
this.canvasBoundsContainer = canvasBoundsContainer;
|
|
13
|
+
this.paneManager = paneManager;
|
|
14
|
+
this.crossDrawPredicate = crossDrawPredicate;
|
|
15
|
+
this.noLines = noLines;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Draws a cross tool on a canvas context and its labels if the crossDrawPredicate is true.
|
|
19
|
+
* @param {CanvasRenderingContext2D} ctx - The canvas context to draw on.
|
|
20
|
+
* @param {CrossToolHover} hover - The hover object containing information about the cross tool's position.
|
|
21
|
+
*/
|
|
22
|
+
draw(ctx, hover) {
|
|
23
|
+
if (this.crossDrawPredicate()) {
|
|
24
|
+
avoidAntialiasing(ctx, () => this.drawCrossTool(ctx, hover));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* This is a protected method called `drawCrossTool` that takes two parameters: `ctx` of type `CanvasRenderingContext2D` and `hover` of type `CrossToolHover`.
|
|
29
|
+
* The method draws a cross tool on the canvas using the provided context. It first gets the bounds of all panes and the hit test bounds of all panes. It then gets the top padding of the x-axis from the configuration and the left padding of the y-axis from the configuration based on the type of y-label.
|
|
30
|
+
* If the hit test bounds of all panes contain the hover coordinates, it draws a horizontal line and a vertical line using the provided coordinates and the bounds of all panes. It sets the stroke style to the line color from the configuration and sets the line dash to the line dash from the configuration. It then begins a new path, moves to the start of the horizontal line, draws a line to the end of the horizontal line, moves to the start of the vertical line, and draws a line to the end of the vertical line. Finally, it strokes the path.
|
|
31
|
+
*/
|
|
32
|
+
drawCrossTool(ctx, hover) {
|
|
33
|
+
var _a, _b, _c, _d, _e;
|
|
34
|
+
const allPanes = this.canvasBoundsContainer.getBounds(CanvasElement.ALL_PANES);
|
|
35
|
+
// extension is need for allPanes.y to fit into hit test
|
|
36
|
+
const allPanesHT = this.canvasBoundsContainer.getBoundsHitTest(CanvasElement.ALL_PANES, { extensionY: 0.0001 });
|
|
37
|
+
const xAxisTopPadding = (_a = this.config.components.xAxis.padding.top) !== null && _a !== void 0 ? _a : 0;
|
|
38
|
+
const padding = (_c = this.config.components.yAxis.typeConfig[(_b = this.config.components.crossTool.yLabel.type) !== null && _b !== void 0 ? _b : 'badge']) === null || _c === void 0 ? void 0 : _c.paddings;
|
|
39
|
+
const yAxisLeftPadding = (_d = padding === null || padding === void 0 ? void 0 : padding.start) !== null && _d !== void 0 ? _d : 0;
|
|
40
|
+
// we want to draw hover even if y coordinate is beyond chart
|
|
41
|
+
// Example: snap option is turned on, and chart is scrolled down, so it's not visible
|
|
42
|
+
const paneHT = (_e = this.paneManager.panes[hover.paneId]) === null || _e === void 0 ? void 0 : _e.ht;
|
|
43
|
+
if (allPanesHT(hover.x, allPanes.y)) {
|
|
44
|
+
const horizontalLineCoords = {
|
|
45
|
+
start: [allPanes.x, hover.y],
|
|
46
|
+
end: [allPanes.x + allPanes.width + yAxisLeftPadding, hover.y],
|
|
47
|
+
};
|
|
48
|
+
const verticalLineCoords = {
|
|
49
|
+
start: [hover.x, allPanes.y],
|
|
50
|
+
end: [hover.x, allPanes.y + allPanes.height + xAxisTopPadding],
|
|
51
|
+
};
|
|
52
|
+
const allowHorizontal = paneHT === null || paneHT === void 0 ? void 0 : paneHT(hover.x, hover.y);
|
|
53
|
+
if (!this.noLines) {
|
|
54
|
+
ctx.strokeStyle = this.config.colors.crossTool.lineColor;
|
|
55
|
+
ctx.setLineDash(this.config.components.crossTool.lineDash);
|
|
56
|
+
ctx.beginPath();
|
|
57
|
+
// don't draw horizontal line if it's not in hit test
|
|
58
|
+
if (allowHorizontal) {
|
|
59
|
+
ctx.moveTo(...horizontalLineCoords.start);
|
|
60
|
+
ctx.lineTo(...horizontalLineCoords.end);
|
|
61
|
+
}
|
|
62
|
+
ctx.moveTo(...verticalLineCoords.start);
|
|
63
|
+
ctx.lineTo(...verticalLineCoords.end);
|
|
64
|
+
ctx.stroke();
|
|
65
|
+
}
|
|
66
|
+
allowHorizontal && this.drawYLabel(ctx, hover);
|
|
67
|
+
this.drawXLabel(ctx, hover);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Draws the X axis label for the cross tool on the canvas.
|
|
72
|
+
* @param {CanvasRenderingContext2D} ctx - The 2D rendering context for the canvas.
|
|
73
|
+
* @param {CrossToolHover} hover - The hover object containing the x and y coordinates of the cross tool.
|
|
74
|
+
* @returns {void}
|
|
75
|
+
*/
|
|
76
|
+
drawXLabel(ctx, hover) {
|
|
77
|
+
var _a, _b, _c, _d, _e;
|
|
78
|
+
const xLabelPadding = this.config.components.crossTool.xLabel.padding;
|
|
79
|
+
const xLabelMargin = this.config.components.crossTool.xLabel.margin;
|
|
80
|
+
const crossToolColors = this.config.colors.crossTool;
|
|
81
|
+
// X axis label same for all
|
|
82
|
+
if (this.config.components.xAxis.visible) {
|
|
83
|
+
ctx.font = this.config.components.xAxis.fontSize + 'px ' + this.config.components.xAxis.fontFamily;
|
|
84
|
+
// X hover
|
|
85
|
+
const x = hover.x;
|
|
86
|
+
const labelText = hover.time;
|
|
87
|
+
const width = ctx.measureText(labelText).width;
|
|
88
|
+
const fontHeight = this.config.components.xAxis.fontSize;
|
|
89
|
+
// box
|
|
90
|
+
const xAxis = this.canvasBoundsContainer.getBounds(CanvasElement.X_AXIS);
|
|
91
|
+
ctx.save();
|
|
92
|
+
ctx.fillStyle = crossToolColors.labelBoxColor;
|
|
93
|
+
const xLabelPaddingLeft = (_a = xLabelPadding === null || xLabelPadding === void 0 ? void 0 : xLabelPadding.left) !== null && _a !== void 0 ? _a : 0;
|
|
94
|
+
const xLabelPaddingRight = (_b = xLabelPadding === null || xLabelPadding === void 0 ? void 0 : xLabelPadding.right) !== null && _b !== void 0 ? _b : 0;
|
|
95
|
+
const xLabelPaddingTop = (_c = xLabelPadding === null || xLabelPadding === void 0 ? void 0 : xLabelPadding.top) !== null && _c !== void 0 ? _c : 0;
|
|
96
|
+
const xLabelPaddingBottom = (_d = xLabelPadding === null || xLabelPadding === void 0 ? void 0 : xLabelPadding.bottom) !== null && _d !== void 0 ? _d : 0;
|
|
97
|
+
const xLabelMarginTop = (_e = xLabelMargin === null || xLabelMargin === void 0 ? void 0 : xLabelMargin.top) !== null && _e !== void 0 ? _e : 0;
|
|
98
|
+
const boxWidth = width + xLabelPaddingLeft + xLabelPaddingRight;
|
|
99
|
+
const boxHeight = fontHeight + xLabelPaddingTop + xLabelPaddingBottom;
|
|
100
|
+
const xBoxPos = Math.max(x - boxWidth / 2, 0);
|
|
101
|
+
const yBoxPos = xAxis.y + xLabelMarginTop;
|
|
102
|
+
drawRoundedRect(ctx, xBoxPos, yBoxPos, boxWidth, boxHeight);
|
|
103
|
+
// label
|
|
104
|
+
ctx.fillStyle = crossToolColors.labelTextColor;
|
|
105
|
+
const xTextPos = Math.max(x - width / 2, xLabelPaddingLeft);
|
|
106
|
+
const yTextPos = xAxis.y + xLabelMarginTop + fontHeight + xLabelPaddingTop - 1; // -1 for vertical adjustment
|
|
107
|
+
ctx.fillText(labelText, xTextPos, yTextPos);
|
|
108
|
+
ctx.restore();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Draws the Y-axis label on the canvas context at the given point.
|
|
113
|
+
* @param {CanvasRenderingContext2D} ctx - The canvas context to draw on.
|
|
114
|
+
* @param {Point} point - The point where the label should be drawn.
|
|
115
|
+
* @returns {void}
|
|
116
|
+
*/
|
|
117
|
+
drawYLabel(ctx, point) {
|
|
118
|
+
const yLabelPadding = this.config.components.crossTool.yLabel.padding;
|
|
119
|
+
const crossToolColors = this.config.colors.crossTool;
|
|
120
|
+
// Y axis label different for main chart pane and the rest panes
|
|
121
|
+
if (this.config.components.yAxis.visible) {
|
|
122
|
+
const pane = this.paneManager.panes[point.paneId];
|
|
123
|
+
const y = point.y;
|
|
124
|
+
if (!pane) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
for (const extent of pane.yExtentComponents) {
|
|
128
|
+
const price = extent.regularValueFromY(y);
|
|
129
|
+
const label = extent.valueFormatter(price);
|
|
130
|
+
const bounds = this.canvasBoundsContainer.getBounds(CanvasElement.PANE_UUID_Y_AXIS(pane.uuid, extent.idx));
|
|
131
|
+
const drawYLabel = priceLabelDrawersMap[this.config.components.crossTool.yLabel.type];
|
|
132
|
+
drawYLabel(ctx, bounds, label, y, {
|
|
133
|
+
textColor: crossToolColors.labelTextColor,
|
|
134
|
+
bgColor: crossToolColors.labelBoxColor,
|
|
135
|
+
paddingBottom: yLabelPadding === null || yLabelPadding === void 0 ? void 0 : yLabelPadding.bottom,
|
|
136
|
+
paddingEnd: yLabelPadding === null || yLabelPadding === void 0 ? void 0 : yLabelPadding.end,
|
|
137
|
+
paddingTop: yLabelPadding === null || yLabelPadding === void 0 ? void 0 : yLabelPadding.top,
|
|
138
|
+
}, extent.yAxis.state, this.config.colors.yAxis, true);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (C)
|
|
2
|
+
* Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
|
|
3
3
|
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
4
|
* If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
5
|
*/
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (C)
|
|
2
|
+
* Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
|
|
3
3
|
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
4
|
* If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
5
|
*/
|
|
6
|
-
export class NoneDrawerType{
|
|
6
|
+
export class NoneDrawerType {
|
|
7
|
+
draw() { }
|
|
8
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (C)
|
|
2
|
+
* Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
|
|
3
3
|
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
4
|
* If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
5
|
*/
|
|
@@ -1,6 +1,33 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (C)
|
|
2
|
+
* Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
|
|
3
3
|
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
4
|
* If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
5
|
*/
|
|
6
|
-
import{defaultDragComponentOptions
|
|
6
|
+
import { defaultDragComponentOptions, DragNDropComponent, } from './drag-n-drop.component';
|
|
7
|
+
export class DragNDropXComponent extends DragNDropComponent {
|
|
8
|
+
constructor(hitTest, dragCallbacks, canvasInputListener, chartPanComponent, dragComponentOptions = defaultDragComponentOptions) {
|
|
9
|
+
super(hitTest, dragCallbacks, canvasInputListener, chartPanComponent, dragComponentOptions);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* This method is used to activate the component and add the necessary subscriptions to the canvasInputListener.
|
|
13
|
+
* It calls the super method doActivate() and then adds the following subscriptions:
|
|
14
|
+
* - observeXDragStart() subscription with hitTest() as parameter and onDragStart() as callback function
|
|
15
|
+
* - observeXDrag() subscription with onDragTick() as callback function
|
|
16
|
+
* - observeXDragEnd() subscription with onDragEnd() as callback function
|
|
17
|
+
* @returns {void}
|
|
18
|
+
*/
|
|
19
|
+
doActivate() {
|
|
20
|
+
super.doActivate();
|
|
21
|
+
this.addRxSubscription(this.canvasInputListener.observeXDragStart(this.hitTest).subscribe(this.onDragStart));
|
|
22
|
+
this.addRxSubscription(this.canvasInputListener.observeXDrag().subscribe(this.onDragTick));
|
|
23
|
+
this.addRxSubscription(this.canvasInputListener.observeXDragEnd().subscribe(this.onDragEnd));
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* This method overrides the doDeactivate method of the parent class and calls it using the super keyword.
|
|
27
|
+
* It is used to deactivate the current object and perform any necessary cleanup operations.
|
|
28
|
+
* @protected
|
|
29
|
+
*/
|
|
30
|
+
doDeactivate() {
|
|
31
|
+
super.doDeactivate();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (C)
|
|
2
|
+
* Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
|
|
3
3
|
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
4
|
* If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
5
|
*/
|
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (C)
|
|
2
|
+
* Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
|
|
3
3
|
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
4
|
* If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
5
|
*/
|
|
6
|
-
import{defaultDragComponentOptions
|
|
6
|
+
import { defaultDragComponentOptions, DragNDropComponent, } from './drag-n-drop.component';
|
|
7
|
+
export class DragNDropYComponent extends DragNDropComponent {
|
|
8
|
+
constructor(hitTest, dragCallbacks, canvasInputListener, chartPanComponent, dragComponentOptions = defaultDragComponentOptions) {
|
|
9
|
+
super(hitTest, dragCallbacks, canvasInputListener, chartPanComponent, dragComponentOptions);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* This method activates the component and adds subscriptions to the canvasInputListener.
|
|
13
|
+
* @protected
|
|
14
|
+
* @returns {void}
|
|
15
|
+
*/
|
|
16
|
+
doActivate() {
|
|
17
|
+
super.doActivate();
|
|
18
|
+
this.addRxSubscription(this.canvasInputListener.observeYDragStart(this.hitTest).subscribe(this.onDragStart));
|
|
19
|
+
this.addRxSubscription(this.canvasInputListener.observeYDrag().subscribe(this.onDragTick));
|
|
20
|
+
this.addRxSubscription(this.canvasInputListener.observeYDragEnd().subscribe(this.onDragEnd));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* This method overrides the doDeactivate method of the parent class and calls the parent method before executing its own code.
|
|
24
|
+
* It is a protected method, which means it can only be accessed within the class and its subclasses.
|
|
25
|
+
*/
|
|
26
|
+
doDeactivate() {
|
|
27
|
+
super.doDeactivate();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (C)
|
|
2
|
+
* Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
|
|
3
3
|
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
4
|
* If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
5
|
*/
|
|
@@ -1,6 +1,58 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (C)
|
|
2
|
+
* Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
|
|
3
3
|
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
4
|
* If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
5
|
*/
|
|
6
|
-
import{ChartBaseElement
|
|
6
|
+
import { ChartBaseElement } from '../../model/chart-base-element';
|
|
7
|
+
export const defaultDragComponentOptions = {
|
|
8
|
+
disableChartPanning: true,
|
|
9
|
+
};
|
|
10
|
+
export class DragNDropComponent extends ChartBaseElement {
|
|
11
|
+
constructor(hitTest, dragCallbacks, canvasInputListener, chartPanComponent, dragComponentOptions) {
|
|
12
|
+
super();
|
|
13
|
+
this.hitTest = hitTest;
|
|
14
|
+
this.dragCallbacks = dragCallbacks;
|
|
15
|
+
this.canvasInputListener = canvasInputListener;
|
|
16
|
+
this.chartPanComponent = chartPanComponent;
|
|
17
|
+
this.dragComponentOptions = dragComponentOptions;
|
|
18
|
+
this.dragging = false;
|
|
19
|
+
this.draggedPixels = 0;
|
|
20
|
+
this.onDragStart = (point) => {
|
|
21
|
+
this.dragging = true;
|
|
22
|
+
this.draggedPixels = 0;
|
|
23
|
+
this.dragCallbacks.onDragStart && this.dragCallbacks.onDragStart(point);
|
|
24
|
+
this.dragComponentOptions.disableChartPanning && this.chartPanComponent.deactivatePanHandlers();
|
|
25
|
+
};
|
|
26
|
+
this.onDragTick = (yDelta) => {
|
|
27
|
+
if (this.dragging) {
|
|
28
|
+
this.draggedPixels += yDelta;
|
|
29
|
+
this.dragCallbacks.onDragTick({
|
|
30
|
+
delta: yDelta,
|
|
31
|
+
draggedPixels: this.draggedPixels,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
this.onDragEnd = () => {
|
|
36
|
+
if (this.dragging) {
|
|
37
|
+
this.dragging = false;
|
|
38
|
+
this.dragCallbacks.onDragEnd && this.dragCallbacks.onDragEnd(this.draggedPixels);
|
|
39
|
+
this.dragComponentOptions.disableChartPanning && this.chartPanComponent.activateChartPanHandlers();
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Calls the parent class's doActivate method and performs any additional activation logic.
|
|
45
|
+
* This method is protected and can only be accessed by the class itself and its subclasses.
|
|
46
|
+
*/
|
|
47
|
+
doActivate() {
|
|
48
|
+
super.doActivate();
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* This method overrides the doDeactivate method of the parent class and calls it using the super keyword.
|
|
52
|
+
* It is a protected method that can only be accessed within the class and its subclasses.
|
|
53
|
+
* This method is responsible for deactivating the current object.
|
|
54
|
+
*/
|
|
55
|
+
doDeactivate() {
|
|
56
|
+
super.doDeactivate();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
|
|
3
|
+
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
|
+
* If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
|
+
*/
|
|
6
|
+
import { DrawingManager } from '../../drawers/drawing-manager';
|
|
7
|
+
import { CanvasModel } from '../../model/canvas.model';
|
|
8
|
+
import { ChartBaseElement } from '../../model/chart-base-element';
|
|
9
|
+
import { DynamicObjectsModel } from './dynamic-objects.model';
|
|
10
|
+
export declare class DynamicObjectsComponent extends ChartBaseElement {
|
|
11
|
+
model: DynamicObjectsModel;
|
|
12
|
+
constructor(canvasModel: CanvasModel, drawingManager: DrawingManager);
|
|
13
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
|
|
3
|
+
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
|
+
* If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
|
+
*/
|
|
6
|
+
import { ChartBaseElement } from '../../model/chart-base-element';
|
|
7
|
+
import { DynamicObjectsDrawer } from './dynamic-objects.drawer';
|
|
8
|
+
import { DynamicObjectsModel } from './dynamic-objects.model';
|
|
9
|
+
export class DynamicObjectsComponent extends ChartBaseElement {
|
|
10
|
+
constructor(canvasModel, drawingManager) {
|
|
11
|
+
super();
|
|
12
|
+
// model
|
|
13
|
+
const dynamicObjectsModel = new DynamicObjectsModel();
|
|
14
|
+
this.model = dynamicObjectsModel;
|
|
15
|
+
this.addChildEntity(dynamicObjectsModel);
|
|
16
|
+
// drawer
|
|
17
|
+
const dynamicObjectsDrawer = new DynamicObjectsDrawer(dynamicObjectsModel, canvasModel);
|
|
18
|
+
drawingManager.addDrawer(dynamicObjectsDrawer, 'DYNAMIC_OBJECTS');
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
|
|
3
|
+
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
|
+
* If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
|
+
*/
|
|
6
|
+
import { Drawer } from '../../drawers/drawing-manager';
|
|
7
|
+
import { CanvasModel } from '../../model/canvas.model';
|
|
8
|
+
import { DynamicObjectsModel } from './dynamic-objects.model';
|
|
9
|
+
export interface DynamicModelDrawer<T> {
|
|
10
|
+
draw(canvasModel: CanvasModel, model: T, paneUUID?: string): void;
|
|
11
|
+
}
|
|
12
|
+
export declare class DynamicObjectsDrawer implements Drawer {
|
|
13
|
+
private dynamicObjectsModel;
|
|
14
|
+
private canvasModel;
|
|
15
|
+
constructor(dynamicObjectsModel: DynamicObjectsModel, canvasModel: CanvasModel);
|
|
16
|
+
draw(): void;
|
|
17
|
+
getCanvasIds(): string[];
|
|
18
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
|
|
3
|
+
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
|
+
* If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
|
+
*/
|
|
6
|
+
export class DynamicObjectsDrawer {
|
|
7
|
+
constructor(dynamicObjectsModel, canvasModel) {
|
|
8
|
+
this.dynamicObjectsModel = dynamicObjectsModel;
|
|
9
|
+
this.canvasModel = canvasModel;
|
|
10
|
+
}
|
|
11
|
+
draw() {
|
|
12
|
+
const objects = this.dynamicObjectsModel.objects;
|
|
13
|
+
Object.entries(objects).forEach(([paneUUID, list]) => {
|
|
14
|
+
for (const obj of list) {
|
|
15
|
+
const { model, drawer } = obj;
|
|
16
|
+
drawer.draw(this.canvasModel, model, paneUUID);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
getCanvasIds() {
|
|
21
|
+
return [this.canvasModel.canvasId];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
|
|
3
|
+
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
|
+
* If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
|
+
*/
|
|
6
|
+
import { ChartBaseElement } from '../../model/chart-base-element';
|
|
7
|
+
import { LinkedList, ListNode } from '../../utils/linkedList.utils';
|
|
8
|
+
import { DynamicModelDrawer } from './dynamic-objects.drawer';
|
|
9
|
+
export type PaneId = string;
|
|
10
|
+
export interface DynamicObject<T = unknown> {
|
|
11
|
+
readonly drawer: DynamicModelDrawer<T>;
|
|
12
|
+
readonly model: T;
|
|
13
|
+
}
|
|
14
|
+
export declare class DynamicObjectsModel extends ChartBaseElement {
|
|
15
|
+
private _objects;
|
|
16
|
+
private modelToObjectMap;
|
|
17
|
+
constructor();
|
|
18
|
+
/**
|
|
19
|
+
* Adds an object from outside chart-core into model
|
|
20
|
+
* @param obj
|
|
21
|
+
* @param paneId
|
|
22
|
+
*/
|
|
23
|
+
addObject(obj: DynamicObject, paneId: PaneId): void;
|
|
24
|
+
/**
|
|
25
|
+
* Removes an object from model
|
|
26
|
+
* @param model
|
|
27
|
+
* @param paneId
|
|
28
|
+
*/
|
|
29
|
+
removeObject(model: unknown, paneId: PaneId): void;
|
|
30
|
+
/**
|
|
31
|
+
* Moves the object inside the drawing order so it's being drawn before the other elements
|
|
32
|
+
* @param paneId
|
|
33
|
+
* @param listNode
|
|
34
|
+
*/
|
|
35
|
+
bringToFront(paneId: PaneId, listNode: ListNode<DynamicObject>): void;
|
|
36
|
+
/**
|
|
37
|
+
* Moves the object inside the drawing order so it's being drawn after the other elements
|
|
38
|
+
* @param paneId
|
|
39
|
+
* @param listNode
|
|
40
|
+
*/
|
|
41
|
+
bringToBack(paneId: PaneId, listNode: ListNode<DynamicObject>): void;
|
|
42
|
+
/**
|
|
43
|
+
* Moves the object inside the drawing order so it's being drawn one layer ahead
|
|
44
|
+
* @param obj
|
|
45
|
+
* @param paneId
|
|
46
|
+
*/
|
|
47
|
+
moveForward(paneId: PaneId, listNode: ListNode<DynamicObject>): void;
|
|
48
|
+
/**
|
|
49
|
+
* Moves the object inside the drawing order so it's being drawn one layer closer to the back
|
|
50
|
+
* @param obj
|
|
51
|
+
* @param paneId
|
|
52
|
+
*/
|
|
53
|
+
moveBackwards(paneId: PaneId, listNode: ListNode<DynamicObject>): void;
|
|
54
|
+
/**
|
|
55
|
+
* Getter for the objects
|
|
56
|
+
*/
|
|
57
|
+
get objects(): Record<string, LinkedList<DynamicObject<unknown>>>;
|
|
58
|
+
/**
|
|
59
|
+
* Sets the objects
|
|
60
|
+
* @param objects
|
|
61
|
+
*/
|
|
62
|
+
setDynamicObjects(objects: Record<PaneId, LinkedList<DynamicObject>>): void;
|
|
63
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
|
|
3
|
+
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
|
+
* If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
|
+
*/
|
|
6
|
+
import { BehaviorSubject } from 'rxjs';
|
|
7
|
+
import { ChartBaseElement } from '../../model/chart-base-element';
|
|
8
|
+
import { LinkedList, ListNode } from '../../utils/linkedList.utils';
|
|
9
|
+
export class DynamicObjectsModel extends ChartBaseElement {
|
|
10
|
+
constructor() {
|
|
11
|
+
super();
|
|
12
|
+
this.modelToObjectMap = new Map();
|
|
13
|
+
this._objects = new BehaviorSubject({});
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Adds an object from outside chart-core into model
|
|
17
|
+
* @param obj
|
|
18
|
+
* @param paneId
|
|
19
|
+
*/
|
|
20
|
+
addObject(obj, paneId) {
|
|
21
|
+
var _a;
|
|
22
|
+
const objects = this.objects;
|
|
23
|
+
const paneList = (_a = objects[paneId]) !== null && _a !== void 0 ? _a : new LinkedList();
|
|
24
|
+
if (!Object.keys(objects).find(pane => pane === paneId)) {
|
|
25
|
+
objects[paneId] = paneList;
|
|
26
|
+
}
|
|
27
|
+
paneList.insertAtEnd(obj);
|
|
28
|
+
this.modelToObjectMap.set(obj.model, obj);
|
|
29
|
+
this.setDynamicObjects(objects);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Removes an object from model
|
|
33
|
+
* @param model
|
|
34
|
+
* @param paneId
|
|
35
|
+
*/
|
|
36
|
+
removeObject(model, paneId) {
|
|
37
|
+
const objects = this.objects;
|
|
38
|
+
const paneList = objects[paneId];
|
|
39
|
+
const obj = this.modelToObjectMap.get(model);
|
|
40
|
+
if (paneList && obj) {
|
|
41
|
+
const targetNode = new ListNode(obj);
|
|
42
|
+
const targetPos = paneList.getNodePosition(targetNode);
|
|
43
|
+
paneList.removeAt(targetPos);
|
|
44
|
+
this.modelToObjectMap.delete(model);
|
|
45
|
+
if (paneList.size() === 0) {
|
|
46
|
+
delete objects[paneId];
|
|
47
|
+
}
|
|
48
|
+
this.setDynamicObjects(objects);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Moves the object inside the drawing order so it's being drawn before the other elements
|
|
53
|
+
* @param paneId
|
|
54
|
+
* @param listNode
|
|
55
|
+
*/
|
|
56
|
+
bringToFront(paneId, listNode) {
|
|
57
|
+
const list = this.objects[paneId];
|
|
58
|
+
if (list) {
|
|
59
|
+
const targetPos = list.getNodePosition(listNode);
|
|
60
|
+
if (targetPos >= 0 && targetPos < list.size()) {
|
|
61
|
+
const nodeToReplace = list.removeAt(targetPos);
|
|
62
|
+
if (nodeToReplace) {
|
|
63
|
+
list.insertAtEnd(nodeToReplace.data);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
this.setDynamicObjects(this.objects);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Moves the object inside the drawing order so it's being drawn after the other elements
|
|
71
|
+
* @param paneId
|
|
72
|
+
* @param listNode
|
|
73
|
+
*/
|
|
74
|
+
bringToBack(paneId, listNode) {
|
|
75
|
+
const list = this.objects[paneId];
|
|
76
|
+
if (list) {
|
|
77
|
+
const targetPos = list.getNodePosition(listNode);
|
|
78
|
+
if (targetPos > 0 && targetPos <= list.size()) {
|
|
79
|
+
const nodeToReplace = list.removeAt(targetPos);
|
|
80
|
+
if (nodeToReplace) {
|
|
81
|
+
list.insertAt(0, nodeToReplace === null || nodeToReplace === void 0 ? void 0 : nodeToReplace.data);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
this.setDynamicObjects(this.objects);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Moves the object inside the drawing order so it's being drawn one layer ahead
|
|
89
|
+
* @param obj
|
|
90
|
+
* @param paneId
|
|
91
|
+
*/
|
|
92
|
+
moveForward(paneId, listNode) {
|
|
93
|
+
const list = this.objects[paneId];
|
|
94
|
+
if (list) {
|
|
95
|
+
const targetPos = list.getNodePosition(listNode);
|
|
96
|
+
if (targetPos >= 0 && targetPos < list.size()) {
|
|
97
|
+
const nodeToReplace = list.removeAt(targetPos);
|
|
98
|
+
if (nodeToReplace) {
|
|
99
|
+
list.insertAt(targetPos + 1, nodeToReplace.data);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
this.setDynamicObjects(this.objects);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Moves the object inside the drawing order so it's being drawn one layer closer to the back
|
|
107
|
+
* @param obj
|
|
108
|
+
* @param paneId
|
|
109
|
+
*/
|
|
110
|
+
moveBackwards(paneId, listNode) {
|
|
111
|
+
const list = this.objects[paneId];
|
|
112
|
+
if (list) {
|
|
113
|
+
const targetPos = list.getNodePosition(listNode);
|
|
114
|
+
if (targetPos > 0 && targetPos <= list.size()) {
|
|
115
|
+
const nodeToReplace = list.removeAt(targetPos);
|
|
116
|
+
if (nodeToReplace) {
|
|
117
|
+
list.insertAt(targetPos - 1, nodeToReplace === null || nodeToReplace === void 0 ? void 0 : nodeToReplace.data);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
this.setDynamicObjects(this.objects);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Getter for the objects
|
|
125
|
+
*/
|
|
126
|
+
get objects() {
|
|
127
|
+
return this._objects.getValue();
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Sets the objects
|
|
131
|
+
* @param objects
|
|
132
|
+
*/
|
|
133
|
+
setDynamicObjects(objects) {
|
|
134
|
+
this._objects.next(objects);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (C)
|
|
2
|
+
* Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
|
|
3
3
|
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
4
|
* If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
5
|
*/
|