| /* | 
 | * 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 { EChartsExtensionInstallRegisters } from '../../extension'; | 
 | import brushPreprocessor from './preprocessor'; | 
 | import BrushView from './BrushView'; | 
 | import BrushModel, { BrushAreaParam } from './BrushModel'; | 
 | import brushVisual from './visualEncoding'; | 
 | import { Payload } from '../../util/types'; | 
 | import GlobalModel from '../../model/Global'; | 
 |  | 
 | // TODO | 
 | import BrushFeature from '../toolbox/feature/Brush'; | 
 | import { registerFeature } from '../toolbox/featureManager'; | 
 |  | 
 | import { noop } from 'zrender/src/core/util'; | 
 |  | 
 | interface BrushPayload extends Payload { | 
 |     // If "areas" is empty, all of the select-boxes will be deleted | 
 |     areas?: BrushAreaParam[]; | 
 | } | 
 |  | 
 | export function install(registers: EChartsExtensionInstallRegisters) { | 
 |  | 
 |     registers.registerComponentView(BrushView); | 
 |     registers.registerComponentModel(BrushModel); | 
 |  | 
 |     registers.registerPreprocessor(brushPreprocessor); | 
 |  | 
 |     registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, brushVisual); | 
 |  | 
 |     registers.registerAction( | 
 |         {type: 'brush', event: 'brush', update: 'updateVisual' }, | 
 |         function (payload: BrushPayload, ecModel: GlobalModel) { | 
 |             ecModel.eachComponent( | 
 |                 {mainType: 'brush', query: payload}, | 
 |                 function (brushModel: BrushModel) { | 
 |                     brushModel.setAreas(payload.areas); | 
 |                 } | 
 |             ); | 
 |         } | 
 |     ); | 
 |  | 
 |     /** | 
 |      * payload: { | 
 |      *      brushComponents: [ | 
 |      *          { | 
 |      *              brushId, | 
 |      *              brushIndex, | 
 |      *              brushName, | 
 |      *              series: [ | 
 |      *                  { | 
 |      *                      seriesId, | 
 |      *                      seriesIndex, | 
 |      *                      seriesName, | 
 |      *                      rawIndices: [21, 34, ...] | 
 |      *                  }, | 
 |      *                  ... | 
 |      *              ] | 
 |      *          }, | 
 |      *          ... | 
 |      *      ] | 
 |      * } | 
 |      */ | 
 |     registers.registerAction( | 
 |         {type: 'brushSelect', event: 'brushSelected', update: 'none'}, | 
 |         noop | 
 |     ); | 
 |  | 
 |     registers.registerAction( | 
 |         {type: 'brushEnd', event: 'brushEnd', update: 'none'}, | 
 |         noop | 
 |     ); | 
 |  | 
 |     registerFeature('brush', BrushFeature); | 
 | } |