123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- /*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
- var zrUtil = require("zrender/lib/core/util");
- var ComponentModel = require("../../model/Component");
- var makeStyleMapper = require("../../model/mixin/makeStyleMapper");
- var axisModelCreator = require("../axisModelCreator");
- var numberUtil = require("../../util/number");
- var axisModelCommonMixin = require("../axisModelCommonMixin");
- /*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
- var AxisModel = ComponentModel.extend({
- type: 'baseParallelAxis',
- /**
- * @type {module:echarts/coord/parallel/Axis}
- */
- axis: null,
- /**
- * @type {Array.<Array.<number>}
- * @readOnly
- */
- activeIntervals: [],
- /**
- * @return {Object}
- */
- getAreaSelectStyle: function () {
- return makeStyleMapper([['fill', 'color'], ['lineWidth', 'borderWidth'], ['stroke', 'borderColor'], ['width', 'width'], ['opacity', 'opacity']])(this.getModel('areaSelectStyle'));
- },
- /**
- * The code of this feature is put on AxisModel but not ParallelAxis,
- * because axisModel can be alive after echarts updating but instance of
- * ParallelAxis having been disposed. this._activeInterval should be kept
- * when action dispatched (i.e. legend click).
- *
- * @param {Array.<Array<number>>} intervals interval.length === 0
- * means set all active.
- * @public
- */
- setActiveIntervals: function (intervals) {
- var activeIntervals = this.activeIntervals = zrUtil.clone(intervals); // Normalize
- if (activeIntervals) {
- for (var i = activeIntervals.length - 1; i >= 0; i--) {
- numberUtil.asc(activeIntervals[i]);
- }
- }
- },
- /**
- * @param {number|string} [value] When attempting to detect 'no activeIntervals set',
- * value can not be input.
- * @return {string} 'normal': no activeIntervals set,
- * 'active',
- * 'inactive'.
- * @public
- */
- getActiveState: function (value) {
- var activeIntervals = this.activeIntervals;
- if (!activeIntervals.length) {
- return 'normal';
- }
- if (value == null || isNaN(value)) {
- return 'inactive';
- } // Simple optimization
- if (activeIntervals.length === 1) {
- var interval = activeIntervals[0];
- if (interval[0] <= value && value <= interval[1]) {
- return 'active';
- }
- } else {
- for (var i = 0, len = activeIntervals.length; i < len; i++) {
- if (activeIntervals[i][0] <= value && value <= activeIntervals[i][1]) {
- return 'active';
- }
- }
- }
- return 'inactive';
- }
- });
- var defaultOption = {
- type: 'value',
- /**
- * @type {Array.<number>}
- */
- dim: null,
- // 0, 1, 2, ...
- // parallelIndex: null,
- areaSelectStyle: {
- width: 20,
- borderWidth: 1,
- borderColor: 'rgba(160,197,232)',
- color: 'rgba(160,197,232)',
- opacity: 0.3
- },
- realtime: true,
- // Whether realtime update view when select.
- z: 10
- };
- zrUtil.merge(AxisModel.prototype, axisModelCommonMixin);
- function getAxisType(axisName, option) {
- return option.type || (option.data ? 'category' : 'value');
- }
- axisModelCreator('parallel', AxisModel, getAxisType, defaultOption);
- var _default = AxisModel;
- module.exports = _default;
|