@visactor/vtable 1.26.7 → 1.26.8
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/ListTable.d.ts +1 -1
- package/cjs/ListTable.js +21 -13
- package/cjs/ListTable.js.map +1 -1
- package/cjs/PivotChart.js +16 -16
- package/cjs/PivotChart.js.map +1 -1
- package/cjs/PivotTable.d.ts +1 -1
- package/cjs/PivotTable.js +65 -63
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/body-helper/body-helper.js +2 -1
- package/cjs/components/index.js +1 -2
- package/cjs/core/BaseTable.js +2 -2
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/record-helper.d.ts +1 -1
- package/cjs/core/record-helper.js +60 -12
- package/cjs/core/record-helper.js.map +1 -1
- package/cjs/core/tableHelper.js +2 -1
- package/cjs/data/DataSource.d.ts +3 -1
- package/cjs/data/DataSource.js +71 -23
- package/cjs/data/DataSource.js.map +1 -1
- package/cjs/dataset/dataset.d.ts +9 -1
- package/cjs/dataset/dataset.js +344 -187
- package/cjs/dataset/dataset.js.map +1 -1
- package/cjs/event/event.d.ts +94 -8
- package/cjs/event/event.js +698 -191
- package/cjs/event/event.js.map +1 -1
- package/cjs/event/helper.js +1 -1
- package/cjs/event/media-click.js +4 -1
- package/cjs/event/media-click.js.map +1 -1
- package/cjs/event/scroll.js +1 -1
- package/cjs/event/sparkline-event.js +1 -2
- package/cjs/event/util.js +2 -2
- package/cjs/event/util.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/layout/pivot-header-layout.js +33 -17
- package/cjs/layout/pivot-header-layout.js.map +1 -1
- package/cjs/plugins/custom-cell-style.js +1 -1
- package/cjs/plugins/index.js +2 -1
- package/cjs/plugins/interface.js +1 -1
- package/cjs/plugins/invert-highlight.js +1 -1
- package/cjs/plugins/list-tree-stick-cell.js +1 -1
- package/cjs/plugins/plugin-manager.js +1 -1
- package/cjs/scenegraph/group-creater/cell-helper.js +27 -10
- package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -1
- package/cjs/scenegraph/group-creater/cell-type/text-cell.js +14 -10
- package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +17 -4
- package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
- package/cjs/scenegraph/layout/compute-col-width.js +6 -1
- package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
- package/cjs/scenegraph/layout/compute-row-height.js +11 -3
- package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
- package/cjs/scenegraph/layout/update-height.d.ts +4 -3
- package/cjs/scenegraph/layout/update-height.js +43 -29
- package/cjs/scenegraph/layout/update-height.js.map +1 -1
- package/cjs/scenegraph/layout/update-width.d.ts +2 -1
- package/cjs/scenegraph/layout/update-width.js +49 -37
- package/cjs/scenegraph/layout/update-width.js.map +1 -1
- package/cjs/scenegraph/scenegraph.d.ts +2 -2
- package/cjs/scenegraph/scenegraph.js +6 -5
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/scenegraph/utils/corner-custom-merge.d.ts +10 -0
- package/cjs/scenegraph/utils/corner-custom-merge.js +68 -0
- package/cjs/scenegraph/utils/corner-custom-merge.js.map +1 -0
- package/cjs/state/resize/update-resize-column.js +25 -13
- package/cjs/state/resize/update-resize-column.js.map +1 -1
- package/cjs/state/resize/update-resize-row.js +24 -12
- package/cjs/state/resize/update-resize-row.js.map +1 -1
- package/cjs/themes.d.ts +4 -2
- package/cjs/themes.js +12 -4
- package/cjs/themes.js.map +1 -1
- package/cjs/tools/get-data-path/create-dataset.js +4 -4
- package/cjs/tools/get-data-path/create-dataset.js.map +1 -1
- package/cjs/tools/get-data-path/index.js +4 -4
- package/cjs/tools/get-data-path/index.js.map +1 -1
- package/cjs/tools/style.d.ts +3 -1
- package/cjs/tools/style.js +2 -2
- package/cjs/tools/style.js.map +1 -1
- package/cjs/ts-types/common.d.ts +1 -0
- package/cjs/ts-types/common.js.map +1 -1
- package/cjs/ts-types/dataset/aggregation.d.ts +1 -0
- package/cjs/ts-types/dataset/aggregation.js +21 -3
- package/cjs/ts-types/dataset/aggregation.js.map +1 -1
- package/cjs/ts-types/new-data-set.d.ts +1 -0
- package/cjs/ts-types/new-data-set.js.map +1 -1
- package/cjs/ts-types/table-engine.d.ts +3 -2
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +2224 -779
- package/dist/vtable.min.js +1 -1
- package/es/ListTable.d.ts +1 -1
- package/es/ListTable.js +21 -15
- package/es/ListTable.js.map +1 -1
- package/es/PivotChart.js +16 -16
- package/es/PivotChart.js.map +1 -1
- package/es/PivotTable.d.ts +1 -1
- package/es/PivotTable.js +65 -63
- package/es/PivotTable.js.map +1 -1
- package/es/body-helper/body-helper.js +2 -1
- package/es/components/index.js +1 -2
- package/es/core/BaseTable.js +2 -2
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/record-helper.d.ts +1 -1
- package/es/core/record-helper.js +60 -12
- package/es/core/record-helper.js.map +1 -1
- package/es/core/tableHelper.js +2 -1
- package/es/data/DataSource.d.ts +3 -1
- package/es/data/DataSource.js +70 -23
- package/es/data/DataSource.js.map +1 -1
- package/es/dataset/dataset.d.ts +9 -1
- package/es/dataset/dataset.js +341 -187
- package/es/dataset/dataset.js.map +1 -1
- package/es/event/event.d.ts +94 -8
- package/es/event/event.js +696 -191
- package/es/event/event.js.map +1 -1
- package/es/event/helper.js +1 -1
- package/es/event/media-click.js +4 -1
- package/es/event/media-click.js.map +1 -1
- package/es/event/scroll.js +1 -1
- package/es/event/sparkline-event.js +1 -2
- package/es/event/util.js +2 -2
- package/es/event/util.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/layout/pivot-header-layout.js +29 -17
- package/es/layout/pivot-header-layout.js.map +1 -1
- package/es/plugins/custom-cell-style.js +1 -1
- package/es/plugins/index.js +2 -1
- package/es/plugins/interface.js +1 -1
- package/es/plugins/invert-highlight.js +1 -1
- package/es/plugins/list-tree-stick-cell.js +1 -1
- package/es/plugins/plugin-manager.js +1 -1
- package/es/scenegraph/group-creater/cell-helper.js +23 -9
- package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -1
- package/es/scenegraph/group-creater/cell-type/text-cell.js +13 -8
- package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
- package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +17 -5
- package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
- package/es/scenegraph/layout/compute-col-width.js +6 -1
- package/es/scenegraph/layout/compute-col-width.js.map +1 -1
- package/es/scenegraph/layout/compute-row-height.js +11 -3
- package/es/scenegraph/layout/compute-row-height.js.map +1 -1
- package/es/scenegraph/layout/update-height.d.ts +4 -3
- package/es/scenegraph/layout/update-height.js +40 -26
- package/es/scenegraph/layout/update-height.js.map +1 -1
- package/es/scenegraph/layout/update-width.d.ts +2 -1
- package/es/scenegraph/layout/update-width.js +46 -34
- package/es/scenegraph/layout/update-width.js.map +1 -1
- package/es/scenegraph/scenegraph.d.ts +2 -2
- package/es/scenegraph/scenegraph.js +7 -5
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/scenegraph/utils/corner-custom-merge.d.ts +10 -0
- package/es/scenegraph/utils/corner-custom-merge.js +59 -0
- package/es/scenegraph/utils/corner-custom-merge.js.map +1 -0
- package/es/state/resize/update-resize-column.js +19 -10
- package/es/state/resize/update-resize-column.js.map +1 -1
- package/es/state/resize/update-resize-row.js +19 -9
- package/es/state/resize/update-resize-row.js.map +1 -1
- package/es/themes.d.ts +4 -2
- package/es/themes.js +11 -3
- package/es/themes.js.map +1 -1
- package/es/tools/get-data-path/create-dataset.js +4 -4
- package/es/tools/get-data-path/create-dataset.js.map +1 -1
- package/es/tools/get-data-path/index.js +4 -4
- package/es/tools/get-data-path/index.js.map +1 -1
- package/es/tools/style.d.ts +3 -1
- package/es/tools/style.js +2 -2
- package/es/tools/style.js.map +1 -1
- package/es/ts-types/common.d.ts +1 -0
- package/es/ts-types/common.js.map +1 -1
- package/es/ts-types/dataset/aggregation.d.ts +1 -0
- package/es/ts-types/dataset/aggregation.js +21 -3
- package/es/ts-types/dataset/aggregation.js.map +1 -1
- package/es/ts-types/new-data-set.d.ts +1 -0
- package/es/ts-types/new-data-set.js.map +1 -1
- package/es/ts-types/table-engine.d.ts +3 -2
- package/es/ts-types/table-engine.js.map +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +9 -9
package/cjs/event/helper.js
CHANGED
package/cjs/event/media-click.js
CHANGED
|
@@ -157,6 +157,7 @@ function bindMediaClick(table) {
|
|
|
157
157
|
} else if ("image" === cellType) {
|
|
158
158
|
const {clickToPreview: clickToPreview} = columnDefine;
|
|
159
159
|
if (!1 === clickToPreview) return;
|
|
160
|
+
if (!cellValue) return;
|
|
160
161
|
const previewManager = getMediaPreviewManager(table), overlay = document.createElement("div");
|
|
161
162
|
overlay.style.width = "100%", overlay.style.height = "100%", overlay.style.position = "fixed",
|
|
162
163
|
overlay.style.top = "0", overlay.style.left = "0", overlay.style.backgroundColor = "rgba(30, 30, 30, 0.4)",
|
|
@@ -174,6 +175,7 @@ function bindMediaClick(table) {
|
|
|
174
175
|
} else if ("audio" === cellType || "video" === cellType && (0, media_1.isAudioUrl)(cellValue)) {
|
|
175
176
|
const {clickToPreview: clickToPreview} = columnDefine;
|
|
176
177
|
if (!1 === clickToPreview) return;
|
|
178
|
+
if (!cellValue) return;
|
|
177
179
|
const previewManager = getMediaPreviewManager(table), overlay = document.createElement("div");
|
|
178
180
|
overlay.style.width = "100%", overlay.style.height = "100%", overlay.style.position = "fixed",
|
|
179
181
|
overlay.style.top = "0", overlay.style.left = "0", overlay.style.backgroundColor = "rgba(30, 30, 30, 0.4)",
|
|
@@ -188,6 +190,7 @@ function bindMediaClick(table) {
|
|
|
188
190
|
} else if ("video" === cellType) {
|
|
189
191
|
const {clickToPreview: clickToPreview} = columnDefine;
|
|
190
192
|
if (!1 === clickToPreview) return;
|
|
193
|
+
if (!cellValue) return;
|
|
191
194
|
const previewManager = getMediaPreviewManager(table), overlay = document.createElement("div");
|
|
192
195
|
overlay.style.width = "100%", overlay.style.height = "100%", overlay.style.position = "fixed",
|
|
193
196
|
overlay.style.top = "0", overlay.style.left = "0", overlay.style.backgroundColor = "rgba(30, 30, 30, 0.4)",
|
|
@@ -214,4 +217,4 @@ function bindMediaClick(table) {
|
|
|
214
217
|
}
|
|
215
218
|
|
|
216
219
|
exports.bindMediaClick = bindMediaClick;
|
|
217
|
-
//# sourceMappingURL=media-click.js.map
|
|
220
|
+
//# sourceMappingURL=media-click.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/event/media-click.ts"],"names":[],"mappings":"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","file":"media-click.js","sourcesContent":["import { isFunction } from '@visactor/vutils';\nimport { TABLE_EVENT_TYPE } from '../core/TABLE_EVENT_TYPE';\nimport { Env } from '../tools/env';\nimport { regUrl } from '../tools/global';\nimport type { LinkColumnDefine, MousePointerCellEvent } from '../ts-types';\nimport type { BaseTableAPI, HeaderData } from '../ts-types/base-table';\nimport type { IAudioColumnBodyDefine, IImageColumnBodyDefine } from '../ts-types/list-table/define/image-define';\nimport { getOrApply } from '../tools/helper';\nimport { isAudioUrl } from '../tools/media';\n\nconst MEDIA_PREVIEW_MANAGER_KEY = '__vtable_media_preview_manager__';\n\ninterface MediaPreviewManager {\n closePreview: (() => void) | null;\n registered: boolean;\n close: () => void;\n open: (closePreview: () => void) => void;\n release: () => void;\n ensureRegistered: () => void;\n}\n\nfunction formatAudioTime(time: number) {\n if (!Number.isFinite(time) || time < 0) {\n return '0:00';\n }\n const minutes = Math.floor(time / 60);\n const seconds = Math.floor(time % 60);\n return `${minutes}:${seconds.toString().padStart(2, '0')}`;\n}\n\nfunction updateAudioProgressStyle(progress: HTMLInputElement, value: number) {\n progress.style.background = `linear-gradient(\n to right,\n #2563EB 0%,\n #2563EB ${value}%,\n #D1D5DB ${value}%,\n #D1D5DB 100%\n )`;\n}\n\nfunction ensureAudioPreviewStyle() {\n const styleId = 'vtable-audio-preview-style';\n if (document.getElementById(styleId)) {\n return;\n }\n const style = document.createElement('style');\n style.id = styleId;\n style.textContent = `\n .vtable-audio-preview-progress {\n -webkit-appearance: none;\n appearance: none;\n }\n .vtable-audio-preview-progress::-webkit-slider-runnable-track {\n height: 4px;\n border-radius: 999px;\n background: transparent;\n }\n .vtable-audio-preview-progress::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 12px;\n height: 12px;\n margin-top: -4px;\n border-radius: 50%;\n border: 0;\n background: #2563EB;\n }\n .vtable-audio-preview-progress::-moz-range-track {\n height: 4px;\n border-radius: 999px;\n background: transparent;\n }\n .vtable-audio-preview-progress::-moz-range-thumb {\n width: 12px;\n height: 12px;\n border-radius: 50%;\n border: 0;\n background: #2563EB;\n }\n `;\n document.head.appendChild(style);\n}\n\nfunction createAudioPreview(cellValue: string) {\n ensureAudioPreviewStyle();\n\n const audio = document.createElement('audio');\n audio.src = cellValue;\n audio.preload = 'auto';\n let released = false;\n\n const wrapper = document.createElement('div');\n wrapper.style.width = '80%';\n wrapper.style.maxWidth = '640px';\n wrapper.style.height = '54px';\n wrapper.style.boxSizing = 'border-box';\n wrapper.style.padding = '0 16px';\n wrapper.style.borderRadius = '27px';\n wrapper.style.background = '#F8FAFC';\n wrapper.style.display = 'flex';\n wrapper.style.alignItems = 'center';\n wrapper.style.gap = '10px';\n wrapper.style.boxShadow = '0 8px 24px rgba(15, 23, 42, 0.16)';\n\n const playButton = document.createElement('button');\n playButton.type = 'button';\n playButton.textContent = '▶';\n playButton.style.width = '34px';\n playButton.style.height = '34px';\n playButton.style.border = '1px solid #CBD5E1';\n playButton.style.borderRadius = '8px';\n playButton.style.background = '#EFF6FF';\n playButton.style.color = '#0F172A';\n playButton.style.cursor = 'pointer';\n playButton.style.flex = '0 0 auto';\n playButton.style.fontSize = '14px';\n\n const timeLabel = document.createElement('span');\n timeLabel.textContent = '0:00 / 0:00';\n timeLabel.style.color = '#0F172A';\n timeLabel.style.font = '14px sans-serif';\n timeLabel.style.whiteSpace = 'nowrap';\n\n const progress = document.createElement('input');\n progress.className = 'vtable-audio-preview-progress';\n progress.type = 'range';\n progress.min = '0';\n progress.max = '100';\n progress.value = '0';\n progress.step = '0.1';\n progress.style.flex = '1 1 auto';\n progress.style.height = '4px';\n progress.style.borderRadius = '999px';\n progress.style.outline = 'none';\n progress.style.cursor = 'pointer';\n progress.style.accentColor = '#2563EB';\n updateAudioProgressStyle(progress, 0);\n\n const updateProgress = () => {\n const duration = Number.isFinite(audio.duration) ? audio.duration : 0;\n const currentTime = audio.currentTime || 0;\n const value = duration > 0 ? Math.min(100, (currentTime / duration) * 100) : 0;\n progress.disabled = duration <= 0;\n progress.style.cursor = duration > 0 ? 'pointer' : 'default';\n progress.value = `${value}`;\n timeLabel.textContent = `${formatAudioTime(currentTime)} / ${formatAudioTime(duration)}`;\n updateAudioProgressStyle(progress, value);\n };\n\n playButton.addEventListener('click', e => {\n e.stopPropagation();\n if (audio.paused) {\n const playPromise = audio.play();\n if (playPromise) {\n playPromise.catch(error => {\n if (released || error?.name === 'AbortError') {\n return;\n }\n playButton.textContent = '▶';\n });\n }\n } else {\n audio.pause();\n }\n });\n\n progress.addEventListener('click', e => {\n e.stopPropagation();\n });\n\n progress.addEventListener('input', () => {\n const duration = Number.isFinite(audio.duration) ? audio.duration : 0;\n const value = Number(progress.value);\n if (duration > 0 && Number.isFinite(value)) {\n audio.currentTime = (duration * value) / 100;\n }\n updateProgress();\n });\n\n audio.addEventListener('loadedmetadata', updateProgress);\n audio.addEventListener('durationchange', updateProgress);\n audio.addEventListener('timeupdate', updateProgress);\n audio.addEventListener('play', () => {\n playButton.textContent = '❚❚';\n });\n audio.addEventListener('pause', () => {\n playButton.textContent = '▶';\n });\n audio.addEventListener('ended', () => {\n audio.currentTime = 0;\n playButton.textContent = '▶';\n updateProgress();\n });\n\n wrapper.appendChild(playButton);\n wrapper.appendChild(timeLabel);\n wrapper.appendChild(progress);\n wrapper.appendChild(audio);\n\n return {\n element: wrapper,\n destroy: () => {\n released = true;\n audio.pause();\n audio.removeAttribute('src');\n audio.load();\n }\n };\n}\n\nfunction createMediaPreviewManager(table: BaseTableAPI): MediaPreviewManager {\n const manager: MediaPreviewManager = {\n closePreview: null,\n registered: false,\n close() {\n const closePreview = manager.closePreview;\n manager.closePreview = null;\n closePreview?.();\n },\n open(closePreview: () => void) {\n manager.close();\n manager.closePreview = closePreview;\n },\n release() {\n manager.close();\n manager.registered = false;\n },\n ensureRegistered() {\n if (manager.registered) {\n return;\n }\n table.addReleaseObj(manager);\n manager.registered = true;\n }\n };\n return manager;\n}\n\nfunction getMediaPreviewManager(table: BaseTableAPI): MediaPreviewManager {\n const tableWithManager = table as any;\n if (!tableWithManager[MEDIA_PREVIEW_MANAGER_KEY]) {\n tableWithManager[MEDIA_PREVIEW_MANAGER_KEY] = createMediaPreviewManager(table);\n }\n const manager = tableWithManager[MEDIA_PREVIEW_MANAGER_KEY] as MediaPreviewManager;\n manager.ensureRegistered();\n return manager;\n}\n\nexport function bindMediaClick(table: BaseTableAPI): void {\n if (Env.mode === 'browser') {\n // table.hasMedia = false;\n getMediaPreviewManager(table);\n\n table.on(TABLE_EVENT_TYPE.CLICK_CELL, (e: MousePointerCellEvent) => {\n //如果目前是在某个icon上,如收起展开按钮 则不进行其他点击逻辑\n const { col, row } = e;\n\n if (e.target.type === 'image' && (e.target as any).role && (e.target as any).role.startsWith('icon')) {\n // click icon\n return;\n }\n\n const cellType = table.getCellType(col, row);\n const columnDefine = table.isHeader(col, row)\n ? table.getHeaderDefine(col, row)\n : table.getBodyColumnDefine(col, row);\n const cellValue = table.getCellValue(col, row);\n const cellOriginValue = table.getCellOriginValue(col, row);\n if (cellType === 'link') {\n let linkJump: boolean | undefined = getOrApply((columnDefine as LinkColumnDefine).linkJump, {\n col,\n row,\n table,\n value: cellValue,\n dataValue: cellOriginValue,\n cellHeaderPaths: undefined\n });\n linkJump = linkJump !== false;\n if (!linkJump) {\n return;\n }\n\n // 点击链接,打开相应页面\n const templateLink = (columnDefine as LinkColumnDefine).templateLink;\n let linkDetect = getOrApply((columnDefine as LinkColumnDefine).linkDetect, {\n col,\n row,\n table,\n value: cellValue,\n dataValue: cellOriginValue,\n cellHeaderPaths: undefined\n });\n linkDetect = linkDetect !== false;\n let url;\n if (templateLink) {\n // 如果有模板链接,使用模板\n const rowData = table.getCellOriginRecord(col, row);\n if (rowData && rowData.vtableMerge) {\n // group title\n return;\n }\n const data = Object.assign(\n {\n __value: cellValue,\n __dataValue: cellOriginValue,\n value: cellValue,\n dataValue: cellOriginValue\n },\n rowData\n );\n if (isFunction(templateLink)) {\n url = templateLink(data, col, row, table);\n } else {\n const re = /\\{\\s*(\\S+?)\\s*\\}/g;\n url = templateLink.replace(re, (matchs: string, key: string) => {\n matchs;\n return (data as any)[key];\n });\n }\n } else if (!linkDetect) {\n url = cellValue;\n } else if (regUrl.test(cellValue)) {\n // 没有模板链接,使用单元格内的字符串\n url = cellValue;\n } else {\n return;\n }\n\n if (!url) {\n return;\n }\n\n const linkTarget = (columnDefine as LinkColumnDefine).linkTarget;\n const linkWindowFeatures = (columnDefine as LinkColumnDefine).linkWindowFeatures;\n window.open(url, linkTarget, linkWindowFeatures);\n } else if (cellType === 'image') {\n // 点击图片,打开放大图片\n const { clickToPreview } = columnDefine as IImageColumnBodyDefine;\n if (clickToPreview === false) {\n return;\n }\n const previewManager = getMediaPreviewManager(table);\n\n // 开启蒙版\n const overlay = document.createElement('div');\n overlay.style.width = '100%';\n overlay.style.height = '100%';\n overlay.style.position = 'fixed';\n overlay.style.top = '0';\n overlay.style.left = '0';\n overlay.style.backgroundColor = 'rgba(30, 30, 30, 0.4)';\n overlay.style.display = 'flex';\n overlay.style.justifyContent = 'center';\n overlay.style.alignItems = 'center';\n overlay.style.overflow = 'hidden';\n overlay.style.zIndex = '9999';\n\n const closeOverlay = () => {\n if (overlay.parentNode) {\n document.body.removeChild(overlay);\n }\n };\n previewManager.open(closeOverlay);\n\n overlay.addEventListener('click', e => {\n if (e.target === overlay) {\n previewManager.close();\n }\n });\n // overlay.addEventListener('pointermove', (e) => {\n // e.stopPropagation();\n // e.preventDefault();\n // });\n // overlay.addEventListener('mousemove', (e) => {\n // e.stopPropagation();\n // e.preventDefault();\n // });\n // 创建图片\n const image = new Image();\n image.src = cellValue;\n image.style.maxWidth = '80%';\n image.style.maxHeight = '80%';\n image.style.backgroundColor = '#FFF';\n overlay.appendChild(image);\n\n document.body.appendChild(overlay);\n } else if (cellType === 'audio' || (cellType === 'video' && isAudioUrl(cellValue))) {\n // 点击音频,弹出播放窗口\n const { clickToPreview } = columnDefine as IAudioColumnBodyDefine;\n if (clickToPreview === false) {\n return;\n }\n const previewManager = getMediaPreviewManager(table);\n\n // 开启蒙版\n const overlay = document.createElement('div');\n overlay.style.width = '100%';\n overlay.style.height = '100%';\n overlay.style.position = 'fixed';\n overlay.style.top = '0';\n overlay.style.left = '0';\n overlay.style.backgroundColor = 'rgba(30, 30, 30, 0.4)';\n overlay.style.display = 'flex';\n overlay.style.justifyContent = 'center';\n overlay.style.alignItems = 'center';\n overlay.style.overflow = 'hidden';\n overlay.style.zIndex = '9999';\n\n const audioPreview = createAudioPreview(cellValue);\n const closeOverlay = () => {\n audioPreview.destroy();\n if (overlay.parentNode) {\n document.body.removeChild(overlay);\n }\n };\n previewManager.open(closeOverlay);\n\n overlay.addEventListener('click', e => {\n if (e.target === overlay) {\n previewManager.close();\n }\n });\n\n // 创建音频\n overlay.appendChild(audioPreview.element);\n\n document.body.appendChild(overlay);\n } else if (cellType === 'video') {\n // 点击视频,弹出播放窗口\n const { clickToPreview } = columnDefine as IImageColumnBodyDefine;\n if (clickToPreview === false) {\n return;\n }\n const previewManager = getMediaPreviewManager(table);\n\n // 开启蒙版\n const overlay = document.createElement('div');\n overlay.style.width = '100%';\n overlay.style.height = '100%';\n overlay.style.position = 'fixed';\n overlay.style.top = '0';\n overlay.style.left = '0';\n overlay.style.backgroundColor = 'rgba(30, 30, 30, 0.4)';\n overlay.style.display = 'flex';\n overlay.style.justifyContent = 'center';\n overlay.style.alignItems = 'center';\n overlay.style.overflow = 'hidden';\n overlay.style.zIndex = '9999';\n\n const video = document.createElement('video');\n video.src = cellValue;\n video.style.maxWidth = '80%';\n video.style.maxHeight = '80%';\n video.setAttribute('preload', 'auto');\n video.setAttribute('controls', 'true');\n\n const closeOverlay = () => {\n try {\n video.pause();\n } catch (err) {\n // ignore media cleanup errors\n }\n video.removeAttribute('src');\n try {\n video.load();\n } catch (err) {\n // ignore media cleanup errors\n }\n if (overlay.parentNode) {\n document.body.removeChild(overlay);\n }\n };\n previewManager.open(closeOverlay);\n\n overlay.appendChild(video);\n\n overlay.addEventListener('click', e => {\n if (e.target === overlay) {\n previewManager.close();\n }\n });\n\n document.body.appendChild(overlay);\n }\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/event/media-click.ts"],"names":[],"mappings":"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","file":"media-click.js","sourcesContent":["import { isFunction } from '@visactor/vutils';\nimport { TABLE_EVENT_TYPE } from '../core/TABLE_EVENT_TYPE';\nimport { Env } from '../tools/env';\nimport { regUrl } from '../tools/global';\nimport type { LinkColumnDefine, MousePointerCellEvent } from '../ts-types';\nimport type { BaseTableAPI, HeaderData } from '../ts-types/base-table';\nimport type { IAudioColumnBodyDefine, IImageColumnBodyDefine } from '../ts-types/list-table/define/image-define';\nimport { getOrApply } from '../tools/helper';\nimport { isAudioUrl } from '../tools/media';\n\nconst MEDIA_PREVIEW_MANAGER_KEY = '__vtable_media_preview_manager__';\n\ninterface MediaPreviewManager {\n closePreview: (() => void) | null;\n registered: boolean;\n close: () => void;\n open: (closePreview: () => void) => void;\n release: () => void;\n ensureRegistered: () => void;\n}\n\nfunction formatAudioTime(time: number) {\n if (!Number.isFinite(time) || time < 0) {\n return '0:00';\n }\n const minutes = Math.floor(time / 60);\n const seconds = Math.floor(time % 60);\n return `${minutes}:${seconds.toString().padStart(2, '0')}`;\n}\n\nfunction updateAudioProgressStyle(progress: HTMLInputElement, value: number) {\n progress.style.background = `linear-gradient(\n to right,\n #2563EB 0%,\n #2563EB ${value}%,\n #D1D5DB ${value}%,\n #D1D5DB 100%\n )`;\n}\n\nfunction ensureAudioPreviewStyle() {\n const styleId = 'vtable-audio-preview-style';\n if (document.getElementById(styleId)) {\n return;\n }\n const style = document.createElement('style');\n style.id = styleId;\n style.textContent = `\n .vtable-audio-preview-progress {\n -webkit-appearance: none;\n appearance: none;\n }\n .vtable-audio-preview-progress::-webkit-slider-runnable-track {\n height: 4px;\n border-radius: 999px;\n background: transparent;\n }\n .vtable-audio-preview-progress::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 12px;\n height: 12px;\n margin-top: -4px;\n border-radius: 50%;\n border: 0;\n background: #2563EB;\n }\n .vtable-audio-preview-progress::-moz-range-track {\n height: 4px;\n border-radius: 999px;\n background: transparent;\n }\n .vtable-audio-preview-progress::-moz-range-thumb {\n width: 12px;\n height: 12px;\n border-radius: 50%;\n border: 0;\n background: #2563EB;\n }\n `;\n document.head.appendChild(style);\n}\n\nfunction createAudioPreview(cellValue: string) {\n ensureAudioPreviewStyle();\n\n const audio = document.createElement('audio');\n audio.src = cellValue;\n audio.preload = 'auto';\n let released = false;\n\n const wrapper = document.createElement('div');\n wrapper.style.width = '80%';\n wrapper.style.maxWidth = '640px';\n wrapper.style.height = '54px';\n wrapper.style.boxSizing = 'border-box';\n wrapper.style.padding = '0 16px';\n wrapper.style.borderRadius = '27px';\n wrapper.style.background = '#F8FAFC';\n wrapper.style.display = 'flex';\n wrapper.style.alignItems = 'center';\n wrapper.style.gap = '10px';\n wrapper.style.boxShadow = '0 8px 24px rgba(15, 23, 42, 0.16)';\n\n const playButton = document.createElement('button');\n playButton.type = 'button';\n playButton.textContent = '▶';\n playButton.style.width = '34px';\n playButton.style.height = '34px';\n playButton.style.border = '1px solid #CBD5E1';\n playButton.style.borderRadius = '8px';\n playButton.style.background = '#EFF6FF';\n playButton.style.color = '#0F172A';\n playButton.style.cursor = 'pointer';\n playButton.style.flex = '0 0 auto';\n playButton.style.fontSize = '14px';\n\n const timeLabel = document.createElement('span');\n timeLabel.textContent = '0:00 / 0:00';\n timeLabel.style.color = '#0F172A';\n timeLabel.style.font = '14px sans-serif';\n timeLabel.style.whiteSpace = 'nowrap';\n\n const progress = document.createElement('input');\n progress.className = 'vtable-audio-preview-progress';\n progress.type = 'range';\n progress.min = '0';\n progress.max = '100';\n progress.value = '0';\n progress.step = '0.1';\n progress.style.flex = '1 1 auto';\n progress.style.height = '4px';\n progress.style.borderRadius = '999px';\n progress.style.outline = 'none';\n progress.style.cursor = 'pointer';\n progress.style.accentColor = '#2563EB';\n updateAudioProgressStyle(progress, 0);\n\n const updateProgress = () => {\n const duration = Number.isFinite(audio.duration) ? audio.duration : 0;\n const currentTime = audio.currentTime || 0;\n const value = duration > 0 ? Math.min(100, (currentTime / duration) * 100) : 0;\n progress.disabled = duration <= 0;\n progress.style.cursor = duration > 0 ? 'pointer' : 'default';\n progress.value = `${value}`;\n timeLabel.textContent = `${formatAudioTime(currentTime)} / ${formatAudioTime(duration)}`;\n updateAudioProgressStyle(progress, value);\n };\n\n playButton.addEventListener('click', e => {\n e.stopPropagation();\n if (audio.paused) {\n const playPromise = audio.play();\n if (playPromise) {\n playPromise.catch(error => {\n if (released || error?.name === 'AbortError') {\n return;\n }\n playButton.textContent = '▶';\n });\n }\n } else {\n audio.pause();\n }\n });\n\n progress.addEventListener('click', e => {\n e.stopPropagation();\n });\n\n progress.addEventListener('input', () => {\n const duration = Number.isFinite(audio.duration) ? audio.duration : 0;\n const value = Number(progress.value);\n if (duration > 0 && Number.isFinite(value)) {\n audio.currentTime = (duration * value) / 100;\n }\n updateProgress();\n });\n\n audio.addEventListener('loadedmetadata', updateProgress);\n audio.addEventListener('durationchange', updateProgress);\n audio.addEventListener('timeupdate', updateProgress);\n audio.addEventListener('play', () => {\n playButton.textContent = '❚❚';\n });\n audio.addEventListener('pause', () => {\n playButton.textContent = '▶';\n });\n audio.addEventListener('ended', () => {\n audio.currentTime = 0;\n playButton.textContent = '▶';\n updateProgress();\n });\n\n wrapper.appendChild(playButton);\n wrapper.appendChild(timeLabel);\n wrapper.appendChild(progress);\n wrapper.appendChild(audio);\n\n return {\n element: wrapper,\n destroy: () => {\n released = true;\n audio.pause();\n audio.removeAttribute('src');\n audio.load();\n }\n };\n}\n\nfunction createMediaPreviewManager(table: BaseTableAPI): MediaPreviewManager {\n const manager: MediaPreviewManager = {\n closePreview: null,\n registered: false,\n close() {\n const closePreview = manager.closePreview;\n manager.closePreview = null;\n closePreview?.();\n },\n open(closePreview: () => void) {\n manager.close();\n manager.closePreview = closePreview;\n },\n release() {\n manager.close();\n manager.registered = false;\n },\n ensureRegistered() {\n if (manager.registered) {\n return;\n }\n table.addReleaseObj(manager);\n manager.registered = true;\n }\n };\n return manager;\n}\n\nfunction getMediaPreviewManager(table: BaseTableAPI): MediaPreviewManager {\n const tableWithManager = table as any;\n if (!tableWithManager[MEDIA_PREVIEW_MANAGER_KEY]) {\n tableWithManager[MEDIA_PREVIEW_MANAGER_KEY] = createMediaPreviewManager(table);\n }\n const manager = tableWithManager[MEDIA_PREVIEW_MANAGER_KEY] as MediaPreviewManager;\n manager.ensureRegistered();\n return manager;\n}\n\nexport function bindMediaClick(table: BaseTableAPI): void {\n if (Env.mode === 'browser') {\n // table.hasMedia = false;\n getMediaPreviewManager(table);\n\n table.on(TABLE_EVENT_TYPE.CLICK_CELL, (e: MousePointerCellEvent) => {\n //如果目前是在某个icon上,如收起展开按钮 则不进行其他点击逻辑\n const { col, row } = e;\n\n if (e.target.type === 'image' && (e.target as any).role && (e.target as any).role.startsWith('icon')) {\n // click icon\n return;\n }\n\n const cellType = table.getCellType(col, row);\n const columnDefine = table.isHeader(col, row)\n ? table.getHeaderDefine(col, row)\n : table.getBodyColumnDefine(col, row);\n const cellValue = table.getCellValue(col, row);\n const cellOriginValue = table.getCellOriginValue(col, row);\n if (cellType === 'link') {\n let linkJump: boolean | undefined = getOrApply((columnDefine as LinkColumnDefine).linkJump, {\n col,\n row,\n table,\n value: cellValue,\n dataValue: cellOriginValue,\n cellHeaderPaths: undefined\n });\n linkJump = linkJump !== false;\n if (!linkJump) {\n return;\n }\n\n // 点击链接,打开相应页面\n const templateLink = (columnDefine as LinkColumnDefine).templateLink;\n let linkDetect = getOrApply((columnDefine as LinkColumnDefine).linkDetect, {\n col,\n row,\n table,\n value: cellValue,\n dataValue: cellOriginValue,\n cellHeaderPaths: undefined\n });\n linkDetect = linkDetect !== false;\n let url;\n if (templateLink) {\n // 如果有模板链接,使用模板\n const rowData = table.getCellOriginRecord(col, row);\n if (rowData && rowData.vtableMerge) {\n // group title\n return;\n }\n const data = Object.assign(\n {\n __value: cellValue,\n __dataValue: cellOriginValue,\n value: cellValue,\n dataValue: cellOriginValue\n },\n rowData\n );\n if (isFunction(templateLink)) {\n url = templateLink(data, col, row, table);\n } else {\n const re = /\\{\\s*(\\S+?)\\s*\\}/g;\n url = templateLink.replace(re, (matchs: string, key: string) => {\n matchs;\n return (data as any)[key];\n });\n }\n } else if (!linkDetect) {\n url = cellValue;\n } else if (regUrl.test(cellValue)) {\n // 没有模板链接,使用单元格内的字符串\n url = cellValue;\n } else {\n return;\n }\n\n if (!url) {\n return;\n }\n\n const linkTarget = (columnDefine as LinkColumnDefine).linkTarget;\n const linkWindowFeatures = (columnDefine as LinkColumnDefine).linkWindowFeatures;\n window.open(url, linkTarget, linkWindowFeatures);\n } else if (cellType === 'image') {\n // 点击图片,打开放大图片\n const { clickToPreview } = columnDefine as IImageColumnBodyDefine;\n if (clickToPreview === false) {\n return;\n }\n if (!cellValue) {\n return;\n }\n const previewManager = getMediaPreviewManager(table);\n\n // 开启蒙版\n const overlay = document.createElement('div');\n overlay.style.width = '100%';\n overlay.style.height = '100%';\n overlay.style.position = 'fixed';\n overlay.style.top = '0';\n overlay.style.left = '0';\n overlay.style.backgroundColor = 'rgba(30, 30, 30, 0.4)';\n overlay.style.display = 'flex';\n overlay.style.justifyContent = 'center';\n overlay.style.alignItems = 'center';\n overlay.style.overflow = 'hidden';\n overlay.style.zIndex = '9999';\n\n const closeOverlay = () => {\n if (overlay.parentNode) {\n document.body.removeChild(overlay);\n }\n };\n previewManager.open(closeOverlay);\n\n overlay.addEventListener('click', e => {\n if (e.target === overlay) {\n previewManager.close();\n }\n });\n // overlay.addEventListener('pointermove', (e) => {\n // e.stopPropagation();\n // e.preventDefault();\n // });\n // overlay.addEventListener('mousemove', (e) => {\n // e.stopPropagation();\n // e.preventDefault();\n // });\n // 创建图片\n const image = new Image();\n image.src = cellValue;\n image.style.maxWidth = '80%';\n image.style.maxHeight = '80%';\n image.style.backgroundColor = '#FFF';\n overlay.appendChild(image);\n\n document.body.appendChild(overlay);\n } else if (cellType === 'audio' || (cellType === 'video' && isAudioUrl(cellValue))) {\n // 点击音频,弹出播放窗口\n const { clickToPreview } = columnDefine as IAudioColumnBodyDefine;\n if (clickToPreview === false) {\n return;\n }\n if (!cellValue) {\n return;\n }\n const previewManager = getMediaPreviewManager(table);\n\n // 开启蒙版\n const overlay = document.createElement('div');\n overlay.style.width = '100%';\n overlay.style.height = '100%';\n overlay.style.position = 'fixed';\n overlay.style.top = '0';\n overlay.style.left = '0';\n overlay.style.backgroundColor = 'rgba(30, 30, 30, 0.4)';\n overlay.style.display = 'flex';\n overlay.style.justifyContent = 'center';\n overlay.style.alignItems = 'center';\n overlay.style.overflow = 'hidden';\n overlay.style.zIndex = '9999';\n\n const audioPreview = createAudioPreview(cellValue);\n const closeOverlay = () => {\n audioPreview.destroy();\n if (overlay.parentNode) {\n document.body.removeChild(overlay);\n }\n };\n previewManager.open(closeOverlay);\n\n overlay.addEventListener('click', e => {\n if (e.target === overlay) {\n previewManager.close();\n }\n });\n\n // 创建音频\n overlay.appendChild(audioPreview.element);\n\n document.body.appendChild(overlay);\n } else if (cellType === 'video') {\n // 点击视频,弹出播放窗口\n const { clickToPreview } = columnDefine as IImageColumnBodyDefine;\n if (clickToPreview === false) {\n return;\n }\n if (!cellValue) {\n return;\n }\n const previewManager = getMediaPreviewManager(table);\n\n // 开启蒙版\n const overlay = document.createElement('div');\n overlay.style.width = '100%';\n overlay.style.height = '100%';\n overlay.style.position = 'fixed';\n overlay.style.top = '0';\n overlay.style.left = '0';\n overlay.style.backgroundColor = 'rgba(30, 30, 30, 0.4)';\n overlay.style.display = 'flex';\n overlay.style.justifyContent = 'center';\n overlay.style.alignItems = 'center';\n overlay.style.overflow = 'hidden';\n overlay.style.zIndex = '9999';\n\n const video = document.createElement('video');\n video.src = cellValue;\n video.style.maxWidth = '80%';\n video.style.maxHeight = '80%';\n video.setAttribute('preload', 'auto');\n video.setAttribute('controls', 'true');\n\n const closeOverlay = () => {\n try {\n video.pause();\n } catch (err) {\n // ignore media cleanup errors\n }\n video.removeAttribute('src');\n try {\n video.load();\n } catch (err) {\n // ignore media cleanup errors\n }\n if (overlay.parentNode) {\n document.body.removeChild(overlay);\n }\n };\n previewManager.open(closeOverlay);\n\n overlay.appendChild(video);\n\n overlay.addEventListener('click', e => {\n if (e.target === overlay) {\n previewManager.close();\n }\n });\n\n document.body.appendChild(overlay);\n }\n });\n }\n}\n"]}
|
package/cjs/event/scroll.js
CHANGED
package/cjs/event/util.js
CHANGED
|
@@ -70,7 +70,7 @@ function setDataToHTML(data) {
|
|
|
70
70
|
return rows.forEach((function(rowCells, rowIndex) {
|
|
71
71
|
const cells = rowCells.split("\t"), rowValues = [];
|
|
72
72
|
0 === rowIndex && result.push("<tbody>"), cells.forEach((function(cell, cellIndex) {
|
|
73
|
-
const parsedCellData = cell ? cell.toString().replace(/&/g, "&").replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">").replace(/\n/g, "<br>").replace(/(<br(\s*|\/)>(\r\n|\n)?|\r\n|\n)/g, "<br>\r\n").replace(/\x20{2,}/gi, (substring => `<span style="mso-spacerun: yes">${" ".repeat(substring.length - 1)} </span>`)).replace(/\t/gi, "	") : "
|
|
73
|
+
const parsedCellData = cell ? cell.toString().replace(/&/g, "&").replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">").replace(/\n/g, "<br>").replace(/(<br(\s*|\/)>(\r\n|\n)?|\r\n|\n)/g, "<br>\r\n").replace(/\x20{2,}/gi, (substring => `<span style="mso-spacerun: yes">${" ".repeat(substring.length - 1)} </span>`)).replace(/\t/gi, "	") : "";
|
|
74
74
|
rowValues.push(`<td>${parsedCellData}</td>`);
|
|
75
75
|
})), result.push("<tr>", ...rowValues, "</tr>"), rowIndex === rows.length - 1 && result.push("</tbody>");
|
|
76
76
|
})), result.push("</table>"), [ META_HEAD, result.join("") ].join("");
|
|
@@ -79,4 +79,4 @@ function setDataToHTML(data) {
|
|
|
79
79
|
exports.getCellEventArgsSet = getCellEventArgsSet, exports.getCellEventArgsSetWithTable = getCellEventArgsSetWithTable,
|
|
80
80
|
exports.getTargetCell = getTargetCell, exports.regIndexReg = /radio-\d+-\d+-(\d+)/,
|
|
81
81
|
exports.setDataToHTML = setDataToHTML;
|
|
82
|
-
//# sourceMappingURL=util.js.map
|
|
82
|
+
//# sourceMappingURL=util.js.map
|
package/cjs/event/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/event/util.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/event/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import type { FederatedPointerEvent, IEventTarget } from './../vrender';\nimport type { Group } from '../scenegraph/graphic/group';\nimport type { MergeCellInfo } from '../ts-types';\nimport { isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../ts-types/base-table';\n\nexport interface SceneEvent {\n abstractPos: {\n x: number;\n y: number;\n };\n eventArgs?: {\n col: number;\n row: number;\n event: FederatedPointerEvent;\n targetCell: Group;\n mergeInfo?: MergeCellInfo;\n target: IEventTarget;\n };\n}\n\nexport function getCellEventArgsSet(e: FederatedPointerEvent): SceneEvent {\n const tableEvent: SceneEvent = {\n abstractPos: {\n // x: e.x,\n // y: e.y,\n x: e.viewport.x,\n y: e.viewport.y\n }\n // eventArgs: {\n // col: (e.target as any).col,\n // row: (e.target as any).row,\n // event: e,\n // },\n };\n const targetCell = getTargetCell(e.target);\n if (targetCell) {\n tableEvent.eventArgs = {\n col: targetCell.col,\n row: targetCell.row,\n event: e,\n targetCell,\n mergeInfo: getMergeCellInfo(targetCell),\n target: e.target\n };\n }\n return tableEvent;\n}\n\nexport function getCellEventArgsSetWithTable(e: FederatedPointerEvent, table: BaseTableAPI): SceneEvent {\n const eventArgsSet = getCellEventArgsSet(e);\n if (!eventArgsSet.eventArgs) {\n return eventArgsSet;\n }\n if (!table.options.scrollFrozenCols || table.getFrozenColsOffset?.() === 0) {\n return eventArgsSet;\n }\n\n const xInTable = e.x - table.tableX;\n const yInTable = e.y - table.tableY;\n if (xInTable < 0 || yInTable < 0 || xInTable > table.tableNoFrameWidth || yInTable > table.tableNoFrameHeight) {\n return eventArgsSet;\n }\n\n const frozenViewportWidth = table.getFrozenColsWidth();\n const pickedCol = eventArgsSet.eventArgs.col;\n const pickedRow = eventArgsSet.eventArgs.row;\n const isPickedLeftFrozen =\n pickedCol >= 0 && pickedCol < table.frozenColCount && !table.isRightFrozenColumn(pickedCol, pickedRow);\n\n if (isPickedLeftFrozen && xInTable >= frozenViewportWidth) {\n const cell = table.getCellAtRelativePosition(e.x, e.y);\n if (cell.col === -1 || cell.row === -1) {\n return eventArgsSet;\n }\n const targetCell = table.scenegraph.getCell(cell.col, cell.row);\n eventArgsSet.eventArgs = {\n col: cell.col,\n row: cell.row,\n event: e,\n targetCell,\n mergeInfo: getMergeCellInfo(targetCell),\n target: targetCell as unknown as IEventTarget\n };\n }\n\n return eventArgsSet;\n}\n\nexport function getTargetCell(target: any) {\n while (target && target.parent) {\n if (target.role === 'cell') {\n return target;\n }\n target = target.parent;\n }\n return null;\n}\n\nfunction getMergeCellInfo(cellGroup: Group): MergeCellInfo | undefined {\n if (\n isValid(cellGroup.mergeStartCol) &&\n isValid(cellGroup.mergeStartRow) &&\n isValid(cellGroup.mergeEndCol) &&\n isValid(cellGroup.mergeEndRow)\n ) {\n return {\n colStart: cellGroup.mergeStartCol,\n colEnd: cellGroup.mergeEndCol,\n rowStart: cellGroup.mergeStartRow,\n rowEnd: cellGroup.mergeEndRow\n };\n }\n return undefined;\n}\n\nexport const regIndexReg = /radio-\\d+-\\d+-(\\d+)/;\n\nexport function setDataToHTML(data: string) {\n const result = ['<table>'];\n const META_HEAD = [\n '<meta name=\"author\" content=\"Visactor\"/>', // 后面可用于vtable之间的快速复制粘贴\n //white-space:normal,连续的空白字符会被合并为一个空格,并且文本会根据容器的宽度自动换行显示\n //mso-data-placement:same-cell,excel专用, 在同一个单元格中显示所有数据,而不是默认情况下将数据分散到多个单元格中显示\n '<style type=\"text/css\">td{white-space:normal}br{mso-data-placement:same-cell}</style>'\n ].join('');\n const rows = data.split('\\r\\n'); // 将数据拆分为行\n rows.forEach(function (rowCells: any, rowIndex: number) {\n const cells = rowCells.split('\\t'); // 将行数据拆分为单元格\n const rowValues: string[] = [];\n if (rowIndex === 0) {\n result.push('<tbody>');\n }\n cells.forEach(function (cell: string, cellIndex: number) {\n // 单元格数据处理\n const parsedCellData = !cell\n ? ''\n : cell\n .toString()\n .replace(/&/g, '&') // replace & with & to prevent XSS attacks\n .replace(/'/g, ''') // replace ' with ' to prevent XSS attacks\n .replace(/</g, '<') // replace < with < to prevent XSS attacks\n .replace(/>/g, '>') // replace > with > to prevent XSS attacks\n .replace(/\\n/g, '<br>') // replace \\n with <br> to prevent XSS attacks\n .replace(/(<br(\\s*|\\/)>(\\r\\n|\\n)?|\\r\\n|\\n)/g, '<br>\\r\\n') // replace <br> with <br>\\r\\n to prevent XSS attacks\n .replace(/\\x20{2,}/gi, (substring: string | any[]) => {\n // excel连续空格序列化\n return `<span style=\"mso-spacerun: yes\">${' '.repeat(substring.length - 1)} </span>`;\n }) // replace 2 or more spaces with to prevent XSS attacks\n .replace(/\\t/gi, '	'); // replace \\t with 	 to prevent XSS attacks\n\n rowValues.push(`<td>${parsedCellData}</td>`);\n });\n result.push('<tr>', ...rowValues, '</tr>');\n\n if (rowIndex === rows.length - 1) {\n result.push('</tbody>');\n }\n });\n result.push('</table>');\n return [META_HEAD, result.join('')].join('');\n}\n"]}
|
package/cjs/index.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export { toBoxArray } from './tools/helper';
|
|
|
24
24
|
export { Icon } from './scenegraph/graphic/icon';
|
|
25
25
|
export { CUSTOM_MERGE_PRE_NAME, CUSTOM_CONTAINER_NAME } from './scenegraph/component/custom';
|
|
26
26
|
export { matrixAllocate, transformPointForCanvas, mapToCanvasPointForCanvas, registerGlobalEventTransformer, registerWindowEventTransformer, vglobal, Group, graphicUtil } from './vrender';
|
|
27
|
-
export declare const version = "1.26.
|
|
27
|
+
export declare const version = "1.26.8";
|
|
28
28
|
export { TYPES, core, ListTable, ListTableSimple, BaseTableAPI, ListTableConstructorOptions, PivotTable, PivotTableSimple, PivotTableConstructorOptions, PivotChartConstructorOptions, PivotChart, IHeaderTreeDefine, IDimension, IIndicator, ITitleDefine, ICornerDefine, ColumnsDefine, ColumnDefine, LinkColumnDefine, ChartColumnDefine, ImageColumnDefine, AudioColumnDefine, SparklineColumnDefine, ProgressbarColumnDefine, TextColumnDefine, GroupColumnDefine, TextAlignType, TextBaselineType, textMeasure, themes, data, MousePointerCellEvent, getIcons, clearGlobal, register, DataStatistics, CustomLayout, updateCell, renderChart, setCustomAlphabetCharSet, restoreMeasureText, pluginsDefinition };
|
|
29
29
|
declare function getIcons(): {
|
|
30
30
|
[key: string]: TYPES.ColumnIconOption;
|
package/cjs/index.js
CHANGED
|
@@ -249,7 +249,7 @@ Object.defineProperty(exports, "matrixAllocate", {
|
|
|
249
249
|
get: function() {
|
|
250
250
|
return vrender_2.graphicUtil;
|
|
251
251
|
}
|
|
252
|
-
}), exports.version = "1.26.
|
|
252
|
+
}), exports.version = "1.26.8", exports.getIcons = getIcons, exports.clearGlobal = clearGlobal,
|
|
253
253
|
TYPES.AggregationType, __exportStar(require("./components"), exports), __exportStar(require("./scenegraph/group-creater/cell-type"), exports);
|
|
254
254
|
|
|
255
255
|
var TABLE_EVENT_TYPE_1 = require("./core/TABLE_EVENT_TYPE");
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAA+C;AAC/C,IAAA,4BAAkB,GAAE,CAAC;AAErB,kDAAoC;AA6ElC,sBAAK;AA5EP,6CAA+B;AA6E7B,oBAAI;AA5EN,6CAA+B;AAyG7B,oBAAI;AAxGN,+CAAiC;AACjC,qDAAuC;AA4GrC,4BAAQ;AA3GV,iDAAmC;AAqGjC,wBAAM;AApGR,yEAA2D;AA8GzD,wCAAc;AA7GhB,6DAA+C;AAmH7C,8CAAiB;AA5FnB,mDAA4D;AAiD1D,0FAjDuB,4BAAS,OAiDvB;AAhDX,yDAAqD;AAiDnD,gGAjDO,kCAAe,OAiDP;AA/CjB,qDAA+D;AAkD7D,2FAlDwB,8BAAU,OAkDxB;AAjDZ,2DAAuD;AAkDrD,iGAlDO,oCAAgB,OAkDP;AAjDlB,6CAA0C;AAoDxC,2FApDO,uBAAU,OAoDP;AAlDZ,8DAAgD;AAgF9C,oCAAY;AA9Ed,wEAAoE;AA+ElE,2FA/EO,wBAAU,OA+EP;AA9EZ,gGAAqF;AA+EnF,4FA/EO,iCAAW,OA+EP;AA9Eb,kEAA4G;AAgF1G,mGAhFO,iCAAkB,OAgFP;AADlB,yGA/E2B,uCAAwB,OA+E3B;AAfxB,4FAhEqD,0BAAW,OAgErD;AA1Db,uDAAwD;AAA/C,gHAAA,eAAe,OAAA;AACxB,+CAA6B;AAC7B,qCAA6C;AAApC,qGAAA,aAAa,OAAA;AACtB,yCAA4C;AAAnC,oGAAA,UAAU,OAAA;AACnB,kDAAiD;AAAxC,4FAAA,IAAI,OAAA;AACb,wDAA6F;AAApF,+GAAA,qBAAqB,OAAA;AAAE,+GAAA,qBAAqB,OAAA;AAErD,qCASmB;AARjB,yGAAA,cAAc,OAAA;AACd,kHAAA,uBAAuB,OAAA;AACvB,oHAAA,yBAAyB,OAAA;AACzB,yHAAA,8BAA8B,OAAA;AAC9B,yHAAA,8BAA8B,OAAA;AAC9B,kGAAA,OAAO,OAAA;AACP,gGAAA,KAAK,OAAA;AACL,sGAAA,WAAW,OAAA;AAMA,QAAA,OAAO,GAAG,QAAQ,CAAC;AA0DhC,SAAS,QAAQ;IAGf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AArBC,4BAAQ;AAuBV,SAAS,WAAW;IAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAGtB,CAAC;AA1BC,kCAAW;AA2Bb,KAAK,CAAC,eAAe,CAAC;AAEtB,+CAA6B;AAC7B,uEAAqD;AAErD,4DAA2D;AAAlD,oHAAA,gBAAgB,OAAA;AACzB,wFAA+G;AAAtG,gIAAA,sBAAsB,OAAA;AAAE,gIAAA,sBAAsB,OAAA;AAEvD,mDAAkD;AAAzC,0GAAA,WAAW,OAAA","file":"index.js","sourcesContent":["/* eslint-disable sort-imports */\nimport { registerForVrender } from './vrender';\nregisterForVrender();\n\nimport * as TYPES from './ts-types';\nimport * as core from './core';\nimport * as data from './data';\nimport * as icons from './icons';\nimport * as register from './register';\nimport * as themes from './themes';\nimport * as DataStatistics from './dataset/DataStatistics';\nimport * as pluginsDefinition from './plugins';\nimport type {\n ColumnDefine,\n ColumnsDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n AudioColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n ListTableConstructorOptions,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n TextAlignType,\n TextBaselineType\n} from './ts-types';\nimport { ListTableAll as ListTable } from './ListTable-all';\nimport { ListTableSimple } from './ListTable-simple';\n// import { PivotTable } from './PivotTable';\nimport { PivotTableAll as PivotTable } from './PivotTable-all';\nimport { PivotTableSimple } from './PivotTable-simple';\nimport { PivotChart } from './PivotChart';\nimport type { MousePointerCellEvent } from './ts-types/events';\nimport * as CustomLayout from './render/layout';\n\nimport { updateCell } from './scenegraph/group-creater/cell-helper';\nimport { renderChart } from './scenegraph/graphic/contributions/chart-render-helper';\nimport { restoreMeasureText, setCustomAlphabetCharSet, textMeasure } from './scenegraph/utils/text-measure';\nimport type { BaseTableAPI } from './ts-types/base-table';\n\n// import { container, loadCanvasPicker } from '@src/vrender';\n// loadCanvasPicker(container);\n\nexport { getDataCellPath } from './tools/get-data-path';\nexport * from './render/jsx';\nexport { getTargetCell } from './event/util';\nexport { toBoxArray } from './tools/helper';\nexport { Icon } from './scenegraph/graphic/icon';\nexport { CUSTOM_MERGE_PRE_NAME, CUSTOM_CONTAINER_NAME } from './scenegraph/component/custom';\n// 为插件等场景提供必要的 vrender 能力:只导出用到的符号,避免与 render/jsx 的导出成员发生命名冲突。\nexport {\n matrixAllocate,\n transformPointForCanvas,\n mapToCanvasPointForCanvas,\n registerGlobalEventTransformer,\n registerWindowEventTransformer,\n vglobal,\n Group,\n graphicUtil\n} from './vrender';\n\n// export * as VRender from './vrender';\n// import * as VRender from './vrender';\n\nexport const version = \"1.26.
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAA+C;AAC/C,IAAA,4BAAkB,GAAE,CAAC;AAErB,kDAAoC;AA6ElC,sBAAK;AA5EP,6CAA+B;AA6E7B,oBAAI;AA5EN,6CAA+B;AAyG7B,oBAAI;AAxGN,+CAAiC;AACjC,qDAAuC;AA4GrC,4BAAQ;AA3GV,iDAAmC;AAqGjC,wBAAM;AApGR,yEAA2D;AA8GzD,wCAAc;AA7GhB,6DAA+C;AAmH7C,8CAAiB;AA5FnB,mDAA4D;AAiD1D,0FAjDuB,4BAAS,OAiDvB;AAhDX,yDAAqD;AAiDnD,gGAjDO,kCAAe,OAiDP;AA/CjB,qDAA+D;AAkD7D,2FAlDwB,8BAAU,OAkDxB;AAjDZ,2DAAuD;AAkDrD,iGAlDO,oCAAgB,OAkDP;AAjDlB,6CAA0C;AAoDxC,2FApDO,uBAAU,OAoDP;AAlDZ,8DAAgD;AAgF9C,oCAAY;AA9Ed,wEAAoE;AA+ElE,2FA/EO,wBAAU,OA+EP;AA9EZ,gGAAqF;AA+EnF,4FA/EO,iCAAW,OA+EP;AA9Eb,kEAA4G;AAgF1G,mGAhFO,iCAAkB,OAgFP;AADlB,yGA/E2B,uCAAwB,OA+E3B;AAfxB,4FAhEqD,0BAAW,OAgErD;AA1Db,uDAAwD;AAA/C,gHAAA,eAAe,OAAA;AACxB,+CAA6B;AAC7B,qCAA6C;AAApC,qGAAA,aAAa,OAAA;AACtB,yCAA4C;AAAnC,oGAAA,UAAU,OAAA;AACnB,kDAAiD;AAAxC,4FAAA,IAAI,OAAA;AACb,wDAA6F;AAApF,+GAAA,qBAAqB,OAAA;AAAE,+GAAA,qBAAqB,OAAA;AAErD,qCASmB;AARjB,yGAAA,cAAc,OAAA;AACd,kHAAA,uBAAuB,OAAA;AACvB,oHAAA,yBAAyB,OAAA;AACzB,yHAAA,8BAA8B,OAAA;AAC9B,yHAAA,8BAA8B,OAAA;AAC9B,kGAAA,OAAO,OAAA;AACP,gGAAA,KAAK,OAAA;AACL,sGAAA,WAAW,OAAA;AAMA,QAAA,OAAO,GAAG,QAAQ,CAAC;AA0DhC,SAAS,QAAQ;IAGf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AArBC,4BAAQ;AAuBV,SAAS,WAAW;IAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAGtB,CAAC;AA1BC,kCAAW;AA2Bb,KAAK,CAAC,eAAe,CAAC;AAEtB,+CAA6B;AAC7B,uEAAqD;AAErD,4DAA2D;AAAlD,oHAAA,gBAAgB,OAAA;AACzB,wFAA+G;AAAtG,gIAAA,sBAAsB,OAAA;AAAE,gIAAA,sBAAsB,OAAA;AAEvD,mDAAkD;AAAzC,0GAAA,WAAW,OAAA","file":"index.js","sourcesContent":["/* eslint-disable sort-imports */\nimport { registerForVrender } from './vrender';\nregisterForVrender();\n\nimport * as TYPES from './ts-types';\nimport * as core from './core';\nimport * as data from './data';\nimport * as icons from './icons';\nimport * as register from './register';\nimport * as themes from './themes';\nimport * as DataStatistics from './dataset/DataStatistics';\nimport * as pluginsDefinition from './plugins';\nimport type {\n ColumnDefine,\n ColumnsDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n AudioColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n ListTableConstructorOptions,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n TextAlignType,\n TextBaselineType\n} from './ts-types';\nimport { ListTableAll as ListTable } from './ListTable-all';\nimport { ListTableSimple } from './ListTable-simple';\n// import { PivotTable } from './PivotTable';\nimport { PivotTableAll as PivotTable } from './PivotTable-all';\nimport { PivotTableSimple } from './PivotTable-simple';\nimport { PivotChart } from './PivotChart';\nimport type { MousePointerCellEvent } from './ts-types/events';\nimport * as CustomLayout from './render/layout';\n\nimport { updateCell } from './scenegraph/group-creater/cell-helper';\nimport { renderChart } from './scenegraph/graphic/contributions/chart-render-helper';\nimport { restoreMeasureText, setCustomAlphabetCharSet, textMeasure } from './scenegraph/utils/text-measure';\nimport type { BaseTableAPI } from './ts-types/base-table';\n\n// import { container, loadCanvasPicker } from '@src/vrender';\n// loadCanvasPicker(container);\n\nexport { getDataCellPath } from './tools/get-data-path';\nexport * from './render/jsx';\nexport { getTargetCell } from './event/util';\nexport { toBoxArray } from './tools/helper';\nexport { Icon } from './scenegraph/graphic/icon';\nexport { CUSTOM_MERGE_PRE_NAME, CUSTOM_CONTAINER_NAME } from './scenegraph/component/custom';\n// 为插件等场景提供必要的 vrender 能力:只导出用到的符号,避免与 render/jsx 的导出成员发生命名冲突。\nexport {\n matrixAllocate,\n transformPointForCanvas,\n mapToCanvasPointForCanvas,\n registerGlobalEventTransformer,\n registerWindowEventTransformer,\n vglobal,\n Group,\n graphicUtil\n} from './vrender';\n\n// export * as VRender from './vrender';\n// import * as VRender from './vrender';\n\nexport const version = \"1.26.8\";\n/**\n * @namespace VTable\n */\nexport {\n /**\n * Types\n * @namespace VTable.TYPES\n */\n TYPES,\n core,\n ListTable,\n ListTableSimple,\n BaseTableAPI,\n ListTableConstructorOptions,\n PivotTable,\n PivotTableSimple,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n PivotChart,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n ColumnsDefine,\n ColumnDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n AudioColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n TextAlignType,\n TextBaselineType,\n textMeasure,\n themes,\n data,\n MousePointerCellEvent,\n getIcons,\n clearGlobal,\n //plugin registers\n register,\n /**\n * 暂不推荐使用\n */\n DataStatistics,\n CustomLayout,\n updateCell,\n renderChart,\n setCustomAlphabetCharSet,\n restoreMeasureText,\n pluginsDefinition\n};\n\n/** @private */\nfunction getIcons(): {\n [key: string]: TYPES.ColumnIconOption;\n} {\n return icons.get();\n}\n/** 清理内部的全局变量 如注册的icon theme等 以及共享的header column类实例 */\nfunction clearGlobal() {\n register.clearAll();\n // headers.type.clearGlobal();\n // columns.type.clearGlobal();\n}\nTYPES.AggregationType;\n\nexport * from './components';\nexport * from './scenegraph/group-creater/cell-type';\n\nexport { TABLE_EVENT_TYPE } from './core/TABLE_EVENT_TYPE';\nexport { PIVOT_CHART_EVENT_TYPE, PIVOT_TABLE_EVENT_TYPE } from './ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE';\n\nexport { EventTarget } from './event/EventTarget';\n"]}
|
|
@@ -26,12 +26,15 @@ class PivotHeaderLayoutMap {
|
|
|
26
26
|
this.leftRowSeriesNumberColumnCount = 0, this.rightRowSeriesNumberColumnCount = 0,
|
|
27
27
|
this._useGetBodyCache = !1, this._getBodyCache = new Map, this._useHeaderPathCache = !1,
|
|
28
28
|
this._colHeaderPathCache = new Map, this._rowHeaderPathCache = new Map, this.matchDimensionPath = (paths, treeNodes, needLowestLevel, checkAxisNode = !1, pathIndex = 0) => {
|
|
29
|
+
var _a, _b;
|
|
29
30
|
if (pathIndex >= paths.length) return;
|
|
30
31
|
const currentPath = paths[pathIndex];
|
|
31
32
|
for (let j = 0; j < treeNodes.length; j++) {
|
|
32
33
|
const dimension = treeNodes[j];
|
|
33
|
-
if (!(0, vutils_1.isValid)(currentPath.indicatorKey) && dimension.dimensionKey === currentPath.dimensionKey &&
|
|
34
|
+
if (!(0, vutils_1.isValid)(currentPath.indicatorKey) && dimension.dimensionKey === currentPath.dimensionKey && ((0,
|
|
35
|
+
vutils_1.isValid)(currentPath.dataValue) ? (null !== (_a = dimension.dataValue) && void 0 !== _a ? _a : dimension.value) === currentPath.dataValue : dimension.value === currentPath.value) || (0,
|
|
34
36
|
vutils_1.isValid)(currentPath.indicatorKey) && dimension.indicatorKey === currentPath.indicatorKey && ((0,
|
|
37
|
+
vutils_1.isValid)(currentPath.dataValue) && (null !== (_b = dimension.dataValue) && void 0 !== _b ? _b : dimension.value) === currentPath.dataValue || (0,
|
|
35
38
|
vutils_1.isValid)(dimension.value) && (0, vutils_1.isValid)(currentPath.value) && currentPath.value === dimension.value || !(0,
|
|
36
39
|
vutils_1.isValid)(dimension.value) || !(0, vutils_1.isValid)(currentPath.value))) {
|
|
37
40
|
const children = dimension.children;
|
|
@@ -1046,16 +1049,16 @@ class PivotHeaderLayoutMap {
|
|
|
1046
1049
|
const colHeaderPath = {};
|
|
1047
1050
|
colHeaderPath.dimensionKey = colHeader.dimensionKey, colHeaderPath.indicatorKey = colHeader.indicatorKey,
|
|
1048
1051
|
colHeaderPath.value = null !== (_a = colHeader.value) && void 0 !== _a ? _a : colHeader.indicatorKey ? null !== (_c = null === (_b = this.getIndicatorInfoByIndicatorKey(colHeader.indicatorKey)) || void 0 === _b ? void 0 : _b.title) && void 0 !== _c ? _c : "" : colHeader.value,
|
|
1049
|
-
colHeaderPath.
|
|
1050
|
-
headerPaths.colHeaderPaths.push(colHeaderPath);
|
|
1052
|
+
colHeaderPath.dataValue = colHeader.dataValue, colHeaderPath.virtual = colHeader.virtual,
|
|
1053
|
+
colHeaderPath.role = colHeader.role, headerPaths.colHeaderPaths.push(colHeaderPath);
|
|
1051
1054
|
})), null === (_b = headerPathsWidthNode.rowHeaderPaths) || void 0 === _b || _b.forEach((rowHeader => {
|
|
1052
1055
|
var _a, _b, _c;
|
|
1053
1056
|
if ("axis" !== rowHeader.dimensionKey) {
|
|
1054
1057
|
const rowHeaderPath = {};
|
|
1055
1058
|
rowHeaderPath.dimensionKey = rowHeader.dimensionKey, rowHeaderPath.indicatorKey = rowHeader.indicatorKey,
|
|
1056
1059
|
rowHeaderPath.value = null !== (_a = rowHeader.value) && void 0 !== _a ? _a : rowHeader.indicatorKey ? null !== (_c = null === (_b = this.getIndicatorInfoByIndicatorKey(rowHeader.indicatorKey)) || void 0 === _b ? void 0 : _b.title) && void 0 !== _c ? _c : "" : rowHeader.value,
|
|
1057
|
-
rowHeaderPath.
|
|
1058
|
-
headerPaths.rowHeaderPaths.push(rowHeaderPath);
|
|
1060
|
+
rowHeaderPath.dataValue = rowHeader.dataValue, rowHeaderPath.virtual = rowHeader.virtual,
|
|
1061
|
+
rowHeaderPath.role = rowHeader.role, headerPaths.rowHeaderPaths.push(rowHeaderPath);
|
|
1059
1062
|
}
|
|
1060
1063
|
})), headerPaths;
|
|
1061
1064
|
}
|
|
@@ -1488,18 +1491,23 @@ class PivotHeaderLayoutMap {
|
|
|
1488
1491
|
null !== (_f = null == rowHeaderPaths ? void 0 : rowHeaderPaths.length) && void 0 !== _f && _f && rowHeaderPaths.length >= this._getRowHeaderTreeExpandedMaxLevelCount() && (needLowestLevel_rowPaths = !0),
|
|
1489
1492
|
colHeaderPaths && (colDimensionFinded = this.matchDimensionPath(colHeaderPaths, this.columnTree, needLowestLevel_colPaths)),
|
|
1490
1493
|
(null == rowHeaderPaths ? void 0 : rowHeaderPaths.length) >= 1) if ("tree" === this.rowHierarchyType) {
|
|
1491
|
-
const rowDimension = rowHeaderPaths[rowHeaderPaths.length - 1], cellIDs = this.headerObjects.filter((hd =>
|
|
1492
|
-
|
|
1493
|
-
return
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1494
|
+
const rowDimension = rowHeaderPaths[rowHeaderPaths.length - 1], cellIDs = this.headerObjects.filter((hd => {
|
|
1495
|
+
var _a, _b, _c;
|
|
1496
|
+
return ((null == hd ? void 0 : hd.field) === rowDimension.dimensionKey || (null == hd ? void 0 : hd.field) === rowDimension.indicatorKey) && ((0,
|
|
1497
|
+
vutils_1.isValid)(rowDimension.dataValue) ? (null !== (_c = null !== (_a = hd.dataValue) && void 0 !== _a ? _a : null === (_b = hd.define) || void 0 === _b ? void 0 : _b.dataValue) && void 0 !== _c ? _c : hd.title) === rowDimension.dataValue : (null == hd ? void 0 : hd.title) === rowDimension.value);
|
|
1498
|
+
})).map((hd => hd.id)), findedCellIdPath = this._rowHeaderCellIds.filter((rowHdCellIDs => cellIDs.indexOf(rowHdCellIDs[rowHdCellIDs.length - 1]) >= 0)).find((pathIds => {
|
|
1499
|
+
const fullCellIds = this.findFullCellIds(pathIds), matchHeaderPath = (curHd, rowDimensionPath) => {
|
|
1500
|
+
var _a, _b, _c;
|
|
1501
|
+
return rowDimensionPath.dimensionKey === curHd.field && ((0, vutils_1.isValid)(rowDimensionPath.dataValue) ? (null !== (_c = null !== (_a = curHd.dataValue) && void 0 !== _a ? _a : null === (_b = curHd.define) || void 0 === _b ? void 0 : _b.dataValue) && void 0 !== _c ? _c : curHd.title) === rowDimensionPath.dataValue : rowDimensionPath.value === curHd.title);
|
|
1502
|
+
};
|
|
1503
|
+
return fullCellIds.length === rowHeaderPaths.length && (rowHeaderPaths.some((rowDimensionPath => (0,
|
|
1504
|
+
vutils_1.isValid)(rowDimensionPath.dataValue))) ? fullCellIds.every(((id, index) => matchHeaderPath(this._headerObjectMap[id], rowHeaderPaths[index]))) : fullCellIds.every((id => rowHeaderPaths.some((rowDimensionPath => matchHeaderPath(this._headerObjectMap[id], rowDimensionPath))))));
|
|
1497
1505
|
}));
|
|
1498
|
-
row = this._rowHeaderCellIds.indexOf(findedCellIdPath) + this.columnHeaderLevelCount;
|
|
1506
|
+
findedCellIdPath && (row = this._rowHeaderCellIds.indexOf(findedCellIdPath) + this.columnHeaderLevelCount);
|
|
1499
1507
|
} else rowDimensionFinded = this.matchDimensionPath(rowHeaderPaths, this.rowTree, needLowestLevel_rowPaths, !0);
|
|
1500
1508
|
if (forceBody || !needLowestLevel_colPaths || !needLowestLevel_rowPaths || (rowDimensionFinded || (0,
|
|
1501
1509
|
vutils_1.isValid)(row)) && colDimensionFinded) {
|
|
1502
|
-
if (rowDimensionFinded || forceBody) {
|
|
1510
|
+
if (rowDimensionFinded || forceBody && !(0, vutils_1.isValid)(row)) {
|
|
1503
1511
|
row = this.columnHeaderLevelCount;
|
|
1504
1512
|
const {startInTotal: startInTotal, afterSpanLevel: afterSpanLevel} = null !== (_g = rowDimensionFinded) && void 0 !== _g ? _g : defaultDimension;
|
|
1505
1513
|
if (row += null != startInTotal ? startInTotal : 0, "grid" === this.rowHierarchyType) {
|
|
@@ -1789,7 +1797,10 @@ class PivotHeaderLayoutMap {
|
|
|
1789
1797
|
let collectedValues, height;
|
|
1790
1798
|
isHeatmap && path[path.length - 1].indicatorKey && path.pop();
|
|
1791
1799
|
for (const key in this.dataset.collectValuesBy) if ("yField" === this.dataset.collectValuesBy[key].type && !this.dataset.collectValuesBy[key].range) {
|
|
1792
|
-
collectedValues = null === (_a = this.dataset.collectedValues[key]) || void 0 === _a ? void 0 : _a[path.map((pathObj =>
|
|
1800
|
+
collectedValues = null === (_a = this.dataset.collectedValues[key]) || void 0 === _a ? void 0 : _a[path.map((pathObj => {
|
|
1801
|
+
var _a;
|
|
1802
|
+
return null !== (_a = pathObj.dataValue) && void 0 !== _a ? _a : pathObj.value;
|
|
1803
|
+
})).join(this.dataset.stringJoinChar)];
|
|
1793
1804
|
break;
|
|
1794
1805
|
}
|
|
1795
1806
|
if (this._chartItemBandSize) height = scaleWholeRangeSize(null !== (_b = null == collectedValues ? void 0 : collectedValues.length) && void 0 !== _b ? _b : 0, this._chartItemBandSize, this._chartPaddingInner, this._chartPaddingOuter); else {
|
|
@@ -1804,7 +1815,10 @@ class PivotHeaderLayoutMap {
|
|
|
1804
1815
|
const path = this.getCellHeaderPaths(col, this.columnHeaderLevelCount).colHeaderPaths;
|
|
1805
1816
|
let collectedValues, width;
|
|
1806
1817
|
for (const key in this.dataset.collectValuesBy) if ("xField" === this.dataset.collectValuesBy[key].type && !this.dataset.collectValuesBy[key].range) {
|
|
1807
|
-
collectedValues = null === (_a = this.dataset.collectedValues[key]) || void 0 === _a ? void 0 : _a[path.map((pathObj =>
|
|
1818
|
+
collectedValues = null === (_a = this.dataset.collectedValues[key]) || void 0 === _a ? void 0 : _a[path.map((pathObj => {
|
|
1819
|
+
var _a;
|
|
1820
|
+
return null !== (_a = pathObj.dataValue) && void 0 !== _a ? _a : pathObj.value;
|
|
1821
|
+
})).join(this.dataset.stringJoinChar)];
|
|
1808
1822
|
break;
|
|
1809
1823
|
}
|
|
1810
1824
|
if (this._chartItemBandSize) width = scaleWholeRangeSize(null !== (_b = null == collectedValues ? void 0 : collectedValues.length) && void 0 !== _b ? _b : 0, this._chartItemBandSize, this._chartPaddingInner, this._chartPaddingOuter); else {
|
|
@@ -1834,13 +1848,15 @@ class PivotHeaderLayoutMap {
|
|
|
1834
1848
|
getColKeysPath(col, row) {
|
|
1835
1849
|
const path = this.getCellHeaderPaths(col, row), colKey = [];
|
|
1836
1850
|
return path.colHeaderPaths.length && path.colHeaderPaths.forEach((path => {
|
|
1837
|
-
|
|
1851
|
+
var _a;
|
|
1852
|
+
path.dimensionKey && colKey.push(null !== (_a = path.dataValue) && void 0 !== _a ? _a : path.value);
|
|
1838
1853
|
})), null == colKey ? void 0 : colKey.join(this.dataset.stringJoinChar);
|
|
1839
1854
|
}
|
|
1840
1855
|
getRowKeysPath(col, row) {
|
|
1841
1856
|
const path = this.getCellHeaderPaths(col, row), rowKey = [];
|
|
1842
1857
|
return path.rowHeaderPaths.length && path.rowHeaderPaths.forEach((path => {
|
|
1843
|
-
|
|
1858
|
+
var _a;
|
|
1859
|
+
path.dimensionKey && rowKey.push(null !== (_a = path.dataValue) && void 0 !== _a ? _a : path.value);
|
|
1844
1860
|
})), null == rowKey ? void 0 : rowKey.join(this.dataset.stringJoinChar);
|
|
1845
1861
|
}
|
|
1846
1862
|
getIndicatorInfo(indicatorKey, indicatorValue = "") {
|