@visactor/vrender-components 1.1.0-alpha.0 → 1.1.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/animation/axis-animate.js +7 -3
- package/cjs/animation/axis-animate.js.map +1 -1
- package/cjs/animation/static-truth.d.ts +2 -0
- package/cjs/animation/static-truth.js +25 -0
- package/cjs/animation/static-truth.js.map +1 -0
- package/cjs/axis/animate/group-transition.d.ts +2 -2
- package/cjs/axis/animate/group-transition.js +7 -3
- package/cjs/axis/animate/group-transition.js.map +1 -1
- package/cjs/axis/base.js +37 -36
- package/cjs/axis/base.js.map +1 -1
- package/cjs/axis/circle.js +3 -3
- package/cjs/axis/circle.js.map +1 -1
- package/cjs/axis/grid/base.js +5 -5
- package/cjs/axis/grid/base.js.map +1 -1
- package/cjs/axis/index.js +1 -2
- package/cjs/axis/line.js +6 -6
- package/cjs/axis/line.js.map +1 -1
- package/cjs/brush/brush.d.ts +1 -0
- package/cjs/brush/brush.js +24 -10
- package/cjs/brush/brush.js.map +1 -1
- package/cjs/brush/config.js +2 -1
- package/cjs/brush/type.d.ts +3 -1
- package/cjs/brush/type.js.map +1 -1
- package/cjs/core/base.js +2 -2
- package/cjs/core/base.js.map +1 -1
- package/cjs/crosshair/polygon.js +1 -2
- package/cjs/crosshair/rect.js +2 -1
- package/cjs/data-zoom/config.d.ts +10 -0
- package/cjs/data-zoom/config.js +10 -1
- package/cjs/data-zoom/config.js.map +1 -1
- package/cjs/data-zoom/interaction.js +1 -1
- package/cjs/data-zoom/interaction.js.map +1 -1
- package/cjs/data-zoom/renderer.js +44 -24
- package/cjs/data-zoom/renderer.js.map +1 -1
- package/cjs/empty-tip/empty-tip.js.map +1 -1
- package/cjs/empty-tip/type.js +1 -2
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/indicator/config.js +2 -1
- package/cjs/label/arc.js +1 -1
- package/cjs/label/base.js +30 -8
- package/cjs/label/base.js.map +1 -1
- package/cjs/label/type.d.ts +1 -1
- package/cjs/label/type.js.map +1 -1
- package/cjs/legend/base.js +2 -2
- package/cjs/legend/base.js.map +1 -1
- package/cjs/legend/discrete/discrete.js +22 -16
- package/cjs/legend/discrete/discrete.js.map +1 -1
- package/cjs/legend/size/size.js +3 -3
- package/cjs/legend/size/size.js.map +1 -1
- package/cjs/marker/animate/call-in.js +6 -2
- package/cjs/marker/animate/call-in.js.map +1 -1
- package/cjs/marker/animate/clip-in.js +6 -2
- package/cjs/marker/animate/clip-in.js.map +1 -1
- package/cjs/marker/animate/common.js +14 -5
- package/cjs/marker/animate/common.js.map +1 -1
- package/cjs/marker/arc-area.js +2 -2
- package/cjs/marker/arc-area.js.map +1 -1
- package/cjs/marker/area.js +2 -2
- package/cjs/marker/area.js.map +1 -1
- package/cjs/marker/base.js +4 -4
- package/cjs/marker/base.js.map +1 -1
- package/cjs/marker/point.d.ts +1 -1
- package/cjs/marker/point.js +6 -6
- package/cjs/marker/point.js.map +1 -1
- package/cjs/pager/pager.js +5 -5
- package/cjs/pager/pager.js.map +1 -1
- package/cjs/player/base-player.d.ts +1 -0
- package/cjs/player/base-player.js +3 -0
- package/cjs/player/base-player.js.map +1 -1
- package/cjs/poptip/index.d.ts +1 -1
- package/cjs/poptip/index.js +2 -11
- package/cjs/poptip/index.js.map +1 -1
- package/cjs/poptip/module.d.ts +2 -0
- package/cjs/poptip/module.js +16 -6
- package/cjs/poptip/module.js.map +1 -1
- package/cjs/poptip/poptip-plugin.js.map +1 -1
- package/cjs/poptip/register.js +1 -1
- package/cjs/poptip/register.js.map +1 -1
- package/cjs/scrollbar/module.d.ts +2 -0
- package/cjs/scrollbar/module.js +12 -4
- package/cjs/scrollbar/module.js.map +1 -1
- package/cjs/scrollbar/scrollbar.d.ts +1 -0
- package/cjs/scrollbar/scrollbar.js +12 -8
- package/cjs/scrollbar/scrollbar.js.map +1 -1
- package/cjs/scrollbar/type.d.ts +1 -0
- package/cjs/scrollbar/type.js.map +1 -1
- package/cjs/segment/arc-segment.js +2 -2
- package/cjs/segment/arc-segment.js.map +1 -1
- package/cjs/segment/segment.js +5 -5
- package/cjs/segment/segment.js.map +1 -1
- package/cjs/slider/slider.d.ts +2 -0
- package/cjs/slider/slider.js +32 -19
- package/cjs/slider/slider.js.map +1 -1
- package/cjs/slider/type.d.ts +14 -3
- package/cjs/slider/type.js.map +1 -1
- package/cjs/table-series-number/event-manager.js.map +1 -1
- package/cjs/timeline/timeline.js +35 -12
- package/cjs/timeline/timeline.js.map +1 -1
- package/cjs/util/graphic-creator.d.ts +14 -0
- package/cjs/util/graphic-creator.js +22 -0
- package/cjs/util/graphic-creator.js.map +1 -0
- package/cjs/util/text.js +3 -3
- package/cjs/util/text.js.map +1 -1
- package/dist/index.es.js +10940 -10326
- package/es/animation/axis-animate.js +8 -3
- package/es/animation/axis-animate.js.map +1 -1
- package/es/animation/static-truth.d.ts +2 -0
- package/es/animation/static-truth.js +18 -0
- package/es/animation/static-truth.js.map +1 -0
- package/es/axis/animate/group-transition.d.ts +2 -2
- package/es/axis/animate/group-transition.js +7 -2
- package/es/axis/animate/group-transition.js.map +1 -1
- package/es/axis/base.js +33 -28
- package/es/axis/base.js.map +1 -1
- package/es/axis/circle.js +1 -1
- package/es/axis/circle.js.map +1 -1
- package/es/axis/grid/base.js +1 -1
- package/es/axis/grid/base.js.map +1 -1
- package/es/axis/index.js +1 -2
- package/es/axis/line.js +1 -1
- package/es/axis/line.js.map +1 -1
- package/es/brush/brush.d.ts +1 -0
- package/es/brush/brush.js +23 -9
- package/es/brush/brush.js.map +1 -1
- package/es/brush/config.js +2 -1
- package/es/brush/type.d.ts +3 -1
- package/es/brush/type.js.map +1 -1
- package/es/core/base.js +2 -2
- package/es/core/base.js.map +1 -1
- package/es/crosshair/polygon.js +1 -2
- package/es/crosshair/rect.js +2 -1
- package/es/data-zoom/config.d.ts +10 -0
- package/es/data-zoom/config.js +11 -0
- package/es/data-zoom/config.js.map +1 -1
- package/es/data-zoom/interaction.js +1 -1
- package/es/data-zoom/interaction.js.map +1 -1
- package/es/data-zoom/renderer.js +45 -25
- package/es/data-zoom/renderer.js.map +1 -1
- package/es/empty-tip/empty-tip.js.map +1 -1
- package/es/empty-tip/type.js +1 -2
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/indicator/config.js +2 -1
- package/es/label/arc.js +1 -1
- package/es/label/base.js +33 -7
- package/es/label/base.js.map +1 -1
- package/es/label/type.d.ts +1 -1
- package/es/label/type.js.map +1 -1
- package/es/legend/base.js +1 -1
- package/es/legend/base.js.map +1 -1
- package/es/legend/discrete/discrete.js +15 -7
- package/es/legend/discrete/discrete.js.map +1 -1
- package/es/legend/size/size.js +1 -1
- package/es/legend/size/size.js.map +1 -1
- package/es/marker/animate/call-in.js +7 -2
- package/es/marker/animate/call-in.js.map +1 -1
- package/es/marker/animate/clip-in.js +7 -2
- package/es/marker/animate/clip-in.js.map +1 -1
- package/es/marker/animate/common.js +10 -2
- package/es/marker/animate/common.js.map +1 -1
- package/es/marker/arc-area.js +1 -1
- package/es/marker/arc-area.js.map +1 -1
- package/es/marker/area.js +1 -1
- package/es/marker/area.js.map +1 -1
- package/es/marker/base.js +1 -1
- package/es/marker/base.js.map +1 -1
- package/es/marker/point.d.ts +1 -1
- package/es/marker/point.js +1 -1
- package/es/marker/point.js.map +1 -1
- package/es/pager/pager.js +1 -1
- package/es/pager/pager.js.map +1 -1
- package/es/player/base-player.d.ts +1 -0
- package/es/player/base-player.js +3 -0
- package/es/player/base-player.js.map +1 -1
- package/es/poptip/index.d.ts +1 -1
- package/es/poptip/index.js +1 -1
- package/es/poptip/index.js.map +1 -1
- package/es/poptip/module.d.ts +2 -0
- package/es/poptip/module.js +14 -4
- package/es/poptip/module.js.map +1 -1
- package/es/poptip/poptip-plugin.js.map +1 -1
- package/es/poptip/register.js +0 -2
- package/es/poptip/register.js.map +1 -1
- package/es/scrollbar/module.d.ts +2 -0
- package/es/scrollbar/module.js +11 -3
- package/es/scrollbar/module.js.map +1 -1
- package/es/scrollbar/scrollbar.d.ts +1 -0
- package/es/scrollbar/scrollbar.js +9 -8
- package/es/scrollbar/scrollbar.js.map +1 -1
- package/es/scrollbar/type.d.ts +1 -0
- package/es/scrollbar/type.js.map +1 -1
- package/es/segment/arc-segment.js +1 -1
- package/es/segment/arc-segment.js.map +1 -1
- package/es/segment/segment.js +1 -1
- package/es/segment/segment.js.map +1 -1
- package/es/slider/slider.d.ts +2 -0
- package/es/slider/slider.js +24 -9
- package/es/slider/slider.js.map +1 -1
- package/es/slider/type.d.ts +14 -3
- package/es/slider/type.js.map +1 -1
- package/es/table-series-number/event-manager.js.map +1 -1
- package/es/timeline/timeline.js +36 -11
- package/es/timeline/timeline.js.map +1 -1
- package/es/util/graphic-creator.d.ts +14 -0
- package/es/util/graphic-creator.js +18 -0
- package/es/util/graphic-creator.js.map +1 -0
- package/es/util/text.js +3 -1
- package/es/util/text.js.map +1 -1
- package/package.json +11 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data-zoom/interaction.ts"],"names":[],"mappings":"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","file":"interaction.js","sourcesContent":["import { DataZoomActiveTag, IDataZoomInteractiveEvent, type DataZoomAttributes } from './type';\nimport { getEndTriggersOfDrag } from '../util/event';\nimport type { IPointLike, Dict, Matrix } from '@visactor/vutils';\nimport { vglobal } from '@visactor/vrender-core';\nimport type { FederatedPointerEvent, IGroup, IRect, ISymbol, IStage } from '@visactor/vrender-core';\nimport { clamp, debounce, EventEmitter, throttle } from '@visactor/vutils';\nconst delayMap = {\n debounce: debounce,\n throttle: throttle\n};\nexport interface InteractionAttributes {\n stage: IStage;\n attribute: Partial<Required<DataZoomAttributes>>;\n startHandlerMask?: IRect;\n endHandlerMask?: IRect;\n middleHandlerSymbol?: ISymbol;\n middleHandlerRect?: IRect;\n selectedBackground?: IRect;\n background?: IRect;\n previewGroup?: IGroup;\n selectedPreviewGroup?: IGroup;\n getLayoutAttrFromConfig?: any;\n getState: () => { start: number; end: number };\n setState: (state: { start: number; end: number }) => void;\n getGlobalTransMatrix: () => Matrix;\n}\nexport class DataZoomInteraction extends EventEmitter {\n /** 上层透传 */\n stage: IStage;\n attribute!: Partial<Required<DataZoomAttributes>>;\n private _getLayoutAttrFromConfig: any;\n private _getState: () => { start: number; end: number };\n private _setState: (state: { start: number; end: number }) => void;\n private _getGlobalTransMatrix: () => Matrix;\n\n /** 图元 */\n private _startHandlerMask: IRect | undefined;\n private _middleHandlerSymbol: ISymbol | undefined;\n private _middleHandlerRect: IRect | undefined;\n private _endHandlerMask: IRect | undefined;\n private _background: IRect | undefined;\n private _previewGroup: IGroup | undefined;\n private _selectedPreviewGroup: IGroup | undefined;\n private _selectedBackground: IRect | undefined;\n\n /** 交互 */\n private _activeTag!: DataZoomActiveTag;\n private _activeItem!: any;\n private _activeState = false;\n private _activeCache: {\n startPos: IPointLike;\n lastPos: IPointLike;\n } = {\n startPos: { x: 0, y: 0 },\n lastPos: { x: 0, y: 0 }\n };\n private _layoutCache: {\n attPos: 'x' | 'y';\n attSize: 'width' | 'height';\n size: number;\n } = {\n attPos: 'x',\n attSize: 'width',\n size: 0\n };\n private _spanCache: number;\n\n private _onHandlerPointerMove: (e: FederatedPointerEvent) => void;\n\n constructor(props: InteractionAttributes) {\n super();\n this._initAttrs(props);\n }\n\n setAttributes(props: InteractionAttributes): void {\n this._initAttrs(props);\n this._onHandlerPointerMove =\n (this.attribute?.delayTime ?? 0) === 0\n ? this._pointerMove\n : delayMap[this.attribute?.delayType ?? 'debounce'](this._pointerMove, this.attribute?.delayTime ?? 0);\n }\n\n private _initAttrs(props: InteractionAttributes) {\n this.stage = props.stage;\n this.attribute = props.attribute;\n this._startHandlerMask = props.startHandlerMask;\n this._endHandlerMask = props.endHandlerMask;\n this._middleHandlerSymbol = props.middleHandlerSymbol;\n this._middleHandlerRect = props.middleHandlerRect;\n this._selectedBackground = props.selectedBackground;\n this._background = props.background;\n this._previewGroup = props.previewGroup;\n this._selectedPreviewGroup = props.selectedPreviewGroup;\n this._getLayoutAttrFromConfig = props.getLayoutAttrFromConfig;\n this._getState = props.getState;\n this._setState = props.setState;\n\n const { width, height } = this._getLayoutAttrFromConfig();\n this._spanCache = this._getState().end - this._getState().start;\n const isHorizontal = this.attribute.orient === 'top' || this.attribute.orient === 'bottom';\n this._layoutCache.size = isHorizontal ? width : height;\n this._layoutCache.attPos = isHorizontal ? 'x' : 'y';\n this._layoutCache.attSize = isHorizontal ? 'width' : 'height';\n this._getGlobalTransMatrix = props.getGlobalTransMatrix;\n }\n\n clearDragEvents() {\n const evtTarget = vglobal.env === 'browser' ? vglobal : this.stage;\n const triggers = getEndTriggersOfDrag();\n\n evtTarget.removeEventListener('pointermove', this._onHandlerPointerMove, { capture: true });\n triggers.forEach((trigger: string) => {\n evtTarget.removeEventListener(trigger, this._onHandlerPointerUp);\n });\n\n (this as unknown as IGroup).off('pointermove', this._onHandlerPointerMove, {\n capture: true\n });\n }\n\n clearVGlobalEvents() {\n (vglobal.env === 'browser' ? vglobal : this.stage).addEventListener('touchmove', this._handleTouchMove, {\n passive: false\n });\n }\n\n bindEvents(): void {\n const { brushSelect } = this.attribute as DataZoomAttributes;\n // 拖拽开始\n this._startHandlerMask?.addEventListener(\n 'pointerdown',\n (e: FederatedPointerEvent) => this._onHandlerPointerDown(e, 'start') as unknown as EventListener\n );\n this._endHandlerMask?.addEventListener(\n 'pointerdown',\n (e: FederatedPointerEvent) => this._onHandlerPointerDown(e, 'end') as unknown as EventListener\n );\n this._middleHandlerSymbol?.addEventListener(\n 'pointerdown',\n (e: FederatedPointerEvent) => this._onHandlerPointerDown(e, 'middleSymbol') as unknown as EventListener\n );\n this._middleHandlerRect?.addEventListener(\n 'pointerdown',\n (e: FederatedPointerEvent) => this._onHandlerPointerDown(e, 'middleRect') as unknown as EventListener\n );\n const selectedTag = brushSelect ? 'background' : 'middleRect';\n this._selectedBackground?.addEventListener(\n 'pointerdown',\n (e: FederatedPointerEvent) => this._onHandlerPointerDown(e, selectedTag) as unknown as EventListener\n );\n brushSelect &&\n this._background?.addEventListener(\n 'pointerdown',\n (e: FederatedPointerEvent) => this._onHandlerPointerDown(e, 'background') as unknown as EventListener\n );\n brushSelect &&\n this._previewGroup?.addEventListener(\n 'pointerdown',\n (e: FederatedPointerEvent) => this._onHandlerPointerDown(e, 'background') as unknown as EventListener\n );\n this._selectedPreviewGroup?.addEventListener(\n 'pointerdown',\n (e: FederatedPointerEvent) => this._onHandlerPointerDown(e, selectedTag) as unknown as EventListener\n );\n\n (vglobal.env === 'browser' ? vglobal : this.stage).addEventListener('touchmove', this._handleTouchMove, {\n passive: false\n });\n }\n private _handleTouchMove = (e: TouchEvent) => {\n if (this._activeState) {\n /**\n * https://developer.mozilla.org/zh-CN/docs/Web/CSS/overscroll-behavior\n * 由于浏览器的overscroll-behavior属性,需要在move的时候阻止浏览器默认行为,否则会因为浏览器检测到scroll行为,阻止pointer事件,\n * 抛出pointercancel事件,导致拖拽行为中断。\n */\n e.preventDefault();\n }\n };\n\n /**\n * 拖拽开始事件\n * @description 开启activeState + 通过tag判断事件在哪个元素上触发 并 更新交互坐标\n */\n private _onHandlerPointerDown = (e: FederatedPointerEvent, tag: string) => {\n // 清除之前的事件,防止没有被清除掉\n this.clearDragEvents();\n if (tag === 'start') {\n this._activeTag = DataZoomActiveTag.startHandler;\n this._activeItem = this._startHandlerMask;\n } else if (tag === 'end') {\n this._activeTag = DataZoomActiveTag.endHandler;\n this._activeItem = this._endHandlerMask;\n } else if (tag === 'middleRect') {\n this._activeTag = DataZoomActiveTag.middleHandler;\n this._activeItem = this._middleHandlerRect;\n } else if (tag === 'middleSymbol') {\n this._activeTag = DataZoomActiveTag.middleHandler;\n this._activeItem = this._middleHandlerSymbol;\n } else if (tag === 'background') {\n this._activeTag = DataZoomActiveTag.background;\n this._activeItem = this._background;\n }\n this._activeState = true;\n this._activeCache.startPos = this._eventPosToStagePos(e);\n this._activeCache.lastPos = this._eventPosToStagePos(e);\n const evtTarget = vglobal.env === 'browser' ? vglobal : this.stage;\n const triggers = getEndTriggersOfDrag();\n\n /**\n * move的时候,需要通过 capture: true,能够在捕获截断被拦截,\n */\n evtTarget.addEventListener('pointermove', this._onHandlerPointerMove, { capture: true });\n (this as unknown as IGroup).on('pointermove', this._onHandlerPointerMove, {\n capture: true\n });\n\n triggers.forEach((trigger: string) => {\n evtTarget.addEventListener(trigger, this._onHandlerPointerUp);\n });\n };\n\n /**\n * 拖拽进行事件\n * @description 分为以下四种情况:\n * 1. 在背景 or 背景图表上拖拽 (activeTag === 'background'): 改变lastPos => only renderDragMask\n * 2. 在middleHandler上拖拽 (activeTag === 'middleHandler'): 改变lastPos、start & end + 边界处理: 防止拖拽结果超出背景 => render\n * 3. 在startHandler上拖拽 (activeTag === 'startHandler'): 改变lastPos、start & end + 边界处理: startHandler和endHandler交换 => render\n * 4. 在endHandler上拖拽,同上\n */\n private _pointerMove = (e: FederatedPointerEvent) => {\n const { brushSelect } = this.attribute as DataZoomAttributes;\n const { position } = this._getLayoutAttrFromConfig();\n const pos = this._eventPosToStagePos(e);\n\n const { attPos, size, attSize } = this._layoutCache;\n const dis = (pos[attPos] - this._activeCache.lastPos[attPos]) / size;\n const statePos = (pos[attPos] - position[attPos]) / this._getLayoutAttrFromConfig()[attSize];\n\n let { start, end } = this._getState();\n let shouldRender = true;\n if (this._activeState) {\n if (this._activeTag === DataZoomActiveTag.middleHandler) {\n ({ start, end } = this._moveZoomWithMiddle(dis));\n } else if (this._activeTag === DataZoomActiveTag.startHandler) {\n ({ start, end } = this._moveZoomWithHandler(statePos, 'start'));\n } else if (this._activeTag === DataZoomActiveTag.endHandler) {\n ({ start, end } = this._moveZoomWithHandler(statePos, 'end'));\n } else if (this._activeTag === DataZoomActiveTag.background && brushSelect) {\n ({ start, end } = this._moveZoomWithBackground(statePos));\n shouldRender = false;\n this._dispatchEvent(IDataZoomInteractiveEvent.maskUpdate);\n }\n this._activeCache.lastPos = pos;\n }\n\n // 避免attributes相同时, 重复渲染\n if (this._getState().start !== start || this._getState().end !== end) {\n this._setStateAttr(start, end);\n this._dispatchEvent(IDataZoomInteractiveEvent.stateUpdate, {\n start: this._getState().start,\n end: this._getState().end,\n shouldRender,\n tag: this._activeTag\n });\n if (this.attribute.realTime) {\n this._dispatchEvent(IDataZoomInteractiveEvent.dataZoomUpdate, {\n start: this._getState().start,\n end: this._getState().end,\n shouldRender: true,\n tag: this._activeTag\n });\n }\n }\n };\n\n /** state 边界处理 */\n private _setStateAttr(start: number, end: number) {\n const { zoomLock = false, minSpan = 0, maxSpan = 1 } = this.attribute as DataZoomAttributes;\n const span = end - start;\n if (span !== this._spanCache && (zoomLock || span < minSpan || span > maxSpan)) {\n return;\n }\n this._spanCache = span;\n this._setState({ start, end });\n }\n /**\n * @description 拖拽middleHandler, 改变start和end\n */\n private _moveZoomWithMiddle(dis: number) {\n const { start: staetState, end: endState } = this._getState();\n // 拖拽middleHandler时,限制在background范围内\n if (dis > 0 && endState + dis > 1) {\n dis = 1 - endState;\n } else if (dis < 0 && staetState + dis < 0) {\n dis = -staetState;\n }\n return {\n start: clamp(staetState + dis, 0, 1),\n end: clamp(endState + dis, 0, 1)\n };\n }\n\n /**\n * @description 拖拽startHandler/endHandler, 改变start和end\n */\n private _moveZoomWithHandler(statePos: number, handler: 'start' | 'end') {\n const { start, end } = this._getState();\n let newStart = start;\n let newEnd = end;\n if (handler === 'start') {\n if (statePos > end) {\n newStart = end;\n newEnd = statePos;\n this._activeTag = DataZoomActiveTag.endHandler;\n } else {\n newStart = statePos;\n }\n } else if (handler === 'end') {\n if (statePos < start) {\n newEnd = start;\n newStart = statePos;\n this._activeTag = DataZoomActiveTag.startHandler;\n } else {\n newEnd = statePos;\n }\n }\n return {\n start: clamp(newStart, 0, 1),\n end: clamp(newEnd, 0, 1)\n };\n }\n\n /**\n * @description 拖拽背景, 改变start和end\n */\n private _moveZoomWithBackground(statePos: number) {\n const { position } = this._getLayoutAttrFromConfig();\n const { attSize } = this._layoutCache;\n const startPos =\n (this._activeCache.startPos[this._layoutCache.attPos] - position[this._layoutCache.attPos]) /\n this._getLayoutAttrFromConfig()[attSize];\n const endPos = statePos;\n let start = clamp(startPos, 0, 1);\n let end = clamp(endPos, 0, 1);\n if (start > end) {\n [start, end] = [end, start];\n }\n return { start, end };\n }\n\n /**\n * 拖拽结束事件\n * @description 关闭activeState + 边界情况处理: 防止拖拽后start和end过近\n */\n private _onHandlerPointerUp = (e: FederatedPointerEvent) => {\n if (this._activeState) {\n // brush的时候, 只改变了state, 没有触发重新渲染, 在抬起鼠标时触发\n if (this._activeTag === DataZoomActiveTag.background) {\n this._setStateAttr(this._getState().start, this._getState().end);\n this._dispatchEvent(IDataZoomInteractiveEvent.stateUpdate, {\n start: this._getState().start,\n end: this._getState().end,\n shouldRender: true,\n tag: this._activeTag\n });\n }\n }\n this._activeState = false;\n // 此次dispatch不能被省略\n // 因为pointermove时, 已经将状态更新至最新, 所以在pointerup时, 必定start = state.start & end = state.end\n // 而realTime = false时, 需要依赖这次dispatch来更新图表图元\n this._dispatchEvent(IDataZoomInteractiveEvent.dataZoomUpdate, {\n start: this._getState().start,\n end: this._getState().end,\n shouldRender: true,\n tag: this._activeTag\n });\n\n this.clearDragEvents();\n };\n\n /** 事件系统坐标转换为stage坐标 */\n private _eventPosToStagePos(e: FederatedPointerEvent) {\n const result = { x: 0, y: 0 };\n // 1. 外部坐标 -> 内部坐标\n const stagePoints = this.stage?.eventPointTransform(e as any) ?? { x: 0, y: 0 }; // updateSpec过程中交互的话, stage可能为空\n // 2. 内部坐标 -> 组件坐标 (比如: 给layer设置 scale / x / y)\n this._getGlobalTransMatrix().transformPoint(stagePoints, result);\n return result;\n }\n\n protected _dispatchEvent(eventName: IDataZoomInteractiveEvent, details?: Dict<any>) {\n this.emit(eventName, details);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/data-zoom/interaction.ts"],"names":[],"mappings":"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","file":"interaction.js","sourcesContent":["import { DataZoomActiveTag, IDataZoomInteractiveEvent, type DataZoomAttributes } from './type';\nimport { getEndTriggersOfDrag } from '../util/event';\nimport type { IPointLike, Dict, Matrix } from '@visactor/vutils';\nimport { vglobal } from '@visactor/vrender-core';\nimport type { FederatedPointerEvent, IGroup, IRect, ISymbol, IStage } from '@visactor/vrender-core';\nimport { clamp, debounce, EventEmitter, throttle } from '@visactor/vutils';\nconst delayMap = {\n debounce: debounce,\n throttle: throttle\n};\nexport interface InteractionAttributes {\n stage: IStage;\n attribute: Partial<Required<DataZoomAttributes>>;\n startHandlerMask?: IRect;\n endHandlerMask?: IRect;\n middleHandlerSymbol?: ISymbol;\n middleHandlerRect?: IRect;\n selectedBackground?: IRect;\n background?: IRect;\n previewGroup?: IGroup;\n selectedPreviewGroup?: IGroup;\n getLayoutAttrFromConfig?: any;\n getState: () => { start: number; end: number };\n setState: (state: { start: number; end: number }) => void;\n getGlobalTransMatrix: () => Matrix;\n}\nexport class DataZoomInteraction extends EventEmitter {\n /** 上层透传 */\n stage: IStage;\n attribute!: Partial<Required<DataZoomAttributes>>;\n private _getLayoutAttrFromConfig: any;\n private _getState: () => { start: number; end: number };\n private _setState: (state: { start: number; end: number }) => void;\n private _getGlobalTransMatrix: () => Matrix;\n\n /** 图元 */\n private _startHandlerMask: IRect | undefined;\n private _middleHandlerSymbol: ISymbol | undefined;\n private _middleHandlerRect: IRect | undefined;\n private _endHandlerMask: IRect | undefined;\n private _background: IRect | undefined;\n private _previewGroup: IGroup | undefined;\n private _selectedPreviewGroup: IGroup | undefined;\n private _selectedBackground: IRect | undefined;\n\n /** 交互 */\n private _activeTag!: DataZoomActiveTag;\n private _activeItem!: any;\n private _activeState = false;\n private _activeCache: {\n startPos: IPointLike;\n lastPos: IPointLike;\n } = {\n startPos: { x: 0, y: 0 },\n lastPos: { x: 0, y: 0 }\n };\n private _layoutCache: {\n attPos: 'x' | 'y';\n attSize: 'width' | 'height';\n size: number;\n } = {\n attPos: 'x',\n attSize: 'width',\n size: 0\n };\n private _spanCache: number;\n\n private _onHandlerPointerMove: (e: FederatedPointerEvent) => void;\n\n constructor(props: InteractionAttributes) {\n super();\n this._initAttrs(props);\n }\n\n setAttributes(props: InteractionAttributes): void {\n this._initAttrs(props);\n this._onHandlerPointerMove =\n (this.attribute?.delayTime ?? 0) === 0\n ? this._pointerMove\n : delayMap[this.attribute?.delayType ?? 'debounce'](this._pointerMove, this.attribute?.delayTime ?? 0);\n }\n\n private _initAttrs(props: InteractionAttributes) {\n this.stage = props.stage;\n this.attribute = props.attribute;\n this._startHandlerMask = props.startHandlerMask;\n this._endHandlerMask = props.endHandlerMask;\n this._middleHandlerSymbol = props.middleHandlerSymbol;\n this._middleHandlerRect = props.middleHandlerRect;\n this._selectedBackground = props.selectedBackground;\n this._background = props.background;\n this._previewGroup = props.previewGroup;\n this._selectedPreviewGroup = props.selectedPreviewGroup;\n this._getLayoutAttrFromConfig = props.getLayoutAttrFromConfig;\n this._getState = props.getState;\n this._setState = props.setState;\n\n const { width, height } = this._getLayoutAttrFromConfig();\n this._spanCache = this._getState().end - this._getState().start;\n const isHorizontal = this.attribute.orient === 'top' || this.attribute.orient === 'bottom';\n this._layoutCache.size = isHorizontal ? width : height;\n this._layoutCache.attPos = isHorizontal ? 'x' : 'y';\n this._layoutCache.attSize = isHorizontal ? 'width' : 'height';\n this._getGlobalTransMatrix = props.getGlobalTransMatrix;\n }\n\n clearDragEvents() {\n const evtTarget = vglobal.env === 'browser' ? vglobal : this.stage;\n const triggers = getEndTriggersOfDrag();\n\n evtTarget.removeEventListener('pointermove', this._onHandlerPointerMove, { capture: true });\n triggers.forEach((trigger: string) => {\n evtTarget.removeEventListener(trigger, this._onHandlerPointerUp);\n });\n\n (this as unknown as IGroup).off('pointermove', this._onHandlerPointerMove, {\n capture: true\n });\n }\n\n clearVGlobalEvents() {\n (vglobal.env === 'browser' ? vglobal : this.stage).removeEventListener('touchmove', this._handleTouchMove, {\n passive: false\n });\n }\n\n bindEvents(): void {\n const { brushSelect } = this.attribute as DataZoomAttributes;\n // 拖拽开始\n this._startHandlerMask?.addEventListener(\n 'pointerdown',\n (e: FederatedPointerEvent) => this._onHandlerPointerDown(e, 'start') as unknown as EventListener\n );\n this._endHandlerMask?.addEventListener(\n 'pointerdown',\n (e: FederatedPointerEvent) => this._onHandlerPointerDown(e, 'end') as unknown as EventListener\n );\n this._middleHandlerSymbol?.addEventListener(\n 'pointerdown',\n (e: FederatedPointerEvent) => this._onHandlerPointerDown(e, 'middleSymbol') as unknown as EventListener\n );\n this._middleHandlerRect?.addEventListener(\n 'pointerdown',\n (e: FederatedPointerEvent) => this._onHandlerPointerDown(e, 'middleRect') as unknown as EventListener\n );\n const selectedTag = brushSelect ? 'background' : 'middleRect';\n this._selectedBackground?.addEventListener(\n 'pointerdown',\n (e: FederatedPointerEvent) => this._onHandlerPointerDown(e, selectedTag) as unknown as EventListener\n );\n brushSelect &&\n this._background?.addEventListener(\n 'pointerdown',\n (e: FederatedPointerEvent) => this._onHandlerPointerDown(e, 'background') as unknown as EventListener\n );\n brushSelect &&\n this._previewGroup?.addEventListener(\n 'pointerdown',\n (e: FederatedPointerEvent) => this._onHandlerPointerDown(e, 'background') as unknown as EventListener\n );\n this._selectedPreviewGroup?.addEventListener(\n 'pointerdown',\n (e: FederatedPointerEvent) => this._onHandlerPointerDown(e, selectedTag) as unknown as EventListener\n );\n\n (vglobal.env === 'browser' ? vglobal : this.stage).addEventListener('touchmove', this._handleTouchMove, {\n passive: false\n });\n }\n private _handleTouchMove = (e: TouchEvent) => {\n if (this._activeState) {\n /**\n * https://developer.mozilla.org/zh-CN/docs/Web/CSS/overscroll-behavior\n * 由于浏览器的overscroll-behavior属性,需要在move的时候阻止浏览器默认行为,否则会因为浏览器检测到scroll行为,阻止pointer事件,\n * 抛出pointercancel事件,导致拖拽行为中断。\n */\n e.preventDefault();\n }\n };\n\n /**\n * 拖拽开始事件\n * @description 开启activeState + 通过tag判断事件在哪个元素上触发 并 更新交互坐标\n */\n private _onHandlerPointerDown = (e: FederatedPointerEvent, tag: string) => {\n // 清除之前的事件,防止没有被清除掉\n this.clearDragEvents();\n if (tag === 'start') {\n this._activeTag = DataZoomActiveTag.startHandler;\n this._activeItem = this._startHandlerMask;\n } else if (tag === 'end') {\n this._activeTag = DataZoomActiveTag.endHandler;\n this._activeItem = this._endHandlerMask;\n } else if (tag === 'middleRect') {\n this._activeTag = DataZoomActiveTag.middleHandler;\n this._activeItem = this._middleHandlerRect;\n } else if (tag === 'middleSymbol') {\n this._activeTag = DataZoomActiveTag.middleHandler;\n this._activeItem = this._middleHandlerSymbol;\n } else if (tag === 'background') {\n this._activeTag = DataZoomActiveTag.background;\n this._activeItem = this._background;\n }\n this._activeState = true;\n this._activeCache.startPos = this._eventPosToStagePos(e);\n this._activeCache.lastPos = this._eventPosToStagePos(e);\n const evtTarget = vglobal.env === 'browser' ? vglobal : this.stage;\n const triggers = getEndTriggersOfDrag();\n\n /**\n * move的时候,需要通过 capture: true,能够在捕获截断被拦截,\n */\n evtTarget.addEventListener('pointermove', this._onHandlerPointerMove, { capture: true });\n (this as unknown as IGroup).on('pointermove', this._onHandlerPointerMove, {\n capture: true\n });\n\n triggers.forEach((trigger: string) => {\n evtTarget.addEventListener(trigger, this._onHandlerPointerUp);\n });\n };\n\n /**\n * 拖拽进行事件\n * @description 分为以下四种情况:\n * 1. 在背景 or 背景图表上拖拽 (activeTag === 'background'): 改变lastPos => only renderDragMask\n * 2. 在middleHandler上拖拽 (activeTag === 'middleHandler'): 改变lastPos、start & end + 边界处理: 防止拖拽结果超出背景 => render\n * 3. 在startHandler上拖拽 (activeTag === 'startHandler'): 改变lastPos、start & end + 边界处理: startHandler和endHandler交换 => render\n * 4. 在endHandler上拖拽,同上\n */\n private _pointerMove = (e: FederatedPointerEvent) => {\n const { brushSelect } = this.attribute as DataZoomAttributes;\n const { position } = this._getLayoutAttrFromConfig();\n const pos = this._eventPosToStagePos(e);\n\n const { attPos, size, attSize } = this._layoutCache;\n const dis = (pos[attPos] - this._activeCache.lastPos[attPos]) / size;\n const statePos = (pos[attPos] - position[attPos]) / this._getLayoutAttrFromConfig()[attSize];\n\n let { start, end } = this._getState();\n let shouldRender = true;\n if (this._activeState) {\n if (this._activeTag === DataZoomActiveTag.middleHandler) {\n ({ start, end } = this._moveZoomWithMiddle(dis));\n } else if (this._activeTag === DataZoomActiveTag.startHandler) {\n ({ start, end } = this._moveZoomWithHandler(statePos, 'start'));\n } else if (this._activeTag === DataZoomActiveTag.endHandler) {\n ({ start, end } = this._moveZoomWithHandler(statePos, 'end'));\n } else if (this._activeTag === DataZoomActiveTag.background && brushSelect) {\n ({ start, end } = this._moveZoomWithBackground(statePos));\n shouldRender = false;\n this._dispatchEvent(IDataZoomInteractiveEvent.maskUpdate);\n }\n this._activeCache.lastPos = pos;\n }\n\n // 避免attributes相同时, 重复渲染\n if (this._getState().start !== start || this._getState().end !== end) {\n this._setStateAttr(start, end);\n this._dispatchEvent(IDataZoomInteractiveEvent.stateUpdate, {\n start: this._getState().start,\n end: this._getState().end,\n shouldRender,\n tag: this._activeTag\n });\n if (this.attribute.realTime) {\n this._dispatchEvent(IDataZoomInteractiveEvent.dataZoomUpdate, {\n start: this._getState().start,\n end: this._getState().end,\n shouldRender: true,\n tag: this._activeTag\n });\n }\n }\n };\n\n /** state 边界处理 */\n private _setStateAttr(start: number, end: number) {\n const { zoomLock = false, minSpan = 0, maxSpan = 1 } = this.attribute as DataZoomAttributes;\n const span = end - start;\n if (span !== this._spanCache && (zoomLock || span < minSpan || span > maxSpan)) {\n return;\n }\n this._spanCache = span;\n this._setState({ start, end });\n }\n /**\n * @description 拖拽middleHandler, 改变start和end\n */\n private _moveZoomWithMiddle(dis: number) {\n const { start: staetState, end: endState } = this._getState();\n // 拖拽middleHandler时,限制在background范围内\n if (dis > 0 && endState + dis > 1) {\n dis = 1 - endState;\n } else if (dis < 0 && staetState + dis < 0) {\n dis = -staetState;\n }\n return {\n start: clamp(staetState + dis, 0, 1),\n end: clamp(endState + dis, 0, 1)\n };\n }\n\n /**\n * @description 拖拽startHandler/endHandler, 改变start和end\n */\n private _moveZoomWithHandler(statePos: number, handler: 'start' | 'end') {\n const { start, end } = this._getState();\n let newStart = start;\n let newEnd = end;\n if (handler === 'start') {\n if (statePos > end) {\n newStart = end;\n newEnd = statePos;\n this._activeTag = DataZoomActiveTag.endHandler;\n } else {\n newStart = statePos;\n }\n } else if (handler === 'end') {\n if (statePos < start) {\n newEnd = start;\n newStart = statePos;\n this._activeTag = DataZoomActiveTag.startHandler;\n } else {\n newEnd = statePos;\n }\n }\n return {\n start: clamp(newStart, 0, 1),\n end: clamp(newEnd, 0, 1)\n };\n }\n\n /**\n * @description 拖拽背景, 改变start和end\n */\n private _moveZoomWithBackground(statePos: number) {\n const { position } = this._getLayoutAttrFromConfig();\n const { attSize } = this._layoutCache;\n const startPos =\n (this._activeCache.startPos[this._layoutCache.attPos] - position[this._layoutCache.attPos]) /\n this._getLayoutAttrFromConfig()[attSize];\n const endPos = statePos;\n let start = clamp(startPos, 0, 1);\n let end = clamp(endPos, 0, 1);\n if (start > end) {\n [start, end] = [end, start];\n }\n return { start, end };\n }\n\n /**\n * 拖拽结束事件\n * @description 关闭activeState + 边界情况处理: 防止拖拽后start和end过近\n */\n private _onHandlerPointerUp = (e: FederatedPointerEvent) => {\n if (this._activeState) {\n // brush的时候, 只改变了state, 没有触发重新渲染, 在抬起鼠标时触发\n if (this._activeTag === DataZoomActiveTag.background) {\n this._setStateAttr(this._getState().start, this._getState().end);\n this._dispatchEvent(IDataZoomInteractiveEvent.stateUpdate, {\n start: this._getState().start,\n end: this._getState().end,\n shouldRender: true,\n tag: this._activeTag\n });\n }\n }\n this._activeState = false;\n // 此次dispatch不能被省略\n // 因为pointermove时, 已经将状态更新至最新, 所以在pointerup时, 必定start = state.start & end = state.end\n // 而realTime = false时, 需要依赖这次dispatch来更新图表图元\n this._dispatchEvent(IDataZoomInteractiveEvent.dataZoomUpdate, {\n start: this._getState().start,\n end: this._getState().end,\n shouldRender: true,\n tag: this._activeTag\n });\n\n this.clearDragEvents();\n };\n\n /** 事件系统坐标转换为stage坐标 */\n private _eventPosToStagePos(e: FederatedPointerEvent) {\n const result = { x: 0, y: 0 };\n // 1. 外部坐标 -> 内部坐标\n const stagePoints = this.stage?.eventPointTransform(e as any) ?? { x: 0, y: 0 }; // updateSpec过程中交互的话, stage可能为空\n // 2. 内部坐标 -> 组件坐标 (比如: 给layer设置 scale / x / y)\n this._getGlobalTransMatrix().transformPoint(stagePoints, result);\n return result;\n }\n\n protected _dispatchEvent(eventName: IDataZoomInteractiveEvent, details?: Dict<any>) {\n this.emit(eventName, details);\n }\n}\n"]}
|
|
@@ -112,12 +112,14 @@ class DataZoomRenderer {
|
|
|
112
112
|
x: position.x + start * width,
|
|
113
113
|
y: position.y,
|
|
114
114
|
width: (end - start) * width,
|
|
115
|
-
height: height
|
|
115
|
+
height: height,
|
|
116
|
+
zIndex: config_1.LAYOUT_LEVEL.dragMask
|
|
116
117
|
}, dragMaskStyle), "rect") : this._dragMask = this._getContainer().createOrUpdateChild("dragMask", Object.assign({
|
|
117
118
|
x: position.x,
|
|
118
119
|
y: position.y + start * height,
|
|
119
120
|
width: width,
|
|
120
|
-
height: (end - start) * height
|
|
121
|
+
height: (end - start) * height,
|
|
122
|
+
zIndex: config_1.LAYOUT_LEVEL.dragMask
|
|
121
123
|
}, dragMaskStyle), "rect"), {
|
|
122
124
|
start: start,
|
|
123
125
|
end: end
|
|
@@ -131,7 +133,8 @@ class DataZoomRenderer {
|
|
|
131
133
|
y: position.y,
|
|
132
134
|
width: width,
|
|
133
135
|
height: height,
|
|
134
|
-
cursor: brushSelect ? "crosshair" : "auto"
|
|
136
|
+
cursor: brushSelect ? "crosshair" : "auto",
|
|
137
|
+
zIndex: config_1.LAYOUT_LEVEL.background
|
|
135
138
|
}, backgroundStyle), {
|
|
136
139
|
pickable: !zoomLock && (null === (_a = backgroundStyle.pickable) || void 0 === _a || _a)
|
|
137
140
|
}), "rect");
|
|
@@ -146,7 +149,8 @@ class DataZoomRenderer {
|
|
|
146
149
|
x: position.x + start * width,
|
|
147
150
|
y: position.y - middleHandlerBackgroundSize,
|
|
148
151
|
width: (end - start) * width,
|
|
149
|
-
height: middleHandlerBackgroundSize
|
|
152
|
+
height: middleHandlerBackgroundSize,
|
|
153
|
+
zIndex: config_1.LAYOUT_LEVEL.handler
|
|
150
154
|
}, null === (_d = middleHandlerStyle.background) || void 0 === _d ? void 0 : _d.style), {
|
|
151
155
|
pickable: !zoomLock && (null === (_g = null === (_f = null === (_e = middleHandlerStyle.background) || void 0 === _e ? void 0 : _e.style) || void 0 === _f ? void 0 : _f.pickable) || void 0 === _g || _g)
|
|
152
156
|
}), "rect"), this._middleHandlerSymbol = group.createOrUpdateChild("middleHandlerSymbol", Object.assign(Object.assign({
|
|
@@ -154,24 +158,29 @@ class DataZoomRenderer {
|
|
|
154
158
|
y: position.y - middleHandlerBackgroundSize / 2,
|
|
155
159
|
strokeBoundsBuffer: 0,
|
|
156
160
|
angle: 0,
|
|
157
|
-
symbolType: null !== (_j = null === (_h = middleHandlerStyle.icon) || void 0 === _h ? void 0 : _h.symbolType) && void 0 !== _j ? _j : "square"
|
|
161
|
+
symbolType: null !== (_j = null === (_h = middleHandlerStyle.icon) || void 0 === _h ? void 0 : _h.symbolType) && void 0 !== _j ? _j : "square",
|
|
162
|
+
zIndex: config_1.LAYOUT_LEVEL.handler
|
|
158
163
|
}, middleHandlerStyle.icon), {
|
|
159
164
|
pickable: !zoomLock && (null === (_k = middleHandlerStyle.icon.pickable) || void 0 === _k || _k)
|
|
160
165
|
}), "symbol");
|
|
161
166
|
}
|
|
162
|
-
this._startHandler = group.createOrUpdateChild("startHandler", Object.assign(Object.assign(Object.assign({
|
|
167
|
+
this._startHandler = group.createOrUpdateChild("startHandler", Object.assign(Object.assign(Object.assign(Object.assign({
|
|
163
168
|
x: position.x + start * width,
|
|
164
169
|
y: position.y + height / 2,
|
|
165
170
|
size: height,
|
|
166
171
|
symbolType: null !== (_l = startHandlerStyle.symbolType) && void 0 !== _l ? _l : "square"
|
|
167
|
-
}, config_1.DEFAULT_HANDLER_ATTR_MAP.horizontal),
|
|
172
|
+
}, config_1.DEFAULT_HANDLER_ATTR_MAP.horizontal), {
|
|
173
|
+
zIndex: config_1.LAYOUT_LEVEL.handler
|
|
174
|
+
}), startHandlerStyle), {
|
|
168
175
|
pickable: !zoomLock && (null === (_m = startHandlerStyle.pickable) || void 0 === _m || _m)
|
|
169
|
-
}), "symbol"), this._endHandler = group.createOrUpdateChild("endHandler", Object.assign(Object.assign(Object.assign({
|
|
176
|
+
}), "symbol"), this._endHandler = group.createOrUpdateChild("endHandler", Object.assign(Object.assign(Object.assign(Object.assign({
|
|
170
177
|
x: position.x + end * width,
|
|
171
178
|
y: position.y + height / 2,
|
|
172
179
|
size: height,
|
|
173
180
|
symbolType: null !== (_o = endHandlerStyle.symbolType) && void 0 !== _o ? _o : "square"
|
|
174
|
-
}, config_1.DEFAULT_HANDLER_ATTR_MAP.horizontal),
|
|
181
|
+
}, config_1.DEFAULT_HANDLER_ATTR_MAP.horizontal), {
|
|
182
|
+
zIndex: config_1.LAYOUT_LEVEL.handler
|
|
183
|
+
}), endHandlerStyle), {
|
|
175
184
|
pickable: !zoomLock && (null === (_p = endHandlerStyle.pickable) || void 0 === _p || _p)
|
|
176
185
|
}), "symbol");
|
|
177
186
|
const startHandlerWidth = Math.max(this._startHandler.AABBBounds.width(), startHandlerMinSize), startHandlerHeight = Math.max(this._startHandler.AABBBounds.height(), startHandlerMinSize), endHandlerWidth = Math.max(this._endHandler.AABBBounds.width(), endHandlerMinSize), endHandlerHeight = Math.max(this._endHandler.AABBBounds.height(), endHandlerMinSize);
|
|
@@ -182,7 +191,7 @@ class DataZoomRenderer {
|
|
|
182
191
|
height: startHandlerHeight,
|
|
183
192
|
fill: "white",
|
|
184
193
|
fillOpacity: 0,
|
|
185
|
-
zIndex:
|
|
194
|
+
zIndex: config_1.LAYOUT_LEVEL.handlerMask
|
|
186
195
|
}, config_1.DEFAULT_HANDLER_ATTR_MAP.horizontal), {
|
|
187
196
|
pickable: !zoomLock
|
|
188
197
|
}), "rect"), this._endHandlerMask = group.createOrUpdateChild("endHandlerMask", Object.assign(Object.assign({
|
|
@@ -192,7 +201,7 @@ class DataZoomRenderer {
|
|
|
192
201
|
height: endHandlerHeight,
|
|
193
202
|
fill: "white",
|
|
194
203
|
fillOpacity: 0,
|
|
195
|
-
zIndex:
|
|
204
|
+
zIndex: config_1.LAYOUT_LEVEL.handlerMask
|
|
196
205
|
}, config_1.DEFAULT_HANDLER_ATTR_MAP.horizontal), {
|
|
197
206
|
pickable: !zoomLock
|
|
198
207
|
}), "rect");
|
|
@@ -203,7 +212,8 @@ class DataZoomRenderer {
|
|
|
203
212
|
x: "left" === orient ? position.x - middleHandlerBackgroundSize : position.x + width,
|
|
204
213
|
y: position.y + start * height,
|
|
205
214
|
width: middleHandlerBackgroundSize,
|
|
206
|
-
height: (end - start) * height
|
|
215
|
+
height: (end - start) * height,
|
|
216
|
+
zIndex: config_1.LAYOUT_LEVEL.handler
|
|
207
217
|
}, null === (_r = middleHandlerStyle.background) || void 0 === _r ? void 0 : _r.style), {
|
|
208
218
|
pickable: !zoomLock && (null === (_u = null === (_t = null === (_s = middleHandlerStyle.background) || void 0 === _s ? void 0 : _s.style) || void 0 === _t ? void 0 : _t.pickable) || void 0 === _u || _u)
|
|
209
219
|
}), "rect"), this._middleHandlerSymbol = group.createOrUpdateChild("middleHandlerSymbol", Object.assign(Object.assign({
|
|
@@ -211,23 +221,27 @@ class DataZoomRenderer {
|
|
|
211
221
|
y: position.y + (start + end) / 2 * height,
|
|
212
222
|
angle: Math.PI / 180 * 90,
|
|
213
223
|
symbolType: null !== (_w = null === (_v = middleHandlerStyle.icon) || void 0 === _v ? void 0 : _v.symbolType) && void 0 !== _w ? _w : "square",
|
|
214
|
-
strokeBoundsBuffer: 0
|
|
224
|
+
strokeBoundsBuffer: 0,
|
|
225
|
+
zIndex: config_1.LAYOUT_LEVEL.handler
|
|
215
226
|
}, middleHandlerStyle.icon), {
|
|
216
227
|
pickable: !zoomLock && (null === (_y = null === (_x = middleHandlerStyle.icon) || void 0 === _x ? void 0 : _x.pickable) || void 0 === _y || _y)
|
|
217
228
|
}), "symbol");
|
|
218
229
|
}
|
|
219
|
-
this._startHandler = group.createOrUpdateChild("startHandler", Object.assign(Object.assign(Object.assign({
|
|
230
|
+
this._startHandler = group.createOrUpdateChild("startHandler", Object.assign(Object.assign(Object.assign(Object.assign({
|
|
220
231
|
x: position.x + width / 2,
|
|
221
232
|
y: position.y + start * height,
|
|
222
233
|
size: width,
|
|
223
234
|
symbolType: null !== (_z = startHandlerStyle.symbolType) && void 0 !== _z ? _z : "square"
|
|
224
|
-
}, config_1.DEFAULT_HANDLER_ATTR_MAP.vertical),
|
|
235
|
+
}, config_1.DEFAULT_HANDLER_ATTR_MAP.vertical), {
|
|
236
|
+
zIndex: config_1.LAYOUT_LEVEL.handler
|
|
237
|
+
}), startHandlerStyle), {
|
|
225
238
|
pickable: !zoomLock && (null === (_0 = startHandlerStyle.pickable) || void 0 === _0 || _0)
|
|
226
239
|
}), "symbol"), this._endHandler = group.createOrUpdateChild("endHandler", Object.assign(Object.assign(Object.assign({
|
|
227
240
|
x: position.x + width / 2,
|
|
228
241
|
y: position.y + end * height,
|
|
229
242
|
size: width,
|
|
230
|
-
symbolType: null !== (_1 = endHandlerStyle.symbolType) && void 0 !== _1 ? _1 : "square"
|
|
243
|
+
symbolType: null !== (_1 = endHandlerStyle.symbolType) && void 0 !== _1 ? _1 : "square",
|
|
244
|
+
zIndex: config_1.LAYOUT_LEVEL.handler
|
|
231
245
|
}, config_1.DEFAULT_HANDLER_ATTR_MAP.vertical), endHandlerStyle), {
|
|
232
246
|
pickable: !zoomLock && (null === (_2 = endHandlerStyle.pickable) || void 0 === _2 || _2)
|
|
233
247
|
}), "symbol");
|
|
@@ -239,7 +253,7 @@ class DataZoomRenderer {
|
|
|
239
253
|
height: endHandlerWidth,
|
|
240
254
|
fill: "white",
|
|
241
255
|
fillOpacity: 0,
|
|
242
|
-
zIndex:
|
|
256
|
+
zIndex: config_1.LAYOUT_LEVEL.handlerMask
|
|
243
257
|
}, config_1.DEFAULT_HANDLER_ATTR_MAP.vertical), {
|
|
244
258
|
pickable: !zoomLock
|
|
245
259
|
}), "rect"), this._endHandlerMask = group.createOrUpdateChild("endHandlerMask", Object.assign(Object.assign({
|
|
@@ -249,7 +263,7 @@ class DataZoomRenderer {
|
|
|
249
263
|
height: endHandlerWidth,
|
|
250
264
|
fill: "white",
|
|
251
265
|
fillOpacity: 0,
|
|
252
|
-
zIndex:
|
|
266
|
+
zIndex: config_1.LAYOUT_LEVEL.handlerMask
|
|
253
267
|
}, config_1.DEFAULT_HANDLER_ATTR_MAP.vertical), {
|
|
254
268
|
pickable: !zoomLock
|
|
255
269
|
}), "rect");
|
|
@@ -263,7 +277,8 @@ class DataZoomRenderer {
|
|
|
263
277
|
y: position.y,
|
|
264
278
|
width: (end - start) * width,
|
|
265
279
|
height: height,
|
|
266
|
-
cursor: brushSelect ? "crosshair" : "move"
|
|
280
|
+
cursor: brushSelect ? "crosshair" : "move",
|
|
281
|
+
zIndex: config_1.LAYOUT_LEVEL.selectedBackground
|
|
267
282
|
}, selectedBackgroundStyle), {
|
|
268
283
|
pickable: !zoomLock && (null === (_a = selectedBackgroundChartStyle.pickable) || void 0 === _a || _a)
|
|
269
284
|
}), "rect") : this._selectedBackground = group.createOrUpdateChild("selectedBackground", Object.assign(Object.assign({
|
|
@@ -271,14 +286,16 @@ class DataZoomRenderer {
|
|
|
271
286
|
y: position.y + start * height,
|
|
272
287
|
width: width,
|
|
273
288
|
height: (end - start) * height,
|
|
274
|
-
cursor: brushSelect ? "crosshair" : "move"
|
|
289
|
+
cursor: brushSelect ? "crosshair" : "move",
|
|
290
|
+
zIndex: config_1.LAYOUT_LEVEL.selectedBackground
|
|
275
291
|
}, selectedBackgroundStyle), {
|
|
276
292
|
pickable: !zoomLock && (null === (_b = selectedBackgroundStyle.pickable) || void 0 === _b || _b)
|
|
277
293
|
}), "rect");
|
|
278
294
|
}
|
|
279
295
|
_setPreviewAttributes(type, group) {
|
|
280
296
|
this._previewGroup || (this._previewGroup = group.createOrUpdateChild("previewGroup", {
|
|
281
|
-
pickable: !1
|
|
297
|
+
pickable: !1,
|
|
298
|
+
zIndex: config_1.LAYOUT_LEVEL.preview
|
|
282
299
|
}, "group")), "line" === type ? this._previewLine = this._previewGroup.createOrUpdateChild("previewLine", {}, "line") : this._previewArea = this._previewGroup.createOrUpdateChild("previewArea", {
|
|
283
300
|
curveType: "basis"
|
|
284
301
|
}, "area");
|
|
@@ -295,7 +312,8 @@ class DataZoomRenderer {
|
|
|
295
312
|
}
|
|
296
313
|
_setSelectedPreviewClipAttributes(type, group) {
|
|
297
314
|
this._selectedPreviewGroupClip || (this._selectedPreviewGroupClip = group.createOrUpdateChild("selectedPreviewGroupClip", {
|
|
298
|
-
pickable: !1
|
|
315
|
+
pickable: !1,
|
|
316
|
+
zIndex: config_1.LAYOUT_LEVEL.selectedPreview
|
|
299
317
|
}, "group"), this._selectedPreviewGroup = this._selectedPreviewGroupClip.createOrUpdateChild("selectedPreviewGroup", {}, "group"));
|
|
300
318
|
const {start: start, end: end} = this._getState(), {position: position, width: width, height: height} = this._getLayoutAttrFromConfig();
|
|
301
319
|
this._selectedPreviewGroupClip.setAttributes({
|
|
@@ -444,7 +462,8 @@ class DataZoomRenderer {
|
|
|
444
462
|
visible: this._showText,
|
|
445
463
|
pickable: !1,
|
|
446
464
|
childrenPickable: !1,
|
|
447
|
-
textStyle: startTextAlignStyle
|
|
465
|
+
textStyle: startTextAlignStyle,
|
|
466
|
+
zIndex: config_1.LAYOUT_LEVEL.handlerText
|
|
448
467
|
}), "data-zoom-start-text"), this._endText = this._maybeAddLabel(this._getContainer(), (0,
|
|
449
468
|
vutils_1.merge)({}, restEndTextStyle, {
|
|
450
469
|
text: endTextValue,
|
|
@@ -453,7 +472,8 @@ class DataZoomRenderer {
|
|
|
453
472
|
visible: this._showText,
|
|
454
473
|
pickable: !1,
|
|
455
474
|
childrenPickable: !1,
|
|
456
|
-
textStyle: endTextAlignStyle
|
|
475
|
+
textStyle: endTextAlignStyle,
|
|
476
|
+
zIndex: config_1.LAYOUT_LEVEL.handlerText
|
|
457
477
|
}), "data-zoom-end-text");
|
|
458
478
|
}
|
|
459
479
|
_maybeAddLabel(container, attributes, name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data-zoom/renderer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,yDAA0D;AAI1D,6CAA6D;AAC7D,gCAAiD;AACjD,qCAAoD;AACpD,mCAAyC;AAQzC,MAAa,gBAAgB;IAY3B,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAGD,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAGD,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,QAAQ,CAAC,QAAiB;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAID,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,WAAW,CAAC,WAAkB;QAChC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAKD,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAMD,IAAI,cAAc,CAAC,cAAsC;QACvD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IACxC,CAAC;IAED,IAAI,cAAc,CAAC,cAAsC;QACvD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IACxC,CAAC;IAED,IAAI,eAAe,CAAC,eAAuC;QACzD,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAC1C,CAAC;IAED,IAAI,eAAe,CAAC,eAAuC;QACzD,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAC1C,CAAC;IAED,IAAI,gBAAgB,CAAC,gBAAwC;QAC3D,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC5C,CAAC;IAEO,UAAU,CAAC,KAA4B;QAC7C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC;QAC3F,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,IAAI;aAC3F,SAA+B,CAAC;QAEnC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC;QACjD,IAAA,mBAAU,EAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC,CAAC;QACtE,IAAA,mBAAU,EAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC,CAAC;QACtE,IAAA,mBAAU,EAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC,CAAC;QACzE,IAAA,mBAAU,EAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC,CAAC;QACzE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC,uBAAuB,CAAC;QAC9D,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC;IAC1C,CAAC;IAED,YAAY,KAA4B;QAxDhC,iBAAY,GAAU,EAAE,CAAC;QAmCzB,sBAAiB,GAA2B,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;QAsBjE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,SAA+B,CAAC;QAC7D,IAAI,CAAC,SAAS,GAAG,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,aAAa,CAAC,KAA4B;QACxC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,cAAc,CAAC,kBAA2B,KAAK;;QAC7C,MAAM,EACJ,oBAAoB,GAAG,EAAE,EACzB,4BAA4B,GAAG,EAAE,EACjC,WAAW,EACZ,GAAG,IAAI,CAAC,SAA+B,CAAC;QAEzC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAGzB,CAAA,MAAA,oBAAoB,CAAC,IAAI,0CAAE,OAAO,KAAI,CAAC,eAAe,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACnH,CAAA,MAAA,oBAAoB,CAAC,IAAI,0CAAE,OAAO,KAAI,CAAC,eAAe,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAGnH,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QAGrC,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAGjC,CAAA,MAAA,4BAA4B,CAAC,IAAI,0CAAE,OAAO,KAAI,IAAI,CAAC,iCAAiC,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACnH,CAAA,MAAA,4BAA4B,CAAC,IAAI,0CAAE,OAAO,KAAI,CAAC,eAAe,IAAI,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;QAE7G,CAAA,MAAA,4BAA4B,CAAC,IAAI,0CAAE,OAAO,KAAI,IAAI,CAAC,iCAAiC,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACnH,CAAA,MAAA,4BAA4B,CAAC,IAAI,0CAAE,OAAO,KAAI,CAAC,eAAe,IAAI,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;QAG7G,IAAI,CAAC,cAAc,EAAE,CAAC;QAGtB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;IACH,CAAC;IAKD,cAAc;QACZ,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,SAA+B,CAAC;QAC/D,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACpE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,mBAAmB,CACvD,UAAU,kBAER,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,EAC7B,CAAC,EAAE,QAAQ,CAAC,CAAC,EACb,KAAK,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,EAC5B,MAAM,EAAE,MAAM,IACX,aAAa,GAElB,MAAM,CACE,CAAC;SACZ;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,mBAAmB,CACvD,UAAU,kBAER,CAAC,EAAE,QAAQ,CAAC,CAAC,EACb,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,EAC9B,KAAK,EACL,MAAM,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,MAAM,IAC3B,aAAa,GAElB,MAAM,CACE,CAAC;SACZ;QACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACxB,CAAC;IAKO,iBAAiB;;QACvB,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,SAA+B,CAAC;QACxF,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACpE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,mBAAmB,CAC1C,YAAY,gCAEV,CAAC,EAAE,QAAQ,CAAC,CAAC,EACb,CAAC,EAAE,QAAQ,CAAC,CAAC,EACb,KAAK;YACL,MAAM,EACN,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,IACvC,eAAe,KAClB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,eAAe,CAAC,QAAQ,mCAAI,IAAI,KAE/D,MAAM,CACE,CAAC;IACb,CAAC;IAIO,cAAc;;QACpB,MAAM,EACJ,MAAM,EACN,kBAAkB,GAAG,EAAE,EACvB,iBAAiB,GAAG,EAAE,EACtB,eAAe,GAAG,EAAE,EACpB,QAAQ,EACT,GAAG,IAAI,CAAC,SAA+B,CAAC;QACzC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAExC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACpE,MAAM,mBAAmB,GAAG,MAAA,iBAAiB,CAAC,cAAc,mCAAI,EAAE,CAAC;QACnE,MAAM,iBAAiB,GAAG,MAAA,eAAe,CAAC,cAAc,mCAAI,EAAE,CAAC;QAE/D,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,kBAAkB,CAAC,OAAO,EAAE;gBAC9B,MAAM,2BAA2B,GAAG,CAAA,MAAA,kBAAkB,CAAC,UAAU,0CAAE,IAAI,KAAI,EAAE,CAAC;gBAC9E,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,mBAAmB,CACjD,mBAAmB,gCAEjB,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,EAC7B,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,2BAA2B,EAC3C,KAAK,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,EAC5B,MAAM,EAAE,2BAA2B,IAChC,MAAA,kBAAkB,CAAC,UAAU,0CAAE,KAAK,KACvC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,MAAA,MAAA,kBAAkB,CAAC,UAAU,0CAAE,KAAK,0CAAE,QAAQ,mCAAI,IAAI,KAErF,MAAM,CACE,CAAC;gBACX,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,mBAAmB,CACnD,qBAAqB,gCAEnB,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAC3C,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,2BAA2B,GAAG,CAAC,EAC/C,kBAAkB,EAAE,CAAC,EACrB,KAAK,EAAE,CAAC,EACR,UAAU,EAAE,MAAA,MAAA,kBAAkB,CAAC,IAAI,0CAAE,UAAU,mCAAI,QAAQ,IACxD,kBAAkB,CAAC,IAAI,KAC1B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,kBAAkB,CAAC,IAAI,CAAC,QAAQ,mCAAI,IAAI,KAEvE,QAAQ,CACE,CAAC;aACd;YACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,mBAAmB,CAC5C,cAAc,8CAEZ,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,EAC7B,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,EAC1B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAA,iBAAiB,CAAC,UAAU,mCAAI,QAAQ,IAChD,iCAAwB,CAAC,UAAkB,GAC5C,iBAAiB,KACpB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,iBAAiB,CAAC,QAAQ,mCAAI,IAAI,KAEjE,QAAQ,CACE,CAAC;YACb,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,mBAAmB,CAC1C,YAAY,8CAEV,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,EAC3B,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,EAC1B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAA,eAAe,CAAC,UAAU,mCAAI,QAAQ,IAC9C,iCAAwB,CAAC,UAAkB,GAC5C,eAAe,KAClB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,eAAe,CAAC,QAAQ,mCAAI,IAAI,KAE/D,QAAQ,CACE,CAAC;YAGb,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,mBAAmB,CAAC,CAAC;YAC/F,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC;YACjG,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,iBAAiB,CAAC,CAAC;YACzF,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC;YAE3F,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,mBAAmB,CAChD,kBAAkB,gCAEhB,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,iBAAiB,GAAG,CAAC,EACrD,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,EACnD,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,CAAC,EACd,MAAM,EAAE,GAAG,IACP,iCAAwB,CAAC,UAAkB,KAC/C,QAAQ,EAAE,CAAC,QAAQ,KAErB,MAAM,CACE,CAAC;YACX,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,mBAAmB,CAC9C,gBAAgB,gCAEd,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,GAAG,eAAe,GAAG,CAAC,EACjD,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,EACjD,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,CAAC,EACd,MAAM,EAAE,GAAG,IACP,iCAAwB,CAAC,UAAkB,KAC/C,QAAQ,EAAE,CAAC,QAAQ,KAErB,MAAM,CACE,CAAC;SACZ;aAAM;YACL,IAAI,kBAAkB,CAAC,OAAO,EAAE;gBAC9B,MAAM,2BAA2B,GAAG,CAAA,MAAA,kBAAkB,CAAC,UAAU,0CAAE,IAAI,KAAI,EAAE,CAAC;gBAE9E,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,mBAAmB,CACjD,mBAAmB,gCAEjB,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,EACpF,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,EAC9B,KAAK,EAAE,2BAA2B,EAClC,MAAM,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,MAAM,IAC3B,MAAA,kBAAkB,CAAC,UAAU,0CAAE,KAAK,KACvC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,MAAA,MAAA,kBAAkB,CAAC,UAAU,0CAAE,KAAK,0CAAE,QAAQ,mCAAI,IAAI,KAErF,MAAM,CACE,CAAC;gBACX,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,mBAAmB,CACnD,qBAAqB,gCAEnB,CAAC,EACC,MAAM,KAAK,MAAM;wBACf,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,2BAA2B,GAAG,CAAC;wBAC9C,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,2BAA2B,GAAG,CAAC,EAC1D,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,EAE5C,KAAK,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAC3B,UAAU,EAAE,MAAA,MAAA,kBAAkB,CAAC,IAAI,0CAAE,UAAU,mCAAI,QAAQ,EAC3D,kBAAkB,EAAE,CAAC,IAClB,kBAAkB,CAAC,IAAI,KAC1B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,MAAA,kBAAkB,CAAC,IAAI,0CAAE,QAAQ,mCAAI,IAAI,KAExE,QAAQ,CACE,CAAC;aACd;YACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,mBAAmB,CAC5C,cAAc,8CAEZ,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EACzB,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,EAC9B,IAAI,EAAE,KAAK,EACX,UAAU,EAAE,MAAA,iBAAiB,CAAC,UAAU,mCAAI,QAAQ,IAChD,iCAAwB,CAAC,QAAgB,GAC1C,iBAAiB,KACpB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,iBAAiB,CAAC,QAAQ,mCAAI,IAAI,KAEjE,QAAQ,CACE,CAAC;YAEb,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,mBAAmB,CAC1C,YAAY,8CAEV,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EACzB,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,EAC5B,IAAI,EAAE,KAAK,EACX,UAAU,EAAE,MAAA,eAAe,CAAC,UAAU,mCAAI,QAAQ,IAC9C,iCAAwB,CAAC,QAAgB,GAC1C,eAAe,KAClB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,eAAe,CAAC,QAAQ,mCAAI,IAAI,KAE/D,QAAQ,CACE,CAAC;YAGb,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,mBAAmB,CAAC,CAAC;YAC/F,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC;YACjG,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,iBAAiB,CAAC,CAAC;YACzF,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC;YAE3F,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,mBAAmB,CAChD,kBAAkB,gCAEhB,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,EACjD,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,GAAG,kBAAkB,GAAG,CAAC,EACvD,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,CAAC,EACd,MAAM,EAAE,GAAG,IACP,iCAAwB,CAAC,QAAgB,KAC7C,QAAQ,EAAE,CAAC,QAAQ,KAErB,MAAM,CACE,CAAC;YACX,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,mBAAmB,CAC9C,gBAAgB,gCAEd,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,EAC/C,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,GAAG,gBAAgB,GAAG,CAAC,EACnD,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,CAAC,EACd,MAAM,EAAE,GAAG,IACP,iCAAwB,CAAC,QAAgB,KAC7C,QAAQ,EAAE,CAAC,QAAQ,KAErB,MAAM,CACE,CAAC;SACZ;IACH,CAAC;IAKO,yBAAyB;;QAC/B,MAAM,EACJ,uBAAuB,GAAG,EAAE,EAC5B,4BAA4B,GAAG,EAAE,EACjC,WAAW,EACX,QAAQ,EACT,GAAG,IAAI,CAAC,SAA+B,CAAC;QACzC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAExC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEpE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,aAAa,EAAE;YAEtB,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAClD,oBAAoB,gCAElB,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,EAC7B,CAAC,EAAE,QAAQ,CAAC,CAAC,EACb,KAAK,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,EAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,IACvC,uBAAuB,KAC1B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAC,4BAAoC,CAAC,QAAQ,mCAAI,IAAI,KAErF,MAAM,CACE,CAAC;SACZ;aAAM;YAEL,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAClD,oBAAoB,gCAElB,CAAC,EAAE,QAAQ,CAAC,CAAC,EACb,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,EAC9B,KAAK,EACL,MAAM,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,MAAM,EAC9B,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,IACvC,uBAAuB,KAC1B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,uBAAuB,CAAC,QAAQ,mCAAI,IAAI,KAEvE,MAAM,CACE,CAAC;SACZ;IACH,CAAC;IAGO,qBAAqB,CAAC,IAAqB,EAAE,KAAa;QAChE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,mBAAmB,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,CAAW,CAAC;SACxG;QACD,IAAI,IAAI,KAAK,MAAM,EAAE;YACnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,aAAa,EAAE,EAAE,EAAE,MAAM,CAAU,CAAC;SAChG;aAAM;YACL,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CACxD,aAAa,EACb,EAAE,SAAS,EAAE,OAAO,EAAE,EACtB,MAAM,CACE,CAAC;SACZ;QAED,MAAM,EAAE,oBAAoB,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,SAA+B,CAAC;QAE3E,IAAI,KAAK,MAAM;YACb,IAAI,CAAC,YAAY,CAAC,aAAa,iBAC7B,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,EACpC,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,KAAK,IACZ,oBAAoB,CAAC,IAAI,EAC5B,CAAC;QACL,IAAI,KAAK,MAAM;YACb,IAAI,CAAC,YAAY,CAAC,aAAa,iBAC7B,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,EACpC,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,KAAK,IACZ,oBAAoB,CAAC,IAAI,EAC5B,CAAC;IACP,CAAC;IAGO,iCAAiC,CAAC,IAAqB,EAAE,KAAa;QAC5E,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;YACnC,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC,mBAAmB,CACxD,0BAA0B,EAC1B,EAAE,QAAQ,EAAE,KAAK,EAAE,EACnB,OAAO,CACE,CAAC;YACZ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,CAC7E,sBAAsB,EACtB,EAAE,EACF,OAAO,CACE,CAAC;SACb;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACpE,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC;YAC3C,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC/D,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM;YAChE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK;YACzD,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,MAAM;YAC5D,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,KAAK;SACT,CAAC,CAAC;QACV,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC;YACvC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC;YACnE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK;YACzD,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,MAAM;YAC5D,QAAQ,EAAE,KAAK;SACT,CAAC,CAAC;IACZ,CAAC;IAEO,6BAA6B,CAAC,IAAqB;QACzD,MAAM,EAAE,4BAA4B,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,SAA+B,CAAC;QACnF,IAAI,IAAI,KAAK,MAAM,EAAE;YACnB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CACxE,qBAAqB,EACrB,EAAE,EACF,MAAM,CACE,CAAC;SACZ;aAAM;YACL,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CACxE,qBAAqB,EACrB,EAAE,SAAS,EAAE,OAAO,EAAE,EACtB,MAAM,CACE,CAAC;SACZ;QACD,IAAI,KAAK,MAAM;YACb,IAAI,CAAC,oBAAoB,CAAC,aAAa,iBACrC,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,EACpC,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,KAAK,IACZ,4BAA4B,CAAC,IAAI,EACpC,CAAC;QACL,IAAI,KAAK,MAAM;YACb,IAAI,CAAC,oBAAoB,CAAC,aAAa,iBACrC,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,EACpC,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,KAAK,IACZ,4BAA4B,CAAC,IAAI,EACpC,CAAC;IACP,CAAC;IAEO,kBAAkB,CAAC,MAAoB;QAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAA+B,CAAC;QACxD,MAAM,GAAG,GAAG,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAChE,IAAI,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/E,IAAI,aAAa,KAAK,CAAC,EAAE;YACvB,aAAa,GAAG,CAAC,CAAC;SACnB;QACD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACpE,IAAI,cAAmB,CAAC;QACxB,IAAI,YAAiB,CAAC;QACtB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,cAAc,GAAG;gBACf;oBACE,CAAC,EAAE,QAAQ,CAAC,CAAC;oBACb,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM;iBACvB;aACF,CAAC;YACF,YAAY,GAAG;gBACb;oBACE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK;oBACrB,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM;iBACvB;aACF,CAAC;SACH;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE;YAC5B,cAAc,GAAG;gBACf;oBACE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK;oBACrB,CAAC,EAAE,QAAQ,CAAC,CAAC;iBACd;aACF,CAAC;YACF,YAAY,GAAG;gBACb;oBACE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK;oBACrB,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM;iBACvB;aACF,CAAC;SACH;aAAM;YACL,cAAc,GAAG;gBACf;oBACE,CAAC,EAAE,QAAQ,CAAC,CAAC;oBACb,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM;iBACvB;aACF,CAAC;YACF,YAAY,GAAG;gBACb;oBACE,CAAC,EAAE,QAAQ,CAAC,CAAC;oBACb,CAAC,EAAE,QAAQ,CAAC,CAAC;iBACd;aACF,CAAC;SACH;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,aAAa,EAAE;YAC9E,OAAO;gBACL,cAAc,EAAE,YAAY;gBAC5B,YAAY,EAAE,cAAc;aAC7B,CAAC;SACH;QAED,OAAO;YACL,cAAc;YACd,YAAY;SACb,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,MAAoB;;QAE1C,MAAM,SAAS,GAAG,KAAK,CAAC;QACxB,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE;YAC7B,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,SAAS,mCAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC;YACnF,OAAO,IAAA,+BAAgB,EAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;SACnD;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,qBAAqB;QAC3B,IAAI,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC5C,OAAO;gBACL,CAAC,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;gBAClD,CAAC,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;aACnD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,OAAO,aAAa,CAAC;SACtB;QAGD,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QAEpD,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAChF,OAAO,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACnE,CAAC;IAEO,qBAAqB;QAC3B,IAAI,aAAa,GAAiB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC1D,OAAO;gBACL,CAAC,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;gBAClD,CAAC,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;gBAClD,EAAE,EAAE,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACrD,EAAE,EAAE,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;aACtD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,OAAO,aAAa,CAAC;SACtB;QAGD,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QAEpD,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAChF,OAAO,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACnE,CAAC;IAKD,UAAU;QACR,IAAI,eAAe,GAAuB,IAAI,CAAC;QAC/C,IAAI,aAAa,GAAuB,IAAI,CAAC;QAG7C,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,SAAS,EAAE;YAElB,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAC7C,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAGzC,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;YAElD,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAC7C,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YACzC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,eAAe,CAAC;YAC3C,MAAM,EAAE,EAAE,EAAE,WAAW,GAAG,CAAC,EAAE,EAAE,EAAE,WAAW,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;YAGnF,IAAI,IAAI,eAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;gBAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnG,IAAI,IAAI,CAAC,aAAa,EAAE;oBACtB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC7G;qBAAM;oBACL,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC7G;aACF;iBAAM;gBACL,IAAI,IAAI,CAAC,aAAa,EAAE;oBACtB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;iBACjD;qBAAM;oBACL,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;iBACjD;aACF;SACF;IACH,CAAC;IACO,YAAY,CAAC,eAA4B,EAAE,aAA0B;;QAC3E,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,SAA+B,CAAC;QAC9E,MAAM,EAAE,YAAY,EAAE,eAAe,KAA4B,cAAc,EAArC,kBAAkB,UAAK,cAAc,EAAzE,gBAAwD,CAAiB,CAAC;QAChF,MAAM,EAAE,YAAY,EAAE,aAAa,KAA0B,YAAY,EAAjC,gBAAgB,UAAK,YAAY,EAAnE,gBAAoD,CAAe,CAAC;QAC1E,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEpE,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAC9F,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QACpF,MAAM,mBAAmB,GAAG;YAC1B,EAAE,EAAE,QAAQ,CAAC,CAAC;YACd,EAAE,EAAE,QAAQ,CAAC,CAAC;YACd,EAAE,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK;YACtB,EAAE,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM;SACxB,CAAC;QACF,IAAI,iBAA6B,CAAC;QAClC,IAAI,eAA2B,CAAC;QAChC,IAAI,mBAAwB,CAAC;QAC7B,IAAI,iBAAsB,CAAC;QAC3B,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,iBAAiB,GAAG;gBAClB,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK;gBAC7B,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;aAC3B,CAAC;YACF,eAAe,GAAG;gBAChB,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK;gBAC3B,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;aAC3B,CAAC;YACF,mBAAmB,GAAG;gBACpB,SAAS,EAAE,IAAA,sBAAc,EAAC,mBAAmB,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;gBAC/G,YAAY,EAAE,MAAA,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,SAAS,0CAAE,YAAY,mCAAI,QAAQ;aACtE,CAAC;YACF,iBAAiB,GAAG;gBAClB,SAAS,EAAE,IAAA,sBAAc,EAAC,mBAAmB,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;gBAC3G,YAAY,EAAE,MAAA,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,SAAS,0CAAE,YAAY,mCAAI,QAAQ;aACpE,CAAC;SACH;aAAM;YACL,iBAAiB,GAAG;gBAClB,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;gBACzB,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM;aAC/B,CAAC;YACF,eAAe,GAAG;gBAChB,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;gBACzB,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM;aAC7B,CAAC;YACF,mBAAmB,GAAG;gBACpB,SAAS,EAAE,MAAA,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,SAAS,0CAAE,SAAS,mCAAI,QAAQ;gBAC/D,YAAY,EAAE,IAAA,sBAAc,EAAC,mBAAmB,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;oBAC7F,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,QAAQ;aACb,CAAC;YACF,iBAAiB,GAAG;gBAClB,SAAS,EAAE,MAAA,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,SAAS,0CAAE,SAAS,mCAAI,QAAQ;gBAC7D,YAAY,EAAE,IAAA,sBAAc,EAAC,mBAAmB,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;aAC/G,CAAC;SACH;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CACnC,IAAI,CAAC,aAAa,EAAE,EACpB,IAAA,cAAK,EAAC,EAAE,EAAE,kBAAkB,EAAE;YAC5B,IAAI,EAAE,cAAc;YACpB,CAAC,EAAE,iBAAiB,CAAC,CAAC;YACtB,CAAC,EAAE,iBAAiB,CAAC,CAAC;YACtB,OAAO,EAAE,IAAI,CAAC,SAAS;YACvB,QAAQ,EAAE,KAAK;YACf,gBAAgB,EAAE,KAAK;YACvB,SAAS,EAAE,mBAAmB;SAC/B,CAAC,EACF,sBAAsB,CACvB,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CACjC,IAAI,CAAC,aAAa,EAAE,EACpB,IAAA,cAAK,EAAC,EAAE,EAAE,gBAAgB,EAAE;YAC1B,IAAI,EAAE,YAAY;YAClB,CAAC,EAAE,eAAe,CAAC,CAAC;YACpB,CAAC,EAAE,eAAe,CAAC,CAAC;YACpB,OAAO,EAAE,IAAI,CAAC,SAAS;YACvB,QAAQ,EAAE,KAAK;YACf,gBAAgB,EAAE,KAAK;YACvB,SAAS,EAAE,iBAAiB;SAC7B,CAAC,EACF,oBAAoB,CACrB,CAAC;IACJ,CAAC;IACO,cAAc,CAAC,SAAiB,EAAE,UAAyB,EAAE,IAAY;QAC/E,IAAI,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,IAAI,CAAmB,CAAC;QACpF,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SACtC;aAAM;YACL,UAAU,GAAG,IAAI,SAAG,CAAC,UAAU,CAAC,CAAC;YACjC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;YACvB,SAAS,CAAC,GAAG,CAAC,UAA8B,CAAC,CAAC;SAC/C;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AA5zBD,4CA4zBC","file":"renderer.js","sourcesContent":["import type { DataZoomAttributes } from './type';\nimport type { IBoundsLike, IPointLike } from '@visactor/vutils';\nimport { flatten_simplify } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IArea, IGroup, ILine, IRect, ISymbol, INode } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { Bounds, isFunction, merge } from '@visactor/vutils';\nimport { Tag, type TagAttributes } from '../tag';\nimport { DEFAULT_HANDLER_ATTR_MAP } from './config';\nimport { isTextOverflow } from './utils';\nexport interface DataZoomRendererAttrs {\n attribute: Partial<Required<DataZoomAttributes>>;\n getLayoutAttrFromConfig: any;\n getState: () => { start: number; end: number };\n setState: (state: { start: number; end: number }) => void;\n getContainer: () => IGroup;\n}\nexport class DataZoomRenderer {\n /** 上层透传 */\n attribute: Partial<Required<DataZoomAttributes>>;\n private _getLayoutAttrFromConfig: any;\n private _getState: () => { start: number; end: number };\n private _getContainer: () => IGroup;\n\n /** 中间变量 */\n private _isHorizontal: boolean;\n\n /** 手柄 */\n private _startHandlerMask!: IRect;\n get startHandlerMask() {\n return this._startHandlerMask;\n }\n private _startHandler!: ISymbol;\n private _middleHandlerSymbol!: ISymbol;\n get middleHandlerSymbol() {\n return this._middleHandlerSymbol;\n }\n private _middleHandlerRect!: IRect;\n get middleHandlerRect() {\n return this._middleHandlerRect;\n }\n private _endHandlerMask!: IRect;\n get endHandlerMask() {\n return this._endHandlerMask;\n }\n private _endHandler!: ISymbol;\n private _selectedBackground!: IRect;\n get selectedBackground() {\n return this._selectedBackground;\n }\n private _dragMask!: IRect;\n get dragMask() {\n return this._dragMask;\n }\n private _startText!: Tag;\n get startText() {\n return this._startText;\n }\n private _endText!: Tag;\n get endText() {\n return this._endText;\n }\n private _startValue!: string | number;\n get startValue() {\n return this._startValue;\n }\n private _endValue!: string | number;\n get endValue() {\n return this._endValue;\n }\n private _showText!: boolean;\n set showText(showText: boolean) {\n this._showText = showText;\n }\n\n /** 背景图表 */\n private _background!: IRect;\n get background() {\n return this._background;\n }\n private _previewData: any[] = [];\n set previewData(previewData: any[]) {\n this._previewData = previewData;\n }\n private _previewGroup!: IGroup;\n get previewGroup() {\n return this._previewGroup;\n }\n private _previewLine!: ILine;\n private _previewArea!: IArea;\n private _selectedPreviewGroupClip!: IGroup;\n private _selectedPreviewGroup!: IGroup;\n get selectedPreviewGroup() {\n return this._selectedPreviewGroup;\n }\n private _selectedPreviewLine!: ILine;\n private _selectedPreviewArea!: IArea;\n\n /** 回调函数 */\n private _previewPointsX!: (datum: any) => number;\n set previewPointsX(previewPointsX: (datum: any) => number) {\n this._previewPointsX = previewPointsX;\n }\n private _previewPointsY!: (datum: any) => number;\n set previewPointsY(previewPointsY: (datum: any) => number) {\n this._previewPointsY = previewPointsY;\n }\n private _previewPointsX1!: (datum: any) => number;\n set previewPointsX1(previewPointsX1: (datum: any) => number) {\n this._previewPointsX1 = previewPointsX1;\n }\n private _previewPointsY1!: (datum: any) => number;\n set previewPointsY1(previewPointsY1: (datum: any) => number) {\n this._previewPointsY1 = previewPointsY1;\n }\n private _statePointToData: (state: number) => any = state => state;\n set statePointToData(statePointToData: (state: number) => any) {\n this._statePointToData = statePointToData;\n }\n\n private _initAttrs(props: DataZoomRendererAttrs) {\n this.attribute = props.attribute;\n this._isHorizontal = this.attribute.orient === 'top' || this.attribute.orient === 'bottom';\n const { previewData, previewPointsX, previewPointsY, previewPointsX1, previewPointsY1 } = this\n .attribute as DataZoomAttributes;\n\n previewData && (this._previewData = previewData);\n isFunction(previewPointsX) && (this._previewPointsX = previewPointsX);\n isFunction(previewPointsY) && (this._previewPointsY = previewPointsY);\n isFunction(previewPointsX1) && (this._previewPointsX1 = previewPointsX1);\n isFunction(previewPointsY1) && (this._previewPointsY1 = previewPointsY1);\n this._getState = props.getState;\n this._getLayoutAttrFromConfig = props.getLayoutAttrFromConfig;\n this._getContainer = props.getContainer;\n }\n\n constructor(props: DataZoomRendererAttrs) {\n const { showDetail } = props.attribute as DataZoomAttributes;\n this._showText = showDetail === 'auto' ? false : showDetail;\n this._initAttrs(props);\n }\n\n setAttributes(props: DataZoomRendererAttrs): void {\n this._initAttrs(props);\n }\n\n renderDataZoom(onlyStateChange: boolean = false) {\n const {\n backgroundChartStyle = {},\n selectedBackgroundChartStyle = {},\n brushSelect\n } = this.attribute as DataZoomAttributes;\n\n this._renderBackground();\n\n /** 背景图表 */\n backgroundChartStyle.line?.visible && !onlyStateChange && this._setPreviewAttributes('line', this._getContainer());\n backgroundChartStyle.area?.visible && !onlyStateChange && this._setPreviewAttributes('area', this._getContainer());\n\n /** 背景选框 */\n brushSelect && this.renderDragMask();\n\n /** 选中背景 */\n this._renderSelectedBackground();\n\n /** 选中的背景图表 */\n selectedBackgroundChartStyle.line?.visible && this._setSelectedPreviewClipAttributes('line', this._getContainer());\n selectedBackgroundChartStyle.line?.visible && !onlyStateChange && this._setSelectedPreviewAttributes('line');\n\n selectedBackgroundChartStyle.line?.visible && this._setSelectedPreviewClipAttributes('area', this._getContainer());\n selectedBackgroundChartStyle.area?.visible && !onlyStateChange && this._setSelectedPreviewAttributes('area');\n\n /** 左右 和 中间手柄 */\n this._renderHandler();\n\n /** 左右文字 */\n if (this._showText) {\n this.renderText();\n }\n }\n\n /**\n * @description 渲染拖拽mask\n */\n renderDragMask() {\n const { dragMaskStyle } = this.attribute as DataZoomAttributes;\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const { start, end } = this._getState();\n if (this._isHorizontal) {\n this._dragMask = this._getContainer().createOrUpdateChild(\n 'dragMask',\n {\n x: position.x + start * width,\n y: position.y,\n width: (end - start) * width,\n height: height,\n ...dragMaskStyle\n },\n 'rect'\n ) as IRect;\n } else {\n this._dragMask = this._getContainer().createOrUpdateChild(\n 'dragMask',\n {\n x: position.x,\n y: position.y + start * height,\n width,\n height: (end - start) * height,\n ...dragMaskStyle\n },\n 'rect'\n ) as IRect;\n }\n return { start, end };\n }\n\n /**\n * @description 渲染背景\n */\n private _renderBackground() {\n const { backgroundStyle, brushSelect, zoomLock } = this.attribute as DataZoomAttributes;\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const group = this._getContainer();\n this._background = group.createOrUpdateChild(\n 'background',\n {\n x: position.x,\n y: position.y,\n width,\n height,\n cursor: brushSelect ? 'crosshair' : 'auto',\n ...backgroundStyle,\n pickable: zoomLock ? false : backgroundStyle.pickable ?? true\n },\n 'rect'\n ) as IRect;\n }\n /**\n * @description 渲染手柄\n */\n private _renderHandler() {\n const {\n orient,\n middleHandlerStyle = {},\n startHandlerStyle = {},\n endHandlerStyle = {},\n zoomLock\n } = this.attribute as DataZoomAttributes;\n const { start, end } = this._getState();\n\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const startHandlerMinSize = startHandlerStyle.triggerMinSize ?? 40;\n const endHandlerMinSize = endHandlerStyle.triggerMinSize ?? 40;\n\n const group = this._getContainer();\n if (this._isHorizontal) {\n if (middleHandlerStyle.visible) {\n const middleHandlerBackgroundSize = middleHandlerStyle.background?.size || 10;\n this._middleHandlerRect = group.createOrUpdateChild(\n 'middleHandlerRect',\n {\n x: position.x + start * width,\n y: position.y - middleHandlerBackgroundSize,\n width: (end - start) * width,\n height: middleHandlerBackgroundSize,\n ...middleHandlerStyle.background?.style,\n pickable: zoomLock ? false : middleHandlerStyle.background?.style?.pickable ?? true\n },\n 'rect'\n ) as IRect;\n this._middleHandlerSymbol = group.createOrUpdateChild(\n 'middleHandlerSymbol',\n {\n x: position.x + ((start + end) / 2) * width,\n y: position.y - middleHandlerBackgroundSize / 2,\n strokeBoundsBuffer: 0,\n angle: 0,\n symbolType: middleHandlerStyle.icon?.symbolType ?? 'square',\n ...middleHandlerStyle.icon,\n pickable: zoomLock ? false : middleHandlerStyle.icon.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n }\n this._startHandler = group.createOrUpdateChild(\n 'startHandler',\n {\n x: position.x + start * width,\n y: position.y + height / 2,\n size: height,\n symbolType: startHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n ...startHandlerStyle,\n pickable: zoomLock ? false : startHandlerStyle.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n this._endHandler = group.createOrUpdateChild(\n 'endHandler',\n {\n x: position.x + end * width,\n y: position.y + height / 2,\n size: height,\n symbolType: endHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n ...endHandlerStyle,\n pickable: zoomLock ? false : endHandlerStyle.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n\n // 透明mask构造热区, 热区大小配置来自handler bounds\n const startHandlerWidth = Math.max(this._startHandler.AABBBounds.width(), startHandlerMinSize);\n const startHandlerHeight = Math.max(this._startHandler.AABBBounds.height(), startHandlerMinSize);\n const endHandlerWidth = Math.max(this._endHandler.AABBBounds.width(), endHandlerMinSize);\n const endHandlerHeight = Math.max(this._endHandler.AABBBounds.height(), endHandlerMinSize);\n\n this._startHandlerMask = group.createOrUpdateChild(\n 'startHandlerMask',\n {\n x: position.x + start * width - startHandlerWidth / 2,\n y: position.y + height / 2 - startHandlerHeight / 2,\n width: startHandlerWidth,\n height: startHandlerHeight,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n this._endHandlerMask = group.createOrUpdateChild(\n 'endHandlerMask',\n {\n x: position.x + end * width - endHandlerWidth / 2,\n y: position.y + height / 2 - endHandlerHeight / 2,\n width: endHandlerWidth,\n height: endHandlerHeight,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n } else {\n if (middleHandlerStyle.visible) {\n const middleHandlerBackgroundSize = middleHandlerStyle.background?.size || 10;\n\n this._middleHandlerRect = group.createOrUpdateChild(\n 'middleHandlerRect',\n {\n x: orient === 'left' ? position.x - middleHandlerBackgroundSize : position.x + width,\n y: position.y + start * height,\n width: middleHandlerBackgroundSize,\n height: (end - start) * height,\n ...middleHandlerStyle.background?.style,\n pickable: zoomLock ? false : middleHandlerStyle.background?.style?.pickable ?? true\n },\n 'rect'\n ) as IRect;\n this._middleHandlerSymbol = group.createOrUpdateChild(\n 'middleHandlerSymbol',\n {\n x:\n orient === 'left'\n ? position.x - middleHandlerBackgroundSize / 2\n : position.x + width + middleHandlerBackgroundSize / 2,\n y: position.y + ((start + end) / 2) * height,\n // size: height,\n angle: 90 * (Math.PI / 180),\n symbolType: middleHandlerStyle.icon?.symbolType ?? 'square',\n strokeBoundsBuffer: 0,\n ...middleHandlerStyle.icon,\n pickable: zoomLock ? false : middleHandlerStyle.icon?.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n }\n this._startHandler = group.createOrUpdateChild(\n 'startHandler',\n {\n x: position.x + width / 2,\n y: position.y + start * height,\n size: width,\n symbolType: startHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n ...startHandlerStyle,\n pickable: zoomLock ? false : startHandlerStyle.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n\n this._endHandler = group.createOrUpdateChild(\n 'endHandler',\n {\n x: position.x + width / 2,\n y: position.y + end * height,\n size: width,\n symbolType: endHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n ...endHandlerStyle,\n pickable: zoomLock ? false : endHandlerStyle.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n\n // 透明mask构造热区, 热区大小配置来自handler bounds\n const startHandlerWidth = Math.max(this._startHandler.AABBBounds.width(), startHandlerMinSize);\n const startHandlerHeight = Math.max(this._startHandler.AABBBounds.height(), startHandlerMinSize);\n const endHandlerWidth = Math.max(this._endHandler.AABBBounds.width(), endHandlerMinSize);\n const endHandlerHeight = Math.max(this._endHandler.AABBBounds.height(), endHandlerMinSize);\n\n this._startHandlerMask = group.createOrUpdateChild(\n 'startHandlerMask',\n {\n x: position.x + width / 2 + startHandlerWidth / 2,\n y: position.y + start * height - startHandlerHeight / 2,\n width: endHandlerHeight,\n height: endHandlerWidth,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n this._endHandlerMask = group.createOrUpdateChild(\n 'endHandlerMask',\n {\n x: position.x + width / 2 + endHandlerWidth / 2,\n y: position.y + end * height - endHandlerHeight / 2,\n width: endHandlerHeight,\n height: endHandlerWidth,\n fill: 'white',\n fillOpacity: 0,\n zIndex: 999,\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n }\n }\n\n /**\n * @description 渲染选中背景\n */\n private _renderSelectedBackground() {\n const {\n selectedBackgroundStyle = {},\n selectedBackgroundChartStyle = {},\n brushSelect,\n zoomLock\n } = this.attribute as DataZoomAttributes;\n const { start, end } = this._getState();\n\n const { position, width, height } = this._getLayoutAttrFromConfig();\n\n const group = this._getContainer();\n if (this._isHorizontal) {\n // 选中部分\n this._selectedBackground = group.createOrUpdateChild(\n 'selectedBackground',\n {\n x: position.x + start * width,\n y: position.y,\n width: (end - start) * width,\n height: height,\n cursor: brushSelect ? 'crosshair' : 'move',\n ...selectedBackgroundStyle,\n pickable: zoomLock ? false : (selectedBackgroundChartStyle as any).pickable ?? true\n },\n 'rect'\n ) as IRect;\n } else {\n // 选中部分\n this._selectedBackground = group.createOrUpdateChild(\n 'selectedBackground',\n {\n x: position.x,\n y: position.y + start * height,\n width,\n height: (end - start) * height,\n cursor: brushSelect ? 'crosshair' : 'move',\n ...selectedBackgroundStyle,\n pickable: zoomLock ? false : selectedBackgroundStyle.pickable ?? true\n },\n 'rect'\n ) as IRect;\n }\n }\n\n // 使用callback绘制背景图表 (数据和数据映射从外部传进来)\n private _setPreviewAttributes(type: 'line' | 'area', group: IGroup) {\n if (!this._previewGroup) {\n this._previewGroup = group.createOrUpdateChild('previewGroup', { pickable: false }, 'group') as IGroup;\n }\n if (type === 'line') {\n this._previewLine = this._previewGroup.createOrUpdateChild('previewLine', {}, 'line') as ILine;\n } else {\n this._previewArea = this._previewGroup.createOrUpdateChild(\n 'previewArea',\n { curveType: 'basis' },\n 'area'\n ) as IArea;\n }\n\n const { backgroundChartStyle = {} } = this.attribute as DataZoomAttributes;\n\n type === 'line' &&\n this._previewLine.setAttributes({\n points: this._getPreviewLinePoints(),\n curveType: 'basis',\n pickable: false,\n ...backgroundChartStyle.line\n });\n type === 'area' &&\n this._previewArea.setAttributes({\n points: this._getPreviewAreaPoints(),\n curveType: 'basis',\n pickable: false,\n ...backgroundChartStyle.area\n });\n }\n\n // 使用callback绘制选中的背景图表 (数据和数据映射从外部传进来)\n private _setSelectedPreviewClipAttributes(type: 'area' | 'line', group: IGroup) {\n if (!this._selectedPreviewGroupClip) {\n this._selectedPreviewGroupClip = group.createOrUpdateChild(\n 'selectedPreviewGroupClip',\n { pickable: false },\n 'group'\n ) as IGroup;\n this._selectedPreviewGroup = this._selectedPreviewGroupClip.createOrUpdateChild(\n 'selectedPreviewGroup',\n {},\n 'group'\n ) as IGroup;\n }\n\n const { start, end } = this._getState();\n const { position, width, height } = this._getLayoutAttrFromConfig();\n this._selectedPreviewGroupClip.setAttributes({\n x: this._isHorizontal ? position.x + start * width : position.x,\n y: this._isHorizontal ? position.y : position.y + start * height,\n width: this._isHorizontal ? (end - start) * width : width,\n height: this._isHorizontal ? height : (end - start) * height,\n clip: true,\n pickable: false\n } as any);\n this._selectedPreviewGroup.setAttributes({\n x: -(this._isHorizontal ? position.x + start * width : position.x),\n y: -(this._isHorizontal ? position.y : position.y + start * height),\n width: this._isHorizontal ? (end - start) * width : width,\n height: this._isHorizontal ? height : (end - start) * height,\n pickable: false\n } as any);\n }\n\n private _setSelectedPreviewAttributes(type: 'line' | 'area') {\n const { selectedBackgroundChartStyle = {} } = this.attribute as DataZoomAttributes;\n if (type === 'line') {\n this._selectedPreviewLine = this._selectedPreviewGroup.createOrUpdateChild(\n 'selectedPreviewLine',\n {},\n 'line'\n ) as ILine;\n } else {\n this._selectedPreviewArea = this._selectedPreviewGroup.createOrUpdateChild(\n 'selectedPreviewArea',\n { curveType: 'basis' },\n 'area'\n ) as IArea;\n }\n type === 'line' &&\n this._selectedPreviewLine.setAttributes({\n points: this._getPreviewLinePoints(),\n curveType: 'basis',\n pickable: false,\n ...selectedBackgroundChartStyle.line\n });\n type === 'area' &&\n this._selectedPreviewArea.setAttributes({\n points: this._getPreviewAreaPoints(),\n curveType: 'basis',\n pickable: false,\n ...selectedBackgroundChartStyle.area\n });\n }\n\n private _computeBasePoints(points: IPointLike[]) {\n const { orient } = this.attribute as DataZoomAttributes;\n const key = orient === 'bottom' || orient === 'top' ? 'x' : 'y';\n let lastPointSide = Math.sign(points[points.length - 1][key] - points[0][key]);\n if (lastPointSide === 0) {\n lastPointSide = 1;\n }\n const { position, width, height } = this._getLayoutAttrFromConfig();\n let basePointStart: any;\n let basePointEnd: any;\n if (this._isHorizontal) {\n basePointStart = [\n {\n x: position.x,\n y: position.y + height\n }\n ];\n basePointEnd = [\n {\n x: position.x + width,\n y: position.y + height\n }\n ];\n } else if (orient === 'left') {\n basePointStart = [\n {\n x: position.x + width,\n y: position.y\n }\n ];\n basePointEnd = [\n {\n x: position.x + width,\n y: position.y + height\n }\n ];\n } else {\n basePointStart = [\n {\n x: position.x,\n y: position.y + height\n }\n ];\n basePointEnd = [\n {\n x: position.x,\n y: position.y\n }\n ];\n }\n\n if (Math.sign(basePointEnd[0][key] - basePointStart[0][key]) !== lastPointSide) {\n return {\n basePointStart: basePointEnd,\n basePointEnd: basePointStart\n };\n }\n\n return {\n basePointStart,\n basePointEnd\n };\n }\n\n private _simplifyPoints(points: IPointLike[]) {\n // 采样压缩率策略: 如果没做任何配置, 那么限制在niceCount内, 如果做了配置, 则按照配置计算\n const niceCount = 10000; // 经验值\n if (points.length > niceCount) {\n const tolerance = this.attribute.tolerance ?? this._previewData.length / niceCount;\n return flatten_simplify(points, tolerance, false);\n }\n return points;\n }\n\n private _getPreviewLinePoints() {\n let previewPoints = this._previewData.map(d => {\n return {\n x: this._previewPointsX && this._previewPointsX(d),\n y: this._previewPointsY && this._previewPointsY(d)\n };\n });\n // 仅在有数据的时候增加base point, 以弥补背景图表两端的不连续缺口。不然的话没有数据时,会因为base point而仍然绘制图形\n if (previewPoints.length === 0) {\n return previewPoints;\n }\n\n // 采样\n previewPoints = this._simplifyPoints(previewPoints);\n\n const { basePointStart, basePointEnd } = this._computeBasePoints(previewPoints);\n return basePointStart.concat(previewPoints).concat(basePointEnd);\n }\n\n private _getPreviewAreaPoints() {\n let previewPoints: IPointLike[] = this._previewData.map(d => {\n return {\n x: this._previewPointsX && this._previewPointsX(d),\n y: this._previewPointsY && this._previewPointsY(d),\n x1: this._previewPointsX1 && this._previewPointsX1(d),\n y1: this._previewPointsY1 && this._previewPointsY1(d)\n };\n });\n // 仅在有数据的时候增加base point, 以弥补背景图表两端的不连续缺口。不然的话没有数据时,会因为base point而仍然绘制图形\n if (previewPoints.length === 0) {\n return previewPoints;\n }\n\n // 采样\n previewPoints = this._simplifyPoints(previewPoints);\n\n const { basePointStart, basePointEnd } = this._computeBasePoints(previewPoints);\n return basePointStart.concat(previewPoints).concat(basePointEnd);\n }\n\n /**\n * @description 渲染文本\n */\n renderText() {\n let startTextBounds: IBoundsLike | null = null;\n let endTextBounds: IBoundsLike | null = null;\n\n // 第一次绘制\n this._setTextAttr(startTextBounds, endTextBounds);\n if (this._showText) {\n // 得到bounds\n startTextBounds = this._startText.AABBBounds;\n endTextBounds = this._endText.AABBBounds;\n\n // 第二次绘制: 将text限制在组件bounds内\n this._setTextAttr(startTextBounds, endTextBounds);\n // 得到bounds\n startTextBounds = this._startText.AABBBounds;\n endTextBounds = this._endText.AABBBounds;\n const { x1, x2, y1, y2 } = startTextBounds;\n const { dx: startTextDx = 0, dy: startTextDy = 0 } = this.attribute.startTextStyle;\n\n // 第三次绘制: 避免startText和endText重叠, 如果重叠了, 对startText做位置调整(考虑到调整的最小化,只单独调整startText而不调整endText)\n if (new Bounds().set(x1, y1, x2, y2).intersects(endTextBounds)) {\n const direction = this.attribute.orient === 'bottom' || this.attribute.orient === 'right' ? -1 : 1;\n if (this._isHorizontal) {\n this._startText.setAttribute('dy', startTextDy + direction * Math.abs(endTextBounds.y1 - endTextBounds.y2));\n } else {\n this._startText.setAttribute('dx', startTextDx + direction * Math.abs(endTextBounds.x1 - endTextBounds.x2));\n }\n } else {\n if (this._isHorizontal) {\n this._startText.setAttribute('dy', startTextDy);\n } else {\n this._startText.setAttribute('dx', startTextDx);\n }\n }\n }\n }\n private _setTextAttr(startTextBounds: IBoundsLike, endTextBounds: IBoundsLike) {\n const { startTextStyle, endTextStyle } = this.attribute as DataZoomAttributes;\n const { formatMethod: startTextFormat, ...restStartTextStyle } = startTextStyle;\n const { formatMethod: endTextFormat, ...restEndTextStyle } = endTextStyle;\n const { start, end } = this._getState();\n this._startValue = this._statePointToData(start);\n this._endValue = this._statePointToData(end);\n const { position, width, height } = this._getLayoutAttrFromConfig();\n\n const startTextValue = startTextFormat ? startTextFormat(this._startValue) : this._startValue;\n const endTextValue = endTextFormat ? endTextFormat(this._endValue) : this._endValue;\n const componentBoundsLike = {\n x1: position.x,\n y1: position.y,\n x2: position.x + width,\n y2: position.y + height\n };\n let startTextPosition: IPointLike;\n let endTextPosition: IPointLike;\n let startTextAlignStyle: any;\n let endTextAlignStyle: any;\n if (this._isHorizontal) {\n startTextPosition = {\n x: position.x + start * width,\n y: position.y + height / 2\n };\n endTextPosition = {\n x: position.x + end * width,\n y: position.y + height / 2\n };\n startTextAlignStyle = {\n textAlign: isTextOverflow(componentBoundsLike, startTextBounds, 'start', this._isHorizontal) ? 'left' : 'right',\n textBaseline: restStartTextStyle?.textStyle?.textBaseline ?? 'middle'\n };\n endTextAlignStyle = {\n textAlign: isTextOverflow(componentBoundsLike, endTextBounds, 'end', this._isHorizontal) ? 'right' : 'left',\n textBaseline: restEndTextStyle?.textStyle?.textBaseline ?? 'middle'\n };\n } else {\n startTextPosition = {\n x: position.x + width / 2,\n y: position.y + start * height\n };\n endTextPosition = {\n x: position.x + width / 2,\n y: position.y + end * height\n };\n startTextAlignStyle = {\n textAlign: restStartTextStyle?.textStyle?.textAlign ?? 'center',\n textBaseline: isTextOverflow(componentBoundsLike, startTextBounds, 'start', this._isHorizontal)\n ? 'top'\n : 'bottom'\n };\n endTextAlignStyle = {\n textAlign: restEndTextStyle?.textStyle?.textAlign ?? 'center',\n textBaseline: isTextOverflow(componentBoundsLike, endTextBounds, 'end', this._isHorizontal) ? 'bottom' : 'top'\n };\n }\n\n this._startText = this._maybeAddLabel(\n this._getContainer(),\n merge({}, restStartTextStyle, {\n text: startTextValue,\n x: startTextPosition.x,\n y: startTextPosition.y,\n visible: this._showText,\n pickable: false,\n childrenPickable: false,\n textStyle: startTextAlignStyle\n }),\n `data-zoom-start-text`\n );\n this._endText = this._maybeAddLabel(\n this._getContainer(),\n merge({}, restEndTextStyle, {\n text: endTextValue,\n x: endTextPosition.x,\n y: endTextPosition.y,\n visible: this._showText,\n pickable: false,\n childrenPickable: false,\n textStyle: endTextAlignStyle\n }),\n `data-zoom-end-text`\n );\n }\n private _maybeAddLabel(container: IGroup, attributes: TagAttributes, name: string): Tag {\n let labelShape = container.find(node => node.name === name, true) as unknown as Tag;\n if (labelShape) {\n labelShape.setAttributes(attributes);\n } else {\n labelShape = new Tag(attributes);\n labelShape.name = name;\n container.add(labelShape as unknown as INode);\n }\n\n return labelShape;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/data-zoom/renderer.ts"],"names":[],"mappings":"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","file":"renderer.js","sourcesContent":["import type { DataZoomAttributes } from './type';\nimport type { IBoundsLike, IPointLike } from '@visactor/vutils';\nimport { flatten_simplify } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IArea, IGroup, ILine, IRect, ISymbol, INode } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { Bounds, isFunction, merge } from '@visactor/vutils';\nimport { Tag, type TagAttributes } from '../tag';\nimport { DEFAULT_HANDLER_ATTR_MAP, LAYOUT_LEVEL } from './config';\nimport { isTextOverflow } from './utils';\nexport interface DataZoomRendererAttrs {\n attribute: Partial<Required<DataZoomAttributes>>;\n getLayoutAttrFromConfig: any;\n getState: () => { start: number; end: number };\n setState: (state: { start: number; end: number }) => void;\n getContainer: () => IGroup;\n}\nexport class DataZoomRenderer {\n /** 上层透传 */\n attribute: Partial<Required<DataZoomAttributes>>;\n private _getLayoutAttrFromConfig: any;\n private _getState: () => { start: number; end: number };\n private _getContainer: () => IGroup;\n\n /** 中间变量 */\n private _isHorizontal: boolean;\n\n /** 手柄 */\n private _startHandlerMask!: IRect;\n get startHandlerMask() {\n return this._startHandlerMask;\n }\n private _startHandler!: ISymbol;\n private _middleHandlerSymbol!: ISymbol;\n get middleHandlerSymbol() {\n return this._middleHandlerSymbol;\n }\n private _middleHandlerRect!: IRect;\n get middleHandlerRect() {\n return this._middleHandlerRect;\n }\n private _endHandlerMask!: IRect;\n get endHandlerMask() {\n return this._endHandlerMask;\n }\n private _endHandler!: ISymbol;\n private _selectedBackground!: IRect;\n get selectedBackground() {\n return this._selectedBackground;\n }\n private _dragMask!: IRect;\n get dragMask() {\n return this._dragMask;\n }\n private _startText!: Tag;\n get startText() {\n return this._startText;\n }\n private _endText!: Tag;\n get endText() {\n return this._endText;\n }\n private _startValue!: string | number;\n get startValue() {\n return this._startValue;\n }\n private _endValue!: string | number;\n get endValue() {\n return this._endValue;\n }\n private _showText!: boolean;\n set showText(showText: boolean) {\n this._showText = showText;\n }\n\n /** 背景图表 */\n private _background!: IRect;\n get background() {\n return this._background;\n }\n private _previewData: any[] = [];\n set previewData(previewData: any[]) {\n this._previewData = previewData;\n }\n private _previewGroup!: IGroup;\n get previewGroup() {\n return this._previewGroup;\n }\n private _previewLine!: ILine;\n private _previewArea!: IArea;\n private _selectedPreviewGroupClip!: IGroup;\n private _selectedPreviewGroup!: IGroup;\n get selectedPreviewGroup() {\n return this._selectedPreviewGroup;\n }\n private _selectedPreviewLine!: ILine;\n private _selectedPreviewArea!: IArea;\n\n /** 回调函数 */\n private _previewPointsX!: (datum: any) => number;\n set previewPointsX(previewPointsX: (datum: any) => number) {\n this._previewPointsX = previewPointsX;\n }\n private _previewPointsY!: (datum: any) => number;\n set previewPointsY(previewPointsY: (datum: any) => number) {\n this._previewPointsY = previewPointsY;\n }\n private _previewPointsX1!: (datum: any) => number;\n set previewPointsX1(previewPointsX1: (datum: any) => number) {\n this._previewPointsX1 = previewPointsX1;\n }\n private _previewPointsY1!: (datum: any) => number;\n set previewPointsY1(previewPointsY1: (datum: any) => number) {\n this._previewPointsY1 = previewPointsY1;\n }\n private _statePointToData: (state: number) => any = state => state;\n set statePointToData(statePointToData: (state: number) => any) {\n this._statePointToData = statePointToData;\n }\n\n private _initAttrs(props: DataZoomRendererAttrs) {\n this.attribute = props.attribute;\n this._isHorizontal = this.attribute.orient === 'top' || this.attribute.orient === 'bottom';\n const { previewData, previewPointsX, previewPointsY, previewPointsX1, previewPointsY1 } = this\n .attribute as DataZoomAttributes;\n\n previewData && (this._previewData = previewData);\n isFunction(previewPointsX) && (this._previewPointsX = previewPointsX);\n isFunction(previewPointsY) && (this._previewPointsY = previewPointsY);\n isFunction(previewPointsX1) && (this._previewPointsX1 = previewPointsX1);\n isFunction(previewPointsY1) && (this._previewPointsY1 = previewPointsY1);\n this._getState = props.getState;\n this._getLayoutAttrFromConfig = props.getLayoutAttrFromConfig;\n this._getContainer = props.getContainer;\n }\n\n constructor(props: DataZoomRendererAttrs) {\n const { showDetail } = props.attribute as DataZoomAttributes;\n this._showText = showDetail === 'auto' ? false : showDetail;\n this._initAttrs(props);\n }\n\n setAttributes(props: DataZoomRendererAttrs): void {\n this._initAttrs(props);\n }\n\n renderDataZoom(onlyStateChange: boolean = false) {\n const {\n backgroundChartStyle = {},\n selectedBackgroundChartStyle = {},\n brushSelect\n } = this.attribute as DataZoomAttributes;\n\n this._renderBackground();\n\n /** 背景图表 */\n backgroundChartStyle.line?.visible && !onlyStateChange && this._setPreviewAttributes('line', this._getContainer());\n backgroundChartStyle.area?.visible && !onlyStateChange && this._setPreviewAttributes('area', this._getContainer());\n\n /** 背景选框 */\n brushSelect && this.renderDragMask();\n\n /** 选中背景 */\n this._renderSelectedBackground();\n\n /** 选中的背景图表 */\n selectedBackgroundChartStyle.line?.visible && this._setSelectedPreviewClipAttributes('line', this._getContainer());\n selectedBackgroundChartStyle.line?.visible && !onlyStateChange && this._setSelectedPreviewAttributes('line');\n\n selectedBackgroundChartStyle.line?.visible && this._setSelectedPreviewClipAttributes('area', this._getContainer());\n selectedBackgroundChartStyle.area?.visible && !onlyStateChange && this._setSelectedPreviewAttributes('area');\n\n /** 左右 和 中间手柄 */\n this._renderHandler();\n\n /** 左右文字 */\n if (this._showText) {\n this.renderText();\n }\n }\n\n /**\n * @description 渲染拖拽mask\n */\n renderDragMask() {\n const { dragMaskStyle } = this.attribute as DataZoomAttributes;\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const { start, end } = this._getState();\n if (this._isHorizontal) {\n this._dragMask = this._getContainer().createOrUpdateChild(\n 'dragMask',\n {\n x: position.x + start * width,\n y: position.y,\n width: (end - start) * width,\n height: height,\n zIndex: LAYOUT_LEVEL.dragMask,\n ...dragMaskStyle\n },\n 'rect'\n ) as IRect;\n } else {\n this._dragMask = this._getContainer().createOrUpdateChild(\n 'dragMask',\n {\n x: position.x,\n y: position.y + start * height,\n width,\n height: (end - start) * height,\n zIndex: LAYOUT_LEVEL.dragMask,\n ...dragMaskStyle\n },\n 'rect'\n ) as IRect;\n }\n return { start, end };\n }\n\n /**\n * @description 渲染背景\n */\n private _renderBackground() {\n const { backgroundStyle, brushSelect, zoomLock } = this.attribute as DataZoomAttributes;\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const group = this._getContainer();\n this._background = group.createOrUpdateChild(\n 'background',\n {\n x: position.x,\n y: position.y,\n width,\n height,\n cursor: brushSelect ? 'crosshair' : 'auto',\n zIndex: LAYOUT_LEVEL.background,\n ...backgroundStyle,\n pickable: zoomLock ? false : backgroundStyle.pickable ?? true\n },\n 'rect'\n ) as IRect;\n }\n /**\n * @description 渲染手柄\n */\n private _renderHandler() {\n const {\n orient,\n middleHandlerStyle = {},\n startHandlerStyle = {},\n endHandlerStyle = {},\n zoomLock\n } = this.attribute as DataZoomAttributes;\n const { start, end } = this._getState();\n\n const { position, width, height } = this._getLayoutAttrFromConfig();\n const startHandlerMinSize = startHandlerStyle.triggerMinSize ?? 40;\n const endHandlerMinSize = endHandlerStyle.triggerMinSize ?? 40;\n\n const group = this._getContainer();\n if (this._isHorizontal) {\n if (middleHandlerStyle.visible) {\n const middleHandlerBackgroundSize = middleHandlerStyle.background?.size || 10;\n this._middleHandlerRect = group.createOrUpdateChild(\n 'middleHandlerRect',\n {\n x: position.x + start * width,\n y: position.y - middleHandlerBackgroundSize,\n width: (end - start) * width,\n height: middleHandlerBackgroundSize,\n zIndex: LAYOUT_LEVEL.handler,\n ...middleHandlerStyle.background?.style,\n pickable: zoomLock ? false : middleHandlerStyle.background?.style?.pickable ?? true\n },\n 'rect'\n ) as IRect;\n this._middleHandlerSymbol = group.createOrUpdateChild(\n 'middleHandlerSymbol',\n {\n x: position.x + ((start + end) / 2) * width,\n y: position.y - middleHandlerBackgroundSize / 2,\n strokeBoundsBuffer: 0,\n angle: 0,\n symbolType: middleHandlerStyle.icon?.symbolType ?? 'square',\n zIndex: LAYOUT_LEVEL.handler,\n ...middleHandlerStyle.icon,\n pickable: zoomLock ? false : middleHandlerStyle.icon.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n }\n this._startHandler = group.createOrUpdateChild(\n 'startHandler',\n {\n x: position.x + start * width,\n y: position.y + height / 2,\n size: height,\n symbolType: startHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n zIndex: LAYOUT_LEVEL.handler,\n ...startHandlerStyle,\n pickable: zoomLock ? false : startHandlerStyle.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n this._endHandler = group.createOrUpdateChild(\n 'endHandler',\n {\n x: position.x + end * width,\n y: position.y + height / 2,\n size: height,\n symbolType: endHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n zIndex: LAYOUT_LEVEL.handler,\n ...endHandlerStyle,\n pickable: zoomLock ? false : endHandlerStyle.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n\n // 透明mask构造热区, 热区大小配置来自handler bounds\n const startHandlerWidth = Math.max(this._startHandler.AABBBounds.width(), startHandlerMinSize);\n const startHandlerHeight = Math.max(this._startHandler.AABBBounds.height(), startHandlerMinSize);\n const endHandlerWidth = Math.max(this._endHandler.AABBBounds.width(), endHandlerMinSize);\n const endHandlerHeight = Math.max(this._endHandler.AABBBounds.height(), endHandlerMinSize);\n\n this._startHandlerMask = group.createOrUpdateChild(\n 'startHandlerMask',\n {\n x: position.x + start * width - startHandlerWidth / 2,\n y: position.y + height / 2 - startHandlerHeight / 2,\n width: startHandlerWidth,\n height: startHandlerHeight,\n fill: 'white',\n fillOpacity: 0,\n zIndex: LAYOUT_LEVEL.handlerMask,\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n this._endHandlerMask = group.createOrUpdateChild(\n 'endHandlerMask',\n {\n x: position.x + end * width - endHandlerWidth / 2,\n y: position.y + height / 2 - endHandlerHeight / 2,\n width: endHandlerWidth,\n height: endHandlerHeight,\n fill: 'white',\n fillOpacity: 0,\n zIndex: LAYOUT_LEVEL.handlerMask,\n ...(DEFAULT_HANDLER_ATTR_MAP.horizontal as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n } else {\n if (middleHandlerStyle.visible) {\n const middleHandlerBackgroundSize = middleHandlerStyle.background?.size || 10;\n\n this._middleHandlerRect = group.createOrUpdateChild(\n 'middleHandlerRect',\n {\n x: orient === 'left' ? position.x - middleHandlerBackgroundSize : position.x + width,\n y: position.y + start * height,\n width: middleHandlerBackgroundSize,\n height: (end - start) * height,\n zIndex: LAYOUT_LEVEL.handler,\n ...middleHandlerStyle.background?.style,\n pickable: zoomLock ? false : middleHandlerStyle.background?.style?.pickable ?? true\n },\n 'rect'\n ) as IRect;\n this._middleHandlerSymbol = group.createOrUpdateChild(\n 'middleHandlerSymbol',\n {\n x:\n orient === 'left'\n ? position.x - middleHandlerBackgroundSize / 2\n : position.x + width + middleHandlerBackgroundSize / 2,\n y: position.y + ((start + end) / 2) * height,\n // size: height,\n angle: 90 * (Math.PI / 180),\n symbolType: middleHandlerStyle.icon?.symbolType ?? 'square',\n strokeBoundsBuffer: 0,\n zIndex: LAYOUT_LEVEL.handler,\n ...middleHandlerStyle.icon,\n pickable: zoomLock ? false : middleHandlerStyle.icon?.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n }\n this._startHandler = group.createOrUpdateChild(\n 'startHandler',\n {\n x: position.x + width / 2,\n y: position.y + start * height,\n size: width,\n symbolType: startHandlerStyle.symbolType ?? 'square',\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n zIndex: LAYOUT_LEVEL.handler,\n ...startHandlerStyle,\n pickable: zoomLock ? false : startHandlerStyle.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n\n this._endHandler = group.createOrUpdateChild(\n 'endHandler',\n {\n x: position.x + width / 2,\n y: position.y + end * height,\n size: width,\n symbolType: endHandlerStyle.symbolType ?? 'square',\n zIndex: LAYOUT_LEVEL.handler,\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n ...endHandlerStyle,\n pickable: zoomLock ? false : endHandlerStyle.pickable ?? true\n },\n 'symbol'\n ) as ISymbol;\n\n // 透明mask构造热区, 热区大小配置来自handler bounds\n const startHandlerWidth = Math.max(this._startHandler.AABBBounds.width(), startHandlerMinSize);\n const startHandlerHeight = Math.max(this._startHandler.AABBBounds.height(), startHandlerMinSize);\n const endHandlerWidth = Math.max(this._endHandler.AABBBounds.width(), endHandlerMinSize);\n const endHandlerHeight = Math.max(this._endHandler.AABBBounds.height(), endHandlerMinSize);\n\n this._startHandlerMask = group.createOrUpdateChild(\n 'startHandlerMask',\n {\n x: position.x + width / 2 + startHandlerWidth / 2,\n y: position.y + start * height - startHandlerHeight / 2,\n width: endHandlerHeight,\n height: endHandlerWidth,\n fill: 'white',\n fillOpacity: 0,\n zIndex: LAYOUT_LEVEL.handlerMask,\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n this._endHandlerMask = group.createOrUpdateChild(\n 'endHandlerMask',\n {\n x: position.x + width / 2 + endHandlerWidth / 2,\n y: position.y + end * height - endHandlerHeight / 2,\n width: endHandlerHeight,\n height: endHandlerWidth,\n fill: 'white',\n fillOpacity: 0,\n zIndex: LAYOUT_LEVEL.handlerMask,\n ...(DEFAULT_HANDLER_ATTR_MAP.vertical as any),\n pickable: !zoomLock\n },\n 'rect'\n ) as IRect;\n }\n }\n\n /**\n * @description 渲染选中背景\n */\n private _renderSelectedBackground() {\n const {\n selectedBackgroundStyle = {},\n selectedBackgroundChartStyle = {},\n brushSelect,\n zoomLock\n } = this.attribute as DataZoomAttributes;\n const { start, end } = this._getState();\n\n const { position, width, height } = this._getLayoutAttrFromConfig();\n\n const group = this._getContainer();\n if (this._isHorizontal) {\n // 选中部分\n this._selectedBackground = group.createOrUpdateChild(\n 'selectedBackground',\n {\n x: position.x + start * width,\n y: position.y,\n width: (end - start) * width,\n height: height,\n cursor: brushSelect ? 'crosshair' : 'move',\n zIndex: LAYOUT_LEVEL.selectedBackground,\n ...selectedBackgroundStyle,\n pickable: zoomLock ? false : (selectedBackgroundChartStyle as any).pickable ?? true\n },\n 'rect'\n ) as IRect;\n } else {\n // 选中部分\n this._selectedBackground = group.createOrUpdateChild(\n 'selectedBackground',\n {\n x: position.x,\n y: position.y + start * height,\n width,\n height: (end - start) * height,\n cursor: brushSelect ? 'crosshair' : 'move',\n zIndex: LAYOUT_LEVEL.selectedBackground,\n ...selectedBackgroundStyle,\n pickable: zoomLock ? false : selectedBackgroundStyle.pickable ?? true\n },\n 'rect'\n ) as IRect;\n }\n }\n\n // 使用callback绘制背景图表 (数据和数据映射从外部传进来)\n private _setPreviewAttributes(type: 'line' | 'area', group: IGroup) {\n if (!this._previewGroup) {\n this._previewGroup = group.createOrUpdateChild(\n 'previewGroup',\n { pickable: false, zIndex: LAYOUT_LEVEL.preview },\n 'group'\n ) as IGroup;\n }\n if (type === 'line') {\n this._previewLine = this._previewGroup.createOrUpdateChild('previewLine', {}, 'line') as ILine;\n } else {\n this._previewArea = this._previewGroup.createOrUpdateChild(\n 'previewArea',\n { curveType: 'basis' },\n 'area'\n ) as IArea;\n }\n\n const { backgroundChartStyle = {} } = this.attribute as DataZoomAttributes;\n\n type === 'line' &&\n this._previewLine.setAttributes({\n points: this._getPreviewLinePoints(),\n curveType: 'basis',\n pickable: false,\n ...backgroundChartStyle.line\n });\n type === 'area' &&\n this._previewArea.setAttributes({\n points: this._getPreviewAreaPoints(),\n curveType: 'basis',\n pickable: false,\n ...backgroundChartStyle.area\n });\n }\n\n // 使用callback绘制选中的背景图表 (数据和数据映射从外部传进来)\n private _setSelectedPreviewClipAttributes(type: 'area' | 'line', group: IGroup) {\n if (!this._selectedPreviewGroupClip) {\n this._selectedPreviewGroupClip = group.createOrUpdateChild(\n 'selectedPreviewGroupClip',\n { pickable: false, zIndex: LAYOUT_LEVEL.selectedPreview },\n 'group'\n ) as IGroup;\n this._selectedPreviewGroup = this._selectedPreviewGroupClip.createOrUpdateChild(\n 'selectedPreviewGroup',\n {},\n 'group'\n ) as IGroup;\n }\n\n const { start, end } = this._getState();\n const { position, width, height } = this._getLayoutAttrFromConfig();\n this._selectedPreviewGroupClip.setAttributes({\n x: this._isHorizontal ? position.x + start * width : position.x,\n y: this._isHorizontal ? position.y : position.y + start * height,\n width: this._isHorizontal ? (end - start) * width : width,\n height: this._isHorizontal ? height : (end - start) * height,\n clip: true,\n pickable: false\n } as any);\n this._selectedPreviewGroup.setAttributes({\n x: -(this._isHorizontal ? position.x + start * width : position.x),\n y: -(this._isHorizontal ? position.y : position.y + start * height),\n width: this._isHorizontal ? (end - start) * width : width,\n height: this._isHorizontal ? height : (end - start) * height,\n pickable: false\n } as any);\n }\n\n private _setSelectedPreviewAttributes(type: 'line' | 'area') {\n const { selectedBackgroundChartStyle = {} } = this.attribute as DataZoomAttributes;\n if (type === 'line') {\n this._selectedPreviewLine = this._selectedPreviewGroup.createOrUpdateChild(\n 'selectedPreviewLine',\n {},\n 'line'\n ) as ILine;\n } else {\n this._selectedPreviewArea = this._selectedPreviewGroup.createOrUpdateChild(\n 'selectedPreviewArea',\n { curveType: 'basis' },\n 'area'\n ) as IArea;\n }\n type === 'line' &&\n this._selectedPreviewLine.setAttributes({\n points: this._getPreviewLinePoints(),\n curveType: 'basis',\n pickable: false,\n ...selectedBackgroundChartStyle.line\n });\n type === 'area' &&\n this._selectedPreviewArea.setAttributes({\n points: this._getPreviewAreaPoints(),\n curveType: 'basis',\n pickable: false,\n ...selectedBackgroundChartStyle.area\n });\n }\n\n private _computeBasePoints(points: IPointLike[]) {\n const { orient } = this.attribute as DataZoomAttributes;\n const key = orient === 'bottom' || orient === 'top' ? 'x' : 'y';\n let lastPointSide = Math.sign(points[points.length - 1][key] - points[0][key]);\n if (lastPointSide === 0) {\n lastPointSide = 1;\n }\n const { position, width, height } = this._getLayoutAttrFromConfig();\n let basePointStart: any;\n let basePointEnd: any;\n if (this._isHorizontal) {\n basePointStart = [\n {\n x: position.x,\n y: position.y + height\n }\n ];\n basePointEnd = [\n {\n x: position.x + width,\n y: position.y + height\n }\n ];\n } else if (orient === 'left') {\n basePointStart = [\n {\n x: position.x + width,\n y: position.y\n }\n ];\n basePointEnd = [\n {\n x: position.x + width,\n y: position.y + height\n }\n ];\n } else {\n basePointStart = [\n {\n x: position.x,\n y: position.y + height\n }\n ];\n basePointEnd = [\n {\n x: position.x,\n y: position.y\n }\n ];\n }\n\n if (Math.sign(basePointEnd[0][key] - basePointStart[0][key]) !== lastPointSide) {\n return {\n basePointStart: basePointEnd,\n basePointEnd: basePointStart\n };\n }\n\n return {\n basePointStart,\n basePointEnd\n };\n }\n\n private _simplifyPoints(points: IPointLike[]) {\n // 采样压缩率策略: 如果没做任何配置, 那么限制在niceCount内, 如果做了配置, 则按照配置计算\n const niceCount = 10000; // 经验值\n if (points.length > niceCount) {\n const tolerance = this.attribute.tolerance ?? this._previewData.length / niceCount;\n return flatten_simplify(points, tolerance, false);\n }\n return points;\n }\n\n private _getPreviewLinePoints() {\n let previewPoints = this._previewData.map(d => {\n return {\n x: this._previewPointsX && this._previewPointsX(d),\n y: this._previewPointsY && this._previewPointsY(d)\n };\n });\n // 仅在有数据的时候增加base point, 以弥补背景图表两端的不连续缺口。不然的话没有数据时,会因为base point而仍然绘制图形\n if (previewPoints.length === 0) {\n return previewPoints;\n }\n\n // 采样\n previewPoints = this._simplifyPoints(previewPoints);\n\n const { basePointStart, basePointEnd } = this._computeBasePoints(previewPoints);\n return basePointStart.concat(previewPoints).concat(basePointEnd);\n }\n\n private _getPreviewAreaPoints() {\n let previewPoints: IPointLike[] = this._previewData.map(d => {\n return {\n x: this._previewPointsX && this._previewPointsX(d),\n y: this._previewPointsY && this._previewPointsY(d),\n x1: this._previewPointsX1 && this._previewPointsX1(d),\n y1: this._previewPointsY1 && this._previewPointsY1(d)\n };\n });\n // 仅在有数据的时候增加base point, 以弥补背景图表两端的不连续缺口。不然的话没有数据时,会因为base point而仍然绘制图形\n if (previewPoints.length === 0) {\n return previewPoints;\n }\n\n // 采样\n previewPoints = this._simplifyPoints(previewPoints);\n\n const { basePointStart, basePointEnd } = this._computeBasePoints(previewPoints);\n return basePointStart.concat(previewPoints).concat(basePointEnd);\n }\n\n /**\n * @description 渲染文本\n */\n renderText() {\n let startTextBounds: IBoundsLike | null = null;\n let endTextBounds: IBoundsLike | null = null;\n\n // 第一次绘制\n this._setTextAttr(startTextBounds, endTextBounds);\n if (this._showText) {\n // 得到bounds\n startTextBounds = this._startText.AABBBounds;\n endTextBounds = this._endText.AABBBounds;\n\n // 第二次绘制: 将text限制在组件bounds内\n this._setTextAttr(startTextBounds, endTextBounds);\n // 得到bounds\n startTextBounds = this._startText.AABBBounds;\n endTextBounds = this._endText.AABBBounds;\n const { x1, x2, y1, y2 } = startTextBounds;\n const { dx: startTextDx = 0, dy: startTextDy = 0 } = this.attribute.startTextStyle;\n\n // 第三次绘制: 避免startText和endText重叠, 如果重叠了, 对startText做位置调整(考虑到调整的最小化,只单独调整startText而不调整endText)\n if (new Bounds().set(x1, y1, x2, y2).intersects(endTextBounds)) {\n const direction = this.attribute.orient === 'bottom' || this.attribute.orient === 'right' ? -1 : 1;\n if (this._isHorizontal) {\n this._startText.setAttribute('dy', startTextDy + direction * Math.abs(endTextBounds.y1 - endTextBounds.y2));\n } else {\n this._startText.setAttribute('dx', startTextDx + direction * Math.abs(endTextBounds.x1 - endTextBounds.x2));\n }\n } else {\n if (this._isHorizontal) {\n this._startText.setAttribute('dy', startTextDy);\n } else {\n this._startText.setAttribute('dx', startTextDx);\n }\n }\n }\n }\n private _setTextAttr(startTextBounds: IBoundsLike, endTextBounds: IBoundsLike) {\n const { startTextStyle, endTextStyle } = this.attribute as DataZoomAttributes;\n const { formatMethod: startTextFormat, ...restStartTextStyle } = startTextStyle;\n const { formatMethod: endTextFormat, ...restEndTextStyle } = endTextStyle;\n const { start, end } = this._getState();\n this._startValue = this._statePointToData(start);\n this._endValue = this._statePointToData(end);\n const { position, width, height } = this._getLayoutAttrFromConfig();\n\n const startTextValue = startTextFormat ? startTextFormat(this._startValue) : this._startValue;\n const endTextValue = endTextFormat ? endTextFormat(this._endValue) : this._endValue;\n const componentBoundsLike = {\n x1: position.x,\n y1: position.y,\n x2: position.x + width,\n y2: position.y + height\n };\n let startTextPosition: IPointLike;\n let endTextPosition: IPointLike;\n let startTextAlignStyle: any;\n let endTextAlignStyle: any;\n if (this._isHorizontal) {\n startTextPosition = {\n x: position.x + start * width,\n y: position.y + height / 2\n };\n endTextPosition = {\n x: position.x + end * width,\n y: position.y + height / 2\n };\n startTextAlignStyle = {\n textAlign: isTextOverflow(componentBoundsLike, startTextBounds, 'start', this._isHorizontal) ? 'left' : 'right',\n textBaseline: restStartTextStyle?.textStyle?.textBaseline ?? 'middle'\n };\n endTextAlignStyle = {\n textAlign: isTextOverflow(componentBoundsLike, endTextBounds, 'end', this._isHorizontal) ? 'right' : 'left',\n textBaseline: restEndTextStyle?.textStyle?.textBaseline ?? 'middle'\n };\n } else {\n startTextPosition = {\n x: position.x + width / 2,\n y: position.y + start * height\n };\n endTextPosition = {\n x: position.x + width / 2,\n y: position.y + end * height\n };\n startTextAlignStyle = {\n textAlign: restStartTextStyle?.textStyle?.textAlign ?? 'center',\n textBaseline: isTextOverflow(componentBoundsLike, startTextBounds, 'start', this._isHorizontal)\n ? 'top'\n : 'bottom'\n };\n endTextAlignStyle = {\n textAlign: restEndTextStyle?.textStyle?.textAlign ?? 'center',\n textBaseline: isTextOverflow(componentBoundsLike, endTextBounds, 'end', this._isHorizontal) ? 'bottom' : 'top'\n };\n }\n\n this._startText = this._maybeAddLabel(\n this._getContainer(),\n merge({}, restStartTextStyle, {\n text: startTextValue,\n x: startTextPosition.x,\n y: startTextPosition.y,\n visible: this._showText,\n pickable: false,\n childrenPickable: false,\n textStyle: startTextAlignStyle,\n zIndex: LAYOUT_LEVEL.handlerText\n }),\n `data-zoom-start-text`\n );\n this._endText = this._maybeAddLabel(\n this._getContainer(),\n merge({}, restEndTextStyle, {\n text: endTextValue,\n x: endTextPosition.x,\n y: endTextPosition.y,\n visible: this._showText,\n pickable: false,\n childrenPickable: false,\n textStyle: endTextAlignStyle,\n zIndex: LAYOUT_LEVEL.handlerText\n }),\n `data-zoom-end-text`\n );\n }\n private _maybeAddLabel(container: IGroup, attributes: TagAttributes, name: string): Tag {\n let labelShape = container.find(node => node.name === name, true) as unknown as Tag;\n if (labelShape) {\n labelShape.setAttributes(attributes);\n } else {\n labelShape = new Tag(attributes);\n labelShape.name = name;\n container.add(labelShape as unknown as INode);\n }\n\n return labelShape;\n }\n}\n"]}
|