@visactor/vchart 1.13.10-alpha.1 → 1.13.11-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.
Files changed (52) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +436 -111
  3. package/build/index.js +437 -110
  4. package/build/index.min.js +1 -1
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/chart/mosaic/mosaic-transformer.js +1 -1
  7. package/cjs/chart/mosaic/mosaic-transformer.js.map +1 -1
  8. package/cjs/component/tooltip/tooltip.js +5 -7
  9. package/cjs/component/tooltip/tooltip.js.map +1 -1
  10. package/cjs/core/index.d.ts +2 -2
  11. package/cjs/core/index.js +12 -2
  12. package/cjs/core/index.js.map +1 -1
  13. package/cjs/env/env.js +1 -1
  14. package/cjs/env/index.js +1 -1
  15. package/cjs/event/event-dispatcher.js +1 -1
  16. package/cjs/event/event.js +1 -1
  17. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.d.ts +1 -0
  18. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js +3 -0
  19. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
  20. package/cjs/series/mosaic/interface.d.ts +1 -1
  21. package/cjs/series/mosaic/interface.js.map +1 -1
  22. package/cjs/series/mosaic/mosaic.d.ts +2 -2
  23. package/cjs/series/mosaic/mosaic.js +3 -3
  24. package/cjs/series/mosaic/mosaic.js.map +1 -1
  25. package/cjs/typings/tooltip/handler.d.ts +1 -0
  26. package/cjs/typings/tooltip/handler.js.map +1 -1
  27. package/cjs/util/data.js +2 -2
  28. package/cjs/util/data.js.map +1 -1
  29. package/esm/chart/mosaic/mosaic-transformer.js +1 -1
  30. package/esm/chart/mosaic/mosaic-transformer.js.map +1 -1
  31. package/esm/component/tooltip/tooltip.js +5 -7
  32. package/esm/component/tooltip/tooltip.js.map +1 -1
  33. package/esm/core/index.d.ts +2 -2
  34. package/esm/core/index.js +2 -2
  35. package/esm/core/index.js.map +1 -1
  36. package/esm/env/env.js +1 -1
  37. package/esm/env/index.js +1 -1
  38. package/esm/event/event-dispatcher.js +1 -1
  39. package/esm/event/event.js +1 -1
  40. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.d.ts +1 -0
  41. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js +3 -0
  42. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
  43. package/esm/series/mosaic/interface.d.ts +1 -1
  44. package/esm/series/mosaic/interface.js.map +1 -1
  45. package/esm/series/mosaic/mosaic.d.ts +2 -2
  46. package/esm/series/mosaic/mosaic.js +3 -3
  47. package/esm/series/mosaic/mosaic.js.map +1 -1
  48. package/esm/typings/tooltip/handler.d.ts +1 -0
  49. package/esm/typings/tooltip/handler.js.map +1 -1
  50. package/esm/util/data.js +1 -1
  51. package/esm/util/data.js.map +1 -1
  52. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/plugin/components/tooltip-handler/dom-tooltip-handler.ts"],"names":[],"mappings":"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","file":"dom-tooltip-handler.js","sourcesContent":["import type { ITooltipActual, ITooltipPositionActual } from '../../../typings/tooltip';\nimport { BaseTooltipHandler } from './base';\nimport { getDomStyle, getTextStyle, setStyleToDom } from './utils/style';\nimport {\n TOOLTIP_CONTAINER_EL_CLASS_NAME,\n DEFAULT_TOOLTIP_Z_INDEX,\n TOOLTIP_PREFIX,\n TOOLTIP_CONTENT_BOX_CLASS_NAME,\n TOOLTIP_TITLE_CLASS_NAME\n} from './constants';\nimport { type Maybe, isValid } from '@visactor/vutils';\nimport type { IContainerSize } from '@visactor/vrender-components';\nimport { domDocument } from '../../../util/env';\nimport type { ITooltipSpec, TooltipHandlerParams } from '../../../component/tooltip';\nimport type { IComponentPluginService } from '../interface';\nimport { registerComponentPlugin } from '../register';\nimport type { ILayoutPoint } from '../../../typings';\nimport { TooltipHandlerType } from '../../../component/tooltip/constant';\nimport { getSvgHtml } from './utils/svg';\nimport { formatContent } from './utils/common';\nimport { token } from '../../../theme/token';\nimport { calcLayoutNumber } from '../../../util/space';\n/**\n * The tooltip handler class.\n */\nexport class DomTooltipHandler extends BaseTooltipHandler {\n static readonly type = TooltipHandlerType.dom;\n readonly type = TooltipHandlerType.dom;\n\n protected _tooltipContainer = domDocument?.body;\n protected _domStyle: {\n panelPadding?: number[];\n panel: Partial<CSSStyleDeclaration>;\n row: Partial<CSSStyleDeclaration>;\n title: Partial<CSSStyleDeclaration>;\n shape: Partial<CSSStyleDeclaration>;\n key: Partial<CSSStyleDeclaration>;\n value: Partial<CSSStyleDeclaration>;\n };\n protected _rootDom?: HTMLElement;\n protected _tooltipActual?: ITooltipActual;\n protected declare _container: Maybe<HTMLDivElement>;\n\n /** 自定义 tooltip 的位置缓存 */\n protected _cacheCustomTooltipPosition: ILayoutPoint;\n\n getVisibility() {\n return this._rootDom ? this._rootDom.style.visibility === 'visible' : false;\n }\n\n setVisibility(_value: boolean) {\n // 这里做个节流\n if (_value !== this.getVisibility() && this._rootDom) {\n this._rootDom.style.visibility = _value ? 'visible' : 'hidden';\n }\n }\n\n constructor() {\n super(DomTooltipHandler.type);\n }\n\n onAdd(service: IComponentPluginService<any>): void {\n super.onAdd(service);\n this._initStyle();\n this.initEl();\n }\n\n initEl() {\n const tooltipSpec = this._component.getSpec() as ITooltipSpec;\n const parentElement = tooltipSpec.parentElement as HTMLElement | HTMLCanvasElement;\n if (domDocument && parentElement && parentElement.children && parentElement.children.length) {\n for (let i = 0; i < parentElement.children.length; i++) {\n if (parentElement.children[i].classList.contains(TOOLTIP_CONTAINER_EL_CLASS_NAME)) {\n this._container = parentElement.children[i] as HTMLDivElement;\n break;\n }\n }\n if (!this._container) {\n this._container = domDocument.createElement('div');\n this._container.style.position = 'relative';\n this._container.style.zIndex = DEFAULT_TOOLTIP_Z_INDEX;\n this._container.classList.add(TOOLTIP_CONTAINER_EL_CLASS_NAME);\n parentElement.appendChild(this._container);\n }\n }\n }\n\n initRootDom() {\n const tooltipSpec = this._component.getSpec() as ITooltipSpec;\n const tooltipElement = document.createElement('div');\n const globalTheme = this._chartOption?.getTheme() ?? {};\n\n setStyleToDom(tooltipElement, {\n left: '0',\n top: '0',\n pointerEvents: 'none',\n padding: '12px',\n position: 'absolute',\n zIndex: DEFAULT_TOOLTIP_Z_INDEX,\n fontFamily: (globalTheme?.fontFamily ?? token.fontFamily) as string,\n fontSize: '11px',\n borderRadius: '3px',\n borderStyle: 'solid',\n lineHeight: 'initial',\n background: '#fff',\n boxShadow: '2px 2px 4px rgba(0, 0, 0, 0.1)',\n maxWidth: '100wh',\n maxHeight: '100vh',\n visibility: 'hidden',\n ...this._domStyle.panel\n } as CSSStyleDeclaration);\n tooltipElement.classList.add(tooltipSpec.className);\n tooltipElement.setAttribute('vchart-tooltip-id', `${this.id}`);\n this._container.appendChild(tooltipElement);\n this._rootDom = tooltipElement;\n }\n\n // 计算 tooltip 内容区域的宽高,并缓存结果\n protected _getTooltipBoxSize(actualTooltip: ITooltipActual, changePositionOnly: boolean): IContainerSize | undefined {\n if (!this._rootDom) {\n this.initRootDom();\n }\n if (!changePositionOnly) {\n this._updateDomStringByCol(actualTooltip);\n }\n\n this._updateDomStyle('height');\n\n const rect = this._rootDom?.getBoundingClientRect();\n\n return {\n width: rect?.width,\n height: rect?.height\n };\n }\n\n protected _removeTooltip() {\n if (this._rootDom && this._rootDom.parentNode) {\n this._rootDom.parentNode.removeChild(this._rootDom);\n this._rootDom = null;\n }\n this._container = null;\n }\n\n protected _updateTooltip(visible: boolean, params: TooltipHandlerParams) {\n if (!visible || !this._rootDom) {\n this.setVisibility(visible);\n this._cacheCustomTooltipPosition = undefined;\n } else {\n const { tooltipSpec, activeTooltipSpec } = params;\n\n if (!params.changePositionOnly) {\n this._tooltipActual = activeTooltipSpec;\n }\n const currentVisible = this.getVisibility();\n\n // 位置\n const el = this._rootDom;\n if (el) {\n const { x = 0, y = 0 } = activeTooltipSpec.position ?? {};\n if (tooltipSpec.updateElement) {\n // 此处先设定一次位置,防止页面暂时出现滚动条(优先设置上次的位置)\n this._updatePosition(this._cacheCustomTooltipPosition ?? { x, y });\n // 更新 tooltip dom\n tooltipSpec.updateElement(el, activeTooltipSpec, params);\n // 重新计算 tooltip 位置\n const position = this._getActualTooltipPosition(activeTooltipSpec, params, {\n width: el.offsetWidth,\n height: el.offsetHeight\n });\n // 更新位置\n this._updatePosition(position);\n // 更新缓存\n this._cacheCustomTooltipPosition = position;\n } else {\n if (!currentVisible) {\n // 当从隐藏切换到显示的时候,需要先设置一次 transition 为 0ms,防止出现从一个非常远的初始位置进行动画\n this._rootDom.style.transitionDuration = '0ms';\n } else {\n this._rootDom.style.transitionDuration = this._domStyle.panel.transitionDuration ?? 'initial';\n }\n this._updatePosition({ x, y });\n }\n }\n this.setVisibility(visible);\n }\n }\n\n protected _initStyle() {\n const tooltipSpec = this._component.getSpec() as ITooltipSpec;\n\n this._domStyle = getDomStyle(tooltipSpec);\n }\n\n protected _updateDomStringByCol(actualTooltip?: ITooltipActual) {\n const { title = {}, content } = actualTooltip;\n const hasContent = content && content.length;\n const rowStyle = this._domStyle.row;\n const chilren = [...(this._rootDom.children as any)] as HTMLElement[];\n let titleDom = chilren.find(child => child.className.includes(TOOLTIP_TITLE_CLASS_NAME));\n\n if (!titleDom && title.visible !== false) {\n titleDom = document.createElement('h2');\n const span = document.createElement('span');\n titleDom.appendChild(span);\n\n titleDom.classList.add(TOOLTIP_TITLE_CLASS_NAME);\n this._rootDom.appendChild(titleDom);\n }\n\n if (titleDom && title.visible !== false) {\n setStyleToDom(titleDom, {\n ...this._domStyle.title,\n ...(hasContent ? rowStyle : { marginBottom: '0px' }),\n marginTop: '0px'\n });\n (titleDom.firstChild as HTMLElement).innerHTML = `${title.value ?? ''}`;\n } else if (titleDom && title.visible === false) {\n titleDom.parentNode.removeChild(titleDom);\n }\n\n let contentDom = chilren.find(child => child.className.includes(TOOLTIP_CONTENT_BOX_CLASS_NAME));\n const columns = ['shape', 'key', 'value'];\n\n if (!contentDom && hasContent) {\n contentDom = document.createElement('div');\n\n columns.forEach(col => {\n const colDiv = document.createElement('div');\n\n colDiv.classList.add(`${TOOLTIP_PREFIX}-column`);\n colDiv.classList.add(`${TOOLTIP_PREFIX}-${col}-column`);\n colDiv.setAttribute('data-col', col);\n contentDom.appendChild(colDiv);\n });\n\n contentDom.classList.add(TOOLTIP_CONTENT_BOX_CLASS_NAME);\n this._rootDom.appendChild(contentDom);\n }\n\n if (contentDom && hasContent) {\n const columnDivs = [...(contentDom.children as any)] as HTMLElement[];\n setStyleToDom(contentDom, { whiteSpace: 'nowrap' });\n\n columnDivs.forEach((colDiv, index) => {\n const colName = colDiv.getAttribute('data-col');\n\n if (colName && columns.includes(colName)) {\n const hideColumn = colName === 'shape' && content.every(c => !c.hasShape || !c.shapeType);\n\n setStyleToDom(colDiv, {\n ...(this._domStyle as any)[colName],\n display: hideColumn ? 'none' : 'inline-block',\n verticalAlign: 'top'\n });\n const rows = [...(colDiv.children as any)] as HTMLElement[];\n\n // 删除多余的行\n rows.slice(content.length).forEach(extraRow => {\n extraRow.parentNode.removeChild(extraRow);\n });\n\n content.forEach((entry, index) => {\n let row = rows[index];\n\n if (!row) {\n row = document.createElement('div');\n row.classList.add(`${TOOLTIP_PREFIX}-${colName}`);\n colDiv.appendChild(row);\n }\n const styleByRow = {\n ...rowStyle\n };\n\n if (index === content.length - 1) {\n styleByRow.marginBottom = '0px';\n }\n\n styleByRow.display = entry.visible === false ? 'none' : 'block';\n // 每次更新,需要更新单元格的高度,防止同步高度的时候没有更新\n styleByRow.height = 'initial';\n\n if (colName === 'key') {\n row.innerHTML = formatContent(entry.key);\n if (entry.keyStyle) {\n getTextStyle(entry.keyStyle, styleByRow);\n }\n } else if (colName === 'value') {\n row.innerHTML = formatContent(entry.value);\n if (entry.valueStyle) {\n getTextStyle(entry.valueStyle, styleByRow);\n }\n } else if (colName === 'shape') {\n row.innerHTML = getSvgHtml(entry, `${this.id}_${index}`);\n }\n\n setStyleToDom(row, styleByRow);\n });\n }\n });\n } else if (contentDom && !hasContent) {\n contentDom.parentNode.removeChild(contentDom);\n }\n }\n protected _updateDomStyle(sizeKey: 'width' | 'height' = 'width') {\n const rootDom = this._rootDom;\n const contentDom = [...(rootDom.children as any)].find(child =>\n child.className.includes(TOOLTIP_CONTENT_BOX_CLASS_NAME)\n );\n const titleDom = [...(rootDom.children as any)].find(child => child.className.includes(TOOLTIP_TITLE_CLASS_NAME));\n\n if (contentDom) {\n const tooltipSpec = this._component.getSpec() as ITooltipSpec;\n const contentStyle: Partial<CSSStyleDeclaration> = {};\n const titleLabel = tooltipSpec.style?.titleLabel;\n const autoFixTitleWidth = titleLabel && titleLabel.autoWidth && titleLabel.multiLine !== false;\n\n if (autoFixTitleWidth && titleDom) {\n const maxWidth = [...(contentDom.children as any)].reduce((res, col) => {\n return sizeKey === 'height'\n ? res + col.getBoundingClientRect().width\n : Math.max(res, col.getBoundingClientRect().width);\n }, 0);\n\n if (maxWidth > 0) {\n titleDom.style.maxWidth = `${maxWidth}px`;\n // 需要再计算一次,因为之前可能因为没有设置maxWidth, content的dom被撑宽了\n titleDom.style.maxWidth = `${Math.ceil(contentDom.getBoundingClientRect().width)}px`;\n }\n }\n\n if (isValid(tooltipSpec?.style?.maxContentHeight)) {\n const titleHeight =\n titleDom && titleDom.className.includes(TOOLTIP_TITLE_CLASS_NAME)\n ? titleDom.getBoundingClientRect().height + (tooltipSpec.style.spaceRow ?? 0)\n : 0;\n const viewRect = (this._chartOption as any).getChartViewRect();\n const maxHeight = calcLayoutNumber(\n tooltipSpec.style.maxContentHeight,\n Math.min(viewRect.height, document.body.clientHeight) -\n titleHeight -\n (this._domStyle.panelPadding ? this._domStyle.panelPadding[0] + this._domStyle.panelPadding[1] : 0)\n );\n\n if (maxHeight > 0) {\n contentStyle.maxHeight = `${maxHeight}px`;\n contentStyle.overflowY = 'auto';\n // todo 让内容宽度往外阔一点,给滚动条留出位置\n contentStyle.width = `calc(100% + ${\n this._domStyle.panelPadding ? this._domStyle.panelPadding[1] + 'px' : '10px'\n })`;\n\n setStyleToDom(contentDom as HTMLElement, contentStyle);\n }\n }\n\n const rows = contentDom.children;\n const widthByCol: number[] = [];\n if (rows) {\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i];\n const cols = row.children ?? ([] as HTMLElement[]);\n\n for (let j = 0; j < cols.length; j++) {\n const width = cols[j].getBoundingClientRect()[sizeKey];\n if (widthByCol[j] === undefined || widthByCol[j] < width) {\n widthByCol[j] = width;\n }\n }\n }\n\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i];\n const cols = row.children ?? ([] as HTMLElement[]);\n\n for (let j = 0; j < cols.length; j++) {\n (cols[j] as HTMLElement).style[sizeKey] = `${widthByCol[j]}px`;\n }\n }\n }\n }\n }\n\n protected _getParentElement(spec: ITooltipSpec): HTMLElement {\n return this._container ?? super._getParentElement(spec);\n }\n\n isTooltipShown() {\n return this.getVisibility();\n }\n\n reInit() {\n super.reInit();\n this._initStyle();\n if (this._rootDom) {\n setStyleToDom(this._rootDom, this._domStyle.panel);\n }\n\n if (this.getVisibility()) {\n this._updateDomStringByCol(this._tooltipActual);\n this._updateDomStyle('height');\n }\n }\n\n protected _updatePosition({ x, y }: ITooltipPositionActual) {\n if (this._rootDom) {\n // translate3d 性能较好:https://stackoverflow.com/questions/22111256/translate3d-vs-translate-performance\n this._rootDom.style.transform = `translate3d(${x}px, ${y}px, 0)`;\n }\n }\n}\n\nexport const registerDomTooltipHandler = () => {\n registerComponentPlugin(DomTooltipHandler);\n};\n"]}
1
+ {"version":3,"sources":["../src/plugin/components/tooltip-handler/dom-tooltip-handler.ts"],"names":[],"mappings":"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","file":"dom-tooltip-handler.js","sourcesContent":["import type { ITooltipActual, ITooltipPositionActual } from '../../../typings/tooltip';\nimport { BaseTooltipHandler } from './base';\nimport { getDomStyle, getTextStyle, setStyleToDom } from './utils/style';\nimport {\n TOOLTIP_CONTAINER_EL_CLASS_NAME,\n DEFAULT_TOOLTIP_Z_INDEX,\n TOOLTIP_PREFIX,\n TOOLTIP_CONTENT_BOX_CLASS_NAME,\n TOOLTIP_TITLE_CLASS_NAME\n} from './constants';\nimport { type Maybe, isValid } from '@visactor/vutils';\nimport type { IContainerSize } from '@visactor/vrender-components';\nimport { domDocument } from '../../../util/env';\nimport type { ITooltipSpec, TooltipHandlerParams } from '../../../component/tooltip';\nimport type { IComponentPluginService } from '../interface';\nimport { registerComponentPlugin } from '../register';\nimport type { ILayoutPoint } from '../../../typings';\nimport { TooltipHandlerType } from '../../../component/tooltip/constant';\nimport { getSvgHtml } from './utils/svg';\nimport { formatContent } from './utils/common';\nimport { token } from '../../../theme/token';\nimport { calcLayoutNumber } from '../../../util/space';\n/**\n * The tooltip handler class.\n */\nexport class DomTooltipHandler extends BaseTooltipHandler {\n static readonly type = TooltipHandlerType.dom;\n readonly type = TooltipHandlerType.dom;\n\n protected _tooltipContainer = domDocument?.body;\n protected _domStyle: {\n panelPadding?: number[];\n panel: Partial<CSSStyleDeclaration>;\n row: Partial<CSSStyleDeclaration>;\n title: Partial<CSSStyleDeclaration>;\n shape: Partial<CSSStyleDeclaration>;\n key: Partial<CSSStyleDeclaration>;\n value: Partial<CSSStyleDeclaration>;\n };\n protected _rootDom?: HTMLElement;\n protected _tooltipActual?: ITooltipActual;\n protected declare _container: Maybe<HTMLDivElement>;\n\n /** 自定义 tooltip 的位置缓存 */\n protected _cacheCustomTooltipPosition: ILayoutPoint;\n\n getVisibility() {\n return this._rootDom ? this._rootDom.style.visibility === 'visible' : false;\n }\n\n setVisibility(_value: boolean) {\n // 这里做个节流\n if (_value !== this.getVisibility() && this._rootDom) {\n this._rootDom.style.visibility = _value ? 'visible' : 'hidden';\n }\n }\n\n getRootDom() {\n return this._rootDom;\n }\n\n constructor() {\n super(DomTooltipHandler.type);\n }\n\n onAdd(service: IComponentPluginService<any>): void {\n super.onAdd(service);\n this._initStyle();\n this.initEl();\n }\n\n initEl() {\n const tooltipSpec = this._component.getSpec() as ITooltipSpec;\n const parentElement = tooltipSpec.parentElement as HTMLElement | HTMLCanvasElement;\n if (domDocument && parentElement && parentElement.children && parentElement.children.length) {\n for (let i = 0; i < parentElement.children.length; i++) {\n if (parentElement.children[i].classList.contains(TOOLTIP_CONTAINER_EL_CLASS_NAME)) {\n this._container = parentElement.children[i] as HTMLDivElement;\n break;\n }\n }\n if (!this._container) {\n this._container = domDocument.createElement('div');\n this._container.style.position = 'relative';\n this._container.style.zIndex = DEFAULT_TOOLTIP_Z_INDEX;\n this._container.classList.add(TOOLTIP_CONTAINER_EL_CLASS_NAME);\n parentElement.appendChild(this._container);\n }\n }\n }\n\n initRootDom() {\n const tooltipSpec = this._component.getSpec() as ITooltipSpec;\n const tooltipElement = document.createElement('div');\n const globalTheme = this._chartOption?.getTheme() ?? {};\n\n setStyleToDom(tooltipElement, {\n left: '0',\n top: '0',\n pointerEvents: 'none',\n padding: '12px',\n position: 'absolute',\n zIndex: DEFAULT_TOOLTIP_Z_INDEX,\n fontFamily: (globalTheme?.fontFamily ?? token.fontFamily) as string,\n fontSize: '11px',\n borderRadius: '3px',\n borderStyle: 'solid',\n lineHeight: 'initial',\n background: '#fff',\n boxShadow: '2px 2px 4px rgba(0, 0, 0, 0.1)',\n maxWidth: '100wh',\n maxHeight: '100vh',\n visibility: 'hidden',\n ...this._domStyle.panel\n } as CSSStyleDeclaration);\n tooltipElement.classList.add(tooltipSpec.className);\n tooltipElement.setAttribute('vchart-tooltip-id', `${this.id}`);\n this._container.appendChild(tooltipElement);\n this._rootDom = tooltipElement;\n }\n\n // 计算 tooltip 内容区域的宽高,并缓存结果\n protected _getTooltipBoxSize(actualTooltip: ITooltipActual, changePositionOnly: boolean): IContainerSize | undefined {\n if (!this._rootDom) {\n this.initRootDom();\n }\n if (!changePositionOnly) {\n this._updateDomStringByCol(actualTooltip);\n }\n\n this._updateDomStyle('height');\n\n const rect = this._rootDom?.getBoundingClientRect();\n\n return {\n width: rect?.width,\n height: rect?.height\n };\n }\n\n protected _removeTooltip() {\n if (this._rootDom && this._rootDom.parentNode) {\n this._rootDom.parentNode.removeChild(this._rootDom);\n this._rootDom = null;\n }\n this._container = null;\n }\n\n protected _updateTooltip(visible: boolean, params: TooltipHandlerParams) {\n if (!visible || !this._rootDom) {\n this.setVisibility(visible);\n this._cacheCustomTooltipPosition = undefined;\n } else {\n const { tooltipSpec, activeTooltipSpec } = params;\n\n if (!params.changePositionOnly) {\n this._tooltipActual = activeTooltipSpec;\n }\n const currentVisible = this.getVisibility();\n\n // 位置\n const el = this._rootDom;\n if (el) {\n const { x = 0, y = 0 } = activeTooltipSpec.position ?? {};\n if (tooltipSpec.updateElement) {\n // 此处先设定一次位置,防止页面暂时出现滚动条(优先设置上次的位置)\n this._updatePosition(this._cacheCustomTooltipPosition ?? { x, y });\n // 更新 tooltip dom\n tooltipSpec.updateElement(el, activeTooltipSpec, params);\n // 重新计算 tooltip 位置\n const position = this._getActualTooltipPosition(activeTooltipSpec, params, {\n width: el.offsetWidth,\n height: el.offsetHeight\n });\n // 更新位置\n this._updatePosition(position);\n // 更新缓存\n this._cacheCustomTooltipPosition = position;\n } else {\n if (!currentVisible) {\n // 当从隐藏切换到显示的时候,需要先设置一次 transition 为 0ms,防止出现从一个非常远的初始位置进行动画\n this._rootDom.style.transitionDuration = '0ms';\n } else {\n this._rootDom.style.transitionDuration = this._domStyle.panel.transitionDuration ?? 'initial';\n }\n this._updatePosition({ x, y });\n }\n }\n this.setVisibility(visible);\n }\n }\n\n protected _initStyle() {\n const tooltipSpec = this._component.getSpec() as ITooltipSpec;\n\n this._domStyle = getDomStyle(tooltipSpec);\n }\n\n protected _updateDomStringByCol(actualTooltip?: ITooltipActual) {\n const { title = {}, content } = actualTooltip;\n const hasContent = content && content.length;\n const rowStyle = this._domStyle.row;\n const chilren = [...(this._rootDom.children as any)] as HTMLElement[];\n let titleDom = chilren.find(child => child.className.includes(TOOLTIP_TITLE_CLASS_NAME));\n\n if (!titleDom && title.visible !== false) {\n titleDom = document.createElement('h2');\n const span = document.createElement('span');\n titleDom.appendChild(span);\n\n titleDom.classList.add(TOOLTIP_TITLE_CLASS_NAME);\n this._rootDom.appendChild(titleDom);\n }\n\n if (titleDom && title.visible !== false) {\n setStyleToDom(titleDom, {\n ...this._domStyle.title,\n ...(hasContent ? rowStyle : { marginBottom: '0px' }),\n marginTop: '0px'\n });\n (titleDom.firstChild as HTMLElement).innerHTML = `${title.value ?? ''}`;\n } else if (titleDom && title.visible === false) {\n titleDom.parentNode.removeChild(titleDom);\n }\n\n let contentDom = chilren.find(child => child.className.includes(TOOLTIP_CONTENT_BOX_CLASS_NAME));\n const columns = ['shape', 'key', 'value'];\n\n if (!contentDom && hasContent) {\n contentDom = document.createElement('div');\n\n columns.forEach(col => {\n const colDiv = document.createElement('div');\n\n colDiv.classList.add(`${TOOLTIP_PREFIX}-column`);\n colDiv.classList.add(`${TOOLTIP_PREFIX}-${col}-column`);\n colDiv.setAttribute('data-col', col);\n contentDom.appendChild(colDiv);\n });\n\n contentDom.classList.add(TOOLTIP_CONTENT_BOX_CLASS_NAME);\n this._rootDom.appendChild(contentDom);\n }\n\n if (contentDom && hasContent) {\n const columnDivs = [...(contentDom.children as any)] as HTMLElement[];\n setStyleToDom(contentDom, { whiteSpace: 'nowrap' });\n\n columnDivs.forEach((colDiv, index) => {\n const colName = colDiv.getAttribute('data-col');\n\n if (colName && columns.includes(colName)) {\n const hideColumn = colName === 'shape' && content.every(c => !c.hasShape || !c.shapeType);\n\n setStyleToDom(colDiv, {\n ...(this._domStyle as any)[colName],\n display: hideColumn ? 'none' : 'inline-block',\n verticalAlign: 'top'\n });\n const rows = [...(colDiv.children as any)] as HTMLElement[];\n\n // 删除多余的行\n rows.slice(content.length).forEach(extraRow => {\n extraRow.parentNode.removeChild(extraRow);\n });\n\n content.forEach((entry, index) => {\n let row = rows[index];\n\n if (!row) {\n row = document.createElement('div');\n row.classList.add(`${TOOLTIP_PREFIX}-${colName}`);\n colDiv.appendChild(row);\n }\n const styleByRow = {\n ...rowStyle\n };\n\n if (index === content.length - 1) {\n styleByRow.marginBottom = '0px';\n }\n\n styleByRow.display = entry.visible === false ? 'none' : 'block';\n // 每次更新,需要更新单元格的高度,防止同步高度的时候没有更新\n styleByRow.height = 'initial';\n\n if (colName === 'key') {\n row.innerHTML = formatContent(entry.key);\n if (entry.keyStyle) {\n getTextStyle(entry.keyStyle, styleByRow);\n }\n } else if (colName === 'value') {\n row.innerHTML = formatContent(entry.value);\n if (entry.valueStyle) {\n getTextStyle(entry.valueStyle, styleByRow);\n }\n } else if (colName === 'shape') {\n row.innerHTML = getSvgHtml(entry, `${this.id}_${index}`);\n }\n\n setStyleToDom(row, styleByRow);\n });\n }\n });\n } else if (contentDom && !hasContent) {\n contentDom.parentNode.removeChild(contentDom);\n }\n }\n protected _updateDomStyle(sizeKey: 'width' | 'height' = 'width') {\n const rootDom = this._rootDom;\n const contentDom = [...(rootDom.children as any)].find(child =>\n child.className.includes(TOOLTIP_CONTENT_BOX_CLASS_NAME)\n );\n const titleDom = [...(rootDom.children as any)].find(child => child.className.includes(TOOLTIP_TITLE_CLASS_NAME));\n\n if (contentDom) {\n const tooltipSpec = this._component.getSpec() as ITooltipSpec;\n const contentStyle: Partial<CSSStyleDeclaration> = {};\n const titleLabel = tooltipSpec.style?.titleLabel;\n const autoFixTitleWidth = titleLabel && titleLabel.autoWidth && titleLabel.multiLine !== false;\n\n if (autoFixTitleWidth && titleDom) {\n const maxWidth = [...(contentDom.children as any)].reduce((res, col) => {\n return sizeKey === 'height'\n ? res + col.getBoundingClientRect().width\n : Math.max(res, col.getBoundingClientRect().width);\n }, 0);\n\n if (maxWidth > 0) {\n titleDom.style.maxWidth = `${maxWidth}px`;\n // 需要再计算一次,因为之前可能因为没有设置maxWidth, content的dom被撑宽了\n titleDom.style.maxWidth = `${Math.ceil(contentDom.getBoundingClientRect().width)}px`;\n }\n }\n\n if (isValid(tooltipSpec?.style?.maxContentHeight)) {\n const titleHeight =\n titleDom && titleDom.className.includes(TOOLTIP_TITLE_CLASS_NAME)\n ? titleDom.getBoundingClientRect().height + (tooltipSpec.style.spaceRow ?? 0)\n : 0;\n const viewRect = (this._chartOption as any).getChartViewRect();\n const maxHeight = calcLayoutNumber(\n tooltipSpec.style.maxContentHeight,\n Math.min(viewRect.height, document.body.clientHeight) -\n titleHeight -\n (this._domStyle.panelPadding ? this._domStyle.panelPadding[0] + this._domStyle.panelPadding[1] : 0)\n );\n\n if (maxHeight > 0) {\n contentStyle.maxHeight = `${maxHeight}px`;\n contentStyle.overflowY = 'auto';\n // todo 让内容宽度往外阔一点,给滚动条留出位置\n contentStyle.width = `calc(100% + ${\n this._domStyle.panelPadding ? this._domStyle.panelPadding[1] + 'px' : '10px'\n })`;\n\n setStyleToDom(contentDom as HTMLElement, contentStyle);\n }\n }\n\n const rows = contentDom.children;\n const widthByCol: number[] = [];\n if (rows) {\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i];\n const cols = row.children ?? ([] as HTMLElement[]);\n\n for (let j = 0; j < cols.length; j++) {\n const width = cols[j].getBoundingClientRect()[sizeKey];\n if (widthByCol[j] === undefined || widthByCol[j] < width) {\n widthByCol[j] = width;\n }\n }\n }\n\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i];\n const cols = row.children ?? ([] as HTMLElement[]);\n\n for (let j = 0; j < cols.length; j++) {\n (cols[j] as HTMLElement).style[sizeKey] = `${widthByCol[j]}px`;\n }\n }\n }\n }\n }\n\n protected _getParentElement(spec: ITooltipSpec): HTMLElement {\n return this._container ?? super._getParentElement(spec);\n }\n\n isTooltipShown() {\n return this.getVisibility();\n }\n\n reInit() {\n super.reInit();\n this._initStyle();\n if (this._rootDom) {\n setStyleToDom(this._rootDom, this._domStyle.panel);\n }\n\n if (this.getVisibility()) {\n this._updateDomStringByCol(this._tooltipActual);\n this._updateDomStyle('height');\n }\n }\n\n protected _updatePosition({ x, y }: ITooltipPositionActual) {\n if (this._rootDom) {\n // translate3d 性能较好:https://stackoverflow.com/questions/22111256/translate3d-vs-translate-performance\n this._rootDom.style.transform = `translate3d(${x}px, ${y}px, 0)`;\n }\n }\n}\n\nexport const registerDomTooltipHandler = () => {\n registerComponentPlugin(DomTooltipHandler);\n};\n"]}
@@ -12,6 +12,6 @@ export interface IMosaicSeriesSpec extends Omit<IBarSeriesSpec, 'type' | 'label'
12
12
  };
13
13
  position?: Functional<'outside' | 'top' | 'bottom' | 'left' | 'right' | 'inside' | 'inside-top' | 'inside-bottom' | 'inside-right' | 'inside-left' | 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'>;
14
14
  }>;
15
- bandField?: string;
15
+ bandWidthField?: string;
16
16
  }
17
17
  export type IMosaicSeriesTheme = IBarSeriesTheme;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/mosaic/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { Functional } from '@visactor/vrender-components';\nimport type { ILabelSpec, IMultiLabelSpec } from '../../component/label/interface';\nimport type { IBarSeriesSpec, IBarSeriesTheme } from '../bar/interface';\nimport type { SeriesMarkNameEnum } from '../interface/type';\n\nexport interface IMosaicSeriesSpec extends Omit<IBarSeriesSpec, 'type' | 'label'> {\n /** 系列类型 */\n type: 'mosaic';\n [SeriesMarkNameEnum.label]?: IMultiLabelSpec<\n Omit<ILabelSpec, 'position'> & {\n /**\n * 是否根据分组字段过滤标签\n */\n filterByGroup?: {\n field: string;\n type?: 'min' | 'max';\n filter?: (d: any) => boolean;\n };\n\n /**\n * 标签位置\n * @since 1.6.0\n * 支持'top-right' | 'top-left'| 'bottom-right' | 'bottom-left',以及函数形式配置\n * */\n position?: Functional<\n | 'outside'\n | 'top'\n | 'bottom'\n | 'left'\n | 'right'\n | 'inside'\n | 'inside-top'\n | 'inside-bottom'\n | 'inside-right'\n | 'inside-left'\n | 'top-right'\n | 'top-left'\n | 'bottom-right'\n | 'bottom-left'\n >;\n }\n >;\n /**\n * 柱子尺寸映射字段,如果不声明默认会根据相同维度下的总值占比进行映射\n * - 条形图方向时自动映射高度\n * - 竖形图方向时自动映射宽度\n * @since 1.13.10\n */\n bandField?: string;\n}\n\nexport type IMosaicSeriesTheme = IBarSeriesTheme;\n"]}
1
+ {"version":3,"sources":["../src/series/mosaic/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { Functional } from '@visactor/vrender-components';\nimport type { ILabelSpec, IMultiLabelSpec } from '../../component/label/interface';\nimport type { IBarSeriesSpec, IBarSeriesTheme } from '../bar/interface';\nimport type { SeriesMarkNameEnum } from '../interface/type';\n\nexport interface IMosaicSeriesSpec extends Omit<IBarSeriesSpec, 'type' | 'label'> {\n /** 系列类型 */\n type: 'mosaic';\n [SeriesMarkNameEnum.label]?: IMultiLabelSpec<\n Omit<ILabelSpec, 'position'> & {\n /**\n * 是否根据分组字段过滤标签\n */\n filterByGroup?: {\n field: string;\n type?: 'min' | 'max';\n filter?: (d: any) => boolean;\n };\n\n /**\n * 标签位置\n * @since 1.6.0\n * 支持'top-right' | 'top-left'| 'bottom-right' | 'bottom-left',以及函数形式配置\n * */\n position?: Functional<\n | 'outside'\n | 'top'\n | 'bottom'\n | 'left'\n | 'right'\n | 'inside'\n | 'inside-top'\n | 'inside-bottom'\n | 'inside-right'\n | 'inside-left'\n | 'top-right'\n | 'top-left'\n | 'bottom-right'\n | 'bottom-left'\n >;\n }\n >;\n /**\n * 柱子尺寸映射字段,如果不声明默认会根据相同维度下的总值占比进行映射\n * - 条形图方向时自动映射高度\n * - 竖形图方向时自动映射宽度\n * @since 1.13.10\n */\n bandWidthField?: string;\n}\n\nexport type IMosaicSeriesTheme = IBarSeriesTheme;\n"]}
@@ -7,8 +7,8 @@ export declare class MosaicSeries<T extends IMosaicSeriesSpec = IMosaicSeriesSpe
7
7
  protected _spec: T;
8
8
  static readonly transformerConstructor: any;
9
9
  readonly transformerConstructor: any;
10
- private _bandField?;
11
- get bandField(): string;
10
+ private _bandWidthField?;
11
+ get bandWidthField(): string;
12
12
  getStack(): boolean;
13
13
  getPercent(): boolean;
14
14
  getGroupFields(): string[];
@@ -22,8 +22,8 @@ export class MosaicSeries extends BarSeries {
22
22
  constructor() {
23
23
  super(...arguments), this.type = SeriesTypeEnum.mosaic, this.transformerConstructor = BarSeriesSpecTransformer;
24
24
  }
25
- get bandField() {
26
- return this._bandField;
25
+ get bandWidthField() {
26
+ return this._bandWidthField;
27
27
  }
28
28
  getStack() {
29
29
  return !0;
@@ -41,7 +41,7 @@ export class MosaicSeries extends BarSeries {
41
41
  this.setFieldX2(MOSAIC_VALUE_START_PERCENT)), this.setFieldY(MOSAIC_CAT_END_PERCENT),
42
42
  this.setFieldY2(MOSAIC_CAT_START_PERCENT)) : (isPercent && (this.setFieldY(MOSAIC_VALUE_END_PERCENT),
43
43
  this.setFieldY2(MOSAIC_VALUE_START_PERCENT)), this.setFieldX(MOSAIC_CAT_END_PERCENT),
44
- this.setFieldX2(MOSAIC_CAT_START_PERCENT)), this._spec.bandField && (this._bandField = this._spec.bandField);
44
+ this.setFieldX2(MOSAIC_CAT_START_PERCENT)), this._spec.bandWidthField && (this._bandWidthField = this._spec.bandWidthField);
45
45
  }
46
46
  parseLabelStyle(labelStyle, labelSpec) {
47
47
  if ((null == labelSpec ? void 0 : labelSpec.filterByGroup) && isNil(labelStyle.dataFilter)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/mosaic/mosaic.ts"],"names":[],"mappings":"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","file":"mosaic.js","sourcesContent":["import { BarSeries } from '../bar/bar';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesTypeEnum } from '../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerRectMark } from '../../mark/rect';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerTextMark } from '../../mark/text';\nimport { registerFadeInOutAnimation } from '../../animation/config';\nimport type { IMosaicSeriesSpec } from './interface';\nimport { Factory } from '../../core/factory';\nimport { BarSeriesSpecTransformer } from '../bar/bar-transformer';\nimport { registerCartesianLinearAxis } from '../../component/axis/cartesian';\nimport { Direction } from '../../typings/space';\nimport {\n MOSAIC_CAT_END_PERCENT,\n MOSAIC_CAT_START_PERCENT,\n MOSAIC_VALUE_END_PERCENT,\n MOSAIC_VALUE_START_PERCENT\n} from '../../constant/data';\nimport { isNil } from '@visactor/vutils';\n\nexport class MosaicSeries<T extends IMosaicSeriesSpec = IMosaicSeriesSpec> extends BarSeries<any> {\n static readonly type: string = SeriesTypeEnum.mosaic;\n type = SeriesTypeEnum.mosaic;\n\n protected declare _spec: T;\n\n static readonly transformerConstructor = BarSeriesSpecTransformer as any;\n readonly transformerConstructor = BarSeriesSpecTransformer as any;\n\n private _bandField?: string;\n get bandField() {\n return this._bandField;\n }\n getStack() {\n return true;\n }\n\n getPercent() {\n return this._spec.percent;\n }\n\n getGroupFields() {\n return this.direction === 'vertical' ? this._specXField : this._specYField;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n const isPercent = this.getPercent();\n\n if (this.direction === Direction.horizontal) {\n if (isPercent) {\n this.setFieldX(MOSAIC_VALUE_END_PERCENT);\n this.setFieldX2(MOSAIC_VALUE_START_PERCENT);\n }\n\n this.setFieldY(MOSAIC_CAT_END_PERCENT);\n this.setFieldY2(MOSAIC_CAT_START_PERCENT);\n } else {\n if (isPercent) {\n this.setFieldY(MOSAIC_VALUE_END_PERCENT);\n this.setFieldY2(MOSAIC_VALUE_START_PERCENT);\n }\n\n this.setFieldX(MOSAIC_CAT_END_PERCENT);\n this.setFieldX2(MOSAIC_CAT_START_PERCENT);\n }\n\n if (this._spec.bandField) {\n this._bandField = this._spec.bandField;\n }\n }\n\n parseLabelStyle(labelStyle: any, labelSpec: any) {\n if (labelSpec?.filterByGroup && isNil(labelStyle.dataFilter)) {\n const allGroupFields = this.getGroupFields();\n const { field, type: filterType = 'max', filter } = labelSpec.filterByGroup;\n delete labelStyle.filterField;\n const fieldIndex = allGroupFields.indexOf(field);\n\n if (fieldIndex < 0) {\n return;\n }\n const isCatField = !!(fieldIndex % 2);\n const valueField = isCatField\n ? filterType === 'min'\n ? this.direction === Direction.horizontal\n ? this._fieldY2\n : this._fieldX2\n : this.direction === Direction.horizontal\n ? this._fieldY\n : this._fieldX\n : filterType === 'min'\n ? this.direction === Direction.horizontal\n ? this._fieldX2\n : this._fieldY2\n : this.direction === Direction.horizontal\n ? this._fieldX\n : this._fieldY;\n const filterFunc =\n filterType === 'min'\n ? (a: any, b: any) => {\n return a.data?.[valueField as string] < b.data?.[valueField as string];\n }\n : (a: any, b: any) => {\n return a.data?.[valueField as string] > b.data?.[valueField as string];\n };\n\n labelStyle.dataFilter = (data: any) => {\n const filteredData = {};\n\n data.forEach((d: any) => {\n const datum = d.data;\n const fieldValue = datum?.[field];\n\n if (isNil(fieldValue) || (filter && !filter(d))) {\n return;\n }\n\n if (!filteredData[fieldValue] || filterFunc(d, filteredData[fieldValue])) {\n filteredData[fieldValue] = d;\n }\n });\n return data.filter((d: any) => {\n const fieldValue = d.data?.[field];\n return filteredData[fieldValue] && filteredData[fieldValue] === d;\n });\n };\n }\n\n return labelStyle;\n }\n}\n\nexport const registerMosaicSeries = () => {\n registerRectMark();\n registerTextMark();\n registerFadeInOutAnimation();\n registerCartesianLinearAxis();\n Factory.registerSeries(MosaicSeries.type, MosaicSeries);\n};\n"]}
1
+ {"version":3,"sources":["../src/series/mosaic/mosaic.ts"],"names":[],"mappings":"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","file":"mosaic.js","sourcesContent":["import { BarSeries } from '../bar/bar';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesTypeEnum } from '../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerRectMark } from '../../mark/rect';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerTextMark } from '../../mark/text';\nimport { registerFadeInOutAnimation } from '../../animation/config';\nimport type { IMosaicSeriesSpec } from './interface';\nimport { Factory } from '../../core/factory';\nimport { BarSeriesSpecTransformer } from '../bar/bar-transformer';\nimport { registerCartesianLinearAxis } from '../../component/axis/cartesian';\nimport { Direction } from '../../typings/space';\nimport {\n MOSAIC_CAT_END_PERCENT,\n MOSAIC_CAT_START_PERCENT,\n MOSAIC_VALUE_END_PERCENT,\n MOSAIC_VALUE_START_PERCENT\n} from '../../constant/data';\nimport { isNil } from '@visactor/vutils';\n\nexport class MosaicSeries<T extends IMosaicSeriesSpec = IMosaicSeriesSpec> extends BarSeries<any> {\n static readonly type: string = SeriesTypeEnum.mosaic;\n type = SeriesTypeEnum.mosaic;\n\n protected declare _spec: T;\n\n static readonly transformerConstructor = BarSeriesSpecTransformer as any;\n readonly transformerConstructor = BarSeriesSpecTransformer as any;\n\n private _bandWidthField?: string;\n get bandWidthField() {\n return this._bandWidthField;\n }\n getStack() {\n return true;\n }\n\n getPercent() {\n return this._spec.percent;\n }\n\n getGroupFields() {\n return this.direction === 'vertical' ? this._specXField : this._specYField;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n const isPercent = this.getPercent();\n\n if (this.direction === Direction.horizontal) {\n if (isPercent) {\n this.setFieldX(MOSAIC_VALUE_END_PERCENT);\n this.setFieldX2(MOSAIC_VALUE_START_PERCENT);\n }\n\n this.setFieldY(MOSAIC_CAT_END_PERCENT);\n this.setFieldY2(MOSAIC_CAT_START_PERCENT);\n } else {\n if (isPercent) {\n this.setFieldY(MOSAIC_VALUE_END_PERCENT);\n this.setFieldY2(MOSAIC_VALUE_START_PERCENT);\n }\n\n this.setFieldX(MOSAIC_CAT_END_PERCENT);\n this.setFieldX2(MOSAIC_CAT_START_PERCENT);\n }\n\n if (this._spec.bandWidthField) {\n this._bandWidthField = this._spec.bandWidthField;\n }\n }\n\n parseLabelStyle(labelStyle: any, labelSpec: any) {\n if (labelSpec?.filterByGroup && isNil(labelStyle.dataFilter)) {\n const allGroupFields = this.getGroupFields();\n const { field, type: filterType = 'max', filter } = labelSpec.filterByGroup;\n delete labelStyle.filterField;\n const fieldIndex = allGroupFields.indexOf(field);\n\n if (fieldIndex < 0) {\n return;\n }\n const isCatField = !!(fieldIndex % 2);\n const valueField = isCatField\n ? filterType === 'min'\n ? this.direction === Direction.horizontal\n ? this._fieldY2\n : this._fieldX2\n : this.direction === Direction.horizontal\n ? this._fieldY\n : this._fieldX\n : filterType === 'min'\n ? this.direction === Direction.horizontal\n ? this._fieldX2\n : this._fieldY2\n : this.direction === Direction.horizontal\n ? this._fieldX\n : this._fieldY;\n const filterFunc =\n filterType === 'min'\n ? (a: any, b: any) => {\n return a.data?.[valueField as string] < b.data?.[valueField as string];\n }\n : (a: any, b: any) => {\n return a.data?.[valueField as string] > b.data?.[valueField as string];\n };\n\n labelStyle.dataFilter = (data: any) => {\n const filteredData: any = {};\n\n data.forEach((d: any) => {\n const datum = d.data;\n const fieldValue = datum?.[field];\n\n if (isNil(fieldValue) || (filter && !filter(d))) {\n return;\n }\n\n if (!filteredData[fieldValue] || filterFunc(d, filteredData[fieldValue])) {\n filteredData[fieldValue] = d;\n }\n });\n return data.filter((d: any) => {\n const fieldValue = d.data?.[field];\n return filteredData[fieldValue] && filteredData[fieldValue] === d;\n });\n };\n }\n\n return labelStyle;\n }\n}\n\nexport const registerMosaicSeries = () => {\n registerRectMark();\n registerTextMark();\n registerFadeInOutAnimation();\n registerCartesianLinearAxis();\n Factory.registerSeries(MosaicSeries.type, MosaicSeries);\n};\n"]}
@@ -3,6 +3,7 @@ import type { IDimensionData, IDimensionInfo } from '../../event/events/dimensio
3
3
  export interface ITooltipHandler extends ITooltipHandlerSpec {
4
4
  getTooltipContainer?: () => any;
5
5
  reInit?: () => any;
6
+ getRootDom?: () => any;
6
7
  }
7
8
  export type TooltipData = IDimensionInfo[] | IDimensionData[];
8
9
  export type TooltipActiveType = 'mark' | 'dimension' | 'group';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/typings/tooltip/handler.ts"],"names":[],"mappings":"","file":"handler.js","sourcesContent":["import type { ITooltipHandlerSpec } from '../../component/tooltip/interface';\nimport type { IDimensionData, IDimensionInfo } from '../../event/events/dimension/interface';\n\nexport interface ITooltipHandler extends ITooltipHandlerSpec {\n /** 可选,获取 tooltip 所在容器 */\n getTooltipContainer?: () => any;\n /** 可选,更新 tooltip spec 或主题后执行的回调 */\n reInit?: () => any;\n}\n\nexport type TooltipData = IDimensionInfo[] | IDimensionData[];\n\nexport type TooltipActiveType = 'mark' | 'dimension' | 'group';\n"]}
1
+ {"version":3,"sources":["../src/typings/tooltip/handler.ts"],"names":[],"mappings":"","file":"handler.js","sourcesContent":["import type { ITooltipHandlerSpec } from '../../component/tooltip/interface';\nimport type { IDimensionData, IDimensionInfo } from '../../event/events/dimension/interface';\n\nexport interface ITooltipHandler extends ITooltipHandlerSpec {\n /** 可选,获取 tooltip 所在容器 */\n getTooltipContainer?: () => any;\n /** 可选,更新 tooltip spec 或主题后执行的回调 */\n reInit?: () => any;\n /** dom tooltip 支持改api */\n getRootDom?: () => any;\n}\n\nexport type TooltipData = IDimensionInfo[] | IDimensionData[];\n\nexport type TooltipActiveType = 'mark' | 'dimension' | 'group';\n"]}
package/esm/util/data.js CHANGED
@@ -81,7 +81,7 @@ export function stackMosaic(s, stackCache, mosaicData) {
81
81
  var _a, _b;
82
82
  const groupValues = stackCache.nodes[group];
83
83
  let value;
84
- return value = s.bandField && null !== (_b = null === (_a = groupValues.values.find((v => isValid(v[s.bandField])))) || void 0 === _a ? void 0 : _a[s.bandField]) && void 0 !== _b ? _b : groupValues.total,
84
+ return value = s.bandWidthField && null !== (_b = null === (_a = groupValues.values.find((v => isValid(v[s.bandWidthField])))) || void 0 === _a ? void 0 : _a[s.bandWidthField]) && void 0 !== _b ? _b : groupValues.total,
85
85
  {
86
86
  groupValue: group,
87
87
  value: value,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/data.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,uBAAuB,EACvB,gCAAgC,EAChC,kCAAkC,EAClC,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAKlC,MAAM,UAAU,WAAW,CACzB,YAGG,EACH,WAGG;IAKH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC3C,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,EAAE;YACZ,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC5B;aAAM;YACL,OAAO,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SAClF;KACF;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CACjB,IAGG,EACH,QAAgB;IAEhB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAGD,MAAM,UAAU,aAAa,CAAC,QAAkB,EAAE,KAAa;;IAC7D,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,CAAC;KACtB;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,CAAC;KACtB;IACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QAClB,OAAO,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,CAAC;KACtB;IACD,OAAO,MAAA,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,mCAAI,KAAK,CAAC;AACtC,CAAC;AAmCD,MAAM,UAAU,mBAAmB,CAAC,MAAe,EAAE,eAAwB,EAAE,MAA4B;IACzG,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAExC,MAAM,eAAe,GAAuC,EAAE,CAAC;IAE/D,IAAI,cAAc,GAAoB,IAAI,CAAC;IAE3C,IAAI,SAAS,EAAE;QAGb,cAAc,GAAG,EAAE,CAAC;QACpB,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAE7B,MAAM,WAAW,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC;YACvC,IAAI,WAAW,EAAE;gBACf,MAAM,SAAS,GAAG,CAAC,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;gBAC7D,IAAI,SAAS,CAAC,MAAM,EAAE;oBACpB,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;wBAChC,cAAc,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;qBAC1D;oBACD,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBAChC,IAAI,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE;4BAC5C,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC;4BAC5E,cAAc,CAAC,WAAW,CAAC,CAAC,SAAS,EAAE,CAAC;yBACzC;oBACH,CAAC,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,CAAC,CAAC;KACJ;IAED,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;;QAC7B,MAAM,SAAS,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,eAAe,GAAG,CAAC,CAAC,kBAAkB,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/C,IAAI,SAAS,IAAI,eAAe,IAAI,YAAY,EAAE;YAChD,eAAe,CAAC,UAAU,CAAC,GAAG,MAAA,eAAe,CAAC,UAAU,CAAC,mCAAI;gBAC3D,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,KAAK,EAAE,EAAE;aACV,CAAC;YAEF,UAAU,CACR,CAAC,EACD,SAAS,EACT,eAAe,CAAC,UAAU,CAAoB,EAC9C,eAAe,EACf,eAAe,EACf,cAAc,CACf,CAAC;SACH;IACH,CAAC,CAAC,CAAC;IACH,OAAO,SAAS;QACd,CAAC,CAAC,mBAAmB,CAAC,eAAqD,EAAE,cAAc,CAAC;QAC5F,CAAC,CAAC,eAAe,CAAC;AACtB,CAAC;AAGD,MAAM,UAAU,mBAAmB,CACjC,eAAmD,EACnD,cAA+B;;IAE/B,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE;QACjC,IAAI,MAAA,eAAe,CAAC,GAAG,CAAC,CAAC,UAAU,0CAAE,MAAM,EAAE;YAC3C,eAAe,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAClE,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;SACnF;aAAM;YACL,mBAAmB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;SACjE;KACF;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,SAA0B,EAAE,UAAkB;IACvE,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;QACpD,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;QAE/D,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC3B,CAAC,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC;YAC7B,CAAC,CAAC,yBAAyB,CAAC,GAAG,OAAO,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,OAAO;KACR;IACD,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE;QACjC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;KAC9C;IACD,OAAO;AACT,CAAC;AAYD,MAAM,UAAU,gBAAgB,CAAC,SAA0B,EAAE,UAAkB;;IAC7E,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;QACpD,IAAI,OAAO,CAAC,MAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,0CAAG,iBAAiB,CAAC,CAAC,EAAE;YACrD,SAAS,CAAC,KAAK,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,0CAAG,iBAAiB,CAAC,CAAC;SAC5D;aAAM;YACL,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;SACrD;QACD,OAAO;KACR;IACD,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE;QACjC,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;KACpD;IAED,IAAI,SAAS,CAAC,KAAK,EAAE;QACnB,SAAS,CAAC,KAAK,GAAG,GAAG,CACnB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAC7D,OAAO,CACR,CAAC;KACH;IAED,OAAO;AACT,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAU,EAAE,UAA2B,EAAE,UAA0B;;IAC7F,IAAI,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,KAAK,EAAE;QAC7C,MAAM,WAAW,GAAG,CAAA,MAAA,CAAC,CAAC,2BAA2B,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,0CAAE,MAAM,KAAI,EAAE,CAAC;QAC9F,MAAM,eAAe,GAAG;YACtB,GAAG,EAAE,GAAG,UAAU,CAAC,UAAU,EAAE;YAC/B,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;;gBAC9B,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,KAAK,CAAC;gBACV,IAAK,CAAkB,CAAC,SAAS,EAAE;oBACjC,KAAK;wBACH,MAAA,MAAA,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAE,CAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,0CAAI,CAAkB,CAAC,SAAS,CAAC,mCACxG,WAAW,CAAC,KAAK,CAAC;iBACrB;qBAAM;oBACL,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;iBAC3B;gBAED,OAAO;oBACL,UAAU,EAAE,KAAK;oBACjB,KAAK;oBACL,GAAG,EAAE,KAAK;iBACX,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;QAEF,KAAK,CAAC,eAAkC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;YAC5D,GAAG,EAAE,YAAY;YACjB,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,KAAK;YACV,YAAY,EAAE,cAAc;YAC5B,UAAU,EAAE,YAAY;SACzB,CAAC,CAAC;QAEH,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACzC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAS,CAAC,UAAU,GAAG,UAAU,CAAC;QAC3E,CAAC,CAAC,CAAC;KACJ;SAAM,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE;QAChG,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC;QAC9B,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACf,MAAM,QAAQ,GAAG,aAAa,GAAG,eAAe,CAAC;gBAEjD,aAAa,GAAG,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,QAAQ,CAAC;gBACtE,eAAe,GAAG,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,QAAQ,CAAC;aAC3E;iBAAM;gBACL,MAAM,UAAU,GAAG,eAAe,GAAG,iBAAiB,CAAC;gBAEvD,eAAe,GAAG,iBAAiB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC5E,iBAAiB,GAAG,iBAAiB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC;aACjF;SACF;QAED,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;YACjB,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC5B,MAAM,KAAK,GAAG,aAAa,GAAG,eAAe,CAAC;gBAC9C,CAAC,CAAC,sBAAsB,CAAC,GAAG,eAAe,GAAG,KAAK,GAAG,CAAC,CAAC,uBAAuB,CAAC,CAAC;gBACjF,CAAC,CAAC,wBAAwB,CAAC,GAAG,eAAe,GAAG,KAAK,GAAG,CAAC,CAAC,yBAAyB,CAAC,CAAC;gBACrF,CAAC,CAAC,wBAAwB,CAAC,GAAG,eAAe,CAAC;gBAC9C,CAAC,CAAC,0BAA0B,CAAC,GAAG,iBAAiB,CAAC;YACpD,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC5B,MAAM,KAAK,GAAG,eAAe,GAAG,iBAAiB,CAAC;gBAClD,CAAC,CAAC,wBAAwB,CAAC,GAAG,iBAAiB,GAAG,KAAK,GAAG,CAAC,CAAC,uBAAuB,CAAC,CAAC;gBACrF,CAAC,CAAC,0BAA0B,CAAC,GAAG,iBAAiB,GAAG,KAAK,GAAG,CAAC,CAAC,yBAAyB,CAAC,CAAC;gBACzF,CAAC,CAAC,sBAAsB,CAAC,GAAG,aAAa,CAAC;gBAC1C,CAAC,CAAC,wBAAwB,CAAC,GAAG,eAAe,CAAC;YAChD,CAAC,CAAC,CAAC;SACJ;KACF;IAED,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE;QAClC,WAAW,CACT,CAAC,EACD,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EACpB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAS,CAAC,UAAU;YACvC,CAAC,CAAC,UAAU;gBACV,CAAC,CAAC,CAAC,GAAG,UAAU,EAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAS,CAAC,UAAU,CAAC;gBAC5D,CAAC,CAAC,CAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAS,CAAC,UAAU,CAAC;YAC/C,CAAC,CAAC,IAAI,CACT,CAAC;KACH;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAA2B;IAC/D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE;QAC7B,OAAO;KACR;IACD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACzF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACjD,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC;QACjH,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,WAAW,CAAC;KAC9G;AACH,CAAC;AAED,MAAM,UAAU,KAAK,CACnB,UAA2B,EAC3B,YAAqB,EACrB,UAAoB,EACpB,SAAmB,EACnB,SAQI;IACF,GAAG,EAAE,eAAe;IACpB,KAAK,EAAE,iBAAiB;IACxB,GAAG,EAAE,eAAe;IACpB,YAAY,EAAE,yBAAyB;IACvC,UAAU,EAAE,uBAAuB;IACnC,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,wBAAwB;CAC9B;IAED,MAAM,WAAW,GAAG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAErD,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QAEhC,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAQ,IAAI,CAAC;QACxB,IAAI,OAAO,GAAQ,IAAI,CAAC;QAGxB,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,EAAE;YAC9C,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1E,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,KAAK,IAAI,CAAC,EAAE;gBACd,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC;gBAChC,aAAa,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC/B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC;aAC/B;iBAAM;gBACL,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC;gBAChC,aAAa,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC/B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC;aAC/B;YACD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;YAE/B,IAAI,WAAW,EAAE;gBACf,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrB,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;oBACnD,OAAO,GAAG,CAAC,CAAC;iBACb;aACF;YACD,IAAI,WAAW,EAAE;gBACf,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrB,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBACvD,OAAO,GAAG,CAAC,CAAC;iBACb;aACF;SACF;QAED,WAAW,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACvD,WAAW,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAEvD,IAAI,UAAU,EAAE;YAEd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,EAAE;gBAC9C,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC1E,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtB,MAAM,WAAW,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC/D,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;gBACnG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;aAChG;SACF;KACF;IAED,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE;QAClC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;KAC3E;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,CAAU,EACV,SAA+B,EAC/B,UAA2B,EAC3B,UAAkB,EAClB,eAAwB,EACxB,cAA+B,EAC/B,QAAiB;;IAEjB,IAAI,QAAQ,IAAI,SAAS,EAAE;QACzB,eAAe,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACtG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAE3D,IAAI,cAAc,EAAE;YAElB,MAAM,WAAW,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC;YACvC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC3B,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;oBACzB,MAAM,EAAE,CAAC;oBACT,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC1E,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;aAAM;YAEL,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;SAC7C;QACD,OAAO;KACR;IACD,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE;QACjC,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAE1D,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAC1B,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;gBACtB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,EAAE;gBACT,UAAU,EAAE,EAAE;gBACd,GAAG,EAAE,WAAW;aACjB,CAAC;YAEF,IAAI,OAAO,CAAC,MAAA,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,0CAAE,UAAU,CAAC,EAAE;gBAC7C,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;aACpE;SACF;QAED,UAAU,CACR,CAAC,EACD,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EACpB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EACrB,UAAU,EACV,eAAe,EACf,cAAc,EACd,WAAW,CACZ,CAAC;KACH;AACH,CAAC","file":"data.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { StatisticOperations } from '../data/transforms/interface';\nimport {\n STACK_FIELD_END,\n STACK_FIELD_START_PERCENT,\n STACK_FIELD_END_PERCENT,\n STACK_FIELD_END_OffsetSilhouette,\n STACK_FIELD_START_OffsetSilhouette,\n STACK_FIELD_TOTAL,\n STACK_FIELD_TOTAL_PERCENT,\n STACK_FIELD_TOTAL_TOP,\n STACK_FIELD_START,\n STACK_FIELD_KEY,\n STACK_FIELD_TOTAL_BOTTOM,\n MOSAIC_CAT_START_PERCENT,\n MOSAIC_CAT_END_PERCENT,\n MOSAIC_VALUE_START_PERCENT,\n MOSAIC_VALUE_END_PERCENT\n} from '../constant/data';\nimport { isValid, toValidNumber } from './type';\nimport { max, sum } from './math';\nimport type { ISeries, ISeriesStackDataMeta } from '../series/interface';\nimport type { IRegion } from '../region/interface';\nimport { MosaicSeries } from '../series';\n\nexport function mergeFields(\n targetFields: {\n key: string;\n operations: StatisticOperations;\n }[],\n mergeFields: {\n key: string;\n operations: StatisticOperations;\n }[]\n): {\n key: string;\n operations: StatisticOperations;\n}[] {\n for (let i = 0; i < mergeFields.length; i++) {\n const element = mergeFields[i];\n const _target = findFields(targetFields, element.key);\n if (!_target) {\n targetFields.push(element);\n } else {\n _target.operations = [...new Set(_target.operations.concat(element.operations))];\n }\n }\n return targetFields;\n}\n\nfunction findFields(\n list: {\n key: string;\n operations: StatisticOperations;\n }[],\n fieldKey: string\n) {\n return list.find(i => i.key === fieldKey);\n}\n\n// 如果不存在别名就返回 field\nexport function getFieldAlias(dataView: DataView, field: string) {\n if (!dataView) {\n return field ?? null;\n }\n const fields = dataView.getFields();\n if (!fields) {\n return field ?? null;\n }\n if (!fields[field]) {\n return field ?? null;\n }\n return fields[field].alias ?? field;\n}\n\nexport interface IStackCacheNode {\n groupField?: string;\n values: any[];\n series: {\n s: ISeries;\n values: any[];\n }[];\n sortDatums: {\n datum: any;\n index: number;\n series: ISeries;\n }[];\n nodes: {\n [key: string]: IStackCacheNode;\n };\n key: string;\n total?: number;\n}\nexport interface IStackCacheRoot {\n groupField?: string;\n total?: number;\n nodes: {\n [key: string]: IStackCacheNode;\n };\n}\n\nexport interface IStackSortCache {\n [key: string]: {\n lastIndex: number;\n sort: { [key: string]: number };\n };\n}\n\nexport function getRegionStackGroup(region: IRegion, setInitialValue: boolean, filter?: (s: any) => boolean) {\n const stackSort = region.getStackSort();\n\n const stackValueGroup: { [key: string]: IStackCacheRoot } = {};\n // 堆积排序 {维度key: { lastIndex: 0, sort:{[值]: 值序号}}}\n let stackSortCache: IStackSortCache = null;\n // 如果有排序\n if (stackSort) {\n // 先遍历系列,得到基于 seriesField 的排序信息\n // 这里性能消耗应该很小\n stackSortCache = {};\n region.getSeries().forEach(s => {\n // 拿到系列的 seriesField 做排序准备\n const seriesField = s.getSeriesField();\n if (seriesField) {\n const fieldInfo = s.getRawDataStatisticsByField(seriesField);\n if (fieldInfo.values) {\n if (!stackSortCache[seriesField]) {\n stackSortCache[seriesField] = { lastIndex: 0, sort: {} };\n }\n fieldInfo.values.forEach((v, i) => {\n if (!(v in stackSortCache[seriesField].sort)) {\n stackSortCache[seriesField].sort[v] = stackSortCache[seriesField].lastIndex;\n stackSortCache[seriesField].lastIndex++;\n }\n });\n }\n }\n });\n }\n\n region.getSeries().forEach(s => {\n const stackData = s.getStackData();\n const stackValue = s.getStackValue();\n const stackValueField = s.getStackValueField();\n const filterEnable = filter ? filter(s) : true;\n if (stackData && stackValueField && filterEnable) {\n stackValueGroup[stackValue] = stackValueGroup[stackValue] ?? {\n groupField: stackData.groupField,\n nodes: {}\n };\n\n stackGroup(\n s,\n stackData,\n stackValueGroup[stackValue] as IStackCacheNode,\n stackValueField,\n setInitialValue,\n stackSortCache\n );\n }\n });\n return stackSort\n ? sortStackValueGroup(stackValueGroup as { [key: string]: IStackCacheNode }, stackSortCache)\n : stackValueGroup;\n}\n\n// 排序\nexport function sortStackValueGroup(\n stackValueGroup: { [key: string]: IStackCacheNode },\n stackSortCache: IStackSortCache\n) {\n for (const key in stackValueGroup) {\n if (stackValueGroup[key].sortDatums?.length) {\n stackValueGroup[key].sortDatums.sort((a, b) => a.index - b.index);\n stackValueGroup[key].values = stackValueGroup[key].sortDatums.map(sd => sd.datum);\n } else {\n sortStackValueGroup(stackValueGroup[key].nodes, stackSortCache);\n }\n }\n return stackValueGroup;\n}\n\nexport function stackTotal(stackData: IStackCacheNode, valueField: string) {\n if ('values' in stackData && stackData.values.length) {\n const total = sum(stackData.values, valueField);\n const percent = max(stackData.values, STACK_FIELD_END_PERCENT);\n\n stackData.values.forEach(v => {\n v[STACK_FIELD_TOTAL] = total;\n v[STACK_FIELD_TOTAL_PERCENT] = percent;\n });\n\n return;\n }\n for (const key in stackData.nodes) {\n stackTotal(stackData.nodes[key], valueField);\n }\n return;\n}\n\nexport interface IMosaicData {\n groupField?: string;\n groupValue?: string;\n value?: number;\n end?: number;\n start?: number;\n startPercent?: number;\n endPercent?: number;\n}\n\nexport function stackMosaicTotal(stackData: IStackCacheNode, valueField: string) {\n if ('values' in stackData && stackData.values.length) {\n if (isValid(stackData.values[0]?.[STACK_FIELD_TOTAL])) {\n stackData.total = stackData.values[0]?.[STACK_FIELD_TOTAL];\n } else {\n stackData.total = sum(stackData.values, valueField);\n }\n return;\n }\n for (const key in stackData.nodes) {\n stackMosaicTotal(stackData.nodes[key], valueField);\n }\n\n if (stackData.nodes) {\n stackData.total = sum(\n Object.keys(stackData.nodes).map(key => stackData.nodes[key]),\n 'total'\n );\n }\n\n return;\n}\n\nexport function stackMosaic(s: ISeries, stackCache: IStackCacheNode, mosaicData?: IMosaicData[]) {\n if (stackCache.groupField && stackCache.nodes) {\n const groupValues = s.getRawDataStatisticsByField(stackCache.groupField, false)?.values || [];\n const mosaicStackData = {\n key: `${stackCache.groupField}`,\n values: groupValues.map(group => {\n const groupValues = stackCache.nodes[group];\n let value;\n if ((s as MosaicSeries).bandField) {\n value =\n groupValues.values.find(v => isValid(v[(s as MosaicSeries).bandField]))?.[(s as MosaicSeries).bandField] ??\n groupValues.total;\n } else {\n value = groupValues.total;\n }\n\n return {\n groupValue: group,\n value,\n end: value\n };\n })\n };\n\n stack(mosaicStackData as IStackCacheNode, false, true, false, {\n key: 'groupField',\n start: 'start',\n end: 'end',\n startPercent: 'startPercent',\n endPercent: 'endPercent'\n });\n\n mosaicStackData.values.forEach(stackValue => {\n (stackCache.nodes[stackValue.groupValue] as any).mosaicData = stackValue;\n });\n } else if ('values' in stackCache && stackCache.values.length && mosaicData && mosaicData.length) {\n const len = mosaicData.length;\n let catStartPercent = 0;\n let catEndPercent = 1;\n let valueStartPercent = 0;\n let valueEndPercent = 1;\n\n for (let i = 0; i < len; i++) {\n if (i % 2 === 0) {\n const catDelta = catEndPercent - catStartPercent;\n\n catEndPercent = catStartPercent + mosaicData[i].endPercent * catDelta;\n catStartPercent = catStartPercent + mosaicData[i].startPercent * catDelta;\n } else {\n const valueDelta = valueEndPercent - valueStartPercent;\n\n valueEndPercent = valueStartPercent + mosaicData[i].endPercent * valueDelta;\n valueStartPercent = valueStartPercent + mosaicData[i].startPercent * valueDelta;\n }\n }\n\n if (len % 2 === 0) {\n stackCache.values.forEach(v => {\n const delta = catEndPercent - catStartPercent;\n v[MOSAIC_CAT_END_PERCENT] = catStartPercent + delta * v[STACK_FIELD_END_PERCENT];\n v[MOSAIC_CAT_START_PERCENT] = catStartPercent + delta * v[STACK_FIELD_START_PERCENT];\n v[MOSAIC_VALUE_END_PERCENT] = valueEndPercent;\n v[MOSAIC_VALUE_START_PERCENT] = valueStartPercent;\n });\n } else {\n stackCache.values.forEach(v => {\n const delta = valueEndPercent - valueStartPercent;\n v[MOSAIC_VALUE_END_PERCENT] = valueStartPercent + delta * v[STACK_FIELD_END_PERCENT];\n v[MOSAIC_VALUE_START_PERCENT] = valueStartPercent + delta * v[STACK_FIELD_START_PERCENT];\n v[MOSAIC_CAT_END_PERCENT] = catEndPercent;\n v[MOSAIC_CAT_START_PERCENT] = catStartPercent;\n });\n }\n }\n\n for (const key in stackCache.nodes) {\n stackMosaic(\n s,\n stackCache.nodes[key],\n (stackCache.nodes[key] as any).mosaicData\n ? mosaicData\n ? [...mosaicData, (stackCache.nodes[key] as any).mosaicData]\n : [(stackCache.nodes[key] as any).mosaicData]\n : null\n );\n }\n}\n\nexport function stackOffsetSilhouette(stackCache: IStackCacheNode) {\n if (!stackCache.values.length) {\n return;\n }\n const centerValue = stackCache.values[stackCache.values.length - 1][STACK_FIELD_END] / 2;\n for (let j = 0; j < stackCache.values.length; j++) {\n stackCache.values[j][STACK_FIELD_START_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_START] - centerValue;\n stackCache.values[j][STACK_FIELD_END_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_END] - centerValue;\n }\n}\n\nexport function stack(\n stackCache: IStackCacheNode,\n stackInverse: boolean,\n hasPercent?: boolean,\n hasMinMax?: boolean,\n fields: {\n key: string;\n start: string;\n end: string;\n startPercent: string;\n endPercent: string;\n min?: string;\n max?: string;\n } = {\n key: STACK_FIELD_KEY,\n start: STACK_FIELD_START,\n end: STACK_FIELD_END,\n startPercent: STACK_FIELD_START_PERCENT,\n endPercent: STACK_FIELD_END_PERCENT,\n max: STACK_FIELD_TOTAL_TOP,\n min: STACK_FIELD_TOTAL_BOTTOM\n }\n) {\n const hasMinField = hasMinMax && isValid(fields.min);\n const hasMaxField = hasMinMax && isValid(fields.max);\n\n if (stackCache.values.length > 0) {\n // 设置一个小数以保证 log 计算不会报错\n let positiveStart = 0;\n let negativeStart = 0;\n // temp\n let sign = 1;\n let value = 0;\n let minNode: any = null;\n let maxNode: any = null;\n\n // stack\n const maxLength = stackCache.values.length;\n for (let index = 0; index < maxLength; index++) {\n const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];\n value = v[fields.end];\n if (value >= 0) {\n v[fields.start] = positiveStart;\n positiveStart += v[fields.end];\n v[fields.end] = positiveStart;\n } else {\n v[fields.start] = negativeStart;\n negativeStart += v[fields.end];\n v[fields.end] = negativeStart;\n }\n v[fields.key] = stackCache.key;\n\n if (hasMaxField) {\n delete v[fields.max];\n if (!maxNode || v[fields.end] > maxNode[fields.end]) {\n maxNode = v;\n }\n }\n if (hasMinField) {\n delete v[fields.min];\n if (!minNode || v[fields.start] < minNode[fields.start]) {\n minNode = v;\n }\n }\n }\n\n hasMaxField && maxNode && (maxNode[fields.max] = true);\n hasMinField && minNode && (minNode[fields.min] = true);\n\n if (hasPercent) {\n // normalize\n for (let index = 0; index < maxLength; index++) {\n const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];\n value = v[fields.end];\n const denominator = value >= 0 ? positiveStart : negativeStart;\n sign = value >= 0 ? 1 : -1;\n v[fields.startPercent] = denominator === 0 ? 0 : Math.min(1, v[fields.start] / denominator) * sign;\n v[fields.endPercent] = denominator === 0 ? 0 : Math.min(1, v[fields.end] / denominator) * sign;\n }\n }\n }\n\n for (const key in stackCache.nodes) {\n stack(stackCache.nodes[key], stackInverse, hasPercent, hasMinMax, fields);\n }\n}\n\nexport function stackGroup(\n s: ISeries,\n stackData: ISeriesStackDataMeta,\n stackCache: IStackCacheNode,\n valueField: string,\n setInitialValue: boolean,\n stackSortCache: IStackSortCache,\n stackKey?: string\n) {\n if ('values' in stackData) {\n setInitialValue && stackData.values.forEach(v => (v[STACK_FIELD_END] = toValidNumber(v[valueField])));\n stackCache.series.push({ s: s, values: stackData.values });\n // 如果有排序\n if (stackSortCache) {\n // 系列的 seriesField\n const seriesField = s.getSeriesField();\n stackData.values.forEach(d => {\n stackCache.sortDatums.push({\n series: s,\n datum: d,\n index: seriesField ? stackSortCache[seriesField].sort[d[seriesField]] : 0\n });\n });\n } else {\n // 如果没有排序,直接生成 values 数组\n stackCache.values.push(...stackData.values);\n }\n return;\n }\n for (const key in stackData.nodes) {\n const newStackKey = stackKey ? `${stackKey}_${key}` : key;\n\n if (!stackCache.nodes[key]) {\n stackCache.nodes[key] = {\n values: [],\n series: [],\n nodes: {},\n sortDatums: [],\n key: newStackKey\n };\n\n if (isValid(stackData.nodes[key]?.groupField)) {\n stackCache.nodes[key].groupField = stackData.nodes[key].groupField;\n }\n }\n\n stackGroup(\n s,\n stackData.nodes[key],\n stackCache.nodes[key],\n valueField,\n setInitialValue,\n stackSortCache,\n newStackKey\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/util/data.ts"],"names":[],"mappings":"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","file":"data.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { StatisticOperations } from '../data/transforms/interface';\nimport {\n STACK_FIELD_END,\n STACK_FIELD_START_PERCENT,\n STACK_FIELD_END_PERCENT,\n STACK_FIELD_END_OffsetSilhouette,\n STACK_FIELD_START_OffsetSilhouette,\n STACK_FIELD_TOTAL,\n STACK_FIELD_TOTAL_PERCENT,\n STACK_FIELD_TOTAL_TOP,\n STACK_FIELD_START,\n STACK_FIELD_KEY,\n STACK_FIELD_TOTAL_BOTTOM,\n MOSAIC_CAT_START_PERCENT,\n MOSAIC_CAT_END_PERCENT,\n MOSAIC_VALUE_START_PERCENT,\n MOSAIC_VALUE_END_PERCENT\n} from '../constant/data';\nimport { isValid, toValidNumber } from './type';\nimport { max, sum } from './math';\nimport type { ISeries, ISeriesStackDataMeta } from '../series/interface';\nimport type { IRegion } from '../region/interface';\nimport { MosaicSeries } from '../series';\n\nexport function mergeFields(\n targetFields: {\n key: string;\n operations: StatisticOperations;\n }[],\n mergeFields: {\n key: string;\n operations: StatisticOperations;\n }[]\n): {\n key: string;\n operations: StatisticOperations;\n}[] {\n for (let i = 0; i < mergeFields.length; i++) {\n const element = mergeFields[i];\n const _target = findFields(targetFields, element.key);\n if (!_target) {\n targetFields.push(element);\n } else {\n _target.operations = [...new Set(_target.operations.concat(element.operations))];\n }\n }\n return targetFields;\n}\n\nfunction findFields(\n list: {\n key: string;\n operations: StatisticOperations;\n }[],\n fieldKey: string\n) {\n return list.find(i => i.key === fieldKey);\n}\n\n// 如果不存在别名就返回 field\nexport function getFieldAlias(dataView: DataView, field: string) {\n if (!dataView) {\n return field ?? null;\n }\n const fields = dataView.getFields();\n if (!fields) {\n return field ?? null;\n }\n if (!fields[field]) {\n return field ?? null;\n }\n return fields[field].alias ?? field;\n}\n\nexport interface IStackCacheNode {\n groupField?: string;\n values: any[];\n series: {\n s: ISeries;\n values: any[];\n }[];\n sortDatums: {\n datum: any;\n index: number;\n series: ISeries;\n }[];\n nodes: {\n [key: string]: IStackCacheNode;\n };\n key: string;\n total?: number;\n}\nexport interface IStackCacheRoot {\n groupField?: string;\n total?: number;\n nodes: {\n [key: string]: IStackCacheNode;\n };\n}\n\nexport interface IStackSortCache {\n [key: string]: {\n lastIndex: number;\n sort: { [key: string]: number };\n };\n}\n\nexport function getRegionStackGroup(region: IRegion, setInitialValue: boolean, filter?: (s: any) => boolean) {\n const stackSort = region.getStackSort();\n\n const stackValueGroup: { [key: string]: IStackCacheRoot } = {};\n // 堆积排序 {维度key: { lastIndex: 0, sort:{[值]: 值序号}}}\n let stackSortCache: IStackSortCache = null;\n // 如果有排序\n if (stackSort) {\n // 先遍历系列,得到基于 seriesField 的排序信息\n // 这里性能消耗应该很小\n stackSortCache = {};\n region.getSeries().forEach(s => {\n // 拿到系列的 seriesField 做排序准备\n const seriesField = s.getSeriesField();\n if (seriesField) {\n const fieldInfo = s.getRawDataStatisticsByField(seriesField);\n if (fieldInfo.values) {\n if (!stackSortCache[seriesField]) {\n stackSortCache[seriesField] = { lastIndex: 0, sort: {} };\n }\n fieldInfo.values.forEach((v, i) => {\n if (!(v in stackSortCache[seriesField].sort)) {\n stackSortCache[seriesField].sort[v] = stackSortCache[seriesField].lastIndex;\n stackSortCache[seriesField].lastIndex++;\n }\n });\n }\n }\n });\n }\n\n region.getSeries().forEach(s => {\n const stackData = s.getStackData();\n const stackValue = s.getStackValue();\n const stackValueField = s.getStackValueField();\n const filterEnable = filter ? filter(s) : true;\n if (stackData && stackValueField && filterEnable) {\n stackValueGroup[stackValue] = stackValueGroup[stackValue] ?? {\n groupField: stackData.groupField,\n nodes: {}\n };\n\n stackGroup(\n s,\n stackData,\n stackValueGroup[stackValue] as IStackCacheNode,\n stackValueField,\n setInitialValue,\n stackSortCache\n );\n }\n });\n return stackSort\n ? sortStackValueGroup(stackValueGroup as { [key: string]: IStackCacheNode }, stackSortCache)\n : stackValueGroup;\n}\n\n// 排序\nexport function sortStackValueGroup(\n stackValueGroup: { [key: string]: IStackCacheNode },\n stackSortCache: IStackSortCache\n) {\n for (const key in stackValueGroup) {\n if (stackValueGroup[key].sortDatums?.length) {\n stackValueGroup[key].sortDatums.sort((a, b) => a.index - b.index);\n stackValueGroup[key].values = stackValueGroup[key].sortDatums.map(sd => sd.datum);\n } else {\n sortStackValueGroup(stackValueGroup[key].nodes, stackSortCache);\n }\n }\n return stackValueGroup;\n}\n\nexport function stackTotal(stackData: IStackCacheNode, valueField: string) {\n if ('values' in stackData && stackData.values.length) {\n const total = sum(stackData.values, valueField);\n const percent = max(stackData.values, STACK_FIELD_END_PERCENT);\n\n stackData.values.forEach(v => {\n v[STACK_FIELD_TOTAL] = total;\n v[STACK_FIELD_TOTAL_PERCENT] = percent;\n });\n\n return;\n }\n for (const key in stackData.nodes) {\n stackTotal(stackData.nodes[key], valueField);\n }\n return;\n}\n\nexport interface IMosaicData {\n groupField?: string;\n groupValue?: string;\n value?: number;\n end?: number;\n start?: number;\n startPercent?: number;\n endPercent?: number;\n}\n\nexport function stackMosaicTotal(stackData: IStackCacheNode, valueField: string) {\n if ('values' in stackData && stackData.values.length) {\n if (isValid(stackData.values[0]?.[STACK_FIELD_TOTAL])) {\n stackData.total = stackData.values[0]?.[STACK_FIELD_TOTAL];\n } else {\n stackData.total = sum(stackData.values, valueField);\n }\n return;\n }\n for (const key in stackData.nodes) {\n stackMosaicTotal(stackData.nodes[key], valueField);\n }\n\n if (stackData.nodes) {\n stackData.total = sum(\n Object.keys(stackData.nodes).map(key => stackData.nodes[key]),\n 'total'\n );\n }\n\n return;\n}\n\nexport function stackMosaic(s: ISeries, stackCache: IStackCacheNode, mosaicData?: IMosaicData[]) {\n if (stackCache.groupField && stackCache.nodes) {\n const groupValues = s.getRawDataStatisticsByField(stackCache.groupField, false)?.values || [];\n const mosaicStackData = {\n key: `${stackCache.groupField}`,\n values: groupValues.map(group => {\n const groupValues = stackCache.nodes[group];\n let value;\n if ((s as MosaicSeries).bandWidthField) {\n value =\n groupValues.values.find(v => isValid(v[(s as MosaicSeries).bandWidthField]))?.[\n (s as MosaicSeries).bandWidthField\n ] ?? groupValues.total;\n } else {\n value = groupValues.total;\n }\n\n return {\n groupValue: group,\n value,\n end: value\n };\n })\n };\n\n stack(mosaicStackData as IStackCacheNode, false, true, false, {\n key: 'groupField',\n start: 'start',\n end: 'end',\n startPercent: 'startPercent',\n endPercent: 'endPercent'\n });\n\n mosaicStackData.values.forEach(stackValue => {\n (stackCache.nodes[stackValue.groupValue] as any).mosaicData = stackValue;\n });\n } else if ('values' in stackCache && stackCache.values.length && mosaicData && mosaicData.length) {\n const len = mosaicData.length;\n let catStartPercent = 0;\n let catEndPercent = 1;\n let valueStartPercent = 0;\n let valueEndPercent = 1;\n\n for (let i = 0; i < len; i++) {\n if (i % 2 === 0) {\n const catDelta = catEndPercent - catStartPercent;\n\n catEndPercent = catStartPercent + mosaicData[i].endPercent * catDelta;\n catStartPercent = catStartPercent + mosaicData[i].startPercent * catDelta;\n } else {\n const valueDelta = valueEndPercent - valueStartPercent;\n\n valueEndPercent = valueStartPercent + mosaicData[i].endPercent * valueDelta;\n valueStartPercent = valueStartPercent + mosaicData[i].startPercent * valueDelta;\n }\n }\n\n if (len % 2 === 0) {\n stackCache.values.forEach(v => {\n const delta = catEndPercent - catStartPercent;\n v[MOSAIC_CAT_END_PERCENT] = catStartPercent + delta * v[STACK_FIELD_END_PERCENT];\n v[MOSAIC_CAT_START_PERCENT] = catStartPercent + delta * v[STACK_FIELD_START_PERCENT];\n v[MOSAIC_VALUE_END_PERCENT] = valueEndPercent;\n v[MOSAIC_VALUE_START_PERCENT] = valueStartPercent;\n });\n } else {\n stackCache.values.forEach(v => {\n const delta = valueEndPercent - valueStartPercent;\n v[MOSAIC_VALUE_END_PERCENT] = valueStartPercent + delta * v[STACK_FIELD_END_PERCENT];\n v[MOSAIC_VALUE_START_PERCENT] = valueStartPercent + delta * v[STACK_FIELD_START_PERCENT];\n v[MOSAIC_CAT_END_PERCENT] = catEndPercent;\n v[MOSAIC_CAT_START_PERCENT] = catStartPercent;\n });\n }\n }\n\n for (const key in stackCache.nodes) {\n stackMosaic(\n s,\n stackCache.nodes[key],\n (stackCache.nodes[key] as any).mosaicData\n ? mosaicData\n ? [...mosaicData, (stackCache.nodes[key] as any).mosaicData]\n : [(stackCache.nodes[key] as any).mosaicData]\n : null\n );\n }\n}\n\nexport function stackOffsetSilhouette(stackCache: IStackCacheNode) {\n if (!stackCache.values.length) {\n return;\n }\n const centerValue = stackCache.values[stackCache.values.length - 1][STACK_FIELD_END] / 2;\n for (let j = 0; j < stackCache.values.length; j++) {\n stackCache.values[j][STACK_FIELD_START_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_START] - centerValue;\n stackCache.values[j][STACK_FIELD_END_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_END] - centerValue;\n }\n}\n\nexport function stack(\n stackCache: IStackCacheNode,\n stackInverse: boolean,\n hasPercent?: boolean,\n hasMinMax?: boolean,\n fields: {\n key: string;\n start: string;\n end: string;\n startPercent: string;\n endPercent: string;\n min?: string;\n max?: string;\n } = {\n key: STACK_FIELD_KEY,\n start: STACK_FIELD_START,\n end: STACK_FIELD_END,\n startPercent: STACK_FIELD_START_PERCENT,\n endPercent: STACK_FIELD_END_PERCENT,\n max: STACK_FIELD_TOTAL_TOP,\n min: STACK_FIELD_TOTAL_BOTTOM\n }\n) {\n const hasMinField = hasMinMax && isValid(fields.min);\n const hasMaxField = hasMinMax && isValid(fields.max);\n\n if (stackCache.values.length > 0) {\n // 设置一个小数以保证 log 计算不会报错\n let positiveStart = 0;\n let negativeStart = 0;\n // temp\n let sign = 1;\n let value = 0;\n let minNode: any = null;\n let maxNode: any = null;\n\n // stack\n const maxLength = stackCache.values.length;\n for (let index = 0; index < maxLength; index++) {\n const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];\n value = v[fields.end];\n if (value >= 0) {\n v[fields.start] = positiveStart;\n positiveStart += v[fields.end];\n v[fields.end] = positiveStart;\n } else {\n v[fields.start] = negativeStart;\n negativeStart += v[fields.end];\n v[fields.end] = negativeStart;\n }\n v[fields.key] = stackCache.key;\n\n if (hasMaxField) {\n delete v[fields.max];\n if (!maxNode || v[fields.end] > maxNode[fields.end]) {\n maxNode = v;\n }\n }\n if (hasMinField) {\n delete v[fields.min];\n if (!minNode || v[fields.start] < minNode[fields.start]) {\n minNode = v;\n }\n }\n }\n\n hasMaxField && maxNode && (maxNode[fields.max] = true);\n hasMinField && minNode && (minNode[fields.min] = true);\n\n if (hasPercent) {\n // normalize\n for (let index = 0; index < maxLength; index++) {\n const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];\n value = v[fields.end];\n const denominator = value >= 0 ? positiveStart : negativeStart;\n sign = value >= 0 ? 1 : -1;\n v[fields.startPercent] = denominator === 0 ? 0 : Math.min(1, v[fields.start] / denominator) * sign;\n v[fields.endPercent] = denominator === 0 ? 0 : Math.min(1, v[fields.end] / denominator) * sign;\n }\n }\n }\n\n for (const key in stackCache.nodes) {\n stack(stackCache.nodes[key], stackInverse, hasPercent, hasMinMax, fields);\n }\n}\n\nexport function stackGroup(\n s: ISeries,\n stackData: ISeriesStackDataMeta,\n stackCache: IStackCacheNode,\n valueField: string,\n setInitialValue: boolean,\n stackSortCache: IStackSortCache,\n stackKey?: string\n) {\n if ('values' in stackData) {\n setInitialValue && stackData.values.forEach(v => (v[STACK_FIELD_END] = toValidNumber(v[valueField])));\n stackCache.series.push({ s: s, values: stackData.values });\n // 如果有排序\n if (stackSortCache) {\n // 系列的 seriesField\n const seriesField = s.getSeriesField();\n stackData.values.forEach(d => {\n stackCache.sortDatums.push({\n series: s,\n datum: d,\n index: seriesField ? stackSortCache[seriesField].sort[d[seriesField]] : 0\n });\n });\n } else {\n // 如果没有排序,直接生成 values 数组\n stackCache.values.push(...stackData.values);\n }\n return;\n }\n for (const key in stackData.nodes) {\n const newStackKey = stackKey ? `${stackKey}_${key}` : key;\n\n if (!stackCache.nodes[key]) {\n stackCache.nodes[key] = {\n values: [],\n series: [],\n nodes: {},\n sortDatums: [],\n key: newStackKey\n };\n\n if (isValid(stackData.nodes[key]?.groupField)) {\n stackCache.nodes[key].groupField = stackData.nodes[key].groupField;\n }\n }\n\n stackGroup(\n s,\n stackData.nodes[key],\n stackCache.nodes[key],\n valueField,\n setInitialValue,\n stackSortCache,\n newStackKey\n );\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/vchart",
3
- "version": "1.13.10-alpha.1",
3
+ "version": "1.13.11-alpha.0",
4
4
  "description": "charts lib based @visactor/VGrammar",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -83,25 +83,25 @@
83
83
  "cross-env": "^7.0.3",
84
84
  "@internal/typescript-json-schema": "0.0.1",
85
85
  "@internal/bundler": "0.0.1",
86
- "@internal/ts-config": "0.0.1",
87
- "@internal/eslint-config": "0.0.1"
86
+ "@internal/eslint-config": "0.0.1",
87
+ "@internal/ts-config": "0.0.1"
88
88
  },
89
89
  "dependencies": {
90
90
  "@visactor/vutils": "~0.19.5",
91
91
  "@visactor/vdataset": "~0.19.5",
92
92
  "@visactor/vscale": "~0.19.5",
93
- "@visactor/vrender-core": "0.22.10",
94
- "@visactor/vrender-kits": "0.22.10",
95
- "@visactor/vrender-components": "0.22.10",
96
- "@visactor/vgrammar-core": "0.16.6",
97
- "@visactor/vgrammar-projection": "0.16.6",
98
- "@visactor/vgrammar-wordcloud": "0.16.6",
99
- "@visactor/vgrammar-wordcloud-shape": "0.16.6",
100
- "@visactor/vgrammar-hierarchy": "0.16.6",
101
- "@visactor/vgrammar-sankey": "0.16.6",
102
- "@visactor/vgrammar-venn": "0.16.6",
103
- "@visactor/vgrammar-util": "0.16.6",
104
- "@visactor/vutils-extension": "1.13.10-alpha.1"
93
+ "@visactor/vrender-core": "0.22.11",
94
+ "@visactor/vrender-kits": "0.22.11",
95
+ "@visactor/vrender-components": "0.22.11",
96
+ "@visactor/vgrammar-core": "0.16.8",
97
+ "@visactor/vgrammar-projection": "0.16.8",
98
+ "@visactor/vgrammar-wordcloud": "0.16.8",
99
+ "@visactor/vgrammar-wordcloud-shape": "0.16.8",
100
+ "@visactor/vgrammar-hierarchy": "0.16.8",
101
+ "@visactor/vgrammar-sankey": "0.16.8",
102
+ "@visactor/vgrammar-venn": "0.16.8",
103
+ "@visactor/vgrammar-util": "0.16.8",
104
+ "@visactor/vutils-extension": "1.13.11-alpha.0"
105
105
  },
106
106
  "publishConfig": {
107
107
  "access": "public",