UNPKG

@visactor/vgrammar-core

Version:

VGrammar is a visual grammar library

62 lines (57 loc) 2.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: !0 }), exports.Component = void 0; const constants_1 = require("../graph/constants"), enums_1 = require("../graph/enums"), factory_1 = require("../core/factory"), mark_1 = require("./mark"); class Component extends mark_1.Mark { constructor(view, componentType, group, mode) { super(view, enums_1.GrammarMarkType.component, group), this._componentDatum = { [constants_1.DefaultKey]: 0 }, this.componentType = componentType, this.spec.type = "component", this.spec.componentType = componentType, this.mode = mode, this._updateComponentEncoders(); } configureComponent(config) { return this.spec.componentConfig = config, this.commit(), this; } addGraphicItem(attrs, groupKey, newGraphicItem) { const graphicItem = null != newGraphicItem ? newGraphicItem : factory_1.Factory.createGraphicComponent(this.componentType, attrs, { mode: this.mode, skipDefault: this.spec.skipTheme }); return graphicItem && (this.emit(enums_1.HOOK_EVENT.BEFORE_ADD_VRENDER_MARK, { graphicItem: graphicItem }), this.graphicParent.appendChild(graphicItem), this.emit(enums_1.HOOK_EVENT.AFTER_ADD_VRENDER_MARK, { graphicItem: graphicItem })), graphicItem; } join(data) { return super.join(data, constants_1.DefaultKey); } encodeState(state, channel, value) { return super.encodeState(state, channel, value), this._updateComponentEncoders(), this; } parseRenderContext() { return { large: !1 }; } _prepareRejoin() { this._componentDatum[constants_1.DefaultKey] += 1; } evaluateJoin(data) { return this.spec.key = constants_1.DefaultKey, data ? (data[constants_1.DefaultKey] = this._componentDatum[constants_1.DefaultKey], this._componentDatum = data) : this._componentDatum = { [constants_1.DefaultKey]: this._componentDatum[constants_1.DefaultKey] }, super.evaluateJoin([ this._componentDatum ]); } _updateComponentEncoders() { this._encoders = this.spec.encode; } _getEncoders() { var _a; return null !== (_a = this._encoders) && void 0 !== _a ? _a : {}; } } exports.Component = Component; //# sourceMappingURL=component.js.map