@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
package/dist/esm/api/table.d.ts
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
import { type ParsedToken } from "@rowsncolumns/calculator";
|
|
2
|
-
import type { CellInterface, GridRange } from "@rowsncolumns/common-types";
|
|
2
|
+
import type { CellInterface, ExtendedValue, GridRange } from "@rowsncolumns/common-types";
|
|
3
3
|
import type { BandedRange, FilterView, TableView } from "@rowsncolumns/spreadsheet";
|
|
4
|
+
/**
|
|
5
|
+
* Excel's default for the Create Table dialog's "My table has headers": checked when the
|
|
6
|
+
* range's first row reads as a header row — it holds at least one value, every value in it is
|
|
7
|
+
* text (a number or boolean there means the data starts on the first row), and at least one row
|
|
8
|
+
* of data lies below it. A single-row range defaults to unchecked.
|
|
9
|
+
*/
|
|
10
|
+
export declare const guessTableHasHeaders: ({ sheetId, range, getEffectiveExtendedValue, }: {
|
|
11
|
+
sheetId: number;
|
|
12
|
+
range: GridRange;
|
|
13
|
+
getEffectiveExtendedValue: (sheetId: number, rowIndex: number, columnIndex: number) => ExtendedValue | null | undefined;
|
|
14
|
+
}) => boolean;
|
|
4
15
|
/**
|
|
5
16
|
* Get table column index
|
|
6
17
|
* @param sheetId
|
|
@@ -25,7 +36,20 @@ export declare const findAdjacentTable: (sheetId: number, cell: CellInterface, t
|
|
|
25
36
|
* @returns
|
|
26
37
|
*/
|
|
27
38
|
export declare const findAdjacentBandedRange: (sheetId: number, cell: CellInterface, bandedRanges: BandedRange[] | undefined, getUserEnteredValue: (sheetId: number, rowIndex: number, columnIndex: number) => string | undefined) => readonly [BandedRange | undefined, boolean, boolean];
|
|
28
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Excel's calculated-column fill decision, shared with the Rust engine's
|
|
41
|
+
* `auto_fill_calculated_column` (rowsncolumns/spreadsheet#681): a formula just
|
|
42
|
+
* written into a table body cell fills the whole column when every OTHER body
|
|
43
|
+
* cell of that column is either empty (a fresh column) or holds the same
|
|
44
|
+
* formula relative to its row (a consistent calculated column, which the new
|
|
45
|
+
* formula overwrites). A literal anywhere, or two rows that disagree, leave
|
|
46
|
+
* the edit a one-cell exception. The column's cells are the reference — not
|
|
47
|
+
* the formula recorded on `columns[].formula`, which has no row of its own —
|
|
48
|
+
* so the overwrite works from any row, not only the one the column was
|
|
49
|
+
* created from (#668 T-50). A consistent column is a calculated column
|
|
50
|
+
* whatever its formula references (`=TODAY()`, `=1`), like Excel (#668 T-29).
|
|
51
|
+
*/
|
|
52
|
+
export declare const isTableColumnCellsFillable: (sheetId: number, range: GridRange, excludeCell: CellInterface, currentValue: string | boolean | undefined, activeSheetName: string, getUserEnteredValue: (sheetId: number, rowIndex: number, columnIndex: number) => string | undefined) => boolean;
|
|
29
53
|
export declare const addTableNameToTokens: (tokens: ParsedToken[], title: string) => string;
|
|
30
54
|
export declare const removeTableName: (tokens: ParsedToken[], title: string) => string;
|
|
31
55
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../api/table.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../api/table.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAEjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,SAAS,EACV,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACV,MAAM,2BAA2B,CAAC;AAmBnC;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,gDAIlC;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,yBAAyB,EAAE,CACzB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,aAAa,GAAG,IAAI,GAAG,SAAS,CAAC;CACvC,KAAG,OA8BH,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,MAAM,aAAa,EACnB,QAAQ,SAAS,EAAE,GAAG,SAAS,uBAiBhC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,SAAS,MAAM,EACf,MAAM,aAAa,EACnB,QAAQ,SAAS,EAAE,GAAG,SAAS,GAAG,IAAI,0BAMvC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,MAAM,aAAa,EACnB,QAAQ,SAAS,EAAE,GAAG,SAAS,EAC/B,qBAAqB,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,MAAM,GAAG,SAAS,uDA8DxB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,MAAM,aAAa,EACnB,cAAc,WAAW,EAAE,GAAG,SAAS,EACvC,qBAAqB,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,MAAM,GAAG,SAAS,yDA8CxB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,EACf,OAAO,SAAS,EAChB,aAAa,aAAa,EAC1B,cAAc,MAAM,GAAG,OAAO,GAAG,SAAS,EAC1C,iBAAiB,MAAM,EACvB,qBAAqB,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,MAAM,GAAG,SAAS,YAuDxB,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAAI,QAAQ,WAAW,EAAE,EAAE,OAAO,MAAM,WAyBxE,CAAC;AAcF,eAAO,MAAM,eAAe,GAAI,QAAQ,WAAW,EAAE,EAAE,OAAO,MAAM,WA2BnE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC/B,OAAO,SAAS,GAAG,UAAU,EAC7B,MAAM,MAAM,EAAE,EACd,gBAAgB,MAAM,SAoDvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,OAAO,SAAS,GAAG,UAAU,EAC7B,MAAM,MAAM,EAAE,EACd,gBAAgB,MAAM,SAoDvB,CAAC"}
|
package/dist/esm/api/table.js
CHANGED
|
@@ -1,11 +1,38 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { tokenVocabulary, } from "@rowsncolumns/calculator";
|
|
2
2
|
import { Direction } from "@rowsncolumns/common-types";
|
|
3
|
-
import { isAFormula, isCellWithinBounds, isNil, iterateCellsInRange, } from "@rowsncolumns/utils";
|
|
3
|
+
import { areaIntersects, isAFormula, isCellWithinBounds, isNil, iterateCellsInRange, } from "@rowsncolumns/utils";
|
|
4
4
|
import { SheetCell } from "../sheet-cell";
|
|
5
5
|
import { detokenize } from "./formula";
|
|
6
6
|
import { moveFilterView, moveRange } from "./selection";
|
|
7
7
|
const isTableColumnToken = (token) => token.tokenType.name === tokenVocabulary.TableColumnName.name;
|
|
8
8
|
const isTableNameToken = (token) => token.tokenType.name === tokenVocabulary.TableName.name;
|
|
9
|
+
/**
|
|
10
|
+
* Excel's default for the Create Table dialog's "My table has headers": checked when the
|
|
11
|
+
* range's first row reads as a header row — it holds at least one value, every value in it is
|
|
12
|
+
* text (a number or boolean there means the data starts on the first row), and at least one row
|
|
13
|
+
* of data lies below it. A single-row range defaults to unchecked.
|
|
14
|
+
*/
|
|
15
|
+
export const guessTableHasHeaders = ({ sheetId, range, getEffectiveExtendedValue, }) => {
|
|
16
|
+
if (range.endRowIndex <= range.startRowIndex) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
let sawText = false;
|
|
20
|
+
for (let columnIndex = range.startColumnIndex; columnIndex <= range.endColumnIndex; columnIndex++) {
|
|
21
|
+
const value = getEffectiveExtendedValue(sheetId, range.startRowIndex, columnIndex);
|
|
22
|
+
if (!value) {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (!isNil(value.nv ?? value.numberValue) ||
|
|
26
|
+
!isNil(value.bv ?? value.boolValue)) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
const text = value.sv ?? value.stringValue;
|
|
30
|
+
if (!isNil(text) && text !== "") {
|
|
31
|
+
sawText = true;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return sawText;
|
|
35
|
+
};
|
|
9
36
|
/**
|
|
10
37
|
* Get table column index
|
|
11
38
|
* @param sheetId
|
|
@@ -63,14 +90,22 @@ export const findAdjacentTable = (sheetId, cell, tables, getUserEnteredValue) =>
|
|
|
63
90
|
endColumnIndex: cell.columnIndex,
|
|
64
91
|
}),
|
|
65
92
|
};
|
|
93
|
+
// Excel never merges tables: a line that belongs to another table is not free to grow over.
|
|
94
|
+
if (tables?.some((other) => other.id !== table.id &&
|
|
95
|
+
other.sheetId === sheetId &&
|
|
96
|
+
areaIntersects(other.range, lookupRange))) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
66
99
|
return (isAdjacent &&
|
|
67
100
|
[...iterateCellsInRange(lookupRange)].every(([rowIndex, columnIndex]) => {
|
|
68
101
|
return isNil(getUserEnteredValue(sheetId, rowIndex, columnIndex));
|
|
69
102
|
}));
|
|
70
103
|
});
|
|
71
|
-
|
|
104
|
+
// A table with a totals row never grows by rows (Excel): the cell right of its totals row is
|
|
105
|
+
// a column expansion only.
|
|
72
106
|
const isRowExpansion = adjacentTable
|
|
73
|
-
? adjacentTable.range.endRowIndex + 1
|
|
107
|
+
? adjacentTable.range.endRowIndex + 1 === cell.rowIndex &&
|
|
108
|
+
!adjacentTable.totalRow
|
|
74
109
|
: false;
|
|
75
110
|
const isColumnExpansion = adjacentTable
|
|
76
111
|
? adjacentTable.range.endColumnIndex + 1 === cell.columnIndex
|
|
@@ -122,62 +157,49 @@ export const findAdjacentBandedRange = (sheetId, cell, bandedRanges, getUserEnte
|
|
|
122
157
|
: false;
|
|
123
158
|
return [adjacentTable, isRowExpansion, isColumnExpansion];
|
|
124
159
|
};
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
if (normalizedExistingFormula && !templateHasReferences) {
|
|
160
|
+
/**
|
|
161
|
+
* Excel's calculated-column fill decision, shared with the Rust engine's
|
|
162
|
+
* `auto_fill_calculated_column` (rowsncolumns/spreadsheet#681): a formula just
|
|
163
|
+
* written into a table body cell fills the whole column when every OTHER body
|
|
164
|
+
* cell of that column is either empty (a fresh column) or holds the same
|
|
165
|
+
* formula relative to its row (a consistent calculated column, which the new
|
|
166
|
+
* formula overwrites). A literal anywhere, or two rows that disagree, leave
|
|
167
|
+
* the edit a one-cell exception. The column's cells are the reference — not
|
|
168
|
+
* the formula recorded on `columns[].formula`, which has no row of its own —
|
|
169
|
+
* so the overwrite works from any row, not only the one the column was
|
|
170
|
+
* created from (#668 T-50). A consistent column is a calculated column
|
|
171
|
+
* whatever its formula references (`=TODAY()`, `=1`), like Excel (#668 T-29).
|
|
172
|
+
*/
|
|
173
|
+
export const isTableColumnCellsFillable = (sheetId, range, excludeCell, currentValue, activeSheetName, getUserEnteredValue) => {
|
|
174
|
+
if (!isAFormula(currentValue)) {
|
|
141
175
|
return false;
|
|
142
176
|
}
|
|
143
|
-
|
|
177
|
+
// The column's existing formula, relativised to the edited cell — every
|
|
178
|
+
// non-empty body cell must agree on it.
|
|
179
|
+
let existingTemplate;
|
|
180
|
+
for (const [rowIndex, columnIndex] of iterateCellsInRange(range)) {
|
|
144
181
|
if (rowIndex === excludeCell.rowIndex &&
|
|
145
182
|
columnIndex === excludeCell.columnIndex) {
|
|
146
|
-
|
|
183
|
+
continue;
|
|
147
184
|
}
|
|
148
185
|
const userEnteredValue = getUserEnteredValue(sheetId, rowIndex, columnIndex);
|
|
149
186
|
if (isNil(userEnteredValue) || userEnteredValue === "") {
|
|
150
|
-
|
|
187
|
+
continue;
|
|
151
188
|
}
|
|
152
189
|
if (!isAFormula(userEnteredValue)) {
|
|
153
190
|
return false;
|
|
154
191
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
const { tokens } = lexify(formula);
|
|
165
|
-
return tokens.some((token) => CELL_REFERENCE_TOKEN_NAMES.has(token.tokenType.name));
|
|
166
|
-
};
|
|
167
|
-
const CELL_REFERENCE_TOKEN_NAMES = new Set([
|
|
168
|
-
tokenVocabulary.Cell?.name,
|
|
169
|
-
tokenVocabulary.Column?.name,
|
|
170
|
-
tokenVocabulary.TableColumnName?.name,
|
|
171
|
-
].filter((tokenName) => Boolean(tokenName)));
|
|
172
|
-
const normalizeFormulaString = (value) => {
|
|
173
|
-
if (typeof value !== "string") {
|
|
174
|
-
return undefined;
|
|
175
|
-
}
|
|
176
|
-
const trimmed = value.trim();
|
|
177
|
-
if (!trimmed) {
|
|
178
|
-
return undefined;
|
|
192
|
+
// `$`-anchored references stay put from row to row (Excel), so they must
|
|
193
|
+
// not be shifted for the comparison.
|
|
194
|
+
const relativeFormula = SheetCell.getRelativeFormula(userEnteredValue, { rowIndex, columnIndex }, excludeCell, activeSheetName, undefined, false, undefined, undefined, true) ?? userEnteredValue;
|
|
195
|
+
if (existingTemplate === undefined) {
|
|
196
|
+
existingTemplate = relativeFormula;
|
|
197
|
+
}
|
|
198
|
+
else if (existingTemplate !== relativeFormula) {
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
179
201
|
}
|
|
180
|
-
return
|
|
202
|
+
return true;
|
|
181
203
|
};
|
|
182
204
|
// Add table name to formula
|
|
183
205
|
export const addTableNameToTokens = (tokens, title) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../api/validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../api/validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAkBpF,KAAK,mBAAmB,GACpB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,IAAI,GACJ,SAAS,GACT;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAoBxC,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,SA6BlD,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,kBAAkB,GAAG,SAAS,EACrC,QAAQ,mBAAmB,EAC3B,gBAAgB,mBAAmB,EACnC,iBAAiB,CAAC,OAAO,EAAE,MAAM,KAAK,cAAc,EAAE,EACtD,UAAU,uBAAuB,wBA2WlC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { checkIfStringIsReference, escapeCharacters, isNil, stripDataValidationTextPrefix, toDate, toSerial, } from "@rowsncolumns/utils";
|
|
1
|
+
import { checkIfStringIsReference, escapeCharacters, isNil, matchesWildcardPattern, stripDataValidationTextPrefix, toDate, toSerial, } from "@rowsncolumns/utils";
|
|
2
2
|
import { convertToNumber } from "./datatype";
|
|
3
3
|
const EMAIL_REGEX = /(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/;
|
|
4
4
|
const URL_REGEX = /^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$/;
|
|
@@ -144,6 +144,33 @@ export const checkBooleanRule = (rule, value, previousValue, getRangeValues, opt
|
|
|
144
144
|
const end = new Date(today.getFullYear(), today.getMonth() + 2, 0);
|
|
145
145
|
return { start: startOfDay(start), end: endOfDay(end) };
|
|
146
146
|
}
|
|
147
|
+
// Calendar quarters / years, like Excel's Date Filters. `new Date` rolls a
|
|
148
|
+
// month index past December (or before January) into the adjacent year.
|
|
149
|
+
case "DATE_THIS_QUARTER":
|
|
150
|
+
case "DATE_LAST_QUARTER":
|
|
151
|
+
case "DATE_NEXT_QUARTER": {
|
|
152
|
+
const shift = type === "DATE_LAST_QUARTER" ? -3 : type === "DATE_NEXT_QUARTER" ? 3 : 0;
|
|
153
|
+
const firstMonth = Math.floor(today.getMonth() / 3) * 3 + shift;
|
|
154
|
+
const start = new Date(today.getFullYear(), firstMonth, 1);
|
|
155
|
+
const end = new Date(today.getFullYear(), firstMonth + 3, 0);
|
|
156
|
+
return { start: startOfDay(start), end: endOfDay(end) };
|
|
157
|
+
}
|
|
158
|
+
case "DATE_THIS_YEAR":
|
|
159
|
+
case "DATE_LAST_YEAR":
|
|
160
|
+
case "DATE_NEXT_YEAR": {
|
|
161
|
+
const year = today.getFullYear() +
|
|
162
|
+
(type === "DATE_LAST_YEAR" ? -1 : type === "DATE_NEXT_YEAR" ? 1 : 0);
|
|
163
|
+
return {
|
|
164
|
+
start: startOfDay(new Date(year, 0, 1)),
|
|
165
|
+
end: endOfDay(new Date(year, 11, 31)),
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
case "DATE_YEAR_TO_DATE": {
|
|
169
|
+
return {
|
|
170
|
+
start: startOfDay(new Date(today.getFullYear(), 0, 1)),
|
|
171
|
+
end: endOfDay(today),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
147
174
|
default:
|
|
148
175
|
return undefined;
|
|
149
176
|
}
|
|
@@ -159,9 +186,20 @@ export const checkBooleanRule = (rule, value, previousValue, getRangeValues, opt
|
|
|
159
186
|
const { type, values } = condition;
|
|
160
187
|
const valuesArray = values ?? [];
|
|
161
188
|
const firstValue = valuesArray[0] ?? { userEnteredValue: "" };
|
|
189
|
+
// "All Dates in the Period" (`DATE_IN_Q1`..`Q4`, `DATE_IN_M1`..`M12`): the
|
|
190
|
+
// cell's quarter / month in any year.
|
|
191
|
+
const periodMatch = /^DATE_IN_([QM])(\d+)$/.exec(type);
|
|
192
|
+
if (periodMatch) {
|
|
193
|
+
const dateValue = toComparableDate(value);
|
|
194
|
+
if (!dateValue)
|
|
195
|
+
return false;
|
|
196
|
+
const month = dateValue.getMonth() + 1;
|
|
197
|
+
const period = periodMatch[1] === "Q" ? Math.ceil(month / 3) : month;
|
|
198
|
+
return period === Number(periodMatch[2]);
|
|
199
|
+
}
|
|
162
200
|
switch (type) {
|
|
163
201
|
case "TEXT_EQ":
|
|
164
|
-
return
|
|
202
|
+
return matchesWildcardPattern(firstValue.userEnteredValue, String(value), "equals");
|
|
165
203
|
case "BLANK":
|
|
166
204
|
return value === "" || isNil(value);
|
|
167
205
|
case "BOOLEAN":
|
|
@@ -205,17 +243,17 @@ export const checkBooleanRule = (rule, value, previousValue, getRangeValues, opt
|
|
|
205
243
|
case "NUMBER_NOT_EQ":
|
|
206
244
|
return parseNumber(value) !== parseNumber(firstValue.userEnteredValue);
|
|
207
245
|
case "TEXT_CONTAINS":
|
|
208
|
-
return
|
|
246
|
+
return matchesWildcardPattern(firstValue.userEnteredValue, String(value), "contains");
|
|
209
247
|
case "TEXT_ENDS_WITH":
|
|
210
|
-
return
|
|
248
|
+
return matchesWildcardPattern(firstValue.userEnteredValue, String(value), "endsWith");
|
|
211
249
|
case "TEXT_NOT_CONTAINS":
|
|
212
|
-
return !
|
|
250
|
+
return !matchesWildcardPattern(firstValue.userEnteredValue, String(value), "contains");
|
|
213
251
|
case "NOT_BLANK":
|
|
214
252
|
return !(isNil(value) || value === "");
|
|
215
253
|
case "TEXT_NOT_EQ":
|
|
216
|
-
return !
|
|
254
|
+
return !matchesWildcardPattern(firstValue.userEnteredValue, String(value), "equals");
|
|
217
255
|
case "TEXT_STARTS_WITH":
|
|
218
|
-
return
|
|
256
|
+
return matchesWildcardPattern(firstValue.userEnteredValue, String(value), "startsWith");
|
|
219
257
|
case "ONE_OF_RANGE":
|
|
220
258
|
case "ONE_OF_LIST": {
|
|
221
259
|
if (allowBlank && !value) {
|
|
@@ -258,7 +296,14 @@ export const checkBooleanRule = (rule, value, previousValue, getRangeValues, opt
|
|
|
258
296
|
case "DATE_NEXT_WEEK":
|
|
259
297
|
case "DATE_LAST_MONTH":
|
|
260
298
|
case "DATE_THIS_MONTH":
|
|
261
|
-
case "DATE_NEXT_MONTH":
|
|
299
|
+
case "DATE_NEXT_MONTH":
|
|
300
|
+
case "DATE_THIS_QUARTER":
|
|
301
|
+
case "DATE_LAST_QUARTER":
|
|
302
|
+
case "DATE_NEXT_QUARTER":
|
|
303
|
+
case "DATE_THIS_YEAR":
|
|
304
|
+
case "DATE_LAST_YEAR":
|
|
305
|
+
case "DATE_NEXT_YEAR":
|
|
306
|
+
case "DATE_YEAR_TO_DATE": {
|
|
262
307
|
const dateValue = toComparableDate(value);
|
|
263
308
|
if (!dateValue)
|
|
264
309
|
return false;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CellInterface, GridRange, SelectionArea } from "@rowsncolumns/common-types";
|
|
2
|
+
import type { BandedDefinition, SelectionAttributes, TableTheme } from "@rowsncolumns/spreadsheet";
|
|
3
|
+
/**
|
|
4
|
+
* What the Create Table dialog was opened for: the selection it came from, the range it
|
|
5
|
+
* pre-fills (the selection, else the data region around the active cell), Excel's guess for
|
|
6
|
+
* "My table has headers", and the style the entry point chose (Format as Table / context menu).
|
|
7
|
+
*/
|
|
8
|
+
export type CreateTableRequest = {
|
|
9
|
+
sheetId: number;
|
|
10
|
+
activeCell: CellInterface;
|
|
11
|
+
selections: SelectionArea<SelectionAttributes>[];
|
|
12
|
+
range: GridRange;
|
|
13
|
+
hasHeaders: boolean;
|
|
14
|
+
theme?: TableTheme;
|
|
15
|
+
bandedRange?: BandedDefinition;
|
|
16
|
+
};
|
|
17
|
+
export declare const creatingTableAtom: import("jotai").PrimitiveAtom<CreateTableRequest | undefined> & {
|
|
18
|
+
init: CreateTableRequest | undefined;
|
|
19
|
+
};
|
|
20
|
+
export declare const useCreatingTable: () => CreateTableRequest | undefined;
|
|
21
|
+
export declare const useSetCreatingTable: () => (args_0: CreateTableRequest | ((prev: CreateTableRequest | undefined) => CreateTableRequest | undefined) | undefined) => void;
|
|
22
|
+
//# sourceMappingURL=creating-table.atom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"creating-table.atom.d.ts","sourceRoot":"","sources":["../../../atoms/creating-table.atom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,EACX,MAAM,2BAA2B,CAAC;AAGnC;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACjD,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;CAE7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,sCAAwC,CAAC;AACtE,eAAO,MAAM,mBAAmB,qIAAsC,CAAC"}
|
|
@@ -3,6 +3,14 @@ export declare const dialogStateAtom: import("jotai/vanilla/utils/atomFamily").A
|
|
|
3
3
|
}>;
|
|
4
4
|
export declare const useEditTableDialogState: () => [boolean, (args_0: boolean | ((prev: boolean) => boolean)) => void];
|
|
5
5
|
export declare const useSetEditTableDialogValue: () => (args_0: boolean | ((prev: boolean) => boolean)) => void;
|
|
6
|
+
export declare const useCreateTableDialogState: () => [boolean, (args_0: boolean | ((prev: boolean) => boolean)) => void];
|
|
7
|
+
export declare const useSetCreateTableDialogValue: () => (args_0: boolean | ((prev: boolean) => boolean)) => void;
|
|
8
|
+
export declare const useResizeTableDialogState: () => [boolean, (args_0: boolean | ((prev: boolean) => boolean)) => void];
|
|
9
|
+
export declare const useSetResizeTableDialogValue: () => (args_0: boolean | ((prev: boolean) => boolean)) => void;
|
|
10
|
+
export declare const useInsertSlicerDialogState: () => [boolean, (args_0: boolean | ((prev: boolean) => boolean)) => void];
|
|
11
|
+
export declare const useSetInsertSlicerDialogValue: () => (args_0: boolean | ((prev: boolean) => boolean)) => void;
|
|
12
|
+
export declare const useEditSlicerDialogState: () => [boolean, (args_0: boolean | ((prev: boolean) => boolean)) => void];
|
|
13
|
+
export declare const useSetEditSlicerDialogState: () => (args_0: boolean | ((prev: boolean) => boolean)) => void;
|
|
6
14
|
export declare const useDeletSheetConfirmationDialogState: () => [boolean, (args_0: boolean | ((prev: boolean) => boolean)) => void];
|
|
7
15
|
export declare const useEditNamedRangeDialogState: () => [boolean, (args_0: boolean | ((prev: boolean) => boolean)) => void];
|
|
8
16
|
export declare const useSetEditNamedRangeDialogState: () => (args_0: boolean | ((prev: boolean) => boolean)) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-state.atom.d.ts","sourceRoot":"","sources":["../../../atoms/dialog-state.atom.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe;;EAAyC,CAAC;AAGtE,eAAO,MAAM,uBAAuB,2EACG,CAAC;AAExC,eAAO,MAAM,0BAA0B,gEACG,CAAC;AAG3C,eAAO,MAAM,oCAAoC,2EACR,CAAC;AAG1C,eAAO,MAAM,4BAA4B,2EACG,CAAC;AAE7C,eAAO,MAAM,+BAA+B,gEACG,CAAC;AAGhD,eAAO,MAAM,uBAAuB,2EACG,CAAC;AAExC,eAAO,MAAM,0BAA0B,gEACG,CAAC;AAG3C,eAAO,MAAM,6BAA6B,2EACG,CAAC;AAE9C,eAAO,MAAM,gCAAgC,gEACG,CAAC;AAGjD,eAAO,MAAM,yBAAyB,2EACG,CAAC;AAE1C,eAAO,MAAM,4BAA4B,gEACG,CAAC;AAG7C,eAAO,MAAM,+BAA+B,2EACG,CAAC;AAEhD,eAAO,MAAM,kCAAkC,gEACG,CAAC;AAGnD,eAAO,MAAM,yBAAyB,2EACG,CAAC;AAE1C,eAAO,MAAM,4BAA4B,gEACG,CAAC;AAG7C,eAAO,MAAM,wBAAwB,2EACG,CAAC;AAEzC,eAAO,MAAM,2BAA2B,gEACG,CAAC;AAG5C,eAAO,MAAM,4BAA4B,2EACG,CAAC;AAE7C,eAAO,MAAM,gCAAgC,gEACE,CAAC"}
|
|
1
|
+
{"version":3,"file":"dialog-state.atom.d.ts","sourceRoot":"","sources":["../../../atoms/dialog-state.atom.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe;;EAAyC,CAAC;AAGtE,eAAO,MAAM,uBAAuB,2EACG,CAAC;AAExC,eAAO,MAAM,0BAA0B,gEACG,CAAC;AAG3C,eAAO,MAAM,yBAAyB,2EACG,CAAC;AAE1C,eAAO,MAAM,4BAA4B,gEACG,CAAC;AAG7C,eAAO,MAAM,yBAAyB,2EACG,CAAC;AAE1C,eAAO,MAAM,4BAA4B,gEACG,CAAC;AAG7C,eAAO,MAAM,0BAA0B,2EACG,CAAC;AAE3C,eAAO,MAAM,6BAA6B,gEACG,CAAC;AAG9C,eAAO,MAAM,wBAAwB,2EACG,CAAC;AAEzC,eAAO,MAAM,2BAA2B,gEACG,CAAC;AAG5C,eAAO,MAAM,oCAAoC,2EACR,CAAC;AAG1C,eAAO,MAAM,4BAA4B,2EACG,CAAC;AAE7C,eAAO,MAAM,+BAA+B,gEACG,CAAC;AAGhD,eAAO,MAAM,uBAAuB,2EACG,CAAC;AAExC,eAAO,MAAM,0BAA0B,gEACG,CAAC;AAG3C,eAAO,MAAM,6BAA6B,2EACG,CAAC;AAE9C,eAAO,MAAM,gCAAgC,gEACG,CAAC;AAGjD,eAAO,MAAM,yBAAyB,2EACG,CAAC;AAE1C,eAAO,MAAM,4BAA4B,gEACG,CAAC;AAG7C,eAAO,MAAM,+BAA+B,2EACG,CAAC;AAEhD,eAAO,MAAM,kCAAkC,gEACG,CAAC;AAGnD,eAAO,MAAM,yBAAyB,2EACG,CAAC;AAE1C,eAAO,MAAM,4BAA4B,gEACG,CAAC;AAG7C,eAAO,MAAM,wBAAwB,2EACG,CAAC;AAEzC,eAAO,MAAM,2BAA2B,gEACG,CAAC;AAG5C,eAAO,MAAM,4BAA4B,2EACG,CAAC;AAE7C,eAAO,MAAM,gCAAgC,gEACE,CAAC"}
|
|
@@ -6,6 +6,18 @@ export const dialogStateAtom = atomFamily(() => atom(false));
|
|
|
6
6
|
// Edit Table Dialog
|
|
7
7
|
export const useEditTableDialogState = () => useAtom(dialogStateAtom("editTable"));
|
|
8
8
|
export const useSetEditTableDialogValue = () => useSetAtom(dialogStateAtom("editTable"));
|
|
9
|
+
// Create Table Dialog (Ctrl+T / Insert → Table / Format as Table)
|
|
10
|
+
export const useCreateTableDialogState = () => useAtom(dialogStateAtom("createTable"));
|
|
11
|
+
export const useSetCreateTableDialogValue = () => useSetAtom(dialogStateAtom("createTable"));
|
|
12
|
+
// Resize Table Dialog (Table Design → Resize Table)
|
|
13
|
+
export const useResizeTableDialogState = () => useAtom(dialogStateAtom("resizeTable"));
|
|
14
|
+
export const useSetResizeTableDialogValue = () => useSetAtom(dialogStateAtom("resizeTable"));
|
|
15
|
+
// Insert Slicers Dialog (Table Design → Insert Slicer, Table → Insert Slicer…)
|
|
16
|
+
export const useInsertSlicerDialogState = () => useAtom(dialogStateAtom("insertSlicer"));
|
|
17
|
+
export const useSetInsertSlicerDialogValue = () => useSetAtom(dialogStateAtom("insertSlicer"));
|
|
18
|
+
// Edit Slicer Dialog (Slicer → Slicer Settings…)
|
|
19
|
+
export const useEditSlicerDialogState = () => useAtom(dialogStateAtom("editSlicer"));
|
|
20
|
+
export const useSetEditSlicerDialogState = () => useSetAtom(dialogStateAtom("editSlicer"));
|
|
9
21
|
// Delete Sheet Confirmation Dialog
|
|
10
22
|
export const useDeletSheetConfirmationDialogState = () => useAtom(dialogStateAtom("deleteSheet"));
|
|
11
23
|
// Edit Named Range Dialog
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Slicer } from "@rowsncolumns/spreadsheet";
|
|
2
|
+
/** The slicer Excel's "Slicer Settings" dialog was opened for (`onRequestEditSlicer`). */
|
|
3
|
+
export declare const editingSlicerAtom: import("jotai").PrimitiveAtom<Slicer | undefined> & {
|
|
4
|
+
init: Slicer | undefined;
|
|
5
|
+
};
|
|
6
|
+
export declare const useEditingSlicer: () => Slicer | undefined;
|
|
7
|
+
export declare const useSetEditingSlicer: () => (args_0: Slicer | ((prev: Slicer | undefined) => Slicer | undefined) | undefined) => void;
|
|
8
|
+
export declare const useEditingSlicerState: () => [Slicer | undefined, (args_0: Slicer | ((prev: Slicer | undefined) => Slicer | undefined) | undefined) => void];
|
|
9
|
+
//# sourceMappingURL=editing-slicer.atom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editing-slicer.atom.d.ts","sourceRoot":"","sources":["../../../atoms/editing-slicer.atom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAGxD,0FAA0F;AAC1F,eAAO,MAAM,iBAAiB;;CAAsC,CAAC;AAErE,eAAO,MAAM,gBAAgB,0BAAwC,CAAC;AACtE,eAAO,MAAM,mBAAmB,iGAAsC,CAAC;AACvE,eAAO,MAAM,qBAAqB,uHAAmC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { atom, useAtom, useAtomValue, useSetAtom } from "jotai";
|
|
2
|
+
/** The slicer Excel's "Slicer Settings" dialog was opened for (`onRequestEditSlicer`). */
|
|
3
|
+
export const editingSlicerAtom = atom(undefined);
|
|
4
|
+
export const useEditingSlicer = () => useAtomValue(editingSlicerAtom);
|
|
5
|
+
export const useSetEditingSlicer = () => useSetAtom(editingSlicerAtom);
|
|
6
|
+
export const useEditingSlicerState = () => useAtom(editingSlicerAtom);
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export * from "./error-state.atom";
|
|
2
2
|
export * from "./dialog-state.atom";
|
|
3
3
|
export * from "./editing-embed.atom";
|
|
4
|
+
export * from "./creating-table.atom";
|
|
5
|
+
export * from "./resizing-table.atom";
|
|
6
|
+
export * from "./inserting-slicer.atom";
|
|
7
|
+
export * from "./editing-slicer.atom";
|
|
4
8
|
export * from "./sheet-observer.atom";
|
|
5
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../atoms/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../atoms/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
|
package/dist/esm/atoms/index.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export * from "./error-state.atom";
|
|
2
2
|
export * from "./dialog-state.atom";
|
|
3
3
|
export * from "./editing-embed.atom";
|
|
4
|
+
export * from "./creating-table.atom";
|
|
5
|
+
export * from "./resizing-table.atom";
|
|
6
|
+
export * from "./inserting-slicer.atom";
|
|
7
|
+
export * from "./editing-slicer.atom";
|
|
4
8
|
export * from "./sheet-observer.atom";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TableView } from "@rowsncolumns/spreadsheet";
|
|
2
|
+
/** The table Excel's "Insert Slicers" dialog was opened for. */
|
|
3
|
+
export declare const insertingSlicerAtom: import("jotai").PrimitiveAtom<TableView | undefined> & {
|
|
4
|
+
init: TableView | undefined;
|
|
5
|
+
};
|
|
6
|
+
export declare const useInsertingSlicer: () => TableView | undefined;
|
|
7
|
+
export declare const useSetInsertingSlicer: () => (args_0: TableView | ((prev: TableView | undefined) => TableView | undefined) | undefined) => void;
|
|
8
|
+
//# sourceMappingURL=inserting-slicer.atom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inserting-slicer.atom.d.ts","sourceRoot":"","sources":["../../../atoms/inserting-slicer.atom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D,gEAAgE;AAChE,eAAO,MAAM,mBAAmB;;CAAyC,CAAC;AAE1E,eAAO,MAAM,kBAAkB,6BAA0C,CAAC;AAC1E,eAAO,MAAM,qBAAqB,0GAAwC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { atom, useAtomValue, useSetAtom } from "jotai";
|
|
2
|
+
/** The table Excel's "Insert Slicers" dialog was opened for. */
|
|
3
|
+
export const insertingSlicerAtom = atom(undefined);
|
|
4
|
+
export const useInsertingSlicer = () => useAtomValue(insertingSlicerAtom);
|
|
5
|
+
export const useSetInsertingSlicer = () => useSetAtom(insertingSlicerAtom);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TableView } from "@rowsncolumns/spreadsheet";
|
|
2
|
+
/** The table Excel's "Resize Table" dialog was opened for. */
|
|
3
|
+
export declare const resizingTableAtom: import("jotai").PrimitiveAtom<TableView | undefined> & {
|
|
4
|
+
init: TableView | undefined;
|
|
5
|
+
};
|
|
6
|
+
export declare const useResizingTable: () => TableView | undefined;
|
|
7
|
+
export declare const useSetResizingTable: () => (args_0: TableView | ((prev: TableView | undefined) => TableView | undefined) | undefined) => void;
|
|
8
|
+
//# sourceMappingURL=resizing-table.atom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resizing-table.atom.d.ts","sourceRoot":"","sources":["../../../atoms/resizing-table.atom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB;;CAAyC,CAAC;AAExE,eAAO,MAAM,gBAAgB,6BAAwC,CAAC;AACtE,eAAO,MAAM,mBAAmB,0GAAsC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { atom, useAtomValue, useSetAtom } from "jotai";
|
|
2
|
+
/** The table Excel's "Resize Table" dialog was opened for. */
|
|
3
|
+
export const resizingTableAtom = atom(undefined);
|
|
4
|
+
export const useResizingTable = () => useAtomValue(resizingTableAtom);
|
|
5
|
+
export const useSetResizingTable = () => useSetAtom(resizingTableAtom);
|