@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,4 +1,4 @@
|
|
|
1
1
|
import type { CellData, Sheet } from "@rowsncolumns/spreadsheet";
|
|
2
2
|
import type { UseOnInsertRowProps } from "../hooks/use-on-insert-row";
|
|
3
|
-
export declare const insertRow: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, maxRowCount, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeDataValidations, onChangeConditionalFormats, onChangeCitations, onChangePivotTables, onChangeNamedRanges, onChangeEmbeds, onChangeCharts, onChangeProtectedRanges, }: UseOnInsertRowProps<T, S>) => (sheetId: number, referenceRowIndex: number, numRows?: number) => void;
|
|
3
|
+
export declare const insertRow: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, maxRowCount, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeDataValidations, onChangeConditionalFormats, onChangeCitations, onChangePivotTables, onChangeNamedRanges, onChangeEmbeds, onChangeSlicers, onChangeCharts, onChangeProtectedRanges, }: UseOnInsertRowProps<T, S>) => (sheetId: number, referenceRowIndex: number, numRows?: number) => void;
|
|
4
4
|
//# sourceMappingURL=insert-row.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert-row.d.ts","sourceRoot":"","sources":["../../../interface/insert-row.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"insert-row.d.ts","sourceRoot":"","sources":["../../../interface/insert-row.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAuBjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,yfA6B5D,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,MAClB,SAAS,MAAM,EAAE,mBAAmB,MAAM,EAAE,gBAAW,SA4UhE,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { Direction } from "@rowsncolumns/common-types";
|
|
2
2
|
import { produceWithPatches } from "immer";
|
|
3
|
-
import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftProtectedRangesOnStructuralChange, } from "../api/anchored-objects";
|
|
4
|
-
import { cloneRowWithFormatting, createSheetDraft } from "../api/immer-utils";
|
|
3
|
+
import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftSlicersOnStructuralChange, shiftProtectedRangesOnStructuralChange, } from "../api/anchored-objects";
|
|
4
|
+
import { cloneRowWithFormatting, createSheetDraft, inheritedDimensionMetadata, } from "../api/immer-utils";
|
|
5
5
|
import { expandMergesOnRowInsert } from "../api/merges";
|
|
6
6
|
import { updateNamedRangesOnStructuralChange, updatePrintSettingsOnStructuralChange, } from "../api/named-range-structural";
|
|
7
7
|
import { shiftPivotsOnInsert } from "../api/pivot-range";
|
|
8
8
|
import { updateRangedRulesOnStructuralChange } from "../api/range-rule-helpers";
|
|
9
9
|
import { moveFilterView } from "../api/selection";
|
|
10
10
|
import { updateFormulasForStructuralChange } from "../api/structural-formula-update";
|
|
11
|
-
export const insertRow = ({ rowCount, columnCount, locale, maxRowCount, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeDataValidations, onChangeConditionalFormats, onChangeCitations, onChangePivotTables, onChangeNamedRanges, onChangeEmbeds, onChangeCharts, onChangeProtectedRanges, }) => {
|
|
11
|
+
export const insertRow = ({ rowCount, columnCount, locale, maxRowCount, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeDataValidations, onChangeConditionalFormats, onChangeCitations, onChangePivotTables, onChangeNamedRanges, onChangeEmbeds, onChangeSlicers, onChangeCharts, onChangeProtectedRanges, }) => {
|
|
12
12
|
return (sheetId, referenceRowIndex, numRows = 1) => {
|
|
13
13
|
if (numRows <= 0)
|
|
14
14
|
return;
|
|
@@ -104,6 +104,13 @@ export const insertRow = ({ rowCount, columnCount, locale, maxRowCount, cellXfsR
|
|
|
104
104
|
saveHistory({ embeds: { patches, inversePatches } });
|
|
105
105
|
return nextState;
|
|
106
106
|
});
|
|
107
|
+
onChangeSlicers?.((prevSlicers) => {
|
|
108
|
+
const [nextState, patches, inversePatches] = produceWithPatches(prevSlicers, (draft) => {
|
|
109
|
+
shiftSlicersOnStructuralChange(draft, sheetId, "row", "insert", referenceRowIndex, numRows);
|
|
110
|
+
});
|
|
111
|
+
saveHistory({ slicers: { patches, inversePatches } });
|
|
112
|
+
return nextState;
|
|
113
|
+
});
|
|
107
114
|
onChangeCharts?.((prevCharts) => {
|
|
108
115
|
const [nextState, patches, inversePatches] = produceWithPatches(prevCharts, (draft) => {
|
|
109
116
|
shiftChartsOnStructuralChange(draft, sheetId, "row", "insert", referenceRowIndex, numRows);
|
|
@@ -125,7 +132,11 @@ export const insertRow = ({ rowCount, columnCount, locale, maxRowCount, cellXfsR
|
|
|
125
132
|
if (!sheet)
|
|
126
133
|
return;
|
|
127
134
|
if (sheet.rowMetadata) {
|
|
128
|
-
|
|
135
|
+
// Excel "Format Same As Above" (FMT-01) covers the row height and
|
|
136
|
+
// hidden state too: the inserted rows inherit the row above's
|
|
137
|
+
// metadata (row 1 has none above and takes the pushed-down row's).
|
|
138
|
+
const inherited = inheritedDimensionMetadata(sheet.rowMetadata, referenceRowIndex);
|
|
139
|
+
sheet.rowMetadata.splice(referenceRowIndex, 0, ...Array.from({ length: numRows }, () => inherited ? { ...inherited } : null));
|
|
129
140
|
}
|
|
130
141
|
if (sheet.basicFilter) {
|
|
131
142
|
const { startRowIndex, endRowIndex } = sheet.basicFilter.range;
|
|
@@ -175,8 +186,13 @@ export const insertRow = ({ rowCount, columnCount, locale, maxRowCount, cellXfsR
|
|
|
175
186
|
sharedStringRegistry,
|
|
176
187
|
});
|
|
177
188
|
const currentSheet = createSheetDraft(draft, sheetId, referenceRowIndex);
|
|
178
|
-
|
|
179
|
-
|
|
189
|
+
// Excel "Format Same As Above" (FMT-01): the new rows take the
|
|
190
|
+
// per-cell formatting (never values) of the row ABOVE the insertion
|
|
191
|
+
// point. Only an insert at row 1 has no row above and seeds from the
|
|
192
|
+
// row being pushed down instead.
|
|
193
|
+
const formattingSourceRow = referenceRowIndex > 1
|
|
194
|
+
? currentSheet[referenceRowIndex - 1]
|
|
195
|
+
: currentSheet[referenceRowIndex];
|
|
180
196
|
const newRows = Array.from({ length: numRows }, () => cloneRowWithFormatting(formattingSourceRow));
|
|
181
197
|
currentSheet.splice(referenceRowIndex, 0, ...newRows);
|
|
182
198
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CellData, Sheet, TableView } from "@rowsncolumns/spreadsheet";
|
|
2
2
|
import type { UseOnInsertTableRowProps } from "../hooks/use-on-insert-table-row";
|
|
3
|
-
|
|
3
|
+
import type { SpreadsheetPatch } from "../hooks/use-undo-redo";
|
|
4
|
+
export declare const insertTableRow: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getDependents, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeCharts, onChangeDataValidations, onChangeConditionalFormats, }: UseOnInsertTableRowProps<T, S>) => (tableView: TableView, relativeRowIndex?: number, rowData?: Record<string, string | undefined | null>[], saveHistory?: (patches: SpreadsheetPatch) => void) => void;
|
|
4
5
|
//# sourceMappingURL=insert-table-row.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert-table-row.d.ts","sourceRoot":"","sources":["../../../interface/insert-table-row.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"insert-table-row.d.ts","sourceRoot":"","sources":["../../../interface/insert-table-row.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAc5E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS/D,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,iUAmBjE,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,MAE7B,WAAW,SAAS,EACpB,mBAAmB,MAAM,EACzB,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAIrD,cAAa,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAsB,SAugBrE,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Direction } from "@rowsncolumns/common-types";
|
|
2
2
|
import { getCellUserEnteredValue, getExtendedValueFormula } from "@rowsncolumns/utils";
|
|
3
3
|
import { produceWithPatches } from "immer";
|
|
4
|
+
import { shiftChartsOnTableEdit, tableBinding } from "../api/anchored-objects";
|
|
4
5
|
import { collectUniqueDependentsForRange, moveFormulaAtPosition, } from "../api/dependency";
|
|
5
6
|
import { createSheetCellIdentifier, expandRangesInFormula } from "../api/formula";
|
|
6
7
|
import { createSheetDraft } from "../api/immer-utils";
|
|
@@ -8,16 +9,30 @@ import { moveMergedCells } from "../api/merges";
|
|
|
8
9
|
import { updateSheetRangeOnInsert } from "../api/range";
|
|
9
10
|
import { moveFilterView } from "../api/selection";
|
|
10
11
|
import { SheetCell } from "../sheet-cell";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
import { getCalculatedColumnTemplate, getRowRelativeFormula, getTableFirstBodyRowIndex, } from "./change-table-column";
|
|
13
|
+
export const insertTableRow = ({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getDependents, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeCharts, onChangeDataValidations, onChangeConditionalFormats, }) => {
|
|
14
|
+
return (tableView, relativeRowIndex, rowData,
|
|
15
|
+
// A caller folding the insert into its own history step (the totals-row
|
|
16
|
+
// toggle that must first shift occupied cells out of the way) passes its
|
|
17
|
+
// `saveHistory`; otherwise the insert is one undo step of its own.
|
|
18
|
+
saveHistory = createHistory()) => {
|
|
19
|
+
// `relativeRowIndex` counts from `range.startRowIndex` (the header row when
|
|
20
|
+
// there is one), clamped to the body: never above the first body row and,
|
|
21
|
+
// with a totals row, never below it — the new data row goes ABOVE the
|
|
22
|
+
// totals row, which moves down (Excel never inserts a data row below the
|
|
23
|
+
// totals).
|
|
24
|
+
const firstBodyRowIndex = tableView.range.startRowIndex + (tableView.headerRow ? 1 : 0);
|
|
25
|
+
const lastInsertRowIndex = tableView.range.endRowIndex + (tableView.totalRow ? 0 : 1);
|
|
26
|
+
const referenceRowIndex = Math.min(Math.max(tableView.range.startRowIndex +
|
|
14
27
|
(relativeRowIndex ??
|
|
15
|
-
tableView.range.endRowIndex - tableView.range.startRowIndex + 1);
|
|
28
|
+
tableView.range.endRowIndex - tableView.range.startRowIndex + 1), Math.min(firstBodyRowIndex, lastInsertRowIndex)), lastInsertRowIndex);
|
|
29
|
+
const insertsAboveTotalRow = !!tableView.totalRow && referenceRowIndex === tableView.range.endRowIndex;
|
|
16
30
|
const numRows = rowData?.length ?? 1;
|
|
17
31
|
const { sheetId } = tableView;
|
|
18
32
|
const { startColumnIndex, endColumnIndex } = tableView.range;
|
|
19
33
|
const isInsideColumnBand = (range) => range.startColumnIndex >= startColumnIndex &&
|
|
20
34
|
range.endColumnIndex <= endColumnIndex;
|
|
35
|
+
const binding = tableBinding(tableView);
|
|
21
36
|
enqueueStructureChange?.({
|
|
22
37
|
kind: "insert-table-row",
|
|
23
38
|
sheetId,
|
|
@@ -27,7 +42,6 @@ export const insertTableRow = ({ rowCount, columnCount, locale, cellXfsRegistry,
|
|
|
27
42
|
startColumnIndex: tableView.range.startColumnIndex,
|
|
28
43
|
endColumnIndex: tableView.range.endColumnIndex,
|
|
29
44
|
});
|
|
30
|
-
const saveHistory = createHistory();
|
|
31
45
|
// We need to track this for history. Precedent cells
|
|
32
46
|
const recalcCells = new Map();
|
|
33
47
|
// Update table position
|
|
@@ -51,6 +65,15 @@ export const insertTableRow = ({ rowCount, columnCount, locale, cellXfsRegistry,
|
|
|
51
65
|
});
|
|
52
66
|
return nextState;
|
|
53
67
|
});
|
|
68
|
+
// Chart ranges inside the table's columns follow the shifted cells; a range bound to the table
|
|
69
|
+
// (a column's body, or header + body) grows with it even when the rows land below the last one.
|
|
70
|
+
onChangeCharts?.((prevCharts) => {
|
|
71
|
+
const [nextState, patches, inversePatches] = produceWithPatches(prevCharts, (draft) => {
|
|
72
|
+
shiftChartsOnTableEdit(draft, sheetId, binding, "row", "insert", referenceRowIndex, numRows);
|
|
73
|
+
});
|
|
74
|
+
saveHistory({ charts: { patches, inversePatches } });
|
|
75
|
+
return nextState;
|
|
76
|
+
});
|
|
54
77
|
// Update data validations
|
|
55
78
|
onChangeDataValidations?.((prevValidations) => {
|
|
56
79
|
const [nextState, patches, inversePatches] = produceWithPatches(prevValidations, (draft) => {
|
|
@@ -139,11 +162,32 @@ export const insertTableRow = ({ rowCount, columnCount, locale, cellXfsRegistry,
|
|
|
139
162
|
onChangeSheetData?.((prevSheetData) => {
|
|
140
163
|
const [nextState, patches, inversePatches] = produceWithPatches(prevSheetData, (draft) => {
|
|
141
164
|
const totalRows = draft[sheetId]?.length ?? rowCount;
|
|
165
|
+
// Every cell of the table's columns from the insertion point shifts down — through the
|
|
166
|
+
// sheet's last used row, not just the table's — so formulas inside that band and
|
|
167
|
+
// references into it re-anchor over the whole band (mirrors `deleteTableRow`).
|
|
142
168
|
const sourceRange = {
|
|
143
169
|
...tableView.range,
|
|
144
170
|
startRowIndex: referenceRowIndex,
|
|
171
|
+
endRowIndex: Math.max(tableView.range.endRowIndex, totalRows - 1),
|
|
145
172
|
};
|
|
146
173
|
const movedKeys = new Set();
|
|
174
|
+
// Each calculated column's formula (written for the first body row), read from the
|
|
175
|
+
// body BEFORE the shift: the inserted rows inherit it (Excel).
|
|
176
|
+
const activeSheetName = getSheetName(sheetId);
|
|
177
|
+
const firstBodyRowIndex = getTableFirstBodyRowIndex(tableView);
|
|
178
|
+
const calculatedTemplates = new Map();
|
|
179
|
+
for (let columnIndex = tableView.range.startColumnIndex; columnIndex <= tableView.range.endColumnIndex; columnIndex++) {
|
|
180
|
+
const template = getCalculatedColumnTemplate({
|
|
181
|
+
draft,
|
|
182
|
+
sheetId,
|
|
183
|
+
table: tableView,
|
|
184
|
+
columnIndex,
|
|
185
|
+
activeSheetName,
|
|
186
|
+
});
|
|
187
|
+
if (template) {
|
|
188
|
+
calculatedTemplates.set(columnIndex, template);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
147
191
|
/**
|
|
148
192
|
* THREE-PASS FORMULA UPDATE STRATEGY:
|
|
149
193
|
*
|
|
@@ -244,12 +288,12 @@ export const insertTableRow = ({ rowCount, columnCount, locale, cellXfsRegistry,
|
|
|
244
288
|
});
|
|
245
289
|
}
|
|
246
290
|
// PASS 3: Process formulas WITHIN the moved cells themselves
|
|
247
|
-
for (let rowIndex = referenceRowIndex; rowIndex
|
|
291
|
+
for (let rowIndex = referenceRowIndex; rowIndex <= sourceRange.endRowIndex; rowIndex++) {
|
|
248
292
|
const rowValues = draft[sheetId]?.[rowIndex]?.values;
|
|
249
293
|
if (!rowValues) {
|
|
250
294
|
continue;
|
|
251
295
|
}
|
|
252
|
-
for (let columnIndex = tableView.range.startColumnIndex; columnIndex
|
|
296
|
+
for (let columnIndex = tableView.range.startColumnIndex; columnIndex <= tableView.range.endColumnIndex; columnIndex++) {
|
|
253
297
|
const cellData = rowValues?.[columnIndex];
|
|
254
298
|
const hasFormula = !!getExtendedValueFormula(getCellUserEnteredValue(cellData));
|
|
255
299
|
if (!hasFormula) {
|
|
@@ -281,29 +325,39 @@ export const insertTableRow = ({ rowCount, columnCount, locale, cellXfsRegistry,
|
|
|
281
325
|
currentSheet[rowIndex].values[columnIndex] = previousValue;
|
|
282
326
|
}
|
|
283
327
|
}
|
|
284
|
-
// Inserted rows: clone formatting from the row that shifted down (referenceRowIndex + numRows)
|
|
328
|
+
// Inserted rows: clone formatting from the row that shifted down (referenceRowIndex + numRows);
|
|
329
|
+
// when that row is the totals row, from the last data row above instead.
|
|
285
330
|
for (let r = 0; r < numRows; r++) {
|
|
286
331
|
const rowIndex = referenceRowIndex + r;
|
|
287
332
|
const currentSheet = createSheetDraft(draft, sheetId, rowIndex);
|
|
288
333
|
const input = rowData?.[r];
|
|
334
|
+
const formatSourceRowIndex = insertsAboveTotalRow
|
|
335
|
+
? referenceRowIndex - 1
|
|
336
|
+
: rowIndex + numRows;
|
|
289
337
|
// Clone entire row formatting once
|
|
290
|
-
const formatSourceRow = createSheetDraft(draft, sheetId,
|
|
338
|
+
const formatSourceRow = createSheetDraft(draft, sheetId, formatSourceRowIndex);
|
|
291
339
|
const tempCell = new SheetCell();
|
|
292
340
|
for (let columnIndex = tableView.range.startColumnIndex; columnIndex <= tableView.range.endColumnIndex; columnIndex++) {
|
|
293
|
-
const sourceCell = formatSourceRow[
|
|
341
|
+
const sourceCell = formatSourceRow[formatSourceRowIndex]?.values?.[columnIndex];
|
|
294
342
|
const cloned = tempCell
|
|
295
343
|
.assign(sheetId, { rowIndex, columnIndex }, sourceCell)
|
|
296
344
|
.cloneWithFormatting();
|
|
297
345
|
const relativeColumnIndex = columnIndex - tableView.range.startColumnIndex;
|
|
298
346
|
const columnName = tableView.columns?.[relativeColumnIndex]?.name;
|
|
299
347
|
const cellValue = columnName ? input?.[columnName] : undefined;
|
|
348
|
+
const template = calculatedTemplates.get(columnIndex);
|
|
349
|
+
let inherited = false;
|
|
300
350
|
if (cellValue !== undefined && cellValue !== null) {
|
|
301
351
|
cloned.setUserEnteredValue(cellValue);
|
|
302
352
|
}
|
|
353
|
+
else if (template) {
|
|
354
|
+
cloned.setUserEnteredValue(getRowRelativeFormula(template, columnIndex, firstBodyRowIndex, rowIndex, activeSheetName));
|
|
355
|
+
inherited = true;
|
|
356
|
+
}
|
|
303
357
|
currentSheet[rowIndex].values[columnIndex] = cloned.getCellData();
|
|
304
358
|
// Enqueue for calculation
|
|
305
359
|
enqueueCalculation({
|
|
306
|
-
type: "dirty",
|
|
360
|
+
type: inherited ? "add" : "dirty",
|
|
307
361
|
position: { rowIndex, columnIndex, sheetId },
|
|
308
362
|
});
|
|
309
363
|
recalcCells.set(createSheetCellIdentifier(sheetId, rowIndex, columnIndex), { sheetId, rowIndex, columnIndex });
|
|
@@ -311,10 +365,11 @@ export const insertTableRow = ({ rowCount, columnCount, locale, cellXfsRegistry,
|
|
|
311
365
|
}
|
|
312
366
|
});
|
|
313
367
|
// Save history
|
|
368
|
+
const activeCell = getActiveCell?.();
|
|
314
369
|
saveHistory({
|
|
315
370
|
sheetData: { patches, inversePatches },
|
|
316
371
|
recalcCells: { undo: recalcCells, redo: recalcCells },
|
|
317
|
-
activeCell: { undo:
|
|
372
|
+
...(activeCell ? { activeCell: { undo: activeCell, redo: activeCell } } : {}),
|
|
318
373
|
});
|
|
319
374
|
return nextState;
|
|
320
375
|
});
|
|
@@ -8,5 +8,5 @@ export type RemoveDuplicatesResult = {
|
|
|
8
8
|
uniqueRemaining: number;
|
|
9
9
|
};
|
|
10
10
|
export type { RemoveDuplicatesOptions };
|
|
11
|
-
export declare const removeDuplicates: <T extends CellData>({ getFormattedValue, onChangeSheetData, enqueueCalculation, createHistory, }: UseOnRemoveDuplicatesProps<T>) => (sheetId: number, activeCell: CellInterface, selections?: SelectionArea<SelectionAttributes>[], options?: RemoveDuplicatesOptions) => RemoveDuplicatesResult;
|
|
11
|
+
export declare const removeDuplicates: <T extends CellData>({ getFormattedValue, onChangeSheetData, onChangeTables, enqueueCalculation, createHistory, tables, }: UseOnRemoveDuplicatesProps<T>) => (sheetId: number, activeCell: CellInterface, selections?: SelectionArea<SelectionAttributes>[], options?: RemoveDuplicatesOptions) => RemoveDuplicatesResult;
|
|
12
12
|
//# sourceMappingURL=remove-duplicates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove-duplicates.d.ts","sourceRoot":"","sources":["../../../interface/remove-duplicates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,QAAQ,EACR,uBAAuB,EACvB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"remove-duplicates.d.ts","sourceRoot":"","sources":["../../../interface/remove-duplicates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,QAAQ,EACR,uBAAuB,EACvB,mBAAmB,EAEpB,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAGpF,MAAM,MAAM,sBAAsB,GAAG;IACnC,iDAAiD;IACjD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,YAAY,EAAE,uBAAuB,EAAE,CAAC;AAgDxC,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,EAAE,sGAOlD,0BAA0B,CAAC,CAAC,CAAC,MAE5B,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,aAAa,aAAa,CAAC,mBAAmB,CAAC,EAAE,EACjD,UAAU,uBAAuB,KAChC,sBA0MJ,CAAC"}
|
|
@@ -23,15 +23,35 @@ const resolveCompareColumns = (compareColumns, range) => {
|
|
|
23
23
|
columnIndex <= range.endColumnIndex));
|
|
24
24
|
return inRange.size ? inRange : undefined;
|
|
25
25
|
};
|
|
26
|
-
|
|
26
|
+
/** The table on `sheetId` whose range holds `cell`. */
|
|
27
|
+
const findTableAtCell = (tables, sheetId, cell) => tables?.find(({ sheetId: tableSheetId, range }) => tableSheetId === sheetId &&
|
|
28
|
+
cell.rowIndex >= range.startRowIndex &&
|
|
29
|
+
cell.rowIndex <= range.endRowIndex &&
|
|
30
|
+
cell.columnIndex >= range.startColumnIndex &&
|
|
31
|
+
cell.columnIndex <= range.endColumnIndex);
|
|
32
|
+
export const removeDuplicates = ({ getFormattedValue, onChangeSheetData, onChangeTables, enqueueCalculation, createHistory, tables, }) => {
|
|
27
33
|
return (sheetId, activeCell, selections, options) => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
34
|
+
// Excel de-dupes the TABLE the active cell sits in, not the selection: the
|
|
35
|
+
// header row is pinned ("My data has headers" is forced on), the totals row
|
|
36
|
+
// stays out of the comparison and closes up under the survivors, and the
|
|
37
|
+
// table shrinks by the removed rows. Cells below the table never move.
|
|
38
|
+
const table = findTableAtCell(tables, sheetId, activeCell);
|
|
39
|
+
const finalSelections = table
|
|
40
|
+
? [{ range: table.range }]
|
|
41
|
+
: selections?.length
|
|
42
|
+
? selections
|
|
43
|
+
: selectionFromActiveCell(activeCell);
|
|
31
44
|
const compareColumns = options?.columnIndices?.length
|
|
32
45
|
? new Set(options.columnIndices)
|
|
33
46
|
: undefined;
|
|
34
|
-
const headerOffset =
|
|
47
|
+
const headerOffset = table
|
|
48
|
+
? table.headerRow !== false
|
|
49
|
+
? 1
|
|
50
|
+
: 0
|
|
51
|
+
: options?.hasHeader
|
|
52
|
+
? 1
|
|
53
|
+
: 0;
|
|
54
|
+
const pinnedTail = table?.totalRow ? 1 : 0;
|
|
35
55
|
const saveHistory = createHistory();
|
|
36
56
|
const recalcCells = new Map();
|
|
37
57
|
const seenRows = new Set();
|
|
@@ -39,7 +59,7 @@ export const removeDuplicates = ({ getFormattedValue, onChangeSheetData, enqueue
|
|
|
39
59
|
// First pass: collect all row data and identify duplicates
|
|
40
60
|
for (const sel of finalSelections) {
|
|
41
61
|
const selectionCompareColumns = resolveCompareColumns(compareColumns, sel.range);
|
|
42
|
-
for (let rowIndex = sel.range.startRowIndex + headerOffset; rowIndex <= sel.range.endRowIndex; rowIndex++) {
|
|
62
|
+
for (let rowIndex = sel.range.startRowIndex + headerOffset; rowIndex <= sel.range.endRowIndex - pinnedTail; rowIndex++) {
|
|
43
63
|
const rowValues = [];
|
|
44
64
|
for (let columnIndex = sel.range.startColumnIndex; columnIndex <= sel.range.endColumnIndex; columnIndex++) {
|
|
45
65
|
if (selectionCompareColumns &&
|
|
@@ -133,6 +153,21 @@ export const removeDuplicates = ({ getFormattedValue, onChangeSheetData, enqueue
|
|
|
133
153
|
});
|
|
134
154
|
return nextState;
|
|
135
155
|
});
|
|
156
|
+
// The pinned totals row closed up under the survivors; the table shrinks
|
|
157
|
+
// onto it (the first occurrence of every row survives, so at least one data
|
|
158
|
+
// row always remains).
|
|
159
|
+
if (table) {
|
|
160
|
+
onChangeTables?.((prevTables) => {
|
|
161
|
+
const [nextState, patches, inversePatches] = produceWithPatches(prevTables, (draft) => {
|
|
162
|
+
const current = draft.find((t) => t.id === table.id);
|
|
163
|
+
if (current) {
|
|
164
|
+
current.range.endRowIndex -= duplicateRows.size;
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
saveHistory({ tables: { patches, inversePatches } });
|
|
168
|
+
return nextState;
|
|
169
|
+
});
|
|
170
|
+
}
|
|
136
171
|
return result;
|
|
137
172
|
};
|
|
138
173
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { CellData, Sheet, TableView } from "@rowsncolumns/spreadsheet";
|
|
2
2
|
import type { UseOnTableProps } from "../hooks/use-on-table";
|
|
3
|
-
export declare const removeTable: <T extends CellData, S extends Sheet>({ onChangeTables, onChangeSheets, createHistory, getDependents, enqueueCalculation, }: Pick<UseOnTableProps<T, S>, "onChangeTables" | "onChangeSheets" | "getDependents" | "enqueueCalculation" | "createHistory">) => (tableView: TableView) => void;
|
|
3
|
+
export declare const removeTable: <T extends CellData, S extends Sheet>({ locale, cellXfsRegistry, sharedStringRegistry, getSheetName, onChangeTables, onChangeSheets, onChangeSheetData, createHistory, getDependents, getGraphNodes, getBandedCells, enqueueCalculation, enqueueGraphOperation, }: Pick<UseOnTableProps<T, S>, "locale" | "cellXfsRegistry" | "sharedStringRegistry" | "getSheetName" | "onChangeTables" | "onChangeSheets" | "onChangeSheetData" | "getDependents" | "getGraphNodes" | "getBandedCells" | "enqueueCalculation" | "enqueueGraphOperation" | "createHistory">) => (tableView: TableView) => void;
|
|
4
4
|
//# sourceMappingURL=remove-table.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove-table.d.ts","sourceRoot":"","sources":["../../../interface/remove-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"remove-table.d.ts","sourceRoot":"","sources":["../../../interface/remove-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAK5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,6NAc9D,IAAI,CACL,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EACnB,QAAQ,GACR,iBAAiB,GACjB,sBAAsB,GACtB,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,GACnB,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,oBAAoB,GACpB,uBAAuB,GACvB,eAAe,CAClB,MACS,WAAW,SAAS,SAwH7B,CAAC"}
|
|
@@ -1,7 +1,48 @@
|
|
|
1
1
|
import { produceWithPatches } from "immer";
|
|
2
|
-
|
|
2
|
+
import { bakeBandedFormats } from "../api/paint-format";
|
|
3
|
+
import { convertTableReferencesToA1InFormulas } from "../api/structural-table-refs";
|
|
4
|
+
import { markTableAsDirty } from "./helpers";
|
|
5
|
+
export const removeTable = ({ locale, cellXfsRegistry, sharedStringRegistry, getSheetName, onChangeTables, onChangeSheets, onChangeSheetData, createHistory, getDependents, getGraphNodes, getBandedCells, enqueueCalculation, enqueueGraphOperation, }) => {
|
|
3
6
|
return (tableView) => {
|
|
4
7
|
const saveHistory = createHistory();
|
|
8
|
+
const recalcCells = new Map();
|
|
9
|
+
// Convert to Range keeps every formula working and the table's look (Excel):
|
|
10
|
+
// the structured references into the table become the A1 ranges they
|
|
11
|
+
// resolved to, and the banding the grid painted under it becomes static cell
|
|
12
|
+
// formats, in this same history step, before the table (and with it their
|
|
13
|
+
// resolution and its style) goes away.
|
|
14
|
+
const bandedCells = getBandedCells?.(tableView.sheetId);
|
|
15
|
+
onChangeSheetData?.((prevSheetData) => {
|
|
16
|
+
const [nextState, patches, inversePatches] = produceWithPatches(prevSheetData, (draft) => {
|
|
17
|
+
convertTableReferencesToA1InFormulas({
|
|
18
|
+
draft,
|
|
19
|
+
table: tableView,
|
|
20
|
+
getSheetName,
|
|
21
|
+
getGraphNodes,
|
|
22
|
+
enqueueCalculation,
|
|
23
|
+
enqueueGraphOperation,
|
|
24
|
+
recalcCells,
|
|
25
|
+
locale,
|
|
26
|
+
cellXfsRegistry,
|
|
27
|
+
sharedStringRegistry,
|
|
28
|
+
});
|
|
29
|
+
bakeBandedFormats({
|
|
30
|
+
draft,
|
|
31
|
+
sheetId: tableView.sheetId,
|
|
32
|
+
range: tableView.range,
|
|
33
|
+
bandedCells,
|
|
34
|
+
locale,
|
|
35
|
+
cellXfsRegistry,
|
|
36
|
+
sharedStringRegistry,
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
saveHistory({
|
|
40
|
+
sheetData: { patches, inversePatches },
|
|
41
|
+
recalcCells: { undo: recalcCells, redo: recalcCells },
|
|
42
|
+
});
|
|
43
|
+
return nextState;
|
|
44
|
+
});
|
|
45
|
+
cellXfsRegistry?.getPatches(saveHistory);
|
|
5
46
|
// Move tables if necessary
|
|
6
47
|
onChangeTables?.((prevTables) => {
|
|
7
48
|
const [nextState, patches, inversePatches] = produceWithPatches(prevTables, (draft) => {
|
|
@@ -11,20 +52,16 @@ export const removeTable = ({ onChangeTables, onChangeSheets, createHistory, get
|
|
|
11
52
|
draft.splice(tableIndex, 1);
|
|
12
53
|
}
|
|
13
54
|
});
|
|
14
|
-
// Mark table cells as dirty
|
|
15
|
-
// const recalcCells = markTableAsDirty(
|
|
16
|
-
// tableView.sheetId,
|
|
17
|
-
// tableView.range,
|
|
18
|
-
// getDependents,
|
|
19
|
-
// enqueueCalculation
|
|
20
|
-
// );
|
|
21
55
|
saveHistory({
|
|
22
56
|
tables: { patches, inversePatches },
|
|
23
|
-
// recalcCells: { undo: recalcCells, redo: recalcCells },
|
|
24
57
|
});
|
|
25
58
|
return nextState;
|
|
26
59
|
});
|
|
27
|
-
//
|
|
60
|
+
// The table's filter goes with it: rows it hid become visible again. Their values did not
|
|
61
|
+
// change, so only the formulas that read visibility — `SUBTOTAL(101…111)` / `AGGREGATE` over
|
|
62
|
+
// those rows — are stale; dirtying the un-hidden cells recalculates exactly those dependents
|
|
63
|
+
// (the rewritten structured references were re-entered above with `force`).
|
|
64
|
+
const unhiddenRecalcCells = new Map();
|
|
28
65
|
onChangeSheets((prevSheets) => {
|
|
29
66
|
const [nextState, patches, inversePatches] = produceWithPatches(prevSheets, (draft) => {
|
|
30
67
|
const sheet = draft.find((sheet) => sheet.sheetId === tableView.sheetId);
|
|
@@ -36,6 +73,9 @@ export const removeTable = ({ onChangeTables, onChangeSheets, createHistory, get
|
|
|
36
73
|
for (let rowIndex = range.startRowIndex; rowIndex <= range.endRowIndex; rowIndex++) {
|
|
37
74
|
if (sheet.rowMetadata[rowIndex]?.hiddenByFilter) {
|
|
38
75
|
sheet.rowMetadata[rowIndex].hiddenByFilter = false;
|
|
76
|
+
for (const [key, position] of markTableAsDirty(tableView.sheetId, { ...range, startRowIndex: rowIndex, endRowIndex: rowIndex }, getDependents, enqueueCalculation)) {
|
|
77
|
+
unhiddenRecalcCells.set(key, position);
|
|
78
|
+
}
|
|
39
79
|
}
|
|
40
80
|
}
|
|
41
81
|
}
|
|
@@ -43,6 +83,14 @@ export const removeTable = ({ onChangeTables, onChangeSheets, createHistory, get
|
|
|
43
83
|
// Save to history
|
|
44
84
|
saveHistory({
|
|
45
85
|
sheets: { patches, inversePatches },
|
|
86
|
+
...(unhiddenRecalcCells.size
|
|
87
|
+
? {
|
|
88
|
+
recalcCells: {
|
|
89
|
+
undo: unhiddenRecalcCells,
|
|
90
|
+
redo: unhiddenRecalcCells,
|
|
91
|
+
},
|
|
92
|
+
}
|
|
93
|
+
: {}),
|
|
46
94
|
});
|
|
47
95
|
return nextState;
|
|
48
96
|
});
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
-
import type { Slicer } from "@rowsncolumns/spreadsheet";
|
|
1
|
+
import type { Slicer, TableView } from "@rowsncolumns/spreadsheet";
|
|
2
2
|
import { type CanvasGridProps, type CellData } from "@rowsncolumns/spreadsheet";
|
|
3
3
|
import type { UseOnSlicersProps } from "../hooks/use-slicers";
|
|
4
|
+
/** Excel's default slicer frame, and the cascade step between slicers inserted together. */
|
|
5
|
+
export declare const TABLE_SLICER_WIDTH_PIXELS = 160;
|
|
6
|
+
export declare const TABLE_SLICER_HEIGHT_PIXELS = 220;
|
|
7
|
+
/** The column names Excel's Insert Slicers dialog lists for `table` (its columns, `Column N` for a gap). */
|
|
8
|
+
export declare const getTableSlicerColumnNames: (table: TableView) => string[];
|
|
9
|
+
/**
|
|
10
|
+
* The slicers Excel's Insert Slicers dialog creates for the checked `columnIndexes` (table-relative,
|
|
11
|
+
* 0-based) of `table`: one table-bound slicer per column, titled after the column, placed as a
|
|
12
|
+
* floating object just right of the table and cascaded so they don't stack exactly.
|
|
13
|
+
*/
|
|
14
|
+
export declare const buildTableSlicers: (table: TableView, columnIndexes: number[], createId?: (columnIndex: number) => Slicer["slicerId"]) => Slicer[];
|
|
4
15
|
export declare const deleteSlicer: <T extends CellData>({ onChangeSlicers, createHistory, }: Omit<UseOnSlicersProps<T>, "sheetId">) => (slicerId: Slicer["slicerId"]) => void;
|
|
5
16
|
export declare const updateSlicer: <T extends CellData>({ onChangeSlicers, createHistory, }: Omit<UseOnSlicersProps<T>, "sheetId">) => (slicer: Slicer) => void;
|
|
6
17
|
export declare const moveSlicer: <T extends CellData>({ onChangeSlicers, createHistory, }: UseOnSlicersProps<T>) => NonNullable<CanvasGridProps["onMoveSlicer"]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slicers.d.ts","sourceRoot":"","sources":["../../../interface/slicers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"slicers.d.ts","sourceRoot":"","sources":["../../../interface/slicers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,QAAQ,EACd,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAQ9D,4FAA4F;AAC5F,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAG9C,4GAA4G;AAC5G,eAAO,MAAM,yBAAyB,GAAI,OAAO,SAAS,KAAG,MAAM,EAOlE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,OAAO,SAAS,EAChB,eAAe,MAAM,EAAE,EACvB,WAAU,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC,UAAU,CACY,KAC/D,MAAM,EAwBR,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,qCAG9C,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,MAC9B,UAAU,MAAM,CAAC,UAAU,CAAC,SAsBrC,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,qCAG9C,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,MAC9B,QAAQ,MAAM,SAsBvB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,QAAQ,EAAE,qCAG5C,iBAAiB,CAAC,CAAC,CAAC,KAAG,WAAW,CAAC,eAAe,CAAC,cAAc,CAAC,CAqCpE,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,qCAG9C,iBAAiB,CAAC,CAAC,CAAC,KAAG,WAAW,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAyCtE,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,qCAG9C,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,MAC9B,MAAM,MAAM,SAiBrB,CAAC"}
|
|
@@ -1,10 +1,50 @@
|
|
|
1
1
|
import { DEFAULT_ACTIVE_CELL } from "@rowsncolumns/utils";
|
|
2
2
|
import { produceWithPatches } from "immer";
|
|
3
|
+
import { setOverlayToAnchor } from "../api/anchored-objects";
|
|
3
4
|
const DEFAULT_OVERLAY_POSITION = {
|
|
4
5
|
anchorCell: DEFAULT_ACTIVE_CELL,
|
|
5
6
|
heightPixels: 400,
|
|
6
7
|
widthPixels: 400,
|
|
7
8
|
};
|
|
9
|
+
/** Excel's default slicer frame, and the cascade step between slicers inserted together. */
|
|
10
|
+
export const TABLE_SLICER_WIDTH_PIXELS = 160;
|
|
11
|
+
export const TABLE_SLICER_HEIGHT_PIXELS = 220;
|
|
12
|
+
const TABLE_SLICER_CASCADE_PIXELS = 24;
|
|
13
|
+
/** The column names Excel's Insert Slicers dialog lists for `table` (its columns, `Column N` for a gap). */
|
|
14
|
+
export const getTableSlicerColumnNames = (table) => {
|
|
15
|
+
const count = table.range.endColumnIndex - table.range.startColumnIndex + 1;
|
|
16
|
+
return Array.from({ length: count }, (_, index) => table.columns?.[index]?.name || `Column${index + 1}`);
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* The slicers Excel's Insert Slicers dialog creates for the checked `columnIndexes` (table-relative,
|
|
20
|
+
* 0-based) of `table`: one table-bound slicer per column, titled after the column, placed as a
|
|
21
|
+
* floating object just right of the table and cascaded so they don't stack exactly.
|
|
22
|
+
*/
|
|
23
|
+
export const buildTableSlicers = (table, columnIndexes, createId = (columnIndex) => `slicer-${table.id}-${columnIndex}-${Date.now().toString(36)}`) => {
|
|
24
|
+
const names = getTableSlicerColumnNames(table);
|
|
25
|
+
return columnIndexes.map((columnIndex, order) => ({
|
|
26
|
+
slicerId: createId(columnIndex),
|
|
27
|
+
spec: {
|
|
28
|
+
type: "table",
|
|
29
|
+
tableIds: [table.id],
|
|
30
|
+
columnIndex,
|
|
31
|
+
title: names[columnIndex],
|
|
32
|
+
},
|
|
33
|
+
position: {
|
|
34
|
+
sheetId: table.sheetId,
|
|
35
|
+
overlayPosition: {
|
|
36
|
+
anchorCell: {
|
|
37
|
+
rowIndex: table.range.startRowIndex,
|
|
38
|
+
columnIndex: table.range.endColumnIndex + 1,
|
|
39
|
+
},
|
|
40
|
+
offsetXPixels: TABLE_SLICER_CASCADE_PIXELS * (order + 1),
|
|
41
|
+
offsetYPixels: TABLE_SLICER_CASCADE_PIXELS * order,
|
|
42
|
+
widthPixels: TABLE_SLICER_WIDTH_PIXELS,
|
|
43
|
+
heightPixels: TABLE_SLICER_HEIGHT_PIXELS,
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
}));
|
|
47
|
+
};
|
|
8
48
|
export const deleteSlicer = ({ onChangeSlicers, createHistory, }) => {
|
|
9
49
|
return (slicerId) => {
|
|
10
50
|
const saveHistory = createHistory();
|
|
@@ -40,7 +80,7 @@ export const updateSlicer = ({ onChangeSlicers, createHistory, }) => {
|
|
|
40
80
|
};
|
|
41
81
|
};
|
|
42
82
|
export const moveSlicer = ({ onChangeSlicers, createHistory, }) => {
|
|
43
|
-
return (slicerId, sheetId, anchorCell, offsetXPixels, offsetYPixels) => {
|
|
83
|
+
return (slicerId, sheetId, anchorCell, offsetXPixels, offsetYPixels, toAnchor) => {
|
|
44
84
|
const saveHistory = createHistory();
|
|
45
85
|
onChangeSlicers?.((prevSlicers) => {
|
|
46
86
|
const [nextState, patches, inversePatches] = produceWithPatches(prevSlicers, (draft) => {
|
|
@@ -55,6 +95,7 @@ export const moveSlicer = ({ onChangeSlicers, createHistory, }) => {
|
|
|
55
95
|
slicer.position.overlayPosition.anchorCell = anchorCell;
|
|
56
96
|
slicer.position.overlayPosition.offsetXPixels = offsetXPixels;
|
|
57
97
|
slicer.position.overlayPosition.offsetYPixels = offsetYPixels;
|
|
98
|
+
setOverlayToAnchor(slicer.position.overlayPosition, toAnchor);
|
|
58
99
|
}
|
|
59
100
|
});
|
|
60
101
|
saveHistory({
|
|
@@ -65,7 +106,7 @@ export const moveSlicer = ({ onChangeSlicers, createHistory, }) => {
|
|
|
65
106
|
};
|
|
66
107
|
};
|
|
67
108
|
export const resizeSlicer = ({ onChangeSlicers, createHistory, }) => {
|
|
68
|
-
return (slicerId, sheetId, anchorCell, offsetXPixels, offsetYPixels, width, height) => {
|
|
109
|
+
return (slicerId, sheetId, anchorCell, offsetXPixels, offsetYPixels, width, height, toAnchor) => {
|
|
69
110
|
const saveHistory = createHistory();
|
|
70
111
|
onChangeSlicers?.((prevSlicers) => {
|
|
71
112
|
const [nextState, patches, inversePatches] = produceWithPatches(prevSlicers, (draft) => {
|
|
@@ -82,6 +123,7 @@ export const resizeSlicer = ({ onChangeSlicers, createHistory, }) => {
|
|
|
82
123
|
slicer.position.overlayPosition.offsetYPixels = offsetYPixels;
|
|
83
124
|
slicer.position.overlayPosition.widthPixels = width;
|
|
84
125
|
slicer.position.overlayPosition.heightPixels = height;
|
|
126
|
+
setOverlayToAnchor(slicer.position.overlayPosition, toAnchor);
|
|
85
127
|
}
|
|
86
128
|
});
|
|
87
129
|
saveHistory({
|
|
@@ -8,7 +8,7 @@ import type { Patch } from "immer";
|
|
|
8
8
|
import { type AutoFillType } from "../api/fill";
|
|
9
9
|
import type { CalculationOperation, CalculationResult, StructureChange } from "../hooks/use-calculation";
|
|
10
10
|
import type { OnChangeFormattingWithCellFormat, OnChangeFormattingWithTypeValue } from "../hooks/use-on-change-formatting";
|
|
11
|
-
import type
|
|
11
|
+
import { type SheetData } from "../hooks/use-spreadsheet-state";
|
|
12
12
|
import type { HistoryType, SpreadsheetPatch } from "../hooks/use-undo-redo";
|
|
13
13
|
import { CellXfsRegistry } from "../cellxfs-registry";
|
|
14
14
|
import { SharedStringRegistry } from "../shared-string-registry";
|