@rowsncolumns/spreadsheet-state 29.0.0 → 29.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/anchored-objects.d.ts +122 -6
- package/dist/cjs/api/anchored-objects.d.ts.map +1 -1
- package/dist/cjs/api/anchored-objects.js +464 -43
- package/dist/cjs/api/copy-paste.d.ts +1 -2
- package/dist/cjs/api/copy-paste.d.ts.map +1 -1
- package/dist/cjs/api/copy-paste.js +1 -3
- package/dist/cjs/api/filter.d.ts +15 -1
- package/dist/cjs/api/filter.d.ts.map +1 -1
- package/dist/cjs/api/filter.js +32 -2
- package/dist/cjs/api/formula.d.ts +63 -0
- package/dist/cjs/api/formula.d.ts.map +1 -1
- package/dist/cjs/api/formula.js +278 -8
- package/dist/cjs/api/paint-format.d.ts +22 -1
- package/dist/cjs/api/paint-format.d.ts.map +1 -1
- package/dist/cjs/api/paint-format.js +57 -1
- package/dist/cjs/api/sort.d.ts +23 -1
- package/dist/cjs/api/sort.d.ts.map +1 -1
- package/dist/cjs/api/sort.js +52 -6
- package/dist/cjs/api/structural-guards.d.ts +57 -0
- package/dist/cjs/api/structural-guards.d.ts.map +1 -1
- package/dist/cjs/api/structural-guards.js +93 -1
- package/dist/cjs/api/structural-table-refs.d.ts +58 -3
- package/dist/cjs/api/structural-table-refs.d.ts.map +1 -1
- package/dist/cjs/api/structural-table-refs.js +177 -16
- package/dist/cjs/api/table.d.ts +26 -2
- package/dist/cjs/api/table.d.ts.map +1 -1
- package/dist/cjs/api/table.js +93 -60
- package/dist/cjs/api/validation.d.ts.map +1 -1
- package/dist/cjs/api/validation.js +53 -8
- package/dist/cjs/atoms/creating-table.atom.d.ts +22 -0
- package/dist/cjs/atoms/creating-table.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/creating-table.atom.js +4 -0
- package/dist/cjs/atoms/dialog-state.atom.d.ts +8 -0
- package/dist/cjs/atoms/dialog-state.atom.d.ts.map +1 -1
- package/dist/cjs/atoms/dialog-state.atom.js +28 -0
- package/dist/cjs/atoms/editing-slicer.atom.d.ts +9 -0
- package/dist/cjs/atoms/editing-slicer.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/editing-slicer.atom.js +6 -0
- package/dist/cjs/atoms/index.d.ts +4 -0
- package/dist/cjs/atoms/index.d.ts.map +1 -1
- package/dist/cjs/atoms/index.js +4 -0
- package/dist/cjs/atoms/inserting-slicer.atom.d.ts +8 -0
- package/dist/cjs/atoms/inserting-slicer.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/inserting-slicer.atom.js +5 -0
- package/dist/cjs/atoms/resizing-table.atom.d.ts +8 -0
- package/dist/cjs/atoms/resizing-table.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/resizing-table.atom.js +5 -0
- package/dist/cjs/commands.d.ts +129 -2
- package/dist/cjs/commands.d.ts.map +1 -1
- package/dist/cjs/components/editors/embed-editor.d.ts +4 -2
- package/dist/cjs/components/editors/embed-editor.d.ts.map +1 -1
- package/dist/cjs/components/editors/embed-editor.js +38 -9
- package/dist/cjs/components/editors/slicer-editor.d.ts +15 -0
- package/dist/cjs/components/editors/slicer-editor.d.ts.map +1 -0
- package/dist/cjs/components/editors/slicer-editor.js +87 -0
- package/dist/cjs/components/editors/table-editor.d.ts +58 -2
- package/dist/cjs/components/editors/table-editor.d.ts.map +1 -1
- package/dist/cjs/components/editors/table-editor.js +261 -20
- package/dist/cjs/components/index.d.ts +1 -0
- package/dist/cjs/components/index.d.ts.map +1 -1
- package/dist/cjs/components/index.js +1 -0
- package/dist/cjs/constants.d.ts +9 -1
- package/dist/cjs/constants.d.ts.map +1 -1
- package/dist/cjs/constants.js +12 -0
- package/dist/cjs/generated-names.d.ts +13 -3
- package/dist/cjs/generated-names.d.ts.map +1 -1
- package/dist/cjs/generated-names.js +3 -1
- package/dist/cjs/helpers.d.ts +5 -0
- package/dist/cjs/helpers.d.ts.map +1 -1
- package/dist/cjs/helpers.js +10 -1
- package/dist/cjs/hooks/use-on-change-batch.d.ts +19 -2
- package/dist/cjs/hooks/use-on-change-batch.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-change-batch.js +43 -35
- package/dist/cjs/hooks/use-on-change-calculated-column.d.ts +10 -1
- package/dist/cjs/hooks/use-on-change-calculated-column.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-change-calculated-column.js +17 -5
- package/dist/cjs/hooks/use-on-change-table-column.d.ts +6 -1
- package/dist/cjs/hooks/use-on-change-table-column.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-change-table-column.js +17 -5
- package/dist/cjs/hooks/use-on-change.d.ts +36 -3
- package/dist/cjs/hooks/use-on-change.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-change.js +218 -136
- package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts +17 -0
- package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
- package/dist/cjs/hooks/use-on-create-custom-table-style.js +28 -0
- package/dist/cjs/hooks/use-on-create-named-range.d.ts +4 -2
- package/dist/cjs/hooks/use-on-create-named-range.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-create-named-range.js +11 -1
- package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
- package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete-cells-shift-left.js +3 -1
- package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
- package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete-cells-shift-up.js +3 -1
- package/dist/cjs/hooks/use-on-delete-column.d.ts +2 -1
- package/dist/cjs/hooks/use-on-delete-column.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete-column.js +3 -1
- package/dist/cjs/hooks/use-on-delete-row.d.ts +2 -1
- package/dist/cjs/hooks/use-on-delete-row.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete-row.js +3 -1
- package/dist/cjs/hooks/use-on-delete-sheet.d.ts +9 -1
- package/dist/cjs/hooks/use-on-delete-sheet.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete-sheet.js +17 -1
- package/dist/cjs/hooks/use-on-delete-table-row.d.ts +4 -1
- package/dist/cjs/hooks/use-on-delete-table-row.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete-table-row.js +19 -1
- package/dist/cjs/hooks/use-on-delete.d.ts +5 -2
- package/dist/cjs/hooks/use-on-delete.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete.js +5 -1
- package/dist/cjs/hooks/use-on-embeds.d.ts +7 -4
- package/dist/cjs/hooks/use-on-embeds.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-embeds.js +26 -24
- package/dist/cjs/hooks/use-on-fill.d.ts +17 -2
- package/dist/cjs/hooks/use-on-fill.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-fill.js +29 -15
- package/dist/cjs/hooks/use-on-filter-table.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-filter-table.js +209 -103
- package/dist/cjs/hooks/use-on-import-excel.d.ts +2 -1
- package/dist/cjs/hooks/use-on-import-excel.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-import-excel.js +22 -19
- package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
- package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-insert-cells-shift-down.js +3 -1
- package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
- package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-insert-cells-shift-right.js +3 -1
- package/dist/cjs/hooks/use-on-insert-column.d.ts +2 -1
- package/dist/cjs/hooks/use-on-insert-column.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-insert-column.js +3 -1
- package/dist/cjs/hooks/use-on-insert-row.d.ts +2 -1
- package/dist/cjs/hooks/use-on-insert-row.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-insert-row.js +3 -1
- package/dist/cjs/hooks/use-on-insert-table-row.d.ts +5 -2
- package/dist/cjs/hooks/use-on-insert-table-row.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-insert-table-row.js +19 -1
- package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
- package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-merge-unmerge-cells.js +14 -1
- package/dist/cjs/hooks/use-on-move-columns.d.ts +3 -1
- package/dist/cjs/hooks/use-on-move-columns.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-move-columns.js +14 -1
- package/dist/cjs/hooks/use-on-move-rows.d.ts +3 -1
- package/dist/cjs/hooks/use-on-move-rows.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-move-rows.js +14 -1
- package/dist/cjs/hooks/use-on-move-selection.d.ts +3 -1
- package/dist/cjs/hooks/use-on-move-selection.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-move-selection.js +88 -25
- package/dist/cjs/hooks/use-on-paste.d.ts +22 -1
- package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-paste.js +993 -776
- package/dist/cjs/hooks/use-on-remove-duplicates.d.ts +5 -2
- package/dist/cjs/hooks/use-on-remove-duplicates.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-remove-duplicates.js +5 -1
- package/dist/cjs/hooks/use-on-request-create-table.d.ts +13 -0
- package/dist/cjs/hooks/use-on-request-create-table.d.ts.map +1 -0
- package/dist/cjs/hooks/use-on-request-create-table.js +44 -0
- package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts +7 -0
- package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
- package/dist/cjs/hooks/use-on-request-insert-slicer.js +15 -0
- package/dist/cjs/hooks/use-on-request-resize-table.d.ts +7 -0
- package/dist/cjs/hooks/use-on-request-resize-table.d.ts.map +1 -0
- package/dist/cjs/hooks/use-on-request-resize-table.js +15 -0
- package/dist/cjs/hooks/use-on-resize-table.d.ts +5 -1
- package/dist/cjs/hooks/use-on-resize-table.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-resize-table.js +110 -33
- package/dist/cjs/hooks/use-on-sort-column.d.ts +28 -3
- package/dist/cjs/hooks/use-on-sort-column.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-sort-column.js +136 -90
- package/dist/cjs/hooks/use-on-sort-range.d.ts +26 -3
- package/dist/cjs/hooks/use-on-sort-range.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-sort-range.js +113 -67
- package/dist/cjs/hooks/use-on-sort-table.d.ts +18 -1
- package/dist/cjs/hooks/use-on-sort-table.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-sort-table.js +128 -98
- package/dist/cjs/hooks/use-on-subtotal.d.ts +10 -3
- package/dist/cjs/hooks/use-on-subtotal.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-subtotal.js +13 -9
- package/dist/cjs/hooks/use-on-table.d.ts +39 -7
- package/dist/cjs/hooks/use-on-table.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-table.js +257 -49
- package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts +23 -0
- package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
- package/dist/cjs/hooks/use-on-undo-calculated-column.js +70 -0
- package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
- package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
- package/dist/cjs/hooks/use-on-undo-table-auto-expansion.js +96 -0
- package/dist/cjs/hooks/use-on-update-named-range.d.ts +4 -2
- package/dist/cjs/hooks/use-on-update-named-range.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-update-named-range.js +13 -1
- package/dist/cjs/hooks/use-sheet-properties.d.ts +1 -0
- package/dist/cjs/hooks/use-sheet-properties.d.ts.map +1 -1
- package/dist/cjs/hooks/use-sheet-properties.js +54 -34
- package/dist/cjs/hooks/use-slicers.d.ts +2 -2
- package/dist/cjs/hooks/use-slicers.d.ts.map +1 -1
- package/dist/cjs/hooks/use-slicers.js +17 -26
- package/dist/cjs/hooks/use-sparkline-groups.d.ts +50 -0
- package/dist/cjs/hooks/use-sparkline-groups.d.ts.map +1 -0
- package/dist/cjs/hooks/use-sparkline-groups.js +192 -0
- package/dist/cjs/hooks/use-spreadsheet-state.d.ts +56 -10
- package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/cjs/hooks/use-spreadsheet-state.js +322 -100
- package/dist/cjs/hooks/use-structured-reference.d.ts.map +1 -1
- package/dist/cjs/hooks/use-structured-reference.js +17 -0
- package/dist/cjs/hooks/use-undo-redo-actions.d.ts +2 -1
- package/dist/cjs/hooks/use-undo-redo-actions.d.ts.map +1 -1
- package/dist/cjs/hooks/use-undo-redo-actions.js +10 -2
- package/dist/cjs/hooks/use-undo-redo.d.ts +12 -0
- package/dist/cjs/hooks/use-undo-redo.d.ts.map +1 -1
- package/dist/cjs/hooks/use-undo-redo.js +169 -10
- package/dist/cjs/hooks/utils/sort-rows.d.ts.map +1 -1
- package/dist/cjs/hooks/utils/sort-rows.js +4 -3
- package/dist/cjs/index.d.ts +7 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/interface/apply-fill.d.ts +26 -3
- package/dist/cjs/interface/apply-fill.d.ts.map +1 -1
- package/dist/cjs/interface/apply-fill.js +207 -98
- package/dist/cjs/interface/change-batch.d.ts +1 -1
- package/dist/cjs/interface/change-batch.d.ts.map +1 -1
- package/dist/cjs/interface/change-batch.js +112 -15
- package/dist/cjs/interface/change-calculated-column.d.ts +6 -2
- package/dist/cjs/interface/change-calculated-column.d.ts.map +1 -1
- package/dist/cjs/interface/change-calculated-column.js +87 -17
- package/dist/cjs/interface/change-table-column.d.ts +81 -7
- package/dist/cjs/interface/change-table-column.d.ts.map +1 -1
- package/dist/cjs/interface/change-table-column.js +336 -76
- package/dist/cjs/interface/create-table.d.ts +15 -3
- package/dist/cjs/interface/create-table.d.ts.map +1 -1
- package/dist/cjs/interface/create-table.js +100 -25
- package/dist/cjs/interface/delete-cells-shift-left.d.ts +1 -1
- package/dist/cjs/interface/delete-cells-shift-left.d.ts.map +1 -1
- package/dist/cjs/interface/delete-cells-shift-left.js +10 -1
- package/dist/cjs/interface/delete-cells-shift-up.d.ts +1 -1
- package/dist/cjs/interface/delete-cells-shift-up.d.ts.map +1 -1
- package/dist/cjs/interface/delete-cells-shift-up.js +10 -1
- package/dist/cjs/interface/delete-cells.d.ts +1 -1
- package/dist/cjs/interface/delete-cells.d.ts.map +1 -1
- package/dist/cjs/interface/delete-cells.js +81 -25
- package/dist/cjs/interface/delete-column.d.ts +1 -1
- package/dist/cjs/interface/delete-column.d.ts.map +1 -1
- package/dist/cjs/interface/delete-column.js +9 -2
- package/dist/cjs/interface/delete-row.d.ts +1 -1
- package/dist/cjs/interface/delete-row.d.ts.map +1 -1
- package/dist/cjs/interface/delete-row.js +223 -18
- package/dist/cjs/interface/delete-sheet.d.ts +2 -2
- package/dist/cjs/interface/delete-sheet.d.ts.map +1 -1
- package/dist/cjs/interface/delete-sheet.js +118 -1
- package/dist/cjs/interface/delete-table-column.d.ts +1 -1
- package/dist/cjs/interface/delete-table-column.d.ts.map +1 -1
- package/dist/cjs/interface/delete-table-column.js +11 -1
- package/dist/cjs/interface/delete-table-row.d.ts +1 -1
- package/dist/cjs/interface/delete-table-row.d.ts.map +1 -1
- package/dist/cjs/interface/delete-table-row.js +361 -275
- package/dist/cjs/interface/duplicate-sheet.d.ts.map +1 -1
- package/dist/cjs/interface/duplicate-sheet.js +83 -31
- package/dist/cjs/interface/embeds.d.ts +10 -1
- package/dist/cjs/interface/embeds.d.ts.map +1 -1
- package/dist/cjs/interface/embeds.js +120 -6
- package/dist/cjs/interface/insert-cells-shift-down.d.ts +1 -1
- package/dist/cjs/interface/insert-cells-shift-down.d.ts.map +1 -1
- package/dist/cjs/interface/insert-cells-shift-down.js +10 -1
- package/dist/cjs/interface/insert-cells-shift-right.d.ts +1 -1
- package/dist/cjs/interface/insert-cells-shift-right.d.ts.map +1 -1
- package/dist/cjs/interface/insert-cells-shift-right.js +10 -1
- package/dist/cjs/interface/insert-column.d.ts +2 -2
- package/dist/cjs/interface/insert-column.d.ts.map +1 -1
- package/dist/cjs/interface/insert-column.js +67 -38
- package/dist/cjs/interface/insert-row.d.ts +1 -1
- package/dist/cjs/interface/insert-row.d.ts.map +1 -1
- package/dist/cjs/interface/insert-row.js +9 -2
- package/dist/cjs/interface/insert-table-row.d.ts +2 -1
- package/dist/cjs/interface/insert-table-row.d.ts.map +1 -1
- package/dist/cjs/interface/insert-table-row.js +70 -19
- package/dist/cjs/interface/remove-duplicates.d.ts +1 -1
- package/dist/cjs/interface/remove-duplicates.d.ts.map +1 -1
- package/dist/cjs/interface/remove-duplicates.js +46 -6
- package/dist/cjs/interface/remove-table.d.ts +1 -1
- package/dist/cjs/interface/remove-table.d.ts.map +1 -1
- package/dist/cjs/interface/remove-table.js +72 -16
- package/dist/cjs/interface/slicers.d.ts +12 -1
- package/dist/cjs/interface/slicers.d.ts.map +1 -1
- package/dist/cjs/interface/slicers.js +47 -2
- package/dist/cjs/interface/spreadsheet-interface.d.ts +1 -1
- package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
- package/dist/cjs/interface/spreadsheet-interface.js +64 -1
- package/dist/cjs/interface/table-totalrow.d.ts +13 -1
- package/dist/cjs/interface/table-totalrow.d.ts.map +1 -1
- package/dist/cjs/interface/table-totalrow.js +107 -73
- package/dist/cjs/interface/table-utils.d.ts +59 -6
- package/dist/cjs/interface/table-utils.d.ts.map +1 -1
- package/dist/cjs/interface/table-utils.js +211 -15
- package/dist/cjs/interface/update-table.d.ts +16 -1
- package/dist/cjs/interface/update-table.d.ts.map +1 -1
- package/dist/cjs/interface/update-table.js +190 -44
- package/dist/cjs/sheet-cell.d.ts.map +1 -1
- package/dist/cjs/test-setup.d.ts.map +1 -1
- package/dist/cjs/test-setup.js +6 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/validation-schema/table.schema.d.ts +11 -0
- package/dist/cjs/validation-schema/table.schema.d.ts.map +1 -1
- package/dist/cjs/validation-schema/table.schema.js +20 -3
- package/dist/esm/api/anchored-objects.d.ts +122 -6
- package/dist/esm/api/anchored-objects.d.ts.map +1 -1
- package/dist/esm/api/anchored-objects.js +375 -15
- package/dist/esm/api/copy-paste.d.ts +1 -2
- package/dist/esm/api/copy-paste.d.ts.map +1 -1
- package/dist/esm/api/copy-paste.js +1 -3
- package/dist/esm/api/filter.d.ts +15 -1
- package/dist/esm/api/filter.d.ts.map +1 -1
- package/dist/esm/api/filter.js +28 -0
- package/dist/esm/api/formula.d.ts +63 -0
- package/dist/esm/api/formula.d.ts.map +1 -1
- package/dist/esm/api/formula.js +235 -8
- package/dist/esm/api/paint-format.d.ts +22 -1
- package/dist/esm/api/paint-format.d.ts.map +1 -1
- package/dist/esm/api/paint-format.js +44 -1
- package/dist/esm/api/sort.d.ts +23 -1
- package/dist/esm/api/sort.d.ts.map +1 -1
- package/dist/esm/api/sort.js +45 -6
- package/dist/esm/api/structural-guards.d.ts +57 -0
- package/dist/esm/api/structural-guards.d.ts.map +1 -1
- package/dist/esm/api/structural-guards.js +85 -0
- package/dist/esm/api/structural-table-refs.d.ts +58 -3
- package/dist/esm/api/structural-table-refs.d.ts.map +1 -1
- package/dist/esm/api/structural-table-refs.js +126 -6
- package/dist/esm/api/table.d.ts +26 -2
- package/dist/esm/api/table.d.ts.map +1 -1
- package/dist/esm/api/table.js +70 -48
- package/dist/esm/api/validation.d.ts.map +1 -1
- package/dist/esm/api/validation.js +53 -8
- package/dist/esm/atoms/creating-table.atom.d.ts +22 -0
- package/dist/esm/atoms/creating-table.atom.d.ts.map +1 -0
- package/dist/esm/atoms/creating-table.atom.js +4 -0
- package/dist/esm/atoms/dialog-state.atom.d.ts +8 -0
- package/dist/esm/atoms/dialog-state.atom.d.ts.map +1 -1
- package/dist/esm/atoms/dialog-state.atom.js +12 -0
- package/dist/esm/atoms/editing-slicer.atom.d.ts +9 -0
- package/dist/esm/atoms/editing-slicer.atom.d.ts.map +1 -0
- package/dist/esm/atoms/editing-slicer.atom.js +6 -0
- package/dist/esm/atoms/index.d.ts +4 -0
- package/dist/esm/atoms/index.d.ts.map +1 -1
- package/dist/esm/atoms/index.js +4 -0
- package/dist/esm/atoms/inserting-slicer.atom.d.ts +8 -0
- package/dist/esm/atoms/inserting-slicer.atom.d.ts.map +1 -0
- package/dist/esm/atoms/inserting-slicer.atom.js +5 -0
- package/dist/esm/atoms/resizing-table.atom.d.ts +8 -0
- package/dist/esm/atoms/resizing-table.atom.d.ts.map +1 -0
- package/dist/esm/atoms/resizing-table.atom.js +5 -0
- package/dist/esm/commands.d.ts +129 -2
- package/dist/esm/commands.d.ts.map +1 -1
- package/dist/esm/components/editors/embed-editor.d.ts +4 -2
- package/dist/esm/components/editors/embed-editor.d.ts.map +1 -1
- package/dist/esm/components/editors/embed-editor.js +40 -6
- package/dist/esm/components/editors/slicer-editor.d.ts +15 -0
- package/dist/esm/components/editors/slicer-editor.d.ts.map +1 -0
- package/dist/esm/components/editors/slicer-editor.js +85 -0
- package/dist/esm/components/editors/table-editor.d.ts +58 -2
- package/dist/esm/components/editors/table-editor.d.ts.map +1 -1
- package/dist/esm/components/editors/table-editor.js +243 -19
- package/dist/esm/components/index.d.ts +1 -0
- package/dist/esm/components/index.d.ts.map +1 -1
- package/dist/esm/components/index.js +1 -0
- package/dist/esm/constants.d.ts +9 -1
- package/dist/esm/constants.d.ts.map +1 -1
- package/dist/esm/constants.js +12 -0
- package/dist/esm/generated-names.d.ts +13 -3
- package/dist/esm/generated-names.d.ts.map +1 -1
- package/dist/esm/generated-names.js +3 -1
- package/dist/esm/helpers.d.ts +5 -0
- package/dist/esm/helpers.d.ts.map +1 -1
- package/dist/esm/helpers.js +7 -1
- package/dist/esm/hooks/use-on-change-batch.d.ts +19 -2
- package/dist/esm/hooks/use-on-change-batch.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-change-batch.js +19 -3
- package/dist/esm/hooks/use-on-change-calculated-column.d.ts +10 -1
- package/dist/esm/hooks/use-on-change-calculated-column.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-change-calculated-column.js +17 -5
- package/dist/esm/hooks/use-on-change-table-column.d.ts +6 -1
- package/dist/esm/hooks/use-on-change-table-column.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-change-table-column.js +17 -5
- package/dist/esm/hooks/use-on-change.d.ts +36 -3
- package/dist/esm/hooks/use-on-change.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-change.js +214 -124
- package/dist/esm/hooks/use-on-create-custom-table-style.d.ts +17 -0
- package/dist/esm/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
- package/dist/esm/hooks/use-on-create-custom-table-style.js +26 -0
- package/dist/esm/hooks/use-on-create-named-range.d.ts +4 -2
- package/dist/esm/hooks/use-on-create-named-range.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-create-named-range.js +11 -1
- package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
- package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete-cells-shift-left.js +3 -1
- package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
- package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete-cells-shift-up.js +3 -1
- package/dist/esm/hooks/use-on-delete-column.d.ts +2 -1
- package/dist/esm/hooks/use-on-delete-column.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete-column.js +3 -1
- package/dist/esm/hooks/use-on-delete-row.d.ts +2 -1
- package/dist/esm/hooks/use-on-delete-row.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete-row.js +3 -1
- package/dist/esm/hooks/use-on-delete-sheet.d.ts +9 -1
- package/dist/esm/hooks/use-on-delete-sheet.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete-sheet.js +17 -1
- package/dist/esm/hooks/use-on-delete-table-row.d.ts +4 -1
- package/dist/esm/hooks/use-on-delete-table-row.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete-table-row.js +19 -1
- package/dist/esm/hooks/use-on-delete.d.ts +5 -2
- package/dist/esm/hooks/use-on-delete.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete.js +5 -1
- package/dist/esm/hooks/use-on-embeds.d.ts +7 -4
- package/dist/esm/hooks/use-on-embeds.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-embeds.js +23 -6
- package/dist/esm/hooks/use-on-fill.d.ts +17 -2
- package/dist/esm/hooks/use-on-fill.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-fill.js +27 -1
- package/dist/esm/hooks/use-on-filter-table.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-filter-table.js +97 -26
- package/dist/esm/hooks/use-on-import-excel.d.ts +2 -1
- package/dist/esm/hooks/use-on-import-excel.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-import-excel.js +4 -1
- package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
- package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-insert-cells-shift-down.js +3 -1
- package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
- package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-insert-cells-shift-right.js +3 -1
- package/dist/esm/hooks/use-on-insert-column.d.ts +2 -1
- package/dist/esm/hooks/use-on-insert-column.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-insert-column.js +3 -1
- package/dist/esm/hooks/use-on-insert-row.d.ts +2 -1
- package/dist/esm/hooks/use-on-insert-row.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-insert-row.js +3 -1
- package/dist/esm/hooks/use-on-insert-table-row.d.ts +5 -2
- package/dist/esm/hooks/use-on-insert-table-row.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-insert-table-row.js +19 -1
- package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
- package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-merge-unmerge-cells.js +12 -1
- package/dist/esm/hooks/use-on-move-columns.d.ts +3 -1
- package/dist/esm/hooks/use-on-move-columns.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-move-columns.js +14 -1
- package/dist/esm/hooks/use-on-move-rows.d.ts +3 -1
- package/dist/esm/hooks/use-on-move-rows.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-move-rows.js +14 -1
- package/dist/esm/hooks/use-on-move-selection.d.ts +3 -1
- package/dist/esm/hooks/use-on-move-selection.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-move-selection.js +44 -1
- package/dist/esm/hooks/use-on-paste.d.ts +22 -1
- package/dist/esm/hooks/use-on-paste.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-paste.js +815 -672
- package/dist/esm/hooks/use-on-remove-duplicates.d.ts +5 -2
- package/dist/esm/hooks/use-on-remove-duplicates.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-remove-duplicates.js +5 -1
- package/dist/esm/hooks/use-on-request-create-table.d.ts +13 -0
- package/dist/esm/hooks/use-on-request-create-table.d.ts.map +1 -0
- package/dist/esm/hooks/use-on-request-create-table.js +43 -0
- package/dist/esm/hooks/use-on-request-insert-slicer.d.ts +7 -0
- package/dist/esm/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
- package/dist/esm/hooks/use-on-request-insert-slicer.js +15 -0
- package/dist/esm/hooks/use-on-request-resize-table.d.ts +7 -0
- package/dist/esm/hooks/use-on-request-resize-table.d.ts.map +1 -0
- package/dist/esm/hooks/use-on-request-resize-table.js +15 -0
- package/dist/esm/hooks/use-on-resize-table.d.ts +5 -1
- package/dist/esm/hooks/use-on-resize-table.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-resize-table.js +107 -27
- package/dist/esm/hooks/use-on-sort-column.d.ts +28 -3
- package/dist/esm/hooks/use-on-sort-column.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-sort-column.js +105 -68
- package/dist/esm/hooks/use-on-sort-range.d.ts +26 -3
- package/dist/esm/hooks/use-on-sort-range.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-sort-range.js +100 -64
- package/dist/esm/hooks/use-on-sort-table.d.ts +18 -1
- package/dist/esm/hooks/use-on-sort-table.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-sort-table.js +107 -86
- package/dist/esm/hooks/use-on-subtotal.d.ts +10 -3
- package/dist/esm/hooks/use-on-subtotal.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-subtotal.js +7 -5
- package/dist/esm/hooks/use-on-table.d.ts +39 -7
- package/dist/esm/hooks/use-on-table.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-table.js +234 -26
- package/dist/esm/hooks/use-on-undo-calculated-column.d.ts +23 -0
- package/dist/esm/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
- package/dist/esm/hooks/use-on-undo-calculated-column.js +62 -0
- package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
- package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
- package/dist/esm/hooks/use-on-undo-table-auto-expansion.js +75 -0
- package/dist/esm/hooks/use-on-update-named-range.d.ts +4 -2
- package/dist/esm/hooks/use-on-update-named-range.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-update-named-range.js +13 -1
- package/dist/esm/hooks/use-sheet-properties.d.ts +1 -0
- package/dist/esm/hooks/use-sheet-properties.d.ts.map +1 -1
- package/dist/esm/hooks/use-sheet-properties.js +38 -19
- package/dist/esm/hooks/use-slicers.d.ts +2 -2
- package/dist/esm/hooks/use-slicers.d.ts.map +1 -1
- package/dist/esm/hooks/use-slicers.js +16 -8
- package/dist/esm/hooks/use-sparkline-groups.d.ts +50 -0
- package/dist/esm/hooks/use-sparkline-groups.d.ts.map +1 -0
- package/dist/esm/hooks/use-sparkline-groups.js +146 -0
- package/dist/esm/hooks/use-spreadsheet-state.d.ts +56 -10
- package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/esm/hooks/use-spreadsheet-state.js +259 -30
- package/dist/esm/hooks/use-structured-reference.d.ts.map +1 -1
- package/dist/esm/hooks/use-structured-reference.js +17 -0
- package/dist/esm/hooks/use-undo-redo-actions.d.ts +2 -1
- package/dist/esm/hooks/use-undo-redo-actions.d.ts.map +1 -1
- package/dist/esm/hooks/use-undo-redo-actions.js +8 -2
- package/dist/esm/hooks/use-undo-redo.d.ts +12 -0
- package/dist/esm/hooks/use-undo-redo.d.ts.map +1 -1
- package/dist/esm/hooks/use-undo-redo.js +158 -7
- package/dist/esm/hooks/utils/sort-rows.d.ts.map +1 -1
- package/dist/esm/hooks/utils/sort-rows.js +4 -3
- package/dist/esm/index.d.ts +7 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +8 -0
- package/dist/esm/interface/apply-fill.d.ts +26 -3
- package/dist/esm/interface/apply-fill.d.ts.map +1 -1
- package/dist/esm/interface/apply-fill.js +188 -88
- package/dist/esm/interface/change-batch.d.ts +1 -1
- package/dist/esm/interface/change-batch.d.ts.map +1 -1
- package/dist/esm/interface/change-batch.js +89 -8
- package/dist/esm/interface/change-calculated-column.d.ts +6 -2
- package/dist/esm/interface/change-calculated-column.d.ts.map +1 -1
- package/dist/esm/interface/change-calculated-column.js +81 -16
- package/dist/esm/interface/change-table-column.d.ts +81 -7
- package/dist/esm/interface/change-table-column.d.ts.map +1 -1
- package/dist/esm/interface/change-table-column.js +295 -67
- package/dist/esm/interface/create-table.d.ts +15 -3
- package/dist/esm/interface/create-table.d.ts.map +1 -1
- package/dist/esm/interface/create-table.js +103 -27
- package/dist/esm/interface/delete-cells-shift-left.d.ts +1 -1
- package/dist/esm/interface/delete-cells-shift-left.d.ts.map +1 -1
- package/dist/esm/interface/delete-cells-shift-left.js +10 -1
- package/dist/esm/interface/delete-cells-shift-up.d.ts +1 -1
- package/dist/esm/interface/delete-cells-shift-up.d.ts.map +1 -1
- package/dist/esm/interface/delete-cells-shift-up.js +10 -1
- package/dist/esm/interface/delete-cells.d.ts +1 -1
- package/dist/esm/interface/delete-cells.d.ts.map +1 -1
- package/dist/esm/interface/delete-cells.js +47 -14
- package/dist/esm/interface/delete-column.d.ts +1 -1
- package/dist/esm/interface/delete-column.d.ts.map +1 -1
- package/dist/esm/interface/delete-column.js +9 -2
- package/dist/esm/interface/delete-row.d.ts +1 -1
- package/dist/esm/interface/delete-row.d.ts.map +1 -1
- package/dist/esm/interface/delete-row.js +173 -15
- package/dist/esm/interface/delete-sheet.d.ts +2 -2
- package/dist/esm/interface/delete-sheet.d.ts.map +1 -1
- package/dist/esm/interface/delete-sheet.js +113 -1
- package/dist/esm/interface/delete-table-column.d.ts +1 -1
- package/dist/esm/interface/delete-table-column.d.ts.map +1 -1
- package/dist/esm/interface/delete-table-column.js +11 -1
- package/dist/esm/interface/delete-table-row.d.ts +1 -1
- package/dist/esm/interface/delete-table-row.d.ts.map +1 -1
- package/dist/esm/interface/delete-table-row.js +312 -232
- package/dist/esm/interface/duplicate-sheet.d.ts.map +1 -1
- package/dist/esm/interface/duplicate-sheet.js +73 -26
- package/dist/esm/interface/embeds.d.ts +10 -1
- package/dist/esm/interface/embeds.d.ts.map +1 -1
- package/dist/esm/interface/embeds.js +84 -5
- package/dist/esm/interface/insert-cells-shift-down.d.ts +1 -1
- package/dist/esm/interface/insert-cells-shift-down.d.ts.map +1 -1
- package/dist/esm/interface/insert-cells-shift-down.js +10 -1
- package/dist/esm/interface/insert-cells-shift-right.d.ts +1 -1
- package/dist/esm/interface/insert-cells-shift-right.d.ts.map +1 -1
- package/dist/esm/interface/insert-cells-shift-right.js +10 -1
- package/dist/esm/interface/insert-column.d.ts +2 -2
- package/dist/esm/interface/insert-column.d.ts.map +1 -1
- package/dist/esm/interface/insert-column.js +48 -23
- package/dist/esm/interface/insert-row.d.ts +1 -1
- package/dist/esm/interface/insert-row.d.ts.map +1 -1
- package/dist/esm/interface/insert-row.js +9 -2
- package/dist/esm/interface/insert-table-row.d.ts +2 -1
- package/dist/esm/interface/insert-table-row.d.ts.map +1 -1
- package/dist/esm/interface/insert-table-row.js +67 -12
- package/dist/esm/interface/remove-duplicates.d.ts +1 -1
- package/dist/esm/interface/remove-duplicates.d.ts.map +1 -1
- package/dist/esm/interface/remove-duplicates.js +41 -6
- package/dist/esm/interface/remove-table.d.ts +1 -1
- package/dist/esm/interface/remove-table.d.ts.map +1 -1
- package/dist/esm/interface/remove-table.js +58 -10
- package/dist/esm/interface/slicers.d.ts +12 -1
- package/dist/esm/interface/slicers.d.ts.map +1 -1
- package/dist/esm/interface/slicers.js +44 -2
- package/dist/esm/interface/spreadsheet-interface.d.ts +1 -1
- package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
- package/dist/esm/interface/spreadsheet-interface.js +73 -1
- package/dist/esm/interface/table-totalrow.d.ts +13 -1
- package/dist/esm/interface/table-totalrow.d.ts.map +1 -1
- package/dist/esm/interface/table-totalrow.js +98 -68
- package/dist/esm/interface/table-utils.d.ts +59 -6
- package/dist/esm/interface/table-utils.d.ts.map +1 -1
- package/dist/esm/interface/table-utils.js +155 -14
- package/dist/esm/interface/update-table.d.ts +16 -1
- package/dist/esm/interface/update-table.d.ts.map +1 -1
- package/dist/esm/interface/update-table.js +203 -42
- package/dist/esm/sheet-cell.d.ts.map +1 -1
- package/dist/esm/test-setup.d.ts.map +1 -1
- package/dist/esm/test-setup.js +6 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esm/validation-schema/table.schema.d.ts +11 -0
- package/dist/esm/validation-schema/table.schema.d.ts.map +1 -1
- package/dist/esm/validation-schema/table.schema.js +15 -2
- package/package.json +19 -11
|
@@ -1,12 +1,68 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { GridRange } from "@rowsncolumns/common-types";
|
|
2
|
+
import type { NamedRange, Slicer, SpreadsheetTheme, TableView } from "@rowsncolumns/spreadsheet";
|
|
2
3
|
import React from "react";
|
|
3
4
|
import type { useSpreadsheetState } from "../../hooks/use-spreadsheet-state";
|
|
4
5
|
type TableEditorProps = {
|
|
5
6
|
sheetId: number;
|
|
6
7
|
theme: SpreadsheetTheme;
|
|
8
|
+
/**
|
|
9
|
+
* Every table in the workbook — the name field refuses a rename that
|
|
10
|
+
* collides with another table's name (case-insensitive, like Excel).
|
|
11
|
+
*/
|
|
12
|
+
tables?: TableView[];
|
|
13
|
+
/**
|
|
14
|
+
* The workbook's defined names — a table name that collides with one is
|
|
15
|
+
* refused inline, the way the engines refuse it on submit.
|
|
16
|
+
*/
|
|
17
|
+
namedRanges?: NamedRange[];
|
|
7
18
|
onSubmit: ReturnType<typeof useSpreadsheetState>["onUpdateTable"];
|
|
8
19
|
onRemoveTable?: ReturnType<typeof useSpreadsheetState>["onRemoveTable"];
|
|
20
|
+
/**
|
|
21
|
+
* Submits the Create Table dialog (opened by `onRequestCreateTable` — Ctrl+T, Insert → Table,
|
|
22
|
+
* Format as Table). Without it the create dialog is not rendered.
|
|
23
|
+
*/
|
|
24
|
+
onCreateTable?: ReturnType<typeof useSpreadsheetState>["onCreateTable"];
|
|
25
|
+
/**
|
|
26
|
+
* Submits the Resize Table dialog (opened by `onRequestResizeTable` — Table Design → Resize
|
|
27
|
+
* Table, the context menu's Table → Resize Table…). Without it the resize dialog is not rendered.
|
|
28
|
+
*/
|
|
29
|
+
onResizeTable?: ReturnType<typeof useSpreadsheetState>["onResizeTable"];
|
|
30
|
+
/**
|
|
31
|
+
* Submits the Insert Slicers dialog (opened by `onRequestInsertSlicer` — Table Design → Insert
|
|
32
|
+
* Slicer, the context menu's Table → Insert Slicer…): one slicer per checked column. Without it
|
|
33
|
+
* the dialog is not rendered.
|
|
34
|
+
*/
|
|
35
|
+
onCreateSlicer?: (slicer: Slicer) => void;
|
|
9
36
|
};
|
|
10
|
-
export declare const TableEditor: ({ sheetId, theme, onSubmit, onRemoveTable, }: TableEditorProps) => React.JSX.Element;
|
|
37
|
+
export declare const TableEditor: ({ sheetId, theme, tables, namedRanges, onSubmit, onRemoveTable, onCreateTable, onResizeTable, onCreateSlicer, }: TableEditorProps) => React.JSX.Element;
|
|
38
|
+
/**
|
|
39
|
+
* Excel's "Create Table" dialog: the data range (pre-filled with the selection or the data region
|
|
40
|
+
* around the active cell) and "My table has headers". Unchecked, a `Column1..N` header row is
|
|
41
|
+
* inserted above the data (`CreateTableOptions.hasHeaders: false`).
|
|
42
|
+
*/
|
|
43
|
+
export declare const CreateTableEditor: ({ onCreateTable, }: {
|
|
44
|
+
onCreateTable: NonNullable<TableEditorProps["onCreateTable"]>;
|
|
45
|
+
}) => React.JSX.Element;
|
|
46
|
+
/**
|
|
47
|
+
* Excel's rule for a resized table: the header row stays where it is and the new range must
|
|
48
|
+
* overlap the original one. Overlaps with other tables or merged cells are refused by the engines
|
|
49
|
+
* themselves (`onResizeTable`).
|
|
50
|
+
*/
|
|
51
|
+
export declare const RESIZE_TABLE_RANGE_ERROR = "The header row must remain in the same row, and the resulting table range must overlap the original table range.";
|
|
52
|
+
export declare const getResizeTableRangeError: (table: Pick<TableView, "range">, range: GridRange) => string | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Excel's "Resize Table" dialog: the table's range, editable, submitted through
|
|
55
|
+
* `onResizeTable` once it keeps the header row and overlaps the original range.
|
|
56
|
+
*/
|
|
57
|
+
export declare const ResizeTableEditor: ({ onResizeTable, }: {
|
|
58
|
+
onResizeTable: NonNullable<TableEditorProps["onResizeTable"]>;
|
|
59
|
+
}) => React.JSX.Element;
|
|
60
|
+
/**
|
|
61
|
+
* Excel's "Insert Slicers" dialog: the table's columns as checkboxes; OK creates one table-bound
|
|
62
|
+
* slicer per checked column (`buildTableSlicers`), placed right of the table.
|
|
63
|
+
*/
|
|
64
|
+
export declare const InsertSlicerEditor: ({ onCreateSlicer, }: {
|
|
65
|
+
onCreateSlicer: NonNullable<TableEditorProps["onCreateSlicer"]>;
|
|
66
|
+
}) => React.JSX.Element;
|
|
11
67
|
export {};
|
|
12
68
|
//# sourceMappingURL=table-editor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-editor.d.ts","sourceRoot":"","sources":["../../../../components/editors/table-editor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"table-editor.d.ts","sourceRoot":"","sources":["../../../../components/editors/table-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,KAAK,EACV,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,SAAS,EACV,MAAM,2BAA2B,CAAC;AAqBnC,OAAO,KAAyC,MAAM,OAAO,CAAC;AAe9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAO7E,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,gBAAgB,CAAC;IACxB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB;;;OAGG;IACH,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,QAAQ,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC;IAClE,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC;IACxE;;;OAGG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC;IACxE;;;OAGG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC;IACxE;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,iHAUzB,gBAAgB,sBAwElB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,oBAE/B;IACD,aAAa,EAAE,WAAW,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;CAC/D,sBA2DA,CAAC;AAgEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,qHAC+E,CAAC;AAErH,eAAO,MAAM,wBAAwB,GACnC,OAAO,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAC/B,OAAO,SAAS,KACf,MAAM,GAAG,SAOX,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,oBAE/B;IACD,aAAa,EAAE,WAAW,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;CAC/D,sBAqDA,CAAC;AAmEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,qBAEhC;IACD,cAAc,EAAE,WAAW,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC;CACjE,sBAiDA,CAAC"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import { __assign, __read } from "tslib";
|
|
1
|
+
import { __assign, __read, __spreadArray, __values } from "tslib";
|
|
2
2
|
import { Cross2Icon } from "@rowsncolumns/icons";
|
|
3
3
|
import { findMatchingBandProperty, FormulaInput, useFocusSheet, useFormulaInputState, useSetFormulaMode, useSetFormulaSelections, } from "@rowsncolumns/spreadsheet";
|
|
4
4
|
import { Button, Dialog, DialogBody, DialogCloseButton, DialogContent, DialogDescription, DialogTitle, Input, Stack, } from "@rowsncolumns/ui";
|
|
5
5
|
import { useFormik } from "formik";
|
|
6
|
-
import React, { useCallback } from "react";
|
|
7
|
-
import {
|
|
6
|
+
import React, { useCallback, useMemo, useState } from "react";
|
|
7
|
+
import { useCreatingTable, } from "../../atoms/creating-table.atom";
|
|
8
|
+
import { useCreateTableDialogState, useEditTableDialogState, useInsertSlicerDialogState, useResizeTableDialogState, } from "../../atoms/dialog-state.atom";
|
|
8
9
|
import { useEditingTable } from "../../atoms/editing-table.atom";
|
|
9
|
-
import {
|
|
10
|
+
import { useInsertingSlicer } from "../../atoms/inserting-slicer.atom";
|
|
11
|
+
import { useResizingTable } from "../../atoms/resizing-table.atom";
|
|
12
|
+
import { buildTableSlicers, getTableSlicerColumnNames, } from "../../interface/slicers";
|
|
13
|
+
import { createTableSchema } from "../../validation-schema/table.schema";
|
|
10
14
|
export var TableEditor = function (_a) {
|
|
11
|
-
var sheetId = _a.sheetId, theme = _a.theme, onSubmit = _a.onSubmit, onRemoveTable = _a.onRemoveTable;
|
|
15
|
+
var sheetId = _a.sheetId, theme = _a.theme, tables = _a.tables, namedRanges = _a.namedRanges, onSubmit = _a.onSubmit, onRemoveTable = _a.onRemoveTable, onCreateTable = _a.onCreateTable, onResizeTable = _a.onResizeTable, onCreateSlicer = _a.onCreateSlicer;
|
|
12
16
|
var _b = __read(useEditTableDialogState(), 2), isOpen = _b[0], onOpenChange = _b[1];
|
|
13
17
|
var setFormulaMode = useSetFormulaMode();
|
|
14
18
|
var setFormulaSelections = useSetFormulaSelections();
|
|
@@ -24,25 +28,247 @@ export var TableEditor = function (_a) {
|
|
|
24
28
|
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(sheetId, tableId, table);
|
|
25
29
|
closeDialog();
|
|
26
30
|
}, [onSubmit, closeDialog]);
|
|
31
|
+
return (React.createElement(React.Fragment, null,
|
|
32
|
+
onCreateTable ? (React.createElement(CreateTableEditor, { onCreateTable: onCreateTable })) : null,
|
|
33
|
+
onResizeTable ? (React.createElement(ResizeTableEditor, { onResizeTable: onResizeTable })) : null,
|
|
34
|
+
onCreateSlicer ? (React.createElement(InsertSlicerEditor, { onCreateSlicer: onCreateSlicer })) : null,
|
|
35
|
+
React.createElement(Dialog, { modal: false, open: isOpen },
|
|
36
|
+
React.createElement(DialogContent, { onEscapeKeyDown: closeDialog, onCloseAutoFocus: function (e) {
|
|
37
|
+
e.preventDefault();
|
|
38
|
+
focusSheet === null || focusSheet === void 0 ? void 0 : focusSheet();
|
|
39
|
+
} },
|
|
40
|
+
React.createElement(DialogTitle, { className: "rnc-drag-handle cursor-move" }, "Edit table"),
|
|
41
|
+
React.createElement(DialogDescription, null, "Update data range and table properties"),
|
|
42
|
+
React.createElement(DialogBody, null, table ? (React.createElement(TableEditorForm, { onSubmit: handleSubmit, table: table, tables: tables, namedRanges: namedRanges, sheetId: sheetId, theme: theme, onCancel: closeDialog, onRemoveTable: onRemoveTable })) : null),
|
|
43
|
+
React.createElement(DialogCloseButton, { onClick: function () {
|
|
44
|
+
closeDialog();
|
|
45
|
+
} },
|
|
46
|
+
React.createElement(Cross2Icon, null))))));
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Excel's "Create Table" dialog: the data range (pre-filled with the selection or the data region
|
|
50
|
+
* around the active cell) and "My table has headers". Unchecked, a `Column1..N` header row is
|
|
51
|
+
* inserted above the data (`CreateTableOptions.hasHeaders: false`).
|
|
52
|
+
*/
|
|
53
|
+
export var CreateTableEditor = function (_a) {
|
|
54
|
+
var onCreateTable = _a.onCreateTable;
|
|
55
|
+
var _b = __read(useCreateTableDialogState(), 2), isOpen = _b[0], onOpenChange = _b[1];
|
|
56
|
+
var request = useCreatingTable();
|
|
57
|
+
var setFormulaMode = useSetFormulaMode();
|
|
58
|
+
var setFormulaSelections = useSetFormulaSelections();
|
|
59
|
+
var focusSheet = useFocusSheet();
|
|
60
|
+
var closeDialog = useCallback(function () {
|
|
61
|
+
setFormulaMode(false);
|
|
62
|
+
setFormulaSelections([]);
|
|
63
|
+
onOpenChange(false);
|
|
64
|
+
}, [setFormulaMode, setFormulaSelections, onOpenChange]);
|
|
65
|
+
var handleSubmit = useCallback(function (range, hasHeaders) {
|
|
66
|
+
if (!request) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
onCreateTable(request.sheetId, request.activeCell, [{ range: range }], { range: range }, request.theme, request.bandedRange, { hasHeaders: hasHeaders });
|
|
70
|
+
closeDialog();
|
|
71
|
+
}, [request, onCreateTable, closeDialog]);
|
|
27
72
|
return (React.createElement(Dialog, { modal: false, open: isOpen },
|
|
28
73
|
React.createElement(DialogContent, { onEscapeKeyDown: closeDialog, onCloseAutoFocus: function (e) {
|
|
29
74
|
e.preventDefault();
|
|
30
75
|
focusSheet === null || focusSheet === void 0 ? void 0 : focusSheet();
|
|
31
76
|
} },
|
|
32
|
-
React.createElement(DialogTitle, { className: "rnc-drag-handle cursor-move" }, "
|
|
33
|
-
React.createElement(DialogDescription, null, "
|
|
34
|
-
React.createElement(DialogBody, null,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
77
|
+
React.createElement(DialogTitle, { className: "rnc-drag-handle cursor-move" }, "Create Table"),
|
|
78
|
+
React.createElement(DialogDescription, null, "Where is the data for your table?"),
|
|
79
|
+
React.createElement(DialogBody, null, request && isOpen ? (React.createElement(CreateTableForm
|
|
80
|
+
// A fresh form per request: its fields are seeded from the request once.
|
|
81
|
+
, {
|
|
82
|
+
// A fresh form per request: its fields are seeded from the request once.
|
|
83
|
+
key: "".concat(request.sheetId, ":").concat(request.range.startRowIndex, ":").concat(request.range.startColumnIndex, ":").concat(request.range.endRowIndex, ":").concat(request.range.endColumnIndex), request: request, onSubmit: handleSubmit, onCancel: closeDialog })) : null),
|
|
84
|
+
React.createElement(DialogCloseButton, { onClick: closeDialog },
|
|
85
|
+
React.createElement(Cross2Icon, null)))));
|
|
86
|
+
};
|
|
87
|
+
var CreateTableForm = function (_a) {
|
|
88
|
+
var request = _a.request, onSubmit = _a.onSubmit, onCancel = _a.onCancel;
|
|
89
|
+
var _b = __read(useState(request.range), 2), range = _b[0], setRange = _b[1];
|
|
90
|
+
var _c = __read(useState(request.hasHeaders), 2), hasHeaders = _c[0], setHasHeaders = _c[1];
|
|
91
|
+
var formulaInput = useFormulaInputState(request.sheetId, __assign(__assign({}, request.range), { sheetId: request.sheetId }));
|
|
92
|
+
return (React.createElement("form", { onSubmit: function (e) {
|
|
93
|
+
e.preventDefault();
|
|
94
|
+
if (range) {
|
|
95
|
+
onSubmit(range, hasHeaders);
|
|
96
|
+
}
|
|
97
|
+
}, className: "m-0 p-0" },
|
|
98
|
+
React.createElement(Stack, { direction: "vertical", className: "pb-2 gap-2" },
|
|
99
|
+
React.createElement(FormulaInput, { onChange: function (value) {
|
|
100
|
+
// An unparsable range disables OK until the text reads as a range again.
|
|
101
|
+
setRange(undefined);
|
|
102
|
+
formulaInput.onChange(value, function (parsed) {
|
|
103
|
+
setRange(parsed);
|
|
104
|
+
});
|
|
105
|
+
}, value: formulaInput.value, required: true }),
|
|
106
|
+
React.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
|
|
107
|
+
React.createElement("input", { type: "checkbox", id: "rnc-table-has-headers-element", checked: hasHeaders, name: "hasHeaders", onChange: function (e) { return setHasHeaders(e.target.checked); } }),
|
|
108
|
+
"My table has headers")),
|
|
109
|
+
React.createElement("div", { className: "flex gap-1 pt-2" },
|
|
110
|
+
React.createElement(Button, { type: "submit", variant: "primary", size: "xs", disabled: !range }, "OK"),
|
|
111
|
+
React.createElement(Button, { size: "xs", onClick: onCancel, type: "button" }, "Cancel"))));
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Excel's rule for a resized table: the header row stays where it is and the new range must
|
|
115
|
+
* overlap the original one. Overlaps with other tables or merged cells are refused by the engines
|
|
116
|
+
* themselves (`onResizeTable`).
|
|
117
|
+
*/
|
|
118
|
+
export var RESIZE_TABLE_RANGE_ERROR = "The header row must remain in the same row, and the resulting table range must overlap the original table range.";
|
|
119
|
+
export var getResizeTableRangeError = function (table, range) {
|
|
120
|
+
var overlapsColumns = range.startColumnIndex <= table.range.endColumnIndex &&
|
|
121
|
+
range.endColumnIndex >= table.range.startColumnIndex;
|
|
122
|
+
return range.startRowIndex === table.range.startRowIndex && overlapsColumns
|
|
123
|
+
? undefined
|
|
124
|
+
: RESIZE_TABLE_RANGE_ERROR;
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Excel's "Resize Table" dialog: the table's range, editable, submitted through
|
|
128
|
+
* `onResizeTable` once it keeps the header row and overlaps the original range.
|
|
129
|
+
*/
|
|
130
|
+
export var ResizeTableEditor = function (_a) {
|
|
131
|
+
var onResizeTable = _a.onResizeTable;
|
|
132
|
+
var _b = __read(useResizeTableDialogState(), 2), isOpen = _b[0], onOpenChange = _b[1];
|
|
133
|
+
var table = useResizingTable();
|
|
134
|
+
var setFormulaMode = useSetFormulaMode();
|
|
135
|
+
var setFormulaSelections = useSetFormulaSelections();
|
|
136
|
+
var focusSheet = useFocusSheet();
|
|
137
|
+
var closeDialog = useCallback(function () {
|
|
138
|
+
setFormulaMode(false);
|
|
139
|
+
setFormulaSelections([]);
|
|
140
|
+
onOpenChange(false);
|
|
141
|
+
}, [setFormulaMode, setFormulaSelections, onOpenChange]);
|
|
142
|
+
var handleSubmit = useCallback(function (range) {
|
|
143
|
+
if (!table) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
onResizeTable(table.sheetId, table, range);
|
|
147
|
+
closeDialog();
|
|
148
|
+
}, [table, onResizeTable, closeDialog]);
|
|
149
|
+
return (React.createElement(Dialog, { modal: false, open: isOpen },
|
|
150
|
+
React.createElement(DialogContent, { onEscapeKeyDown: closeDialog, onCloseAutoFocus: function (e) {
|
|
151
|
+
e.preventDefault();
|
|
152
|
+
focusSheet === null || focusSheet === void 0 ? void 0 : focusSheet();
|
|
153
|
+
} },
|
|
154
|
+
React.createElement(DialogTitle, { className: "rnc-drag-handle cursor-move" }, "Resize Table"),
|
|
155
|
+
React.createElement(DialogDescription, null, "Select the new data range for your table:"),
|
|
156
|
+
React.createElement(DialogBody, null, table && isOpen ? (React.createElement(ResizeTableForm
|
|
157
|
+
// A fresh form per table: its field is seeded from the table once.
|
|
158
|
+
, {
|
|
159
|
+
// A fresh form per table: its field is seeded from the table once.
|
|
160
|
+
key: "".concat(table.sheetId, ":").concat(table.id, ":").concat(table.range.startRowIndex, ":").concat(table.range.startColumnIndex, ":").concat(table.range.endRowIndex, ":").concat(table.range.endColumnIndex), table: table, onSubmit: handleSubmit, onCancel: closeDialog })) : null),
|
|
161
|
+
React.createElement(DialogCloseButton, { onClick: closeDialog },
|
|
162
|
+
React.createElement(Cross2Icon, null)))));
|
|
163
|
+
};
|
|
164
|
+
var ResizeTableForm = function (_a) {
|
|
165
|
+
var table = _a.table, onSubmit = _a.onSubmit, onCancel = _a.onCancel;
|
|
166
|
+
var _b = __read(useState(table.range), 2), range = _b[0], setRange = _b[1];
|
|
167
|
+
var _c = __read(useState(), 2), error = _c[0], setError = _c[1];
|
|
168
|
+
var formulaInput = useFormulaInputState(table.sheetId, __assign(__assign({}, table.range), { sheetId: table.sheetId }));
|
|
169
|
+
return (React.createElement("form", { onSubmit: function (e) {
|
|
170
|
+
e.preventDefault();
|
|
171
|
+
if (!range) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
var rangeError = getResizeTableRangeError(table, range);
|
|
175
|
+
setError(rangeError);
|
|
176
|
+
if (!rangeError) {
|
|
177
|
+
onSubmit(range);
|
|
178
|
+
}
|
|
179
|
+
}, className: "m-0 p-0" },
|
|
180
|
+
React.createElement(Stack, { direction: "vertical", className: "pb-2 gap-2" },
|
|
181
|
+
React.createElement(FormulaInput, { onChange: function (value) {
|
|
182
|
+
// An unparsable range disables OK until the text reads as a range again.
|
|
183
|
+
setRange(undefined);
|
|
184
|
+
setError(undefined);
|
|
185
|
+
formulaInput.onChange(value, function (parsed) {
|
|
186
|
+
setRange(parsed);
|
|
187
|
+
});
|
|
188
|
+
}, value: formulaInput.value, required: true }),
|
|
189
|
+
React.createElement("p", { className: "font-system text-xs text-rnc-muted-foreground m-0" }, "Note: The headers must remain in the same row, and the resulting table range must overlap the original table range."),
|
|
190
|
+
error ? (React.createElement("p", { role: "alert", className: "font-system text-xs text-rnc-destructive m-0" }, error)) : null),
|
|
191
|
+
React.createElement("div", { className: "flex gap-1 pt-2" },
|
|
192
|
+
React.createElement(Button, { type: "submit", variant: "primary", size: "xs", disabled: !range }, "OK"),
|
|
193
|
+
React.createElement(Button, { size: "xs", onClick: onCancel, type: "button" }, "Cancel"))));
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Excel's "Insert Slicers" dialog: the table's columns as checkboxes; OK creates one table-bound
|
|
197
|
+
* slicer per checked column (`buildTableSlicers`), placed right of the table.
|
|
198
|
+
*/
|
|
199
|
+
export var InsertSlicerEditor = function (_a) {
|
|
200
|
+
var onCreateSlicer = _a.onCreateSlicer;
|
|
201
|
+
var _b = __read(useInsertSlicerDialogState(), 2), isOpen = _b[0], onOpenChange = _b[1];
|
|
202
|
+
var table = useInsertingSlicer();
|
|
203
|
+
var focusSheet = useFocusSheet();
|
|
204
|
+
var closeDialog = useCallback(function () { return onOpenChange(false); }, [onOpenChange]);
|
|
205
|
+
var handleSubmit = useCallback(function (columnIndexes) {
|
|
206
|
+
var e_1, _a;
|
|
207
|
+
if (!table) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
try {
|
|
211
|
+
for (var _b = __values(buildTableSlicers(table, columnIndexes)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
212
|
+
var slicer = _c.value;
|
|
213
|
+
onCreateSlicer(slicer);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
217
|
+
finally {
|
|
218
|
+
try {
|
|
219
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
220
|
+
}
|
|
221
|
+
finally { if (e_1) throw e_1.error; }
|
|
222
|
+
}
|
|
223
|
+
closeDialog();
|
|
224
|
+
}, [table, onCreateSlicer, closeDialog]);
|
|
225
|
+
return (React.createElement(Dialog, { modal: false, open: isOpen },
|
|
226
|
+
React.createElement(DialogContent, { onEscapeKeyDown: closeDialog, onCloseAutoFocus: function (e) {
|
|
227
|
+
e.preventDefault();
|
|
228
|
+
focusSheet === null || focusSheet === void 0 ? void 0 : focusSheet();
|
|
229
|
+
} },
|
|
230
|
+
React.createElement(DialogTitle, { className: "rnc-drag-handle cursor-move" }, "Insert Slicers"),
|
|
231
|
+
React.createElement(DialogDescription, null, "Choose the columns to filter the table by:"),
|
|
232
|
+
React.createElement(DialogBody, null, table && isOpen ? (React.createElement(InsertSlicerForm
|
|
233
|
+
// A fresh form per table: its checkboxes are seeded from the table once.
|
|
234
|
+
, {
|
|
235
|
+
// A fresh form per table: its checkboxes are seeded from the table once.
|
|
236
|
+
key: "".concat(table.sheetId, ":").concat(table.id), table: table, onSubmit: handleSubmit, onCancel: closeDialog })) : null),
|
|
237
|
+
React.createElement(DialogCloseButton, { onClick: closeDialog },
|
|
38
238
|
React.createElement(Cross2Icon, null)))));
|
|
39
239
|
};
|
|
240
|
+
var InsertSlicerForm = function (_a) {
|
|
241
|
+
var table = _a.table, onSubmit = _a.onSubmit, onCancel = _a.onCancel;
|
|
242
|
+
var names = useMemo(function () { return getTableSlicerColumnNames(table); }, [table]);
|
|
243
|
+
var _b = __read(useState([]), 2), checked = _b[0], setChecked = _b[1];
|
|
244
|
+
return (React.createElement("form", { onSubmit: function (e) {
|
|
245
|
+
e.preventDefault();
|
|
246
|
+
if (checked.length) {
|
|
247
|
+
onSubmit(__spreadArray([], __read(checked), false).sort(function (a, b) { return a - b; }));
|
|
248
|
+
}
|
|
249
|
+
}, className: "m-0 p-0" },
|
|
250
|
+
React.createElement(Stack, { direction: "vertical", className: "pb-2 gap-1" }, names.map(function (name, index) { return (React.createElement("label", { key: index, className: "font-system text-sm flex items-center gap-1" },
|
|
251
|
+
React.createElement("input", { type: "checkbox", name: "slicerColumn", value: index, checked: checked.includes(index), onChange: function (e) {
|
|
252
|
+
return setChecked(function (prev) {
|
|
253
|
+
return e.target.checked
|
|
254
|
+
? __spreadArray(__spreadArray([], __read(prev), false), [index], false) : prev.filter(function (i) { return i !== index; });
|
|
255
|
+
});
|
|
256
|
+
} }),
|
|
257
|
+
name)); })),
|
|
258
|
+
React.createElement("div", { className: "flex gap-1 pt-2" },
|
|
259
|
+
React.createElement(Button, { type: "submit", variant: "primary", size: "xs", disabled: !checked.length }, "OK"),
|
|
260
|
+
React.createElement(Button, { size: "xs", onClick: onCancel, type: "button" }, "Cancel"))));
|
|
261
|
+
};
|
|
40
262
|
var TableEditorForm = function (_a) {
|
|
41
|
-
var table = _a.table, sheetId = _a.sheetId, theme = _a.theme, onSubmit = _a.onSubmit, onCancel = _a.onCancel, onRemoveTable = _a.onRemoveTable;
|
|
263
|
+
var table = _a.table, tables = _a.tables, namedRanges = _a.namedRanges, sheetId = _a.sheetId, theme = _a.theme, onSubmit = _a.onSubmit, onCancel = _a.onCancel, onRemoveTable = _a.onRemoveTable;
|
|
264
|
+
var validationSchema = useMemo(function () {
|
|
265
|
+
var _a, _b;
|
|
266
|
+
return createTableSchema((_a = tables === null || tables === void 0 ? void 0 : tables.filter(function (t) { return t.id !== table.id; }).map(function (t) { return t.title; })) !== null && _a !== void 0 ? _a : [], (_b = namedRanges === null || namedRanges === void 0 ? void 0 : namedRanges.map(function (namedRange) { return namedRange.name; })) !== null && _b !== void 0 ? _b : []);
|
|
267
|
+
}, [tables, namedRanges, table.id]);
|
|
42
268
|
var _b = useFormik({
|
|
43
269
|
initialValues: table,
|
|
44
270
|
enableReinitialize: true,
|
|
45
|
-
validationSchema:
|
|
271
|
+
validationSchema: validationSchema,
|
|
46
272
|
onSubmit: function (values) {
|
|
47
273
|
var _a;
|
|
48
274
|
var tableTheme = (_a = values.theme) !== null && _a !== void 0 ? _a : "TableStyleLight1";
|
|
@@ -61,7 +287,7 @@ var TableEditorForm = function (_a) {
|
|
|
61
287
|
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(sheetId, newTable.id, newTable);
|
|
62
288
|
}
|
|
63
289
|
},
|
|
64
|
-
}), _c = _b.values, title = _c.title, _d = _c.showRowStripes, showRowStripes = _d === void 0 ? true : _d, _e = _c.showColumnStripes, showColumnStripes = _e === void 0 ? false : _e, _f = _c.filterButton, filterButton =
|
|
290
|
+
}), _c = _b.values, title = _c.title, _d = _c.showRowStripes, showRowStripes = _d === void 0 ? true : _d, _e = _c.showColumnStripes, showColumnStripes = _e === void 0 ? false : _e, _f = _c.showFirstColumn, showFirstColumn = _f === void 0 ? false : _f, _g = _c.showLastColumn, showLastColumn = _g === void 0 ? false : _g, _h = _c.filterButton, filterButton = _h === void 0 ? true : _h, range = _c.range, _j = _c.headerRow, headerRow = _j === void 0 ? true : _j, _k = _c.totalRow, totalRow = _k === void 0 ? false : _k, errors = _b.errors, handleChange = _b.handleChange, handleSubmit = _b.handleSubmit, setFieldValue = _b.setFieldValue, resetForm = _b.resetForm;
|
|
65
291
|
// Formula input helper
|
|
66
292
|
var formulaInput = useFormulaInputState(sheetId, __assign(__assign({}, range), { sheetId: sheetId }));
|
|
67
293
|
return (React.createElement("form", { onSubmit: handleSubmit, className: "m-0 p-0" },
|
|
@@ -77,6 +303,16 @@ var TableEditorForm = function (_a) {
|
|
|
77
303
|
});
|
|
78
304
|
}, value: formulaInput.value, required: true })),
|
|
79
305
|
React.createElement(Stack, { direction: "horizontal", className: "grid grid-cols-2 gap-2" },
|
|
306
|
+
React.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
|
|
307
|
+
React.createElement("input", { type: "checkbox", id: "rnc-header-row-element", checked: headerRow !== null && headerRow !== void 0 ? headerRow : true, name: "headerRow", onChange: function (e) {
|
|
308
|
+
setFieldValue("headerRow", e.target.checked);
|
|
309
|
+
} }),
|
|
310
|
+
"Header row"),
|
|
311
|
+
React.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
|
|
312
|
+
React.createElement("input", { type: "checkbox", id: "rnc-total-row-element", checked: totalRow !== null && totalRow !== void 0 ? totalRow : false, name: "totalRow", onChange: function (e) {
|
|
313
|
+
setFieldValue("totalRow", e.target.checked);
|
|
314
|
+
} }),
|
|
315
|
+
"Show total row"),
|
|
80
316
|
React.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
|
|
81
317
|
React.createElement("input", { type: "checkbox", checked: showRowStripes !== null && showRowStripes !== void 0 ? showRowStripes : undefined, name: "showRowStripes", onChange: function (e) {
|
|
82
318
|
setFieldValue("showRowStripes", e.target.checked);
|
|
@@ -88,15 +324,20 @@ var TableEditorForm = function (_a) {
|
|
|
88
324
|
} }),
|
|
89
325
|
"Banded columns"),
|
|
90
326
|
React.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
|
|
91
|
-
React.createElement("input", { type: "checkbox", id: "rnc-
|
|
92
|
-
setFieldValue("
|
|
327
|
+
React.createElement("input", { type: "checkbox", id: "rnc-first-column-element", checked: showFirstColumn !== null && showFirstColumn !== void 0 ? showFirstColumn : false, name: "showFirstColumn", onChange: function (e) {
|
|
328
|
+
setFieldValue("showFirstColumn", e.target.checked);
|
|
93
329
|
} }),
|
|
94
|
-
"
|
|
330
|
+
"First column"),
|
|
95
331
|
React.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
|
|
96
|
-
React.createElement("input", { type: "checkbox", id: "rnc-
|
|
97
|
-
setFieldValue("
|
|
332
|
+
React.createElement("input", { type: "checkbox", id: "rnc-last-column-element", checked: showLastColumn !== null && showLastColumn !== void 0 ? showLastColumn : false, name: "showLastColumn", onChange: function (e) {
|
|
333
|
+
setFieldValue("showLastColumn", e.target.checked);
|
|
334
|
+
} }),
|
|
335
|
+
"Last column"),
|
|
336
|
+
React.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
|
|
337
|
+
React.createElement("input", { type: "checkbox", id: "rnc-filter-button-element", checked: filterButton !== null && filterButton !== void 0 ? filterButton : undefined, name: "filterButton", disabled: headerRow === false, onChange: function (e) {
|
|
338
|
+
setFieldValue("filterButton", e.target.checked);
|
|
98
339
|
} }),
|
|
99
|
-
"Show
|
|
340
|
+
"Show filter button"))),
|
|
100
341
|
React.createElement("div", { className: "flex gap-1 pt-2" },
|
|
101
342
|
React.createElement(Button, { type: "submit", variant: "primary", size: "xs" }, "Save"),
|
|
102
343
|
React.createElement(Button, { size: "xs", onClick: function () {
|
|
@@ -10,4 +10,5 @@ export * from "./editors/insert-image-editor";
|
|
|
10
10
|
export * from "./editors/insert-link-editor";
|
|
11
11
|
export * from "./editors/data-validation-editor";
|
|
12
12
|
export * from "./editors/embed-editor";
|
|
13
|
+
export * from "./editors/slicer-editor";
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/index.tsx"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/index.tsx"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
|
package/dist/cjs/constants.d.ts
CHANGED
|
@@ -13,8 +13,16 @@ export declare const MERGED_CELL_REFUSAL_MESSAGE = "We can't do that to a merged
|
|
|
13
13
|
export declare const TABLE_SHIFT_REFUSAL_MESSAGE = "This won't work because it would move cells in a table on your worksheet.";
|
|
14
14
|
/** ANC-14 — the shifted band covers only part of a CSE / dynamic array. */
|
|
15
15
|
export declare const ARRAY_REFUSAL_MESSAGE = "You can't change part of an array.";
|
|
16
|
+
/** T-42 — a merge whose region touches a table (Excel refuses every merge inside a table). */
|
|
17
|
+
export declare const TABLE_MERGE_REFUSAL_MESSAGE = "This operation is not allowed. The operation is attempting to shift cells in a table on your worksheet.";
|
|
18
|
+
/** T-17 — a table resize whose new range would overlap another table on the sheet. */
|
|
19
|
+
export declare const TABLE_OVERLAP_REFUSAL_MESSAGE = "A table cannot overlap another table.";
|
|
20
|
+
/** T-17 — a table resize whose new range would cover a merged cell. */
|
|
21
|
+
export declare const TABLE_MERGED_CELLS_REFUSAL_MESSAGE = "A table cannot overlap a range that contains a PivotTable report, query results, protected cells or merged cells.";
|
|
22
|
+
/** T-81 — a fill whose target reaches a table's totals row (Excel's fill handle never extends over it). */
|
|
23
|
+
export declare const TABLE_TOTALS_FILL_REFUSAL_MESSAGE = "This won't work because it would overwrite the totals row of a table on your worksheet.";
|
|
16
24
|
/** Machine-readable refusal codes — the rnc engine's `CommitResult.rejected.code` uses the same set. */
|
|
17
|
-
export type StructuralRefusalCode = "off-sheet-push" | "torn-merge" | "torn-table" | "torn-array";
|
|
25
|
+
export type StructuralRefusalCode = "off-sheet-push" | "torn-merge" | "torn-table" | "torn-array" | "table-merge" | "table-overlap" | "table-merged-cells" | "table-totals-fill";
|
|
18
26
|
export type StructuralRefusal = {
|
|
19
27
|
code: StructuralRefusalCode;
|
|
20
28
|
title: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,oBAAoB,CAAC;AAE1D,2GAA2G;AAC3G,eAAO,MAAM,sBAAsB,ySACqQ,CAAC;AAEzS,4EAA4E;AAC5E,eAAO,MAAM,2BAA2B,uCAAuC,CAAC;AAEhF,0DAA0D;AAC1D,eAAO,MAAM,2BAA2B,8EACqC,CAAC;AAE9E,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,uCAAuC,CAAC;AAE1E,wGAAwG;AACxG,MAAM,MAAM,qBAAqB,GAC7B,gBAAgB,GAChB,YAAY,GACZ,YAAY,GACZ,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,oBAAoB,CAAC;AAE1D,2GAA2G;AAC3G,eAAO,MAAM,sBAAsB,ySACqQ,CAAC;AAEzS,4EAA4E;AAC5E,eAAO,MAAM,2BAA2B,uCAAuC,CAAC;AAEhF,0DAA0D;AAC1D,eAAO,MAAM,2BAA2B,8EACqC,CAAC;AAE9E,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,uCAAuC,CAAC;AAE1E,8FAA8F;AAC9F,eAAO,MAAM,2BAA2B,4GACmE,CAAC;AAE5G,sFAAsF;AACtF,eAAO,MAAM,6BAA6B,0CACD,CAAC;AAE1C,uEAAuE;AACvE,eAAO,MAAM,kCAAkC,sHACsE,CAAC;AAEtH,2GAA2G;AAC3G,eAAO,MAAM,iCAAiC,4FAC6C,CAAC;AAE5F,wGAAwG;AACxG,MAAM,MAAM,qBAAqB,GAC7B,gBAAgB,GAChB,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,eAAe,GACf,oBAAoB,GACpB,mBAAmB,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAS7E,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,MAAM,qBAAqB,KAC1B,iBAID,CAAC"}
|
package/dist/cjs/constants.js
CHANGED
|
@@ -13,11 +13,23 @@ export var MERGED_CELL_REFUSAL_MESSAGE = "We can't do that to a merged cell.";
|
|
|
13
13
|
export var TABLE_SHIFT_REFUSAL_MESSAGE = "This won't work because it would move cells in a table on your worksheet.";
|
|
14
14
|
/** ANC-14 — the shifted band covers only part of a CSE / dynamic array. */
|
|
15
15
|
export var ARRAY_REFUSAL_MESSAGE = "You can't change part of an array.";
|
|
16
|
+
/** T-42 — a merge whose region touches a table (Excel refuses every merge inside a table). */
|
|
17
|
+
export var TABLE_MERGE_REFUSAL_MESSAGE = "This operation is not allowed. The operation is attempting to shift cells in a table on your worksheet.";
|
|
18
|
+
/** T-17 — a table resize whose new range would overlap another table on the sheet. */
|
|
19
|
+
export var TABLE_OVERLAP_REFUSAL_MESSAGE = "A table cannot overlap another table.";
|
|
20
|
+
/** T-17 — a table resize whose new range would cover a merged cell. */
|
|
21
|
+
export var TABLE_MERGED_CELLS_REFUSAL_MESSAGE = "A table cannot overlap a range that contains a PivotTable report, query results, protected cells or merged cells.";
|
|
22
|
+
/** T-81 — a fill whose target reaches a table's totals row (Excel's fill handle never extends over it). */
|
|
23
|
+
export var TABLE_TOTALS_FILL_REFUSAL_MESSAGE = "This won't work because it would overwrite the totals row of a table on your worksheet.";
|
|
16
24
|
export var STRUCTURAL_REFUSAL_MESSAGES = {
|
|
17
25
|
"off-sheet-push": OFF_SHEET_PUSH_MESSAGE,
|
|
18
26
|
"torn-merge": MERGED_CELL_REFUSAL_MESSAGE,
|
|
19
27
|
"torn-table": TABLE_SHIFT_REFUSAL_MESSAGE,
|
|
20
28
|
"torn-array": ARRAY_REFUSAL_MESSAGE,
|
|
29
|
+
"table-merge": TABLE_MERGE_REFUSAL_MESSAGE,
|
|
30
|
+
"table-overlap": TABLE_OVERLAP_REFUSAL_MESSAGE,
|
|
31
|
+
"table-merged-cells": TABLE_MERGED_CELLS_REFUSAL_MESSAGE,
|
|
32
|
+
"table-totals-fill": TABLE_TOTALS_FILL_REFUSAL_MESSAGE,
|
|
21
33
|
};
|
|
22
34
|
export var structuralRefusal = function (code) { return ({
|
|
23
35
|
code: code,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Formatters for auto-generated names such as "Sheet1", "
|
|
2
|
+
* Formatters for auto-generated names such as "Sheet1", "Table1",
|
|
3
3
|
* "Column1" and "Copy of Sheet1".
|
|
4
4
|
*
|
|
5
5
|
* Pass `generatedNames` to `useSpreadsheetState` to customize or
|
|
@@ -31,11 +31,19 @@ export interface GeneratedNames {
|
|
|
31
31
|
*/
|
|
32
32
|
sheetCopy?: (title: string) => string | undefined;
|
|
33
33
|
/**
|
|
34
|
-
* Title for a
|
|
34
|
+
* Title for a chartsheet created by "Move Chart → New sheet". Default:
|
|
35
|
+
* `Chart${index}` (Excel's pattern — the first unused number is picked).
|
|
36
|
+
*/
|
|
37
|
+
chartSheet?: (index: number) => string | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Title for a newly created table. Default: `Table${index}` (Excel's
|
|
40
|
+
* pattern — no space; the first unused number is picked).
|
|
35
41
|
*/
|
|
36
42
|
table?: (index: number) => string | undefined;
|
|
37
43
|
/**
|
|
38
|
-
*
|
|
44
|
+
* @deprecated No longer applied: a pasted table is named like a new one
|
|
45
|
+
* (the next free `Table${index}`, via `table`), as in Excel — `Copy of
|
|
46
|
+
* ${title}` is not a valid table name.
|
|
39
47
|
*/
|
|
40
48
|
tableCopy?: (title: string) => string | undefined;
|
|
41
49
|
/**
|
|
@@ -45,7 +53,9 @@ export interface GeneratedNames {
|
|
|
45
53
|
}
|
|
46
54
|
export declare const getGeneratedSheetName: (index: number, generatedNames?: GeneratedNames) => string;
|
|
47
55
|
export declare const getGeneratedSheetCopyName: (title: string, generatedNames?: GeneratedNames) => string;
|
|
56
|
+
export declare const getGeneratedChartSheetName: (index: number, generatedNames?: GeneratedNames) => string;
|
|
48
57
|
export declare const getGeneratedTableName: (index: number, generatedNames?: GeneratedNames) => string;
|
|
58
|
+
/** @deprecated See `GeneratedNames.tableCopy`. */
|
|
49
59
|
export declare const getGeneratedTableCopyName: (title: string, generatedNames?: GeneratedNames) => string;
|
|
50
60
|
export declare const getGeneratedTableColumnName: (index: number, generatedNames?: GeneratedNames) => string;
|
|
51
61
|
//# sourceMappingURL=generated-names.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generated-names.d.ts","sourceRoot":"","sources":["../../generated-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC9C;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAClD
|
|
1
|
+
{"version":3,"file":"generated-names.d.ts","sourceRoot":"","sources":["../../generated-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC9C;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAClD;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACnD;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC9C;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAClD;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACrD;AAED,eAAO,MAAM,qBAAqB,GAChC,OAAO,MAAM,EACb,iBAAiB,cAAc,KAC9B,MAA2D,CAAC;AAE/D,eAAO,MAAM,yBAAyB,GACpC,OAAO,MAAM,EACb,iBAAiB,cAAc,KAC9B,MAAkE,CAAC;AAEtE,eAAO,MAAM,0BAA0B,GACrC,OAAO,MAAM,EACb,iBAAiB,cAAc,KAC9B,MAAgE,CAAC;AAEpE,eAAO,MAAM,qBAAqB,GAChC,OAAO,MAAM,EACb,iBAAiB,cAAc,KAC9B,MAA2D,CAAC;AAE/D,kDAAkD;AAClD,eAAO,MAAM,yBAAyB,GACpC,OAAO,MAAM,EACb,iBAAiB,cAAc,KAC9B,MAAkE,CAAC;AAEtE,eAAO,MAAM,2BAA2B,GACtC,OAAO,MAAM,EACb,iBAAiB,cAAc,KAC9B,MAAkE,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export var getGeneratedSheetName = function (index, generatedNames) { var _a, _b; return (_b = (_a = generatedNames === null || generatedNames === void 0 ? void 0 : generatedNames.sheet) === null || _a === void 0 ? void 0 : _a.call(generatedNames, index)) !== null && _b !== void 0 ? _b : "Sheet".concat(index); };
|
|
2
2
|
export var getGeneratedSheetCopyName = function (title, generatedNames) { var _a, _b; return (_b = (_a = generatedNames === null || generatedNames === void 0 ? void 0 : generatedNames.sheetCopy) === null || _a === void 0 ? void 0 : _a.call(generatedNames, title)) !== null && _b !== void 0 ? _b : "Copy of ".concat(title); };
|
|
3
|
-
export var
|
|
3
|
+
export var getGeneratedChartSheetName = function (index, generatedNames) { var _a, _b; return (_b = (_a = generatedNames === null || generatedNames === void 0 ? void 0 : generatedNames.chartSheet) === null || _a === void 0 ? void 0 : _a.call(generatedNames, index)) !== null && _b !== void 0 ? _b : "Chart".concat(index); };
|
|
4
|
+
export var getGeneratedTableName = function (index, generatedNames) { var _a, _b; return (_b = (_a = generatedNames === null || generatedNames === void 0 ? void 0 : generatedNames.table) === null || _a === void 0 ? void 0 : _a.call(generatedNames, index)) !== null && _b !== void 0 ? _b : "Table".concat(index); };
|
|
5
|
+
/** @deprecated See `GeneratedNames.tableCopy`. */
|
|
4
6
|
export var getGeneratedTableCopyName = function (title, generatedNames) { var _a, _b; return (_b = (_a = generatedNames === null || generatedNames === void 0 ? void 0 : generatedNames.tableCopy) === null || _a === void 0 ? void 0 : _a.call(generatedNames, title)) !== null && _b !== void 0 ? _b : "Copy of ".concat(title); };
|
|
5
7
|
export var getGeneratedTableColumnName = function (index, generatedNames) { var _a, _b; return (_b = (_a = generatedNames === null || generatedNames === void 0 ? void 0 : generatedNames.tableColumn) === null || _a === void 0 ? void 0 : _a.call(generatedNames, index)) !== null && _b !== void 0 ? _b : "Column".concat(index); };
|
package/dist/cjs/helpers.d.ts
CHANGED
|
@@ -28,6 +28,11 @@ export declare function combineMapIterators<K, V>(...mapIterators: IterableItera
|
|
|
28
28
|
* @returns
|
|
29
29
|
*/
|
|
30
30
|
export declare function combineMapIteratorsWithFormatting<K, V, F>(...mapIterators: IterableIterator<[K, V, formatting?: F]>[]): IterableIterator<[K, V, formatting?: F]>;
|
|
31
|
+
/**
|
|
32
|
+
* Default title for a new table — `Table1`, `Table2`, … with the lowest
|
|
33
|
+
* number no existing table uses (case-insensitive), like Excel.
|
|
34
|
+
*/
|
|
35
|
+
export declare const getNextTableTitle: (tables?: Pick<TableView, "title">[] | null, generatedNames?: GeneratedNames) => string;
|
|
31
36
|
/**
|
|
32
37
|
* Get unique table column name
|
|
33
38
|
* @param columns
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAI7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAQxD;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,QAAQ,EACvD,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,EACnE,gBAAwB,KACvB,OAAO,CAAC,CAAC,CAAC,EAeZ,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,UAAU,GAAG,SAAS,KAC7B,MAAM,IAAI,SAEZ,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EACtC,GAAG,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAC1C,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAkB1B;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACvD,GAAG,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAC1D,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAkB1C;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAC1C,iBAAiB,cAAc,WAK9B,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,EAAE,GAAG,IAAI,EACzB,iBAAiB,cAAc,WAYhC,CAAC;AAIF,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,SAAS,EAAE,GAAG,SAAS,EAC/B,aAAa,SAAS,0BAsBvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,WA6BxD,CAAC;AAEF,eAAO,MAAM,oBAAoB,WAAW,CAAC"}
|
package/dist/cjs/helpers.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getNextTableName } from "@rowsncolumns/utils";
|
|
2
|
+
import { getGeneratedTableColumnName, getGeneratedTableName, } from "./generated-names";
|
|
2
3
|
import { defaultCellCoords, defaultSheetId, SheetCell } from "./sheet-cell";
|
|
3
4
|
/**
|
|
4
5
|
* Convert
|
|
@@ -88,6 +89,14 @@ export function combineMapIteratorsWithFormatting() {
|
|
|
88
89
|
},
|
|
89
90
|
_a;
|
|
90
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Default title for a new table — `Table1`, `Table2`, … with the lowest
|
|
94
|
+
* number no existing table uses (case-insensitive), like Excel.
|
|
95
|
+
*/
|
|
96
|
+
export var getNextTableTitle = function (tables, generatedNames) {
|
|
97
|
+
var _a;
|
|
98
|
+
return getNextTableName((_a = tables === null || tables === void 0 ? void 0 : tables.map(function (table) { return table.title; })) !== null && _a !== void 0 ? _a : [], function (index) { return getGeneratedTableName(index, generatedNames); });
|
|
99
|
+
};
|
|
91
100
|
/**
|
|
92
101
|
* Get unique table column name
|
|
93
102
|
* @param columns
|