@rowsncolumns/spreadsheet 10.3.0 → 10.4.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/banded-ranges.d.ts.map +1 -1
- package/dist/cjs/api/banded-ranges.js +40 -14
- package/dist/cjs/api/calculated-column-fill.d.ts +43 -0
- package/dist/cjs/api/calculated-column-fill.d.ts.map +1 -0
- package/dist/cjs/api/calculated-column-fill.js +16 -0
- package/dist/cjs/api/chart-sheet.d.ts +8 -0
- package/dist/cjs/api/chart-sheet.d.ts.map +1 -0
- package/dist/cjs/api/chart-sheet.js +20 -0
- package/dist/cjs/api/chart-source-ranges.d.ts +64 -0
- package/dist/cjs/api/chart-source-ranges.d.ts.map +1 -0
- package/dist/cjs/api/chart-source-ranges.js +175 -0
- package/dist/cjs/api/selections.d.ts +3 -3
- package/dist/cjs/api/selections.d.ts.map +1 -1
- package/dist/cjs/api/selections.js +28 -2
- package/dist/cjs/api/spreadsheet-api.d.ts +16 -3
- package/dist/cjs/api/spreadsheet-api.d.ts.map +1 -1
- package/dist/cjs/api/spreadsheet-api.js +22 -2
- package/dist/cjs/api/table-auto-expansion.d.ts +37 -0
- package/dist/cjs/api/table-auto-expansion.d.ts.map +1 -0
- package/dist/cjs/api/table-auto-expansion.js +16 -0
- package/dist/cjs/api/table.d.ts +49 -1
- package/dist/cjs/api/table.d.ts.map +1 -1
- package/dist/cjs/api/table.js +145 -1
- package/dist/cjs/api/validation.d.ts +26 -1
- package/dist/cjs/api/validation.d.ts.map +1 -1
- package/dist/cjs/api/validation.js +127 -9
- package/dist/cjs/atoms/calculated-column-fill.atom.d.ts +15 -0
- package/dist/cjs/atoms/calculated-column-fill.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/calculated-column-fill.atom.js +18 -0
- package/dist/cjs/atoms/chart-actions.atom.d.ts +40 -0
- package/dist/cjs/atoms/chart-actions.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/chart-actions.atom.js +66 -0
- package/dist/cjs/atoms/index.d.ts +5 -0
- package/dist/cjs/atoms/index.d.ts.map +1 -1
- package/dist/cjs/atoms/index.js +5 -0
- package/dist/cjs/atoms/move-chart-dialog.atom.d.ts +28 -0
- package/dist/cjs/atoms/move-chart-dialog.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/move-chart-dialog.atom.js +34 -0
- package/dist/cjs/atoms/selected-chart-embed.atom.d.ts +9 -1
- package/dist/cjs/atoms/selected-chart-embed.atom.d.ts.map +1 -1
- package/dist/cjs/atoms/selected-chart-embed.atom.js +18 -1
- package/dist/cjs/atoms/selected-chart-series.atom.d.ts +24 -0
- package/dist/cjs/atoms/selected-chart-series.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/selected-chart-series.atom.js +11 -0
- package/dist/cjs/atoms/sheet-context.atom.d.ts +2 -0
- package/dist/cjs/atoms/sheet-context.atom.d.ts.map +1 -1
- package/dist/cjs/atoms/sheet-context.atom.js +5 -2
- package/dist/cjs/atoms/sparkline-dialog.atom.d.ts +34 -0
- package/dist/cjs/atoms/sparkline-dialog.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/sparkline-dialog.atom.js +30 -0
- package/dist/cjs/atoms/table-auto-expansion.atom.d.ts +14 -0
- package/dist/cjs/atoms/table-auto-expansion.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/table-auto-expansion.atom.js +17 -0
- package/dist/cjs/components/calculated-column-smart-tag/index.d.ts +25 -0
- package/dist/cjs/components/calculated-column-smart-tag/index.d.ts.map +1 -0
- package/dist/cjs/components/calculated-column-smart-tag/index.js +31 -0
- package/dist/cjs/components/canvas-grid/index.d.ts.map +1 -1
- package/dist/cjs/components/canvas-grid/index.js +407 -77
- package/dist/cjs/components/canvas-grid/typings.d.ts +127 -14
- package/dist/cjs/components/canvas-grid/typings.d.ts.map +1 -1
- package/dist/cjs/components/cell/index.d.ts.map +1 -1
- package/dist/cjs/components/cell/index.js +3 -3
- package/dist/cjs/components/cell/typings.d.ts +13 -0
- package/dist/cjs/components/cell/typings.d.ts.map +1 -1
- package/dist/cjs/components/cell-filter/index.d.ts.map +1 -1
- package/dist/cjs/components/cell-filter/index.js +13 -2
- package/dist/cjs/components/cell-input/formula-bar-cell-input.d.ts.map +1 -1
- package/dist/cjs/components/cell-input/formula-bar-cell-input.js +4 -1
- package/dist/cjs/components/cell-structured/sparkline-math.d.ts +28 -5
- package/dist/cjs/components/cell-structured/sparkline-math.d.ts.map +1 -1
- package/dist/cjs/components/cell-structured/sparkline-math.js +93 -5
- package/dist/cjs/components/cell-structured/sparkline.d.ts +1 -1
- package/dist/cjs/components/cell-structured/sparkline.d.ts.map +1 -1
- package/dist/cjs/components/cell-structured/sparkline.js +3 -3
- package/dist/cjs/components/cell-structured/types.d.ts +1 -1
- package/dist/cjs/components/cell-structured/types.d.ts.map +1 -1
- package/dist/cjs/components/chart-sheet-view/index.d.ts +27 -0
- package/dist/cjs/components/chart-sheet-view/index.d.ts.map +1 -0
- package/dist/cjs/components/chart-sheet-view/index.js +35 -0
- package/dist/cjs/components/context-menu/embed-context-menu.d.ts +48 -0
- package/dist/cjs/components/context-menu/embed-context-menu.d.ts.map +1 -0
- package/dist/cjs/components/context-menu/embed-context-menu.js +123 -0
- package/dist/cjs/components/context-menu/index.d.ts +23 -2
- package/dist/cjs/components/context-menu/index.d.ts.map +1 -1
- package/dist/cjs/components/context-menu/index.js +217 -39
- package/dist/cjs/components/context-menu/total-row-function-menu.d.ts +33 -0
- package/dist/cjs/components/context-menu/total-row-function-menu.d.ts.map +1 -0
- package/dist/cjs/components/context-menu/total-row-function-menu.js +58 -0
- package/dist/cjs/components/context-menu/total-row-functions.d.ts +12 -12
- package/dist/cjs/components/context-menu/total-row-functions.d.ts.map +1 -1
- package/dist/cjs/components/context-menu/total-row-functions.js +39 -39
- package/dist/cjs/components/embeds/chart-component.d.ts +17 -0
- package/dist/cjs/components/embeds/chart-component.d.ts.map +1 -1
- package/dist/cjs/components/embeds/embed-draggable.d.ts +61 -4
- package/dist/cjs/components/embeds/embed-draggable.d.ts.map +1 -1
- package/dist/cjs/components/embeds/embed-draggable.js +218 -42
- package/dist/cjs/components/filter-box/date-tree.d.ts +28 -0
- package/dist/cjs/components/filter-box/date-tree.d.ts.map +1 -0
- package/dist/cjs/components/filter-box/date-tree.js +147 -0
- package/dist/cjs/components/filter-box/filter-by-condition.d.ts +14 -2
- package/dist/cjs/components/filter-box/filter-by-condition.d.ts.map +1 -1
- package/dist/cjs/components/filter-box/filter-by-condition.js +95 -19
- package/dist/cjs/components/filter-box/filter-by-value.d.ts.map +1 -1
- package/dist/cjs/components/filter-box/filter-by-value.js +126 -40
- package/dist/cjs/components/filter-box/index.d.ts +7 -1
- package/dist/cjs/components/filter-box/index.d.ts.map +1 -1
- package/dist/cjs/components/filter-box/index.js +102 -11
- package/dist/cjs/components/move-chart-dialog/index.d.ts +34 -0
- package/dist/cjs/components/move-chart-dialog/index.d.ts.map +1 -0
- package/dist/cjs/components/move-chart-dialog/index.js +96 -0
- package/dist/cjs/components/print-preview/page-block.d.ts +9 -1
- package/dist/cjs/components/print-preview/page-block.d.ts.map +1 -1
- package/dist/cjs/components/print-preview/page-block.js +28 -2
- package/dist/cjs/components/print-preview/print-preview-dialog.d.ts +8 -1
- package/dist/cjs/components/print-preview/print-preview-dialog.d.ts.map +1 -1
- package/dist/cjs/components/print-preview/print-preview-dialog.js +144 -3
- package/dist/cjs/components/print-preview/run-print.d.ts.map +1 -1
- package/dist/cjs/components/print-preview/run-print.js +19 -7
- package/dist/cjs/components/print-preview/use-page-layout.d.ts +47 -0
- package/dist/cjs/components/print-preview/use-page-layout.d.ts.map +1 -1
- package/dist/cjs/components/print-preview/use-page-layout.js +81 -7
- package/dist/cjs/components/resizer/index.d.ts.map +1 -1
- package/dist/cjs/components/resizer/index.js +10 -5
- package/dist/cjs/components/selection/index.d.ts +1 -1
- package/dist/cjs/components/selection/index.d.ts.map +1 -1
- package/dist/cjs/components/selection/index.js +6 -2
- package/dist/cjs/components/selection/types.d.ts +15 -0
- package/dist/cjs/components/selection/types.d.ts.map +1 -1
- package/dist/cjs/components/sheet-search/index.d.ts.map +1 -1
- package/dist/cjs/components/sheet-search/index.js +6 -2
- package/dist/cjs/components/sheet-tabs/index.d.ts.map +1 -1
- package/dist/cjs/components/sheet-tabs/index.js +2 -2
- package/dist/cjs/components/sheet-tabs/sheet-tab.d.ts +1 -1
- package/dist/cjs/components/sheet-tabs/sheet-tab.d.ts.map +1 -1
- package/dist/cjs/components/sheet-tabs/sheet-tab.js +3 -1
- package/dist/cjs/components/sparkline-dialog/index.d.ts +43 -0
- package/dist/cjs/components/sparkline-dialog/index.d.ts.map +1 -0
- package/dist/cjs/components/sparkline-dialog/index.js +127 -0
- package/dist/cjs/components/subtotal-dialog/index.d.ts.map +1 -1
- package/dist/cjs/components/subtotal-dialog/index.js +10 -1
- package/dist/cjs/components/table-auto-expansion-smart-tag/index.d.ts +24 -0
- package/dist/cjs/components/table-auto-expansion-smart-tag/index.d.ts.map +1 -0
- package/dist/cjs/components/table-auto-expansion-smart-tag/index.js +31 -0
- package/dist/cjs/components/toolbar/index.d.ts +1 -0
- package/dist/cjs/components/toolbar/index.d.ts.map +1 -1
- package/dist/cjs/components/toolbar/index.js +1 -0
- package/dist/cjs/components/toolbar/insert-menu.d.ts +2 -1
- package/dist/cjs/components/toolbar/insert-menu.d.ts.map +1 -1
- package/dist/cjs/components/toolbar/insert-menu.js +24 -1
- package/dist/cjs/components/toolbar/merge-cells-selector.d.ts +4 -1
- package/dist/cjs/components/toolbar/merge-cells-selector.d.ts.map +1 -1
- package/dist/cjs/components/toolbar/merge-cells-selector.js +11 -5
- package/dist/cjs/components/toolbar/sparkline-actions.d.ts +31 -0
- package/dist/cjs/components/toolbar/sparkline-actions.d.ts.map +1 -0
- package/dist/cjs/components/toolbar/sparkline-actions.js +273 -0
- package/dist/cjs/components/toolbar/table-actions.d.ts +9 -1
- package/dist/cjs/components/toolbar/table-actions.d.ts.map +1 -1
- package/dist/cjs/components/toolbar/table-actions.js +17 -7
- package/dist/cjs/components/toolbar/table-style-selector.d.ts +38 -2
- package/dist/cjs/components/toolbar/table-style-selector.d.ts.map +1 -1
- package/dist/cjs/components/toolbar/table-style-selector.js +241 -389
- package/dist/cjs/config.d.ts +2 -0
- package/dist/cjs/config.d.ts.map +1 -1
- package/dist/cjs/config.js +31 -1
- package/dist/cjs/helpers.d.ts +1 -1
- package/dist/cjs/helpers.d.ts.map +1 -1
- package/dist/cjs/helpers.js +13 -2
- package/dist/cjs/hooks/use-cell-renderer.d.ts +16 -1
- package/dist/cjs/hooks/use-cell-renderer.d.ts.map +1 -1
- package/dist/cjs/hooks/use-cell-renderer.js +20 -8
- package/dist/cjs/hooks/use-chart-clipboard.d.ts +55 -0
- package/dist/cjs/hooks/use-chart-clipboard.d.ts.map +1 -0
- package/dist/cjs/hooks/use-chart-clipboard.js +231 -0
- package/dist/cjs/hooks/use-chart-source-ranges.d.ts +27 -0
- package/dist/cjs/hooks/use-chart-source-ranges.d.ts.map +1 -0
- package/dist/cjs/hooks/use-chart-source-ranges.js +211 -0
- package/dist/cjs/hooks/use-context-setter.d.ts.map +1 -1
- package/dist/cjs/hooks/use-context-setter.js +3 -1
- package/dist/cjs/hooks/use-copy-paste-cut.d.ts.map +1 -1
- package/dist/cjs/hooks/use-copy-paste-cut.js +6 -3
- package/dist/cjs/hooks/use-editable.d.ts +9 -1
- package/dist/cjs/hooks/use-editable.d.ts.map +1 -1
- package/dist/cjs/hooks/use-editable.js +25 -1
- package/dist/cjs/hooks/use-embeds-charts.d.ts +64 -4
- package/dist/cjs/hooks/use-embeds-charts.d.ts.map +1 -1
- package/dist/cjs/hooks/use-embeds-charts.js +412 -41
- package/dist/cjs/hooks/use-grid-children.d.ts +2 -2
- package/dist/cjs/hooks/use-grid-children.d.ts.map +1 -1
- package/dist/cjs/hooks/use-grid-children.js +12 -6
- package/dist/cjs/hooks/use-header-actions.d.ts.map +1 -1
- package/dist/cjs/hooks/use-header-actions.js +17 -10
- package/dist/cjs/hooks/use-isomorphic-layout-effect.d.ts +2 -2
- package/dist/cjs/hooks/use-isomorphic-layout-effect.d.ts.map +1 -1
- package/dist/cjs/hooks/use-keyboard-handler.d.ts +2 -1
- package/dist/cjs/hooks/use-keyboard-handler.d.ts.map +1 -1
- package/dist/cjs/hooks/use-keyboard-handler.js +8 -2
- package/dist/cjs/hooks/use-move-columns-rows.d.ts.map +1 -1
- package/dist/cjs/hooks/use-move-columns-rows.js +21 -15
- package/dist/cjs/hooks/use-reveal-chart-embed.d.ts +17 -0
- package/dist/cjs/hooks/use-reveal-chart-embed.d.ts.map +1 -0
- package/dist/cjs/hooks/use-reveal-chart-embed.js +40 -0
- package/dist/cjs/hooks/use-selection-move.d.ts.map +1 -1
- package/dist/cjs/hooks/use-selection-move.js +14 -6
- package/dist/cjs/hooks/use-selection-renderer.d.ts +13 -1
- package/dist/cjs/hooks/use-selection-renderer.d.ts.map +1 -1
- package/dist/cjs/hooks/use-selection-renderer.js +37 -7
- package/dist/cjs/hooks/use-selection-resize.d.ts.map +1 -1
- package/dist/cjs/hooks/use-selection-resize.js +13 -6
- package/dist/cjs/hooks/use-selection.d.ts +9 -1
- package/dist/cjs/hooks/use-selection.d.ts.map +1 -1
- package/dist/cjs/hooks/use-selection.js +177 -55
- package/dist/cjs/hooks/use-structured-reference-selection.d.ts +1 -1
- package/dist/cjs/hooks/use-structured-reference-selection.d.ts.map +1 -1
- package/dist/cjs/hooks/use-structured-reference-selection.js +10 -0
- package/dist/cjs/hooks/use-table-hit-zones.d.ts +61 -0
- package/dist/cjs/hooks/use-table-hit-zones.d.ts.map +1 -0
- package/dist/cjs/hooks/use-table-hit-zones.js +157 -0
- package/dist/cjs/hooks/use-table-resizer.d.ts +7 -0
- package/dist/cjs/hooks/use-table-resizer.d.ts.map +1 -1
- package/dist/cjs/hooks/use-table-resizer.js +38 -18
- package/dist/cjs/hooks/use-touch.d.ts.map +1 -1
- package/dist/cjs/hooks/use-touch.js +16 -8
- package/dist/cjs/index.d.ts +13 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +17 -1
- package/dist/cjs/release-date.js +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/types.d.ts +289 -4
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/utils/copy-as-picture.d.ts +13 -0
- package/dist/cjs/utils/copy-as-picture.d.ts.map +1 -0
- package/dist/cjs/utils/copy-as-picture.js +70 -0
- package/dist/cjs/utils/pivot-chart-field-buttons.d.ts +19 -0
- package/dist/cjs/utils/pivot-chart-field-buttons.d.ts.map +1 -0
- package/dist/cjs/utils/pivot-chart-field-buttons.js +25 -0
- package/dist/cjs/utils/z-order.d.ts +47 -0
- package/dist/cjs/utils/z-order.d.ts.map +1 -0
- package/dist/cjs/utils/z-order.js +124 -0
- package/dist/esm/api/banded-ranges.d.ts.map +1 -1
- package/dist/esm/api/banded-ranges.js +39 -12
- package/dist/esm/api/calculated-column-fill.d.ts +43 -0
- package/dist/esm/api/calculated-column-fill.d.ts.map +1 -0
- package/dist/esm/api/calculated-column-fill.js +10 -0
- package/dist/esm/api/chart-sheet.d.ts +8 -0
- package/dist/esm/api/chart-sheet.d.ts.map +1 -0
- package/dist/esm/api/chart-sheet.js +15 -0
- package/dist/esm/api/chart-source-ranges.d.ts +64 -0
- package/dist/esm/api/chart-source-ranges.d.ts.map +1 -0
- package/dist/esm/api/chart-source-ranges.js +168 -0
- package/dist/esm/api/selections.d.ts +3 -3
- package/dist/esm/api/selections.d.ts.map +1 -1
- package/dist/esm/api/selections.js +26 -2
- package/dist/esm/api/spreadsheet-api.d.ts +16 -3
- package/dist/esm/api/spreadsheet-api.d.ts.map +1 -1
- package/dist/esm/api/spreadsheet-api.js +18 -2
- package/dist/esm/api/table-auto-expansion.d.ts +37 -0
- package/dist/esm/api/table-auto-expansion.d.ts.map +1 -0
- package/dist/esm/api/table-auto-expansion.js +10 -0
- package/dist/esm/api/table.d.ts +49 -1
- package/dist/esm/api/table.d.ts.map +1 -1
- package/dist/esm/api/table.js +138 -1
- package/dist/esm/api/validation.d.ts +26 -1
- package/dist/esm/api/validation.d.ts.map +1 -1
- package/dist/esm/api/validation.js +119 -9
- package/dist/esm/atoms/calculated-column-fill.atom.d.ts +15 -0
- package/dist/esm/atoms/calculated-column-fill.atom.d.ts.map +1 -0
- package/dist/esm/atoms/calculated-column-fill.atom.js +12 -0
- package/dist/esm/atoms/chart-actions.atom.d.ts +40 -0
- package/dist/esm/atoms/chart-actions.atom.d.ts.map +1 -0
- package/dist/esm/atoms/chart-actions.atom.js +58 -0
- package/dist/esm/atoms/index.d.ts +5 -0
- package/dist/esm/atoms/index.d.ts.map +1 -1
- package/dist/esm/atoms/index.js +5 -0
- package/dist/esm/atoms/move-chart-dialog.atom.d.ts +28 -0
- package/dist/esm/atoms/move-chart-dialog.atom.d.ts.map +1 -0
- package/dist/esm/atoms/move-chart-dialog.atom.js +25 -0
- package/dist/esm/atoms/selected-chart-embed.atom.d.ts +9 -1
- package/dist/esm/atoms/selected-chart-embed.atom.d.ts.map +1 -1
- package/dist/esm/atoms/selected-chart-embed.atom.js +19 -2
- package/dist/esm/atoms/selected-chart-series.atom.d.ts +24 -0
- package/dist/esm/atoms/selected-chart-series.atom.d.ts.map +1 -0
- package/dist/esm/atoms/selected-chart-series.atom.js +4 -0
- package/dist/esm/atoms/sheet-context.atom.d.ts +2 -0
- package/dist/esm/atoms/sheet-context.atom.d.ts.map +1 -1
- package/dist/esm/atoms/sheet-context.atom.js +2 -0
- package/dist/esm/atoms/sparkline-dialog.atom.d.ts +34 -0
- package/dist/esm/atoms/sparkline-dialog.atom.d.ts.map +1 -0
- package/dist/esm/atoms/sparkline-dialog.atom.js +21 -0
- package/dist/esm/atoms/table-auto-expansion.atom.d.ts +14 -0
- package/dist/esm/atoms/table-auto-expansion.atom.d.ts.map +1 -0
- package/dist/esm/atoms/table-auto-expansion.atom.js +11 -0
- package/dist/esm/components/calculated-column-smart-tag/index.d.ts +25 -0
- package/dist/esm/components/calculated-column-smart-tag/index.d.ts.map +1 -0
- package/dist/esm/components/calculated-column-smart-tag/index.js +25 -0
- package/dist/esm/components/canvas-grid/index.d.ts.map +1 -1
- package/dist/esm/components/canvas-grid/index.js +346 -26
- package/dist/esm/components/canvas-grid/typings.d.ts +127 -14
- package/dist/esm/components/canvas-grid/typings.d.ts.map +1 -1
- package/dist/esm/components/cell/index.d.ts.map +1 -1
- package/dist/esm/components/cell/index.js +3 -3
- package/dist/esm/components/cell/typings.d.ts +13 -0
- package/dist/esm/components/cell/typings.d.ts.map +1 -1
- package/dist/esm/components/cell-filter/index.d.ts.map +1 -1
- package/dist/esm/components/cell-filter/index.js +14 -3
- package/dist/esm/components/cell-input/formula-bar-cell-input.d.ts.map +1 -1
- package/dist/esm/components/cell-input/formula-bar-cell-input.js +4 -1
- package/dist/esm/components/cell-structured/sparkline-math.d.ts +28 -5
- package/dist/esm/components/cell-structured/sparkline-math.d.ts.map +1 -1
- package/dist/esm/components/cell-structured/sparkline-math.js +58 -4
- package/dist/esm/components/cell-structured/sparkline.d.ts +1 -1
- package/dist/esm/components/cell-structured/sparkline.d.ts.map +1 -1
- package/dist/esm/components/cell-structured/sparkline.js +3 -3
- package/dist/esm/components/cell-structured/types.d.ts +1 -1
- package/dist/esm/components/cell-structured/types.d.ts.map +1 -1
- package/dist/esm/components/chart-sheet-view/index.d.ts +27 -0
- package/dist/esm/components/chart-sheet-view/index.d.ts.map +1 -0
- package/dist/esm/components/chart-sheet-view/index.js +30 -0
- package/dist/esm/components/context-menu/embed-context-menu.d.ts +48 -0
- package/dist/esm/components/context-menu/embed-context-menu.d.ts.map +1 -0
- package/dist/esm/components/context-menu/embed-context-menu.js +112 -0
- package/dist/esm/components/context-menu/index.d.ts +23 -2
- package/dist/esm/components/context-menu/index.d.ts.map +1 -1
- package/dist/esm/components/context-menu/index.js +174 -38
- package/dist/esm/components/context-menu/total-row-function-menu.d.ts +33 -0
- package/dist/esm/components/context-menu/total-row-function-menu.d.ts.map +1 -0
- package/dist/esm/components/context-menu/total-row-function-menu.js +50 -0
- package/dist/esm/components/context-menu/total-row-functions.d.ts +12 -12
- package/dist/esm/components/context-menu/total-row-functions.d.ts.map +1 -1
- package/dist/esm/components/context-menu/total-row-functions.js +29 -31
- package/dist/esm/components/embeds/chart-component.d.ts +17 -0
- package/dist/esm/components/embeds/chart-component.d.ts.map +1 -1
- package/dist/esm/components/embeds/embed-draggable.d.ts +61 -4
- package/dist/esm/components/embeds/embed-draggable.d.ts.map +1 -1
- package/dist/esm/components/embeds/embed-draggable.js +207 -47
- package/dist/esm/components/filter-box/date-tree.d.ts +28 -0
- package/dist/esm/components/filter-box/date-tree.d.ts.map +1 -0
- package/dist/esm/components/filter-box/date-tree.js +107 -0
- package/dist/esm/components/filter-box/filter-by-condition.d.ts +14 -2
- package/dist/esm/components/filter-box/filter-by-condition.d.ts.map +1 -1
- package/dist/esm/components/filter-box/filter-by-condition.js +72 -16
- package/dist/esm/components/filter-box/filter-by-value.d.ts.map +1 -1
- package/dist/esm/components/filter-box/filter-by-value.js +110 -39
- package/dist/esm/components/filter-box/index.d.ts +7 -1
- package/dist/esm/components/filter-box/index.d.ts.map +1 -1
- package/dist/esm/components/filter-box/index.js +88 -2
- package/dist/esm/components/move-chart-dialog/index.d.ts +34 -0
- package/dist/esm/components/move-chart-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/move-chart-dialog/index.js +88 -0
- package/dist/esm/components/print-preview/page-block.d.ts +9 -1
- package/dist/esm/components/print-preview/page-block.d.ts.map +1 -1
- package/dist/esm/components/print-preview/page-block.js +27 -2
- package/dist/esm/components/print-preview/print-preview-dialog.d.ts +8 -1
- package/dist/esm/components/print-preview/print-preview-dialog.d.ts.map +1 -1
- package/dist/esm/components/print-preview/print-preview-dialog.js +92 -4
- package/dist/esm/components/print-preview/run-print.d.ts.map +1 -1
- package/dist/esm/components/print-preview/run-print.js +17 -7
- package/dist/esm/components/print-preview/use-page-layout.d.ts +47 -0
- package/dist/esm/components/print-preview/use-page-layout.d.ts.map +1 -1
- package/dist/esm/components/print-preview/use-page-layout.js +55 -0
- package/dist/esm/components/resizer/index.d.ts.map +1 -1
- package/dist/esm/components/resizer/index.js +8 -4
- package/dist/esm/components/selection/index.d.ts +1 -1
- package/dist/esm/components/selection/index.d.ts.map +1 -1
- package/dist/esm/components/selection/index.js +6 -2
- package/dist/esm/components/selection/types.d.ts +15 -0
- package/dist/esm/components/selection/types.d.ts.map +1 -1
- package/dist/esm/components/sheet-search/index.d.ts.map +1 -1
- package/dist/esm/components/sheet-search/index.js +5 -2
- package/dist/esm/components/sheet-tabs/index.d.ts.map +1 -1
- package/dist/esm/components/sheet-tabs/index.js +2 -2
- package/dist/esm/components/sheet-tabs/sheet-tab.d.ts +1 -1
- package/dist/esm/components/sheet-tabs/sheet-tab.d.ts.map +1 -1
- package/dist/esm/components/sheet-tabs/sheet-tab.js +4 -2
- package/dist/esm/components/sparkline-dialog/index.d.ts +43 -0
- package/dist/esm/components/sparkline-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/sparkline-dialog/index.js +123 -0
- package/dist/esm/components/subtotal-dialog/index.d.ts.map +1 -1
- package/dist/esm/components/subtotal-dialog/index.js +10 -1
- package/dist/esm/components/table-auto-expansion-smart-tag/index.d.ts +24 -0
- package/dist/esm/components/table-auto-expansion-smart-tag/index.d.ts.map +1 -0
- package/dist/esm/components/table-auto-expansion-smart-tag/index.js +25 -0
- package/dist/esm/components/toolbar/index.d.ts +1 -0
- package/dist/esm/components/toolbar/index.d.ts.map +1 -1
- package/dist/esm/components/toolbar/index.js +1 -0
- package/dist/esm/components/toolbar/insert-menu.d.ts +2 -1
- package/dist/esm/components/toolbar/insert-menu.d.ts.map +1 -1
- package/dist/esm/components/toolbar/insert-menu.js +24 -1
- package/dist/esm/components/toolbar/merge-cells-selector.d.ts +4 -1
- package/dist/esm/components/toolbar/merge-cells-selector.d.ts.map +1 -1
- package/dist/esm/components/toolbar/merge-cells-selector.js +10 -6
- package/dist/esm/components/toolbar/sparkline-actions.d.ts +31 -0
- package/dist/esm/components/toolbar/sparkline-actions.d.ts.map +1 -0
- package/dist/esm/components/toolbar/sparkline-actions.js +238 -0
- package/dist/esm/components/toolbar/table-actions.d.ts +9 -1
- package/dist/esm/components/toolbar/table-actions.d.ts.map +1 -1
- package/dist/esm/components/toolbar/table-actions.js +15 -7
- package/dist/esm/components/toolbar/table-style-selector.d.ts +38 -2
- package/dist/esm/components/toolbar/table-style-selector.d.ts.map +1 -1
- package/dist/esm/components/toolbar/table-style-selector.js +210 -399
- package/dist/esm/config.d.ts +2 -0
- package/dist/esm/config.d.ts.map +1 -1
- package/dist/esm/config.js +30 -0
- package/dist/esm/helpers.d.ts +1 -1
- package/dist/esm/helpers.d.ts.map +1 -1
- package/dist/esm/helpers.js +12 -1
- package/dist/esm/hooks/use-cell-renderer.d.ts +16 -1
- package/dist/esm/hooks/use-cell-renderer.d.ts.map +1 -1
- package/dist/esm/hooks/use-cell-renderer.js +14 -4
- package/dist/esm/hooks/use-chart-clipboard.d.ts +55 -0
- package/dist/esm/hooks/use-chart-clipboard.d.ts.map +1 -0
- package/dist/esm/hooks/use-chart-clipboard.js +213 -0
- package/dist/esm/hooks/use-chart-source-ranges.d.ts +27 -0
- package/dist/esm/hooks/use-chart-source-ranges.d.ts.map +1 -0
- package/dist/esm/hooks/use-chart-source-ranges.js +186 -0
- package/dist/esm/hooks/use-context-setter.d.ts.map +1 -1
- package/dist/esm/hooks/use-context-setter.js +3 -1
- package/dist/esm/hooks/use-copy-paste-cut.d.ts.map +1 -1
- package/dist/esm/hooks/use-copy-paste-cut.js +6 -4
- package/dist/esm/hooks/use-editable.d.ts +9 -1
- package/dist/esm/hooks/use-editable.d.ts.map +1 -1
- package/dist/esm/hooks/use-editable.js +25 -1
- package/dist/esm/hooks/use-embeds-charts.d.ts +64 -4
- package/dist/esm/hooks/use-embeds-charts.d.ts.map +1 -1
- package/dist/esm/hooks/use-embeds-charts.js +394 -39
- package/dist/esm/hooks/use-grid-children.d.ts +2 -2
- package/dist/esm/hooks/use-grid-children.d.ts.map +1 -1
- package/dist/esm/hooks/use-grid-children.js +8 -2
- package/dist/esm/hooks/use-header-actions.d.ts.map +1 -1
- package/dist/esm/hooks/use-header-actions.js +11 -4
- package/dist/esm/hooks/use-isomorphic-layout-effect.d.ts +2 -2
- package/dist/esm/hooks/use-isomorphic-layout-effect.d.ts.map +1 -1
- package/dist/esm/hooks/use-keyboard-handler.d.ts +2 -1
- package/dist/esm/hooks/use-keyboard-handler.d.ts.map +1 -1
- package/dist/esm/hooks/use-keyboard-handler.js +8 -2
- package/dist/esm/hooks/use-move-columns-rows.d.ts.map +1 -1
- package/dist/esm/hooks/use-move-columns-rows.js +12 -6
- package/dist/esm/hooks/use-reveal-chart-embed.d.ts +17 -0
- package/dist/esm/hooks/use-reveal-chart-embed.d.ts.map +1 -0
- package/dist/esm/hooks/use-reveal-chart-embed.js +35 -0
- package/dist/esm/hooks/use-selection-move.d.ts.map +1 -1
- package/dist/esm/hooks/use-selection-move.js +11 -4
- package/dist/esm/hooks/use-selection-renderer.d.ts +13 -1
- package/dist/esm/hooks/use-selection-renderer.d.ts.map +1 -1
- package/dist/esm/hooks/use-selection-renderer.js +35 -6
- package/dist/esm/hooks/use-selection-resize.d.ts.map +1 -1
- package/dist/esm/hooks/use-selection-resize.js +11 -5
- package/dist/esm/hooks/use-selection.d.ts +9 -1
- package/dist/esm/hooks/use-selection.d.ts.map +1 -1
- package/dist/esm/hooks/use-selection.js +172 -54
- package/dist/esm/hooks/use-structured-reference-selection.d.ts +1 -1
- package/dist/esm/hooks/use-structured-reference-selection.d.ts.map +1 -1
- package/dist/esm/hooks/use-structured-reference-selection.js +16 -0
- package/dist/esm/hooks/use-table-hit-zones.d.ts +61 -0
- package/dist/esm/hooks/use-table-hit-zones.d.ts.map +1 -0
- package/dist/esm/hooks/use-table-hit-zones.js +146 -0
- package/dist/esm/hooks/use-table-resizer.d.ts +7 -0
- package/dist/esm/hooks/use-table-resizer.d.ts.map +1 -1
- package/dist/esm/hooks/use-table-resizer.js +36 -19
- package/dist/esm/hooks/use-touch.d.ts.map +1 -1
- package/dist/esm/hooks/use-touch.js +15 -7
- package/dist/esm/index.d.ts +13 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +13 -0
- package/dist/esm/release-date.js +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esm/types.d.ts +289 -4
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utils/copy-as-picture.d.ts +13 -0
- package/dist/esm/utils/copy-as-picture.d.ts.map +1 -0
- package/dist/esm/utils/copy-as-picture.js +45 -0
- package/dist/esm/utils/pivot-chart-field-buttons.d.ts +19 -0
- package/dist/esm/utils/pivot-chart-field-buttons.d.ts.map +1 -0
- package/dist/esm/utils/pivot-chart-field-buttons.js +18 -0
- package/dist/esm/utils/z-order.d.ts +47 -0
- package/dist/esm/utils/z-order.d.ts.map +1 -0
- package/dist/esm/utils/z-order.js +111 -0
- package/dist/spreadsheet.min.css +1 -1
- package/package.json +8 -6
- package/dist/cjs/components/cell-editor/helpers.spec.d.ts +0 -2
- package/dist/cjs/components/cell-editor/helpers.spec.d.ts.map +0 -1
- package/dist/cjs/components/cell-editor/helpers.spec.js +0 -32
- package/dist/esm/components/cell-editor/helpers.spec.d.ts +0 -2
- package/dist/esm/components/cell-editor/helpers.spec.d.ts.map +0 -1
- package/dist/esm/components/cell-editor/helpers.spec.js +0 -30
|
@@ -9,6 +9,7 @@ var grid_4 = require("@rowsncolumns/grid");
|
|
|
9
9
|
var react_1 = require("react");
|
|
10
10
|
var scheduler_1 = require("../api/scheduler");
|
|
11
11
|
var move_overwrite_1 = require("../api/move-overwrite");
|
|
12
|
+
var table_1 = require("../api/table");
|
|
12
13
|
var config_1 = require("../config");
|
|
13
14
|
var helpers_1 = require("../helpers");
|
|
14
15
|
var use_callback_ref_1 = require("./use-callback-ref");
|
|
@@ -98,7 +99,7 @@ var defaultConfirmMoveOverwrite = function (message) {
|
|
|
98
99
|
: window.confirm(message);
|
|
99
100
|
};
|
|
100
101
|
var useSelection = function (_a) {
|
|
101
|
-
var sheetId = _a.sheetId, activeCell = _a.activeCell, onChangeActiveCell = _a.onChangeActiveCell, selections = _a.selections, onChangeSelections = _a.onChangeSelections, _b = _a.columnCount, columnCount = _b === void 0 ? 0 : _b, _c = _a.rowCount, rowCount = _c === void 0 ? 0 : _c, _d = _a.selectionPolicy, selectionPolicy = _d === void 0 ? "multiple" : _d, _e = _a.newSelectionMode, newSelectionMode = _e === void 0 ? "clear" : _e, _f = _a.allowDeselectSelection, allowDeselectSelection = _f === void 0 ? true : _f, onFill = _a.onFill, onFillHandleRelease = _a.onFillHandleRelease, onFillShrink = _a.onFillShrink, onInsertCutCells = _a.onInsertCutCells, _g = _a.confirmMoveOverwrite, confirmMoveOverwrite = _g === void 0 ? defaultConfirmMoveOverwrite : _g, _h = _a.isHiddenRow, isHiddenRow = _h === void 0 ? defaultIsHidden : _h, _j = _a.isHiddenColumn, isHiddenColumn = _j === void 0 ? defaultIsHidden : _j, _k = _a.alwaysScrollToActiveCell, alwaysScrollToActiveCell = _k === void 0 ? true : _k, _l = _a.selectionTopBound, selectionTopBound = _l === void 0 ? 0 : _l, _m = _a.selectionBottomBound, selectionBottomBound = _m === void 0 ? rowCount : _m, _o = _a.selectionLeftBound, selectionLeftBound = _o === void 0 ? 0 : _o, _p = _a.selectionRightBound, selectionRightBound = _p === void 0 ? columnCount : _p, mouseDownInterceptor = _a.mouseDownInterceptor, mouseMoveInterceptor = _a.mouseMoveInterceptor, _q = _a.mergedCells, mergedCells = _q === void 0 ? config_1.DEFAULT_ARRAY : _q, _r = _a.canSelectionSpanMergedCells, canSelectionSpanMergedCells = _r === void 0 ? defaultSelectionSpan : _r, getValue = _a.getValue, onMoveSelection = _a.onMoveSelection, getCellCoordsFromOffset = _a.getCellCoordsFromOffset, getCellBounds = _a.getCellBounds, getViewPort = _a.getViewPort, focus = _a.focus, scrollToCell = _a.scrollToCell, isMergedCell = _a.isMergedCell, enableSelectOnEnterKey = _a.enableSelectOnEnterKey, formulaMode = _a.formulaMode, isTouchDevice = _a.isTouchDevice, getDataRowCount = _a.getDataRowCount, isRowHeader = _a.isRowHeader, isColumnHeader = _a.isColumnHeader, _s = _a.enableDataBoundaryNavigation, enableDataBoundaryNavigation = _s === void 0 ? false : _s;
|
|
102
|
+
var sheetId = _a.sheetId, activeCell = _a.activeCell, onChangeActiveCell = _a.onChangeActiveCell, selections = _a.selections, onChangeSelections = _a.onChangeSelections, _b = _a.columnCount, columnCount = _b === void 0 ? 0 : _b, _c = _a.rowCount, rowCount = _c === void 0 ? 0 : _c, _d = _a.selectionPolicy, selectionPolicy = _d === void 0 ? "multiple" : _d, _e = _a.newSelectionMode, newSelectionMode = _e === void 0 ? "clear" : _e, _f = _a.allowDeselectSelection, allowDeselectSelection = _f === void 0 ? true : _f, onFill = _a.onFill, onFillHandleRelease = _a.onFillHandleRelease, onFillShrink = _a.onFillShrink, onInsertCutCells = _a.onInsertCutCells, _g = _a.confirmMoveOverwrite, confirmMoveOverwrite = _g === void 0 ? defaultConfirmMoveOverwrite : _g, _h = _a.isHiddenRow, isHiddenRow = _h === void 0 ? defaultIsHidden : _h, _j = _a.isHiddenColumn, isHiddenColumn = _j === void 0 ? defaultIsHidden : _j, _k = _a.alwaysScrollToActiveCell, alwaysScrollToActiveCell = _k === void 0 ? true : _k, _l = _a.selectionTopBound, selectionTopBound = _l === void 0 ? 0 : _l, _m = _a.selectionBottomBound, selectionBottomBound = _m === void 0 ? rowCount : _m, _o = _a.selectionLeftBound, selectionLeftBound = _o === void 0 ? 0 : _o, _p = _a.selectionRightBound, selectionRightBound = _p === void 0 ? columnCount : _p, mouseDownInterceptor = _a.mouseDownInterceptor, mouseMoveInterceptor = _a.mouseMoveInterceptor, _q = _a.mergedCells, mergedCells = _q === void 0 ? config_1.DEFAULT_ARRAY : _q, _r = _a.canSelectionSpanMergedCells, canSelectionSpanMergedCells = _r === void 0 ? defaultSelectionSpan : _r, getValue = _a.getValue, onMoveSelection = _a.onMoveSelection, getCellCoordsFromOffset = _a.getCellCoordsFromOffset, getCellBounds = _a.getCellBounds, getViewPort = _a.getViewPort, focus = _a.focus, scrollToCell = _a.scrollToCell, isMergedCell = _a.isMergedCell, enableSelectOnEnterKey = _a.enableSelectOnEnterKey, formulaMode = _a.formulaMode, isTouchDevice = _a.isTouchDevice, getDataRowCount = _a.getDataRowCount, isRowHeader = _a.isRowHeader, isColumnHeader = _a.isColumnHeader, _s = _a.enableDataBoundaryNavigation, enableDataBoundaryNavigation = _s === void 0 ? false : _s, tables = _a.tables, onInsertTableRow = _a.onInsertTableRow;
|
|
102
103
|
var _t = tslib_1.__read((0, react_1.useState)(), 2), fillSelection = _t[0], setFillSelection = _t[1];
|
|
103
104
|
var _u = tslib_1.__read((0, react_1.useState)(), 2), fillShrink = _u[0], setFillShrink = _u[1];
|
|
104
105
|
var fillShrinkRef = (0, react_1.useRef)(undefined);
|
|
@@ -118,24 +119,36 @@ var useSelection = function (_a) {
|
|
|
118
119
|
* release always fires `contextmenu`; neither may reach the grid's cell
|
|
119
120
|
* context menu while the user is dragging the fill handle.
|
|
120
121
|
*/
|
|
122
|
+
/**
|
|
123
|
+
* Documents the in-flight gestures listen on. The grid may render into a
|
|
124
|
+
* popout window, whose document is not the bundle's global `document`; a
|
|
125
|
+
* gesture binds its move/up listeners to the document of the element it
|
|
126
|
+
* started on and unbinds from that same document.
|
|
127
|
+
*/
|
|
128
|
+
var selectionDocumentRef = (0, react_1.useRef)(null);
|
|
129
|
+
var fillDocumentRef = (0, react_1.useRef)(null);
|
|
130
|
+
var dragSelectionDocumentRef = (0, react_1.useRef)(null);
|
|
131
|
+
var tapDocumentRef = (0, react_1.useRef)(null);
|
|
121
132
|
var contextMenuSuppressorRef = (0, react_1.useRef)(null);
|
|
122
133
|
var releaseContextMenuSuppressor = (0, react_1.useCallback)(function () {
|
|
123
|
-
var
|
|
124
|
-
if (!
|
|
134
|
+
var suppressor = contextMenuSuppressorRef.current;
|
|
135
|
+
if (!suppressor)
|
|
125
136
|
return;
|
|
126
137
|
contextMenuSuppressorRef.current = null;
|
|
127
|
-
|
|
138
|
+
suppressor.ownerDocument.removeEventListener("contextmenu", suppressor.handler, true);
|
|
128
139
|
}, []);
|
|
129
140
|
var suppressNextContextMenu = (0, react_1.useCallback)(function () {
|
|
141
|
+
var _a;
|
|
130
142
|
if (contextMenuSuppressorRef.current)
|
|
131
143
|
return;
|
|
144
|
+
var ownerDocument = (_a = fillDocumentRef.current) !== null && _a !== void 0 ? _a : document;
|
|
132
145
|
var handler = function (e) {
|
|
133
146
|
e.preventDefault();
|
|
134
147
|
e.stopPropagation();
|
|
135
148
|
releaseContextMenuSuppressor();
|
|
136
149
|
};
|
|
137
|
-
contextMenuSuppressorRef.current = handler;
|
|
138
|
-
|
|
150
|
+
contextMenuSuppressorRef.current = { handler: handler, ownerDocument: ownerDocument };
|
|
151
|
+
ownerDocument.addEventListener("contextmenu", handler, true);
|
|
139
152
|
}, [releaseContextMenuSuppressor]);
|
|
140
153
|
var selectionsRef = (0, react_1.useRef)([]);
|
|
141
154
|
var fillSelectionRef = (0, react_1.useRef)(undefined);
|
|
@@ -358,11 +371,14 @@ var useSelection = function (_a) {
|
|
|
358
371
|
* Mouse up handler
|
|
359
372
|
*/
|
|
360
373
|
var handleMouseUp = (0, react_1.useCallback)(function () {
|
|
374
|
+
var _a;
|
|
361
375
|
/* Reset selection mode */
|
|
362
376
|
isSelecting.current = false;
|
|
363
|
-
/* Remove listener */
|
|
364
|
-
|
|
365
|
-
|
|
377
|
+
/* Remove listener from the document the gesture started on */
|
|
378
|
+
var ownerDocument = (_a = selectionDocumentRef.current) !== null && _a !== void 0 ? _a : document;
|
|
379
|
+
selectionDocumentRef.current = null;
|
|
380
|
+
ownerDocument.removeEventListener("mousemove", handleMouseMove);
|
|
381
|
+
ownerDocument.removeEventListener("mouseup", handleMouseUp);
|
|
366
382
|
/* Update last selection */
|
|
367
383
|
var curSelections = selectionsRef.current;
|
|
368
384
|
var len = curSelections.length;
|
|
@@ -574,12 +590,64 @@ var useSelection = function (_a) {
|
|
|
574
590
|
selectionLeftBound,
|
|
575
591
|
selectionRightBound,
|
|
576
592
|
]);
|
|
593
|
+
// Select all
|
|
594
|
+
var selectAll = (0, react_1.useCallback)(function () {
|
|
595
|
+
selectionStart.current = {
|
|
596
|
+
rowIndex: selectionTopBound,
|
|
597
|
+
columnIndex: selectionLeftBound,
|
|
598
|
+
};
|
|
599
|
+
modifySelection({
|
|
600
|
+
rowIndex: selectionBottomBound,
|
|
601
|
+
columnIndex: selectionRightBound,
|
|
602
|
+
});
|
|
603
|
+
}, [
|
|
604
|
+
selectionTopBound,
|
|
605
|
+
selectionLeftBound,
|
|
606
|
+
selectionRightBound,
|
|
607
|
+
selectionBottomBound,
|
|
608
|
+
modifySelection,
|
|
609
|
+
]);
|
|
610
|
+
/**
|
|
611
|
+
* Inside a table Ctrl+A / Ctrl+Space / Shift+Space walk Excel's table
|
|
612
|
+
* cycle before falling back to the sheet-wide behaviour. Applies `range`
|
|
613
|
+
* (keeping the active cell) and reports whether a table handled the key;
|
|
614
|
+
* a `null` cycle step means "the sheet-wide step" and returns false.
|
|
615
|
+
*/
|
|
616
|
+
var currentSingleArea = function () {
|
|
617
|
+
return selections.length === 1 ? selections[0].range : undefined;
|
|
618
|
+
};
|
|
619
|
+
var applyTableRange = (0, react_1.useCallback)(function (range) {
|
|
620
|
+
if (!range) {
|
|
621
|
+
return false;
|
|
622
|
+
}
|
|
623
|
+
selectionStart.current = {
|
|
624
|
+
rowIndex: range.startRowIndex,
|
|
625
|
+
columnIndex: range.startColumnIndex,
|
|
626
|
+
};
|
|
627
|
+
modifySelection({
|
|
628
|
+
rowIndex: range.endRowIndex,
|
|
629
|
+
columnIndex: range.endColumnIndex,
|
|
630
|
+
});
|
|
631
|
+
return true;
|
|
632
|
+
}, [modifySelection]);
|
|
633
|
+
var activeTable = activeCell
|
|
634
|
+
? (0, table_1.findActiveTableWithinCell)(sheetId, activeCell, tables)
|
|
635
|
+
: undefined;
|
|
577
636
|
// ⌘A or ⌘+Shift+Space
|
|
578
637
|
// Select all cells in bounding area
|
|
579
638
|
var selectAllBoundedCells = (0, react_1.useCallback)(function () {
|
|
580
639
|
if (!selectionEnd.current || !selectionStart.current) {
|
|
581
640
|
return;
|
|
582
641
|
}
|
|
642
|
+
if (activeTable) {
|
|
643
|
+
var step = (0, table_1.getTableSelectAllRange)(activeTable, currentSingleArea());
|
|
644
|
+
if (step === null) {
|
|
645
|
+
selectAll();
|
|
646
|
+
return;
|
|
647
|
+
}
|
|
648
|
+
applyTableRange(step);
|
|
649
|
+
return;
|
|
650
|
+
}
|
|
583
651
|
var topBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Up);
|
|
584
652
|
var bottomBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Down);
|
|
585
653
|
var leftBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Left);
|
|
@@ -610,30 +678,38 @@ var useSelection = function (_a) {
|
|
|
610
678
|
selectionTopBound,
|
|
611
679
|
selectionLeftBound,
|
|
612
680
|
selectionRightBound,
|
|
681
|
+
activeTable,
|
|
682
|
+
selections,
|
|
683
|
+
applyTableRange,
|
|
684
|
+
selectAll,
|
|
613
685
|
]);
|
|
614
|
-
// Select
|
|
615
|
-
var
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
columnIndex
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
});
|
|
624
|
-
}, [
|
|
625
|
-
selectionTopBound,
|
|
626
|
-
selectionLeftBound,
|
|
627
|
-
selectionRightBound,
|
|
628
|
-
selectionBottomBound,
|
|
629
|
-
modifySelection,
|
|
630
|
-
]);
|
|
686
|
+
// Select entire column
|
|
687
|
+
var selectEntireColumn = (0, react_1.useCallback)(function (columnIndex) {
|
|
688
|
+
if (!selectionEnd.current ||
|
|
689
|
+
!selectionStart.current ||
|
|
690
|
+
columnIndex === void 0)
|
|
691
|
+
return;
|
|
692
|
+
selectionStart.current = tslib_1.__assign(tslib_1.__assign({}, selectionStart.current), { rowIndex: selectionTopBound });
|
|
693
|
+
modifySelection(tslib_1.__assign(tslib_1.__assign({}, selectionEnd.current), { rowIndex: selectionBottomBound }));
|
|
694
|
+
}, [modifySelection, selectionBottomBound, selectionTopBound]);
|
|
631
695
|
// Ctrl+Space
|
|
632
696
|
var selectColumn = (0, react_1.useCallback)(function (columnIndex) {
|
|
633
697
|
if (!selectionEnd.current ||
|
|
634
698
|
!selectionStart.current ||
|
|
635
699
|
columnIndex === void 0)
|
|
636
700
|
return;
|
|
701
|
+
if (activeTable) {
|
|
702
|
+
var step = (0, table_1.getTableColumnSelectRange)(activeTable, {
|
|
703
|
+
start: selectionStart.current.columnIndex,
|
|
704
|
+
end: selectionEnd.current.columnIndex,
|
|
705
|
+
}, currentSingleArea());
|
|
706
|
+
if (step === null) {
|
|
707
|
+
selectEntireColumn(columnIndex);
|
|
708
|
+
return;
|
|
709
|
+
}
|
|
710
|
+
applyTableRange(step);
|
|
711
|
+
return;
|
|
712
|
+
}
|
|
637
713
|
var topBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Up);
|
|
638
714
|
var bottomBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Down);
|
|
639
715
|
var isSameVerticalBounds = topBound === bottomBound;
|
|
@@ -649,16 +725,11 @@ var useSelection = function (_a) {
|
|
|
649
725
|
sheetId,
|
|
650
726
|
selectionTopBound,
|
|
651
727
|
selectionBottomBound,
|
|
728
|
+
activeTable,
|
|
729
|
+
selections,
|
|
730
|
+
applyTableRange,
|
|
731
|
+
selectEntireColumn,
|
|
652
732
|
]);
|
|
653
|
-
// Select entire column
|
|
654
|
-
var selectEntireColumn = (0, react_1.useCallback)(function (columnIndex) {
|
|
655
|
-
if (!selectionEnd.current ||
|
|
656
|
-
!selectionStart.current ||
|
|
657
|
-
columnIndex === void 0)
|
|
658
|
-
return;
|
|
659
|
-
selectionStart.current = tslib_1.__assign(tslib_1.__assign({}, selectionStart.current), { rowIndex: selectionTopBound });
|
|
660
|
-
modifySelection(tslib_1.__assign(tslib_1.__assign({}, selectionEnd.current), { rowIndex: selectionBottomBound }));
|
|
661
|
-
}, [modifySelection, selectionBottomBound, selectionTopBound]);
|
|
662
733
|
// Shift+Space
|
|
663
734
|
var selectRow = (0, react_1.useCallback)(function (rowIndex) {
|
|
664
735
|
if (!selectionEnd.current ||
|
|
@@ -666,6 +737,19 @@ var useSelection = function (_a) {
|
|
|
666
737
|
rowIndex === void 0) {
|
|
667
738
|
return;
|
|
668
739
|
}
|
|
740
|
+
if (activeTable) {
|
|
741
|
+
var step = (0, table_1.getTableRowSelectRange)(activeTable, {
|
|
742
|
+
start: selectionStart.current.rowIndex,
|
|
743
|
+
end: selectionEnd.current.rowIndex,
|
|
744
|
+
}, currentSingleArea());
|
|
745
|
+
if (step !== null) {
|
|
746
|
+
applyTableRange(step);
|
|
747
|
+
return;
|
|
748
|
+
}
|
|
749
|
+
selectionStart.current = tslib_1.__assign(tslib_1.__assign({}, selectionStart.current), { columnIndex: selectionLeftBound });
|
|
750
|
+
modifySelection(tslib_1.__assign(tslib_1.__assign({}, selectionEnd.current), { columnIndex: selectionRightBound }));
|
|
751
|
+
return;
|
|
752
|
+
}
|
|
669
753
|
var leftBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Left);
|
|
670
754
|
var rightBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Right);
|
|
671
755
|
var isSameHorizontalBounds = leftBound === rightBound;
|
|
@@ -679,6 +763,9 @@ var useSelection = function (_a) {
|
|
|
679
763
|
findLastContentfulCellInDirection,
|
|
680
764
|
modifySelection,
|
|
681
765
|
sheetId,
|
|
766
|
+
activeTable,
|
|
767
|
+
selections,
|
|
768
|
+
applyTableRange,
|
|
682
769
|
selectionRightBound,
|
|
683
770
|
selectionLeftBound,
|
|
684
771
|
]);
|
|
@@ -844,6 +931,7 @@ var useSelection = function (_a) {
|
|
|
844
931
|
* Triggers a new selection start
|
|
845
932
|
*/
|
|
846
933
|
var handleMouseDown = (0, react_1.useCallback)(function (e) {
|
|
934
|
+
var _a, _b;
|
|
847
935
|
var coords = getCellCoordsFromOffset(e.clientX, e.clientY, true);
|
|
848
936
|
if (!coords)
|
|
849
937
|
return;
|
|
@@ -865,8 +953,10 @@ var useSelection = function (_a) {
|
|
|
865
953
|
var hasSelections = selectionsRef.current.length > 0;
|
|
866
954
|
var isDeselecting = isMetaKey && allowDeselect;
|
|
867
955
|
if (!isContextMenuClick && selectionPolicy !== "single") {
|
|
868
|
-
|
|
869
|
-
|
|
956
|
+
var ownerDocument = (_b = (0, grid_3.getOwnerDocument)((_a = e.currentTarget) !== null && _a !== void 0 ? _a : e.target)) !== null && _b !== void 0 ? _b : document;
|
|
957
|
+
selectionDocumentRef.current = ownerDocument;
|
|
958
|
+
ownerDocument.addEventListener("mouseup", handleMouseUp);
|
|
959
|
+
ownerDocument.addEventListener("mousemove", handleMouseMove);
|
|
870
960
|
}
|
|
871
961
|
/* Activate selection mode */
|
|
872
962
|
// Disable flag for context menu
|
|
@@ -1081,11 +1171,22 @@ var useSelection = function (_a) {
|
|
|
1081
1171
|
}
|
|
1082
1172
|
}
|
|
1083
1173
|
else {
|
|
1084
|
-
|
|
1085
|
-
|
|
1174
|
+
var direction = isShiftKey ? grid_4.Direction.Left : grid_4.Direction.Right;
|
|
1175
|
+
var table = activeCell
|
|
1176
|
+
? (0, table_1.findActiveTableWithinCell)(sheetId, activeCell, tables)
|
|
1177
|
+
: undefined;
|
|
1178
|
+
var tableTarget = table
|
|
1179
|
+
? (0, table_1.getNextCellInTable)(table, activeCell, direction, isHiddenRow, isHiddenColumn)
|
|
1180
|
+
: null;
|
|
1181
|
+
if (table && tableTarget) {
|
|
1182
|
+
if (tableTarget.insertRow) {
|
|
1183
|
+
onInsertTableRow === null || onInsertTableRow === void 0 ? void 0 : onInsertTableRow(table);
|
|
1184
|
+
}
|
|
1185
|
+
newSelection(tableTarget.cell);
|
|
1186
|
+
scrollToCell(tableTarget.cell);
|
|
1086
1187
|
}
|
|
1087
1188
|
else {
|
|
1088
|
-
keyNavigate(
|
|
1189
|
+
keyNavigate(direction);
|
|
1089
1190
|
}
|
|
1090
1191
|
}
|
|
1091
1192
|
e.preventDefault();
|
|
@@ -1132,6 +1233,11 @@ var useSelection = function (_a) {
|
|
|
1132
1233
|
selectFirstCellInSheet,
|
|
1133
1234
|
selectLastCellInSheet,
|
|
1134
1235
|
enableSelectOnEnterKey,
|
|
1236
|
+
newSelection,
|
|
1237
|
+
isHiddenRow,
|
|
1238
|
+
isHiddenColumn,
|
|
1239
|
+
tables,
|
|
1240
|
+
onInsertTableRow,
|
|
1135
1241
|
]);
|
|
1136
1242
|
/**
|
|
1137
1243
|
* TODO
|
|
@@ -1215,13 +1321,14 @@ var useSelection = function (_a) {
|
|
|
1215
1321
|
* comes from the mouseup event, not the mousedown.
|
|
1216
1322
|
*/
|
|
1217
1323
|
var handleFillMouseUp = (0, react_1.useCallback)(function (e) {
|
|
1218
|
-
var _a;
|
|
1324
|
+
var _a, _b;
|
|
1219
1325
|
isFilling.current = false;
|
|
1220
1326
|
var toggle = isFillToggleModifier(e);
|
|
1221
1327
|
var button = fillButtonRef.current;
|
|
1222
|
-
/* Remove listener */
|
|
1223
|
-
|
|
1224
|
-
|
|
1328
|
+
/* Remove listener from the document the gesture started on */
|
|
1329
|
+
var ownerDocument = (_a = fillDocumentRef.current) !== null && _a !== void 0 ? _a : document;
|
|
1330
|
+
ownerDocument.removeEventListener("mousemove", handleFillMouseMove);
|
|
1331
|
+
ownerDocument.removeEventListener("mouseup", handleFillMouseUp);
|
|
1225
1332
|
// The right-button (or macOS Ctrl+click) `contextmenu` event follows this
|
|
1226
1333
|
// mouseup; keep swallowing it for one tick, then drop the suppressor so a
|
|
1227
1334
|
// later, unrelated right-click still opens the cell context menu.
|
|
@@ -1234,7 +1341,7 @@ var useSelection = function (_a) {
|
|
|
1234
1341
|
var fillSelection = fillSelectionRef.current;
|
|
1235
1342
|
var shrink = fillShrinkRef.current;
|
|
1236
1343
|
// Modifier for a drag-back shrink: the last move's state, else the release's.
|
|
1237
|
-
var gestureOptions = (
|
|
1344
|
+
var gestureOptions = (_b = fillModifierRef.current) !== null && _b !== void 0 ? _b : (toggle ? { modifier: "toggle" } : undefined);
|
|
1238
1345
|
fillModifierRef.current = undefined;
|
|
1239
1346
|
/* Update last selection */
|
|
1240
1347
|
setFillSelection(undefined);
|
|
@@ -1312,8 +1419,11 @@ var useSelection = function (_a) {
|
|
|
1312
1419
|
sheetId,
|
|
1313
1420
|
]);
|
|
1314
1421
|
var handleFillMouseDown = (0, react_1.useCallback)(function (e) {
|
|
1422
|
+
var _a;
|
|
1315
1423
|
e.stopPropagation();
|
|
1316
1424
|
e.preventDefault();
|
|
1425
|
+
var ownerDocument = (_a = (0, grid_3.getOwnerDocument)(e.currentTarget)) !== null && _a !== void 0 ? _a : document;
|
|
1426
|
+
fillDocumentRef.current = ownerDocument;
|
|
1317
1427
|
var isRightButton = e.button === grid_4.MouseButtonCodes.right;
|
|
1318
1428
|
fillButtonRef.current = isRightButton ? "right" : "left";
|
|
1319
1429
|
// Ctrl+drag on the handle must never become the macOS Ctrl+click
|
|
@@ -1323,8 +1433,8 @@ var useSelection = function (_a) {
|
|
|
1323
1433
|
suppressNextContextMenu();
|
|
1324
1434
|
}
|
|
1325
1435
|
isFilling.current = true;
|
|
1326
|
-
|
|
1327
|
-
|
|
1436
|
+
ownerDocument.addEventListener("mousemove", handleFillMouseMove);
|
|
1437
|
+
ownerDocument.addEventListener("mouseup", handleFillMouseUp);
|
|
1328
1438
|
}, [handleFillMouseMove, handleFillMouseUp, suppressNextContextMenu]);
|
|
1329
1439
|
/**
|
|
1330
1440
|
* Remove the last selection from state
|
|
@@ -1378,6 +1488,7 @@ var useSelection = function (_a) {
|
|
|
1378
1488
|
* When drag/drop is complete
|
|
1379
1489
|
*/
|
|
1380
1490
|
var handleSelectionMouseUp = (0, react_1.useCallback)(function (e) {
|
|
1491
|
+
var _a;
|
|
1381
1492
|
var fromSelection = initialDraggedSelection.current;
|
|
1382
1493
|
var toSelection = draggedSelection.current;
|
|
1383
1494
|
// Excel reads the modifier at RELEASE: Shift → insert between existing cells (I-beam),
|
|
@@ -1456,9 +1567,11 @@ var useSelection = function (_a) {
|
|
|
1456
1567
|
draggedSelection.current = void 0;
|
|
1457
1568
|
draggedSelectionIndex.current = void 0;
|
|
1458
1569
|
hasUserMovedSelection.current = false;
|
|
1459
|
-
/* Remove event handlers */
|
|
1460
|
-
|
|
1461
|
-
|
|
1570
|
+
/* Remove event handlers from the document the gesture started on */
|
|
1571
|
+
var ownerDocument = (_a = dragSelectionDocumentRef.current) !== null && _a !== void 0 ? _a : document;
|
|
1572
|
+
dragSelectionDocumentRef.current = null;
|
|
1573
|
+
ownerDocument.removeEventListener("mouseup", handleSelectionMouseUp);
|
|
1574
|
+
ownerDocument.removeEventListener("mousemove", handleSelectionMouseMove);
|
|
1462
1575
|
/* Force render */
|
|
1463
1576
|
forceRender();
|
|
1464
1577
|
}, [
|
|
@@ -1476,6 +1589,7 @@ var useSelection = function (_a) {
|
|
|
1476
1589
|
* When user mouse downs on selection
|
|
1477
1590
|
*/
|
|
1478
1591
|
var handleSelectionMouseDown = (0, react_1.useCallback)(function (e, activeCell, selection, index, shouldClamp) {
|
|
1592
|
+
var _a;
|
|
1479
1593
|
if (shouldClamp === void 0) { shouldClamp = true; }
|
|
1480
1594
|
if (e.isDefaultPrevented()) {
|
|
1481
1595
|
return;
|
|
@@ -1507,9 +1621,11 @@ var useSelection = function (_a) {
|
|
|
1507
1621
|
}
|
|
1508
1622
|
/* Set dragging flag */
|
|
1509
1623
|
isDragging.current = true;
|
|
1510
|
-
/* Listen
|
|
1511
|
-
|
|
1512
|
-
|
|
1624
|
+
/* Listen on the document the gesture started on */
|
|
1625
|
+
var ownerDocument = (_a = (0, grid_3.getOwnerDocument)(e.currentTarget)) !== null && _a !== void 0 ? _a : document;
|
|
1626
|
+
dragSelectionDocumentRef.current = ownerDocument;
|
|
1627
|
+
ownerDocument.addEventListener("mouseup", handleSelectionMouseUp);
|
|
1628
|
+
ownerDocument.addEventListener("mousemove", handleSelectionMouseMove);
|
|
1513
1629
|
/* Force a re-render */
|
|
1514
1630
|
forceRender();
|
|
1515
1631
|
}, [
|
|
@@ -1581,6 +1697,7 @@ var useSelection = function (_a) {
|
|
|
1581
1697
|
var startTimeRef = (0, react_1.useRef)(0);
|
|
1582
1698
|
var startPosRef = (0, react_1.useRef)({ x: 0, y: 0 });
|
|
1583
1699
|
var onPointerUp = (0, react_1.useCallback)(function (event) {
|
|
1700
|
+
var _a;
|
|
1584
1701
|
var endTime = Date.now();
|
|
1585
1702
|
var maxDuration = 200;
|
|
1586
1703
|
var maxDistance = 10;
|
|
@@ -1592,12 +1709,17 @@ var useSelection = function (_a) {
|
|
|
1592
1709
|
handleMouseDown(event);
|
|
1593
1710
|
handleMouseUp();
|
|
1594
1711
|
}
|
|
1595
|
-
|
|
1712
|
+
var ownerDocument = (_a = tapDocumentRef.current) !== null && _a !== void 0 ? _a : document;
|
|
1713
|
+
tapDocumentRef.current = null;
|
|
1714
|
+
ownerDocument.removeEventListener("pointerup", onPointerUp);
|
|
1596
1715
|
}, [handleMouseDown, handleMouseUp]);
|
|
1597
1716
|
var onPointerDown = (0, react_1.useCallback)(function (event) {
|
|
1717
|
+
var _a;
|
|
1598
1718
|
startTimeRef.current = Date.now();
|
|
1599
1719
|
startPosRef.current = { x: event.clientX, y: event.clientY };
|
|
1600
|
-
|
|
1720
|
+
var ownerDocument = (_a = (0, grid_3.getOwnerDocument)(event.currentTarget)) !== null && _a !== void 0 ? _a : document;
|
|
1721
|
+
tapDocumentRef.current = ownerDocument;
|
|
1722
|
+
ownerDocument.addEventListener("pointerup", onPointerUp);
|
|
1601
1723
|
}, [onPointerUp]);
|
|
1602
1724
|
// Add a ref. makeEditable renders way too often
|
|
1603
1725
|
var handleKeyDownRef = (0, use_callback_ref_1.useCallbackRef)(handleKeyDown);
|
|
@@ -11,12 +11,12 @@ export declare const useOnStructuredReferenceSelection: ({ tables, getSheetName,
|
|
|
11
11
|
endColumnIndex: number;
|
|
12
12
|
startRowIndex: number;
|
|
13
13
|
endRowIndex: number;
|
|
14
|
-
sheetId: number;
|
|
15
14
|
} | {
|
|
16
15
|
startColumnIndex: number;
|
|
17
16
|
endColumnIndex: number;
|
|
18
17
|
startRowIndex: number;
|
|
19
18
|
endRowIndex: number;
|
|
19
|
+
sheetId: number;
|
|
20
20
|
};
|
|
21
21
|
sheetName: string | undefined;
|
|
22
22
|
} | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-structured-reference-selection.d.ts","sourceRoot":"","sources":["../../../hooks/use-structured-reference-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,iCAAiC,GAAI,2BAG/C;IACD,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC;IACvC,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;CAC/C,eAGc,MAAM,QACT,aAAa,GAAG,SAAS,aACpB,MAAM,GAAG,SAAS,eAChB,MAAM,EAAE,GAAG,SAAS,WACxB,OAAO,GAAG,SAAS,gBACd,WAAW,CAAC,aAAa,CAAC;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"use-structured-reference-selection.d.ts","sourceRoot":"","sources":["../../../hooks/use-structured-reference-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,iCAAiC,GAAI,2BAG/C;IACD,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC;IACvC,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;CAC/C,eAGc,MAAM,QACT,aAAa,GAAG,SAAS,aACpB,MAAM,GAAG,SAAS,eAChB,MAAM,EAAE,GAAG,SAAS,WACxB,OAAO,GAAG,SAAS,gBACd,WAAW,CAAC,aAAa,CAAC;;;;;;;;;;;;;;aA8I7C,CAAC"}
|
|
@@ -51,6 +51,16 @@ var useOnStructuredReferenceSelection = function (_a) {
|
|
|
51
51
|
sheetName: sheetName,
|
|
52
52
|
};
|
|
53
53
|
}
|
|
54
|
+
// Totals row only (the table's last row); nothing to highlight while it is off.
|
|
55
|
+
if (specialItem === "#Totals") {
|
|
56
|
+
if (!totalRow) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
range: tslib_1.__assign(tslib_1.__assign({}, range), { startColumnIndex: startColumnIndex, endColumnIndex: endColumnIndex, startRowIndex: range.endRowIndex, endRowIndex: range.endRowIndex }),
|
|
61
|
+
sheetName: sheetName,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
54
64
|
// All
|
|
55
65
|
if (specialItem === "#All") {
|
|
56
66
|
return {
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { CellInterface, CellPosition, GridRange, PosXYRequired, ScrollCoords, SelectionArea } from "@rowsncolumns/grid";
|
|
2
|
+
import type React from "react";
|
|
3
|
+
import type { CanvasGridProps } from "../components/canvas-grid/typings";
|
|
4
|
+
import type { TableView } from "../types";
|
|
5
|
+
/** Width of the edge bands (px, in grid coordinates) that count as a table hit zone. */
|
|
6
|
+
export declare const TABLE_HIT_BAND = 4;
|
|
7
|
+
export type TableHitZone = {
|
|
8
|
+
/**
|
|
9
|
+
* `column`: the top edge of a header cell (selects the column data, then
|
|
10
|
+
* the entire table column). `corner`: the header's top-left corner (selects
|
|
11
|
+
* the data body, then the whole table). `row`: the left edge of the first
|
|
12
|
+
* column (selects the table row).
|
|
13
|
+
*/
|
|
14
|
+
kind: "column" | "corner" | "row";
|
|
15
|
+
table: TableView;
|
|
16
|
+
cell: CellInterface;
|
|
17
|
+
};
|
|
18
|
+
/** Excel's black selection arrows: down on a header edge, right on a row edge, diagonal on the corner. */
|
|
19
|
+
export declare const TABLE_HIT_CURSORS: Record<TableHitZone["kind"], string>;
|
|
20
|
+
/**
|
|
21
|
+
* Classify a pointer position inside `cell` against the table it belongs to.
|
|
22
|
+
* `offset` is the pointer's position relative to the cell's top-left corner.
|
|
23
|
+
*/
|
|
24
|
+
export declare const getTableHitZone: (table: TableView | undefined, cell: CellInterface, offset: {
|
|
25
|
+
x: number;
|
|
26
|
+
y: number;
|
|
27
|
+
}, band?: number) => TableHitZone | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* The range a click on `zone` selects, given the single selected area (if
|
|
30
|
+
* any): a header edge selects the column data first and the entire table
|
|
31
|
+
* column on the next click; the corner toggles data body ↔ whole table; a row
|
|
32
|
+
* edge selects the table row.
|
|
33
|
+
*/
|
|
34
|
+
export declare const getTableHitZoneRange: (zone: TableHitZone, current: GridRange | undefined) => GridRange;
|
|
35
|
+
export type UseTableHitZonesOptions = {
|
|
36
|
+
sheetId: number;
|
|
37
|
+
tables: CanvasGridProps["tables"];
|
|
38
|
+
selections: SelectionArea[];
|
|
39
|
+
frozenRows: number;
|
|
40
|
+
frozenColumns: number;
|
|
41
|
+
getCellCoordsFromOffset: (x: number, y: number) => CellInterface | undefined;
|
|
42
|
+
getRelativePositionFromOffset: (x: number, y: number) => PosXYRequired | null | undefined;
|
|
43
|
+
getCellOffsetFromCoords: (cell: CellInterface) => CellPosition | undefined;
|
|
44
|
+
getScrollPosition: () => ScrollCoords | undefined;
|
|
45
|
+
/** Replaces the selection with `range`, active cell at its top-left. */
|
|
46
|
+
onSelectRange: (sheetId: number, range: GridRange) => void;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Excel's table hit zones: hovering the top edge of a header cell, the
|
|
50
|
+
* header's top-left corner or the left edge of a row shows the black
|
|
51
|
+
* selection arrow; a click there selects the table column data / body / row
|
|
52
|
+
* instead of starting a cell selection.
|
|
53
|
+
*/
|
|
54
|
+
export declare const useTableHitZones: ({ sheetId, tables, selections, frozenRows, frozenColumns, getCellCoordsFromOffset, getRelativePositionFromOffset, getCellOffsetFromCoords, getScrollPosition, onSelectRange, }: UseTableHitZonesOptions) => {
|
|
55
|
+
hitZone: TableHitZone | undefined;
|
|
56
|
+
cursor: string | undefined;
|
|
57
|
+
onMouseMove: (e: React.MouseEvent<HTMLElement>) => void;
|
|
58
|
+
onMouseDown: (e: React.MouseEvent<HTMLElement>) => boolean;
|
|
59
|
+
clearHitZone: () => void;
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=use-table-hit-zones.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-table-hit-zones.d.ts","sourceRoot":"","sources":["../../../hooks/use-table-hit-zones.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,aAAa,EACb,YAAY,EACZ,aAAa,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,wFAAwF;AACxF,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,MAAM,MAAM,YAAY,GAAG;IACzB;;;;;OAKG;IACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClC,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,aAAa,CAAC;CACrB,CAAC;AAOF,0GAA0G;AAC1G,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAIlE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAC1B,OAAO,SAAS,GAAG,SAAS,EAC5B,MAAM,aAAa,EACnB,QAAQ;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAChC,aAAqB,KACpB,YAAY,GAAG,SA0BjB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,YAAY,EAClB,SAAS,SAAS,GAAG,SAAS,KAC7B,SA+BF,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAClC,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,CAAC;IAC7E,6BAA6B,EAAE,CAC7B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,KACN,aAAa,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,uBAAuB,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,YAAY,GAAG,SAAS,CAAC;IAC3E,iBAAiB,EAAE,MAAM,YAAY,GAAG,SAAS,CAAC;IAClD,wEAAwE;IACxE,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CAC5D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,gLAW9B,uBAAuB;;;qBAyClB,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;qBAqB7B,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;;CA4BpC,CAAC"}
|