123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- import env from 'zrender/lib/core/env.js';
- import { enableClassExtend, enableClassCheck } from '../util/clazz.js';
- import { AreaStyleMixin } from './mixin/areaStyle.js';
- import TextStyleMixin from './mixin/textStyle.js';
- import { LineStyleMixin } from './mixin/lineStyle.js';
- import { ItemStyleMixin } from './mixin/itemStyle.js';
- import { mixin, clone, merge } from 'zrender/lib/core/util.js';
- var Model = function () {
- function Model(option, parentModel, ecModel) {
- this.parentModel = parentModel;
- this.ecModel = ecModel;
- this.option = option;
-
-
-
-
-
-
-
-
-
- }
- Model.prototype.init = function (option, parentModel, ecModel) {
- var rest = [];
- for (var _i = 3; _i < arguments.length; _i++) {
- rest[_i - 3] = arguments[_i];
- }
- };
-
- Model.prototype.mergeOption = function (option, ecModel) {
- merge(this.option, option, true);
- };
-
-
-
- Model.prototype.get = function (path, ignoreParent) {
- if (path == null) {
- return this.option;
- }
- return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);
- };
- Model.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;
- };
-
-
-
- Model.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 Model(obj, parentModel, this.ecModel);
- };
-
- Model.prototype.isEmpty = function () {
- return this.option == null;
- };
- Model.prototype.restoreData = function () {};
-
- Model.prototype.clone = function () {
- var Ctor = this.constructor;
- return new Ctor(clone(this.option));
- };
-
-
-
-
- Model.prototype.parsePath = function (path) {
- if (typeof path === 'string') {
- return path.split('.');
- }
- return path;
- };
-
-
-
- Model.prototype.resolveParentPath = function (path) {
- return path;
- };
-
- Model.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();
- }
- }
- };
- Model.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 Model;
- }();
- ;
- enableClassExtend(Model);
- enableClassCheck(Model);
- mixin(Model, LineStyleMixin);
- mixin(Model, ItemStyleMixin);
- mixin(Model, AreaStyleMixin);
- mixin(Model, TextStyleMixin);
- export default Model;
|