@visactor/vgrammar-core 0.14.0-alpha.3 → 0.14.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/component/axis.d.ts +2 -0
- package/cjs/component/axis.js +15 -1
- package/cjs/component/axis.js.map +1 -1
- package/cjs/component/grid.d.ts +2 -0
- package/cjs/component/grid.js +15 -1
- package/cjs/component/grid.js.map +1 -1
- package/cjs/component/index.d.ts +2 -2
- package/cjs/component/index.js +21 -1
- package/cjs/component/index.js.map +1 -1
- package/cjs/core/factory.d.ts +8 -1
- package/cjs/core/factory.js +8 -1
- package/cjs/core/factory.js.map +1 -1
- package/cjs/glyph/boxplot.js +5 -5
- package/cjs/glyph/boxplot.js.map +1 -1
- package/cjs/glyph/link-path.js +2 -2
- package/cjs/glyph/link-path.js.map +1 -1
- package/cjs/glyph/ripple.js +3 -2
- package/cjs/glyph/ripple.js.map +1 -1
- package/cjs/glyph/tree-path.js +2 -2
- package/cjs/glyph/tree-path.js.map +1 -1
- package/cjs/glyph/violin.js +4 -4
- package/cjs/glyph/violin.js.map +1 -1
- package/cjs/glyph/wave.js +3 -2
- package/cjs/glyph/wave.js.map +1 -1
- package/cjs/graph/animation/animation/update.js +2 -2
- package/cjs/graph/animation/animation/update.js.map +1 -1
- package/cjs/graph/animation/morph.d.ts +2 -12
- package/cjs/graph/animation/morph.js +76 -163
- package/cjs/graph/animation/morph.js.map +1 -1
- package/cjs/graph/attributes/line.js.map +1 -1
- package/cjs/graph/canvas-renderer.d.ts +1 -1
- package/cjs/graph/canvas-renderer.js +4 -4
- package/cjs/graph/canvas-renderer.js.map +1 -1
- package/cjs/graph/element.d.ts +1 -0
- package/cjs/graph/element.js +15 -9
- package/cjs/graph/element.js.map +1 -1
- package/cjs/graph/glyph-element.js +4 -3
- package/cjs/graph/glyph-element.js.map +1 -1
- package/cjs/graph/layout/layout.d.ts +1 -0
- package/cjs/graph/layout/layout.js +8 -2
- package/cjs/graph/layout/layout.js.map +1 -1
- package/cjs/graph/mark/graphic.js +14 -8
- package/cjs/graph/mark/graphic.js.map +1 -1
- package/cjs/graph/util/point.js +10 -26
- package/cjs/graph/util/point.js.map +1 -1
- package/cjs/graph/view-diff.d.ts +8 -0
- package/cjs/graph/view-diff.js +93 -0
- package/cjs/graph/view-diff.js.map +1 -0
- package/cjs/index.d.ts +8 -1
- package/cjs/index.js +66 -2
- package/cjs/index.js.map +1 -1
- package/cjs/interactions/brush-base.js +1 -2
- package/cjs/interactions/brush-filter.js +2 -1
- package/cjs/interactions/fish-eye.js +1 -2
- package/cjs/interactions/index.js +2 -1
- package/cjs/interactions/tooltip.js +1 -1
- package/cjs/parse/event.d.ts +0 -2
- package/cjs/parse/event.js +4 -10
- package/cjs/parse/event.js.map +1 -1
- package/cjs/parse/util.js.map +1 -1
- package/cjs/transforms/data/pie.js +2 -2
- package/cjs/transforms/data/pie.js.map +1 -1
- package/cjs/transforms/util/util.d.ts +0 -2
- package/cjs/transforms/util/util.js +3 -13
- package/cjs/transforms/util/util.js.map +1 -1
- package/cjs/types/element.d.ts +1 -1
- package/cjs/types/element.js.map +1 -1
- package/cjs/types/morph.d.ts +1 -2
- package/cjs/types/morph.js.map +1 -1
- package/cjs/types/renderer.d.ts +6 -1
- package/cjs/types/renderer.js.map +1 -1
- package/cjs/view/View.d.ts +3 -6
- package/cjs/view/View.js +52 -105
- package/cjs/view/View.js.map +1 -1
- package/cjs/view/animate.js +2 -1
- package/cjs/view/animate.js.map +1 -1
- package/cjs/view/constants.d.ts +2 -0
- package/cjs/view/constants.js +3 -2
- package/cjs/view/constants.js.map +1 -1
- package/cjs/view/events.d.ts +0 -1
- package/cjs/view/events.js +3 -17
- package/cjs/view/events.js.map +1 -1
- package/cjs/view/glyph.d.ts +4 -0
- package/cjs/view/glyph.js +12 -3
- package/cjs/view/glyph.js.map +1 -1
- package/cjs/view/group.js +3 -3
- package/cjs/view/group.js.map +1 -1
- package/cjs/view/mark-animate-mixin.d.ts +1 -0
- package/cjs/view/mark-animate-mixin.js +29 -0
- package/cjs/view/mark-animate-mixin.js.map +1 -0
- package/cjs/view/mark.d.ts +2 -0
- package/cjs/view/mark.js +30 -23
- package/cjs/view/mark.js.map +1 -1
- package/cjs/view/view-animate-mixin.d.ts +1 -0
- package/cjs/view/view-animate-mixin.js +26 -0
- package/cjs/view/view-animate-mixin.js.map +1 -0
- package/cjs/view/view-event-mixin.d.ts +1 -0
- package/cjs/view/view-event-mixin.js +92 -0
- package/cjs/view/view-event-mixin.js.map +1 -0
- package/cjs/view/view-morph-mixin.d.ts +1 -0
- package/cjs/view/view-morph-mixin.js +32 -0
- package/cjs/view/view-morph-mixin.js.map +1 -0
- package/es/component/axis.d.ts +2 -0
- package/es/component/axis.js +10 -0
- package/es/component/axis.js.map +1 -1
- package/es/component/grid.d.ts +2 -0
- package/es/component/grid.js +10 -0
- package/es/component/grid.js.map +1 -1
- package/es/component/index.d.ts +2 -2
- package/es/component/index.js +2 -2
- package/es/component/index.js.map +1 -1
- package/es/core/factory.d.ts +8 -1
- package/es/core/factory.js +8 -1
- package/es/core/factory.js.map +1 -1
- package/es/glyph/boxplot.js +4 -2
- package/es/glyph/boxplot.js.map +1 -1
- package/es/glyph/link-path.js +4 -2
- package/es/glyph/link-path.js.map +1 -1
- package/es/glyph/ripple.js +3 -1
- package/es/glyph/ripple.js.map +1 -1
- package/es/glyph/tree-path.js +4 -2
- package/es/glyph/tree-path.js.map +1 -1
- package/es/glyph/violin.js +4 -2
- package/es/glyph/violin.js.map +1 -1
- package/es/glyph/wave.js +3 -1
- package/es/glyph/wave.js.map +1 -1
- package/es/graph/animation/animation/update.js +1 -3
- package/es/graph/animation/animation/update.js.map +1 -1
- package/es/graph/animation/morph.d.ts +2 -12
- package/es/graph/animation/morph.js +72 -159
- package/es/graph/animation/morph.js.map +1 -1
- package/es/graph/attributes/line.js.map +1 -1
- package/es/graph/canvas-renderer.d.ts +1 -1
- package/es/graph/canvas-renderer.js +5 -5
- package/es/graph/canvas-renderer.js.map +1 -1
- package/es/graph/element.d.ts +1 -0
- package/es/graph/element.js +13 -9
- package/es/graph/element.js.map +1 -1
- package/es/graph/glyph-element.js +3 -5
- package/es/graph/glyph-element.js.map +1 -1
- package/es/graph/layout/layout.d.ts +1 -0
- package/es/graph/layout/layout.js +6 -0
- package/es/graph/layout/layout.js.map +1 -1
- package/es/graph/mark/graphic.js +13 -7
- package/es/graph/mark/graphic.js.map +1 -1
- package/es/graph/util/point.js +10 -26
- package/es/graph/util/point.js.map +1 -1
- package/es/graph/view-diff.d.ts +8 -0
- package/es/graph/view-diff.js +89 -0
- package/es/graph/view-diff.js.map +1 -0
- package/es/index.d.ts +8 -1
- package/es/index.js +29 -1
- package/es/index.js.map +1 -1
- package/es/interactions/dimension-tooltip.js +1 -2
- package/es/interactions/element-highlight-by-group.js +2 -1
- package/es/interactions/element-highlight.js +1 -1
- package/es/interactions/element-select.js +1 -1
- package/es/interactions/filter.js +1 -1
- package/es/interactions/fish-eye.js +1 -1
- package/es/parse/event.d.ts +0 -2
- package/es/parse/event.js +3 -7
- package/es/parse/event.js.map +1 -1
- package/es/parse/option.js +1 -2
- package/es/parse/scale.js +2 -1
- package/es/parse/util.js.map +1 -1
- package/es/semantic-marks/cell.js +1 -1
- package/es/semantic-marks/interval.js +1 -1
- package/es/semantic-marks/text.js +1 -1
- package/es/transforms/data/pie.js +1 -1
- package/es/transforms/data/pie.js.map +1 -1
- package/es/transforms/util/util.d.ts +0 -2
- package/es/transforms/util/util.js +0 -10
- package/es/transforms/util/util.js.map +1 -1
- package/es/types/element.d.ts +1 -1
- package/es/types/element.js.map +1 -1
- package/es/types/morph.d.ts +1 -2
- package/es/types/morph.js.map +1 -1
- package/es/types/renderer.d.ts +6 -1
- package/es/types/renderer.js.map +1 -1
- package/es/view/View.d.ts +3 -6
- package/es/view/View.js +53 -114
- package/es/view/View.js.map +1 -1
- package/es/view/animate.js +2 -1
- package/es/view/animate.js.map +1 -1
- package/es/view/constants.d.ts +2 -0
- package/es/view/constants.js +4 -0
- package/es/view/constants.js.map +1 -1
- package/es/view/events.d.ts +0 -1
- package/es/view/events.js +1 -15
- package/es/view/events.js.map +1 -1
- package/es/view/glyph.d.ts +4 -0
- package/es/view/glyph.js +11 -0
- package/es/view/glyph.js.map +1 -1
- package/es/view/group.js +2 -4
- package/es/view/group.js.map +1 -1
- package/es/view/mark-animate-mixin.d.ts +1 -0
- package/es/view/mark-animate-mixin.js +25 -0
- package/es/view/mark-animate-mixin.js.map +1 -0
- package/es/view/mark.d.ts +2 -0
- package/es/view/mark.js +30 -25
- package/es/view/mark.js.map +1 -1
- package/es/view/view-animate-mixin.d.ts +1 -0
- package/es/view/view-animate-mixin.js +16 -0
- package/es/view/view-animate-mixin.js.map +1 -0
- package/es/view/view-event-mixin.d.ts +1 -0
- package/es/view/view-event-mixin.js +90 -0
- package/es/view/view-event-mixin.js.map +1 -0
- package/es/view/view-morph-mixin.d.ts +1 -0
- package/es/view/view-morph-mixin.js +22 -0
- package/es/view/view-morph-mixin.js.map +1 -0
- package/package.json +11 -11
- package/cjs/graph/util/element.d.ts +0 -2
- package/cjs/graph/util/element.js +0 -10
- package/cjs/graph/util/element.js.map +0 -1
- package/es/graph/util/element.d.ts +0 -2
- package/es/graph/util/element.js +0 -8
- package/es/graph/util/element.js.map +0 -1
package/es/view/group.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/view/group.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"sources":["../src/view/group.ts"],"names":[],"mappings":"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","file":"group.js","sourcesContent":["import type { INode } from '@visactor/vrender-core';\nimport { transformsByType } from '../graph/attributes';\nimport { DefaultKey, DefaultMarkData } from '../graph/constants';\nimport { BuiltInEncodeNames, GrammarMarkType, HOOK_EVENT } from '../graph/enums';\nimport { createGraphicItem } from '../graph/util/graphic';\nimport type { IElement, IGlyphMark, IGroupMark, IMark, IView } from '../types';\nimport { Mark } from './mark';\nimport { isFunction, isNil } from '@visactor/vutils';\nimport { invokeEncoderToItems } from '../graph/mark/encode';\n\nexport class GroupMark extends Mark implements IGroupMark {\n children: (IMark | IGroupMark | IGlyphMark)[];\n\n layoutChildren?: (IMark | IGroupMark | IGlyphMark)[];\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, GrammarMarkType.group, group);\n this.children = [];\n }\n\n parseRenderContext() {\n return { large: false };\n }\n\n appendChild(mark: IMark) {\n this.children.push(mark);\n return this;\n }\n removeChild(mark: IMark) {\n this.children = this.children.filter(child => child !== mark);\n return this;\n }\n\n includesChild(mark: IMark, descendant: boolean = true) {\n if (this.children.includes(mark)) {\n return true;\n }\n if (!descendant) {\n return false;\n }\n return this.children.some(child => {\n if (child.markType === GrammarMarkType.group) {\n return (child as IGroupMark).includesChild(mark, true);\n }\n return false;\n });\n }\n\n updateLayoutChildren() {\n if (!this.children.length) {\n return this;\n }\n if (!this.layoutChildren) {\n this.layoutChildren = [];\n }\n\n this.layoutChildren = this.children.filter(child => child.needLayout());\n\n return this;\n }\n\n getAttributeTransforms() {\n return transformsByType.rect;\n }\n\n protected evaluateJoin(data: any[]) {\n if (!this.elements.length) {\n const el = this.createElement();\n\n el.updateData(DefaultKey, DefaultMarkData, () => '');\n this.elements = [el];\n this.elementMap.set(DefaultKey, el);\n }\n }\n\n protected getChannelsFromConfig(element?: IElement) {\n const spec = this.spec;\n\n const initAttrs: any = {};\n\n if (!isNil(spec.clip)) {\n initAttrs.clip = spec.clip;\n }\n\n if (!isNil(spec.zIndex)) {\n initAttrs.zIndex = spec.zIndex;\n }\n\n if (!isNil(spec.clipPath)) {\n const paths = isFunction(spec.clipPath) ? spec.clipPath([element]) : spec.clipPath;\n\n if (paths && paths.length) {\n initAttrs.path = paths;\n } else {\n initAttrs.path = null;\n initAttrs.clip = false;\n }\n }\n\n if (!isNil(spec.interactive)) {\n initAttrs.pickable = spec.interactive;\n }\n\n return initAttrs;\n }\n\n protected evaluateGroupEncode(elements: IElement[], groupEncode: any, parameters: any) {\n const el = this.elements[0];\n const nextAttrs = {};\n const items = [Object.assign({}, el.items?.[0], { nextAttrs })];\n invokeEncoderToItems(el, items, groupEncode, parameters);\n\n this._groupEncodeResult = nextAttrs;\n return nextAttrs;\n }\n\n protected evaluateEncode(elements: IElement[], encoders: any, parameters: any, noGroupEncode?: boolean) {\n const initAttrs = this.getChannelsFromConfig();\n\n if (encoders) {\n this.emit(HOOK_EVENT.BEFORE_ELEMENT_ENCODE, { encoders, parameters }, this);\n\n const groupEncodeAttrs = noGroupEncode\n ? null\n : this.evaluateGroupEncode(elements, encoders[BuiltInEncodeNames.group], parameters);\n\n elements.forEach(element => {\n element.items.forEach(item => {\n item.nextAttrs = Object.assign(item.nextAttrs, initAttrs, groupEncodeAttrs);\n });\n\n element.encodeItems(element.items, encoders, this._isReentered, parameters);\n });\n\n this._isReentered = false;\n\n this.evaluateTransform(this._getTransformsAfterEncodeItems(), elements, parameters);\n\n elements.forEach(element => {\n element.encodeGraphic();\n });\n this.emit(HOOK_EVENT.AFTER_ELEMENT_ENCODE, { encoders, parameters }, this);\n } else {\n elements.forEach(element => {\n element.initGraphicItem(initAttrs);\n });\n }\n }\n\n addGraphicItem(attrs: any, groupKey?: string, newGraphicItem?: any) {\n const graphicItem: any = newGraphicItem ?? createGraphicItem(this, this.markType, attrs);\n\n if (!graphicItem) {\n return;\n }\n\n this.emit(HOOK_EVENT.BEFORE_ADD_VRENDER_MARK, { graphicItem });\n\n graphicItem.name = `${this.id() || this.markType}`;\n\n this.graphicParent.insertIntoKeepIdx(graphicItem as unknown as INode, this.graphicIndex);\n this.emit(HOOK_EVENT.AFTER_ADD_VRENDER_MARK, { graphicItem });\n\n return graphicItem;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const registerMarkAnimateAPI: () => void;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { mixin } from "@visactor/vutils";
|
|
2
|
+
|
|
3
|
+
import { Animate } from "../graph/animation/animate";
|
|
4
|
+
|
|
5
|
+
import { Mark } from "./mark";
|
|
6
|
+
|
|
7
|
+
class MarkAnimateMixin {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.animate = new Animate(this, {});
|
|
10
|
+
}
|
|
11
|
+
initAnimate(spec) {
|
|
12
|
+
this.animate || (this.animate = new Animate(this, spec.animation), this.needAnimate() && this.animate.updateState(spec.animationState));
|
|
13
|
+
}
|
|
14
|
+
reuseAnimate(mark) {
|
|
15
|
+
this.animate = mark.animate, this.animate.mark = this;
|
|
16
|
+
}
|
|
17
|
+
updateAnimate(spec) {
|
|
18
|
+
spec.animation && this.animate.updateConfig(spec.animation), this.animate.updateState(spec.animationState);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const registerMarkAnimateAPI = () => {
|
|
23
|
+
mixin(Mark, MarkAnimateMixin);
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=mark-animate-mixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/view/mark-animate-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGrD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,gBAAgB;IAAtB;QACE,YAAO,GAAa,IAAI,OAAO,CAAC,IAAwB,EAAE,EAAE,CAAC,CAAC;IAsBhE,CAAC;IApBC,WAAW,CAAC,IAAc;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,IAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACrE,IAAK,IAAY,CAAC,WAAW,EAAE,EAAE;gBAC/B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAC/C;SACF;IACH,CAAC;IAED,YAAY,CAAC,IAAW;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAwB,CAAC;IAC/C,CAAC;IAED,aAAa,CAAC,IAAc;QAC1B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC3C;QACD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,EAAE;IACzC,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;AAChC,CAAC,CAAC","file":"mark-animate-mixin.js","sourcesContent":["import { mixin } from '@visactor/vutils';\nimport { Animate } from '../graph/animation/animate';\nimport type { IMark, MarkSpec } from '../types';\nimport type { IAnimate } from '../types/animate';\nimport { Mark } from './mark';\n\nclass MarkAnimateMixin {\n animate: IAnimate = new Animate(this as unknown as IMark, {});\n\n initAnimate(spec: MarkSpec) {\n if (!this.animate) {\n this.animate = new Animate(this as unknown as IMark, spec.animation);\n if ((this as any).needAnimate()) {\n this.animate.updateState(spec.animationState);\n }\n }\n }\n\n reuseAnimate(mark: IMark) {\n this.animate = mark.animate;\n this.animate.mark = this as unknown as IMark;\n }\n\n updateAnimate(spec: MarkSpec) {\n if (spec.animation) {\n this.animate.updateConfig(spec.animation);\n }\n this.animate.updateState(spec.animationState);\n }\n}\n\nexport const registerMarkAnimateAPI = () => {\n mixin(Mark, MarkAnimateMixin);\n};\n"]}
|
package/es/view/mark.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { Differ } from '../graph/mark/differ';
|
|
|
4
4
|
import { GrammarBase } from './grammar-base';
|
|
5
5
|
import type { GrammarType, ICoordinate, IData, IElement, IGrammarBase, IGroupMark, IMark, IMarkConfig, IView, MarkAnimationSpec, MarkFunctionType, MarkKeySpec, MarkLayoutCallback, MarkLayoutSpec, MarkSortSpec, MarkSpec, MarkStateSpec, MarkType, TransformSpec, Nil, IAnimate, MarkStateSortSpec, BaseSingleEncodeSpec } from '../types';
|
|
6
6
|
import type { IBaseScale } from '@visactor/vscale';
|
|
7
|
+
import { Element } from '../graph/element';
|
|
7
8
|
export declare class Mark extends GrammarBase implements IMark {
|
|
8
9
|
readonly grammarType: GrammarType;
|
|
9
10
|
protected spec: MarkSpec;
|
|
@@ -65,6 +66,7 @@ export declare class Mark extends GrammarBase implements IMark {
|
|
|
65
66
|
getFieldsByChannel(): Record<string, string>;
|
|
66
67
|
protected init(stage: any, parameters: any): void;
|
|
67
68
|
protected update(spec: MarkSpec): void;
|
|
69
|
+
createElement(): Element;
|
|
68
70
|
protected evaluateJoin(data: any[]): void;
|
|
69
71
|
protected evaluateState(elements: IElement[], stateSpec: MarkStateSpec, parameters: any): void;
|
|
70
72
|
protected evaluateGroupEncode(elements: IElement[], groupEncode: any, parameters: any): {};
|
package/es/view/mark.js
CHANGED
|
@@ -6,8 +6,6 @@ import { DiffState, GrammarMarkType, LayoutState, HOOK_EVENT, GrammarTypeEnum, B
|
|
|
6
6
|
|
|
7
7
|
import { Differ, groupData } from "../graph/mark/differ";
|
|
8
8
|
|
|
9
|
-
import { Animate } from "../graph/animation/animate";
|
|
10
|
-
|
|
11
9
|
import { createGraphicItem, removeGraphicItem } from "../graph/util/graphic";
|
|
12
10
|
|
|
13
11
|
import { GrammarBase } from "./grammar-base";
|
|
@@ -18,8 +16,6 @@ import { getGrammarOutput, parseField, isFunctionType } from "../parse/util";
|
|
|
18
16
|
|
|
19
17
|
import { parseTransformSpec } from "../parse/transform";
|
|
20
18
|
|
|
21
|
-
import { createElement } from "../graph/util/element";
|
|
22
|
-
|
|
23
19
|
import { invokeEncoder } from "../graph/mark/encode";
|
|
24
20
|
|
|
25
21
|
import { transformsByType } from "../graph/attributes";
|
|
@@ -28,12 +24,13 @@ import getExtendedEvents from "../graph/util/events-extend";
|
|
|
28
24
|
|
|
29
25
|
import { EVENT_SOURCE_VIEW } from "./constants";
|
|
30
26
|
|
|
27
|
+
import { Element } from "../graph/element";
|
|
28
|
+
|
|
31
29
|
export class Mark extends GrammarBase {
|
|
32
30
|
constructor(view, markType, group) {
|
|
33
31
|
super(view), this.grammarType = "mark", this.elements = [], this.elementMap = new Map,
|
|
34
|
-
this.isUpdated = !0, this._isReentered = !1, this.
|
|
35
|
-
this.
|
|
36
|
-
this.spec.encode = {
|
|
32
|
+
this.isUpdated = !0, this._isReentered = !1, this.differ = new Differ([]), this.markType = markType,
|
|
33
|
+
this.spec.type = markType, this.spec.encode = {
|
|
37
34
|
update: {}
|
|
38
35
|
}, this.spec.group = group, group && (this.group = group, this.attach(group), group.appendChild(this));
|
|
39
36
|
}
|
|
@@ -62,11 +59,12 @@ export class Mark extends GrammarBase {
|
|
|
62
59
|
return this;
|
|
63
60
|
}
|
|
64
61
|
reuse(grammar) {
|
|
62
|
+
var _b;
|
|
65
63
|
if (grammar.grammarType !== this.grammarType) return this;
|
|
66
64
|
const mark = grammar;
|
|
67
65
|
return this.markType = mark.markType, this.coord = mark.coord, this.elementMap = mark.elementMap,
|
|
68
66
|
this.elements = mark.elements, this.elementMap.forEach((element => element.mark = this)),
|
|
69
|
-
this.differ = mark.differ,
|
|
67
|
+
this.differ = mark.differ, null === (_b = this.reuseAnimate) || void 0 === _b || _b.call(this, mark),
|
|
70
68
|
this._context = mark._context, this.graphicItem = mark.graphicItem, this.graphicIndex = mark.graphicIndex,
|
|
71
69
|
this.graphicParent = mark.graphicParent, this.needClear = mark.needClear, this.isUpdated = mark.isUpdated,
|
|
72
70
|
this;
|
|
@@ -235,7 +233,7 @@ export class Mark extends GrammarBase {
|
|
|
235
233
|
})), res;
|
|
236
234
|
}
|
|
237
235
|
init(stage, parameters) {
|
|
238
|
-
var
|
|
236
|
+
var _b, _c, _d, _e, _f;
|
|
239
237
|
if (this._delegateEvent || (this._delegateEvent = (event, type) => {
|
|
240
238
|
var _a;
|
|
241
239
|
const activeElement = null === (_a = event.target) || void 0 === _a ? void 0 : _a[BridgeElementKey];
|
|
@@ -243,17 +241,17 @@ export class Mark extends GrammarBase {
|
|
|
243
241
|
const extendedEvt = getExtendedEvents(this.view, event, activeElement, type, EVENT_SOURCE_VIEW);
|
|
244
242
|
this.emitGrammarEvent(type, extendedEvt, activeElement);
|
|
245
243
|
}
|
|
246
|
-
}, this.initEvent()),
|
|
247
|
-
|
|
244
|
+
}, this.initEvent()), null === (_b = this.initAnimate) || void 0 === _b || _b.call(this, this.spec),
|
|
245
|
+
!this.group) {
|
|
248
246
|
const group = getGrammarOutput(this.spec.group, parameters);
|
|
249
247
|
this.group = group, group && group.appendChild(this);
|
|
250
248
|
}
|
|
251
|
-
const groupGraphicItem = this.group ? this.group.getGroupGraphicItem() : stage.defaultLayer, markIndex = null !== (
|
|
249
|
+
const groupGraphicItem = this.group ? this.group.getGroupGraphicItem() : stage.defaultLayer, markIndex = null !== (_e = null === (_d = null === (_c = this.group) || void 0 === _c ? void 0 : _c.children) || void 0 === _d ? void 0 : _d.indexOf(this)) && void 0 !== _e ? _e : 0;
|
|
252
250
|
if (this.markType !== GrammarMarkType.group) {
|
|
253
251
|
if (!this.graphicItem) {
|
|
254
252
|
const graphicItem = createGraphicItem(this, GrammarMarkType.group, {
|
|
255
253
|
pickable: !1,
|
|
256
|
-
zIndex: null !== (
|
|
254
|
+
zIndex: null !== (_f = this.spec.zIndex) && void 0 !== _f ? _f : 0
|
|
257
255
|
});
|
|
258
256
|
(this.spec.support3d || Mark3DType.includes(this.markType)) && graphicItem.setMode("3d"),
|
|
259
257
|
graphicItem.name = `${this.id() || this.markType}`, this.graphicItem = graphicItem;
|
|
@@ -263,8 +261,9 @@ export class Mark extends GrammarBase {
|
|
|
263
261
|
this.graphicIndex = markIndex;
|
|
264
262
|
}
|
|
265
263
|
update(spec) {
|
|
266
|
-
|
|
267
|
-
this.
|
|
264
|
+
var _b;
|
|
265
|
+
if (this._context = this.spec.context, this.isUpdated = !0, this.renderContext.progressive || null === (_b = this.updateAnimate) || void 0 === _b || _b.call(this, spec),
|
|
266
|
+
this.markType !== GrammarMarkType.group) {
|
|
268
267
|
if (isNil(spec.zIndex) || this.graphicItem.setAttribute("zIndex", spec.zIndex),
|
|
269
268
|
isNil(spec.clip) || this.graphicItem.setAttribute("clip", spec.clip), !isNil(spec.clipPath)) {
|
|
270
269
|
const paths = isArray(spec.clipPath) ? spec.clipPath : spec.clipPath(this.elements);
|
|
@@ -280,27 +279,32 @@ export class Mark extends GrammarBase {
|
|
|
280
279
|
element.updateGraphicItem();
|
|
281
280
|
}));
|
|
282
281
|
}
|
|
282
|
+
createElement() {
|
|
283
|
+
return new Element(this);
|
|
284
|
+
}
|
|
283
285
|
evaluateJoin(data) {
|
|
284
286
|
var _a, _b, _c, _d;
|
|
285
287
|
this.needClear = !0;
|
|
286
288
|
const keyGetter = parseField(null !== (_c = null !== (_a = this.spec.key) && void 0 !== _a ? _a : null === (_b = this.grammarSource) || void 0 === _b ? void 0 : _b.getDataIDKey()) && void 0 !== _c ? _c : () => DefaultKey), groupKeyGetter = parseField(null !== (_d = this.spec.groupBy) && void 0 !== _d ? _d : () => DefaultKey), sort = this.spec.sort, isCollectionMark = this.isCollectionMark(), enterElements = new Set(this.elements.filter((element => element.diffState === DiffState.enter))), elements = [];
|
|
287
289
|
this.differ.setCallback(((key, data, prevData) => {
|
|
290
|
+
var _a;
|
|
288
291
|
const elementKey = key;
|
|
289
292
|
let element;
|
|
290
293
|
if (isNil(data)) element = this.elementMap.get(elementKey), element && (element.diffState = DiffState.exit); else if (isNil(prevData)) {
|
|
291
|
-
if (element = this.elementMap.has(elementKey) ? this.elementMap.get(elementKey) : createElement(
|
|
294
|
+
if (element = this.elementMap.has(elementKey) ? this.elementMap.get(elementKey) : this.createElement(),
|
|
292
295
|
element.diffState === DiffState.exit) {
|
|
293
296
|
element.diffState = DiffState.enter;
|
|
294
|
-
this.animate.getElementAnimators(element, DiffState.exit)
|
|
297
|
+
const animators = null === (_a = this.animate) || void 0 === _a ? void 0 : _a.getElementAnimators(element, DiffState.exit);
|
|
298
|
+
animators && animators.forEach((animator => animator.stop("start")));
|
|
295
299
|
}
|
|
296
300
|
element.diffState = DiffState.enter;
|
|
297
301
|
const groupKey = isCollectionMark ? key : groupKeyGetter(data[0]);
|
|
298
|
-
element.updateData(groupKey, data, keyGetter
|
|
302
|
+
element.updateData(groupKey, data, keyGetter), this.elementMap.set(elementKey, element),
|
|
299
303
|
elements.push(element);
|
|
300
304
|
} else if (element = this.elementMap.get(elementKey), element) {
|
|
301
305
|
element.diffState = DiffState.update;
|
|
302
306
|
const groupKey = isCollectionMark ? key : groupKeyGetter(data[0]);
|
|
303
|
-
element.updateData(groupKey, data, keyGetter
|
|
307
|
+
element.updateData(groupKey, data, keyGetter), elements.push(element);
|
|
304
308
|
}
|
|
305
309
|
enterElements.delete(element);
|
|
306
310
|
}));
|
|
@@ -418,20 +422,20 @@ export class Mark extends GrammarBase {
|
|
|
418
422
|
if (this.isCollectionMark()) return this._groupKeys.forEach(((key, index) => {
|
|
419
423
|
const data = this.renderContext.progressive.groupedData.get(key), groupStep = this.renderContext.progressive.step, dataSlice = data.slice(currentIndex * groupStep, (currentIndex + 1) * groupStep);
|
|
420
424
|
if (0 === currentIndex) {
|
|
421
|
-
const element = createElement(
|
|
422
|
-
element.diffState = DiffState.enter, element.updateData(key, dataSlice, keyGetter
|
|
425
|
+
const element = this.createElement();
|
|
426
|
+
element.diffState = DiffState.enter, element.updateData(key, dataSlice, keyGetter),
|
|
423
427
|
elements.push(element);
|
|
424
428
|
} else {
|
|
425
429
|
const element = this.elements[index];
|
|
426
|
-
element.updateData(key, dataSlice, keyGetter
|
|
430
|
+
element.updateData(key, dataSlice, keyGetter), elements.push(element);
|
|
427
431
|
}
|
|
428
432
|
})), elements;
|
|
429
433
|
const groupElements = {};
|
|
430
434
|
return this._groupKeys.forEach((key => {
|
|
431
435
|
const data = this.renderContext.progressive.groupedData.get(key), groupStep = this.renderContext.progressive.step, dataSlice = data.slice(currentIndex * groupStep, (currentIndex + 1) * groupStep), group = [];
|
|
432
436
|
dataSlice.forEach((entry => {
|
|
433
|
-
const element = createElement(
|
|
434
|
-
element.diffState = DiffState.enter, element.updateData(key, [ entry ], keyGetter
|
|
437
|
+
const element = this.createElement();
|
|
438
|
+
element.diffState = DiffState.enter, element.updateData(key, [ entry ], keyGetter),
|
|
435
439
|
group.push(element), elements.push(element);
|
|
436
440
|
})), groupElements[key] = group;
|
|
437
441
|
})), {
|
|
@@ -546,7 +550,8 @@ export class Mark extends GrammarBase {
|
|
|
546
550
|
this.group = null, super.clear();
|
|
547
551
|
}
|
|
548
552
|
prepareRelease() {
|
|
549
|
-
|
|
553
|
+
var _a;
|
|
554
|
+
null === (_a = this.animate) || void 0 === _a || _a.stop(), this.elementMap.forEach((element => element.diffState = DiffState.exit)),
|
|
550
555
|
this._finalParameters = this.parameters();
|
|
551
556
|
}
|
|
552
557
|
release() {
|