code: function (
          builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api
      ) {
          // After filtering, axis may change, select area needs to be update.
          var extent = axisModel.axis.getExtent();
          var extentLen = extent[1] - extent[0];
          var extra = Math.min(30, Math.abs(extentLen) * 0.1); // Arbitrary value.
  
          // width/height might be negative, which will be
          // normalized in BoundingRect.
          var rect = graphic.BoundingRect.create({
              x: extent[0],
              y: -areaWidth / 2,
              width: extentLen,
              height: areaWidth
          });
          rect.x -= extra;
          rect.width += 2 * extra;
  
          this._brushController
              .mount({
                  enableGlobalPan: true,
                  rotation: builderOpt.rotation,
                  position: builderOpt.position
              })
              .setPanels([{
                  panelId: 'pl',
                  clipPath: brushHelper.makeRectPanelClipPath(rect),
                  isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, coordSysModel),
                  getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect, 0)
              }])
              .enableBrush({
                  brushType: 'lineX',
                  brushStyle: areaSelectStyle,
                  removeOnClick: true
              })
              .updateCovers(getCoverInfoList(axisModel));
      }
docs: /** * @override  updateVisual: function (axisModel, ecModel, api, payload) { this._brushController && this._brushController .updateCovers(getCoverInfoList(axisModel)); },