@rowsncolumns/spreadsheet-state 29.0.0 → 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 +1 -2
- package/dist/cjs/api/copy-paste.d.ts.map +1 -1
- package/dist/cjs/api/copy-paste.js +1 -3
- 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/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/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 +129 -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-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 +3 -1
- package/dist/cjs/hooks/use-on-move-columns.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-move-columns.js +14 -1
- package/dist/cjs/hooks/use-on-move-rows.d.ts +3 -1
- package/dist/cjs/hooks/use-on-move-rows.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-move-rows.js +14 -1
- package/dist/cjs/hooks/use-on-move-selection.d.ts +3 -1
- package/dist/cjs/hooks/use-on-move-selection.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-move-selection.js +88 -25
- package/dist/cjs/hooks/use-on-paste.d.ts +22 -1
- package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-paste.js +993 -776
- 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 +56 -10
- package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/cjs/hooks/use-spreadsheet-state.js +322 -100
- 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 +7 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +8 -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 +9 -2
- 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 +223 -18
- 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 +67 -38
- 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 +9 -2
- 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 +1 -2
- package/dist/esm/api/copy-paste.d.ts.map +1 -1
- package/dist/esm/api/copy-paste.js +1 -3
- 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/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/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 +129 -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-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 +3 -1
- package/dist/esm/hooks/use-on-move-columns.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-move-columns.js +14 -1
- package/dist/esm/hooks/use-on-move-rows.d.ts +3 -1
- package/dist/esm/hooks/use-on-move-rows.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-move-rows.js +14 -1
- package/dist/esm/hooks/use-on-move-selection.d.ts +3 -1
- package/dist/esm/hooks/use-on-move-selection.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-move-selection.js +44 -1
- package/dist/esm/hooks/use-on-paste.d.ts +22 -1
- package/dist/esm/hooks/use-on-paste.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-paste.js +815 -672
- 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 +56 -10
- package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/esm/hooks/use-spreadsheet-state.js +259 -30
- 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 +7 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +8 -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 +9 -2
- 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 +173 -15
- 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 +48 -23
- 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 +9 -2
- 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 +19 -11
package/dist/cjs/api/sort.js
CHANGED
|
@@ -1,8 +1,40 @@
|
|
|
1
1
|
import { isNil } from "@rowsncolumns/utils";
|
|
2
|
+
/**
|
|
3
|
+
* The text order both engines sort with: case- and accent-insensitive,
|
|
4
|
+
* digit runs by numeric value ("a2" < "a10"). `rnc_cellmodel::collate_text`
|
|
5
|
+
* is its Rust twin.
|
|
6
|
+
*/
|
|
2
7
|
var comparator = new Intl.Collator("en", {
|
|
3
8
|
numeric: true,
|
|
4
9
|
sensitivity: "base",
|
|
5
10
|
}).compare;
|
|
11
|
+
export var isSortErrorValue = function (value) {
|
|
12
|
+
return typeof value === "object" && value !== null && "sortError" in value;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* The value a sort compares for a cell: its error when it has one, else the
|
|
16
|
+
* effective value, else the display text.
|
|
17
|
+
*/
|
|
18
|
+
export var getCellSortValue = function (cell) {
|
|
19
|
+
var _a, _b;
|
|
20
|
+
return cell.error
|
|
21
|
+
? { sortError: (_a = cell.formattedValue) !== null && _a !== void 0 ? _a : "" }
|
|
22
|
+
: ((_b = cell.getEffectiveValue()) !== null && _b !== void 0 ? _b : cell.formattedValue);
|
|
23
|
+
};
|
|
24
|
+
/** Excel's ascending order of value types: numbers < text < logicals < errors. */
|
|
25
|
+
var tierOf = function (value) {
|
|
26
|
+
return typeof value === "number"
|
|
27
|
+
? 0
|
|
28
|
+
: typeof value === "string"
|
|
29
|
+
? 1
|
|
30
|
+
: typeof value === "boolean"
|
|
31
|
+
? 2
|
|
32
|
+
: 3;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Excel's sort order: numbers < text < logicals < errors, blanks last in
|
|
36
|
+
* BOTH directions, text compared case-insensitively through the collator.
|
|
37
|
+
*/
|
|
6
38
|
export var cellValueSorter = function (left, right, sortOrder) {
|
|
7
39
|
var isEmpty = function (value) {
|
|
8
40
|
if (isNil(value)) {
|
|
@@ -12,7 +44,7 @@ export var cellValueSorter = function (left, right, sortOrder) {
|
|
|
12
44
|
};
|
|
13
45
|
var leftEmpty = isEmpty(left);
|
|
14
46
|
var rightEmpty = isEmpty(right);
|
|
15
|
-
//
|
|
47
|
+
// Blanks stay last regardless of direction.
|
|
16
48
|
if (leftEmpty && rightEmpty) {
|
|
17
49
|
return 0;
|
|
18
50
|
}
|
|
@@ -22,12 +54,26 @@ export var cellValueSorter = function (left, right, sortOrder) {
|
|
|
22
54
|
if (rightEmpty) {
|
|
23
55
|
return -1;
|
|
24
56
|
}
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
|
|
57
|
+
var direction = sortOrder === "ASCENDING" ? 1 : -1;
|
|
58
|
+
var leftTier = tierOf(left);
|
|
59
|
+
var rightTier = tierOf(right);
|
|
60
|
+
if (leftTier !== rightTier) {
|
|
61
|
+
return direction * Math.sign(leftTier - rightTier);
|
|
62
|
+
}
|
|
63
|
+
var comparisonResult = 0;
|
|
64
|
+
if (typeof left === "number" && typeof right === "number") {
|
|
65
|
+
comparisonResult = left - right;
|
|
66
|
+
}
|
|
67
|
+
else if (typeof left === "string" && typeof right === "string") {
|
|
68
|
+
comparisonResult = comparator(left, right);
|
|
69
|
+
}
|
|
70
|
+
else if (typeof left === "boolean" && typeof right === "boolean") {
|
|
71
|
+
// FALSE before TRUE.
|
|
72
|
+
comparisonResult = Number(left) - Number(right);
|
|
73
|
+
}
|
|
74
|
+
// Errors compare equal: Excel keeps them in their original order.
|
|
29
75
|
if (comparisonResult !== 0) {
|
|
30
|
-
return
|
|
76
|
+
return direction * Math.sign(comparisonResult);
|
|
31
77
|
}
|
|
32
78
|
return 0;
|
|
33
79
|
};
|
|
@@ -46,6 +46,24 @@ export declare const findTornArray: (arrayRanges: readonly GridRange[] | undefin
|
|
|
46
46
|
* inside the deleted block. */
|
|
47
47
|
export declare const isRangeInsideBand: (range: GridRange, band: StructuralBand) => boolean;
|
|
48
48
|
export declare const isRangeInsideBlock: (outer: GridRange, inner: GridRange) => boolean;
|
|
49
|
+
/**
|
|
50
|
+
* T-07 — the Excel refusal for defining a table over `range` (create / update): another table on
|
|
51
|
+
* the sheet (`table-overlap`, judged first) or a merged cell (`table-merged-cells`). `excludeTableId`
|
|
52
|
+
* leaves the table being edited out. `insertedRows`, when given, is a one-or-more-row insert that
|
|
53
|
+
* runs first (the Create Table dialog's header row): tables and merges wholly inside its band are
|
|
54
|
+
* judged at their shifted position.
|
|
55
|
+
*/
|
|
56
|
+
export declare const getTableRangeRefusal: ({ sheetId, range, tables, merges, excludeTableId, insertedRows, }: {
|
|
57
|
+
sheetId: number;
|
|
58
|
+
range: GridRange;
|
|
59
|
+
tables?: readonly TableView[] | null;
|
|
60
|
+
merges?: readonly GridRange[] | null;
|
|
61
|
+
excludeTableId?: TableView["id"];
|
|
62
|
+
insertedRows?: {
|
|
63
|
+
band: StructuralBand;
|
|
64
|
+
count: number;
|
|
65
|
+
};
|
|
66
|
+
}) => StructuralRefusal | undefined;
|
|
49
67
|
/**
|
|
50
68
|
* The Excel refusal (if any) for an insert/delete-cells shift of `range`. Checks run in Excel's
|
|
51
69
|
* order: array tear, merge tear, table tear, off-sheet push. `undefined` means the edit may proceed.
|
|
@@ -63,6 +81,45 @@ export declare const getShiftCellsRefusal: <T extends CellData>({ direction, ran
|
|
|
63
81
|
tables?: readonly TableView[] | null;
|
|
64
82
|
arrayRanges?: readonly GridRange[] | null;
|
|
65
83
|
}) => StructuralRefusal | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* T-46 — the refusal (if any) for a drag-move / cut of `from` onto `to`. Excel moves a table whole
|
|
86
|
+
* when the block contains it, but refuses to move PART of a table (the block covers some of its
|
|
87
|
+
* cells) and refuses a block landing on another table's cells; a block that is a whole table
|
|
88
|
+
* landing on another table is a table overlap. A same-table column reorder is decided before this.
|
|
89
|
+
*/
|
|
90
|
+
export declare const getMoveRangeRefusal: ({ sheetId, from, to, toSheetId, tables, }: {
|
|
91
|
+
sheetId: number;
|
|
92
|
+
from: GridRange;
|
|
93
|
+
to: GridRange;
|
|
94
|
+
/** The destination sheet — a cut + paste can land on another sheet; defaults to `sheetId`. */
|
|
95
|
+
toSheetId?: number;
|
|
96
|
+
tables?: readonly TableView[] | null;
|
|
97
|
+
}) => StructuralRefusal | undefined;
|
|
98
|
+
/**
|
|
99
|
+
* T-81 — the refusal for a fill whose filled cells (`target` minus `source`) reach a table's totals
|
|
100
|
+
* row. Excel's fill handle never extends over a totals row (the row is derived, not data), so the
|
|
101
|
+
* whole fill is refused and nothing is written. A fill whose source IS the totals row (filling away
|
|
102
|
+
* from the table) is not affected.
|
|
103
|
+
*/
|
|
104
|
+
export declare const getFillTotalsRowRefusal: ({ sheetId, source, target, tables, }: {
|
|
105
|
+
sheetId: number;
|
|
106
|
+
source: GridRange;
|
|
107
|
+
target: GridRange;
|
|
108
|
+
tables?: readonly TableView[] | null;
|
|
109
|
+
}) => StructuralRefusal | undefined;
|
|
110
|
+
/**
|
|
111
|
+
* T-47 — the refusal (if any) for Insert / Delete Table Rows (`axis: "row"`) or Table Columns
|
|
112
|
+
* (`axis: "column"`) on `table`. The edit shifts the cells of the table's band — its columns from
|
|
113
|
+
* the table down to the sheet edge, or its rows from the table right to the sheet edge. Another
|
|
114
|
+
* table wholly inside that band moves with it; one the band reaches but does not contain would be
|
|
115
|
+
* torn apart, so Excel refuses the edit.
|
|
116
|
+
*/
|
|
117
|
+
export declare const getTableEditRefusal: ({ sheetId, table, axis, tables, }: {
|
|
118
|
+
sheetId: number;
|
|
119
|
+
table: TableView;
|
|
120
|
+
axis: "row" | "column";
|
|
121
|
+
tables?: readonly TableView[] | null;
|
|
122
|
+
}) => StructuralRefusal | undefined;
|
|
66
123
|
/**
|
|
67
124
|
* INS-06 / INS-09 — the refusal for a whole-row (`axis: "row"`) or whole-column insert of `count`
|
|
68
125
|
* lines before `referenceIndex`, given the hard grid cap (`maxRowCount` / `maxColumnCount`). Blank
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structural-guards.d.ts","sourceRoot":"","sources":["../../../api/structural-guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,SAAS,EACT,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGhF,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,CAAC;AAEvC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;AAE9D;0FAC0F;AAC1F,eAAO,MAAM,qBAAqB,GAChC,YAAY,aAAa,EACzB,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,KAC/C,aAAa,CAAC,mBAAmB,CAKnC,CAAC;AAcF,yGAAyG;AACzG,eAAO,MAAM,SAAS,GACpB,WAAW,cAAc,EACzB,OAAO,SAAS,KACf,cAmBF,CAAC;AAYF,eAAO,MAAM,cAAc,GACzB,MAAM,QAAQ,GAAG,IAAI,GAAG,SAAS,KAChC,OAMF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,EAAE,qCAMlD;IACD,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACvC,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,EAAE,cAAc,CAAC;CACtB,KAAG,aAAa,GAAG,SA+BnB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,SAAS,SAAS,EAAE,GAAG,SAAS,GAAG,IAAI,EAC/C,MAAM,cAAc,EACpB,eAAe,SAAS,KACvB,SAAS,GAAG,SAed,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,aAAa,GACxB,QAAQ,SAAS,SAAS,EAAE,GAAG,SAAS,GAAG,IAAI,EAC/C,MAAM,cAAc,EACpB,eAAe,SAAS,0BACoB,CAAC;AAE/C,qGAAqG;AACrG,eAAO,MAAM,aAAa,GACxB,QAAQ,SAAS,SAAS,EAAE,GAAG,SAAS,GAAG,IAAI,EAC/C,SAAS,MAAM,EACf,MAAM,cAAc,EACpB,eAAe,SAAS,KACvB,SAAS,GAAG,SAOd,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,aAAa,GACxB,aAAa,SAAS,SAAS,EAAE,GAAG,SAAS,GAAG,IAAI,EACpD,MAAM,cAAc,EACpB,eAAe,SAAS,0BACyB,CAAC;AAEpD;+BAC+B;AAC/B,eAAO,MAAM,iBAAiB,GAAI,OAAO,SAAS,EAAE,MAAM,cAAc,YAC5C,CAAC;AAE7B,eAAO,MAAM,kBAAkB,UAjKD,SAAS,SAAS,SAAS,YAiKV,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,QAAQ,EAAE,0FAUtD;IACD,SAAS,EAAE,cAAc,CAAC;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACvC,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAAC;IACrC,WAAW,CAAC,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAAC;CAC3C,KAAG,iBAAiB,GAAG,SA8BvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,QAAQ,EAAE,+CAMvD;IACD,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACvC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,KAAG,iBAAiB,GAAG,SAkBvB,CAAC"}
|
|
1
|
+
{"version":3,"file":"structural-guards.d.ts","sourceRoot":"","sources":["../../../api/structural-guards.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __read } from "tslib";
|
|
1
|
+
import { __assign, __read } from "tslib";
|
|
2
2
|
import { selectionFromActiveCell } from "@rowsncolumns/utils";
|
|
3
3
|
import { structuralRefusal, } from "../constants";
|
|
4
4
|
/** The selection a cell shift operates on — the LAST selection, or the active cell as a 1×1. The
|
|
@@ -140,6 +140,31 @@ export var isRangeInsideBand = function (range, band) {
|
|
|
140
140
|
return rangeContains(band, range);
|
|
141
141
|
};
|
|
142
142
|
export var isRangeInsideBlock = rangeContains;
|
|
143
|
+
/**
|
|
144
|
+
* T-07 — the Excel refusal for defining a table over `range` (create / update): another table on
|
|
145
|
+
* the sheet (`table-overlap`, judged first) or a merged cell (`table-merged-cells`). `excludeTableId`
|
|
146
|
+
* leaves the table being edited out. `insertedRows`, when given, is a one-or-more-row insert that
|
|
147
|
+
* runs first (the Create Table dialog's header row): tables and merges wholly inside its band are
|
|
148
|
+
* judged at their shifted position.
|
|
149
|
+
*/
|
|
150
|
+
export var getTableRangeRefusal = function (_a) {
|
|
151
|
+
var sheetId = _a.sheetId, range = _a.range, tables = _a.tables, merges = _a.merges, excludeTableId = _a.excludeTableId, insertedRows = _a.insertedRows;
|
|
152
|
+
var shifted = function (candidate) {
|
|
153
|
+
return insertedRows && isRangeInsideBand(candidate, insertedRows.band)
|
|
154
|
+
? __assign(__assign({}, candidate), { startRowIndex: candidate.startRowIndex + insertedRows.count, endRowIndex: candidate.endRowIndex + insertedRows.count }) : candidate;
|
|
155
|
+
};
|
|
156
|
+
if (tables === null || tables === void 0 ? void 0 : tables.some(function (table) {
|
|
157
|
+
return table.sheetId === sheetId &&
|
|
158
|
+
table.id !== excludeTableId &&
|
|
159
|
+
rangesIntersect(shifted(table.range), range);
|
|
160
|
+
})) {
|
|
161
|
+
return structuralRefusal("table-overlap");
|
|
162
|
+
}
|
|
163
|
+
if (merges === null || merges === void 0 ? void 0 : merges.some(function (merge) { return rangesIntersect(shifted(merge), range); })) {
|
|
164
|
+
return structuralRefusal("table-merged-cells");
|
|
165
|
+
}
|
|
166
|
+
return undefined;
|
|
167
|
+
};
|
|
143
168
|
/**
|
|
144
169
|
* The Excel refusal (if any) for an insert/delete-cells shift of `range`. Checks run in Excel's
|
|
145
170
|
* order: array tear, merge tear, table tear, off-sheet push. `undefined` means the edit may proceed.
|
|
@@ -176,6 +201,73 @@ export var getShiftCellsRefusal = function (_a) {
|
|
|
176
201
|
}
|
|
177
202
|
return undefined;
|
|
178
203
|
};
|
|
204
|
+
/**
|
|
205
|
+
* T-46 — the refusal (if any) for a drag-move / cut of `from` onto `to`. Excel moves a table whole
|
|
206
|
+
* when the block contains it, but refuses to move PART of a table (the block covers some of its
|
|
207
|
+
* cells) and refuses a block landing on another table's cells; a block that is a whole table
|
|
208
|
+
* landing on another table is a table overlap. A same-table column reorder is decided before this.
|
|
209
|
+
*/
|
|
210
|
+
export var getMoveRangeRefusal = function (_a) {
|
|
211
|
+
var _b;
|
|
212
|
+
var sheetId = _a.sheetId, from = _a.from, to = _a.to, _c = _a.toSheetId, toSheetId = _c === void 0 ? sheetId : _c, tables = _a.tables;
|
|
213
|
+
var sheetTables = tables === null || tables === void 0 ? void 0 : tables.filter(function (table) { return table.sheetId === sheetId; });
|
|
214
|
+
var destinationTables = toSheetId === sheetId
|
|
215
|
+
? sheetTables
|
|
216
|
+
: tables === null || tables === void 0 ? void 0 : tables.filter(function (table) { return table.sheetId === toSheetId; });
|
|
217
|
+
if (!(sheetTables === null || sheetTables === void 0 ? void 0 : sheetTables.length) && !(destinationTables === null || destinationTables === void 0 ? void 0 : destinationTables.length))
|
|
218
|
+
return undefined;
|
|
219
|
+
var moved = (_b = sheetTables === null || sheetTables === void 0 ? void 0 : sheetTables.filter(function (table) { return rangeContains(from, table.range); })) !== null && _b !== void 0 ? _b : [];
|
|
220
|
+
if (sheetTables === null || sheetTables === void 0 ? void 0 : sheetTables.some(function (table) {
|
|
221
|
+
return !moved.includes(table) && rangesIntersect(table.range, from);
|
|
222
|
+
})) {
|
|
223
|
+
return structuralRefusal("torn-table");
|
|
224
|
+
}
|
|
225
|
+
if (destinationTables === null || destinationTables === void 0 ? void 0 : destinationTables.some(function (table) { return !moved.includes(table) && rangesIntersect(table.range, to); })) {
|
|
226
|
+
return structuralRefusal(moved.length ? "table-overlap" : "torn-table");
|
|
227
|
+
}
|
|
228
|
+
return undefined;
|
|
229
|
+
};
|
|
230
|
+
/**
|
|
231
|
+
* T-81 — the refusal for a fill whose filled cells (`target` minus `source`) reach a table's totals
|
|
232
|
+
* row. Excel's fill handle never extends over a totals row (the row is derived, not data), so the
|
|
233
|
+
* whole fill is refused and nothing is written. A fill whose source IS the totals row (filling away
|
|
234
|
+
* from the table) is not affected.
|
|
235
|
+
*/
|
|
236
|
+
export var getFillTotalsRowRefusal = function (_a) {
|
|
237
|
+
var sheetId = _a.sheetId, source = _a.source, target = _a.target, tables = _a.tables;
|
|
238
|
+
return (tables === null || tables === void 0 ? void 0 : tables.some(function (table) {
|
|
239
|
+
if (table.sheetId !== sheetId || !table.totalRow)
|
|
240
|
+
return false;
|
|
241
|
+
var totalsRow = table.range.endRowIndex;
|
|
242
|
+
if (totalsRow < target.startRowIndex || totalsRow > target.endRowIndex) {
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
var hit = {
|
|
246
|
+
startRowIndex: totalsRow,
|
|
247
|
+
endRowIndex: totalsRow,
|
|
248
|
+
startColumnIndex: Math.max(table.range.startColumnIndex, target.startColumnIndex),
|
|
249
|
+
endColumnIndex: Math.min(table.range.endColumnIndex, target.endColumnIndex),
|
|
250
|
+
};
|
|
251
|
+
return hit.startColumnIndex <= hit.endColumnIndex && !rangeContains(source, hit);
|
|
252
|
+
}))
|
|
253
|
+
? structuralRefusal("table-totals-fill")
|
|
254
|
+
: undefined;
|
|
255
|
+
};
|
|
256
|
+
/**
|
|
257
|
+
* T-47 — the refusal (if any) for Insert / Delete Table Rows (`axis: "row"`) or Table Columns
|
|
258
|
+
* (`axis: "column"`) on `table`. The edit shifts the cells of the table's band — its columns from
|
|
259
|
+
* the table down to the sheet edge, or its rows from the table right to the sheet edge. Another
|
|
260
|
+
* table wholly inside that band moves with it; one the band reaches but does not contain would be
|
|
261
|
+
* torn apart, so Excel refuses the edit.
|
|
262
|
+
*/
|
|
263
|
+
export var getTableEditRefusal = function (_a) {
|
|
264
|
+
var sheetId = _a.sheetId, table = _a.table, axis = _a.axis, tables = _a.tables;
|
|
265
|
+
var band = axis === "row"
|
|
266
|
+
? __assign(__assign({}, table.range), { endRowIndex: Number.POSITIVE_INFINITY }) : __assign(__assign({}, table.range), { endColumnIndex: Number.POSITIVE_INFINITY });
|
|
267
|
+
return findTornTable(tables === null || tables === void 0 ? void 0 : tables.filter(function (other) { return other.id !== table.id; }), sheetId, band)
|
|
268
|
+
? structuralRefusal("torn-table")
|
|
269
|
+
: undefined;
|
|
270
|
+
};
|
|
179
271
|
/**
|
|
180
272
|
* INS-06 / INS-09 — the refusal for a whole-row (`axis: "row"`) or whole-column insert of `count`
|
|
181
273
|
* lines before `referenceIndex`, given the hard grid cap (`maxRowCount` / `maxColumnCount`). Blank
|
|
@@ -27,9 +27,10 @@ export type RemovedTableParts = {
|
|
|
27
27
|
}>;
|
|
28
28
|
};
|
|
29
29
|
/**
|
|
30
|
-
* Which tables / table columns `deleteRow` (a table goes
|
|
31
|
-
*
|
|
32
|
-
*
|
|
30
|
+
* Which tables / table columns `deleteRow` (a table goes only when every one
|
|
31
|
+
* of its rows is deleted — losing its header row keeps it, the next row
|
|
32
|
+
* becomes the header) or `deleteColumn` (a table goes when every column is
|
|
33
|
+
* deleted; otherwise the covered columns are spliced out) removes for the band
|
|
33
34
|
* `[minIndex, maxIndex]` on `sheetId`. Mirrors the table updates those
|
|
34
35
|
* interfaces apply to `tables`.
|
|
35
36
|
*/
|
|
@@ -59,6 +60,60 @@ export type BreakStructuredRefsParams<T extends CellData> = {
|
|
|
59
60
|
* when it is available (cost O(formula cells)); without one the draft is swept.
|
|
60
61
|
*/
|
|
61
62
|
export declare const breakStructuredRefsForRemovedTableParts: <T extends CellData>({ draft, sheetId, axis, referenceIndex, count, removed, getGraphNodes, enqueueCalculation, enqueueGraphOperation, recalcCells, locale, cellXfsRegistry, sharedStringRegistry, }: BreakStructuredRefsParams<T>) => void;
|
|
63
|
+
export type RewriteFormulasParams<T extends CellData> = Pick<BreakStructuredRefsParams<T>, "draft" | "getGraphNodes" | "enqueueCalculation" | "enqueueGraphOperation" | "recalcCells" | "locale" | "cellXfsRegistry" | "sharedStringRegistry">;
|
|
64
|
+
/**
|
|
65
|
+
* Column `oldName` of `table` was renamed `newName` (a header-cell edit):
|
|
66
|
+
* rewrite every structured reference to it across the workbook, including the
|
|
67
|
+
* bare `[@Old]` forms of the formulas that sit inside the table.
|
|
68
|
+
*/
|
|
69
|
+
export declare const renameTableColumnInFormulas: <T extends CellData>({ table, oldName, newName, ...params }: RewriteFormulasParams<T> & {
|
|
70
|
+
table: Pick<TableView, "title" | "sheetId" | "range">;
|
|
71
|
+
oldName: string;
|
|
72
|
+
newName: string;
|
|
73
|
+
}) => void;
|
|
74
|
+
/**
|
|
75
|
+
* Several columns of `table` were renamed at once (a header row re-derived
|
|
76
|
+
* after a row delete, several header cells written by one paste /
|
|
77
|
+
* change-batch): `renames` maps each LOWER-CASED old name to its new name and
|
|
78
|
+
* every formula is rewritten in ONE pass, so `Name` → `Qty` and `Qty` → `Name`
|
|
79
|
+
* swap instead of chaining into the same column.
|
|
80
|
+
*/
|
|
81
|
+
export declare const renameTableColumnsInFormulas: <T extends CellData>({ table, renames, ...params }: RewriteFormulasParams<T> & {
|
|
82
|
+
table: Pick<TableView, "title" | "sheetId" | "range">;
|
|
83
|
+
renames: ReadonlyMap<string, string>;
|
|
84
|
+
}) => void;
|
|
85
|
+
/**
|
|
86
|
+
* The header cells one write renamed (`planHeaderCellRenames`), applied per
|
|
87
|
+
* table as a single multi-column rename.
|
|
88
|
+
*/
|
|
89
|
+
export declare const renameHeaderCellsInFormulas: <T extends CellData>({ headerRenames, ...params }: RewriteFormulasParams<T> & {
|
|
90
|
+
headerRenames: readonly {
|
|
91
|
+
table: Pick<TableView, "id" | "title" | "sheetId" | "range">;
|
|
92
|
+
oldName: string | undefined;
|
|
93
|
+
newName: string;
|
|
94
|
+
}[];
|
|
95
|
+
}) => void;
|
|
96
|
+
/**
|
|
97
|
+
* `table` is being converted to a range (Excel's Convert to Range): rewrite
|
|
98
|
+
* every structured reference into it across the workbook to the A1 reference
|
|
99
|
+
* it resolves to — `T[Col]` → `$B$2:$B$9`, `[@Col]` → `B3`,
|
|
100
|
+
* `T[[#Headers],[Col]]` → `$B$1`, qualified with the table's sheet from another
|
|
101
|
+
* sheet — so the formulas keep their values once the table is gone. Runs
|
|
102
|
+
* BEFORE the table is removed; the bare `[@Col]` forms belong to the formulas
|
|
103
|
+
* that sit inside the table.
|
|
104
|
+
*/
|
|
105
|
+
export declare const convertTableReferencesToA1InFormulas: <T extends CellData>({ table, getSheetName, ...params }: RewriteFormulasParams<T> & {
|
|
106
|
+
table: Pick<TableView, "title" | "sheetId" | "range" | "headerRow" | "totalRow" | "columns">;
|
|
107
|
+
getSheetName(sheetId: number): string;
|
|
108
|
+
}) => void;
|
|
109
|
+
/**
|
|
110
|
+
* Table `oldName` was renamed `newName` (the Edit Table dialog / `updateTable`):
|
|
111
|
+
* rewrite `Old[…]` → `New[…]` in every formula across the workbook.
|
|
112
|
+
*/
|
|
113
|
+
export declare const renameTableInFormulas: <T extends CellData>({ oldName, newName, ...params }: RewriteFormulasParams<T> & {
|
|
114
|
+
oldName: string;
|
|
115
|
+
newName: string;
|
|
116
|
+
}) => void;
|
|
62
117
|
/**
|
|
63
118
|
* Drop the materialised spill cells of every dynamic-array anchor that sits
|
|
64
119
|
* inside the deleted band `[minIndex, maxIndex]` (rows or columns) of
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structural-table-refs.d.ts","sourceRoot":"","sources":["../../../api/structural-table-refs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAMrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"structural-table-refs.d.ts","sourceRoot":"","sources":["../../../api/structural-table-refs.ts"],"names":[],"mappings":"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"}
|
|
@@ -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. */
|