@visactor/vgrammar-core
Version:
VGrammar is a visual grammar library
62 lines (57 loc) • 2.41 kB
JavaScript
"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