@visactor/vgrammar-core 0.10.0-alpha.4 → 0.10.0-alpha.6
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.js.map +1 -1
- package/cjs/component/datazoom.js.map +1 -1
- package/cjs/component/grid.js.map +1 -1
- package/cjs/component/label.d.ts +2 -2
- package/cjs/component/label.js.map +1 -1
- package/cjs/component/legend.js.map +1 -1
- package/cjs/component/player.js.map +1 -1
- package/cjs/component/scrollbar.js.map +1 -1
- package/cjs/component/slider.js.map +1 -1
- package/cjs/component/title.d.ts +1 -1
- package/cjs/component/title.js.map +1 -1
- package/cjs/core/factory.d.ts +1 -1
- package/cjs/core/factory.js.map +1 -1
- package/cjs/env.d.ts +1 -1
- package/cjs/env.js +6 -6
- package/cjs/env.js.map +1 -1
- package/cjs/graph/animation/animate.js +12 -11
- package/cjs/graph/animation/animate.js.map +1 -1
- package/cjs/graph/animation/animation/grow-cartesian.js +173 -129
- package/cjs/graph/animation/animation/grow-cartesian.js.map +1 -1
- package/cjs/graph/animation/animation/grow-interval.js +18 -20
- package/cjs/graph/animation/animation/grow-interval.js.map +1 -1
- package/cjs/graph/animation/animation/grow-points.js +8 -4
- package/cjs/graph/animation/animation/grow-points.js.map +1 -1
- package/cjs/graph/animation/animation/move.js +7 -2
- package/cjs/graph/animation/animation/move.js.map +1 -1
- package/cjs/graph/animation/animator.js +4 -4
- package/cjs/graph/animation/animator.js.map +1 -1
- package/cjs/graph/animation/attribute.d.ts +2 -2
- package/cjs/graph/animation/attribute.js +6 -6
- package/cjs/graph/animation/attribute.js.map +1 -1
- package/cjs/graph/animation/morph.js +4 -4
- package/cjs/graph/animation/morph.js.map +1 -1
- package/cjs/graph/attributes/line.js.map +1 -1
- package/cjs/graph/attributes/transform.js +6 -4
- package/cjs/graph/attributes/transform.js.map +1 -1
- package/cjs/graph/canvas-renderer.d.ts +1 -1
- package/cjs/graph/canvas-renderer.js +5 -5
- package/cjs/graph/canvas-renderer.js.map +1 -1
- package/cjs/graph/element.d.ts +3 -3
- package/cjs/graph/element.js +9 -10
- package/cjs/graph/element.js.map +1 -1
- package/cjs/graph/glyph-element.d.ts +1 -1
- package/cjs/graph/glyph-element.js.map +1 -1
- package/cjs/graph/mark/differ.js +20 -13
- package/cjs/graph/mark/differ.js.map +1 -1
- package/cjs/graph/mark/encode.d.ts +4 -4
- package/cjs/graph/mark/encode.js.map +1 -1
- package/cjs/graph/mark/graphic.js +23 -23
- package/cjs/graph/mark/graphic.js.map +1 -1
- package/cjs/graph/mark/large-rects.d.ts +2 -2
- package/cjs/graph/mark/large-rects.js +3 -3
- package/cjs/graph/mark/large-rects.js.map +1 -1
- package/cjs/graph/mark/large-symbols.d.ts +2 -2
- package/cjs/graph/mark/large-symbols.js +3 -3
- package/cjs/graph/mark/large-symbols.js.map +1 -1
- package/cjs/graph/util/env.js +2 -2
- package/cjs/graph/util/env.js.map +1 -1
- package/cjs/graph/util/events-extend.d.ts +1 -1
- package/cjs/graph/util/events-extend.js.map +1 -1
- package/cjs/graph/util/graphic.d.ts +3 -3
- package/cjs/graph/util/graphic.js +3 -5
- package/cjs/graph/util/graphic.js.map +1 -1
- package/cjs/index.d.ts +2 -2
- package/cjs/index.js +3 -3
- package/cjs/index.js.map +1 -1
- package/cjs/interactions/base.js +1 -1
- package/cjs/interactions/base.js.map +1 -1
- package/cjs/interactions/brush-active.d.ts +8 -6
- package/cjs/interactions/brush-active.js +3 -3
- package/cjs/interactions/brush-active.js.map +1 -1
- package/cjs/interactions/brush-base.d.ts +15 -11
- package/cjs/interactions/brush-base.js +14 -7
- package/cjs/interactions/brush-base.js.map +1 -1
- package/cjs/interactions/brush-filter.d.ts +8 -6
- package/cjs/interactions/brush-filter.js +3 -3
- package/cjs/interactions/brush-filter.js.map +1 -1
- package/cjs/interactions/brush-highlight.d.ts +8 -6
- package/cjs/interactions/brush-highlight.js +4 -4
- package/cjs/interactions/brush-highlight.js.map +1 -1
- package/cjs/interactions/crosshair.js.map +1 -1
- package/cjs/interactions/drill-down.d.ts +8 -6
- package/cjs/interactions/drill-down.js +3 -3
- package/cjs/interactions/drill-down.js.map +1 -1
- package/cjs/semantic-marks/cell.d.ts +3 -3
- package/cjs/semantic-marks/cell.js.map +1 -1
- package/cjs/semantic-marks/interval.d.ts +3 -3
- package/cjs/semantic-marks/interval.js.map +1 -1
- package/cjs/semantic-marks/text.js.map +1 -1
- package/cjs/types/animate.d.ts +1 -1
- package/cjs/types/animate.js.map +1 -1
- package/cjs/types/component.d.ts +1 -1
- package/cjs/types/component.js.map +1 -1
- package/cjs/types/element.d.ts +1 -1
- package/cjs/types/element.js.map +1 -1
- package/cjs/types/event.d.ts +1 -1
- package/cjs/types/event.js.map +1 -1
- package/cjs/types/grammar.d.ts +4 -4
- package/cjs/types/grammar.js.map +1 -1
- package/cjs/types/interaction.d.ts +2 -2
- package/cjs/types/interaction.js.map +1 -1
- package/cjs/types/mark.d.ts +3 -3
- package/cjs/types/mark.js.map +1 -1
- package/cjs/types/morph.d.ts +1 -1
- package/cjs/types/morph.js.map +1 -1
- package/cjs/types/plot.d.ts +1 -1
- package/cjs/types/plot.js.map +1 -1
- package/cjs/types/renderer.d.ts +1 -1
- package/cjs/types/renderer.js.map +1 -1
- package/cjs/types/theme.d.ts +1 -1
- package/cjs/types/theme.js.map +1 -1
- package/cjs/types/view.d.ts +1 -1
- package/cjs/types/view.js.map +1 -1
- package/cjs/util/text.d.ts +1 -1
- package/cjs/util/text.js +3 -3
- package/cjs/util/text.js.map +1 -1
- package/cjs/view/View.d.ts +1 -1
- package/cjs/view/View.js +7 -7
- package/cjs/view/View.js.map +1 -1
- package/cjs/view/component.d.ts +6 -3
- package/cjs/view/component.js +8 -2
- package/cjs/view/component.js.map +1 -1
- package/cjs/view/group.d.ts +4 -0
- package/cjs/view/group.js +12 -1
- package/cjs/view/group.js.map +1 -1
- package/cjs/view/mark.d.ts +5 -5
- package/cjs/view/mark.js +12 -15
- package/cjs/view/mark.js.map +1 -1
- package/es/component/axis.js.map +1 -1
- package/es/component/datazoom.js.map +1 -1
- package/es/component/grid.js.map +1 -1
- package/es/component/label.d.ts +2 -2
- package/es/component/label.js.map +1 -1
- package/es/component/legend.js.map +1 -1
- package/es/component/player.js.map +1 -1
- package/es/component/scrollbar.js.map +1 -1
- package/es/component/slider.js.map +1 -1
- package/es/component/title.d.ts +1 -1
- package/es/component/title.js.map +1 -1
- package/es/core/factory.d.ts +1 -1
- package/es/core/factory.js.map +1 -1
- package/es/env.d.ts +1 -1
- package/es/env.js +2 -2
- package/es/env.js.map +1 -1
- package/es/graph/animation/animate.js +12 -11
- package/es/graph/animation/animate.js.map +1 -1
- package/es/graph/animation/animation/grow-cartesian.js +170 -130
- package/es/graph/animation/animation/grow-cartesian.js.map +1 -1
- package/es/graph/animation/animation/grow-interval.js +14 -20
- package/es/graph/animation/animation/grow-interval.js.map +1 -1
- package/es/graph/animation/animation/grow-points.js +8 -4
- package/es/graph/animation/animation/grow-points.js.map +1 -1
- package/es/graph/animation/animation/move.js +7 -1
- package/es/graph/animation/animation/move.js.map +1 -1
- package/es/graph/animation/animator.js +1 -1
- package/es/graph/animation/animator.js.map +1 -1
- package/es/graph/animation/attribute.d.ts +2 -2
- package/es/graph/animation/attribute.js +1 -1
- package/es/graph/animation/attribute.js.map +1 -1
- package/es/graph/animation/morph.js +1 -1
- package/es/graph/animation/morph.js.map +1 -1
- package/es/graph/attributes/line.js.map +1 -1
- package/es/graph/attributes/transform.js +6 -4
- package/es/graph/attributes/transform.js.map +1 -1
- package/es/graph/canvas-renderer.d.ts +1 -1
- package/es/graph/canvas-renderer.js +2 -2
- package/es/graph/canvas-renderer.js.map +1 -1
- package/es/graph/element.d.ts +3 -3
- package/es/graph/element.js +7 -7
- package/es/graph/element.js.map +1 -1
- package/es/graph/glyph-element.d.ts +1 -1
- package/es/graph/glyph-element.js.map +1 -1
- package/es/graph/mark/differ.js +20 -13
- package/es/graph/mark/differ.js.map +1 -1
- package/es/graph/mark/encode.d.ts +4 -4
- package/es/graph/mark/encode.js.map +1 -1
- package/es/graph/mark/graphic.js +3 -1
- package/es/graph/mark/graphic.js.map +1 -1
- package/es/graph/mark/large-rects.d.ts +2 -2
- package/es/graph/mark/large-rects.js +1 -1
- package/es/graph/mark/large-rects.js.map +1 -1
- package/es/graph/mark/large-symbols.d.ts +2 -2
- package/es/graph/mark/large-symbols.js +1 -1
- package/es/graph/mark/large-symbols.js.map +1 -1
- package/es/graph/util/env.js +1 -1
- package/es/graph/util/env.js.map +1 -1
- package/es/graph/util/events-extend.d.ts +1 -1
- package/es/graph/util/events-extend.js.map +1 -1
- package/es/graph/util/graphic.d.ts +3 -3
- package/es/graph/util/graphic.js +4 -6
- package/es/graph/util/graphic.js.map +1 -1
- package/es/index.d.ts +2 -2
- package/es/index.js +2 -2
- package/es/index.js.map +1 -1
- package/es/interactions/base.js +1 -1
- package/es/interactions/base.js.map +1 -1
- package/es/interactions/brush-active.d.ts +8 -6
- package/es/interactions/brush-active.js +3 -3
- package/es/interactions/brush-active.js.map +1 -1
- package/es/interactions/brush-base.d.ts +15 -11
- package/es/interactions/brush-base.js +13 -7
- package/es/interactions/brush-base.js.map +1 -1
- package/es/interactions/brush-filter.d.ts +8 -6
- package/es/interactions/brush-filter.js +4 -5
- package/es/interactions/brush-filter.js.map +1 -1
- package/es/interactions/brush-highlight.d.ts +8 -6
- package/es/interactions/brush-highlight.js +4 -4
- package/es/interactions/brush-highlight.js.map +1 -1
- package/es/interactions/crosshair.js.map +1 -1
- package/es/interactions/drill-down.d.ts +8 -6
- package/es/interactions/drill-down.js +3 -3
- package/es/interactions/drill-down.js.map +1 -1
- package/es/interactions/element-highlight-by-group.js +2 -1
- package/es/interactions/index.js +1 -2
- 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/tooltip.js +1 -1
- package/es/interactions/view-drag-mixin.js +1 -1
- package/es/parse/coordinate.js +1 -1
- package/es/parse/event.js +1 -1
- package/es/parse/mark.js +1 -1
- package/es/parse/option.js +1 -1
- package/es/parse/scale.js +2 -1
- package/es/parse/transform.js +1 -1
- package/es/parse/util.js +1 -1
- package/es/parse/view.js +1 -1
- package/es/semantic-marks/cell.d.ts +3 -3
- package/es/semantic-marks/cell.js.map +1 -1
- package/es/semantic-marks/interval.d.ts +3 -3
- package/es/semantic-marks/interval.js.map +1 -1
- package/es/semantic-marks/text.js.map +1 -1
- package/es/types/animate.d.ts +1 -1
- package/es/types/animate.js.map +1 -1
- package/es/types/component.d.ts +1 -1
- package/es/types/component.js.map +1 -1
- package/es/types/element.d.ts +1 -1
- package/es/types/element.js.map +1 -1
- package/es/types/event.d.ts +1 -1
- package/es/types/event.js.map +1 -1
- package/es/types/grammar.d.ts +4 -4
- package/es/types/grammar.js.map +1 -1
- package/es/types/interaction.d.ts +2 -2
- package/es/types/interaction.js.map +1 -1
- package/es/types/mark.d.ts +3 -3
- package/es/types/mark.js.map +1 -1
- package/es/types/morph.d.ts +1 -1
- package/es/types/morph.js.map +1 -1
- package/es/types/plot.d.ts +1 -1
- package/es/types/plot.js.map +1 -1
- package/es/types/renderer.d.ts +1 -1
- package/es/types/renderer.js.map +1 -1
- package/es/types/theme.d.ts +1 -1
- package/es/types/theme.js.map +1 -1
- package/es/types/view.d.ts +1 -1
- package/es/types/view.js.map +1 -1
- package/es/util/text.d.ts +1 -1
- package/es/util/text.js +1 -1
- package/es/util/text.js.map +1 -1
- package/es/view/View.d.ts +1 -1
- package/es/view/View.js +1 -1
- package/es/view/View.js.map +1 -1
- package/es/view/component.d.ts +6 -3
- package/es/view/component.js +10 -4
- package/es/view/component.js.map +1 -1
- package/es/view/group.d.ts +4 -0
- package/es/view/group.js +14 -1
- package/es/view/group.js.map +1 -1
- package/es/view/mark.d.ts +5 -5
- package/es/view/mark.js +10 -12
- package/es/view/mark.js.map +1 -1
- package/package.json +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graph/animation/animation/grow-interval.ts"],"names":[],"mappings":"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","file":"grow-interval.js","sourcesContent":["/**\n * this animtion is only used for interval mark\n */\nimport type { IGrowCartesianAnimationOptions, IAnimationParameters, IElement, TypeAnimation } from '../../../types';\nimport { isNumber } from '@visactor/vutils';\n\nfunction growIntervalInIndividual(\n element: IElement,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) {\n if (options?.direction === 'x') {\n const x = element.getGraphicAttribute('x', false);\n const x1 = element.getGraphicAttribute('x1', false);\n if (options?.orient === 'negative') {\n return {\n from: { x: x1, x1: x1 },\n to: { x: x, x1: x1 }\n };\n }\n return {\n from: { x: x, x1: x },\n to: { x: x, y1: x1 }\n };\n }\n const y = element.getGraphicAttribute('y', false);\n const y1 = element.getGraphicAttribute('y1', false);\n if (options?.orient === 'negative') {\n return {\n from: { y: y1, y1: y1 },\n to: { y: y, y1: y1 }\n };\n }\n return {\n from: { y: y, y1: y },\n to: { y: y, y1: y1 }\n };\n}\n\nfunction growIntervalInOverall(\n element: IElement,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) {\n if (options?.direction === 'x') {\n const x = element.getGraphicAttribute('x', false);\n const x1 = element.getGraphicAttribute('x1', false);\n let overallValue: number;\n if (options?.orient === 'negative') {\n const groupRight = animationParameters.group\n ? animationParameters.group.getBounds().width()\n : animationParameters.width;\n overallValue = isNumber(options?.overall) ? options?.overall : groupRight;\n } else {\n overallValue = isNumber(options?.overall) ? options?.overall : 0;\n }\n return {\n from: { x: overallValue, x1: overallValue },\n to: { x: x, y1: x1 }\n };\n }\n\n const y = element.getGraphicAttribute('y', false);\n const y1 = element.getGraphicAttribute('y1', false);\n let overallValue: number;\n if (options?.orient === 'negative') {\n const groupBottom = animationParameters.group\n ? animationParameters.group.getBounds().height()\n : animationParameters.height;\n overallValue = isNumber(options?.overall) ? options?.overall : groupBottom;\n } else {\n overallValue = isNumber(options?.overall) ? options?.overall : 0;\n }\n return {\n from: { y: overallValue, y1: overallValue },\n to: { y: y, y1: y1 }\n };\n}\n\nexport const growIntervalIn: TypeAnimation<IElement> = (\n element: IElement,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const coord = element.mark?.coord?.output();\n const isTransposed = coord.isTransposed();\n const isPolar = coord.type === 'polar';\n const newOptions: IGrowCartesianAnimationOptions = {\n orient: 'negative',\n direction: isTransposed && !isPolar ? 'x' : 'y'\n };\n\n return options?.overall !== true\n ? growIntervalInIndividual(element, newOptions, animationParameters)\n : growIntervalInOverall(element, newOptions, animationParameters);\n};\n\nfunction growIntervalOutIndividual(\n element: IElement,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) {\n if (options.direction === 'x') {\n const x = element.getGraphicAttribute('x', false);\n const x1 = element.getGraphicAttribute('x1', false);\n const prevX = element.getGraphicAttribute('x', true);\n const prevX1 = element.getGraphicAttribute('x1', true);\n if (options?.orient === 'negative') {\n return {\n from: { x: prevX, x1: prevX1 },\n to: { x: x1, x1: x1 }\n };\n }\n return {\n from: { x: prevX, x1: prevX1 },\n to: { x: x, x1: x }\n };\n }\n\n const y = element.getGraphicAttribute('y', false);\n const y1 = element.getGraphicAttribute('y1', false);\n const prevY = element.getGraphicAttribute('y', true);\n const prevY1 = element.getGraphicAttribute('y1', true);\n if (options?.orient === 'negative') {\n return {\n from: { y: prevY, y1: prevY1 },\n to: { y: y1, y1: y1 }\n };\n }\n return {\n from: { y: prevY, y1: prevY1 },\n to: { y: y, y1: y }\n };\n}\n\nfunction growIntervalOutOverall(\n element: IElement,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) {\n if (options?.direction === 'x') {\n const prevX = element.getGraphicAttribute('x', true);\n const prevX1 = element.getGraphicAttribute('x1', true);\n let overallValue: number;\n if (options?.orient === 'negative') {\n const groupRight = animationParameters.group\n ? animationParameters.group.getBounds().width()\n : animationParameters.height;\n overallValue = isNumber(options?.overall) ? options?.overall : groupRight;\n } else {\n overallValue = isNumber(options?.overall) ? options?.overall : 0;\n }\n return {\n from: { x: prevX, x1: prevX1 },\n to: { x: overallValue, x1: overallValue }\n };\n }\n\n const prevY = element.getGraphicAttribute('y', true);\n const prevY1 = element.getGraphicAttribute('y1', true);\n let overallValue: number;\n if (options?.orient === 'negative') {\n const groupBottom = animationParameters.group\n ? animationParameters.group.getBounds().height()\n : animationParameters.height;\n overallValue = isNumber(options?.overall) ? options?.overall : groupBottom;\n } else {\n overallValue = isNumber(options?.overall) ? options?.overall : 0;\n }\n return {\n from: { y: prevY, y1: prevY1 },\n to: { y: overallValue, y1: overallValue }\n };\n}\n\nexport const growIntervalOut: TypeAnimation<IElement> = (\n element: IElement,\n options: Pick<IGrowCartesianAnimationOptions, 'overall'>,\n animationParameters: IAnimationParameters\n) => {\n const coord = element.mark?.coord?.output();\n const isTransposed = coord.isTransposed();\n const isPolar = coord.type === 'polar';\n const newOptions: IGrowCartesianAnimationOptions = {\n orient: 'negative',\n direction: isTransposed && !isPolar ? 'x' : 'y'\n };\n\n return options?.overall !== true\n ? growIntervalOutIndividual(element, newOptions, animationParameters)\n : growIntervalOutOverall(element, newOptions, animationParameters);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/graph/animation/animation/grow-interval.ts"],"names":[],"mappings":"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","file":"grow-interval.js","sourcesContent":["/**\n * this animtion is only used for interval mark\n */\nimport type { IGrowCartesianAnimationOptions, IAnimationParameters, IElement, TypeAnimation } from '../../../types';\nimport { isNumber } from '@visactor/vutils';\n\nfunction growIntervalInIndividual(\n element: IElement,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) {\n if (options?.direction === 'x') {\n const x = element.getGraphicAttribute('x', false);\n const x1 = element.getGraphicAttribute('x1', false);\n if (options?.orient === 'negative') {\n return {\n from: { x: x1, x1: x1 },\n to: { x: x, x1: x1 }\n };\n }\n return {\n from: { x: x, x1: x },\n to: { x: x, y1: x1 }\n };\n }\n const y = element.getGraphicAttribute('y', false);\n const y1 = element.getGraphicAttribute('y1', false);\n if (options?.orient === 'negative') {\n return {\n from: { y: y1, y1: y1 },\n to: { y: y, y1: y1 }\n };\n }\n return {\n from: { y: y, y1: y },\n to: { y: y, y1: y1 }\n };\n}\n\nfunction growIntervalInOverall(\n element: IElement,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) {\n if (options?.direction === 'x') {\n const x = element.getGraphicAttribute('x', false);\n const x1 = element.getGraphicAttribute('x1', false);\n let overallValue: number;\n if (options?.orient === 'negative') {\n if (isNumber(options?.overall)) {\n overallValue = options.overall;\n } else if (animationParameters.group) {\n overallValue = (animationParameters as any).groupWidth ?? animationParameters.group.getBounds().width();\n\n (animationParameters as any).groupWidth = overallValue;\n } else {\n overallValue = animationParameters.width;\n }\n } else {\n overallValue = isNumber(options?.overall) ? options?.overall : 0;\n }\n return {\n from: { x: overallValue, x1: overallValue },\n to: { x: x, y1: x1 }\n };\n }\n\n const y = element.getGraphicAttribute('y', false);\n const y1 = element.getGraphicAttribute('y1', false);\n let overallValue: number;\n if (options?.orient === 'negative') {\n if (isNumber(options?.overall)) {\n overallValue = options?.overall;\n } else if (animationParameters.group) {\n overallValue = (animationParameters as any).groupHeight ?? animationParameters.group.getBounds().height();\n\n (animationParameters as any).groupHeight = overallValue;\n } else {\n overallValue = animationParameters.height;\n }\n } else {\n overallValue = isNumber(options?.overall) ? options?.overall : 0;\n }\n return {\n from: { y: overallValue, y1: overallValue },\n to: { y: y, y1: y1 }\n };\n}\n\nexport const growIntervalIn: TypeAnimation<IElement> = (\n element: IElement,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const coord = element.mark?.coord?.output();\n const isTransposed = coord.isTransposed();\n const isPolar = coord.type === 'polar';\n const newOptions: IGrowCartesianAnimationOptions = {\n orient: 'negative',\n direction: isTransposed && !isPolar ? 'x' : 'y'\n };\n\n return options?.overall !== true\n ? growIntervalInIndividual(element, newOptions, animationParameters)\n : growIntervalInOverall(element, newOptions, animationParameters);\n};\n\nfunction growIntervalOutIndividual(\n element: IElement,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) {\n if (options.direction === 'x') {\n const x = element.getGraphicAttribute('x', false);\n const x1 = element.getGraphicAttribute('x1', false);\n const prevX = element.getGraphicAttribute('x', true);\n const prevX1 = element.getGraphicAttribute('x1', true);\n if (options?.orient === 'negative') {\n return {\n from: { x: prevX, x1: prevX1 },\n to: { x: x1, x1: x1 }\n };\n }\n return {\n from: { x: prevX, x1: prevX1 },\n to: { x: x, x1: x }\n };\n }\n\n const y = element.getGraphicAttribute('y', false);\n const y1 = element.getGraphicAttribute('y1', false);\n const prevY = element.getGraphicAttribute('y', true);\n const prevY1 = element.getGraphicAttribute('y1', true);\n if (options?.orient === 'negative') {\n return {\n from: { y: prevY, y1: prevY1 },\n to: { y: y1, y1: y1 }\n };\n }\n return {\n from: { y: prevY, y1: prevY1 },\n to: { y: y, y1: y }\n };\n}\n\nfunction growIntervalOutOverall(\n element: IElement,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) {\n if (options?.direction === 'x') {\n const prevX = element.getGraphicAttribute('x', true);\n const prevX1 = element.getGraphicAttribute('x1', true);\n let overallValue: number;\n if (options?.orient === 'negative') {\n if (isNumber(options?.overall)) {\n overallValue = options.overall;\n } else if (animationParameters.group) {\n overallValue = (animationParameters as any).groupWidth ?? animationParameters.group.getBounds().width();\n\n (animationParameters as any).groupWidth = overallValue;\n } else {\n overallValue = animationParameters.width;\n }\n } else {\n overallValue = isNumber(options?.overall) ? options?.overall : 0;\n }\n return {\n from: { x: prevX, x1: prevX1 },\n to: { x: overallValue, x1: overallValue }\n };\n }\n\n const prevY = element.getGraphicAttribute('y', true);\n const prevY1 = element.getGraphicAttribute('y1', true);\n let overallValue: number;\n if (options?.orient === 'negative') {\n if (isNumber(options?.overall)) {\n overallValue = options?.overall;\n } else if (animationParameters.group) {\n overallValue = (animationParameters as any).groupHeight ?? animationParameters.group.getBounds().height();\n\n (animationParameters as any).groupHeight = overallValue;\n } else {\n overallValue = animationParameters.height;\n }\n } else {\n overallValue = isNumber(options?.overall) ? options?.overall : 0;\n }\n return {\n from: { y: prevY, y1: prevY1 },\n to: { y: overallValue, y1: overallValue }\n };\n}\n\nexport const growIntervalOut: TypeAnimation<IElement> = (\n element: IElement,\n options: Pick<IGrowCartesianAnimationOptions, 'overall'>,\n animationParameters: IAnimationParameters\n) => {\n const coord = element.mark?.coord?.output();\n const isTransposed = coord.isTransposed();\n const isPolar = coord.type === 'polar';\n const newOptions: IGrowCartesianAnimationOptions = {\n orient: 'negative',\n direction: isTransposed && !isPolar ? 'x' : 'y'\n };\n\n return options?.overall !== true\n ? growIntervalOutIndividual(element, newOptions, animationParameters)\n : growIntervalOutOverall(element, newOptions, animationParameters);\n};\n"]}
|
|
@@ -30,9 +30,11 @@ export const growPointsOut = (element, options, animationParameters) => ({
|
|
|
30
30
|
});
|
|
31
31
|
|
|
32
32
|
const changePointsX = (element, options, animationParameters) => element.getGraphicAttribute("points", !1).map((point => {
|
|
33
|
+
var _a;
|
|
33
34
|
if ("negative" === (null == options ? void 0 : options.orient)) {
|
|
34
|
-
|
|
35
|
-
return
|
|
35
|
+
let groupRight = animationParameters.width;
|
|
36
|
+
return animationParameters.group && (groupRight = null !== (_a = animationParameters.groupWidth) && void 0 !== _a ? _a : animationParameters.group.getBounds().width(),
|
|
37
|
+
animationParameters.groupWidth = groupRight), {
|
|
36
38
|
x: groupRight,
|
|
37
39
|
y: point.y,
|
|
38
40
|
x1: groupRight,
|
|
@@ -68,9 +70,11 @@ export const growPointsXOut = (element, options, animationParameters) => ({
|
|
|
68
70
|
});
|
|
69
71
|
|
|
70
72
|
const changePointsY = (element, options, animationParameters) => element.getGraphicAttribute("points", !1).map((point => {
|
|
73
|
+
var _a;
|
|
71
74
|
if ("negative" === (null == options ? void 0 : options.orient)) {
|
|
72
|
-
|
|
73
|
-
return
|
|
75
|
+
let groupBottom = animationParameters.height;
|
|
76
|
+
return animationParameters.group && (groupBottom = null !== (_a = animationParameters.groupHeight) && void 0 !== _a ? _a : animationParameters.group.getBounds().height(),
|
|
77
|
+
animationParameters.groupHeight = groupBottom), {
|
|
74
78
|
x: point.x,
|
|
75
79
|
y: groupBottom,
|
|
76
80
|
x1: point.x1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graph/animation/animation/grow-points.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AASjD,MAAM,eAAe,GAAG,CACtB,OAAiB,EACjB,OAA2C,EAC3C,mBAAyC,EACzC,EAAE;IACF,MAAM,MAAM,GAAiB,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAe,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACrB,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC;IAC1B,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC;IAE1B,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE;QACnB,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACnC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;SAC7B;QACD,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACnC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;SAC7B;KACF;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAA4B,CACnD,OAAiB,EACjB,OAA2C,EAC3C,mBAAyC,EACzC,EAAE;IACF,OAAO;QACL,IAAI,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC,EAAE;QACxE,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;KAC7D,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAA4B,CACpD,OAAiB,EACjB,OAA2C,EAC3C,mBAAyC,EACzC,EAAE;IACF,OAAO;QACL,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;QAC7D,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC,EAAE;KACvE,CAAC;AACJ,CAAC,CAAC;AAIF,MAAM,aAAa,GAAG,CACpB,OAAiB,EACjB,OAAoC,EACpC,mBAAyC,EACzC,EAAE;IACF,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAiB,EAAE,EAAE
|
|
1
|
+
{"version":3,"sources":["../src/graph/animation/animation/grow-points.ts"],"names":[],"mappings":"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","file":"grow-points.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isValidNumber } from '@visactor/vutils';\nimport type {\n IElement,\n IGrowPointsOverallAnimationOptions,\n IAnimationParameters,\n IGrowPointsAnimationOptions,\n TypeAnimation\n} from '../../../types';\n\nconst getCenterPoints = (\n element: IElement,\n options: IGrowPointsOverallAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const points: IPointLike[] = element.getGraphicAttribute('points', false);\n const center: IPointLike = { x: 0, y: 0 };\n points.forEach(point => {\n center.x += point.x;\n center.y += point.y;\n });\n center.x /= points.length;\n center.y /= points.length;\n\n if (options?.center) {\n if (isValidNumber(options.center.x)) {\n center.x = options.center.x;\n }\n if (isValidNumber(options.center.y)) {\n center.y = options.center.y;\n }\n }\n\n return points.map(() => Object.assign(center));\n};\n\nexport const growPointsIn: TypeAnimation<IElement> = (\n element: IElement,\n options: IGrowPointsOverallAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n return {\n from: { points: getCenterPoints(element, options, animationParameters) },\n to: { points: element.getGraphicAttribute('points', false) }\n };\n};\n\nexport const growPointsOut: TypeAnimation<IElement> = (\n element: IElement,\n options: IGrowPointsOverallAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n return {\n from: { points: element.getGraphicAttribute('points', true) },\n to: { points: getCenterPoints(element, options, animationParameters) }\n };\n};\n\n// grow points x\n\nconst changePointsX = (\n element: IElement,\n options: IGrowPointsAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const points = element.getGraphicAttribute('points', false);\n return points.map((point: IPointLike) => {\n if (options?.orient === 'negative') {\n let groupRight = animationParameters.width;\n\n if (animationParameters.group) {\n groupRight = (animationParameters as any).groupWidth ?? animationParameters.group.getBounds().width();\n\n (animationParameters as any).groupWidth = groupRight;\n }\n\n return {\n x: groupRight,\n y: point.y,\n x1: groupRight,\n y1: point.y1,\n defined: point.defined !== false\n } as IPointLike;\n }\n return {\n x: 0,\n y: point.y,\n x1: 0,\n y1: point.y1,\n defined: point.defined !== false\n } as IPointLike;\n });\n};\n\nexport const growPointsXIn: TypeAnimation<IElement> = (\n element: IElement,\n options: IGrowPointsAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n return {\n from: { points: changePointsX(element, options, animationParameters) },\n to: { points: element.getGraphicAttribute('points', false) }\n };\n};\n\nexport const growPointsXOut: TypeAnimation<IElement> = (\n element: IElement,\n options: IGrowPointsAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n return {\n from: { points: element.getGraphicAttribute('points', true) },\n to: { points: changePointsX(element, options, animationParameters) }\n };\n};\n\n// grow points y\n\nconst changePointsY = (\n element: IElement,\n options: IGrowPointsAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const points = element.getGraphicAttribute('points', false);\n return points.map((point: IPointLike) => {\n if (options?.orient === 'negative') {\n let groupBottom = animationParameters.height;\n\n if (animationParameters.group) {\n groupBottom = (animationParameters as any).groupHeight ?? animationParameters.group.getBounds().height();\n\n (animationParameters as any).groupHeight = groupBottom;\n }\n\n return {\n x: point.x,\n y: groupBottom,\n x1: point.x1,\n y1: groupBottom,\n defined: point.defined !== false\n } as IPointLike;\n }\n return {\n x: point.x,\n y: 0,\n x1: point.x1,\n y1: 0,\n defined: point.defined !== false\n } as IPointLike;\n });\n};\n\nexport const growPointsYIn: TypeAnimation<IElement> = (\n element: IElement,\n options: IGrowPointsAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n return {\n from: { points: changePointsY(element, options, animationParameters) },\n to: { points: element.getGraphicAttribute('points', false) }\n };\n};\n\nexport const growPointsYOut: TypeAnimation<IElement> = (\n element: IElement,\n options: IGrowPointsAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n return {\n from: { points: element.getGraphicAttribute('points', true) },\n to: { points: changePointsY(element, options, animationParameters) }\n };\n};\n"]}
|
|
@@ -2,7 +2,13 @@ import { isFunction, isValidNumber } from "@visactor/vutils";
|
|
|
2
2
|
|
|
3
3
|
export const moveIn = (element, options, animationParameters) => {
|
|
4
4
|
var _a, _b, _c;
|
|
5
|
-
const offset = null !== (_a = null == options ? void 0 : options.offset) && void 0 !== _a ? _a : 0
|
|
5
|
+
const offset = null !== (_a = null == options ? void 0 : options.offset) && void 0 !== _a ? _a : 0;
|
|
6
|
+
let changedX = 0, changedY = 0;
|
|
7
|
+
"negative" === (null == options ? void 0 : options.orient) && (animationParameters.group ? (changedX = null !== (_b = animationParameters.groupWidth) && void 0 !== _b ? _b : animationParameters.group.getBounds().width(),
|
|
8
|
+
changedY = null !== (_c = animationParameters.groupHeight) && void 0 !== _c ? _c : animationParameters.group.getBounds().height(),
|
|
9
|
+
animationParameters.groupWidth = changedX, animationParameters.groupHeight = changedY) : (changedX = animationParameters.width,
|
|
10
|
+
changedY = animationParameters.height)), changedX += offset, changedY += offset;
|
|
11
|
+
const point = isFunction(null == options ? void 0 : options.point) ? options.point.call(null, element.getDatum(), element, animationParameters) : null == options ? void 0 : options.point, fromX = isValidNumber(null == point ? void 0 : point.x) ? point.x : changedX, fromY = isValidNumber(null == point ? void 0 : point.y) ? point.y : changedY;
|
|
6
12
|
switch (null == options ? void 0 : options.direction) {
|
|
7
13
|
case "x":
|
|
8
14
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graph/animation/animation/move.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAM7D,MAAM,CAAC,MAAM,MAAM,GAA4B,CAC7C,OAAiB,EACjB,OAA8B,EAC9B,mBAAyC,EACzC,EAAE;;IACF,MAAM,MAAM,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,mCAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/graph/animation/animation/move.ts"],"names":[],"mappings":"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","file":"move.js","sourcesContent":["import { isFunction, isValidNumber } from '@visactor/vutils';\nimport type { IElement, IMoveAnimationOptions, IAnimationParameters, TypeAnimation } from '../../../types';\n\n// When user did not provide proper x/y value, move animation will never work properly,\n// due to that, default x/y value won't be set.\n\nexport const moveIn: TypeAnimation<IElement> = (\n element: IElement,\n options: IMoveAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const offset = options?.offset ?? 0;\n let changedX = 0;\n let changedY = 0;\n\n if (options?.orient === 'negative') {\n // consider the offset of group\n if (animationParameters.group) {\n changedX = (animationParameters as any).groupWidth ?? animationParameters.group.getBounds().width();\n changedY = (animationParameters as any).groupHeight ?? animationParameters.group.getBounds().height();\n\n (animationParameters as any).groupWidth = changedX;\n (animationParameters as any).groupHeight = changedY;\n } else {\n changedX = animationParameters.width;\n changedY = animationParameters.height;\n }\n }\n\n changedX += offset;\n changedY += offset;\n const point = isFunction(options?.point)\n ? options.point.call(null, element.getDatum(), element, animationParameters)\n : options?.point;\n const fromX = isValidNumber(point?.x) ? point.x : changedX;\n const fromY = isValidNumber(point?.y) ? point.y : changedY;\n switch (options?.direction) {\n case 'x':\n return {\n from: { x: fromX },\n to: { x: element.getGraphicAttribute('x', false) }\n };\n case 'y':\n return {\n from: { y: fromY },\n to: { y: element.getGraphicAttribute('y', false) }\n };\n case 'xy':\n default:\n return {\n from: { x: fromX, y: fromY },\n to: {\n x: element.getGraphicAttribute('x', false),\n y: element.getGraphicAttribute('y', false)\n }\n };\n }\n};\n\nexport const moveOut: TypeAnimation<IElement> = (\n element: IElement,\n options: IMoveAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const offset = options?.offset ?? 0;\n // consider the offset of group\n const groupBounds = animationParameters.group ? animationParameters.group.getBounds() : null;\n const groupWidth = groupBounds?.width() ?? animationParameters.width;\n const groupHeight = groupBounds?.height() ?? animationParameters.height;\n const changedX = (options?.orient === 'negative' ? groupWidth : 0) + offset;\n const changedY = (options?.orient === 'negative' ? groupHeight : 0) + offset;\n const point = isFunction(options?.point)\n ? options.point.call(null, element.getDatum(), element, animationParameters)\n : options?.point;\n const fromX = isValidNumber(point?.x) ? point.x : changedX;\n const fromY = isValidNumber(point?.y) ? point.y : changedY;\n\n switch (options?.direction) {\n case 'x':\n return {\n from: { x: element.getGraphicAttribute('x', true) },\n to: { x: fromX }\n };\n case 'y':\n return {\n from: { y: element.getGraphicAttribute('y', true) },\n to: { y: fromY }\n };\n case 'xy':\n default:\n return {\n from: {\n x: element.getGraphicAttribute('x', true),\n y: element.getGraphicAttribute('y', true)\n },\n to: { x: fromX, y: fromY }\n };\n }\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isNil, isValidNumber } from "@visactor/vutils";
|
|
2
2
|
|
|
3
|
-
import { ACustomAnimate, Animate, AnimateGroup, AnimateMode } from "@visactor/vrender
|
|
3
|
+
import { ACustomAnimate, Animate, AnimateGroup, AnimateMode } from "@visactor/vrender-core";
|
|
4
4
|
|
|
5
5
|
import { AttributeAnimate, channelAnimationAttributes, CustomInterpolator, typeAnimationAttributes } from "./attribute";
|
|
6
6
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graph/animation/animator.ts"],"names":[],"mappings":"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","file":"animator.js","sourcesContent":["import { isNil, isValidNumber } from '@visactor/vutils';\nimport type { IAnimate as IGraphicAnimate } from '@visactor/vrender/es/core';\n// eslint-disable-next-line no-duplicate-imports\nimport { ACustomAnimate, Animate, AnimateGroup, AnimateMode } from '@visactor/vrender/es/core';\nimport type {\n IAnimationChannelInterpolator,\n IAnimationCustomConstructor,\n IAnimationTimeline,\n IAnimator,\n IAnimatorOptions,\n IAnimationUnit,\n IAnimationParameters,\n IAnimationTimeSlice,\n IElement,\n IAnimationEffect\n} from '../../types';\nimport { AttributeAnimate, channelAnimationAttributes, CustomInterpolator, typeAnimationAttributes } from './attribute';\n\nAnimate.mode |= AnimateMode.SET_ATTR_IMMEDIATELY;\n\nlet GlobalAnimatorId = 0;\n\nconst isCustomAnimateCtor = (custom?: IAnimationChannelInterpolator | IAnimationCustomConstructor) => {\n return !isNil(custom) && custom.prototype instanceof ACustomAnimate;\n};\n\nexport class Animator implements IAnimator {\n id: number = GlobalAnimatorId++;\n element: IElement;\n animationOptions: IAnimatorOptions;\n isAnimating: boolean = false;\n\n private unit: IAnimationUnit;\n private runnings: IGraphicAnimate[] = [];\n private callbackFunction: (...args: any[]) => any;\n\n constructor(\n element: IElement,\n unit: IAnimationUnit,\n animationOptions: {\n state: string;\n timeline: IAnimationTimeline;\n id: string;\n }\n ) {\n this.element = element;\n this.animationOptions = animationOptions;\n this.unit = unit;\n }\n\n callback(callbackFunction: (...args: any[]) => void): this {\n this.callbackFunction = callbackFunction;\n return this;\n }\n\n animate(animationParameters: IAnimationParameters, parameters: any): this {\n this.isAnimating = true;\n\n this.animateElement(animationParameters, parameters);\n\n // if no valid running, end animating immediately\n if (this.runnings.length === 0) {\n this.animationEnd();\n }\n return this;\n }\n\n stop(stopState: 'start' | 'end' = 'end', invokeCallback: boolean = true): this {\n // FIXME: wait for VRender to fix 'end' parameter\n this.runnings.forEach(running => running.stop(stopState));\n this.animationEnd(invokeCallback);\n return this;\n }\n\n pause(): this {\n this.runnings.forEach(running => running.pause());\n return this;\n }\n\n resume(): this {\n this.runnings.forEach(running => running.resume());\n return this;\n }\n\n startAt(startTime: number): this {\n this.runnings.forEach(running => {\n const initialDelay = this.unit.initialDelay;\n running.startAt(initialDelay + startTime);\n });\n return this;\n }\n\n getTotalAnimationTime() {\n const timeLineDuration = this.unit.initialDelay + this.unit.loopDuration * this.unit.loopCount;\n return this.unit.totalTime ?? timeLineDuration;\n }\n\n getEndAttributes() {\n return this.runnings.reduce((attributes, running) => {\n return Object.assign(attributes, running.getEndProps());\n }, {} as Record<string, any>);\n }\n\n private animationEnd(invokeCallback: boolean = true) {\n this.isAnimating = false;\n this.runnings = null;\n if (invokeCallback) {\n this.callbackFunction?.call(null);\n }\n }\n\n private animateElement(animationParameters: IAnimationParameters, parameters: any) {\n const graphicItem = this.element.getGraphicItem();\n\n if (!graphicItem) {\n return;\n }\n\n const graphicAnimate: IGraphicAnimate = graphicItem.animate();\n this.runnings.push(graphicAnimate);\n // initialDelay is only used at first loop\n graphicAnimate.startAt(this.unit.initialDelay);\n // execute loop animation\n graphicAnimate.wait(this.unit.loopDelay);\n this.unit.timeSlices.forEach(timeSlice => {\n this.animateTimeSlice(graphicAnimate, timeSlice, animationParameters, parameters);\n });\n graphicAnimate.wait(this.unit.loopDelayAfter);\n\n graphicAnimate.loop(this.unit.loopCount - 1);\n\n if (isValidNumber(this.unit.totalTime)) {\n // FIXME: use VRender api instead after VRender refactor is finished\n setTimeout(() => {\n if (graphicAnimate) {\n graphicAnimate.stop('end');\n }\n }, this.unit.totalTime);\n }\n\n graphicAnimate.onEnd(() => {\n this.runnings = this.runnings.filter(running => running !== graphicAnimate);\n if (this.runnings.length === 0) {\n this.animationEnd();\n }\n });\n }\n\n private animateTimeSlice(\n graphicAnimate: IGraphicAnimate,\n timeSlice: IAnimationTimeSlice,\n animationParameters: IAnimationParameters,\n parameters: any\n ) {\n const delay = timeSlice.delay as number;\n const delayAfter = timeSlice.delayAfter as number;\n const duration = timeSlice.duration as number;\n const effects = timeSlice.effects as IAnimationEffect[];\n\n // wait in loop animation before animation starts\n if (delay > 0) {\n graphicAnimate.wait(delay);\n }\n\n if (effects.length < 0) {\n graphicAnimate.wait(duration);\n } else {\n const customAnimates = effects\n .map((effect, index) => {\n const attributes =\n (effect.type\n ? typeAnimationAttributes(this.element, effect, animationParameters, parameters)\n : channelAnimationAttributes(this.element, effect, animationParameters, parameters)) ?? {};\n const customOption = attributes?.custom || effect?.custom;\n const customParametersOption = attributes?.customParameters || effect?.customParameters;\n\n if (\n attributes.from &&\n Object.keys(attributes.from).length &&\n this.unit &&\n this.animationOptions.timeline.controlOptions.immediatelyApply &&\n this.element.mark.markType !== 'component'\n ) {\n this.element.getGraphicItem().setAttributes(attributes.from);\n }\n\n const isCustomAnimate = isCustomAnimateCtor(customOption);\n const isCustomInterpolator = !isNil(customOption) && !isCustomAnimateCtor(customOption);\n\n if (isCustomInterpolator) {\n return new CustomInterpolator(attributes.from, attributes.to, duration, effect.easing, {\n interpolator: customOption as IAnimationChannelInterpolator,\n element: this.element,\n parameters: customParametersOption\n });\n } else if (isCustomAnimate) {\n return new (customOption as IAnimationCustomConstructor)(\n attributes.from,\n attributes.to,\n duration,\n effect.easing,\n customParametersOption\n );\n } else if (attributes.to) {\n return new AttributeAnimate(attributes.from, attributes.to, duration, effect.easing);\n }\n })\n .filter(animate => !isNil(animate));\n\n if (customAnimates.length === 1) {\n graphicAnimate.play(customAnimates[0]);\n } else {\n graphicAnimate.play(new AnimateGroup(duration, customAnimates));\n }\n }\n\n if (delayAfter > 0) {\n graphicAnimate.wait(delayAfter);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/graph/animation/animator.ts"],"names":[],"mappings":"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","file":"animator.js","sourcesContent":["import { isNil, isValidNumber } from '@visactor/vutils';\nimport type { IAnimate as IGraphicAnimate } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { ACustomAnimate, Animate, AnimateGroup, AnimateMode } from '@visactor/vrender-core';\nimport type {\n IAnimationChannelInterpolator,\n IAnimationCustomConstructor,\n IAnimationTimeline,\n IAnimator,\n IAnimatorOptions,\n IAnimationUnit,\n IAnimationParameters,\n IAnimationTimeSlice,\n IElement,\n IAnimationEffect\n} from '../../types';\nimport { AttributeAnimate, channelAnimationAttributes, CustomInterpolator, typeAnimationAttributes } from './attribute';\n\nAnimate.mode |= AnimateMode.SET_ATTR_IMMEDIATELY;\n\nlet GlobalAnimatorId = 0;\n\nconst isCustomAnimateCtor = (custom?: IAnimationChannelInterpolator | IAnimationCustomConstructor) => {\n return !isNil(custom) && custom.prototype instanceof ACustomAnimate;\n};\n\nexport class Animator implements IAnimator {\n id: number = GlobalAnimatorId++;\n element: IElement;\n animationOptions: IAnimatorOptions;\n isAnimating: boolean = false;\n\n private unit: IAnimationUnit;\n private runnings: IGraphicAnimate[] = [];\n private callbackFunction: (...args: any[]) => any;\n\n constructor(\n element: IElement,\n unit: IAnimationUnit,\n animationOptions: {\n state: string;\n timeline: IAnimationTimeline;\n id: string;\n }\n ) {\n this.element = element;\n this.animationOptions = animationOptions;\n this.unit = unit;\n }\n\n callback(callbackFunction: (...args: any[]) => void): this {\n this.callbackFunction = callbackFunction;\n return this;\n }\n\n animate(animationParameters: IAnimationParameters, parameters: any): this {\n this.isAnimating = true;\n\n this.animateElement(animationParameters, parameters);\n\n // if no valid running, end animating immediately\n if (this.runnings.length === 0) {\n this.animationEnd();\n }\n return this;\n }\n\n stop(stopState: 'start' | 'end' = 'end', invokeCallback: boolean = true): this {\n // FIXME: wait for VRender to fix 'end' parameter\n this.runnings.forEach(running => running.stop(stopState));\n this.animationEnd(invokeCallback);\n return this;\n }\n\n pause(): this {\n this.runnings.forEach(running => running.pause());\n return this;\n }\n\n resume(): this {\n this.runnings.forEach(running => running.resume());\n return this;\n }\n\n startAt(startTime: number): this {\n this.runnings.forEach(running => {\n const initialDelay = this.unit.initialDelay;\n running.startAt(initialDelay + startTime);\n });\n return this;\n }\n\n getTotalAnimationTime() {\n const timeLineDuration = this.unit.initialDelay + this.unit.loopDuration * this.unit.loopCount;\n return this.unit.totalTime ?? timeLineDuration;\n }\n\n getEndAttributes() {\n return this.runnings.reduce((attributes, running) => {\n return Object.assign(attributes, running.getEndProps());\n }, {} as Record<string, any>);\n }\n\n private animationEnd(invokeCallback: boolean = true) {\n this.isAnimating = false;\n this.runnings = null;\n if (invokeCallback) {\n this.callbackFunction?.call(null);\n }\n }\n\n private animateElement(animationParameters: IAnimationParameters, parameters: any) {\n const graphicItem = this.element.getGraphicItem();\n\n if (!graphicItem) {\n return;\n }\n\n const graphicAnimate: IGraphicAnimate = graphicItem.animate();\n this.runnings.push(graphicAnimate);\n // initialDelay is only used at first loop\n graphicAnimate.startAt(this.unit.initialDelay);\n // execute loop animation\n graphicAnimate.wait(this.unit.loopDelay);\n this.unit.timeSlices.forEach(timeSlice => {\n this.animateTimeSlice(graphicAnimate, timeSlice, animationParameters, parameters);\n });\n graphicAnimate.wait(this.unit.loopDelayAfter);\n\n graphicAnimate.loop(this.unit.loopCount - 1);\n\n if (isValidNumber(this.unit.totalTime)) {\n // FIXME: use VRender api instead after VRender refactor is finished\n setTimeout(() => {\n if (graphicAnimate) {\n graphicAnimate.stop('end');\n }\n }, this.unit.totalTime);\n }\n\n graphicAnimate.onEnd(() => {\n this.runnings = this.runnings.filter(running => running !== graphicAnimate);\n if (this.runnings.length === 0) {\n this.animationEnd();\n }\n });\n }\n\n private animateTimeSlice(\n graphicAnimate: IGraphicAnimate,\n timeSlice: IAnimationTimeSlice,\n animationParameters: IAnimationParameters,\n parameters: any\n ) {\n const delay = timeSlice.delay as number;\n const delayAfter = timeSlice.delayAfter as number;\n const duration = timeSlice.duration as number;\n const effects = timeSlice.effects as IAnimationEffect[];\n\n // wait in loop animation before animation starts\n if (delay > 0) {\n graphicAnimate.wait(delay);\n }\n\n if (effects.length < 0) {\n graphicAnimate.wait(duration);\n } else {\n const customAnimates = effects\n .map((effect, index) => {\n const attributes =\n (effect.type\n ? typeAnimationAttributes(this.element, effect, animationParameters, parameters)\n : channelAnimationAttributes(this.element, effect, animationParameters, parameters)) ?? {};\n const customOption = attributes?.custom || effect?.custom;\n const customParametersOption = attributes?.customParameters || effect?.customParameters;\n\n if (\n attributes.from &&\n Object.keys(attributes.from).length &&\n this.unit &&\n this.animationOptions.timeline.controlOptions.immediatelyApply &&\n this.element.mark.markType !== 'component'\n ) {\n this.element.getGraphicItem().setAttributes(attributes.from);\n }\n\n const isCustomAnimate = isCustomAnimateCtor(customOption);\n const isCustomInterpolator = !isNil(customOption) && !isCustomAnimateCtor(customOption);\n\n if (isCustomInterpolator) {\n return new CustomInterpolator(attributes.from, attributes.to, duration, effect.easing, {\n interpolator: customOption as IAnimationChannelInterpolator,\n element: this.element,\n parameters: customParametersOption\n });\n } else if (isCustomAnimate) {\n return new (customOption as IAnimationCustomConstructor)(\n attributes.from,\n attributes.to,\n duration,\n effect.easing,\n customParametersOption\n );\n } else if (attributes.to) {\n return new AttributeAnimate(attributes.from, attributes.to, duration, effect.easing);\n }\n })\n .filter(animate => !isNil(animate));\n\n if (customAnimates.length === 1) {\n graphicAnimate.play(customAnimates[0]);\n } else {\n graphicAnimate.play(new AnimateGroup(duration, customAnimates));\n }\n }\n\n if (delayAfter > 0) {\n graphicAnimate.wait(delayAfter);\n }\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { EasingType, IGraphic } from '@visactor/vrender
|
|
2
|
-
import { ACustomAnimate } from '@visactor/vrender
|
|
1
|
+
import type { EasingType, IGraphic } from '@visactor/vrender-core';
|
|
2
|
+
import { ACustomAnimate } from '@visactor/vrender-core';
|
|
3
3
|
import type { IAnimationChannelInterpolator, IAnimationEffect, IAnimationParameters, IElement, IParsedAnimationAttrs } from '../../types';
|
|
4
4
|
export declare function typeAnimationAttributes(element: IElement, effect: IAnimationEffect, animationParameters: IAnimationParameters, parameters: any): IParsedAnimationAttrs;
|
|
5
5
|
export declare function channelAnimationAttributes(element: IElement, effect: IAnimationEffect, animationParameters: IAnimationParameters, parameters: any): IParsedAnimationAttrs;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ACustomAnimate, AttributeUpdateType, NOWORK_ANIMATE_ATTR } from "@visactor/vrender
|
|
1
|
+
import { ACustomAnimate, AttributeUpdateType, NOWORK_ANIMATE_ATTR } from "@visactor/vrender-core";
|
|
2
2
|
|
|
3
3
|
import { isArray, isFunction, isNil, isObject, isValid } from "@visactor/vutils";
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graph/animation/attribute.ts"],"names":[],"mappings":"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","file":"attribute.js","sourcesContent":["import type { EasingType, IGraphic } from '@visactor/vrender/es/core';\n// eslint-disable-next-line no-duplicate-imports\nimport { ACustomAnimate, AttributeUpdateType, NOWORK_ANIMATE_ATTR } from '@visactor/vrender/es/core';\nimport { isArray, isFunction, isNil, isObject, isValid } from '@visactor/vutils';\nimport type {\n IAnimationChannelInterpolator,\n IAnimationEffect,\n IAnimationParameters,\n IElement,\n IGlyphElement,\n IParsedAnimationAttrs\n} from '../../types';\nimport { isValidPointsChannel } from '../attributes/helpers';\nimport { Factory } from '../../core/factory';\n\nconst transformAnimationAttributes = (attributes: IParsedAnimationAttrs, element: IElement): IParsedAnimationAttrs => {\n if (!attributes) {\n return null;\n }\n\n if (attributes?.from) {\n const from = attributes.from;\n const fromKeys = Object.keys(from);\n fromKeys.forEach(channel => {\n if (isNil(from[channel])) {\n delete from[channel];\n }\n });\n const computePoints = isValidPointsChannel(fromKeys, element.mark.markType) && !isValid(from.segments);\n if (computePoints) {\n const items = element.items.map(item => Object.assign({}, item, { nextAttrs: from }));\n attributes.from = element.transformElementItems(items, element.mark.markType, computePoints);\n }\n }\n if (attributes?.to) {\n const to = attributes.to;\n const toKeys = Object.keys(to);\n toKeys.forEach(channel => {\n if (isNil(to[channel])) {\n delete to[channel];\n }\n });\n const computePoints = isValidPointsChannel(toKeys, element.mark.markType) && !isValid(to.segments);\n if (computePoints) {\n const items = element.items.map(item => Object.assign({}, item, { nextAttrs: to }));\n attributes.to = element.transformElementItems(items, element.mark.markType, computePoints);\n }\n }\n\n return attributes;\n};\n\nexport function typeAnimationAttributes(\n element: IElement,\n effect: IAnimationEffect,\n animationParameters: IAnimationParameters,\n parameters: any\n): IParsedAnimationAttrs {\n // const parameters =\n const options = isFunction(effect.options)\n ? effect.options.call(null, element.getDatum(), element, parameters)\n : effect.options;\n if (!effect.type || !Factory.getAnimationType(effect.type)) {\n return null;\n }\n const attributes = Factory.getAnimationType(effect.type)(element as IGlyphElement, options, animationParameters);\n return transformAnimationAttributes(attributes, element);\n}\n\nconst parseChannelValue = (\n element: IElement,\n channel: string,\n channelValue: any,\n animationParameters: IAnimationParameters,\n parameters: any\n) => {\n return isFunction(channelValue) ? channelValue(element.getDatum(), element, parameters) : channelValue;\n};\n\nexport function channelAnimationAttributes(\n element: IElement,\n effect: IAnimationEffect,\n animationParameters: IAnimationParameters,\n parameters: any\n): IParsedAnimationAttrs {\n const channel = effect.channel;\n let attributes: IParsedAnimationAttrs = null;\n\n if (isArray(channel)) {\n attributes = channel.reduce(\n (res, key) => {\n res.from[key] = element.getGraphicAttribute(key, true);\n res.to[key] = element.getGraphicAttribute(key, false);\n return res;\n },\n { from: {}, to: {} }\n );\n } else if (isObject(channel)) {\n attributes = Object.keys(channel).reduce(\n (res, key) => {\n const hasFrom = !isNil(channel[key]?.from);\n const hasTo = !isNil(channel[key]?.to);\n\n if (hasFrom || hasTo) {\n res.from[key] = hasFrom\n ? parseChannelValue(element, key, channel[key].from, animationParameters, parameters)\n : undefined;\n res.to[key] = hasTo\n ? parseChannelValue(element, key, channel[key].to, animationParameters, parameters)\n : element.getGraphicAttribute(key, false);\n }\n\n return res;\n },\n { from: {}, to: {} }\n );\n }\n\n return transformAnimationAttributes(attributes, element);\n}\n\nexport class CustomInterpolator extends ACustomAnimate<any> {\n private _element: IElement;\n private _interpolator?: IAnimationChannelInterpolator;\n\n constructor(\n from: any,\n to: any,\n duration: number,\n easing: EasingType,\n params: { interpolator: IAnimationChannelInterpolator; element: IElement; parameters?: any }\n ) {\n super(from, to, duration, easing, params);\n this._interpolator = params?.interpolator;\n this._element = params?.element;\n }\n\n onBind() {\n this.from = this.from ?? {};\n this.to = this.to ?? {};\n }\n\n getEndProps(): void | Record<string, any> {\n return this.to;\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n if (!this._interpolator || !this._element) {\n return;\n }\n this._interpolator.call(\n this,\n ratio,\n this.from,\n this.to,\n out,\n this._element.getDatum(),\n this._element,\n this.params.parameters\n );\n }\n}\n\nexport class AttributeAnimate extends ACustomAnimate<any> {\n declare target: IGraphic;\n\n private _fromAttribute: any;\n private _toAttribute: any;\n\n getEndProps(): Record<string, any> {\n return this.to;\n }\n\n onBind() {\n this.from = this.from ?? {};\n this.to = this.to ?? {};\n }\n\n onStart(): void {\n const excludedChannelMap = (this.target.constructor as any).NOWORK_ANIMATE_ATTR ?? NOWORK_ANIMATE_ATTR;\n const excludedChannels = Object.keys(excludedChannelMap).filter(channel => excludedChannelMap[channel] !== 0);\n this.subAnimate.animate.preventAttrs(excludedChannels);\n\n const from = Object.assign({}, this.from);\n const to = Object.assign({}, this.to);\n Object.keys(to).forEach(k => {\n if (excludedChannels.includes(k)) {\n from[k] = to[k];\n this.from[k] = to[k];\n } else if (isNil(from[k])) {\n from[k] = this.target.getComputedAttribute(k);\n }\n // if (this.to[k] === from[k]) {\n // delete from[k];\n // }\n });\n\n this.target.setAttributes(from, false, {\n type: AttributeUpdateType.ANIMATE_UPDATE,\n animationState: { ratio: 0, end: false }\n });\n\n this._fromAttribute = from;\n this._toAttribute = to;\n }\n\n onEnd(): void {\n this.target.setAttributes(this._toAttribute, false, {\n type: AttributeUpdateType.ANIMATE_END\n });\n }\n\n update(end: boolean, ratio: number, out: Record<string, any>): void {\n if (this.updateCount === 0) {\n this.onFirstRun();\n }\n this.updateCount += 1;\n\n // Hack: waiting for canopus to remove invalid key when updating\n const lastProps = this.step.getLastProps();\n Object.keys(lastProps).forEach(key => {\n if (this.subAnimate.animate.validAttr(key)) {\n out[key] = lastProps[key];\n }\n });\n this.onUpdate(end, ratio, out);\n if (end) {\n this.onEnd();\n }\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n this.target.stepInterpolate(\n this.subAnimate,\n this.subAnimate.animate,\n out,\n this.step,\n ratio,\n end,\n this._toAttribute,\n this._fromAttribute\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/graph/animation/attribute.ts"],"names":[],"mappings":"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","file":"attribute.js","sourcesContent":["import type { EasingType, IGraphic } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { ACustomAnimate, AttributeUpdateType, NOWORK_ANIMATE_ATTR } from '@visactor/vrender-core';\nimport { isArray, isFunction, isNil, isObject, isValid } from '@visactor/vutils';\nimport type {\n IAnimationChannelInterpolator,\n IAnimationEffect,\n IAnimationParameters,\n IElement,\n IGlyphElement,\n IParsedAnimationAttrs\n} from '../../types';\nimport { isValidPointsChannel } from '../attributes/helpers';\nimport { Factory } from '../../core/factory';\n\nconst transformAnimationAttributes = (attributes: IParsedAnimationAttrs, element: IElement): IParsedAnimationAttrs => {\n if (!attributes) {\n return null;\n }\n\n if (attributes?.from) {\n const from = attributes.from;\n const fromKeys = Object.keys(from);\n fromKeys.forEach(channel => {\n if (isNil(from[channel])) {\n delete from[channel];\n }\n });\n const computePoints = isValidPointsChannel(fromKeys, element.mark.markType) && !isValid(from.segments);\n if (computePoints) {\n const items = element.items.map(item => Object.assign({}, item, { nextAttrs: from }));\n attributes.from = element.transformElementItems(items, element.mark.markType, computePoints);\n }\n }\n if (attributes?.to) {\n const to = attributes.to;\n const toKeys = Object.keys(to);\n toKeys.forEach(channel => {\n if (isNil(to[channel])) {\n delete to[channel];\n }\n });\n const computePoints = isValidPointsChannel(toKeys, element.mark.markType) && !isValid(to.segments);\n if (computePoints) {\n const items = element.items.map(item => Object.assign({}, item, { nextAttrs: to }));\n attributes.to = element.transformElementItems(items, element.mark.markType, computePoints);\n }\n }\n\n return attributes;\n};\n\nexport function typeAnimationAttributes(\n element: IElement,\n effect: IAnimationEffect,\n animationParameters: IAnimationParameters,\n parameters: any\n): IParsedAnimationAttrs {\n // const parameters =\n const options = isFunction(effect.options)\n ? effect.options.call(null, element.getDatum(), element, parameters)\n : effect.options;\n if (!effect.type || !Factory.getAnimationType(effect.type)) {\n return null;\n }\n const attributes = Factory.getAnimationType(effect.type)(element as IGlyphElement, options, animationParameters);\n return transformAnimationAttributes(attributes, element);\n}\n\nconst parseChannelValue = (\n element: IElement,\n channel: string,\n channelValue: any,\n animationParameters: IAnimationParameters,\n parameters: any\n) => {\n return isFunction(channelValue) ? channelValue(element.getDatum(), element, parameters) : channelValue;\n};\n\nexport function channelAnimationAttributes(\n element: IElement,\n effect: IAnimationEffect,\n animationParameters: IAnimationParameters,\n parameters: any\n): IParsedAnimationAttrs {\n const channel = effect.channel;\n let attributes: IParsedAnimationAttrs = null;\n\n if (isArray(channel)) {\n attributes = channel.reduce(\n (res, key) => {\n res.from[key] = element.getGraphicAttribute(key, true);\n res.to[key] = element.getGraphicAttribute(key, false);\n return res;\n },\n { from: {}, to: {} }\n );\n } else if (isObject(channel)) {\n attributes = Object.keys(channel).reduce(\n (res, key) => {\n const hasFrom = !isNil(channel[key]?.from);\n const hasTo = !isNil(channel[key]?.to);\n\n if (hasFrom || hasTo) {\n res.from[key] = hasFrom\n ? parseChannelValue(element, key, channel[key].from, animationParameters, parameters)\n : undefined;\n res.to[key] = hasTo\n ? parseChannelValue(element, key, channel[key].to, animationParameters, parameters)\n : element.getGraphicAttribute(key, false);\n }\n\n return res;\n },\n { from: {}, to: {} }\n );\n }\n\n return transformAnimationAttributes(attributes, element);\n}\n\nexport class CustomInterpolator extends ACustomAnimate<any> {\n private _element: IElement;\n private _interpolator?: IAnimationChannelInterpolator;\n\n constructor(\n from: any,\n to: any,\n duration: number,\n easing: EasingType,\n params: { interpolator: IAnimationChannelInterpolator; element: IElement; parameters?: any }\n ) {\n super(from, to, duration, easing, params);\n this._interpolator = params?.interpolator;\n this._element = params?.element;\n }\n\n onBind() {\n this.from = this.from ?? {};\n this.to = this.to ?? {};\n }\n\n getEndProps(): void | Record<string, any> {\n return this.to;\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n if (!this._interpolator || !this._element) {\n return;\n }\n this._interpolator.call(\n this,\n ratio,\n this.from,\n this.to,\n out,\n this._element.getDatum(),\n this._element,\n this.params.parameters\n );\n }\n}\n\nexport class AttributeAnimate extends ACustomAnimate<any> {\n declare target: IGraphic;\n\n private _fromAttribute: any;\n private _toAttribute: any;\n\n getEndProps(): Record<string, any> {\n return this.to;\n }\n\n onBind() {\n this.from = this.from ?? {};\n this.to = this.to ?? {};\n }\n\n onStart(): void {\n const excludedChannelMap = (this.target.constructor as any).NOWORK_ANIMATE_ATTR ?? NOWORK_ANIMATE_ATTR;\n const excludedChannels = Object.keys(excludedChannelMap).filter(channel => excludedChannelMap[channel] !== 0);\n this.subAnimate.animate.preventAttrs(excludedChannels);\n\n const from = Object.assign({}, this.from);\n const to = Object.assign({}, this.to);\n Object.keys(to).forEach(k => {\n if (excludedChannels.includes(k)) {\n from[k] = to[k];\n this.from[k] = to[k];\n } else if (isNil(from[k])) {\n from[k] = this.target.getComputedAttribute(k);\n }\n // if (this.to[k] === from[k]) {\n // delete from[k];\n // }\n });\n\n this.target.setAttributes(from, false, {\n type: AttributeUpdateType.ANIMATE_UPDATE,\n animationState: { ratio: 0, end: false }\n });\n\n this._fromAttribute = from;\n this._toAttribute = to;\n }\n\n onEnd(): void {\n this.target.setAttributes(this._toAttribute, false, {\n type: AttributeUpdateType.ANIMATE_END\n });\n }\n\n update(end: boolean, ratio: number, out: Record<string, any>): void {\n if (this.updateCount === 0) {\n this.onFirstRun();\n }\n this.updateCount += 1;\n\n // Hack: waiting for canopus to remove invalid key when updating\n const lastProps = this.step.getLastProps();\n Object.keys(lastProps).forEach(key => {\n if (this.subAnimate.animate.validAttr(key)) {\n out[key] = lastProps[key];\n }\n });\n this.onUpdate(end, ratio, out);\n if (end) {\n this.onEnd();\n }\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n this.target.stepInterpolate(\n this.subAnimate,\n this.subAnimate.animate,\n out,\n this.step,\n ratio,\n end,\n this._toAttribute,\n this._fromAttribute\n );\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graph/animation/morph.ts"],"names":[],"mappings":"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","file":"morph.js","sourcesContent":["import { morphPath, multiToOneMorph, oneToMultiMorph } from '@visactor/vrender/es/core';\nimport { isNil, isNumber, isValidNumber } from '@visactor/vutils';\nimport type { IElement, IGrammarBase, IMark, IRunningConfig, MarkSpec } from '../../types';\nimport type { DiffResult } from '../../types/base';\nimport type { IMorph, MorphData, MorphElements } from '../../types/morph';\nimport { invokeFunctionType, parseField } from '../../parse/util';\nimport { diffMultiple, diffSingle, groupData } from '../mark/differ';\nimport { GrammarMarkType } from '../enums';\n\nconst EmptyKey = Symbol.for('key');\n\nexport class Morph implements IMorph {\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 _appendMorphKeyToElements(mark: IMark) {\n const config = mark.getMorphConfig();\n\n if (!isNil(config.morphElementKey)) {\n const getter = parseField(config.morphElementKey);\n\n if (mark.elements) {\n mark.elements.forEach(el => {\n (el as any).morphKey = getter(el.getDatum());\n });\n }\n }\n }\n\n morph(prevMarks: IMark[], nextMarks: IMark[], runningConfig: IRunningConfig) {\n const prevElements = prevMarks.reduce((elements, mark) => {\n this._appendMorphKeyToElements(mark);\n\n return elements.concat(mark.elements);\n }, [] as IElement[]);\n const nextElements = nextMarks.reduce((elements, mark) => {\n this._appendMorphKeyToElements(mark);\n\n return elements.concat(mark.elements);\n }, [] as IElement[]);\n\n const key = (element: IElement) => (element as any).morphKey ?? element.key;\n const diffResult = diffMultiple(prevElements, nextElements, key);\n\n // disable normal animations of previous marks\n prevMarks.forEach(mark => mark.animate?.disable?.());\n nextMarks.forEach(mark => mark.animate?.disable?.());\n\n const parameters = prevMarks.concat(nextMarks).reduce((parameters, mark) => {\n Object.assign(parameters, mark.parameters());\n return parameters;\n }, {});\n\n let morphCount = 0;\n const onMorphEnd = () => {\n morphCount -= 1;\n if (morphCount === 0) {\n nextMarks.forEach(mark => {\n mark.animate?.enable?.();\n });\n }\n };\n // no animation for exit result\n diffResult.enter.forEach(diff => {\n diff.next.forEach(element => {\n this.doMorph([], [element], runningConfig, onMorphEnd, parameters);\n });\n morphCount += 1;\n });\n diffResult.update.forEach(diff => {\n const divideCount = Math.min(diff.prev.length, diff.next.length);\n const prevDivide = this.divideElements(diff.prev, divideCount);\n const nextDivide = this.divideElements(diff.next, divideCount);\n for (let i = 0; i < divideCount; i++) {\n this.doMorph(prevDivide[i], nextDivide[i], runningConfig, onMorphEnd, parameters);\n morphCount += 1;\n }\n });\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 private doMorph(\n prev: IElement[],\n next: IElement[],\n runningConfig: IRunningConfig,\n onEnd: () => void,\n parameters: any\n ) {\n const morphData: MorphData = {\n prev: prev.map(element => element.getDatum()),\n next: next.map(element => element.getDatum())\n };\n const morphElements: MorphElements = {\n prev: prev.slice(),\n next: next.slice()\n };\n const easing = runningConfig.animation.easing;\n const delay = invokeFunctionType(runningConfig.animation.delay, parameters, morphData, morphElements);\n const duration = invokeFunctionType(runningConfig.animation.duration, parameters, morphData, morphElements);\n const oneByOne = invokeFunctionType(runningConfig.animation.oneByOne, parameters, morphData, morphElements);\n const splitPath = invokeFunctionType(runningConfig.animation.splitPath, parameters, morphData, morphElements);\n const individualDelay =\n isValidNumber(oneByOne) && oneByOne > 0\n ? (index: number) => {\n if (isNumber(oneByOne)) {\n return index * oneByOne;\n } else if (oneByOne === true) {\n return index * duration;\n }\n return 0;\n }\n : undefined;\n\n // if no previous item, still execute morph animation\n if ((prev.length === 1 || prev.length === 0) && next.length === 1) {\n morphPath(prev[0]?.getGraphicItem?.(), next[0].getGraphicItem(), { delay, duration, easing, onEnd });\n } else if (prev.length === 1 && next.length > 1) {\n oneToMultiMorph(\n prev[0].getGraphicItem(),\n next.map(element => element.getGraphicItem()),\n { delay, duration, easing, onEnd, individualDelay, splitPath }\n );\n } else if (prev.length > 1 && next.length === 1) {\n multiToOneMorph(\n prev.map(element => element.getGraphicItem()),\n next[0].getGraphicItem(),\n { delay, duration, easing, onEnd, individualDelay, splitPath }\n );\n }\n }\n\n private divideElements(elements: IElement[], count: number) {\n const divideLength = Math.floor(elements.length / count);\n return new Array(count).fill(0).map((i, index) => {\n return elements.slice(divideLength * index, index === count - 1 ? elements.length : divideLength * (index + 1));\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/graph/animation/morph.ts"],"names":[],"mappings":"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","file":"morph.js","sourcesContent":["import { morphPath, multiToOneMorph, oneToMultiMorph } from '@visactor/vrender-core';\nimport { isNil, isNumber, isValidNumber } from '@visactor/vutils';\nimport type { IElement, IGrammarBase, IMark, IRunningConfig, MarkSpec } from '../../types';\nimport type { DiffResult } from '../../types/base';\nimport type { IMorph, MorphData, MorphElements } from '../../types/morph';\nimport { invokeFunctionType, parseField } from '../../parse/util';\nimport { diffMultiple, diffSingle, groupData } from '../mark/differ';\nimport { GrammarMarkType } from '../enums';\n\nconst EmptyKey = Symbol.for('key');\n\nexport class Morph implements IMorph {\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 _appendMorphKeyToElements(mark: IMark) {\n const config = mark.getMorphConfig();\n\n if (!isNil(config.morphElementKey)) {\n const getter = parseField(config.morphElementKey);\n\n if (mark.elements) {\n mark.elements.forEach(el => {\n (el as any).morphKey = getter(el.getDatum());\n });\n }\n }\n }\n\n morph(prevMarks: IMark[], nextMarks: IMark[], runningConfig: IRunningConfig) {\n const prevElements = prevMarks.reduce((elements, mark) => {\n this._appendMorphKeyToElements(mark);\n\n return elements.concat(mark.elements);\n }, [] as IElement[]);\n const nextElements = nextMarks.reduce((elements, mark) => {\n this._appendMorphKeyToElements(mark);\n\n return elements.concat(mark.elements);\n }, [] as IElement[]);\n\n const key = (element: IElement) => (element as any).morphKey ?? element.key;\n const diffResult = diffMultiple(prevElements, nextElements, key);\n\n // disable normal animations of previous marks\n prevMarks.forEach(mark => mark.animate?.disable?.());\n nextMarks.forEach(mark => mark.animate?.disable?.());\n\n const parameters = prevMarks.concat(nextMarks).reduce((parameters, mark) => {\n Object.assign(parameters, mark.parameters());\n return parameters;\n }, {});\n\n let morphCount = 0;\n const onMorphEnd = () => {\n morphCount -= 1;\n if (morphCount === 0) {\n nextMarks.forEach(mark => {\n mark.animate?.enable?.();\n });\n }\n };\n // no animation for exit result\n diffResult.enter.forEach(diff => {\n diff.next.forEach(element => {\n this.doMorph([], [element], runningConfig, onMorphEnd, parameters);\n });\n morphCount += 1;\n });\n diffResult.update.forEach(diff => {\n const divideCount = Math.min(diff.prev.length, diff.next.length);\n const prevDivide = this.divideElements(diff.prev, divideCount);\n const nextDivide = this.divideElements(diff.next, divideCount);\n for (let i = 0; i < divideCount; i++) {\n this.doMorph(prevDivide[i], nextDivide[i], runningConfig, onMorphEnd, parameters);\n morphCount += 1;\n }\n });\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 private doMorph(\n prev: IElement[],\n next: IElement[],\n runningConfig: IRunningConfig,\n onEnd: () => void,\n parameters: any\n ) {\n const morphData: MorphData = {\n prev: prev.map(element => element.getDatum()),\n next: next.map(element => element.getDatum())\n };\n const morphElements: MorphElements = {\n prev: prev.slice(),\n next: next.slice()\n };\n const easing = runningConfig.animation.easing;\n const delay = invokeFunctionType(runningConfig.animation.delay, parameters, morphData, morphElements);\n const duration = invokeFunctionType(runningConfig.animation.duration, parameters, morphData, morphElements);\n const oneByOne = invokeFunctionType(runningConfig.animation.oneByOne, parameters, morphData, morphElements);\n const splitPath = invokeFunctionType(runningConfig.animation.splitPath, parameters, morphData, morphElements);\n const individualDelay =\n isValidNumber(oneByOne) && oneByOne > 0\n ? (index: number) => {\n if (isNumber(oneByOne)) {\n return index * oneByOne;\n } else if (oneByOne === true) {\n return index * duration;\n }\n return 0;\n }\n : undefined;\n\n // if no previous item, still execute morph animation\n if ((prev.length === 1 || prev.length === 0) && next.length === 1) {\n morphPath(prev[0]?.getGraphicItem?.(), next[0].getGraphicItem(), { delay, duration, easing, onEnd });\n } else if (prev.length === 1 && next.length > 1) {\n oneToMultiMorph(\n prev[0].getGraphicItem(),\n next.map(element => element.getGraphicItem()),\n { delay, duration, easing, onEnd, individualDelay, splitPath }\n );\n } else if (prev.length > 1 && next.length === 1) {\n multiToOneMorph(\n prev.map(element => element.getGraphicItem()),\n next[0].getGraphicItem(),\n { delay, duration, easing, onEnd, individualDelay, splitPath }\n );\n }\n }\n\n private divideElements(elements: IElement[], count: number) {\n const divideLength = Math.floor(elements.length / count);\n return new Array(count).fill(0).map((i, index) => {\n return elements.slice(divideLength * index, index === count - 1 ? elements.length : divideLength * (index + 1));\n });\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graph/attributes/line.ts"],"names":[],"mappings":"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","file":"line.js","sourcesContent":["import type { IColor, IColorStop } from '@visactor/vrender
|
|
1
|
+
{"version":3,"sources":["../src/graph/attributes/line.ts"],"names":[],"mappings":"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","file":"line.js","sourcesContent":["import type { IColor, IColorStop } from '@visactor/vrender-core';\nimport { isNil, isString } from '@visactor/vutils';\nimport { transformAttributes } from './transform';\nimport { GrammarMarkType } from '../enums';\nimport type { IElement } from '../../types';\n\nconst isStopsEqual = (prev: IColorStop[], next: IColorStop[]) => {\n if (prev === next) {\n return true;\n }\n const prevLength = (prev && prev.length) ?? 0;\n const nextLength = (next && next.length) ?? 0;\n\n if (prevLength !== nextLength || prevLength === 0) {\n return false;\n }\n\n return prev.every((prevEntry, prevIndex) => {\n return (\n (!prevEntry && !next[prevIndex]) ||\n (prevEntry &&\n next[prevIndex] &&\n prevEntry.color === next[prevIndex].color &&\n prevEntry.offset === next[prevIndex].offset)\n );\n });\n};\n\nconst isColorAttrEqual = (prev: IColor, next: IColor) => {\n if (prev === next) {\n return true;\n }\n\n if (typeof prev !== typeof next) {\n return false;\n }\n\n if (isString(prev)) {\n return false;\n }\n\n if (prev.gradient !== (next as any).gradient) {\n return false;\n }\n\n const prevKeys = Object.keys(prev);\n const nextKeys = Object.keys(next);\n\n if (prevKeys.length !== nextKeys.length) {\n return false;\n }\n\n return prevKeys.every(key => {\n if (key === 'stops') {\n return isStopsEqual(prev[key], next[key]);\n }\n\n return prev[key] === next[key];\n });\n};\n\nconst isLineDashEqual = (prev: number[], next: number[]) => {\n if (prev.length !== next.length) {\n return false;\n }\n\n if (prev.join('-') === next.join('-')) {\n return true;\n }\n\n return false;\n};\n\nconst isSegmentAttrEqual = (prev: any, next: any, key: string) => {\n if (isNil(prev) && isNil(next)) {\n return true;\n }\n\n if (isNil(prev)) {\n return false;\n }\n\n if (isNil(next)) {\n return false;\n }\n\n if (key === 'lineDash') {\n return isLineDashEqual(prev, next);\n }\n\n if (key === 'stroke' || key === 'fill') {\n return isColorAttrEqual(prev, next);\n }\n\n return prev === next;\n};\n\nconst fillAttrs = ['fill', 'fillOpacity', 'background', 'texture', 'texturePadding', 'textureSize', 'textureColor'];\nconst strokeAttrs = [\n 'stroke',\n 'strokeOpacity',\n 'lineDash',\n 'lineDashOffset',\n 'lineCap',\n 'lineJoin',\n 'lineWidth',\n 'miterLimit'\n];\nconst areaAttrs = fillAttrs.concat(strokeAttrs);\n\n/**\n * 生成用于渲染的点数组\n * @param {*} item\n * @returns {IPointLike[]}\n */\nexport function getLineSegmentConfigs(items: any[], points: any[], element?: IElement) {\n if (!items || items.length <= 1) {\n return null;\n }\n\n const checkAttributes = element?.mark?.markType === 'area' ? areaAttrs : strokeAttrs;\n\n const segments: any[] = [];\n let prevSegmentAttrs: any = null;\n\n items.forEach((item, index) => {\n if (\n !prevSegmentAttrs ||\n !checkAttributes.every(key => {\n return isSegmentAttrEqual(prevSegmentAttrs[key], item[key], key);\n })\n ) {\n if (segments.length) {\n segments[segments.length - 1].endIndex = index;\n }\n\n prevSegmentAttrs = item;\n segments.push({\n attrs: prevSegmentAttrs,\n startIndex: index\n });\n }\n });\n\n if (segments.length >= 2) {\n return segments.map(entry => {\n const res = transformAttributes(GrammarMarkType.line, parseCollectionMarkAttributes(entry.attrs), element) as any;\n\n res.points = points.slice(entry.startIndex, isNil(entry.endIndex) ? points.length : entry.endIndex);\n return res;\n });\n }\n\n return null;\n}\n\nexport function getLinePointsFromSegments(segments: any[]) {\n if (!segments) {\n return null;\n }\n return segments.reduce((points, segment) => {\n return points.concat(segment.points);\n }, []);\n}\n\nexport function parseCollectionMarkAttributes(itemNextAttrs: any) {\n const result = {};\n\n if (!itemNextAttrs) {\n return result;\n }\n\n Object.keys(itemNextAttrs).forEach(key => {\n if (\n key === 'x' ||\n key === 'y' ||\n key === 'x1' ||\n key === 'y1' ||\n key === 'defined' ||\n key === 'size' ||\n key === 'width' ||\n key === 'height' ||\n key === 'context'\n ) {\n return;\n }\n result[key] = itemNextAttrs[key];\n });\n\n return result;\n}\n"]}
|
|
@@ -7,11 +7,13 @@ import { getRulePoints } from "./helpers";
|
|
|
7
7
|
import { commonAttributes, transformCommonAttribute } from "./common";
|
|
8
8
|
|
|
9
9
|
function storeOriginAttributes(name, channels, graphicAttributes, nextAttrs, element, markName) {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
const prevStoredAttrs = element.getGraphicAttribute(name, !1, markName);
|
|
11
|
+
if (prevStoredAttrs) return channels.forEach((channel => {
|
|
12
|
+
channel in nextAttrs && (prevStoredAttrs[channel] = nextAttrs[channel]);
|
|
13
|
+
})), prevStoredAttrs;
|
|
14
|
+
const storedAttrs = {};
|
|
12
15
|
return channels.forEach((channel => {
|
|
13
|
-
|
|
14
|
-
storedAttrs[channel] = null !== (_a = nextAttrs[channel]) && void 0 !== _a ? _a : prevStoredAttrs[channel];
|
|
16
|
+
storedAttrs[channel] = nextAttrs[channel];
|
|
15
17
|
})), graphicAttributes[name] = storedAttrs, storedAttrs;
|
|
16
18
|
}
|
|
17
19
|
|