@visactor/vgrammar-core 0.10.2 → 0.10.4
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.js +1 -1
- package/cjs/component/axis.js.map +1 -1
- package/cjs/component/datazoom.js +23 -30
- package/cjs/component/datazoom.js.map +1 -1
- package/cjs/component/label.js +11 -11
- package/cjs/component/label.js.map +1 -1
- package/cjs/component/legend.js +4 -6
- package/cjs/component/legend.js.map +1 -1
- package/cjs/component/player.js +4 -12
- package/cjs/component/player.js.map +1 -1
- package/cjs/component/scrollbar.js +12 -24
- package/cjs/component/scrollbar.js.map +1 -1
- package/cjs/component/slider.js +1 -3
- package/cjs/component/slider.js.map +1 -1
- package/cjs/glyph/boxplot.js +34 -20
- package/cjs/glyph/boxplot.js.map +1 -1
- package/cjs/glyph/violin.js +18 -11
- package/cjs/glyph/violin.js.map +1 -1
- package/cjs/graph/animation/animation/clip.js +2 -2
- package/cjs/graph/animation/animation/clip.js.map +1 -1
- package/cjs/graph/animation/animation/grow-cartesian.js +11 -11
- package/cjs/graph/animation/animation/grow-cartesian.js.map +1 -1
- package/cjs/graph/animation/animation/grow-interval.js +18 -18
- package/cjs/graph/animation/animation/grow-interval.js.map +1 -1
- package/cjs/graph/animation/animation/grow-points.js +3 -3
- package/cjs/graph/animation/animation/grow-points.js.map +1 -1
- package/cjs/graph/animation/animation/grow-polar.js +8 -8
- package/cjs/graph/animation/animation/grow-polar.js.map +1 -1
- package/cjs/graph/animation/animation/move.js +12 -14
- package/cjs/graph/animation/animation/move.js.map +1 -1
- package/cjs/graph/animation/animation/update.js +1 -1
- package/cjs/graph/animation/animation/update.js.map +1 -1
- package/cjs/graph/animation/attribute.js +2 -2
- package/cjs/graph/animation/attribute.js.map +1 -1
- package/cjs/graph/attributes/helpers.js +9 -11
- package/cjs/graph/attributes/helpers.js.map +1 -1
- package/cjs/graph/attributes/transform.js +1 -1
- package/cjs/graph/attributes/transform.js.map +1 -1
- package/cjs/graph/element.js +1 -1
- package/cjs/graph/element.js.map +1 -1
- package/cjs/graph/layout/grid.js +1 -1
- package/cjs/graph/layout/grid.js.map +1 -1
- package/cjs/graph/mark/graphic.js +31 -22
- package/cjs/graph/mark/graphic.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/interactions/brush-base.js +3 -5
- package/cjs/interactions/brush-base.js.map +1 -1
- package/cjs/interactions/view-navigation-base.js +3 -3
- package/cjs/interactions/view-navigation-base.js.map +1 -1
- package/cjs/interactions/view-roam.js +10 -10
- package/cjs/interactions/view-roam.js.map +1 -1
- package/cjs/interactions/view-scroll-mixin.js +1 -1
- package/cjs/interactions/view-scroll-mixin.js.map +1 -1
- package/cjs/interactions/view-zoom-mixin.js +2 -2
- package/cjs/interactions/view-zoom-mixin.js.map +1 -1
- package/cjs/parse/event.js +1 -2
- package/cjs/parse/event.js.map +1 -1
- package/cjs/parse/scale.js +5 -4
- package/cjs/parse/scale.js.map +1 -1
- package/cjs/parse/view.js +11 -10
- package/cjs/parse/view.js.map +1 -1
- package/cjs/view/View.js +12 -13
- package/cjs/view/View.js.map +1 -1
- package/cjs/view/animate.js +11 -11
- package/cjs/view/animate.js.map +1 -1
- package/cjs/view/mark.js +6 -10
- package/cjs/view/mark.js.map +1 -1
- package/es/component/axis.js +1 -1
- package/es/component/axis.js.map +1 -1
- package/es/component/datazoom.js +23 -26
- package/es/component/datazoom.js.map +1 -1
- package/es/component/label.js +11 -11
- package/es/component/label.js.map +1 -1
- package/es/component/legend.js +4 -6
- package/es/component/legend.js.map +1 -1
- package/es/component/player.js +4 -12
- package/es/component/player.js.map +1 -1
- package/es/component/scrollbar.js +7 -18
- package/es/component/scrollbar.js.map +1 -1
- package/es/component/slider.js +1 -3
- package/es/component/slider.js.map +1 -1
- package/es/glyph/boxplot.js +22 -19
- package/es/glyph/boxplot.js.map +1 -1
- package/es/glyph/violin.js +12 -10
- package/es/glyph/violin.js.map +1 -1
- package/es/graph/animation/animation/clip.js +2 -2
- package/es/graph/animation/animation/clip.js.map +1 -1
- package/es/graph/animation/animation/grow-cartesian.js +11 -11
- package/es/graph/animation/animation/grow-cartesian.js.map +1 -1
- package/es/graph/animation/animation/grow-interval.js +18 -18
- package/es/graph/animation/animation/grow-interval.js.map +1 -1
- package/es/graph/animation/animation/grow-points.js +3 -3
- package/es/graph/animation/animation/grow-points.js.map +1 -1
- package/es/graph/animation/animation/grow-polar.js +8 -8
- package/es/graph/animation/animation/grow-polar.js.map +1 -1
- package/es/graph/animation/animation/move.js +9 -9
- package/es/graph/animation/animation/move.js.map +1 -1
- package/es/graph/animation/animation/update.js +1 -1
- package/es/graph/animation/animation/update.js.map +1 -1
- package/es/graph/animation/attribute.js +2 -2
- package/es/graph/animation/attribute.js.map +1 -1
- package/es/graph/attributes/helpers.js +8 -11
- package/es/graph/attributes/helpers.js.map +1 -1
- package/es/graph/attributes/transform.js +1 -1
- package/es/graph/attributes/transform.js.map +1 -1
- package/es/graph/element.js +1 -1
- package/es/graph/element.js.map +1 -1
- package/es/graph/layout/grid.js +1 -1
- package/es/graph/layout/grid.js.map +1 -1
- package/es/graph/mark/graphic.js +23 -23
- package/es/graph/mark/graphic.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/interactions/brush-base.js +3 -5
- package/es/interactions/brush-base.js.map +1 -1
- package/es/interactions/brush-filter.js +2 -1
- package/es/interactions/element-highlight-by-group.js +1 -2
- package/es/interactions/index.js +2 -1
- package/es/interactions/legend-filter.js +1 -1
- package/es/interactions/player-filter.js +1 -1
- package/es/interactions/roll-up.js +1 -1
- package/es/interactions/scrollbar-filter.js +1 -1
- package/es/interactions/slider-filter.js +1 -1
- package/es/interactions/tooltip.js +1 -1
- package/es/interactions/utils.js +1 -1
- package/es/interactions/view-navigation-base.js +3 -3
- package/es/interactions/view-navigation-base.js.map +1 -1
- package/es/interactions/view-roam.js +10 -10
- package/es/interactions/view-roam.js.map +1 -1
- package/es/interactions/view-scroll-mixin.js +1 -1
- package/es/interactions/view-scroll-mixin.js.map +1 -1
- package/es/interactions/view-zoom-mixin.js +2 -2
- package/es/interactions/view-zoom-mixin.js.map +1 -1
- package/es/parse/coordinate.js +1 -1
- package/es/parse/event.js +2 -2
- package/es/parse/event.js.map +1 -1
- package/es/parse/mark.js +1 -1
- package/es/parse/option.js +1 -1
- package/es/parse/scale.js +5 -6
- package/es/parse/scale.js.map +1 -1
- package/es/parse/transform.js +1 -1
- package/es/parse/util.js +1 -1
- package/es/parse/view.js +12 -11
- package/es/parse/view.js.map +1 -1
- package/es/view/View.js +12 -13
- package/es/view/View.js.map +1 -1
- package/es/view/animate.js +11 -11
- package/es/view/animate.js.map +1 -1
- package/es/view/mark.js +6 -10
- package/es/view/mark.js.map +1 -1
- package/package.json +9 -9
|
@@ -48,7 +48,7 @@ class ViewZoomMixin {
|
|
|
48
48
|
}
|
|
49
49
|
handleZoomStart(e, navState, zoomOptions) {
|
|
50
50
|
if (!(0, vutils_1.isNil)(e.zoomDelta)) return e.stopPropagation(), e.preventDefault(),
|
|
51
|
-
|
|
51
|
+
zoomOptions && zoomOptions.realtime ? this._handleZooming(e, navState, zoomOptions) : ((0,
|
|
52
52
|
vutils_1.isNil)(this._zoomPos) ? this._zoomPos = {
|
|
53
53
|
zoomDelta: e.zoomDelta,
|
|
54
54
|
zoomX: e.zoomX,
|
|
@@ -57,7 +57,7 @@ class ViewZoomMixin {
|
|
|
57
57
|
}
|
|
58
58
|
handleZoomEnd(e, navState, zoomOptions) {
|
|
59
59
|
this._lastScale = null;
|
|
60
|
-
const res = !1 ===
|
|
60
|
+
const res = zoomOptions && !1 === zoomOptions.realtime && this._zoomPos ? this._handleZooming(this._zoomPos, navState, zoomOptions) : null;
|
|
61
61
|
return this._zoomPos = null, res;
|
|
62
62
|
}
|
|
63
63
|
handleZoomReset(e, navState, zoomOptions) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/interactions/view-zoom-mixin.ts"],"names":[],"mappings":"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","file":"view-zoom-mixin.js","sourcesContent":["import { clamp, isNil } from '@visactor/vutils';\nimport type {\n IViewZoomMixin,\n InteractionEvent,\n ViewNavigationRange,\n ViewStateByDim,\n ViewZoomSimpleOptions\n} from '../types';\nimport { getFilteredValuesFromScale, getRangeOfLinkedComponent } from './view-utils';\n\nexport class ViewZoomMixin implements IViewZoomMixin {\n protected declare _state: Partial<Record<'x' | 'y', ViewStateByDim>>;\n\n protected _lastScale: number;\n protected _zoomPos: {\n zoomDelta: number;\n zoomX: number;\n zoomY: number;\n };\n\n protected _formatPinchZoom(e: InteractionEvent) {\n const scale = (e as any).scale;\n if (isNil(this._lastScale)) {\n this._lastScale = scale;\n return e;\n }\n const zoomDelta = scale / this._lastScale;\n\n this._lastScale = scale;\n const center = (e as any).center;\n\n (e as any).zoomDelta = zoomDelta;\n (e as any).zoomX = center.x;\n (e as any).zoomY = center.y;\n\n return e;\n }\n\n protected _formatWheelZoom(e: InteractionEvent) {\n /**\n * @see https://vega.github.io/vega/examples/zoomable-world-map/\n * After testing, the ctrlKey field will only be true when the directions of the two fingers are inconsistent.\n * Based on this, determine whether to trigger the scroll event.\n */\n if (!(e as any).ctrlKey) {\n (e as any).zoomDelta = null;\n (e as any).zoomX = null;\n (e as any).zoomY = null;\n return e;\n }\n\n // @see https://vega.github.io/vega/examples/zoomable-world-map/\n const zoomDelta = Math.pow(1.0005, -(e as any).deltaY * Math.pow(16, (e as any).deltaMode));\n\n (e as any).zoomDelta = zoomDelta;\n (e as any).zoomX = e.canvasX;\n (e as any).zoomY = e.canvasY;\n return e;\n }\n\n formatZoomEvent(e: InteractionEvent) {\n if (!e) {\n return e;\n }\n\n if (e.type === 'pinch') {\n return this._formatPinchZoom(e);\n }\n\n return this._formatWheelZoom(e);\n }\n\n updateZoomRange(\n rangeFactor: [number, number] = [0, 1],\n range: [number, number],\n zoomEvent: { zoomDelta: number; zoomX: number; zoomY: number },\n zoomOptions?: { rate?: number; focus?: boolean }\n ) {\n const { zoomDelta } = zoomEvent;\n\n const rangeDelta = Math.abs(rangeFactor[1] - rangeFactor[0]);\n\n if (rangeDelta >= 1 && zoomDelta >= 1) {\n return;\n }\n if (rangeDelta <= 1e-3 && zoomDelta <= 1) {\n return;\n }\n const value = (rangeDelta * (zoomDelta - 1) * (zoomOptions.rate ?? 1)) / 2;\n\n const start = clamp(rangeFactor[0] - value, 0, 1);\n const end = clamp(rangeFactor[1] + value, 0, 1);\n\n return [Math.min(start, end), Math.max(start, end)] as [number, number];\n }\n\n protected _handleZooming(\n zoomPos: { zoomDelta: number; zoomX: number; zoomY: number },\n navState: Partial<Record<'x' | 'y', ViewStateByDim>>,\n zoomOptions?: ViewZoomSimpleOptions\n ): ViewNavigationRange {\n const res: ViewNavigationRange = { needUpdate: false };\n if (!navState) {\n return res;\n }\n\n Object.keys(navState).forEach(dim => {\n const { scale, data, linkedComponent, rangeFactor } = navState[dim];\n\n if (linkedComponent) {\n res[dim] = this.updateZoomRange(getRangeOfLinkedComponent(linkedComponent), null, zoomPos, zoomOptions);\n } else if (scale) {\n const innerScale = scale.getScale();\n const newRange = this.updateZoomRange(rangeFactor, innerScale, zoomPos, zoomOptions);\n\n if (newRange) {\n navState[dim].rangeFactor = newRange;\n\n if (data) {\n navState[dim].filterValue = newRange;\n\n data.commit();\n } else {\n scale.setRangeFactor(newRange);\n scale.commit();\n }\n res.needUpdate = true;\n res[dim] = newRange;\n }\n }\n });\n return res;\n }\n\n handleZoomStart(\n e: InteractionEvent,\n navState: Partial<Record<'x' | 'y', ViewStateByDim>>,\n zoomOptions?: ViewZoomSimpleOptions\n ): ViewNavigationRange {\n if (isNil((e as any).zoomDelta)) {\n return;\n }\n e.stopPropagation();\n e.preventDefault();\n\n if (zoomOptions?.realtime) {\n return this._handleZooming(\n e as unknown as { zoomDelta: number; zoomX: number; zoomY: number },\n navState,\n zoomOptions\n );\n }\n\n if (isNil(this._zoomPos)) {\n this._zoomPos = {\n zoomDelta: (e as any).zoomDelta,\n zoomX: (e as any).zoomX,\n zoomY: (e as any).zoomY\n };\n } else {\n this._zoomPos.zoomDelta *= (e as any).zoomDelta;\n }\n\n return null;\n }\n\n handleZoomEnd(\n e: InteractionEvent,\n navState: Partial<Record<'x' | 'y', ViewStateByDim>>,\n zoomOptions?: ViewZoomSimpleOptions\n ): ViewNavigationRange {\n this._lastScale = null;\n const res =\n zoomOptions?.realtime === false && this._zoomPos\n ? this._handleZooming(this._zoomPos, navState, zoomOptions)\n : null;\n\n this._zoomPos = null;\n\n return res;\n }\n\n handleZoomReset(\n e: InteractionEvent,\n navState: Partial<Record<'x' | 'y', ViewStateByDim>>,\n zoomOptions?: ViewZoomSimpleOptions\n ): ViewNavigationRange {\n const res: ViewNavigationRange = { needUpdate: false };\n if (!navState) {\n return res;\n }\n\n Object.keys(navState).forEach(dim => {\n const { scale, data, linkedComponent } = navState[dim];\n const newRange = [0, 1];\n\n if (linkedComponent) {\n res[dim] = newRange;\n } else if (scale) {\n navState[dim].rangeFactor = null;\n\n if (data) {\n navState[dim].filterValue = null;\n\n data.commit();\n } else {\n scale.setRangeFactor(newRange);\n scale.commit();\n }\n res.needUpdate = true;\n res[dim] = newRange;\n }\n });\n return res;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/interactions/view-zoom-mixin.ts"],"names":[],"mappings":"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","file":"view-zoom-mixin.js","sourcesContent":["import { clamp, isNil } from '@visactor/vutils';\nimport type {\n IViewZoomMixin,\n InteractionEvent,\n ViewNavigationRange,\n ViewStateByDim,\n ViewZoomSimpleOptions\n} from '../types';\nimport { getFilteredValuesFromScale, getRangeOfLinkedComponent } from './view-utils';\n\nexport class ViewZoomMixin implements IViewZoomMixin {\n protected declare _state: Partial<Record<'x' | 'y', ViewStateByDim>>;\n\n protected _lastScale: number;\n protected _zoomPos: {\n zoomDelta: number;\n zoomX: number;\n zoomY: number;\n };\n\n protected _formatPinchZoom(e: InteractionEvent) {\n const scale = (e as any).scale;\n if (isNil(this._lastScale)) {\n this._lastScale = scale;\n return e;\n }\n const zoomDelta = scale / this._lastScale;\n\n this._lastScale = scale;\n const center = (e as any).center;\n\n (e as any).zoomDelta = zoomDelta;\n (e as any).zoomX = center.x;\n (e as any).zoomY = center.y;\n\n return e;\n }\n\n protected _formatWheelZoom(e: InteractionEvent) {\n /**\n * @see https://vega.github.io/vega/examples/zoomable-world-map/\n * After testing, the ctrlKey field will only be true when the directions of the two fingers are inconsistent.\n * Based on this, determine whether to trigger the scroll event.\n */\n if (!(e as any).ctrlKey) {\n (e as any).zoomDelta = null;\n (e as any).zoomX = null;\n (e as any).zoomY = null;\n return e;\n }\n\n // @see https://vega.github.io/vega/examples/zoomable-world-map/\n const zoomDelta = Math.pow(1.0005, -(e as any).deltaY * Math.pow(16, (e as any).deltaMode));\n\n (e as any).zoomDelta = zoomDelta;\n (e as any).zoomX = e.canvasX;\n (e as any).zoomY = e.canvasY;\n return e;\n }\n\n formatZoomEvent(e: InteractionEvent) {\n if (!e) {\n return e;\n }\n\n if (e.type === 'pinch') {\n return this._formatPinchZoom(e);\n }\n\n return this._formatWheelZoom(e);\n }\n\n updateZoomRange(\n rangeFactor: [number, number] = [0, 1],\n range: [number, number],\n zoomEvent: { zoomDelta: number; zoomX: number; zoomY: number },\n zoomOptions?: { rate?: number; focus?: boolean }\n ) {\n const { zoomDelta } = zoomEvent;\n\n const rangeDelta = Math.abs(rangeFactor[1] - rangeFactor[0]);\n\n if (rangeDelta >= 1 && zoomDelta >= 1) {\n return;\n }\n if (rangeDelta <= 1e-3 && zoomDelta <= 1) {\n return;\n }\n const value = (rangeDelta * (zoomDelta - 1) * (zoomOptions.rate ?? 1)) / 2;\n\n const start = clamp(rangeFactor[0] - value, 0, 1);\n const end = clamp(rangeFactor[1] + value, 0, 1);\n\n return [Math.min(start, end), Math.max(start, end)] as [number, number];\n }\n\n protected _handleZooming(\n zoomPos: { zoomDelta: number; zoomX: number; zoomY: number },\n navState: Partial<Record<'x' | 'y', ViewStateByDim>>,\n zoomOptions?: ViewZoomSimpleOptions\n ): ViewNavigationRange {\n const res: ViewNavigationRange = { needUpdate: false };\n if (!navState) {\n return res;\n }\n\n Object.keys(navState).forEach(dim => {\n const { scale, data, linkedComponent, rangeFactor } = navState[dim];\n\n if (linkedComponent) {\n res[dim] = this.updateZoomRange(getRangeOfLinkedComponent(linkedComponent), null, zoomPos, zoomOptions);\n } else if (scale) {\n const innerScale = scale.getScale();\n const newRange = this.updateZoomRange(rangeFactor, innerScale, zoomPos, zoomOptions);\n\n if (newRange) {\n navState[dim].rangeFactor = newRange;\n\n if (data) {\n navState[dim].filterValue = newRange;\n\n data.commit();\n } else {\n scale.setRangeFactor(newRange);\n scale.commit();\n }\n res.needUpdate = true;\n res[dim] = newRange;\n }\n }\n });\n return res;\n }\n\n handleZoomStart(\n e: InteractionEvent,\n navState: Partial<Record<'x' | 'y', ViewStateByDim>>,\n zoomOptions?: ViewZoomSimpleOptions\n ): ViewNavigationRange {\n if (isNil((e as any).zoomDelta)) {\n return;\n }\n e.stopPropagation();\n e.preventDefault();\n\n if (zoomOptions && zoomOptions.realtime) {\n return this._handleZooming(\n e as unknown as { zoomDelta: number; zoomX: number; zoomY: number },\n navState,\n zoomOptions\n );\n }\n\n if (isNil(this._zoomPos)) {\n this._zoomPos = {\n zoomDelta: (e as any).zoomDelta,\n zoomX: (e as any).zoomX,\n zoomY: (e as any).zoomY\n };\n } else {\n this._zoomPos.zoomDelta *= (e as any).zoomDelta;\n }\n\n return null;\n }\n\n handleZoomEnd(\n e: InteractionEvent,\n navState: Partial<Record<'x' | 'y', ViewStateByDim>>,\n zoomOptions?: ViewZoomSimpleOptions\n ): ViewNavigationRange {\n this._lastScale = null;\n const res =\n zoomOptions && zoomOptions.realtime === false && this._zoomPos\n ? this._handleZooming(this._zoomPos, navState, zoomOptions)\n : null;\n\n this._zoomPos = null;\n\n return res;\n }\n\n handleZoomReset(\n e: InteractionEvent,\n navState: Partial<Record<'x' | 'y', ViewStateByDim>>,\n zoomOptions?: ViewZoomSimpleOptions\n ): ViewNavigationRange {\n const res: ViewNavigationRange = { needUpdate: false };\n if (!navState) {\n return res;\n }\n\n Object.keys(navState).forEach(dim => {\n const { scale, data, linkedComponent } = navState[dim];\n const newRange = [0, 1];\n\n if (linkedComponent) {\n res[dim] = newRange;\n } else if (scale) {\n navState[dim].rangeFactor = null;\n\n if (data) {\n navState[dim].filterValue = null;\n\n data.commit();\n } else {\n scale.setRangeFactor(newRange);\n scale.commit();\n }\n res.needUpdate = true;\n res[dim] = newRange;\n }\n });\n return res;\n }\n}\n"]}
|
package/cjs/parse/event.js
CHANGED
|
@@ -11,8 +11,7 @@ vutils_1.isNil)(evtSpec.type) ? el => el && el.mark.markType === evtSpec.type :
|
|
|
11
11
|
|
|
12
12
|
exports.generateFilterByMark = generateFilterByMark;
|
|
13
13
|
|
|
14
|
-
const parseHandler = (callback, config) =>
|
|
15
|
-
vutils_1.debounce)(callback, config.debounce) : (null == config ? void 0 : config.throttle) ? (0,
|
|
14
|
+
const parseHandler = (callback, config) => config && config.debounce ? (0, vutils_1.debounce)(callback, config.debounce) : config && config.throttle ? (0,
|
|
16
15
|
vutils_1.throttle)(callback, config.throttle) : callback;
|
|
17
16
|
|
|
18
17
|
exports.parseHandler = parseHandler;
|
package/cjs/parse/event.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/parse/event.ts"],"names":[],"mappings":";;;AAAA,6CAA6D;AAS7D,mDAAmD;AACnD,iDAA2E;AAEpE,MAAM,oBAAoB,GAAG,CAAC,OAA6D,EAAE,EAAE;IACpG,IAAI,IAAA,cAAK,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACzB,OAAO,CAAC,EAAY,EAAE,EAAE;YACtB,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC;QAC/C,CAAC,CAAC;KACH;IAED,IAAI,IAAA,cAAK,EAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3B,OAAO,CAAC,EAAY,EAAE,EAAE;YACtB,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC,QAAQ,CAAC;QACnD,CAAC,CAAC;KACH;IAED,IAAI,IAAA,cAAK,EAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO,CAAC,EAAY,EAAE,EAAE;YACtB,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC;QACjD,CAAC,CAAC;KACH;IAED,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;AACpB,CAAC,CAAC;AApBW,QAAA,oBAAoB,wBAoB/B;AAEK,MAAM,YAAY,GAAG,CAAC,QAAuB,EAAE,MAAgD,EAAE,EAAE;IACxG,IAAI,MAAM,
|
|
1
|
+
{"version":3,"sources":["../src/parse/event.ts"],"names":[],"mappings":"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","file":"event.js","sourcesContent":["import { debounce, isNil, throttle } from '@visactor/vutils';\nimport type {\n EventSourceType,\n ParsedViewEventSpec,\n ParsedWindowEventSpec,\n EventCallback,\n MarkType,\n IElement\n} from '../types';\nimport { isMarkType } from '../graph/util/graphic';\nimport { EVENT_SOURCE_VIEW, EVENT_SOURCE_WINDOW } from '../view/constants';\n\nexport const generateFilterByMark = (evtSpec: Partial<ParsedViewEventSpec | ParsedWindowEventSpec>) => {\n if (isNil(evtSpec.markId)) {\n return (el: IElement) => {\n return el && el.mark.id() === evtSpec.markId;\n };\n }\n\n if (isNil(evtSpec.markName)) {\n return (el: IElement) => {\n return el && el.mark.name() === evtSpec.markName;\n };\n }\n\n if (isNil(evtSpec.type)) {\n return (el: IElement) => {\n return el && el.mark.markType === evtSpec.type;\n };\n }\n\n return () => true;\n};\n\nexport const parseHandler = (callback: EventCallback, config: { debounce?: number; throttle?: number }) => {\n if (config && config.debounce) {\n return debounce(callback, config.debounce);\n }\n\n if (config && config.throttle) {\n return throttle(callback, config.throttle);\n }\n\n return callback;\n};\n\nconst JOIN_SYMBOL = ':';\nexport const NAME_PREFIX = '@';\nexport const ID_PREFIX = '#';\n\n/**\n * Parse an event selector string.\n * Supported rules:\n * 1. mousedown\n * 2. rect:mousedown\n * 3. window:mousemove\n * 4. @foo:mousedown\n * Returns an event stream definitions.\n */\nexport const parseEventSelector = (\n selector: string,\n source: EventSourceType = EVENT_SOURCE_VIEW\n): Partial<ParsedViewEventSpec | ParsedWindowEventSpec> => {\n const spec: Partial<ParsedViewEventSpec | ParsedWindowEventSpec> = {};\n\n const splitArr = selector.split(JOIN_SYMBOL);\n\n if (splitArr.length === 2) {\n const [space, eventType] = splitArr;\n\n if (space[0] === ID_PREFIX) {\n // events on marks id\n spec.markId = space.slice(1);\n spec.source = source;\n } else if (space[0] === NAME_PREFIX) {\n // events on marks name\n spec.markName = space.slice(1);\n spec.source = source;\n } else if (isMarkType(space)) {\n spec.markType = space as MarkType;\n spec.source = source;\n } else if (space === EVENT_SOURCE_WINDOW) {\n spec.source = EVENT_SOURCE_WINDOW;\n } else {\n spec.source = source;\n }\n\n spec.type = eventType;\n } else if (splitArr.length === 1) {\n spec.type = selector;\n spec.source = source;\n }\n\n return spec;\n};\n"]}
|
package/cjs/parse/scale.js
CHANGED
|
@@ -71,7 +71,7 @@ function isMultiScaleDataType(spec) {
|
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
function parseMultiScaleDataType(spec, view) {
|
|
74
|
-
if (
|
|
74
|
+
if (spec && spec.datas && spec.datas.length) {
|
|
75
75
|
const res = [];
|
|
76
76
|
return spec.datas.forEach((data => {
|
|
77
77
|
const gramarBase = parseScaleDataType(data, view);
|
|
@@ -221,10 +221,11 @@ function configureScaleDomain(spec, scale, parameters) {
|
|
|
221
221
|
}
|
|
222
222
|
|
|
223
223
|
function configureContinuousScale(spec, scale, parameters) {
|
|
224
|
+
var _a;
|
|
224
225
|
(0, util_1.invokeFunctionType)(spec.roundRange, parameters, scale) && scale.rangeRound(scale.range(), !0);
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
|
|
226
|
+
const {interpolate: interpolate, clamp: clamp} = null !== (_a = (0, util_1.invokeFunctionType)(spec.config, parameters, scale)) && void 0 !== _a ? _a : {};
|
|
227
|
+
interpolate && scale.interpolate(interpolate, !0), (0, vutils_1.isNil)(clamp) || ((0,
|
|
228
|
+
vutils_1.isFunction)(clamp) ? scale.clamp(!0, clamp, !0) : scale.clamp(clamp, void 0, !0));
|
|
228
229
|
const tickCount = (0, util_1.invokeFunctionType)(spec.tickCount, parameters, scale);
|
|
229
230
|
tickCount && scale.tickData(tickCount);
|
|
230
231
|
}
|
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 {\n isArray,\n isFunction,\n isNil,\n isNumber,\n isString,\n isValidNumber,\n maxInArray,\n minInArray\n} 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 [minInArray(fieldData), maxInArray(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 {\n isArray,\n isFunction,\n isNil,\n isNumber,\n isString,\n isValidNumber,\n maxInArray,\n minInArray\n} 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 && 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 { interpolate, clamp } = invokeFunctionType(spec.config, parameters, scale) ?? {};\n\n if (interpolate) {\n scale.interpolate(interpolate, true);\n }\n\n if (!isNil(clamp)) {\n if (isFunction(clamp)) {\n scale.clamp(true, clamp, true);\n } else {\n scale.clamp(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 [minInArray(fieldData), maxInArray(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/parse/view.js
CHANGED
|
@@ -88,19 +88,20 @@ const normalizeMarkTree = spec => {
|
|
|
88
88
|
exports.normalizeMarkTree = normalizeMarkTree;
|
|
89
89
|
|
|
90
90
|
const normalizeRunningConfig = runningConfig => {
|
|
91
|
-
var _a, _b, _c, _d, _e
|
|
91
|
+
var _a, _b, _c, _d, _e;
|
|
92
|
+
const {reuse: reuse = constants_1.DefaultReuse, morph: morph = constants_1.DefaultMorph, morphAll: morphAll = constants_1.DefaultMorphAll, animation: animation = {}, enableExitAnimation: enableExitAnimation = constants_1.DefaultEnableExitAnimation} = null != runningConfig ? runningConfig : {};
|
|
92
93
|
return {
|
|
93
|
-
reuse:
|
|
94
|
-
morph:
|
|
95
|
-
morphAll:
|
|
94
|
+
reuse: reuse,
|
|
95
|
+
morph: morph,
|
|
96
|
+
morphAll: morphAll,
|
|
96
97
|
animation: {
|
|
97
|
-
easing: null !== (
|
|
98
|
-
delay: null !== (
|
|
99
|
-
duration: null !== (
|
|
100
|
-
oneByOne: null !== (
|
|
101
|
-
splitPath: null !== (
|
|
98
|
+
easing: null !== (_a = animation.easing) && void 0 !== _a ? _a : constants_1.DefaultAnimationEasing,
|
|
99
|
+
delay: null !== (_b = animation.delay) && void 0 !== _b ? _b : constants_1.DefaultAnimationDelay,
|
|
100
|
+
duration: null !== (_c = animation.duration) && void 0 !== _c ? _c : constants_1.DefaultAnimationDuration,
|
|
101
|
+
oneByOne: null !== (_d = animation.oneByOne) && void 0 !== _d ? _d : constants_1.DefaultAnimationOneByOne,
|
|
102
|
+
splitPath: null !== (_e = animation.splitPath) && void 0 !== _e ? _e : constants_1.DefaultSplitPath
|
|
102
103
|
},
|
|
103
|
-
enableExitAnimation:
|
|
104
|
+
enableExitAnimation: enableExitAnimation
|
|
104
105
|
};
|
|
105
106
|
};
|
|
106
107
|
|
package/cjs/parse/view.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/parse/view.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/parse/view.ts"],"names":[],"mappings":"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","file":"view.js","sourcesContent":["import type { IBounds } from '@visactor/vutils';\nimport { isNumber, Bounds } from '@visactor/vutils';\nimport {\n DefaultAnimationDelay,\n DefaultAnimationDuration,\n DefaultAnimationEasing,\n DefaultAnimationOneByOne,\n DefaultEnableExitAnimation,\n DefaultMorph,\n DefaultMorphAll,\n DefaultReuse,\n DefaultSplitPath\n} from '../graph/constants';\nimport type { GroupMarkSpec, IRunningConfig, ITheme, MarkSpec, SignalSpec } from '../types';\nimport type { IViewOptions, IViewThemeConfig, ViewSpec } from '../types/view';\nimport {\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\nlet markBaseId = -1;\n\nexport const BuiltInSignalID = [\n SIGNAL_WIDTH,\n SIGNAL_HEIGHT,\n SIGNAL_PADDING,\n SIGNAL_VIEW_WIDTH,\n SIGNAL_VIEW_HEIGHT,\n SIGNAL_VIEW_BOX,\n SIGNAL_AUTOFIT\n];\n\nexport const builtInSignals = (option: IViewOptions, config: IViewThemeConfig, theme: ITheme): SignalSpec<any>[] => {\n return [\n { id: SIGNAL_WIDTH, value: option[SIGNAL_WIDTH] ?? 0 },\n { id: SIGNAL_HEIGHT, value: option[SIGNAL_HEIGHT] ?? 0 },\n { id: SIGNAL_PADDING, value: normalizePadding(option[SIGNAL_PADDING] ?? config[SIGNAL_PADDING] ?? theme?.padding) },\n {\n id: SIGNAL_VIEW_WIDTH,\n update: {\n callback: (signal: number, params: any) => {\n const padding = normalizePadding(params[SIGNAL_PADDING]);\n return params[SIGNAL_WIDTH] - padding.left - padding.right;\n },\n dependency: [SIGNAL_WIDTH, SIGNAL_PADDING]\n }\n },\n {\n id: SIGNAL_VIEW_HEIGHT,\n update: {\n callback: (signal: number, params: any) => {\n const padding = normalizePadding(params[SIGNAL_PADDING]);\n return params[SIGNAL_HEIGHT] - padding.top - padding.bottom;\n },\n dependency: [SIGNAL_HEIGHT, SIGNAL_PADDING]\n }\n },\n {\n id: SIGNAL_VIEW_BOX,\n update: {\n callback: (signal: IBounds, params: any) => {\n const padding = normalizePadding(params[SIGNAL_PADDING]);\n return (signal ? signal : new Bounds()).setValue(\n padding.left,\n padding.top,\n padding.left + params[SIGNAL_VIEW_WIDTH],\n padding.top + params[SIGNAL_VIEW_HEIGHT]\n );\n },\n dependency: [SIGNAL_VIEW_WIDTH, SIGNAL_VIEW_HEIGHT, SIGNAL_PADDING]\n }\n },\n {\n id: SIGNAL_AUTOFIT,\n value: option[SIGNAL_AUTOFIT] ?? config[SIGNAL_AUTOFIT]\n }\n ];\n};\n\nexport const normalizePadding = (\n value: number | { top?: number; left?: number; right?: number; bottom?: number }\n): { top: number; left: number; right: number; bottom: number } => {\n if (isNumber(value)) {\n return { top: value, bottom: value, left: value, right: value };\n }\n return { top: value?.top ?? 0, bottom: value?.bottom ?? 0, left: value?.left ?? 0, right: value?.right ?? 0 };\n};\n\nexport const normalizeMarkTree = (spec: ViewSpec) => {\n const traverse = (spec: MarkSpec, group: string) => {\n spec.group = group;\n const id = spec.id ?? `VGRAMMAR_MARK_${++markBaseId}`;\n spec.id = id;\n ((spec as GroupMarkSpec).marks ?? []).forEach(child => traverse(child, id));\n };\n (spec.marks ?? []).forEach(mark => traverse(mark, 'root'));\n return spec;\n};\n\nexport const normalizeRunningConfig = (runningConfig: IRunningConfig): IRunningConfig => {\n const {\n reuse = DefaultReuse,\n morph = DefaultMorph,\n morphAll = DefaultMorphAll,\n animation = {},\n enableExitAnimation = DefaultEnableExitAnimation\n } = runningConfig ?? {};\n return {\n reuse,\n morph,\n morphAll,\n animation: {\n easing: animation.easing ?? DefaultAnimationEasing,\n delay: animation.delay ?? DefaultAnimationDelay,\n duration: animation.duration ?? DefaultAnimationDuration,\n oneByOne: animation.oneByOne ?? DefaultAnimationOneByOne,\n splitPath: animation.splitPath ?? DefaultSplitPath\n },\n enableExitAnimation\n };\n};\n"]}
|
package/cjs/view/View.js
CHANGED
|
@@ -239,7 +239,7 @@ class View extends vutils_1.EventEmitter {
|
|
|
239
239
|
})), this;
|
|
240
240
|
}
|
|
241
241
|
parseSpec(spec) {
|
|
242
|
-
var _a, _b, _c, _d, _e, _f
|
|
242
|
+
var _a, _b, _c, _d, _e, _f;
|
|
243
243
|
if (this.emit(enums_1.HOOK_EVENT.BEFORE_PARSE_VIEW), this._spec = spec, (0, view_1.normalizeMarkTree)(spec),
|
|
244
244
|
spec.theme ? this.theme(spec.theme) : this.theme(theme_manager_1.ThemeManager.getDefaultTheme()),
|
|
245
245
|
spec.width && this.width(spec.width), spec.height && this.height(spec.height), this.padding(null !== (_b = null !== (_a = spec.padding) && void 0 !== _a ? _a : this._options.padding) && void 0 !== _b ? _b : this._theme.padding),
|
|
@@ -260,16 +260,15 @@ class View extends vutils_1.EventEmitter {
|
|
|
260
260
|
}));
|
|
261
261
|
const customizedGrammars = factory_1.Factory.getGrammars();
|
|
262
262
|
return Object.keys(customizedGrammars).forEach((key => {
|
|
263
|
-
var _a;
|
|
264
263
|
const {specKey: specKey} = customizedGrammars[key];
|
|
265
|
-
|
|
264
|
+
spec[specKey] && spec[specKey].length && spec[specKey].forEach((specValue => {
|
|
266
265
|
this.customized(key, specValue);
|
|
267
266
|
}));
|
|
268
|
-
})),
|
|
267
|
+
})), spec.marks && spec.marks.length && spec.marks.forEach((mark => {
|
|
269
268
|
this.parseMarkSpec(mark);
|
|
270
|
-
})),
|
|
269
|
+
})), spec.events && spec.events.length && spec.events.forEach((eventConfig => {
|
|
271
270
|
this.event(eventConfig);
|
|
272
|
-
})),
|
|
271
|
+
})), spec.interactions && spec.interactions.length && spec.interactions.forEach((interaction => {
|
|
273
272
|
this.interaction(interaction.type, interaction);
|
|
274
273
|
})), !1 === spec.animation ? this.animate.disable() : this.animate.enable(), this.emit(enums_1.HOOK_EVENT.AFTER_PARSE_VIEW),
|
|
275
274
|
this._needBuildLayoutTree = !0, this._layoutState = enums_1.LayoutState.before,
|
|
@@ -315,13 +314,13 @@ class View extends vutils_1.EventEmitter {
|
|
|
315
314
|
}));
|
|
316
315
|
}
|
|
317
316
|
theme(theme) {
|
|
318
|
-
var _a, _b, _c, _d, _e, _f
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
this.
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
this;
|
|
317
|
+
var _a, _b, _c, _d, _e, _f;
|
|
318
|
+
(0, vutils_1.isString)(theme) ? this._theme = null !== (_a = theme_manager_1.ThemeManager.getTheme(theme)) && void 0 !== _a ? _a : theme_manager_1.ThemeManager.getDefaultTheme() : this._theme = theme;
|
|
319
|
+
const {background: background, padding: padding} = null !== (_b = this._spec) && void 0 !== _b ? _b : {};
|
|
320
|
+
return this._theme ? (this.background(null !== (_c = null != background ? background : this._options.background) && void 0 !== _c ? _c : this._theme.background),
|
|
321
|
+
this.padding(null !== (_d = null != padding ? padding : this._options.padding) && void 0 !== _d ? _d : this._theme.padding),
|
|
322
|
+
null === (_f = null === (_e = this.renderer.stage()) || void 0 === _e ? void 0 : _e.setTheme) || void 0 === _f || _f.call(_e, Object.assign({}, this._theme.marks))) : (this.background(null != background ? background : this._options.background),
|
|
323
|
+
this.padding(null != padding ? padding : this._options.padding)), this;
|
|
325
324
|
}
|
|
326
325
|
getCurrentTheme() {
|
|
327
326
|
return this._theme;
|