1 line
49 KiB
JSON
1 line
49 KiB
JSON
{"ast":null,"code":"import \"core-js/modules/es.array.slice.js\";\nimport \"core-js/modules/es.number.to-fixed.js\";\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\n\n/**\r\n * AUTO-GENERATED FILE. DO NOT MODIFY.\r\n */\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport VisualMapModel from './VisualMapModel.js';\nimport VisualMapping from '../../visual/VisualMapping.js';\nimport visualDefault from '../../visual/visualDefault.js';\nimport { reformIntervals } from '../../util/number.js';\nimport { inheritDefaultOption } from '../../util/component.js';\n\nvar PiecewiseModel =\n/** @class */\nfunction (_super) {\n __extends(PiecewiseModel, _super);\n\n function PiecewiseModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = PiecewiseModel.type;\n /**\r\n * The order is always [low, ..., high].\r\n * [{text: string, interval: Array.<number>}, ...]\r\n */\n\n _this._pieceList = [];\n return _this;\n }\n\n PiecewiseModel.prototype.optionUpdated = function (newOption, isInit) {\n _super.prototype.optionUpdated.apply(this, arguments);\n\n this.resetExtent();\n\n var mode = this._mode = this._determineMode();\n\n this._pieceList = [];\n\n resetMethods[this._mode].call(this, this._pieceList);\n\n this._resetSelected(newOption, isInit);\n\n var categories = this.option.categories;\n this.resetVisual(function (mappingOption, state) {\n if (mode === 'categories') {\n mappingOption.mappingMethod = 'category';\n mappingOption.categories = zrUtil.clone(categories);\n } else {\n mappingOption.dataExtent = this.getExtent();\n mappingOption.mappingMethod = 'piecewise';\n mappingOption.pieceList = zrUtil.map(this._pieceList, function (piece) {\n piece = zrUtil.clone(piece);\n\n if (state !== 'inRange') {\n // FIXME\n // outOfRange do not support special visual in pieces.\n piece.visual = null;\n }\n\n return piece;\n });\n }\n });\n };\n /**\r\n * @protected\r\n * @override\r\n */\n\n\n PiecewiseModel.prototype.completeVisualOption = function () {\n // Consider this case:\n // visualMap: {\n // pieces: [{symbol: 'circle', lt: 0}, {symbol: 'rect', gte: 0}]\n // }\n // where no inRange/outOfRange set but only pieces. So we should make\n // default inRange/outOfRange for this case, otherwise visuals that only\n // appear in `pieces` will not be taken into account in visual encoding.\n var option = this.option;\n var visualTypesInPieces = {};\n var visualTypes = VisualMapping.listVisualTypes();\n var isCategory = this.isCategory();\n zrUtil.each(option.pieces, function (piece) {\n zrUtil.each(visualTypes, function (visualType) {\n if (piece.hasOwnProperty(visualType)) {\n visualTypesInPieces[visualType] = 1;\n }\n });\n });\n zrUtil.each(visualTypesInPieces, function (v, visualType) {\n var exists = false;\n zrUtil.each(this.stateList, function (state) {\n exists = exists || has(option, state, visualType) || has(option.target, state, visualType);\n }, this);\n !exists && zrUtil.each(this.stateList, function (state) {\n (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory);\n });\n }, this);\n\n function has(obj, state, visualType) {\n return obj && obj[state] && obj[state].hasOwnProperty(visualType);\n }\n\n _super.prototype.completeVisualOption.apply(this, arguments);\n };\n\n PiecewiseModel.prototype._resetSelected = function (newOption, isInit) {\n var thisOption = this.option;\n var pieceList = this._pieceList; // Selected do not merge but all override.\n\n var selected = (isInit ? thisOption : newOption).selected || {};\n thisOption.selected = selected; // Consider 'not specified' means true.\n\n zrUtil.each(pieceList, function (piece, index) {\n var key = this.getSelectedMapKey(piece);\n\n if (!selected.hasOwnProperty(key)) {\n selected[key] = true;\n }\n }, this);\n\n if (thisOption.selectedMode === 'single') {\n // Ensure there is only one selected.\n var hasSel_1 = false;\n zrUtil.each(pieceList, function (piece, index) {\n var key = this.getSelectedMapKey(piece);\n\n if (selected[key]) {\n hasSel_1 ? selected[key] = false : hasSel_1 = true;\n }\n }, this);\n } // thisOption.selectedMode === 'multiple', default: all selected.\n\n };\n /**\r\n * @public\r\n */\n\n\n PiecewiseModel.prototype.getItemSymbol = function () {\n return this.get('itemSymbol');\n };\n /**\r\n * @public\r\n */\n\n\n PiecewiseModel.prototype.getSelectedMapKey = function (piece) {\n return this._mode === 'categories' ? piece.value + '' : piece.index + '';\n };\n /**\r\n * @public\r\n */\n\n\n PiecewiseModel.prototype.getPieceList = function () {\n return this._pieceList;\n };\n /**\r\n * @return {string}\r\n */\n\n\n PiecewiseModel.prototype._determineMode = function () {\n var option = this.option;\n return option.pieces && option.pieces.length > 0 ? 'pieces' : this.option.categories ? 'categories' : 'splitNumber';\n };\n /**\r\n * @override\r\n */\n\n\n PiecewiseModel.prototype.setSelected = function (selected) {\n this.option.selected = zrUtil.clone(selected);\n };\n /**\r\n * @override\r\n */\n\n\n PiecewiseModel.prototype.getValueState = function (value) {\n var index = VisualMapping.findPieceIndex(value, this._pieceList);\n return index != null ? this.option.selected[this.getSelectedMapKey(this._pieceList[index])] ? 'inRange' : 'outOfRange' : 'outOfRange';\n };\n /**\r\n * @public\r\n * @param pieceIndex piece index in visualMapModel.getPieceList()\r\n */\n\n\n PiecewiseModel.prototype.findTargetDataIndices = function (pieceIndex) {\n var result = [];\n var pieceList = this._pieceList;\n this.eachTargetSeries(function (seriesModel) {\n var dataIndices = [];\n var data = seriesModel.getData();\n data.each(this.getDataDimensionIndex(data), function (value, dataIndex) {\n // Should always base on model pieceList, because it is order sensitive.\n var pIdx = VisualMapping.findPieceIndex(value, pieceList);\n pIdx === pieceIndex && dataIndices.push(dataIndex);\n }, this);\n result.push({\n seriesId: seriesModel.id,\n dataIndex: dataIndices\n });\n }, this);\n return result;\n };\n /**\r\n * @private\r\n * @param piece piece.value or piece.interval is required.\r\n * @return Can be Infinity or -Infinity\r\n */\n\n\n PiecewiseModel.prototype.getRepresentValue = function (piece) {\n var representValue;\n\n if (this.isCategory()) {\n representValue = piece.value;\n } else {\n if (piece.value != null) {\n representValue = piece.value;\n } else {\n var pieceInterval = piece.interval || [];\n representValue = pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity ? 0 : (pieceInterval[0] + pieceInterval[1]) / 2;\n }\n }\n\n return representValue;\n };\n\n PiecewiseModel.prototype.getVisualMeta = function (getColorVisual) {\n // Do not support category. (category axis is ordinal, numerical)\n if (this.isCategory()) {\n return;\n }\n\n var stops = [];\n var outerColors = ['', ''];\n var visualMapModel = this;\n\n function setStop(interval, valueState) {\n var representValue = visualMapModel.getRepresentValue({\n interval: interval\n }); // Not category\n\n if (!valueState) {\n valueState = visualMapModel.getValueState(representValue);\n }\n\n var color = getColorVisual(representValue, valueState);\n\n if (interval[0] === -Infinity) {\n outerColors[0] = color;\n } else if (interval[1] === Infinity) {\n outerColors[1] = color;\n } else {\n stops.push({\n value: interval[0],\n color: color\n }, {\n value: interval[1],\n color: color\n });\n }\n } // Suplement\n\n\n var pieceList = this._pieceList.slice();\n\n if (!pieceList.length) {\n pieceList.push({\n interval: [-Infinity, Infinity]\n });\n } else {\n var edge = pieceList[0].interval[0];\n edge !== -Infinity && pieceList.unshift({\n interval: [-Infinity, edge]\n });\n edge = pieceList[pieceList.length - 1].interval[1];\n edge !== Infinity && pieceList.push({\n interval: [edge, Infinity]\n });\n }\n\n var curr = -Infinity;\n zrUtil.each(pieceList, function (piece) {\n var interval = piece.interval;\n\n if (interval) {\n // Fulfill gap.\n interval[0] > curr && setStop([curr, interval[0]], 'outOfRange');\n setStop(interval.slice());\n curr = interval[1];\n }\n }, this);\n return {\n stops: stops,\n outerColors: outerColors\n };\n };\n\n PiecewiseModel.type = 'visualMap.piecewise';\n PiecewiseModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\n selected: null,\n minOpen: false,\n maxOpen: false,\n align: 'auto',\n itemWidth: 20,\n itemHeight: 14,\n itemSymbol: 'roundRect',\n pieces: null,\n categories: null,\n splitNumber: 5,\n selectedMode: 'multiple',\n itemGap: 10,\n hoverLink: true // Enable hover highlight.\n\n });\n return PiecewiseModel;\n}(VisualMapModel);\n\n;\n/**\r\n * Key is this._mode\r\n * @type {Object}\r\n * @this {module:echarts/component/viusalMap/PiecewiseMode}\r\n */\n\nvar resetMethods = {\n splitNumber: function splitNumber(outPieceList) {\n var thisOption = this.option;\n var precision = Math.min(thisOption.precision, 20);\n var dataExtent = this.getExtent();\n var splitNumber = thisOption.splitNumber;\n splitNumber = Math.max(parseInt(splitNumber, 10), 1);\n thisOption.splitNumber = splitNumber;\n var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber; // Precision auto-adaption\n\n while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {\n precision++;\n }\n\n thisOption.precision = precision;\n splitStep = +splitStep.toFixed(precision);\n\n if (thisOption.minOpen) {\n outPieceList.push({\n interval: [-Infinity, dataExtent[0]],\n close: [0, 0]\n });\n }\n\n for (var index = 0, curr = dataExtent[0]; index < splitNumber; curr += splitStep, index++) {\n var max = index === splitNumber - 1 ? dataExtent[1] : curr + splitStep;\n outPieceList.push({\n interval: [curr, max],\n close: [1, 1]\n });\n }\n\n if (thisOption.maxOpen) {\n outPieceList.push({\n interval: [dataExtent[1], Infinity],\n close: [0, 0]\n });\n }\n\n reformIntervals(outPieceList);\n zrUtil.each(outPieceList, function (piece, index) {\n piece.index = index;\n piece.text = this.formatValueText(piece.interval);\n }, this);\n },\n categories: function categories(outPieceList) {\n var thisOption = this.option;\n zrUtil.each(thisOption.categories, function (cate) {\n // FIXME category模式也使用pieceList,但在visualMapping中不是使用pieceList。\n // 是否改一致。\n outPieceList.push({\n text: this.formatValueText(cate, true),\n value: cate\n });\n }, this); // See \"Order Rule\".\n\n normalizeReverse(thisOption, outPieceList);\n },\n pieces: function pieces(outPieceList) {\n var thisOption = this.option;\n zrUtil.each(thisOption.pieces, function (pieceListItem, index) {\n if (!zrUtil.isObject(pieceListItem)) {\n pieceListItem = {\n value: pieceListItem\n };\n }\n\n var item = {\n text: '',\n index: index\n };\n\n if (pieceListItem.label != null) {\n item.text = pieceListItem.label;\n }\n\n if (pieceListItem.hasOwnProperty('value')) {\n var value = item.value = pieceListItem.value;\n item.interval = [value, value];\n item.close = [1, 1];\n } else {\n // `min` `max` is legacy option.\n // `lt` `gt` `lte` `gte` is recommanded.\n var interval = item.interval = [];\n var close_1 = item.close = [0, 0];\n var closeList = [1, 0, 1];\n var infinityList = [-Infinity, Infinity];\n var useMinMax = [];\n\n for (var lg = 0; lg < 2; lg++) {\n var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg];\n\n for (var i = 0; i < 3 && interval[lg] == null; i++) {\n interval[lg] = pieceListItem[names[i]];\n close_1[lg] = closeList[i];\n useMinMax[lg] = i === 2;\n }\n\n interval[lg] == null && (interval[lg] = infinityList[lg]);\n }\n\n useMinMax[0] && interval[1] === Infinity && (close_1[0] = 0);\n useMinMax[1] && interval[0] === -Infinity && (close_1[1] = 0);\n\n if (process.env.NODE_ENV !== 'production') {\n if (interval[0] > interval[1]) {\n console.warn('Piece ' + index + 'is illegal: ' + interval + ' lower bound should not greater then uppper bound.');\n }\n }\n\n if (interval[0] === interval[1] && close_1[0] && close_1[1]) {\n // Consider: [{min: 5, max: 5, visual: {...}}, {min: 0, max: 5}],\n // we use value to lift the priority when min === max\n item.value = interval[0];\n }\n }\n\n item.visual = VisualMapping.retrieveVisuals(pieceListItem);\n outPieceList.push(item);\n }, this); // See \"Order Rule\".\n\n normalizeReverse(thisOption, outPieceList); // Only pieces\n\n reformIntervals(outPieceList);\n zrUtil.each(outPieceList, function (piece) {\n var close = piece.close;\n var edgeSymbols = [['<', '≤'][close[1]], ['>', '≥'][close[0]]];\n piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols);\n }, this);\n }\n};\n\nfunction normalizeReverse(thisOption, pieceList) {\n var inverse = thisOption.inverse;\n\n if (thisOption.orient === 'vertical' ? !inverse : inverse) {\n pieceList.reverse();\n }\n}\n\nexport default PiecewiseModel;","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src/qingge-Market/qingge-vue/node_modules/echarts/lib/component/visualMap/PiecewiseModel.js"],"names":["__extends","zrUtil","VisualMapModel","VisualMapping","visualDefault","reformIntervals","inheritDefaultOption","PiecewiseModel","_super","_this","apply","arguments","type","_pieceList","prototype","optionUpdated","newOption","isInit","resetExtent","mode","_mode","_determineMode","resetMethods","call","_resetSelected","categories","option","resetVisual","mappingOption","state","mappingMethod","clone","dataExtent","getExtent","pieceList","map","piece","visual","completeVisualOption","visualTypesInPieces","visualTypes","listVisualTypes","isCategory","each","pieces","visualType","hasOwnProperty","v","exists","stateList","has","target","get","obj","thisOption","selected","index","key","getSelectedMapKey","selectedMode","hasSel_1","getItemSymbol","value","getPieceList","length","setSelected","getValueState","findPieceIndex","findTargetDataIndices","pieceIndex","result","eachTargetSeries","seriesModel","dataIndices","data","getData","getDataDimensionIndex","dataIndex","pIdx","push","seriesId","id","getRepresentValue","representValue","pieceInterval","interval","Infinity","getVisualMeta","getColorVisual","stops","outerColors","visualMapModel","setStop","valueState","color","slice","edge","unshift","curr","defaultOption","minOpen","maxOpen","align","itemWidth","itemHeight","itemSymbol","splitNumber","itemGap","hoverLink","outPieceList","precision","Math","min","max","parseInt","splitStep","toFixed","close","text","formatValueText","cate","normalizeReverse","pieceListItem","isObject","item","label","close_1","closeList","infinityList","useMinMax","lg","names","i","process","env","NODE_ENV","console","warn","retrieveVisuals","edgeSymbols","inverse","orient","reverse"],"mappings":"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","sourcesContent":["\r\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\r\n\r\n\r\n/**\r\n * AUTO-GENERATED FILE. DO NOT MODIFY.\r\n */\r\n\r\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\r\nimport { __extends } from \"tslib\";\r\nimport * as zrUtil from 'zrender/lib/core/util.js';\r\nimport VisualMapModel from './VisualMapModel.js';\r\nimport VisualMapping from '../../visual/VisualMapping.js';\r\nimport visualDefault from '../../visual/visualDefault.js';\r\nimport { reformIntervals } from '../../util/number.js';\r\nimport { inheritDefaultOption } from '../../util/component.js';\r\n\r\nvar PiecewiseModel =\r\n/** @class */\r\nfunction (_super) {\r\n __extends(PiecewiseModel, _super);\r\n\r\n function PiecewiseModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n\r\n _this.type = PiecewiseModel.type;\r\n /**\r\n * The order is always [low, ..., high].\r\n * [{text: string, interval: Array.<number>}, ...]\r\n */\r\n\r\n _this._pieceList = [];\r\n return _this;\r\n }\r\n\r\n PiecewiseModel.prototype.optionUpdated = function (newOption, isInit) {\r\n _super.prototype.optionUpdated.apply(this, arguments);\r\n\r\n this.resetExtent();\r\n\r\n var mode = this._mode = this._determineMode();\r\n\r\n this._pieceList = [];\r\n\r\n resetMethods[this._mode].call(this, this._pieceList);\r\n\r\n this._resetSelected(newOption, isInit);\r\n\r\n var categories = this.option.categories;\r\n this.resetVisual(function (mappingOption, state) {\r\n if (mode === 'categories') {\r\n mappingOption.mappingMethod = 'category';\r\n mappingOption.categories = zrUtil.clone(categories);\r\n } else {\r\n mappingOption.dataExtent = this.getExtent();\r\n mappingOption.mappingMethod = 'piecewise';\r\n mappingOption.pieceList = zrUtil.map(this._pieceList, function (piece) {\r\n piece = zrUtil.clone(piece);\r\n\r\n if (state !== 'inRange') {\r\n // FIXME\r\n // outOfRange do not support special visual in pieces.\r\n piece.visual = null;\r\n }\r\n\r\n return piece;\r\n });\r\n }\r\n });\r\n };\r\n /**\r\n * @protected\r\n * @override\r\n */\r\n\r\n\r\n PiecewiseModel.prototype.completeVisualOption = function () {\r\n // Consider this case:\r\n // visualMap: {\r\n // pieces: [{symbol: 'circle', lt: 0}, {symbol: 'rect', gte: 0}]\r\n // }\r\n // where no inRange/outOfRange set but only pieces. So we should make\r\n // default inRange/outOfRange for this case, otherwise visuals that only\r\n // appear in `pieces` will not be taken into account in visual encoding.\r\n var option = this.option;\r\n var visualTypesInPieces = {};\r\n var visualTypes = VisualMapping.listVisualTypes();\r\n var isCategory = this.isCategory();\r\n zrUtil.each(option.pieces, function (piece) {\r\n zrUtil.each(visualTypes, function (visualType) {\r\n if (piece.hasOwnProperty(visualType)) {\r\n visualTypesInPieces[visualType] = 1;\r\n }\r\n });\r\n });\r\n zrUtil.each(visualTypesInPieces, function (v, visualType) {\r\n var exists = false;\r\n zrUtil.each(this.stateList, function (state) {\r\n exists = exists || has(option, state, visualType) || has(option.target, state, visualType);\r\n }, this);\r\n !exists && zrUtil.each(this.stateList, function (state) {\r\n (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory);\r\n });\r\n }, this);\r\n\r\n function has(obj, state, visualType) {\r\n return obj && obj[state] && obj[state].hasOwnProperty(visualType);\r\n }\r\n\r\n _super.prototype.completeVisualOption.apply(this, arguments);\r\n };\r\n\r\n PiecewiseModel.prototype._resetSelected = function (newOption, isInit) {\r\n var thisOption = this.option;\r\n var pieceList = this._pieceList; // Selected do not merge but all override.\r\n\r\n var selected = (isInit ? thisOption : newOption).selected || {};\r\n thisOption.selected = selected; // Consider 'not specified' means true.\r\n\r\n zrUtil.each(pieceList, function (piece, index) {\r\n var key = this.getSelectedMapKey(piece);\r\n\r\n if (!selected.hasOwnProperty(key)) {\r\n selected[key] = true;\r\n }\r\n }, this);\r\n\r\n if (thisOption.selectedMode === 'single') {\r\n // Ensure there is only one selected.\r\n var hasSel_1 = false;\r\n zrUtil.each(pieceList, function (piece, index) {\r\n var key = this.getSelectedMapKey(piece);\r\n\r\n if (selected[key]) {\r\n hasSel_1 ? selected[key] = false : hasSel_1 = true;\r\n }\r\n }, this);\r\n } // thisOption.selectedMode === 'multiple', default: all selected.\r\n\r\n };\r\n /**\r\n * @public\r\n */\r\n\r\n\r\n PiecewiseModel.prototype.getItemSymbol = function () {\r\n return this.get('itemSymbol');\r\n };\r\n /**\r\n * @public\r\n */\r\n\r\n\r\n PiecewiseModel.prototype.getSelectedMapKey = function (piece) {\r\n return this._mode === 'categories' ? piece.value + '' : piece.index + '';\r\n };\r\n /**\r\n * @public\r\n */\r\n\r\n\r\n PiecewiseModel.prototype.getPieceList = function () {\r\n return this._pieceList;\r\n };\r\n /**\r\n * @return {string}\r\n */\r\n\r\n\r\n PiecewiseModel.prototype._determineMode = function () {\r\n var option = this.option;\r\n return option.pieces && option.pieces.length > 0 ? 'pieces' : this.option.categories ? 'categories' : 'splitNumber';\r\n };\r\n /**\r\n * @override\r\n */\r\n\r\n\r\n PiecewiseModel.prototype.setSelected = function (selected) {\r\n this.option.selected = zrUtil.clone(selected);\r\n };\r\n /**\r\n * @override\r\n */\r\n\r\n\r\n PiecewiseModel.prototype.getValueState = function (value) {\r\n var index = VisualMapping.findPieceIndex(value, this._pieceList);\r\n return index != null ? this.option.selected[this.getSelectedMapKey(this._pieceList[index])] ? 'inRange' : 'outOfRange' : 'outOfRange';\r\n };\r\n /**\r\n * @public\r\n * @param pieceIndex piece index in visualMapModel.getPieceList()\r\n */\r\n\r\n\r\n PiecewiseModel.prototype.findTargetDataIndices = function (pieceIndex) {\r\n var result = [];\r\n var pieceList = this._pieceList;\r\n this.eachTargetSeries(function (seriesModel) {\r\n var dataIndices = [];\r\n var data = seriesModel.getData();\r\n data.each(this.getDataDimensionIndex(data), function (value, dataIndex) {\r\n // Should always base on model pieceList, because it is order sensitive.\r\n var pIdx = VisualMapping.findPieceIndex(value, pieceList);\r\n pIdx === pieceIndex && dataIndices.push(dataIndex);\r\n }, this);\r\n result.push({\r\n seriesId: seriesModel.id,\r\n dataIndex: dataIndices\r\n });\r\n }, this);\r\n return result;\r\n };\r\n /**\r\n * @private\r\n * @param piece piece.value or piece.interval is required.\r\n * @return Can be Infinity or -Infinity\r\n */\r\n\r\n\r\n PiecewiseModel.prototype.getRepresentValue = function (piece) {\r\n var representValue;\r\n\r\n if (this.isCategory()) {\r\n representValue = piece.value;\r\n } else {\r\n if (piece.value != null) {\r\n representValue = piece.value;\r\n } else {\r\n var pieceInterval = piece.interval || [];\r\n representValue = pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity ? 0 : (pieceInterval[0] + pieceInterval[1]) / 2;\r\n }\r\n }\r\n\r\n return representValue;\r\n };\r\n\r\n PiecewiseModel.prototype.getVisualMeta = function (getColorVisual) {\r\n // Do not support category. (category axis is ordinal, numerical)\r\n if (this.isCategory()) {\r\n return;\r\n }\r\n\r\n var stops = [];\r\n var outerColors = ['', ''];\r\n var visualMapModel = this;\r\n\r\n function setStop(interval, valueState) {\r\n var representValue = visualMapModel.getRepresentValue({\r\n interval: interval\r\n }); // Not category\r\n\r\n if (!valueState) {\r\n valueState = visualMapModel.getValueState(representValue);\r\n }\r\n\r\n var color = getColorVisual(representValue, valueState);\r\n\r\n if (interval[0] === -Infinity) {\r\n outerColors[0] = color;\r\n } else if (interval[1] === Infinity) {\r\n outerColors[1] = color;\r\n } else {\r\n stops.push({\r\n value: interval[0],\r\n color: color\r\n }, {\r\n value: interval[1],\r\n color: color\r\n });\r\n }\r\n } // Suplement\r\n\r\n\r\n var pieceList = this._pieceList.slice();\r\n\r\n if (!pieceList.length) {\r\n pieceList.push({\r\n interval: [-Infinity, Infinity]\r\n });\r\n } else {\r\n var edge = pieceList[0].interval[0];\r\n edge !== -Infinity && pieceList.unshift({\r\n interval: [-Infinity, edge]\r\n });\r\n edge = pieceList[pieceList.length - 1].interval[1];\r\n edge !== Infinity && pieceList.push({\r\n interval: [edge, Infinity]\r\n });\r\n }\r\n\r\n var curr = -Infinity;\r\n zrUtil.each(pieceList, function (piece) {\r\n var interval = piece.interval;\r\n\r\n if (interval) {\r\n // Fulfill gap.\r\n interval[0] > curr && setStop([curr, interval[0]], 'outOfRange');\r\n setStop(interval.slice());\r\n curr = interval[1];\r\n }\r\n }, this);\r\n return {\r\n stops: stops,\r\n outerColors: outerColors\r\n };\r\n };\r\n\r\n PiecewiseModel.type = 'visualMap.piecewise';\r\n PiecewiseModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\r\n selected: null,\r\n minOpen: false,\r\n maxOpen: false,\r\n align: 'auto',\r\n itemWidth: 20,\r\n itemHeight: 14,\r\n itemSymbol: 'roundRect',\r\n pieces: null,\r\n categories: null,\r\n splitNumber: 5,\r\n selectedMode: 'multiple',\r\n itemGap: 10,\r\n hoverLink: true // Enable hover highlight.\r\n\r\n });\r\n return PiecewiseModel;\r\n}(VisualMapModel);\r\n\r\n;\r\n/**\r\n * Key is this._mode\r\n * @type {Object}\r\n * @this {module:echarts/component/viusalMap/PiecewiseMode}\r\n */\r\n\r\nvar resetMethods = {\r\n splitNumber: function (outPieceList) {\r\n var thisOption = this.option;\r\n var precision = Math.min(thisOption.precision, 20);\r\n var dataExtent = this.getExtent();\r\n var splitNumber = thisOption.splitNumber;\r\n splitNumber = Math.max(parseInt(splitNumber, 10), 1);\r\n thisOption.splitNumber = splitNumber;\r\n var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber; // Precision auto-adaption\r\n\r\n while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {\r\n precision++;\r\n }\r\n\r\n thisOption.precision = precision;\r\n splitStep = +splitStep.toFixed(precision);\r\n\r\n if (thisOption.minOpen) {\r\n outPieceList.push({\r\n interval: [-Infinity, dataExtent[0]],\r\n close: [0, 0]\r\n });\r\n }\r\n\r\n for (var index = 0, curr = dataExtent[0]; index < splitNumber; curr += splitStep, index++) {\r\n var max = index === splitNumber - 1 ? dataExtent[1] : curr + splitStep;\r\n outPieceList.push({\r\n interval: [curr, max],\r\n close: [1, 1]\r\n });\r\n }\r\n\r\n if (thisOption.maxOpen) {\r\n outPieceList.push({\r\n interval: [dataExtent[1], Infinity],\r\n close: [0, 0]\r\n });\r\n }\r\n\r\n reformIntervals(outPieceList);\r\n zrUtil.each(outPieceList, function (piece, index) {\r\n piece.index = index;\r\n piece.text = this.formatValueText(piece.interval);\r\n }, this);\r\n },\r\n categories: function (outPieceList) {\r\n var thisOption = this.option;\r\n zrUtil.each(thisOption.categories, function (cate) {\r\n // FIXME category模式也使用pieceList,但在visualMapping中不是使用pieceList。\r\n // 是否改一致。\r\n outPieceList.push({\r\n text: this.formatValueText(cate, true),\r\n value: cate\r\n });\r\n }, this); // See \"Order Rule\".\r\n\r\n normalizeReverse(thisOption, outPieceList);\r\n },\r\n pieces: function (outPieceList) {\r\n var thisOption = this.option;\r\n zrUtil.each(thisOption.pieces, function (pieceListItem, index) {\r\n if (!zrUtil.isObject(pieceListItem)) {\r\n pieceListItem = {\r\n value: pieceListItem\r\n };\r\n }\r\n\r\n var item = {\r\n text: '',\r\n index: index\r\n };\r\n\r\n if (pieceListItem.label != null) {\r\n item.text = pieceListItem.label;\r\n }\r\n\r\n if (pieceListItem.hasOwnProperty('value')) {\r\n var value = item.value = pieceListItem.value;\r\n item.interval = [value, value];\r\n item.close = [1, 1];\r\n } else {\r\n // `min` `max` is legacy option.\r\n // `lt` `gt` `lte` `gte` is recommanded.\r\n var interval = item.interval = [];\r\n var close_1 = item.close = [0, 0];\r\n var closeList = [1, 0, 1];\r\n var infinityList = [-Infinity, Infinity];\r\n var useMinMax = [];\r\n\r\n for (var lg = 0; lg < 2; lg++) {\r\n var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg];\r\n\r\n for (var i = 0; i < 3 && interval[lg] == null; i++) {\r\n interval[lg] = pieceListItem[names[i]];\r\n close_1[lg] = closeList[i];\r\n useMinMax[lg] = i === 2;\r\n }\r\n\r\n interval[lg] == null && (interval[lg] = infinityList[lg]);\r\n }\r\n\r\n useMinMax[0] && interval[1] === Infinity && (close_1[0] = 0);\r\n useMinMax[1] && interval[0] === -Infinity && (close_1[1] = 0);\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (interval[0] > interval[1]) {\r\n console.warn('Piece ' + index + 'is illegal: ' + interval + ' lower bound should not greater then uppper bound.');\r\n }\r\n }\r\n\r\n if (interval[0] === interval[1] && close_1[0] && close_1[1]) {\r\n // Consider: [{min: 5, max: 5, visual: {...}}, {min: 0, max: 5}],\r\n // we use value to lift the priority when min === max\r\n item.value = interval[0];\r\n }\r\n }\r\n\r\n item.visual = VisualMapping.retrieveVisuals(pieceListItem);\r\n outPieceList.push(item);\r\n }, this); // See \"Order Rule\".\r\n\r\n normalizeReverse(thisOption, outPieceList); // Only pieces\r\n\r\n reformIntervals(outPieceList);\r\n zrUtil.each(outPieceList, function (piece) {\r\n var close = piece.close;\r\n var edgeSymbols = [['<', '≤'][close[1]], ['>', '≥'][close[0]]];\r\n piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols);\r\n }, this);\r\n }\r\n};\r\n\r\nfunction normalizeReverse(thisOption, pieceList) {\r\n var inverse = thisOption.inverse;\r\n\r\n if (thisOption.orient === 'vertical' ? !inverse : inverse) {\r\n pieceList.reverse();\r\n }\r\n}\r\n\r\nexport default PiecewiseModel;"]},"metadata":{},"sourceType":"module"} |