cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
99 lines (98 loc) • 3.19 kB
JavaScript
import env from "../../../zrender/lib/core/env.mjs";
import { enableClassExtend, enableClassCheck } from "../util/clazz.mjs";
import { AreaStyleMixin } from "./mixin/areaStyle.mjs";
import TextStyleMixin from "./mixin/textStyle.mjs";
import { LineStyleMixin } from "./mixin/lineStyle.mjs";
import { ItemStyleMixin } from "./mixin/itemStyle.mjs";
import { merge, clone, mixin } from "../../../zrender/lib/core/util.mjs";
var Model = function() {
function Model2(option, parentModel, ecModel) {
this.parentModel = parentModel;
this.ecModel = ecModel;
this.option = option;
}
Model2.prototype.init = function(option, parentModel, ecModel) {
};
Model2.prototype.mergeOption = function(option, ecModel) {
merge(this.option, option, true);
};
Model2.prototype.get = function(path, ignoreParent) {
if (path == null) {
return this.option;
}
return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);
};
Model2.prototype.getShallow = function(key, ignoreParent) {
var option = this.option;
var val = option == null ? option : option[key];
if (val == null && !ignoreParent) {
var parentModel = this.parentModel;
if (parentModel) {
val = parentModel.getShallow(key);
}
}
return val;
};
Model2.prototype.getModel = function(path, parentModel) {
var hasPath = path != null;
var pathFinal = hasPath ? this.parsePath(path) : null;
var obj = hasPath ? this._doGet(pathFinal) : this.option;
parentModel = parentModel || this.parentModel && this.parentModel.getModel(this.resolveParentPath(pathFinal));
return new Model2(obj, parentModel, this.ecModel);
};
Model2.prototype.isEmpty = function() {
return this.option == null;
};
Model2.prototype.restoreData = function() {
};
Model2.prototype.clone = function() {
var Ctor = this.constructor;
return new Ctor(clone(this.option));
};
Model2.prototype.parsePath = function(path) {
if (typeof path === "string") {
return path.split(".");
}
return path;
};
Model2.prototype.resolveParentPath = function(path) {
return path;
};
Model2.prototype.isAnimationEnabled = function() {
if (!env.node && this.option) {
if (this.option.animation != null) {
return !!this.option.animation;
} else if (this.parentModel) {
return this.parentModel.isAnimationEnabled();
}
}
};
Model2.prototype._doGet = function(pathArr, parentModel) {
var obj = this.option;
if (!pathArr) {
return obj;
}
for (var i = 0; i < pathArr.length; i++) {
if (!pathArr[i]) {
continue;
}
obj = obj && typeof obj === "object" ? obj[pathArr[i]] : null;
if (obj == null) {
break;
}
}
if (obj == null && parentModel) {
obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);
}
return obj;
};
return Model2;
}();
enableClassExtend(Model);
enableClassCheck(Model);
mixin(Model, LineStyleMixin);
mixin(Model, ItemStyleMixin);
mixin(Model, AreaStyleMixin);
mixin(Model, TextStyleMixin);
var Model$1 = Model;
export { Model$1 as default };