cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
115 lines (114 loc) • 4.17 kB
JavaScript
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 };