@visactor/vrender-components 0.18.0-alpha.1 → 0.18.0-alpha.2
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/data-zoom/data-zoom.d.ts +1 -0
- package/cjs/data-zoom/data-zoom.js +59 -55
- package/cjs/data-zoom/data-zoom.js.map +1 -1
- package/cjs/data-zoom/type.d.ts +1 -0
- package/cjs/data-zoom/type.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/legend/color/color.d.ts +7 -0
- package/cjs/legend/color/color.js +16 -2
- package/cjs/legend/color/color.js.map +1 -1
- package/cjs/legend/discrete/discrete.d.ts +20 -3
- package/cjs/legend/discrete/discrete.js +166 -75
- package/cjs/legend/discrete/discrete.js.map +1 -1
- package/cjs/legend/discrete/type.d.ts +18 -7
- package/cjs/legend/discrete/type.js.map +1 -1
- package/cjs/legend/register.js +2 -2
- package/cjs/legend/register.js.map +1 -1
- package/cjs/legend/size/size.d.ts +1 -0
- package/cjs/legend/size/size.js +4 -1
- package/cjs/legend/size/size.js.map +1 -1
- package/cjs/pager/pager.d.ts +2 -0
- package/cjs/pager/pager.js +13 -3
- package/cjs/pager/pager.js.map +1 -1
- package/cjs/pager/type.d.ts +1 -0
- package/cjs/pager/type.js.map +1 -1
- package/cjs/scrollbar/scrollbar.js +10 -2
- package/cjs/scrollbar/scrollbar.js.map +1 -1
- package/cjs/slider/slider.d.ts +27 -0
- package/cjs/slider/slider.js +101 -12
- package/cjs/slider/slider.js.map +1 -1
- package/cjs/slider/type.d.ts +9 -1
- package/cjs/slider/type.js.map +1 -1
- package/es/data-zoom/data-zoom.d.ts +1 -0
- package/es/data-zoom/data-zoom.js +59 -57
- package/es/data-zoom/data-zoom.js.map +1 -1
- package/es/data-zoom/type.d.ts +1 -0
- package/es/data-zoom/type.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/legend/color/color.d.ts +7 -0
- package/es/legend/color/color.js +17 -3
- package/es/legend/color/color.js.map +1 -1
- package/es/legend/discrete/discrete.d.ts +20 -3
- package/es/legend/discrete/discrete.js +166 -74
- package/es/legend/discrete/discrete.js.map +1 -1
- package/es/legend/discrete/type.d.ts +18 -7
- package/es/legend/discrete/type.js.map +1 -1
- package/es/legend/register.js +3 -1
- package/es/legend/register.js.map +1 -1
- package/es/legend/size/size.d.ts +1 -0
- package/es/legend/size/size.js +4 -1
- package/es/legend/size/size.js.map +1 -1
- package/es/pager/pager.d.ts +2 -0
- package/es/pager/pager.js +14 -4
- package/es/pager/pager.js.map +1 -1
- package/es/pager/type.d.ts +1 -0
- package/es/pager/type.js.map +1 -1
- package/es/scrollbar/scrollbar.js +10 -2
- package/es/scrollbar/scrollbar.js.map +1 -1
- package/es/slider/slider.d.ts +27 -0
- package/es/slider/slider.js +101 -12
- package/es/slider/slider.js.map +1 -1
- package/es/slider/type.d.ts +9 -1
- package/es/slider/type.js.map +1 -1
- package/package.json +5 -5
package/es/slider/slider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/slider/slider.ts"],"names":[],"mappings":"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","file":"slider.js","sourcesContent":["/**\n * @description slider 滑块组件\n * TODO:\n * 3. step 功能开发\n * 4. tooltip 功能开发\n */\nimport type {\n IGroup,\n ISymbol,\n IGraphic,\n ISymbolGraphicAttribute,\n IText,\n ITextGraphicAttribute,\n FederatedPointerEvent,\n Cursor\n} from '@visactor/vrender-core';\nimport { isNil, merge, clamp, isValid, array, isObject, isArray, clampRange } from '@visactor/vutils';\nimport { graphicCreator, vglobal, CustomEvent } from '@visactor/vrender-core';\nimport { AbstractComponent } from '../core/base';\nimport { SLIDER_ELEMENT_NAME } from './constant';\n\nimport type { SliderAttributes } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { loadSliderComponent } from './register';\n\nfunction convertValueToRange(value: number | [number, number]) {\n if (isArray(value)) {\n return value;\n }\n return [value, value];\n}\n\nfunction getDefaultCursor(isHorizontal: boolean) {\n return isHorizontal ? 'ew-resize' : 'ns-resize';\n}\n\nloadSliderComponent();\n\nexport class Slider extends AbstractComponent<Required<SliderAttributes>> {\n name = 'slider';\n\n static defaultAttributes = {\n slidable: true,\n layout: 'horizontal',\n align: 'bottom',\n height: 8,\n showHandler: true,\n handlerSize: 14,\n handlerStyle: {\n symbolType: 'circle',\n fill: '#fff',\n stroke: '#91caff',\n lineWidth: 2\n },\n railStyle: {\n fill: 'rgba(0,0,0,.04)'\n },\n trackStyle: {\n fill: '#91caff'\n },\n showValue: true,\n valueStyle: {\n fill: '#2C3542',\n fontSize: 12\n },\n startText: {\n style: {\n fill: '#2C3542',\n fontSize: 12\n }\n },\n endText: {\n style: {\n fill: '#2C3542',\n fontSize: 12\n }\n },\n handlerText: {\n visible: true,\n space: 4,\n precision: 0,\n style: {\n fill: '#2C3542',\n fontSize: 12\n }\n }\n };\n\n protected _isHorizontal = true;\n protected _innerView!: IGroup;\n protected _startHandler: ISymbol | null = null;\n protected _endHandler: ISymbol | null = null;\n protected _startHandlerText: IText | null = null;\n protected _endHandlerText: IText | null = null;\n protected _railContainer!: IGroup;\n protected _rail!: IGraphic;\n protected _track!: IGraphic;\n // 保留滑块上一次的位置\n private _prePos!: number;\n // 存储当前正在操作的滑块\n private _currentHandler: IGraphic | null = null;\n private _currentValue: { startValue?: number; endValue?: number; startPos?: number; endPos?: number } = {};\n\n get track() {\n return this._track;\n }\n\n get currentValue() {\n return this._currentValue;\n }\n\n get startHandler() {\n return this._startHandler;\n }\n\n get endHandler() {\n return this._endHandler;\n }\n\n constructor(attributes: SliderAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Slider.defaultAttributes, attributes));\n }\n\n /**\n * 更新值域\n */\n setValue(value: number | number[]) {\n const { layout, railWidth, railHeight, min, max } = this.attribute as SliderAttributes;\n if (max === min) {\n return;\n }\n\n const [startValue, endValue] = array(value);\n\n const { startHandler, endHandler } = this._getHandlers();\n const railLen = layout === 'vertical' ? railHeight : railWidth;\n const startPos = ((startValue - min) / (max - min)) * railLen;\n if (startHandler) {\n this._updateHandler(startHandler, startPos, startValue);\n }\n\n if (endHandler) {\n const endPos = ((endValue - min) / (max - min)) * railLen;\n this._updateHandler(endHandler, endPos, endValue);\n }\n\n this._updateTrack();\n }\n\n render() {\n this.removeAllChild(true);\n const {\n layout = 'horizontal',\n railWidth,\n railHeight,\n startText,\n endText,\n min,\n max,\n showHandler = true\n } = this.attribute as SliderAttributes;\n let { value } = this.attribute as SliderAttributes;\n if (isNil(value)) {\n value = [min, max];\n }\n\n this._currentValue = {\n startValue: convertValueToRange(value)[0],\n endValue: convertValueToRange(value)[1]\n };\n const isHorizontal = layout === 'horizontal';\n this._isHorizontal = isHorizontal;\n\n const innerView = graphicCreator.group({\n x: 0,\n y: 0\n });\n innerView.name = SLIDER_ELEMENT_NAME.innerView;\n this.add(innerView);\n this._innerView = innerView;\n\n let startLen = 0;\n let startTextShape;\n if (startText && startText.visible) {\n // 渲染首部文本\n startTextShape = graphicCreator.text({\n x: isHorizontal ? 0 : railWidth / 2,\n y: isHorizontal ? (railHeight as number) / 2 : 0,\n textAlign: isHorizontal ? 'start' : 'center',\n textBaseline: isHorizontal ? 'middle' : 'top',\n text: startText.text,\n lineHeight: startText.style?.fontSize,\n ...startText.style\n });\n startTextShape.name = SLIDER_ELEMENT_NAME.startText;\n innerView.add(startTextShape);\n const space = isValid(startText.space) ? startText.space : 0;\n startLen += (isHorizontal ? startTextShape.AABBBounds.width() : startTextShape.AABBBounds.height()) + space;\n }\n const mainContainer = graphicCreator.group({\n x: isHorizontal ? startLen : 0,\n y: isHorizontal ? 0 : startLen\n });\n innerView.add(mainContainer);\n\n const railContainer = graphicCreator.group({\n x: 0,\n y: 0\n });\n railContainer.name = SLIDER_ELEMENT_NAME.railContainer;\n this._railContainer = railContainer;\n mainContainer.add(railContainer);\n\n this._renderRail(railContainer);\n\n startLen += isHorizontal ? (railWidth as number) : (railHeight as number);\n\n let endTextShape;\n if (endText && endText.visible) {\n const space = isValid(endText.space) ? endText.space : 0;\n\n // 渲染首部文本\n endTextShape = graphicCreator.text({\n x: isHorizontal ? startLen + space : railWidth / 2,\n y: isHorizontal ? (railHeight as number) / 2 : startLen + space,\n textAlign: isHorizontal ? 'start' : 'center',\n textBaseline: isHorizontal ? 'middle' : 'top',\n text: endText.text,\n lineHeight: endText.style?.fontSize,\n ...endText.style\n });\n endTextShape.name = SLIDER_ELEMENT_NAME.endText;\n innerView.add(endTextShape);\n }\n\n this._renderTrack(railContainer);\n\n if (showHandler) {\n this._renderHandlers(mainContainer);\n this._bindEvents();\n }\n }\n\n // 渲染滑块轨道\n protected _renderRail(container: IGroup) {\n const { railWidth, railHeight, railStyle, slidable } = this.attribute;\n\n let cursor: Cursor = 'default';\n if (slidable !== false) {\n cursor = 'pointer';\n }\n\n const railShape = graphicCreator.rect({\n x: 0,\n y: 0,\n width: railWidth,\n height: railHeight,\n cursor,\n ...railStyle\n });\n railShape.name = SLIDER_ELEMENT_NAME.rail;\n container.add(railShape);\n this._rail = railShape;\n\n return railShape;\n }\n\n // 渲染 handler\n protected _renderHandlers(container: IGroup) {\n const {\n range,\n min,\n max,\n handlerSize = 14,\n handlerStyle,\n handlerText,\n railHeight,\n railWidth,\n slidable\n } = this.attribute as SliderAttributes;\n let { value } = this.attribute as SliderAttributes;\n if (isNil(value)) {\n value = [min, max];\n }\n\n const handlerTextVisible = handlerText && handlerText.visible;\n const isHorizontal = this._isHorizontal;\n const railLen = isHorizontal ? railWidth : railHeight;\n\n const [startValue, endValue] = convertValueToRange(value);\n // 单滑块\n const handlerStart = max === min ? (range ? 0 : railLen) : (((startValue as number) - min) / (max - min)) * railLen;\n const startHandler = this._renderHandler({\n x: isHorizontal ? handlerStart : railWidth / 2,\n y: isHorizontal ? railHeight / 2 : handlerStart,\n size: handlerSize,\n strokeBoundsBuffer: 0,\n cursor: slidable === false ? 'default' : getDefaultCursor(isHorizontal),\n ...handlerStyle\n });\n startHandler.name = SLIDER_ELEMENT_NAME.startHandler;\n this._startHandler = startHandler;\n container.add(startHandler);\n this._currentValue.startPos = handlerStart;\n\n if (handlerTextVisible) {\n const startHandlerText = this._renderHandlerText(startValue, range ? 'start' : 'end');\n startHandlerText.name = SLIDER_ELEMENT_NAME.startHandlerText;\n container.add(startHandlerText);\n\n this._startHandlerText = startHandlerText;\n }\n\n if (range) {\n // 绘制第二个滑块\n // 单滑块\n const handlerEnd = max === min ? railLen : (((endValue as number) - min) / (max - min)) * railLen;\n const endHandler = this._renderHandler({\n x: isHorizontal ? handlerEnd : railWidth / 2,\n y: isHorizontal ? railHeight / 2 : handlerEnd,\n size: handlerSize,\n strokeBoundsBuffer: 0,\n cursor: slidable === false ? 'default' : getDefaultCursor(isHorizontal),\n ...handlerStyle\n });\n endHandler.name = SLIDER_ELEMENT_NAME.endHandler;\n this._endHandler = endHandler;\n container.add(endHandler);\n this._currentValue.endPos = handlerEnd;\n\n if (handlerTextVisible) {\n const endHandlerText = this._renderHandlerText(endValue, 'end');\n endHandlerText.name = SLIDER_ELEMENT_NAME.endHandlerText;\n container.add(endHandlerText);\n\n this._endHandlerText = endHandlerText;\n }\n }\n }\n\n // 渲染选中区域\n protected _renderTrack(container: IGroup) {\n const { range, min, max, railHeight, railWidth, trackStyle, railStyle, slidable, value } = this\n .attribute as SliderAttributes;\n\n let startValue;\n let endValue;\n\n if (isNil(value)) {\n if (range) {\n startValue = min;\n endValue = max;\n } else {\n startValue = endValue = min;\n }\n } else {\n if (range) {\n const clampValue = clampRange(value as [number, number], min, max);\n startValue = clampValue[0];\n endValue = clampValue[1];\n } else {\n startValue = min;\n endValue = clamp(value as number, min, max);\n }\n }\n\n const isHorizontal = this._isHorizontal;\n const railLen = isHorizontal ? railWidth : railHeight;\n // eslint-disable-next-line prefer-const\n // let [startValue, endValue] = convertValueToRange(value);\n\n if (!range) {\n startValue = min;\n }\n\n const trackContainer = graphicCreator.group({\n x: 0,\n y: 0,\n width: railWidth,\n height: railHeight,\n cornerRadius: railStyle?.cornerRadius,\n clip: true,\n pickable: false\n });\n trackContainer.name = SLIDER_ELEMENT_NAME.trackContainer;\n\n const draggableTrack = isObject(range) && range.draggableTrack === true;\n let cursor: Cursor;\n if (slidable === false) {\n cursor = 'default';\n } else if (range === false) {\n cursor = 'pointer';\n } else if (draggableTrack === false) {\n cursor = 'pointer';\n } else {\n cursor = getDefaultCursor(isHorizontal);\n }\n\n const trackWidth = max === min ? railLen : ((endValue - startValue) / (max - min)) * railLen;\n const startPos = max === min ? 0 : ((startValue - min) / (max - min)) * railLen;\n const track = graphicCreator.rect({\n x: isHorizontal ? startPos : 0,\n y: isHorizontal ? 0 : startPos,\n width: isHorizontal ? trackWidth : railWidth,\n height: isHorizontal ? railHeight : trackWidth,\n cursor,\n ...trackStyle\n });\n track.name = SLIDER_ELEMENT_NAME.track;\n this._track = track;\n trackContainer.add(track);\n container.add(trackContainer);\n }\n\n protected _renderHandler(style: Partial<ISymbolGraphicAttribute>) {\n // 渲染单个滑块\n const handler = graphicCreator.symbol(style);\n\n return handler;\n }\n\n private _renderHandlerText(value: number, position: string) {\n const {\n align,\n min,\n max,\n handlerSize = 14,\n handlerText = {},\n railHeight,\n railWidth,\n slidable\n } = this.attribute as SliderAttributes;\n\n const isHorizontal = this._isHorizontal;\n const railLen = isHorizontal ? railWidth : railHeight;\n const handlerStart =\n max === min ? (position === 'start' ? 0 : railLen) : (((value as number) - min) / (max - min)) * railLen;\n const textSpace = handlerText.space ?? 4;\n const textStyle: ITextGraphicAttribute = {\n text: handlerText.formatter ? handlerText.formatter(value) : value.toFixed(handlerText.precision ?? 0),\n lineHeight: handlerText.style?.lineHeight,\n cursor: slidable === false ? 'default' : getDefaultCursor(isHorizontal)\n };\n if (isHorizontal) {\n if (align === 'top') {\n // 展示 slider 上部\n textStyle.textBaseline = 'bottom';\n textStyle.textAlign = 'center';\n textStyle.x = handlerStart;\n textStyle.y = (railHeight - handlerSize) / 2 - textSpace;\n } else {\n // 展示 slider 下部\n textStyle.textBaseline = 'top';\n textStyle.textAlign = 'center';\n textStyle.x = handlerStart;\n textStyle.y = (railHeight + handlerSize) / 2 + textSpace;\n }\n } else {\n if (align === 'left') {\n // 展示 slider 左侧\n textStyle.textBaseline = 'middle';\n textStyle.textAlign = 'end';\n textStyle.x = (railWidth - handlerSize) / 2 - textSpace;\n textStyle.y = handlerStart;\n } else {\n // 展示 slider 右侧\n textStyle.textBaseline = 'middle';\n textStyle.textAlign = 'start';\n textStyle.x = (railWidth + handlerSize) / 2 + textSpace;\n textStyle.y = handlerStart;\n }\n }\n\n // 展示 handler 当前所在的数值\n const textShape = graphicCreator.text({\n ...textStyle,\n ...handlerText.style\n });\n return textShape;\n }\n\n private _bindEvents() {\n if (this.attribute.disableTriggerEvent) {\n return;\n }\n const { slidable, range } = this.attribute as SliderAttributes;\n if (slidable) {\n if (this._startHandler) {\n this._startHandler.addEventListener(\n 'pointerdown',\n this._onHandlerPointerdown as EventListenerOrEventListenerObject\n );\n }\n if (this._startHandlerText) {\n this._startHandlerText.addEventListener(\n 'pointerdown',\n this._onHandlerPointerdown as EventListenerOrEventListenerObject\n );\n }\n if (this._endHandler) {\n this._endHandler.addEventListener(\n 'pointerdown',\n this._onHandlerPointerdown as EventListenerOrEventListenerObject\n );\n }\n if (this._endHandlerText) {\n this._endHandlerText.addEventListener(\n 'pointerdown',\n this._onHandlerPointerdown as EventListenerOrEventListenerObject\n );\n }\n\n if (isObject(range) && range.draggableTrack) {\n this._track.addEventListener('pointerdown', this._onTrackPointerdown as EventListenerOrEventListenerObject);\n }\n\n this._railContainer.addEventListener(\n 'pointerdown',\n this._onRailPointerDown as EventListenerOrEventListenerObject\n );\n }\n }\n\n private _onHandlerPointerdown = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n this._currentHandler = e.target as unknown as IGraphic;\n this._prePos = this._isHorizontal ? e.clientX : e.clientY;\n if (vglobal.env === 'browser') {\n vglobal.addEventListener('pointermove', this._onHandlerPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n vglobal.addEventListener('pointerup', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n } else {\n this.stage.addEventListener('pointermove', this._onHandlerPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n this.stage.addEventListener('pointerup', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n this.stage.addEventListener('pointerupoutside', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n }\n };\n\n private _onHandlerPointerMove = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n const { railWidth, railHeight, min, max } = this.attribute as SliderAttributes;\n if (max === min) {\n return;\n }\n\n let currentPos;\n let delta = 0;\n let originPos;\n let railLen;\n if (!this._isHorizontal) {\n currentPos = e.clientY;\n delta = currentPos - this._prePos; // 实际位移的变化\n originPos = this._currentHandler?.attribute.y as number;\n railLen = railHeight;\n } else {\n currentPos = e.clientX;\n delta = currentPos - this._prePos; // 实际位移的变化\n originPos = this._currentHandler?.attribute.x as number;\n railLen = railWidth;\n }\n\n const newPos = clamp(originPos + delta, 0, railLen);\n const currentValue = (newPos / railLen) * (max - min) + min;\n\n if (this._currentHandler.type === 'text') {\n this._updateHandlerText(this._currentHandler as IText, newPos, currentValue);\n } else {\n this._updateHandler(this._currentHandler as ISymbol, newPos, currentValue);\n }\n\n this._updateTrack();\n this._prePos = currentPos;\n\n this._dispatchChangeEvent();\n };\n\n private _onHandlerPointerUp = (e: FederatedPointerEvent) => {\n e.preventDefault();\n this._currentHandler = null;\n if (vglobal.env === 'browser') {\n vglobal.removeEventListener('pointermove', this._onHandlerPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n vglobal.removeEventListener('pointerup', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n } else {\n this.stage.removeEventListener('pointermove', this._onHandlerPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n this.stage.removeEventListener('pointerup', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n this.stage.removeEventListener(\n 'pointerupoutside',\n this._onHandlerPointerUp as EventListenerOrEventListenerObject\n );\n }\n };\n\n private _onTrackPointerdown = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n this._prePos = this._isHorizontal ? e.clientX : e.clientY;\n if (vglobal.env === 'browser') {\n vglobal.addEventListener('pointermove', this._onTrackPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n vglobal.addEventListener('pointerup', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n } else {\n this.stage.addEventListener('pointermove', this._onTrackPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n this.stage.addEventListener('pointerup', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n this.stage.addEventListener('pointerupoutside', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n }\n };\n\n private _onTrackPointerMove = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n const { railWidth, railHeight, min, max } = this.attribute as SliderAttributes;\n\n if (max === min) {\n return;\n }\n const { startHandler, endHandler } = this._getHandlers();\n\n let currentPos;\n let trackLen;\n let railLen;\n if (this._isHorizontal) {\n currentPos = e.clientX;\n // @ts-ignore\n trackLen = this._track.attribute.width;\n railLen = railWidth;\n } else {\n currentPos = e.clientY;\n // @ts-ignore\n trackLen = this._track.attribute.height;\n railLen = railHeight;\n }\n const delta = currentPos - this._prePos; // 实际位移的变化\n if (startHandler) {\n const originPos = (this._isHorizontal ? startHandler.attribute.x : startHandler.attribute.y) as number;\n const newPos = clamp(originPos + delta, 0, railLen - trackLen);\n const currentValue = (newPos / railLen) * (max - min) + min;\n this._updateHandler(startHandler, newPos, currentValue);\n }\n\n if (endHandler) {\n const originPos = (this._isHorizontal ? endHandler.attribute.x : endHandler.attribute.y) as number;\n const newPos = clamp(originPos + delta, trackLen, railLen);\n const currentValue = (newPos / railLen) * (max - min) + min;\n const startHandlerAttribute = startHandler?.attribute;\n this._updateHandler(endHandler, newPos, currentValue);\n this._track.setAttributes(\n this._isHorizontal\n ? {\n x: Math.min(startHandlerAttribute.x as number, endHandler.attribute.x as number),\n // @ts-ignore\n width: Math.abs((startHandlerAttribute.x as number) - (endHandler.attribute.x as number))\n }\n : {\n y: Math.min(startHandlerAttribute.y as number, endHandler.attribute.y as number),\n // @ts-ignore\n height: Math.abs((startHandlerAttribute.y as number) - (endHandler.attribute.y as number))\n }\n );\n }\n\n this._prePos = currentPos;\n this._dispatchChangeEvent();\n };\n\n private _onTrackPointerUp = (e: FederatedPointerEvent) => {\n e.preventDefault();\n if (vglobal.env === 'browser') {\n vglobal.removeEventListener('pointermove', this._onTrackPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n vglobal.removeEventListener('pointerup', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n } else {\n this.stage.removeEventListener('pointermove', this._onTrackPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n this.stage.removeEventListener('pointerup', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n this.stage.removeEventListener('pointerupoutside', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n }\n };\n\n private _onRailPointerDown = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n const { railWidth, railHeight, min, max } = this.attribute as SliderAttributes;\n\n if (max === min) {\n return;\n }\n\n const startHandler = this._startHandler as ISymbol;\n const endHandler = this._endHandler;\n\n let currentPos;\n let startHandlerPos;\n let endHandlerPos;\n let railLen;\n // 更新 handler, text 以及 track\n if (this._isHorizontal) {\n currentPos = e.viewX - this._rail.globalAABBBounds.x1;\n startHandlerPos = startHandler?.attribute.x as number;\n endHandlerPos = endHandler?.attribute.x;\n railLen = railWidth;\n } else {\n currentPos = e.viewY - this._rail.globalAABBBounds.y1;\n startHandlerPos = startHandler?.attribute.y as number;\n endHandlerPos = endHandler?.attribute.y;\n railLen = railHeight;\n }\n\n const currentValue = (currentPos / railLen) * (max - min) + min;\n\n if (isValid(endHandlerPos)) {\n const updateHandler = (\n Math.abs(currentPos - startHandlerPos) > Math.abs(currentPos - endHandlerPos) ? endHandler : startHandler\n ) as ISymbol;\n this._updateHandler(updateHandler, currentPos, currentValue);\n } else {\n this._updateHandler(startHandler, currentPos, currentValue);\n }\n this._updateTrack();\n\n this._dispatchChangeEvent();\n };\n\n // 更新 track 样式\n private _updateTrack() {\n // 更新 track\n const startHandler = this._startHandler;\n const endHandler = this._endHandler;\n\n if (this._isHorizontal) {\n const startHandlerPos = startHandler?.attribute.x as number;\n if (endHandler) {\n const endHandlerPos = endHandler?.attribute.x as number;\n // 区间\n this._track.setAttributes({\n x: Math.min(startHandlerPos, endHandlerPos),\n // @ts-ignore\n width: Math.abs(startHandlerPos - endHandlerPos)\n });\n } else {\n this._track.setAttributes({\n // @ts-ignore\n width: startHandlerPos\n });\n }\n } else {\n const startHandlerPos = startHandler?.attribute.y as number;\n if (endHandler) {\n const endHandlerPos = endHandler?.attribute.y as number;\n // 区间\n this._track.setAttributes({\n y: Math.min(startHandlerPos, endHandlerPos),\n // @ts-ignore\n height: Math.abs(startHandlerPos - endHandlerPos)\n });\n } else {\n this._track.setAttributes({\n // @ts-ignore\n height: startHandlerPos\n });\n }\n }\n }\n\n // 更新 handler 以及对应 text\n private _updateHandler(handler: ISymbol, position: number, value: number) {\n const isHorizontal = this._isHorizontal;\n handler.setAttribute(isHorizontal ? 'x' : 'y', position);\n const updateHandlerText =\n handler.name === SLIDER_ELEMENT_NAME.startHandler ? this._startHandlerText : this._endHandlerText;\n if (updateHandlerText) {\n const { handlerText = {} } = this.attribute as SliderAttributes;\n updateHandlerText.setAttributes({\n text: handlerText.formatter ? handlerText.formatter(value) : value.toFixed(handlerText.precision ?? 0),\n [isHorizontal ? 'x' : 'y']: position\n });\n }\n\n if (handler.name === SLIDER_ELEMENT_NAME.startHandler) {\n this._currentValue.startValue = value;\n this._currentValue.startPos = position;\n } else {\n this._currentValue.endValue = value;\n this._currentValue.endPos = position;\n }\n }\n\n // 更新 handler 以及对应 text\n private _updateHandlerText(handlerText: IText, position: number, value: number) {\n const isHorizontal = this._isHorizontal;\n const { handlerText: handlerTextAttr = {} } = this.attribute as SliderAttributes;\n handlerText.setAttributes({\n [isHorizontal ? 'x' : 'y']: position,\n text: handlerTextAttr.formatter ? handlerTextAttr.formatter(value) : value.toFixed(handlerTextAttr.precision ?? 0)\n });\n const updateHandler =\n handlerText.name === SLIDER_ELEMENT_NAME.startHandlerText ? this._startHandler : this._endHandler;\n if (updateHandler) {\n updateHandler.setAttributes({\n [isHorizontal ? 'x' : 'y']: position\n });\n }\n\n if (handlerText.name === SLIDER_ELEMENT_NAME.startHandlerText) {\n this._currentValue.startValue = value;\n this._currentValue.startPos = position;\n } else {\n this._currentValue.endValue = value;\n this._currentValue.endPos = position;\n }\n }\n\n private _dispatchChangeEvent() {\n const isRange = !!this.attribute.range;\n const currentValue = this._currentValue;\n\n this._dispatchEvent('change', {\n value: isRange\n ? [\n Math.min(currentValue.endValue as number, currentValue.startValue as number),\n Math.max(currentValue.endValue as number, currentValue.startValue as number)\n ]\n : currentValue.startValue,\n position: isRange\n ? [\n Math.min(currentValue.endPos as number, currentValue.startPos as number),\n Math.max(currentValue.endPos as number, currentValue.startPos as number)\n ]\n : currentValue.startPos\n });\n }\n\n private _getHandlers() {\n let startHandler = this._startHandler;\n let endHandler = this._endHandler;\n let temp;\n\n if (this._isHorizontal) {\n if (endHandler && (endHandler.attribute.x as number) < (startHandler?.attribute.x as number)) {\n temp = startHandler;\n startHandler = endHandler;\n endHandler = temp;\n }\n } else {\n if (endHandler && (endHandler.attribute.y as number) < (startHandler?.attribute.y as number)) {\n temp = startHandler;\n startHandler = endHandler;\n endHandler = temp;\n }\n }\n\n return {\n startHandler,\n endHandler\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/slider/slider.ts"],"names":[],"mappings":"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","file":"slider.js","sourcesContent":["/**\n * @description slider 滑块组件\n * TODO:\n * 3. step 功能开发\n * 4. tooltip 功能开发\n */\nimport type {\n IGroup,\n ISymbol,\n IGraphic,\n ISymbolGraphicAttribute,\n IText,\n ITextGraphicAttribute,\n FederatedPointerEvent,\n Cursor\n} from '@visactor/vrender-core';\nimport { isNil, merge, clamp, isValid, array, isObject, isArray, clampRange, debounce } from '@visactor/vutils';\nimport { graphicCreator, vglobal, CustomEvent } from '@visactor/vrender-core';\nimport { AbstractComponent } from '../core/base';\nimport { SLIDER_ELEMENT_NAME } from './constant';\n\nimport type { SliderAttributes } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { loadSliderComponent } from './register';\n\nfunction convertValueToRange(value: number | [number, number]) {\n if (isArray(value)) {\n return value;\n }\n return [value, value];\n}\n\nfunction getDefaultCursor(isHorizontal: boolean) {\n return isHorizontal ? 'ew-resize' : 'ns-resize';\n}\n\nloadSliderComponent();\n\nexport class Slider extends AbstractComponent<Required<SliderAttributes>> {\n name = 'slider';\n\n static defaultAttributes = {\n slidable: true,\n layout: 'horizontal',\n align: 'bottom',\n height: 8,\n showHandler: true,\n handlerSize: 14,\n handlerStyle: {\n symbolType: 'circle',\n fill: '#fff',\n stroke: '#91caff',\n lineWidth: 2\n },\n tooltip: {\n shapeStyle: {\n symbolType: 'circle',\n fill: '#fff',\n stroke: '#91caff',\n lineWidth: 2\n },\n text: {\n style: {\n fill: '#2C3542',\n fontSize: 12\n }\n }\n },\n railStyle: {\n fill: 'rgba(0,0,0,.04)'\n },\n trackStyle: {\n fill: '#91caff'\n },\n showValue: true,\n valueStyle: {\n fill: '#2C3542',\n fontSize: 12\n },\n startText: {\n style: {\n fill: '#2C3542',\n fontSize: 12\n }\n },\n endText: {\n style: {\n fill: '#2C3542',\n fontSize: 12\n }\n },\n handlerText: {\n visible: true,\n space: 4,\n precision: 0,\n style: {\n fill: '#2C3542',\n fontSize: 12\n }\n }\n };\n\n protected _isHorizontal = true;\n protected _innerView!: IGroup;\n protected _mainContainer!: IGroup;\n protected _startHandler: ISymbol | null = null;\n protected _endHandler: ISymbol | null = null;\n protected _startHandlerText: IText | null = null;\n protected _endHandlerText: IText | null = null;\n protected _railContainer!: IGroup;\n protected _rail!: IGraphic;\n protected _track!: IGraphic;\n // 保留滑块上一次的位置\n private _prePos!: number;\n // 存储当前正在操作的滑块\n private _currentHandler: IGraphic | null = null;\n private _currentValue: { startValue?: number; endValue?: number; startPos?: number; endPos?: number } = {};\n private _tooltipState: {\n isActive?: boolean;\n pos?: number;\n value?: number;\n };\n private _isChanging?: boolean;\n\n protected _tooltipShape?: ISymbol;\n protected _tooltipText?: IText;\n\n get track() {\n return this._track;\n }\n\n get currentValue() {\n return this._currentValue;\n }\n\n get startHandler() {\n return this._startHandler;\n }\n\n get endHandler() {\n return this._endHandler;\n }\n\n get tooltipShape() {\n return this._tooltipShape;\n }\n\n constructor(attributes: SliderAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Slider.defaultAttributes, attributes));\n }\n\n /**\n * 更新值域\n */\n setValue(value: number | number[]) {\n const { layout, railWidth, railHeight, min, max } = this.attribute as SliderAttributes;\n if (max === min) {\n return;\n }\n\n const [startValue, endValue] = array(value);\n\n const { startHandler, endHandler } = this._getHandlers();\n const railLen = layout === 'vertical' ? railHeight : railWidth;\n const startPos = ((startValue - min) / (max - min)) * railLen;\n if (startHandler) {\n this._updateHandler(startHandler, startPos, startValue);\n }\n\n if (endHandler) {\n const endPos = ((endValue - min) / (max - min)) * railLen;\n this._updateHandler(endHandler, endPos, endValue);\n }\n\n this._updateTrack();\n }\n\n render() {\n this.removeAllChild(true);\n const {\n layout = 'horizontal',\n railWidth,\n railHeight,\n startText,\n endText,\n min,\n max,\n showHandler = true,\n showTooltip\n } = this.attribute as SliderAttributes;\n let { value } = this.attribute as SliderAttributes;\n if (isNil(value)) {\n value = [min, max];\n }\n\n this._currentValue = {\n startValue: convertValueToRange(value)[0],\n endValue: convertValueToRange(value)[1]\n };\n const isHorizontal = layout === 'horizontal';\n this._isHorizontal = isHorizontal;\n\n const innerView = graphicCreator.group({\n x: 0,\n y: 0\n });\n innerView.name = SLIDER_ELEMENT_NAME.innerView;\n this.add(innerView);\n this._innerView = innerView;\n\n let startLen = 0;\n let startTextShape;\n if (startText && startText.visible) {\n // 渲染首部文本\n startTextShape = graphicCreator.text({\n x: isHorizontal ? 0 : railWidth / 2,\n y: isHorizontal ? (railHeight as number) / 2 : 0,\n textAlign: isHorizontal ? 'start' : 'center',\n textBaseline: isHorizontal ? 'middle' : 'top',\n text: startText.text,\n lineHeight: startText.style?.fontSize,\n ...startText.style\n });\n startTextShape.name = SLIDER_ELEMENT_NAME.startText;\n innerView.add(startTextShape);\n const space = isValid(startText.space) ? startText.space : 0;\n startLen += (isHorizontal ? startTextShape.AABBBounds.width() : startTextShape.AABBBounds.height()) + space;\n }\n const mainContainer = graphicCreator.group({\n x: isHorizontal ? startLen : 0,\n y: isHorizontal ? 0 : startLen\n });\n innerView.add(mainContainer);\n\n const railContainer = graphicCreator.group({\n x: 0,\n y: 0\n });\n railContainer.name = SLIDER_ELEMENT_NAME.railContainer;\n this._railContainer = railContainer;\n mainContainer.add(railContainer);\n\n this._mainContainer = mainContainer;\n\n this._renderRail(railContainer);\n\n startLen += isHorizontal ? (railWidth as number) : (railHeight as number);\n\n let endTextShape;\n if (endText && endText.visible) {\n const space = isValid(endText.space) ? endText.space : 0;\n\n // 渲染首部文本\n endTextShape = graphicCreator.text({\n x: isHorizontal ? startLen + space : railWidth / 2,\n y: isHorizontal ? (railHeight as number) / 2 : startLen + space,\n textAlign: isHorizontal ? 'start' : 'center',\n textBaseline: isHorizontal ? 'middle' : 'top',\n text: endText.text,\n lineHeight: endText.style?.fontSize,\n ...endText.style\n });\n endTextShape.name = SLIDER_ELEMENT_NAME.endText;\n innerView.add(endTextShape);\n }\n\n this._renderTrack(railContainer);\n\n if (showHandler) {\n this._renderHandlers(mainContainer);\n this._bindEvents();\n }\n\n if (showTooltip) {\n this._renderTooltip();\n this._bindTooltipEvents();\n }\n }\n\n // 渲染滑块轨道\n protected _renderRail(container: IGroup) {\n const { railWidth, railHeight, railStyle, slidable } = this.attribute;\n\n let cursor: Cursor = 'default';\n if (slidable !== false) {\n cursor = 'pointer';\n }\n\n const railShape = graphicCreator.rect({\n x: 0,\n y: 0,\n width: railWidth,\n height: railHeight,\n cursor,\n ...railStyle\n });\n railShape.name = SLIDER_ELEMENT_NAME.rail;\n container.add(railShape);\n this._rail = railShape;\n\n return railShape;\n }\n\n // 渲染 handler\n protected _renderHandlers(container: IGroup) {\n const {\n range,\n min,\n max,\n handlerSize = 14,\n handlerStyle,\n handlerText,\n railHeight,\n railWidth,\n slidable\n } = this.attribute as SliderAttributes;\n let { value } = this.attribute as SliderAttributes;\n if (isNil(value)) {\n value = [min, max];\n }\n\n const handlerTextVisible = handlerText && handlerText.visible;\n const isHorizontal = this._isHorizontal;\n const railLen = isHorizontal ? railWidth : railHeight;\n\n const [startValue, endValue] = convertValueToRange(value);\n // 单滑块\n const handlerStart = max === min ? (range ? 0 : railLen) : (((startValue as number) - min) / (max - min)) * railLen;\n const startHandler = this._renderHandler({\n x: isHorizontal ? handlerStart : railWidth / 2,\n y: isHorizontal ? railHeight / 2 : handlerStart,\n size: handlerSize,\n strokeBoundsBuffer: 0,\n cursor: slidable === false ? 'default' : getDefaultCursor(isHorizontal),\n ...handlerStyle\n });\n startHandler.name = SLIDER_ELEMENT_NAME.startHandler;\n this._startHandler = startHandler;\n container.add(startHandler);\n this._currentValue.startPos = handlerStart;\n\n if (handlerTextVisible) {\n const startHandlerText = this._renderHandlerText(startValue, range ? 'start' : 'end');\n startHandlerText.name = SLIDER_ELEMENT_NAME.startHandlerText;\n container.add(startHandlerText);\n\n this._startHandlerText = startHandlerText;\n }\n\n if (range) {\n // 绘制第二个滑块\n // 单滑块\n const handlerEnd = max === min ? railLen : (((endValue as number) - min) / (max - min)) * railLen;\n const endHandler = this._renderHandler({\n x: isHorizontal ? handlerEnd : railWidth / 2,\n y: isHorizontal ? railHeight / 2 : handlerEnd,\n size: handlerSize,\n strokeBoundsBuffer: 0,\n cursor: slidable === false ? 'default' : getDefaultCursor(isHorizontal),\n ...handlerStyle\n });\n endHandler.name = SLIDER_ELEMENT_NAME.endHandler;\n this._endHandler = endHandler;\n container.add(endHandler);\n this._currentValue.endPos = handlerEnd;\n\n if (handlerTextVisible) {\n const endHandlerText = this._renderHandlerText(endValue, 'end');\n endHandlerText.name = SLIDER_ELEMENT_NAME.endHandlerText;\n container.add(endHandlerText);\n\n this._endHandlerText = endHandlerText;\n }\n }\n }\n\n // 渲染选中区域\n protected _renderTrack(container: IGroup) {\n const { range, min, max, railHeight, railWidth, trackStyle, railStyle, slidable, value } = this\n .attribute as SliderAttributes;\n\n let startValue;\n let endValue;\n\n if (isNil(value)) {\n if (range) {\n startValue = min;\n endValue = max;\n } else {\n startValue = endValue = min;\n }\n } else {\n if (range) {\n const clampValue = clampRange(value as [number, number], min, max);\n startValue = clampValue[0];\n endValue = clampValue[1];\n } else {\n startValue = min;\n endValue = clamp(value as number, min, max);\n }\n }\n\n const isHorizontal = this._isHorizontal;\n const railLen = isHorizontal ? railWidth : railHeight;\n // eslint-disable-next-line prefer-const\n // let [startValue, endValue] = convertValueToRange(value);\n\n if (!range) {\n startValue = min;\n }\n\n const trackContainer = graphicCreator.group({\n x: 0,\n y: 0,\n width: railWidth,\n height: railHeight,\n cornerRadius: railStyle?.cornerRadius,\n clip: true,\n pickable: false\n });\n trackContainer.name = SLIDER_ELEMENT_NAME.trackContainer;\n\n const draggableTrack = isObject(range) && range.draggableTrack === true;\n let cursor: Cursor;\n if (slidable === false) {\n cursor = 'default';\n } else if (range === false) {\n cursor = 'pointer';\n } else if (draggableTrack === false) {\n cursor = 'pointer';\n } else {\n cursor = getDefaultCursor(isHorizontal);\n }\n\n const trackWidth = max === min ? railLen : ((endValue - startValue) / (max - min)) * railLen;\n const startPos = max === min ? 0 : ((startValue - min) / (max - min)) * railLen;\n const track = graphicCreator.rect({\n x: isHorizontal ? startPos : 0,\n y: isHorizontal ? 0 : startPos,\n width: isHorizontal ? trackWidth : railWidth,\n height: isHorizontal ? railHeight : trackWidth,\n cursor,\n ...trackStyle\n });\n track.name = SLIDER_ELEMENT_NAME.track;\n this._track = track;\n trackContainer.add(track);\n container.add(trackContainer);\n }\n\n protected _renderHandler(style: Partial<ISymbolGraphicAttribute>) {\n // 渲染单个滑块\n const handler = graphicCreator.symbol(style);\n\n return handler;\n }\n\n private _renderHandlerText(value: number, position: string) {\n const {\n align,\n min,\n max,\n handlerSize = 14,\n handlerText = {},\n railHeight,\n railWidth,\n slidable\n } = this.attribute as SliderAttributes;\n\n const isHorizontal = this._isHorizontal;\n const railLen = isHorizontal ? railWidth : railHeight;\n const handlerStart =\n max === min ? (position === 'start' ? 0 : railLen) : (((value as number) - min) / (max - min)) * railLen;\n const textSpace = handlerText.space ?? 4;\n const textStyle: ITextGraphicAttribute = {\n text: handlerText.formatter ? handlerText.formatter(value) : value.toFixed(handlerText.precision ?? 0),\n lineHeight: handlerText.style?.lineHeight,\n cursor: slidable === false ? 'default' : getDefaultCursor(isHorizontal)\n };\n if (isHorizontal) {\n if (align === 'top') {\n // 展示 slider 上部\n textStyle.textBaseline = 'bottom';\n textStyle.textAlign = 'center';\n textStyle.x = handlerStart;\n textStyle.y = (railHeight - handlerSize) / 2 - textSpace;\n } else {\n // 展示 slider 下部\n textStyle.textBaseline = 'top';\n textStyle.textAlign = 'center';\n textStyle.x = handlerStart;\n textStyle.y = (railHeight + handlerSize) / 2 + textSpace;\n }\n } else {\n if (align === 'left') {\n // 展示 slider 左侧\n textStyle.textBaseline = 'middle';\n textStyle.textAlign = 'end';\n textStyle.x = (railWidth - handlerSize) / 2 - textSpace;\n textStyle.y = handlerStart;\n } else {\n // 展示 slider 右侧\n textStyle.textBaseline = 'middle';\n textStyle.textAlign = 'start';\n textStyle.x = (railWidth + handlerSize) / 2 + textSpace;\n textStyle.y = handlerStart;\n }\n }\n\n // 展示 handler 当前所在的数值\n const textShape = graphicCreator.text({\n ...textStyle,\n ...handlerText.style\n });\n return textShape;\n }\n\n private _renderTooltip() {\n const { tooltip, railHeight, railWidth, align } = this.attribute as SliderAttributes;\n\n if (tooltip && tooltip.alwaysShow) {\n this._tooltipState = {\n value: this._currentValue.startValue,\n pos: this._currentValue.startPos\n };\n } else {\n this._tooltipState = null;\n }\n\n const cx = this._isHorizontal ? 0 : railWidth / 2;\n const cy = this._isHorizontal ? railHeight / 2 : 0;\n\n if (tooltip && tooltip.shape) {\n const shape = graphicCreator.symbol({\n pickable: false,\n visible: !!this._tooltipState,\n x: cx,\n y: cy,\n symbolType: 'circle',\n\n ...tooltip.shapeStyle\n });\n\n this._tooltipShape = shape;\n this._mainContainer.add(shape);\n }\n\n const textConfig = (tooltip && tooltip.text) || {};\n const space = textConfig.space ?? 6;\n\n const textStyle: ITextGraphicAttribute = {\n pickable: false,\n visible: !!this._tooltipState,\n text: ''\n };\n\n if (this._isHorizontal) {\n textStyle.x = cx;\n textStyle.y = align === 'top' ? cy - railHeight / 2 - space : cy + railHeight / 2 + space;\n textStyle.textAlign = 'center';\n textStyle.textBaseline = align === 'top' ? 'bottom' : 'top';\n } else {\n textStyle.y = cy;\n textStyle.x = align === 'left' ? cx - railWidth / 2 - space : cy + railWidth / 2 + space;\n textStyle.textAlign = align === 'left' ? 'end' : 'start';\n textStyle.textBaseline = 'middle';\n }\n const text = graphicCreator.text({\n ...textStyle,\n ...textConfig.style\n });\n\n this._mainContainer.add(text);\n this._tooltipText = text;\n\n if (this._tooltipState) {\n this._updateTooltip();\n }\n }\n\n private _updateTooltip() {\n if ((!this._tooltipShape && !this._tooltipText) || !this._tooltipState) {\n return;\n }\n\n const coord = this._isHorizontal\n ? this._tooltipState.pos * this.attribute.railWidth\n : this._tooltipState.pos * this.attribute.railHeight;\n const coordKey = this._isHorizontal ? 'x' : 'y';\n\n if (this._tooltipShape) {\n this._tooltipShape.setAttributes({\n visible: true,\n [coordKey]: coord\n });\n }\n const { align } = this.attribute;\n\n if (this._tooltipText) {\n const textConfig = (this.attribute.tooltip && this.attribute.tooltip.text) || {};\n this._tooltipText.setAttributes({\n visible: true,\n [coordKey]: coord,\n text: textConfig.formatter\n ? textConfig.formatter(this._tooltipState.value)\n : !this._isHorizontal && align === 'left'\n ? `${this._tooltipState.value.toFixed(textConfig.precision ?? 0)} ≈`\n : `≈ ${this._tooltipState.value.toFixed(textConfig.precision ?? 0)}`\n });\n }\n }\n\n private _bindEvents() {\n if (this.attribute.disableTriggerEvent) {\n return;\n }\n const { slidable, range } = this.attribute as SliderAttributes;\n if (slidable) {\n if (this._startHandler) {\n this._startHandler.addEventListener(\n 'pointerdown',\n this._onHandlerPointerdown as EventListenerOrEventListenerObject\n );\n }\n if (this._startHandlerText) {\n this._startHandlerText.addEventListener(\n 'pointerdown',\n this._onHandlerPointerdown as EventListenerOrEventListenerObject\n );\n }\n if (this._endHandler) {\n this._endHandler.addEventListener(\n 'pointerdown',\n this._onHandlerPointerdown as EventListenerOrEventListenerObject\n );\n }\n if (this._endHandlerText) {\n this._endHandlerText.addEventListener(\n 'pointerdown',\n this._onHandlerPointerdown as EventListenerOrEventListenerObject\n );\n }\n\n if (isObject(range) && range.draggableTrack) {\n this._track.addEventListener('pointerdown', this._onTrackPointerdown as EventListenerOrEventListenerObject);\n }\n\n this._railContainer.addEventListener(\n 'pointerdown',\n this._onRailPointerDown as EventListenerOrEventListenerObject\n );\n }\n }\n\n private _bindTooltipEvents() {\n if (this.attribute.disableTriggerEvent) {\n return;\n }\n\n this._mainContainer.addEventListener('pointerenter', this._onTooltipShow as EventListenerOrEventListenerObject);\n this._mainContainer.addEventListener('pointermove', this._onTooltipUpdate as EventListenerOrEventListenerObject);\n this._mainContainer.addEventListener('pointerleave', this._onTooltipHide as EventListenerOrEventListenerObject);\n }\n\n private _onTooltipShow = (e: FederatedPointerEvent) => {\n if (this._isChanging || (this._tooltipState && this._tooltipState.isActive)) {\n return;\n }\n\n if (!this._tooltipState) {\n this._tooltipState = { isActive: true };\n } else {\n this._tooltipState.isActive = true;\n }\n\n this._onTooltipUpdate(e);\n this._dispatchTooltipEvent('sliderTooltipShow');\n };\n\n private _onTooltipUpdate = (e: FederatedPointerEvent) => {\n if (this._isChanging || !this._tooltipState || !this._tooltipState.isActive) {\n return;\n }\n\n const { min, max } = this.attribute;\n const pos = clamp(\n this._isHorizontal\n ? (e.viewX - this._rail.globalAABBBounds.x1) / this._rail.globalAABBBounds.width()\n : (e.viewY - this._rail.globalAABBBounds.y1) / this._rail.globalAABBBounds.height(),\n 0,\n 1\n );\n\n if (pos !== this._tooltipState.pos) {\n this._tooltipState.pos = pos;\n this._tooltipState.value = min + (max - min) * pos;\n\n this._updateTooltip();\n this._dispatchTooltipEvent('sliderTooltipUpdate');\n }\n };\n\n private _onTooltipHide = () => {\n const { tooltip } = this.attribute as SliderAttributes;\n\n if (tooltip && tooltip.alwaysShow) {\n return;\n }\n\n this._tooltipState = null;\n\n if (this._tooltipShape) {\n this._tooltipShape.setAttribute('visible', false);\n }\n if (this._tooltipText) {\n this._tooltipText.setAttribute('visible', false);\n }\n this._dispatchTooltipEvent('sliderTooltipHide');\n };\n\n private _onHandlerPointerdown = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n this._isChanging = true;\n\n this._currentHandler = e.target as unknown as IGraphic;\n this._prePos = this._isHorizontal ? e.clientX : e.clientY;\n if (vglobal.env === 'browser') {\n vglobal.addEventListener('pointermove', this._onHandlerPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n vglobal.addEventListener('pointerup', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n } else {\n this.stage.addEventListener('pointermove', this._onHandlerPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n this.stage.addEventListener('pointerup', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n this.stage.addEventListener('pointerupoutside', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n }\n };\n\n private _onHandlerPointerMove = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n\n this._isChanging = true;\n const { railWidth, railHeight, min, max } = this.attribute as SliderAttributes;\n if (max === min) {\n return;\n }\n\n let currentPos;\n let delta = 0;\n let originPos;\n let railLen;\n if (!this._isHorizontal) {\n currentPos = e.clientY;\n delta = currentPos - this._prePos; // 实际位移的变化\n originPos = this._currentHandler?.attribute.y as number;\n railLen = railHeight;\n } else {\n currentPos = e.clientX;\n delta = currentPos - this._prePos; // 实际位移的变化\n originPos = this._currentHandler?.attribute.x as number;\n railLen = railWidth;\n }\n\n const newPos = clamp(originPos + delta, 0, railLen);\n const currentValue = (newPos / railLen) * (max - min) + min;\n\n if (this._currentHandler.type === 'text') {\n this._updateHandlerText(this._currentHandler as IText, newPos, currentValue);\n } else {\n this._updateHandler(this._currentHandler as ISymbol, newPos, currentValue);\n }\n\n this._updateTrack();\n this._prePos = currentPos;\n\n this._dispatchChangeEvent();\n };\n\n private _onHandlerPointerUp = (e: FederatedPointerEvent) => {\n e.preventDefault();\n this._isChanging = false;\n this._currentHandler = null;\n if (vglobal.env === 'browser') {\n vglobal.removeEventListener('pointermove', this._onHandlerPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n vglobal.removeEventListener('pointerup', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n } else {\n this.stage.removeEventListener('pointermove', this._onHandlerPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n this.stage.removeEventListener('pointerup', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n this.stage.removeEventListener(\n 'pointerupoutside',\n this._onHandlerPointerUp as EventListenerOrEventListenerObject\n );\n }\n };\n\n private _onTrackPointerdown = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n this._isChanging = true;\n this._prePos = this._isHorizontal ? e.clientX : e.clientY;\n if (vglobal.env === 'browser') {\n vglobal.addEventListener('pointermove', this._onTrackPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n vglobal.addEventListener('pointerup', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n } else {\n this.stage.addEventListener('pointermove', this._onTrackPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n this.stage.addEventListener('pointerup', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n this.stage.addEventListener('pointerupoutside', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n }\n };\n\n private _onTrackPointerMove = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n this._isChanging = true;\n const { railWidth, railHeight, min, max } = this.attribute as SliderAttributes;\n\n if (max === min) {\n return;\n }\n const { startHandler, endHandler } = this._getHandlers();\n\n let currentPos;\n let trackLen;\n let railLen;\n if (this._isHorizontal) {\n currentPos = e.clientX;\n // @ts-ignore\n trackLen = this._track.attribute.width;\n railLen = railWidth;\n } else {\n currentPos = e.clientY;\n // @ts-ignore\n trackLen = this._track.attribute.height;\n railLen = railHeight;\n }\n const delta = currentPos - this._prePos; // 实际位移的变化\n if (startHandler) {\n const originPos = (this._isHorizontal ? startHandler.attribute.x : startHandler.attribute.y) as number;\n const newPos = clamp(originPos + delta, 0, railLen - trackLen);\n const currentValue = (newPos / railLen) * (max - min) + min;\n this._updateHandler(startHandler, newPos, currentValue);\n }\n\n if (endHandler) {\n const originPos = (this._isHorizontal ? endHandler.attribute.x : endHandler.attribute.y) as number;\n const newPos = clamp(originPos + delta, trackLen, railLen);\n const currentValue = (newPos / railLen) * (max - min) + min;\n const startHandlerAttribute = startHandler?.attribute;\n this._updateHandler(endHandler, newPos, currentValue);\n this._track.setAttributes(\n this._isHorizontal\n ? {\n x: Math.min(startHandlerAttribute.x as number, endHandler.attribute.x as number),\n // @ts-ignore\n width: Math.abs((startHandlerAttribute.x as number) - (endHandler.attribute.x as number))\n }\n : {\n y: Math.min(startHandlerAttribute.y as number, endHandler.attribute.y as number),\n // @ts-ignore\n height: Math.abs((startHandlerAttribute.y as number) - (endHandler.attribute.y as number))\n }\n );\n }\n\n this._prePos = currentPos;\n this._dispatchChangeEvent();\n };\n\n private _onTrackPointerUp = (e: FederatedPointerEvent) => {\n e.preventDefault();\n this._isChanging = false;\n if (vglobal.env === 'browser') {\n vglobal.removeEventListener('pointermove', this._onTrackPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n vglobal.removeEventListener('pointerup', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n } else {\n this.stage.removeEventListener('pointermove', this._onTrackPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n this.stage.removeEventListener('pointerup', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n this.stage.removeEventListener('pointerupoutside', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n }\n };\n\n private _onRailPointerDown = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n this._isChanging = true;\n const { railWidth, railHeight, min, max } = this.attribute as SliderAttributes;\n\n if (max === min) {\n return;\n }\n\n const startHandler = this._startHandler as ISymbol;\n const endHandler = this._endHandler;\n\n let currentPos;\n let startHandlerPos;\n let endHandlerPos;\n let railLen;\n // 更新 handler, text 以及 track\n if (this._isHorizontal) {\n currentPos = e.viewX - this._rail.globalAABBBounds.x1;\n startHandlerPos = startHandler?.attribute.x as number;\n endHandlerPos = endHandler?.attribute.x;\n railLen = railWidth;\n } else {\n currentPos = e.viewY - this._rail.globalAABBBounds.y1;\n startHandlerPos = startHandler?.attribute.y as number;\n endHandlerPos = endHandler?.attribute.y;\n railLen = railHeight;\n }\n\n const currentValue = (currentPos / railLen) * (max - min) + min;\n\n if (isValid(endHandlerPos)) {\n const updateHandler = (\n Math.abs(currentPos - startHandlerPos) > Math.abs(currentPos - endHandlerPos) ? endHandler : startHandler\n ) as ISymbol;\n this._updateHandler(updateHandler, currentPos, currentValue);\n } else {\n this._updateHandler(startHandler, currentPos, currentValue);\n }\n this._updateTrack();\n\n this._dispatchChangeEvent();\n };\n\n // 更新 track 样式\n private _updateTrack() {\n // 更新 track\n const startHandler = this._startHandler;\n const endHandler = this._endHandler;\n\n if (this._isHorizontal) {\n const startHandlerPos = startHandler?.attribute.x as number;\n if (endHandler) {\n const endHandlerPos = endHandler?.attribute.x as number;\n // 区间\n this._track.setAttributes({\n x: Math.min(startHandlerPos, endHandlerPos),\n // @ts-ignore\n width: Math.abs(startHandlerPos - endHandlerPos)\n });\n } else {\n this._track.setAttributes({\n // @ts-ignore\n width: startHandlerPos\n });\n }\n } else {\n const startHandlerPos = startHandler?.attribute.y as number;\n if (endHandler) {\n const endHandlerPos = endHandler?.attribute.y as number;\n // 区间\n this._track.setAttributes({\n y: Math.min(startHandlerPos, endHandlerPos),\n // @ts-ignore\n height: Math.abs(startHandlerPos - endHandlerPos)\n });\n } else {\n this._track.setAttributes({\n // @ts-ignore\n height: startHandlerPos\n });\n }\n }\n }\n\n // 更新 handler 以及对应 text\n private _updateHandler(handler: ISymbol, position: number, value: number) {\n const isHorizontal = this._isHorizontal;\n handler.setAttribute(isHorizontal ? 'x' : 'y', position);\n const updateHandlerText =\n handler.name === SLIDER_ELEMENT_NAME.startHandler ? this._startHandlerText : this._endHandlerText;\n if (updateHandlerText) {\n const { handlerText = {} } = this.attribute as SliderAttributes;\n updateHandlerText.setAttributes({\n text: handlerText.formatter ? handlerText.formatter(value) : value.toFixed(handlerText.precision ?? 0),\n [isHorizontal ? 'x' : 'y']: position\n });\n }\n\n if (handler.name === SLIDER_ELEMENT_NAME.startHandler) {\n this._currentValue.startValue = value;\n this._currentValue.startPos = position;\n } else {\n this._currentValue.endValue = value;\n this._currentValue.endPos = position;\n }\n }\n\n // 更新 handler 以及对应 text\n private _updateHandlerText(handlerText: IText, position: number, value: number) {\n const isHorizontal = this._isHorizontal;\n const { handlerText: handlerTextAttr = {} } = this.attribute as SliderAttributes;\n handlerText.setAttributes({\n [isHorizontal ? 'x' : 'y']: position,\n text: handlerTextAttr.formatter ? handlerTextAttr.formatter(value) : value.toFixed(handlerTextAttr.precision ?? 0)\n });\n const updateHandler =\n handlerText.name === SLIDER_ELEMENT_NAME.startHandlerText ? this._startHandler : this._endHandler;\n if (updateHandler) {\n updateHandler.setAttributes({\n [isHorizontal ? 'x' : 'y']: position\n });\n }\n\n if (handlerText.name === SLIDER_ELEMENT_NAME.startHandlerText) {\n this._currentValue.startValue = value;\n this._currentValue.startPos = position;\n } else {\n this._currentValue.endValue = value;\n this._currentValue.endPos = position;\n }\n }\n\n private _dispatchChangeEvent() {\n const isRange = !!this.attribute.range;\n const currentValue = this._currentValue;\n\n this._dispatchEvent('change', {\n value: isRange\n ? [\n Math.min(currentValue.endValue as number, currentValue.startValue as number),\n Math.max(currentValue.endValue as number, currentValue.startValue as number)\n ]\n : currentValue.startValue,\n position: isRange\n ? [\n Math.min(currentValue.endPos as number, currentValue.startPos as number),\n Math.max(currentValue.endPos as number, currentValue.startPos as number)\n ]\n : currentValue.startPos\n });\n }\n\n private _dispatchTooltipEvent(type: string) {\n this._dispatchEvent('sliderTooltip', {\n type,\n position: this._tooltipState && this._tooltipState.pos,\n value: this._tooltipState && this._tooltipState.value\n });\n }\n\n private _getHandlers() {\n let startHandler = this._startHandler;\n let endHandler = this._endHandler;\n let temp;\n\n if (this._isHorizontal) {\n if (endHandler && (endHandler.attribute.x as number) < (startHandler?.attribute.x as number)) {\n temp = startHandler;\n startHandler = endHandler;\n endHandler = temp;\n }\n } else {\n if (endHandler && (endHandler.attribute.y as number) < (startHandler?.attribute.y as number)) {\n temp = startHandler;\n startHandler = endHandler;\n endHandler = temp;\n }\n }\n\n return {\n startHandler,\n endHandler\n };\n }\n}\n"]}
|
package/es/slider/type.d.ts
CHANGED
|
@@ -14,7 +14,15 @@ export type HandlerTextAttribute = {
|
|
|
14
14
|
style?: Omit<Partial<ITextGraphicAttribute>, 'text'>;
|
|
15
15
|
};
|
|
16
16
|
export type TooltipConfig = {
|
|
17
|
-
|
|
17
|
+
shape?: boolean;
|
|
18
|
+
shapeStyle?: Partial<ISymbolGraphicAttribute>;
|
|
19
|
+
text?: {
|
|
20
|
+
precision?: number;
|
|
21
|
+
space?: number;
|
|
22
|
+
formatter?: (value: Text) => Text;
|
|
23
|
+
style?: Omit<Partial<ITextGraphicAttribute>, 'text'>;
|
|
24
|
+
};
|
|
25
|
+
alwaysShow?: boolean;
|
|
18
26
|
};
|
|
19
27
|
export type RangeType = boolean | {
|
|
20
28
|
draggableTrack?: boolean;
|
package/es/slider/type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/slider/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n ISymbolGraphicAttribute,\n IRectGraphicAttribute,\n ITextGraphicAttribute,\n IGroupGraphicAttribute\n} from '@visactor/vrender-core';\n\ntype Text = string | number;\n\nexport type TextAttribute = {\n /** 是否展示 */\n visible?: boolean;\n /** 文本内容 */\n text?: Text;\n /**\n * 文本同滑块的间距,默认为 6\n */\n space?: number;\n /**\n * 文本样式\n */\n style?: Omit<Partial<ITextGraphicAttribute>, 'text'>;\n};\n\nexport type HandlerTextAttribute = {\n /** 是否展示 */\n visible?: boolean;\n /**\n * 数据展示的小数精度,默认为0,无小数点。\n */\n precision?: number;\n /** 文本内容格式化函数 */\n formatter?: (text: Text) => Text;\n /**\n * 文本同滑块的间距,默认为 6\n */\n space?: number;\n /**\n * 文本样式\n */\n style?: Omit<Partial<ITextGraphicAttribute>, 'text'>;\n};\n\nexport type TooltipConfig = {\n
|
|
1
|
+
{"version":3,"sources":["../src/slider/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n ISymbolGraphicAttribute,\n IRectGraphicAttribute,\n ITextGraphicAttribute,\n IGroupGraphicAttribute\n} from '@visactor/vrender-core';\n\ntype Text = string | number;\n\nexport type TextAttribute = {\n /** 是否展示 */\n visible?: boolean;\n /** 文本内容 */\n text?: Text;\n /**\n * 文本同滑块的间距,默认为 6\n */\n space?: number;\n /**\n * 文本样式\n */\n style?: Omit<Partial<ITextGraphicAttribute>, 'text'>;\n};\n\nexport type HandlerTextAttribute = {\n /** 是否展示 */\n visible?: boolean;\n /**\n * 数据展示的小数精度,默认为0,无小数点。\n */\n precision?: number;\n /** 文本内容格式化函数 */\n formatter?: (text: Text) => Text;\n /**\n * 文本同滑块的间距,默认为 6\n */\n space?: number;\n /**\n * 文本样式\n */\n style?: Omit<Partial<ITextGraphicAttribute>, 'text'>;\n};\n\nexport type TooltipConfig = {\n /**\n * 是否展示图标\n */\n shape?: boolean;\n /**\n * 图标的样式配置\n */\n shapeStyle?: Partial<ISymbolGraphicAttribute>;\n\n text?: {\n /**\n * 数据展示的小数精度,默认为0,无小数点。\n */\n precision?: number;\n /**\n * 文本同滑块的间距,默认为 6\n */\n space?: number;\n /**\n * 格式化函数\n */\n formatter?: (value: Text) => Text;\n /**\n * 文本样式\n */\n style?: Omit<Partial<ITextGraphicAttribute>, 'text'>;\n };\n /**\n * 是否始终展示\n */\n alwaysShow?: boolean;\n};\n\nexport type RangeType =\n | boolean\n | {\n /**\n * 范围刻度是否可被拖拽,默认值为 false\n */\n draggableTrack?: boolean;\n };\n\nexport type SliderAttributes = {\n /**\n * 是否允许拖动,默认为 true\n */\n slidable?: boolean;\n /**\n * TODO: 这个类型有问题\n * 布局方式。\n * - 'horizontal' 水平布局\n * - 'vertical' 垂直布局\n */\n layout?: 'horizontal' | 'vertical' | string;\n /**\n * 指定组件中手柄和文字的摆放位置,可选值为:\n * 'left' 手柄和label在滑块左侧,layout 为 vertical 时有效。\n * 'right' 手柄和label在滑块右侧,layout 为 vertical 时有效。\n * 'top' 手柄和label在滑块上侧,layout 为 horizontal 时有效。\n * 'bottom' 手柄和label在滑块下侧,layout 为 horizontal 时有效。\n */\n align?: 'top' | 'bottom' | 'left' | 'right';\n /**\n * 双滑块模式,默认为 false,单滑块模式\n */\n range?: RangeType;\n /**\n * 最小值\n */\n min: number;\n /**\n * 最大值\n */\n max: number;\n /**\n * 设置当前取值。当 range 为 false 时,使用 number,否则用 [number, number]\n */\n value?: number | [number, number];\n /**\n * TODO:\n * 步长,取值必须大于 0,并且可被 (max - min) 整除。\n * 用于离散连续场景\n */\n step?: number;\n\n /**\n * 滑块的宽度\n */\n railWidth: number;\n /**\n * 滑块的高度\n */\n railHeight: number;\n\n /**\n * 是否绘制 handler,默认为 true\n */\n showHandler?: boolean;\n\n /**\n * handler 操作按钮的大小\n */\n handlerSize?: number;\n\n /**\n * 滑块手柄的样式配置\n */\n handlerStyle?: Partial<ISymbolGraphicAttribute>;\n /**\n * 背景轨道样式配置\n */\n railStyle?: Omit<Partial<IRectGraphicAttribute>, 'width' | 'height'>;\n /**\n * 选中区域样式配置\n */\n trackStyle?: Omit<Partial<IRectGraphicAttribute>, 'width' | 'height'>;\n\n /**\n * 滑块首部文本配置\n */\n startText?: TextAttribute;\n /**\n * 滑块尾部文本配置\n */\n endText?: TextAttribute;\n\n /**\n * 滑块对应的文本配置项\n */\n handlerText?: HandlerTextAttribute;\n\n /**\n * tooltip,默认不显示\n * 需要通过交互触发展示:\n * 1. 鼠标移动到组件上\n * 2. 通过API手动触发显示\n *\n * 是否显示 hander 上的 tooltip\n */\n showTooltip?: boolean;\n /**\n * handler tooltip 配置\n */\n tooltip?: TooltipConfig;\n /**\n * 关闭交互效果\n * @default false\n */\n disableTriggerEvent?: boolean;\n} & IGroupGraphicAttribute;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visactor/vrender-components",
|
|
3
|
-
"version": "0.18.0-alpha.
|
|
3
|
+
"version": "0.18.0-alpha.2",
|
|
4
4
|
"description": "components library for dp visualization",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "cjs/index.js",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"dist"
|
|
13
13
|
],
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@visactor/vrender-core": "0.18.0-alpha.
|
|
16
|
-
"@visactor/vrender-kits": "0.18.0-alpha.
|
|
15
|
+
"@visactor/vrender-core": "0.18.0-alpha.2",
|
|
16
|
+
"@visactor/vrender-kits": "0.18.0-alpha.2",
|
|
17
17
|
"@visactor/vutils": "~0.17.3",
|
|
18
18
|
"@visactor/vscale": "~0.17.3"
|
|
19
19
|
},
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
"eslint": "~8.18.0",
|
|
29
29
|
"vite": "3.2.6",
|
|
30
30
|
"typescript": "4.9.5",
|
|
31
|
+
"@internal/bundler": "0.0.1",
|
|
31
32
|
"@internal/eslint-config": "0.0.1",
|
|
32
|
-
"@internal/ts-config": "0.0.1"
|
|
33
|
-
"@internal/bundler": "0.0.1"
|
|
33
|
+
"@internal/ts-config": "0.0.1"
|
|
34
34
|
},
|
|
35
35
|
"keywords": [
|
|
36
36
|
"VisActor",
|