@visactor/vchart 2.1.0-alpha.2 → 2.1.0-alpha.20
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/build/es5/index.js +3 -3
- package/build/index.es.js +19187 -25472
- package/build/index.js +19189 -25474
- package/build/index.min.js +2 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/chart/base/base-chart-transformer.d.ts +0 -3
- package/cjs/chart/base/base-chart-transformer.js +1 -21
- package/cjs/chart/base/base-chart-transformer.js.map +1 -1
- package/cjs/chart/base/base-chart.d.ts +9 -15
- package/cjs/chart/base/base-chart.js +24 -115
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/interface/chart.d.ts +0 -1
- package/cjs/chart/interface/chart.js.map +1 -1
- package/cjs/chart/pie/base/pie-transformer.js +2 -2
- package/cjs/chart/pie/base/pie-transformer.js.map +1 -1
- package/cjs/chart/progress/circular/circular-progress-transformer.js +2 -2
- package/cjs/chart/progress/circular/circular-progress-transformer.js.map +1 -1
- package/cjs/chart/util.d.ts +1 -4
- package/cjs/chart/util.js +4 -40
- package/cjs/chart/util.js.map +1 -1
- package/cjs/chart/waterfall/waterfall-transformer.js +1 -2
- package/cjs/chart/waterfall/waterfall-transformer.js.map +1 -1
- package/cjs/compile/compiler.d.ts +0 -2
- package/cjs/compile/compiler.js +40 -53
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/compile/data/compilable-data.d.ts +1 -1
- package/cjs/compile/data/compilable-data.js +1 -1
- package/cjs/compile/data/compilable-data.js.map +1 -1
- package/cjs/compile/grammar-item.d.ts +1 -1
- package/cjs/compile/grammar-item.js.map +1 -1
- package/cjs/compile/interface/compilable-item.d.ts +1 -1
- package/cjs/compile/interface/compilable-item.js.map +1 -1
- package/cjs/compile/interface/compiler.d.ts +1 -2
- package/cjs/compile/interface/compiler.js.map +1 -1
- package/cjs/component/axis/base-axis.d.ts +7 -2
- package/cjs/component/axis/base-axis.js +3 -25
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/band-axis.d.ts +7 -1
- package/cjs/component/base/base-component.d.ts +7 -7
- package/cjs/component/base/base-component.js +6 -41
- package/cjs/component/base/base-component.js.map +1 -1
- package/cjs/component/brush/brush.d.ts +7 -2
- package/cjs/component/brush/brush.js +12 -16
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +7 -1
- package/cjs/component/custom-mark/custom-mark.d.ts +7 -1
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +7 -1
- package/cjs/component/geo/geo-coordinate.d.ts +7 -1
- package/cjs/component/index.js +2 -1
- package/cjs/component/label/base-label.d.ts +7 -1
- package/cjs/component/label/label.js +1 -1
- package/cjs/component/label/label.js.map +1 -1
- package/cjs/component/legend/base-legend.d.ts +7 -2
- package/cjs/component/legend/base-legend.js +4 -21
- package/cjs/component/legend/base-legend.js.map +1 -1
- package/cjs/component/marker/base-marker.d.ts +7 -7
- package/cjs/component/marker/base-marker.js +6 -23
- package/cjs/component/marker/base-marker.js.map +1 -1
- package/cjs/component/marker/mark-line/base-mark-line.js +4 -2
- package/cjs/component/marker/mark-line/base-mark-line.js.map +1 -1
- package/cjs/component/marker/mark-line/cartesian-mark-line.js +18 -7
- package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
- package/cjs/component/marker/mark-line/interface/spec.d.ts +9 -2
- package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
- package/cjs/component/title/title.d.ts +7 -1
- package/cjs/component/title/title.js +2 -6
- package/cjs/component/title/title.js.map +1 -1
- package/cjs/component/util.js +1 -2
- package/cjs/constant/scatter.js +2 -1
- package/cjs/constant/scroll-bar.js +1 -2
- package/cjs/core/instance-manager.js +1 -1
- package/cjs/core/vchart.d.ts +1 -5
- package/cjs/core/vchart.js +12 -28
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/interaction/interaction.js +8 -11
- package/cjs/interaction/interaction.js.map +1 -1
- package/cjs/interaction/triggers/element-active-by-legend.js +2 -3
- package/cjs/interaction/triggers/element-active-by-legend.js.map +1 -1
- package/cjs/interaction/triggers/element-active.js +3 -4
- package/cjs/interaction/triggers/element-active.js.map +1 -1
- package/cjs/interaction/triggers/element-highlight-by-group.js +2 -3
- package/cjs/interaction/triggers/element-highlight-by-group.js.map +1 -1
- package/cjs/interaction/triggers/element-highlight-by-legend.js +2 -2
- package/cjs/interaction/triggers/element-highlight-by-legend.js.map +1 -1
- package/cjs/interaction/triggers/element-highlight-by-name.js +2 -2
- package/cjs/interaction/triggers/element-highlight-by-name.js.map +1 -1
- package/cjs/interaction/triggers/element-highlight.js +2 -2
- package/cjs/interaction/triggers/element-highlight.js.map +1 -1
- package/cjs/interaction/triggers/element-select.js +3 -3
- package/cjs/interaction/triggers/element-select.js.map +1 -1
- package/cjs/mark/base/base-line.js +2 -2
- package/cjs/mark/base/base-line.js.map +1 -1
- package/cjs/mark/base/base-mark.d.ts +2 -13
- package/cjs/mark/base/base-mark.js +23 -101
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/component.d.ts +0 -9
- package/cjs/mark/component.js +3 -51
- package/cjs/mark/component.js.map +1 -1
- package/cjs/mark/group.js +1 -1
- package/cjs/mark/group.js.map +1 -1
- package/cjs/mark/interface/mark.d.ts +0 -2
- package/cjs/mark/interface/mark.js.map +1 -1
- package/cjs/mark/utils/glyph.js +2 -3
- package/cjs/mark/utils/glyph.js.map +1 -1
- package/cjs/model/base-model.d.ts +15 -3
- package/cjs/model/base-model.js.map +1 -1
- package/cjs/model/interface.d.ts +0 -13
- package/cjs/model/interface.js.map +1 -1
- package/cjs/region/region.d.ts +7 -1
- package/cjs/series/area/area.d.ts +0 -2
- package/cjs/series/area/area.js +0 -6
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/bar/bar.d.ts +0 -3
- package/cjs/series/bar/bar.js +4 -30
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/base/base-series.d.ts +7 -8
- package/cjs/series/base/base-series.js +13 -54
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/base/constant.d.ts +0 -3
- package/cjs/series/base/constant.js +1 -9
- package/cjs/series/base/constant.js.map +1 -1
- package/cjs/series/box-plot/box-plot.d.ts +0 -2
- package/cjs/series/box-plot/box-plot.js +2 -14
- package/cjs/series/box-plot/box-plot.js.map +1 -1
- package/cjs/series/heatmap/heatmap.d.ts +0 -2
- package/cjs/series/heatmap/heatmap.js +0 -10
- package/cjs/series/heatmap/heatmap.js.map +1 -1
- package/cjs/series/line/line.d.ts +0 -2
- package/cjs/series/line/line.js +0 -6
- package/cjs/series/line/line.js.map +1 -1
- package/cjs/series/mixin/line-mixin.d.ts +0 -1
- package/cjs/series/mixin/line-mixin.js +1 -6
- package/cjs/series/mixin/line-mixin.js.map +1 -1
- package/cjs/series/pie/pie.d.ts +7 -3
- package/cjs/series/pie/pie.js +1 -16
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/progress/circular/circular.d.ts +0 -2
- package/cjs/series/progress/circular/circular.js +1 -9
- package/cjs/series/progress/circular/circular.js.map +1 -1
- package/cjs/series/progress/linear/linear.d.ts +0 -2
- package/cjs/series/progress/linear/linear.js +1 -17
- package/cjs/series/progress/linear/linear.js.map +1 -1
- package/cjs/series/sankey/sankey.js +24 -32
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/series/scatter/scatter.d.ts +0 -2
- package/cjs/series/scatter/scatter.js +1 -9
- package/cjs/series/scatter/scatter.js.map +1 -1
- package/cjs/series/waterfall/waterfall.d.ts +2 -2
- package/cjs/series/waterfall/waterfall.js +12 -14
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/esm/chart/base/base-chart-transformer.d.ts +0 -3
- package/esm/chart/base/base-chart-transformer.js +0 -22
- package/esm/chart/base/base-chart-transformer.js.map +1 -1
- package/esm/chart/base/base-chart.d.ts +9 -15
- package/esm/chart/base/base-chart.js +23 -111
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/interface/chart.d.ts +0 -1
- package/esm/chart/interface/chart.js.map +1 -1
- package/esm/chart/pie/base/pie-transformer.js +2 -2
- package/esm/chart/pie/base/pie-transformer.js.map +1 -1
- package/esm/chart/progress/circular/circular-progress-transformer.js +2 -2
- package/esm/chart/progress/circular/circular-progress-transformer.js.map +1 -1
- package/esm/chart/util.d.ts +1 -4
- package/esm/chart/util.js +1 -34
- package/esm/chart/util.js.map +1 -1
- package/esm/chart/waterfall/waterfall-transformer.js +1 -2
- package/esm/chart/waterfall/waterfall-transformer.js.map +1 -1
- package/esm/compile/compiler.d.ts +0 -2
- package/esm/compile/compiler.js +39 -55
- package/esm/compile/compiler.js.map +1 -1
- package/esm/compile/data/compilable-data.d.ts +1 -1
- package/esm/compile/data/compilable-data.js +1 -1
- package/esm/compile/data/compilable-data.js.map +1 -1
- package/esm/compile/grammar-item.d.ts +1 -1
- package/esm/compile/grammar-item.js.map +1 -1
- package/esm/compile/interface/compilable-item.d.ts +1 -1
- package/esm/compile/interface/compilable-item.js.map +1 -1
- package/esm/compile/interface/compiler.d.ts +1 -2
- package/esm/compile/interface/compiler.js.map +1 -1
- package/esm/component/axis/base-axis.d.ts +7 -2
- package/esm/component/axis/base-axis.js +2 -25
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/band-axis.d.ts +7 -1
- package/esm/component/base/base-component.d.ts +7 -7
- package/esm/component/base/base-component.js +5 -41
- package/esm/component/base/base-component.js.map +1 -1
- package/esm/component/brush/brush.d.ts +7 -2
- package/esm/component/brush/brush.js +7 -12
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +7 -1
- package/esm/component/custom-mark/custom-mark.d.ts +7 -1
- package/esm/component/data-zoom/data-filter-base-component.d.ts +7 -1
- package/esm/component/geo/geo-coordinate.d.ts +7 -1
- package/esm/component/index.js +2 -1
- package/esm/component/label/base-label.d.ts +7 -1
- package/esm/component/label/label.js +1 -1
- package/esm/component/label/label.js.map +1 -1
- package/esm/component/legend/base-legend.d.ts +7 -2
- package/esm/component/legend/base-legend.js +3 -21
- package/esm/component/legend/base-legend.js.map +1 -1
- package/esm/component/marker/base-marker.d.ts +7 -7
- package/esm/component/marker/base-marker.js +5 -24
- package/esm/component/marker/base-marker.js.map +1 -1
- package/esm/component/marker/mark-line/base-mark-line.js +4 -2
- package/esm/component/marker/mark-line/base-mark-line.js.map +1 -1
- package/esm/component/marker/mark-line/cartesian-mark-line.js +18 -8
- package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
- package/esm/component/marker/mark-line/interface/spec.d.ts +9 -2
- package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
- package/esm/component/title/title.d.ts +7 -1
- package/esm/component/title/title.js +2 -6
- package/esm/component/title/title.js.map +1 -1
- package/esm/component/util.js +1 -2
- package/esm/constant/scatter.js +2 -1
- package/esm/constant/scroll-bar.js +1 -2
- package/esm/core/instance-manager.js +1 -1
- package/esm/core/vchart.d.ts +1 -5
- package/esm/core/vchart.js +12 -29
- package/esm/core/vchart.js.map +1 -1
- package/esm/interaction/interaction.js +8 -10
- package/esm/interaction/interaction.js.map +1 -1
- package/esm/interaction/triggers/element-active-by-legend.js +1 -3
- package/esm/interaction/triggers/element-active-by-legend.js.map +1 -1
- package/esm/interaction/triggers/element-active.js +2 -4
- package/esm/interaction/triggers/element-active.js.map +1 -1
- package/esm/interaction/triggers/element-highlight-by-group.js +1 -4
- package/esm/interaction/triggers/element-highlight-by-group.js.map +1 -1
- package/esm/interaction/triggers/element-highlight-by-legend.js +1 -3
- package/esm/interaction/triggers/element-highlight-by-legend.js.map +1 -1
- package/esm/interaction/triggers/element-highlight-by-name.js +1 -3
- package/esm/interaction/triggers/element-highlight-by-name.js.map +1 -1
- package/esm/interaction/triggers/element-highlight.js +1 -3
- package/esm/interaction/triggers/element-highlight.js.map +1 -1
- package/esm/interaction/triggers/element-select.js +2 -4
- package/esm/interaction/triggers/element-select.js.map +1 -1
- package/esm/mark/base/base-line.js +2 -2
- package/esm/mark/base/base-line.js.map +1 -1
- package/esm/mark/base/base-mark.d.ts +2 -13
- package/esm/mark/base/base-mark.js +22 -102
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/component.d.ts +0 -9
- package/esm/mark/component.js +2 -51
- package/esm/mark/component.js.map +1 -1
- package/esm/mark/group.js +1 -1
- package/esm/mark/group.js.map +1 -1
- package/esm/mark/interface/mark.d.ts +0 -2
- package/esm/mark/interface/mark.js.map +1 -1
- package/esm/mark/utils/glyph.js +1 -3
- package/esm/mark/utils/glyph.js.map +1 -1
- package/esm/model/base-model.d.ts +15 -3
- package/esm/model/base-model.js.map +1 -1
- package/esm/model/interface.d.ts +0 -13
- package/esm/model/interface.js.map +1 -1
- package/esm/region/region.d.ts +7 -1
- package/esm/series/area/area.d.ts +0 -2
- package/esm/series/area/area.js +1 -7
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/bar/bar.d.ts +0 -3
- package/esm/series/bar/bar.js +4 -30
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/base/base-series.d.ts +7 -8
- package/esm/series/base/base-series.js +11 -50
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/base/constant.d.ts +0 -3
- package/esm/series/base/constant.js +0 -10
- package/esm/series/base/constant.js.map +1 -1
- package/esm/series/box-plot/box-plot.d.ts +0 -2
- package/esm/series/box-plot/box-plot.js +2 -13
- package/esm/series/box-plot/box-plot.js.map +1 -1
- package/esm/series/heatmap/heatmap.d.ts +0 -2
- package/esm/series/heatmap/heatmap.js +0 -10
- package/esm/series/heatmap/heatmap.js.map +1 -1
- package/esm/series/line/line.d.ts +0 -2
- package/esm/series/line/line.js +1 -7
- package/esm/series/line/line.js.map +1 -1
- package/esm/series/mixin/line-mixin.d.ts +0 -1
- package/esm/series/mixin/line-mixin.js +0 -5
- package/esm/series/mixin/line-mixin.js.map +1 -1
- package/esm/series/pie/pie.d.ts +7 -3
- package/esm/series/pie/pie.js +0 -17
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/progress/circular/circular.d.ts +0 -2
- package/esm/series/progress/circular/circular.js +0 -10
- package/esm/series/progress/circular/circular.js.map +1 -1
- package/esm/series/progress/linear/linear.d.ts +0 -2
- package/esm/series/progress/linear/linear.js +0 -18
- package/esm/series/progress/linear/linear.js.map +1 -1
- package/esm/series/sankey/sankey.js +21 -25
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/series/scatter/scatter.d.ts +0 -2
- package/esm/series/scatter/scatter.js +0 -10
- package/esm/series/scatter/scatter.js.map +1 -1
- package/esm/series/waterfall/waterfall.d.ts +2 -2
- package/esm/series/waterfall/waterfall.js +12 -14
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/package.json +8 -10
- package/cjs/compile/stage-app.d.ts +0 -9
- package/cjs/compile/stage-app.js +0 -39
- package/cjs/compile/stage-app.js.map +0 -1
- package/cjs/component/base/release-vrender-component.d.ts +0 -10
- package/cjs/component/base/release-vrender-component.js +0 -37
- package/cjs/component/base/release-vrender-component.js.map +0 -1
- package/cjs/data/data-view-utils.d.ts +0 -5
- package/cjs/data/data-view-utils.js +0 -58
- package/cjs/data/data-view-utils.js.map +0 -1
- package/cjs/util/graphic-state.d.ts +0 -4
- package/cjs/util/graphic-state.js +0 -40
- package/cjs/util/graphic-state.js.map +0 -1
- package/esm/compile/stage-app.d.ts +0 -9
- package/esm/compile/stage-app.js +0 -35
- package/esm/compile/stage-app.js.map +0 -1
- package/esm/component/base/release-vrender-component.d.ts +0 -10
- package/esm/component/base/release-vrender-component.js +0 -24
- package/esm/component/base/release-vrender-component.js.map +0 -1
- package/esm/data/data-view-utils.d.ts +0 -5
- package/esm/data/data-view-utils.js +0 -46
- package/esm/data/data-view-utils.js.map +0 -1
- package/esm/util/graphic-state.d.ts +0 -4
- package/esm/util/graphic-state.js +0 -30
- package/esm/util/graphic-state.js.map +0 -1
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
const normalizeStates = states => Array.isArray(states) ? states : states ? [ states ] : [], isSameStates = (currentStates, nextStates) => {
|
|
2
|
-
const current = null != currentStates ? currentStates : [];
|
|
3
|
-
return current.length === nextStates.length && current.every(((stateName, index) => stateName === nextStates[index]));
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
export const setGraphicStates = (graphic, nextStates, hasAnimation) => {
|
|
7
|
-
var _a;
|
|
8
|
-
if (graphic.setStates) return void graphic.setStates(nextStates, {
|
|
9
|
-
animate: hasAnimation,
|
|
10
|
-
animateSameStatePatchChange: !0
|
|
11
|
-
});
|
|
12
|
-
const normalizedNextStates = null != nextStates ? nextStates : [];
|
|
13
|
-
isSameStates(graphic.currentStates, normalizedNextStates) ? null === (_a = graphic.invalidateResolver) || void 0 === _a || _a.call(graphic) : normalizedNextStates.length ? graphic.useStates(normalizedNextStates, hasAnimation) : graphic.clearStates(hasAnimation);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export const addGraphicState = (graphic, state, keepCurrentStates = !0, hasAnimation) => {
|
|
17
|
-
var _a;
|
|
18
|
-
if (!state) return;
|
|
19
|
-
const currentStates = keepCurrentStates && null !== (_a = graphic.currentStates) && void 0 !== _a ? _a : [], nextStates = keepCurrentStates ? Array.from(new Set([ ...currentStates, state ])) : [ state ];
|
|
20
|
-
setGraphicStates(graphic, nextStates, hasAnimation);
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export const removeGraphicState = (graphic, state, hasAnimation) => {
|
|
24
|
-
var _a;
|
|
25
|
-
const states = normalizeStates(state);
|
|
26
|
-
if (!states.length) return;
|
|
27
|
-
const nextStates = (null !== (_a = graphic.currentStates) && void 0 !== _a ? _a : []).filter((stateName => !states.includes(stateName)));
|
|
28
|
-
setGraphicStates(graphic, nextStates, hasAnimation);
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=graphic-state.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/util/graphic-state.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG,CAAC,MAA0B,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAWlH,MAAM,YAAY,GAAG,CAAC,aAA4C,EAAE,UAA6B,EAAE,EAAE;IACnG,MAAM,OAAO,GAAG,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,EAAE,CAAC;IACpC,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE;QACxC,OAAO,KAAK,CAAC;KACd;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAqB,EAAE,UAA4B,EAAE,YAAsB,EAAE,EAAE;;IAC9G,IAAI,OAAO,CAAC,SAAS,EAAE;QACpB,OAAuC,CAAC,SAAS,CAAC,UAAU,EAAE;YAC7D,OAAO,EAAE,YAAY;YACrB,2BAA2B,EAAE,IAAI;SAClC,CAAC,CAAC;QACH,OAAO;KACR;IAED,MAAM,oBAAoB,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAC;IAC9C,IAAI,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,oBAAoB,CAAC,EAAE;QAC7D,MAAA,OAAO,CAAC,kBAAkB,uDAAI,CAAC;QAC/B,OAAO;KACR;IAED,IAAI,oBAAoB,CAAC,MAAM,EAAE;QAC/B,OAAO,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;KACvD;SAAM;QACL,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;KACnC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAqB,EACrB,KAAa,EACb,oBAA6B,IAAI,EACjC,YAAsB,EACtB,EAAE;;IACF,IAAI,CAAC,KAAK,EAAE;QACV,OAAO;KACR;IAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,aAAa,mCAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAEhG,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAqB,EAAE,KAAwB,EAAE,YAAsB,EAAE,EAAE;;IAC5G,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;QAClB,OAAO;KACR;IAED,MAAM,aAAa,GAAG,CAAC,MAAA,OAAO,CAAC,aAAa,mCAAI,EAAE,CAAa,CAAC;IAChE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,SAAiB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAE5F,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AACtD,CAAC,CAAC","file":"graphic-state.js","sourcesContent":["import type { IMarkGraphic } from '../mark/interface';\n\nconst normalizeStates = (states?: string | string[]) => (Array.isArray(states) ? states : states ? [states] : []);\n\ntype SetStatesOptions = {\n animate?: boolean;\n animateSameStatePatchChange?: boolean;\n};\n\ntype GraphicWithSetStatesOptions = IMarkGraphic & {\n setStates: (states?: string[] | null, options?: boolean | SetStatesOptions) => void;\n};\n\nconst isSameStates = (currentStates: readonly string[] | undefined, nextStates: readonly string[]) => {\n const current = currentStates ?? [];\n if (current.length !== nextStates.length) {\n return false;\n }\n\n return current.every((stateName, index) => stateName === nextStates[index]);\n};\n\nexport const setGraphicStates = (graphic: IMarkGraphic, nextStates?: string[] | null, hasAnimation?: boolean) => {\n if (graphic.setStates) {\n (graphic as GraphicWithSetStatesOptions).setStates(nextStates, {\n animate: hasAnimation,\n animateSameStatePatchChange: true\n });\n return;\n }\n\n const normalizedNextStates = nextStates ?? [];\n if (isSameStates(graphic.currentStates, normalizedNextStates)) {\n graphic.invalidateResolver?.();\n return;\n }\n\n if (normalizedNextStates.length) {\n graphic.useStates(normalizedNextStates, hasAnimation);\n } else {\n graphic.clearStates(hasAnimation);\n }\n};\n\nexport const addGraphicState = (\n graphic: IMarkGraphic,\n state: string,\n keepCurrentStates: boolean = true,\n hasAnimation?: boolean\n) => {\n if (!state) {\n return;\n }\n\n const currentStates = keepCurrentStates ? graphic.currentStates ?? [] : [];\n const nextStates = keepCurrentStates ? Array.from(new Set([...currentStates, state])) : [state];\n\n setGraphicStates(graphic, nextStates, hasAnimation);\n};\n\nexport const removeGraphicState = (graphic: IMarkGraphic, state: string | string[], hasAnimation?: boolean) => {\n const states = normalizeStates(state);\n\n if (!states.length) {\n return;\n }\n\n const currentStates = (graphic.currentStates ?? []) as string[];\n const nextStates = currentStates.filter((stateName: string) => !states.includes(stateName));\n\n setGraphicStates(graphic, nextStates, hasAnimation);\n};\n"]}
|