@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
|
@@ -89,11 +89,26 @@ var isSheetRangeLike = function (value) {
|
|
|
89
89
|
* (`sources`), nulled on properties (`dataRange`) — the chart's `#REF!`.
|
|
90
90
|
* Unknown keys are left untouched. Mutates in place; returns whether anything
|
|
91
91
|
* changed.
|
|
92
|
+
*
|
|
93
|
+
* `band` restricts the rewrite to ranges whose PERPENDICULAR span lies wholly
|
|
94
|
+
* inside it — the insert/delete-CELLS shift of columns `B:C` only touches
|
|
95
|
+
* ranges living entirely in B..C, exactly like `expandRangesInFormula` /
|
|
96
|
+
* `contractRangesInFormula` with the same `bandSpan` (SHF-07 / SHF-08), so a
|
|
97
|
+
* chart and a formula reading the same cells always agree. A range that only
|
|
98
|
+
* partially overlaps the band keeps its address, as in Excel.
|
|
92
99
|
*/
|
|
93
|
-
export var shiftChartSpecRanges = function (spec, sheetId, axis, op, index, count) {
|
|
100
|
+
export var shiftChartSpecRanges = function (spec, sheetId, axis, op, index, count, band) {
|
|
94
101
|
var changed = false;
|
|
102
|
+
var _a = __read(axis === "row"
|
|
103
|
+
? ["startColumnIndex", "endColumnIndex"]
|
|
104
|
+
: ["startRowIndex", "endRowIndex"], 2), acrossStartKey = _a[0], acrossEndKey = _a[1];
|
|
105
|
+
var isWithinBand = function (range) {
|
|
106
|
+
return !band ||
|
|
107
|
+
(range[acrossStartKey] >= band.startIndex &&
|
|
108
|
+
range[acrossEndKey] <= band.endIndex);
|
|
109
|
+
};
|
|
95
110
|
var shiftRange = function (range) {
|
|
96
|
-
if (range.sheetId !== sheetId)
|
|
111
|
+
if (range.sheetId !== sheetId || !isWithinBand(range))
|
|
97
112
|
return range;
|
|
98
113
|
var next = shiftGridRangeLikeReference(range, axis, op, index, count);
|
|
99
114
|
if (next !== range)
|
|
@@ -146,59 +161,132 @@ export var shiftChartSpecRanges = function (spec, sheetId, axis, op, index, coun
|
|
|
146
161
|
walk(spec);
|
|
147
162
|
return changed;
|
|
148
163
|
};
|
|
149
|
-
/**
|
|
164
|
+
/**
|
|
165
|
+
* Record (or clear) the second anchor a move / resize gesture reported —
|
|
166
|
+
* `moveAndSize` objects carry one, `moveOnly` / `absolute` never do.
|
|
167
|
+
*/
|
|
168
|
+
export var setOverlayToAnchor = function (overlay, toAnchor) {
|
|
169
|
+
if (toAnchor) {
|
|
170
|
+
overlay.toCell = toAnchor.toCell;
|
|
171
|
+
overlay.toOffsetXPixels = toAnchor.toOffsetXPixels;
|
|
172
|
+
overlay.toOffsetYPixels = toAnchor.toOffsetYPixels;
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
delete overlay.toCell;
|
|
176
|
+
delete overlay.toOffsetXPixels;
|
|
177
|
+
delete overlay.toOffsetYPixels;
|
|
178
|
+
};
|
|
179
|
+
/**
|
|
180
|
+
* Shift a floating object's anchors for a whole row / column insert or
|
|
181
|
+
* delete, per its placement mode. Returns `"removed"` when a delete consumed
|
|
182
|
+
* the whole span of a `moveAndSize` object (Excel deletes it), otherwise
|
|
183
|
+
* whether anything moved.
|
|
184
|
+
*/
|
|
185
|
+
export var shiftOverlayOnStructuralChange = function (overlay, axis, op, index, count) {
|
|
186
|
+
var _a;
|
|
187
|
+
if (!overlay.anchorCell || overlay.placement === "absolute")
|
|
188
|
+
return false;
|
|
189
|
+
var moveAndSize = ((_a = overlay.placement) !== null && _a !== void 0 ? _a : "moveAndSize") === "moveAndSize";
|
|
190
|
+
var toCell = moveAndSize ? overlay.toCell : undefined;
|
|
191
|
+
if (toCell && op === "delete" && count > 0) {
|
|
192
|
+
var key = axis === "row" ? "rowIndex" : "columnIndex";
|
|
193
|
+
var start = overlay.anchorCell[key];
|
|
194
|
+
// `to` sits on the cell the corner lands in; a corner flush with the
|
|
195
|
+
// cell's leading edge does not occupy it.
|
|
196
|
+
var offset = axis === "row" ? overlay.toOffsetYPixels : overlay.toOffsetXPixels;
|
|
197
|
+
var end = (offset !== null && offset !== void 0 ? offset : 0) > 0 ? toCell[key] : Math.max(start, toCell[key] - 1);
|
|
198
|
+
if (index <= start && index + count - 1 >= end)
|
|
199
|
+
return "removed";
|
|
200
|
+
}
|
|
201
|
+
var changed = false;
|
|
202
|
+
var next = shiftAnchorCell(overlay.anchorCell, axis, op, index, count);
|
|
203
|
+
if (next !== overlay.anchorCell) {
|
|
204
|
+
overlay.anchorCell = next;
|
|
205
|
+
changed = true;
|
|
206
|
+
}
|
|
207
|
+
if (toCell) {
|
|
208
|
+
var nextTo = shiftAnchorCell(toCell, axis, op, index, count);
|
|
209
|
+
if (nextTo !== toCell) {
|
|
210
|
+
overlay.toCell = nextTo;
|
|
211
|
+
changed = true;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return changed;
|
|
215
|
+
};
|
|
216
|
+
/** Shift the anchors of every embed (picture, shape, text box…) on the edited sheet. */
|
|
150
217
|
export var shiftEmbedsOnStructuralChange = function (draft, sheetId, axis, op, index, count) {
|
|
151
|
-
var
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
var next = shiftAnchorCell(overlay.anchorCell, axis, op, index, count);
|
|
162
|
-
if (next !== overlay.anchorCell)
|
|
163
|
-
overlay.anchorCell = next;
|
|
218
|
+
for (var i = draft.length - 1; i >= 0; i--) {
|
|
219
|
+
var position = draft[i].position;
|
|
220
|
+
if (!position || position.sheetId !== sheetId)
|
|
221
|
+
continue;
|
|
222
|
+
var overlay = position.overlayPosition;
|
|
223
|
+
if (!(overlay === null || overlay === void 0 ? void 0 : overlay.anchorCell))
|
|
224
|
+
continue;
|
|
225
|
+
if (shiftOverlayOnStructuralChange(overlay, axis, op, index, count) ===
|
|
226
|
+
"removed") {
|
|
227
|
+
draft.splice(i, 1);
|
|
164
228
|
}
|
|
165
229
|
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* Shift the anchors of every slicer on the edited sheet — a slicer is a
|
|
233
|
+
* floating frame with the same placement modes as a picture (#668 C-46).
|
|
234
|
+
*/
|
|
235
|
+
export var shiftSlicersOnStructuralChange = function (draft, sheetId, axis, op, index, count) {
|
|
236
|
+
for (var i = draft.length - 1; i >= 0; i--) {
|
|
237
|
+
var position = draft[i].position;
|
|
238
|
+
if (!position || position.sheetId !== sheetId)
|
|
239
|
+
continue;
|
|
240
|
+
var overlay = position.overlayPosition;
|
|
241
|
+
if (!(overlay === null || overlay === void 0 ? void 0 : overlay.anchorCell))
|
|
242
|
+
continue;
|
|
243
|
+
if (shiftOverlayOnStructuralChange(overlay, axis, op, index, count) ===
|
|
244
|
+
"removed") {
|
|
245
|
+
draft.splice(i, 1);
|
|
170
246
|
}
|
|
171
|
-
finally { if (e_2) throw e_2.error; }
|
|
172
247
|
}
|
|
173
248
|
};
|
|
174
249
|
/**
|
|
175
|
-
* Shift every chart on the edited sheet: its
|
|
250
|
+
* Shift every chart on the edited sheet: its anchors like a floating
|
|
176
251
|
* object, and the ranges inside its spec like references.
|
|
177
252
|
*/
|
|
178
253
|
export var shiftChartsOnStructuralChange = function (draft, sheetId, axis, op, index, count) {
|
|
179
|
-
var
|
|
180
|
-
var
|
|
254
|
+
var _a;
|
|
255
|
+
for (var i = draft.length - 1; i >= 0; i--) {
|
|
256
|
+
var chart = draft[i];
|
|
257
|
+
var position = chart.position;
|
|
258
|
+
if ((position === null || position === void 0 ? void 0 : position.sheetId) === sheetId &&
|
|
259
|
+
((_a = position.overlayPosition) === null || _a === void 0 ? void 0 : _a.anchorCell) &&
|
|
260
|
+
shiftOverlayOnStructuralChange(position.overlayPosition, axis, op, index, count) === "removed") {
|
|
261
|
+
draft.splice(i, 1);
|
|
262
|
+
continue;
|
|
263
|
+
}
|
|
264
|
+
// Series ranges may point at ANY sheet, so the spec walk is not gated on
|
|
265
|
+
// the chart's own sheet.
|
|
266
|
+
shiftChartSpecRanges(chart.spec, sheetId, axis, op, index, count);
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
/**
|
|
270
|
+
* Insert/delete CELLS with shift (SHF-*): only the ranges a chart reads move —
|
|
271
|
+
* those wholly inside the shifted band's columns (shift down/up) or rows
|
|
272
|
+
* (shift right/left), with the reference rule along the shift axis. Excel
|
|
273
|
+
* moves drawing anchors only for whole row/column edits, so the chart frame
|
|
274
|
+
* stays where it is.
|
|
275
|
+
*/
|
|
276
|
+
export var shiftChartsOnCellShift = function (draft, sheetId, axis, op, index, count, band) {
|
|
277
|
+
var e_2, _a;
|
|
181
278
|
try {
|
|
182
|
-
for (var
|
|
183
|
-
var chart =
|
|
184
|
-
|
|
185
|
-
if ((position === null || position === void 0 ? void 0 : position.sheetId) === sheetId && ((_b = position.overlayPosition) === null || _b === void 0 ? void 0 : _b.anchorCell)) {
|
|
186
|
-
var overlay = position.overlayPosition;
|
|
187
|
-
var next = shiftAnchorCell(overlay.anchorCell, axis, op, index, count);
|
|
188
|
-
if (next !== overlay.anchorCell)
|
|
189
|
-
overlay.anchorCell = next;
|
|
190
|
-
}
|
|
191
|
-
// Series ranges may point at ANY sheet, so the spec walk is not gated on
|
|
192
|
-
// the chart's own sheet.
|
|
193
|
-
shiftChartSpecRanges(chart.spec, sheetId, axis, op, index, count);
|
|
279
|
+
for (var draft_1 = __values(draft), draft_1_1 = draft_1.next(); !draft_1_1.done; draft_1_1 = draft_1.next()) {
|
|
280
|
+
var chart = draft_1_1.value;
|
|
281
|
+
shiftChartSpecRanges(chart.spec, sheetId, axis, op, index, count, band);
|
|
194
282
|
}
|
|
195
283
|
}
|
|
196
|
-
catch (
|
|
284
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
197
285
|
finally {
|
|
198
286
|
try {
|
|
199
|
-
if (
|
|
287
|
+
if (draft_1_1 && !draft_1_1.done && (_a = draft_1.return)) _a.call(draft_1);
|
|
200
288
|
}
|
|
201
|
-
finally { if (
|
|
289
|
+
finally { if (e_2) throw e_2.error; }
|
|
202
290
|
}
|
|
203
291
|
};
|
|
204
292
|
/**
|
|
@@ -206,7 +294,7 @@ export var shiftChartsOnStructuralChange = function (draft, sheetId, axis, op, i
|
|
|
206
294
|
* (sheet-scoped protection) is untouched; one the delete consumes is removed.
|
|
207
295
|
*/
|
|
208
296
|
export var shiftProtectedRangesOnStructuralChange = function (draft, sheetId, axis, op, index, count) {
|
|
209
|
-
var
|
|
297
|
+
var e_3, _a;
|
|
210
298
|
var _b = __read(axis === "row"
|
|
211
299
|
? ["startRowIndex", "endRowIndex"]
|
|
212
300
|
: ["startColumnIndex", "endColumnIndex"], 2), startKey = _b[0], endKey = _b[1];
|
|
@@ -232,7 +320,7 @@ export var shiftProtectedRangesOnStructuralChange = function (draft, sheetId, ax
|
|
|
232
320
|
var kept = [];
|
|
233
321
|
var unprotectedChanged = false;
|
|
234
322
|
try {
|
|
235
|
-
for (var _c = (
|
|
323
|
+
for (var _c = (e_3 = void 0, __values(protectedRange.unprotectedRanges)), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
236
324
|
var unprotected = _d.value;
|
|
237
325
|
if (unprotected.sheetId !== sheetId) {
|
|
238
326
|
kept.push(unprotected);
|
|
@@ -245,15 +333,348 @@ export var shiftProtectedRangesOnStructuralChange = function (draft, sheetId, ax
|
|
|
245
333
|
kept.push(next);
|
|
246
334
|
}
|
|
247
335
|
}
|
|
248
|
-
catch (
|
|
336
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
249
337
|
finally {
|
|
250
338
|
try {
|
|
251
339
|
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
252
340
|
}
|
|
253
|
-
finally { if (
|
|
341
|
+
finally { if (e_3) throw e_3.error; }
|
|
254
342
|
}
|
|
255
343
|
if (unprotectedChanged)
|
|
256
344
|
protectedRange.unprotectedRanges = kept;
|
|
257
345
|
}
|
|
258
346
|
}
|
|
259
347
|
};
|
|
348
|
+
/**
|
|
349
|
+
* Visit every `SheetRange` a chart spec holds — `dataRange`, per-series /
|
|
350
|
+
* per-domain `sources`, error-bar `plusRange` / `minusRange`, and any future
|
|
351
|
+
* range-valued key — replacing it with what `rewrite` returns. A range the
|
|
352
|
+
* rewrite returns `null` for is removed — spliced out of arrays (`sources`),
|
|
353
|
+
* nulled on properties (`dataRange`) — the chart's `#REF!`; a move never
|
|
354
|
+
* consumes a range, so its rewrites always return a range. Mutates in place;
|
|
355
|
+
* returns whether anything changed.
|
|
356
|
+
*/
|
|
357
|
+
var rewriteChartSpecRanges = function (spec, rewrite) {
|
|
358
|
+
var changed = false;
|
|
359
|
+
var walk = function (node) {
|
|
360
|
+
var e_4, _a;
|
|
361
|
+
if (!node || typeof node !== "object")
|
|
362
|
+
return;
|
|
363
|
+
if (Array.isArray(node)) {
|
|
364
|
+
for (var i = node.length - 1; i >= 0; i--) {
|
|
365
|
+
var item = node[i];
|
|
366
|
+
if (isSheetRangeLike(item)) {
|
|
367
|
+
var next = rewrite(item);
|
|
368
|
+
if (next === null) {
|
|
369
|
+
node.splice(i, 1);
|
|
370
|
+
changed = true;
|
|
371
|
+
}
|
|
372
|
+
else if (next !== item) {
|
|
373
|
+
node[i] = next;
|
|
374
|
+
changed = true;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
else {
|
|
378
|
+
walk(item);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
return;
|
|
382
|
+
}
|
|
383
|
+
var obj = node;
|
|
384
|
+
try {
|
|
385
|
+
for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
386
|
+
var key = _c.value;
|
|
387
|
+
var value = obj[key];
|
|
388
|
+
if (isSheetRangeLike(value)) {
|
|
389
|
+
var next = rewrite(value);
|
|
390
|
+
if (next !== value) {
|
|
391
|
+
obj[key] = next;
|
|
392
|
+
changed = true;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
else {
|
|
396
|
+
walk(value);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
401
|
+
finally {
|
|
402
|
+
try {
|
|
403
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
404
|
+
}
|
|
405
|
+
finally { if (e_4) throw e_4.error; }
|
|
406
|
+
}
|
|
407
|
+
};
|
|
408
|
+
walk(spec);
|
|
409
|
+
return changed;
|
|
410
|
+
};
|
|
411
|
+
/**
|
|
412
|
+
* Deleting a sheet consumes every range on it: a chart elsewhere whose series
|
|
413
|
+
* / category / data range read the deleted sheet keeps the chart but loses
|
|
414
|
+
* that range (Excel's empty `#REF!` series).
|
|
415
|
+
*/
|
|
416
|
+
export var removeChartSpecRangesOnSheet = function (spec, sheetId) {
|
|
417
|
+
return rewriteChartSpecRanges(spec, function (range) {
|
|
418
|
+
return range.sheetId === sheetId ? null : range;
|
|
419
|
+
});
|
|
420
|
+
};
|
|
421
|
+
/**
|
|
422
|
+
* Re-point every range on `fromSheetId` at `toSheetId` — a duplicated sheet's
|
|
423
|
+
* charts read the copy's own cells (Excel), while ranges on other sheets keep
|
|
424
|
+
* reading the original.
|
|
425
|
+
*/
|
|
426
|
+
export var retargetChartSpecRanges = function (spec, fromSheetId, toSheetId) {
|
|
427
|
+
return rewriteChartSpecRanges(spec, function (range) {
|
|
428
|
+
return range.sheetId === fromSheetId ? __assign(__assign({}, range), { sheetId: toSheetId }) : range;
|
|
429
|
+
});
|
|
430
|
+
};
|
|
431
|
+
/**
|
|
432
|
+
* Relocate the ranges inside a chart spec when the block `from` on
|
|
433
|
+
* `fromSheetId` is moved (drag-move, cut → paste) to `to` on `toSheetId`, the
|
|
434
|
+
* way Excel re-points series like references: a range that lies ENTIRELY
|
|
435
|
+
* inside the moved block travels with it (shifted by the move delta and onto
|
|
436
|
+
* the destination sheet); a range the block covers only partially, and any
|
|
437
|
+
* range outside it, keeps referring to its original cells. Mirrors
|
|
438
|
+
* `move_spec_sheet_ranges` in `rnc-store`.
|
|
439
|
+
*/
|
|
440
|
+
export var moveChartSpecRanges = function (spec, fromSheetId, from, toSheetId, to) {
|
|
441
|
+
var rowDelta = to.startRowIndex - from.startRowIndex;
|
|
442
|
+
var columnDelta = to.startColumnIndex - from.startColumnIndex;
|
|
443
|
+
if (rowDelta === 0 && columnDelta === 0 && fromSheetId === toSheetId) {
|
|
444
|
+
return false;
|
|
445
|
+
}
|
|
446
|
+
return rewriteChartSpecRanges(spec, function (range) {
|
|
447
|
+
if (range.sheetId !== fromSheetId ||
|
|
448
|
+
range.startRowIndex < from.startRowIndex ||
|
|
449
|
+
range.endRowIndex > from.endRowIndex ||
|
|
450
|
+
range.startColumnIndex < from.startColumnIndex ||
|
|
451
|
+
range.endColumnIndex > from.endColumnIndex) {
|
|
452
|
+
return range;
|
|
453
|
+
}
|
|
454
|
+
return __assign(__assign({}, range), { sheetId: toSheetId, startRowIndex: range.startRowIndex + rowDelta, endRowIndex: range.endRowIndex + rowDelta, startColumnIndex: range.startColumnIndex + columnDelta, endColumnIndex: range.endColumnIndex + columnDelta });
|
|
455
|
+
});
|
|
456
|
+
};
|
|
457
|
+
/** Re-point the ranges of every chart when a cell block is moved (see `moveChartSpecRanges`). */
|
|
458
|
+
export var moveChartsOnRangeMove = function (draft, fromSheetId, from, toSheetId, to) {
|
|
459
|
+
var e_5, _a;
|
|
460
|
+
try {
|
|
461
|
+
for (var draft_2 = __values(draft), draft_2_1 = draft_2.next(); !draft_2_1.done; draft_2_1 = draft_2.next()) {
|
|
462
|
+
var chart = draft_2_1.value;
|
|
463
|
+
moveChartSpecRanges(chart.spec, fromSheetId, from, toSheetId, to);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
467
|
+
finally {
|
|
468
|
+
try {
|
|
469
|
+
if (draft_2_1 && !draft_2_1.done && (_a = draft_2.return)) _a.call(draft_2);
|
|
470
|
+
}
|
|
471
|
+
finally { if (e_5) throw e_5.error; }
|
|
472
|
+
}
|
|
473
|
+
};
|
|
474
|
+
/**
|
|
475
|
+
* Where line `index` (a row or column) ends up after the whole lines `lines`
|
|
476
|
+
* (sorted ascending) are moved so the block lands at `target` in the
|
|
477
|
+
* post-removal frame — the permutation a row/column move applies to every
|
|
478
|
+
* cell. A moved line lands at `target` + its rank in the block; a line outside
|
|
479
|
+
* closes the gap the block left and is pushed by the block landing at or
|
|
480
|
+
* before it. Mirrors `moved_line_index` in `rnc-store`.
|
|
481
|
+
*/
|
|
482
|
+
export var movedLineIndex = function (lines, target, index) {
|
|
483
|
+
var e_6, _a;
|
|
484
|
+
var rank = lines.indexOf(index);
|
|
485
|
+
if (rank !== -1)
|
|
486
|
+
return target + rank;
|
|
487
|
+
var removedBefore = 0;
|
|
488
|
+
try {
|
|
489
|
+
for (var lines_1 = __values(lines), lines_1_1 = lines_1.next(); !lines_1_1.done; lines_1_1 = lines_1.next()) {
|
|
490
|
+
var line = lines_1_1.value;
|
|
491
|
+
if (line < index)
|
|
492
|
+
removedBefore++;
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
496
|
+
finally {
|
|
497
|
+
try {
|
|
498
|
+
if (lines_1_1 && !lines_1_1.done && (_a = lines_1.return)) _a.call(lines_1);
|
|
499
|
+
}
|
|
500
|
+
finally { if (e_6) throw e_6.error; }
|
|
501
|
+
}
|
|
502
|
+
var settled = index - removedBefore;
|
|
503
|
+
return settled < target ? settled : settled + lines.length;
|
|
504
|
+
};
|
|
505
|
+
/**
|
|
506
|
+
* Re-point the ranges inside a chart spec when whole rows / columns of
|
|
507
|
+
* `sheetId` are moved (`lines` land at `target`), with the rule the engines
|
|
508
|
+
* apply to formula references: both edges follow their line, and the range is
|
|
509
|
+
* rewritten only when that yields a range of the same size — so a range wholly
|
|
510
|
+
* inside the moved block relocates with it, one wholly inside the displaced
|
|
511
|
+
* band shifts by the block size, and one straddling the block and its
|
|
512
|
+
* neighbours keeps its text (it still covers the same cells). Mirrors
|
|
513
|
+
* `permute_spec_sheet_ranges` in `rnc-store` / `remap_formula_axis`.
|
|
514
|
+
*/
|
|
515
|
+
export var reorderChartSpecRanges = function (spec, sheetId, axis, lines, target) {
|
|
516
|
+
if (!lines.length)
|
|
517
|
+
return false;
|
|
518
|
+
var _a = __read(axis === "row"
|
|
519
|
+
? ["startRowIndex", "endRowIndex"]
|
|
520
|
+
: ["startColumnIndex", "endColumnIndex"], 2), startKey = _a[0], endKey = _a[1];
|
|
521
|
+
return rewriteChartSpecRanges(spec, function (range) {
|
|
522
|
+
var _a;
|
|
523
|
+
if (range.sheetId !== sheetId)
|
|
524
|
+
return range;
|
|
525
|
+
var start = range[startKey];
|
|
526
|
+
var end = range[endKey];
|
|
527
|
+
var nextStart = movedLineIndex(lines, target, start);
|
|
528
|
+
var nextEnd = movedLineIndex(lines, target, end);
|
|
529
|
+
if (nextEnd < nextStart ||
|
|
530
|
+
nextEnd - nextStart !== end - start ||
|
|
531
|
+
(nextStart === start && nextEnd === end)) {
|
|
532
|
+
return range;
|
|
533
|
+
}
|
|
534
|
+
return __assign(__assign({}, range), (_a = {}, _a[startKey] = nextStart, _a[endKey] = nextEnd, _a));
|
|
535
|
+
});
|
|
536
|
+
};
|
|
537
|
+
/** Re-point the ranges of every chart when whole rows / columns are moved (see `reorderChartSpecRanges`). */
|
|
538
|
+
export var reorderChartsOnLineMove = function (draft, sheetId, axis, lines, target) {
|
|
539
|
+
var e_7, _a;
|
|
540
|
+
try {
|
|
541
|
+
for (var draft_3 = __values(draft), draft_3_1 = draft_3.next(); !draft_3_1.done; draft_3_1 = draft_3.next()) {
|
|
542
|
+
var chart = draft_3_1.value;
|
|
543
|
+
reorderChartSpecRanges(chart.spec, sheetId, axis, lines, target);
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
547
|
+
finally {
|
|
548
|
+
try {
|
|
549
|
+
if (draft_3_1 && !draft_3_1.done && (_a = draft_3.return)) _a.call(draft_3);
|
|
550
|
+
}
|
|
551
|
+
finally { if (e_7) throw e_7.error; }
|
|
552
|
+
}
|
|
553
|
+
};
|
|
554
|
+
export var tableBinding = function (table) {
|
|
555
|
+
var range = table.range;
|
|
556
|
+
var bodyStartRowIndex = range.startRowIndex + (table.headerRow === false ? 0 : 1);
|
|
557
|
+
return {
|
|
558
|
+
range: range,
|
|
559
|
+
rowStarts: [range.startRowIndex, bodyStartRowIndex],
|
|
560
|
+
bodyEndRowIndex: range.endRowIndex - (table.totalRow ? 1 : 0),
|
|
561
|
+
};
|
|
562
|
+
};
|
|
563
|
+
/**
|
|
564
|
+
* A range bound to the table along `axis`: it covers the body rows (or header + body) of one or
|
|
565
|
+
* more table columns — for a column edit ALL of them, since a series is a column and only a range
|
|
566
|
+
* reading the whole table gains a column with it.
|
|
567
|
+
*/
|
|
568
|
+
var isTableBoundRange = function (range, binding, axis) {
|
|
569
|
+
return binding.rowStarts.includes(range.startRowIndex) &&
|
|
570
|
+
range.endRowIndex === binding.bodyEndRowIndex &&
|
|
571
|
+
range.startColumnIndex >= binding.range.startColumnIndex &&
|
|
572
|
+
range.endColumnIndex <= binding.range.endColumnIndex &&
|
|
573
|
+
(axis === "row" ||
|
|
574
|
+
(range.startColumnIndex === binding.range.startColumnIndex &&
|
|
575
|
+
range.endColumnIndex === binding.range.endColumnIndex));
|
|
576
|
+
};
|
|
577
|
+
/** The table's extent across `axis` — the band a table-local edit moves cells in. */
|
|
578
|
+
var tableBand = function (binding, axis) {
|
|
579
|
+
return axis === "row"
|
|
580
|
+
? {
|
|
581
|
+
startIndex: binding.range.startColumnIndex,
|
|
582
|
+
endIndex: binding.range.endColumnIndex,
|
|
583
|
+
}
|
|
584
|
+
: {
|
|
585
|
+
startIndex: binding.range.startRowIndex,
|
|
586
|
+
endIndex: binding.range.endRowIndex,
|
|
587
|
+
};
|
|
588
|
+
};
|
|
589
|
+
var growSpan = function (range, axis, delta) {
|
|
590
|
+
var _a;
|
|
591
|
+
var _b = __read(axis === "row"
|
|
592
|
+
? ["startRowIndex", "endRowIndex"]
|
|
593
|
+
: ["startColumnIndex", "endColumnIndex"], 2), startKey = _b[0], endKey = _b[1];
|
|
594
|
+
var end = range[endKey] + delta;
|
|
595
|
+
return end < range[startKey] ? null : __assign(__assign({}, range), (_a = {}, _a[endKey] = end, _a));
|
|
596
|
+
};
|
|
597
|
+
/**
|
|
598
|
+
* Insert / delete table rows (or columns): the cells inside the table's columns (rows) at/after
|
|
599
|
+
* `index` move, so every chart range wholly inside that band follows the reference rule like
|
|
600
|
+
* insert/delete-cells — except a range bound to the table (`isTableBoundRange`), which grows /
|
|
601
|
+
* shrinks by `count` even when the rows are appended below the last body row (where the
|
|
602
|
+
* reference rule would leave it alone) or inserted above the first one (where it would shift):
|
|
603
|
+
* Excel keeps the series on the table column. A range that collapses is removed (`#REF!`).
|
|
604
|
+
* Mutates in place; returns whether anything changed. Mirrors
|
|
605
|
+
* `shift_spec_sheet_ranges_for_table_edit` in `rnc-store`.
|
|
606
|
+
*/
|
|
607
|
+
export var shiftChartSpecRangesOnTableEdit = function (spec, sheetId, binding, axis, op, index, count) {
|
|
608
|
+
var band = tableBand(binding, axis);
|
|
609
|
+
var _a = __read(axis === "row"
|
|
610
|
+
? ["startColumnIndex", "endColumnIndex"]
|
|
611
|
+
: ["startRowIndex", "endRowIndex"], 2), acrossStartKey = _a[0], acrossEndKey = _a[1];
|
|
612
|
+
return rewriteChartSpecRanges(spec, function (range) {
|
|
613
|
+
if (range.sheetId !== sheetId ||
|
|
614
|
+
range[acrossStartKey] < band.startIndex ||
|
|
615
|
+
range[acrossEndKey] > band.endIndex) {
|
|
616
|
+
return range;
|
|
617
|
+
}
|
|
618
|
+
if (isTableBoundRange(range, binding, axis)) {
|
|
619
|
+
return growSpan(range, axis, op === "insert" ? count : -count);
|
|
620
|
+
}
|
|
621
|
+
return shiftGridRangeLikeReference(range, axis, op, index, count);
|
|
622
|
+
});
|
|
623
|
+
};
|
|
624
|
+
/**
|
|
625
|
+
* Table growth without a cell shift — the resize handle, typing below / to the right of the
|
|
626
|
+
* table: a range bound to the table (`isTableBoundRange`) grows / shrinks with its body by
|
|
627
|
+
* `rowDelta` rows, then by `columnDelta` columns against the row-grown table. Mutates in place;
|
|
628
|
+
* returns whether anything changed. Mirrors `grow_table_bound_spec_ranges` in `rnc-store`.
|
|
629
|
+
*/
|
|
630
|
+
export var growTableBoundChartSpecRanges = function (spec, sheetId, binding, rowDelta, columnDelta) {
|
|
631
|
+
if (rowDelta === 0 && columnDelta === 0)
|
|
632
|
+
return false;
|
|
633
|
+
var rowGrown = __assign(__assign({}, binding), { range: __assign(__assign({}, binding.range), { endRowIndex: binding.range.endRowIndex + rowDelta }), bodyEndRowIndex: binding.bodyEndRowIndex + rowDelta });
|
|
634
|
+
return rewriteChartSpecRanges(spec, function (range) {
|
|
635
|
+
if (range.sheetId !== sheetId)
|
|
636
|
+
return range;
|
|
637
|
+
var next = range;
|
|
638
|
+
if (rowDelta !== 0 && isTableBoundRange(next, binding, "row")) {
|
|
639
|
+
next = growSpan(next, "row", rowDelta);
|
|
640
|
+
}
|
|
641
|
+
if (next && columnDelta !== 0 && isTableBoundRange(next, rowGrown, "column")) {
|
|
642
|
+
next = growSpan(next, "column", columnDelta);
|
|
643
|
+
}
|
|
644
|
+
return next;
|
|
645
|
+
});
|
|
646
|
+
};
|
|
647
|
+
/** Every chart's ranges follow a table-local row / column insert or delete (see `shiftChartSpecRangesOnTableEdit`). */
|
|
648
|
+
export var shiftChartsOnTableEdit = function (draft, sheetId, binding, axis, op, index, count) {
|
|
649
|
+
var e_8, _a;
|
|
650
|
+
try {
|
|
651
|
+
for (var draft_4 = __values(draft), draft_4_1 = draft_4.next(); !draft_4_1.done; draft_4_1 = draft_4.next()) {
|
|
652
|
+
var chart = draft_4_1.value;
|
|
653
|
+
shiftChartSpecRangesOnTableEdit(chart.spec, sheetId, binding, axis, op, index, count);
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
657
|
+
finally {
|
|
658
|
+
try {
|
|
659
|
+
if (draft_4_1 && !draft_4_1.done && (_a = draft_4.return)) _a.call(draft_4);
|
|
660
|
+
}
|
|
661
|
+
finally { if (e_8) throw e_8.error; }
|
|
662
|
+
}
|
|
663
|
+
};
|
|
664
|
+
/** Every chart's table-bound ranges grow / shrink with a resized or auto-expanded table (see `growTableBoundChartSpecRanges`). */
|
|
665
|
+
export var growChartsWithTable = function (draft, sheetId, binding, rowDelta, columnDelta) {
|
|
666
|
+
var e_9, _a;
|
|
667
|
+
try {
|
|
668
|
+
for (var draft_5 = __values(draft), draft_5_1 = draft_5.next(); !draft_5_1.done; draft_5_1 = draft_5.next()) {
|
|
669
|
+
var chart = draft_5_1.value;
|
|
670
|
+
growTableBoundChartSpecRanges(chart.spec, sheetId, binding, rowDelta, columnDelta);
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
674
|
+
finally {
|
|
675
|
+
try {
|
|
676
|
+
if (draft_5_1 && !draft_5_1.done && (_a = draft_5.return)) _a.call(draft_5);
|
|
677
|
+
}
|
|
678
|
+
finally { if (e_9) throw e_9.error; }
|
|
679
|
+
}
|
|
680
|
+
};
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import type { CellInterface, GridRange } from "@rowsncolumns/common-types";
|
|
2
2
|
import type { CellData, EmbeddedObject, TableView } from "@rowsncolumns/spreadsheet";
|
|
3
|
-
import type { GeneratedNames } from "../generated-names";
|
|
4
3
|
import type { UseSpreadsheetProps } from "../hooks/use-spreadsheet-state";
|
|
5
4
|
export type ClipBoardFormat = "text/html" | "text/csv" | "text/plain" | "application/json" | "image/apng" | "image/bmp" | "image/gif" | "image/jpeg" | "image/pjpeg" | "image/png" | "image/svg+xml" | "image/tiff" | "image/webp" | "image/x-icon";
|
|
6
5
|
export declare const SUPPORTED_IMAGE_TYPES: string[];
|
|
7
|
-
export declare const generateDataFromClipboard: <T extends CellData>(e: ClipboardEvent | undefined, activeCell: CellInterface, sheetId: number, activeSheetName: string, preserveFormatting?: boolean, locale?: string, idCreationStrategy?: UseSpreadsheetProps<T>["idCreationStrategy"], forcePlainText?: boolean, sanitizeHtml?: (html: string) => string,
|
|
6
|
+
export declare const generateDataFromClipboard: <T extends CellData>(e: ClipboardEvent | undefined, activeCell: CellInterface, sheetId: number, activeSheetName: string, preserveFormatting?: boolean, locale?: string, idCreationStrategy?: UseSpreadsheetProps<T>["idCreationStrategy"], forcePlainText?: boolean, sanitizeHtml?: (html: string) => string, options?: {
|
|
7
|
+
/**
|
|
8
|
+
* Re-anchor each copied formula's relative refs from its `sourceCell` to the paste
|
|
9
|
+
* destination (a COPY). `false` for a CUT: Excel keeps a moved formula's text verbatim and
|
|
10
|
+
* only repoints references INTO the moved block, which the consumer does itself.
|
|
11
|
+
*/
|
|
12
|
+
relocateFormulas?: boolean;
|
|
13
|
+
}) => Promise<{
|
|
8
14
|
results?: (CellData | null | undefined)[][];
|
|
9
15
|
merges?: GridRange[];
|
|
10
16
|
embeds?: EmbeddedObject[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-paste.d.ts","sourceRoot":"","sources":["../../../api/copy-paste.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,SAAS,EACV,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,SAAS,EAEV,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"copy-paste.d.ts","sourceRoot":"","sources":["../../../api/copy-paste.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,SAAS,EACV,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,SAAS,EAEV,MAAM,2BAA2B,CAAC;AAcnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAW1E,MAAM,MAAM,eAAe,GACvB,WAAW,GACX,UAAU,GACV,YAAY,GACZ,kBAAkB,GAClB,YAAY,GACZ,WAAW,GACX,WAAW,GACX,YAAY,GACZ,aAAa,GACb,WAAW,GACX,eAAe,GACf,YAAY,GACZ,YAAY,GACZ,cAAc,CAAC;AAEnB,eAAO,MAAM,qBAAqB,UAWjC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAU,CAAC,SAAS,QAAQ,EAChE,GAAG,cAAc,GAAG,SAAS,EAC7B,YAAY,aAAa,EACzB,SAAS,MAAM,EACf,iBAAiB,MAAM,EACvB,qBAAqB,OAAO,EAC5B,SAAS,MAAM,EACf,qBAAqB,mBAAmB,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,EACjE,iBAAiB,OAAO,EACxB,eAAe,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EACvC,UAAU;IACR;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,KACA,OAAO,CACN;IACE,OAAO,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC;IAC5C,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,GACD,SAAS,CAqQZ,CAAC;AAEF,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,SAazC;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,QAAQ,EAC/C,MAAM,EAAE,CAAC,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,yCAwB9C;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,QAAQ,EAC1C,MAAM,EAAE,CAAC,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,EAC7C,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,yCAkChB;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,QAAQ,EAC5C,MAAM,EAAE,CAAC,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,EAC7C,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,yCAwBhB;AAED,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7D,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,KACnD,MAAM,EAmBR,CAAC"}
|
|
@@ -2,7 +2,6 @@ import { __assign, __awaiter, __generator, __read, __rest, __spreadArray, __valu
|
|
|
2
2
|
import { createCellDataArrayFromCSVString, readImageFileAsDataUri, } from "@rowsncolumns/toolkit";
|
|
3
3
|
import { getCellEffectiveFormat, isAFormula, isNil, log, } from "@rowsncolumns/utils";
|
|
4
4
|
import { uuid } from "@rowsncolumns/utils";
|
|
5
|
-
import { getGeneratedTableCopyName } from "../generated-names";
|
|
6
5
|
import { defaultCellCoords, defaultSheetId, isStyleReference, SheetCell, } from "../sheet-cell";
|
|
7
6
|
import { isRichSharedString } from "../types";
|
|
8
7
|
import { isBoolean, isValidURLorEmail } from "./datatype";
|
|
@@ -19,7 +18,7 @@ export var SUPPORTED_IMAGE_TYPES = [
|
|
|
19
18
|
"image/webp",
|
|
20
19
|
"image/x-icon",
|
|
21
20
|
];
|
|
22
|
-
export var generateDataFromClipboard = function (e, activeCell, sheetId, activeSheetName, preserveFormatting, locale, idCreationStrategy, forcePlainText, sanitizeHtml,
|
|
21
|
+
export var generateDataFromClipboard = function (e, activeCell, sheetId, activeSheetName, preserveFormatting, locale, idCreationStrategy, forcePlainText, sanitizeHtml, options) { return __awaiter(void 0, void 0, void 0, function () {
|
|
23
22
|
var items, files, formatOrder, plainTextValue, isFormula, format, rows, filesArray, filesArray_1, filesArray_1_1, file, _a, imageUrl, e_1_1, clipboardValue, sheetCell, clipboard, isPlainTextOnly, _b, parsed, sheetData, tables, cellXfs, parsedSharedStrings, sharedStrings_1, tables_1, tables_1_1, table, rowDelta, colDelta, rowSpan, colSpan, merges_1, cellXfsMap_1, results, itemsArray, itemsArray_1, itemsArray_1_1, item, e_2_1, results, results;
|
|
24
23
|
var e_1, _c, e_3, _d, e_2, _e;
|
|
25
24
|
var _f, _g, _h, _j, _k, _l, _m;
|
|
@@ -118,7 +117,6 @@ export var generateDataFromClipboard = function (e, activeCell, sheetId, activeS
|
|
|
118
117
|
rowSpan = table.range.endRowIndex - table.range.startRowIndex;
|
|
119
118
|
colSpan = table.range.endColumnIndex - table.range.startColumnIndex;
|
|
120
119
|
table.id = (_m = idCreationStrategy === null || idCreationStrategy === void 0 ? void 0 : idCreationStrategy("table")) !== null && _m !== void 0 ? _m : uuid();
|
|
121
|
-
table.title = getGeneratedTableCopyName(table.title, generatedNames);
|
|
122
120
|
// Update sheet id
|
|
123
121
|
table.sheetId = sheetId;
|
|
124
122
|
table.range.startRowIndex = activeCell.rowIndex + rowDelta;
|
|
@@ -193,7 +191,9 @@ export var generateDataFromClipboard = function (e, activeCell, sheetId, activeS
|
|
|
193
191
|
// Delete structured
|
|
194
192
|
(_b = data === null || data === void 0 ? void 0 : data.ev) === null || _b === void 0 ? true : delete _b.structuredValue;
|
|
195
193
|
// Move formulas if source cell is present
|
|
196
|
-
if (((_c = data === null || data === void 0 ? void 0 : data.ue) === null || _c === void 0 ? void 0 : _c.fv) &&
|
|
194
|
+
if (((_c = data === null || data === void 0 ? void 0 : data.ue) === null || _c === void 0 ? void 0 : _c.fv) &&
|
|
195
|
+
sourceCell &&
|
|
196
|
+
(options === null || options === void 0 ? void 0 : options.relocateFormulas) !== false) {
|
|
197
197
|
var destinationCell = {
|
|
198
198
|
rowIndex: activeCell.rowIndex + i,
|
|
199
199
|
columnIndex: activeCell.columnIndex + j,
|
package/dist/cjs/api/filter.d.ts
CHANGED
|
@@ -1,10 +1,24 @@
|
|
|
1
|
-
import type { ColorFilterCriteria, ConditionType, ConditionValue, FilterSpec, IconFilterCriteria } from "@rowsncolumns/spreadsheet";
|
|
1
|
+
import type { BooleanCondition, ColorFilterCriteria, ConditionType, ConditionValue, FilterConditionJoin, FilterCriteria, FilterSpec, IconFilterCriteria } from "@rowsncolumns/spreadsheet";
|
|
2
2
|
export type CreateFilterSpecsExtras = {
|
|
3
3
|
/** Pass `null` to clear an existing color filter on this column. */
|
|
4
4
|
colorFilter?: ColorFilterCriteria | null;
|
|
5
5
|
/** Pass `null` to clear an existing icon filter on this column. */
|
|
6
6
|
iconFilter?: IconFilterCriteria | null;
|
|
7
|
+
/**
|
|
8
|
+
* Custom AutoFilter second clause + join (Excel's And / Or). Pass `null`
|
|
9
|
+
* to drop an existing second clause; omit to preserve it.
|
|
10
|
+
*/
|
|
11
|
+
condition2?: BooleanCondition | null;
|
|
12
|
+
conditionJoin?: FilterConditionJoin | null;
|
|
7
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* Whether a column's criteria still filter anything. An entry with no
|
|
16
|
+
* condition, no value whitelist and no color / icon criterion is inert, so
|
|
17
|
+
* `createFilterSpecs` drops it — Excel's "Clear Filter From <column>" —
|
|
18
|
+
* instead of leaving a stale spec behind (the rnc engine's
|
|
19
|
+
* `upsert_filter_spec` removes such entries the same way).
|
|
20
|
+
*/
|
|
21
|
+
export declare const isFilterCriteriaActive: (criteria: FilterCriteria) => boolean;
|
|
8
22
|
/**
|
|
9
23
|
* Create a new filterspec
|
|
10
24
|
* @param filterSpecs
|