@visactor/vgrammar-core 0.14.0-alpha.0 → 0.14.0-alpha.2
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 +0 -2
- package/cjs/component/axis.js +1 -15
- package/cjs/component/axis.js.map +1 -1
- package/cjs/component/grid.d.ts +0 -2
- package/cjs/component/grid.js +1 -15
- package/cjs/component/grid.js.map +1 -1
- package/cjs/component/index.d.ts +2 -2
- package/cjs/component/index.js +1 -21
- package/cjs/component/index.js.map +1 -1
- package/cjs/core/factory.d.ts +1 -8
- package/cjs/core/factory.js +1 -8
- 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 +2 -3
- 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 +2 -3
- package/cjs/glyph/wave.js.map +1 -1
- package/cjs/graph/animation/animation/fade.js +4 -4
- package/cjs/graph/animation/animation/fade.js.map +1 -1
- package/cjs/graph/animation/animation/grow-cartesian.js +14 -14
- package/cjs/graph/animation/animation/grow-cartesian.js.map +1 -1
- package/cjs/graph/animation/animation/grow-interval.js +9 -9
- package/cjs/graph/animation/animation/grow-interval.js.map +1 -1
- package/cjs/graph/animation/animation/grow-points.js +9 -9
- package/cjs/graph/animation/animation/grow-points.js.map +1 -1
- package/cjs/graph/animation/animation/grow-polar.js +24 -24
- package/cjs/graph/animation/animation/grow-polar.js.map +1 -1
- package/cjs/graph/animation/animation/move.js +6 -6
- package/cjs/graph/animation/animation/move.js.map +1 -1
- package/cjs/graph/animation/animation/rotate.js +5 -5
- package/cjs/graph/animation/animation/rotate.js.map +1 -1
- package/cjs/graph/animation/animation/scale.js +5 -5
- package/cjs/graph/animation/animation/scale.js.map +1 -1
- package/cjs/graph/animation/animation/update.js +2 -2
- package/cjs/graph/animation/animation/update.js.map +1 -1
- package/cjs/graph/animation/animator.js +6 -1
- package/cjs/graph/animation/animator.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 +2 -0
- package/cjs/graph/element.js +14 -7
- package/cjs/graph/element.js.map +1 -1
- package/cjs/graph/glyph-element.js +2 -3
- package/cjs/graph/glyph-element.js.map +1 -1
- package/cjs/graph/layout/layout.d.ts +0 -1
- package/cjs/graph/layout/layout.js +2 -8
- package/cjs/graph/layout/layout.js.map +1 -1
- package/cjs/graph/mark/graphic.js +8 -14
- package/cjs/graph/mark/graphic.js.map +1 -1
- package/cjs/graph/util/element.d.ts +2 -0
- package/cjs/graph/util/element.js +10 -0
- package/cjs/graph/util/element.js.map +1 -0
- package/cjs/graph/util/point.js +26 -10
- package/cjs/graph/util/point.js.map +1 -1
- package/cjs/index.d.ts +1 -6
- package/cjs/index.js +2 -51
- package/cjs/index.js.map +1 -1
- package/cjs/parse/event.d.ts +2 -0
- package/cjs/parse/event.js +10 -4
- package/cjs/parse/event.js.map +1 -1
- package/cjs/types/animate.d.ts +1 -0
- package/cjs/types/animate.js.map +1 -1
- package/cjs/types/element.d.ts +5 -1
- package/cjs/types/element.js.map +1 -1
- package/cjs/types/renderer.d.ts +1 -6
- package/cjs/types/renderer.js.map +1 -1
- package/cjs/view/View.d.ts +4 -2
- package/cjs/view/View.js +76 -21
- package/cjs/view/View.js.map +1 -1
- package/cjs/view/constants.d.ts +0 -2
- package/cjs/view/constants.js +2 -3
- package/cjs/view/constants.js.map +1 -1
- package/cjs/view/events.d.ts +1 -0
- package/cjs/view/events.js +17 -3
- package/cjs/view/events.js.map +1 -1
- package/cjs/view/glyph.d.ts +0 -4
- package/cjs/view/glyph.js +3 -12
- package/cjs/view/glyph.js.map +1 -1
- package/cjs/view/grammar-record.js +2 -3
- package/cjs/view/grammar-record.js.map +1 -1
- package/cjs/view/group.js +3 -3
- package/cjs/view/group.js.map +1 -1
- package/cjs/view/mark.d.ts +0 -2
- package/cjs/view/mark.js +16 -15
- package/cjs/view/mark.js.map +1 -1
- package/es/component/axis.d.ts +0 -2
- package/es/component/axis.js +0 -10
- package/es/component/axis.js.map +1 -1
- package/es/component/grid.d.ts +0 -2
- package/es/component/grid.js +0 -10
- 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 +1 -8
- package/es/core/factory.js +1 -8
- package/es/core/factory.js.map +1 -1
- package/es/glyph/boxplot.js +2 -4
- package/es/glyph/boxplot.js.map +1 -1
- package/es/glyph/link-path.js +2 -4
- package/es/glyph/link-path.js.map +1 -1
- package/es/glyph/ripple.js +1 -3
- package/es/glyph/ripple.js.map +1 -1
- package/es/glyph/tree-path.js +2 -4
- package/es/glyph/tree-path.js.map +1 -1
- package/es/glyph/violin.js +2 -4
- package/es/glyph/violin.js.map +1 -1
- package/es/glyph/wave.js +1 -3
- package/es/glyph/wave.js.map +1 -1
- package/es/graph/animation/animation/fade.js +4 -4
- package/es/graph/animation/animation/fade.js.map +1 -1
- package/es/graph/animation/animation/grow-cartesian.js +14 -14
- package/es/graph/animation/animation/grow-cartesian.js.map +1 -1
- package/es/graph/animation/animation/grow-interval.js +9 -9
- package/es/graph/animation/animation/grow-interval.js.map +1 -1
- package/es/graph/animation/animation/grow-points.js +9 -9
- package/es/graph/animation/animation/grow-points.js.map +1 -1
- package/es/graph/animation/animation/grow-polar.js +24 -24
- package/es/graph/animation/animation/grow-polar.js.map +1 -1
- package/es/graph/animation/animation/move.js +6 -6
- package/es/graph/animation/animation/move.js.map +1 -1
- package/es/graph/animation/animation/rotate.js +4 -4
- package/es/graph/animation/animation/rotate.js.map +1 -1
- package/es/graph/animation/animation/scale.js +5 -5
- package/es/graph/animation/animation/scale.js.map +1 -1
- package/es/graph/animation/animation/update.js +3 -1
- package/es/graph/animation/animation/update.js.map +1 -1
- package/es/graph/animation/animator.js +6 -1
- package/es/graph/animation/animator.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 +2 -0
- package/es/graph/element.js +14 -5
- package/es/graph/element.js.map +1 -1
- package/es/graph/glyph-element.js +4 -2
- package/es/graph/glyph-element.js.map +1 -1
- package/es/graph/layout/layout.d.ts +0 -1
- package/es/graph/layout/layout.js +0 -6
- package/es/graph/layout/layout.js.map +1 -1
- package/es/graph/mark/graphic.js +7 -13
- package/es/graph/mark/graphic.js.map +1 -1
- package/es/graph/util/element.d.ts +2 -0
- package/es/graph/util/element.js +8 -0
- package/es/graph/util/element.js.map +1 -0
- package/es/graph/util/point.js +26 -10
- package/es/graph/util/point.js.map +1 -1
- package/es/index.d.ts +1 -6
- package/es/index.js +1 -19
- package/es/index.js.map +1 -1
- package/es/parse/event.d.ts +2 -0
- package/es/parse/event.js +7 -3
- package/es/parse/event.js.map +1 -1
- package/es/types/animate.d.ts +1 -0
- package/es/types/animate.js.map +1 -1
- package/es/types/element.d.ts +5 -1
- package/es/types/element.js.map +1 -1
- package/es/types/renderer.d.ts +1 -6
- package/es/types/renderer.js.map +1 -1
- package/es/view/View.d.ts +4 -2
- package/es/view/View.js +82 -20
- package/es/view/View.js.map +1 -1
- package/es/view/constants.d.ts +0 -2
- package/es/view/constants.js +0 -4
- package/es/view/constants.js.map +1 -1
- package/es/view/events.d.ts +1 -0
- package/es/view/events.js +15 -1
- package/es/view/events.js.map +1 -1
- package/es/view/glyph.d.ts +0 -4
- package/es/view/glyph.js +0 -11
- package/es/view/glyph.js.map +1 -1
- package/es/view/grammar-record.js +2 -3
- package/es/view/grammar-record.js.map +1 -1
- package/es/view/group.js +4 -2
- package/es/view/group.js.map +1 -1
- package/es/view/mark.d.ts +0 -2
- package/es/view/mark.js +16 -16
- package/es/view/mark.js.map +1 -1
- package/package.json +12 -12
- package/cjs/view/view-event-mixin.d.ts +0 -1
- package/cjs/view/view-event-mixin.js +0 -92
- package/cjs/view/view-event-mixin.js.map +0 -1
- package/es/view/view-event-mixin.d.ts +0 -1
- package/es/view/view-event-mixin.js +0 -90
- package/es/view/view-event-mixin.js.map +0 -1
package/cjs/view/events.js
CHANGED
|
@@ -2,9 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: !0
|
|
5
|
-
}), exports.permit = exports.prevent = void 0;
|
|
5
|
+
}), exports.permit = exports.prevent = exports.initializeEventConfig = void 0;
|
|
6
6
|
|
|
7
|
-
const vutils_1 = require("@visactor/vutils");
|
|
7
|
+
const vutils_1 = require("@visactor/vutils"), constants_1 = require("./constants");
|
|
8
|
+
|
|
9
|
+
function initializeEventConfig(config) {
|
|
10
|
+
const eventsConfig = Object.assign({
|
|
11
|
+
defaults: {}
|
|
12
|
+
}, config), unpack = (obj, keys) => {
|
|
13
|
+
keys.forEach((k => {
|
|
14
|
+
(0, vutils_1.isArray)(obj[k]) && (obj[k] = obj[k].reduce(((set, key) => (set[key] = !0,
|
|
15
|
+
set)), {}));
|
|
16
|
+
}));
|
|
17
|
+
};
|
|
18
|
+
return unpack(eventsConfig.defaults, [ "prevent", "allow" ]), unpack(eventsConfig, [ constants_1.EVENT_SOURCE_VIEW, constants_1.EVENT_SOURCE_WINDOW ]),
|
|
19
|
+
eventsConfig;
|
|
20
|
+
}
|
|
8
21
|
|
|
9
22
|
function prevent(eventConfig, type) {
|
|
10
23
|
const def = eventConfig.defaults, prevent = def.prevent, allow = def.allow;
|
|
@@ -16,5 +29,6 @@ function permit(eventConfig, key, type) {
|
|
|
16
29
|
return !(!1 === rule || (0, vutils_1.isObject)(rule) && !rule[type]);
|
|
17
30
|
}
|
|
18
31
|
|
|
19
|
-
exports.
|
|
32
|
+
exports.initializeEventConfig = initializeEventConfig, exports.prevent = prevent,
|
|
33
|
+
exports.permit = permit;
|
|
20
34
|
//# sourceMappingURL=events.js.map
|
package/cjs/view/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/view/events.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"sources":["../src/view/events.ts"],"names":[],"mappings":";;;AAAA,6CAAqD;AAErD,2CAAqE;AAQrE,SAAgB,qBAAqB,CAAC,MAAW;IAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,CAAC,GAAQ,EAAE,IAAc,EAAE,EAAE;QAC1C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,IAAA,gBAAO,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,GAAQ,EAAE,EAAE;oBAC5C,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;oBAChB,OAAO,GAAG,CAAC;gBACb,CAAC,EAAE,EAAE,CAAC,CAAC;aACR;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,YAAY,EAAE,CAAC,6BAAiB,EAAE,+BAAmB,CAAC,CAAC,CAAC;IAE/D,OAAO,YAAY,CAAC;AACtB,CAAC;AAlBD,sDAkBC;AAED,SAAgB,OAAO,CAAC,WAA6B,EAAE,IAAY;IACjE,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC;IACjC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IAExB,IAAI,OAAO,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,EAAE;QACvC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE;QACvC,OAAO,IAAI,CAAC;KACb;IAED,IAAI,OAAO,EAAE;QACX,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;KACtB;IAED,IAAI,KAAK,EAAE;QACT,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACrB;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAtBD,0BAsBC;AAED,SAAgB,MAAM,CAAC,WAA6B,EAAE,GAAW,EAAE,IAAY;IAC7E,MAAM,IAAI,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,GAAG,CAAC,CAAC;IAEhC,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,IAAA,iBAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;QACrD,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AARD,wBAQC","file":"events.js","sourcesContent":["import { isArray, isObject } from '@visactor/vutils';\nimport type { IViewEventConfig } from '../types';\nimport { EVENT_SOURCE_VIEW, EVENT_SOURCE_WINDOW } from './constants';\n\n/**\n * 初始化事件配置,将所有配置转化为 {[key: string]: boolean } 格式。\n * Initialize event handling configuration.\n * @param {object} config - The configuration settings.\n * @return {object}\n */\nexport function initializeEventConfig(config: any) {\n const eventsConfig = Object.assign({ defaults: {} }, config);\n\n const unpack = (obj: any, keys: string[]) => {\n keys.forEach(k => {\n if (isArray(obj[k])) {\n obj[k] = obj[k].reduce((set: any, key: any) => {\n set[key] = true;\n return set;\n }, {});\n }\n });\n };\n\n unpack(eventsConfig.defaults, ['prevent', 'allow']);\n unpack(eventsConfig, [EVENT_SOURCE_VIEW, EVENT_SOURCE_WINDOW]);\n\n return eventsConfig;\n}\n\nexport function prevent(eventConfig: IViewEventConfig, type: string) {\n const def = eventConfig.defaults;\n const prevent = def.prevent;\n const allow = def.allow;\n\n if (prevent === false || allow === true) {\n return false;\n }\n\n if (prevent === true || allow === false) {\n return true;\n }\n\n if (prevent) {\n return prevent[type];\n }\n\n if (allow) {\n return !allow[type];\n }\n\n return false;\n}\n\nexport function permit(eventConfig: IViewEventConfig, key: string, type: string) {\n const rule = eventConfig?.[key];\n\n if (rule === false || (isObject(rule) && !rule[type])) {\n return false;\n }\n\n return true;\n}\n"]}
|
package/cjs/view/glyph.d.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { GrammarMarkType } from '../graph/enums';
|
|
2
2
|
import type { IGlyphMark, IGroupMark, IView, GlyphMarkSpec, IGlyphMeta } from '../types';
|
|
3
3
|
import { Mark } from './mark';
|
|
4
|
-
import { GlyphElement } from '../graph/glyph-element';
|
|
5
4
|
export declare class GlyphMark extends Mark implements IGlyphMark {
|
|
6
|
-
static markType: GrammarMarkType;
|
|
7
5
|
protected spec: GlyphMarkSpec;
|
|
8
6
|
markType: GrammarMarkType.glyph;
|
|
9
7
|
readonly glyphType: string;
|
|
@@ -13,6 +11,4 @@ export declare class GlyphMark extends Mark implements IGlyphMark {
|
|
|
13
11
|
getGlyphMeta(): IGlyphMeta<any, any>;
|
|
14
12
|
getGlyphConfig(): any;
|
|
15
13
|
addGraphicItem(attrs: any, groupKey?: string): any;
|
|
16
|
-
createElement(): GlyphElement;
|
|
17
14
|
}
|
|
18
|
-
export declare const registerGlyphMark: () => void;
|
package/cjs/view/glyph.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: !0
|
|
5
|
-
}), exports.
|
|
5
|
+
}), exports.GlyphMark = void 0;
|
|
6
6
|
|
|
7
|
-
const enums_1 = require("../graph/enums"), graphic_1 = require("../graph/util/graphic"), mark_1 = require("./mark"), factory_1 = require("../core/factory")
|
|
7
|
+
const enums_1 = require("../graph/enums"), graphic_1 = require("../graph/util/graphic"), mark_1 = require("./mark"), factory_1 = require("../core/factory");
|
|
8
8
|
|
|
9
9
|
class GlyphMark extends mark_1.Mark {
|
|
10
10
|
constructor(view, glyphType, group) {
|
|
@@ -23,16 +23,7 @@ class GlyphMark extends mark_1.Mark {
|
|
|
23
23
|
const graphicItem = (0, graphic_1.createGlyphGraphicItem)(this, this.glyphMeta, attrs);
|
|
24
24
|
return super.addGraphicItem(attrs, groupKey, graphicItem);
|
|
25
25
|
}
|
|
26
|
-
createElement() {
|
|
27
|
-
return new glyph_element_1.GlyphElement(this);
|
|
28
|
-
}
|
|
29
26
|
}
|
|
30
27
|
|
|
31
|
-
exports.GlyphMark = GlyphMark
|
|
32
|
-
|
|
33
|
-
const registerGlyphMark = () => {
|
|
34
|
-
factory_1.Factory.registerMark(enums_1.GrammarMarkType.glyph, GlyphMark);
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
exports.registerGlyphMark = registerGlyphMark;
|
|
28
|
+
exports.GlyphMark = GlyphMark;
|
|
38
29
|
//# sourceMappingURL=glyph.js.map
|
package/cjs/view/glyph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/view/glyph.ts"],"names":[],"mappings":";;;AAAA,0CAAiD;AAEjD,mDAA+D;AAC/D,iCAA8B;AAC9B,6CAA0C;
|
|
1
|
+
{"version":3,"sources":["../src/view/glyph.ts"],"names":[],"mappings":";;;AAAA,0CAAiD;AAEjD,mDAA+D;AAC/D,iCAA8B;AAC9B,6CAA0C;AAE1C,MAAa,SAAU,SAAQ,WAAI;IAOjC,YAAY,IAAW,EAAE,SAAiB,EAAE,KAAkB;QAC5D,KAAK,CAAC,IAAI,EAAE,uBAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,iBAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,cAAc,CAAC,MAAW;QACxB,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,KAAU,EAAE,QAAiB;QAC1C,MAAM,WAAW,GAAG,IAAA,gCAAsB,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACxE,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;CACF;AA/BD,8BA+BC","file":"glyph.js","sourcesContent":["import { GrammarMarkType } from '../graph/enums';\nimport type { IGlyphMark, IGroupMark, IView, GlyphMarkSpec, IGlyphMeta } from '../types';\nimport { createGlyphGraphicItem } from '../graph/util/graphic';\nimport { Mark } from './mark';\nimport { Factory } from '../core/factory';\n\nexport class GlyphMark extends Mark implements IGlyphMark {\n protected declare spec: GlyphMarkSpec;\n declare markType: GrammarMarkType.glyph;\n readonly glyphType: string;\n\n private glyphMeta: IGlyphMeta;\n\n constructor(view: IView, glyphType: string, group?: IGroupMark) {\n super(view, GrammarMarkType.glyph, group);\n this.glyphType = glyphType;\n this.glyphMeta = Factory.getGlyph(glyphType);\n }\n\n configureGlyph(config: any) {\n this.spec.glyphConfig = config;\n this.commit();\n return this;\n }\n\n getGlyphMeta() {\n return this.glyphMeta;\n }\n\n getGlyphConfig() {\n return this.spec.glyphConfig;\n }\n\n addGraphicItem(attrs: any, groupKey?: string) {\n const graphicItem = createGlyphGraphicItem(this, this.glyphMeta, attrs);\n return super.addGraphicItem(attrs, groupKey, graphicItem);\n }\n}\n"]}
|
|
@@ -153,9 +153,8 @@ class RecordedTreeGrammars extends RecordedGrammars {
|
|
|
153
153
|
if (super.unrecord(grammar), "mark" === grammar.grammarType) {
|
|
154
154
|
const mark = grammar, currentNode = this._markNodes.find((node => node.mark === mark));
|
|
155
155
|
this._markNodes.forEach((node => {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
currentNode.parent = null) : mark.markType === enums_1.GrammarMarkType.group && mark.includesChild(targetMark, !1) && (currentNode.children = currentNode.children.filter((n => n !== node)),
|
|
156
|
+
node.mark.markType === enums_1.GrammarMarkType.group && node.children.includes(currentNode) ? (node.children = node.children.filter((n => n !== currentNode)),
|
|
157
|
+
currentNode.parent = null) : mark.markType === enums_1.GrammarMarkType.group && currentNode.children.includes(node) && (currentNode.children = currentNode.children.filter((n => n !== node)),
|
|
159
158
|
node.parent = null);
|
|
160
159
|
})), this._markNodes = this._markNodes.filter((n => n !== currentNode));
|
|
161
160
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/view/grammar-record.ts"],"names":[],"mappings":"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","file":"grammar-record.js","sourcesContent":["import { isNil, isString } from '@visactor/vutils';\nimport type {\n BuiltInGrammarType,\n ICoordinate,\n IData,\n IGrammarBase,\n IMark,\n IScale,\n ISignal,\n IRecordedGrammars,\n IGroupMark,\n IMarkTreeNode,\n IRecordedTreeGrammars\n} from '../types';\nimport { GrammarMarkType } from '../graph/enums';\n\nexport class RecordedGrammars implements IRecordedGrammars {\n private _warning: (key: string, grammar: IGrammarBase) => void;\n private _mapKey: (grammar: IGrammarBase) => string;\n private _grammars: Record<BuiltInGrammarType | 'customized', IGrammarBase[]> = {\n signal: [],\n data: [],\n scale: [],\n coordinate: [],\n mark: [],\n customized: []\n };\n // map key might not be unique\n private _grammarMap: Record<BuiltInGrammarType | 'customized', Record<string, IGrammarBase>> = {\n signal: {},\n data: {},\n scale: {},\n coordinate: {},\n mark: {},\n customized: {}\n };\n private _size: number = 0;\n\n constructor(\n mapKey: string | ((grammar: IGrammarBase) => string),\n warningWhenDuplicated?: (key: string, grammar: IGrammarBase) => void\n ) {\n this._mapKey = isString(mapKey) ? grammar => grammar[mapKey] : mapKey;\n this._warning = warningWhenDuplicated;\n }\n\n record(grammar: IGrammarBase) {\n const grammarType = grammar.grammarType;\n const key = this._mapKey(grammar);\n if (this._grammarMap[grammarType]) {\n this._grammars[grammarType].push(grammar);\n if (!isNil(key)) {\n // ignore grammar if key is duplicated\n if (this._grammarMap[grammarType][key]) {\n this._warning?.(key, grammar);\n } else {\n this._grammarMap[grammarType][key] = grammar;\n }\n }\n } else {\n this._grammars.customized.push(grammar);\n if (!isNil(key)) {\n // ignore grammar if key is duplicated\n if (this._grammarMap.customized[key]) {\n this._warning?.(key, grammar);\n } else {\n this._grammarMap.customized[key] = grammar;\n }\n }\n }\n this._size += 1;\n return this;\n }\n\n unrecord(grammar: IGrammarBase) {\n const grammarType = grammar.grammarType;\n const key = this._mapKey(grammar);\n if (this._grammarMap[grammarType]) {\n this._grammars[grammarType] = this._grammars[grammarType].filter(\n (storedGrammar: IGrammarBase) => storedGrammar !== grammar\n );\n if (!isNil(key) && this._grammarMap[grammarType][key] === grammar) {\n delete this._grammarMap[grammarType][key];\n }\n } else {\n this._grammars.customized = this._grammars.customized.filter(\n (storedGrammar: IGrammarBase) => storedGrammar !== grammar\n );\n if (!isNil(key) && this._grammarMap.customized[key] === grammar) {\n delete this._grammarMap.customized[key];\n }\n }\n this._size -= 1;\n return this;\n }\n\n size() {\n return this._size;\n }\n\n getSignal<T>(key: string): ISignal<T> | null {\n return (this._grammarMap.signal[key] as ISignal<T>) ?? null;\n }\n getData(key: string): IData | null {\n return (this._grammarMap.data[key] as IData) ?? null;\n }\n getScale(key: string): IScale | null {\n return (this._grammarMap.scale[key] as IScale) ?? null;\n }\n getCoordinate(key: string): ICoordinate | null {\n return (this._grammarMap.coordinate[key] as ICoordinate) ?? null;\n }\n getMark(key: string): IMark | null {\n return (this._grammarMap.mark[key] as IMark) ?? null;\n }\n getCustomized(key: string): IGrammarBase | null {\n return this._grammarMap.customized[key] ?? null;\n }\n getGrammar(key: string): IGrammarBase | null {\n if (this._grammarMap.data[key]) {\n return this._grammarMap.data[key];\n } else if (this._grammarMap.signal[key]) {\n return this._grammarMap.signal[key];\n } else if (this._grammarMap.scale[key]) {\n return this._grammarMap.scale[key];\n } else if (this._grammarMap.coordinate[key]) {\n return this._grammarMap.coordinate[key];\n } else if (this._grammarMap.mark[key]) {\n return this._grammarMap.mark[key];\n } else if (this._grammarMap.customized[key]) {\n return this._grammarMap.customized[key];\n }\n return null;\n }\n\n getAllSignals(): ISignal<any>[] {\n return this._grammars.signal as ISignal<any>[];\n }\n getAllData(): IData[] {\n return this._grammars.data as IData[];\n }\n getAllScales(): IScale[] {\n return this._grammars.scale as IScale[];\n }\n getAllCoordinates(): ICoordinate[] {\n return this._grammars.coordinate as ICoordinate[];\n }\n getAllMarks(): IMark[] {\n return this._grammars.mark as IMark[];\n }\n getAllCustomized(): IGrammarBase[] {\n return this._grammars.customized;\n }\n\n traverse(func: (grammar: IGrammarBase) => boolean | void) {\n Object.values(this._grammars ?? {}).forEach(grammars =>\n (grammars ?? []).forEach(grammar => {\n // stop traversing when func returns true\n if (func.call(null, grammar)) {\n return;\n }\n })\n );\n }\n\n find(func: (grammar: IGrammarBase) => boolean) {\n let targetGrammar: IGrammarBase = null;\n this.traverse(grammar => {\n if (func.call(null, grammar) === true) {\n targetGrammar = grammar;\n return true;\n }\n return false;\n });\n return targetGrammar;\n }\n\n filter(func: (grammar: IGrammarBase) => boolean) {\n const targetGrammars: IGrammarBase[] = [];\n this.traverse(grammar => {\n if (func.call(null, grammar) === true) {\n targetGrammars.push(grammar);\n }\n });\n return targetGrammars;\n }\n\n clear() {\n this._size = 0;\n this._grammars = { signal: [], data: [], scale: [], coordinate: [], mark: [], customized: [] };\n this._grammarMap = { signal: {}, data: {}, scale: {}, coordinate: {}, mark: {}, customized: {} };\n }\n\n release() {\n this._size = 0;\n this._grammars = null;\n this._grammarMap = null;\n }\n}\n\nexport class RecordedTreeGrammars extends RecordedGrammars implements IRecordedTreeGrammars {\n private _markNodes: IMarkTreeNode[] = [];\n\n record(grammar: IGrammarBase) {\n super.record(grammar);\n if (grammar.grammarType === 'mark') {\n const mark = grammar as IMark;\n const currentNode: IMarkTreeNode = {\n mark: mark,\n parent: null,\n children: []\n };\n this._markNodes.forEach(node => {\n const targetMark = node.mark;\n if (targetMark.markType === GrammarMarkType.group && (targetMark as IGroupMark).includesChild(mark, false)) {\n node.children.push(currentNode);\n currentNode.parent = node;\n } else if (mark.markType === GrammarMarkType.group && (mark as IGroupMark).includesChild(targetMark, false)) {\n currentNode.children.push(node);\n node.parent = currentNode;\n }\n });\n this._markNodes.push(currentNode);\n }\n return this;\n }\n\n unrecord(grammar: IGrammarBase) {\n super.unrecord(grammar);\n if (grammar.grammarType === 'mark') {\n const mark = grammar as IMark;\n const currentNode = this._markNodes.find(node => node.mark === mark);\n this._markNodes.forEach(node => {\n const targetMark = node.mark;\n if (targetMark.markType === GrammarMarkType.group && (targetMark as IGroupMark).includesChild(mark, false)) {\n node.children = node.children.filter(n => n !== currentNode);\n currentNode.parent = null;\n } else if (mark.markType === GrammarMarkType.group && (mark as IGroupMark).includesChild(targetMark, false)) {\n currentNode.children = currentNode.children.filter(n => n !== node);\n node.parent = null;\n }\n });\n this._markNodes = this._markNodes.filter(n => n !== currentNode);\n }\n return this;\n }\n\n getAllMarkNodes() {\n return this._markNodes;\n }\n\n clear() {\n super.clear();\n this._markNodes = [];\n }\n\n release() {\n super.release();\n this._markNodes = null;\n }\n}\n\nexport const releaseUpMarkNode = (node: IMarkTreeNode) => {\n // if (node.mark.get)\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/view/grammar-record.ts"],"names":[],"mappings":"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","file":"grammar-record.js","sourcesContent":["import { isNil, isString } from '@visactor/vutils';\nimport type {\n BuiltInGrammarType,\n ICoordinate,\n IData,\n IGrammarBase,\n IMark,\n IScale,\n ISignal,\n IRecordedGrammars,\n IGroupMark,\n IMarkTreeNode,\n IRecordedTreeGrammars\n} from '../types';\nimport { GrammarMarkType } from '../graph/enums';\n\nexport class RecordedGrammars implements IRecordedGrammars {\n private _warning: (key: string, grammar: IGrammarBase) => void;\n private _mapKey: (grammar: IGrammarBase) => string;\n private _grammars: Record<BuiltInGrammarType | 'customized', IGrammarBase[]> = {\n signal: [],\n data: [],\n scale: [],\n coordinate: [],\n mark: [],\n customized: []\n };\n // map key might not be unique\n private _grammarMap: Record<BuiltInGrammarType | 'customized', Record<string, IGrammarBase>> = {\n signal: {},\n data: {},\n scale: {},\n coordinate: {},\n mark: {},\n customized: {}\n };\n private _size: number = 0;\n\n constructor(\n mapKey: string | ((grammar: IGrammarBase) => string),\n warningWhenDuplicated?: (key: string, grammar: IGrammarBase) => void\n ) {\n this._mapKey = isString(mapKey) ? grammar => grammar[mapKey] : mapKey;\n this._warning = warningWhenDuplicated;\n }\n\n record(grammar: IGrammarBase) {\n const grammarType = grammar.grammarType;\n const key = this._mapKey(grammar);\n if (this._grammarMap[grammarType]) {\n this._grammars[grammarType].push(grammar);\n if (!isNil(key)) {\n // ignore grammar if key is duplicated\n if (this._grammarMap[grammarType][key]) {\n this._warning?.(key, grammar);\n } else {\n this._grammarMap[grammarType][key] = grammar;\n }\n }\n } else {\n this._grammars.customized.push(grammar);\n if (!isNil(key)) {\n // ignore grammar if key is duplicated\n if (this._grammarMap.customized[key]) {\n this._warning?.(key, grammar);\n } else {\n this._grammarMap.customized[key] = grammar;\n }\n }\n }\n this._size += 1;\n return this;\n }\n\n unrecord(grammar: IGrammarBase) {\n const grammarType = grammar.grammarType;\n const key = this._mapKey(grammar);\n if (this._grammarMap[grammarType]) {\n this._grammars[grammarType] = this._grammars[grammarType].filter(\n (storedGrammar: IGrammarBase) => storedGrammar !== grammar\n );\n if (!isNil(key) && this._grammarMap[grammarType][key] === grammar) {\n delete this._grammarMap[grammarType][key];\n }\n } else {\n this._grammars.customized = this._grammars.customized.filter(\n (storedGrammar: IGrammarBase) => storedGrammar !== grammar\n );\n if (!isNil(key) && this._grammarMap.customized[key] === grammar) {\n delete this._grammarMap.customized[key];\n }\n }\n this._size -= 1;\n return this;\n }\n\n size() {\n return this._size;\n }\n\n getSignal<T>(key: string): ISignal<T> | null {\n return (this._grammarMap.signal[key] as ISignal<T>) ?? null;\n }\n getData(key: string): IData | null {\n return (this._grammarMap.data[key] as IData) ?? null;\n }\n getScale(key: string): IScale | null {\n return (this._grammarMap.scale[key] as IScale) ?? null;\n }\n getCoordinate(key: string): ICoordinate | null {\n return (this._grammarMap.coordinate[key] as ICoordinate) ?? null;\n }\n getMark(key: string): IMark | null {\n return (this._grammarMap.mark[key] as IMark) ?? null;\n }\n getCustomized(key: string): IGrammarBase | null {\n return this._grammarMap.customized[key] ?? null;\n }\n getGrammar(key: string): IGrammarBase | null {\n if (this._grammarMap.data[key]) {\n return this._grammarMap.data[key];\n } else if (this._grammarMap.signal[key]) {\n return this._grammarMap.signal[key];\n } else if (this._grammarMap.scale[key]) {\n return this._grammarMap.scale[key];\n } else if (this._grammarMap.coordinate[key]) {\n return this._grammarMap.coordinate[key];\n } else if (this._grammarMap.mark[key]) {\n return this._grammarMap.mark[key];\n } else if (this._grammarMap.customized[key]) {\n return this._grammarMap.customized[key];\n }\n return null;\n }\n\n getAllSignals(): ISignal<any>[] {\n return this._grammars.signal as ISignal<any>[];\n }\n getAllData(): IData[] {\n return this._grammars.data as IData[];\n }\n getAllScales(): IScale[] {\n return this._grammars.scale as IScale[];\n }\n getAllCoordinates(): ICoordinate[] {\n return this._grammars.coordinate as ICoordinate[];\n }\n getAllMarks(): IMark[] {\n return this._grammars.mark as IMark[];\n }\n getAllCustomized(): IGrammarBase[] {\n return this._grammars.customized;\n }\n\n traverse(func: (grammar: IGrammarBase) => boolean | void) {\n Object.values(this._grammars ?? {}).forEach(grammars =>\n (grammars ?? []).forEach(grammar => {\n // stop traversing when func returns true\n if (func.call(null, grammar)) {\n return;\n }\n })\n );\n }\n\n find(func: (grammar: IGrammarBase) => boolean) {\n let targetGrammar: IGrammarBase = null;\n this.traverse(grammar => {\n if (func.call(null, grammar) === true) {\n targetGrammar = grammar;\n return true;\n }\n return false;\n });\n return targetGrammar;\n }\n\n filter(func: (grammar: IGrammarBase) => boolean) {\n const targetGrammars: IGrammarBase[] = [];\n this.traverse(grammar => {\n if (func.call(null, grammar) === true) {\n targetGrammars.push(grammar);\n }\n });\n return targetGrammars;\n }\n\n clear() {\n this._size = 0;\n this._grammars = { signal: [], data: [], scale: [], coordinate: [], mark: [], customized: [] };\n this._grammarMap = { signal: {}, data: {}, scale: {}, coordinate: {}, mark: {}, customized: {} };\n }\n\n release() {\n this._size = 0;\n this._grammars = null;\n this._grammarMap = null;\n }\n}\n\nexport class RecordedTreeGrammars extends RecordedGrammars implements IRecordedTreeGrammars {\n private _markNodes: IMarkTreeNode[] = [];\n\n record(grammar: IGrammarBase) {\n super.record(grammar);\n if (grammar.grammarType === 'mark') {\n const mark = grammar as IMark;\n const currentNode: IMarkTreeNode = {\n mark: mark,\n parent: null,\n children: []\n };\n this._markNodes.forEach(node => {\n const targetMark = node.mark;\n if (targetMark.markType === GrammarMarkType.group && (targetMark as IGroupMark).includesChild(mark, false)) {\n node.children.push(currentNode);\n currentNode.parent = node;\n } else if (mark.markType === GrammarMarkType.group && (mark as IGroupMark).includesChild(targetMark, false)) {\n currentNode.children.push(node);\n node.parent = currentNode;\n }\n });\n this._markNodes.push(currentNode);\n }\n return this;\n }\n\n unrecord(grammar: IGrammarBase) {\n super.unrecord(grammar);\n if (grammar.grammarType === 'mark') {\n const mark = grammar as IMark;\n const currentNode = this._markNodes.find(node => node.mark === mark);\n this._markNodes.forEach(node => {\n const targetMark = node.mark;\n if (targetMark.markType === GrammarMarkType.group && node.children.includes(currentNode)) {\n node.children = node.children.filter(n => n !== currentNode);\n currentNode.parent = null;\n } else if (mark.markType === GrammarMarkType.group && currentNode.children.includes(node)) {\n currentNode.children = currentNode.children.filter(n => n !== node);\n node.parent = null;\n }\n });\n this._markNodes = this._markNodes.filter(n => n !== currentNode);\n }\n return this;\n }\n\n getAllMarkNodes() {\n return this._markNodes;\n }\n\n clear() {\n super.clear();\n this._markNodes = [];\n }\n\n release() {\n super.release();\n this._markNodes = null;\n }\n}\n\nexport const releaseUpMarkNode = (node: IMarkTreeNode) => {\n // if (node.mark.get)\n};\n"]}
|
package/cjs/view/group.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.GroupMark = void 0;
|
|
6
6
|
|
|
7
|
-
const attributes_1 = require("../graph/attributes"), constants_1 = require("../graph/constants"), enums_1 = require("../graph/enums"), graphic_1 = require("../graph/util/graphic"), mark_1 = require("./mark"), vutils_1 = require("@visactor/vutils"), encode_1 = require("../graph/mark/encode");
|
|
7
|
+
const attributes_1 = require("../graph/attributes"), constants_1 = require("../graph/constants"), enums_1 = require("../graph/enums"), element_1 = require("../graph/util/element"), graphic_1 = require("../graph/util/graphic"), mark_1 = require("./mark"), vutils_1 = require("@visactor/vutils"), encode_1 = require("../graph/mark/encode");
|
|
8
8
|
|
|
9
9
|
class GroupMark extends mark_1.Mark {
|
|
10
10
|
constructor(view, group) {
|
|
@@ -33,8 +33,8 @@ class GroupMark extends mark_1.Mark {
|
|
|
33
33
|
}
|
|
34
34
|
evaluateJoin(data) {
|
|
35
35
|
if (!this.elements.length) {
|
|
36
|
-
const el =
|
|
37
|
-
el.updateData(constants_1.DefaultKey, constants_1.DefaultMarkData, (() => "")),
|
|
36
|
+
const el = (0, element_1.createElement)(this);
|
|
37
|
+
el.updateData(constants_1.DefaultKey, constants_1.DefaultMarkData, (() => ""), this.view),
|
|
38
38
|
this.elements = [ el ], this.elementMap.set(constants_1.DefaultKey, el);
|
|
39
39
|
}
|
|
40
40
|
}
|
package/cjs/view/group.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/view/group.ts"],"names":[],"mappings":";;;AACA,oDAAuD;AACvD,kDAAiE;AACjE,0CAAiF;AACjF,mDAA0D;AAE1D,iCAA8B;AAC9B,6CAAqD;AACrD,iDAA4D;AAE5D,MAAa,SAAU,SAAQ,WAAI;IAKjC,YAAY,IAAW,EAAE,KAAkB;QACzC,KAAK,CAAC,IAAI,EAAE,uBAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,kBAAkB;QAChB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,WAAW,CAAC,IAAW;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,WAAW,CAAC,IAAW;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,IAAW,EAAE,aAAsB,IAAI;QACnD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAChC,OAAO,IAAI,CAAC;SACb;QACD,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAChC,IAAI,KAAK,CAAC,QAAQ,KAAK,uBAAe,CAAC,KAAK,EAAE;gBAC5C,OAAQ,KAAoB,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACxD;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACzB,OAAO,IAAI,CAAC;SACb;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;SAC1B;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QAExE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB;QACpB,OAAO,6BAAgB,CAAC,IAAI,CAAC;IAC/B,CAAC;IAES,YAAY,CAAC,IAAW;QAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACzB,MAAM,EAAE,GAAG,
|
|
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 { createElement } from '../graph/util/element';\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 = createElement(this);\n\n el.updateData(DefaultKey, DefaultMarkData, () => '', this.view);\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"]}
|
package/cjs/view/mark.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ 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';
|
|
8
7
|
export declare class Mark extends GrammarBase implements IMark {
|
|
9
8
|
readonly grammarType: GrammarType;
|
|
10
9
|
protected spec: MarkSpec;
|
|
@@ -66,7 +65,6 @@ export declare class Mark extends GrammarBase implements IMark {
|
|
|
66
65
|
getFieldsByChannel(): Record<string, string>;
|
|
67
66
|
protected init(stage: any, parameters: any): void;
|
|
68
67
|
protected update(spec: MarkSpec): void;
|
|
69
|
-
createElement(): Element;
|
|
70
68
|
protected evaluateJoin(data: any[]): void;
|
|
71
69
|
protected evaluateState(elements: IElement[], stateSpec: MarkStateSpec, parameters: any): void;
|
|
72
70
|
protected evaluateGroupEncode(elements: IElement[], groupEncode: any, parameters: any): {};
|
package/cjs/view/mark.js
CHANGED
|
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
10
10
|
value: !0
|
|
11
11
|
}), exports.Mark = void 0;
|
|
12
12
|
|
|
13
|
-
const vutils_1 = require("@visactor/vutils"), constants_1 = require("../graph/constants"), enums_1 = require("../graph/enums"), differ_1 = require("../graph/mark/differ"), animate_1 = require("../graph/animation/animate"), graphic_1 = require("../graph/util/graphic"), grammar_base_1 = require("./grammar-base"), mark_1 = require("../parse/mark"), util_1 = require("../parse/util"), transform_1 = require("../parse/transform"), encode_1 = require("../graph/mark/encode"), attributes_1 = require("../graph/attributes"), events_extend_1 = __importDefault(require("../graph/util/events-extend")), constants_2 = require("./constants")
|
|
13
|
+
const vutils_1 = require("@visactor/vutils"), constants_1 = require("../graph/constants"), enums_1 = require("../graph/enums"), differ_1 = require("../graph/mark/differ"), animate_1 = require("../graph/animation/animate"), graphic_1 = require("../graph/util/graphic"), grammar_base_1 = require("./grammar-base"), mark_1 = require("../parse/mark"), util_1 = require("../parse/util"), transform_1 = require("../parse/transform"), element_1 = require("../graph/util/element"), encode_1 = require("../graph/mark/encode"), attributes_1 = require("../graph/attributes"), events_extend_1 = __importDefault(require("../graph/util/events-extend")), constants_2 = require("./constants");
|
|
14
14
|
|
|
15
15
|
class Mark extends grammar_base_1.GrammarBase {
|
|
16
16
|
constructor(view, markType, group) {
|
|
@@ -250,7 +250,7 @@ class Mark extends grammar_base_1.GrammarBase {
|
|
|
250
250
|
this.graphicIndex = markIndex;
|
|
251
251
|
}
|
|
252
252
|
update(spec) {
|
|
253
|
-
if (this._context = this.spec.context, this.isUpdated = !0, this.renderContext.progressive || (
|
|
253
|
+
if (this._context = this.spec.context, this.isUpdated = !0, this.renderContext.progressive || (this.animate.updateConfig(spec.animation),
|
|
254
254
|
this.animate.updateState(spec.animationState)), this.markType !== enums_1.GrammarMarkType.group) {
|
|
255
255
|
if ((0, vutils_1.isNil)(spec.zIndex) || this.graphicItem.setAttribute("zIndex", spec.zIndex),
|
|
256
256
|
(0, vutils_1.isNil)(spec.clip) || this.graphicItem.setAttribute("clip", spec.clip),
|
|
@@ -268,9 +268,6 @@ class Mark extends grammar_base_1.GrammarBase {
|
|
|
268
268
|
element.updateGraphicItem();
|
|
269
269
|
}));
|
|
270
270
|
}
|
|
271
|
-
createElement() {
|
|
272
|
-
return new element_1.Element(this);
|
|
273
|
-
}
|
|
274
271
|
evaluateJoin(data) {
|
|
275
272
|
var _a, _b, _c, _d;
|
|
276
273
|
this.needClear = !0;
|
|
@@ -281,19 +278,19 @@ class Mark extends grammar_base_1.GrammarBase {
|
|
|
281
278
|
let element;
|
|
282
279
|
if ((0, vutils_1.isNil)(data)) element = this.elementMap.get(elementKey), element && (element.diffState = enums_1.DiffState.exit); else if ((0,
|
|
283
280
|
vutils_1.isNil)(prevData)) {
|
|
284
|
-
if (element = this.elementMap.has(elementKey) ? this.elementMap.get(elementKey) :
|
|
285
|
-
element.diffState === enums_1.DiffState.exit) {
|
|
281
|
+
if (element = this.elementMap.has(elementKey) ? this.elementMap.get(elementKey) : (0,
|
|
282
|
+
element_1.createElement)(this), element.diffState === enums_1.DiffState.exit) {
|
|
286
283
|
element.diffState = enums_1.DiffState.enter;
|
|
287
284
|
this.animate.getElementAnimators(element, enums_1.DiffState.exit).forEach((animator => animator.stop("start")));
|
|
288
285
|
}
|
|
289
286
|
element.diffState = enums_1.DiffState.enter;
|
|
290
287
|
const groupKey = isCollectionMark ? key : groupKeyGetter(data[0]);
|
|
291
|
-
element.updateData(groupKey, data, keyGetter), this.elementMap.set(elementKey, element),
|
|
288
|
+
element.updateData(groupKey, data, keyGetter, this.view), this.elementMap.set(elementKey, element),
|
|
292
289
|
elements.push(element);
|
|
293
290
|
} else if (element = this.elementMap.get(elementKey), element) {
|
|
294
291
|
element.diffState = enums_1.DiffState.update;
|
|
295
292
|
const groupKey = isCollectionMark ? key : groupKeyGetter(data[0]);
|
|
296
|
-
element.updateData(groupKey, data, keyGetter), elements.push(element);
|
|
293
|
+
element.updateData(groupKey, data, keyGetter, this.view), elements.push(element);
|
|
297
294
|
}
|
|
298
295
|
enterElements.delete(element);
|
|
299
296
|
}));
|
|
@@ -338,7 +335,11 @@ class Mark extends grammar_base_1.GrammarBase {
|
|
|
338
335
|
item.nextAttrs = Object.assign(item.nextAttrs, initAttrs, groupEncodeAttrs[element.groupKey]);
|
|
339
336
|
})) : initAttrs && element.items.forEach((item => {
|
|
340
337
|
item.nextAttrs = Object.assign(item.nextAttrs, initAttrs);
|
|
341
|
-
})), element.encodeItems(element.items, encoders, this._isReentered, parameters)
|
|
338
|
+
})), element.encodeItems(element.items, encoders, this._isReentered, parameters),
|
|
339
|
+
this.isCollectionMark() && (null == groupEncodeAttrs ? void 0 : groupEncodeAttrs[element.groupKey]) && (0,
|
|
340
|
+
vutils_1.isValid)(groupEncodeAttrs[element.groupKey].defined) && (element.items.forEach((item => {
|
|
341
|
+
item.nextAttrs.defined = groupEncodeAttrs[element.groupKey].defined;
|
|
342
|
+
})), delete groupEncodeAttrs[element.groupKey].defined);
|
|
342
343
|
})), this._isReentered = !1, this.evaluateTransform(this._getTransformsAfterEncodeItems(), elements, parameters),
|
|
343
344
|
elements.forEach((element => {
|
|
344
345
|
element.encodeGraphic(this.isCollectionMark() ? null == groupEncodeAttrs ? void 0 : groupEncodeAttrs[element.groupKey] : null);
|
|
@@ -409,20 +410,20 @@ class Mark extends grammar_base_1.GrammarBase {
|
|
|
409
410
|
if (this.isCollectionMark()) return this._groupKeys.forEach(((key, index) => {
|
|
410
411
|
const data = this.renderContext.progressive.groupedData.get(key), groupStep = this.renderContext.progressive.step, dataSlice = data.slice(currentIndex * groupStep, (currentIndex + 1) * groupStep);
|
|
411
412
|
if (0 === currentIndex) {
|
|
412
|
-
const element =
|
|
413
|
-
element.diffState = enums_1.DiffState.enter, element.updateData(key, dataSlice, keyGetter),
|
|
413
|
+
const element = (0, element_1.createElement)(this);
|
|
414
|
+
element.diffState = enums_1.DiffState.enter, element.updateData(key, dataSlice, keyGetter, this.view),
|
|
414
415
|
elements.push(element);
|
|
415
416
|
} else {
|
|
416
417
|
const element = this.elements[index];
|
|
417
|
-
element.updateData(key, dataSlice, keyGetter), elements.push(element);
|
|
418
|
+
element.updateData(key, dataSlice, keyGetter, this.view), elements.push(element);
|
|
418
419
|
}
|
|
419
420
|
})), elements;
|
|
420
421
|
const groupElements = {};
|
|
421
422
|
return this._groupKeys.forEach((key => {
|
|
422
423
|
const data = this.renderContext.progressive.groupedData.get(key), groupStep = this.renderContext.progressive.step, dataSlice = data.slice(currentIndex * groupStep, (currentIndex + 1) * groupStep), group = [];
|
|
423
424
|
dataSlice.forEach((entry => {
|
|
424
|
-
const element =
|
|
425
|
-
element.diffState = enums_1.DiffState.enter, element.updateData(key, [ entry ], keyGetter),
|
|
425
|
+
const element = (0, element_1.createElement)(this);
|
|
426
|
+
element.diffState = enums_1.DiffState.enter, element.updateData(key, [ entry ], keyGetter, this.view),
|
|
426
427
|
group.push(element), elements.push(element);
|
|
427
428
|
})), groupElements[key] = group;
|
|
428
429
|
})), {
|