Spaces:
Running
Running
| /* | |
| * 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. | |
| */ | |
| import DataZoomModel, {DataZoomOption} from './DataZoomModel'; | |
| import { | |
| BoxLayoutOptionMixin, | |
| ZRColor, | |
| LineStyleOption, | |
| AreaStyleOption, | |
| ItemStyleOption, | |
| LabelOption | |
| } from '../../util/types'; | |
| import { inheritDefaultOption } from '../../util/component'; | |
| export interface SliderDataZoomOption extends DataZoomOption, BoxLayoutOptionMixin { | |
| show?: boolean | |
| /** | |
| * Slider dataZoom don't support textStyle | |
| */ | |
| /** | |
| * Background of slider zoom component | |
| */ | |
| backgroundColor?: ZRColor | |
| /** | |
| * @deprecated Use borderColor instead | |
| */ | |
| // dataBackgroundColor?: ZRColor | |
| /** | |
| * border color of the box. For compatibility, | |
| * if dataBackgroundColor is set, borderColor | |
| * is ignored. | |
| */ | |
| borderColor?: ZRColor | |
| /** | |
| * Border radius of the box. | |
| */ | |
| borderRadius?: number | number[] | |
| dataBackground?: { | |
| lineStyle?: LineStyleOption | |
| areaStyle?: AreaStyleOption | |
| } | |
| selectedDataBackground?: { | |
| lineStyle?: LineStyleOption | |
| areaStyle?: AreaStyleOption | |
| } | |
| /** | |
| * Color of selected area. | |
| */ | |
| fillerColor?: ZRColor | |
| /** | |
| * @deprecated Use handleStyle instead | |
| */ | |
| // handleColor?: ZRColor | |
| handleIcon?: string | |
| /** | |
| * number: height of icon. width will be calculated according to the aspect of icon. | |
| * string: percent of the slider height. width will be calculated according to the aspect of icon. | |
| */ | |
| handleSize?: string | number | |
| handleStyle?: ItemStyleOption | |
| /** | |
| * Icon to indicate it is a draggable panel. | |
| */ | |
| moveHandleIcon?: string | |
| moveHandleStyle?: ItemStyleOption | |
| /** | |
| * Height of handle rect. Can be a percent string relative to the slider height. | |
| */ | |
| moveHandleSize?: number | |
| labelPrecision?: number | 'auto' | |
| labelFormatter?: string | ((value: number, valueStr: string) => string) | |
| showDetail?: boolean | |
| showDataShadow?: 'auto' | boolean | |
| zoomLock?: boolean | |
| textStyle?: LabelOption | |
| /** | |
| * If eable select by brushing | |
| */ | |
| brushSelect?: boolean | |
| brushStyle?: ItemStyleOption | |
| emphasis?: { | |
| handleStyle?: ItemStyleOption | |
| moveHandleStyle?: ItemStyleOption | |
| } | |
| } | |
| class SliderZoomModel extends DataZoomModel<SliderDataZoomOption> { | |
| static readonly type = 'dataZoom.slider'; | |
| type = SliderZoomModel.type; | |
| static readonly layoutMode = 'box'; | |
| static defaultOption: SliderDataZoomOption = inheritDefaultOption(DataZoomModel.defaultOption, { | |
| show: true, | |
| // deault value can only be drived in view stage. | |
| right: 'ph', // Default align to grid rect. | |
| top: 'ph', // Default align to grid rect. | |
| width: 'ph', // Default align to grid rect. | |
| height: 'ph', // Default align to grid rect. | |
| left: null, // Default align to grid rect. | |
| bottom: null, // Default align to grid rect. | |
| borderColor: '#d2dbee', | |
| borderRadius: 3, | |
| backgroundColor: 'rgba(47,69,84,0)', // Background of slider zoom component. | |
| // dataBackgroundColor: '#ddd', | |
| dataBackground: { | |
| lineStyle: { | |
| color: '#d2dbee', | |
| width: 0.5 | |
| }, | |
| areaStyle: { | |
| color: '#d2dbee', | |
| opacity: 0.2 | |
| } | |
| }, | |
| selectedDataBackground: { | |
| lineStyle: { | |
| color: '#8fb0f7', | |
| width: 0.5 | |
| }, | |
| areaStyle: { | |
| color: '#8fb0f7', | |
| opacity: 0.2 | |
| } | |
| }, | |
| // Color of selected window. | |
| fillerColor: 'rgba(135,175,274,0.2)', | |
| handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z', | |
| // Percent of the slider height | |
| handleSize: '100%', | |
| handleStyle: { | |
| color: '#fff', | |
| borderColor: '#ACB8D1' | |
| }, | |
| moveHandleSize: 7, | |
| moveHandleIcon: 'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z', | |
| moveHandleStyle: { | |
| color: '#D2DBEE', | |
| opacity: 0.7 | |
| }, | |
| showDetail: true, | |
| showDataShadow: 'auto', // Default auto decision. | |
| realtime: true, | |
| zoomLock: false, // Whether disable zoom. | |
| textStyle: { | |
| color: '#6E7079' | |
| }, | |
| brushSelect: true, | |
| brushStyle: { | |
| color: 'rgba(135,175,274,0.15)' | |
| }, | |
| emphasis: { | |
| handleStyle: { | |
| borderColor: '#8FB0F7' | |
| }, | |
| moveHandleStyle: { | |
| color: '#8FB0F7' | |
| } | |
| } | |
| } as SliderDataZoomOption); | |
| } | |
| export default SliderZoomModel; |