@visactor/vtable-plugins 1.19.9-alpha.2 → 1.20.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -4
- package/cjs/add-row-column.d.ts +2 -2
- package/cjs/add-row-column.js +3 -3
- package/cjs/add-row-column.js.map +1 -1
- package/cjs/auto-fill/auto-fill-helper.d.ts +23 -0
- package/cjs/auto-fill/auto-fill-helper.js +83 -0
- package/cjs/auto-fill/auto-fill-helper.js.map +1 -0
- package/cjs/auto-fill/auto-fill-manager.d.ts +26 -0
- package/cjs/auto-fill/auto-fill-manager.js +244 -0
- package/cjs/auto-fill/auto-fill-manager.js.map +1 -0
- package/cjs/auto-fill/auto-fill-services.d.ts +12 -0
- package/cjs/auto-fill/auto-fill-services.js +27 -0
- package/cjs/auto-fill/auto-fill-services.js.map +1 -0
- package/cjs/auto-fill/date-tools.d.ts +5 -0
- package/cjs/auto-fill/date-tools.js +37 -0
- package/cjs/auto-fill/date-tools.js.map +1 -0
- package/cjs/auto-fill/index.d.ts +21 -0
- package/cjs/auto-fill/index.js +52 -0
- package/cjs/auto-fill/index.js.map +1 -0
- package/cjs/auto-fill/rules.d.ts +10 -0
- package/cjs/auto-fill/rules.js +196 -0
- package/cjs/auto-fill/rules.js.map +1 -0
- package/cjs/auto-fill/series-converters.d.ts +27 -0
- package/cjs/auto-fill/series-converters.js +90 -0
- package/cjs/auto-fill/series-converters.js.map +1 -0
- package/cjs/auto-fill/types.d.ts +67 -0
- package/cjs/auto-fill/types.js +20 -0
- package/cjs/auto-fill/types.js.map +1 -0
- package/cjs/auto-fill/utils/date.d.ts +5 -0
- package/cjs/auto-fill/utils/date.js +76 -0
- package/cjs/auto-fill/utils/date.js.map +1 -0
- package/cjs/auto-fill/utils/fill.d.ts +82 -0
- package/cjs/auto-fill/utils/fill.js +361 -0
- package/cjs/auto-fill/utils/fill.js.map +1 -0
- package/cjs/carousel-animation.d.ts +1 -1
- package/cjs/carousel-animation.js.map +1 -1
- package/cjs/column-series.js +1 -1
- package/cjs/column-series.js.map +1 -1
- package/cjs/context-menu.d.ts +34 -0
- package/cjs/context-menu.js +157 -0
- package/cjs/context-menu.js.map +1 -0
- package/cjs/contextmenu/handle-menu-helper.d.ts +23 -0
- package/cjs/contextmenu/handle-menu-helper.js +107 -0
- package/cjs/contextmenu/handle-menu-helper.js.map +1 -0
- package/cjs/contextmenu/index.d.ts +3 -0
- package/cjs/contextmenu/index.js +22 -0
- package/cjs/contextmenu/index.js.map +1 -0
- package/cjs/contextmenu/menu-manager.d.ts +27 -0
- package/cjs/contextmenu/menu-manager.js +139 -0
- package/cjs/contextmenu/menu-manager.js.map +1 -0
- package/cjs/contextmenu/styles.d.ts +106 -0
- package/cjs/contextmenu/styles.js +195 -0
- package/cjs/contextmenu/styles.js.map +1 -0
- package/cjs/contextmenu/types.d.ts +69 -0
- package/cjs/contextmenu/types.js +122 -0
- package/cjs/contextmenu/types.js.map +1 -0
- package/cjs/excel-edit-cell-keyboard.js +2 -2
- package/cjs/excel-edit-cell-keyboard.js.map +1 -1
- package/cjs/excel-import.js +8 -8
- package/cjs/excel-import.js.map +1 -1
- package/cjs/fillHandleUtils/autoFillHandle.js.map +1 -1
- package/cjs/fillHandleUtils/translateRowObj.js.map +1 -1
- package/cjs/filter/condition-filter.d.ts +30 -0
- package/cjs/filter/condition-filter.js +271 -0
- package/cjs/filter/condition-filter.js.map +1 -0
- package/cjs/filter/filter-engine.d.ts +13 -0
- package/cjs/filter/filter-engine.js +102 -0
- package/cjs/filter/filter-engine.js.map +1 -0
- package/cjs/filter/filter-state-manager.d.ts +21 -0
- package/cjs/filter/filter-state-manager.js +102 -0
- package/cjs/filter/filter-state-manager.js.map +1 -0
- package/cjs/filter/filter-toolbar.d.ts +31 -0
- package/cjs/filter/filter-toolbar.js +98 -0
- package/cjs/filter/filter-toolbar.js.map +1 -0
- package/cjs/filter/filter.d.ts +26 -0
- package/cjs/filter/filter.js +150 -0
- package/cjs/filter/filter.js.map +1 -0
- package/cjs/filter/index.d.ts +7 -0
- package/cjs/filter/index.js +66 -0
- package/cjs/filter/index.js.map +1 -0
- package/cjs/filter/styles.d.ts +126 -0
- package/cjs/filter/styles.js +145 -0
- package/cjs/filter/styles.js.map +1 -0
- package/cjs/filter/types.d.ts +55 -0
- package/cjs/filter/types.js +18 -0
- package/cjs/filter/types.js.map +1 -0
- package/cjs/filter/value-filter.d.ts +31 -0
- package/cjs/filter/value-filter.js +280 -0
- package/cjs/filter/value-filter.js.map +1 -0
- package/cjs/focus-highlight.js +1 -1
- package/cjs/focus-highlight.js.map +1 -1
- package/cjs/gantt-export-image.js.map +1 -1
- package/cjs/header-highlight.js.map +1 -1
- package/cjs/highlight-header-when-select-cell.d.ts +1 -2
- package/cjs/highlight-header-when-select-cell.js +1 -1
- package/cjs/highlight-header-when-select-cell.js.map +1 -1
- package/cjs/index.d.ts +4 -0
- package/cjs/index.js +3 -1
- package/cjs/index.js.map +1 -1
- package/cjs/invert-highlight.js.map +1 -1
- package/cjs/paste-add-row-column.d.ts +1 -0
- package/cjs/paste-add-row-column.js +3 -2
- package/cjs/paste-add-row-column.js.map +1 -1
- package/cjs/rotate-table.js +1 -1
- package/cjs/rotate-table.js.map +1 -1
- package/cjs/row-series.js +1 -1
- package/cjs/row-series.js.map +1 -1
- package/cjs/table-carousel-animation.js +2 -3
- package/cjs/table-carousel-animation.js.map +1 -1
- package/cjs/table-export/csv/index.js +1 -1
- package/cjs/table-export/csv/index.js.map +1 -1
- package/cjs/table-export/excel/index.js +0 -1
- package/cjs/table-export/excel/index.js.map +1 -1
- package/cjs/table-export/excel/style.js.map +1 -1
- package/cjs/table-export/index.js.map +1 -1
- package/cjs/table-export/util/color.js.map +1 -1
- package/cjs/table-export/util/download.js.map +1 -1
- package/cjs/table-export/util/encode.js.map +1 -1
- package/cjs/table-export/util/indent.js.map +1 -1
- package/cjs/table-export/util/pagination.js.map +1 -1
- package/cjs/table-export/util/promise.js.map +1 -1
- package/cjs/table-export/util/type.js +1 -1
- package/cjs/table-export/util/type.js.map +1 -1
- package/cjs/table-export.js +1 -2
- package/cjs/table-export.js.map +1 -1
- package/cjs/table-series-number.d.ts +41 -0
- package/cjs/table-series-number.js +261 -0
- package/cjs/table-series-number.js.map +1 -0
- package/cjs/types.d.ts +1 -0
- package/cjs/types.js +17 -1
- package/cjs/types.js.map +1 -1
- package/cjs/wps-fill-handle.js +1 -1
- package/cjs/wps-fill-handle.js.map +1 -1
- package/dist/vtable-plugins.js +7594 -1492
- package/dist/vtable-plugins.min.js +14 -14
- package/es/add-row-column.d.ts +2 -2
- package/es/add-row-column.js +3 -3
- package/es/add-row-column.js.map +1 -1
- package/es/auto-fill/auto-fill-helper.d.ts +23 -0
- package/es/auto-fill/auto-fill-helper.js +75 -0
- package/es/auto-fill/auto-fill-helper.js.map +1 -0
- package/es/auto-fill/auto-fill-manager.d.ts +26 -0
- package/es/auto-fill/auto-fill-manager.js +218 -0
- package/es/auto-fill/auto-fill-manager.js.map +1 -0
- package/es/auto-fill/auto-fill-services.d.ts +12 -0
- package/es/auto-fill/auto-fill-services.js +19 -0
- package/es/auto-fill/auto-fill-services.js.map +1 -0
- package/es/auto-fill/date-tools.d.ts +5 -0
- package/es/auto-fill/date-tools.js +29 -0
- package/es/auto-fill/date-tools.js.map +1 -0
- package/es/auto-fill/index.d.ts +21 -0
- package/es/auto-fill/index.js +21 -0
- package/es/auto-fill/index.js.map +1 -0
- package/es/auto-fill/rules.d.ts +10 -0
- package/es/auto-fill/rules.js +203 -0
- package/es/auto-fill/rules.js.map +1 -0
- package/es/auto-fill/series-converters.d.ts +27 -0
- package/es/auto-fill/series-converters.js +83 -0
- package/es/auto-fill/series-converters.js.map +1 -0
- package/es/auto-fill/types.d.ts +67 -0
- package/es/auto-fill/types.js +27 -0
- package/es/auto-fill/types.js.map +1 -0
- package/es/auto-fill/utils/date.d.ts +5 -0
- package/es/auto-fill/utils/date.js +68 -0
- package/es/auto-fill/utils/date.js.map +1 -0
- package/es/auto-fill/utils/fill.d.ts +82 -0
- package/es/auto-fill/utils/fill.js +347 -0
- package/es/auto-fill/utils/fill.js.map +1 -0
- package/es/carousel-animation.d.ts +1 -1
- package/es/carousel-animation.js.map +1 -1
- package/es/column-series.js +1 -1
- package/es/column-series.js.map +1 -1
- package/es/context-menu.d.ts +34 -0
- package/es/context-menu.js +129 -0
- package/es/context-menu.js.map +1 -0
- package/es/contextmenu/handle-menu-helper.d.ts +23 -0
- package/es/contextmenu/handle-menu-helper.js +99 -0
- package/es/contextmenu/handle-menu-helper.js.map +1 -0
- package/es/contextmenu/index.d.ts +3 -0
- package/es/contextmenu/index.js +6 -0
- package/es/contextmenu/index.js.map +1 -0
- package/es/contextmenu/menu-manager.d.ts +27 -0
- package/es/contextmenu/menu-manager.js +130 -0
- package/es/contextmenu/menu-manager.js.map +1 -0
- package/es/contextmenu/styles.d.ts +106 -0
- package/es/contextmenu/styles.js +197 -0
- package/es/contextmenu/styles.js.map +1 -0
- package/es/contextmenu/types.d.ts +69 -0
- package/es/contextmenu/types.js +121 -0
- package/es/contextmenu/types.js.map +1 -0
- package/es/excel-edit-cell-keyboard.js +2 -2
- package/es/excel-edit-cell-keyboard.js.map +1 -1
- package/es/excel-import.js +8 -8
- package/es/excel-import.js.map +1 -1
- package/es/fillHandleUtils/autoFillHandle.js.map +1 -1
- package/es/fillHandleUtils/translateRowObj.js.map +1 -1
- package/es/filter/condition-filter.d.ts +30 -0
- package/es/filter/condition-filter.js +262 -0
- package/es/filter/condition-filter.js.map +1 -0
- package/es/filter/filter-engine.d.ts +13 -0
- package/es/filter/filter-engine.js +94 -0
- package/es/filter/filter-engine.js.map +1 -0
- package/es/filter/filter-state-manager.d.ts +21 -0
- package/es/filter/filter-state-manager.js +94 -0
- package/es/filter/filter-state-manager.js.map +1 -0
- package/es/filter/filter-toolbar.d.ts +31 -0
- package/es/filter/filter-toolbar.js +90 -0
- package/es/filter/filter-toolbar.js.map +1 -0
- package/es/filter/filter.d.ts +26 -0
- package/es/filter/filter.js +125 -0
- package/es/filter/filter.js.map +1 -0
- package/es/filter/index.d.ts +7 -0
- package/es/filter/index.js +14 -0
- package/es/filter/index.js.map +1 -0
- package/es/filter/styles.d.ts +126 -0
- package/es/filter/styles.js +140 -0
- package/es/filter/styles.js.map +1 -0
- package/es/filter/types.d.ts +55 -0
- package/es/filter/types.js +17 -0
- package/es/filter/types.js.map +1 -0
- package/es/filter/value-filter.d.ts +31 -0
- package/es/filter/value-filter.js +275 -0
- package/es/filter/value-filter.js.map +1 -0
- package/es/focus-highlight.js +1 -1
- package/es/focus-highlight.js.map +1 -1
- package/es/gantt-export-image.js.map +1 -1
- package/es/header-highlight.js.map +1 -1
- package/es/highlight-header-when-select-cell.d.ts +1 -2
- package/es/highlight-header-when-select-cell.js +1 -1
- package/es/highlight-header-when-select-cell.js.map +1 -1
- package/es/index.d.ts +4 -0
- package/es/index.js +8 -0
- package/es/index.js.map +1 -1
- package/es/invert-highlight.js.map +1 -1
- package/es/paste-add-row-column.d.ts +1 -0
- package/es/paste-add-row-column.js +3 -2
- package/es/paste-add-row-column.js.map +1 -1
- package/es/rotate-table.js +1 -1
- package/es/rotate-table.js.map +1 -1
- package/es/row-series.js +1 -1
- package/es/row-series.js.map +1 -1
- package/es/table-carousel-animation.js +3 -3
- package/es/table-carousel-animation.js.map +1 -1
- package/es/table-export/csv/index.js +1 -1
- package/es/table-export/csv/index.js.map +1 -1
- package/es/table-export/excel/index.js +1 -2
- package/es/table-export/excel/index.js.map +1 -1
- package/es/table-export/excel/style.js.map +1 -1
- package/es/table-export/index.js.map +1 -1
- package/es/table-export/util/color.js.map +1 -1
- package/es/table-export/util/download.js.map +1 -1
- package/es/table-export/util/encode.js.map +1 -1
- package/es/table-export/util/indent.js.map +1 -1
- package/es/table-export/util/pagination.js.map +1 -1
- package/es/table-export/util/promise.js.map +1 -1
- package/es/table-export/util/type.js +1 -1
- package/es/table-export/util/type.js.map +1 -1
- package/es/table-export.js +1 -2
- package/es/table-export.js.map +1 -1
- package/es/table-series-number.d.ts +41 -0
- package/es/table-series-number.js +253 -0
- package/es/table-series-number.js.map +1 -0
- package/es/types.d.ts +1 -0
- package/es/types.js +2 -1
- package/es/types.js.map +1 -1
- package/es/wps-fill-handle.js +1 -1
- package/es/wps-fill-handle.js.map +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["header-highlight.ts"],"names":[],"mappings":"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","file":"header-highlight.js","sourcesContent":["import type { CellRange } from '@visactor/vtable/es/ts-types';\nimport type { BaseTableAPI } from '@visactor/vtable/es/ts-types/base-table';\n\nexport interface IHeaderHighlightPluginOptions {\n rowHighlight?: boolean;\n colHighlight?: boolean;\n colHighlightBGColor?: string;\n colHighlightColor?: string;\n rowHighlightBGColor?: string;\n rowHighlightColor?: string;\n}\n\n/**\n * @deprecated 请使用 HighlightHeaderPlugin 插件\n */\nexport class HeaderHighlightPlugin {\n table: BaseTableAPI;\n options: IHeaderHighlightPluginOptions;\n colHeaderRange?: CellRange;\n rowHeaderRange?: CellRange;\n constructor(table: BaseTableAPI, options?: IHeaderHighlightPluginOptions) {\n this.table = table;\n this.options = options;\n\n this.registerStyle();\n this.bindEvent();\n }\n\n registerStyle() {\n this.table.registerCustomCellStyle('col-highlight', {\n bgColor: this.options?.colHighlightBGColor ?? '#82b2f5',\n color: this.options?.colHighlightColor ?? '#FFF'\n });\n\n this.table.registerCustomCellStyle('row-highlight', {\n bgColor: this.options?.rowHighlightBGColor ?? '#82b2f5',\n color: this.options?.rowHighlightColor ?? '#FFF'\n });\n }\n\n bindEvent() {\n this.table.on('selected_cell', () => {\n this.updateHighlight();\n });\n\n this.table.on('selected_clear', () => {\n this.clearHighlight();\n });\n\n this.table.on('mousemove_table', () => {\n if (this.table.stateManager.select.selecting) {\n this.updateHighlight();\n }\n });\n }\n\n clearHighlight() {\n this.colHeaderRange && this.table.arrangeCustomCellStyle({ range: this.colHeaderRange }, undefined, true);\n this.rowHeaderRange && this.table.arrangeCustomCellStyle({ range: this.rowHeaderRange }, undefined, true);\n\n // clear range\n this.colHeaderRange = undefined;\n this.rowHeaderRange = undefined;\n }\n\n updateHighlight() {\n if (this.options?.colHighlight === false && this.options?.rowHighlight === false) {\n return;\n }\n const selectRanges = this.table.getSelectedCellRanges();\n if (selectRanges.length === 0) {\n this.clearHighlight();\n return;\n }\n\n const selectRange = selectRanges[0];\n const rowSelectRange = [selectRange.start.row, selectRange.end.row];\n rowSelectRange.sort((a, b) => a - b); // sort\n const colSelectRange = [selectRange.start.col, selectRange.end.col];\n colSelectRange.sort((a, b) => a - b); // sort\n\n let colHeaderRange: CellRange;\n let rowHeaderRange: CellRange;\n if (this.table.isPivotTable()) {\n colHeaderRange = {\n start: {\n col: colSelectRange[0],\n row: 0\n },\n end: {\n col: colSelectRange[1],\n row: this.table.columnHeaderLevelCount - 1\n }\n };\n rowHeaderRange = {\n start: {\n col: 0,\n row: rowSelectRange[0]\n },\n end: {\n col: this.table.rowHeaderLevelCount - 1,\n row: rowSelectRange[1]\n }\n };\n } else if (this.table.internalProps.transpose) {\n rowHeaderRange = {\n start: {\n col: 0,\n row: rowSelectRange[0]\n },\n end: {\n col: this.table.rowHeaderLevelCount - 1,\n row: rowSelectRange[1]\n }\n };\n } else {\n colHeaderRange = {\n start: {\n col: colSelectRange[0],\n row: 0\n },\n end: {\n col: colSelectRange[1],\n row: this.table.columnHeaderLevelCount - 1\n }\n };\n if (this.table.internalProps.rowSeriesNumber) {\n rowHeaderRange = {\n start: {\n col: 0,\n row: rowSelectRange[0]\n },\n end: {\n col: 0,\n row: rowSelectRange[1]\n }\n };\n }\n }\n\n if (this.options?.colHighlight !== false && !isSameRange(this.colHeaderRange, colHeaderRange)) {\n this.colHeaderRange && this.table.arrangeCustomCellStyle({ range: this.colHeaderRange }, undefined);\n colHeaderRange && this.table.arrangeCustomCellStyle({ range: colHeaderRange }, 'col-highlight');\n this.colHeaderRange = colHeaderRange;\n }\n\n if (this.options?.rowHighlight !== false && !isSameRange(this.rowHeaderRange, rowHeaderRange)) {\n this.rowHeaderRange && this.table.arrangeCustomCellStyle({ range: this.rowHeaderRange }, undefined);\n rowHeaderRange && this.table.arrangeCustomCellStyle({ range: rowHeaderRange }, 'row-highlight');\n this.rowHeaderRange = rowHeaderRange;\n }\n }\n}\n\nfunction isSameRange(a: CellRange | undefined, b: CellRange | undefined) {\n if (a === undefined && b === undefined) {\n return true;\n }\n\n if (a === undefined || b === undefined) {\n return false;\n }\n\n return (\n a.start.col === b.start.col && a.start.row === b.start.row && a.end.col === b.end.col && a.end.row === b.end.row\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/header-highlight.ts"],"names":[],"mappings":"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","file":"header-highlight.js","sourcesContent":["import type { CellRange } from '@visactor/vtable/es/ts-types';\nimport type { BaseTableAPI } from '@visactor/vtable/es/ts-types/base-table';\n\nexport interface IHeaderHighlightPluginOptions {\n rowHighlight?: boolean;\n colHighlight?: boolean;\n colHighlightBGColor?: string;\n colHighlightColor?: string;\n rowHighlightBGColor?: string;\n rowHighlightColor?: string;\n}\n\n/**\n * @deprecated 请使用 HighlightHeaderPlugin 插件\n */\nexport class HeaderHighlightPlugin {\n table: BaseTableAPI;\n options: IHeaderHighlightPluginOptions;\n colHeaderRange?: CellRange;\n rowHeaderRange?: CellRange;\n constructor(table: BaseTableAPI, options?: IHeaderHighlightPluginOptions) {\n this.table = table;\n this.options = options;\n\n this.registerStyle();\n this.bindEvent();\n }\n\n registerStyle() {\n this.table.registerCustomCellStyle('col-highlight', {\n bgColor: this.options?.colHighlightBGColor ?? '#82b2f5',\n color: this.options?.colHighlightColor ?? '#FFF'\n });\n\n this.table.registerCustomCellStyle('row-highlight', {\n bgColor: this.options?.rowHighlightBGColor ?? '#82b2f5',\n color: this.options?.rowHighlightColor ?? '#FFF'\n });\n }\n\n bindEvent() {\n this.table.on('selected_cell', () => {\n this.updateHighlight();\n });\n\n this.table.on('selected_clear', () => {\n this.clearHighlight();\n });\n\n this.table.on('mousemove_table', () => {\n if (this.table.stateManager.select.selecting) {\n this.updateHighlight();\n }\n });\n }\n\n clearHighlight() {\n this.colHeaderRange && this.table.arrangeCustomCellStyle({ range: this.colHeaderRange }, undefined, true);\n this.rowHeaderRange && this.table.arrangeCustomCellStyle({ range: this.rowHeaderRange }, undefined, true);\n\n // clear range\n this.colHeaderRange = undefined;\n this.rowHeaderRange = undefined;\n }\n\n updateHighlight() {\n if (this.options?.colHighlight === false && this.options?.rowHighlight === false) {\n return;\n }\n const selectRanges = this.table.getSelectedCellRanges();\n if (selectRanges.length === 0) {\n this.clearHighlight();\n return;\n }\n\n const selectRange = selectRanges[0];\n const rowSelectRange = [selectRange.start.row, selectRange.end.row];\n rowSelectRange.sort((a, b) => a - b); // sort\n const colSelectRange = [selectRange.start.col, selectRange.end.col];\n colSelectRange.sort((a, b) => a - b); // sort\n\n let colHeaderRange: CellRange;\n let rowHeaderRange: CellRange;\n if (this.table.isPivotTable()) {\n colHeaderRange = {\n start: {\n col: colSelectRange[0],\n row: 0\n },\n end: {\n col: colSelectRange[1],\n row: this.table.columnHeaderLevelCount - 1\n }\n };\n rowHeaderRange = {\n start: {\n col: 0,\n row: rowSelectRange[0]\n },\n end: {\n col: this.table.rowHeaderLevelCount - 1,\n row: rowSelectRange[1]\n }\n };\n } else if (this.table.internalProps.transpose) {\n rowHeaderRange = {\n start: {\n col: 0,\n row: rowSelectRange[0]\n },\n end: {\n col: this.table.rowHeaderLevelCount - 1,\n row: rowSelectRange[1]\n }\n };\n } else {\n colHeaderRange = {\n start: {\n col: colSelectRange[0],\n row: 0\n },\n end: {\n col: colSelectRange[1],\n row: this.table.columnHeaderLevelCount - 1\n }\n };\n if (this.table.internalProps.rowSeriesNumber) {\n rowHeaderRange = {\n start: {\n col: 0,\n row: rowSelectRange[0]\n },\n end: {\n col: 0,\n row: rowSelectRange[1]\n }\n };\n }\n }\n\n if (this.options?.colHighlight !== false && !isSameRange(this.colHeaderRange, colHeaderRange)) {\n this.colHeaderRange && this.table.arrangeCustomCellStyle({ range: this.colHeaderRange }, undefined);\n colHeaderRange && this.table.arrangeCustomCellStyle({ range: colHeaderRange }, 'col-highlight');\n this.colHeaderRange = colHeaderRange;\n }\n\n if (this.options?.rowHighlight !== false && !isSameRange(this.rowHeaderRange, rowHeaderRange)) {\n this.rowHeaderRange && this.table.arrangeCustomCellStyle({ range: this.rowHeaderRange }, undefined);\n rowHeaderRange && this.table.arrangeCustomCellStyle({ range: rowHeaderRange }, 'row-highlight');\n this.rowHeaderRange = rowHeaderRange;\n }\n }\n}\n\nfunction isSameRange(a: CellRange | undefined, b: CellRange | undefined) {\n if (a === undefined && b === undefined) {\n return true;\n }\n\n if (a === undefined || b === undefined) {\n return false;\n }\n\n return (\n a.start.col === b.start.col && a.start.row === b.start.row && a.end.col === b.end.col && a.end.row === b.end.row\n );\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CellRange } from '@visactor/vtable/es/ts-types';
|
|
2
2
|
import type { BaseTableAPI, plugins } from '@visactor/vtable';
|
|
3
|
-
interface IHighlightHeaderWhenSelectCellPluginOptions {
|
|
3
|
+
export interface IHighlightHeaderWhenSelectCellPluginOptions {
|
|
4
4
|
id?: string;
|
|
5
5
|
rowHighlight?: boolean;
|
|
6
6
|
colHighlight?: boolean;
|
|
@@ -25,4 +25,3 @@ export declare class HighlightHeaderWhenSelectCellPlugin implements plugins.IVTa
|
|
|
25
25
|
update(): void;
|
|
26
26
|
release(): void;
|
|
27
27
|
}
|
|
28
|
-
export {};
|
|
@@ -3,7 +3,7 @@ import { TABLE_EVENT_TYPE } from "@visactor/vtable";
|
|
|
3
3
|
export class HighlightHeaderWhenSelectCellPlugin {
|
|
4
4
|
constructor(pluginOptions) {
|
|
5
5
|
var _a;
|
|
6
|
-
this.id =
|
|
6
|
+
this.id = "highlight-header-when-select-cell", this.name = "Highlight Header When Select Cell",
|
|
7
7
|
this.runTime = [ TABLE_EVENT_TYPE.INITIALIZED, TABLE_EVENT_TYPE.SELECTED_CLEAR, TABLE_EVENT_TYPE.SELECTED_CELL, TABLE_EVENT_TYPE.MOUSEMOVE_TABLE ],
|
|
8
8
|
this.colHeaderRanges = [], this.rowHeaderRanges = [], this.id = null !== (_a = pluginOptions.id) && void 0 !== _a ? _a : this.id,
|
|
9
9
|
this.pluginOptions = pluginOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["highlight-header-when-select-cell.ts"],"names":[],"mappings":"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","file":"highlight-header-when-select-cell.js","sourcesContent":["import type { CellRange } from '@visactor/vtable/es/ts-types';\nimport { TABLE_EVENT_TYPE } from '@visactor/vtable';\nimport type { BaseTableAPI, plugins } from '@visactor/vtable';\ninterface IHighlightHeaderWhenSelectCellPluginOptions {\n id?: string;\n rowHighlight?: boolean;\n colHighlight?: boolean;\n colHighlightBGColor?: string;\n colHighlightColor?: string;\n rowHighlightBGColor?: string;\n rowHighlightColor?: string;\n}\n\nexport class HighlightHeaderWhenSelectCellPlugin implements plugins.IVTablePlugin {\n id = `highlight-header-when-select-cell-${Date.now()}`;\n name = 'Highlight Header When Select Cell';\n runTime = [\n TABLE_EVENT_TYPE.INITIALIZED,\n TABLE_EVENT_TYPE.SELECTED_CLEAR,\n TABLE_EVENT_TYPE.SELECTED_CELL,\n TABLE_EVENT_TYPE.MOUSEMOVE_TABLE\n ];\n table: BaseTableAPI;\n pluginOptions: IHighlightHeaderWhenSelectCellPluginOptions;\n colHeaderRanges: CellRange[] = [];\n rowHeaderRanges: CellRange[] = [];\n constructor(pluginOptions: IHighlightHeaderWhenSelectCellPluginOptions) {\n this.id = pluginOptions.id ?? this.id;\n this.pluginOptions = pluginOptions;\n }\n run(...args: any[]) {\n // const eventArgs = args[0];\n const runTime = args[1];\n const table: BaseTableAPI = args[2];\n this.table = table;\n if (runTime === TABLE_EVENT_TYPE.SELECTED_CLEAR) {\n this.clearHighlight();\n } else if (runTime === TABLE_EVENT_TYPE.SELECTED_CELL) {\n this.updateHighlight();\n } else if (runTime === TABLE_EVENT_TYPE.MOUSEMOVE_TABLE) {\n this.updateHighlight();\n } else if (runTime === TABLE_EVENT_TYPE.INITIALIZED) {\n this.registerStyle();\n }\n }\n\n registerStyle() {\n this.table.registerCustomCellStyle('col-highlight', {\n bgColor: this.pluginOptions?.colHighlightBGColor ?? '#82b2f5',\n color: this.pluginOptions?.colHighlightColor ?? '#FFF'\n });\n\n this.table.registerCustomCellStyle('row-highlight', {\n bgColor: this.pluginOptions?.rowHighlightBGColor ?? '#82b2f5',\n color: this.pluginOptions?.rowHighlightColor ?? 'yellow'\n });\n }\n\n clearHighlight() {\n if (this.colHeaderRanges) {\n this.colHeaderRanges.forEach(range => {\n this.table.arrangeCustomCellStyle({ range }, undefined);\n });\n }\n if (this.rowHeaderRanges) {\n this.rowHeaderRanges.forEach(range => {\n this.table.arrangeCustomCellStyle({ range }, undefined);\n });\n }\n // clear range\n this.colHeaderRanges = [];\n this.rowHeaderRanges = [];\n }\n\n updateHighlight() {\n if (this.pluginOptions?.colHighlight === false && this.pluginOptions?.rowHighlight === false) {\n return;\n }\n const selectRanges = this.table.getSelectedCellRanges();\n if (selectRanges.length < 2) {\n this.clearHighlight();\n // return;\n }\n for (let i = 0; i < selectRanges.length; i++) {\n const selectRange = selectRanges[i];\n const rowSelectRange = [selectRange.start.row, selectRange.end.row];\n rowSelectRange.sort((a, b) => a - b); // sort\n const colSelectRange = [selectRange.start.col, selectRange.end.col];\n colSelectRange.sort((a, b) => a - b); // sort\n\n let colHeaderRange: CellRange;\n let rowHeaderRange: CellRange;\n if (this.table.isPivotTable()) {\n colHeaderRange = {\n start: {\n col: colSelectRange[0],\n row: 0\n },\n end: {\n col: colSelectRange[1],\n row: this.table.columnHeaderLevelCount - 1\n }\n };\n rowHeaderRange = {\n start: {\n col: 0,\n row: rowSelectRange[0]\n },\n end: {\n col: this.table.rowHeaderLevelCount - 1,\n row: rowSelectRange[1]\n }\n };\n } else if (this.table.internalProps.transpose) {\n rowHeaderRange = {\n start: {\n col: 0,\n row: rowSelectRange[0]\n },\n end: {\n col: this.table.rowHeaderLevelCount - 1,\n row: rowSelectRange[1]\n }\n };\n } else {\n colHeaderRange = {\n start: {\n col: colSelectRange[0],\n row: 0\n },\n end: {\n col: colSelectRange[1],\n row: this.table.columnHeaderLevelCount - 1\n }\n };\n if (this.table.internalProps.rowSeriesNumber) {\n rowHeaderRange = {\n start: {\n col: 0,\n row: rowSelectRange[0]\n },\n end: {\n col: 0,\n row: rowSelectRange[1]\n }\n };\n }\n }\n\n if (\n this.pluginOptions?.colHighlight !== false &&\n !this.colHeaderRanges.find(range => isSameRange(range, colHeaderRange))\n ) {\n // this.colHeaderRanges && this.table.arrangeCustomCellStyle({ range: this.colHeaderRanges }, undefined);\n colHeaderRange && this.table.arrangeCustomCellStyle({ range: colHeaderRange }, 'col-highlight');\n this.colHeaderRanges.push(colHeaderRange);\n }\n\n if (\n this.pluginOptions?.rowHighlight !== false &&\n !this.rowHeaderRanges.find(range => isSameRange(range, rowHeaderRange))\n ) {\n // this.rowHeaderRanges && this.table.arrangeCustomCellStyle({ range: this.rowHeaderRanges }, undefined);\n rowHeaderRange && this.table.arrangeCustomCellStyle({ range: rowHeaderRange }, 'row-highlight');\n this.rowHeaderRanges.push(rowHeaderRange);\n }\n }\n }\n update() {\n this.registerStyle();\n this.updateHighlight();\n }\n release() {\n this.rowHeaderRanges = [];\n this.colHeaderRanges = [];\n }\n}\n\nfunction isSameRange(a: CellRange | undefined, b: CellRange | undefined) {\n if (a === undefined && b === undefined) {\n return true;\n }\n\n if (a === undefined || b === undefined) {\n return false;\n }\n\n return (\n a.start.col === b.start.col && a.start.row === b.start.row && a.end.col === b.end.col && a.end.row === b.end.row\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/highlight-header-when-select-cell.ts"],"names":[],"mappings":"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","file":"highlight-header-when-select-cell.js","sourcesContent":["import type { CellRange } from '@visactor/vtable/es/ts-types';\nimport { TABLE_EVENT_TYPE } from '@visactor/vtable';\nimport type { BaseTableAPI, plugins } from '@visactor/vtable';\nexport interface IHighlightHeaderWhenSelectCellPluginOptions {\n id?: string;\n rowHighlight?: boolean;\n colHighlight?: boolean;\n colHighlightBGColor?: string;\n colHighlightColor?: string;\n rowHighlightBGColor?: string;\n rowHighlightColor?: string;\n}\n\nexport class HighlightHeaderWhenSelectCellPlugin implements plugins.IVTablePlugin {\n id = `highlight-header-when-select-cell`;\n name = 'Highlight Header When Select Cell';\n runTime = [\n TABLE_EVENT_TYPE.INITIALIZED,\n TABLE_EVENT_TYPE.SELECTED_CLEAR,\n TABLE_EVENT_TYPE.SELECTED_CELL,\n TABLE_EVENT_TYPE.MOUSEMOVE_TABLE\n ];\n table: BaseTableAPI;\n pluginOptions: IHighlightHeaderWhenSelectCellPluginOptions;\n colHeaderRanges: CellRange[] = [];\n rowHeaderRanges: CellRange[] = [];\n constructor(pluginOptions: IHighlightHeaderWhenSelectCellPluginOptions) {\n this.id = pluginOptions.id ?? this.id;\n this.pluginOptions = pluginOptions;\n }\n run(...args: any[]) {\n // const eventArgs = args[0];\n const runTime = args[1];\n const table: BaseTableAPI = args[2];\n this.table = table;\n if (runTime === TABLE_EVENT_TYPE.SELECTED_CLEAR) {\n this.clearHighlight();\n } else if (runTime === TABLE_EVENT_TYPE.SELECTED_CELL) {\n this.updateHighlight();\n } else if (runTime === TABLE_EVENT_TYPE.MOUSEMOVE_TABLE) {\n this.updateHighlight();\n } else if (runTime === TABLE_EVENT_TYPE.INITIALIZED) {\n this.registerStyle();\n }\n }\n\n registerStyle() {\n this.table.registerCustomCellStyle('col-highlight', {\n bgColor: this.pluginOptions?.colHighlightBGColor ?? '#82b2f5',\n color: this.pluginOptions?.colHighlightColor ?? '#FFF'\n });\n\n this.table.registerCustomCellStyle('row-highlight', {\n bgColor: this.pluginOptions?.rowHighlightBGColor ?? '#82b2f5',\n color: this.pluginOptions?.rowHighlightColor ?? 'yellow'\n });\n }\n\n clearHighlight() {\n if (this.colHeaderRanges) {\n this.colHeaderRanges.forEach(range => {\n this.table.arrangeCustomCellStyle({ range }, undefined);\n });\n }\n if (this.rowHeaderRanges) {\n this.rowHeaderRanges.forEach(range => {\n this.table.arrangeCustomCellStyle({ range }, undefined);\n });\n }\n // clear range\n this.colHeaderRanges = [];\n this.rowHeaderRanges = [];\n }\n\n updateHighlight() {\n if (this.pluginOptions?.colHighlight === false && this.pluginOptions?.rowHighlight === false) {\n return;\n }\n const selectRanges = this.table.getSelectedCellRanges();\n if (selectRanges.length < 2) {\n this.clearHighlight();\n // return;\n }\n for (let i = 0; i < selectRanges.length; i++) {\n const selectRange = selectRanges[i];\n const rowSelectRange = [selectRange.start.row, selectRange.end.row];\n rowSelectRange.sort((a, b) => a - b); // sort\n const colSelectRange = [selectRange.start.col, selectRange.end.col];\n colSelectRange.sort((a, b) => a - b); // sort\n\n let colHeaderRange: CellRange;\n let rowHeaderRange: CellRange;\n if (this.table.isPivotTable()) {\n colHeaderRange = {\n start: {\n col: colSelectRange[0],\n row: 0\n },\n end: {\n col: colSelectRange[1],\n row: this.table.columnHeaderLevelCount - 1\n }\n };\n rowHeaderRange = {\n start: {\n col: 0,\n row: rowSelectRange[0]\n },\n end: {\n col: this.table.rowHeaderLevelCount - 1,\n row: rowSelectRange[1]\n }\n };\n } else if (this.table.internalProps.transpose) {\n rowHeaderRange = {\n start: {\n col: 0,\n row: rowSelectRange[0]\n },\n end: {\n col: this.table.rowHeaderLevelCount - 1,\n row: rowSelectRange[1]\n }\n };\n } else {\n colHeaderRange = {\n start: {\n col: colSelectRange[0],\n row: 0\n },\n end: {\n col: colSelectRange[1],\n row: this.table.columnHeaderLevelCount - 1\n }\n };\n if (this.table.internalProps.rowSeriesNumber) {\n rowHeaderRange = {\n start: {\n col: 0,\n row: rowSelectRange[0]\n },\n end: {\n col: 0,\n row: rowSelectRange[1]\n }\n };\n }\n }\n\n if (\n this.pluginOptions?.colHighlight !== false &&\n !this.colHeaderRanges.find(range => isSameRange(range, colHeaderRange))\n ) {\n // this.colHeaderRanges && this.table.arrangeCustomCellStyle({ range: this.colHeaderRanges }, undefined);\n colHeaderRange && this.table.arrangeCustomCellStyle({ range: colHeaderRange }, 'col-highlight');\n this.colHeaderRanges.push(colHeaderRange);\n }\n\n if (\n this.pluginOptions?.rowHighlight !== false &&\n !this.rowHeaderRanges.find(range => isSameRange(range, rowHeaderRange))\n ) {\n // this.rowHeaderRanges && this.table.arrangeCustomCellStyle({ range: this.rowHeaderRanges }, undefined);\n rowHeaderRange && this.table.arrangeCustomCellStyle({ range: rowHeaderRange }, 'row-highlight');\n this.rowHeaderRanges.push(rowHeaderRange);\n }\n }\n }\n update() {\n this.registerStyle();\n this.updateHighlight();\n }\n release() {\n this.rowHeaderRanges = [];\n this.colHeaderRanges = [];\n }\n}\n\nfunction isSameRange(a: CellRange | undefined, b: CellRange | undefined) {\n if (a === undefined && b === undefined) {\n return true;\n }\n\n if (a === undefined || b === undefined) {\n return false;\n }\n\n return (\n a.start.col === b.start.col && a.start.row === b.start.row && a.end.col === b.end.col && a.end.row === b.end.row\n );\n}\n"]}
|
package/es/index.d.ts
CHANGED
|
@@ -14,4 +14,8 @@ export * from './gantt-export-image';
|
|
|
14
14
|
export * from './paste-add-row-column';
|
|
15
15
|
export * from './wps-fill-handle';
|
|
16
16
|
export * from './excel-import';
|
|
17
|
+
export * from './table-series-number';
|
|
18
|
+
export * from './context-menu';
|
|
19
|
+
export * from './filter';
|
|
17
20
|
export * from './table-export';
|
|
21
|
+
export * from './auto-fill';
|
package/es/index.js
CHANGED
|
@@ -30,5 +30,13 @@ export * from "./wps-fill-handle";
|
|
|
30
30
|
|
|
31
31
|
export * from "./excel-import";
|
|
32
32
|
|
|
33
|
+
export * from "./table-series-number";
|
|
34
|
+
|
|
35
|
+
export * from "./context-menu";
|
|
36
|
+
|
|
37
|
+
export * from "./filter";
|
|
38
|
+
|
|
33
39
|
export * from "./table-export";
|
|
40
|
+
|
|
41
|
+
export * from "./auto-fill";
|
|
34
42
|
//# sourceMappingURL=index.js.map
|
package/es/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC","file":"index.js","sourcesContent":["export * from './carousel-animation';\nexport * from './invert-highlight';\nexport * from './header-highlight';\nexport * from './add-row-column';\nexport * from './column-series';\nexport * from './row-series';\nexport * from './highlight-header-when-select-cell';\nexport * from './excel-edit-cell-keyboard';\nexport * from './types';\nexport * from './focus-highlight';\nexport * from './table-carousel-animation';\nexport * from './rotate-table';\nexport * from './gantt-export-image';\nexport * from './paste-add-row-column';\nexport * from './wps-fill-handle';\nexport * from './excel-import';\nexport * from './table-export';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC","file":"index.js","sourcesContent":["export * from './carousel-animation';\nexport * from './invert-highlight';\nexport * from './header-highlight';\nexport * from './add-row-column';\nexport * from './column-series';\nexport * from './row-series';\nexport * from './highlight-header-when-select-cell';\nexport * from './excel-edit-cell-keyboard';\nexport * from './types';\nexport * from './focus-highlight';\nexport * from './table-carousel-animation';\nexport * from './rotate-table';\nexport * from './gantt-export-image';\nexport * from './paste-add-row-column';\nexport * from './wps-fill-handle';\nexport * from './excel-import';\nexport * from './table-series-number';\nexport * from './context-menu';\nexport * from './filter';\nexport * from './table-export';\nexport * from './auto-fill';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["invert-highlight.ts"],"names":[],"mappings":"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","file":"invert-highlight.js","sourcesContent":["import type { INode } from '@visactor/vtable/es/vrender';\nimport { createRect } from '@visactor/vtable/es/vrender';\nimport type { Group } from '@visactor/vtable/es/scenegraph/graphic/group';\nimport { isSameRange } from '@visactor/vtable/es/tools/cell-range';\nimport type { CellRange } from '@visactor/vtable/es/ts-types';\nimport type { BaseTableAPI } from '@visactor/vtable/es/ts-types/base-table';\nimport { cellInRange } from '@visactor/vtable/es/tools/helper';\n\nexport interface InvertHighlightPluginOptions {\n fill?: string;\n opacity?: number;\n}\n\n/**\n * @deprecated 请使用 FocusHighlightPlugin 插件\n */\nexport class InvertHighlightPlugin {\n table: BaseTableAPI;\n range?: CellRange;\n _fill: string;\n _opacity: number;\n\n constructor(table: BaseTableAPI, options?: InvertHighlightPluginOptions) {\n this.table = table;\n\n this._fill = options?.fill ?? '#000';\n this._opacity = options?.opacity ?? 0.5;\n }\n\n setInvertHighlightRange(range?: CellRange) {\n if (isSameRange(this.range, range)) {\n return;\n }\n\n this.range = range;\n if (!range) {\n // reset highlight\n this.deleteAllCellGroupShadow();\n } else {\n // update highlight\n this.updateCellGroupShadow();\n }\n\n this.table.scenegraph.updateNextFrame();\n }\n\n deleteAllCellGroupShadow() {\n if (!this.table.isPivotTable()) {\n this.updateCellGroupShadowInContainer(this.table.scenegraph.rowHeaderGroup);\n this.updateCellGroupShadowInContainer(this.table.scenegraph.leftBottomCornerGroup);\n }\n this.updateCellGroupShadowInContainer(this.table.scenegraph.bodyGroup);\n this.updateCellGroupShadowInContainer(this.table.scenegraph.rightFrozenGroup);\n this.updateCellGroupShadowInContainer(this.table.scenegraph.bottomFrozenGroup);\n this.updateCellGroupShadowInContainer(this.table.scenegraph.rightBottomCornerGroup);\n }\n\n updateCellGroupShadow() {\n if (!this.table.isPivotTable()) {\n this.updateCellGroupShadowInContainer(this.table.scenegraph.rowHeaderGroup, this.range);\n this.updateCellGroupShadowInContainer(this.table.scenegraph.leftBottomCornerGroup, this.range);\n }\n this.updateCellGroupShadowInContainer(this.table.scenegraph.bodyGroup, this.range);\n this.updateCellGroupShadowInContainer(this.table.scenegraph.rightFrozenGroup, this.range);\n this.updateCellGroupShadowInContainer(this.table.scenegraph.bottomFrozenGroup), this.range;\n this.updateCellGroupShadowInContainer(this.table.scenegraph.rightBottomCornerGroup, this.range);\n }\n updateCellGroupShadowInContainer(container: Group, range?: CellRange) {\n container.forEachChildrenSkipChild((item: INode) => {\n const column = item as unknown as Group;\n if (column.role === 'column') {\n column.forEachChildrenSkipChild((item: INode) => {\n const cell = item as unknown as Group;\n if (cell.role !== 'cell') {\n return;\n }\n cell.attachShadow(cell.shadowRoot);\n const shadowGroup = cell.shadowRoot;\n if (!range) {\n // no highlight\n shadowGroup.removeAllChild();\n } else if (cellInRange(range, cell.col, cell.row)) {\n // inside highlight\n shadowGroup.removeAllChild();\n } else if (!shadowGroup.firstChild) {\n // outside highlight\n const shadowRect = createRect({\n x: 0,\n y: 0,\n width: cell.attribute.width,\n height: cell.attribute.height,\n fill: this._fill,\n opacity: this._opacity\n });\n shadowRect.name = 'shadow-rect';\n shadowGroup.appendChild(shadowRect);\n }\n });\n }\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/invert-highlight.ts"],"names":[],"mappings":"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","file":"invert-highlight.js","sourcesContent":["import type { INode } from '@visactor/vtable/es/vrender';\nimport { createRect } from '@visactor/vtable/es/vrender';\nimport type { Group } from '@visactor/vtable/es/scenegraph/graphic/group';\nimport { isSameRange } from '@visactor/vtable/es/tools/cell-range';\nimport type { CellRange } from '@visactor/vtable/es/ts-types';\nimport type { BaseTableAPI } from '@visactor/vtable/es/ts-types/base-table';\nimport { cellInRange } from '@visactor/vtable/es/tools/helper';\n\nexport interface InvertHighlightPluginOptions {\n fill?: string;\n opacity?: number;\n}\n\n/**\n * @deprecated 请使用 FocusHighlightPlugin 插件\n */\nexport class InvertHighlightPlugin {\n table: BaseTableAPI;\n range?: CellRange;\n _fill: string;\n _opacity: number;\n\n constructor(table: BaseTableAPI, options?: InvertHighlightPluginOptions) {\n this.table = table;\n\n this._fill = options?.fill ?? '#000';\n this._opacity = options?.opacity ?? 0.5;\n }\n\n setInvertHighlightRange(range?: CellRange) {\n if (isSameRange(this.range, range)) {\n return;\n }\n\n this.range = range;\n if (!range) {\n // reset highlight\n this.deleteAllCellGroupShadow();\n } else {\n // update highlight\n this.updateCellGroupShadow();\n }\n\n this.table.scenegraph.updateNextFrame();\n }\n\n deleteAllCellGroupShadow() {\n if (!this.table.isPivotTable()) {\n this.updateCellGroupShadowInContainer(this.table.scenegraph.rowHeaderGroup);\n this.updateCellGroupShadowInContainer(this.table.scenegraph.leftBottomCornerGroup);\n }\n this.updateCellGroupShadowInContainer(this.table.scenegraph.bodyGroup);\n this.updateCellGroupShadowInContainer(this.table.scenegraph.rightFrozenGroup);\n this.updateCellGroupShadowInContainer(this.table.scenegraph.bottomFrozenGroup);\n this.updateCellGroupShadowInContainer(this.table.scenegraph.rightBottomCornerGroup);\n }\n\n updateCellGroupShadow() {\n if (!this.table.isPivotTable()) {\n this.updateCellGroupShadowInContainer(this.table.scenegraph.rowHeaderGroup, this.range);\n this.updateCellGroupShadowInContainer(this.table.scenegraph.leftBottomCornerGroup, this.range);\n }\n this.updateCellGroupShadowInContainer(this.table.scenegraph.bodyGroup, this.range);\n this.updateCellGroupShadowInContainer(this.table.scenegraph.rightFrozenGroup, this.range);\n this.updateCellGroupShadowInContainer(this.table.scenegraph.bottomFrozenGroup), this.range;\n this.updateCellGroupShadowInContainer(this.table.scenegraph.rightBottomCornerGroup, this.range);\n }\n updateCellGroupShadowInContainer(container: Group, range?: CellRange) {\n container.forEachChildrenSkipChild((item: INode) => {\n const column = item as unknown as Group;\n if (column.role === 'column') {\n column.forEachChildrenSkipChild((item: INode) => {\n const cell = item as unknown as Group;\n if (cell.role !== 'cell') {\n return;\n }\n cell.attachShadow(cell.shadowRoot);\n const shadowGroup = cell.shadowRoot;\n if (!range) {\n // no highlight\n shadowGroup.removeAllChild();\n } else if (cellInRange(range, cell.col, cell.row)) {\n // inside highlight\n shadowGroup.removeAllChild();\n } else if (!shadowGroup.firstChild) {\n // outside highlight\n const shadowRect = createRect({\n x: 0,\n y: 0,\n width: cell.attribute.width,\n height: cell.attribute.height,\n fill: this._fill,\n opacity: this._opacity\n });\n shadowRect.name = 'shadow-rect';\n shadowGroup.appendChild(shadowRect);\n }\n });\n }\n });\n }\n}\n"]}
|
|
@@ -2,8 +2,9 @@ import * as VTable from "@visactor/vtable";
|
|
|
2
2
|
|
|
3
3
|
export class PasteAddRowColumnPlugin {
|
|
4
4
|
constructor(pluginOptions) {
|
|
5
|
-
|
|
6
|
-
this.
|
|
5
|
+
var _a;
|
|
6
|
+
this.id = "paste-add-row-column", this.name = "Paste Add row", this.runTime = [ VTable.TABLE_EVENT_TYPE.INITIALIZED, VTable.TABLE_EVENT_TYPE.PASTED_DATA ],
|
|
7
|
+
this.pluginOptions = pluginOptions, this.id = null !== (_a = null == pluginOptions ? void 0 : pluginOptions.id) && void 0 !== _a ? _a : this.id;
|
|
7
8
|
}
|
|
8
9
|
run(...args) {
|
|
9
10
|
const runtime = args[1], table = args[2];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["paste-add-row-column.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/paste-add-row-column.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAO3C,MAAM,OAAO,uBAAuB;IAOlC,YAAY,aAA+C;;QAN3D,OAAE,GAAG,sBAAsB,CAAC;QAC5B,SAAI,GAAG,eAAe,CAAC;QACvB,YAAO,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAKnF,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,EAAE,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,EAAE,mCAAI,IAAI,CAAC,EAAE,CAAC;IACzC,CAAC;IACD,GAAG,CAAC,GAAG,IAAW;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,KAAK,GAAwB,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,KAAyB,CAAC;QACvC,IAAI,OAAO,KAAK,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE;YACnD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;IACH,CAAC;IAED,WAAW;;QACT,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAErC,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC;QACxC,MAAM,cAAc,GAAG,CAAA,MAAA,SAAS,CAAC,CAAC,CAAC,0CAAE,MAAM,KAAI,CAAC,CAAC;QAEjD,MAAM,UAAU,GAAG,GAAG,GAAG,cAAc,GAAG,QAAQ,CAAC;QACnD,MAAM,UAAU,GAAG,GAAG,GAAG,cAAc,GAAG,QAAQ,CAAC;QAGnD,IAAI,UAAU,GAAG,CAAC,EAAE;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;gBACnC,IAAI,MAAA,IAAI,CAAC,aAAa,0CAAE,cAAc,EAAE;oBACtC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC7D;qBAAM;oBACL,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;iBAC1B;aACF;SACF;QAGD,IAAI,UAAU,GAAG,CAAC,EAAE;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;gBACnC,MAAM,WAAW,GAAG,QAAQ,GAAG,CAAC,CAAC;gBACjC,IAAI,MAAA,IAAI,CAAC,aAAa,0CAAE,iBAAiB,EAAE;oBACzC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC/D;qBAAM;oBACL,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,SAAS,WAAW,EAAE;wBAC7B,KAAK,EAAE,cAAc,WAAW,EAAE;wBAClC,KAAK,EAAE,GAAG;qBACX,CAAC,CAAC;iBACJ;aACF;SACF;QAGD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,OAAO;QACL,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;CACF","file":"paste-add-row-column.js","sourcesContent":["import * as VTable from '@visactor/vtable';\nexport type IPasteAddRowColumnPluginOptions = {\n id?: string;\n addRowCallback?: (addedRow: number, table: VTable.ListTable) => void;\n addColumnCallback?: (addedCount: number, table: VTable.ListTable) => void;\n};\n\nexport class PasteAddRowColumnPlugin implements VTable.plugins.IVTablePlugin {\n id = `paste-add-row-column`;\n name = 'Paste Add row';\n runTime = [VTable.TABLE_EVENT_TYPE.INITIALIZED, VTable.TABLE_EVENT_TYPE.PASTED_DATA];\n table: VTable.ListTable;\n pluginOptions: IPasteAddRowColumnPluginOptions;\n pastedData: any;\n constructor(pluginOptions?: IPasteAddRowColumnPluginOptions) {\n this.pluginOptions = pluginOptions;\n this.id = pluginOptions?.id ?? this.id;\n }\n run(...args: any[]) {\n const runtime = args[1];\n const table: VTable.BaseTableAPI = args[2];\n this.table = table as VTable.ListTable;\n if (runtime === VTable.TABLE_EVENT_TYPE.PASTED_DATA) {\n this.pastedData = args[0];\n this.handlePaste();\n }\n }\n\n handlePaste() {\n const { pasteData, row, col } = this.pastedData;\n const rowCount = this.table.rowCount;\n const colCount = this.table.colCount;\n\n const pastedRowCount = pasteData.length;\n const pastedColCount = pasteData[0]?.length || 0;\n\n const rowsNeeded = row + pastedRowCount - rowCount;\n const colsNeeded = col + pastedColCount - colCount;\n\n // 扩展行\n if (rowsNeeded > 0) {\n for (let i = 0; i < rowsNeeded; i++) {\n if (this.pluginOptions?.addRowCallback) {\n this.pluginOptions.addRowCallback(rowCount + i, this.table);\n } else {\n this.table.addRecord([]);\n }\n }\n }\n\n // 扩展列\n if (colsNeeded > 0) {\n for (let i = 0; i < colsNeeded; i++) {\n const newColIndex = colCount + i;\n if (this.pluginOptions?.addColumnCallback) {\n this.pluginOptions.addColumnCallback(newColIndex, this.table);\n } else {\n this.table.addColumn({\n field: `field_${newColIndex}`,\n title: `New Column ${newColIndex}`,\n width: 100\n });\n }\n }\n }\n\n // 最后统一写入数据\n this.table.changeCellValues(col, row, pasteData, true);\n }\n\n release() {\n this.table.internalProps.handler.clear();\n }\n}\n"]}
|
package/es/rotate-table.js
CHANGED
|
@@ -5,7 +5,7 @@ import * as VTable from "@visactor/vtable";
|
|
|
5
5
|
export class RotateTablePlugin {
|
|
6
6
|
constructor(pluginOptions) {
|
|
7
7
|
var _a;
|
|
8
|
-
this.id =
|
|
8
|
+
this.id = "rotate-table", this.name = "Rotate Table", this.runTime = [ VTable.TABLE_EVENT_TYPE.INITIALIZED ],
|
|
9
9
|
this.id = null !== (_a = null == pluginOptions ? void 0 : pluginOptions.id) && void 0 !== _a ? _a : this.id;
|
|
10
10
|
}
|
|
11
11
|
run(...args) {
|
package/es/rotate-table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["rotate-table.ts"],"names":[],"mappings":"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","file":"rotate-table.js","sourcesContent":["import {\n matrixAllocate,\n transformPointForCanvas,\n mapToCanvasPointForCanvas,\n registerGlobalEventTransformer,\n registerWindowEventTransformer,\n vglobal\n} from '@visactor/vtable/es/vrender';\nimport type { BaseTable } from '@visactor/vtable/src/core/BaseTable';\nimport * as VTable from '@visactor/vtable';\nimport type { TableEvents } from '@visactor/vtable/src/core/TABLE_EVENT_TYPE';\nimport type { EventArg } from './types';\nimport type { Matrix } from '@visactor/vutils';\nexport type IRotateTablePluginOptions = {\n id?: string;\n // // 旋转角度\n // rotate?: number;\n};\n/**\n * 旋转表格插件。\n * 业务层旋转功能没有使用收系统接口的话,用的transform:'rotate(90deg)'的设置来达到旋转的目的。vtable及vrender都没有进行坐标处理,这样就会导致交互错乱。\n * 所以需要进行坐标转换,将旋转后的坐标转换后作为VRender及VTable逻辑中用到的坐标。\n * 这里使用transform:'rotate(90deg)'的设置来达到旋转的目的。 其他角度应该也是可以实现的,请自行扩展这个插件并兼容\n */\nexport class RotateTablePlugin implements VTable.plugins.IVTablePlugin {\n id = `rotate-table-${Date.now()}`;\n name = 'Rotate Table';\n runTime = [VTable.TABLE_EVENT_TYPE.INITIALIZED];\n table: VTable.ListTable;\n matrix: Matrix;\n vglobal_mapToCanvasPoint: any; // 保存vrender中vglobal的mapToCanvasPoint原方法\n // pluginOptions: IRotateTablePluginOptions;\n constructor(pluginOptions?: IRotateTablePluginOptions) {\n this.id = pluginOptions?.id ?? this.id;\n // this.pluginOptions = pluginOptions;\n }\n run(...args: [EventArg, TableEvents[keyof TableEvents] | TableEvents[keyof TableEvents][], VTable.BaseTableAPI]) {\n const table: VTable.BaseTableAPI = args[2];\n this.table = table as VTable.ListTable;\n //将函数rotate90WithTransform绑定到table实例上,一般情况下插件不需要将api绑定到table实例上,可以直接自身实现某个api功能\n this.table.rotate90WithTransform = rotate90WithTransform.bind(this.table);\n this.table.cancelTransform = cancelTransform.bind(this.table);\n }\n\n release() {\n // 移除绑定的事件\n }\n}\n\n/**\n * 业务层旋转功能没有使用收系统接口的话,用的transform:'rotate(90deg)'的设置来达到旋转的目的。vtable及vrender都没有进行坐标处理,这样就会导致交互错乱。\n * 所以需要进行坐标转换,将旋转后的坐标转换后作为VRender及VTable逻辑中用到的坐标。\n */\nexport function rotate90WithTransform(this: BaseTable, rotateDom: HTMLElement) {\n this.rotateDegree = 90;\n const rotateCenter =\n rotateDom.clientWidth < rotateDom.clientHeight\n ? Math.max(rotateDom.clientWidth, rotateDom.clientHeight) / 2\n : Math.min(rotateDom.clientWidth, rotateDom.clientHeight) / 2;\n const domRect = this.getElement().getBoundingClientRect();\n const x1 = domRect.left;\n const y1 = domRect.top;\n const x2 = domRect.right;\n const y2 = domRect.bottom;\n\n rotateDom.style.transform = 'rotate(90deg)';\n rotateDom.style.transformOrigin = `${rotateCenter}px ${rotateCenter}px`;\n const getRect = () => {\n return {\n x1,\n y1,\n x2,\n y2\n };\n };\n // 获取视口尺寸的通用方法\n const getViewportDimensions = () => {\n // 浏览器环境\n if (typeof window !== 'undefined') {\n return {\n width: window.innerWidth || document.documentElement.clientWidth,\n height: window.innerHeight || document.documentElement.clientHeight\n };\n }\n // 如果有 vglobal 上的方法可以使用\n if (vglobal && vglobal.getViewportSize) {\n return vglobal.getViewportSize();\n }\n // 默认使用容器的尺寸\n return rotateDom.getBoundingClientRect();\n };\n\n const getMatrix = () => {\n const viewPortWidth = getViewportDimensions().width; //获取整个视口的尺寸\n const domRect = this.getElement().getBoundingClientRect(); //TODO 这个地方应该获取窗口的宽高 最好能从vglobal上直接获取\n const x1 = domRect.top;\n const y1 = viewPortWidth - domRect.right;\n\n const matrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);\n matrix.translate(x1, y1);\n const centerX = rotateCenter - x1;\n const centerY = rotateCenter - y1;\n matrix.translate(centerX, centerY);\n matrix.rotate(Math.PI / 2);\n matrix.translate(-centerX, -centerY);\n const rotateRablePlugin = this.pluginManager.getPluginByName('Rotate Table');\n if (rotateRablePlugin) {\n (rotateRablePlugin as RotateTablePlugin).matrix = matrix;\n }\n return matrix;\n };\n registerGlobalEventTransformer(vglobal, this.getElement(), getMatrix, getRect, transformPointForCanvas);\n registerWindowEventTransformer(\n this.scenegraph.stage.window,\n this.getElement(),\n getMatrix,\n getRect,\n transformPointForCanvas\n );\n const rotateRablePlugin = this.pluginManager.getPluginByName('Rotate Table');\n if (rotateRablePlugin) {\n (rotateRablePlugin as RotateTablePlugin).vglobal_mapToCanvasPoint = vglobal.mapToCanvasPoint;\n }\n vglobal.mapToCanvasPoint = mapToCanvasPointForCanvas;\n //transformPointForCanvas和mapToCanvasPointForCanvas时相对应的\n //具体逻辑在 VRender/packages/vrender-core/src/common/event-transformer.ts中\n // 可以自定义这两个函数 来修改事件属性,transformPointForCanvas中将坐标转换后存放了_canvasX _canvasY,mapToCanvasPointForCanvas中加以利用\n // 在VTable的touch文件中,利用到了_canvasX _canvasY 所以如果自定义上面两个函数也需提供_canvasX _canvasY\n}\nexport function cancelTransform(this: BaseTable, rotateDom: HTMLElement) {\n this.rotateDegree = 0;\n rotateDom.style.transform = 'none';\n rotateDom.style.transformOrigin = 'none';\n const domRect = this.getElement().getBoundingClientRect();\n const x1 = domRect.left;\n const y1 = domRect.top;\n const x2 = domRect.right;\n const y2 = domRect.bottom;\n\n const getRect = () => {\n return {\n x1,\n y1,\n x2,\n y2\n };\n };\n const getMatrix = () => {\n const matrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);\n matrix.translate(x1, y1);\n return matrix;\n };\n registerGlobalEventTransformer(vglobal, this.getElement(), getMatrix, getRect, transformPointForCanvas);\n registerWindowEventTransformer(\n this.scenegraph.stage.window,\n this.getElement(),\n getMatrix,\n getRect,\n transformPointForCanvas\n );\n const rotateRablePlugin = this.pluginManager.getPluginByName('Rotate Table');\n if (rotateRablePlugin) {\n vglobal.mapToCanvasPoint = (rotateRablePlugin as RotateTablePlugin).vglobal_mapToCanvasPoint;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/rotate-table.ts"],"names":[],"mappings":"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","file":"rotate-table.js","sourcesContent":["import {\n matrixAllocate,\n transformPointForCanvas,\n mapToCanvasPointForCanvas,\n registerGlobalEventTransformer,\n registerWindowEventTransformer,\n vglobal\n} from '@visactor/vtable/es/vrender';\nimport type { BaseTable } from '@visactor/vtable/src/core/BaseTable';\nimport * as VTable from '@visactor/vtable';\nimport type { TableEvents } from '@visactor/vtable/src/core/TABLE_EVENT_TYPE';\nimport type { EventArg } from './types';\nimport type { Matrix } from '@visactor/vutils';\nexport type IRotateTablePluginOptions = {\n id?: string;\n // // 旋转角度\n // rotate?: number;\n};\n/**\n * 旋转表格插件。\n * 业务层旋转功能没有使用收系统接口的话,用的transform:'rotate(90deg)'的设置来达到旋转的目的。vtable及vrender都没有进行坐标处理,这样就会导致交互错乱。\n * 所以需要进行坐标转换,将旋转后的坐标转换后作为VRender及VTable逻辑中用到的坐标。\n * 这里使用transform:'rotate(90deg)'的设置来达到旋转的目的。 其他角度应该也是可以实现的,请自行扩展这个插件并兼容\n */\nexport class RotateTablePlugin implements VTable.plugins.IVTablePlugin {\n id = `rotate-table`;\n name = 'Rotate Table';\n runTime = [VTable.TABLE_EVENT_TYPE.INITIALIZED];\n table: VTable.ListTable;\n matrix: Matrix;\n vglobal_mapToCanvasPoint: any; // 保存vrender中vglobal的mapToCanvasPoint原方法\n // pluginOptions: IRotateTablePluginOptions;\n constructor(pluginOptions?: IRotateTablePluginOptions) {\n this.id = pluginOptions?.id ?? this.id;\n // this.pluginOptions = pluginOptions;\n }\n run(...args: [EventArg, TableEvents[keyof TableEvents] | TableEvents[keyof TableEvents][], VTable.BaseTableAPI]) {\n const table: VTable.BaseTableAPI = args[2];\n this.table = table as VTable.ListTable;\n //将函数rotate90WithTransform绑定到table实例上,一般情况下插件不需要将api绑定到table实例上,可以直接自身实现某个api功能\n this.table.rotate90WithTransform = rotate90WithTransform.bind(this.table);\n this.table.cancelTransform = cancelTransform.bind(this.table);\n }\n\n release() {\n // 移除绑定的事件\n }\n}\n\n/**\n * 业务层旋转功能没有使用收系统接口的话,用的transform:'rotate(90deg)'的设置来达到旋转的目的。vtable及vrender都没有进行坐标处理,这样就会导致交互错乱。\n * 所以需要进行坐标转换,将旋转后的坐标转换后作为VRender及VTable逻辑中用到的坐标。\n */\nexport function rotate90WithTransform(this: BaseTable, rotateDom: HTMLElement) {\n this.rotateDegree = 90;\n const rotateCenter =\n rotateDom.clientWidth < rotateDom.clientHeight\n ? Math.max(rotateDom.clientWidth, rotateDom.clientHeight) / 2\n : Math.min(rotateDom.clientWidth, rotateDom.clientHeight) / 2;\n const domRect = this.getElement().getBoundingClientRect();\n const x1 = domRect.left;\n const y1 = domRect.top;\n const x2 = domRect.right;\n const y2 = domRect.bottom;\n\n rotateDom.style.transform = 'rotate(90deg)';\n rotateDom.style.transformOrigin = `${rotateCenter}px ${rotateCenter}px`;\n const getRect = () => {\n return {\n x1,\n y1,\n x2,\n y2\n };\n };\n // 获取视口尺寸的通用方法\n const getViewportDimensions = () => {\n // 浏览器环境\n if (typeof window !== 'undefined') {\n return {\n width: window.innerWidth || document.documentElement.clientWidth,\n height: window.innerHeight || document.documentElement.clientHeight\n };\n }\n // 如果有 vglobal 上的方法可以使用\n if (vglobal && vglobal.getViewportSize) {\n return vglobal.getViewportSize();\n }\n // 默认使用容器的尺寸\n return rotateDom.getBoundingClientRect();\n };\n\n const getMatrix = () => {\n const viewPortWidth = getViewportDimensions().width; //获取整个视口的尺寸\n const domRect = this.getElement().getBoundingClientRect(); //TODO 这个地方应该获取窗口的宽高 最好能从vglobal上直接获取\n const x1 = domRect.top;\n const y1 = viewPortWidth - domRect.right;\n\n const matrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);\n matrix.translate(x1, y1);\n const centerX = rotateCenter - x1;\n const centerY = rotateCenter - y1;\n matrix.translate(centerX, centerY);\n matrix.rotate(Math.PI / 2);\n matrix.translate(-centerX, -centerY);\n const rotateRablePlugin = this.pluginManager.getPluginByName('Rotate Table');\n if (rotateRablePlugin) {\n (rotateRablePlugin as RotateTablePlugin).matrix = matrix;\n }\n return matrix;\n };\n registerGlobalEventTransformer(vglobal, this.getElement(), getMatrix, getRect, transformPointForCanvas);\n registerWindowEventTransformer(\n this.scenegraph.stage.window,\n this.getElement(),\n getMatrix,\n getRect,\n transformPointForCanvas\n );\n const rotateRablePlugin = this.pluginManager.getPluginByName('Rotate Table');\n if (rotateRablePlugin) {\n (rotateRablePlugin as RotateTablePlugin).vglobal_mapToCanvasPoint = vglobal.mapToCanvasPoint;\n }\n vglobal.mapToCanvasPoint = mapToCanvasPointForCanvas;\n //transformPointForCanvas和mapToCanvasPointForCanvas时相对应的\n //具体逻辑在 VRender/packages/vrender-core/src/common/event-transformer.ts中\n // 可以自定义这两个函数 来修改事件属性,transformPointForCanvas中将坐标转换后存放了_canvasX _canvasY,mapToCanvasPointForCanvas中加以利用\n // 在VTable的touch文件中,利用到了_canvasX _canvasY 所以如果自定义上面两个函数也需提供_canvasX _canvasY\n}\nexport function cancelTransform(this: BaseTable, rotateDom: HTMLElement) {\n this.rotateDegree = 0;\n rotateDom.style.transform = 'none';\n rotateDom.style.transformOrigin = 'none';\n const domRect = this.getElement().getBoundingClientRect();\n const x1 = domRect.left;\n const y1 = domRect.top;\n const x2 = domRect.right;\n const y2 = domRect.bottom;\n\n const getRect = () => {\n return {\n x1,\n y1,\n x2,\n y2\n };\n };\n const getMatrix = () => {\n const matrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);\n matrix.translate(x1, y1);\n return matrix;\n };\n registerGlobalEventTransformer(vglobal, this.getElement(), getMatrix, getRect, transformPointForCanvas);\n registerWindowEventTransformer(\n this.scenegraph.stage.window,\n this.getElement(),\n getMatrix,\n getRect,\n transformPointForCanvas\n );\n const rotateRablePlugin = this.pluginManager.getPluginByName('Rotate Table');\n if (rotateRablePlugin) {\n vglobal.mapToCanvasPoint = (rotateRablePlugin as RotateTablePlugin).vglobal_mapToCanvasPoint;\n }\n}\n"]}
|
package/es/row-series.js
CHANGED
|
@@ -3,7 +3,7 @@ import { TABLE_EVENT_TYPE } from "@visactor/vtable";
|
|
|
3
3
|
export class RowSeriesPlugin {
|
|
4
4
|
constructor(pluginOptions) {
|
|
5
5
|
var _a;
|
|
6
|
-
this.id =
|
|
6
|
+
this.id = "row-series", this.name = "Row Series", this.runTime = [ TABLE_EVENT_TYPE.BEFORE_INIT, TABLE_EVENT_TYPE.BEFORE_KEYDOWN ],
|
|
7
7
|
this.id = null !== (_a = pluginOptions.id) && void 0 !== _a ? _a : this.id, this.pluginOptions = Object.assign({
|
|
8
8
|
rowCount: 100
|
|
9
9
|
}, pluginOptions);
|
package/es/row-series.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["row-series.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAmBpD,MAAM,OAAO,eAAe;IAO1B,YAAY,aAA+B;;QAN3C,OAAE,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/row-series.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAmBpD,MAAM,OAAO,eAAe;IAO1B,YAAY,aAA+B;;QAN3C,OAAE,GAAG,YAAY,CAAC;QAClB,SAAI,GAAG,YAAY,CAAC;QACpB,YAAO,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAKxE,IAAI,CAAC,EAAE,GAAG,MAAA,aAAa,CAAC,EAAE,mCAAI,IAAI,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;IACvE,CAAC;IACD,GAAG,CAAC,GAAG,IAAW;;QAChB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,WAAW,EAAE;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,KAAK,GAAiB,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,GAAG,KAAkB,CAAC;YAChC,MAAM,OAAO,GAAgC,SAAS,CAAC,OAAO,CAAC;YAC/D,MAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,EAAE,CAAC;YAEtC,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;gBACjE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aAC3F;YACD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;YAC1B,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;gBACtC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;gBAC7D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,EAAE;oBAC7C,OAAO,CAAC,eAAe,CAAC,KAAK,GAAG,MAAM,CAAC;iBACxC;aACF;iBAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;gBACnC,OAAO,CAAC,eAAe,GAAG;oBACxB,KAAK,EAAE,MAAM;iBACd,CAAC;aACH;SACF;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,cAAc,EAAE;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1B,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;YAE1B,IACE,CAAA,MAAA,IAAI,CAAC,aAAa,CAAC,wBAAwB,0CAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC5D,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EACtE;gBACC,IAAI,CAAC,KAAmB,CAAC,SAAS,CACjC,IAAI,CAAC,aAAa,CAAC,aAAa;oBAC9B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC;oBAC3F,CAAC,CAAC,EAAE,CACP,CAAC;aACH;SACF;IACH,CAAC;CACF","file":"row-series.js","sourcesContent":["import { TABLE_EVENT_TYPE } from '@visactor/vtable';\nimport type { TYPES, BaseTableAPI, ListTable, ListTableConstructorOptions, plugins } from '@visactor/vtable';\n/**\n * 添加行和列的插件的配置选项\n */\nexport interface RowSeriesOptions {\n id?: string;\n rowCount: number;\n fillRowRecord?: (index: number) => any;\n rowSeriesNumber?: TYPES.IRowSeriesNumber;\n /**\n * 是否自动扩展行\n * @default true\n */\n autoExtendRowTriggerKeys?: ('ArrowDown' | 'Enter')[];\n}\n/**\n * 生成行序号标题的插件\n */\nexport class RowSeriesPlugin implements plugins.IVTablePlugin {\n id = `row-series`;\n name = 'Row Series';\n runTime = [TABLE_EVENT_TYPE.BEFORE_INIT, TABLE_EVENT_TYPE.BEFORE_KEYDOWN];\n pluginOptions: RowSeriesOptions;\n table: ListTable;\n\n constructor(pluginOptions: RowSeriesOptions) {\n this.id = pluginOptions.id ?? this.id;\n this.pluginOptions = Object.assign({ rowCount: 100 }, pluginOptions);\n }\n run(...args: any[]) {\n if (args[1] === TABLE_EVENT_TYPE.BEFORE_INIT) {\n const eventArgs = args[0];\n const table: BaseTableAPI = args[2];\n this.table = table as ListTable;\n const options: ListTableConstructorOptions = eventArgs.options;\n const records = options.records ?? [];\n //用空数据将records填充到pluginOptions.rowCount\n for (let i = records.length; i < this.pluginOptions.rowCount; i++) {\n records.push(this.pluginOptions.fillRowRecord ? this.pluginOptions.fillRowRecord(i) : {});\n }\n options.records = records;\n if (this.pluginOptions.rowSeriesNumber) {\n options.rowSeriesNumber = this.pluginOptions.rowSeriesNumber;\n if (!this.pluginOptions.rowSeriesNumber.width) {\n options.rowSeriesNumber.width = 'auto';\n }\n } else if (!options.rowSeriesNumber) {\n options.rowSeriesNumber = {\n width: 'auto'\n };\n }\n } else if (args[1] === TABLE_EVENT_TYPE.BEFORE_KEYDOWN) {\n const eventArgs = args[0];\n\n const e = eventArgs.event;\n\n if (\n this.pluginOptions.autoExtendRowTriggerKeys?.includes(e.key) &&\n this.table.stateManager.select.cellPos.row === this.table.rowCount - 1\n ) {\n (this.table as ListTable).addRecord(\n this.pluginOptions.fillRowRecord\n ? this.pluginOptions.fillRowRecord(this.table.rowCount - this.table.columnHeaderLevelCount)\n : {}\n );\n }\n }\n }\n}\n"]}
|
|
@@ -7,9 +7,9 @@ function isInteger(value) {
|
|
|
7
7
|
export class TableCarouselAnimationPlugin {
|
|
8
8
|
constructor(options = {}) {
|
|
9
9
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
10
|
-
this.id =
|
|
11
|
-
this.
|
|
12
|
-
this.
|
|
10
|
+
this.id = "table-carousel-animation", this.name = "Table Carousel Animation", this.runTime = [ TABLE_EVENT_TYPE.INITIALIZED ],
|
|
11
|
+
this.willUpdateRow = !1, this.willUpdateCol = !1, this.id = null !== (_a = options.id) && void 0 !== _a ? _a : this.id,
|
|
12
|
+
this.rowCount = null !== (_b = null == options ? void 0 : options.rowCount) && void 0 !== _b ? _b : void 0,
|
|
13
13
|
this.colCount = null !== (_c = null == options ? void 0 : options.colCount) && void 0 !== _c ? _c : void 0,
|
|
14
14
|
this.animationDuration = null !== (_d = null == options ? void 0 : options.animationDuration) && void 0 !== _d ? _d : 500,
|
|
15
15
|
this.animationDelay = null !== (_e = null == options ? void 0 : options.animationDelay) && void 0 !== _e ? _e : 1e3,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["table-carousel-animation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;AACrC,CAAC;AAgBD,MAAM,OAAO,4BAA4B;IAsBvC,YAAY,UAAgD,EAAE;;QArB9D,OAAE,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/table-carousel-animation.ts"],"names":[],"mappings":"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","file":"table-carousel-animation.js","sourcesContent":["import type { EasingType } from '@visactor/vtable/es/vrender';\nimport type { BaseTableAPI } from '@visactor/vtable/es/ts-types/base-table';\nimport { TABLE_EVENT_TYPE } from '@visactor/vtable';\nimport type * as VTable from '@visactor/vtable';\nfunction isInteger(value: number) {\n return Math.floor(value) === value;\n}\n\nexport interface ITableCarouselAnimationPluginOptions {\n id?: string;\n rowCount?: number;\n colCount?: number;\n animationDuration?: number;\n animationDelay?: number;\n animationEasing?: EasingType;\n autoPlay?: boolean;\n autoPlayDelay?: number;\n\n customDistRowFunction?: (row: number, table: BaseTableAPI) => { distRow: number; animation?: boolean } | undefined;\n customDistColFunction?: (col: number, table: BaseTableAPI) => { distCol: number; animation?: boolean } | undefined;\n}\n\nexport class TableCarouselAnimationPlugin implements VTable.plugins.IVTablePlugin {\n id = `table-carousel-animation`;\n name = 'Table Carousel Animation';\n runTime = [TABLE_EVENT_TYPE.INITIALIZED];\n table: BaseTableAPI;\n\n rowCount: number;\n colCount: number;\n animationDuration: number;\n animationDelay: number;\n animationEasing: EasingType;\n\n playing: boolean;\n row: number;\n col: number;\n willUpdateRow: boolean = false;\n willUpdateCol: boolean = false;\n autoPlay: boolean;\n autoPlayDelay: number;\n\n customDistRowFunction?: (row: number, table: BaseTableAPI) => { distRow: number; animation?: boolean } | undefined;\n customDistColFunction?: (col: number, table: BaseTableAPI) => { distCol: number; animation?: boolean } | undefined;\n constructor(options: ITableCarouselAnimationPluginOptions = {}) {\n this.id = options.id ?? this.id;\n this.rowCount = options?.rowCount ?? undefined;\n this.colCount = options?.colCount ?? undefined;\n this.animationDuration = options?.animationDuration ?? 500;\n this.animationDelay = options?.animationDelay ?? 1000;\n this.animationEasing = options?.animationEasing ?? 'linear';\n this.autoPlay = options?.autoPlay ?? false;\n this.autoPlayDelay = options?.autoPlayDelay ?? 0;\n this.customDistColFunction = options.customDistColFunction;\n this.customDistRowFunction = options.customDistRowFunction;\n }\n run(...args: any[]) {\n if (!this.table) {\n this.table = args[2] as BaseTableAPI;\n }\n this.reset();\n\n if (this.autoPlay) {\n setTimeout(() => {\n this.play();\n }, this.autoPlayDelay);\n }\n }\n\n reset() {\n this.playing = false;\n this.row = this.table.frozenRowCount;\n this.col = this.table.frozenColCount;\n }\n\n play() {\n if (!this.table) {\n throw new Error('table is not initialized');\n }\n this.playing = true;\n\n if (this.rowCount && !this.willUpdateRow) {\n this.updateRow();\n } else if (this.colCount && !this.willUpdateCol) {\n this.updateCol();\n }\n }\n\n pause() {\n this.playing = false;\n }\n\n updateRow() {\n if (!this.playing || this.table.isReleased) {\n return;\n }\n\n let animation = true;\n const customRow = this.customDistRowFunction && this.customDistRowFunction(this.row, this.table);\n if (customRow) {\n this.row = customRow.distRow;\n animation = customRow.animation ?? true;\n } else if (isInteger(this.row) && this.table.scenegraph.proxy.screenTopRow !== this.row) {\n this.row = this.table.frozenRowCount;\n animation = false;\n } else if (!isInteger(this.row) && this.table.scenegraph.proxy.screenTopRow !== Math.floor(this.row)) {\n this.row = this.table.frozenRowCount;\n animation = false;\n } else {\n this.row += this.rowCount;\n }\n this.table.scrollToRow(\n this.row,\n animation ? { duration: this.animationDuration, easing: this.animationEasing } : undefined\n );\n this.willUpdateRow = true;\n setTimeout(\n () => {\n this.willUpdateRow = false;\n this.updateRow();\n },\n // animation ? this.animationDuration + this.animationDelay : 0\n this.animationDuration + this.animationDelay\n );\n }\n\n updateCol() {\n if (!this.playing || this.table.isReleased) {\n return;\n }\n\n let animation = true;\n const customCol = this.customDistColFunction && this.customDistColFunction(this.col, this.table);\n if (customCol) {\n this.col = customCol.distCol;\n animation = customCol.animation ?? true;\n } else if (isInteger(this.col) && this.table.scenegraph.proxy.screenLeftCol !== this.col) {\n this.col = this.table.frozenColCount;\n animation = false;\n } else if (!isInteger(this.col) && this.table.scenegraph.proxy.screenLeftCol !== Math.floor(this.col)) {\n this.col = this.table.frozenColCount;\n animation = false;\n } else {\n this.col += this.colCount;\n }\n\n this.table.scrollToCol(\n this.col,\n animation ? { duration: this.animationDuration, easing: this.animationEasing } : undefined\n );\n\n this.willUpdateCol = true;\n setTimeout(\n () => {\n this.willUpdateCol = false;\n this.updateCol();\n },\n // animation ? this.animationDuration + this.animationDelay : 0\n this.animationDuration + this.animationDelay\n );\n }\n release() {\n // do nothing\n }\n}\n"]}
|
|
@@ -9,7 +9,7 @@ export function exportVTableToCsv(tableInstance, option) {
|
|
|
9
9
|
for (let col = 0; col <= maxCol; col++) {
|
|
10
10
|
const copyCellValue = getCopyCellValue(col, row, tableInstance, option);
|
|
11
11
|
if ("undefined" != typeof Promise && copyCellValue instanceof Promise) ; else {
|
|
12
|
-
const strCellValue = `${copyCellValue}`;
|
|
12
|
+
const strCellValue = `${void 0 === copyCellValue ? "" : copyCellValue}`;
|
|
13
13
|
/^\[object .*\]$/.exec(strCellValue) || (copyValue += strCellValue);
|
|
14
14
|
}
|
|
15
15
|
copyValue += ",";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["table-export/csv/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAK5D,MAAM,OAAO,GAAG,MAAM,CAAC;AACvB,MAAM,SAAS,GAAG,GAAG,CAAC;AAUtB,MAAM,UAAU,iBAAiB,CAAC,aAAsB,EAAE,MAAiC;IACzF,MAAM,aAAa,GAAG,CAAC,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAA,CAAC;IAC9C,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,sBAAsB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,CAAC,CAAC;IACjB,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,CAAC,CAAC;IACjB,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;IAE1C,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,KAAK,IAAI,GAAG,GAAG,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,EAAE,EAAE;QAC3C,KAAK,IAAI,GAAG,GAAG,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3C,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;YACxE,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,aAAa,YAAY,OAAO,EAAE;aAEvE;iBAAM;gBACL,MAAM,YAAY,GAAG,GAAG,aAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/table-export/csv/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type * as VTable from '@visactor/vtable';\nimport type { CellInfo } from '../excel';\nimport { handlePaginationExport } from '../util/pagination';\n\ntype IVTable = VTable.ListTable | VTable.PivotTable | VTable.PivotChart;\ntype CellRange = VTable.TYPES.CellRange;\n\nconst newLine = '\\r\\n';\nconst separator = ',';\n\nexport type ExportVTableToCsvOptions = {\n formatExportOutput?: (cellInfo: CellInfo) => string | undefined;\n escape?: boolean;\n exportAllData?: boolean;\n downloadFile?: boolean;\n fileName?: string;\n};\n\nexport function exportVTableToCsv(tableInstance: IVTable, option?: ExportVTableToCsvOptions): string {\n const exportAllData = !!option?.exportAllData;\n const { handleRowCount, reset } = handlePaginationExport(tableInstance, exportAllData);\n const minRow = 0;\n const maxRow = handleRowCount();\n const minCol = 0;\n const maxCol = tableInstance.colCount - 1;\n\n let copyValue = '';\n for (let row = minRow; row <= maxRow; row++) {\n for (let col = minCol; col <= maxCol; col++) {\n const copyCellValue = getCopyCellValue(col, row, tableInstance, option);\n if (typeof Promise !== 'undefined' && copyCellValue instanceof Promise) {\n // not support async\n } else {\n const strCellValue = `${copyCellValue === undefined ? '' : copyCellValue}`;\n if (/^\\[object .*\\]$/.exec(strCellValue)) {\n // ignore object\n } else {\n copyValue += strCellValue;\n }\n }\n copyValue += separator;\n }\n copyValue += newLine;\n }\n // 恢复透视表的pagination配置\n reset();\n return copyValue;\n}\n\nfunction getCopyCellValue(\n col: number,\n row: number,\n tableInstance: IVTable,\n option?: ExportVTableToCsvOptions\n): string | Promise<string> | void {\n const rawRecord = tableInstance.getCellRawRecord(col, row);\n const cellValue = (rawRecord && rawRecord.vtableMergeName) ?? tableInstance.getCellValue(col, row, false);\n\n if (option?.formatExportOutput) {\n const cellType = tableInstance.getCellType(col, row);\n const cellInfo = { cellType, cellValue, table: tableInstance, col, row };\n const formattedValue = option.formatExportOutput(cellInfo);\n if (formattedValue !== undefined) {\n if (typeof formattedValue === 'string') {\n return '\"' + formattedValue + '\"';\n }\n return formattedValue;\n }\n }\n const cellRange: CellRange = tableInstance.getCellRange(col, row);\n const copyStartCol = cellRange.start.col;\n const copyStartRow = cellRange.start.row;\n\n if (copyStartCol !== col || copyStartRow !== row) {\n return '';\n }\n\n let value = cellValue;\n if (option?.escape) {\n value = escapeForCSV(value);\n } else if (typeof value === 'string') {\n value = '\"' + value + '\"';\n }\n return value;\n}\n\n/**\n * 将字符串中的特殊符号进行转义,以避免干扰CSV解析\n * @param {string} str - 需要处理的字符串\n * @return {string} - 已处理的字符串\n */\nfunction escapeForCSV(str: any) {\n if (typeof str !== 'string') {\n return str;\n }\n\n // 替换双引号为两个双引号\n let escapedStr = str.replace(/\"/g, '\"\"');\n\n // 如果字符串中包含逗号、换行符或双引号,则需要用双引号包裹\n if (/[,\"\\r\\n]/.test(escapedStr)) {\n escapedStr = `\"${escapedStr}\"`;\n }\n\n return escapedStr;\n}\n"]}
|
|
@@ -238,5 +238,4 @@ function exportCellImg(col, row, tableInstance) {
|
|
|
238
238
|
|
|
239
239
|
function needCellImageExport(cellType, isAxisCell, isCustomCell, isTextWithIcon, options) {
|
|
240
240
|
return !(null == options ? void 0 : options.skipImageExportCellType) || ("image" === cellType || "video" === cellType || "progressbar" === cellType || "sparkline" === cellType || "chart" === cellType ? !options.skipImageExportCellType.includes(cellType) : isAxisCell ? !options.skipImageExportCellType.includes("chart") : isCustomCell ? !options.skipImageExportCellType.includes("custom") : !isTextWithIcon || !options.skipImageExportCellType.includes("textWithIcon"));
|
|
241
|
-
}
|
|
242
|
-
//# sourceMappingURL=index.js.map
|
|
241
|
+
}
|