UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

115 lines (114 loc) 4.17 kB
import { __extends } from "../../../tslib/tslib.es6.mjs"; import { merge, each, map, indexOf } from "../../../zrender/lib/core/util.mjs"; import Model from "./Model.mjs"; import { getUID, enableSubTypeDefaulter, enableTopologicalTravel } from "../util/component.mjs"; import { isExtendedClass, mountExtend, enableClassManagement, parseClassType } from "../util/clazz.mjs"; import { queryReferringComponents, makeInner } from "../util/model.mjs"; import { fetchLayoutMode, getLayoutParams, mergeLayoutParam } from "../util/layout.mjs"; var inner = makeInner(); var ComponentModel = function(_super) { __extends(ComponentModel2, _super); function ComponentModel2(option, parentModel, ecModel) { var _this = _super.call(this, option, parentModel, ecModel) || this; _this.uid = getUID("ec_cpt_model"); return _this; } ComponentModel2.prototype.init = function(option, parentModel, ecModel) { this.mergeDefaultAndTheme(option, ecModel); }; ComponentModel2.prototype.mergeDefaultAndTheme = function(option, ecModel) { var layoutMode = fetchLayoutMode(this); var inputPositionParams = layoutMode ? getLayoutParams(option) : {}; var themeModel = ecModel.getTheme(); merge(option, themeModel.get(this.mainType)); merge(option, this.getDefaultOption()); if (layoutMode) { mergeLayoutParam(option, inputPositionParams, layoutMode); } }; ComponentModel2.prototype.mergeOption = function(option, ecModel) { merge(this.option, option, true); var layoutMode = fetchLayoutMode(this); if (layoutMode) { mergeLayoutParam(this.option, option, layoutMode); } }; ComponentModel2.prototype.optionUpdated = function(newCptOption, isInit) { }; ComponentModel2.prototype.getDefaultOption = function() { var ctor = this.constructor; if (!isExtendedClass(ctor)) { return ctor.defaultOption; } var fields = inner(this); if (!fields.defaultOption) { var optList = []; var clz = ctor; while (clz) { var opt = clz.prototype.defaultOption; opt && optList.push(opt); clz = clz.superClass; } var defaultOption = {}; for (var i = optList.length - 1; i >= 0; i--) { defaultOption = merge(defaultOption, optList[i], true); } fields.defaultOption = defaultOption; } return fields.defaultOption; }; ComponentModel2.prototype.getReferringComponents = function(mainType, opt) { var indexKey = mainType + "Index"; var idKey = mainType + "Id"; return queryReferringComponents(this.ecModel, mainType, { index: this.get(indexKey, true), id: this.get(idKey, true) }, opt); }; ComponentModel2.prototype.getBoxLayoutParams = function() { var boxLayoutModel = this; return { left: boxLayoutModel.get("left"), top: boxLayoutModel.get("top"), right: boxLayoutModel.get("right"), bottom: boxLayoutModel.get("bottom"), width: boxLayoutModel.get("width"), height: boxLayoutModel.get("height") }; }; ComponentModel2.prototype.getZLevelKey = function() { return ""; }; ComponentModel2.prototype.setZLevel = function(zlevel) { this.option.zlevel = zlevel; }; ComponentModel2.protoInitialize = function() { var proto = ComponentModel2.prototype; proto.type = "component"; proto.id = ""; proto.name = ""; proto.mainType = ""; proto.subType = ""; proto.componentIndex = 0; }(); return ComponentModel2; }(Model); mountExtend(ComponentModel, Model); enableClassManagement(ComponentModel); enableSubTypeDefaulter(ComponentModel); enableTopologicalTravel(ComponentModel, getDependencies); function getDependencies(componentType) { var deps = []; each(ComponentModel.getClassesByMainType(componentType), function(clz) { deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []); }); deps = map(deps, function(type) { return parseClassType(type).main; }); if (componentType !== "dataset" && indexOf(deps, "dataset") <= 0) { deps.unshift("dataset"); } return deps; } var ComponentModel$1 = ComponentModel; export { ComponentModel$1 as default };