@visactor/vgrammar-core 0.8.3 → 0.9.0-alpha.0
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/component/axis.d.ts +2 -2
- package/cjs/component/axis.js +3 -2
- package/cjs/component/axis.js.map +1 -1
- package/cjs/component/datazoom.js +3 -2
- package/cjs/component/datazoom.js.map +1 -1
- package/cjs/component/grid.d.ts +2 -2
- package/cjs/component/grid.js +3 -2
- package/cjs/component/grid.js.map +1 -1
- package/cjs/component/label.js +1 -1
- package/cjs/component/label.js.map +1 -1
- package/cjs/component/legend.js +2 -1
- package/cjs/component/legend.js.map +1 -1
- package/cjs/component/player.js +2 -1
- package/cjs/component/player.js.map +1 -1
- package/cjs/component/scrollbar.js +2 -1
- package/cjs/component/scrollbar.js.map +1 -1
- package/cjs/component/slider.js +1 -1
- package/cjs/component/slider.js.map +1 -1
- package/cjs/component/title.js +2 -1
- package/cjs/component/title.js.map +1 -1
- package/cjs/graph/attributes/helpers.d.ts +1 -1
- package/cjs/graph/attributes/helpers.js +8 -11
- package/cjs/graph/attributes/helpers.js.map +1 -1
- package/cjs/graph/canvas-renderer.js +9 -19
- package/cjs/graph/canvas-renderer.js.map +1 -1
- package/cjs/graph/element.js +2 -2
- package/cjs/graph/element.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/parse/scale.js +4 -3
- package/cjs/parse/scale.js.map +1 -1
- package/cjs/types/component.d.ts +4 -3
- package/cjs/types/component.js.map +1 -1
- package/cjs/types/grammar.d.ts +1 -0
- package/cjs/types/grammar.js.map +1 -1
- package/cjs/types/mark.d.ts +1 -0
- package/cjs/types/mark.js.map +1 -1
- package/cjs/types/scale.d.ts +2 -1
- package/cjs/types/scale.js.map +1 -1
- package/cjs/types/signal.d.ts +1 -0
- package/cjs/types/signal.js.map +1 -1
- package/cjs/view/mark.js +2 -5
- package/cjs/view/mark.js.map +1 -1
- package/cjs/view/scale.d.ts +1 -0
- package/cjs/view/scale.js +3 -0
- package/cjs/view/scale.js.map +1 -1
- package/es/component/axis.d.ts +2 -2
- package/es/component/axis.js +3 -2
- package/es/component/axis.js.map +1 -1
- package/es/component/datazoom.js +2 -2
- package/es/component/datazoom.js.map +1 -1
- package/es/component/grid.d.ts +2 -2
- package/es/component/grid.js +3 -2
- package/es/component/grid.js.map +1 -1
- package/es/component/label.js +1 -1
- package/es/component/label.js.map +1 -1
- package/es/component/legend.js +1 -1
- package/es/component/legend.js.map +1 -1
- package/es/component/player.js +1 -1
- package/es/component/player.js.map +1 -1
- package/es/component/scrollbar.js +1 -1
- package/es/component/scrollbar.js.map +1 -1
- package/es/component/slider.js +1 -1
- package/es/component/slider.js.map +1 -1
- package/es/component/title.js +1 -1
- package/es/component/title.js.map +1 -1
- package/es/graph/attributes/helpers.d.ts +1 -1
- package/es/graph/attributes/helpers.js +9 -12
- package/es/graph/attributes/helpers.js.map +1 -1
- package/es/graph/canvas-renderer.js +9 -19
- package/es/graph/canvas-renderer.js.map +1 -1
- package/es/graph/element.js +2 -2
- package/es/graph/element.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/parse/scale.js +4 -3
- package/es/parse/scale.js.map +1 -1
- package/es/types/component.d.ts +4 -3
- package/es/types/component.js.map +1 -1
- package/es/types/grammar.d.ts +1 -0
- package/es/types/grammar.js.map +1 -1
- package/es/types/mark.d.ts +1 -0
- package/es/types/mark.js.map +1 -1
- package/es/types/scale.d.ts +2 -1
- package/es/types/scale.js.map +1 -1
- package/es/types/signal.d.ts +1 -0
- package/es/types/signal.js.map +1 -1
- package/es/view/mark.js +2 -5
- package/es/view/mark.js.map +1 -1
- package/es/view/scale.d.ts +1 -0
- package/es/view/scale.js +3 -0
- package/es/view/scale.js.map +1 -1
- package/package.json +3 -3
package/cjs/graph/element.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graph/element.ts"],"names":[],"mappings":"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","file":"element.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport {\n array,\n has,\n isBoolean,\n isNil,\n isFunction,\n isString,\n isArray,\n get,\n isEmpty,\n isEqual as isObjEqual\n} from '@visactor/vutils';\nimport { isEqual } from '@visactor/vgrammar-util';\nimport type { IBaseCoordinate } from '@visactor/vgrammar-coordinate';\nimport { BridgeElementKey } from './constants';\nimport { DiffState, HOOK_EVENT, GrammarMarkType, BuiltInEncodeNames } from './enums';\nimport { invokeEncoderToItems } from './mark/encode';\nimport { removeGraphicItem } from './util/graphic';\nimport { transformAttributes } from './attributes/transform';\nimport {\n getLargeRectsPoints,\n getLargeSymbolsPoints,\n getLinePoints,\n isValidPointsChannel,\n isPointsMarkType\n} from './attributes/helpers';\nimport { getLineSegmentConfigs, getLinePointsFromSegments } from './attributes/line';\nimport type {\n BaseEncodeSpec,\n BaseSignleEncodeSpec,\n IElement,\n IMark,\n IMarkConfig,\n MarkElementItem,\n MarkFunctionType,\n MarkKeySpec,\n MarkSpec,\n MarkType,\n StateProxyEncodeSpec\n} from '../types';\nimport type { IGraphic, ILine, IGraphicAttribute } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { CustomPath2D } from '@visactor/vrender-core';\nimport { invokeFunctionType, parseField } from '../parse/util';\n\nexport class Element implements IElement {\n mark: IMark;\n\n key: string;\n groupKey?: string;\n data: any[] = null;\n\n states: string[] = [];\n\n diffState: DiffState = DiffState.enter;\n // Element should be reserved as long as it need to animate\n isReserved: boolean = false;\n\n runtimeStatesEncoder: BaseEncodeSpec = null;\n\n protected graphicItem: IGraphic;\n\n // hack before vRender refactoring\n items: MarkElementItem[] = [];\n\n constructor(mark: IMark) {\n this.mark = mark;\n }\n\n initGraphicItem(attributes: any = {}) {\n if (this.graphicItem) {\n return;\n }\n // 统一读取mark中是否可交互的配置\n const attrs = Object.assign({}, attributes);\n this.graphicItem = this.mark.addGraphicItem(attrs, this.groupKey);\n\n if (!this.graphicItem) {\n return;\n }\n // 统一读取mark中是否可交互的配置\n this.graphicItem[BridgeElementKey] = this;\n\n this.graphicItem.onBeforeAttributeUpdate = (attributes: any) => {\n // mark might be released\n if (!this.mark) {\n return attributes;\n }\n const graphicAttributes = transformAttributes(this.mark.getAttributeTransforms(), attributes, this);\n return graphicAttributes;\n };\n\n // transform initial attributes\n this.graphicItem.setAttributes(this.graphicItem.attribute);\n\n this.clearGraphicAttributes();\n if (this.mark.needAnimate()) {\n this.setPrevGraphicAttributes({});\n this.setNextGraphicAttributes(attributes);\n this.setFinalGraphicAttributes(attributes);\n }\n }\n\n updateGraphicItem(config: IMarkConfig) {\n if (!this.graphicItem) {\n return;\n }\n\n if (!isNil(config.clip)) {\n this.graphicItem.setAttribute('clip', config.clip);\n }\n if (!isNil(config.interactive)) {\n this.graphicItem.setAttribute('pickable', config.interactive);\n }\n if (!isNil(config.zIndex)) {\n this.graphicItem.setAttribute('zIndex', config.zIndex);\n }\n if (this.diffState === DiffState.exit) {\n (this.graphicItem as any).releaseStatus = 'willRelease';\n } else {\n (this.graphicItem as any).releaseStatus = undefined;\n }\n\n const stateAnimation = this.mark.animate.getAnimationConfigs('state');\n if (stateAnimation.length !== 0) {\n (this.graphicItem as any).stateAnimateConfig = stateAnimation[0].originConfig;\n }\n }\n\n getGraphicItem() {\n return this.graphicItem;\n }\n\n getBounds() {\n // FIXME: 没有更新 bounds 时拿到的 bound 可能为 null\n return this.graphicItem?.AABBBounds;\n }\n\n getStates() {\n return this.states.slice();\n }\n\n updateData(groupKey: string | null, data: any[], key: MarkKeySpec) {\n this.mark.emit(HOOK_EVENT.BEFORE_ELEMENT_UPDATE_DATA, { groupKey, data, key }, this);\n this.data = data;\n const keyGetter = parseField(key);\n this.items = data.map(datum => {\n const key = keyGetter(datum);\n const item = {\n datum,\n key,\n view: this.mark.view,\n nextAttrs: {}\n };\n\n return item;\n });\n\n this.groupKey = groupKey;\n this.key = this.mark.isCollectionMark() ? groupKey : this.items?.[0].key;\n\n this.mark.emit(HOOK_EVENT.AFTER_ELEMENT_UPDATE_DATA, { groupKey, data, key }, this);\n return this.items;\n }\n\n state(markState: MarkFunctionType<string | string[]>, parameters?: any) {\n const isCollectionMark = this.mark.isCollectionMark();\n\n const prevStateValues = this.states;\n const newStateValues = array(invokeFunctionType(markState, parameters, this.getDatum(), this));\n const stateSort = this.mark.getSpec()?.stateSort;\n\n if (stateSort) {\n stateSort.sort(stateSort);\n }\n\n const isStateChanged =\n newStateValues.length !== prevStateValues.length ||\n newStateValues.some((newState: string, index: number) => newState !== prevStateValues[index]);\n this.states = newStateValues;\n\n // early logic didn't handle collection mark, only update signal mark state for now\n if (!isCollectionMark && isStateChanged && this.diffState === DiffState.unChange) {\n this.diffState = DiffState.update;\n }\n }\n\n encodeGraphic(attrs?: any) {\n this.coordinateTransformEncode(this.items);\n\n if (!isNil(attrs?.enableSegments) && this.items?.[0]?.nextAttrs) {\n this.items[0].nextAttrs.enableSegments = attrs.enableSegments;\n }\n\n const graphicAttributes = this.transformElementItems(this.items, this.mark.markType);\n\n if (attrs) {\n Object.assign(graphicAttributes, attrs);\n }\n\n if (!this.graphicItem) {\n this.initGraphicItem(graphicAttributes);\n } else {\n this.graphicItem.clearStates();\n // 更新数据流后,states计算不缓存\n this.graphicItem.states = {};\n this.graphicItem.stateProxy = null;\n\n this.applyGraphicAttributes(graphicAttributes);\n }\n\n if ((this.diffState === DiffState.enter || this.diffState === DiffState.update) && this.states.length) {\n this.useStates(this.states);\n }\n\n if (this.mark.markType === GrammarMarkType.shape) {\n // FIXME: shape需要拿到原始数据进行编码,暂时把数据绑定到graphicItem上,看后续graphicItem是否需要支持数据绑定\n (this.graphicItem as any).datum = this.items[0].datum;\n }\n\n // clear item attributes\n this.items.forEach(item => {\n item.nextAttrs = {};\n });\n this._setCutomizedShape();\n }\n\n private _setCutomizedShape() {\n if (!this.graphicItem) {\n return;\n }\n const setCustomizedShape = this.mark.getSpec()?.setCustomizedShape;\n\n if (!setCustomizedShape) {\n return;\n }\n\n this.graphicItem.pathProxy = (attrs: Partial<IGraphicAttribute>) => {\n return setCustomizedShape(this.data, attrs, new CustomPath2D());\n };\n }\n\n encodeItems(items: MarkElementItem[], encoders: BaseEncodeSpec, isReentered: boolean = false, parameters?: any) {\n const isCollectionMark = this.mark.isCollectionMark();\n // marshall encoder functions\n const updateEncoder = encoders[BuiltInEncodeNames.update];\n const enterEncoder = encoders[BuiltInEncodeNames.enter];\n const exitEncoder = encoders[BuiltInEncodeNames.exit];\n const onlyFullEncodeFirst = this.mark.isLargeMode();\n\n if (this.diffState === DiffState.enter) {\n if (enterEncoder) {\n invokeEncoderToItems(this, items, enterEncoder, parameters, onlyFullEncodeFirst);\n }\n if (updateEncoder) {\n invokeEncoderToItems(this, items, updateEncoder, parameters, onlyFullEncodeFirst);\n }\n } else if (this.diffState === DiffState.update) {\n // if mark is reentered or mark is collection type, evaluate enter encode\n if ((isCollectionMark && enterEncoder) || isReentered) {\n invokeEncoderToItems(this, items, enterEncoder, parameters, onlyFullEncodeFirst);\n }\n if (updateEncoder) {\n invokeEncoderToItems(this, items, updateEncoder, parameters, onlyFullEncodeFirst);\n }\n } else if (this.diffState === DiffState.exit && exitEncoder) {\n // if mark is reentered, evaluate enter encode\n if (isReentered) {\n invokeEncoderToItems(this, items, enterEncoder, parameters, onlyFullEncodeFirst);\n }\n invokeEncoderToItems(this, items, exitEncoder, parameters, onlyFullEncodeFirst);\n }\n }\n\n protected coordinateTransformEncode(items: MarkElementItem[]) {\n if (!this.mark.coord || this.mark.markType === 'arc' || this.mark.disableCoordinateTransform === true) {\n return;\n }\n const coord = this.mark.coord.output() as IBaseCoordinate;\n\n items.forEach(item => {\n const nextAttrs = item.nextAttrs;\n const convertedPoint: IPointLike = coord.convert(nextAttrs);\n Object.assign(nextAttrs, convertedPoint);\n });\n }\n\n clearStates(hasAnimation?: boolean) {\n const stateAnimationEnable = isBoolean(hasAnimation)\n ? hasAnimation\n : this.mark.animate.getAnimationConfigs('state').length !== 0;\n\n this.states = [];\n\n if (this.graphicItem) {\n this.graphicItem.clearStates(stateAnimationEnable);\n }\n\n if (this.runtimeStatesEncoder) {\n this.runtimeStatesEncoder = {};\n }\n }\n\n private _updateRuntimeStates(state: string, attrs: any) {\n if (!this.runtimeStatesEncoder) {\n this.runtimeStatesEncoder = {};\n }\n\n this.runtimeStatesEncoder[state] = attrs;\n }\n\n hasState(state: string) {\n return this.states && this.states.includes(state);\n }\n\n addState(state: string | string[], attrs?: BaseSignleEncodeSpec) {\n const states = array(state);\n const nextStates = states.reduce((nextStates: string[], state: string) => {\n if (!nextStates.includes(state)) {\n nextStates.push(state);\n }\n return nextStates;\n }, this.states.slice());\n\n const isRuntimeStateUpdate = attrs && isString(state) && !isObjEqual(attrs, this.runtimeStatesEncoder?.[state]);\n if (isRuntimeStateUpdate) {\n this._updateRuntimeStates(state, attrs);\n }\n\n if (nextStates.length === this.states.length) {\n if (isRuntimeStateUpdate && this.graphicItem) {\n this.graphicItem.clearStates();\n this.useStates(nextStates);\n }\n\n return;\n }\n\n this.useStates(nextStates);\n }\n\n removeState(state: string | string[]) {\n const states = array(state);\n const nextStates = this.states.filter(state => !states.includes(state));\n if (nextStates.length === this.states.length) {\n return;\n }\n\n if (this.runtimeStatesEncoder) {\n states.forEach(state => {\n this.runtimeStatesEncoder[state] = null;\n });\n }\n this.useStates(nextStates);\n }\n\n protected getStateAttrs = (stateName: string, nextStates: string[]) => {\n const isRuntimeState = !isNil(this.runtimeStatesEncoder?.[stateName]);\n const encoder = isRuntimeState\n ? this.runtimeStatesEncoder[stateName]\n : (this.mark.getSpec() as MarkSpec).encode?.[stateName];\n\n if (!encoder) {\n return {};\n }\n\n if (isFunction(encoder)) {\n return (encoder as StateProxyEncodeSpec)(this.getDatum(), this, stateName, nextStates);\n }\n\n if (!isRuntimeState && this.graphicItem.states?.[stateName]) {\n return this.graphicItem.states[stateName];\n }\n\n const stateItems = this.items.map(item => Object.assign({}, item, { nextAttrs: {} }));\n // collection图元,暂时不支持在state更新中,支持更新points更新\n invokeEncoderToItems(this, stateItems, encoder, (this.mark as any).parameters());\n\n const graphicAttributes = this.transformElementItems(stateItems, this.mark.markType);\n\n if (!this.graphicItem.states) {\n this.graphicItem.states = { [stateName]: graphicAttributes };\n } else if (!this.graphicItem.states[stateName]) {\n this.graphicItem.states[stateName] = graphicAttributes;\n }\n\n return graphicAttributes;\n };\n\n useStates(states: string[], hasAnimation?: boolean) {\n if (!this.graphicItem) {\n return;\n }\n this.mark.emit(HOOK_EVENT.BEFORE_ELEMENT_STATE, { states }, this);\n\n this.states = states.slice();\n const stateSort = this.mark.getSpec()?.stateSort;\n\n if (stateSort) {\n this.states.sort(stateSort);\n }\n\n const stateAnimationEnable = isBoolean(hasAnimation)\n ? hasAnimation\n : this.mark.animate.getAnimationConfigs('state').length !== 0;\n\n this.graphicItem.stateProxy = this.getStateAttrs;\n this.graphicItem.useStates(this.states, stateAnimationEnable);\n\n this.mark.emit(HOOK_EVENT.AFTER_ELEMENT_STATE, { states }, this);\n }\n\n protected diffAttributes(graphicAttributes: { [channel: string]: any }) {\n const diffResult = {};\n const finalGraphicAttributes = this.getFinalGraphicAttributes();\n for (const key in graphicAttributes) {\n if (!isEqual(key, finalGraphicAttributes, graphicAttributes) || !has(finalGraphicAttributes, key)) {\n diffResult[key] = graphicAttributes[key];\n }\n }\n return diffResult;\n }\n\n /**\n * tranform the attribute to graphic attribute\n * @param items\n * @param markType In ordinary, markType is equal to mark.markType, but in glyph, markType is different from mark.markType\n * @param markName\n * @param computePoints\n * @returns\n */\n transformElementItems(items: MarkElementItem[], markType: MarkType, computePoints?: boolean): Record<string, any> {\n const item = items[0];\n\n if (!item.nextAttrs || Object.keys(item.nextAttrs).length === 0) {\n return {};\n }\n\n let nextAttrs = item?.nextAttrs;\n\n if (\n items &&\n items.length &&\n isNil(item.nextAttrs?.points) &&\n (computePoints === true || isValidPointsChannel(Object.keys(item.nextAttrs), this.mark.markType)) &&\n isPointsMarkType(markType)\n ) {\n const lastPoints = this.getGraphicAttribute('points', false);\n const lastSegments = this.getGraphicAttribute('segments', false);\n const enableSegments = item.nextAttrs.enableSegments ?? this.getGraphicAttribute('enableSegments', false);\n const itemNextAttrs = items.map(item => item.nextAttrs);\n const isProgressive = this.mark.isProgressive();\n nextAttrs = Object.assign({}, nextAttrs);\n delete nextAttrs.x;\n delete nextAttrs.y;\n\n if (markType === GrammarMarkType.line || markType === GrammarMarkType.area) {\n const linePoints = getLinePoints(items, true, lastPoints, markType === GrammarMarkType.area);\n\n // chartspace新增了配置,用于开启线段解析;渐进渲染状态不支持线段样式\n if (enableSegments && !isProgressive) {\n const points = !linePoints || linePoints.length === 0 ? getLinePointsFromSegments(lastSegments) : linePoints;\n const segments = getLineSegmentConfigs(itemNextAttrs, points, this);\n\n if (segments) {\n nextAttrs.segments = segments;\n nextAttrs.points = null;\n } else {\n nextAttrs.segments = null;\n nextAttrs.points = points;\n }\n } else if (isProgressive) {\n nextAttrs.segments = ((this.graphicItem as ILine)?.attribute?.segments ?? []).concat([\n { points: linePoints }\n ]);\n } else {\n nextAttrs.points = linePoints;\n nextAttrs.segments = null;\n }\n } else if (markType === GrammarMarkType.largeRects) {\n nextAttrs.points = getLargeRectsPoints(items, true, lastPoints);\n } else if (markType === GrammarMarkType.largeSymbols) {\n nextAttrs.points = getLargeSymbolsPoints(items, true, lastPoints);\n }\n }\n\n return nextAttrs;\n }\n\n protected applyGraphicAttributes(graphicAttributes: any) {\n if (isEmpty(graphicAttributes)) {\n return;\n }\n\n if (this.mark.needAnimate()) {\n // If mark need animate, diff attributes.\n const nextGraphicAttributes = this.diffAttributes(graphicAttributes);\n const prevGraphicAttributes = this.getPrevGraphicAttributes();\n\n const finalGraphicAttributes = this.getFinalGraphicAttributes();\n Object.keys(nextGraphicAttributes).forEach(channel => {\n prevGraphicAttributes[channel] = this.getGraphicAttribute(channel);\n finalGraphicAttributes[channel] = nextGraphicAttributes[channel];\n });\n this.setNextGraphicAttributes(nextGraphicAttributes);\n this.setPrevGraphicAttributes(prevGraphicAttributes);\n this.setFinalGraphicAttributes(finalGraphicAttributes);\n\n const currentAnimators = this.mark.animate.getElementAnimators(this);\n const animateGraphicAttributes = currentAnimators.reduce((attributes, animator) => {\n return Object.assign(attributes, animator.getEndAttributes());\n }, {});\n const currentGraphicAttributes = Object.assign({}, animateGraphicAttributes, finalGraphicAttributes);\n\n // Apply next attributes to current graphic item immediately.\n // Scene graph tree should be handled like no animation exists in dataflow procedure.\n this.graphicItem.setAttributes(currentGraphicAttributes);\n } else {\n // Otherwise, directly apply all attributes.\n this.graphicItem.setAttributes(graphicAttributes);\n }\n }\n\n getGraphicAttribute(channel: string, prev: boolean = false) {\n if (!this.graphicItem) {\n return undefined;\n }\n\n if (prev) {\n let value: any;\n const prevGraphicAttributes = this.getPrevGraphicAttributes();\n if (!isNil((value = get(prevGraphicAttributes, channel)))) {\n return value;\n }\n }\n\n // get attribute before transformed\n const trans = this.mark.getAttributeTransforms();\n let getKey: string[] = [channel];\n if (trans && trans.length) {\n const channelTransform = trans.find(entry => {\n return entry.storedAttrs && entry.channels.includes(channel);\n });\n\n if (channelTransform) {\n getKey = [channelTransform.storedAttrs, channel];\n }\n }\n return get(this.graphicItem?.attribute, getKey);\n }\n\n setGraphicAttribute(channel: string, value: any, final: boolean = true) {\n if (!this.graphicItem) {\n return;\n }\n const finalGraphicAttributes = this.getFinalGraphicAttributes();\n const prevGraphicAttributes = this.getPrevGraphicAttributes();\n\n if (final && finalGraphicAttributes) {\n finalGraphicAttributes[channel] = value;\n }\n if (prevGraphicAttributes && !has(prevGraphicAttributes, channel)) {\n prevGraphicAttributes[channel] = this.graphicItem.attribute[channel];\n }\n\n this.graphicItem.setAttribute(channel, value);\n }\n\n setGraphicAttributes(attributes: { [channel: string]: any }, final: boolean = true) {\n if (!this.graphicItem) {\n return;\n }\n const finalGraphicAttributes = this.getFinalGraphicAttributes();\n const prevGraphicAttributes = this.getPrevGraphicAttributes();\n\n Object.keys(attributes).forEach(key => {\n if (finalGraphicAttributes && final) {\n finalGraphicAttributes[key] = attributes[key];\n }\n if (prevGraphicAttributes && !has(prevGraphicAttributes, key)) {\n prevGraphicAttributes[key] = this.graphicItem.attribute[key];\n }\n });\n\n this.graphicItem.setAttributes(attributes);\n }\n\n /**\n * 获取 vRender 已变更的视觉通道属性,只应当由 VGrammar 中 调用\n * @returns 视觉通道键值对\n */\n getFinalGraphicAttributes() {\n return (this.graphicItem as any).finalAttrs;\n }\n\n protected setFinalGraphicAttributes(attributes: { [channel: string]: any }) {\n (this.graphicItem as any).finalAttrs = attributes;\n }\n\n /**\n * 获取 vRender 变更前的视觉通道属性,只应当由 VGrammar 调用\n * @returns 视觉通道键值对\n */\n getPrevGraphicAttributes() {\n return (this.graphicItem as any).prevAttrs;\n }\n\n protected setPrevGraphicAttributes(attributes: { [channel: string]: any }) {\n (this.graphicItem as any).prevAttrs = attributes;\n }\n\n /**\n * 获取 vRender 在单次 dataflow 中变更的视觉通道属性,只应当由 VGrammar 调用\n * @returns 视觉通道键值对\n */\n getNextGraphicAttributes() {\n return (this.graphicItem as any).nextAttrs;\n }\n\n protected setNextGraphicAttributes(attributes: { [channel: string]: any }) {\n (this.graphicItem as any).nextAttrs = attributes;\n }\n\n clearChangedGraphicAttributes() {\n if (this.graphicItem) {\n this.setPrevGraphicAttributes({});\n this.setNextGraphicAttributes({});\n }\n }\n\n clearGraphicAttributes() {\n if (this.graphicItem) {\n this.setPrevGraphicAttributes({});\n this.setNextGraphicAttributes({});\n this.setFinalGraphicAttributes({});\n }\n }\n\n remove() {\n if (this.graphicItem) {\n removeGraphicItem(this.graphicItem);\n this.graphicItem = null;\n }\n }\n\n release() {\n // stop all animation when releasing including normal animation & morphing animation\n if (this.graphicItem) {\n this.graphicItem.animates?.forEach?.(animate => animate.stop());\n }\n\n this.mark = null;\n this.data = null;\n if (this.graphicItem) {\n removeGraphicItem(this.graphicItem);\n this.graphicItem[BridgeElementKey] = null;\n this.graphicItem = null;\n }\n this.items = null;\n }\n /**\n * hack support for transform & encode logic. DO NOT USE.\n */\n getItemAttribute(channel?: string) {\n if (!this.items?.length) {\n return;\n }\n\n if (this.mark.isCollectionMark()) {\n return isNil(channel)\n ? this.items.map(item => item.nextAttrs)\n : this.items.map(item => item.nextAttrs?.[channel]);\n }\n\n return isNil(channel) ? this.items[0].nextAttrs : this.items[0].nextAttrs?.[channel];\n }\n setItemAttributes(attributes: { [channel: string]: any } | any[]) {\n if (!this.items?.length) {\n return;\n }\n\n if (this.mark.isCollectionMark()) {\n if (isArray(attributes)) {\n this.items.forEach((item, index) => {\n Object.assign(item.nextAttrs, attributes[index]);\n });\n }\n } else {\n Object.assign(this.items[0].nextAttrs, attributes);\n }\n }\n /**\n * hack support for transform & encode logic. DO NOT USE.\n */\n getItem() {\n return this.mark.isCollectionMark() ? this.items ?? [] : this.items?.[0];\n }\n getDatum() {\n return this.mark.isCollectionMark() ? this.data ?? [] : this.data?.[0];\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/graph/element.ts"],"names":[],"mappings":"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","file":"element.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport {\n array,\n has,\n isBoolean,\n isNil,\n isFunction,\n isString,\n isArray,\n get,\n isEmpty,\n isEqual as isObjEqual\n} from '@visactor/vutils';\nimport { isEqual } from '@visactor/vgrammar-util';\nimport type { IBaseCoordinate } from '@visactor/vgrammar-coordinate';\nimport { BridgeElementKey } from './constants';\nimport { DiffState, HOOK_EVENT, GrammarMarkType, BuiltInEncodeNames } from './enums';\nimport { invokeEncoderToItems } from './mark/encode';\nimport { removeGraphicItem } from './util/graphic';\nimport { transformAttributes } from './attributes/transform';\nimport {\n getLargeRectsPoints,\n getLargeSymbolsPoints,\n getLinePoints,\n isValidPointsChannel,\n isPointsMarkType\n} from './attributes/helpers';\nimport { getLineSegmentConfigs, getLinePointsFromSegments } from './attributes/line';\nimport type {\n BaseEncodeSpec,\n BaseSignleEncodeSpec,\n IElement,\n IMark,\n IMarkConfig,\n MarkElementItem,\n MarkFunctionType,\n MarkKeySpec,\n MarkSpec,\n MarkType,\n StateProxyEncodeSpec\n} from '../types';\nimport type { IGraphic, ILine, IGraphicAttribute } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { CustomPath2D } from '@visactor/vrender-core';\nimport { invokeFunctionType, parseField } from '../parse/util';\n\nexport class Element implements IElement {\n mark: IMark;\n\n key: string;\n groupKey?: string;\n data: any[] = null;\n\n states: string[] = [];\n\n diffState: DiffState = DiffState.enter;\n // Element should be reserved as long as it need to animate\n isReserved: boolean = false;\n\n runtimeStatesEncoder: BaseEncodeSpec = null;\n\n protected graphicItem: IGraphic;\n\n // hack before vRender refactoring\n items: MarkElementItem[] = [];\n\n constructor(mark: IMark) {\n this.mark = mark;\n }\n\n initGraphicItem(attributes: any = {}) {\n if (this.graphicItem) {\n return;\n }\n // 统一读取mark中是否可交互的配置\n const attrs = Object.assign({}, attributes);\n this.graphicItem = this.mark.addGraphicItem(attrs, this.groupKey);\n\n if (!this.graphicItem) {\n return;\n }\n // 统一读取mark中是否可交互的配置\n this.graphicItem[BridgeElementKey] = this;\n\n if (this.mark.markType !== GrammarMarkType.component) {\n this.graphicItem.onBeforeAttributeUpdate = (attributes: any) => {\n // mark might be released\n if (!this.mark) {\n return attributes;\n }\n const graphicAttributes = transformAttributes(this.mark.getAttributeTransforms(), attributes, this);\n return graphicAttributes;\n };\n this.graphicItem.setAttributes(this.graphicItem.attribute);\n }\n\n // transform initial attributes\n\n this.clearGraphicAttributes();\n if (this.mark.needAnimate()) {\n this.setPrevGraphicAttributes({});\n this.setNextGraphicAttributes(attributes);\n this.setFinalGraphicAttributes(attributes);\n }\n }\n\n updateGraphicItem(config: IMarkConfig) {\n if (!this.graphicItem) {\n return;\n }\n\n if (!isNil(config.clip)) {\n this.graphicItem.setAttribute('clip', config.clip);\n }\n if (!isNil(config.interactive)) {\n this.graphicItem.setAttribute('pickable', config.interactive);\n }\n if (!isNil(config.zIndex)) {\n this.graphicItem.setAttribute('zIndex', config.zIndex);\n }\n if (this.diffState === DiffState.exit) {\n (this.graphicItem as any).releaseStatus = 'willRelease';\n } else {\n (this.graphicItem as any).releaseStatus = undefined;\n }\n\n const stateAnimation = this.mark.animate.getAnimationConfigs('state');\n if (stateAnimation.length !== 0) {\n (this.graphicItem as any).stateAnimateConfig = stateAnimation[0].originConfig;\n }\n }\n\n getGraphicItem() {\n return this.graphicItem;\n }\n\n getBounds() {\n // FIXME: 没有更新 bounds 时拿到的 bound 可能为 null\n return this.graphicItem?.AABBBounds;\n }\n\n getStates() {\n return this.states.slice();\n }\n\n updateData(groupKey: string | null, data: any[], key: MarkKeySpec) {\n this.mark.emit(HOOK_EVENT.BEFORE_ELEMENT_UPDATE_DATA, { groupKey, data, key }, this);\n this.data = data;\n const keyGetter = parseField(key);\n this.items = data.map(datum => {\n const key = keyGetter(datum);\n const item = {\n datum,\n key,\n view: this.mark.view,\n nextAttrs: {}\n };\n\n return item;\n });\n\n this.groupKey = groupKey;\n this.key = this.mark.isCollectionMark() ? groupKey : this.items?.[0].key;\n\n this.mark.emit(HOOK_EVENT.AFTER_ELEMENT_UPDATE_DATA, { groupKey, data, key }, this);\n return this.items;\n }\n\n state(markState: MarkFunctionType<string | string[]>, parameters?: any) {\n const isCollectionMark = this.mark.isCollectionMark();\n\n const prevStateValues = this.states;\n const newStateValues = array(invokeFunctionType(markState, parameters, this.getDatum(), this));\n const stateSort = this.mark.getSpec()?.stateSort;\n\n if (stateSort) {\n stateSort.sort(stateSort);\n }\n\n const isStateChanged =\n newStateValues.length !== prevStateValues.length ||\n newStateValues.some((newState: string, index: number) => newState !== prevStateValues[index]);\n this.states = newStateValues;\n\n // early logic didn't handle collection mark, only update signal mark state for now\n if (!isCollectionMark && isStateChanged && this.diffState === DiffState.unChange) {\n this.diffState = DiffState.update;\n }\n }\n\n encodeGraphic(attrs?: any) {\n this.coordinateTransformEncode(this.items);\n\n if (!isNil(attrs?.enableSegments) && this.items?.[0]?.nextAttrs) {\n this.items[0].nextAttrs.enableSegments = attrs.enableSegments;\n }\n\n const graphicAttributes = this.transformElementItems(this.items, this.mark.markType);\n\n if (attrs) {\n Object.assign(graphicAttributes, attrs);\n }\n\n if (!this.graphicItem) {\n this.initGraphicItem(graphicAttributes);\n } else {\n this.graphicItem.clearStates();\n // 更新数据流后,states计算不缓存\n this.graphicItem.states = {};\n this.graphicItem.stateProxy = null;\n\n this.applyGraphicAttributes(graphicAttributes);\n }\n\n if ((this.diffState === DiffState.enter || this.diffState === DiffState.update) && this.states.length) {\n this.useStates(this.states);\n }\n\n if (this.mark.markType === GrammarMarkType.shape) {\n // FIXME: shape需要拿到原始数据进行编码,暂时把数据绑定到graphicItem上,看后续graphicItem是否需要支持数据绑定\n (this.graphicItem as any).datum = this.items[0].datum;\n }\n\n // clear item attributes\n this.items.forEach(item => {\n item.nextAttrs = {};\n });\n this._setCutomizedShape();\n }\n\n private _setCutomizedShape() {\n if (!this.graphicItem) {\n return;\n }\n const setCustomizedShape = this.mark.getSpec()?.setCustomizedShape;\n\n if (!setCustomizedShape) {\n return;\n }\n\n this.graphicItem.pathProxy = (attrs: Partial<IGraphicAttribute>) => {\n return setCustomizedShape(this.data, attrs, new CustomPath2D());\n };\n }\n\n encodeItems(items: MarkElementItem[], encoders: BaseEncodeSpec, isReentered: boolean = false, parameters?: any) {\n const isCollectionMark = this.mark.isCollectionMark();\n // marshall encoder functions\n const updateEncoder = encoders[BuiltInEncodeNames.update];\n const enterEncoder = encoders[BuiltInEncodeNames.enter];\n const exitEncoder = encoders[BuiltInEncodeNames.exit];\n const onlyFullEncodeFirst = this.mark.isLargeMode();\n\n if (this.diffState === DiffState.enter) {\n if (enterEncoder) {\n invokeEncoderToItems(this, items, enterEncoder, parameters, onlyFullEncodeFirst);\n }\n if (updateEncoder) {\n invokeEncoderToItems(this, items, updateEncoder, parameters, onlyFullEncodeFirst);\n }\n } else if (this.diffState === DiffState.update) {\n // if mark is reentered or mark is collection type, evaluate enter encode\n if ((isCollectionMark && enterEncoder) || isReentered) {\n invokeEncoderToItems(this, items, enterEncoder, parameters, onlyFullEncodeFirst);\n }\n if (updateEncoder) {\n invokeEncoderToItems(this, items, updateEncoder, parameters, onlyFullEncodeFirst);\n }\n } else if (this.diffState === DiffState.exit && exitEncoder) {\n // if mark is reentered, evaluate enter encode\n if (isReentered) {\n invokeEncoderToItems(this, items, enterEncoder, parameters, onlyFullEncodeFirst);\n }\n invokeEncoderToItems(this, items, exitEncoder, parameters, onlyFullEncodeFirst);\n }\n }\n\n protected coordinateTransformEncode(items: MarkElementItem[]) {\n if (!this.mark.coord || this.mark.markType === 'arc' || this.mark.disableCoordinateTransform === true) {\n return;\n }\n const coord = this.mark.coord.output() as IBaseCoordinate;\n\n items.forEach(item => {\n const nextAttrs = item.nextAttrs;\n const convertedPoint: IPointLike = coord.convert(nextAttrs);\n Object.assign(nextAttrs, convertedPoint);\n });\n }\n\n clearStates(hasAnimation?: boolean) {\n const stateAnimationEnable = isBoolean(hasAnimation)\n ? hasAnimation\n : this.mark.animate.getAnimationConfigs('state').length !== 0;\n\n this.states = [];\n\n if (this.graphicItem) {\n this.graphicItem.clearStates(stateAnimationEnable);\n }\n\n if (this.runtimeStatesEncoder) {\n this.runtimeStatesEncoder = {};\n }\n }\n\n private _updateRuntimeStates(state: string, attrs: any) {\n if (!this.runtimeStatesEncoder) {\n this.runtimeStatesEncoder = {};\n }\n\n this.runtimeStatesEncoder[state] = attrs;\n }\n\n hasState(state: string) {\n return this.states && this.states.includes(state);\n }\n\n addState(state: string | string[], attrs?: BaseSignleEncodeSpec) {\n const states = array(state);\n const nextStates = states.reduce((nextStates: string[], state: string) => {\n if (!nextStates.includes(state)) {\n nextStates.push(state);\n }\n return nextStates;\n }, this.states.slice());\n\n const isRuntimeStateUpdate = attrs && isString(state) && !isObjEqual(attrs, this.runtimeStatesEncoder?.[state]);\n if (isRuntimeStateUpdate) {\n this._updateRuntimeStates(state, attrs);\n }\n\n if (nextStates.length === this.states.length) {\n if (isRuntimeStateUpdate && this.graphicItem) {\n this.graphicItem.clearStates();\n this.useStates(nextStates);\n }\n\n return;\n }\n\n this.useStates(nextStates);\n }\n\n removeState(state: string | string[]) {\n const states = array(state);\n const nextStates = this.states.filter(state => !states.includes(state));\n if (nextStates.length === this.states.length) {\n return;\n }\n\n if (this.runtimeStatesEncoder) {\n states.forEach(state => {\n this.runtimeStatesEncoder[state] = null;\n });\n }\n this.useStates(nextStates);\n }\n\n protected getStateAttrs = (stateName: string, nextStates: string[]) => {\n const isRuntimeState = !isNil(this.runtimeStatesEncoder?.[stateName]);\n const encoder = isRuntimeState\n ? this.runtimeStatesEncoder[stateName]\n : (this.mark.getSpec() as MarkSpec).encode?.[stateName];\n\n if (!encoder) {\n return {};\n }\n\n if (isFunction(encoder)) {\n return (encoder as StateProxyEncodeSpec)(this.getDatum(), this, stateName, nextStates);\n }\n\n if (!isRuntimeState && this.graphicItem.states?.[stateName]) {\n return this.graphicItem.states[stateName];\n }\n\n const stateItems = this.items.map(item => Object.assign({}, item, { nextAttrs: {} }));\n // collection图元,暂时不支持在state更新中,支持更新points更新\n invokeEncoderToItems(this, stateItems, encoder, (this.mark as any).parameters());\n\n const graphicAttributes = this.transformElementItems(stateItems, this.mark.markType);\n\n if (!this.graphicItem.states) {\n this.graphicItem.states = { [stateName]: graphicAttributes };\n } else if (!this.graphicItem.states[stateName]) {\n this.graphicItem.states[stateName] = graphicAttributes;\n }\n\n return graphicAttributes;\n };\n\n useStates(states: string[], hasAnimation?: boolean) {\n if (!this.graphicItem) {\n return;\n }\n this.mark.emit(HOOK_EVENT.BEFORE_ELEMENT_STATE, { states }, this);\n\n this.states = states.slice();\n const stateSort = this.mark.getSpec()?.stateSort;\n\n if (stateSort) {\n this.states.sort(stateSort);\n }\n\n const stateAnimationEnable = isBoolean(hasAnimation)\n ? hasAnimation\n : this.mark.animate.getAnimationConfigs('state').length !== 0;\n\n this.graphicItem.stateProxy = this.getStateAttrs;\n this.graphicItem.useStates(this.states, stateAnimationEnable);\n\n this.mark.emit(HOOK_EVENT.AFTER_ELEMENT_STATE, { states }, this);\n }\n\n protected diffAttributes(graphicAttributes: { [channel: string]: any }) {\n const diffResult = {};\n const finalGraphicAttributes = this.getFinalGraphicAttributes();\n for (const key in graphicAttributes) {\n if (!isEqual(key, finalGraphicAttributes, graphicAttributes) || !has(finalGraphicAttributes, key)) {\n diffResult[key] = graphicAttributes[key];\n }\n }\n return diffResult;\n }\n\n /**\n * tranform the attribute to graphic attribute\n * @param items\n * @param markType In ordinary, markType is equal to mark.markType, but in glyph, markType is different from mark.markType\n * @param markName\n * @param computePoints\n * @returns\n */\n transformElementItems(items: MarkElementItem[], markType: MarkType, computePoints?: boolean): Record<string, any> {\n const item = items[0];\n\n if (!item.nextAttrs || Object.keys(item.nextAttrs).length === 0) {\n return {};\n }\n\n let nextAttrs = item?.nextAttrs;\n\n if (\n items &&\n items.length &&\n isNil(item.nextAttrs?.points) &&\n (computePoints === true || isValidPointsChannel(Object.keys(item.nextAttrs), this.mark.markType)) &&\n isPointsMarkType(markType)\n ) {\n const lastPoints = this.getGraphicAttribute('points', false);\n const lastSegments = this.getGraphicAttribute('segments', false);\n const enableSegments = item.nextAttrs.enableSegments ?? this.getGraphicAttribute('enableSegments', false);\n const itemNextAttrs = items.map(item => item.nextAttrs);\n const isProgressive = this.mark.isProgressive();\n nextAttrs = Object.assign({}, nextAttrs);\n delete nextAttrs.x;\n delete nextAttrs.y;\n\n if (markType === GrammarMarkType.line || markType === GrammarMarkType.area) {\n const linePoints = getLinePoints(items, true, lastPoints, markType === GrammarMarkType.area);\n\n // chartspace新增了配置,用于开启线段解析;渐进渲染状态不支持线段样式\n if (enableSegments && !isProgressive) {\n const points = !linePoints || linePoints.length === 0 ? getLinePointsFromSegments(lastSegments) : linePoints;\n const segments = getLineSegmentConfigs(itemNextAttrs, points, this);\n\n if (segments) {\n nextAttrs.segments = segments;\n nextAttrs.points = null;\n } else {\n nextAttrs.segments = null;\n nextAttrs.points = points;\n }\n } else if (isProgressive) {\n nextAttrs.segments = ((this.graphicItem as ILine)?.attribute?.segments ?? []).concat([\n { points: linePoints }\n ]);\n } else {\n nextAttrs.points = linePoints;\n nextAttrs.segments = null;\n }\n } else if (markType === GrammarMarkType.largeRects) {\n nextAttrs.points = getLargeRectsPoints(items, true, lastPoints);\n } else if (markType === GrammarMarkType.largeSymbols) {\n nextAttrs.points = getLargeSymbolsPoints(items, true, lastPoints);\n }\n }\n\n return nextAttrs;\n }\n\n protected applyGraphicAttributes(graphicAttributes: any) {\n if (isEmpty(graphicAttributes)) {\n return;\n }\n\n if (this.mark.needAnimate()) {\n // If mark need animate, diff attributes.\n const nextGraphicAttributes = this.diffAttributes(graphicAttributes);\n const prevGraphicAttributes = this.getPrevGraphicAttributes();\n\n const finalGraphicAttributes = this.getFinalGraphicAttributes();\n Object.keys(nextGraphicAttributes).forEach(channel => {\n prevGraphicAttributes[channel] = this.getGraphicAttribute(channel);\n finalGraphicAttributes[channel] = nextGraphicAttributes[channel];\n });\n this.setNextGraphicAttributes(nextGraphicAttributes);\n this.setPrevGraphicAttributes(prevGraphicAttributes);\n this.setFinalGraphicAttributes(finalGraphicAttributes);\n\n const currentAnimators = this.mark.animate.getElementAnimators(this);\n const animateGraphicAttributes = currentAnimators.reduce((attributes, animator) => {\n return Object.assign(attributes, animator.getEndAttributes());\n }, {});\n const currentGraphicAttributes = Object.assign({}, animateGraphicAttributes, finalGraphicAttributes);\n\n // Apply next attributes to current graphic item immediately.\n // Scene graph tree should be handled like no animation exists in dataflow procedure.\n this.graphicItem.setAttributes(currentGraphicAttributes);\n } else {\n // Otherwise, directly apply all attributes.\n this.graphicItem.setAttributes(graphicAttributes);\n }\n }\n\n getGraphicAttribute(channel: string, prev: boolean = false) {\n if (!this.graphicItem) {\n return undefined;\n }\n\n if (prev) {\n let value: any;\n const prevGraphicAttributes = this.getPrevGraphicAttributes();\n if (!isNil((value = get(prevGraphicAttributes, channel)))) {\n return value;\n }\n }\n\n // get attribute before transformed\n const trans = this.mark.getAttributeTransforms();\n let getKey: string[] = [channel];\n if (trans && trans.length) {\n const channelTransform = trans.find(entry => {\n return entry.storedAttrs && entry.channels.includes(channel);\n });\n\n if (channelTransform) {\n getKey = [channelTransform.storedAttrs, channel];\n }\n }\n return get(this.graphicItem?.attribute, getKey);\n }\n\n setGraphicAttribute(channel: string, value: any, final: boolean = true) {\n if (!this.graphicItem) {\n return;\n }\n const finalGraphicAttributes = this.getFinalGraphicAttributes();\n const prevGraphicAttributes = this.getPrevGraphicAttributes();\n\n if (final && finalGraphicAttributes) {\n finalGraphicAttributes[channel] = value;\n }\n if (prevGraphicAttributes && !has(prevGraphicAttributes, channel)) {\n prevGraphicAttributes[channel] = this.graphicItem.attribute[channel];\n }\n\n this.graphicItem.setAttribute(channel, value);\n }\n\n setGraphicAttributes(attributes: { [channel: string]: any }, final: boolean = true) {\n if (!this.graphicItem) {\n return;\n }\n const finalGraphicAttributes = this.getFinalGraphicAttributes();\n const prevGraphicAttributes = this.getPrevGraphicAttributes();\n\n Object.keys(attributes).forEach(key => {\n if (finalGraphicAttributes && final) {\n finalGraphicAttributes[key] = attributes[key];\n }\n if (prevGraphicAttributes && !has(prevGraphicAttributes, key)) {\n prevGraphicAttributes[key] = this.graphicItem.attribute[key];\n }\n });\n\n this.graphicItem.setAttributes(attributes);\n }\n\n /**\n * 获取 vRender 已变更的视觉通道属性,只应当由 VGrammar 中 调用\n * @returns 视觉通道键值对\n */\n getFinalGraphicAttributes() {\n return (this.graphicItem as any).finalAttrs;\n }\n\n protected setFinalGraphicAttributes(attributes: { [channel: string]: any }) {\n (this.graphicItem as any).finalAttrs = attributes;\n }\n\n /**\n * 获取 vRender 变更前的视觉通道属性,只应当由 VGrammar 调用\n * @returns 视觉通道键值对\n */\n getPrevGraphicAttributes() {\n return (this.graphicItem as any).prevAttrs;\n }\n\n protected setPrevGraphicAttributes(attributes: { [channel: string]: any }) {\n (this.graphicItem as any).prevAttrs = attributes;\n }\n\n /**\n * 获取 vRender 在单次 dataflow 中变更的视觉通道属性,只应当由 VGrammar 调用\n * @returns 视觉通道键值对\n */\n getNextGraphicAttributes() {\n return (this.graphicItem as any).nextAttrs;\n }\n\n protected setNextGraphicAttributes(attributes: { [channel: string]: any }) {\n (this.graphicItem as any).nextAttrs = attributes;\n }\n\n clearChangedGraphicAttributes() {\n if (this.graphicItem) {\n this.setPrevGraphicAttributes({});\n this.setNextGraphicAttributes({});\n }\n }\n\n clearGraphicAttributes() {\n if (this.graphicItem) {\n this.setPrevGraphicAttributes({});\n this.setNextGraphicAttributes({});\n this.setFinalGraphicAttributes({});\n }\n }\n\n remove() {\n if (this.graphicItem) {\n removeGraphicItem(this.graphicItem);\n this.graphicItem = null;\n }\n }\n\n release() {\n // stop all animation when releasing including normal animation & morphing animation\n if (this.graphicItem) {\n this.graphicItem.animates?.forEach?.(animate => animate.stop());\n }\n\n this.mark = null;\n this.data = null;\n if (this.graphicItem) {\n removeGraphicItem(this.graphicItem);\n this.graphicItem[BridgeElementKey] = null;\n this.graphicItem = null;\n }\n this.items = null;\n }\n /**\n * hack support for transform & encode logic. DO NOT USE.\n */\n getItemAttribute(channel?: string) {\n if (!this.items?.length) {\n return;\n }\n\n if (this.mark.isCollectionMark()) {\n return isNil(channel)\n ? this.items.map(item => item.nextAttrs)\n : this.items.map(item => item.nextAttrs?.[channel]);\n }\n\n return isNil(channel) ? this.items[0].nextAttrs : this.items[0].nextAttrs?.[channel];\n }\n setItemAttributes(attributes: { [channel: string]: any } | any[]) {\n if (!this.items?.length) {\n return;\n }\n\n if (this.mark.isCollectionMark()) {\n if (isArray(attributes)) {\n this.items.forEach((item, index) => {\n Object.assign(item.nextAttrs, attributes[index]);\n });\n }\n } else {\n Object.assign(this.items[0].nextAttrs, attributes);\n }\n }\n /**\n * hack support for transform & encode logic. DO NOT USE.\n */\n getItem() {\n return this.mark.isCollectionMark() ? this.items ?? [] : this.items?.[0];\n }\n getDatum() {\n return this.mark.isCollectionMark() ? this.data ?? [] : this.data?.[0];\n }\n}\n"]}
|
package/cjs/index.d.ts
CHANGED
package/cjs/index.js
CHANGED
|
@@ -18,7 +18,7 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
|
|
|
18
18
|
Object.defineProperty(exports, "__esModule", {
|
|
19
19
|
value: !0
|
|
20
20
|
}), exports.vglobal = exports.ThemeManager = exports.SIGNAL_VIEW_BOX = exports.SIGNAL_WIDTH = exports.SIGNAL_VIEW_WIDTH = exports.SIGNAL_VIEW_HEIGHT = exports.SIGNAL_PADDING = exports.SIGNAL_HEIGHT = exports.SIGNAL_AUTOFIT = exports.Factory = exports.GrammarBase = exports.invokeFunctionType = exports.parseFunctionType = exports.View = exports.version = void 0,
|
|
21
|
-
exports.version = "0.
|
|
21
|
+
exports.version = "0.9.0-alpha.0", __exportStar(require("./graph"), exports), __exportStar(require("./interactions"), exports);
|
|
22
22
|
|
|
23
23
|
var view_1 = require("./view");
|
|
24
24
|
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACa,QAAA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACa,QAAA,OAAO,GAAG,eAAe,CAAC;AAEvC,0CAAwB;AAExB,iDAA+B;AAE/B,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,qCAAqE;AAA5D,yGAAA,iBAAiB,OAAA;AAAE,0GAAA,kBAAkB,OAAA;AAC9C,oDAAkD;AAAzC,2GAAA,WAAW,OAAA;AACpB,8CAA4B;AAC5B,0CAAwB;AACxB,0CAAyC;AAAhC,kGAAA,OAAO,OAAA;AAChB,8CAQ0B;AAPxB,2GAAA,cAAc,OAAA;AACd,0GAAA,aAAa,OAAA;AACb,2GAAA,cAAc,OAAA;AACd,+GAAA,kBAAkB,OAAA;AAClB,8GAAA,iBAAiB,OAAA;AACjB,yGAAA,YAAY,OAAA;AACZ,4GAAA,eAAe,OAAA;AAGjB,uDAAqD;AAA5C,6GAAA,YAAY,OAAA;AAErB,0CAAwB;AACxB,8CAA4B;AAC5B,+CAA6B;AAC7B,8DAA4C;AAE5C,uDAAiD;AAAxC,uGAAA,OAAO,OAAA;AAChB,wCAAsB;AACtB,iDAA+B;AAC/B,wDAAsC;AACtC,4DAA0C","file":"index.js","sourcesContent":["// -- Exports -----\nexport const version = \"0.9.0-alpha.0\";\n\nexport * from './graph';\n\nexport * from './interactions';\n\nexport { View } from './view';\nexport { parseFunctionType, invokeFunctionType } from './parse/util';\nexport { GrammarBase } from './view/grammar-base';\nexport * from './util/text';\nexport * from './types';\nexport { Factory } from './core/factory';\nexport {\n SIGNAL_AUTOFIT,\n SIGNAL_HEIGHT,\n SIGNAL_PADDING,\n SIGNAL_VIEW_HEIGHT,\n SIGNAL_VIEW_WIDTH,\n SIGNAL_WIDTH,\n SIGNAL_VIEW_BOX\n} from './view/constants';\n\nexport { ThemeManager } from './theme/theme-manager';\n\nexport * from './glyph';\nexport * from './component';\nexport * from './transforms';\nexport * from './graph/animation/animation';\n\nexport { vglobal } from '@visactor/vrender-core';\nexport * from './env';\nexport * from './interactions';\nexport * from './semantic-marks/cell';\nexport * from './semantic-marks/interval';\n"]}
|
package/cjs/parse/scale.js
CHANGED
|
@@ -225,6 +225,8 @@ function configureContinuousScale(spec, scale, parameters) {
|
|
|
225
225
|
const config = (0, util_1.invokeFunctionType)(spec.config, parameters, scale);
|
|
226
226
|
(null == config ? void 0 : config.interpolate) && scale.interpolate(config.interpolate, !0),
|
|
227
227
|
(0, vutils_1.isNil)(null == config ? void 0 : config.clamp) || ((0, vutils_1.isFunction)(config.clamp) ? scale.clamp(!0, config.clamp, !0) : scale.clamp(config.clamp, void 0, !0));
|
|
228
|
+
const tickCount = (0, util_1.invokeFunctionType)(spec.tickCount, parameters, scale);
|
|
229
|
+
tickCount && scale.tickData(tickCount);
|
|
228
230
|
}
|
|
229
231
|
|
|
230
232
|
function configureLinearScale(spec, scale, parameters) {
|
|
@@ -239,10 +241,9 @@ function configurePowScale(spec, scale, parameters) {
|
|
|
239
241
|
}
|
|
240
242
|
|
|
241
243
|
function configureLogScale(spec, scale, parameters) {
|
|
242
|
-
configureScaleNice(spec, scale, parameters), configureScaleDomain(spec, scale, parameters)
|
|
243
|
-
configureContinuousScale(spec, scale, parameters);
|
|
244
|
+
configureScaleNice(spec, scale, parameters), configureScaleDomain(spec, scale, parameters);
|
|
244
245
|
const base = (0, util_1.invokeFunctionType)(spec.base, parameters, scale);
|
|
245
|
-
base > 0 && scale.base(base);
|
|
246
|
+
base > 0 && scale.base(base), configureContinuousScale(spec, scale, parameters);
|
|
246
247
|
}
|
|
247
248
|
|
|
248
249
|
function configureSqrtScale(spec, scale, parameters) {
|
package/cjs/parse/scale.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/parse/scale.ts"],"names":[],"mappings":"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","file":"scale.js","sourcesContent":["import { isArray, isFunction, isNil, isNumber, isString, isValidNumber } from '@visactor/vutils';\nimport type {\n IBaseScale,\n IBandLikeScale,\n ILinearScale,\n IPowScale,\n ILogScale,\n ISymlogScale,\n IContinuousScale,\n IContinuesScaleTicks,\n IQuantizeScale,\n IQuantileScale\n} from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport {\n LinearScale,\n BandScale,\n OrdinalScale,\n PointScale,\n isContinuous,\n TimeScale,\n ThresholdScale,\n SqrtScale,\n SymlogScale,\n QuantizeScale,\n QuantileScale,\n PowScale,\n LogScale,\n isDiscretizing,\n IdentityScale\n} from '@visactor/vscale';\nimport type { IView } from '../types/view';\nimport type { IGrammarBase } from '../types/grammar';\nimport type {\n BandScaleSpec,\n BaseBandScaleSpec,\n LinearScaleSpec,\n OrdinalScaleSpec,\n PointScaleSpec,\n ScaleFunctionType,\n ScaleData,\n MultiScaleData,\n ScaleSpec,\n ScaleConfigureSpec,\n ScaleCoordinate,\n PowScaleSpec,\n ContinuousScaleSpec,\n ScaleTicksSpec,\n ScaleDomainSpec,\n LogScaleSpec,\n SqrtScaleSpec,\n SymlogScaleSpec,\n QuantizeScaleSpec,\n TimeScaleSpec,\n GrammarScaleType\n} from '../types/scale';\nimport { getGrammarOutput, invokeFunctionType, parseFunctionType } from './util';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\n\nexport function createScale(type: GrammarScaleType): IBaseScale {\n switch (type) {\n case 'band':\n return new BandScale();\n case 'linear':\n return new LinearScale();\n case 'log':\n return new LogScale();\n case 'ordinal':\n return new OrdinalScale();\n case 'point':\n return new PointScale();\n case 'pow':\n return new PowScale();\n case 'quantile':\n return new QuantileScale();\n case 'quantize':\n return new QuantizeScale();\n case 'sqrt':\n return new SqrtScale();\n case 'symlog':\n return new SymlogScale();\n case 'threshold':\n return new ThresholdScale();\n case 'time':\n return new TimeScale();\n case 'utc':\n return new TimeScale(true);\n case 'identity':\n return new IdentityScale();\n }\n return new LinearScale();\n}\n\nfunction isScaleDataType(spec: ScaleData | any): spec is ScaleData {\n return !isNil(spec?.data);\n}\n\nfunction parseScaleDataType(spec: ScaleData, view: IView): IGrammarBase[] {\n if (isString(spec.data)) {\n const data = view.getGrammarById(spec.data as string);\n return data ? [data] : [];\n } else if ((spec.data as IGrammarBase)?.grammarType === 'data') {\n return [spec.data as IGrammarBase];\n }\n return [];\n}\n\nfunction isMultiScaleDataType(spec: MultiScaleData | any): spec is MultiScaleData {\n return !isNil(spec?.datas);\n}\n\nfunction parseMultiScaleDataType(spec: MultiScaleData, view: IView): IGrammarBase[] {\n if (spec?.datas && spec.datas.length) {\n const res: IGrammarBase[] = [];\n spec.datas.forEach(data => {\n const gramarBase = parseScaleDataType(data, view);\n\n if (gramarBase.length) {\n res.push(gramarBase[0]);\n }\n });\n\n return res;\n }\n\n return [];\n}\n\nfunction isScaleCoordinateType(spec: ScaleCoordinate | any): spec is ScaleCoordinate {\n return !isNil(spec?.coordinate);\n}\n\nfunction parseScaleCoordinateType(spec: ScaleCoordinate, view: IView): IGrammarBase[] {\n if (isString(spec.coordinate)) {\n const coordinate = view.getCoordinateById(spec.coordinate as string);\n return coordinate ? [coordinate] : [];\n } else if ((spec.coordinate as IGrammarBase)?.grammarType === 'coordinate') {\n return [spec.coordinate as IGrammarBase];\n }\n return [];\n}\n\nfunction parseLinearScale(spec: Omit<LinearScaleSpec, 'type'>, view: IView) {\n let dependencies: IGrammarBase[] = [];\n dependencies = dependencies.concat(parseFunctionType(spec.nice, view));\n dependencies = dependencies.concat(parseFunctionType(spec.niceMin, view));\n dependencies = dependencies.concat(parseFunctionType(spec.niceMax, view));\n dependencies = dependencies.concat(parseFunctionType(spec.min, view));\n dependencies = dependencies.concat(parseFunctionType(spec.max, view));\n dependencies = dependencies.concat(parseFunctionType(spec.zero, view));\n dependencies = dependencies.concat(parseFunctionType(spec.roundRange, view));\n return dependencies;\n}\n\nfunction parsePowScale(spec: PowScaleSpec, view: IView) {\n const dependencies = parseLinearScale(spec, view);\n return dependencies.concat(parseFunctionType(spec.exponent, view));\n}\n\nfunction parseSymlogScale(spec: SymlogScaleSpec, view: IView) {\n const dependencies = parseLinearScale(spec, view);\n return dependencies.concat(parseFunctionType(spec.constant, view));\n}\n\nfunction parseLogScale(spec: Omit<LogScaleSpec, 'type'>, view: IView) {\n let dependencies: IGrammarBase[] = [];\n dependencies = dependencies.concat(parseFunctionType(spec.nice, view));\n dependencies = dependencies.concat(parseFunctionType(spec.min, view));\n dependencies = dependencies.concat(parseFunctionType(spec.max, view));\n dependencies = dependencies.concat(parseFunctionType(spec.zero, view));\n dependencies = dependencies.concat(parseFunctionType(spec.roundRange, view));\n return dependencies;\n}\n\nfunction parseQuantizeScale(spec: QuantizeScaleSpec, view: IView) {\n let dependencies: IGrammarBase[] = [];\n dependencies = dependencies.concat(parseFunctionType(spec.nice, view));\n dependencies = dependencies.concat(parseFunctionType(spec.niceMin, view));\n dependencies = dependencies.concat(parseFunctionType(spec.niceMax, view));\n dependencies = dependencies.concat(parseFunctionType(spec.min, view));\n dependencies = dependencies.concat(parseFunctionType(spec.max, view));\n dependencies = dependencies.concat(parseFunctionType(spec.zero, view));\n return dependencies;\n}\n\nfunction parseOrdinalScale(spec: OrdinalScaleSpec, view: IView) {\n return [] as IGrammarBase[];\n}\n\nfunction parseBaseBandScale(spec: BaseBandScaleSpec, view: IView) {\n let dependencies: IGrammarBase[] = [];\n dependencies = dependencies.concat(parseFunctionType(spec.round, view));\n dependencies = dependencies.concat(parseFunctionType(spec.padding, view));\n dependencies = dependencies.concat(parseFunctionType(spec.paddingInner, view));\n dependencies = dependencies.concat(parseFunctionType(spec.paddingOuter, view));\n dependencies = dependencies.concat(parseFunctionType(spec.align, view));\n return dependencies;\n}\n\nfunction parseBandScale(spec: BandScaleSpec, view: IView) {\n const dependencies = parseBaseBandScale(spec, view);\n return dependencies.concat(parseFunctionType(spec.paddingInner, view));\n}\n\nfunction parsePointScale(spec: PointScaleSpec, view: IView) {\n return parseBaseBandScale(spec, view);\n}\n\nexport function parseScaleDomainRange(domain: ScaleFunctionType<any> | ScaleData | MultiScaleData, view: IView) {\n if (isScaleDataType(domain)) {\n return parseScaleDataType(domain, view);\n }\n\n if (isMultiScaleDataType(domain)) {\n return parseMultiScaleDataType(domain, view);\n }\n\n if (isScaleCoordinateType(domain)) {\n return parseScaleCoordinateType(domain, view);\n }\n return parseFunctionType(domain, view);\n}\n\nexport function parseScaleConfig(type: GrammarScaleType, config: ScaleConfigureSpec, view: IView): IGrammarBase[] {\n if (isNil(config)) {\n return [];\n }\n const deps: IGrammarBase[] = parseFunctionType(config.unknown, view);\n switch (type) {\n case 'linear':\n case 'sqrt':\n return deps.concat(parseLinearScale(config as LinearScaleSpec, view));\n case 'ordinal':\n return deps.concat(parseOrdinalScale(config as OrdinalScaleSpec, view));\n case 'band':\n return deps.concat(parseBandScale(config as BandScaleSpec, view));\n case 'point':\n return deps.concat(parsePointScale(config as PointScaleSpec, view));\n case 'pow':\n return deps.concat(parsePowScale(config as PowScaleSpec, view));\n case 'log':\n case 'time':\n case 'utc':\n return deps.concat(parseLogScale(config as LogScaleSpec, view));\n case 'symlog':\n return deps.concat(parseSymlogScale(config as SymlogScaleSpec, view));\n case 'quantize':\n return deps.concat(parseQuantizeScale(config as QuantizeScaleSpec, view));\n }\n return deps;\n}\n\nfunction configureScaleNice(spec: Pick<ScaleTicksSpec, 'nice'>, scale: IContinuesScaleTicks, parameters: any) {\n const nice = invokeFunctionType(spec.nice, parameters, scale);\n if (nice === true) {\n scale.nice();\n } else if (isValidNumber(nice)) {\n scale.nice(nice as number);\n }\n}\nfunction configureScaleNiceMinMax(\n spec: Pick<ScaleTicksSpec, 'niceMin' | 'niceMax'>,\n scale: IContinuesScaleTicks,\n parameters: any\n) {\n const niceMax = invokeFunctionType(spec.niceMax, parameters, scale);\n if (niceMax === true) {\n scale.niceMax();\n } else if (isValidNumber(niceMax)) {\n scale.niceMax(niceMax as number);\n }\n const niceMin = invokeFunctionType(spec.niceMin, parameters, scale);\n if (niceMin === true) {\n scale.niceMin();\n } else if (isValidNumber(niceMin)) {\n scale.niceMin(niceMin as number);\n }\n}\n\nfunction configureScaleDomain(spec: ScaleDomainSpec, scale: IBaseScale, parameters: any) {\n const min = invokeFunctionType(spec.min, parameters, scale);\n const max = invokeFunctionType(spec.max, parameters, scale);\n const zero = invokeFunctionType(spec.zero, parameters, scale);\n const hasValidMin = isValidNumber(min);\n const hasValidmax = isValidNumber(max);\n const prevDomain = scale.domain();\n\n if (prevDomain.length === 2 && (hasValidMin || hasValidmax || zero)) {\n let newMin = Math.min(prevDomain[0], prevDomain[prevDomain.length - 1]);\n let newMax = Math.max(prevDomain[0], prevDomain[prevDomain.length - 1]);\n\n if (zero && newMin > 0) {\n newMin = 0;\n } else if (hasValidMin) {\n newMin = Math.min(newMin, min);\n }\n\n if (zero && newMax < 0) {\n newMax = 0;\n } else if (hasValidmax) {\n newMax = Math.max(newMax, max);\n }\n\n scale.domain([newMin, newMax], true);\n }\n}\n\nfunction configureContinuousScale(spec: Omit<ContinuousScaleSpec, 'type'>, scale: IContinuousScale, parameters: any) {\n const rangeRound = invokeFunctionType(spec.roundRange, parameters, scale);\n\n if (rangeRound) {\n scale.rangeRound(scale.range(), true);\n }\n\n const config = invokeFunctionType(spec.config, parameters, scale);\n\n if (config?.interpolate) {\n scale.interpolate(config.interpolate, true);\n }\n\n if (!isNil(config?.clamp)) {\n if (isFunction(config.clamp)) {\n scale.clamp(true, config.clamp, true);\n } else {\n scale.clamp(config.clamp, undefined, true);\n }\n }\n}\n\nfunction configureLinearScale(spec: Omit<LinearScaleSpec, 'type'>, scale: ILinearScale, parameters: any) {\n configureScaleNice(spec, scale, parameters);\n configureScaleNiceMinMax(spec, scale, parameters);\n configureScaleDomain(spec, scale, parameters);\n configureContinuousScale(spec, scale, parameters);\n}\n\nfunction configurePowScale(spec: PowScaleSpec, scale: IPowScale, parameters: any) {\n configureLinearScale(spec, scale, parameters);\n\n const exponent = invokeFunctionType(spec.exponent, parameters, scale);\n if (exponent > 0) {\n scale.exponent(exponent as number);\n }\n}\n\nfunction configureLogScale(spec: LogScaleSpec, scale: ILogScale, parameters: any) {\n configureScaleNice(spec, scale, parameters);\n configureScaleDomain(spec, scale, parameters);\n configureContinuousScale(spec, scale, parameters);\n\n const base = invokeFunctionType(spec.base, parameters, scale);\n if (base > 0) {\n scale.base(base as number);\n }\n}\n\nfunction configureSqrtScale(spec: SqrtScaleSpec, scale: ILinearScale, parameters: any) {\n configureLinearScale(spec, scale, parameters);\n}\n\nfunction configureTimeScale(spec: Omit<TimeScaleSpec, 'type'>, scale: ILinearScale, parameters: any) {\n configureScaleNice(spec, scale, parameters);\n configureScaleDomain(spec, scale, parameters);\n configureContinuousScale(spec, scale, parameters);\n}\n\nfunction configureSymlogScale(spec: SymlogScaleSpec, scale: ISymlogScale, parameters: any) {\n configureLinearScale(spec, scale, parameters);\n\n const constant = invokeFunctionType(spec.constant, parameters, scale);\n if (isValidNumber(constant)) {\n scale.constant(constant as number);\n }\n}\n\nfunction configureQuantizeScale(spec: QuantizeScaleSpec, scale: IQuantizeScale, parameters: any) {\n configureScaleNice(spec, scale, parameters);\n configureScaleNiceMinMax(spec, scale, parameters);\n configureScaleDomain(spec, scale, parameters);\n}\n\nfunction configureBaseBandScale(spec: BaseBandScaleSpec, scale: IBandLikeScale, parameters: any) {\n spec.round && scale.round(invokeFunctionType(spec.round, parameters, scale), true);\n spec.padding && scale.padding(invokeFunctionType(spec.padding, parameters, scale), true);\n spec.paddingInner && scale.paddingInner(invokeFunctionType(spec.paddingInner, parameters, scale), true);\n spec.paddingOuter && scale.paddingOuter(invokeFunctionType(spec.paddingOuter, parameters, scale), true);\n spec.align && scale.align(invokeFunctionType(spec.align, parameters, scale), true);\n}\n\nfunction configureBandScale(spec: BandScaleSpec, scale: IBandLikeScale, parameters: any) {\n return configureBaseBandScale(spec, scale, parameters);\n}\n\nfunction configurePointScale(spec: PointScaleSpec, scale: IBandLikeScale, parameters: any) {\n return configureBaseBandScale(spec, scale, parameters);\n}\n\nfunction parseFieldData(spec: ScaleData, parameters: any) {\n const field = spec.field;\n const refData = getGrammarOutput(spec.data, parameters) as any[];\n const fieldData: any[] = [];\n\n if (isArray(field)) {\n field.forEach(entry => {\n const getter = getFieldAccessor(entry);\n\n refData &&\n refData.forEach(datum => {\n fieldData.push(getter(datum));\n });\n });\n } else {\n const getter = getFieldAccessor(field);\n\n refData &&\n refData.forEach(datum => {\n fieldData.push(getter(datum));\n });\n }\n\n return fieldData;\n}\nfunction parseMultiFieldData(spec: MultiScaleData, parameters: any) {\n let fieldData: any[] = [];\n\n spec.datas.forEach(entry => {\n fieldData = fieldData.concat(parseFieldData(entry, parameters));\n });\n\n return fieldData;\n}\n\nfunction parseScaleDataTypeValue(\n fieldData: any[],\n scale: IBaseScale,\n sort?: (datumA: any, datumB: any) => number,\n filterNumber?: boolean\n) {\n if (sort) {\n fieldData.sort(sort);\n }\n\n if (!isContinuous(scale.type)) {\n return fieldData;\n }\n\n if (filterNumber) {\n fieldData.filter(entry => isNumber(entry));\n }\n return [Math.min.apply(null, fieldData), Math.max.apply(null, fieldData)];\n}\n\nexport function configureScale(spec: ScaleSpec, scale: IBaseScale, parameters: any) {\n if (isScaleDataType(spec.domain)) {\n scale.domain(parseScaleDataTypeValue(parseFieldData(spec.domain, parameters), scale, spec.domain.sort, true), true);\n } else if (isMultiScaleDataType(spec.domain)) {\n scale.domain(\n parseScaleDataTypeValue(parseMultiFieldData(spec.domain, parameters), scale, spec.domain.sort, true),\n true\n );\n } else {\n scale.domain(invokeFunctionType(spec.domain, parameters, scale), true);\n }\n\n if (spec.type !== 'identity') {\n if (isScaleDataType(spec.range)) {\n scale.range(parseScaleDataTypeValue(parseFieldData(spec.range, parameters), scale), true);\n } else if (isMultiScaleDataType(spec.range)) {\n scale.range(parseScaleDataTypeValue(parseMultiFieldData(spec.range, parameters), scale), true);\n } else if (isScaleCoordinateType(spec.range)) {\n const coord = getGrammarOutput(spec.range.coordinate, parameters);\n\n if (!isDiscretizing(scale.type) && coord) {\n scale.range(coord.getRangeByDimension(spec.range.dimension, spec.range.isSubshaft, spec.range.reversed));\n }\n } else {\n scale.range(invokeFunctionType(spec.range, parameters, scale), true);\n }\n }\n if (!isNil(spec.unknown)) {\n scale.unknown(invokeFunctionType(spec.unknown, parameters, scale));\n }\n\n switch (spec.type) {\n case 'linear':\n configureLinearScale(spec, scale as ILinearScale, parameters);\n (scale as ILinearScale).rescale();\n break;\n case 'band':\n configureBandScale(spec, scale as IBandLikeScale, parameters);\n (scale as IBandLikeScale).rescale();\n break;\n case 'point':\n configurePointScale(spec, scale as IBandLikeScale, parameters);\n (scale as IBandLikeScale).rescale();\n break;\n case 'pow':\n configurePowScale(spec, scale as IPowScale, parameters);\n (scale as IContinuousScale).rescale();\n break;\n case 'log':\n configureLogScale(spec, scale as ILogScale, parameters);\n (scale as IContinuousScale).rescale();\n break;\n case 'sqrt':\n configureSqrtScale(spec, scale as ILinearScale, parameters);\n (scale as IContinuousScale).rescale();\n break;\n case 'symlog':\n configureSymlogScale(spec, scale as ISymlogScale, parameters);\n (scale as IContinuousScale).rescale();\n break;\n case 'time':\n case 'utc':\n configureTimeScale(spec, scale as ILinearScale, parameters);\n (scale as IContinuousScale).rescale();\n break;\n case 'quantize':\n configureQuantizeScale(spec, scale as IQuantizeScale, parameters);\n (scale as IQuantizeScale).rescale();\n break;\n case 'quantile':\n (scale as IQuantileScale).rescale();\n break;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/parse/scale.ts"],"names":[],"mappings":"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","file":"scale.js","sourcesContent":["import { isArray, isFunction, isNil, isNumber, isString, isValidNumber } from '@visactor/vutils';\nimport type {\n IBaseScale,\n IBandLikeScale,\n ILinearScale,\n IPowScale,\n ILogScale,\n ISymlogScale,\n IContinuousScale,\n IContinuesScaleTicks,\n IQuantizeScale,\n IQuantileScale\n} from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport {\n LinearScale,\n BandScale,\n OrdinalScale,\n PointScale,\n isContinuous,\n TimeScale,\n ThresholdScale,\n SqrtScale,\n SymlogScale,\n QuantizeScale,\n QuantileScale,\n PowScale,\n LogScale,\n isDiscretizing,\n IdentityScale\n} from '@visactor/vscale';\nimport type { IView } from '../types/view';\nimport type { IGrammarBase } from '../types/grammar';\nimport type {\n BandScaleSpec,\n BaseBandScaleSpec,\n LinearScaleSpec,\n OrdinalScaleSpec,\n PointScaleSpec,\n ScaleFunctionType,\n ScaleData,\n MultiScaleData,\n ScaleSpec,\n ScaleConfigureSpec,\n ScaleCoordinate,\n PowScaleSpec,\n ContinuousScaleSpec,\n ScaleTicksSpec,\n ScaleDomainSpec,\n LogScaleSpec,\n SqrtScaleSpec,\n SymlogScaleSpec,\n QuantizeScaleSpec,\n TimeScaleSpec,\n GrammarScaleType\n} from '../types/scale';\nimport { getGrammarOutput, invokeFunctionType, parseFunctionType } from './util';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\n\nexport function createScale(type: GrammarScaleType): IBaseScale {\n switch (type) {\n case 'band':\n return new BandScale();\n case 'linear':\n return new LinearScale();\n case 'log':\n return new LogScale();\n case 'ordinal':\n return new OrdinalScale();\n case 'point':\n return new PointScale();\n case 'pow':\n return new PowScale();\n case 'quantile':\n return new QuantileScale();\n case 'quantize':\n return new QuantizeScale();\n case 'sqrt':\n return new SqrtScale();\n case 'symlog':\n return new SymlogScale();\n case 'threshold':\n return new ThresholdScale();\n case 'time':\n return new TimeScale();\n case 'utc':\n return new TimeScale(true);\n case 'identity':\n return new IdentityScale();\n }\n return new LinearScale();\n}\n\nfunction isScaleDataType(spec: ScaleData | any): spec is ScaleData {\n return !isNil(spec?.data);\n}\n\nfunction parseScaleDataType(spec: ScaleData, view: IView): IGrammarBase[] {\n if (isString(spec.data)) {\n const data = view.getGrammarById(spec.data as string);\n return data ? [data] : [];\n } else if ((spec.data as IGrammarBase)?.grammarType === 'data') {\n return [spec.data as IGrammarBase];\n }\n return [];\n}\n\nfunction isMultiScaleDataType(spec: MultiScaleData | any): spec is MultiScaleData {\n return !isNil(spec?.datas);\n}\n\nfunction parseMultiScaleDataType(spec: MultiScaleData, view: IView): IGrammarBase[] {\n if (spec?.datas && spec.datas.length) {\n const res: IGrammarBase[] = [];\n spec.datas.forEach(data => {\n const gramarBase = parseScaleDataType(data, view);\n\n if (gramarBase.length) {\n res.push(gramarBase[0]);\n }\n });\n\n return res;\n }\n\n return [];\n}\n\nfunction isScaleCoordinateType(spec: ScaleCoordinate | any): spec is ScaleCoordinate {\n return !isNil(spec?.coordinate);\n}\n\nfunction parseScaleCoordinateType(spec: ScaleCoordinate, view: IView): IGrammarBase[] {\n if (isString(spec.coordinate)) {\n const coordinate = view.getCoordinateById(spec.coordinate as string);\n return coordinate ? [coordinate] : [];\n } else if ((spec.coordinate as IGrammarBase)?.grammarType === 'coordinate') {\n return [spec.coordinate as IGrammarBase];\n }\n return [];\n}\n\nfunction parseLinearScale(spec: Omit<LinearScaleSpec, 'type'>, view: IView) {\n let dependencies: IGrammarBase[] = [];\n dependencies = dependencies.concat(parseFunctionType(spec.nice, view));\n dependencies = dependencies.concat(parseFunctionType(spec.niceMin, view));\n dependencies = dependencies.concat(parseFunctionType(spec.niceMax, view));\n dependencies = dependencies.concat(parseFunctionType(spec.min, view));\n dependencies = dependencies.concat(parseFunctionType(spec.max, view));\n dependencies = dependencies.concat(parseFunctionType(spec.zero, view));\n dependencies = dependencies.concat(parseFunctionType(spec.roundRange, view));\n return dependencies;\n}\n\nfunction parsePowScale(spec: PowScaleSpec, view: IView) {\n const dependencies = parseLinearScale(spec, view);\n return dependencies.concat(parseFunctionType(spec.exponent, view));\n}\n\nfunction parseSymlogScale(spec: SymlogScaleSpec, view: IView) {\n const dependencies = parseLinearScale(spec, view);\n return dependencies.concat(parseFunctionType(spec.constant, view));\n}\n\nfunction parseLogScale(spec: Omit<LogScaleSpec, 'type'>, view: IView) {\n let dependencies: IGrammarBase[] = [];\n dependencies = dependencies.concat(parseFunctionType(spec.nice, view));\n dependencies = dependencies.concat(parseFunctionType(spec.min, view));\n dependencies = dependencies.concat(parseFunctionType(spec.max, view));\n dependencies = dependencies.concat(parseFunctionType(spec.zero, view));\n dependencies = dependencies.concat(parseFunctionType(spec.roundRange, view));\n return dependencies;\n}\n\nfunction parseQuantizeScale(spec: QuantizeScaleSpec, view: IView) {\n let dependencies: IGrammarBase[] = [];\n dependencies = dependencies.concat(parseFunctionType(spec.nice, view));\n dependencies = dependencies.concat(parseFunctionType(spec.niceMin, view));\n dependencies = dependencies.concat(parseFunctionType(spec.niceMax, view));\n dependencies = dependencies.concat(parseFunctionType(spec.min, view));\n dependencies = dependencies.concat(parseFunctionType(spec.max, view));\n dependencies = dependencies.concat(parseFunctionType(spec.zero, view));\n return dependencies;\n}\n\nfunction parseOrdinalScale(spec: OrdinalScaleSpec, view: IView) {\n return [] as IGrammarBase[];\n}\n\nfunction parseBaseBandScale(spec: BaseBandScaleSpec, view: IView) {\n let dependencies: IGrammarBase[] = [];\n dependencies = dependencies.concat(parseFunctionType(spec.round, view));\n dependencies = dependencies.concat(parseFunctionType(spec.padding, view));\n dependencies = dependencies.concat(parseFunctionType(spec.paddingInner, view));\n dependencies = dependencies.concat(parseFunctionType(spec.paddingOuter, view));\n dependencies = dependencies.concat(parseFunctionType(spec.align, view));\n return dependencies;\n}\n\nfunction parseBandScale(spec: BandScaleSpec, view: IView) {\n const dependencies = parseBaseBandScale(spec, view);\n return dependencies.concat(parseFunctionType(spec.paddingInner, view));\n}\n\nfunction parsePointScale(spec: PointScaleSpec, view: IView) {\n return parseBaseBandScale(spec, view);\n}\n\nexport function parseScaleDomainRange(domain: ScaleFunctionType<any> | ScaleData | MultiScaleData, view: IView) {\n if (isScaleDataType(domain)) {\n return parseScaleDataType(domain, view);\n }\n\n if (isMultiScaleDataType(domain)) {\n return parseMultiScaleDataType(domain, view);\n }\n\n if (isScaleCoordinateType(domain)) {\n return parseScaleCoordinateType(domain, view);\n }\n return parseFunctionType(domain, view);\n}\n\nexport function parseScaleConfig(type: GrammarScaleType, config: ScaleConfigureSpec, view: IView): IGrammarBase[] {\n if (isNil(config)) {\n return [];\n }\n const deps: IGrammarBase[] = parseFunctionType(config.unknown, view);\n switch (type) {\n case 'linear':\n case 'sqrt':\n return deps.concat(parseLinearScale(config as LinearScaleSpec, view));\n case 'ordinal':\n return deps.concat(parseOrdinalScale(config as OrdinalScaleSpec, view));\n case 'band':\n return deps.concat(parseBandScale(config as BandScaleSpec, view));\n case 'point':\n return deps.concat(parsePointScale(config as PointScaleSpec, view));\n case 'pow':\n return deps.concat(parsePowScale(config as PowScaleSpec, view));\n case 'log':\n case 'time':\n case 'utc':\n return deps.concat(parseLogScale(config as LogScaleSpec, view));\n case 'symlog':\n return deps.concat(parseSymlogScale(config as SymlogScaleSpec, view));\n case 'quantize':\n return deps.concat(parseQuantizeScale(config as QuantizeScaleSpec, view));\n }\n return deps;\n}\n\nfunction configureScaleNice(spec: Pick<ScaleTicksSpec, 'nice'>, scale: IContinuesScaleTicks, parameters: any) {\n const nice = invokeFunctionType(spec.nice, parameters, scale);\n if (nice === true) {\n scale.nice();\n } else if (isValidNumber(nice)) {\n scale.nice(nice as number);\n }\n}\nfunction configureScaleNiceMinMax(\n spec: Pick<ScaleTicksSpec, 'niceMin' | 'niceMax'>,\n scale: IContinuesScaleTicks,\n parameters: any\n) {\n const niceMax = invokeFunctionType(spec.niceMax, parameters, scale);\n if (niceMax === true) {\n scale.niceMax();\n } else if (isValidNumber(niceMax)) {\n scale.niceMax(niceMax as number);\n }\n const niceMin = invokeFunctionType(spec.niceMin, parameters, scale);\n if (niceMin === true) {\n scale.niceMin();\n } else if (isValidNumber(niceMin)) {\n scale.niceMin(niceMin as number);\n }\n}\n\nfunction configureScaleDomain(spec: ScaleDomainSpec, scale: IBaseScale, parameters: any) {\n const min = invokeFunctionType(spec.min, parameters, scale);\n const max = invokeFunctionType(spec.max, parameters, scale);\n const zero = invokeFunctionType(spec.zero, parameters, scale);\n const hasValidMin = isValidNumber(min);\n const hasValidmax = isValidNumber(max);\n const prevDomain = scale.domain();\n\n if (prevDomain.length === 2 && (hasValidMin || hasValidmax || zero)) {\n let newMin = Math.min(prevDomain[0], prevDomain[prevDomain.length - 1]);\n let newMax = Math.max(prevDomain[0], prevDomain[prevDomain.length - 1]);\n\n if (zero && newMin > 0) {\n newMin = 0;\n } else if (hasValidMin) {\n newMin = Math.min(newMin, min);\n }\n\n if (zero && newMax < 0) {\n newMax = 0;\n } else if (hasValidmax) {\n newMax = Math.max(newMax, max);\n }\n\n scale.domain([newMin, newMax], true);\n }\n}\n\nfunction configureContinuousScale(spec: Omit<ContinuousScaleSpec, 'type'>, scale: IContinuousScale, parameters: any) {\n const rangeRound = invokeFunctionType(spec.roundRange, parameters, scale);\n\n if (rangeRound) {\n scale.rangeRound(scale.range(), true);\n }\n\n const config = invokeFunctionType(spec.config, parameters, scale);\n\n if (config?.interpolate) {\n scale.interpolate(config.interpolate, true);\n }\n\n if (!isNil(config?.clamp)) {\n if (isFunction(config.clamp)) {\n scale.clamp(true, config.clamp, true);\n } else {\n scale.clamp(config.clamp, undefined, true);\n }\n }\n\n const tickCount = invokeFunctionType(spec.tickCount, parameters, scale);\n if (tickCount) {\n // tickCount may change the domain of scale, so need to call here\n scale.tickData(tickCount);\n }\n}\n\nfunction configureLinearScale(spec: Omit<LinearScaleSpec, 'type'>, scale: ILinearScale, parameters: any) {\n configureScaleNice(spec, scale, parameters);\n configureScaleNiceMinMax(spec, scale, parameters);\n configureScaleDomain(spec, scale, parameters);\n configureContinuousScale(spec, scale, parameters);\n}\n\nfunction configurePowScale(spec: PowScaleSpec, scale: IPowScale, parameters: any) {\n configureLinearScale(spec, scale, parameters);\n\n const exponent = invokeFunctionType(spec.exponent, parameters, scale);\n if (exponent > 0) {\n scale.exponent(exponent as number);\n }\n}\n\nfunction configureLogScale(spec: LogScaleSpec, scale: ILogScale, parameters: any) {\n configureScaleNice(spec, scale, parameters);\n configureScaleDomain(spec, scale, parameters);\n\n const base = invokeFunctionType(spec.base, parameters, scale);\n if (base > 0) {\n scale.base(base as number);\n }\n configureContinuousScale(spec, scale, parameters);\n}\n\nfunction configureSqrtScale(spec: SqrtScaleSpec, scale: ILinearScale, parameters: any) {\n configureLinearScale(spec, scale, parameters);\n}\n\nfunction configureTimeScale(spec: Omit<TimeScaleSpec, 'type'>, scale: ILinearScale, parameters: any) {\n configureScaleNice(spec, scale, parameters);\n configureScaleDomain(spec, scale, parameters);\n configureContinuousScale(spec, scale, parameters);\n}\n\nfunction configureSymlogScale(spec: SymlogScaleSpec, scale: ISymlogScale, parameters: any) {\n configureLinearScale(spec, scale, parameters);\n\n const constant = invokeFunctionType(spec.constant, parameters, scale);\n if (isValidNumber(constant)) {\n scale.constant(constant as number);\n }\n}\n\nfunction configureQuantizeScale(spec: QuantizeScaleSpec, scale: IQuantizeScale, parameters: any) {\n configureScaleNice(spec, scale, parameters);\n configureScaleNiceMinMax(spec, scale, parameters);\n configureScaleDomain(spec, scale, parameters);\n}\n\nfunction configureBaseBandScale(spec: BaseBandScaleSpec, scale: IBandLikeScale, parameters: any) {\n spec.round && scale.round(invokeFunctionType(spec.round, parameters, scale), true);\n spec.padding && scale.padding(invokeFunctionType(spec.padding, parameters, scale), true);\n spec.paddingInner && scale.paddingInner(invokeFunctionType(spec.paddingInner, parameters, scale), true);\n spec.paddingOuter && scale.paddingOuter(invokeFunctionType(spec.paddingOuter, parameters, scale), true);\n spec.align && scale.align(invokeFunctionType(spec.align, parameters, scale), true);\n}\n\nfunction configureBandScale(spec: BandScaleSpec, scale: IBandLikeScale, parameters: any) {\n return configureBaseBandScale(spec, scale, parameters);\n}\n\nfunction configurePointScale(spec: PointScaleSpec, scale: IBandLikeScale, parameters: any) {\n return configureBaseBandScale(spec, scale, parameters);\n}\n\nfunction parseFieldData(spec: ScaleData, parameters: any) {\n const field = spec.field;\n const refData = getGrammarOutput(spec.data, parameters) as any[];\n const fieldData: any[] = [];\n\n if (isArray(field)) {\n field.forEach(entry => {\n const getter = getFieldAccessor(entry);\n\n refData &&\n refData.forEach(datum => {\n fieldData.push(getter(datum));\n });\n });\n } else {\n const getter = getFieldAccessor(field);\n\n refData &&\n refData.forEach(datum => {\n fieldData.push(getter(datum));\n });\n }\n\n return fieldData;\n}\nfunction parseMultiFieldData(spec: MultiScaleData, parameters: any) {\n let fieldData: any[] = [];\n\n spec.datas.forEach(entry => {\n fieldData = fieldData.concat(parseFieldData(entry, parameters));\n });\n\n return fieldData;\n}\n\nfunction parseScaleDataTypeValue(\n fieldData: any[],\n scale: IBaseScale,\n sort?: (datumA: any, datumB: any) => number,\n filterNumber?: boolean\n) {\n if (sort) {\n fieldData.sort(sort);\n }\n\n if (!isContinuous(scale.type)) {\n return fieldData;\n }\n\n if (filterNumber) {\n fieldData.filter(entry => isNumber(entry));\n }\n return [Math.min.apply(null, fieldData), Math.max.apply(null, fieldData)];\n}\n\nexport function configureScale(spec: ScaleSpec, scale: IBaseScale, parameters: any) {\n if (isScaleDataType(spec.domain)) {\n scale.domain(parseScaleDataTypeValue(parseFieldData(spec.domain, parameters), scale, spec.domain.sort, true), true);\n } else if (isMultiScaleDataType(spec.domain)) {\n scale.domain(\n parseScaleDataTypeValue(parseMultiFieldData(spec.domain, parameters), scale, spec.domain.sort, true),\n true\n );\n } else {\n scale.domain(invokeFunctionType(spec.domain, parameters, scale), true);\n }\n\n if (spec.type !== 'identity') {\n if (isScaleDataType(spec.range)) {\n scale.range(parseScaleDataTypeValue(parseFieldData(spec.range, parameters), scale), true);\n } else if (isMultiScaleDataType(spec.range)) {\n scale.range(parseScaleDataTypeValue(parseMultiFieldData(spec.range, parameters), scale), true);\n } else if (isScaleCoordinateType(spec.range)) {\n const coord = getGrammarOutput(spec.range.coordinate, parameters);\n\n if (!isDiscretizing(scale.type) && coord) {\n scale.range(coord.getRangeByDimension(spec.range.dimension, spec.range.isSubshaft, spec.range.reversed));\n }\n } else {\n scale.range(invokeFunctionType(spec.range, parameters, scale), true);\n }\n }\n if (!isNil(spec.unknown)) {\n scale.unknown(invokeFunctionType(spec.unknown, parameters, scale));\n }\n\n switch (spec.type) {\n case 'linear':\n configureLinearScale(spec, scale as ILinearScale, parameters);\n (scale as ILinearScale).rescale();\n break;\n case 'band':\n configureBandScale(spec, scale as IBandLikeScale, parameters);\n (scale as IBandLikeScale).rescale();\n break;\n case 'point':\n configurePointScale(spec, scale as IBandLikeScale, parameters);\n (scale as IBandLikeScale).rescale();\n break;\n case 'pow':\n configurePowScale(spec, scale as IPowScale, parameters);\n (scale as IContinuousScale).rescale();\n break;\n case 'log':\n configureLogScale(spec, scale as ILogScale, parameters);\n (scale as IContinuousScale).rescale();\n break;\n case 'sqrt':\n configureSqrtScale(spec, scale as ILinearScale, parameters);\n (scale as IContinuousScale).rescale();\n break;\n case 'symlog':\n configureSymlogScale(spec, scale as ISymlogScale, parameters);\n (scale as IContinuousScale).rescale();\n break;\n case 'time':\n case 'utc':\n configureTimeScale(spec, scale as ILinearScale, parameters);\n (scale as IContinuousScale).rescale();\n break;\n case 'quantize':\n configureQuantizeScale(spec, scale as IQuantizeScale, parameters);\n (scale as IQuantizeScale).rescale();\n break;\n case 'quantile':\n (scale as IQuantileScale).rescale();\n break;\n }\n}\n"]}
|
package/cjs/types/component.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type { IComponent, IData, IGroupMark, IMark, IScale } from './grammar';
|
|
|
6
6
|
import type { ChannelEncodeType, ComponentSpec, GenerateBasicEncoderSpec, MarkFunctionType, ScaleEncodeType } from './mark';
|
|
7
7
|
import type { IView } from './view';
|
|
8
8
|
import type { IBaseScale } from '@visactor/vscale';
|
|
9
|
+
import type { SimpleSignalType } from './signal';
|
|
9
10
|
export interface IScaleComponent extends IComponent {
|
|
10
11
|
scale: (scale?: IScale | string | Nil) => this;
|
|
11
12
|
getScale: () => IScale;
|
|
@@ -16,7 +17,7 @@ export interface ScaleComponentSpec<BasicEncoderSpec extends GenerateBasicEncode
|
|
|
16
17
|
export type AxisType = 'line' | 'circle';
|
|
17
18
|
export interface IAxis extends IScaleComponent {
|
|
18
19
|
axisType: (axisType: AxisType | Nil) => this;
|
|
19
|
-
tickCount: (tickCount:
|
|
20
|
+
tickCount: (tickCount: SimpleSignalType<number> | Nil) => this;
|
|
20
21
|
inside: (inside: MarkFunctionType<boolean> | Nil) => this;
|
|
21
22
|
baseValue: (baseValue: MarkFunctionType<number> | Nil) => this;
|
|
22
23
|
getAxisComponentType: () => keyof typeof AxisEnum;
|
|
@@ -24,7 +25,7 @@ export interface IAxis extends IScaleComponent {
|
|
|
24
25
|
export interface AxisSpec extends ScaleComponentSpec<Partial<AxisBaseAttributes>> {
|
|
25
26
|
componentType: ComponentEnum.axis;
|
|
26
27
|
axisType?: AxisType;
|
|
27
|
-
tickCount?:
|
|
28
|
+
tickCount?: SimpleSignalType<number>;
|
|
28
29
|
inside?: MarkFunctionType<boolean>;
|
|
29
30
|
baseValue?: MarkFunctionType<number>;
|
|
30
31
|
}
|
|
@@ -33,7 +34,7 @@ export interface IGrid extends IScaleComponent {
|
|
|
33
34
|
gridType: (gridType: AxisType | Nil) => this;
|
|
34
35
|
gridShape: (gridShape: GridShape | Nil) => this;
|
|
35
36
|
target: (axis: IAxis | string | Nil) => this;
|
|
36
|
-
tickCount: (tickCount:
|
|
37
|
+
tickCount: (tickCount: SimpleSignalType<number> | Nil) => this;
|
|
37
38
|
inside: (inside: MarkFunctionType<boolean> | Nil) => this;
|
|
38
39
|
baseValue: (baseValue: MarkFunctionType<number> | Nil) => this;
|
|
39
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/component.ts"],"names":[],"mappings":"","file":"component.js","sourcesContent":["import type { IGraphicAttribute, ITextAttribute } from '@visactor/vrender-core';\nimport type {\n AxisBaseAttributes,\n BaseLabelAttrs,\n DataLabelAttrs,\n DataZoomAttributes,\n Direction,\n GridBaseAttributes,\n LegendBaseAttributes,\n OrientType,\n PlayerAttributes,\n ScrollBarAttributes,\n SliderAttributes,\n TitleAttrs\n} from '@visactor/vrender-components';\nimport type { AxisEnum, ComponentEnum } from '../graph';\nimport type { Nil } from './base';\nimport type { IComponent, IData, IGroupMark, IMark, IScale } from './grammar';\nimport type {\n ChannelEncodeType,\n ComponentSpec,\n GenerateBasicEncoderSpec,\n MarkFunctionType,\n ScaleEncodeType\n} from './mark';\nimport type { IView } from './view';\nimport type { IBaseScale } from '@visactor/vscale';\n\n// scale component\n\nexport interface IScaleComponent extends IComponent {\n scale: (scale?: IScale | string | Nil) => this;\n\n // internal interface\n getScale: () => IScale;\n}\n\nexport interface ScaleComponentSpec<\n BasicEncoderSpec extends GenerateBasicEncoderSpec<IGraphicAttribute> = GenerateBasicEncoderSpec<IGraphicAttribute>\n> extends ComponentSpec<BasicEncoderSpec> {\n scale?: IScale | string;\n}\n\n// axis component\n\nexport type AxisType = 'line' | 'circle';\n\nexport interface IAxis extends IScaleComponent {\n axisType: (axisType: AxisType | Nil) => this;\n tickCount: (tickCount:
|
|
1
|
+
{"version":3,"sources":["../src/types/component.ts"],"names":[],"mappings":"","file":"component.js","sourcesContent":["import type { IGraphicAttribute, ITextAttribute } from '@visactor/vrender-core';\nimport type {\n AxisBaseAttributes,\n BaseLabelAttrs,\n DataLabelAttrs,\n DataZoomAttributes,\n Direction,\n GridBaseAttributes,\n LegendBaseAttributes,\n OrientType,\n PlayerAttributes,\n ScrollBarAttributes,\n SliderAttributes,\n TitleAttrs\n} from '@visactor/vrender-components';\nimport type { AxisEnum, ComponentEnum } from '../graph';\nimport type { Nil } from './base';\nimport type { IComponent, IData, IGroupMark, IMark, IScale } from './grammar';\nimport type {\n ChannelEncodeType,\n ComponentSpec,\n GenerateBasicEncoderSpec,\n MarkFunctionType,\n ScaleEncodeType\n} from './mark';\nimport type { IView } from './view';\nimport type { IBaseScale } from '@visactor/vscale';\nimport type { SimpleSignalType } from './signal';\n\n// scale component\n\nexport interface IScaleComponent extends IComponent {\n scale: (scale?: IScale | string | Nil) => this;\n\n // internal interface\n getScale: () => IScale;\n}\n\nexport interface ScaleComponentSpec<\n BasicEncoderSpec extends GenerateBasicEncoderSpec<IGraphicAttribute> = GenerateBasicEncoderSpec<IGraphicAttribute>\n> extends ComponentSpec<BasicEncoderSpec> {\n scale?: IScale | string;\n}\n\n// axis component\n\nexport type AxisType = 'line' | 'circle';\n\nexport interface IAxis extends IScaleComponent {\n axisType: (axisType: AxisType | Nil) => this;\n tickCount: (tickCount: SimpleSignalType<number> | Nil) => this;\n inside: (inside: MarkFunctionType<boolean> | Nil) => this;\n baseValue: (baseValue: MarkFunctionType<number> | Nil) => this;\n\n // internal interface\n getAxisComponentType: () => keyof typeof AxisEnum;\n}\n\nexport interface AxisSpec extends ScaleComponentSpec<Partial<AxisBaseAttributes>> {\n componentType: ComponentEnum.axis;\n axisType?: AxisType;\n tickCount?: SimpleSignalType<number>;\n inside?: MarkFunctionType<boolean>;\n baseValue?: MarkFunctionType<number>;\n}\n\n// grid component\n\nexport type GridShape = 'line' | 'circle' | 'polygon';\n\nexport interface IGrid extends IScaleComponent {\n gridType: (gridType: AxisType | Nil) => this;\n gridShape: (gridShape: GridShape | Nil) => this;\n target: (axis: IAxis | string | Nil) => this;\n tickCount: (tickCount: SimpleSignalType<number> | Nil) => this;\n inside: (inside: MarkFunctionType<boolean> | Nil) => this;\n baseValue: (baseValue: MarkFunctionType<number> | Nil) => this;\n}\n\nexport interface GridSpec extends ScaleComponentSpec<Partial<GridBaseAttributes>> {\n componentType: ComponentEnum.grid;\n gridType?: AxisType;\n gridShape?: GridShape;\n target?: IAxis | string;\n tickCount?: MarkFunctionType<number>;\n inside?: MarkFunctionType<boolean>;\n baseValue?: MarkFunctionType<number>;\n}\n\n// legend component\n\nexport type LegendType = 'auto' | 'discrete' | 'color' | 'size';\n\nexport interface ILegend extends IScaleComponent {\n legendType: (legendType: LegendType | Nil) => this;\n\n // immediate functions\n setSelected: (selectedValues: any[]) => this;\n\n // internal interface\n isContinuousLegend: () => boolean;\n}\n\nexport interface LegendSpec extends ScaleComponentSpec<LegendBaseAttributes> {\n componentType: ComponentEnum.legend;\n legendType?: LegendType;\n shapeScale?: IScale | string;\n}\n\n// slider component\n\nexport type SliderFilterValue = { start: number; end: number };\n\nexport interface ISlider extends IComponent {\n min: (min: MarkFunctionType<number> | Nil) => this;\n max: (max: MarkFunctionType<number> | Nil) => this;\n\n // immediate functions\n setStartEndValue: (start?: number, end?: number) => this;\n}\n\nexport interface SliderSpec extends ComponentSpec<Partial<SliderAttributes>> {\n componentType: ComponentEnum.slider;\n min?: MarkFunctionType<number>;\n max?: MarkFunctionType<number>;\n}\n\n// datazoom component\n\nexport type DatazoomFilterValue = { start: number; end: number; startRatio: number; endRatio: number };\n\nexport interface IDatazoom extends IComponent {\n preview: (\n data: IData | string | Nil,\n x: ScaleEncodeType | Nil,\n y: ScaleEncodeType | Nil,\n x1?: ChannelEncodeType | Nil,\n y1?: ChannelEncodeType | Nil\n ) => this;\n\n // immediate functions\n setStartEndValue: (start?: number, end?: number) => this;\n getStartEndValue: () => { start: number; end: number } | Nil;\n\n // internal interface\n invertDatazoomRatio: (ratio: number) => any;\n getDatazoomMainScale: () => IBaseScale;\n}\n\nexport type DataZoomEncoderSpec = GenerateBasicEncoderSpec<Partial<DataZoomAttributes> & { x1?: number; y1?: number }>;\nexport interface DatazoomSpec extends ComponentSpec<DataZoomEncoderSpec> {\n componentType: ComponentEnum.datazoom;\n preview?: {\n data: IData | string;\n x?: ScaleEncodeType;\n y?: ScaleEncodeType;\n x1?: ChannelEncodeType;\n y1?: ChannelEncodeType;\n };\n}\n\n// label component\n\nexport interface ILabel extends IComponent {\n labelStyle: (attributes: MarkFunctionType<Partial<BaseLabelAttrs>>) => this;\n size: (attributes: MarkFunctionType<DataLabelAttrs['size']>) => this;\n target: (mark: IMark | IMark[] | string | string[] | Nil) => this;\n}\n\nexport type LabelEncoderSpec = GenerateBasicEncoderSpec<Partial<BaseLabelAttrs> & { text?: ITextAttribute['text'] }>;\nexport interface LabelSpec extends ComponentSpec<LabelEncoderSpec> {\n componentType: ComponentEnum.label;\n labelStyle?: MarkFunctionType<Partial<BaseLabelAttrs>>;\n size?: MarkFunctionType<DataLabelAttrs['size']>;\n target?: IMark | IMark[] | string | string[];\n}\n\n// player component\n\nexport type PlayerType = 'auto' | 'discrete' | 'continuous';\n\nexport type PlayerFilterValue = { index: number; value: any };\n\nexport interface IPlayer extends IComponent {\n playerType: (playerType: PlayerType) => this;\n source: (source: IData | string | any[] | Nil) => this;\n\n // immediate functions\n play: () => this;\n pause: () => this;\n backward: () => this;\n forward: () => this;\n}\n\nexport interface PlayerSpec extends ComponentSpec<Partial<PlayerAttributes>> {\n componentType: ComponentEnum.player;\n playerType?: PlayerType;\n source?: IData | string | any[];\n}\n\n// title component\n\nexport interface ITitle extends IComponent {\n title: (text: MarkFunctionType<string | number | number[] | string[]> | Nil) => this;\n subTitle: (text: MarkFunctionType<string | number | number[] | string[]> | Nil) => this;\n}\n\nexport interface TitleSpec extends ComponentSpec<Partial<TitleAttrs>> {\n componentType: ComponentEnum.title;\n title?: MarkFunctionType<string | number | number[] | string[]>;\n subTitle?: MarkFunctionType<string | number | number[] | string[]>;\n}\n\n// scrollbar component\n\nexport type ScrollbarFilterValue = { start?: number; end?: number; startRatio: number; endRatio: number };\n\nexport interface IScrollbar extends IScaleComponent {\n container: (container: IGroupMark | string | Nil) => this;\n direction: (direction: MarkFunctionType<Direction> | Nil) => this;\n position: (position: MarkFunctionType<OrientType> | Nil) => this;\n\n // immediate functions\n setScrollStart: (start: number) => this;\n getScrollRange: () => [number, number] | Nil;\n}\n\nexport interface ScrollbarSpec extends ScaleComponentSpec<Partial<ScrollBarAttributes>> {\n componentType: ComponentEnum.scrollbar;\n container?: IGroupMark | string;\n direction?: MarkFunctionType<Direction>;\n position?: MarkFunctionType<OrientType>;\n}\n\n// built-in components\n\nexport type BuiltInComponentSpec =\n | AxisSpec\n | LegendSpec\n | SliderSpec\n | DatazoomSpec\n | LabelSpec\n | PlayerSpec\n | TitleSpec\n | ScrollbarSpec;\n\nexport interface IComponentConstructor {\n readonly componentType: string;\n\n new (view: IView, group?: IGroupMark, mode?: '2d' | '3d'): IComponent;\n}\n"]}
|
package/cjs/types/grammar.d.ts
CHANGED
|
@@ -79,6 +79,7 @@ export interface IScale extends IGrammarBase {
|
|
|
79
79
|
domain: (domain: ScaleFunctionType<any[]> | ScaleData | MultiScaleData | Nil) => this;
|
|
80
80
|
range: (range: ScaleFunctionType<any[]> | ScaleData | MultiScaleData | Nil) => this;
|
|
81
81
|
configure: (config: ScaleConfigureSpec | Nil) => this;
|
|
82
|
+
tickCount: (tickCount: ScaleFunctionType<number> | Nil) => this;
|
|
82
83
|
getRangeFactor: () => [number, number] | Nil;
|
|
83
84
|
setRangeFactor: (range?: [number, number]) => this;
|
|
84
85
|
getFishEye: () => ScaleFishEyeOptions | Nil;
|
package/cjs/types/grammar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/grammar.ts"],"names":[],"mappings":"","file":"grammar.js","sourcesContent":["import type { EventEmitter, IBounds, IPointLike } from '@visactor/vutils';\nimport type { IGraphic, IGroup } from '@visactor/vrender-core';\nimport type { IBaseScale, ScaleFishEyeOptions, TickData } from '@visactor/vscale';\nimport type { ITransform, TransformSpec } from './transform';\nimport type { DataFormatSpec, IDataFilter } from './data';\nimport type { ParameterFunctionType, SignalFunctionType } from './signal';\nimport type { IAnimate } from './animate';\nimport type { IGlyphMeta } from './glyph';\nimport type { GrammarTypeEnum } from '../graph/enums';\nimport type { Nil } from './base';\nimport type { CoordinateFunctionType } from './coordinate';\nimport type { IElement } from './element';\nimport type {\n MarkFunctionType,\n MarkAnimationSpec,\n MarkType,\n MarkLayoutSpec,\n MarkLayoutCallback,\n MarkSortSpec,\n MarkKeySpec,\n IMarkConfig,\n ChannelEncodeType,\n AttributeTransform,\n BaseSignleEncodeSpec\n} from './mark';\nimport type { ScaleConfigureSpec, ScaleData, ScaleFunctionType, GrammarScaleType, MultiScaleData } from './scale';\nimport type { IView } from './view';\nimport type { BaseEventHandler } from './event';\nimport type { ICartesianCoordinate, IPolarCoordinate } from '@visactor/vgrammar-coordinate';\n\nexport type BuiltInGrammarType = keyof typeof GrammarTypeEnum;\nexport type GrammarType = BuiltInGrammarType | string;\n\n/** 语法元素内置运行的任务 */\nexport interface IGrammarTask extends ITransform {\n /**\n * 参数依赖\n * 只做一级解析\n */\n options?: Record<string, any | IGrammarBase> | (IGrammarBase | any)[];\n /**\n * 依赖的语法元素\n */\n references?: IGrammarBase[];\n /**\n * 是否只支持简单的options配置,不支持在options引用语法元素\n */\n isRawOptions?: boolean;\n}\n\nexport interface GrammarSpec {\n id?: string;\n dependency?: IGrammarBase[] | IGrammarBase | string[] | string;\n}\n\nexport interface IGrammarBase {\n readonly grammarType: GrammarType;\n readonly view: IView;\n readonly uid: number;\n /**\n * 执行的上游节点\n */\n grammarSource: IGrammarBase;\n /**\n * 影响的下游节点\n */\n targets: IGrammarBase[];\n /**\n * 依赖的上游节点,由于不同 spec 配置项中可能引用同一个节点,需要进行计数\n */\n references: Map<IGrammarBase, number>;\n\n depend: (grammar: IGrammarBase[] | IGrammarBase | string[] | string) => this;\n\n addEventListener: (type: string, handler: BaseEventHandler, options?: any) => this;\n removeEventListener: (type: string, handler: BaseEventHandler) => this;\n\n // extended from EventEmitter\n emit: <T extends EventEmitter.EventNames<string | symbol>>(\n event: T,\n ...args: EventEmitter.EventArgs<string | symbol, T>\n ) => boolean;\n emitGrammarEvent: <T extends EventEmitter.EventNames<string | symbol>>(\n event: T,\n ...args: EventEmitter.EventArgs<string | symbol, T>\n ) => boolean;\n\n tasks?: IGrammarTask[];\n // value?: any;\n /** FIXME: operator执行顺序,改造后,dataflow执行元素,应该抽象出来 */\n rank?: number;\n // todo\n set: (value: any) => boolean;\n id: (() => string) & ((id: string) => this);\n name: (() => string) & ((name: string) => this);\n attach: (reference: IGrammarBase | IGrammarBase[], count?: number) => this;\n detach: (reference: IGrammarBase | IGrammarBase[], count?: number) => this;\n detachAll: () => void;\n commit: () => void;\n output: () => any;\n parse: (spec: any) => this;\n parameters: () => { [key: string]: any };\n evaluateSync?: (upstream: any, parameters: any) => this;\n getSpec: () => any;\n reuse: (grammar: IGrammarBase) => this;\n /** clear references */\n clear: () => void;\n /** release all memory storage */\n release: () => void;\n}\n\nexport interface IData extends IGrammarBase {\n values: (values: any | Nil, format?: ParameterFunctionType<DataFormatSpec>, load?: boolean) => this;\n url: (\n url: ParameterFunctionType<string> | Nil,\n format?: ParameterFunctionType<DataFormatSpec>,\n load?: boolean\n ) => this;\n source: (\n source: string | string[] | IData | IData[],\n format?: ParameterFunctionType<DataFormatSpec>,\n load?: boolean\n ) => this;\n transform: (transform: TransformSpec[] | Nil) => this;\n\n // only used in VGrammar\n addDataFilter: (filter: IDataFilter | IDataFilter[]) => this;\n removeDataFilter: (filter: IDataFilter | IDataFilter[]) => this;\n\n // data util methods\n field: (field: string) => any[];\n getValue: () => any[];\n getInput: () => any[];\n getDataIDKey: () => string;\n}\n\n/** 语法元素,TODO */\nexport interface ISignal<T> extends IGrammarBase {\n value: (value: T | Nil) => this;\n update: (update: SignalFunctionType<T> | Nil) => this;\n\n getValue: () => T;\n}\n\n/** 语法元素,TODO */\nexport interface IScale extends IGrammarBase {\n domain: (domain: ScaleFunctionType<any[]> | ScaleData | MultiScaleData | Nil) => this;\n range: (range: ScaleFunctionType<any[]> | ScaleData | MultiScaleData | Nil) => this;\n configure: (config: ScaleConfigureSpec | Nil) => this;\n\n // only used in VGrammar\n getRangeFactor: () => [number, number] | Nil;\n setRangeFactor: (range?: [number, number]) => this;\n getFishEye: () => ScaleFishEyeOptions | Nil;\n setFishEye: (option?: ScaleFishEyeOptions) => this;\n\n // scale util methods\n getScaleType: () => GrammarScaleType;\n getScale: () => IBaseScale;\n ticks: (count?: number) => TickData[];\n getCoordinateAxisPoints: (baseValue?: number) => [IPointLike, IPointLike];\n getCoordinate: () => IPolarCoordinate | ICartesianCoordinate;\n getCoordinateAxisPosition: () => 'top' | 'bottom' | 'left' | 'right' | 'inside' | 'outside' | 'start' | 'end';\n}\n\nexport interface ICoordinate extends IGrammarBase {\n start: (start: CoordinateFunctionType<[number, number]> | Nil) => this;\n end: (end: CoordinateFunctionType<[number, number]> | Nil) => this;\n origin: (origin: CoordinateFunctionType<[number, number]> | Nil) => this;\n\n translate: (offset: CoordinateFunctionType<[number, number]> | Nil) => this;\n rotate: (angle: CoordinateFunctionType<number> | Nil) => this;\n scale: (ratio: CoordinateFunctionType<[number, number]> | Nil) => this;\n transpose: (isTransposed: CoordinateFunctionType<boolean> | Nil) => this;\n\n // coordinate util methods\n}\n\n/** 语法元素,TODO */\n\n/** group mark */\nexport interface IGroupMark extends IMark {\n children: (IMark | IGroupMark | IGlyphMark)[];\n\n layoutChildren?: (IMark | IGroupMark | IGlyphMark)[];\n\n appendChild: (mark: IMark | IGroupMark | IGlyphMark) => this;\n removeChild: (mark: IMark | IGroupMark | IGlyphMark) => this;\n includesChild: (mark: IMark, descendant?: boolean) => boolean;\n\n updateLayoutChildren: () => this;\n}\n\nexport interface IGlyphMark extends IMark {\n glyphType: string;\n getGlyphMeta: () => IGlyphMeta;\n configureGlyph: (config: any) => this;\n getGlyphConfig: () => any;\n}\n\nexport interface IComponent extends IMark {\n componentType: string;\n configureComponent: (config: any) => this;\n}\n\nexport interface IProgressiveGrammar {\n /** 是否启动了增量渲染模式 */\n isProgressive: () => boolean;\n /** 是否正在执行增量渲染 */\n isDoingProgressive: () => boolean;\n /** 清除增量渲染相关状态 */\n clearProgressive: () => void;\n /** 从第一帧开始增量计算 */\n restartProgressive: () => void;\n /** 分片执行 */\n evaluateProgressive: () => void;\n}\n\nexport interface IMark extends IGrammarBase, IProgressiveGrammar {\n group?: IGroupMark;\n\n markType: MarkType;\n context: any;\n coord: ICoordinate;\n /**\n * disable coordinate transform when need\n */\n disableCoordinateTransform?: boolean;\n elements: IElement[];\n elementMap: Map<string, IElement>;\n graphicIndex: number;\n graphicItem?: IGroup;\n animate?: IAnimate;\n\n join: (\n data: IData | string | Nil,\n key?: MarkKeySpec,\n sort?: MarkSortSpec,\n groupBy?: MarkKeySpec,\n groupSort?: MarkSortSpec\n ) => this;\n coordinate: (coordinate: ICoordinate | string | Nil) => this;\n state: (state: MarkFunctionType<string | string[]> | Nil) => this;\n encode: ((encoders: BaseSignleEncodeSpec) => this) & ((channel: string, value: ChannelEncodeType) => this);\n encodeState: ((state: string, channel: string, value: ChannelEncodeType) => this) &\n ((state: string, encoders: BaseSignleEncodeSpec) => this);\n animation: (animationConfig: MarkAnimationSpec | Nil) => this;\n animationState: (animationState: MarkFunctionType<string> | Nil) => this;\n layout: (layout: MarkLayoutSpec | MarkLayoutCallback | Nil) => this;\n configure: (config: IMarkConfig | Nil) => this;\n transform: (transform: TransformSpec[] | Nil) => this;\n\n needAnimate: () => boolean;\n getBounds: () => IBounds;\n isCollectionMark: () => boolean;\n getAllElements: () => IElement[];\n\n // position: () => this;\n // color: () => this;\n // shape: () => this;\n\n // mark 执行流程相关接口\n\n isUpdated: boolean;\n getGroupGraphicItem: () => any;\n cleanExitElements: () => void;\n addGraphicItem: (attrs: any, groupKey?: string) => IGraphic;\n getMorphConfig: () => { morph: boolean; morphKey: string | undefined; morphElementKey: string | undefined };\n prepareRelease: () => void;\n\n layoutBounds?: IBounds;\n relativePosition?: { top?: number; bottom?: number; left?: number; right?: number };\n needLayout: () => boolean;\n handleLayoutEnd: () => void;\n handleRenderEnd: () => void;\n isLargeMode: () => boolean;\n getAttributeTransforms: () => AttributeTransform[];\n\n getScalesByChannel: () => Record<string, IBaseScale> | undefined;\n getFieldsByChannel: () => Record<string, string> | undefined;\n getScales: () => Record<string, IBaseScale> | undefined;\n}\n\nexport interface IGrammarBaseConstructor {\n new (view: IView): IGrammarBase;\n}\n\nexport interface ProgressiveContext {\n currentIndex: number;\n totalStep: number;\n step: number;\n data: any[];\n groupKeys?: string[];\n groupedData?: Map<string, any[]>;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/types/grammar.ts"],"names":[],"mappings":"","file":"grammar.js","sourcesContent":["import type { EventEmitter, IBounds, IPointLike } from '@visactor/vutils';\nimport type { IGraphic, IGroup } from '@visactor/vrender-core';\nimport type { IBaseScale, ScaleFishEyeOptions, TickData } from '@visactor/vscale';\nimport type { ITransform, TransformSpec } from './transform';\nimport type { DataFormatSpec, IDataFilter } from './data';\nimport type { ParameterFunctionType, SignalFunctionType } from './signal';\nimport type { IAnimate } from './animate';\nimport type { IGlyphMeta } from './glyph';\nimport type { GrammarTypeEnum } from '../graph/enums';\nimport type { Nil } from './base';\nimport type { CoordinateFunctionType } from './coordinate';\nimport type { IElement } from './element';\nimport type {\n MarkFunctionType,\n MarkAnimationSpec,\n MarkType,\n MarkLayoutSpec,\n MarkLayoutCallback,\n MarkSortSpec,\n MarkKeySpec,\n IMarkConfig,\n ChannelEncodeType,\n AttributeTransform,\n BaseSignleEncodeSpec\n} from './mark';\nimport type { ScaleConfigureSpec, ScaleData, ScaleFunctionType, GrammarScaleType, MultiScaleData } from './scale';\nimport type { IView } from './view';\nimport type { BaseEventHandler } from './event';\nimport type { ICartesianCoordinate, IPolarCoordinate } from '@visactor/vgrammar-coordinate';\n\nexport type BuiltInGrammarType = keyof typeof GrammarTypeEnum;\nexport type GrammarType = BuiltInGrammarType | string;\n\n/** 语法元素内置运行的任务 */\nexport interface IGrammarTask extends ITransform {\n /**\n * 参数依赖\n * 只做一级解析\n */\n options?: Record<string, any | IGrammarBase> | (IGrammarBase | any)[];\n /**\n * 依赖的语法元素\n */\n references?: IGrammarBase[];\n /**\n * 是否只支持简单的options配置,不支持在options引用语法元素\n */\n isRawOptions?: boolean;\n}\n\nexport interface GrammarSpec {\n id?: string;\n dependency?: IGrammarBase[] | IGrammarBase | string[] | string;\n}\n\nexport interface IGrammarBase {\n readonly grammarType: GrammarType;\n readonly view: IView;\n readonly uid: number;\n /**\n * 执行的上游节点\n */\n grammarSource: IGrammarBase;\n /**\n * 影响的下游节点\n */\n targets: IGrammarBase[];\n /**\n * 依赖的上游节点,由于不同 spec 配置项中可能引用同一个节点,需要进行计数\n */\n references: Map<IGrammarBase, number>;\n\n depend: (grammar: IGrammarBase[] | IGrammarBase | string[] | string) => this;\n\n addEventListener: (type: string, handler: BaseEventHandler, options?: any) => this;\n removeEventListener: (type: string, handler: BaseEventHandler) => this;\n\n // extended from EventEmitter\n emit: <T extends EventEmitter.EventNames<string | symbol>>(\n event: T,\n ...args: EventEmitter.EventArgs<string | symbol, T>\n ) => boolean;\n emitGrammarEvent: <T extends EventEmitter.EventNames<string | symbol>>(\n event: T,\n ...args: EventEmitter.EventArgs<string | symbol, T>\n ) => boolean;\n\n tasks?: IGrammarTask[];\n // value?: any;\n /** FIXME: operator执行顺序,改造后,dataflow执行元素,应该抽象出来 */\n rank?: number;\n // todo\n set: (value: any) => boolean;\n id: (() => string) & ((id: string) => this);\n name: (() => string) & ((name: string) => this);\n attach: (reference: IGrammarBase | IGrammarBase[], count?: number) => this;\n detach: (reference: IGrammarBase | IGrammarBase[], count?: number) => this;\n detachAll: () => void;\n commit: () => void;\n output: () => any;\n parse: (spec: any) => this;\n parameters: () => { [key: string]: any };\n evaluateSync?: (upstream: any, parameters: any) => this;\n getSpec: () => any;\n reuse: (grammar: IGrammarBase) => this;\n /** clear references */\n clear: () => void;\n /** release all memory storage */\n release: () => void;\n}\n\nexport interface IData extends IGrammarBase {\n values: (values: any | Nil, format?: ParameterFunctionType<DataFormatSpec>, load?: boolean) => this;\n url: (\n url: ParameterFunctionType<string> | Nil,\n format?: ParameterFunctionType<DataFormatSpec>,\n load?: boolean\n ) => this;\n source: (\n source: string | string[] | IData | IData[],\n format?: ParameterFunctionType<DataFormatSpec>,\n load?: boolean\n ) => this;\n transform: (transform: TransformSpec[] | Nil) => this;\n\n // only used in VGrammar\n addDataFilter: (filter: IDataFilter | IDataFilter[]) => this;\n removeDataFilter: (filter: IDataFilter | IDataFilter[]) => this;\n\n // data util methods\n field: (field: string) => any[];\n getValue: () => any[];\n getInput: () => any[];\n getDataIDKey: () => string;\n}\n\n/** 语法元素,TODO */\nexport interface ISignal<T> extends IGrammarBase {\n value: (value: T | Nil) => this;\n update: (update: SignalFunctionType<T> | Nil) => this;\n\n getValue: () => T;\n}\n\n/** 语法元素,TODO */\nexport interface IScale extends IGrammarBase {\n domain: (domain: ScaleFunctionType<any[]> | ScaleData | MultiScaleData | Nil) => this;\n range: (range: ScaleFunctionType<any[]> | ScaleData | MultiScaleData | Nil) => this;\n configure: (config: ScaleConfigureSpec | Nil) => this;\n tickCount: (tickCount: ScaleFunctionType<number> | Nil) => this;\n\n // only used in VGrammar\n getRangeFactor: () => [number, number] | Nil;\n setRangeFactor: (range?: [number, number]) => this;\n getFishEye: () => ScaleFishEyeOptions | Nil;\n setFishEye: (option?: ScaleFishEyeOptions) => this;\n\n // scale util methods\n getScaleType: () => GrammarScaleType;\n getScale: () => IBaseScale;\n ticks: (count?: number) => TickData[];\n getCoordinateAxisPoints: (baseValue?: number) => [IPointLike, IPointLike];\n getCoordinate: () => IPolarCoordinate | ICartesianCoordinate;\n getCoordinateAxisPosition: () => 'top' | 'bottom' | 'left' | 'right' | 'inside' | 'outside' | 'start' | 'end';\n}\n\nexport interface ICoordinate extends IGrammarBase {\n start: (start: CoordinateFunctionType<[number, number]> | Nil) => this;\n end: (end: CoordinateFunctionType<[number, number]> | Nil) => this;\n origin: (origin: CoordinateFunctionType<[number, number]> | Nil) => this;\n\n translate: (offset: CoordinateFunctionType<[number, number]> | Nil) => this;\n rotate: (angle: CoordinateFunctionType<number> | Nil) => this;\n scale: (ratio: CoordinateFunctionType<[number, number]> | Nil) => this;\n transpose: (isTransposed: CoordinateFunctionType<boolean> | Nil) => this;\n\n // coordinate util methods\n}\n\n/** 语法元素,TODO */\n\n/** group mark */\nexport interface IGroupMark extends IMark {\n children: (IMark | IGroupMark | IGlyphMark)[];\n\n layoutChildren?: (IMark | IGroupMark | IGlyphMark)[];\n\n appendChild: (mark: IMark | IGroupMark | IGlyphMark) => this;\n removeChild: (mark: IMark | IGroupMark | IGlyphMark) => this;\n includesChild: (mark: IMark, descendant?: boolean) => boolean;\n\n updateLayoutChildren: () => this;\n}\n\nexport interface IGlyphMark extends IMark {\n glyphType: string;\n getGlyphMeta: () => IGlyphMeta;\n configureGlyph: (config: any) => this;\n getGlyphConfig: () => any;\n}\n\nexport interface IComponent extends IMark {\n componentType: string;\n configureComponent: (config: any) => this;\n}\n\nexport interface IProgressiveGrammar {\n /** 是否启动了增量渲染模式 */\n isProgressive: () => boolean;\n /** 是否正在执行增量渲染 */\n isDoingProgressive: () => boolean;\n /** 清除增量渲染相关状态 */\n clearProgressive: () => void;\n /** 从第一帧开始增量计算 */\n restartProgressive: () => void;\n /** 分片执行 */\n evaluateProgressive: () => void;\n}\n\nexport interface IMark extends IGrammarBase, IProgressiveGrammar {\n group?: IGroupMark;\n\n markType: MarkType;\n context: any;\n coord: ICoordinate;\n /**\n * disable coordinate transform when need\n */\n disableCoordinateTransform?: boolean;\n elements: IElement[];\n elementMap: Map<string, IElement>;\n graphicIndex: number;\n graphicItem?: IGroup;\n animate?: IAnimate;\n\n join: (\n data: IData | string | Nil,\n key?: MarkKeySpec,\n sort?: MarkSortSpec,\n groupBy?: MarkKeySpec,\n groupSort?: MarkSortSpec\n ) => this;\n coordinate: (coordinate: ICoordinate | string | Nil) => this;\n state: (state: MarkFunctionType<string | string[]> | Nil) => this;\n encode: ((encoders: BaseSignleEncodeSpec) => this) & ((channel: string, value: ChannelEncodeType) => this);\n encodeState: ((state: string, channel: string, value: ChannelEncodeType) => this) &\n ((state: string, encoders: BaseSignleEncodeSpec) => this);\n animation: (animationConfig: MarkAnimationSpec | Nil) => this;\n animationState: (animationState: MarkFunctionType<string> | Nil) => this;\n layout: (layout: MarkLayoutSpec | MarkLayoutCallback | Nil) => this;\n configure: (config: IMarkConfig | Nil) => this;\n transform: (transform: TransformSpec[] | Nil) => this;\n\n needAnimate: () => boolean;\n getBounds: () => IBounds;\n isCollectionMark: () => boolean;\n getAllElements: () => IElement[];\n\n // position: () => this;\n // color: () => this;\n // shape: () => this;\n\n // mark 执行流程相关接口\n\n isUpdated: boolean;\n getGroupGraphicItem: () => any;\n cleanExitElements: () => void;\n addGraphicItem: (attrs: any, groupKey?: string) => IGraphic;\n getMorphConfig: () => { morph: boolean; morphKey: string | undefined; morphElementKey: string | undefined };\n prepareRelease: () => void;\n\n layoutBounds?: IBounds;\n relativePosition?: { top?: number; bottom?: number; left?: number; right?: number };\n needLayout: () => boolean;\n handleLayoutEnd: () => void;\n handleRenderEnd: () => void;\n isLargeMode: () => boolean;\n getAttributeTransforms: () => AttributeTransform[];\n\n getScalesByChannel: () => Record<string, IBaseScale> | undefined;\n getFieldsByChannel: () => Record<string, string> | undefined;\n getScales: () => Record<string, IBaseScale> | undefined;\n}\n\nexport interface IGrammarBaseConstructor {\n new (view: IView): IGrammarBase;\n}\n\nexport interface ProgressiveContext {\n currentIndex: number;\n totalStep: number;\n step: number;\n data: any[];\n groupKeys?: string[];\n groupedData?: Map<string, any[]>;\n}\n"]}
|
package/cjs/types/mark.d.ts
CHANGED
|
@@ -128,6 +128,7 @@ export interface IMarkConfig {
|
|
|
128
128
|
zIndex?: number;
|
|
129
129
|
interactive?: boolean;
|
|
130
130
|
context?: any;
|
|
131
|
+
skipTheme?: boolean;
|
|
131
132
|
setCustomizedShape?: (datum: any[], attrs: any, path: ICustomPath2D) => ICustomPath2D;
|
|
132
133
|
large?: boolean;
|
|
133
134
|
largeThreshold?: number;
|