PHP Classes

File: vendors/echarts/src/model/Model.js

Recommend this page to a friend!
  Classes of Jorge Castro   Gentelella BladeOne   vendors/echarts/src/model/Model.js   Download  
File: vendors/echarts/src/model/Model.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Gentelella BladeOne
Render templates using Bootstrap for presentation
Author: By
Last change:
Date: 3 years ago
Size: 4,179 bytes
 

Contents

Class file image Download
/** * @module echarts/model/Model */ define(function (require) { var zrUtil = require('zrender/core/util'); var clazzUtil = require('../util/clazz'); /** * @alias module:echarts/model/Model * @constructor * @param {Object} option * @param {module:echarts/model/Model} [parentModel] * @param {module:echarts/model/Global} [ecModel] * @param {Object} extraOpt */ function Model(option, parentModel, ecModel, extraOpt) { /** * @type {module:echarts/model/Model} * @readOnly */ this.parentModel = parentModel; /** * @type {module:echarts/model/Global} * @readOnly */ this.ecModel = ecModel; /** * @type {Object} * @protected */ this.option = option; // Simple optimization if (this.init) { if (arguments.length <= 4) { this.init(option, parentModel, ecModel, extraOpt); } else { this.init.apply(this, arguments); } } } Model.prototype = { constructor: Model, /** * Model ?????? * @param {Object} option */ init: null, /** * ??? Option merge */ mergeOption: function (option) { zrUtil.merge(this.option, option, true); }, /** * @param {string} path * @param {boolean} [ignoreParent=false] * @return {*} */ get: function (path, ignoreParent) { if (!path) { return this.option; } if (typeof path === 'string') { path = path.split('.'); } var obj = this.option; var parentModel = this.parentModel; for (var i = 0; i < path.length; i++) { // Ignore empty if (!path[i]) { continue; } // obj could be number/string/... (like 0) obj = (obj && typeof obj === 'object') ? obj[path[i]] : null; if (obj == null) { break; } } if (obj == null && parentModel && !ignoreParent) { obj = parentModel.get(path); } return obj; }, /** * @param {string} key * @param {boolean} [ignoreParent=false] * @return {*} */ getShallow: function (key, ignoreParent) { var option = this.option; var val = option && option[key]; var parentModel = this.parentModel; if (val == null && parentModel && !ignoreParent) { val = parentModel.getShallow(key); } return val; }, /** * @param {string} path * @param {module:echarts/model/Model} [parentModel] * @return {module:echarts/model/Model} */ getModel: function (path, parentModel) { var obj = this.get(path, true); var thisParentModel = this.parentModel; var model = new Model( obj, parentModel || (thisParentModel && thisParentModel.getModel(path)), this.ecModel ); return model; }, /** * If model has option */ isEmpty: function () { return this.option == null; }, restoreData: function () {}, // Pending clone: function () { var Ctor = this.constructor; return new Ctor(zrUtil.clone(this.option)); }, setReadOnly: function (properties) { clazzUtil.setReadOnly(this, properties); } }; // Enable Model.extend. clazzUtil.enableClassExtend(Model); var mixin = zrUtil.mixin; mixin(Model, require('./mixin/lineStyle')); mixin(Model, require('./mixin/areaStyle')); mixin(Model, require('./mixin/textStyle')); mixin(Model, require('./mixin/itemStyle')); return Model; });