@visactor/vgrammar-core 0.13.6 → 0.13.7-alpha.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/cjs/component/axis.d.ts +2 -0
- package/cjs/component/axis.js +15 -1
- package/cjs/component/axis.js.map +1 -1
- package/cjs/component/grid.d.ts +2 -0
- package/cjs/component/grid.js +15 -1
- package/cjs/component/grid.js.map +1 -1
- package/cjs/component/index.d.ts +2 -2
- package/cjs/component/index.js +21 -1
- package/cjs/component/index.js.map +1 -1
- package/cjs/component/label.js +36 -20
- package/cjs/component/label.js.map +1 -1
- package/cjs/component/player.js.map +1 -1
- package/cjs/core/factory.d.ts +8 -1
- package/cjs/core/factory.js +9 -2
- package/cjs/core/factory.js.map +1 -1
- package/cjs/glyph/boxplot.js +5 -5
- package/cjs/glyph/boxplot.js.map +1 -1
- package/cjs/glyph/link-path.js +2 -2
- package/cjs/glyph/link-path.js.map +1 -1
- package/cjs/glyph/ripple.js +3 -2
- package/cjs/glyph/ripple.js.map +1 -1
- package/cjs/glyph/tree-path.js +2 -2
- package/cjs/glyph/tree-path.js.map +1 -1
- package/cjs/glyph/violin.js +4 -4
- package/cjs/glyph/violin.js.map +1 -1
- package/cjs/glyph/wave.js +3 -2
- package/cjs/glyph/wave.js.map +1 -1
- package/cjs/graph/animation/animate.js +9 -4
- package/cjs/graph/animation/animate.js.map +1 -1
- package/cjs/graph/animation/animation/fade.js +5 -5
- package/cjs/graph/animation/animation/fade.js.map +1 -1
- package/cjs/graph/animation/animation/grow-cartesian.js +14 -14
- package/cjs/graph/animation/animation/grow-cartesian.js.map +1 -1
- package/cjs/graph/animation/animation/grow-interval.js +9 -9
- package/cjs/graph/animation/animation/grow-interval.js.map +1 -1
- package/cjs/graph/animation/animation/grow-points.js +9 -9
- package/cjs/graph/animation/animation/grow-points.js.map +1 -1
- package/cjs/graph/animation/animation/grow-polar.js +24 -24
- package/cjs/graph/animation/animation/grow-polar.js.map +1 -1
- package/cjs/graph/animation/animation/move.js +6 -6
- package/cjs/graph/animation/animation/move.js.map +1 -1
- package/cjs/graph/animation/animation/rotate.js +5 -5
- package/cjs/graph/animation/animation/rotate.js.map +1 -1
- package/cjs/graph/animation/animation/scale.js +5 -5
- package/cjs/graph/animation/animation/scale.js.map +1 -1
- package/cjs/graph/animation/animation/update.js +2 -2
- package/cjs/graph/animation/animation/update.js.map +1 -1
- package/cjs/graph/animation/animator.d.ts +1 -1
- package/cjs/graph/animation/animator.js +6 -1
- package/cjs/graph/animation/animator.js.map +1 -1
- package/cjs/graph/animation/morph.d.ts +2 -12
- package/cjs/graph/animation/morph.js +76 -163
- package/cjs/graph/animation/morph.js.map +1 -1
- package/cjs/graph/attributes/line.d.ts +1 -0
- package/cjs/graph/attributes/line.js +17 -5
- package/cjs/graph/attributes/line.js.map +1 -1
- package/cjs/graph/attributes/transform.js +7 -3
- package/cjs/graph/attributes/transform.js.map +1 -1
- package/cjs/graph/canvas-renderer.d.ts +1 -1
- package/cjs/graph/canvas-renderer.js +10 -5
- package/cjs/graph/canvas-renderer.js.map +1 -1
- package/cjs/graph/constants.d.ts +1 -0
- package/cjs/graph/constants.js +2 -2
- package/cjs/graph/constants.js.map +1 -1
- package/cjs/graph/element.d.ts +3 -0
- package/cjs/graph/element.js +40 -19
- package/cjs/graph/element.js.map +1 -1
- package/cjs/graph/glyph-element.js +11 -9
- package/cjs/graph/glyph-element.js.map +1 -1
- package/cjs/graph/layout/layout.d.ts +1 -0
- package/cjs/graph/layout/layout.js +8 -2
- package/cjs/graph/layout/layout.js.map +1 -1
- package/cjs/graph/mark/graphic.js +14 -8
- package/cjs/graph/mark/graphic.js.map +1 -1
- package/cjs/graph/util/events-extend.d.ts +1 -2
- package/cjs/graph/util/events-extend.js +14 -3
- package/cjs/graph/util/events-extend.js.map +1 -1
- package/cjs/graph/util/point.js +10 -26
- package/cjs/graph/util/point.js.map +1 -1
- package/cjs/graph/view-diff.d.ts +8 -0
- package/cjs/graph/view-diff.js +93 -0
- package/cjs/graph/view-diff.js.map +1 -0
- package/cjs/index.d.ts +8 -1
- package/cjs/index.js +66 -2
- package/cjs/index.js.map +1 -1
- package/cjs/interactions/base.js.map +1 -1
- package/cjs/interactions/brush-base.js +1 -2
- package/cjs/interactions/brush-filter.js +2 -1
- package/cjs/interactions/element-active-by-legend.d.ts +2 -1
- package/cjs/interactions/element-active-by-legend.js +5 -2
- package/cjs/interactions/element-active-by-legend.js.map +1 -1
- package/cjs/interactions/element-active.d.ts +3 -2
- package/cjs/interactions/element-active.js +4 -2
- package/cjs/interactions/element-active.js.map +1 -1
- package/cjs/interactions/element-highlight-by-graphic-name.d.ts +14 -0
- package/cjs/interactions/element-highlight-by-graphic-name.js +55 -0
- package/cjs/interactions/element-highlight-by-graphic-name.js.map +1 -0
- package/cjs/interactions/element-highlight-by-group.d.ts +2 -2
- package/cjs/interactions/element-highlight-by-group.js +4 -3
- package/cjs/interactions/element-highlight-by-group.js.map +1 -1
- package/cjs/interactions/element-highlight-by-key.d.ts +2 -2
- package/cjs/interactions/element-highlight-by-key.js +3 -17
- package/cjs/interactions/element-highlight-by-key.js.map +1 -1
- package/cjs/interactions/element-highlight-by-legend.d.ts +2 -1
- package/cjs/interactions/element-highlight-by-legend.js +6 -3
- package/cjs/interactions/element-highlight-by-legend.js.map +1 -1
- package/cjs/interactions/element-highlight-by-name.d.ts +2 -1
- package/cjs/interactions/element-highlight-by-name.js +5 -2
- package/cjs/interactions/element-highlight-by-name.js.map +1 -1
- package/cjs/interactions/element-highlight.d.ts +1 -1
- package/cjs/interactions/element-highlight.js +9 -6
- package/cjs/interactions/element-highlight.js.map +1 -1
- package/cjs/interactions/element-select-by-graphic-name.d.ts +7 -0
- package/cjs/interactions/element-select-by-graphic-name.js +26 -0
- package/cjs/interactions/element-select-by-graphic-name.js.map +1 -0
- package/cjs/interactions/element-select.d.ts +1 -1
- package/cjs/interactions/element-select.js +9 -10
- package/cjs/interactions/element-select.js.map +1 -1
- package/cjs/interactions/index.d.ts +2 -0
- package/cjs/interactions/index.js +17 -3
- package/cjs/interactions/index.js.map +1 -1
- package/cjs/interactions/slider-filter.js +1 -1
- package/cjs/interactions/toggle-state-mixin.js +9 -7
- package/cjs/interactions/toggle-state-mixin.js.map +1 -1
- package/cjs/interactions/tooltip.js +1 -1
- package/cjs/parse/event.d.ts +0 -2
- package/cjs/parse/event.js +4 -10
- package/cjs/parse/event.js.map +1 -1
- package/cjs/parse/util.js.map +1 -1
- package/cjs/semantic-marks/text.js.map +1 -1
- package/cjs/transforms/data/pie.js +2 -2
- package/cjs/transforms/data/pie.js.map +1 -1
- package/cjs/transforms/mark/mark-overlap.js +6 -6
- package/cjs/transforms/mark/mark-overlap.js.map +1 -1
- package/cjs/transforms/util/util.d.ts +0 -2
- package/cjs/transforms/util/util.js +3 -13
- package/cjs/transforms/util/util.js.map +1 -1
- package/cjs/types/animate.d.ts +3 -1
- package/cjs/types/animate.js.map +1 -1
- package/cjs/types/element.d.ts +5 -1
- package/cjs/types/element.js.map +1 -1
- package/cjs/types/grammar.d.ts +1 -0
- package/cjs/types/grammar.js.map +1 -1
- package/cjs/types/interaction.d.ts +4 -1
- package/cjs/types/interaction.js.map +1 -1
- package/cjs/types/mark.d.ts +2 -0
- package/cjs/types/mark.js.map +1 -1
- package/cjs/types/morph.d.ts +1 -2
- package/cjs/types/morph.js.map +1 -1
- package/cjs/types/renderer.d.ts +6 -1
- package/cjs/types/renderer.js.map +1 -1
- package/cjs/types/transform.d.ts +1 -0
- package/cjs/types/transform.js.map +1 -1
- package/cjs/types/view.d.ts +4 -1
- package/cjs/types/view.js.map +1 -1
- package/cjs/view/View.d.ts +3 -6
- package/cjs/view/View.js +73 -125
- package/cjs/view/View.js.map +1 -1
- package/cjs/view/animate.js +2 -1
- package/cjs/view/animate.js.map +1 -1
- package/cjs/view/constants.d.ts +2 -0
- package/cjs/view/constants.js +3 -2
- package/cjs/view/constants.js.map +1 -1
- package/cjs/view/events.d.ts +0 -1
- package/cjs/view/events.js +3 -17
- package/cjs/view/events.js.map +1 -1
- package/cjs/view/glyph.d.ts +4 -0
- package/cjs/view/glyph.js +12 -3
- package/cjs/view/glyph.js.map +1 -1
- package/cjs/view/grammar-record.js +2 -3
- package/cjs/view/grammar-record.js.map +1 -1
- package/cjs/view/group.js +9 -6
- package/cjs/view/group.js.map +1 -1
- package/cjs/view/mark-animate-mixin.d.ts +1 -0
- package/cjs/view/mark-animate-mixin.js +29 -0
- package/cjs/view/mark-animate-mixin.js.map +1 -0
- package/cjs/view/mark.d.ts +4 -1
- package/cjs/view/mark.js +104 -68
- package/cjs/view/mark.js.map +1 -1
- package/cjs/view/view-animate-mixin.d.ts +1 -0
- package/cjs/view/view-animate-mixin.js +26 -0
- package/cjs/view/view-animate-mixin.js.map +1 -0
- package/cjs/view/view-event-mixin.d.ts +1 -0
- package/cjs/view/view-event-mixin.js +92 -0
- package/cjs/view/view-event-mixin.js.map +1 -0
- package/cjs/view/view-morph-mixin.d.ts +1 -0
- package/cjs/view/view-morph-mixin.js +32 -0
- package/cjs/view/view-morph-mixin.js.map +1 -0
- package/es/component/axis.d.ts +2 -0
- package/es/component/axis.js +10 -0
- package/es/component/axis.js.map +1 -1
- package/es/component/grid.d.ts +2 -0
- package/es/component/grid.js +10 -0
- package/es/component/grid.js.map +1 -1
- package/es/component/index.d.ts +2 -2
- package/es/component/index.js +2 -2
- package/es/component/index.js.map +1 -1
- package/es/component/label.js +35 -19
- package/es/component/label.js.map +1 -1
- package/es/component/player.js.map +1 -1
- package/es/core/factory.d.ts +8 -1
- package/es/core/factory.js +10 -2
- package/es/core/factory.js.map +1 -1
- package/es/glyph/boxplot.js +4 -2
- package/es/glyph/boxplot.js.map +1 -1
- package/es/glyph/link-path.js +4 -2
- package/es/glyph/link-path.js.map +1 -1
- package/es/glyph/ripple.js +3 -1
- package/es/glyph/ripple.js.map +1 -1
- package/es/glyph/tree-path.js +4 -2
- package/es/glyph/tree-path.js.map +1 -1
- package/es/glyph/violin.js +4 -2
- package/es/glyph/violin.js.map +1 -1
- package/es/glyph/wave.js +3 -1
- package/es/glyph/wave.js.map +1 -1
- package/es/graph/animation/animate.js +9 -4
- package/es/graph/animation/animate.js.map +1 -1
- package/es/graph/animation/animation/fade.js +5 -5
- package/es/graph/animation/animation/fade.js.map +1 -1
- package/es/graph/animation/animation/grow-cartesian.js +14 -14
- package/es/graph/animation/animation/grow-cartesian.js.map +1 -1
- package/es/graph/animation/animation/grow-interval.js +9 -9
- package/es/graph/animation/animation/grow-interval.js.map +1 -1
- package/es/graph/animation/animation/grow-points.js +9 -9
- package/es/graph/animation/animation/grow-points.js.map +1 -1
- package/es/graph/animation/animation/grow-polar.js +24 -24
- package/es/graph/animation/animation/grow-polar.js.map +1 -1
- package/es/graph/animation/animation/move.js +6 -6
- package/es/graph/animation/animation/move.js.map +1 -1
- package/es/graph/animation/animation/rotate.js +4 -4
- package/es/graph/animation/animation/rotate.js.map +1 -1
- package/es/graph/animation/animation/scale.js +5 -5
- package/es/graph/animation/animation/scale.js.map +1 -1
- package/es/graph/animation/animation/update.js +1 -3
- package/es/graph/animation/animation/update.js.map +1 -1
- package/es/graph/animation/animator.d.ts +1 -1
- package/es/graph/animation/animator.js +6 -1
- package/es/graph/animation/animator.js.map +1 -1
- package/es/graph/animation/morph.d.ts +2 -12
- package/es/graph/animation/morph.js +72 -159
- package/es/graph/animation/morph.js.map +1 -1
- package/es/graph/attributes/line.d.ts +1 -0
- package/es/graph/attributes/line.js +14 -3
- package/es/graph/attributes/line.js.map +1 -1
- package/es/graph/attributes/transform.js +7 -3
- package/es/graph/attributes/transform.js.map +1 -1
- package/es/graph/canvas-renderer.d.ts +1 -1
- package/es/graph/canvas-renderer.js +11 -6
- package/es/graph/canvas-renderer.js.map +1 -1
- package/es/graph/constants.d.ts +1 -0
- package/es/graph/constants.js +2 -0
- package/es/graph/constants.js.map +1 -1
- package/es/graph/element.d.ts +3 -0
- package/es/graph/element.js +39 -21
- package/es/graph/element.js.map +1 -1
- package/es/graph/glyph-element.js +10 -11
- package/es/graph/glyph-element.js.map +1 -1
- package/es/graph/layout/layout.d.ts +1 -0
- package/es/graph/layout/layout.js +6 -0
- package/es/graph/layout/layout.js.map +1 -1
- package/es/graph/mark/graphic.js +13 -7
- package/es/graph/mark/graphic.js.map +1 -1
- package/es/graph/util/events-extend.d.ts +1 -2
- package/es/graph/util/events-extend.js +16 -3
- package/es/graph/util/events-extend.js.map +1 -1
- package/es/graph/util/point.js +10 -26
- package/es/graph/util/point.js.map +1 -1
- package/es/graph/view-diff.d.ts +8 -0
- package/es/graph/view-diff.js +89 -0
- package/es/graph/view-diff.js.map +1 -0
- package/es/index.d.ts +8 -1
- package/es/index.js +29 -1
- package/es/index.js.map +1 -1
- package/es/interactions/base.js.map +1 -1
- package/es/interactions/brush-filter.js +2 -1
- package/es/interactions/element-active-by-legend.d.ts +2 -1
- package/es/interactions/element-active-by-legend.js +5 -2
- package/es/interactions/element-active-by-legend.js.map +1 -1
- package/es/interactions/element-active.d.ts +3 -2
- package/es/interactions/element-active.js +5 -4
- package/es/interactions/element-active.js.map +1 -1
- package/es/interactions/element-highlight-by-graphic-name.d.ts +14 -0
- package/es/interactions/element-highlight-by-graphic-name.js +51 -0
- package/es/interactions/element-highlight-by-graphic-name.js.map +1 -0
- package/es/interactions/element-highlight-by-group.d.ts +2 -2
- package/es/interactions/element-highlight-by-group.js +4 -3
- package/es/interactions/element-highlight-by-group.js.map +1 -1
- package/es/interactions/element-highlight-by-key.d.ts +2 -2
- package/es/interactions/element-highlight-by-key.js +3 -17
- package/es/interactions/element-highlight-by-key.js.map +1 -1
- package/es/interactions/element-highlight-by-legend.d.ts +2 -1
- package/es/interactions/element-highlight-by-legend.js +6 -3
- package/es/interactions/element-highlight-by-legend.js.map +1 -1
- package/es/interactions/element-highlight-by-name.d.ts +2 -1
- package/es/interactions/element-highlight-by-name.js +5 -2
- package/es/interactions/element-highlight-by-name.js.map +1 -1
- package/es/interactions/element-highlight.d.ts +1 -1
- package/es/interactions/element-highlight.js +9 -6
- package/es/interactions/element-highlight.js.map +1 -1
- package/es/interactions/element-select-by-graphic-name.d.ts +7 -0
- package/es/interactions/element-select-by-graphic-name.js +20 -0
- package/es/interactions/element-select-by-graphic-name.js.map +1 -0
- package/es/interactions/element-select.d.ts +1 -1
- package/es/interactions/element-select.js +9 -9
- package/es/interactions/element-select.js.map +1 -1
- package/es/interactions/filter.js +1 -1
- package/es/interactions/fish-eye.js +1 -1
- package/es/interactions/index.d.ts +2 -0
- package/es/interactions/index.js +14 -1
- package/es/interactions/index.js.map +1 -1
- package/es/interactions/legend-filter.js +1 -1
- package/es/interactions/player-filter.js +1 -1
- package/es/interactions/roll-up.js +1 -1
- package/es/interactions/scrollbar-filter.js +1 -1
- package/es/interactions/slider-filter.js +1 -1
- package/es/interactions/toggle-state-mixin.js +9 -7
- package/es/interactions/toggle-state-mixin.js.map +1 -1
- package/es/interactions/tooltip.js +1 -1
- package/es/parse/coordinate.js +1 -1
- package/es/parse/event.d.ts +0 -2
- package/es/parse/event.js +4 -8
- package/es/parse/event.js.map +1 -1
- package/es/parse/mark.js +1 -1
- package/es/parse/option.js +1 -2
- package/es/parse/scale.js +1 -1
- package/es/parse/transform.js +1 -1
- package/es/parse/util.js +1 -1
- package/es/parse/util.js.map +1 -1
- package/es/parse/view.js +1 -1
- package/es/semantic-marks/text.js.map +1 -1
- package/es/transforms/data/pie.js +1 -1
- package/es/transforms/data/pie.js.map +1 -1
- package/es/transforms/mark/mark-overlap.js +6 -6
- package/es/transforms/mark/mark-overlap.js.map +1 -1
- package/es/transforms/util/util.d.ts +0 -2
- package/es/transforms/util/util.js +0 -10
- package/es/transforms/util/util.js.map +1 -1
- package/es/types/animate.d.ts +3 -1
- package/es/types/animate.js.map +1 -1
- package/es/types/element.d.ts +5 -1
- package/es/types/element.js.map +1 -1
- package/es/types/grammar.d.ts +1 -0
- package/es/types/grammar.js.map +1 -1
- package/es/types/interaction.d.ts +4 -1
- package/es/types/interaction.js.map +1 -1
- package/es/types/mark.d.ts +2 -0
- package/es/types/mark.js.map +1 -1
- package/es/types/morph.d.ts +1 -2
- package/es/types/morph.js.map +1 -1
- package/es/types/renderer.d.ts +6 -1
- package/es/types/renderer.js.map +1 -1
- package/es/types/transform.d.ts +1 -0
- package/es/types/transform.js.map +1 -1
- package/es/types/view.d.ts +4 -1
- package/es/types/view.js.map +1 -1
- package/es/view/View.d.ts +3 -6
- package/es/view/View.js +63 -124
- package/es/view/View.js.map +1 -1
- package/es/view/animate.js +2 -1
- package/es/view/animate.js.map +1 -1
- package/es/view/constants.d.ts +2 -0
- package/es/view/constants.js +4 -0
- package/es/view/constants.js.map +1 -1
- package/es/view/events.d.ts +0 -1
- package/es/view/events.js +1 -15
- package/es/view/events.js.map +1 -1
- package/es/view/glyph.d.ts +4 -0
- package/es/view/glyph.js +11 -0
- package/es/view/glyph.js.map +1 -1
- package/es/view/grammar-record.js +2 -3
- package/es/view/grammar-record.js.map +1 -1
- package/es/view/group.js +8 -7
- package/es/view/group.js.map +1 -1
- package/es/view/mark-animate-mixin.d.ts +1 -0
- package/es/view/mark-animate-mixin.js +25 -0
- package/es/view/mark-animate-mixin.js.map +1 -0
- package/es/view/mark.d.ts +4 -1
- package/es/view/mark.js +102 -70
- package/es/view/mark.js.map +1 -1
- package/es/view/view-animate-mixin.d.ts +1 -0
- package/es/view/view-animate-mixin.js +16 -0
- package/es/view/view-animate-mixin.js.map +1 -0
- package/es/view/view-event-mixin.d.ts +1 -0
- package/es/view/view-event-mixin.js +90 -0
- package/es/view/view-event-mixin.js.map +1 -0
- package/es/view/view-morph-mixin.d.ts +1 -0
- package/es/view/view-morph-mixin.js +22 -0
- package/es/view/view-morph-mixin.js.map +1 -0
- package/package.json +12 -12
- package/cjs/graph/util/element.d.ts +0 -2
- package/cjs/graph/util/element.js +0 -10
- package/cjs/graph/util/element.js.map +0 -1
- package/es/graph/util/element.d.ts +0 -2
- package/es/graph/util/element.js +0 -8
- package/es/graph/util/element.js.map +0 -1
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: !0
|
|
5
|
-
}), exports.defaultDoLayout = void 0;
|
|
5
|
+
}), exports.registerDefaultLayout = exports.defaultDoLayout = void 0;
|
|
6
6
|
|
|
7
|
-
const vutils_1 = require("@visactor/vutils"), constants_1 = require("./../../view/constants"), enums_1 = require("../enums"), grid_1 = require("./grid"), relative_1 = require("./relative"), defaultDoLayout = (layoutMarks, options, view) => {
|
|
7
|
+
const vutils_1 = require("@visactor/vutils"), constants_1 = require("./../../view/constants"), enums_1 = require("../enums"), grid_1 = require("./grid"), relative_1 = require("./relative"), factory_1 = require("../../core/factory"), defaultDoLayout = (layoutMarks, options, view) => {
|
|
8
8
|
null == layoutMarks || layoutMarks.forEach((mark => {
|
|
9
9
|
var _a;
|
|
10
10
|
if (mark.markType !== enums_1.GrammarMarkType.group) return;
|
|
@@ -30,4 +30,10 @@ const vutils_1 = require("@visactor/vutils"), constants_1 = require("./../../vie
|
|
|
30
30
|
};
|
|
31
31
|
|
|
32
32
|
exports.defaultDoLayout = defaultDoLayout;
|
|
33
|
+
|
|
34
|
+
const registerDefaultLayout = () => {
|
|
35
|
+
factory_1.Factory.registerDefaultLayout(exports.defaultDoLayout);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
exports.registerDefaultLayout = registerDefaultLayout;
|
|
33
39
|
//# sourceMappingURL=layout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graph/layout/layout.ts"],"names":[],"mappings":";;;AAAA,6CAA8C;AAC9C,sDAA+F;AAE/F,oCAA2C;AAG3C,iCAAsC;AACtC,yCAA8C;
|
|
1
|
+
{"version":3,"sources":["../src/graph/layout/layout.ts"],"names":[],"mappings":";;;AAAA,6CAA8C;AAC9C,sDAA+F;AAE/F,oCAA2C;AAG3C,iCAAsC;AACtC,yCAA8C;AAC9C,gDAA6C;AAEtC,MAAM,eAAe,GAAG,CAAC,WAAoB,EAAE,OAAuB,EAAE,IAAW,EAAE,EAAE;IAC5F,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAC,IAAI,CAAC,EAAE;;QAC1B,IAAI,IAAI,CAAC,QAAQ,KAAK,uBAAe,CAAC,KAAK,EAAE;YAC3C,OAAO;SACR;QAED,MAAM,cAAc,GAAI,IAAmB,CAAC,cAAc,CAAC;QAO3D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,YAAY,mCAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAErD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,IAAI,IAAA,mBAAU,EAAC,UAAU,CAAC,EAAE;YAC1B,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;SAC5E;aAAM,IAAI,IAAA,mBAAU,EAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YAC1C,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;SACrF;aAAM,IAAK,UAAwC,CAAC,OAAO,KAAK,UAAU,EAAE;YAC3E,IAAI,UAAU,CAAC,iBAAiB,EAAE;gBAChC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAErC,IAAI,UAAU,EAAE;oBACd,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;iBAC9B;gBAED,MAAM,UAAU,GAAG,IAAA,2BAAgB,EAAC,IAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBACzF,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBACvC,MAAM,OAAO,GAAG;oBACd,GAAG,EAAE,UAAU,CAAC,EAAE;oBAClB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,EAAE;oBACnC,IAAI,EAAE,UAAU,CAAC,EAAE;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE;iBACtC,CAAC;gBACD,IAAY,CAAC,YAAY,CAAC,6BAAiB,EAAE,SAAS,CAAC,CAAC;gBACxD,IAAY,CAAC,YAAY,CAAC,8BAAkB,EAAE,UAAU,CAAC,CAAC;gBAC1D,IAAY,CAAC,YAAY,CAAC,0BAAc,EAAE,OAAO,CAAC,CAAC;aACrD;iBAAM;gBACL,IAAA,2BAAgB,EAAC,IAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;aACvE;SACF;aAAM,IAAK,UAAoC,CAAC,OAAO,KAAK,MAAM,EAAE;YACnE,IAAA,mBAAY,EAAC,IAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;SACnE;QAED,IAAA,uBAAe,EAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AArDW,QAAA,eAAe,mBAqD1B;AAEK,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,iBAAO,CAAC,qBAAqB,CAAC,uBAAe,CAAC,CAAC;AACjD,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC","file":"layout.js","sourcesContent":["import { isFunction } from '@visactor/vutils';\nimport { SIGNAL_VIEW_HEIGHT, SIGNAL_PADDING, SIGNAL_VIEW_WIDTH } from './../../view/constants';\nimport type { MarkRelativeContainerSpec, MarkGridContainerSpec } from './../../types/mark';\nimport { GrammarMarkType } from '../enums';\nimport type { IMark, IGroupMark } from '../../types/grammar';\nimport type { ILayoutOptions, IView } from '../../types/view';\nimport { doGridLayout } from './grid';\nimport { doRelativeLayout } from './relative';\nimport { Factory } from '../../core/factory';\n\nexport const defaultDoLayout = (layoutMarks: IMark[], options: ILayoutOptions, view: IView) => {\n layoutMarks?.forEach(mark => {\n if (mark.markType !== GrammarMarkType.group) {\n return;\n }\n\n const layoutChildren = (mark as IGroupMark).layoutChildren;\n\n // FIXME buildLayoutTree的时候过滤一下空的group\n // if (!layoutChildren?.length) {\n // return;\n // }\n\n const layoutSpec = mark.getSpec().layout;\n const bounds = mark.layoutBounds ?? mark.getBounds();\n\n if (!bounds) {\n return;\n }\n\n if (isFunction(layoutSpec)) {\n layoutSpec.call(null, mark as IGroupMark, layoutChildren, bounds, options);\n } else if (isFunction(layoutSpec.callback)) {\n layoutSpec.callback.call(null, mark as IGroupMark, layoutChildren, bounds, options);\n } else if ((layoutSpec as MarkRelativeContainerSpec).display === 'relative') {\n if (layoutSpec.updateViewSignals) {\n const oldViewBox = view.getViewBox();\n\n if (oldViewBox) {\n bounds.intersect(oldViewBox);\n }\n\n const viewBounds = doRelativeLayout(mark as IGroupMark, layoutChildren, bounds, options);\n const viewWidth = viewBounds.width();\n const viewHeight = viewBounds.height();\n const padding = {\n top: viewBounds.y1,\n right: view.width() - viewBounds.x2,\n left: viewBounds.x1,\n bottom: view.height() - viewBounds.y2\n };\n (view as any).updateSignal(SIGNAL_VIEW_WIDTH, viewWidth);\n (view as any).updateSignal(SIGNAL_VIEW_HEIGHT, viewHeight);\n (view as any).updateSignal(SIGNAL_PADDING, padding);\n } else {\n doRelativeLayout(mark as IGroupMark, layoutChildren, bounds, options);\n }\n } else if ((layoutSpec as MarkGridContainerSpec).display === 'grid') {\n doGridLayout(mark as IGroupMark, layoutChildren, bounds, options);\n }\n\n defaultDoLayout(layoutChildren, options, view);\n });\n};\n\nexport const registerDefaultLayout = () => {\n Factory.registerDefaultLayout(defaultDoLayout);\n};\n"]}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.registerLargeSymbolsGraphic = exports.registerLargeRectsGraphic = exports.registerGlyphGraphic = exports.registerIntervalGraphic = exports.registerCellGraphic = exports.registerRichTextGraphic = exports.registerPolygonGraphic = exports.registerTextGraphic = exports.registerSymbolGraphic = exports.registerShapeGraphic = exports.registerRuleGraphic = exports.registerRect3dGraphic = exports.registerRectGraphic = exports.registerPathGraphic = exports.registerLineGraphic = exports.registerImageGraphic = exports.registerGroupGraphic = exports.registerAreaGraphic = exports.registerPyramid3dGraphic = exports.registerArc3dGraphic = exports.registerArcGraphic = exports.registerCircleGraphic = void 0;
|
|
6
6
|
|
|
7
|
-
const factory_1 = require("../../core/factory"), enums_1 = require("../enums"), large_rects_1 = require("./large-rects"), large_symbols_1 = require("./large-symbols"), vrender_kits_1 = require("@visactor/vrender-kits"), vrender_core_1 = require("@visactor/vrender-core"), registerCircleGraphic = () => {
|
|
7
|
+
const factory_1 = require("../../core/factory"), enums_1 = require("../enums"), large_rects_1 = require("./large-rects"), large_symbols_1 = require("./large-symbols"), vrender_kits_1 = require("@visactor/vrender-kits"), vrender_core_1 = require("@visactor/vrender-core"), vrender_components_1 = require("@visactor/vrender-components"), registerCircleGraphic = () => {
|
|
8
8
|
(0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerCircle)(),
|
|
9
9
|
factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.circle, vrender_core_1.createCircle);
|
|
10
10
|
};
|
|
@@ -12,7 +12,8 @@ const factory_1 = require("../../core/factory"), enums_1 = require("../enums"),
|
|
|
12
12
|
exports.registerCircleGraphic = registerCircleGraphic;
|
|
13
13
|
|
|
14
14
|
const registerArcGraphic = () => {
|
|
15
|
-
(0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerArc)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.arc, vrender_core_1.createArc)
|
|
15
|
+
(0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerArc)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.arc, vrender_core_1.createArc),
|
|
16
|
+
(0, vrender_components_1.registerArcDataLabel)();
|
|
16
17
|
};
|
|
17
18
|
|
|
18
19
|
exports.registerArcGraphic = registerArcGraphic;
|
|
@@ -31,7 +32,8 @@ const registerPyramid3dGraphic = () => {
|
|
|
31
32
|
exports.registerPyramid3dGraphic = registerPyramid3dGraphic;
|
|
32
33
|
|
|
33
34
|
const registerAreaGraphic = () => {
|
|
34
|
-
(0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerArea)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.area, vrender_core_1.createArea)
|
|
35
|
+
(0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerArea)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.area, vrender_core_1.createArea),
|
|
36
|
+
(0, vrender_components_1.registerLineDataLabel)(), (0, vrender_components_1.registerSymbolDataLabel)();
|
|
35
37
|
};
|
|
36
38
|
|
|
37
39
|
exports.registerAreaGraphic = registerAreaGraphic;
|
|
@@ -49,7 +51,9 @@ const registerImageGraphic = () => {
|
|
|
49
51
|
exports.registerImageGraphic = registerImageGraphic;
|
|
50
52
|
|
|
51
53
|
const registerLineGraphic = () => {
|
|
52
|
-
(0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerLine)(),
|
|
54
|
+
(0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerLine)(), (0,
|
|
55
|
+
vrender_components_1.registerLineDataLabel)(), (0, vrender_components_1.registerSymbolDataLabel)(),
|
|
56
|
+
factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.line, vrender_core_1.createLine);
|
|
53
57
|
};
|
|
54
58
|
|
|
55
59
|
exports.registerLineGraphic = registerLineGraphic;
|
|
@@ -61,7 +65,8 @@ const registerPathGraphic = () => {
|
|
|
61
65
|
exports.registerPathGraphic = registerPathGraphic;
|
|
62
66
|
|
|
63
67
|
const registerRectGraphic = () => {
|
|
64
|
-
(0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerRect)(),
|
|
68
|
+
(0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerRect)(), (0,
|
|
69
|
+
vrender_components_1.registerRectDataLabel)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.rect, vrender_core_1.createRect);
|
|
65
70
|
};
|
|
66
71
|
|
|
67
72
|
exports.registerRectGraphic = registerRectGraphic;
|
|
@@ -87,7 +92,7 @@ exports.registerShapeGraphic = registerShapeGraphic;
|
|
|
87
92
|
|
|
88
93
|
const registerSymbolGraphic = () => {
|
|
89
94
|
(0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerSymbol)(),
|
|
90
|
-
factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.symbol, vrender_core_1.createSymbol);
|
|
95
|
+
(0, vrender_components_1.registerSymbolDataLabel)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.symbol, vrender_core_1.createSymbol);
|
|
91
96
|
};
|
|
92
97
|
|
|
93
98
|
exports.registerSymbolGraphic = registerSymbolGraphic;
|
|
@@ -115,14 +120,15 @@ exports.registerRichTextGraphic = registerRichTextGraphic;
|
|
|
115
120
|
|
|
116
121
|
const registerCellGraphic = () => {
|
|
117
122
|
(0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerSymbol)(),
|
|
118
|
-
factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.cell, vrender_core_1.createSymbol);
|
|
123
|
+
(0, vrender_components_1.registerSymbolDataLabel)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.cell, vrender_core_1.createSymbol);
|
|
119
124
|
};
|
|
120
125
|
|
|
121
126
|
exports.registerCellGraphic = registerCellGraphic;
|
|
122
127
|
|
|
123
128
|
const registerIntervalGraphic = () => {
|
|
124
129
|
(0, vrender_kits_1.registerShadowRoot)(), (0, vrender_kits_1.registerRect)(), (0,
|
|
125
|
-
|
|
130
|
+
vrender_components_1.registerRectDataLabel)(), (0, vrender_kits_1.registerArc)(),
|
|
131
|
+
(0, vrender_components_1.registerArcDataLabel)(), factory_1.Factory.registerGraphic(enums_1.GrammarMarkType.interval, vrender_core_1.createRect);
|
|
126
132
|
};
|
|
127
133
|
|
|
128
134
|
exports.registerIntervalGraphic = registerIntervalGraphic;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graph/mark/graphic.ts"],"names":[],"mappings":";;;AAAA,gDAA6C;AAC7C,oCAA2C;AAC3C,+CAA2C;AAC3C,mDAA+C;AAE/C,yDAkBgC;AAChC,yDAiBgC;
|
|
1
|
+
{"version":3,"sources":["../src/graph/mark/graphic.ts"],"names":[],"mappings":";;;AAAA,gDAA6C;AAC7C,oCAA2C;AAC3C,+CAA2C;AAC3C,mDAA+C;AAE/C,yDAkBgC;AAChC,yDAiBgC;AAChC,qEAKsC;AAE/B,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,6BAAc,GAAE,CAAC;IACjB,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,MAAM,EAAE,2BAAY,CAAC,CAAC;AAChE,CAAC,CAAC;AAJW,QAAA,qBAAqB,yBAIhC;AAEK,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,0BAAW,GAAE,CAAC;IACd,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,GAAG,EAAE,wBAAS,CAAC,CAAC;IACxD,IAAA,yCAAoB,GAAE,CAAC;AACzB,CAAC,CAAC;AALW,QAAA,kBAAkB,sBAK7B;AAEK,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,4BAAa,GAAE,CAAC;IAChB,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,KAAK,EAAE,0BAAW,CAAC,CAAC;AAC9D,CAAC,CAAC;AAJW,QAAA,oBAAoB,wBAI/B;AAEK,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,gCAAiB,GAAE,CAAC;IACpB,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,SAAS,EAAE,8BAAe,CAAC,CAAC;AACtE,CAAC,CAAC;AAJW,QAAA,wBAAwB,4BAInC;AAEK,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,2BAAY,GAAE,CAAC;IACf,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,IAAI,EAAE,yBAAU,CAAC,CAAC;IAC1D,IAAA,0CAAqB,GAAE,CAAC;IACxB,IAAA,4CAAuB,GAAE,CAAC;AAC5B,CAAC,CAAC;AANW,QAAA,mBAAmB,uBAM9B;AAEK,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,4BAAa,GAAE,CAAC;IAChB,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,KAAK,EAAE,0BAAW,CAAC,CAAC;AAC9D,CAAC,CAAC;AAJW,QAAA,oBAAoB,wBAI/B;AAEK,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,4BAAa,GAAE,CAAC;IAChB,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,KAAK,EAAE,0BAAW,CAAC,CAAC;AAC9D,CAAC,CAAC;AAJW,QAAA,oBAAoB,wBAI/B;AAEK,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,0CAAqB,GAAE,CAAC;IACxB,IAAA,4CAAuB,GAAE,CAAC;IAC1B,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,IAAI,EAAE,yBAAU,CAAC,CAAC;AAC5D,CAAC,CAAC;AANW,QAAA,mBAAmB,uBAM9B;AAEK,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,2BAAY,GAAE,CAAC;IACf,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,IAAI,EAAE,yBAAU,CAAC,CAAC;AAC5D,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B;AAEK,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,0CAAqB,GAAE,CAAC;IACxB,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,IAAI,EAAE,yBAAU,CAAC,CAAC;AAC5D,CAAC,CAAC;AALW,QAAA,mBAAmB,uBAK9B;AAEK,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,6BAAc,GAAE,CAAC;IACjB,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,MAAM,EAAE,2BAAY,CAAC,CAAC;AAChE,CAAC,CAAC;AAJW,QAAA,qBAAqB,yBAIhC;AAEK,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,2BAAY,GAAE,CAAC;IACf,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,IAAI,EAAE,yBAAU,CAAC,CAAC;AAC5D,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B;AAEK,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,2BAAY,GAAE,CAAC;IACf,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,KAAK,EAAE,yBAAU,CAAC,CAAC;AAC7D,CAAC,CAAC;AAJW,QAAA,oBAAoB,wBAI/B;AAEK,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,6BAAc,GAAE,CAAC;IACjB,IAAA,4CAAuB,GAAE,CAAC;IAC1B,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,MAAM,EAAE,2BAAY,CAAC,CAAC;AAChE,CAAC,CAAC;AALW,QAAA,qBAAqB,yBAKhC;AAEK,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,+BAAgB,GAAE,CAAC;IACnB,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,IAAI,EAAE,yBAAU,CAAC,CAAC;AAC5D,CAAC,CAAC;AALW,QAAA,mBAAmB,uBAK9B;AAEK,MAAM,sBAAsB,GAAG,GAAG,EAAE;IACzC,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,8BAAe,GAAE,CAAC;IAClB,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,OAAO,EAAE,4BAAa,CAAC,CAAC;AAClE,CAAC,CAAC;AAJW,QAAA,sBAAsB,0BAIjC;AAEK,MAAM,uBAAuB,GAAG,GAAG,EAAE;IAC1C,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,+BAAgB,GAAE,CAAC;IACnB,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,QAAQ,EAAE,6BAAc,CAAC,CAAC;AACpE,CAAC,CAAC;AAJW,QAAA,uBAAuB,2BAIlC;AAEK,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,6BAAc,GAAE,CAAC;IACjB,IAAA,4CAAuB,GAAE,CAAC;IAC1B,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,IAAI,EAAE,2BAAY,CAAC,CAAC;AAC9D,CAAC,CAAC;AALW,QAAA,mBAAmB,uBAK9B;AAEK,MAAM,uBAAuB,GAAG,GAAG,EAAE;IAC1C,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,0CAAqB,GAAE,CAAC;IACxB,IAAA,0BAAW,GAAE,CAAC;IACd,IAAA,yCAAoB,GAAE,CAAC;IACvB,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,QAAQ,EAAE,yBAAU,CAAC,CAAC;AAChE,CAAC,CAAC;AAPW,QAAA,uBAAuB,2BAOlC;AAEK,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,4BAAa,GAAE,CAAC;IAChB,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,KAAK,EAAE,0BAAW,CAAC,CAAC;AAC9D,CAAC,CAAC;AAJW,QAAA,oBAAoB,wBAI/B;AAEK,MAAM,yBAAyB,GAAG,GAAG,EAAE;IAC5C,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,2BAAY,GAAE,CAAC;IACf,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,UAAU,EAAE,CAAC,KAAU,EAAE,EAAE;QACjE,OAAO,IAAI,wBAAU,CAAC,KAAK,CAAwB,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AANW,QAAA,yBAAyB,6BAMpC;AAEK,MAAM,2BAA2B,GAAG,GAAG,EAAE;IAC9C,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,2BAAY,GAAE,CAAC;IACf,iBAAO,CAAC,eAAe,CAAC,uBAAe,CAAC,YAAY,EAAE,CAAC,KAAU,EAAE,EAAE;QACnE,OAAO,IAAI,4BAAY,CAAC,KAAK,CAAwB,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AANW,QAAA,2BAA2B,+BAMtC","file":"graphic.js","sourcesContent":["import { Factory } from '../../core/factory';\nimport { GrammarMarkType } from '../enums';\nimport { LargeRects } from './large-rects';\nimport { LargeSymbols } from './large-symbols';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport {\n registerCircle,\n registerArc,\n registerArc3d,\n registerPyramid3d,\n registerArea,\n registerGroup,\n registerImage,\n registerRect3d,\n registerLine,\n registerPath,\n registerRect,\n registerSymbol,\n registerText,\n registerPolygon,\n registerRichtext,\n registerGlyph,\n registerShadowRoot\n} from '@visactor/vrender-kits';\nimport {\n createArc,\n createCircle,\n createArc3d,\n createPyramid3d,\n createArea,\n createGroup,\n createImage,\n createRect3d,\n createLine,\n createPath,\n createRect,\n createSymbol,\n createText,\n createPolygon,\n createRichText,\n createGlyph\n} from '@visactor/vrender-core';\nimport {\n registerRectDataLabel,\n registerLineDataLabel,\n registerArcDataLabel,\n registerSymbolDataLabel\n} from '@visactor/vrender-components';\n\nexport const registerCircleGraphic = () => {\n registerShadowRoot();\n registerCircle();\n Factory.registerGraphic(GrammarMarkType.circle, createCircle);\n};\n\nexport const registerArcGraphic = () => {\n registerShadowRoot();\n registerArc();\n Factory.registerGraphic(GrammarMarkType.arc, createArc);\n registerArcDataLabel();\n};\n\nexport const registerArc3dGraphic = () => {\n registerShadowRoot();\n registerArc3d();\n Factory.registerGraphic(GrammarMarkType.arc3d, createArc3d);\n};\n\nexport const registerPyramid3dGraphic = () => {\n registerShadowRoot();\n registerPyramid3d();\n Factory.registerGraphic(GrammarMarkType.pyramid3d, createPyramid3d);\n};\n\nexport const registerAreaGraphic = () => {\n registerShadowRoot();\n registerArea();\n Factory.registerGraphic(GrammarMarkType.area, createArea);\n registerLineDataLabel();\n registerSymbolDataLabel();\n};\n\nexport const registerGroupGraphic = () => {\n registerShadowRoot();\n registerGroup();\n Factory.registerGraphic(GrammarMarkType.group, createGroup);\n};\n\nexport const registerImageGraphic = () => {\n registerShadowRoot();\n registerImage();\n Factory.registerGraphic(GrammarMarkType.image, createImage);\n};\n\nexport const registerLineGraphic = () => {\n registerShadowRoot();\n registerLine();\n registerLineDataLabel();\n registerSymbolDataLabel();\n Factory.registerGraphic(GrammarMarkType.line, createLine);\n};\n\nexport const registerPathGraphic = () => {\n registerShadowRoot();\n registerPath();\n Factory.registerGraphic(GrammarMarkType.path, createPath);\n};\n\nexport const registerRectGraphic = () => {\n registerShadowRoot();\n registerRect();\n registerRectDataLabel();\n Factory.registerGraphic(GrammarMarkType.rect, createRect);\n};\n\nexport const registerRect3dGraphic = () => {\n registerShadowRoot();\n registerRect3d();\n Factory.registerGraphic(GrammarMarkType.rect3d, createRect3d);\n};\n\nexport const registerRuleGraphic = () => {\n registerShadowRoot();\n registerLine();\n Factory.registerGraphic(GrammarMarkType.rule, createLine);\n};\n\nexport const registerShapeGraphic = () => {\n registerShadowRoot();\n registerPath();\n Factory.registerGraphic(GrammarMarkType.shape, createPath);\n};\n\nexport const registerSymbolGraphic = () => {\n registerShadowRoot();\n registerSymbol();\n registerSymbolDataLabel();\n Factory.registerGraphic(GrammarMarkType.symbol, createSymbol);\n};\n\nexport const registerTextGraphic = () => {\n registerShadowRoot();\n registerText();\n registerRichtext();\n Factory.registerGraphic(GrammarMarkType.text, createText);\n};\n\nexport const registerPolygonGraphic = () => {\n registerShadowRoot();\n registerPolygon();\n Factory.registerGraphic(GrammarMarkType.polygon, createPolygon);\n};\n\nexport const registerRichTextGraphic = () => {\n registerShadowRoot();\n registerRichtext();\n Factory.registerGraphic(GrammarMarkType.richtext, createRichText);\n};\n\nexport const registerCellGraphic = () => {\n registerShadowRoot();\n registerSymbol();\n registerSymbolDataLabel();\n Factory.registerGraphic(GrammarMarkType.cell, createSymbol);\n};\n\nexport const registerIntervalGraphic = () => {\n registerShadowRoot();\n registerRect();\n registerRectDataLabel();\n registerArc();\n registerArcDataLabel();\n Factory.registerGraphic(GrammarMarkType.interval, createRect);\n};\n\nexport const registerGlyphGraphic = () => {\n registerShadowRoot();\n registerGlyph();\n Factory.registerGraphic(GrammarMarkType.glyph, createGlyph);\n};\n\nexport const registerLargeRectsGraphic = () => {\n registerShadowRoot();\n registerPath();\n Factory.registerGraphic(GrammarMarkType.largeRects, (attrs: any) => {\n return new LargeRects(attrs) as unknown as IGraphic;\n });\n};\n\nexport const registerLargeSymbolsGraphic = () => {\n registerShadowRoot();\n registerPath();\n Factory.registerGraphic(GrammarMarkType.largeSymbols, (attrs: any) => {\n return new LargeSymbols(attrs) as unknown as IGraphic;\n });\n};\n"]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { FederatedEvent } from '@visactor/vrender-core';
|
|
2
|
-
import type { IElement } from './../../types/element';
|
|
3
2
|
import type { IView } from './../../types/view';
|
|
4
3
|
import type { EventSourceType } from '../../types';
|
|
5
|
-
export default function getExtendedEvents(view: IView, event: FederatedEvent,
|
|
4
|
+
export default function getExtendedEvents(view: IView, event: FederatedEvent, type: string, source: EventSourceType): FederatedEvent<Event>;
|
|
@@ -4,14 +4,25 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
});
|
|
6
6
|
|
|
7
|
-
const point_1 = require("./point"), constants_1 = require("../../view/constants");
|
|
7
|
+
const point_1 = require("./point"), constants_1 = require("../../view/constants"), constants_2 = require("../constants");
|
|
8
8
|
|
|
9
|
-
function getExtendedEvents(view, event,
|
|
9
|
+
function getExtendedEvents(view, event, type, source) {
|
|
10
|
+
var _a, _b;
|
|
10
11
|
if (source === constants_1.EVENT_SOURCE_WINDOW) {
|
|
11
12
|
const e = event.changedTouches ? event.changedTouches[0] : event;
|
|
12
13
|
(0, point_1.point)(e);
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
+
let element = null === (_a = event.target) || void 0 === _a ? void 0 : _a[constants_2.BridgeElementKey];
|
|
16
|
+
if (!element && source === constants_1.EVENT_SOURCE_VIEW) {
|
|
17
|
+
let target = event.target;
|
|
18
|
+
const rootGraphic = null === (_b = view.rootMark) || void 0 === _b ? void 0 : _b.graphicItem;
|
|
19
|
+
for (;(null == target ? void 0 : target.parent) && target.parent !== rootGraphic; ) if (target = target.parent,
|
|
20
|
+
target[constants_2.BridgeElementKey]) {
|
|
21
|
+
element = target[constants_2.BridgeElementKey];
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return event.element = element, event;
|
|
15
26
|
}
|
|
16
27
|
|
|
17
28
|
exports.default = getExtendedEvents;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graph/util/events-extend.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"sources":["../src/graph/util/events-extend.ts"],"names":[],"mappings":";;AAEA,mCAAgC;AAChC,oDAA8E;AAE9E,4CAAgD;AAEhD,SAAwB,iBAAiB,CAAC,IAAW,EAAE,KAAqB,EAAE,IAAY,EAAE,MAAuB;;IACjH,IAAI,MAAM,KAAK,+BAAmB,EAAE;QAClC,MAAM,CAAC,GAAI,KAAa,CAAC,cAAc,CAAC,CAAC,CAAE,KAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACnF,IAAA,aAAK,EAAC,CAAC,CAAC,CAAC;KACV;IACD,IAAI,OAAO,GAAG,MAAC,KAAK,CAAC,MAAc,0CAAG,4BAAgB,CAAC,CAAC;IACxD,IAAI,CAAC,OAAO,IAAI,MAAM,KAAK,6BAAiB,EAAE;QAC5C,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC1B,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAE,WAAW,CAAC;QAE/C,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,KAAK,MAAM,CAAC,MAAc,KAAK,WAAW,EAAE;YAC/D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACvB,IAAK,MAAc,CAAC,4BAAgB,CAAC,EAAE;gBACrC,OAAO,GAAI,MAAc,CAAC,4BAAgB,CAAC,CAAC;gBAC5C,MAAM;aACP;SACF;KACF;IAEA,KAAa,CAAC,OAAO,GAAG,OAAO,CAAC;IAEjC,OAAO,KAAK,CAAC;AACf,CAAC;AAtBD,oCAsBC","file":"events-extend.js","sourcesContent":["import type { FederatedEvent } from '@visactor/vrender-core';\nimport type { IView } from './../../types/view';\nimport { point } from './point';\nimport { EVENT_SOURCE_VIEW, EVENT_SOURCE_WINDOW } from '../../view/constants';\nimport type { EventSourceType } from '../../types';\nimport { BridgeElementKey } from '../constants';\n\nexport default function getExtendedEvents(view: IView, event: FederatedEvent, type: string, source: EventSourceType) {\n if (source === EVENT_SOURCE_WINDOW) {\n const e = (event as any).changedTouches ? (event as any).changedTouches[0] : event;\n point(e);\n }\n let element = (event.target as any)?.[BridgeElementKey];\n if (!element && source === EVENT_SOURCE_VIEW) {\n let target = event.target;\n const rootGraphic = view.rootMark?.graphicItem;\n\n while (target?.parent && (target.parent as any) !== rootGraphic) {\n target = target.parent;\n if ((target as any)[BridgeElementKey]) {\n element = (target as any)[BridgeElementKey];\n break;\n }\n }\n }\n\n (event as any).element = element;\n\n return event;\n}\n"]}
|
package/cjs/graph/util/point.js
CHANGED
|
@@ -30,17 +30,6 @@ function getOffsetPos(e) {
|
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
function getBoundingClientRectPos(e, el) {
|
|
34
|
-
const result = {
|
|
35
|
-
canvasX: 0,
|
|
36
|
-
canvasY: 0
|
|
37
|
-
}, rect = el.getBoundingClientRect(), currentWidth = rect.width, widthRatio = currentWidth / (el.offsetWidth || currentWidth), currentHeight = rect.height, heightRatio = currentHeight / (el.offsetHeight || currentHeight);
|
|
38
|
-
return [ "touchstart", "touchmove", "touchend" ].includes(e.type) && e.changedTouches && e.changedTouches.length ? (result.canvasX = (e.changedTouches[0].clientX - rect.left - (el.clientLeft || 0)) / widthRatio,
|
|
39
|
-
result.canvasY = (e.changedTouches[0].clientY - rect.top - (el.clientTop || 0)) / heightRatio,
|
|
40
|
-
result.clientX = e.changedTouches[0].clientX, result.clientY = e.changedTouches[0].clientY) : (result.canvasX = (e.clientX - rect.left - (el.clientLeft || 0)) / widthRatio,
|
|
41
|
-
result.canvasY = (e.clientY - rect.top - (el.clientTop || 0)) / heightRatio), result;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
33
|
function getXYPos(e) {
|
|
45
34
|
return {
|
|
46
35
|
canvasX: e.x,
|
|
@@ -49,26 +38,21 @@ function getXYPos(e) {
|
|
|
49
38
|
}
|
|
50
39
|
|
|
51
40
|
function getChangedTouchesPos(e) {
|
|
41
|
+
const pos = e.changedTouches[0];
|
|
52
42
|
return {
|
|
53
|
-
canvasX:
|
|
54
|
-
canvasY:
|
|
43
|
+
canvasX: pos.x,
|
|
44
|
+
canvasY: pos.y
|
|
55
45
|
};
|
|
56
46
|
}
|
|
57
47
|
|
|
58
48
|
function defineSrPosition(event, pos, client = !0) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}),
|
|
66
|
-
value: pos.clientX,
|
|
67
|
-
writable: !0
|
|
68
|
-
}), client && (0, vutils_1.isValidNumber)(pos.clientY) && Object.defineProperty(event, "clientY", {
|
|
69
|
-
value: pos.clientY,
|
|
70
|
-
writable: !0
|
|
71
|
-
}), [ pos.canvasX, pos.canvasY ];
|
|
49
|
+
const keys = [ "canvasX", "canvasY" ];
|
|
50
|
+
return client && (keys.push("clientX"), keys.push("clientY")), keys.forEach((key => {
|
|
51
|
+
(0, vutils_1.isValidNumber)(pos[key]) && Object.defineProperty(event, key, {
|
|
52
|
+
value: pos[key],
|
|
53
|
+
writable: !0
|
|
54
|
+
});
|
|
55
|
+
})), [ pos.canvasX, pos.canvasY ];
|
|
72
56
|
}
|
|
73
57
|
|
|
74
58
|
exports.point = point;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graph/util/point.ts"],"names":[],"mappings":";;;AAAA,6CAAwD;AASxD,SAAgB,KAAK,CAAC,KAAY;IAChC,CAAC,SAAS,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAChE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE;YAC7C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC1C,MAAM,aAAa,GAAG,aAAa,CAAC,KAAc,CAAC,CAAC;gBACpD,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC;AAZD,sBAYC;AAED,SAAS,aAAa,CAAC,CAAQ;IAE7B,IAAI,CAAC,IAAA,cAAK,EAAE,CAAS,CAAC,OAAO,CAAC,EAAE;QAC9B,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;KACxB;
|
|
1
|
+
{"version":3,"sources":["../src/graph/util/point.ts"],"names":[],"mappings":";;;AAAA,6CAAwD;AASxD,SAAgB,KAAK,CAAC,KAAY;IAChC,CAAC,SAAS,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAChE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE;YAC7C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC1C,MAAM,aAAa,GAAG,aAAa,CAAC,KAAc,CAAC,CAAC;gBACpD,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC;AAZD,sBAYC;AAED,SAAS,aAAa,CAAC,CAAQ;IAE7B,IAAI,CAAC,IAAA,cAAK,EAAE,CAAS,CAAC,OAAO,CAAC,EAAE;QAC9B,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;KACxB;IAGD,IAAI,CAAC,IAAA,cAAK,EAAE,CAAS,CAAC,CAAC,CAAC,EAAE;QACxB,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;KACpB;IAGD,IAAK,CAAS,CAAC,cAAc,IAAK,CAAS,CAAC,cAAc,CAAC,MAAM,EAAE;QACjE,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;KAChC;IAGD,OAAO;QACL,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;KACX,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,CAAM;IAC1B,OAAO;QACL,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,OAAO,EAAE,CAAC,CAAC,OAAO;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,CAAM;IACtB,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAM;IAClC,MAAM,GAAG,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAU,EAAE,GAAkB,EAAE,MAAM,GAAG,IAAI;IACrE,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAEpC,IAAI,MAAM,EAAE;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACtB;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACjB,IAAA,sBAAa,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE;gBAChC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC;gBACf,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC","file":"point.js","sourcesContent":["import { isValidNumber, isNil } from '@visactor/vutils';\n\ninterface EventPosition {\n canvasX: number;\n canvasY: number;\n clientX?: number;\n clientY?: number;\n}\n\nexport function point(event: Event) {\n ['touches', 'changedTouches', 'targetTouches'].forEach(touchKey => {\n if (event[touchKey] && event[touchKey].length) {\n Array.from(event[touchKey]).forEach(touch => {\n const touchPosition = clientToLocal(touch as Event);\n defineSrPosition(touch, touchPosition, false);\n });\n }\n });\n\n const pos = clientToLocal(event);\n return defineSrPosition(event, pos);\n}\n\nfunction clientToLocal(e: Event): EventPosition {\n // For IE6+, chrome, safari, opera. (When will ff support offsetX?)\n if (!isNil((e as any).offsetX)) {\n return getOffsetPos(e);\n }\n\n // for miniApp\n if (!isNil((e as any).x)) {\n return getXYPos(e);\n }\n\n // for miniApp\n if ((e as any).changedTouches && (e as any).changedTouches.length) {\n return getChangedTouchesPos(e);\n }\n\n // For some other device, e.g., IOS safari.\n return {\n canvasX: 0,\n canvasY: 0\n };\n}\n\nfunction getOffsetPos(e: any) {\n return {\n canvasX: e.offsetX,\n canvasY: e.offsetY\n };\n}\n\nfunction getXYPos(e: any) {\n return { canvasX: e.x, canvasY: e.y };\n}\n\nfunction getChangedTouchesPos(e: any) {\n const pos = e.changedTouches[0];\n return { canvasX: pos.x, canvasY: pos.y };\n}\n\nfunction defineSrPosition(event: any, pos: EventPosition, client = true) {\n const keys = ['canvasX', 'canvasY'];\n\n if (client) {\n keys.push('clientX');\n keys.push('clientY');\n }\n\n keys.forEach(key => {\n isValidNumber(pos[key]) &&\n Object.defineProperty(event, key, {\n value: pos[key],\n writable: true\n });\n });\n\n return [pos.canvasX, pos.canvasY];\n}\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IGrammarBase, IMark, IRunningConfig } from '../types';
|
|
2
|
+
import type { DiffResult } from '../types/base';
|
|
3
|
+
import type { IViewDiff } from '../types/morph';
|
|
4
|
+
export declare class ViewDiff implements IViewDiff {
|
|
5
|
+
diffGrammar<U extends IGrammarBase>(prevGrammars: U[], nextGrammars: U[]): DiffResult<U, U>;
|
|
6
|
+
diffMark(prevMarks: IMark[], nextMarks: IMark[], runningConfig: IRunningConfig): DiffResult<IMark[], IMark[]>;
|
|
7
|
+
private diffUpdateByGroup;
|
|
8
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
}), exports.ViewDiff = void 0;
|
|
6
|
+
|
|
7
|
+
const differ_1 = require("./mark/differ"), enums_1 = require("./enums"), EmptyKey = Symbol.for("key");
|
|
8
|
+
|
|
9
|
+
class ViewDiff {
|
|
10
|
+
diffGrammar(prevGrammars, nextGrammars) {
|
|
11
|
+
return (0, differ_1.diffSingle)(prevGrammars, nextGrammars, (grammar => {
|
|
12
|
+
var _a;
|
|
13
|
+
return null !== (_a = grammar.id()) && void 0 !== _a ? _a : Symbol();
|
|
14
|
+
}));
|
|
15
|
+
}
|
|
16
|
+
diffMark(prevMarks, nextMarks, runningConfig) {
|
|
17
|
+
const diffResult = {
|
|
18
|
+
enter: [],
|
|
19
|
+
exit: [],
|
|
20
|
+
update: []
|
|
21
|
+
};
|
|
22
|
+
let prevDiffMarks = [], nextDiffMarks = [];
|
|
23
|
+
prevMarks.forEach((mark => {
|
|
24
|
+
mark.markType !== enums_1.GrammarMarkType.group && (runningConfig.morph && mark.getMorphConfig().morph || runningConfig.morphAll || runningConfig.reuse) ? prevDiffMarks.push(mark) : diffResult.exit.push({
|
|
25
|
+
prev: [ mark ]
|
|
26
|
+
});
|
|
27
|
+
})), nextMarks.forEach((mark => {
|
|
28
|
+
mark.markType !== enums_1.GrammarMarkType.group && (runningConfig.morph && mark.getMorphConfig().morph || runningConfig.morphAll || runningConfig.reuse) ? nextDiffMarks.push(mark) : diffResult.enter.push({
|
|
29
|
+
next: [ mark ]
|
|
30
|
+
});
|
|
31
|
+
}));
|
|
32
|
+
const keyDiffResult = this.diffUpdateByGroup(prevDiffMarks, nextDiffMarks, (mark => mark.getMorphConfig().morphKey), (mark => mark.getMorphConfig().morphKey));
|
|
33
|
+
prevDiffMarks = keyDiffResult.prev, nextDiffMarks = keyDiffResult.next, diffResult.update = diffResult.update.concat(keyDiffResult.update);
|
|
34
|
+
const nameDiffResult = this.diffUpdateByGroup(prevDiffMarks, nextDiffMarks, (mark => mark.id()), (mark => mark.id()));
|
|
35
|
+
prevDiffMarks = nameDiffResult.prev, nextDiffMarks = nameDiffResult.next, diffResult.update = diffResult.update.concat(nameDiffResult.update);
|
|
36
|
+
const prevParentGroup = (0, differ_1.groupData)(prevDiffMarks, (mark => {
|
|
37
|
+
var _a, _b;
|
|
38
|
+
return null === (_b = null === (_a = mark.group) || void 0 === _a ? void 0 : _a.id) || void 0 === _b ? void 0 : _b.call(_a);
|
|
39
|
+
})), nextParentGroup = (0, differ_1.groupData)(nextDiffMarks, (mark => {
|
|
40
|
+
var _a, _b;
|
|
41
|
+
return null === (_b = null === (_a = mark.group) || void 0 === _a ? void 0 : _a.id) || void 0 === _b ? void 0 : _b.call(_a);
|
|
42
|
+
}));
|
|
43
|
+
return Object.keys(nextParentGroup).forEach((groupName => {
|
|
44
|
+
const prevChildren = prevParentGroup.data.get(groupName), nextChildren = nextParentGroup.data.get(groupName);
|
|
45
|
+
if (prevChildren && nextChildren) {
|
|
46
|
+
for (let i = 0; i < Math.max(prevChildren.length, nextChildren.length); i += 1) {
|
|
47
|
+
const prevChild = prevChildren[i], nextChild = nextChildren[i];
|
|
48
|
+
prevChild && nextChild ? diffResult.update.push({
|
|
49
|
+
prev: [ prevChild ],
|
|
50
|
+
next: [ nextChild ]
|
|
51
|
+
}) : prevChild ? diffResult.exit.push({
|
|
52
|
+
prev: [ prevChild ]
|
|
53
|
+
}) : nextChild && diffResult.enter.push({
|
|
54
|
+
next: [ nextChild ]
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
prevDiffMarks = prevDiffMarks.filter((mark => !prevChildren.includes(mark))), nextDiffMarks = nextDiffMarks.filter((mark => !nextChildren.includes(mark)));
|
|
58
|
+
}
|
|
59
|
+
})), prevDiffMarks.forEach((mark => diffResult.exit.push({
|
|
60
|
+
prev: [ mark ]
|
|
61
|
+
}))), nextDiffMarks.forEach((mark => diffResult.enter.push({
|
|
62
|
+
next: [ mark ]
|
|
63
|
+
}))), diffResult;
|
|
64
|
+
}
|
|
65
|
+
diffUpdateByGroup(prev, next, prevKey, nextKey) {
|
|
66
|
+
const prevGroup = (0, differ_1.groupData)(prev, (datum => {
|
|
67
|
+
var _a;
|
|
68
|
+
return null !== (_a = prevKey(datum)) && void 0 !== _a ? _a : EmptyKey;
|
|
69
|
+
})), nextGroup = (0, differ_1.groupData)(next, (datum => {
|
|
70
|
+
var _a;
|
|
71
|
+
return null !== (_a = nextKey(datum)) && void 0 !== _a ? _a : EmptyKey;
|
|
72
|
+
}));
|
|
73
|
+
let prevAfterDiff = prev, nextAfterDiff = next;
|
|
74
|
+
const update = [];
|
|
75
|
+
return nextGroup.keys.forEach((key => {
|
|
76
|
+
if (key !== EmptyKey) {
|
|
77
|
+
const prevKeyData = prevGroup.data.get(key), nextKeyData = nextGroup.data.get(key);
|
|
78
|
+
prevKeyData && nextKeyData && (update.push({
|
|
79
|
+
prev: prevKeyData,
|
|
80
|
+
next: nextKeyData
|
|
81
|
+
}), prevAfterDiff = prevAfterDiff.filter((datum => !prevKeyData.includes(datum))),
|
|
82
|
+
nextAfterDiff = nextAfterDiff.filter((datum => !nextKeyData.includes(datum))));
|
|
83
|
+
}
|
|
84
|
+
})), {
|
|
85
|
+
prev: prevAfterDiff,
|
|
86
|
+
next: nextAfterDiff,
|
|
87
|
+
update: update
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
exports.ViewDiff = ViewDiff;
|
|
93
|
+
//# sourceMappingURL=view-diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/graph/view-diff.ts"],"names":[],"mappings":"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","file":"view-diff.js","sourcesContent":["import type { IGrammarBase, IMark, IRunningConfig, MarkSpec } from '../types';\nimport type { DiffResult } from '../types/base';\nimport type { IViewDiff } from '../types/morph';\nimport { diffSingle, groupData } from './mark/differ';\nimport { GrammarMarkType } from './enums';\n\nconst EmptyKey = Symbol.for('key');\n\nexport class ViewDiff implements IViewDiff {\n diffGrammar<U extends IGrammarBase>(prevGrammars: U[], nextGrammars: U[]): DiffResult<U, U> {\n const key = (grammar: U) => grammar.id() ?? Symbol();\n return diffSingle(prevGrammars, nextGrammars, key);\n }\n\n diffMark(prevMarks: IMark[], nextMarks: IMark[], runningConfig: IRunningConfig): DiffResult<IMark[], IMark[]> {\n const diffResult: DiffResult<IMark[], IMark[]> = {\n enter: [],\n exit: [],\n update: []\n };\n\n let prevDiffMarks: IMark[] = [];\n let nextDiffMarks: IMark[] = [];\n\n // filter out marks & specs which will not morph\n prevMarks.forEach(mark => {\n if (\n // group mark does not support reusing or morphing\n mark.markType !== GrammarMarkType.group &&\n ((runningConfig.morph && mark.getMorphConfig().morph) || runningConfig.morphAll || runningConfig.reuse)\n ) {\n prevDiffMarks.push(mark);\n } else {\n diffResult.exit.push({ prev: [mark] });\n }\n });\n nextMarks.forEach(mark => {\n if (\n mark.markType !== GrammarMarkType.group &&\n ((runningConfig.morph && mark.getMorphConfig().morph) || runningConfig.morphAll || runningConfig.reuse)\n ) {\n nextDiffMarks.push(mark);\n } else {\n diffResult.enter.push({ next: [mark] });\n }\n });\n\n // 1. match by custom key\n const keyDiffResult = this.diffUpdateByGroup(\n prevDiffMarks,\n nextDiffMarks,\n mark => mark.getMorphConfig().morphKey,\n mark => mark.getMorphConfig().morphKey\n );\n prevDiffMarks = keyDiffResult.prev;\n nextDiffMarks = keyDiffResult.next;\n diffResult.update = diffResult.update.concat(keyDiffResult.update);\n\n // 2. match by name\n const nameDiffResult = this.diffUpdateByGroup(\n prevDiffMarks,\n nextDiffMarks,\n mark => mark.id(),\n mark => mark.id()\n );\n prevDiffMarks = nameDiffResult.prev;\n nextDiffMarks = nameDiffResult.next;\n diffResult.update = diffResult.update.concat(nameDiffResult.update);\n\n // 3. match by index\n\n // FIXME: mark index cannot be get before executing, index is decided by remove/order for now\n const prevParentGroup = groupData(prevDiffMarks, mark => mark.group?.id?.());\n const nextParentGroup = groupData(nextDiffMarks, mark => mark.group?.id?.());\n\n Object.keys(nextParentGroup).forEach(groupName => {\n const prevChildren = prevParentGroup.data.get(groupName);\n const nextChildren = nextParentGroup.data.get(groupName);\n if (prevChildren && nextChildren) {\n for (let i = 0; i < Math.max(prevChildren.length, nextChildren.length); i += 1) {\n const prevChild = prevChildren[i];\n const nextChild = nextChildren[i];\n if (prevChild && nextChild) {\n diffResult.update.push({ prev: [prevChild], next: [nextChild] });\n } else if (prevChild) {\n diffResult.exit.push({ prev: [prevChild] });\n } else if (nextChild) {\n diffResult.enter.push({ next: [nextChild] });\n }\n }\n\n prevDiffMarks = prevDiffMarks.filter(mark => !prevChildren.includes(mark));\n nextDiffMarks = nextDiffMarks.filter(mark => !nextChildren.includes(mark));\n }\n });\n\n // 4. handle unmatched marks\n prevDiffMarks.forEach(mark => diffResult.exit.push({ prev: [mark] }));\n nextDiffMarks.forEach(mark => diffResult.enter.push({ next: [mark] }));\n\n return diffResult;\n }\n\n private diffUpdateByGroup<U extends IMark | MarkSpec, V extends IMark | MarkSpec>(\n prev: U[],\n next: V[],\n prevKey: (datum: U) => symbol | string,\n nextKey: (datum: V) => symbol | string\n ) {\n const prevGroup = groupData(prev, datum => prevKey(datum) ?? EmptyKey);\n const nextGroup = groupData(next, datum => nextKey(datum) ?? EmptyKey);\n\n let prevAfterDiff = prev;\n let nextAfterDiff = next;\n const update: { prev: U[]; next: V[] }[] = [];\n nextGroup.keys.forEach(key => {\n if (key !== EmptyKey) {\n const prevKeyData = prevGroup.data.get(key);\n const nextKeyData = nextGroup.data.get(key);\n if (prevKeyData && nextKeyData) {\n update.push({ prev: prevKeyData, next: nextKeyData });\n prevAfterDiff = prevAfterDiff.filter(datum => !prevKeyData.includes(datum));\n nextAfterDiff = nextAfterDiff.filter(datum => !nextKeyData.includes(datum));\n }\n }\n });\n return {\n prev: prevAfterDiff,\n next: nextAfterDiff,\n update\n };\n }\n}\n"]}
|
package/cjs/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const version = "0.13.
|
|
1
|
+
export declare const version = "0.13.7-alpha.0";
|
|
2
2
|
export * from './graph';
|
|
3
3
|
export * from './interactions';
|
|
4
4
|
export { View } from './view';
|
|
@@ -10,6 +10,8 @@ export * from './util/text';
|
|
|
10
10
|
export * from './types';
|
|
11
11
|
export { Factory } from './core/factory';
|
|
12
12
|
export { SIGNAL_AUTOFIT, SIGNAL_HEIGHT, SIGNAL_PADDING, SIGNAL_VIEW_HEIGHT, SIGNAL_VIEW_WIDTH, SIGNAL_WIDTH, SIGNAL_VIEW_BOX } from './view/constants';
|
|
13
|
+
export { registerViewEventsAPI } from './view/view-event-mixin';
|
|
14
|
+
export { registerViewMorphAPI } from './view/view-morph-mixin';
|
|
13
15
|
export { ThemeManager } from './theme/theme-manager';
|
|
14
16
|
export * from './glyph';
|
|
15
17
|
export * from './component';
|
|
@@ -21,3 +23,8 @@ export * from './interactions';
|
|
|
21
23
|
export * from './semantic-marks/cell';
|
|
22
24
|
export * from './semantic-marks/interval';
|
|
23
25
|
export * from './graph/mark/graphic';
|
|
26
|
+
export { registerDefaultLayout, defaultDoLayout } from './graph/layout/layout';
|
|
27
|
+
export { registerGlyphMark, GlyphMark } from './view/glyph';
|
|
28
|
+
export declare const registerDragPlugin: () => void;
|
|
29
|
+
export declare const registerGesturePlugin: () => void;
|
|
30
|
+
export declare const registerAnimate: () => void;
|
package/cjs/index.js
CHANGED
|
@@ -17,8 +17,8 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
|
|
|
17
17
|
|
|
18
18
|
Object.defineProperty(exports, "__esModule", {
|
|
19
19
|
value: !0
|
|
20
|
-
}), exports.vglobal = exports.ThemeManager = exports.SIGNAL_VIEW_BOX = exports.SIGNAL_WIDTH = exports.SIGNAL_VIEW_WIDTH = exports.SIGNAL_VIEW_HEIGHT = exports.SIGNAL_PADDING = exports.SIGNAL_HEIGHT = exports.SIGNAL_AUTOFIT = exports.Factory = exports.GrammarBase = exports.invokeFunctionType = exports.parseFunctionType = exports.registerCoordinate = exports.Coordinate = exports.registerScale = exports.Scale = exports.View = exports.version = void 0,
|
|
21
|
-
exports.version = "0.13.
|
|
20
|
+
}), exports.registerAnimate = exports.registerGesturePlugin = exports.registerDragPlugin = exports.GlyphMark = exports.registerGlyphMark = exports.defaultDoLayout = exports.registerDefaultLayout = exports.vglobal = exports.ThemeManager = exports.registerViewMorphAPI = exports.registerViewEventsAPI = exports.SIGNAL_VIEW_BOX = exports.SIGNAL_WIDTH = exports.SIGNAL_VIEW_WIDTH = exports.SIGNAL_VIEW_HEIGHT = exports.SIGNAL_PADDING = exports.SIGNAL_HEIGHT = exports.SIGNAL_AUTOFIT = exports.Factory = exports.GrammarBase = exports.invokeFunctionType = exports.parseFunctionType = exports.registerCoordinate = exports.Coordinate = exports.registerScale = exports.Scale = exports.View = exports.version = void 0,
|
|
21
|
+
exports.version = "0.13.7-alpha.0", __exportStar(require("./graph"), exports), __exportStar(require("./interactions"), exports);
|
|
22
22
|
|
|
23
23
|
var view_1 = require("./view");
|
|
24
24
|
|
|
@@ -128,6 +128,24 @@ Object.defineProperty(exports, "SIGNAL_AUTOFIT", {
|
|
|
128
128
|
}
|
|
129
129
|
});
|
|
130
130
|
|
|
131
|
+
var view_event_mixin_1 = require("./view/view-event-mixin");
|
|
132
|
+
|
|
133
|
+
Object.defineProperty(exports, "registerViewEventsAPI", {
|
|
134
|
+
enumerable: !0,
|
|
135
|
+
get: function() {
|
|
136
|
+
return view_event_mixin_1.registerViewEventsAPI;
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
var view_morph_mixin_1 = require("./view/view-morph-mixin");
|
|
141
|
+
|
|
142
|
+
Object.defineProperty(exports, "registerViewMorphAPI", {
|
|
143
|
+
enumerable: !0,
|
|
144
|
+
get: function() {
|
|
145
|
+
return view_morph_mixin_1.registerViewMorphAPI;
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
|
|
131
149
|
var theme_manager_1 = require("./theme/theme-manager");
|
|
132
150
|
|
|
133
151
|
Object.defineProperty(exports, "ThemeManager", {
|
|
@@ -148,4 +166,50 @@ Object.defineProperty(exports, "vglobal", {
|
|
|
148
166
|
}), __exportStar(require("./env"), exports), __exportStar(require("./interactions"), exports),
|
|
149
167
|
__exportStar(require("./semantic-marks/cell"), exports), __exportStar(require("./semantic-marks/interval"), exports),
|
|
150
168
|
__exportStar(require("./graph/mark/graphic"), exports);
|
|
169
|
+
|
|
170
|
+
var layout_1 = require("./graph/layout/layout");
|
|
171
|
+
|
|
172
|
+
Object.defineProperty(exports, "registerDefaultLayout", {
|
|
173
|
+
enumerable: !0,
|
|
174
|
+
get: function() {
|
|
175
|
+
return layout_1.registerDefaultLayout;
|
|
176
|
+
}
|
|
177
|
+
}), Object.defineProperty(exports, "defaultDoLayout", {
|
|
178
|
+
enumerable: !0,
|
|
179
|
+
get: function() {
|
|
180
|
+
return layout_1.defaultDoLayout;
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
var glyph_1 = require("./view/glyph");
|
|
185
|
+
|
|
186
|
+
Object.defineProperty(exports, "registerGlyphMark", {
|
|
187
|
+
enumerable: !0,
|
|
188
|
+
get: function() {
|
|
189
|
+
return glyph_1.registerGlyphMark;
|
|
190
|
+
}
|
|
191
|
+
}), Object.defineProperty(exports, "GlyphMark", {
|
|
192
|
+
enumerable: !0,
|
|
193
|
+
get: function() {
|
|
194
|
+
return glyph_1.GlyphMark;
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
const vrender_kits_1 = require("@visactor/vrender-kits"), factory_2 = require("./core/factory"), registerDragPlugin = () => {
|
|
199
|
+
factory_2.Factory.registerStageEventPlugin("drag", vrender_kits_1.DragNDrop);
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
exports.registerDragPlugin = registerDragPlugin;
|
|
203
|
+
|
|
204
|
+
const registerGesturePlugin = () => {
|
|
205
|
+
factory_2.Factory.registerStageEventPlugin("gesture", vrender_kits_1.Gesture);
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
exports.registerGesturePlugin = registerGesturePlugin;
|
|
209
|
+
|
|
210
|
+
const view_animate_mixin_1 = require("./view/view-animate-mixin"), mark_animate_mixin_1 = require("./view/mark-animate-mixin"), registerAnimate = () => {
|
|
211
|
+
(0, view_animate_mixin_1.registerViewAnimateAPI)(), (0, mark_animate_mixin_1.registerMarkAnimateAPI)();
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
exports.registerAnimate = registerAnimate;
|
|
151
215
|
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACa,QAAA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACa,QAAA,OAAO,GAAG,gBAAgB,CAAC;AAExC,0CAAwB;AAExB,iDAA+B;AAE/B,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,sCAAoD;AAA3C,8FAAA,KAAK,OAAA;AAAE,sGAAA,aAAa,OAAA;AAC7B,gDAAmE;AAA1D,wGAAA,UAAU,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AACvC,qCAAqE;AAA5D,yGAAA,iBAAiB,OAAA;AAAE,0GAAA,kBAAkB,OAAA;AAC9C,oDAAkD;AAAzC,2GAAA,WAAW,OAAA;AACpB,8CAA4B;AAC5B,0CAAwB;AACxB,0CAAyC;AAAhC,kGAAA,OAAO,OAAA;AAChB,8CAQ0B;AAPxB,2GAAA,cAAc,OAAA;AACd,0GAAA,aAAa,OAAA;AACb,2GAAA,cAAc,OAAA;AACd,+GAAA,kBAAkB,OAAA;AAClB,8GAAA,iBAAiB,OAAA;AACjB,yGAAA,YAAY,OAAA;AACZ,4GAAA,eAAe,OAAA;AAEjB,4DAAgE;AAAvD,yHAAA,qBAAqB,OAAA;AAC9B,4DAA+D;AAAtD,wHAAA,oBAAoB,OAAA;AAE7B,uDAAqD;AAA5C,6GAAA,YAAY,OAAA;AAErB,0CAAwB;AACxB,8CAA4B;AAC5B,+CAA6B;AAC7B,8DAA4C;AAE5C,uDAAiD;AAAxC,uGAAA,OAAO,OAAA;AAChB,wCAAsB;AACtB,iDAA+B;AAC/B,wDAAsC;AACtC,4DAA0C;AAC1C,uDAAqC;AACrC,gDAA+E;AAAtE,+GAAA,qBAAqB,OAAA;AAAE,yGAAA,eAAe,OAAA;AAC/C,sCAA4D;AAAnD,0GAAA,iBAAiB,OAAA;AAAE,kGAAA,SAAS,OAAA;AAErC,yDAA4D;AAC5D,4CAAyC;AAElC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,iBAAO,CAAC,wBAAwB,CAAC,MAAM,EAAE,wBAAS,CAAC,CAAC;AACtD,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B;AAEK,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,iBAAO,CAAC,wBAAwB,CAAC,SAAS,EAAE,sBAAO,CAAC,CAAC;AACvD,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AAEF,kEAAmE;AACnE,kEAAmE;AAE5D,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,IAAA,2CAAsB,GAAE,CAAC;IACzB,IAAA,2CAAsB,GAAE,CAAC;AAC3B,CAAC,CAAC;AAHW,QAAA,eAAe,mBAG1B","file":"index.js","sourcesContent":["// -- Exports -----\nexport const version = \"0.13.7-alpha.0\";\n\nexport * from './graph';\n\nexport * from './interactions';\n\nexport { View } from './view';\nexport { Scale, registerScale } from './view/scale';\nexport { Coordinate, registerCoordinate } from './view/coordinate';\nexport { parseFunctionType, invokeFunctionType } from './parse/util';\nexport { GrammarBase } from './view/grammar-base';\nexport * from './util/text';\nexport * from './types';\nexport { Factory } from './core/factory';\nexport {\n SIGNAL_AUTOFIT,\n SIGNAL_HEIGHT,\n SIGNAL_PADDING,\n SIGNAL_VIEW_HEIGHT,\n SIGNAL_VIEW_WIDTH,\n SIGNAL_WIDTH,\n SIGNAL_VIEW_BOX\n} from './view/constants';\nexport { registerViewEventsAPI } from './view/view-event-mixin';\nexport { registerViewMorphAPI } from './view/view-morph-mixin';\n\nexport { ThemeManager } from './theme/theme-manager';\n\nexport * from './glyph';\nexport * from './component';\nexport * from './transforms';\nexport * from './graph/animation/animation';\n\nexport { vglobal } from '@visactor/vrender-core';\nexport * from './env';\nexport * from './interactions';\nexport * from './semantic-marks/cell';\nexport * from './semantic-marks/interval';\nexport * from './graph/mark/graphic';\nexport { registerDefaultLayout, defaultDoLayout } from './graph/layout/layout';\nexport { registerGlyphMark, GlyphMark } from './view/glyph';\n\nimport { DragNDrop, Gesture } from '@visactor/vrender-kits';\nimport { Factory } from './core/factory';\n\nexport const registerDragPlugin = () => {\n Factory.registerStageEventPlugin('drag', DragNDrop);\n};\n\nexport const registerGesturePlugin = () => {\n Factory.registerStageEventPlugin('gesture', Gesture);\n};\n\nimport { registerViewAnimateAPI } from './view/view-animate-mixin';\nimport { registerMarkAnimateAPI } from './view/mark-animate-mixin';\n\nexport const registerAnimate = () => {\n registerViewAnimateAPI();\n registerMarkAnimateAPI();\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/interactions/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["import { array, isArray, isNil, isString, isValid } from '@visactor/vutils';\nimport type {\n IBaseInteractionOptions,\n IElement,\n IGlyphElement,\n IGrammarBase,\n IView,\n InteractionEventHandler\n} from '../types';\n\nexport abstract class BaseInteraction<T extends IBaseInteractionOptions> {\n readonly view: IView;\n\n options: T;\n\n type: string;\n\n constructor(view: IView, options: T) {\n this.view = view;\n this.depend(options?.dependency);\n }\n\n references: Map<IGrammarBase, number> = new Map();\n\n protected abstract getEvents(): Array<{ type: string | string[]; handler: InteractionEventHandler }>;\n\n getStartState(): string {\n return null;\n }\n\n depend(grammar: IGrammarBase[] | IGrammarBase | string[] | string) {\n this.references.clear();\n array(grammar)\n .map(grammar => (isString(grammar) ? this.view.getGrammarById(grammar) : grammar))\n .filter(ref => !isNil(ref))\n .forEach(ref => {\n this.references.set(ref, (this.references.get(ref) ?? 0) + 1);\n });\n }\n\n parameters() {\n const params: any = {};\n this.references.forEach((count, ref) => {\n // upstream reference with no valid id will not be recorded in parameters\n if (isValid(ref.id())) {\n params[ref.id() as string] = ref.output();\n }\n });\n return params;\n }\n\n bind() {\n const events = this.getEvents();\n\n (events ?? []).forEach(evt => {\n if (evt.type && evt.handler) {\n if (isArray(evt.type)) {\n evt.type.forEach(evtType => {\n evtType && evtType !== 'none' && this.view.addEventListener(evtType, evt.handler);\n });\n } else {\n evt.type !== 'none' && this.view.addEventListener(evt.type, evt.handler);\n }\n }\n });\n }\n\n unbind() {\n // unbind events\n const events = this.getEvents();\n\n (events ?? []).forEach(evt => {\n if (evt.type && evt.handler) {\n if (isArray(evt.type)) {\n evt.type.forEach(evtType => {\n evtType && evtType !== 'none' && this.view.removeEventListener(evtType, evt.handler);\n });\n } else {\n evt.type !== 'none' && this.view.removeEventListener(evt.type, evt.handler);\n }\n }\n });\n }\n\n start(element: IElement | IGlyphElement) {\n // do nothing\n }\n\n reset(element?: IElement | IGlyphElement) {\n // do
|
|
1
|
+
{"version":3,"sources":["../src/interactions/base.ts"],"names":[],"mappings":";;;AAAA,6CAA4E;AAU5E,MAAsB,eAAe;IAOnC,YAAY,IAAW,EAAE,OAAU;QAKnC,eAAU,GAA8B,IAAI,GAAG,EAAE,CAAC;QAJhD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAC,CAAC;IACnC,CAAC;IAMD,aAAa;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,OAA0D;QAC/D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAA,cAAK,EAAC,OAAO,CAAC;aACX,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAA,iBAAQ,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;aACjF,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAA,cAAK,EAAC,GAAG,CAAC,CAAC;aAC1B,OAAO,CAAC,GAAG,CAAC,EAAE;;YACb,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,UAAU;QACR,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAErC,IAAI,IAAA,gBAAO,EAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;gBACrB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAY,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;aAC3C;QACH,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEhC,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC3B,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE;gBAC3B,IAAI,IAAA,gBAAO,EAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACrB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;wBACzB,OAAO,IAAI,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;oBACpF,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;iBAC1E;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QAEJ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEhC,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC3B,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE;gBAC3B,IAAI,IAAA,gBAAO,EAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACrB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;wBACzB,OAAO,IAAI,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;oBACvF,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;iBAC7E;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAiC;IAEvC,CAAC;IAED,KAAK,CAAC,OAAkC;IAExC,CAAC;IAES,aAAa,CAAC,IAA0C,EAAE,MAAW;QAC7E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QAE/C,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAC5C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC9B;aAAM,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACnD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC9B;aAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACrD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC/B;aAAM,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC5B;IACH,CAAC;CACF;AA/FD,0CA+FC","file":"base.js","sourcesContent":["import { array, isArray, isNil, isString, isValid } from '@visactor/vutils';\nimport type {\n IBaseInteractionOptions,\n IElement,\n IGlyphElement,\n IGrammarBase,\n IView,\n InteractionEventHandler\n} from '../types';\n\nexport abstract class BaseInteraction<T extends IBaseInteractionOptions> {\n readonly view: IView;\n\n options: T;\n\n type: string;\n\n constructor(view: IView, options: T) {\n this.view = view;\n this.depend(options?.dependency);\n }\n\n references: Map<IGrammarBase, number> = new Map();\n\n protected abstract getEvents(): Array<{ type: string | string[]; handler: InteractionEventHandler }>;\n\n getStartState(): string {\n return null;\n }\n\n depend(grammar: IGrammarBase[] | IGrammarBase | string[] | string) {\n this.references.clear();\n array(grammar)\n .map(grammar => (isString(grammar) ? this.view.getGrammarById(grammar) : grammar))\n .filter(ref => !isNil(ref))\n .forEach(ref => {\n this.references.set(ref, (this.references.get(ref) ?? 0) + 1);\n });\n }\n\n parameters() {\n const params: any = {};\n this.references.forEach((count, ref) => {\n // upstream reference with no valid id will not be recorded in parameters\n if (isValid(ref.id())) {\n params[ref.id() as string] = ref.output();\n }\n });\n return params;\n }\n\n bind() {\n const events = this.getEvents();\n\n (events ?? []).forEach(evt => {\n if (evt.type && evt.handler) {\n if (isArray(evt.type)) {\n evt.type.forEach(evtType => {\n evtType && evtType !== 'none' && this.view.addEventListener(evtType, evt.handler);\n });\n } else {\n evt.type !== 'none' && this.view.addEventListener(evt.type, evt.handler);\n }\n }\n });\n }\n\n unbind() {\n // unbind events\n const events = this.getEvents();\n\n (events ?? []).forEach(evt => {\n if (evt.type && evt.handler) {\n if (isArray(evt.type)) {\n evt.type.forEach(evtType => {\n evtType && evtType !== 'none' && this.view.removeEventListener(evtType, evt.handler);\n });\n } else {\n evt.type !== 'none' && this.view.removeEventListener(evt.type, evt.handler);\n }\n }\n });\n }\n\n start(element: IElement | IGlyphElement) {\n // do nothing\n }\n\n reset(element?: IElement | IGlyphElement) {\n // do nothing\n }\n\n protected dispatchEvent(type: 'start' | 'reset' | 'update' | 'end', params: any) {\n this.view.emit(`${this.type}:${type}`, params);\n\n if (type === 'start' && this.options.onStart) {\n this.options.onStart(params);\n } else if (type === 'reset' && this.options.onReset) {\n this.options.onReset(params);\n } else if (type === 'update' && this.options.onUpdate) {\n this.options.onUpdate(params);\n } else if (type === 'end' && this.options.onEnd) {\n this.options.onEnd(params);\n }\n }\n}\n"]}
|