@rowsncolumns/spreadsheet-state 28.0.76 → 29.1.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/dist/cjs/api/anchored-objects.d.ts +122 -6
- package/dist/cjs/api/anchored-objects.d.ts.map +1 -1
- package/dist/cjs/api/anchored-objects.js +464 -43
- package/dist/cjs/api/copy-paste.d.ts +8 -2
- package/dist/cjs/api/copy-paste.d.ts.map +1 -1
- package/dist/cjs/api/copy-paste.js +4 -4
- package/dist/cjs/api/filter.d.ts +15 -1
- package/dist/cjs/api/filter.d.ts.map +1 -1
- package/dist/cjs/api/filter.js +32 -2
- package/dist/cjs/api/formula.d.ts +63 -0
- package/dist/cjs/api/formula.d.ts.map +1 -1
- package/dist/cjs/api/formula.js +278 -8
- package/dist/cjs/api/immer-utils.d.ts +11 -1
- package/dist/cjs/api/immer-utils.d.ts.map +1 -1
- package/dist/cjs/api/immer-utils.js +17 -1
- package/dist/cjs/api/insert-cut-cells.d.ts +35 -0
- package/dist/cjs/api/insert-cut-cells.d.ts.map +1 -0
- package/dist/cjs/api/insert-cut-cells.js +60 -0
- package/dist/cjs/api/merges.d.ts +8 -0
- package/dist/cjs/api/merges.d.ts.map +1 -1
- package/dist/cjs/api/merges.js +11 -0
- package/dist/cjs/api/paint-format.d.ts +22 -1
- package/dist/cjs/api/paint-format.d.ts.map +1 -1
- package/dist/cjs/api/paint-format.js +57 -1
- package/dist/cjs/api/sort.d.ts +23 -1
- package/dist/cjs/api/sort.d.ts.map +1 -1
- package/dist/cjs/api/sort.js +52 -6
- package/dist/cjs/api/structural-guards.d.ts +57 -0
- package/dist/cjs/api/structural-guards.d.ts.map +1 -1
- package/dist/cjs/api/structural-guards.js +93 -1
- package/dist/cjs/api/structural-table-refs.d.ts +58 -3
- package/dist/cjs/api/structural-table-refs.d.ts.map +1 -1
- package/dist/cjs/api/structural-table-refs.js +177 -16
- package/dist/cjs/api/subtotal.d.ts +20 -13
- package/dist/cjs/api/subtotal.d.ts.map +1 -1
- package/dist/cjs/api/subtotal.js +26 -19
- package/dist/cjs/api/table.d.ts +26 -2
- package/dist/cjs/api/table.d.ts.map +1 -1
- package/dist/cjs/api/table.js +93 -60
- package/dist/cjs/api/validation.d.ts.map +1 -1
- package/dist/cjs/api/validation.js +53 -8
- package/dist/cjs/atoms/creating-table.atom.d.ts +22 -0
- package/dist/cjs/atoms/creating-table.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/creating-table.atom.js +4 -0
- package/dist/cjs/atoms/dialog-state.atom.d.ts +8 -0
- package/dist/cjs/atoms/dialog-state.atom.d.ts.map +1 -1
- package/dist/cjs/atoms/dialog-state.atom.js +28 -0
- package/dist/cjs/atoms/editing-slicer.atom.d.ts +9 -0
- package/dist/cjs/atoms/editing-slicer.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/editing-slicer.atom.js +6 -0
- package/dist/cjs/atoms/index.d.ts +4 -0
- package/dist/cjs/atoms/index.d.ts.map +1 -1
- package/dist/cjs/atoms/index.js +4 -0
- package/dist/cjs/atoms/inserting-slicer.atom.d.ts +8 -0
- package/dist/cjs/atoms/inserting-slicer.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/inserting-slicer.atom.js +5 -0
- package/dist/cjs/atoms/resizing-table.atom.d.ts +8 -0
- package/dist/cjs/atoms/resizing-table.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/resizing-table.atom.js +5 -0
- package/dist/cjs/commands.d.ts +138 -2
- package/dist/cjs/commands.d.ts.map +1 -1
- package/dist/cjs/components/editors/embed-editor.d.ts +4 -2
- package/dist/cjs/components/editors/embed-editor.d.ts.map +1 -1
- package/dist/cjs/components/editors/embed-editor.js +38 -9
- package/dist/cjs/components/editors/slicer-editor.d.ts +15 -0
- package/dist/cjs/components/editors/slicer-editor.d.ts.map +1 -0
- package/dist/cjs/components/editors/slicer-editor.js +87 -0
- package/dist/cjs/components/editors/table-editor.d.ts +58 -2
- package/dist/cjs/components/editors/table-editor.d.ts.map +1 -1
- package/dist/cjs/components/editors/table-editor.js +261 -20
- package/dist/cjs/components/index.d.ts +1 -0
- package/dist/cjs/components/index.d.ts.map +1 -1
- package/dist/cjs/components/index.js +1 -0
- package/dist/cjs/constants.d.ts +9 -1
- package/dist/cjs/constants.d.ts.map +1 -1
- package/dist/cjs/constants.js +12 -0
- package/dist/cjs/generated-names.d.ts +13 -3
- package/dist/cjs/generated-names.d.ts.map +1 -1
- package/dist/cjs/generated-names.js +3 -1
- package/dist/cjs/helpers.d.ts +5 -0
- package/dist/cjs/helpers.d.ts.map +1 -1
- package/dist/cjs/helpers.js +10 -1
- package/dist/cjs/hooks/use-on-change-batch.d.ts +19 -2
- package/dist/cjs/hooks/use-on-change-batch.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-change-batch.js +43 -35
- package/dist/cjs/hooks/use-on-change-calculated-column.d.ts +10 -1
- package/dist/cjs/hooks/use-on-change-calculated-column.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-change-calculated-column.js +17 -5
- package/dist/cjs/hooks/use-on-change-table-column.d.ts +6 -1
- package/dist/cjs/hooks/use-on-change-table-column.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-change-table-column.js +17 -5
- package/dist/cjs/hooks/use-on-change.d.ts +36 -3
- package/dist/cjs/hooks/use-on-change.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-change.js +218 -136
- package/dist/cjs/hooks/use-on-copy.d.ts +1 -1
- package/dist/cjs/hooks/use-on-copy.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-copy.js +2 -3
- package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts +17 -0
- package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
- package/dist/cjs/hooks/use-on-create-custom-table-style.js +28 -0
- package/dist/cjs/hooks/use-on-create-named-range.d.ts +4 -2
- package/dist/cjs/hooks/use-on-create-named-range.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-create-named-range.js +11 -1
- package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
- package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete-cells-shift-left.js +3 -1
- package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
- package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete-cells-shift-up.js +3 -1
- package/dist/cjs/hooks/use-on-delete-column.d.ts +2 -1
- package/dist/cjs/hooks/use-on-delete-column.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete-column.js +3 -1
- package/dist/cjs/hooks/use-on-delete-row.d.ts +2 -1
- package/dist/cjs/hooks/use-on-delete-row.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete-row.js +3 -1
- package/dist/cjs/hooks/use-on-delete-sheet.d.ts +9 -1
- package/dist/cjs/hooks/use-on-delete-sheet.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete-sheet.js +17 -1
- package/dist/cjs/hooks/use-on-delete-table-row.d.ts +4 -1
- package/dist/cjs/hooks/use-on-delete-table-row.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete-table-row.js +19 -1
- package/dist/cjs/hooks/use-on-delete.d.ts +5 -2
- package/dist/cjs/hooks/use-on-delete.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete.js +5 -1
- package/dist/cjs/hooks/use-on-embeds.d.ts +7 -4
- package/dist/cjs/hooks/use-on-embeds.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-embeds.js +26 -24
- package/dist/cjs/hooks/use-on-fill.d.ts +17 -2
- package/dist/cjs/hooks/use-on-fill.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-fill.js +29 -15
- package/dist/cjs/hooks/use-on-filter-table.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-filter-table.js +209 -103
- package/dist/cjs/hooks/use-on-import-excel.d.ts +2 -1
- package/dist/cjs/hooks/use-on-import-excel.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-import-excel.js +22 -19
- package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
- package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-insert-cells-shift-down.js +3 -1
- package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
- package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-insert-cells-shift-right.js +3 -1
- package/dist/cjs/hooks/use-on-insert-column.d.ts +2 -1
- package/dist/cjs/hooks/use-on-insert-column.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-insert-column.js +3 -1
- package/dist/cjs/hooks/use-on-insert-row.d.ts +2 -1
- package/dist/cjs/hooks/use-on-insert-row.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-insert-row.js +3 -1
- package/dist/cjs/hooks/use-on-insert-table-row.d.ts +5 -2
- package/dist/cjs/hooks/use-on-insert-table-row.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-insert-table-row.js +19 -1
- package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
- package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-merge-unmerge-cells.js +14 -1
- package/dist/cjs/hooks/use-on-move-columns.d.ts +4 -1
- package/dist/cjs/hooks/use-on-move-columns.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-move-columns.js +28 -6
- package/dist/cjs/hooks/use-on-move-rows.d.ts +18 -1
- package/dist/cjs/hooks/use-on-move-rows.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-move-rows.js +44 -6
- package/dist/cjs/hooks/use-on-move-selection.d.ts +9 -2
- package/dist/cjs/hooks/use-on-move-selection.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-move-selection.js +101 -25
- package/dist/cjs/hooks/use-on-paste.d.ts +33 -2
- package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-paste.js +1005 -740
- package/dist/cjs/hooks/use-on-remove-duplicates.d.ts +5 -2
- package/dist/cjs/hooks/use-on-remove-duplicates.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-remove-duplicates.js +5 -1
- package/dist/cjs/hooks/use-on-request-create-table.d.ts +13 -0
- package/dist/cjs/hooks/use-on-request-create-table.d.ts.map +1 -0
- package/dist/cjs/hooks/use-on-request-create-table.js +44 -0
- package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts +7 -0
- package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
- package/dist/cjs/hooks/use-on-request-insert-slicer.js +15 -0
- package/dist/cjs/hooks/use-on-request-resize-table.d.ts +7 -0
- package/dist/cjs/hooks/use-on-request-resize-table.d.ts.map +1 -0
- package/dist/cjs/hooks/use-on-request-resize-table.js +15 -0
- package/dist/cjs/hooks/use-on-resize-table.d.ts +5 -1
- package/dist/cjs/hooks/use-on-resize-table.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-resize-table.js +110 -33
- package/dist/cjs/hooks/use-on-sort-column.d.ts +28 -3
- package/dist/cjs/hooks/use-on-sort-column.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-sort-column.js +136 -90
- package/dist/cjs/hooks/use-on-sort-range.d.ts +26 -3
- package/dist/cjs/hooks/use-on-sort-range.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-sort-range.js +113 -67
- package/dist/cjs/hooks/use-on-sort-table.d.ts +18 -1
- package/dist/cjs/hooks/use-on-sort-table.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-sort-table.js +128 -98
- package/dist/cjs/hooks/use-on-subtotal.d.ts +10 -3
- package/dist/cjs/hooks/use-on-subtotal.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-subtotal.js +13 -9
- package/dist/cjs/hooks/use-on-table.d.ts +39 -7
- package/dist/cjs/hooks/use-on-table.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-table.js +257 -49
- package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts +23 -0
- package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
- package/dist/cjs/hooks/use-on-undo-calculated-column.js +70 -0
- package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
- package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
- package/dist/cjs/hooks/use-on-undo-table-auto-expansion.js +96 -0
- package/dist/cjs/hooks/use-on-update-named-range.d.ts +4 -2
- package/dist/cjs/hooks/use-on-update-named-range.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-update-named-range.js +13 -1
- package/dist/cjs/hooks/use-sheet-properties.d.ts +1 -0
- package/dist/cjs/hooks/use-sheet-properties.d.ts.map +1 -1
- package/dist/cjs/hooks/use-sheet-properties.js +54 -34
- package/dist/cjs/hooks/use-slicers.d.ts +2 -2
- package/dist/cjs/hooks/use-slicers.d.ts.map +1 -1
- package/dist/cjs/hooks/use-slicers.js +17 -26
- package/dist/cjs/hooks/use-sparkline-groups.d.ts +50 -0
- package/dist/cjs/hooks/use-sparkline-groups.d.ts.map +1 -0
- package/dist/cjs/hooks/use-sparkline-groups.js +192 -0
- package/dist/cjs/hooks/use-spreadsheet-state.d.ts +69 -12
- package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/cjs/hooks/use-spreadsheet-state.js +383 -84
- package/dist/cjs/hooks/use-structured-reference.d.ts.map +1 -1
- package/dist/cjs/hooks/use-structured-reference.js +17 -0
- package/dist/cjs/hooks/use-undo-redo-actions.d.ts +2 -1
- package/dist/cjs/hooks/use-undo-redo-actions.d.ts.map +1 -1
- package/dist/cjs/hooks/use-undo-redo-actions.js +10 -2
- package/dist/cjs/hooks/use-undo-redo.d.ts +12 -0
- package/dist/cjs/hooks/use-undo-redo.d.ts.map +1 -1
- package/dist/cjs/hooks/use-undo-redo.js +169 -10
- package/dist/cjs/hooks/utils/sort-rows.d.ts.map +1 -1
- package/dist/cjs/hooks/utils/sort-rows.js +4 -3
- package/dist/cjs/index.d.ts +8 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +9 -0
- package/dist/cjs/interface/apply-fill.d.ts +26 -3
- package/dist/cjs/interface/apply-fill.d.ts.map +1 -1
- package/dist/cjs/interface/apply-fill.js +207 -98
- package/dist/cjs/interface/change-batch.d.ts +1 -1
- package/dist/cjs/interface/change-batch.d.ts.map +1 -1
- package/dist/cjs/interface/change-batch.js +112 -15
- package/dist/cjs/interface/change-calculated-column.d.ts +6 -2
- package/dist/cjs/interface/change-calculated-column.d.ts.map +1 -1
- package/dist/cjs/interface/change-calculated-column.js +87 -17
- package/dist/cjs/interface/change-table-column.d.ts +81 -7
- package/dist/cjs/interface/change-table-column.d.ts.map +1 -1
- package/dist/cjs/interface/change-table-column.js +336 -76
- package/dist/cjs/interface/create-table.d.ts +15 -3
- package/dist/cjs/interface/create-table.d.ts.map +1 -1
- package/dist/cjs/interface/create-table.js +100 -25
- package/dist/cjs/interface/delete-cells-shift-left.d.ts +1 -1
- package/dist/cjs/interface/delete-cells-shift-left.d.ts.map +1 -1
- package/dist/cjs/interface/delete-cells-shift-left.js +10 -1
- package/dist/cjs/interface/delete-cells-shift-up.d.ts +1 -1
- package/dist/cjs/interface/delete-cells-shift-up.d.ts.map +1 -1
- package/dist/cjs/interface/delete-cells-shift-up.js +10 -1
- package/dist/cjs/interface/delete-cells.d.ts +1 -1
- package/dist/cjs/interface/delete-cells.d.ts.map +1 -1
- package/dist/cjs/interface/delete-cells.js +81 -25
- package/dist/cjs/interface/delete-column.d.ts +1 -1
- package/dist/cjs/interface/delete-column.d.ts.map +1 -1
- package/dist/cjs/interface/delete-column.js +29 -22
- package/dist/cjs/interface/delete-row.d.ts +1 -1
- package/dist/cjs/interface/delete-row.d.ts.map +1 -1
- package/dist/cjs/interface/delete-row.js +244 -39
- package/dist/cjs/interface/delete-sheet.d.ts +2 -2
- package/dist/cjs/interface/delete-sheet.d.ts.map +1 -1
- package/dist/cjs/interface/delete-sheet.js +118 -1
- package/dist/cjs/interface/delete-table-column.d.ts +1 -1
- package/dist/cjs/interface/delete-table-column.d.ts.map +1 -1
- package/dist/cjs/interface/delete-table-column.js +11 -1
- package/dist/cjs/interface/delete-table-row.d.ts +1 -1
- package/dist/cjs/interface/delete-table-row.d.ts.map +1 -1
- package/dist/cjs/interface/delete-table-row.js +361 -275
- package/dist/cjs/interface/duplicate-sheet.d.ts.map +1 -1
- package/dist/cjs/interface/duplicate-sheet.js +83 -31
- package/dist/cjs/interface/embeds.d.ts +10 -1
- package/dist/cjs/interface/embeds.d.ts.map +1 -1
- package/dist/cjs/interface/embeds.js +120 -6
- package/dist/cjs/interface/insert-cells-shift-down.d.ts +1 -1
- package/dist/cjs/interface/insert-cells-shift-down.d.ts.map +1 -1
- package/dist/cjs/interface/insert-cells-shift-down.js +10 -1
- package/dist/cjs/interface/insert-cells-shift-right.d.ts +1 -1
- package/dist/cjs/interface/insert-cells-shift-right.d.ts.map +1 -1
- package/dist/cjs/interface/insert-cells-shift-right.js +10 -1
- package/dist/cjs/interface/insert-column.d.ts +2 -2
- package/dist/cjs/interface/insert-column.d.ts.map +1 -1
- package/dist/cjs/interface/insert-column.js +101 -56
- package/dist/cjs/interface/insert-row.d.ts +1 -1
- package/dist/cjs/interface/insert-row.d.ts.map +1 -1
- package/dist/cjs/interface/insert-row.js +25 -7
- package/dist/cjs/interface/insert-table-row.d.ts +2 -1
- package/dist/cjs/interface/insert-table-row.d.ts.map +1 -1
- package/dist/cjs/interface/insert-table-row.js +70 -19
- package/dist/cjs/interface/remove-duplicates.d.ts +1 -1
- package/dist/cjs/interface/remove-duplicates.d.ts.map +1 -1
- package/dist/cjs/interface/remove-duplicates.js +46 -6
- package/dist/cjs/interface/remove-table.d.ts +1 -1
- package/dist/cjs/interface/remove-table.d.ts.map +1 -1
- package/dist/cjs/interface/remove-table.js +72 -16
- package/dist/cjs/interface/slicers.d.ts +12 -1
- package/dist/cjs/interface/slicers.d.ts.map +1 -1
- package/dist/cjs/interface/slicers.js +47 -2
- package/dist/cjs/interface/spreadsheet-interface.d.ts +1 -1
- package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
- package/dist/cjs/interface/spreadsheet-interface.js +64 -1
- package/dist/cjs/interface/table-totalrow.d.ts +13 -1
- package/dist/cjs/interface/table-totalrow.d.ts.map +1 -1
- package/dist/cjs/interface/table-totalrow.js +107 -73
- package/dist/cjs/interface/table-utils.d.ts +59 -6
- package/dist/cjs/interface/table-utils.d.ts.map +1 -1
- package/dist/cjs/interface/table-utils.js +211 -15
- package/dist/cjs/interface/update-table.d.ts +16 -1
- package/dist/cjs/interface/update-table.d.ts.map +1 -1
- package/dist/cjs/interface/update-table.js +190 -44
- package/dist/cjs/sheet-cell.d.ts.map +1 -1
- package/dist/cjs/test-setup.d.ts.map +1 -1
- package/dist/cjs/test-setup.js +6 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/validation-schema/table.schema.d.ts +11 -0
- package/dist/cjs/validation-schema/table.schema.d.ts.map +1 -1
- package/dist/cjs/validation-schema/table.schema.js +20 -3
- package/dist/esm/api/anchored-objects.d.ts +122 -6
- package/dist/esm/api/anchored-objects.d.ts.map +1 -1
- package/dist/esm/api/anchored-objects.js +375 -15
- package/dist/esm/api/copy-paste.d.ts +8 -2
- package/dist/esm/api/copy-paste.d.ts.map +1 -1
- package/dist/esm/api/copy-paste.js +4 -4
- package/dist/esm/api/filter.d.ts +15 -1
- package/dist/esm/api/filter.d.ts.map +1 -1
- package/dist/esm/api/filter.js +28 -0
- package/dist/esm/api/formula.d.ts +63 -0
- package/dist/esm/api/formula.d.ts.map +1 -1
- package/dist/esm/api/formula.js +235 -8
- package/dist/esm/api/immer-utils.d.ts +11 -1
- package/dist/esm/api/immer-utils.d.ts.map +1 -1
- package/dist/esm/api/immer-utils.js +16 -0
- package/dist/esm/api/insert-cut-cells.d.ts +35 -0
- package/dist/esm/api/insert-cut-cells.d.ts.map +1 -0
- package/dist/esm/api/insert-cut-cells.js +67 -0
- package/dist/esm/api/merges.d.ts +8 -0
- package/dist/esm/api/merges.d.ts.map +1 -1
- package/dist/esm/api/merges.js +9 -0
- package/dist/esm/api/paint-format.d.ts +22 -1
- package/dist/esm/api/paint-format.d.ts.map +1 -1
- package/dist/esm/api/paint-format.js +44 -1
- package/dist/esm/api/sort.d.ts +23 -1
- package/dist/esm/api/sort.d.ts.map +1 -1
- package/dist/esm/api/sort.js +45 -6
- package/dist/esm/api/structural-guards.d.ts +57 -0
- package/dist/esm/api/structural-guards.d.ts.map +1 -1
- package/dist/esm/api/structural-guards.js +85 -0
- package/dist/esm/api/structural-table-refs.d.ts +58 -3
- package/dist/esm/api/structural-table-refs.d.ts.map +1 -1
- package/dist/esm/api/structural-table-refs.js +126 -6
- package/dist/esm/api/subtotal.d.ts +20 -13
- package/dist/esm/api/subtotal.d.ts.map +1 -1
- package/dist/esm/api/subtotal.js +15 -8
- package/dist/esm/api/table.d.ts +26 -2
- package/dist/esm/api/table.d.ts.map +1 -1
- package/dist/esm/api/table.js +70 -48
- package/dist/esm/api/validation.d.ts.map +1 -1
- package/dist/esm/api/validation.js +53 -8
- package/dist/esm/atoms/creating-table.atom.d.ts +22 -0
- package/dist/esm/atoms/creating-table.atom.d.ts.map +1 -0
- package/dist/esm/atoms/creating-table.atom.js +4 -0
- package/dist/esm/atoms/dialog-state.atom.d.ts +8 -0
- package/dist/esm/atoms/dialog-state.atom.d.ts.map +1 -1
- package/dist/esm/atoms/dialog-state.atom.js +12 -0
- package/dist/esm/atoms/editing-slicer.atom.d.ts +9 -0
- package/dist/esm/atoms/editing-slicer.atom.d.ts.map +1 -0
- package/dist/esm/atoms/editing-slicer.atom.js +6 -0
- package/dist/esm/atoms/index.d.ts +4 -0
- package/dist/esm/atoms/index.d.ts.map +1 -1
- package/dist/esm/atoms/index.js +4 -0
- package/dist/esm/atoms/inserting-slicer.atom.d.ts +8 -0
- package/dist/esm/atoms/inserting-slicer.atom.d.ts.map +1 -0
- package/dist/esm/atoms/inserting-slicer.atom.js +5 -0
- package/dist/esm/atoms/resizing-table.atom.d.ts +8 -0
- package/dist/esm/atoms/resizing-table.atom.d.ts.map +1 -0
- package/dist/esm/atoms/resizing-table.atom.js +5 -0
- package/dist/esm/commands.d.ts +138 -2
- package/dist/esm/commands.d.ts.map +1 -1
- package/dist/esm/components/editors/embed-editor.d.ts +4 -2
- package/dist/esm/components/editors/embed-editor.d.ts.map +1 -1
- package/dist/esm/components/editors/embed-editor.js +40 -6
- package/dist/esm/components/editors/slicer-editor.d.ts +15 -0
- package/dist/esm/components/editors/slicer-editor.d.ts.map +1 -0
- package/dist/esm/components/editors/slicer-editor.js +85 -0
- package/dist/esm/components/editors/table-editor.d.ts +58 -2
- package/dist/esm/components/editors/table-editor.d.ts.map +1 -1
- package/dist/esm/components/editors/table-editor.js +243 -19
- package/dist/esm/components/index.d.ts +1 -0
- package/dist/esm/components/index.d.ts.map +1 -1
- package/dist/esm/components/index.js +1 -0
- package/dist/esm/constants.d.ts +9 -1
- package/dist/esm/constants.d.ts.map +1 -1
- package/dist/esm/constants.js +12 -0
- package/dist/esm/generated-names.d.ts +13 -3
- package/dist/esm/generated-names.d.ts.map +1 -1
- package/dist/esm/generated-names.js +3 -1
- package/dist/esm/helpers.d.ts +5 -0
- package/dist/esm/helpers.d.ts.map +1 -1
- package/dist/esm/helpers.js +7 -1
- package/dist/esm/hooks/use-on-change-batch.d.ts +19 -2
- package/dist/esm/hooks/use-on-change-batch.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-change-batch.js +19 -3
- package/dist/esm/hooks/use-on-change-calculated-column.d.ts +10 -1
- package/dist/esm/hooks/use-on-change-calculated-column.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-change-calculated-column.js +17 -5
- package/dist/esm/hooks/use-on-change-table-column.d.ts +6 -1
- package/dist/esm/hooks/use-on-change-table-column.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-change-table-column.js +17 -5
- package/dist/esm/hooks/use-on-change.d.ts +36 -3
- package/dist/esm/hooks/use-on-change.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-change.js +214 -124
- package/dist/esm/hooks/use-on-copy.d.ts +1 -1
- package/dist/esm/hooks/use-on-copy.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-copy.js +2 -3
- package/dist/esm/hooks/use-on-create-custom-table-style.d.ts +17 -0
- package/dist/esm/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
- package/dist/esm/hooks/use-on-create-custom-table-style.js +26 -0
- package/dist/esm/hooks/use-on-create-named-range.d.ts +4 -2
- package/dist/esm/hooks/use-on-create-named-range.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-create-named-range.js +11 -1
- package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
- package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete-cells-shift-left.js +3 -1
- package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
- package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete-cells-shift-up.js +3 -1
- package/dist/esm/hooks/use-on-delete-column.d.ts +2 -1
- package/dist/esm/hooks/use-on-delete-column.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete-column.js +3 -1
- package/dist/esm/hooks/use-on-delete-row.d.ts +2 -1
- package/dist/esm/hooks/use-on-delete-row.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete-row.js +3 -1
- package/dist/esm/hooks/use-on-delete-sheet.d.ts +9 -1
- package/dist/esm/hooks/use-on-delete-sheet.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete-sheet.js +17 -1
- package/dist/esm/hooks/use-on-delete-table-row.d.ts +4 -1
- package/dist/esm/hooks/use-on-delete-table-row.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete-table-row.js +19 -1
- package/dist/esm/hooks/use-on-delete.d.ts +5 -2
- package/dist/esm/hooks/use-on-delete.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete.js +5 -1
- package/dist/esm/hooks/use-on-embeds.d.ts +7 -4
- package/dist/esm/hooks/use-on-embeds.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-embeds.js +23 -6
- package/dist/esm/hooks/use-on-fill.d.ts +17 -2
- package/dist/esm/hooks/use-on-fill.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-fill.js +27 -1
- package/dist/esm/hooks/use-on-filter-table.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-filter-table.js +97 -26
- package/dist/esm/hooks/use-on-import-excel.d.ts +2 -1
- package/dist/esm/hooks/use-on-import-excel.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-import-excel.js +4 -1
- package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
- package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-insert-cells-shift-down.js +3 -1
- package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
- package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-insert-cells-shift-right.js +3 -1
- package/dist/esm/hooks/use-on-insert-column.d.ts +2 -1
- package/dist/esm/hooks/use-on-insert-column.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-insert-column.js +3 -1
- package/dist/esm/hooks/use-on-insert-row.d.ts +2 -1
- package/dist/esm/hooks/use-on-insert-row.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-insert-row.js +3 -1
- package/dist/esm/hooks/use-on-insert-table-row.d.ts +5 -2
- package/dist/esm/hooks/use-on-insert-table-row.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-insert-table-row.js +19 -1
- package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
- package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-merge-unmerge-cells.js +12 -1
- package/dist/esm/hooks/use-on-move-columns.d.ts +4 -1
- package/dist/esm/hooks/use-on-move-columns.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-move-columns.js +28 -6
- package/dist/esm/hooks/use-on-move-rows.d.ts +18 -1
- package/dist/esm/hooks/use-on-move-rows.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-move-rows.js +44 -6
- package/dist/esm/hooks/use-on-move-selection.d.ts +9 -2
- package/dist/esm/hooks/use-on-move-selection.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-move-selection.js +57 -1
- package/dist/esm/hooks/use-on-paste.d.ts +33 -2
- package/dist/esm/hooks/use-on-paste.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-paste.js +825 -643
- package/dist/esm/hooks/use-on-remove-duplicates.d.ts +5 -2
- package/dist/esm/hooks/use-on-remove-duplicates.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-remove-duplicates.js +5 -1
- package/dist/esm/hooks/use-on-request-create-table.d.ts +13 -0
- package/dist/esm/hooks/use-on-request-create-table.d.ts.map +1 -0
- package/dist/esm/hooks/use-on-request-create-table.js +43 -0
- package/dist/esm/hooks/use-on-request-insert-slicer.d.ts +7 -0
- package/dist/esm/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
- package/dist/esm/hooks/use-on-request-insert-slicer.js +15 -0
- package/dist/esm/hooks/use-on-request-resize-table.d.ts +7 -0
- package/dist/esm/hooks/use-on-request-resize-table.d.ts.map +1 -0
- package/dist/esm/hooks/use-on-request-resize-table.js +15 -0
- package/dist/esm/hooks/use-on-resize-table.d.ts +5 -1
- package/dist/esm/hooks/use-on-resize-table.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-resize-table.js +107 -27
- package/dist/esm/hooks/use-on-sort-column.d.ts +28 -3
- package/dist/esm/hooks/use-on-sort-column.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-sort-column.js +105 -68
- package/dist/esm/hooks/use-on-sort-range.d.ts +26 -3
- package/dist/esm/hooks/use-on-sort-range.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-sort-range.js +100 -64
- package/dist/esm/hooks/use-on-sort-table.d.ts +18 -1
- package/dist/esm/hooks/use-on-sort-table.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-sort-table.js +107 -86
- package/dist/esm/hooks/use-on-subtotal.d.ts +10 -3
- package/dist/esm/hooks/use-on-subtotal.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-subtotal.js +7 -5
- package/dist/esm/hooks/use-on-table.d.ts +39 -7
- package/dist/esm/hooks/use-on-table.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-table.js +234 -26
- package/dist/esm/hooks/use-on-undo-calculated-column.d.ts +23 -0
- package/dist/esm/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
- package/dist/esm/hooks/use-on-undo-calculated-column.js +62 -0
- package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
- package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
- package/dist/esm/hooks/use-on-undo-table-auto-expansion.js +75 -0
- package/dist/esm/hooks/use-on-update-named-range.d.ts +4 -2
- package/dist/esm/hooks/use-on-update-named-range.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-update-named-range.js +13 -1
- package/dist/esm/hooks/use-sheet-properties.d.ts +1 -0
- package/dist/esm/hooks/use-sheet-properties.d.ts.map +1 -1
- package/dist/esm/hooks/use-sheet-properties.js +38 -19
- package/dist/esm/hooks/use-slicers.d.ts +2 -2
- package/dist/esm/hooks/use-slicers.d.ts.map +1 -1
- package/dist/esm/hooks/use-slicers.js +16 -8
- package/dist/esm/hooks/use-sparkline-groups.d.ts +50 -0
- package/dist/esm/hooks/use-sparkline-groups.d.ts.map +1 -0
- package/dist/esm/hooks/use-sparkline-groups.js +146 -0
- package/dist/esm/hooks/use-spreadsheet-state.d.ts +69 -12
- package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/esm/hooks/use-spreadsheet-state.js +321 -14
- package/dist/esm/hooks/use-structured-reference.d.ts.map +1 -1
- package/dist/esm/hooks/use-structured-reference.js +17 -0
- package/dist/esm/hooks/use-undo-redo-actions.d.ts +2 -1
- package/dist/esm/hooks/use-undo-redo-actions.d.ts.map +1 -1
- package/dist/esm/hooks/use-undo-redo-actions.js +8 -2
- package/dist/esm/hooks/use-undo-redo.d.ts +12 -0
- package/dist/esm/hooks/use-undo-redo.d.ts.map +1 -1
- package/dist/esm/hooks/use-undo-redo.js +158 -7
- package/dist/esm/hooks/utils/sort-rows.d.ts.map +1 -1
- package/dist/esm/hooks/utils/sort-rows.js +4 -3
- package/dist/esm/index.d.ts +8 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +9 -0
- package/dist/esm/interface/apply-fill.d.ts +26 -3
- package/dist/esm/interface/apply-fill.d.ts.map +1 -1
- package/dist/esm/interface/apply-fill.js +188 -88
- package/dist/esm/interface/change-batch.d.ts +1 -1
- package/dist/esm/interface/change-batch.d.ts.map +1 -1
- package/dist/esm/interface/change-batch.js +89 -8
- package/dist/esm/interface/change-calculated-column.d.ts +6 -2
- package/dist/esm/interface/change-calculated-column.d.ts.map +1 -1
- package/dist/esm/interface/change-calculated-column.js +81 -16
- package/dist/esm/interface/change-table-column.d.ts +81 -7
- package/dist/esm/interface/change-table-column.d.ts.map +1 -1
- package/dist/esm/interface/change-table-column.js +295 -67
- package/dist/esm/interface/create-table.d.ts +15 -3
- package/dist/esm/interface/create-table.d.ts.map +1 -1
- package/dist/esm/interface/create-table.js +103 -27
- package/dist/esm/interface/delete-cells-shift-left.d.ts +1 -1
- package/dist/esm/interface/delete-cells-shift-left.d.ts.map +1 -1
- package/dist/esm/interface/delete-cells-shift-left.js +10 -1
- package/dist/esm/interface/delete-cells-shift-up.d.ts +1 -1
- package/dist/esm/interface/delete-cells-shift-up.d.ts.map +1 -1
- package/dist/esm/interface/delete-cells-shift-up.js +10 -1
- package/dist/esm/interface/delete-cells.d.ts +1 -1
- package/dist/esm/interface/delete-cells.d.ts.map +1 -1
- package/dist/esm/interface/delete-cells.js +47 -14
- package/dist/esm/interface/delete-column.d.ts +1 -1
- package/dist/esm/interface/delete-column.d.ts.map +1 -1
- package/dist/esm/interface/delete-column.js +26 -30
- package/dist/esm/interface/delete-row.d.ts +1 -1
- package/dist/esm/interface/delete-row.d.ts.map +1 -1
- package/dist/esm/interface/delete-row.js +191 -44
- package/dist/esm/interface/delete-sheet.d.ts +2 -2
- package/dist/esm/interface/delete-sheet.d.ts.map +1 -1
- package/dist/esm/interface/delete-sheet.js +113 -1
- package/dist/esm/interface/delete-table-column.d.ts +1 -1
- package/dist/esm/interface/delete-table-column.d.ts.map +1 -1
- package/dist/esm/interface/delete-table-column.js +11 -1
- package/dist/esm/interface/delete-table-row.d.ts +1 -1
- package/dist/esm/interface/delete-table-row.d.ts.map +1 -1
- package/dist/esm/interface/delete-table-row.js +312 -232
- package/dist/esm/interface/duplicate-sheet.d.ts.map +1 -1
- package/dist/esm/interface/duplicate-sheet.js +73 -26
- package/dist/esm/interface/embeds.d.ts +10 -1
- package/dist/esm/interface/embeds.d.ts.map +1 -1
- package/dist/esm/interface/embeds.js +84 -5
- package/dist/esm/interface/insert-cells-shift-down.d.ts +1 -1
- package/dist/esm/interface/insert-cells-shift-down.d.ts.map +1 -1
- package/dist/esm/interface/insert-cells-shift-down.js +10 -1
- package/dist/esm/interface/insert-cells-shift-right.d.ts +1 -1
- package/dist/esm/interface/insert-cells-shift-right.d.ts.map +1 -1
- package/dist/esm/interface/insert-cells-shift-right.js +10 -1
- package/dist/esm/interface/insert-column.d.ts +2 -2
- package/dist/esm/interface/insert-column.d.ts.map +1 -1
- package/dist/esm/interface/insert-column.js +70 -33
- package/dist/esm/interface/insert-row.d.ts +1 -1
- package/dist/esm/interface/insert-row.d.ts.map +1 -1
- package/dist/esm/interface/insert-row.js +22 -6
- package/dist/esm/interface/insert-table-row.d.ts +2 -1
- package/dist/esm/interface/insert-table-row.d.ts.map +1 -1
- package/dist/esm/interface/insert-table-row.js +67 -12
- package/dist/esm/interface/remove-duplicates.d.ts +1 -1
- package/dist/esm/interface/remove-duplicates.d.ts.map +1 -1
- package/dist/esm/interface/remove-duplicates.js +41 -6
- package/dist/esm/interface/remove-table.d.ts +1 -1
- package/dist/esm/interface/remove-table.d.ts.map +1 -1
- package/dist/esm/interface/remove-table.js +58 -10
- package/dist/esm/interface/slicers.d.ts +12 -1
- package/dist/esm/interface/slicers.d.ts.map +1 -1
- package/dist/esm/interface/slicers.js +44 -2
- package/dist/esm/interface/spreadsheet-interface.d.ts +1 -1
- package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
- package/dist/esm/interface/spreadsheet-interface.js +73 -1
- package/dist/esm/interface/table-totalrow.d.ts +13 -1
- package/dist/esm/interface/table-totalrow.d.ts.map +1 -1
- package/dist/esm/interface/table-totalrow.js +98 -68
- package/dist/esm/interface/table-utils.d.ts +59 -6
- package/dist/esm/interface/table-utils.d.ts.map +1 -1
- package/dist/esm/interface/table-utils.js +155 -14
- package/dist/esm/interface/update-table.d.ts +16 -1
- package/dist/esm/interface/update-table.d.ts.map +1 -1
- package/dist/esm/interface/update-table.js +203 -42
- package/dist/esm/sheet-cell.d.ts.map +1 -1
- package/dist/esm/test-setup.d.ts.map +1 -1
- package/dist/esm/test-setup.js +6 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esm/validation-schema/table.schema.d.ts +11 -0
- package/dist/esm/validation-schema/table.schema.d.ts.map +1 -1
- package/dist/esm/validation-schema/table.schema.js +15 -2
- package/package.json +25 -17
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { __assign, __read, __values } from "tslib";
|
|
1
|
+
import { __assign, __read, __rest, __values } from "tslib";
|
|
2
2
|
import { isCellNode } from "@rowsncolumns/dag";
|
|
3
3
|
import { addressToCell, getCellUserEnteredValue, getExtendedValueFormula, } from "@rowsncolumns/utils";
|
|
4
4
|
import { SheetCell } from "../sheet-cell";
|
|
5
|
-
import { breakTableColumnsInFormula, breakTableReferencesInFormula, createSheetCellIdentifier, } from "./formula";
|
|
5
|
+
import { breakTableColumnsInFormula, breakTableReferencesInFormula, convertStructuredRefsToA1InFormula, createSheetCellIdentifier, renameTableColumnsInFormula, renameTableInFormula, } from "./formula";
|
|
6
6
|
import { createSheetDraft } from "./immer-utils";
|
|
7
7
|
/**
|
|
8
|
-
* Which tables / table columns `deleteRow` (a table goes
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* Which tables / table columns `deleteRow` (a table goes only when every one
|
|
9
|
+
* of its rows is deleted — losing its header row keeps it, the next row
|
|
10
|
+
* becomes the header) or `deleteColumn` (a table goes when every column is
|
|
11
|
+
* deleted; otherwise the covered columns are spliced out) removes for the band
|
|
11
12
|
* `[minIndex, maxIndex]` on `sheetId`. Mirrors the table updates those
|
|
12
13
|
* interfaces apply to `tables`.
|
|
13
14
|
*/
|
|
@@ -21,13 +22,13 @@ export var collectRemovedTableParts = function (tables, sheetId, axis, minIndex,
|
|
|
21
22
|
if (table.sheetId !== sheetId || !table.title)
|
|
22
23
|
continue;
|
|
23
24
|
if (axis === "row") {
|
|
24
|
-
var
|
|
25
|
-
if (
|
|
25
|
+
var _f = table.range, startRowIndex = _f.startRowIndex, endRowIndex = _f.endRowIndex;
|
|
26
|
+
if (minIndex <= startRowIndex && maxIndex >= endRowIndex) {
|
|
26
27
|
removed.tables.push(table.title);
|
|
27
28
|
}
|
|
28
29
|
continue;
|
|
29
30
|
}
|
|
30
|
-
var
|
|
31
|
+
var _g = table.range, startColumnIndex = _g.startColumnIndex, endColumnIndex = _g.endColumnIndex;
|
|
31
32
|
if (maxIndex < startColumnIndex || minIndex > endColumnIndex)
|
|
32
33
|
continue;
|
|
33
34
|
if (minIndex <= startColumnIndex && maxIndex >= endColumnIndex) {
|
|
@@ -157,8 +158,168 @@ export var breakStructuredRefsForRemovedTableParts = function (_a) {
|
|
|
157
158
|
finally { if (e_2) throw e_2.error; }
|
|
158
159
|
}
|
|
159
160
|
};
|
|
161
|
+
/**
|
|
162
|
+
* Apply `rewrite` to the text of every formula cell across all sheets (from
|
|
163
|
+
* the dependency graph when available, else a draft sweep), writing back the
|
|
164
|
+
* ones it changed and re-entering them in the graph for recalculation. Cells
|
|
165
|
+
* keep their position — this is the in-place rewrite behind a table / table
|
|
166
|
+
* column rename.
|
|
167
|
+
*/
|
|
168
|
+
var rewriteFormulasInDraft = function (_a, rewrite) {
|
|
169
|
+
var e_5, _b;
|
|
170
|
+
var _c, _d;
|
|
171
|
+
var draft = _a.draft, getGraphNodes = _a.getGraphNodes, enqueueCalculation = _a.enqueueCalculation, enqueueGraphOperation = _a.enqueueGraphOperation, recalcCells = _a.recalcCells, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry;
|
|
172
|
+
var sheetCell = new SheetCell();
|
|
173
|
+
try {
|
|
174
|
+
for (var _e = __values(collectFormulaPositions(draft, getGraphNodes)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
175
|
+
var pos = _f.value;
|
|
176
|
+
var currentSheet = createSheetDraft(draft, pos.sheetId, pos.rowIndex);
|
|
177
|
+
var cellData = (_d = (_c = currentSheet[pos.rowIndex]) === null || _c === void 0 ? void 0 : _c.values) === null || _d === void 0 ? void 0 : _d[pos.columnIndex];
|
|
178
|
+
var formula = getExtendedValueFormula(getCellUserEnteredValue(cellData));
|
|
179
|
+
if (!formula || !formula.includes("["))
|
|
180
|
+
continue;
|
|
181
|
+
var updated = rewrite(formula, pos);
|
|
182
|
+
if (updated === formula)
|
|
183
|
+
continue;
|
|
184
|
+
sheetCell.assign(pos.sheetId, { rowIndex: pos.rowIndex, columnIndex: pos.columnIndex }, cellData, { locale: locale, cellXfsRegistry: cellXfsRegistry, sharedStringRegistry: sharedStringRegistry });
|
|
185
|
+
sheetCell.setFormulaValue(updated, false);
|
|
186
|
+
currentSheet[pos.rowIndex].values[pos.columnIndex] =
|
|
187
|
+
sheetCell.getCellData();
|
|
188
|
+
var enqueueOperation = sheetCell.ephemeral()
|
|
189
|
+
? enqueueCalculation
|
|
190
|
+
: enqueueGraphOperation;
|
|
191
|
+
enqueueOperation === null || enqueueOperation === void 0 ? void 0 : enqueueOperation({ type: "remove", position: pos });
|
|
192
|
+
enqueueOperation === null || enqueueOperation === void 0 ? void 0 : enqueueOperation({ type: "add", position: pos, force: true });
|
|
193
|
+
recalcCells.set(createSheetCellIdentifier(pos.sheetId, pos.rowIndex, pos.columnIndex), __assign(__assign({}, pos), { force: true }));
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
197
|
+
finally {
|
|
198
|
+
try {
|
|
199
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
200
|
+
}
|
|
201
|
+
finally { if (e_5) throw e_5.error; }
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* Column `oldName` of `table` was renamed `newName` (a header-cell edit):
|
|
206
|
+
* rewrite every structured reference to it across the workbook, including the
|
|
207
|
+
* bare `[@Old]` forms of the formulas that sit inside the table.
|
|
208
|
+
*/
|
|
209
|
+
export var renameTableColumnInFormulas = function (_a) {
|
|
210
|
+
var table = _a.table, oldName = _a.oldName, newName = _a.newName, params = __rest(_a, ["table", "oldName", "newName"]);
|
|
211
|
+
if (!oldName || !newName || oldName === newName)
|
|
212
|
+
return;
|
|
213
|
+
renameTableColumnsInFormulas(__assign(__assign({}, params), { table: table, renames: new Map([[oldName.toLowerCase(), newName]]) }));
|
|
214
|
+
};
|
|
215
|
+
/**
|
|
216
|
+
* Several columns of `table` were renamed at once (a header row re-derived
|
|
217
|
+
* after a row delete, several header cells written by one paste /
|
|
218
|
+
* change-batch): `renames` maps each LOWER-CASED old name to its new name and
|
|
219
|
+
* every formula is rewritten in ONE pass, so `Name` → `Qty` and `Qty` → `Name`
|
|
220
|
+
* swap instead of chaining into the same column.
|
|
221
|
+
*/
|
|
222
|
+
export var renameTableColumnsInFormulas = function (_a) {
|
|
223
|
+
var table = _a.table, renames = _a.renames, params = __rest(_a, ["table", "renames"]);
|
|
224
|
+
if (renames.size === 0)
|
|
225
|
+
return;
|
|
226
|
+
rewriteFormulasInDraft(params, function (formula, pos) {
|
|
227
|
+
var updated = table.title
|
|
228
|
+
? renameTableColumnsInFormula(formula, table.title, renames)
|
|
229
|
+
: formula;
|
|
230
|
+
if (pos.sheetId === table.sheetId &&
|
|
231
|
+
isWithinRange(table.range, pos.rowIndex, pos.columnIndex)) {
|
|
232
|
+
updated = renameTableColumnsInFormula(updated, undefined, renames);
|
|
233
|
+
}
|
|
234
|
+
return updated;
|
|
235
|
+
});
|
|
236
|
+
};
|
|
237
|
+
/**
|
|
238
|
+
* The header cells one write renamed (`planHeaderCellRenames`), applied per
|
|
239
|
+
* table as a single multi-column rename.
|
|
240
|
+
*/
|
|
241
|
+
export var renameHeaderCellsInFormulas = function (_a) {
|
|
242
|
+
var e_6, _b, e_7, _c;
|
|
243
|
+
var _d;
|
|
244
|
+
var headerRenames = _a.headerRenames, params = __rest(_a, ["headerRenames"]);
|
|
245
|
+
var byTable = new Map();
|
|
246
|
+
try {
|
|
247
|
+
for (var headerRenames_1 = __values(headerRenames), headerRenames_1_1 = headerRenames_1.next(); !headerRenames_1_1.done; headerRenames_1_1 = headerRenames_1.next()) {
|
|
248
|
+
var _e = headerRenames_1_1.value, table = _e.table, oldName = _e.oldName, newName = _e.newName;
|
|
249
|
+
if (!oldName || oldName === newName)
|
|
250
|
+
continue;
|
|
251
|
+
var entry = (_d = byTable.get(table.id)) !== null && _d !== void 0 ? _d : { table: table, renames: new Map() };
|
|
252
|
+
entry.renames.set(oldName.toLowerCase(), newName);
|
|
253
|
+
byTable.set(table.id, entry);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
257
|
+
finally {
|
|
258
|
+
try {
|
|
259
|
+
if (headerRenames_1_1 && !headerRenames_1_1.done && (_b = headerRenames_1.return)) _b.call(headerRenames_1);
|
|
260
|
+
}
|
|
261
|
+
finally { if (e_6) throw e_6.error; }
|
|
262
|
+
}
|
|
263
|
+
try {
|
|
264
|
+
for (var _f = __values(byTable.values()), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
265
|
+
var _h = _g.value, table = _h.table, renames = _h.renames;
|
|
266
|
+
renameTableColumnsInFormulas(__assign(__assign({}, params), { table: table, renames: renames }));
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
270
|
+
finally {
|
|
271
|
+
try {
|
|
272
|
+
if (_g && !_g.done && (_c = _f.return)) _c.call(_f);
|
|
273
|
+
}
|
|
274
|
+
finally { if (e_7) throw e_7.error; }
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
/**
|
|
278
|
+
* `table` is being converted to a range (Excel's Convert to Range): rewrite
|
|
279
|
+
* every structured reference into it across the workbook to the A1 reference
|
|
280
|
+
* it resolves to — `T[Col]` → `$B$2:$B$9`, `[@Col]` → `B3`,
|
|
281
|
+
* `T[[#Headers],[Col]]` → `$B$1`, qualified with the table's sheet from another
|
|
282
|
+
* sheet — so the formulas keep their values once the table is gone. Runs
|
|
283
|
+
* BEFORE the table is removed; the bare `[@Col]` forms belong to the formulas
|
|
284
|
+
* that sit inside the table.
|
|
285
|
+
*/
|
|
286
|
+
export var convertTableReferencesToA1InFormulas = function (_a) {
|
|
287
|
+
var _b;
|
|
288
|
+
var table = _a.table, getSheetName = _a.getSheetName, params = __rest(_a, ["table", "getSheetName"]);
|
|
289
|
+
if (!table.title)
|
|
290
|
+
return;
|
|
291
|
+
var target = {
|
|
292
|
+
title: table.title,
|
|
293
|
+
range: table.range,
|
|
294
|
+
headerRow: table.headerRow,
|
|
295
|
+
totalRow: table.totalRow,
|
|
296
|
+
columnNames: ((_b = table.columns) !== null && _b !== void 0 ? _b : []).map(function (column) { return column.name; }),
|
|
297
|
+
};
|
|
298
|
+
var tableSheetName = getSheetName(table.sheetId);
|
|
299
|
+
rewriteFormulasInDraft(params, function (formula, pos) {
|
|
300
|
+
return convertStructuredRefsToA1InFormula(formula, target, {
|
|
301
|
+
tableSheetName: tableSheetName,
|
|
302
|
+
formulaSheetName: getSheetName(pos.sheetId),
|
|
303
|
+
formulaRowIndex: pos.rowIndex,
|
|
304
|
+
inTable: pos.sheetId === table.sheetId &&
|
|
305
|
+
isWithinRange(table.range, pos.rowIndex, pos.columnIndex),
|
|
306
|
+
});
|
|
307
|
+
});
|
|
308
|
+
};
|
|
309
|
+
/**
|
|
310
|
+
* Table `oldName` was renamed `newName` (the Edit Table dialog / `updateTable`):
|
|
311
|
+
* rewrite `Old[…]` → `New[…]` in every formula across the workbook.
|
|
312
|
+
*/
|
|
313
|
+
export var renameTableInFormulas = function (_a) {
|
|
314
|
+
var oldName = _a.oldName, newName = _a.newName, params = __rest(_a, ["oldName", "newName"]);
|
|
315
|
+
if (!oldName || !newName || oldName === newName)
|
|
316
|
+
return;
|
|
317
|
+
rewriteFormulasInDraft(params, function (formula) {
|
|
318
|
+
return renameTableInFormula(formula, oldName, newName);
|
|
319
|
+
});
|
|
320
|
+
};
|
|
160
321
|
var collectFormulaPositions = function (draft, getGraphNodes) {
|
|
161
|
-
var
|
|
322
|
+
var e_8, _a, e_9, _b;
|
|
162
323
|
if (getGraphNodes) {
|
|
163
324
|
var graphNodes = void 0;
|
|
164
325
|
try {
|
|
@@ -179,12 +340,12 @@ var collectFormulaPositions = function (draft, getGraphNodes) {
|
|
|
179
340
|
positions_1.push(__assign({}, node.position));
|
|
180
341
|
}
|
|
181
342
|
}
|
|
182
|
-
catch (
|
|
343
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
183
344
|
finally {
|
|
184
345
|
try {
|
|
185
346
|
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
186
347
|
}
|
|
187
|
-
finally { if (
|
|
348
|
+
finally { if (e_8) throw e_8.error; }
|
|
188
349
|
}
|
|
189
350
|
if (sawNode)
|
|
190
351
|
return positions_1;
|
|
@@ -212,17 +373,17 @@ var collectFormulaPositions = function (draft, getGraphNodes) {
|
|
|
212
373
|
_loop_1(key);
|
|
213
374
|
}
|
|
214
375
|
}
|
|
215
|
-
catch (
|
|
376
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
216
377
|
finally {
|
|
217
378
|
try {
|
|
218
379
|
if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
|
|
219
380
|
}
|
|
220
|
-
finally { if (
|
|
381
|
+
finally { if (e_9) throw e_9.error; }
|
|
221
382
|
}
|
|
222
383
|
return positions;
|
|
223
384
|
};
|
|
224
385
|
export var removeSpillsOfDeletedAnchors = function (_a) {
|
|
225
|
-
var
|
|
386
|
+
var e_10, _b;
|
|
226
387
|
var _c, _d, _e;
|
|
227
388
|
var draft = _a.draft, sheetId = _a.sheetId, axis = _a.axis, minIndex = _a.minIndex, maxIndex = _a.maxIndex, getArrayRange = _a.getArrayRange, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry;
|
|
228
389
|
var sheetRows = draft[sheetId];
|
|
@@ -287,12 +448,12 @@ export var removeSpillsOfDeletedAnchors = function (_a) {
|
|
|
287
448
|
}
|
|
288
449
|
}
|
|
289
450
|
}
|
|
290
|
-
catch (
|
|
451
|
+
catch (e_10_1) { e_10 = { error: e_10_1 }; }
|
|
291
452
|
finally {
|
|
292
453
|
try {
|
|
293
454
|
if (anchors_1_1 && !anchors_1_1.done && (_b = anchors_1.return)) _b.call(anchors_1);
|
|
294
455
|
}
|
|
295
|
-
finally { if (
|
|
456
|
+
finally { if (e_10) throw e_10.error; }
|
|
296
457
|
}
|
|
297
458
|
};
|
|
298
459
|
/** `C1:C3` (the anchor's persisted `af`) → its rectangle; `undefined` when absent/unparseable. */
|
|
@@ -30,22 +30,29 @@ export type SubtotalWrite = {
|
|
|
30
30
|
values: (string | null)[];
|
|
31
31
|
};
|
|
32
32
|
/**
|
|
33
|
-
* The plan applies in this order
|
|
34
|
-
* (the sheet after all removals and insertions):
|
|
33
|
+
* The plan applies in this order:
|
|
35
34
|
* 1. `deleteRows` (descending original indexes — existing subtotal rows),
|
|
36
|
-
* 2. `
|
|
35
|
+
* 2. `ungroupRows`: one `ungroup-rows` call per entry — the outline reset of
|
|
36
|
+
* "Replace current subtotals" — in the coordinates of the sheet AFTER the
|
|
37
|
+
* deletes and BEFORE the inserts (the surviving data rows, compacted).
|
|
38
|
+
* Group / ungroup are ±1 steps in both engines, so pass `k` lists the
|
|
39
|
+
* surviving data rows that were deeper than level `k`; after the passes
|
|
40
|
+
* every surviving row is back at level 0 (empty when nothing was outlined
|
|
41
|
+
* or when not replacing). The reset has to precede the inserts: an
|
|
42
|
+
* inserted row takes the row above's outline level in both engines
|
|
43
|
+
* (Excel's "Format Same As Above" — a row inserted inside a group joins
|
|
44
|
+
* it), so the total rows must be inserted next to level-0 rows — Excel's
|
|
45
|
+
* own order: remove the subtotals, rows and outline, then apply afresh.
|
|
46
|
+
* 3. `insertRows` ascending, in FINAL coordinates (the sheet after all
|
|
47
|
+
* removals and insertions): inserting at final row `r` shifts the not-yet
|
|
37
48
|
* final rows below it, so ascending order lands each new row exactly
|
|
38
49
|
* where the plan expects it,
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* 5. `outlineGroups`: one `group-rows` call per entry (Excel's levels — the
|
|
46
|
-
* first spans every row above the grand total, the second the detail
|
|
47
|
-
* rows of each group, so detail rows end at level 2 and subtotal rows
|
|
48
|
-
* at level 1 — the same three-level outline on every re-apply).
|
|
50
|
+
* 4. `writes` (labels + SUBTOTAL formulas), final coordinates, then
|
|
51
|
+
* 5. `outlineGroups`: one `group-rows` call per entry, final coordinates
|
|
52
|
+
* (Excel's levels — the first spans every row above the grand total, the
|
|
53
|
+
* second the detail rows of each group, so detail rows end at level 2 and
|
|
54
|
+
* subtotal rows at level 1 — the same three-level outline on every
|
|
55
|
+
* re-apply).
|
|
49
56
|
*/
|
|
50
57
|
export type SubtotalPlan = {
|
|
51
58
|
deleteRows: number[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subtotal.d.ts","sourceRoot":"","sources":["../../../api/subtotal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EACL,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAYtE,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,0BAA0B,gBAAgB,CAAC;AACxD,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM,WACP,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAClG,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC1E,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC5D,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;CAC3B,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"subtotal.d.ts","sourceRoot":"","sources":["../../../api/subtotal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EACL,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAYtE,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,0BAA0B,gBAAgB,CAAC;AACxD,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM,WACP,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAClG,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC1E,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC5D,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;CAC3B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC;IAC1B,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,WAAW,EAAE,SAAS,CAAC;CACxB,CAAC;AAcF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,eAAe,EACxB,QAAQ,cAAc,KACrB,YAAY,GAAG,SA8HjB,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC7D,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpF,aAAa,EAAE,CACb,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,KACxB,IAAI,CAAC;IACV,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC7D,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAChE,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,MAAM,YAAY,EAClB,UAAU,oBAAoB,SA0B/B,CAAC"}
|
package/dist/cjs/api/subtotal.js
CHANGED
|
@@ -127,9 +127,13 @@ export var planSubtotals = function (options, reader) {
|
|
|
127
127
|
return values;
|
|
128
128
|
};
|
|
129
129
|
// "Replace current subtotals": the surviving data rows carry the previous
|
|
130
|
-
// outline (detail rows at 2, or deeper after repeated applies)
|
|
131
|
-
//
|
|
132
|
-
//
|
|
130
|
+
// outline (detail rows at 2, or deeper after repeated applies) past the
|
|
131
|
+
// deletes, and a total row inserted below one of them would inherit that
|
|
132
|
+
// level (both engines give an inserted row the row above's outline level).
|
|
133
|
+
// So the reset runs between the deletes and the inserts, addressed to the
|
|
134
|
+
// compacted survivors — the k-th surviving data row sits at
|
|
135
|
+
// `firstDataRow + k` once the old total rows are gone — and records how
|
|
136
|
+
// many ungroup steps each needs before the fresh levels go on.
|
|
133
137
|
var ungroupRows = [];
|
|
134
138
|
var dataRowCursor = 0;
|
|
135
139
|
var cursor = firstDataRow;
|
|
@@ -138,10 +142,11 @@ export var planSubtotals = function (options, reader) {
|
|
|
138
142
|
var group = groups_1_1.value;
|
|
139
143
|
var groupStart = cursor;
|
|
140
144
|
for (var i = 0; i < group.size; i++) {
|
|
145
|
+
var compactedRow = firstDataRow + dataRowCursor;
|
|
141
146
|
var originalRow = dataRows[dataRowCursor++];
|
|
142
147
|
var level = replaceCurrent ? ((_d = (_c = reader.getOutlineLevel) === null || _c === void 0 ? void 0 : _c.call(reader, originalRow)) !== null && _d !== void 0 ? _d : 0) : 0;
|
|
143
148
|
for (var pass = 0; pass < level; pass++) {
|
|
144
|
-
((_e = ungroupRows[pass]) !== null && _e !== void 0 ? _e : (ungroupRows[pass] = [])).push(
|
|
149
|
+
((_e = ungroupRows[pass]) !== null && _e !== void 0 ? _e : (ungroupRows[pass] = [])).push(compactedRow);
|
|
145
150
|
}
|
|
146
151
|
detailRows.push(cursor++);
|
|
147
152
|
}
|
|
@@ -189,9 +194,12 @@ export var applySubtotalPlan = function (sheetId, plan, executor) {
|
|
|
189
194
|
if (plan.deleteRows.length)
|
|
190
195
|
executor.onDeleteRow(sheetId, plan.deleteRows);
|
|
191
196
|
try {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
197
|
+
// Outline reset before the inserts: the new total rows inherit the level of
|
|
198
|
+
// the row above them, which must already be 0 (see `SubtotalPlan`).
|
|
199
|
+
for (var _e = __values(plan.ungroupRows), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
200
|
+
var rows = _f.value;
|
|
201
|
+
if (rows.length)
|
|
202
|
+
executor.onUngroupRows(sheetId, rows);
|
|
195
203
|
}
|
|
196
204
|
}
|
|
197
205
|
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
@@ -202,14 +210,9 @@ export var applySubtotalPlan = function (sheetId, plan, executor) {
|
|
|
202
210
|
finally { if (e_3) throw e_3.error; }
|
|
203
211
|
}
|
|
204
212
|
try {
|
|
205
|
-
for (var _g = __values(plan.
|
|
206
|
-
var
|
|
207
|
-
executor.
|
|
208
|
-
startRowIndex: write.rowIndex,
|
|
209
|
-
endRowIndex: write.rowIndex,
|
|
210
|
-
startColumnIndex: write.startColumnIndex,
|
|
211
|
-
endColumnIndex: write.startColumnIndex + write.values.length - 1,
|
|
212
|
-
}, [write.values]);
|
|
213
|
+
for (var _g = __values(plan.insertRows), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
214
|
+
var rowIndex = _h.value;
|
|
215
|
+
executor.onInsertRow(sheetId, rowIndex, 1);
|
|
213
216
|
}
|
|
214
217
|
}
|
|
215
218
|
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
@@ -220,10 +223,14 @@ export var applySubtotalPlan = function (sheetId, plan, executor) {
|
|
|
220
223
|
finally { if (e_4) throw e_4.error; }
|
|
221
224
|
}
|
|
222
225
|
try {
|
|
223
|
-
for (var _j = __values(plan.
|
|
224
|
-
var
|
|
225
|
-
|
|
226
|
-
|
|
226
|
+
for (var _j = __values(plan.writes), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
227
|
+
var write = _k.value;
|
|
228
|
+
executor.onChangeBatch(sheetId, {
|
|
229
|
+
startRowIndex: write.rowIndex,
|
|
230
|
+
endRowIndex: write.rowIndex,
|
|
231
|
+
startColumnIndex: write.startColumnIndex,
|
|
232
|
+
endColumnIndex: write.startColumnIndex + write.values.length - 1,
|
|
233
|
+
}, [write.values]);
|
|
227
234
|
}
|
|
228
235
|
}
|
|
229
236
|
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
package/dist/cjs/api/table.d.ts
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
import { type ParsedToken } from "@rowsncolumns/calculator";
|
|
2
|
-
import type { CellInterface, GridRange } from "@rowsncolumns/common-types";
|
|
2
|
+
import type { CellInterface, ExtendedValue, GridRange } from "@rowsncolumns/common-types";
|
|
3
3
|
import type { BandedRange, FilterView, TableView } from "@rowsncolumns/spreadsheet";
|
|
4
|
+
/**
|
|
5
|
+
* Excel's default for the Create Table dialog's "My table has headers": checked when the
|
|
6
|
+
* range's first row reads as a header row — it holds at least one value, every value in it is
|
|
7
|
+
* text (a number or boolean there means the data starts on the first row), and at least one row
|
|
8
|
+
* of data lies below it. A single-row range defaults to unchecked.
|
|
9
|
+
*/
|
|
10
|
+
export declare const guessTableHasHeaders: ({ sheetId, range, getEffectiveExtendedValue, }: {
|
|
11
|
+
sheetId: number;
|
|
12
|
+
range: GridRange;
|
|
13
|
+
getEffectiveExtendedValue: (sheetId: number, rowIndex: number, columnIndex: number) => ExtendedValue | null | undefined;
|
|
14
|
+
}) => boolean;
|
|
4
15
|
/**
|
|
5
16
|
* Get table column index
|
|
6
17
|
* @param sheetId
|
|
@@ -25,7 +36,20 @@ export declare const findAdjacentTable: (sheetId: number, cell: CellInterface, t
|
|
|
25
36
|
* @returns
|
|
26
37
|
*/
|
|
27
38
|
export declare const findAdjacentBandedRange: (sheetId: number, cell: CellInterface, bandedRanges: BandedRange[] | undefined, getUserEnteredValue: (sheetId: number, rowIndex: number, columnIndex: number) => string | undefined) => readonly [BandedRange | undefined, boolean, boolean];
|
|
28
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Excel's calculated-column fill decision, shared with the Rust engine's
|
|
41
|
+
* `auto_fill_calculated_column` (rowsncolumns/spreadsheet#681): a formula just
|
|
42
|
+
* written into a table body cell fills the whole column when every OTHER body
|
|
43
|
+
* cell of that column is either empty (a fresh column) or holds the same
|
|
44
|
+
* formula relative to its row (a consistent calculated column, which the new
|
|
45
|
+
* formula overwrites). A literal anywhere, or two rows that disagree, leave
|
|
46
|
+
* the edit a one-cell exception. The column's cells are the reference — not
|
|
47
|
+
* the formula recorded on `columns[].formula`, which has no row of its own —
|
|
48
|
+
* so the overwrite works from any row, not only the one the column was
|
|
49
|
+
* created from (#668 T-50). A consistent column is a calculated column
|
|
50
|
+
* whatever its formula references (`=TODAY()`, `=1`), like Excel (#668 T-29).
|
|
51
|
+
*/
|
|
52
|
+
export declare const isTableColumnCellsFillable: (sheetId: number, range: GridRange, excludeCell: CellInterface, currentValue: string | boolean | undefined, activeSheetName: string, getUserEnteredValue: (sheetId: number, rowIndex: number, columnIndex: number) => string | undefined) => boolean;
|
|
29
53
|
export declare const addTableNameToTokens: (tokens: ParsedToken[], title: string) => string;
|
|
30
54
|
export declare const removeTableName: (tokens: ParsedToken[], title: string) => string;
|
|
31
55
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../api/table.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../api/table.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAEjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,SAAS,EACV,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACV,MAAM,2BAA2B,CAAC;AAmBnC;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,gDAIlC;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,yBAAyB,EAAE,CACzB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,aAAa,GAAG,IAAI,GAAG,SAAS,CAAC;CACvC,KAAG,OA8BH,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,MAAM,aAAa,EACnB,QAAQ,SAAS,EAAE,GAAG,SAAS,uBAiBhC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,SAAS,MAAM,EACf,MAAM,aAAa,EACnB,QAAQ,SAAS,EAAE,GAAG,SAAS,GAAG,IAAI,0BAMvC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,MAAM,aAAa,EACnB,QAAQ,SAAS,EAAE,GAAG,SAAS,EAC/B,qBAAqB,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,MAAM,GAAG,SAAS,uDA8DxB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,MAAM,aAAa,EACnB,cAAc,WAAW,EAAE,GAAG,SAAS,EACvC,qBAAqB,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,MAAM,GAAG,SAAS,yDA8CxB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,EACf,OAAO,SAAS,EAChB,aAAa,aAAa,EAC1B,cAAc,MAAM,GAAG,OAAO,GAAG,SAAS,EAC1C,iBAAiB,MAAM,EACvB,qBAAqB,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,MAAM,GAAG,SAAS,YAuDxB,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAAI,QAAQ,WAAW,EAAE,EAAE,OAAO,MAAM,WAyBxE,CAAC;AAcF,eAAO,MAAM,eAAe,GAAI,QAAQ,WAAW,EAAE,EAAE,OAAO,MAAM,WA2BnE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC/B,OAAO,SAAS,GAAG,UAAU,EAC7B,MAAM,MAAM,EAAE,EACd,gBAAgB,MAAM,SAoDvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,OAAO,SAAS,GAAG,UAAU,EAC7B,MAAM,MAAM,EAAE,EACd,gBAAgB,MAAM,SAoDvB,CAAC"}
|
package/dist/cjs/api/table.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
var _a, _b, _c;
|
|
2
1
|
import { __assign, __read, __spreadArray, __values } from "tslib";
|
|
3
|
-
import {
|
|
2
|
+
import { tokenVocabulary, } from "@rowsncolumns/calculator";
|
|
4
3
|
import { Direction } from "@rowsncolumns/common-types";
|
|
5
|
-
import { isAFormula, isCellWithinBounds, isNil, iterateCellsInRange, } from "@rowsncolumns/utils";
|
|
4
|
+
import { areaIntersects, isAFormula, isCellWithinBounds, isNil, iterateCellsInRange, } from "@rowsncolumns/utils";
|
|
6
5
|
import { SheetCell } from "../sheet-cell";
|
|
7
6
|
import { detokenize } from "./formula";
|
|
8
7
|
import { moveFilterView, moveRange } from "./selection";
|
|
@@ -12,6 +11,35 @@ var isTableColumnToken = function (token) {
|
|
|
12
11
|
var isTableNameToken = function (token) {
|
|
13
12
|
return token.tokenType.name === tokenVocabulary.TableName.name;
|
|
14
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* Excel's default for the Create Table dialog's "My table has headers": checked when the
|
|
16
|
+
* range's first row reads as a header row — it holds at least one value, every value in it is
|
|
17
|
+
* text (a number or boolean there means the data starts on the first row), and at least one row
|
|
18
|
+
* of data lies below it. A single-row range defaults to unchecked.
|
|
19
|
+
*/
|
|
20
|
+
export var guessTableHasHeaders = function (_a) {
|
|
21
|
+
var _b, _c, _d;
|
|
22
|
+
var sheetId = _a.sheetId, range = _a.range, getEffectiveExtendedValue = _a.getEffectiveExtendedValue;
|
|
23
|
+
if (range.endRowIndex <= range.startRowIndex) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
var sawText = false;
|
|
27
|
+
for (var columnIndex = range.startColumnIndex; columnIndex <= range.endColumnIndex; columnIndex++) {
|
|
28
|
+
var value = getEffectiveExtendedValue(sheetId, range.startRowIndex, columnIndex);
|
|
29
|
+
if (!value) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (!isNil((_b = value.nv) !== null && _b !== void 0 ? _b : value.numberValue) ||
|
|
33
|
+
!isNil((_c = value.bv) !== null && _c !== void 0 ? _c : value.boolValue)) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
var text = (_d = value.sv) !== null && _d !== void 0 ? _d : value.stringValue;
|
|
37
|
+
if (!isNil(text) && text !== "") {
|
|
38
|
+
sawText = true;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return sawText;
|
|
42
|
+
};
|
|
15
43
|
/**
|
|
16
44
|
* Get table column index
|
|
17
45
|
* @param sheetId
|
|
@@ -75,15 +103,25 @@ export var findAdjacentTable = function (sheetId, cell, tables, getUserEnteredVa
|
|
|
75
103
|
startColumnIndex: cell.columnIndex,
|
|
76
104
|
endColumnIndex: cell.columnIndex,
|
|
77
105
|
}));
|
|
106
|
+
// Excel never merges tables: a line that belongs to another table is not free to grow over.
|
|
107
|
+
if (tables === null || tables === void 0 ? void 0 : tables.some(function (other) {
|
|
108
|
+
return other.id !== table.id &&
|
|
109
|
+
other.sheetId === sheetId &&
|
|
110
|
+
areaIntersects(other.range, lookupRange);
|
|
111
|
+
})) {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
78
114
|
return (isAdjacent &&
|
|
79
115
|
__spreadArray([], __read(iterateCellsInRange(lookupRange)), false).every(function (_a) {
|
|
80
116
|
var _b = __read(_a, 2), rowIndex = _b[0], columnIndex = _b[1];
|
|
81
117
|
return isNil(getUserEnteredValue(sheetId, rowIndex, columnIndex));
|
|
82
118
|
}));
|
|
83
119
|
});
|
|
84
|
-
|
|
120
|
+
// A table with a totals row never grows by rows (Excel): the cell right of its totals row is
|
|
121
|
+
// a column expansion only.
|
|
85
122
|
var isRowExpansion = adjacentTable
|
|
86
|
-
? adjacentTable.range.endRowIndex + 1
|
|
123
|
+
? adjacentTable.range.endRowIndex + 1 === cell.rowIndex &&
|
|
124
|
+
!adjacentTable.totalRow
|
|
87
125
|
: false;
|
|
88
126
|
var isColumnExpansion = adjacentTable
|
|
89
127
|
? adjacentTable.range.endColumnIndex + 1 === cell.columnIndex
|
|
@@ -129,66 +167,61 @@ export var findAdjacentBandedRange = function (sheetId, cell, bandedRanges, getU
|
|
|
129
167
|
: false;
|
|
130
168
|
return [adjacentTable, isRowExpansion, isColumnExpansion];
|
|
131
169
|
};
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
var
|
|
148
|
-
if (
|
|
170
|
+
/**
|
|
171
|
+
* Excel's calculated-column fill decision, shared with the Rust engine's
|
|
172
|
+
* `auto_fill_calculated_column` (rowsncolumns/spreadsheet#681): a formula just
|
|
173
|
+
* written into a table body cell fills the whole column when every OTHER body
|
|
174
|
+
* cell of that column is either empty (a fresh column) or holds the same
|
|
175
|
+
* formula relative to its row (a consistent calculated column, which the new
|
|
176
|
+
* formula overwrites). A literal anywhere, or two rows that disagree, leave
|
|
177
|
+
* the edit a one-cell exception. The column's cells are the reference — not
|
|
178
|
+
* the formula recorded on `columns[].formula`, which has no row of its own —
|
|
179
|
+
* so the overwrite works from any row, not only the one the column was
|
|
180
|
+
* created from (#668 T-50). A consistent column is a calculated column
|
|
181
|
+
* whatever its formula references (`=TODAY()`, `=1`), like Excel (#668 T-29).
|
|
182
|
+
*/
|
|
183
|
+
export var isTableColumnCellsFillable = function (sheetId, range, excludeCell, currentValue, activeSheetName, getUserEnteredValue) {
|
|
184
|
+
var e_2, _a;
|
|
185
|
+
var _b;
|
|
186
|
+
if (!isAFormula(currentValue)) {
|
|
149
187
|
return false;
|
|
150
188
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
189
|
+
// The column's existing formula, relativised to the edited cell — every
|
|
190
|
+
// non-empty body cell must agree on it.
|
|
191
|
+
var existingTemplate;
|
|
192
|
+
try {
|
|
193
|
+
for (var _c = __values(iterateCellsInRange(range)), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
194
|
+
var _e = __read(_d.value, 2), rowIndex = _e[0], columnIndex = _e[1];
|
|
195
|
+
if (rowIndex === excludeCell.rowIndex &&
|
|
196
|
+
columnIndex === excludeCell.columnIndex) {
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
var userEnteredValue = getUserEnteredValue(sheetId, rowIndex, columnIndex);
|
|
200
|
+
if (isNil(userEnteredValue) || userEnteredValue === "") {
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
if (!isAFormula(userEnteredValue)) {
|
|
204
|
+
return false;
|
|
205
|
+
}
|
|
206
|
+
// `$`-anchored references stay put from row to row (Excel), so they must
|
|
207
|
+
// not be shifted for the comparison.
|
|
208
|
+
var relativeFormula = (_b = SheetCell.getRelativeFormula(userEnteredValue, { rowIndex: rowIndex, columnIndex: columnIndex }, excludeCell, activeSheetName, undefined, false, undefined, undefined, true)) !== null && _b !== void 0 ? _b : userEnteredValue;
|
|
209
|
+
if (existingTemplate === undefined) {
|
|
210
|
+
existingTemplate = relativeFormula;
|
|
211
|
+
}
|
|
212
|
+
else if (existingTemplate !== relativeFormula) {
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
163
215
|
}
|
|
164
|
-
var relativeFormula = SheetCell.getRelativeFormula(userEnteredValue, { rowIndex: rowIndex, columnIndex: columnIndex }, excludeCell, activeSheetName);
|
|
165
|
-
var comparable = relativeFormula !== null && relativeFormula !== void 0 ? relativeFormula : userEnteredValue;
|
|
166
|
-
return normalizedTemplate === comparable;
|
|
167
|
-
});
|
|
168
|
-
};
|
|
169
|
-
var formulaHasCellReferences = function (formula) {
|
|
170
|
-
if (!formula || typeof formula !== "string" || !formula.startsWith("=")) {
|
|
171
|
-
return false;
|
|
172
|
-
}
|
|
173
|
-
var tokens = lexify(formula).tokens;
|
|
174
|
-
return tokens.some(function (token) {
|
|
175
|
-
return CELL_REFERENCE_TOKEN_NAMES.has(token.tokenType.name);
|
|
176
|
-
});
|
|
177
|
-
};
|
|
178
|
-
var CELL_REFERENCE_TOKEN_NAMES = new Set([
|
|
179
|
-
(_a = tokenVocabulary.Cell) === null || _a === void 0 ? void 0 : _a.name,
|
|
180
|
-
(_b = tokenVocabulary.Column) === null || _b === void 0 ? void 0 : _b.name,
|
|
181
|
-
(_c = tokenVocabulary.TableColumnName) === null || _c === void 0 ? void 0 : _c.name,
|
|
182
|
-
].filter(function (tokenName) { return Boolean(tokenName); }));
|
|
183
|
-
var normalizeFormulaString = function (value) {
|
|
184
|
-
if (typeof value !== "string") {
|
|
185
|
-
return undefined;
|
|
186
216
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
217
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
218
|
+
finally {
|
|
219
|
+
try {
|
|
220
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
221
|
+
}
|
|
222
|
+
finally { if (e_2) throw e_2.error; }
|
|
190
223
|
}
|
|
191
|
-
return
|
|
224
|
+
return true;
|
|
192
225
|
};
|
|
193
226
|
// Add table name to formula
|
|
194
227
|
export var addTableNameToTokens = function (tokens, title) {
|