1 |
- {"version":3,"file":"js/chunk-vendors-c81cec27.7469ea61.js","mappings":"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","sources":["webpack://app/./node_modules/echarts/lib/stream/Scheduler.js","webpack://app/./node_modules/echarts/lib/stream/task.js","webpack://app/./node_modules/echarts/lib/theme/dark.js","webpack://app/./node_modules/echarts/lib/theme/light.js","webpack://app/./node_modules/echarts/lib/util/animation.js","webpack://app/./node_modules/echarts/lib/util/clazz.js","webpack://app/./node_modules/echarts/lib/util/component.js","webpack://app/./node_modules/echarts/lib/util/format.js"],"sourcesContent":["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\nvar map = _util.map;\nvar isFunction = _util.isFunction;\nvar createHashMap = _util.createHashMap;\nvar noop = _util.noop;\n\nvar _task = require(\"./task\");\n\nvar createTask = _task.createTask;\n\nvar _component = require(\"../util/component\");\n\nvar getUID = _component.getUID;\n\nvar GlobalModel = require(\"../model/Global\");\n\nvar ExtensionAPI = require(\"../ExtensionAPI\");\n\nvar _model = require(\"../util/model\");\n\nvar normalizeToArray = _model.normalizeToArray;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @module echarts/stream/Scheduler\n */\n\n/**\n * @constructor\n */\nfunction Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\n this.ecInstance = ecInstance;\n this.api = api;\n this.unfinished; // Fix current processors in case that in some rear cases that\n // processors might be registered after echarts instance created.\n // Register processors incrementally for a echarts instance is\n // not supported by this stream architecture.\n\n var dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\n var visualHandlers = this._visualHandlers = visualHandlers.slice();\n this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\n /**\n * @private\n * @type {\n * [handlerUID: string]: {\n * seriesTaskMap?: {\n * [seriesUID: string]: Task\n * },\n * overallTask?: Task\n * }\n * }\n */\n\n this._stageTaskMap = createHashMap();\n}\n\nvar proto = Scheduler.prototype;\n/**\n * @param {module:echarts/model/Global} ecModel\n * @param {Object} payload\n */\n\nproto.restoreData = function (ecModel, payload) {\n // TODO: Only restroe needed series and components, but not all components.\n // Currently `restoreData` of all of the series and component will be called.\n // But some independent components like `title`, `legend`, `graphic`, `toolbox`,\n // `tooltip`, `axisPointer`, etc, do not need series refresh when `setOption`,\n // and some components like coordinate system, axes, dataZoom, visualMap only\n // need their target series refresh.\n // (1) If we are implementing this feature some day, we should consider these cases:\n // if a data processor depends on a component (e.g., dataZoomProcessor depends\n // on the settings of `dataZoom`), it should be re-performed if the component\n // is modified by `setOption`.\n // (2) If a processor depends on sevral series, speicified by its `getTargetSeries`,\n // it should be re-performed when the result array of `getTargetSeries` changed.\n // We use `dependencies` to cover these issues.\n // (3) How to update target series when coordinate system related components modified.\n // TODO: simply the dirty mechanism? Check whether only the case here can set tasks dirty,\n // and this case all of the tasks will be set as dirty.\n ecModel.restoreData(payload); // Theoretically an overall task not only depends on each of its target series, but also\n // depends on all of the series.\n // The overall task is not in pipeline, and `ecModel.restoreData` only set pipeline tasks\n // dirty. If `getTargetSeries` of an overall task returns nothing, we should also ensure\n // that the overall task is set as dirty and to be performed, otherwise it probably cause\n // state chaos. So we have to set dirty of all of the overall tasks manually, otherwise it\n // probably cause state chaos (consider `dataZoomProcessor`).\n\n this._stageTaskMap.each(function (taskRecord) {\n var overallTask = taskRecord.overallTask;\n overallTask && overallTask.dirty();\n });\n}; // If seriesModel provided, incremental threshold is check by series data.\n\n\nproto.getPerformArgs = function (task, isBlock) {\n // For overall task\n if (!task.__pipeline) {\n return;\n }\n\n var pipeline = this._pipelineMap.get(task.__pipeline.id);\n\n var pCtx = pipeline.context;\n var incremental = !isBlock && pipeline.progressiveEnabled && (!pCtx || pCtx.progressiveRender) && task.__idxInPipeline > pipeline.blockIndex;\n var step = incremental ? pipeline.step : null;\n var modDataCount = pCtx && pCtx.modDataCount;\n var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\n return {\n step: step,\n modBy: modBy,\n modDataCount: modDataCount\n };\n};\n\nproto.getPipeline = function (pipelineId) {\n return this._pipelineMap.get(pipelineId);\n};\n/**\n * Current, progressive rendering starts from visual and layout.\n * Always detect render mode in the same stage, avoiding that incorrect\n * detection caused by data filtering.\n * Caution:\n * `updateStreamModes` use `seriesModel.getData()`.\n */\n\n\nproto.updateStreamModes = function (seriesModel, view) {\n var pipeline = this._pipelineMap.get(seriesModel.uid);\n\n var data = seriesModel.getData();\n var dataLen = data.count(); // `progressiveRender` means that can render progressively in each\n // animation frame. Note that some types of series do not provide\n // `view.incrementalPrepareRender` but support `chart.appendData`. We\n // use the term `incremental` but not `progressive` to describe the\n // case that `chart.appendData`.\n\n var progressiveRender = pipeline.progressiveEnabled && view.incrementalPrepareRender && dataLen >= pipeline.threshold;\n var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold'); // TODO: modDataCount should not updated if `appendData`, otherwise cause whole repaint.\n // see `test/candlestick-large3.html`\n\n var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\n seriesModel.pipelineContext = pipeline.context = {\n progressiveRender: progressiveRender,\n modDataCount: modDataCount,\n large: large\n };\n};\n\nproto.restorePipelines = function (ecModel) {\n var scheduler = this;\n var pipelineMap = scheduler._pipelineMap = createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n var progressive = seriesModel.getProgressive();\n var pipelineId = seriesModel.uid;\n pipelineMap.set(pipelineId, {\n id: pipelineId,\n head: null,\n tail: null,\n threshold: seriesModel.getProgressiveThreshold(),\n progressiveEnabled: progressive && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\n blockIndex: -1,\n step: Math.round(progressive || 700),\n count: 0\n });\n pipe(scheduler, seriesModel, seriesModel.dataTask);\n });\n};\n\nproto.prepareStageTasks = function () {\n var stageTaskMap = this._stageTaskMap;\n var ecModel = this.ecInstance.getModel();\n var api = this.api;\n each(this._allHandlers, function (handler) {\n var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, []);\n handler.reset && createSeriesStageTask(this, handler, record, ecModel, api);\n handler.overallReset && createOverallStageTask(this, handler, record, ecModel, api);\n }, this);\n};\n\nproto.prepareView = function (view, model, ecModel, api) {\n var renderTask = view.renderTask;\n var context = renderTask.context;\n context.model = model;\n context.ecModel = ecModel;\n context.api = api;\n renderTask.__block = !view.incrementalPrepareRender;\n pipe(this, model, renderTask);\n};\n\nproto.performDataProcessorTasks = function (ecModel, payload) {\n // If we do not use `block` here, it should be considered when to update modes.\n performStageTasks(this, this._dataProcessorHandlers, ecModel, payload, {\n block: true\n });\n}; // opt\n// opt.visualType: 'visual' or 'layout'\n// opt.setDirty\n\n\nproto.performVisualTasks = function (ecModel, payload, opt) {\n performStageTasks(this, this._visualHandlers, ecModel, payload, opt);\n};\n\nfunction performStageTasks(scheduler, stageHandlers, ecModel, payload, opt) {\n opt = opt || {};\n var unfinished;\n each(stageHandlers, function (stageHandler, idx) {\n if (opt.visualType && opt.visualType !== stageHandler.visualType) {\n return;\n }\n\n var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\n\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\n var overallTask = stageHandlerRecord.overallTask;\n\n if (overallTask) {\n var overallNeedDirty;\n var agentStubMap = overallTask.agentStubMap;\n agentStubMap.each(function (stub) {\n if (needSetDirty(opt, stub)) {\n stub.dirty();\n overallNeedDirty = true;\n }\n });\n overallNeedDirty && overallTask.dirty();\n updatePayload(overallTask, payload);\n var performArgs = scheduler.getPerformArgs(overallTask, opt.block); // Execute stubs firstly, which may set the overall task dirty,\n // then execute the overall task. And stub will call seriesModel.setData,\n // which ensures that in the overallTask seriesModel.getData() will not\n // return incorrect data.\n\n agentStubMap.each(function (stub) {\n stub.perform(performArgs);\n });\n unfinished |= overallTask.perform(performArgs);\n } else if (seriesTaskMap) {\n seriesTaskMap.each(function (task, pipelineId) {\n if (needSetDirty(opt, task)) {\n task.dirty();\n }\n\n var performArgs = scheduler.getPerformArgs(task, opt.block); // FIXME\n // if intending to decalare `performRawSeries` in handlers, only\n // stream-independent (specifically, data item independent) operations can be\n // performed. Because is a series is filtered, most of the tasks will not\n // be performed. A stream-dependent operation probably cause wrong biz logic.\n // Perhaps we should not provide a separate callback for this case instead\n // of providing the config `performRawSeries`. The stream-dependent operaions\n // and stream-independent operations should better not be mixed.\n\n performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model);\n updatePayload(task, payload);\n unfinished |= task.perform(performArgs);\n });\n }\n });\n\n function needSetDirty(opt, task) {\n return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\n }\n\n scheduler.unfinished |= unfinished;\n}\n\nproto.performSeriesTasks = function (ecModel) {\n var unfinished;\n ecModel.eachSeries(function (seriesModel) {\n // Progress to the end for dataInit and dataRestore.\n unfinished |= seriesModel.dataTask.perform();\n });\n this.unfinished |= unfinished;\n};\n\nproto.plan = function () {\n // Travel pipelines, check block.\n this._pipelineMap.each(function (pipeline) {\n var task = pipeline.tail;\n\n do {\n if (task.__block) {\n pipeline.blockIndex = task.__idxInPipeline;\n break;\n }\n\n task = task.getUpstream();\n } while (task);\n });\n};\n\nvar updatePayload = proto.updatePayload = function (task, payload) {\n payload !== 'remain' && (task.context.payload = payload);\n};\n\nfunction createSeriesStageTask(scheduler, stageHandler, stageHandlerRecord, ecModel, api) {\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap || (stageHandlerRecord.seriesTaskMap = createHashMap());\n var seriesType = stageHandler.seriesType;\n var getTargetSeries = stageHandler.getTargetSeries; // If a stageHandler should cover all series, `createOnAllSeries` should be declared mandatorily,\n // to avoid some typo or abuse. Otherwise if an extension do not specify a `seriesType`,\n // it works but it may cause other irrelevant charts blocked.\n\n if (stageHandler.createOnAllSeries) {\n ecModel.eachRawSeries(create);\n } else if (seriesType) {\n ecModel.eachRawSeriesByType(seriesType, create);\n } else if (getTargetSeries) {\n getTargetSeries(ecModel, api).each(create);\n }\n\n function create(seriesModel) {\n var pipelineId = seriesModel.uid; // Init tasks for each seriesModel only once.\n // Reuse original task instance.\n\n var task = seriesTaskMap.get(pipelineId) || seriesTaskMap.set(pipelineId, createTask({\n plan: seriesTaskPlan,\n reset: seriesTaskReset,\n count: seriesTaskCount\n }));\n task.context = {\n model: seriesModel,\n ecModel: ecModel,\n api: api,\n useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\n plan: stageHandler.plan,\n reset: stageHandler.reset,\n scheduler: scheduler\n };\n pipe(scheduler, seriesModel, task);\n } // Clear unused series tasks.\n\n\n var pipelineMap = scheduler._pipelineMap;\n seriesTaskMap.each(function (task, pipelineId) {\n if (!pipelineMap.get(pipelineId)) {\n task.dispose();\n seriesTaskMap.removeKey(pipelineId);\n }\n });\n}\n\nfunction createOverallStageTask(scheduler, stageHandler, stageHandlerRecord, ecModel, api) {\n var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask // For overall task, the function only be called on reset stage.\n || createTask({\n reset: overallTaskReset\n });\n overallTask.context = {\n ecModel: ecModel,\n api: api,\n overallReset: stageHandler.overallReset,\n scheduler: scheduler\n }; // Reuse orignal stubs.\n\n var agentStubMap = overallTask.agentStubMap = overallTask.agentStubMap || createHashMap();\n var seriesType = stageHandler.seriesType;\n var getTargetSeries = stageHandler.getTargetSeries;\n var overallProgress = true;\n var modifyOutputEnd = stageHandler.modifyOutputEnd; // An overall task with seriesType detected or has `getTargetSeries`, we add\n // stub in each pipelines, it will set the overall task dirty when the pipeline\n // progress. Moreover, to avoid call the overall task each frame (too frequent),\n // we set the pipeline block.\n\n if (seriesType) {\n ecModel.eachRawSeriesByType(seriesType, createStub);\n } else if (getTargetSeries) {\n getTargetSeries(ecModel, api).each(createStub);\n } // Otherwise, (usually it is legancy case), the overall task will only be\n // executed when upstream dirty. Otherwise the progressive rendering of all\n // pipelines will be disabled unexpectedly. But it still needs stubs to receive\n // dirty info from upsteam.\n else {\n overallProgress = false;\n each(ecModel.getSeries(), createStub);\n }\n\n function createStub(seriesModel) {\n var pipelineId = seriesModel.uid;\n var stub = agentStubMap.get(pipelineId);\n\n if (!stub) {\n stub = agentStubMap.set(pipelineId, createTask({\n reset: stubReset,\n onDirty: stubOnDirty\n })); // When the result of `getTargetSeries` changed, the overallTask\n // should be set as dirty and re-performed.\n\n overallTask.dirty();\n }\n\n stub.context = {\n model: seriesModel,\n overallProgress: overallProgress,\n modifyOutputEnd: modifyOutputEnd\n };\n stub.agent = overallTask;\n stub.__block = overallProgress;\n pipe(scheduler, seriesModel, stub);\n } // Clear unused stubs.\n\n\n var pipelineMap = scheduler._pipelineMap;\n agentStubMap.each(function (stub, pipelineId) {\n if (!pipelineMap.get(pipelineId)) {\n stub.dispose(); // When the result of `getTargetSeries` changed, the overallTask\n // should be set as dirty and re-performed.\n\n overallTask.dirty();\n agentStubMap.removeKey(pipelineId);\n }\n });\n}\n\nfunction overallTaskReset(context) {\n context.overallReset(context.ecModel, context.api, context.payload);\n}\n\nfunction stubReset(context, upstreamContext) {\n return context.overallProgress && stubProgress;\n}\n\nfunction stubProgress() {\n this.agent.dirty();\n this.getDownstream().dirty();\n}\n\nfunction stubOnDirty() {\n this.agent && this.agent.dirty();\n}\n\nfunction seriesTaskPlan(context) {\n return context.plan && context.plan(context.model, context.ecModel, context.api, context.payload);\n}\n\nfunction seriesTaskReset(context) {\n if (context.useClearVisual) {\n context.data.clearAllVisual();\n }\n\n var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\n return resetDefines.length > 1 ? map(resetDefines, function (v, idx) {\n return makeSeriesTaskProgress(idx);\n }) : singleSeriesTaskProgress;\n}\n\nvar singleSeriesTaskProgress = makeSeriesTaskProgress(0);\n\nfunction makeSeriesTaskProgress(resetDefineIdx) {\n return function (params, context) {\n var data = context.data;\n var resetDefine = context.resetDefines[resetDefineIdx];\n\n if (resetDefine && resetDefine.dataEach) {\n for (var i = params.start; i < params.end; i++) {\n resetDefine.dataEach(data, i);\n }\n } else if (resetDefine && resetDefine.progress) {\n resetDefine.progress(params, data);\n }\n };\n}\n\nfunction seriesTaskCount(context) {\n return context.data.count();\n}\n\nfunction pipe(scheduler, seriesModel, task) {\n var pipelineId = seriesModel.uid;\n\n var pipeline = scheduler._pipelineMap.get(pipelineId);\n\n !pipeline.head && (pipeline.head = task);\n pipeline.tail && pipeline.tail.pipe(task);\n pipeline.tail = task;\n task.__idxInPipeline = pipeline.count++;\n task.__pipeline = pipeline;\n}\n\nScheduler.wrapStageHandler = function (stageHandler, visualType) {\n if (isFunction(stageHandler)) {\n stageHandler = {\n overallReset: stageHandler,\n seriesType: detectSeriseType(stageHandler)\n };\n }\n\n stageHandler.uid = getUID('stageHandler');\n visualType && (stageHandler.visualType = visualType);\n return stageHandler;\n};\n/**\n * Only some legacy stage handlers (usually in echarts extensions) are pure function.\n * To ensure that they can work normally, they should work in block mode, that is,\n * they should not be started util the previous tasks finished. So they cause the\n * progressive rendering disabled. We try to detect the series type, to narrow down\n * the block range to only the series type they concern, but not all series.\n */\n\n\nfunction detectSeriseType(legacyFunc) {\n seriesType = null;\n\n try {\n // Assume there is no async when calling `eachSeriesByType`.\n legacyFunc(ecModelMock, apiMock);\n } catch (e) {}\n\n return seriesType;\n}\n\nvar ecModelMock = {};\nvar apiMock = {};\nvar seriesType;\nmockMethods(ecModelMock, GlobalModel);\nmockMethods(apiMock, ExtensionAPI);\n\necModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\n seriesType = type;\n};\n\necModelMock.eachComponent = function (cond) {\n if (cond.mainType === 'series' && cond.subType) {\n seriesType = cond.subType;\n }\n};\n\nfunction mockMethods(target, Clz) {\n /* eslint-disable */\n for (var name in Clz.prototype) {\n // Do not use hasOwnProperty\n target[name] = noop;\n }\n /* eslint-enable */\n\n}\n\nvar _default = Scheduler;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar assert = _util.assert;\nvar isArray = _util.isArray;\n\nvar _config = require(\"../config\");\n\nvar __DEV__ = _config.__DEV__;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {Object} define\n * @return See the return of `createTask`.\n */\nfunction createTask(define) {\n return new Task(define);\n}\n/**\n * @constructor\n * @param {Object} define\n * @param {Function} define.reset Custom reset\n * @param {Function} [define.plan] Returns 'reset' indicate reset immediately.\n * @param {Function} [define.count] count is used to determin data task.\n * @param {Function} [define.onDirty] count is used to determin data task.\n */\n\n\nfunction Task(define) {\n define = define || {};\n this._reset = define.reset;\n this._plan = define.plan;\n this._count = define.count;\n this._onDirty = define.onDirty;\n this._dirty = true; // Context must be specified implicitly, to\n // avoid miss update context when model changed.\n\n this.context;\n}\n\nvar taskProto = Task.prototype;\n/**\n * @param {Object} performArgs\n * @param {number} [performArgs.step] Specified step.\n * @param {number} [performArgs.skip] Skip customer perform call.\n * @param {number} [performArgs.modBy] Sampling window size.\n * @param {number} [performArgs.modDataCount] Sampling count.\n */\n\ntaskProto.perform = function (performArgs) {\n var upTask = this._upstream;\n var skip = performArgs && performArgs.skip; // TODO some refactor.\n // Pull data. Must pull data each time, because context.data\n // may be updated by Series.setData.\n\n if (this._dirty && upTask) {\n var context = this.context;\n context.data = context.outputData = upTask.context.outputData;\n }\n\n if (this.__pipeline) {\n this.__pipeline.currentTask = this;\n }\n\n var planResult;\n\n if (this._plan && !skip) {\n planResult = this._plan(this.context);\n } // Support sharding by mod, which changes the render sequence and makes the rendered graphic\n // elements uniformed distributed when progress, especially when moving or zooming.\n\n\n var lastModBy = normalizeModBy(this._modBy);\n var lastModDataCount = this._modDataCount || 0;\n var modBy = normalizeModBy(performArgs && performArgs.modBy);\n var modDataCount = performArgs && performArgs.modDataCount || 0;\n\n if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\n planResult = 'reset';\n }\n\n function normalizeModBy(val) {\n !(val >= 1) && (val = 1); // jshint ignore:line\n\n return val;\n }\n\n var forceFirstProgress;\n\n if (this._dirty || planResult === 'reset') {\n this._dirty = false;\n forceFirstProgress = reset(this, skip);\n }\n\n this._modBy = modBy;\n this._modDataCount = modDataCount;\n var step = performArgs && performArgs.step;\n\n if (upTask) {\n this._dueEnd = upTask._outputDueEnd;\n } // DataTask or overallTask\n else {\n this._dueEnd = this._count ? this._count(this.context) : Infinity;\n } // Note: Stubs, that its host overall task let it has progress, has progress.\n // If no progress, pass index from upstream to downstream each time plan called.\n\n\n if (this._progress) {\n var start = this._dueIndex;\n var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\n\n if (!skip && (forceFirstProgress || start < end)) {\n var progress = this._progress;\n\n if (isArray(progress)) {\n for (var i = 0; i < progress.length; i++) {\n doProgress(this, progress[i], start, end, modBy, modDataCount);\n }\n } else {\n doProgress(this, progress, start, end, modBy, modDataCount);\n }\n }\n\n this._dueIndex = end; // If no `outputDueEnd`, assume that output data and\n // input data is the same, so use `dueIndex` as `outputDueEnd`.\n\n var outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : end;\n this._outputDueEnd = outputDueEnd;\n } else {\n // (1) Some overall task has no progress.\n // (2) Stubs, that its host overall task do not let it has progress, has no progress.\n // This should always be performed so it can be passed to downstream.\n this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : this._dueEnd;\n }\n\n return this.unfinished();\n};\n\nvar iterator = function () {\n var end;\n var current;\n var modBy;\n var modDataCount;\n var winCount;\n var it = {\n reset: function (s, e, sStep, sCount) {\n current = s;\n end = e;\n modBy = sStep;\n modDataCount = sCount;\n winCount = Math.ceil(modDataCount / modBy);\n it.next = modBy > 1 && modDataCount > 0 ? modNext : sequentialNext;\n }\n };\n return it;\n\n function sequentialNext() {\n return current < end ? current++ : null;\n }\n\n function modNext() {\n var dataIndex = current % winCount * modBy + Math.ceil(current / winCount);\n var result = current >= end ? null : dataIndex < modDataCount ? dataIndex // If modDataCount is smaller than data.count() (consider `appendData` case),\n // Use normal linear rendering mode.\n : current;\n current++;\n return result;\n }\n}();\n\ntaskProto.dirty = function () {\n this._dirty = true;\n this._onDirty && this._onDirty(this.context);\n};\n\nfunction doProgress(taskIns, progress, start, end, modBy, modDataCount) {\n iterator.reset(start, end, modBy, modDataCount);\n taskIns._callingProgress = progress;\n\n taskIns._callingProgress({\n start: start,\n end: end,\n count: end - start,\n next: iterator.next\n }, taskIns.context);\n}\n\nfunction reset(taskIns, skip) {\n taskIns._dueIndex = taskIns._outputDueEnd = taskIns._dueEnd = 0;\n taskIns._settedOutputEnd = null;\n var progress;\n var forceFirstProgress;\n\n if (!skip && taskIns._reset) {\n progress = taskIns._reset(taskIns.context);\n\n if (progress && progress.progress) {\n forceFirstProgress = progress.forceFirstProgress;\n progress = progress.progress;\n } // To simplify no progress checking, array must has item.\n\n\n if (isArray(progress) && !progress.length) {\n progress = null;\n }\n }\n\n taskIns._progress = progress;\n taskIns._modBy = taskIns._modDataCount = null;\n var downstream = taskIns._downstream;\n downstream && downstream.dirty();\n return forceFirstProgress;\n}\n/**\n * @return {boolean}\n */\n\n\ntaskProto.unfinished = function () {\n return this._progress && this._dueIndex < this._dueEnd;\n};\n/**\n * @param {Object} downTask The downstream task.\n * @return {Object} The downstream task.\n */\n\n\ntaskProto.pipe = function (downTask) {\n // If already downstream, do not dirty downTask.\n if (this._downstream !== downTask || this._dirty) {\n this._downstream = downTask;\n downTask._upstream = this;\n downTask.dirty();\n }\n};\n\ntaskProto.dispose = function () {\n if (this._disposed) {\n return;\n }\n\n this._upstream && (this._upstream._downstream = null);\n this._downstream && (this._downstream._upstream = null);\n this._dirty = false;\n this._disposed = true;\n};\n\ntaskProto.getUpstream = function () {\n return this._upstream;\n};\n\ntaskProto.getDownstream = function () {\n return this._downstream;\n};\n\ntaskProto.setOutputEnd = function (end) {\n // This only happend in dataTask, dataZoom, map, currently.\n // where dataZoom do not set end each time, but only set\n // when reset. So we should record the setted end, in case\n // that the stub of dataZoom perform again and earse the\n // setted end by upstream.\n this._outputDueEnd = this._settedOutputEnd = end;\n}; ///////////////////////////////////////////////////////////\n// For stream debug (Should be commented out after used!)\n// Usage: printTask(this, 'begin');\n// Usage: printTask(this, null, {someExtraProp});\n// function printTask(task, prefix, extra) {\n// window.ecTaskUID == null && (window.ecTaskUID = 0);\n// task.uidDebug == null && (task.uidDebug = `task_${window.ecTaskUID++}`);\n// task.agent && task.agent.uidDebug == null && (task.agent.uidDebug = `task_${window.ecTaskUID++}`);\n// var props = [];\n// if (task.__pipeline) {\n// var val = `${task.__idxInPipeline}/${task.__pipeline.tail.__idxInPipeline} ${task.agent ? '(stub)' : ''}`;\n// props.push({text: 'idx', value: val});\n// } else {\n// var stubCount = 0;\n// task.agentStubMap.each(() => stubCount++);\n// props.push({text: 'idx', value: `overall (stubs: ${stubCount})`});\n// }\n// props.push({text: 'uid', value: task.uidDebug});\n// if (task.__pipeline) {\n// props.push({text: 'pid', value: task.__pipeline.id});\n// task.agent && props.push(\n// {text: 'stubFor', value: task.agent.uidDebug}\n// );\n// }\n// props.push(\n// {text: 'dirty', value: task._dirty},\n// {text: 'dueIndex', value: task._dueIndex},\n// {text: 'dueEnd', value: task._dueEnd},\n// {text: 'outputDueEnd', value: task._outputDueEnd}\n// );\n// if (extra) {\n// Object.keys(extra).forEach(key => {\n// props.push({text: key, value: extra[key]});\n// });\n// }\n// var args = ['color: blue'];\n// var msg = `%c[${prefix || 'T'}] %c` + props.map(item => (\n// args.push('color: black', 'color: red'),\n// `${item.text}: %c${item.value}`\n// )).join('%c, ');\n// console.log.apply(console, [msg].concat(args));\n// // console.log(this);\n// }\n\n\nexports.createTask = createTask;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar contrastColor = '#eee';\n\nvar axisCommon = function () {\n return {\n axisLine: {\n lineStyle: {\n color: contrastColor\n }\n },\n axisTick: {\n lineStyle: {\n color: contrastColor\n }\n },\n axisLabel: {\n textStyle: {\n color: contrastColor\n }\n },\n splitLine: {\n lineStyle: {\n type: 'dashed',\n color: '#aaa'\n }\n },\n splitArea: {\n areaStyle: {\n color: contrastColor\n }\n }\n };\n};\n\nvar colorPalette = ['#dd6b66', '#759aa0', '#e69d87', '#8dc1a9', '#ea7e53', '#eedd78', '#73a373', '#73b9bc', '#7289ab', '#91ca8c', '#f49f42'];\nvar theme = {\n color: colorPalette,\n backgroundColor: '#333',\n tooltip: {\n axisPointer: {\n lineStyle: {\n color: contrastColor\n },\n crossStyle: {\n color: contrastColor\n },\n label: {\n color: '#000'\n }\n }\n },\n legend: {\n textStyle: {\n color: contrastColor\n }\n },\n textStyle: {\n color: contrastColor\n },\n title: {\n textStyle: {\n color: contrastColor\n }\n },\n toolbox: {\n iconStyle: {\n normal: {\n borderColor: contrastColor\n }\n }\n },\n dataZoom: {\n textStyle: {\n color: contrastColor\n }\n },\n visualMap: {\n textStyle: {\n color: contrastColor\n }\n },\n timeline: {\n lineStyle: {\n color: contrastColor\n },\n itemStyle: {\n normal: {\n color: colorPalette[1]\n }\n },\n label: {\n normal: {\n textStyle: {\n color: contrastColor\n }\n }\n },\n controlStyle: {\n normal: {\n color: contrastColor,\n borderColor: contrastColor\n }\n }\n },\n timeAxis: axisCommon(),\n logAxis: axisCommon(),\n valueAxis: axisCommon(),\n categoryAxis: axisCommon(),\n line: {\n symbol: 'circle'\n },\n graph: {\n color: colorPalette\n },\n gauge: {\n title: {\n textStyle: {\n color: contrastColor\n }\n }\n },\n candlestick: {\n itemStyle: {\n normal: {\n color: '#FD1050',\n color0: '#0CF49B',\n borderColor: '#FD1050',\n borderColor0: '#0CF49B'\n }\n }\n }\n};\ntheme.categoryAxis.splitLine.show = false;\nvar _default = theme;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar colorAll = ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'];\nvar _default = {\n color: colorAll,\n colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll]\n};\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {number} [time=500] Time in ms\n * @param {string} [easing='linear']\n * @param {number} [delay=0]\n * @param {Function} [callback]\n *\n * @example\n * // Animate position\n * animation\n * .createWrap()\n * .add(el1, {position: [10, 10]})\n * .add(el2, {shape: {width: 500}, style: {fill: 'red'}}, 400)\n * .done(function () { // done })\n * .start('cubicOut');\n */\nfunction createWrap() {\n var storage = [];\n var elExistsMap = {};\n var doneCallback;\n return {\n /**\n * Caution: a el can only be added once, otherwise 'done'\n * might not be called. This method checks this (by el.id),\n * suppresses adding and returns false when existing el found.\n *\n * @param {modele:zrender/Element} el\n * @param {Object} target\n * @param {number} [time=500]\n * @param {number} [delay=0]\n * @param {string} [easing='linear']\n * @return {boolean} Whether adding succeeded.\n *\n * @example\n * add(el, target, time, delay, easing);\n * add(el, target, time, easing);\n * add(el, target, time);\n * add(el, target);\n */\n add: function (el, target, time, delay, easing) {\n if (zrUtil.isString(delay)) {\n easing = delay;\n delay = 0;\n }\n\n if (elExistsMap[el.id]) {\n return false;\n }\n\n elExistsMap[el.id] = 1;\n storage.push({\n el: el,\n target: target,\n time: time,\n delay: delay,\n easing: easing\n });\n return true;\n },\n\n /**\n * Only execute when animation finished. Will not execute when any\n * of 'stop' or 'stopAnimation' called.\n *\n * @param {Function} callback\n */\n done: function (callback) {\n doneCallback = callback;\n return this;\n },\n\n /**\n * Will stop exist animation firstly.\n */\n start: function () {\n var count = storage.length;\n\n for (var i = 0, len = storage.length; i < len; i++) {\n var item = storage[i];\n item.el.animateTo(item.target, item.time, item.delay, item.easing, done);\n }\n\n return this;\n\n function done() {\n count--;\n\n if (!count) {\n storage.length = 0;\n elExistsMap = {};\n doneCallback && doneCallback();\n }\n }\n }\n };\n}\n\nexports.createWrap = createWrap;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar TYPE_DELIMITER = '.';\nvar IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\n/**\n * Notice, parseClassType('') should returns {main: '', sub: ''}\n * @public\n */\n\nfunction parseClassType(componentType) {\n var ret = {\n main: '',\n sub: ''\n };\n\n if (componentType) {\n componentType = componentType.split(TYPE_DELIMITER);\n ret.main = componentType[0] || '';\n ret.sub = componentType[1] || '';\n }\n\n return ret;\n}\n/**\n * @public\n */\n\n\nfunction checkClassType(componentType) {\n zrUtil.assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\n}\n/**\n * @public\n */\n\n\nfunction enableClassExtend(RootClass, mandatoryMethods) {\n RootClass.$constructor = RootClass;\n\n RootClass.extend = function (proto) {\n var superClass = this;\n\n var ExtendedClass = function () {\n if (!proto.$constructor) {\n superClass.apply(this, arguments);\n } else {\n proto.$constructor.apply(this, arguments);\n }\n };\n\n zrUtil.extend(ExtendedClass.prototype, proto);\n ExtendedClass.extend = this.extend;\n ExtendedClass.superCall = superCall;\n ExtendedClass.superApply = superApply;\n zrUtil.inherits(ExtendedClass, this);\n ExtendedClass.superClass = superClass;\n return ExtendedClass;\n };\n}\n\nvar classBase = 0;\n/**\n * Can not use instanceof, consider different scope by\n * cross domain or es module import in ec extensions.\n * Mount a method \"isInstance()\" to Clz.\n */\n\nfunction enableClassCheck(Clz) {\n var classAttr = ['__\\0is_clz', classBase++, Math.random().toFixed(3)].join('_');\n Clz.prototype[classAttr] = true;\n\n Clz.isInstance = function (obj) {\n return !!(obj && obj[classAttr]);\n };\n} // superCall should have class info, which can not be fetch from 'this'.\n// Consider this case:\n// class A has method f,\n// class B inherits class A, overrides method f, f call superApply('f'),\n// class C inherits class B, do not overrides method f,\n// then when method of class C is called, dead loop occured.\n\n\nfunction superCall(context, methodName) {\n var args = zrUtil.slice(arguments, 2);\n return this.superClass.prototype[methodName].apply(context, args);\n}\n\nfunction superApply(context, methodName, args) {\n return this.superClass.prototype[methodName].apply(context, args);\n}\n/**\n * @param {Object} entity\n * @param {Object} options\n * @param {boolean} [options.registerWhenExtend]\n * @public\n */\n\n\nfunction enableClassManagement(entity, options) {\n options = options || {};\n /**\n * Component model classes\n * key: componentType,\n * value:\n * componentClass, when componentType is 'xxx'\n * or Object.<subKey, componentClass>, when componentType is 'xxx.yy'\n * @type {Object}\n */\n\n var storage = {};\n\n entity.registerClass = function (Clazz, componentType) {\n if (componentType) {\n checkClassType(componentType);\n componentType = parseClassType(componentType);\n\n if (!componentType.sub) {\n storage[componentType.main] = Clazz;\n } else if (componentType.sub !== IS_CONTAINER) {\n var container = makeContainer(componentType);\n container[componentType.sub] = Clazz;\n }\n }\n\n return Clazz;\n };\n\n entity.getClass = function (componentMainType, subType, throwWhenNotFound) {\n var Clazz = storage[componentMainType];\n\n if (Clazz && Clazz[IS_CONTAINER]) {\n Clazz = subType ? Clazz[subType] : null;\n }\n\n if (throwWhenNotFound && !Clazz) {\n throw new Error(!subType ? componentMainType + '.' + 'type should be specified.' : 'Component ' + componentMainType + '.' + (subType || '') + ' not exists. Load it first.');\n }\n\n return Clazz;\n };\n\n entity.getClassesByMainType = function (componentType) {\n componentType = parseClassType(componentType);\n var result = [];\n var obj = storage[componentType.main];\n\n if (obj && obj[IS_CONTAINER]) {\n zrUtil.each(obj, function (o, type) {\n type !== IS_CONTAINER && result.push(o);\n });\n } else {\n result.push(obj);\n }\n\n return result;\n };\n\n entity.hasClass = function (componentType) {\n // Just consider componentType.main.\n componentType = parseClassType(componentType);\n return !!storage[componentType.main];\n };\n /**\n * @return {Array.<string>} Like ['aa', 'bb'], but can not be ['aa.xx']\n */\n\n\n entity.getAllClassMainTypes = function () {\n var types = [];\n zrUtil.each(storage, function (obj, type) {\n types.push(type);\n });\n return types;\n };\n /**\n * If a main type is container and has sub types\n * @param {string} mainType\n * @return {boolean}\n */\n\n\n entity.hasSubTypes = function (componentType) {\n componentType = parseClassType(componentType);\n var obj = storage[componentType.main];\n return obj && obj[IS_CONTAINER];\n };\n\n entity.parseClassType = parseClassType;\n\n function makeContainer(componentType) {\n var container = storage[componentType.main];\n\n if (!container || !container[IS_CONTAINER]) {\n container = storage[componentType.main] = {};\n container[IS_CONTAINER] = true;\n }\n\n return container;\n }\n\n if (options.registerWhenExtend) {\n var originalExtend = entity.extend;\n\n if (originalExtend) {\n entity.extend = function (proto) {\n var ExtendedClass = originalExtend.call(this, proto);\n return entity.registerClass(ExtendedClass, proto.type);\n };\n }\n }\n\n return entity;\n}\n/**\n * @param {string|Array.<string>} properties\n */\n\n\nfunction setReadOnly(obj, properties) {// FIXME It seems broken in IE8 simulation of IE11\n // if (!zrUtil.isArray(properties)) {\n // properties = properties != null ? [properties] : [];\n // }\n // zrUtil.each(properties, function (prop) {\n // var value = obj[prop];\n // Object.defineProperty\n // && Object.defineProperty(obj, prop, {\n // value: value, writable: false\n // });\n // zrUtil.isArray(obj[prop])\n // && Object.freeze\n // && Object.freeze(obj[prop]);\n // });\n}\n\nexports.parseClassType = parseClassType;\nexports.enableClassExtend = enableClassExtend;\nexports.enableClassCheck = enableClassCheck;\nexports.enableClassManagement = enableClassManagement;\nexports.setReadOnly = setReadOnly;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _clazz = require(\"./clazz\");\n\nvar parseClassType = _clazz.parseClassType;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar base = 0;\n/**\n * @public\n * @param {string} type\n * @return {string}\n */\n\nfunction getUID(type) {\n // Considering the case of crossing js context,\n // use Math.random to make id as unique as possible.\n return [type || '', base++, Math.random().toFixed(5)].join('_');\n}\n/**\n * @inner\n */\n\n\nfunction enableSubTypeDefaulter(entity) {\n var subTypeDefaulters = {};\n\n entity.registerSubTypeDefaulter = function (componentType, defaulter) {\n componentType = parseClassType(componentType);\n subTypeDefaulters[componentType.main] = defaulter;\n };\n\n entity.determineSubType = function (componentType, option) {\n var type = option.type;\n\n if (!type) {\n var componentTypeMain = parseClassType(componentType).main;\n\n if (entity.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\n type = subTypeDefaulters[componentTypeMain](option);\n }\n }\n\n return type;\n };\n\n return entity;\n}\n/**\n * Topological travel on Activity Network (Activity On Vertices).\n * Dependencies is defined in Model.prototype.dependencies, like ['xAxis', 'yAxis'].\n *\n * If 'xAxis' or 'yAxis' is absent in componentTypeList, just ignore it in topology.\n *\n * If there is circle dependencey, Error will be thrown.\n *\n */\n\n\nfunction enableTopologicalTravel(entity, dependencyGetter) {\n /**\n * @public\n * @param {Array.<string>} targetNameList Target Component type list.\n * Can be ['aa', 'bb', 'aa.xx']\n * @param {Array.<string>} fullNameList By which we can build dependency graph.\n * @param {Function} callback Params: componentType, dependencies.\n * @param {Object} context Scope of callback.\n */\n entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\n if (!targetNameList.length) {\n return;\n }\n\n var result = makeDepndencyGraph(fullNameList);\n var graph = result.graph;\n var stack = result.noEntryList;\n var targetNameSet = {};\n zrUtil.each(targetNameList, function (name) {\n targetNameSet[name] = true;\n });\n\n while (stack.length) {\n var currComponentType = stack.pop();\n var currVertex = graph[currComponentType];\n var isInTargetNameSet = !!targetNameSet[currComponentType];\n\n if (isInTargetNameSet) {\n callback.call(context, currComponentType, currVertex.originalDeps.slice());\n delete targetNameSet[currComponentType];\n }\n\n zrUtil.each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\n }\n\n zrUtil.each(targetNameSet, function () {\n throw new Error('Circle dependency may exists');\n });\n\n function removeEdge(succComponentType) {\n graph[succComponentType].entryCount--;\n\n if (graph[succComponentType].entryCount === 0) {\n stack.push(succComponentType);\n }\n } // Consider this case: legend depends on series, and we call\n // chart.setOption({series: [...]}), where only series is in option.\n // If we do not have 'removeEdgeAndAdd', legendModel.mergeOption will\n // not be called, but only sereis.mergeOption is called. Thus legend\n // have no chance to update its local record about series (like which\n // name of series is available in legend).\n\n\n function removeEdgeAndAdd(succComponentType) {\n targetNameSet[succComponentType] = true;\n removeEdge(succComponentType);\n }\n };\n /**\n * DepndencyGraph: {Object}\n * key: conponentType,\n * value: {\n * successor: [conponentTypes...],\n * originalDeps: [conponentTypes...],\n * entryCount: {number}\n * }\n */\n\n\n function makeDepndencyGraph(fullNameList) {\n var graph = {};\n var noEntryList = [];\n zrUtil.each(fullNameList, function (name) {\n var thisItem = createDependencyGraphItem(graph, name);\n var originalDeps = thisItem.originalDeps = dependencyGetter(name);\n var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\n thisItem.entryCount = availableDeps.length;\n\n if (thisItem.entryCount === 0) {\n noEntryList.push(name);\n }\n\n zrUtil.each(availableDeps, function (dependentName) {\n if (zrUtil.indexOf(thisItem.predecessor, dependentName) < 0) {\n thisItem.predecessor.push(dependentName);\n }\n\n var thatItem = createDependencyGraphItem(graph, dependentName);\n\n if (zrUtil.indexOf(thatItem.successor, dependentName) < 0) {\n thatItem.successor.push(name);\n }\n });\n });\n return {\n graph: graph,\n noEntryList: noEntryList\n };\n }\n\n function createDependencyGraphItem(graph, name) {\n if (!graph[name]) {\n graph[name] = {\n predecessor: [],\n successor: []\n };\n }\n\n return graph[name];\n }\n\n function getAvailableDependencies(originalDeps, fullNameList) {\n var availableDeps = [];\n zrUtil.each(originalDeps, function (dep) {\n zrUtil.indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\n });\n return availableDeps;\n }\n}\n\nexports.getUID = getUID;\nexports.enableSubTypeDefaulter = enableSubTypeDefaulter;\nexports.enableTopologicalTravel = enableTopologicalTravel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar textContain = require(\"zrender/lib/contain/text\");\n\nvar numberUtil = require(\"./number\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// import Text from 'zrender/src/graphic/Text';\n\n/**\n * add commas after every three numbers\n * @param {string|number} x\n * @return {string}\n */\nfunction addCommas(x) {\n if (isNaN(x)) {\n return '-';\n }\n\n x = (x + '').split('.');\n return x[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,') + (x.length > 1 ? '.' + x[1] : '');\n}\n/**\n * @param {string} str\n * @param {boolean} [upperCaseFirst=false]\n * @return {string} str\n */\n\n\nfunction toCamelCase(str, upperCaseFirst) {\n str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\n return group1.toUpperCase();\n });\n\n if (upperCaseFirst && str) {\n str = str.charAt(0).toUpperCase() + str.slice(1);\n }\n\n return str;\n}\n\nvar normalizeCssArray = zrUtil.normalizeCssArray;\nvar replaceReg = /([&<>\"'])/g;\nvar replaceMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': '''\n};\n\nfunction encodeHTML(source) {\n return source == null ? '' : (source + '').replace(replaceReg, function (str, c) {\n return replaceMap[c];\n });\n}\n\nvar TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\n\nvar wrapVar = function (varName, seriesIdx) {\n return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\n};\n/**\n * Template formatter\n * @param {string} tpl\n * @param {Array.<Object>|Object} paramsList\n * @param {boolean} [encode=false]\n * @return {string}\n */\n\n\nfunction formatTpl(tpl, paramsList, encode) {\n if (!zrUtil.isArray(paramsList)) {\n paramsList = [paramsList];\n }\n\n var seriesLen = paramsList.length;\n\n if (!seriesLen) {\n return '';\n }\n\n var $vars = paramsList[0].$vars || [];\n\n for (var i = 0; i < $vars.length; i++) {\n var alias = TPL_VAR_ALIAS[i];\n tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\n }\n\n for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\n for (var k = 0; k < $vars.length; k++) {\n var val = paramsList[seriesIdx][$vars[k]];\n tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\n }\n }\n\n return tpl;\n}\n/**\n * simple Template formatter\n *\n * @param {string} tpl\n * @param {Object} param\n * @param {boolean} [encode=false]\n * @return {string}\n */\n\n\nfunction formatTplSimple(tpl, param, encode) {\n zrUtil.each(param, function (value, key) {\n tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\n });\n return tpl;\n}\n/**\n * @param {Object|string} [opt] If string, means color.\n * @param {string} [opt.color]\n * @param {string} [opt.extraCssText]\n * @param {string} [opt.type='item'] 'item' or 'subItem'\n * @param {string} [opt.renderMode='html'] render mode of tooltip, 'html' or 'richText'\n * @param {string} [opt.markerId='X'] id name for marker. If only one marker is in a rich text, this can be omitted.\n * @return {string}\n */\n\n\nfunction getTooltipMarker(opt, extraCssText) {\n opt = zrUtil.isString(opt) ? {\n color: opt,\n extraCssText: extraCssText\n } : opt || {};\n var color = opt.color;\n var type = opt.type;\n var extraCssText = opt.extraCssText;\n var renderMode = opt.renderMode || 'html';\n var markerId = opt.markerId || 'X';\n\n if (!color) {\n return '';\n }\n\n if (renderMode === 'html') {\n return type === 'subItem' ? '<span style=\"display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;' + 'border-radius:4px;width:4px;height:4px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>' : '<span style=\"display:inline-block;margin-right:5px;' + 'border-radius:10px;width:10px;height:10px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>';\n } else {\n // Space for rich element marker\n return {\n renderMode: renderMode,\n content: '{marker' + markerId + '|} ',\n style: {\n color: color\n }\n };\n }\n}\n\nfunction pad(str, len) {\n str += '';\n return '0000'.substr(0, len - str.length) + str;\n}\n/**\n * ISO Date format\n * @param {string} tpl\n * @param {number} value\n * @param {boolean} [isUTC=false] Default in local time.\n * see `module:echarts/scale/Time`\n * and `module:echarts/util/number#parseDate`.\n * @inner\n */\n\n\nfunction formatTime(tpl, value, isUTC) {\n if (tpl === 'week' || tpl === 'month' || tpl === 'quarter' || tpl === 'half-year' || tpl === 'year') {\n tpl = 'MM-dd\\nyyyy';\n }\n\n var date = numberUtil.parseDate(value);\n var utc = isUTC ? 'UTC' : '';\n var y = date['get' + utc + 'FullYear']();\n var M = date['get' + utc + 'Month']() + 1;\n var d = date['get' + utc + 'Date']();\n var h = date['get' + utc + 'Hours']();\n var m = date['get' + utc + 'Minutes']();\n var s = date['get' + utc + 'Seconds']();\n var S = date['get' + utc + 'Milliseconds']();\n tpl = tpl.replace('MM', pad(M, 2)).replace('M', M).replace('yyyy', y).replace('yy', y % 100).replace('dd', pad(d, 2)).replace('d', d).replace('hh', pad(h, 2)).replace('h', h).replace('mm', pad(m, 2)).replace('m', m).replace('ss', pad(s, 2)).replace('s', s).replace('SSS', pad(S, 3));\n return tpl;\n}\n/**\n * Capital first\n * @param {string} str\n * @return {string}\n */\n\n\nfunction capitalFirst(str) {\n return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\n}\n\nvar truncateText = textContain.truncateText;\n/**\n * @public\n * @param {Object} opt\n * @param {string} opt.text\n * @param {string} opt.font\n * @param {string} [opt.textAlign='left']\n * @param {string} [opt.textVerticalAlign='top']\n * @param {Array.<number>} [opt.textPadding]\n * @param {number} [opt.textLineHeight]\n * @param {Object} [opt.rich]\n * @param {Object} [opt.truncate]\n * @return {Object} {x, y, width, height, lineHeight}\n */\n\nfunction getTextBoundingRect(opt) {\n return textContain.getBoundingRect(opt.text, opt.font, opt.textAlign, opt.textVerticalAlign, opt.textPadding, opt.textLineHeight, opt.rich, opt.truncate);\n}\n/**\n * @deprecated\n * the `textLineHeight` was added later.\n * For backward compatiblility, put it as the last parameter.\n * But deprecated this interface. Please use `getTextBoundingRect` instead.\n */\n\n\nfunction getTextRect(text, font, textAlign, textVerticalAlign, textPadding, rich, truncate, textLineHeight) {\n return textContain.getBoundingRect(text, font, textAlign, textVerticalAlign, textPadding, textLineHeight, rich, truncate);\n}\n/**\n * open new tab\n * @param {string} link url\n * @param {string} target blank or self\n */\n\n\nfunction windowOpen(link, target) {\n if (target === '_blank' || target === 'blank') {\n var blank = window.open();\n blank.opener = null;\n blank.location = link;\n } else {\n window.open(link, target);\n }\n}\n\nexports.addCommas = addCommas;\nexports.toCamelCase = toCamelCase;\nexports.normalizeCssArray = normalizeCssArray;\nexports.encodeHTML = encodeHTML;\nexports.formatTpl = formatTpl;\nexports.formatTplSimple = formatTplSimple;\nexports.getTooltipMarker = getTooltipMarker;\nexports.formatTime = formatTime;\nexports.capitalFirst = capitalFirst;\nexports.truncateText = truncateText;\nexports.getTextBoundingRect = getTextBoundingRect;\nexports.getTextRect = getTextRect;\nexports.windowOpen = windowOpen;"],"names":["_util","each","map","isFunction","createHashMap","noop","_task","createTask","_component","getUID","GlobalModel","ExtensionAPI","_model","normalizeToArray","Scheduler","ecInstance","api","dataProcessorHandlers","visualHandlers","this","unfinished","_dataProcessorHandlers","slice","_visualHandlers","_allHandlers","concat","_stageTaskMap","proto","prototype","performStageTasks","scheduler","stageHandlers","ecModel","payload","opt","needSetDirty","task","setDirty","dirtyMap","get","__pipeline","id","stageHandler","idx","visualType","stageHandlerRecord","uid","seriesTaskMap","overallTask","overallNeedDirty","agentStubMap","stub","dirty","updatePayload","performArgs","getPerformArgs","block","perform","pipelineId","skip","performRawSeries","isSeriesFiltered","context","model","restoreData","taskRecord","isBlock","pipeline","_pipelineMap","pCtx","incremental","progressiveEnabled","progressiveRender","__idxInPipeline","blockIndex","step","modDataCount","modBy","Math","ceil","getPipeline","updateStreamModes","seriesModel","view","data","getData","dataLen","count","incrementalPrepareRender","threshold","large","pipelineContext","restorePipelines","pipelineMap","eachSeries","progressive","getProgressive","set","head","tail","getProgressiveThreshold","preventIncremental","round","pipe","dataTask","prepareStageTasks","stageTaskMap","getModel","handler","record","reset","createSeriesStageTask","overallReset","createOverallStageTask","prepareView","renderTask","__block","performDataProcessorTasks","performVisualTasks","performSeriesTasks","plan","getUpstream","seriesType","getTargetSeries","create","seriesTaskPlan","seriesTaskReset","seriesTaskCount","useClearVisual","isVisual","isLayout","createOnAllSeries","eachRawSeries","eachRawSeriesByType","dispose","removeKey","overallTaskReset","overallProgress","modifyOutputEnd","createStub","stubReset","onDirty","stubOnDirty","agent","getSeries","upstreamContext","stubProgress","getDownstream","clearAllVisual","resetDefines","length","v","makeSeriesTaskProgress","singleSeriesTaskProgress","resetDefineIdx","params","resetDefine","dataEach","i","start","end","progress","detectSeriseType","legacyFunc","ecModelMock","apiMock","e","wrapStageHandler","mockMethods","target","Clz","name","eachSeriesByType","type","eachComponent","cond","mainType","subType","_default","module","exports","isArray","assert","_config","__DEV__","define","Task","_reset","_plan","_count","_onDirty","_dirty","taskProto","planResult","upTask","_upstream","outputData","currentTask","forceFirstProgress","lastModBy","normalizeModBy","_modBy","lastModDataCount","_modDataCount","val","_dueEnd","_outputDueEnd","Infinity","_progress","_dueIndex","min","doProgress","outputDueEnd","_settedOutputEnd","iterator","current","winCount","it","s","sStep","sCount","next","modNext","sequentialNext","dataIndex","result","taskIns","_callingProgress","downstream","_downstream","downTask","_disposed","setOutputEnd","contrastColor","axisCommon","axisLine","lineStyle","color","axisTick","axisLabel","textStyle","splitLine","splitArea","areaStyle","colorPalette","theme","backgroundColor","tooltip","axisPointer","crossStyle","label","legend","title","toolbox","iconStyle","normal","borderColor","dataZoom","visualMap","timeline","itemStyle","controlStyle","timeAxis","logAxis","valueAxis","categoryAxis","line","symbol","graph","gauge","candlestick","color0","borderColor0","show","colorAll","colorLayer","zrUtil","createWrap","doneCallback","storage","elExistsMap","add","el","time","delay","easing","isString","push","done","callback","len","item","animateTo","TYPE_DELIMITER","IS_CONTAINER","parseClassType","componentType","ret","main","sub","split","checkClassType","test","enableClassExtend","RootClass","mandatoryMethods","$constructor","extend","superClass","ExtendedClass","apply","arguments","superCall","superApply","inherits","classBase","enableClassCheck","classAttr","random","toFixed","join","isInstance","obj","methodName","args","enableClassManagement","entity","options","makeContainer","container","registerClass","Clazz","getClass","componentMainType","throwWhenNotFound","Error","getClassesByMainType","o","hasClass","getAllClassMainTypes","types","hasSubTypes","registerWhenExtend","originalExtend","call","setReadOnly","properties","_clazz","base","enableSubTypeDefaulter","subTypeDefaulters","registerSubTypeDefaulter","defaulter","determineSubType","option","componentTypeMain","enableTopologicalTravel","dependencyGetter","makeDepndencyGraph","fullNameList","noEntryList","thisItem","createDependencyGraphItem","originalDeps","availableDeps","getAvailableDependencies","entryCount","dependentName","indexOf","predecessor","thatItem","successor","dep","topologicalTravel","targetNameList","stack","targetNameSet","currComponentType","pop","currVertex","isInTargetNameSet","removeEdgeAndAdd","removeEdge","succComponentType","textContain","numberUtil","addCommas","x","isNaN","replace","toCamelCase","str","upperCaseFirst","toLowerCase","match","group1","toUpperCase","charAt","normalizeCssArray","replaceReg","replaceMap","encodeHTML","source","c","TPL_VAR_ALIAS","wrapVar","varName","seriesIdx","formatTpl","tpl","paramsList","encode","seriesLen","$vars","alias","k","formatTplSimple","param","value","key","getTooltipMarker","extraCssText","renderMode","markerId","content","style","pad","substr","formatTime","isUTC","date","parseDate","utc","y","M","d","h","m","S","capitalFirst","truncateText","getTextBoundingRect","getBoundingRect","text","font","textAlign","textVerticalAlign","textPadding","textLineHeight","rich","truncate","getTextRect","windowOpen","link","blank","window","open","opener","location"],"sourceRoot":""}
|