@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
|
@@ -8,7 +8,6 @@ var grid_2 = require("@rowsncolumns/grid");
|
|
|
8
8
|
var grid_3 = require("@rowsncolumns/grid");
|
|
9
9
|
var grid_4 = require("@rowsncolumns/grid");
|
|
10
10
|
var grid_5 = require("@rowsncolumns/grid");
|
|
11
|
-
var spreadsheet_state_1 = require("@rowsncolumns/spreadsheet-state");
|
|
12
11
|
var ui_1 = require("@rowsncolumns/ui");
|
|
13
12
|
var utils_1 = require("@rowsncolumns/utils");
|
|
14
13
|
var jotai_1 = require("jotai");
|
|
@@ -17,6 +16,8 @@ var throttle_1 = tslib_1.__importDefault(require("lodash/throttle"));
|
|
|
17
16
|
var react_1 = tslib_1.__importStar(require("react"));
|
|
18
17
|
var banded_ranges_1 = require("../../api/banded-ranges");
|
|
19
18
|
var insert_options_1 = require("../../api/insert-options");
|
|
19
|
+
var calculated_column_fill_1 = require("../../api/calculated-column-fill");
|
|
20
|
+
var table_auto_expansion_1 = require("../../api/table-auto-expansion");
|
|
20
21
|
var cf_window_1 = require("../../api/cf-window");
|
|
21
22
|
var selections_1 = require("../../api/selections");
|
|
22
23
|
var spreadsheet_api_1 = require("../../api/spreadsheet-api");
|
|
@@ -41,9 +42,12 @@ var use_border_styles_1 = require("../../hooks/use-border-styles");
|
|
|
41
42
|
var use_callback_ref_1 = require("../../hooks/use-callback-ref");
|
|
42
43
|
var use_cell_popover_1 = require("../../hooks/use-cell-popover");
|
|
43
44
|
var use_cell_renderer_1 = require("../../hooks/use-cell-renderer");
|
|
45
|
+
var use_chart_source_ranges_1 = require("../../hooks/use-chart-source-ranges");
|
|
44
46
|
var use_conditional_formatting_1 = require("../../hooks/use-conditional-formatting");
|
|
45
47
|
var use_context_menu_1 = require("../../hooks/use-context-menu");
|
|
46
48
|
var use_context_setter_1 = require("../../hooks/use-context-setter");
|
|
49
|
+
var use_reveal_chart_embed_1 = require("../../hooks/use-reveal-chart-embed");
|
|
50
|
+
var use_chart_clipboard_1 = require("../../hooks/use-chart-clipboard");
|
|
47
51
|
var use_copy_paste_cut_1 = require("../../hooks/use-copy-paste-cut");
|
|
48
52
|
var use_create_address_from_selection_1 = require("../../hooks/use-create-address-from-selection");
|
|
49
53
|
var use_create_formula_tokenizer_1 = require("../../hooks/use-create-formula-tokenizer");
|
|
@@ -53,6 +57,7 @@ var use_editor_change_1 = require("../../hooks/use-editor-change");
|
|
|
53
57
|
var use_editor_keydown_1 = require("../../hooks/use-editor-keydown");
|
|
54
58
|
var use_editor_submit_1 = require("../../hooks/use-editor-submit");
|
|
55
59
|
var use_embeds_charts_1 = require("../../hooks/use-embeds-charts");
|
|
60
|
+
var chart_sheet_view_1 = require("../chart-sheet-view");
|
|
56
61
|
var use_expand_cell_1 = require("../../hooks/use-expand-cell");
|
|
57
62
|
var use_export_range_1 = require("../../hooks/use-export-range");
|
|
58
63
|
var use_filter_1 = require("../../hooks/use-filter");
|
|
@@ -84,6 +89,7 @@ var use_sheet_change_handler_1 = require("../../hooks/use-sheet-change-handler")
|
|
|
84
89
|
var use_sizer_1 = require("../../hooks/use-sizer");
|
|
85
90
|
var use_stable_ref_1 = require("../../hooks/use-stable-ref");
|
|
86
91
|
var use_structured_reference_selection_1 = require("../../hooks/use-structured-reference-selection");
|
|
92
|
+
var use_table_hit_zones_1 = require("../../hooks/use-table-hit-zones");
|
|
87
93
|
var use_table_resizer_1 = require("../../hooks/use-table-resizer");
|
|
88
94
|
var use_delayed_value_1 = require("../../hooks/use-delayed-value");
|
|
89
95
|
var use_tooltip_1 = require("../../hooks/use-tooltip");
|
|
@@ -95,6 +101,9 @@ var fill_series_1 = require("../../api/fill-series");
|
|
|
95
101
|
var cell_1 = require("../cell");
|
|
96
102
|
var cell_editor_1 = require("../cell-editor");
|
|
97
103
|
var context_menu_1 = require("../context-menu");
|
|
104
|
+
var menu_1 = require("../context-menu/menu");
|
|
105
|
+
var style_1 = require("../context-menu/style");
|
|
106
|
+
var total_row_function_menu_1 = require("../context-menu/total-row-function-menu");
|
|
98
107
|
var fill_handle_1 = require("../fill-handle");
|
|
99
108
|
var filter_box_1 = require("../filter-box");
|
|
100
109
|
var header_cell_1 = require("../header-cell");
|
|
@@ -109,8 +118,10 @@ var helpers_2 = require("./helpers");
|
|
|
109
118
|
* @param CanvasGridMethods
|
|
110
119
|
* @returns
|
|
111
120
|
*/
|
|
121
|
+
/** Where the grid focuses when no cell is given (A1); mirrors spreadsheet-state's `defaultCellCoords` without importing it — that package depends on this one. */
|
|
122
|
+
var defaultCellCoords = { rowIndex: 1, columnIndex: 1 };
|
|
112
123
|
function CanvasGridComponent(props, forwardedRef) {
|
|
113
|
-
var licenseKey = props.licenseKey, sheetId = props.sheetId, instanceId = props.instanceId, _a = props.activeCell, activeCell = _a === void 0 ? config_1.DEFAULT_ACTIVE_CELL : _a, _b = props.selections, selections = _b === void 0 ? config_1.DEFAULT_ARRAY : _b, _c = props.frozenColumnCount, frozenColumnCount = _c === void 0 ? 0 : _c, _d = props.frozenRowCount, frozenRowCount = _d === void 0 ? 0 : _d, _e = props.rowCount, rowCount = _e === void 0 ? config_1.DEFAULT_ROW_COUNT : _e, _f = props.columnCount, columnCount = _f === void 0 ? config_1.DEFAULT_COLUMN_COUNT : _f, autoFocus = props.autoFocus, basicFilter = props.basicFilter, tables = props.tables, namedRanges = props.namedRanges, _g = props.bandedRanges, bandedRanges = _g === void 0 ? config_1.DEFAULT_ARRAY : _g, _h = props.tableBorderColor, tableBorderColor = _h === void 0 ? "#008000" : _h, _j = props.filterIconColor, filterIconColor = _j === void 0 ? "#008000" : _j, conditionalFormats = props.conditionalFormats, _k = props.showFilterIcon, showFilterIcon = _k === void 0 ? true : _k, _l = props.showCalculatedColumnIcon, showCalculatedColumnIcon = _l === void 0 ? true : _l, _m = props.showHeaders, showHeaders = _m === void 0 ? true : _m, _o = props.defaultColumnWidth, defaultColumnWidth = _o === void 0 ? config_1.DEFAULT_COLUMN_WIDTH : _o, _p = props.defaultRowHeight, defaultRowHeight = _p === void 0 ? config_1.DEFAULT_ROW_HEIGHT : _p, _q = props.columnHeaderHeight, columnHeaderHeight = _q === void 0 ? config_1.COLUMN_HEADER_HEIGHT : _q, _r = props.rowHeaderWidth, rowHeaderWidth = _r === void 0 ? config_1.ROW_HEADER_WIDTH : _r, _s = props.gridLineColor, gridLineColor = _s === void 0 ? config_1.GRIDLINE_COLOR : _s, _t = props.cellBackgroundColor, cellBackgroundColor = _t === void 0 ? config_1.DEFAULT_CELL_BACKGROUND_COLOR : _t, _u = props.cellColor, cellColor = _u === void 0 ? config_1.DEFAULT_CELL_COLOR : _u, _v = props.headerBorderColor, headerBorderColor = _v === void 0 ? config_1.DEFAULT_HEADER_BORDER_COLOR : _v, _w = props.headerBackgroundColor, headerBackgroundColor = _w === void 0 ? config_1.DEFAULT_HEADER_BG : _w, _x = props.headerColor, headerColor = _x === void 0 ? config_1.DEFAULT_HEADER_COLOR : _x, _y = props.headerActiveBackgroundColor, headerActiveBackgroundColor = _y === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_BG : _y, _z = props.headerSelectedBackgroundColor, headerSelectedBackgroundColor = _z === void 0 ? config_1.DEFAULT_HEADER_SELECTED_BG : _z, _0 = props.headerSelectedColor, headerSelectedColor = _0 === void 0 ? "white" : _0, _1 = props.headerTableBackgroundColor, headerTableBackgroundColor = _1 === void 0 ? config_1.DEFAULT_HEADER_TABLE_BG : _1, _2 = props.headerTableActiveBackgroundColor, headerTableActiveBackgroundColor = _2 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_TABLE_BG : _2, _3 = props.headerTableSelectedBackgroundColor, headerTableSelectedBackgroundColor = _3 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_TABLE_BG : _3, _4 = props.frozenShadowColor, frozenShadowColor = _4 === void 0 ? headerBorderColor : _4, _5 = props.frozenShadowThickness, frozenShadowThickness = _5 === void 0 ? 1 : _5, _6 = props.selectionBackgroundColor, selectionBackgroundColor = _6 === void 0 ? config_1.SELECTION_BG : _6, _7 = props.selectionBorderColor, selectionBorderColor = _7 === void 0 ? config_1.SELECTION_BORDER : _7, _8 = props.selectionDragBorderColor, selectionDragBorderColor = _8 === void 0 ? config_1.SELECTION_BORDER : _8, chartSelectedColor = props.chartSelectedColor, _9 = props.chipBackgroundColor, chipBackgroundColor = _9 === void 0 ? config_1.CHIP_COLOR : _9, _10 = props.merges, merges = _10 === void 0 ? config_1.DEFAULT_ARRAY : _10, borderStyles = props.borderStyles, protectedRanges = props.protectedRanges, _11 = props.isWorkbookProtected, isWorkbookProtectedProp = _11 === void 0 ? false : _11, getSheetProtection = props.getSheetProtection, pivotTables = props.pivotTables, charts = props.charts, embeds = props.embeds, slicers = props.slicers, _12 = props.rowMetadata, rowMetadata = _12 === void 0 ? config_1.DEFAULT_ARRAY : _12, _13 = props.columnMetadata, columnMetadata = _13 === void 0 ? config_1.DEFAULT_ARRAY : _13, _14 = props.scale, scale = _14 === void 0 ? 1 : _14, _15 = props.zoomSpeed, zoomSpeed = _15 === void 0 ? 1 : _15, _16 = props.overscanCount, overscanCount = _16 === void 0 ? 3 : _16, _17 = props.enableEditOnEnterKey, enableEditOnEnterKey = _17 === void 0 ? true : _17, _18 = props.enableTextOverflow, enableTextOverflow = _18 === void 0 ? true : _18, _showGridLines = props.showGridLines, _19 = props.showFormulas, showFormulas = _19 === void 0 ? false : _19, _20 = props.protectFormulas, protectFormulas = _20 === void 0 ? false : _20, _21 = props.showFrozenSeparator, showFrozenSeparator = _21 === void 0 ? true : _21, _22 = props.HeaderCell, HeaderCell = _22 === void 0 ? header_cell_1.HeaderCell : _22, _23 = props.Cell, Cell = _23 === void 0 ? cell_1.Cell : _23, _24 = props.SelectionTitleComponent, SelectionTitleComponent = _24 === void 0 ? title_1.SelectionTitle : _24, _25 = props.CellEditor, CellEditor = _25 === void 0 ? cell_editor_1.CellEditor : _25, CellTooltip = props.CellTooltip, _26 = props.ContextMenu, ContextMenu = _26 === void 0 ? context_menu_1.ContextMenu : _26, _27 = props.ContextMenuWrapper, ContextMenuWrapper = _27 === void 0 ? use_context_menu_1.DefaultContextMenuWrapper : _27, _28 = props.FilterBox, FilterBox = _28 === void 0 ? filter_box_1.FilterBox : _28, _29 = props.HeaderMoveDragComponent, HeaderMoveDragComponent = _29 === void 0 ? header_move_1.HeaderMoveDragComponent : _29, SuggestionsDropdown = props.SuggestionsDropdown, _30 = props.stickyEditor, stickyEditor = _30 === void 0 ? true : _30, _31 = props.scrollSnap, scrollSnap = _31 === void 0 ? false : _31, scrollThrottleTimeout = props.scrollThrottleTimeout, preventBrowserDefaultScroll = props.preventBrowserDefaultScroll, _32 = props.mouseMoveThrottleTimeout, mouseMoveThrottleTimeout = _32 === void 0 ? 60 : _32, _33 = props.tooltipIntentInterval, tooltipIntentInterval = _33 === void 0 ? 60 : _33, selectionPolicy = props.selectionPolicy, users = props.users, userId = props.userId, renderCollaboratorCursor = props.renderCollaboratorCursor, functionDescriptions = props.functionDescriptions, _34 = props.showHeaderMenuButton, showHeaderMenuButton = _34 === void 0 ? true : _34, _35 = props.scrollbarSize, scrollbarSize = _35 === void 0 ? config_1.SCROLLBAR_SIZE : _35, _36 = props.theme, theme = _36 === void 0 ? config_1.defaultSpreadsheetTheme : _36, _37 = props.showNotes, showNotes = _37 === void 0 ? true : _37, _38 = props.showComments, showComments = _38 === void 0 ? true : _38, locale = props.locale, formulaLocaleProp = props.formulaLocale, agentSuggestions = props.agentSuggestions, onReviewSuggestion = props.onReviewSuggestion, onShowFormulas = props.onShowFormulas, getDataRowCount = props.getDataRowCount, getChartComponent = props.getChartComponent, getEmbedComponent = props.getEmbedComponent, getSlicerComponent = props.getSlicerComponent, onChange = props.onChange, onChangeBatch = props.onChangeBatch, onExpandCollapse = props.onExpandCollapse, onPivotDrillDown = props.onPivotDrillDown, onDelete = props.onDelete, onChangeEditorValue = props.onChangeEditorValue, onFill = props.onFill, onRequestCalculate = props.onRequestCalculate, onChangeActiveCell = props.onChangeActiveCell, onChangeActiveSheet = props.onChangeActiveSheet, onChangeSelections = props.onChangeSelections, getSheetName = props.getSheetName, getSheetId = props.getSheetId, getCellData = props.getCellData, getNoteProp = props.getNote, getTextFormatRuns = props.getTextFormatRuns, getDataValidation = props.getDataValidation, getEffectiveFormat = props.getEffectiveFormat, getFormattedValueProp = props.getFormattedValue, getTooltipContent = props.getTooltipContent, errorResolutionComponent = props.errorResolutionComponent, getEffectiveValueProp = props.getEffectiveValue, getUserEnteredExtendedValue = props.getUserEnteredExtendedValue, getEffectiveExtendedValue = props.getEffectiveExtendedValue, getSheetRowCount = props.getSheetRowCount, getSheetColumnCount = props.getSheetColumnCount, getCellPopoverContent = props.getCellPopoverContent, onScroll = props.onScroll, onViewPortChange = props.onViewPortChange, _39 = props.windowConditionalFormats, windowConditionalFormats = _39 === void 0 ? false : _39, _40 = props.engineConditionalFormatResults, engineConditionalFormatResults = _40 === void 0 ? false : _40, onResize = props.onResize, onAutoResize = props.onAutoResize, onHideColumn = props.onHideColumn, onHideRow = props.onHideRow, onShowColumn = props.onShowColumn, onShowRow = props.onShowRow, onGroupRows = props.onGroupRows, onUngroupRows = props.onUngroupRows, onCollapseRowGroup = props.onCollapseRowGroup, onExpandRowGroup = props.onExpandRowGroup, onGroupColumns = props.onGroupColumns, onUngroupColumns = props.onUngroupColumns, onCollapseColumnGroup = props.onCollapseColumnGroup, onExpandColumnGroup = props.onExpandColumnGroup, onSetOutlineDepth = props.onSetOutlineDepth, onDeleteRow = props.onDeleteRow, onDeleteColumn = props.onDeleteColumn, onInsertRow = props.onInsertRow, onInsertColumn = props.onInsertColumn, onInsertCellsShiftDown = props.onInsertCellsShiftDown, onInsertCellsShiftRight = props.onInsertCellsShiftRight, onDeleteCellsShiftLeft = props.onDeleteCellsShiftLeft, onDeleteCellsShiftUp = props.onDeleteCellsShiftUp, onClearContents = props.onClearContents, onMoveColumns = props.onMoveColumns, onMoveRows = props.onMoveRows, onSelectNextSheet = props.onSelectNextSheet, onSelectPreviousSheet = props.onSelectPreviousSheet, onCreateNewSheet = props.onCreateNewSheet, onKeyDown = props.onKeyDown, onChangeFormatting = props.onChangeFormatting, onRepeatFormatting = props.onRepeatFormatting, onClearFormatting = props.onClearFormatting, onRequestEditProtectedRange = props.onRequestEditProtectedRange, onMoveChart = props.onMoveChart, onResizeChart = props.onResizeChart, onDeleteChart = props.onDeleteChart, onMoveEmbed = props.onMoveEmbed, onResizeEmbed = props.onResizeEmbed, onDeleteEmbed = props.onDeleteEmbed, onRequestEditEmbed = props.onRequestEditEmbed, onMoveSlicer = props.onMoveSlicer, onResizeSlicer = props.onResizeSlicer, onDeleteSlicer = props.onDeleteSlicer, onRequestEditSlicer = props.onRequestEditSlicer, onFillRange = props.onFillRange, disableFillRightShortcut = props.disableFillRightShortcut, keymap = props.keymap, onCalculateNow = props.onCalculateNow, onRequestGoTo = props.onRequestGoTo, onMoveSelection = props.onMoveSelection, onInsertCutCells = props.onInsertCutCells, onInsertTime = props.onInsertTime, onInsertDate = props.onInsertDate, onInsertDateTime = props.onInsertDateTime, onInsertAutoSum = props.onInsertAutoSum, onUndo = props.onUndo, onRedo = props.onRedo, onPaste = props.onPaste, onCopy = props.onCopy, onCut = props.onCut, onSortColumn = props.onSortColumn, onSortTable = props.onSortTable, onFilterTable = props.onFilterTable, onFilterPivot = props.onFilterPivot, onResizeTable = props.onResizeTable, onRequestEditTable = props.onRequestEditTable, onRequestEditPivotTable = props.onRequestEditPivotTable, onRequestDeletePivotTable = props.onRequestDeletePivotTable, onRemoveTable = props.onRemoveTable, onCreateTable = props.onCreateTable, onInsertTableColumn = props.onInsertTableColumn, onDeleteTableColumn = props.onDeleteTableColumn, onInsertTableRow = props.onInsertTableRow, onDeleteTableRow = props.onDeleteTableRow, onCreateBasicFilter = props.onCreateBasicFilter, onRequestDefineNamedRange = props.onRequestDefineNamedRange, onRequestFormatCells = props.onRequestFormatCells, onRequestConditionalFormat = props.onRequestConditionalFormat, onRequestDataValidation = props.onRequestDataValidation, onRequestInsertComment = props.onRequestInsertComment, onRequestInsertLink = props.onRequestInsertLink, onFreezeColumn = props.onFreezeColumn, onFreezeRow = props.onFreezeRow, onUpdateNote = props.onUpdateNote, onProtectRange = props.onProtectRange, onUnProtectRange = props.onUnProtectRange, onSortRange = props.onSortRange, onRequestSearch = props.onRequestSearch, onRequestReplace = props.onRequestReplace, onRequestResize = props.onRequestResize, _41 = props.getRowHeaderText, getRowHeaderText = _41 === void 0 ? helpers_1.getDefaultRowHeader : _41, _42 = props.getColumnHeaderText, getColumnHeaderText = _42 === void 0 ? helpers_1.getDefaultColumnHeader : _42, getAdditionalCellSpacing = props.getAdditionalCellSpacing, _43 = props.tokenizer, defaultTokenizer = _43 === void 0 ? calculator_1.tokenize : _43, onChangeScale = props.onChangeScale, onRemoveLink = props.onRemoveLink, onSelectLink = props.onSelectLink, onSplitTextToColumns = props.onSplitTextToColumns, onRemoveDuplicates = props.onRemoveDuplicates, onGoalSeek = props.onGoalSeek, onSubtotal = props.onSubtotal, onAdvancedFilter = props.onAdvancedFilter, onRequestExpand = props.onRequestExpand, cellExpandPredicate = props.cellExpandPredicate, _44 = props.StructuredResult, StructuredResult = _44 === void 0 ? cell_structured_1.StructuredResultRenderer : _44, getMentions = props.getMentions, getStructuredPropertiesProp = props.getStructuredProperties, getFunctionParameterSuggestions = props.getFunctionParameterSuggestions, shouldFetchFunctionParameters = props.shouldFetchFunctionParameters, MentionTagComponent = props.MentionTagComponent, MentionDropdownItemComponent = props.MentionDropdownItemComponent, _45 = props.showSelectionResizeHandles, showSelectionResizeHandles = _45 === void 0 ? true : _45, enableMagicFill = props.enableMagicFill, _46 = props.enableQuickEdit, enableQuickEdit = _46 === void 0 ? true : _46, MagicFillComponent = props.MagicFillComponent, MagicFillContent = props.MagicFillContent, QuickEdit = props.QuickEdit, PasteMenu = props.PasteMenu, SuggestionAction = props.SuggestionAction, HiddenRowMarkers = props.HiddenRowMarkers, HiddenColumnMarkers = props.HiddenColumnMarkers, enableResizerOverflow = props.enableResizerOverflow, className = props.className, _47 = props.defaultFontSizePoint, defaultFontSizePoint = _47 === void 0 ? config_1.DEFAULT_FONT_SIZE_PT : _47, readonly = props.readonly, _48 = props.isComparing, isComparing = _48 === void 0 ? false : _48, getCellDiff = props.getCellDiff, enableDataBoundaryNavigation = props.enableDataBoundaryNavigation, footerHeight = props.footerHeight, footerComponent = props.footerComponent, arrowComponents = props.arrowComponents,
|
|
124
|
+
var licenseKey = props.licenseKey, sheetId = props.sheetId, sheetType = props.sheetType, _a = props.ChartSheetView, ChartSheetViewComponent = _a === void 0 ? chart_sheet_view_1.ChartSheetView : _a, instanceId = props.instanceId, _b = props.activeCell, activeCell = _b === void 0 ? config_1.DEFAULT_ACTIVE_CELL : _b, _c = props.selections, selections = _c === void 0 ? config_1.DEFAULT_ARRAY : _c, _d = props.frozenColumnCount, frozenColumnCount = _d === void 0 ? 0 : _d, _e = props.frozenRowCount, frozenRowCount = _e === void 0 ? 0 : _e, _f = props.rowCount, rowCount = _f === void 0 ? config_1.DEFAULT_ROW_COUNT : _f, _g = props.columnCount, columnCount = _g === void 0 ? config_1.DEFAULT_COLUMN_COUNT : _g, autoFocus = props.autoFocus, basicFilter = props.basicFilter, tables = props.tables, namedRanges = props.namedRanges, _h = props.bandedRanges, bandedRanges = _h === void 0 ? config_1.DEFAULT_ARRAY : _h, _j = props.tableBorderColor, tableBorderColor = _j === void 0 ? "#008000" : _j, _k = props.filterIconColor, filterIconColor = _k === void 0 ? "#008000" : _k, conditionalFormats = props.conditionalFormats, _l = props.showFilterIcon, showFilterIcon = _l === void 0 ? true : _l, _m = props.showCalculatedColumnIcon, showCalculatedColumnIcon = _m === void 0 ? true : _m, _o = props.showHeaders, showHeaders = _o === void 0 ? true : _o, _p = props.defaultColumnWidth, defaultColumnWidth = _p === void 0 ? config_1.DEFAULT_COLUMN_WIDTH : _p, _q = props.defaultRowHeight, defaultRowHeight = _q === void 0 ? config_1.DEFAULT_ROW_HEIGHT : _q, _r = props.columnHeaderHeight, columnHeaderHeight = _r === void 0 ? config_1.COLUMN_HEADER_HEIGHT : _r, _s = props.rowHeaderWidth, rowHeaderWidth = _s === void 0 ? config_1.ROW_HEADER_WIDTH : _s, _t = props.gridLineColor, gridLineColor = _t === void 0 ? config_1.GRIDLINE_COLOR : _t, _u = props.cellBackgroundColor, cellBackgroundColor = _u === void 0 ? config_1.DEFAULT_CELL_BACKGROUND_COLOR : _u, _v = props.cellColor, cellColor = _v === void 0 ? config_1.DEFAULT_CELL_COLOR : _v, _w = props.headerBorderColor, headerBorderColor = _w === void 0 ? config_1.DEFAULT_HEADER_BORDER_COLOR : _w, _x = props.headerBackgroundColor, headerBackgroundColor = _x === void 0 ? config_1.DEFAULT_HEADER_BG : _x, _y = props.headerColor, headerColor = _y === void 0 ? config_1.DEFAULT_HEADER_COLOR : _y, _z = props.headerActiveBackgroundColor, headerActiveBackgroundColor = _z === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_BG : _z, _0 = props.headerSelectedBackgroundColor, headerSelectedBackgroundColor = _0 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_BG : _0, _1 = props.headerSelectedColor, headerSelectedColor = _1 === void 0 ? "white" : _1, _2 = props.headerTableBackgroundColor, headerTableBackgroundColor = _2 === void 0 ? config_1.DEFAULT_HEADER_TABLE_BG : _2, _3 = props.headerTableActiveBackgroundColor, headerTableActiveBackgroundColor = _3 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_TABLE_BG : _3, _4 = props.headerTableSelectedBackgroundColor, headerTableSelectedBackgroundColor = _4 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_TABLE_BG : _4, _5 = props.frozenShadowColor, frozenShadowColor = _5 === void 0 ? headerBorderColor : _5, _6 = props.frozenShadowThickness, frozenShadowThickness = _6 === void 0 ? 1 : _6, _7 = props.selectionBackgroundColor, selectionBackgroundColor = _7 === void 0 ? config_1.SELECTION_BG : _7, _8 = props.selectionBorderColor, selectionBorderColor = _8 === void 0 ? config_1.SELECTION_BORDER : _8, _9 = props.selectionDragBorderColor, selectionDragBorderColor = _9 === void 0 ? config_1.SELECTION_BORDER : _9, chartSelectedColor = props.chartSelectedColor, _10 = props.chipBackgroundColor, chipBackgroundColor = _10 === void 0 ? config_1.CHIP_COLOR : _10, _11 = props.merges, merges = _11 === void 0 ? config_1.DEFAULT_ARRAY : _11, borderStyles = props.borderStyles, protectedRanges = props.protectedRanges, _12 = props.isWorkbookProtected, isWorkbookProtectedProp = _12 === void 0 ? false : _12, getSheetProtection = props.getSheetProtection, pivotTables = props.pivotTables, charts = props.charts, onUpdateChart = props.onUpdateChart, onChangeZOrder = props.onChangeZOrder, embeds = props.embeds, slicers = props.slicers, _13 = props.rowMetadata, rowMetadata = _13 === void 0 ? config_1.DEFAULT_ARRAY : _13, _14 = props.columnMetadata, columnMetadata = _14 === void 0 ? config_1.DEFAULT_ARRAY : _14, _15 = props.scale, scale = _15 === void 0 ? 1 : _15, _16 = props.zoomSpeed, zoomSpeed = _16 === void 0 ? 1 : _16, _17 = props.overscanCount, overscanCount = _17 === void 0 ? 3 : _17, _18 = props.enableEditOnEnterKey, enableEditOnEnterKey = _18 === void 0 ? true : _18, _19 = props.enableTextOverflow, enableTextOverflow = _19 === void 0 ? true : _19, _showGridLines = props.showGridLines, _20 = props.showFormulas, showFormulas = _20 === void 0 ? false : _20, _21 = props.protectFormulas, protectFormulas = _21 === void 0 ? false : _21, _22 = props.showFrozenSeparator, showFrozenSeparator = _22 === void 0 ? true : _22, _23 = props.HeaderCell, HeaderCell = _23 === void 0 ? header_cell_1.HeaderCell : _23, _24 = props.Cell, Cell = _24 === void 0 ? cell_1.Cell : _24, _25 = props.SelectionTitleComponent, SelectionTitleComponent = _25 === void 0 ? title_1.SelectionTitle : _25, _26 = props.CellEditor, CellEditor = _26 === void 0 ? cell_editor_1.CellEditor : _26, CellTooltip = props.CellTooltip, _27 = props.ContextMenu, ContextMenu = _27 === void 0 ? context_menu_1.ContextMenu : _27, _28 = props.ContextMenuWrapper, ContextMenuWrapper = _28 === void 0 ? use_context_menu_1.DefaultContextMenuWrapper : _28, _29 = props.FilterBox, FilterBox = _29 === void 0 ? filter_box_1.FilterBox : _29, _30 = props.HeaderMoveDragComponent, HeaderMoveDragComponent = _30 === void 0 ? header_move_1.HeaderMoveDragComponent : _30, SuggestionsDropdown = props.SuggestionsDropdown, _31 = props.stickyEditor, stickyEditor = _31 === void 0 ? true : _31, _32 = props.scrollSnap, scrollSnap = _32 === void 0 ? false : _32, scrollThrottleTimeout = props.scrollThrottleTimeout, preventBrowserDefaultScroll = props.preventBrowserDefaultScroll, _33 = props.mouseMoveThrottleTimeout, mouseMoveThrottleTimeout = _33 === void 0 ? 60 : _33, _34 = props.tooltipIntentInterval, tooltipIntentInterval = _34 === void 0 ? 60 : _34, selectionPolicy = props.selectionPolicy, users = props.users, userId = props.userId, renderCollaboratorCursor = props.renderCollaboratorCursor, functionDescriptions = props.functionDescriptions, _35 = props.showHeaderMenuButton, showHeaderMenuButton = _35 === void 0 ? true : _35, _36 = props.scrollbarSize, scrollbarSize = _36 === void 0 ? config_1.SCROLLBAR_SIZE : _36, _37 = props.theme, theme = _37 === void 0 ? config_1.defaultSpreadsheetTheme : _37, _38 = props.showNotes, showNotes = _38 === void 0 ? true : _38, _39 = props.showComments, showComments = _39 === void 0 ? true : _39, locale = props.locale, formulaLocaleProp = props.formulaLocale, agentSuggestions = props.agentSuggestions, onReviewSuggestion = props.onReviewSuggestion, onShowFormulas = props.onShowFormulas, getDataRowCount = props.getDataRowCount, getChartComponent = props.getChartComponent, getEmbedComponent = props.getEmbedComponent, getSlicerComponent = props.getSlicerComponent, onChange = props.onChange, onChangeBatch = props.onChangeBatch, onExpandCollapse = props.onExpandCollapse, onPivotDrillDown = props.onPivotDrillDown, onDelete = props.onDelete, onChangeEditorValue = props.onChangeEditorValue, onFill = props.onFill, onRequestCalculate = props.onRequestCalculate, onChangeActiveCell = props.onChangeActiveCell, onChangeActiveSheet = props.onChangeActiveSheet, onChangeSelections = props.onChangeSelections, getSheetName = props.getSheetName, getSheetId = props.getSheetId, getCellData = props.getCellData, getNoteProp = props.getNote, getTextFormatRuns = props.getTextFormatRuns, getDataValidation = props.getDataValidation, getEffectiveFormat = props.getEffectiveFormat, getFormattedValueProp = props.getFormattedValue, getTooltipContent = props.getTooltipContent, errorResolutionComponent = props.errorResolutionComponent, getEffectiveValueProp = props.getEffectiveValue, getSparklineGroup = props.getSparklineGroup, getUserEnteredExtendedValue = props.getUserEnteredExtendedValue, getEffectiveExtendedValue = props.getEffectiveExtendedValue, getSheetRowCount = props.getSheetRowCount, getSheetColumnCount = props.getSheetColumnCount, getCellPopoverContent = props.getCellPopoverContent, onScroll = props.onScroll, onViewPortChange = props.onViewPortChange, _40 = props.windowConditionalFormats, windowConditionalFormats = _40 === void 0 ? false : _40, _41 = props.engineConditionalFormatResults, engineConditionalFormatResults = _41 === void 0 ? false : _41, onResize = props.onResize, onAutoResize = props.onAutoResize, onHideColumn = props.onHideColumn, onHideRow = props.onHideRow, onShowColumn = props.onShowColumn, onShowRow = props.onShowRow, onGroupRows = props.onGroupRows, onUngroupRows = props.onUngroupRows, onCollapseRowGroup = props.onCollapseRowGroup, onExpandRowGroup = props.onExpandRowGroup, onGroupColumns = props.onGroupColumns, onUngroupColumns = props.onUngroupColumns, onCollapseColumnGroup = props.onCollapseColumnGroup, onExpandColumnGroup = props.onExpandColumnGroup, onSetOutlineDepth = props.onSetOutlineDepth, onDeleteRow = props.onDeleteRow, onDeleteColumn = props.onDeleteColumn, onInsertRow = props.onInsertRow, onInsertColumn = props.onInsertColumn, onChangeAutoExpandTables = props.onChangeAutoExpandTables, onChangeAutoCalculatedColumns = props.onChangeAutoCalculatedColumns, onInsertCellsShiftDown = props.onInsertCellsShiftDown, onInsertCellsShiftRight = props.onInsertCellsShiftRight, onDeleteCellsShiftLeft = props.onDeleteCellsShiftLeft, onDeleteCellsShiftUp = props.onDeleteCellsShiftUp, onClearContents = props.onClearContents, onMoveColumns = props.onMoveColumns, onMoveRows = props.onMoveRows, onSelectNextSheet = props.onSelectNextSheet, onSelectPreviousSheet = props.onSelectPreviousSheet, onCreateNewSheet = props.onCreateNewSheet, onKeyDown = props.onKeyDown, onChangeFormatting = props.onChangeFormatting, onRepeatFormatting = props.onRepeatFormatting, onClearFormatting = props.onClearFormatting, onRequestEditProtectedRange = props.onRequestEditProtectedRange, onMoveChart = props.onMoveChart, onResizeChart = props.onResizeChart, onDeleteChart = props.onDeleteChart, onCutChart = props.onCutChart, onCopyChart = props.onCopyChart, onMoveEmbed = props.onMoveEmbed, onResizeEmbed = props.onResizeEmbed, onDeleteEmbed = props.onDeleteEmbed, onRequestEditEmbed = props.onRequestEditEmbed, onMoveSlicer = props.onMoveSlicer, onResizeSlicer = props.onResizeSlicer, onDeleteSlicer = props.onDeleteSlicer, onRequestEditSlicer = props.onRequestEditSlicer, onFillRange = props.onFillRange, disableFillRightShortcut = props.disableFillRightShortcut, keymap = props.keymap, onCalculateNow = props.onCalculateNow, onRequestGoTo = props.onRequestGoTo, onMoveSelection = props.onMoveSelection, onInsertCutCells = props.onInsertCutCells, onInsertTime = props.onInsertTime, onInsertDate = props.onInsertDate, onInsertDateTime = props.onInsertDateTime, onInsertAutoSum = props.onInsertAutoSum, onUndo = props.onUndo, onRedo = props.onRedo, onPaste = props.onPaste, onCopy = props.onCopy, onCut = props.onCut, onSortColumn = props.onSortColumn, onSortTable = props.onSortTable, onFilterTable = props.onFilterTable, onFilterPivot = props.onFilterPivot, onResizeTable = props.onResizeTable, onUndoTableAutoExpansion = props.onUndoTableAutoExpansion, onUndoCalculatedColumn = props.onUndoCalculatedColumn, onOverwriteCalculatedColumn = props.onOverwriteCalculatedColumn, onRequestEditTable = props.onRequestEditTable, onRequestEditPivotTable = props.onRequestEditPivotTable, onRequestDeletePivotTable = props.onRequestDeletePivotTable, onRequestCreatePivotChart = props.onRequestCreatePivotChart, onRemoveTable = props.onRemoveTable, onCreateTable = props.onCreateTable, onRequestCreateTable = props.onRequestCreateTable, onInsertTableColumn = props.onInsertTableColumn, onDeleteTableColumn = props.onDeleteTableColumn, onInsertTableRow = props.onInsertTableRow, onDeleteTableRow = props.onDeleteTableRow, onUpdateTable = props.onUpdateTable, onRequestResizeTable = props.onRequestResizeTable, onRequestInsertSlicer = props.onRequestInsertSlicer, onCreateBasicFilter = props.onCreateBasicFilter, onRequestDefineNamedRange = props.onRequestDefineNamedRange, onRequestFormatCells = props.onRequestFormatCells, onRequestConditionalFormat = props.onRequestConditionalFormat, onRequestDataValidation = props.onRequestDataValidation, onRequestInsertComment = props.onRequestInsertComment, onRequestInsertLink = props.onRequestInsertLink, onFreezeColumn = props.onFreezeColumn, onFreezeRow = props.onFreezeRow, onUpdateNote = props.onUpdateNote, onProtectRange = props.onProtectRange, onUnProtectRange = props.onUnProtectRange, onSortRange = props.onSortRange, onRequestSearch = props.onRequestSearch, onRequestReplace = props.onRequestReplace, onRequestResize = props.onRequestResize, _42 = props.getRowHeaderText, getRowHeaderText = _42 === void 0 ? helpers_1.getDefaultRowHeader : _42, _43 = props.getColumnHeaderText, getColumnHeaderText = _43 === void 0 ? helpers_1.getDefaultColumnHeader : _43, getAdditionalCellSpacing = props.getAdditionalCellSpacing, _44 = props.tokenizer, defaultTokenizer = _44 === void 0 ? calculator_1.tokenize : _44, onChangeScale = props.onChangeScale, onRemoveLink = props.onRemoveLink, onSelectLink = props.onSelectLink, onSplitTextToColumns = props.onSplitTextToColumns, onRemoveDuplicates = props.onRemoveDuplicates, onGoalSeek = props.onGoalSeek, onSubtotal = props.onSubtotal, onAdvancedFilter = props.onAdvancedFilter, onRequestExpand = props.onRequestExpand, cellExpandPredicate = props.cellExpandPredicate, _45 = props.StructuredResult, StructuredResult = _45 === void 0 ? cell_structured_1.StructuredResultRenderer : _45, getMentions = props.getMentions, getStructuredPropertiesProp = props.getStructuredProperties, getFunctionParameterSuggestions = props.getFunctionParameterSuggestions, shouldFetchFunctionParameters = props.shouldFetchFunctionParameters, MentionTagComponent = props.MentionTagComponent, MentionDropdownItemComponent = props.MentionDropdownItemComponent, _46 = props.showSelectionResizeHandles, showSelectionResizeHandles = _46 === void 0 ? true : _46, enableMagicFill = props.enableMagicFill, _47 = props.enableQuickEdit, enableQuickEdit = _47 === void 0 ? true : _47, MagicFillComponent = props.MagicFillComponent, MagicFillContent = props.MagicFillContent, QuickEdit = props.QuickEdit, PasteMenu = props.PasteMenu, SuggestionAction = props.SuggestionAction, HiddenRowMarkers = props.HiddenRowMarkers, HiddenColumnMarkers = props.HiddenColumnMarkers, enableResizerOverflow = props.enableResizerOverflow, className = props.className, _48 = props.defaultFontSizePoint, defaultFontSizePoint = _48 === void 0 ? config_1.DEFAULT_FONT_SIZE_PT : _48, readonly = props.readonly, _49 = props.isComparing, isComparing = _49 === void 0 ? false : _49, getCellDiff = props.getCellDiff, enableDataBoundaryNavigation = props.enableDataBoundaryNavigation, footerHeight = props.footerHeight, footerComponent = props.footerComponent, arrowComponents = props.arrowComponents,
|
|
114
125
|
// Host-driven filter props. `hostHiddenRowRanges`
|
|
115
126
|
// supplies compact [start, end] hidden-row tuples; `getFilterValues` supplies a
|
|
116
127
|
// column's distinct values. Both let a million-row filter render without scanning
|
|
@@ -122,7 +133,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
122
133
|
// defaults to `getFormattedValue` inside `useGetValuesFromRange`.
|
|
123
134
|
getValidationSourceValue = props.getValidationSourceValue,
|
|
124
135
|
// Unused props only for api
|
|
125
|
-
onChangeBorder = props.onChangeBorder, onDuplicateSheet = props.onDuplicateSheet, onCreateConditionalFormattingRule = props.onCreateConditionalFormattingRule, onDeleteConditionalFormattingRule = props.onDeleteConditionalFormattingRule, onUpdateConditionalFormattingRule = props.onUpdateConditionalFormattingRule, onCreateDataValidationRule = props.onCreateDataValidationRule, onUpdateDataValidationRule = props.onUpdateDataValidationRule, onDeleteDataValidationRule = props.onDeleteDataValidationRule, onCreateChart = props.onCreateChart, onDeleteSheet = props.onDeleteSheet, onCreateEmbed = props.onCreateEmbed, onDecreaseIndent = props.onDecreaseIndent, onIncreaseIndent = props.onIncreaseIndent, onChangeTheme = props.onChangeTheme, onChangeDecimals = props.onChangeDecimals, onUpdateSheet = props.onUpdateSheet, onChangeBatchStream = props.onChangeBatchStream, onBlur = props.onBlur, rest = tslib_1.__rest(props, ["licenseKey", "sheetId", "instanceId", "activeCell", "selections", "frozenColumnCount", "frozenRowCount", "rowCount", "columnCount", "autoFocus", "basicFilter", "tables", "namedRanges", "bandedRanges", "tableBorderColor", "filterIconColor", "conditionalFormats", "showFilterIcon", "showCalculatedColumnIcon", "showHeaders", "defaultColumnWidth", "defaultRowHeight", "columnHeaderHeight", "rowHeaderWidth", "gridLineColor", "cellBackgroundColor", "cellColor", "headerBorderColor", "headerBackgroundColor", "headerColor", "headerActiveBackgroundColor", "headerSelectedBackgroundColor", "headerSelectedColor", "headerTableBackgroundColor", "headerTableActiveBackgroundColor", "headerTableSelectedBackgroundColor", "frozenShadowColor", "frozenShadowThickness", "selectionBackgroundColor", "selectionBorderColor", "selectionDragBorderColor", "chartSelectedColor", "chipBackgroundColor", "merges", "borderStyles", "protectedRanges", "isWorkbookProtected", "getSheetProtection", "pivotTables", "charts", "embeds", "slicers", "rowMetadata", "columnMetadata", "scale", "zoomSpeed", "overscanCount", "enableEditOnEnterKey", "enableTextOverflow", "showGridLines", "showFormulas", "protectFormulas", "showFrozenSeparator", "HeaderCell", "Cell", "SelectionTitleComponent", "CellEditor", "CellTooltip", "ContextMenu", "ContextMenuWrapper", "FilterBox", "HeaderMoveDragComponent", "SuggestionsDropdown", "stickyEditor", "scrollSnap", "scrollThrottleTimeout", "preventBrowserDefaultScroll", "mouseMoveThrottleTimeout", "tooltipIntentInterval", "selectionPolicy", "users", "userId", "renderCollaboratorCursor", "functionDescriptions", "showHeaderMenuButton", "scrollbarSize", "theme", "showNotes", "showComments", "locale", "formulaLocale", "agentSuggestions", "onReviewSuggestion", "onShowFormulas", "getDataRowCount", "getChartComponent", "getEmbedComponent", "getSlicerComponent", "onChange", "onChangeBatch", "onExpandCollapse", "onPivotDrillDown", "onDelete", "onChangeEditorValue", "onFill", "onRequestCalculate", "onChangeActiveCell", "onChangeActiveSheet", "onChangeSelections", "getSheetName", "getSheetId", "getCellData", "getNote", "getTextFormatRuns", "getDataValidation", "getEffectiveFormat", "getFormattedValue", "getTooltipContent", "errorResolutionComponent", "getEffectiveValue", "getUserEnteredExtendedValue", "getEffectiveExtendedValue", "getSheetRowCount", "getSheetColumnCount", "getCellPopoverContent", "onScroll", "onViewPortChange", "windowConditionalFormats", "engineConditionalFormatResults", "onResize", "onAutoResize", "onHideColumn", "onHideRow", "onShowColumn", "onShowRow", "onGroupRows", "onUngroupRows", "onCollapseRowGroup", "onExpandRowGroup", "onGroupColumns", "onUngroupColumns", "onCollapseColumnGroup", "onExpandColumnGroup", "onSetOutlineDepth", "onDeleteRow", "onDeleteColumn", "onInsertRow", "onInsertColumn", "onInsertCellsShiftDown", "onInsertCellsShiftRight", "onDeleteCellsShiftLeft", "onDeleteCellsShiftUp", "onClearContents", "onMoveColumns", "onMoveRows", "onSelectNextSheet", "onSelectPreviousSheet", "onCreateNewSheet", "onKeyDown", "onChangeFormatting", "onRepeatFormatting", "onClearFormatting", "onRequestEditProtectedRange", "onMoveChart", "onResizeChart", "onDeleteChart", "onMoveEmbed", "onResizeEmbed", "onDeleteEmbed", "onRequestEditEmbed", "onMoveSlicer", "onResizeSlicer", "onDeleteSlicer", "onRequestEditSlicer", "onFillRange", "disableFillRightShortcut", "keymap", "onCalculateNow", "onRequestGoTo", "onMoveSelection", "onInsertCutCells", "onInsertTime", "onInsertDate", "onInsertDateTime", "onInsertAutoSum", "onUndo", "onRedo", "onPaste", "onCopy", "onCut", "onSortColumn", "onSortTable", "onFilterTable", "onFilterPivot", "onResizeTable", "onRequestEditTable", "onRequestEditPivotTable", "onRequestDeletePivotTable", "onRemoveTable", "onCreateTable", "onInsertTableColumn", "onDeleteTableColumn", "onInsertTableRow", "onDeleteTableRow", "onCreateBasicFilter", "onRequestDefineNamedRange", "onRequestFormatCells", "onRequestConditionalFormat", "onRequestDataValidation", "onRequestInsertComment", "onRequestInsertLink", "onFreezeColumn", "onFreezeRow", "onUpdateNote", "onProtectRange", "onUnProtectRange", "onSortRange", "onRequestSearch", "onRequestReplace", "onRequestResize", "getRowHeaderText", "getColumnHeaderText", "getAdditionalCellSpacing", "tokenizer", "onChangeScale", "onRemoveLink", "onSelectLink", "onSplitTextToColumns", "onRemoveDuplicates", "onGoalSeek", "onSubtotal", "onAdvancedFilter", "onRequestExpand", "cellExpandPredicate", "StructuredResult", "getMentions", "getStructuredProperties", "getFunctionParameterSuggestions", "shouldFetchFunctionParameters", "MentionTagComponent", "MentionDropdownItemComponent", "showSelectionResizeHandles", "enableMagicFill", "enableQuickEdit", "MagicFillComponent", "MagicFillContent", "QuickEdit", "PasteMenu", "SuggestionAction", "HiddenRowMarkers", "HiddenColumnMarkers", "enableResizerOverflow", "className", "defaultFontSizePoint", "readonly", "isComparing", "getCellDiff", "enableDataBoundaryNavigation", "footerHeight", "footerComponent", "arrowComponents", "hostHiddenRowRanges", "getFilterValues", "getFilterColors", "getValidationSourceValue", "onChangeBorder", "onDuplicateSheet", "onCreateConditionalFormattingRule", "onDeleteConditionalFormattingRule", "onUpdateConditionalFormattingRule", "onCreateDataValidationRule", "onUpdateDataValidationRule", "onDeleteDataValidationRule", "onCreateChart", "onDeleteSheet", "onCreateEmbed", "onDecreaseIndent", "onIncreaseIndent", "onChangeTheme", "onChangeDecimals", "onUpdateSheet", "onChangeBatchStream", "onBlur"]);
|
|
136
|
+
onChangeBorder = props.onChangeBorder, onDuplicateSheet = props.onDuplicateSheet, onCreateConditionalFormattingRule = props.onCreateConditionalFormattingRule, onDeleteConditionalFormattingRule = props.onDeleteConditionalFormattingRule, onUpdateConditionalFormattingRule = props.onUpdateConditionalFormattingRule, onCreateDataValidationRule = props.onCreateDataValidationRule, onUpdateDataValidationRule = props.onUpdateDataValidationRule, onDeleteDataValidationRule = props.onDeleteDataValidationRule, onCreateChart = props.onCreateChart, onDeleteSheet = props.onDeleteSheet, onCreateEmbed = props.onCreateEmbed, onDecreaseIndent = props.onDecreaseIndent, onIncreaseIndent = props.onIncreaseIndent, onChangeTheme = props.onChangeTheme, onChangeDecimals = props.onChangeDecimals, onUpdateSheet = props.onUpdateSheet, onChangeBatchStream = props.onChangeBatchStream, onBlur = props.onBlur, rest = tslib_1.__rest(props, ["licenseKey", "sheetId", "sheetType", "ChartSheetView", "instanceId", "activeCell", "selections", "frozenColumnCount", "frozenRowCount", "rowCount", "columnCount", "autoFocus", "basicFilter", "tables", "namedRanges", "bandedRanges", "tableBorderColor", "filterIconColor", "conditionalFormats", "showFilterIcon", "showCalculatedColumnIcon", "showHeaders", "defaultColumnWidth", "defaultRowHeight", "columnHeaderHeight", "rowHeaderWidth", "gridLineColor", "cellBackgroundColor", "cellColor", "headerBorderColor", "headerBackgroundColor", "headerColor", "headerActiveBackgroundColor", "headerSelectedBackgroundColor", "headerSelectedColor", "headerTableBackgroundColor", "headerTableActiveBackgroundColor", "headerTableSelectedBackgroundColor", "frozenShadowColor", "frozenShadowThickness", "selectionBackgroundColor", "selectionBorderColor", "selectionDragBorderColor", "chartSelectedColor", "chipBackgroundColor", "merges", "borderStyles", "protectedRanges", "isWorkbookProtected", "getSheetProtection", "pivotTables", "charts", "onUpdateChart", "onChangeZOrder", "embeds", "slicers", "rowMetadata", "columnMetadata", "scale", "zoomSpeed", "overscanCount", "enableEditOnEnterKey", "enableTextOverflow", "showGridLines", "showFormulas", "protectFormulas", "showFrozenSeparator", "HeaderCell", "Cell", "SelectionTitleComponent", "CellEditor", "CellTooltip", "ContextMenu", "ContextMenuWrapper", "FilterBox", "HeaderMoveDragComponent", "SuggestionsDropdown", "stickyEditor", "scrollSnap", "scrollThrottleTimeout", "preventBrowserDefaultScroll", "mouseMoveThrottleTimeout", "tooltipIntentInterval", "selectionPolicy", "users", "userId", "renderCollaboratorCursor", "functionDescriptions", "showHeaderMenuButton", "scrollbarSize", "theme", "showNotes", "showComments", "locale", "formulaLocale", "agentSuggestions", "onReviewSuggestion", "onShowFormulas", "getDataRowCount", "getChartComponent", "getEmbedComponent", "getSlicerComponent", "onChange", "onChangeBatch", "onExpandCollapse", "onPivotDrillDown", "onDelete", "onChangeEditorValue", "onFill", "onRequestCalculate", "onChangeActiveCell", "onChangeActiveSheet", "onChangeSelections", "getSheetName", "getSheetId", "getCellData", "getNote", "getTextFormatRuns", "getDataValidation", "getEffectiveFormat", "getFormattedValue", "getTooltipContent", "errorResolutionComponent", "getEffectiveValue", "getSparklineGroup", "getUserEnteredExtendedValue", "getEffectiveExtendedValue", "getSheetRowCount", "getSheetColumnCount", "getCellPopoverContent", "onScroll", "onViewPortChange", "windowConditionalFormats", "engineConditionalFormatResults", "onResize", "onAutoResize", "onHideColumn", "onHideRow", "onShowColumn", "onShowRow", "onGroupRows", "onUngroupRows", "onCollapseRowGroup", "onExpandRowGroup", "onGroupColumns", "onUngroupColumns", "onCollapseColumnGroup", "onExpandColumnGroup", "onSetOutlineDepth", "onDeleteRow", "onDeleteColumn", "onInsertRow", "onInsertColumn", "onChangeAutoExpandTables", "onChangeAutoCalculatedColumns", "onInsertCellsShiftDown", "onInsertCellsShiftRight", "onDeleteCellsShiftLeft", "onDeleteCellsShiftUp", "onClearContents", "onMoveColumns", "onMoveRows", "onSelectNextSheet", "onSelectPreviousSheet", "onCreateNewSheet", "onKeyDown", "onChangeFormatting", "onRepeatFormatting", "onClearFormatting", "onRequestEditProtectedRange", "onMoveChart", "onResizeChart", "onDeleteChart", "onCutChart", "onCopyChart", "onMoveEmbed", "onResizeEmbed", "onDeleteEmbed", "onRequestEditEmbed", "onMoveSlicer", "onResizeSlicer", "onDeleteSlicer", "onRequestEditSlicer", "onFillRange", "disableFillRightShortcut", "keymap", "onCalculateNow", "onRequestGoTo", "onMoveSelection", "onInsertCutCells", "onInsertTime", "onInsertDate", "onInsertDateTime", "onInsertAutoSum", "onUndo", "onRedo", "onPaste", "onCopy", "onCut", "onSortColumn", "onSortTable", "onFilterTable", "onFilterPivot", "onResizeTable", "onUndoTableAutoExpansion", "onUndoCalculatedColumn", "onOverwriteCalculatedColumn", "onRequestEditTable", "onRequestEditPivotTable", "onRequestDeletePivotTable", "onRequestCreatePivotChart", "onRemoveTable", "onCreateTable", "onRequestCreateTable", "onInsertTableColumn", "onDeleteTableColumn", "onInsertTableRow", "onDeleteTableRow", "onUpdateTable", "onRequestResizeTable", "onRequestInsertSlicer", "onCreateBasicFilter", "onRequestDefineNamedRange", "onRequestFormatCells", "onRequestConditionalFormat", "onRequestDataValidation", "onRequestInsertComment", "onRequestInsertLink", "onFreezeColumn", "onFreezeRow", "onUpdateNote", "onProtectRange", "onUnProtectRange", "onSortRange", "onRequestSearch", "onRequestReplace", "onRequestResize", "getRowHeaderText", "getColumnHeaderText", "getAdditionalCellSpacing", "tokenizer", "onChangeScale", "onRemoveLink", "onSelectLink", "onSplitTextToColumns", "onRemoveDuplicates", "onGoalSeek", "onSubtotal", "onAdvancedFilter", "onRequestExpand", "cellExpandPredicate", "StructuredResult", "getMentions", "getStructuredProperties", "getFunctionParameterSuggestions", "shouldFetchFunctionParameters", "MentionTagComponent", "MentionDropdownItemComponent", "showSelectionResizeHandles", "enableMagicFill", "enableQuickEdit", "MagicFillComponent", "MagicFillContent", "QuickEdit", "PasteMenu", "SuggestionAction", "HiddenRowMarkers", "HiddenColumnMarkers", "enableResizerOverflow", "className", "defaultFontSizePoint", "readonly", "isComparing", "getCellDiff", "enableDataBoundaryNavigation", "footerHeight", "footerComponent", "arrowComponents", "hostHiddenRowRanges", "getFilterValues", "getFilterColors", "getValidationSourceValue", "onChangeBorder", "onDuplicateSheet", "onCreateConditionalFormattingRule", "onDeleteConditionalFormattingRule", "onUpdateConditionalFormattingRule", "onCreateDataValidationRule", "onUpdateDataValidationRule", "onDeleteDataValidationRule", "onCreateChart", "onDeleteSheet", "onCreateEmbed", "onDecreaseIndent", "onIncreaseIndent", "onChangeTheme", "onChangeDecimals", "onUpdateSheet", "onChangeBatchStream", "onBlur"]);
|
|
126
137
|
/**
|
|
127
138
|
* Fire onBlur only when the cell editor blurs to an element outside the
|
|
128
139
|
* spreadsheet. Routed through `useEditable` so we hook the always-focused
|
|
@@ -138,7 +149,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
138
149
|
var showGridLines = _showGridLines !== null && _showGridLines !== void 0 ? _showGridLines : true;
|
|
139
150
|
var gridRef = (0, react_1.useRef)(null);
|
|
140
151
|
// Hovered cell state (immediate, updated on mousemove)
|
|
141
|
-
var
|
|
152
|
+
var _50 = tslib_1.__read((0, react_1.useState)(), 2), hoveredCell = _50[0], setHoveredCell = _50[1];
|
|
142
153
|
// Delayed hovered cell for tooltips and selection titles
|
|
143
154
|
var delayedHoveredCell = (0, use_delayed_value_1.useDelayedValue)(hoveredCell, tooltipIntentInterval);
|
|
144
155
|
// Text overflow functionality
|
|
@@ -230,15 +241,17 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
230
241
|
// Cell editor
|
|
231
242
|
var cellEditorInstance = (0, formula_bar_editor_value_atom_1.useCellEditorInstance)();
|
|
232
243
|
// Paste menu
|
|
233
|
-
var
|
|
244
|
+
var _51 = tslib_1.__read((0, atoms_1.useShowPasteMenu)(), 2), showPasteMenu = _51[0], setShowPasteMenu = _51[1];
|
|
234
245
|
// Auto Fill Options smart tag / right-drag fill menu + Series dialog
|
|
235
|
-
var
|
|
236
|
-
var
|
|
246
|
+
var _52 = tslib_1.__read((0, atoms_1.useFillOptionsState)(), 2), fillOptions = _52[0], setFillOptions = _52[1];
|
|
247
|
+
var _53 = tslib_1.__read((0, atoms_1.useInsertOptionsState)(), 2), insertOptions = _53[0], setInsertOptions = _53[1];
|
|
248
|
+
var _54 = tslib_1.__read((0, atoms_1.useTableAutoExpansionState)(), 2), tableAutoExpansion = _54[0], setTableAutoExpansion = _54[1];
|
|
249
|
+
var _55 = tslib_1.__read((0, atoms_1.useCalculatedColumnFillState)(), 2), calculatedColumnFill = _55[0], setCalculatedColumnFill = _55[1];
|
|
237
250
|
var openFillSeriesDialog = (0, atoms_1.useOpenFillSeriesDialog)();
|
|
238
251
|
// Shared state
|
|
239
252
|
var formulaMode = (0, atoms_1.useFormulaModeValue)();
|
|
240
253
|
var formulaSelections = (0, formula_selections_atom_1.useFormulaSelections)();
|
|
241
|
-
var
|
|
254
|
+
var _56 = tslib_1.__read((0, editing_cell_atom_1.useEditingCell)(), 2), editingCellCoordinate = _56[0], setEditingCellCoordinate = _56[1];
|
|
242
255
|
var setFormulabarEditorValue = (0, formula_bar_editor_value_atom_1.useSetFormulabarEditorValue)();
|
|
243
256
|
/**
|
|
244
257
|
* The formula SYNTAX the editor / formula bar speak (rowsncolumns/spreadsheet#655): Excel follows
|
|
@@ -254,7 +267,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
254
267
|
var setFormulaState = (0, formula_selection_state_atom_1.useSetFormulaSelectionState)();
|
|
255
268
|
var activeEditor = (0, active_editor_atom_1.useActiveEditor)();
|
|
256
269
|
// Magic fill state
|
|
257
|
-
var
|
|
270
|
+
var _57 = tslib_1.__read((0, magic_fill_state_atom_1.useQuickEditState)(), 2), quickEditValues = _57[0], setQuickEditState = _57[1];
|
|
258
271
|
var setNoteEditorCell = (0, atoms_1.useSetNoteEditorCell)();
|
|
259
272
|
var setPinnedTooltip = (0, atoms_1.useSetPinnedTooltip)();
|
|
260
273
|
var setSpreadsheetApi = (0, spreadsheet_api_atom_1.useSetSpreadsheetApi)();
|
|
@@ -265,7 +278,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
265
278
|
var instanceStore = (0, jotai_1.useStore)({ store: spreadsheet_provider_1.multiInstanceStore });
|
|
266
279
|
// To access closures
|
|
267
280
|
var hoveredCellRef = (0, use_stable_ref_1.useStableRef)(hoveredCell);
|
|
268
|
-
var
|
|
281
|
+
var _58 = tslib_1.__read((0, use_resize_observer_1.useResizeObserver)(), 2), gridContainerRef = _58[0], _59 = _58[1], width = _59.width, height = _59.height;
|
|
269
282
|
var defaultFrozenDims = showHeaders ? 1 : 0;
|
|
270
283
|
var frozenRows = Math.max(defaultFrozenDims, (frozenRowCount !== null && frozenRowCount !== void 0 ? frozenRowCount : 0) + defaultFrozenDims);
|
|
271
284
|
var frozenColumns = Math.max(defaultFrozenDims, (frozenColumnCount !== null && frozenColumnCount !== void 0 ? frozenColumnCount : 0) + defaultFrozenDims);
|
|
@@ -277,9 +290,9 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
277
290
|
var sheetRowCount = Math.min(config_1.MAX_ROW_COUNT + 1, rowCount + 1);
|
|
278
291
|
var sheetColumnCount = Math.min(config_1.MAX_COLUMN_COUNT + 1, columnCount + 1);
|
|
279
292
|
// License key validator
|
|
280
|
-
var
|
|
293
|
+
var _60 = tslib_1.__read((0, use_licensekey_validator_1.useLicenseKeyValidator)({
|
|
281
294
|
licenseKey: licenseKey,
|
|
282
|
-
}), 3), _ =
|
|
295
|
+
}), 3), _ = _60[0], licenseType = _60[1], validatorResult = _60[2];
|
|
283
296
|
var isRestricted = licenseType === "solo";
|
|
284
297
|
// Grid line width
|
|
285
298
|
var gridLineWidth = 1 * scale;
|
|
@@ -593,6 +606,15 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
593
606
|
var tableHeaderCells = (0, react_1.useMemo)(function () {
|
|
594
607
|
return (0, helpers_1.getTableHeaderCells)(activeTables, basicFilter);
|
|
595
608
|
}, [activeTables, basicFilter]);
|
|
609
|
+
/** A cell on a table's totals row (its in-cell arrow opens the function picker). */
|
|
610
|
+
var isTableTotalsCell = (0, react_1.useCallback)(function (rowIndex, columnIndex) {
|
|
611
|
+
return !!(activeTables === null || activeTables === void 0 ? void 0 : activeTables.some(function (table) {
|
|
612
|
+
return table.totalRow &&
|
|
613
|
+
rowIndex === table.range.endRowIndex &&
|
|
614
|
+
columnIndex >= table.range.startColumnIndex &&
|
|
615
|
+
columnIndex <= table.range.endColumnIndex;
|
|
616
|
+
}));
|
|
617
|
+
}, [activeTables]);
|
|
596
618
|
/**
|
|
597
619
|
* Retrieve banded cells
|
|
598
620
|
*/
|
|
@@ -621,6 +643,13 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
621
643
|
lastScheduledScrollRef.current = Date.now();
|
|
622
644
|
(_a = gridRef.current) === null || _a === void 0 ? void 0 : _a.scrollToCell(cell, align);
|
|
623
645
|
}, []);
|
|
646
|
+
// Excel scrolls to a chart / picture it has just inserted or restored.
|
|
647
|
+
var scrollToChart = (0, use_reveal_chart_embed_1.useRevealChartEmbed)({
|
|
648
|
+
charts: charts,
|
|
649
|
+
embeds: embeds,
|
|
650
|
+
sheetId: sheetId,
|
|
651
|
+
scrollToCell: scrollToCell,
|
|
652
|
+
});
|
|
624
653
|
/**
|
|
625
654
|
* Scroll to bottom of the sheet
|
|
626
655
|
*/
|
|
@@ -767,16 +796,20 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
767
796
|
* Focus sheet
|
|
768
797
|
*/
|
|
769
798
|
var focusSheet = (0, use_raf_1.useRaf)(function () {
|
|
799
|
+
var _a;
|
|
770
800
|
// Only suppress refocus when we're certain focus moved to a focusable
|
|
771
801
|
// element outside the grid (e.g. another asset pane in a split view).
|
|
772
802
|
// Mirrors the relatedTarget-outside-grid guard in handleEditorBlur. A
|
|
773
803
|
// user gesture on the grid focuses the tabIndex=0 container first, so
|
|
774
804
|
// this only suppresses render-driven refocus; a null container ref
|
|
775
805
|
// (mid mount/unmount) falls through to the original focus behavior.
|
|
776
|
-
|
|
806
|
+
// The grid may render into a popout window: read focus from its own
|
|
807
|
+
// document, never from the bundle's global one.
|
|
808
|
+
var ownerDocument = (0, grid_2.getOwnerDocument)(gridContainerRef.current);
|
|
809
|
+
var activeElement = (_a = ownerDocument === null || ownerDocument === void 0 ? void 0 : ownerDocument.activeElement) !== null && _a !== void 0 ? _a : null;
|
|
777
810
|
var gridContainer = gridContainerRef.current;
|
|
778
811
|
if (activeElement &&
|
|
779
|
-
activeElement !==
|
|
812
|
+
activeElement !== (ownerDocument === null || ownerDocument === void 0 ? void 0 : ownerDocument.body) &&
|
|
780
813
|
gridContainer &&
|
|
781
814
|
!gridContainer.contains(activeElement)) {
|
|
782
815
|
return;
|
|
@@ -803,7 +836,13 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
803
836
|
*/
|
|
804
837
|
var getRelativePositionFromOffset = (0, react_1.useCallback)(function (x, y) {
|
|
805
838
|
var _a;
|
|
806
|
-
|
|
839
|
+
var grid = gridRef.current;
|
|
840
|
+
if (grid) {
|
|
841
|
+
return grid.getRelativePositionFromOffset(x, y);
|
|
842
|
+
}
|
|
843
|
+
// A chartsheet mounts no grid; overlays position against the wrapper itself.
|
|
844
|
+
var rect = (_a = gridContainerRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
|
|
845
|
+
return rect ? { x: x - rect.left, y: y - rect.top } : undefined;
|
|
807
846
|
}, []);
|
|
808
847
|
/**
|
|
809
848
|
* Get scroll position
|
|
@@ -1106,11 +1145,11 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1106
1145
|
* Touch support
|
|
1107
1146
|
* Mainly for scrolling
|
|
1108
1147
|
*/
|
|
1109
|
-
var
|
|
1148
|
+
var _61 = (0, use_touch_1.useTouch)({
|
|
1110
1149
|
scrollTo: scrollTo,
|
|
1111
1150
|
scale: scale,
|
|
1112
1151
|
onChangeScale: onChangeScale,
|
|
1113
|
-
}), onTouchStart =
|
|
1152
|
+
}), onTouchStart = _61.onTouchStart, onDimensionsChange = _61.onDimensionsChange, scrollToTouchDevice = _61.scrollToTouchDevice, onAfterScrollToCell = _61.onAfterScrollToCell;
|
|
1114
1153
|
/**
|
|
1115
1154
|
* Conditional-formatting evaluation window: the padded, tile-quantized
|
|
1116
1155
|
* viewport. The raw viewport lives in a ref (no render per scroll frame);
|
|
@@ -1118,7 +1157,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1118
1157
|
* `startTransition` so the CF recompute is low-priority and interruptible —
|
|
1119
1158
|
* scrolling never blocks on it.
|
|
1120
1159
|
*/
|
|
1121
|
-
var
|
|
1160
|
+
var _62 = tslib_1.__read((0, react_1.useState)(cf_window_1.CF_INITIAL_WINDOW), 2), cfWindow = _62[0], setCfWindow = _62[1];
|
|
1122
1161
|
var cfWindowRef = (0, react_1.useRef)(null);
|
|
1123
1162
|
var handleViewPortChange = (0, react_1.useCallback)(function (viewport) {
|
|
1124
1163
|
onViewPortChange === null || onViewPortChange === void 0 ? void 0 : onViewPortChange(viewport);
|
|
@@ -1196,7 +1235,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1196
1235
|
* We are generating conditionalFormatting on the component level,
|
|
1197
1236
|
*/
|
|
1198
1237
|
var getEffectiveCellFormat = (0, react_1.useCallback)(function (sheetId, rowIndex, columnIndex) {
|
|
1199
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
1238
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
1200
1239
|
var cellFormat = getCellFormat(sheetId, rowIndex, columnIndex);
|
|
1201
1240
|
var isHyperlink = Boolean(getHyperlink(sheetId, rowIndex, columnIndex));
|
|
1202
1241
|
var conditionalCellFormat = getConditionalCellFormat(sheetId, rowIndex, columnIndex);
|
|
@@ -1234,14 +1273,14 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1234
1273
|
// time — `uf.textFormat.underline` is merged on top below, so a user
|
|
1235
1274
|
// who explicitly sets underline=false still wins.
|
|
1236
1275
|
var defaultTextFormat = {
|
|
1237
|
-
bold: isTableHeader(rowIndex, columnIndex) &&
|
|
1276
|
+
bold: (_f = (_e = bandedCellFormat === null || bandedCellFormat === void 0 ? void 0 : bandedCellFormat.textFormat) === null || _e === void 0 ? void 0 : _e.bold) !== null && _f !== void 0 ? _f : (isTableHeader(rowIndex, columnIndex) &&
|
|
1238
1277
|
isTableHeaderThemed(rowIndex, columnIndex)
|
|
1239
1278
|
? true
|
|
1240
|
-
: undefined,
|
|
1279
|
+
: undefined),
|
|
1241
1280
|
fontFamily: theme.primaryFontFamily,
|
|
1242
1281
|
color: isHyperlink
|
|
1243
1282
|
? theme.themeColors.hyperlink
|
|
1244
|
-
: (
|
|
1283
|
+
: (_j = (_h = patternColor !== null && patternColor !== void 0 ? patternColor : (_g = bandedCellFormat === null || bandedCellFormat === void 0 ? void 0 : bandedCellFormat.textFormat) === null || _g === void 0 ? void 0 : _g.color) !== null && _h !== void 0 ? _h : conditionalFormatColor) !== null && _j !== void 0 ? _j : (0, themes_1.getStringifiedColor)(cellColor, theme),
|
|
1245
1284
|
underline: isHyperlink ? true : undefined,
|
|
1246
1285
|
};
|
|
1247
1286
|
var mergedFormat = (0, merge_1.default)({
|
|
@@ -1252,7 +1291,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1252
1291
|
// hyperlink color.
|
|
1253
1292
|
if (patternColor &&
|
|
1254
1293
|
!isHyperlink &&
|
|
1255
|
-
!((
|
|
1294
|
+
!((_k = conditionalCellFormat === null || conditionalCellFormat === void 0 ? void 0 : conditionalCellFormat.textFormat) === null || _k === void 0 ? void 0 : _k.color)) {
|
|
1256
1295
|
mergedFormat.textFormat = tslib_1.__assign(tslib_1.__assign({}, mergedFormat.textFormat), { color: patternColor });
|
|
1257
1296
|
}
|
|
1258
1297
|
return tslib_1.__assign(tslib_1.__assign({}, bandedCellFormat), mergedFormat);
|
|
@@ -1364,14 +1403,14 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1364
1403
|
tokenizer: formulaLocale.isCanonical ? defaultTokenizer : localeTokenizerBase,
|
|
1365
1404
|
});
|
|
1366
1405
|
// Helper function to convert a selection to readable selection address
|
|
1367
|
-
var
|
|
1406
|
+
var _63 = tslib_1.__read((0, use_create_address_from_selection_1.useCreateAddressFromSelection)({
|
|
1368
1407
|
sheetId: sheetId,
|
|
1369
1408
|
rowCount: rowCount,
|
|
1370
1409
|
columnCount: columnCount,
|
|
1371
1410
|
tables: tables !== null && tables !== void 0 ? tables : undefined,
|
|
1372
1411
|
namedRanges: namedRanges !== null && namedRanges !== void 0 ? namedRanges : undefined,
|
|
1373
1412
|
merges: merges,
|
|
1374
|
-
}), 2), getAddressFromSelection =
|
|
1413
|
+
}), 2), getAddressFromSelection = _63[0], getR1C1AddressFromSelection = _63[1];
|
|
1375
1414
|
/**
|
|
1376
1415
|
* Exports a data region as image
|
|
1377
1416
|
*/
|
|
@@ -1417,7 +1456,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1417
1456
|
* Get user entered value from a range
|
|
1418
1457
|
* of cells
|
|
1419
1458
|
*/
|
|
1420
|
-
var
|
|
1459
|
+
var _64 = tslib_1.__read((0, use_get_values_from_range_1.useGetValuesFromRange)({
|
|
1421
1460
|
sheetId: sheetId,
|
|
1422
1461
|
getSelectionsFromFormula: getSelectionsFromFormula,
|
|
1423
1462
|
getFormattedValue: getFormattedValue,
|
|
@@ -1425,7 +1464,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1425
1464
|
getSheetId: getSheetId,
|
|
1426
1465
|
onRequestCalculate: onRequestCalculate,
|
|
1427
1466
|
getValidationSourceValue: getValidationSourceValue,
|
|
1428
|
-
}), 3), getFormattedValuesFromAddress =
|
|
1467
|
+
}), 3), getFormattedValuesFromAddress = _64[0], getEffectiveValuesFromRange = _64[1], getFormattedValuesFromAddressAsync = _64[2];
|
|
1429
1468
|
/**
|
|
1430
1469
|
* Get all formatted values from range as a single 1d array
|
|
1431
1470
|
*/
|
|
@@ -1762,7 +1801,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1762
1801
|
* O(n)
|
|
1763
1802
|
* Reduces Space Complexity by using `all`
|
|
1764
1803
|
*/
|
|
1765
|
-
var
|
|
1804
|
+
var _65 = tslib_1.__read((0, use_selected_rows_columns_1.useSelectedRowsColumns)({
|
|
1766
1805
|
activeCell: activeCell,
|
|
1767
1806
|
selections: selections,
|
|
1768
1807
|
selectionLeftBound: selectionLeftBound,
|
|
@@ -1770,7 +1809,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1770
1809
|
rowCount: rowCount,
|
|
1771
1810
|
columnCount: columnCount,
|
|
1772
1811
|
getCellBounds: getCellBounds,
|
|
1773
|
-
}), 6), selectedRows =
|
|
1812
|
+
}), 6), selectedRows = _65[0], selectedColumns = _65[1], selectedRowHeaders = _65[2], selectedColumnHeaders = _65[3], selectedRowHeadersIds = _65[4], selectedColumnHeadersIds = _65[5];
|
|
1774
1813
|
// Named ranges for editor dropdown
|
|
1775
1814
|
var getNamedRanges = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function () {
|
|
1776
1815
|
return namedRanges === null || namedRanges === void 0 ? void 0 : namedRanges.map(function (range) { return ({
|
|
@@ -1840,7 +1879,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1840
1879
|
* user can select entire column or row when selecting
|
|
1841
1880
|
* header cells
|
|
1842
1881
|
*/
|
|
1843
|
-
var
|
|
1882
|
+
var _66 = (0, use_selection_interceptors_1.useSelectionInterceptors)({
|
|
1844
1883
|
sheetId: sheetId,
|
|
1845
1884
|
rowCount: rowCount,
|
|
1846
1885
|
columnCount: columnCount,
|
|
@@ -1856,7 +1895,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1856
1895
|
onChangeActiveCell: onChangeActiveCell,
|
|
1857
1896
|
scrollToCell: scrollToCell,
|
|
1858
1897
|
isMergedCell: isMergedCell,
|
|
1859
|
-
}), onMouseDownInterceptor =
|
|
1898
|
+
}), onMouseDownInterceptor = _66.onMouseDownInterceptor, onMouseMoveInterceptor = _66.onMouseMoveInterceptor;
|
|
1860
1899
|
/**
|
|
1861
1900
|
* When user selections full rows
|
|
1862
1901
|
* or columns, we have to ignore
|
|
@@ -1888,7 +1927,8 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1888
1927
|
/* Data validation arrow */
|
|
1889
1928
|
var dataValidation = getDataValidationRule(sheetId, rowIndex, columnIndex);
|
|
1890
1929
|
var additionalCellSpacing = (_a = getAdditionalCellSpacing === null || getAdditionalCellSpacing === void 0 ? void 0 : getAdditionalCellSpacing(sheetId, rowIndex, columnIndex)) !== null && _a !== void 0 ? _a : 0;
|
|
1891
|
-
var showArrow = (0, validation_1.showValidationDropdownArrow)(dataValidation)
|
|
1930
|
+
var showArrow = (0, validation_1.showValidationDropdownArrow)(dataValidation) ||
|
|
1931
|
+
isTableTotalsCell(rowIndex, columnIndex);
|
|
1892
1932
|
var showChip = getCellMetaType(sheetId, rowIndex, columnIndex) === "people";
|
|
1893
1933
|
var _d = tslib_1.__read(getCellGroupingInfo(sheetId, rowIndex, columnIndex), 1), expandable = _d[0];
|
|
1894
1934
|
var iconSpacing = config_1.DEFAULT_CELL_SPACING;
|
|
@@ -1938,13 +1978,14 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1938
1978
|
getCellGroupingInfo,
|
|
1939
1979
|
getAdditionalCellSpacing,
|
|
1940
1980
|
getEffectiveCellFormat,
|
|
1981
|
+
isTableTotalsCell,
|
|
1941
1982
|
]);
|
|
1942
1983
|
/**
|
|
1943
1984
|
* Column resizer
|
|
1944
1985
|
* Enables auto resizing
|
|
1945
1986
|
* rows and columns
|
|
1946
1987
|
*/
|
|
1947
|
-
var
|
|
1988
|
+
var _67 = (0, use_sizer_1.useSizer)({
|
|
1948
1989
|
frozenRows: frozenRows,
|
|
1949
1990
|
frozenColumns: frozenColumns,
|
|
1950
1991
|
scale: scale,
|
|
@@ -1967,7 +2008,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1967
2008
|
getDataRowCount: getDataRowCount,
|
|
1968
2009
|
fontSize: defaultFontSizePoint,
|
|
1969
2010
|
resizeStrategy: "full",
|
|
1970
|
-
}), getColumnWidth =
|
|
2011
|
+
}), getColumnWidth = _67.getColumnWidth, getRowHeight = _67.getRowHeight, getCellDimensions = _67.getCellDimensions, getCellDimensionsStable = _67.getCellDimensionsStable, getTextDimension = _67.getTextDimension;
|
|
1971
2012
|
/**
|
|
1972
2013
|
* Called when user tries to
|
|
1973
2014
|
* autofit a column or row
|
|
@@ -1987,14 +2028,19 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1987
2028
|
]);
|
|
1988
2029
|
/* Check if sheet is focused */
|
|
1989
2030
|
var isSheetFocused = (0, react_1.useCallback)(function () {
|
|
1990
|
-
|
|
2031
|
+
var _a;
|
|
2032
|
+
var editorElement = cellEditorInstance === null || cellEditorInstance === void 0 ? void 0 : cellEditorInstance.el();
|
|
2033
|
+
if (!editorElement) {
|
|
2034
|
+
return false;
|
|
2035
|
+
}
|
|
2036
|
+
return ((_a = (0, grid_2.getOwnerDocument)(editorElement)) === null || _a === void 0 ? void 0 : _a.activeElement) === editorElement;
|
|
1991
2037
|
}, [cellEditorInstance]);
|
|
1992
2038
|
/**
|
|
1993
2039
|
* Get Cell Editor
|
|
1994
2040
|
*/
|
|
1995
2041
|
var getEditor = (0, react_1.useCallback)(function (props) {
|
|
1996
|
-
var _a = props.cell, cell = _a === void 0 ?
|
|
1997
|
-
var _c = cell !== null && cell !== void 0 ? cell :
|
|
2042
|
+
var _a = props.cell, cell = _a === void 0 ? defaultCellCoords : _a, sheetId = props.sheetId, _b = props.editingSheetId, editingSheetId = _b === void 0 ? sheetId : _b;
|
|
2043
|
+
var _c = cell !== null && cell !== void 0 ? cell : defaultCellCoords, rowIndex = _c.rowIndex, columnIndex = _c.columnIndex;
|
|
1998
2044
|
var cellFormat = !(0, utils_1.isNil)(props.editingSheetId)
|
|
1999
2045
|
? getEffectiveCellFormat(props.editingSheetId, rowIndex, columnIndex)
|
|
2000
2046
|
: undefined;
|
|
@@ -2041,7 +2087,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2041
2087
|
/**
|
|
2042
2088
|
* Popover cell
|
|
2043
2089
|
*/
|
|
2044
|
-
var
|
|
2090
|
+
var _68 = (0, use_cell_popover_1.useCellPopover)({
|
|
2045
2091
|
sheetId: sheetId,
|
|
2046
2092
|
getCellPopoverContent: getCellPopoverContent !== null && getCellPopoverContent !== void 0 ? getCellPopoverContent : getFormattedValue,
|
|
2047
2093
|
getCellOffsetFromCoords: getCellOffsetFromCoords,
|
|
@@ -2049,7 +2095,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2049
2095
|
isFrozenColumn: isFrozenColumn,
|
|
2050
2096
|
isFrozenRow: isFrozenRow,
|
|
2051
2097
|
onChangeActiveSheet: onChangeActiveSheet,
|
|
2052
|
-
}), popoverComponent =
|
|
2098
|
+
}), popoverComponent = _68.popoverComponent, popoverRange = _68.popoverRange, showCellPopover = _68.showCellPopover, hideCellPopover = _68.hideCellPopover;
|
|
2053
2099
|
/**
|
|
2054
2100
|
* Get tooltip component of a cell
|
|
2055
2101
|
* Only error, invalid values are
|
|
@@ -2279,6 +2325,103 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2279
2325
|
(0, react_1.useEffect)(function () {
|
|
2280
2326
|
setInsertOptions(null);
|
|
2281
2327
|
}, [activeCell.rowIndex, activeCell.columnIndex, sheetId, setInsertOptions]);
|
|
2328
|
+
/**
|
|
2329
|
+
* Excel's AutoCorrect smart tag after a table auto-expanded. "Undo Table
|
|
2330
|
+
* AutoExpansion" resizes the table back to its pre-growth range and clears
|
|
2331
|
+
* what the growth wrote (calculated-column formulas, generated headers,
|
|
2332
|
+
* inherited formats) in one undo step — the user's own value stays, like
|
|
2333
|
+
* Excel; "Stop Automatically Expanding Tables" hands the option to the host.
|
|
2334
|
+
*/
|
|
2335
|
+
var handleChooseTableAutoExpansionOption = (0, react_1.useCallback)(function (option) {
|
|
2336
|
+
if (!tableAutoExpansion)
|
|
2337
|
+
return;
|
|
2338
|
+
if (option === "undo") {
|
|
2339
|
+
if (onUndoTableAutoExpansion) {
|
|
2340
|
+
onUndoTableAutoExpansion(tableAutoExpansion);
|
|
2341
|
+
}
|
|
2342
|
+
else {
|
|
2343
|
+
var table = tables === null || tables === void 0 ? void 0 : tables.find(function (candidate) {
|
|
2344
|
+
return candidate.id === tableAutoExpansion.tableId &&
|
|
2345
|
+
candidate.sheetId === tableAutoExpansion.sheetId;
|
|
2346
|
+
});
|
|
2347
|
+
if (table) {
|
|
2348
|
+
onResizeTable === null || onResizeTable === void 0 ? void 0 : onResizeTable(tableAutoExpansion.sheetId, table, tableAutoExpansion.previousRange);
|
|
2349
|
+
}
|
|
2350
|
+
}
|
|
2351
|
+
}
|
|
2352
|
+
else {
|
|
2353
|
+
onChangeAutoExpandTables === null || onChangeAutoExpandTables === void 0 ? void 0 : onChangeAutoExpandTables(false);
|
|
2354
|
+
}
|
|
2355
|
+
setTableAutoExpansion(null);
|
|
2356
|
+
focusSheet();
|
|
2357
|
+
}, [
|
|
2358
|
+
tableAutoExpansion,
|
|
2359
|
+
tables,
|
|
2360
|
+
onResizeTable,
|
|
2361
|
+
onUndoTableAutoExpansion,
|
|
2362
|
+
onChangeAutoExpandTables,
|
|
2363
|
+
setTableAutoExpansion,
|
|
2364
|
+
focusSheet,
|
|
2365
|
+
]);
|
|
2366
|
+
// The tag survives the commit's own cursor advance (Enter / Tab) and any cell
|
|
2367
|
+
// of the grown table; moving anywhere else, or switching sheet, drops it.
|
|
2368
|
+
(0, react_1.useEffect)(function () {
|
|
2369
|
+
if (tableAutoExpansion &&
|
|
2370
|
+
!(0, table_auto_expansion_1.keepsTableAutoExpansionTag)(tableAutoExpansion, sheetId, activeCell)) {
|
|
2371
|
+
setTableAutoExpansion(null);
|
|
2372
|
+
}
|
|
2373
|
+
}, [
|
|
2374
|
+
tableAutoExpansion,
|
|
2375
|
+
activeCell.rowIndex,
|
|
2376
|
+
activeCell.columnIndex,
|
|
2377
|
+
activeCell,
|
|
2378
|
+
sheetId,
|
|
2379
|
+
setTableAutoExpansion,
|
|
2380
|
+
]);
|
|
2381
|
+
/**
|
|
2382
|
+
* Excel's AutoCorrect smart tag after a formula typed into a table column.
|
|
2383
|
+
* "Undo Calculated Column" reverts the fill alone (the typed cell keeps its
|
|
2384
|
+
* formula); "Overwrite all cells in this column with this formula" fills the
|
|
2385
|
+
* column over the cells that kept it from filling; "Stop automatically
|
|
2386
|
+
* creating calculated columns" hands the option to the host.
|
|
2387
|
+
*/
|
|
2388
|
+
var handleChooseCalculatedColumnOption = (0, react_1.useCallback)(function (option) {
|
|
2389
|
+
if (!calculatedColumnFill)
|
|
2390
|
+
return;
|
|
2391
|
+
if (option === "undo") {
|
|
2392
|
+
onUndoCalculatedColumn === null || onUndoCalculatedColumn === void 0 ? void 0 : onUndoCalculatedColumn(calculatedColumnFill);
|
|
2393
|
+
}
|
|
2394
|
+
else if (option === "overwrite") {
|
|
2395
|
+
onOverwriteCalculatedColumn === null || onOverwriteCalculatedColumn === void 0 ? void 0 : onOverwriteCalculatedColumn(calculatedColumnFill);
|
|
2396
|
+
}
|
|
2397
|
+
else {
|
|
2398
|
+
onChangeAutoCalculatedColumns === null || onChangeAutoCalculatedColumns === void 0 ? void 0 : onChangeAutoCalculatedColumns(false);
|
|
2399
|
+
}
|
|
2400
|
+
setCalculatedColumnFill(null);
|
|
2401
|
+
focusSheet();
|
|
2402
|
+
}, [
|
|
2403
|
+
calculatedColumnFill,
|
|
2404
|
+
onUndoCalculatedColumn,
|
|
2405
|
+
onOverwriteCalculatedColumn,
|
|
2406
|
+
onChangeAutoCalculatedColumns,
|
|
2407
|
+
setCalculatedColumnFill,
|
|
2408
|
+
focusSheet,
|
|
2409
|
+
]);
|
|
2410
|
+
// The tag survives the commit's own cursor advance and any cell of the
|
|
2411
|
+
// column; moving anywhere else, or switching sheet, drops it.
|
|
2412
|
+
(0, react_1.useEffect)(function () {
|
|
2413
|
+
if (calculatedColumnFill &&
|
|
2414
|
+
!(0, calculated_column_fill_1.keepsCalculatedColumnTag)(calculatedColumnFill, sheetId, activeCell)) {
|
|
2415
|
+
setCalculatedColumnFill(null);
|
|
2416
|
+
}
|
|
2417
|
+
}, [
|
|
2418
|
+
calculatedColumnFill,
|
|
2419
|
+
activeCell.rowIndex,
|
|
2420
|
+
activeCell.columnIndex,
|
|
2421
|
+
activeCell,
|
|
2422
|
+
sheetId,
|
|
2423
|
+
setCalculatedColumnFill,
|
|
2424
|
+
]);
|
|
2282
2425
|
/**
|
|
2283
2426
|
* Run Excel's Series dialog result: the target range's first row (Series
|
|
2284
2427
|
* in Columns) / first column (Rows) is the seed line; `stop` may shrink or
|
|
@@ -2371,7 +2514,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2371
2514
|
/**
|
|
2372
2515
|
* Handle grid selections
|
|
2373
2516
|
*/
|
|
2374
|
-
var
|
|
2517
|
+
var _69 = (0, use_selection_1.useSelection)({
|
|
2375
2518
|
sheetId: sheetId,
|
|
2376
2519
|
getDataRowCount: getDataRowCount,
|
|
2377
2520
|
enableDataBoundaryNavigation: enableDataBoundaryNavigation,
|
|
@@ -2410,11 +2553,13 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2410
2553
|
isColumnHeader: isColumnHeader,
|
|
2411
2554
|
isTouchDevice: helpers_1.isTouchDevice,
|
|
2412
2555
|
dataRegionBoundaries: dataRegionBoundaries,
|
|
2413
|
-
|
|
2556
|
+
tables: tables,
|
|
2557
|
+
onInsertTableRow: onInsertTableRow,
|
|
2558
|
+
}), onMouseDownSelection = _69.onMouseDown, onPointerDownSelection = _69.onPointerDown, onKeyDownSelection = _69.onKeyDown, fillSelection = _69.fillSelection, fillShrink = _69.fillShrink, onFillHandleMouseDown = _69.onFillHandleMouseDown, onFillHandleDoubleClick = _69.onFillHandleDoubleClick, isDragging = _69.isDragging, isFilling = _69.isFilling, isSelectionInProgress = _69.isSelectionInProgress, draggedSelection = _69.draggedSelection, onSelectionMouseDown = _69.onSelectionMouseDown, setActiveCell = _69.setActiveCell, initialDraggedSelection = _69.initialDraggedSelection, updateSelectionStartEndReference = _69.updateSelectionStartEndReference, selectColumn = _69.selectColumn, getContentfulGridRangeAroundCell = _69.getContentfulGridRangeAroundCell, newSelection = _69.newSelection, modifySelection = _69.modifySelection, clearSelections = _69.clearSelections;
|
|
2414
2559
|
/**
|
|
2415
2560
|
* Copy, Paste and Cut hook
|
|
2416
2561
|
*/
|
|
2417
|
-
var
|
|
2562
|
+
var _70 = (0, use_copy_paste_cut_1.useCopyPasteCut)({
|
|
2418
2563
|
activeCell: activeCell,
|
|
2419
2564
|
selections: selections,
|
|
2420
2565
|
sheetId: sheetId,
|
|
@@ -2422,7 +2567,38 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2422
2567
|
onPaste: onPaste,
|
|
2423
2568
|
onCopy: onCopy,
|
|
2424
2569
|
onCut: onCut,
|
|
2425
|
-
}), copiedSelections =
|
|
2570
|
+
}), copiedSelections = _70.copiedSelections, isCutPending = _70.isCutPending, copiedSheetId = _70.copiedSheetId, cancelCut = _70.cancelCut, clearCopiedSelections = _70.clearCopiedSelections, copy = _70.copy, cut = _70.cut, paste = _70.paste, onInternalCopy = _70.onInternalCopy, onInternalCut = _70.onInternalCut, onInternalPaste = _70.onInternalPaste;
|
|
2571
|
+
/**
|
|
2572
|
+
* Ctrl+C / Ctrl+X / Ctrl+V / Ctrl+D on a selected chart. The focused chart is
|
|
2573
|
+
* the target of those events (see `EmbedDraggable`); a paste that lands in the
|
|
2574
|
+
* cell editor while a chart is on the clipboard is claimed here first.
|
|
2575
|
+
*/
|
|
2576
|
+
var chartClipboard = (0, use_chart_clipboard_1.useChartClipboard)({
|
|
2577
|
+
sheetId: sheetId,
|
|
2578
|
+
activeCell: activeCell,
|
|
2579
|
+
charts: charts,
|
|
2580
|
+
readonly: readonly,
|
|
2581
|
+
onCreateChart: onCreateChart,
|
|
2582
|
+
onDeleteChart: onDeleteChart,
|
|
2583
|
+
onCopyChart: onCopyChart,
|
|
2584
|
+
onCutChart: onCutChart,
|
|
2585
|
+
focusSheet: focusSheet,
|
|
2586
|
+
});
|
|
2587
|
+
var copyChart = chartClipboard.copyChart, cutChart = chartClipboard.cutChart, pasteChart = chartClipboard.pasteChart, duplicateChart = chartClipboard.duplicateChart, clearChartClipboard = chartClipboard.clearChartClipboard;
|
|
2588
|
+
var handleEditorCopy = (0, react_1.useCallback)(function (e) {
|
|
2589
|
+
clearChartClipboard();
|
|
2590
|
+
onInternalCopy(e);
|
|
2591
|
+
}, [clearChartClipboard, onInternalCopy]);
|
|
2592
|
+
var handleEditorCut = (0, react_1.useCallback)(function (e) {
|
|
2593
|
+
clearChartClipboard();
|
|
2594
|
+
onInternalCut(e);
|
|
2595
|
+
}, [clearChartClipboard, onInternalCut]);
|
|
2596
|
+
var handleEditorPaste = (0, react_1.useCallback)(function (e) {
|
|
2597
|
+
if (pasteChart(e)) {
|
|
2598
|
+
return;
|
|
2599
|
+
}
|
|
2600
|
+
onInternalPaste(e);
|
|
2601
|
+
}, [pasteChart, onInternalPaste]);
|
|
2426
2602
|
/**
|
|
2427
2603
|
* Context menu "Insert Cut Cells" (Excel: Ctrl+X, right-click the destination). A cut of
|
|
2428
2604
|
* whole rows / columns dropped on a row / column header inserts them BEFORE the clicked
|
|
@@ -2663,14 +2839,18 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2663
2839
|
});
|
|
2664
2840
|
/**
|
|
2665
2841
|
* Get bounds of chart overlay
|
|
2666
|
-
* Within the grid body
|
|
2842
|
+
* Within the grid body: from the first cell's top-left corner to the last
|
|
2843
|
+
* row's bottom edge and last column's right edge, so an object can never be
|
|
2844
|
+
* dragged or resized past the sheet (Excel snaps it back inside).
|
|
2667
2845
|
*/
|
|
2668
2846
|
var getChartBounds = (0, react_1.useCallback)(function () {
|
|
2669
2847
|
return {
|
|
2670
2848
|
left: getColumnOffset(1),
|
|
2671
2849
|
top: getRowOffset(1),
|
|
2850
|
+
right: getColumnOffset(columnCount + 1),
|
|
2851
|
+
bottom: getRowOffset(rowCount + 1),
|
|
2672
2852
|
};
|
|
2673
|
-
}, [getRowOffset, getColumnOffset]);
|
|
2853
|
+
}, [getRowOffset, getColumnOffset, rowCount, columnCount]);
|
|
2674
2854
|
// Show notes editor
|
|
2675
2855
|
var onInsertNote = (0, react_1.useCallback)(function (sheetId, cell) {
|
|
2676
2856
|
setNoteEditorCell(tslib_1.__assign(tslib_1.__assign({}, cell), { sheetId: sheetId }));
|
|
@@ -2709,11 +2889,40 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2709
2889
|
});
|
|
2710
2890
|
focusSheet();
|
|
2711
2891
|
}, [setQuickEditState, enableQuickEdit, focusSheet]);
|
|
2892
|
+
/**
|
|
2893
|
+
* Opens the cell editor pre-filled (the totals row's "More Functions…").
|
|
2894
|
+
* `editCell` comes from `useEditable` below; this stable wrapper lets the
|
|
2895
|
+
* context menu reach it.
|
|
2896
|
+
*/
|
|
2897
|
+
var requestEditCell = (0, use_callback_ref_1.useCallbackRef)(function (targetSheetId, cell, initialValue) {
|
|
2898
|
+
return editCell(targetSheetId, cell, initialValue);
|
|
2899
|
+
});
|
|
2900
|
+
/**
|
|
2901
|
+
* The context menu's table Select items: replace the selection with a
|
|
2902
|
+
* range and park the active cell at its top-left, without scrolling.
|
|
2903
|
+
*/
|
|
2904
|
+
var selectRangeFromMenu = (0, react_1.useCallback)(function (targetSheetId, range) {
|
|
2905
|
+
setActiveCell(targetSheetId, { rowIndex: range.startRowIndex, columnIndex: range.startColumnIndex }, false);
|
|
2906
|
+
onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(targetSheetId, [{ range: range }]);
|
|
2907
|
+
}, [setActiveCell, onChangeSelections]);
|
|
2908
|
+
// Excel's table hit zones (header top edge / corner / row left edge).
|
|
2909
|
+
var _71 = (0, use_table_hit_zones_1.useTableHitZones)({
|
|
2910
|
+
sheetId: sheetId,
|
|
2911
|
+
tables: activeTables,
|
|
2912
|
+
selections: selections,
|
|
2913
|
+
frozenRows: frozenRows,
|
|
2914
|
+
frozenColumns: frozenColumns,
|
|
2915
|
+
getCellCoordsFromOffset: getCellCoordsFromOffset,
|
|
2916
|
+
getRelativePositionFromOffset: getRelativePositionFromOffset,
|
|
2917
|
+
getCellOffsetFromCoords: getCellOffsetFromCoords,
|
|
2918
|
+
getScrollPosition: getScrollPosition,
|
|
2919
|
+
onSelectRange: selectRangeFromMenu,
|
|
2920
|
+
}), tableHitCursor = _71.cursor, onMouseMoveTableHitZones = _71.onMouseMove, onMouseDownTableHitZones = _71.onMouseDown, clearTableHitZone = _71.clearHitZone;
|
|
2712
2921
|
/**
|
|
2713
2922
|
* Get context Menu component
|
|
2714
2923
|
*/
|
|
2715
2924
|
var getContextMenu = (0, react_1.useCallback)(function (cell) {
|
|
2716
|
-
return (react_1.default.createElement(ContextMenu, { activeCell: activeCell, selections: selections, sheetId: sheetId, frozenRows: frozenRows, frozenColumns: frozenColumns, onHideColumn: isRestricted ? undefined : onHideColumn, onShowColumn: isRestricted ? undefined : onShowColumn, onShowRow: isRestricted ? undefined : onShowRow, onHideRow: isRestricted ? undefined : onHideRow, onGroupRows: isRestricted ? undefined : onGroupRows, onUngroupRows: isRestricted ? undefined : onUngroupRows, onGroupColumns: isRestricted ? undefined : onGroupColumns, onUngroupColumns: isRestricted ? undefined : onUngroupColumns, isHiddenColumn: isHiddenColumn, isHiddenRow: isHiddenRow, onDeleteColumn: onDeleteColumn, onDeleteRow: onDeleteRow, onInsertRow: insertRowWithOptions, onInsertColumn: insertColumnWithOptions, rowCount: rowCount, columnCount: columnCount, onInsertCellsShiftDown: onInsertCellsShiftDown, onInsertCellsShiftRight: onInsertCellsShiftRight, onDeleteCellsShiftLeft: onDeleteCellsShiftLeft, onDeleteCellsShiftUp: onDeleteCellsShiftUp, onClearContents: onClearContents, onFreezeColumn: onFreezeColumn, onFreezeRow: onFreezeRow, focusSheet: focusSheet, onSortColumn: onSortColumn, onInsertNote: onInsertNote, onProtectRange: onProtectRange, onUnProtectRange: onUnProtectRange, onSortRange: onSortRange, onRequestDefineNamedRange: onRequestDefineNamedRange, protectedRanges: protectedRanges, isRowHeader: isRowHeader(cell.columnIndex), isColumnHeader: isColumnHeader(cell.rowIndex), selectedRowHeadersIds: selectedRowHeadersIds, selectedColumnHeadersIds: selectedColumnHeadersIds, onCopy: copy, onCut: cut, hasCutSelection: isCutPending && copiedSheetId === sheetId, onInsertCutCells: insertCutCellsFromMenu, onPaste: paste, onRequestPasteSpecial: requestPasteSpecial, onRequestEvaluateFormula: requestEvaluateFormula, onRequestAddWatch: requestAddWatch, isActiveCellFormula: Boolean(getFormulaValue(sheetId, activeCell.rowIndex, activeCell.columnIndex)), onRequestResize: onRequestResize, isSheetFocused: isSheetFocused, tables: activeTables, pivotTables: pivotTables, basicFilter: basicFilter, onRequestEditTable: onRequestEditTable, onRequestEditPivotTable: onRequestEditPivotTable, onRemoveTable: onRemoveTable, onRequestDeletePivotTable: onRequestDeletePivotTable, onPivotDrillDown: onPivotDrillDown, onRequestFormatCells: onRequestFormatCells, onRequestConditionalFormat: onRequestConditionalFormat, onRequestDataValidation: onRequestDataValidation, onClearFormatting: onClearFormatting, onCreateTable: onCreateTable, onCreateBasicFilter: onCreateBasicFilter, onInsertTableColumn: onInsertTableColumn, onDeleteTableColumn: onDeleteTableColumn, onInsertTableRow: onInsertTableRow, onDeleteTableRow: onDeleteTableRow, onFilterTable: onFilterTable, onSortTable: onSortTable, getFormattedValue: getFormattedValue, getFormattedValuesFromRange: getFormattedValuesFromRange, isTableHeader: isTableHeader, readonly: readonly, onSplitTextToColumns: onSplitTextToColumns, onRemoveDuplicates: onRemoveDuplicates, onGoalSeek: onGoalSeek, onSubtotal: onSubtotal, onAdvancedFilter: onAdvancedFilter, onChange: onChange, getCellData: getCellData, onAddQuickEdit: onAddQuickEdit, enableMagicFill: enableMagicFill }));
|
|
2925
|
+
return (react_1.default.createElement(ContextMenu, { activeCell: activeCell, selections: selections, sheetId: sheetId, frozenRows: frozenRows, frozenColumns: frozenColumns, onHideColumn: isRestricted ? undefined : onHideColumn, onShowColumn: isRestricted ? undefined : onShowColumn, onShowRow: isRestricted ? undefined : onShowRow, onHideRow: isRestricted ? undefined : onHideRow, onGroupRows: isRestricted ? undefined : onGroupRows, onUngroupRows: isRestricted ? undefined : onUngroupRows, onGroupColumns: isRestricted ? undefined : onGroupColumns, onUngroupColumns: isRestricted ? undefined : onUngroupColumns, isHiddenColumn: isHiddenColumn, isHiddenRow: isHiddenRow, onDeleteColumn: onDeleteColumn, onDeleteRow: onDeleteRow, onInsertRow: insertRowWithOptions, onInsertColumn: insertColumnWithOptions, rowCount: rowCount, columnCount: columnCount, onInsertCellsShiftDown: onInsertCellsShiftDown, onInsertCellsShiftRight: onInsertCellsShiftRight, onDeleteCellsShiftLeft: onDeleteCellsShiftLeft, onDeleteCellsShiftUp: onDeleteCellsShiftUp, onClearContents: onClearContents, onFreezeColumn: onFreezeColumn, onFreezeRow: onFreezeRow, focusSheet: focusSheet, onSortColumn: onSortColumn, onInsertNote: onInsertNote, onProtectRange: onProtectRange, onUnProtectRange: onUnProtectRange, onSortRange: onSortRange, onRequestDefineNamedRange: onRequestDefineNamedRange, protectedRanges: protectedRanges, isRowHeader: isRowHeader(cell.columnIndex), isColumnHeader: isColumnHeader(cell.rowIndex), selectedRowHeadersIds: selectedRowHeadersIds, selectedColumnHeadersIds: selectedColumnHeadersIds, onCopy: copy, onCut: cut, hasCutSelection: isCutPending && copiedSheetId === sheetId, onInsertCutCells: insertCutCellsFromMenu, onPaste: paste, onRequestPasteSpecial: requestPasteSpecial, onRequestEvaluateFormula: requestEvaluateFormula, onRequestAddWatch: requestAddWatch, isActiveCellFormula: Boolean(getFormulaValue(sheetId, activeCell.rowIndex, activeCell.columnIndex)), onRequestResize: onRequestResize, isSheetFocused: isSheetFocused, tables: activeTables, pivotTables: pivotTables, basicFilter: basicFilter, onRequestEditTable: onRequestEditTable, onRequestResizeTable: onRequestResizeTable, onRequestInsertSlicer: onRequestInsertSlicer, onRequestEditPivotTable: onRequestEditPivotTable, onRemoveTable: onRemoveTable, onRequestDeletePivotTable: onRequestDeletePivotTable, onRequestCreatePivotChart: onRequestCreatePivotChart, onPivotDrillDown: onPivotDrillDown, onRequestFormatCells: onRequestFormatCells, onRequestConditionalFormat: onRequestConditionalFormat, onRequestDataValidation: onRequestDataValidation, onClearFormatting: onClearFormatting, onCreateTable: onCreateTable, onRequestCreateTable: onRequestCreateTable, onCreateBasicFilter: onCreateBasicFilter, onInsertTableColumn: onInsertTableColumn, onDeleteTableColumn: onDeleteTableColumn, onInsertTableRow: onInsertTableRow, onDeleteTableRow: onDeleteTableRow, onUpdateTable: onUpdateTable, onRequestEditCell: requestEditCell, onSelectRange: selectRangeFromMenu, onFilterTable: onFilterTable, onSortTable: onSortTable, getFormattedValue: getFormattedValue, getFormattedValuesFromRange: getFormattedValuesFromRange, isTableHeader: isTableHeader, readonly: readonly, onSplitTextToColumns: onSplitTextToColumns, onRemoveDuplicates: onRemoveDuplicates, onGoalSeek: onGoalSeek, onSubtotal: onSubtotal, onAdvancedFilter: onAdvancedFilter, onChange: onChange, getCellData: getCellData, onAddQuickEdit: onAddQuickEdit, enableMagicFill: enableMagicFill }));
|
|
2717
2926
|
}, [
|
|
2718
2927
|
isRestricted,
|
|
2719
2928
|
activeCell,
|
|
@@ -2764,6 +2973,8 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2764
2973
|
onFilterTable,
|
|
2765
2974
|
onSortTable,
|
|
2766
2975
|
onRequestEditTable,
|
|
2976
|
+
onRequestResizeTable,
|
|
2977
|
+
onRequestInsertSlicer,
|
|
2767
2978
|
onRequestEditPivotTable,
|
|
2768
2979
|
onRemoveTable,
|
|
2769
2980
|
onRequestFormatCells,
|
|
@@ -2772,8 +2983,12 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2772
2983
|
onRequestDataValidation,
|
|
2773
2984
|
onCreateBasicFilter,
|
|
2774
2985
|
onCreateTable,
|
|
2986
|
+
onRequestCreateTable,
|
|
2775
2987
|
onDeleteTableColumn,
|
|
2776
2988
|
onInsertTableRow,
|
|
2989
|
+
onUpdateTable,
|
|
2990
|
+
requestEditCell,
|
|
2991
|
+
selectRangeFromMenu,
|
|
2777
2992
|
getFormattedValue,
|
|
2778
2993
|
getFormattedValuesFromRange,
|
|
2779
2994
|
onInsertTableColumn,
|
|
@@ -2789,6 +3004,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2789
3004
|
onChange,
|
|
2790
3005
|
getCellData,
|
|
2791
3006
|
onRequestDeletePivotTable,
|
|
3007
|
+
onRequestCreatePivotChart,
|
|
2792
3008
|
isHiddenColumn,
|
|
2793
3009
|
isHiddenRow,
|
|
2794
3010
|
onShowColumn,
|
|
@@ -2803,7 +3019,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2803
3019
|
* Displays Context menu when user right clicks
|
|
2804
3020
|
* the grid
|
|
2805
3021
|
*/
|
|
2806
|
-
var
|
|
3022
|
+
var _72 = (0, use_context_menu_1.useContextMenu)({
|
|
2807
3023
|
getCellCoordsFromOffset: getCellCoordsFromOffset,
|
|
2808
3024
|
getRelativePositionFromOffset: getRelativePositionFromOffset,
|
|
2809
3025
|
isRowHeader: isRowHeader,
|
|
@@ -2812,7 +3028,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2812
3028
|
getCellOffsetFromCoords: getCellOffsetFromCoords,
|
|
2813
3029
|
getScrollPosition: getScrollPosition,
|
|
2814
3030
|
ContextMenuWrapper: ContextMenuWrapper,
|
|
2815
|
-
}), onContextMenu =
|
|
3031
|
+
}), onContextMenu = _72.onContextMenu, contextMenuComponent = _72.contextMenuComponent, onRequestCloseContextMenu = _72.onRequestClose, showContextMenu = _72.showContextMenu;
|
|
2816
3032
|
/**
|
|
2817
3033
|
* Shortcut handlers for formatting
|
|
2818
3034
|
* TODO: Decide on the output
|
|
@@ -2852,6 +3068,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2852
3068
|
onUndo: onUndo,
|
|
2853
3069
|
onRedo: onRedo,
|
|
2854
3070
|
onCreateTable: onCreateTable,
|
|
3071
|
+
onRequestCreateTable: onRequestCreateTable,
|
|
2855
3072
|
onCreateBasicFilter: onCreateBasicFilter,
|
|
2856
3073
|
clearCopiedSelections: clearCopiedSelections,
|
|
2857
3074
|
onRequestSearch: onRequestSearch,
|
|
@@ -2892,7 +3109,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2892
3109
|
/**
|
|
2893
3110
|
* Allow grid to be ediable
|
|
2894
3111
|
*/
|
|
2895
|
-
var
|
|
3112
|
+
var _73 = (0, use_editable_1.useEditable)({
|
|
2896
3113
|
sheetId: sheetId,
|
|
2897
3114
|
enableEditOnEnterKey: enableEditOnEnterKey,
|
|
2898
3115
|
canEdit: canEditCell,
|
|
@@ -2938,14 +3155,16 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2938
3155
|
scrollToCell: scrollToCell,
|
|
2939
3156
|
containerWidth: width,
|
|
2940
3157
|
containerHeight: height,
|
|
2941
|
-
onCopy:
|
|
2942
|
-
onPaste:
|
|
2943
|
-
onCut:
|
|
2944
|
-
|
|
3158
|
+
onCopy: handleEditorCopy,
|
|
3159
|
+
onPaste: handleEditorPaste,
|
|
3160
|
+
onCut: handleEditorCut,
|
|
3161
|
+
tables: tables,
|
|
3162
|
+
onInsertTableRow: onInsertTableRow,
|
|
3163
|
+
}), onMouseDownEditable = _73.onMouseDown, onDoubleClickEditable = _73.onDoubleClick, editorComponent = _73.editorComponent, isEditInProgress = _73.isEditInProgress, makeEditable = _73.makeEditable, editCell = _73.editCell, setEditorValue = _73.setEditorValue, hideEditor = _73.hideEditor, getNextFocusableCell = _73.getNextFocusableCell, submitEditor = _73.submitEditor, cancelEditor = _73.cancelEditor, commit = _73.commit;
|
|
2945
3164
|
/**
|
|
2946
3165
|
* Move rows and columns
|
|
2947
3166
|
*/
|
|
2948
|
-
var
|
|
3167
|
+
var _74 = (0, use_move_columns_rows_1.useMoveColumnsAndRows)({
|
|
2949
3168
|
getCellOffsetFromCoords: getCellOffsetFromCoords,
|
|
2950
3169
|
getCellCoordsFromOffset: getCellCoordsFromOffset,
|
|
2951
3170
|
getRelativePositionFromOffset: getRelativePositionFromOffset,
|
|
@@ -2968,11 +3187,11 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2968
3187
|
sheetId: sheetId,
|
|
2969
3188
|
disabled: isRestricted,
|
|
2970
3189
|
HeaderMoveDragComponent: HeaderMoveDragComponent,
|
|
2971
|
-
}), draggableColumns =
|
|
3190
|
+
}), draggableColumns = _74.draggableColumns, draggableRows = _74.draggableRows, isDraggingRowsAndColumns = _74.isDragging;
|
|
2972
3191
|
/**
|
|
2973
3192
|
* Header actions
|
|
2974
3193
|
*/
|
|
2975
|
-
var
|
|
3194
|
+
var _75 = (0, use_header_actions_1.useHeaderActions)({
|
|
2976
3195
|
activeCell: isSelectionInProgress || isFilling || isDragging ? null : hoveredCell,
|
|
2977
3196
|
getScrollPosition: getScrollPosition,
|
|
2978
3197
|
getCellOffsetFromCoords: getCellOffsetFromCoords,
|
|
@@ -2999,7 +3218,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2999
3218
|
selectedRowHeadersIds: selectedRowHeadersIds,
|
|
3000
3219
|
selectedColumnHeadersIds: selectedColumnHeadersIds,
|
|
3001
3220
|
enableResizerOverflow: enableResizerOverflow,
|
|
3002
|
-
}), headerMenuComponent =
|
|
3221
|
+
}), headerMenuComponent = _75.headerMenuComponent, isHeaderMenuInFrozenColumn = _75.isHeaderMenuInFrozenColumn, headerResizer = _75.headerResizer, isDraggingHeader = _75.isDragging;
|
|
3003
3222
|
/**
|
|
3004
3223
|
* Close tooltip
|
|
3005
3224
|
*/
|
|
@@ -3041,7 +3260,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3041
3260
|
/**
|
|
3042
3261
|
* Show basicFilter panels
|
|
3043
3262
|
*/
|
|
3044
|
-
var
|
|
3263
|
+
var _76 = (0, use_filter_1.useFilter)({
|
|
3045
3264
|
sheetId: sheetId,
|
|
3046
3265
|
scale: scale,
|
|
3047
3266
|
theme: theme,
|
|
@@ -3066,9 +3285,9 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3066
3285
|
// Live filter state so the open popup tracks Auto-apply spec changes.
|
|
3067
3286
|
basicFilter: basicFilter,
|
|
3068
3287
|
tables: activeTables,
|
|
3069
|
-
}), showFilter =
|
|
3288
|
+
}), showFilter = _76.showFilter, hideFilter = _76.hideFilter, filterComponent = _76.filterComponent;
|
|
3070
3289
|
// Table resize
|
|
3071
|
-
var
|
|
3290
|
+
var _77 = (0, use_table_resizer_1.useTableResizer)({
|
|
3072
3291
|
sheetId: sheetId,
|
|
3073
3292
|
tables: tables !== null && tables !== void 0 ? tables : undefined,
|
|
3074
3293
|
theme: theme,
|
|
@@ -3079,11 +3298,11 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3079
3298
|
scrollToCell: scrollToCell,
|
|
3080
3299
|
onResizeTable: onResizeTable,
|
|
3081
3300
|
focusSheet: focusSheet,
|
|
3082
|
-
}), tableResizers =
|
|
3301
|
+
}), tableResizers = _77.tableResizers, isResizingTable = _77.isResizingTable;
|
|
3083
3302
|
/**
|
|
3084
3303
|
* Displays resizable/draggable charts
|
|
3085
3304
|
*/
|
|
3086
|
-
var
|
|
3305
|
+
var _78 = (0, use_embeds_charts_1.useEmbedsCharts)({
|
|
3087
3306
|
charts: charts,
|
|
3088
3307
|
embeds: embeds,
|
|
3089
3308
|
slicers: slicers,
|
|
@@ -3094,14 +3313,20 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3094
3313
|
getCellOffsetFromCoords: getCellOffsetFromCoords,
|
|
3095
3314
|
getAbsolutePositionFromOffset: getAbsolutePositionFromOffset,
|
|
3096
3315
|
getCellCoordsFromOffset: getCellCoordsFromOffset,
|
|
3316
|
+
getRelativePositionFromOffset: getRelativePositionFromOffset,
|
|
3097
3317
|
getScrollPosition: getScrollPosition,
|
|
3318
|
+
ContextMenuWrapper: ContextMenuWrapper,
|
|
3319
|
+
focusSheet: focusSheet,
|
|
3098
3320
|
selectedColor: chartSelectedColor,
|
|
3099
3321
|
onMoveChart: onMoveChart,
|
|
3100
3322
|
onResizeChart: onResizeChart,
|
|
3323
|
+
chartClipboard: chartClipboard,
|
|
3101
3324
|
onMoveEmbed: onMoveEmbed,
|
|
3102
3325
|
onResizeEmbed: onResizeEmbed,
|
|
3103
3326
|
onDeleteEmbed: onDeleteEmbed,
|
|
3104
3327
|
onDeleteChart: onDeleteChart,
|
|
3328
|
+
onUpdateChart: onUpdateChart,
|
|
3329
|
+
onChangeZOrder: onChangeZOrder,
|
|
3105
3330
|
onRequestEditEmbed: onRequestEditEmbed,
|
|
3106
3331
|
onMoveSlicer: onMoveSlicer,
|
|
3107
3332
|
onResizeSlicer: onResizeSlicer,
|
|
@@ -3120,7 +3345,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3120
3345
|
backgroundColor: cellBackgroundColor,
|
|
3121
3346
|
disabled: isRestricted,
|
|
3122
3347
|
readonly: readonly,
|
|
3123
|
-
}), chartComponents =
|
|
3348
|
+
}), chartComponents = _78.chartComponents, embedComponents = _78.embedComponents, slicerComponents = _78.slicerComponents, embedContextMenuComponent = _78.contextMenuComponent, onMouseDownCharts = _78.onMouseDown, requestChartContextMenu = _78.requestChartContextMenu;
|
|
3124
3349
|
/**
|
|
3125
3350
|
* Callback when user clicks Filter icon
|
|
3126
3351
|
* Show Filter dropdown here
|
|
@@ -3175,6 +3400,57 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3175
3400
|
onExpandCollapse === null || onExpandCollapse === void 0 ? void 0 : onExpandCollapse(sheetId, cell, groupKeys, newExpandedState, childrenCount);
|
|
3176
3401
|
}
|
|
3177
3402
|
}, [onExpandCollapse, getCellGroupKeys, getChildrenCount]);
|
|
3403
|
+
/**
|
|
3404
|
+
* The totals-function picker a totals cell's in-cell arrow opens (Excel):
|
|
3405
|
+
* anchored at the cell's bottom-right corner like the filter dropdown.
|
|
3406
|
+
*/
|
|
3407
|
+
var _79 = tslib_1.__read((0, react_1.useState)(null), 2), totalsPicker = _79[0], setTotalsPicker = _79[1];
|
|
3408
|
+
var closeTotalsPicker = (0, react_1.useCallback)(function () { return setTotalsPicker(null); }, []);
|
|
3409
|
+
var handleTotalsArrowClick = (0, react_1.useCallback)(function (cell) {
|
|
3410
|
+
var table = activeTables === null || activeTables === void 0 ? void 0 : activeTables.find(function (candidate) {
|
|
3411
|
+
return candidate.totalRow &&
|
|
3412
|
+
cell.rowIndex === candidate.range.endRowIndex &&
|
|
3413
|
+
(0, grid_4.isCellWithinBounds)(cell, candidate.range);
|
|
3414
|
+
});
|
|
3415
|
+
var cellPosition = getCellOffsetFromCoords(cell);
|
|
3416
|
+
var scrollPosition = getScrollPosition();
|
|
3417
|
+
if (!table || !cellPosition) {
|
|
3418
|
+
return;
|
|
3419
|
+
}
|
|
3420
|
+
var _a = cellPosition.x, x = _a === void 0 ? 0 : _a, _b = cellPosition.y, y = _b === void 0 ? 0 : _b, _c = cellPosition.width, width = _c === void 0 ? 0 : _c, _d = cellPosition.height, height = _d === void 0 ? 0 : _d;
|
|
3421
|
+
var scrollX = isFrozenColumn(cell.columnIndex)
|
|
3422
|
+
? 0
|
|
3423
|
+
: scrollPosition.scrollLeft;
|
|
3424
|
+
var scrollY = isFrozenRow(cell.rowIndex) ? 0 : scrollPosition.scrollTop;
|
|
3425
|
+
setActiveCell(sheetId, cell, false);
|
|
3426
|
+
setTotalsPicker({
|
|
3427
|
+
table: table,
|
|
3428
|
+
cell: cell,
|
|
3429
|
+
left: x + width - scrollX,
|
|
3430
|
+
top: y + height - scrollY,
|
|
3431
|
+
});
|
|
3432
|
+
}, [
|
|
3433
|
+
activeTables,
|
|
3434
|
+
getCellOffsetFromCoords,
|
|
3435
|
+
getScrollPosition,
|
|
3436
|
+
isFrozenColumn,
|
|
3437
|
+
isFrozenRow,
|
|
3438
|
+
setActiveCell,
|
|
3439
|
+
sheetId,
|
|
3440
|
+
]);
|
|
3441
|
+
var totalsPickerComponent = totalsPicker ? (react_1.default.createElement(style_1.StyledContextMenuWrapper, { style: {
|
|
3442
|
+
transform: "translate3d(".concat(totalsPicker.left, "px, ").concat(totalsPicker.top, "px, 0)"),
|
|
3443
|
+
} },
|
|
3444
|
+
react_1.default.createElement(menu_1.ContextMenuDropdown, { isOpen: true, onOpenChange: function (open) {
|
|
3445
|
+
if (!open)
|
|
3446
|
+
closeTotalsPicker();
|
|
3447
|
+
} },
|
|
3448
|
+
react_1.default.createElement(ui_1.DropdownMenuPortal, null,
|
|
3449
|
+
react_1.default.createElement(ui_1.DropdownMenuContent, { align: "end", sideOffset: 0, onCloseAutoFocus: function (event) {
|
|
3450
|
+
event.preventDefault();
|
|
3451
|
+
focusSheet();
|
|
3452
|
+
}, onMouseMove: function (e) { return e.stopPropagation(); } },
|
|
3453
|
+
react_1.default.createElement(total_row_function_menu_1.TotalRowFunctionMenuItems, { sheetId: sheetId, table: totalsPicker.table, cell: totalsPicker.cell, readonly: readonly, getCellData: getCellData, onChange: onChange, onClearContents: onClearContents, onUpdateTable: onUpdateTable, onRequestEditCell: requestEditCell })))))) : null;
|
|
3178
3454
|
/**
|
|
3179
3455
|
* Capture mouse move events
|
|
3180
3456
|
*/
|
|
@@ -3185,8 +3461,10 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3185
3461
|
isDraggingHeader ||
|
|
3186
3462
|
isSelectionInProgress ||
|
|
3187
3463
|
isFilling) {
|
|
3464
|
+
clearTableHitZone();
|
|
3188
3465
|
return;
|
|
3189
3466
|
}
|
|
3467
|
+
onMouseMoveTableHitZones(e);
|
|
3190
3468
|
var coords = getCellCoordsFromOffset(e.clientX, e.clientY);
|
|
3191
3469
|
if (!coords || (0, grid_5.isEqualCells)(hoveredCellRef.current, coords)) {
|
|
3192
3470
|
return;
|
|
@@ -3200,6 +3478,8 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3200
3478
|
isSelectionInProgress,
|
|
3201
3479
|
isFilling,
|
|
3202
3480
|
hoveredCellRef,
|
|
3481
|
+
onMouseMoveTableHitZones,
|
|
3482
|
+
clearTableHitZone,
|
|
3203
3483
|
]);
|
|
3204
3484
|
// Mouse move throttler
|
|
3205
3485
|
var mouseMoveThrottler = (0, use_callback_ref_1.useCallbackRef)((0, throttle_1.default)(handleMouseMove, mouseMoveThrottleTimeout, {
|
|
@@ -3233,8 +3513,12 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3233
3513
|
if (formulaMode && isMetaKey) {
|
|
3234
3514
|
setFormulaState(function (prev) { return (tslib_1.__assign(tslib_1.__assign({}, prev), { selectionMode: "append" })); });
|
|
3235
3515
|
}
|
|
3236
|
-
//
|
|
3237
|
-
|
|
3516
|
+
// A table hit zone (header edge / corner / row edge) selects the table
|
|
3517
|
+
// part instead of starting a cell selection.
|
|
3518
|
+
if (!onMouseDownTableHitZones(e)) {
|
|
3519
|
+
// Pass it on to use selection hook
|
|
3520
|
+
onMouseDownSelection(e);
|
|
3521
|
+
}
|
|
3238
3522
|
// Charts
|
|
3239
3523
|
onMouseDownCharts === null || onMouseDownCharts === void 0 ? void 0 : onMouseDownCharts();
|
|
3240
3524
|
/**
|
|
@@ -3246,6 +3530,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3246
3530
|
}
|
|
3247
3531
|
// Hide filter
|
|
3248
3532
|
hideFilter();
|
|
3533
|
+
closeTotalsPicker();
|
|
3249
3534
|
// Hide popover
|
|
3250
3535
|
hideCellPopover();
|
|
3251
3536
|
// Hide paste mnenu
|
|
@@ -3256,8 +3541,10 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3256
3541
|
onUnpinTooltip();
|
|
3257
3542
|
}, [
|
|
3258
3543
|
onMouseDownSelection,
|
|
3544
|
+
onMouseDownTableHitZones,
|
|
3259
3545
|
onRequestCloseContextMenu,
|
|
3260
3546
|
hideFilter,
|
|
3547
|
+
closeTotalsPicker,
|
|
3261
3548
|
onMouseDownCharts,
|
|
3262
3549
|
formulaMode,
|
|
3263
3550
|
setFormulaState,
|
|
@@ -3378,8 +3665,10 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3378
3665
|
/**
|
|
3379
3666
|
* Render Cells in the grid
|
|
3380
3667
|
*/
|
|
3381
|
-
var
|
|
3668
|
+
var _80 = tslib_1.__read((0, use_cell_renderer_1.useCellRenderer)({
|
|
3382
3669
|
sheetId: sheetId,
|
|
3670
|
+
isTableTotalsCell: isTableTotalsCell,
|
|
3671
|
+
onTotalsArrowClick: handleTotalsArrowClick,
|
|
3383
3672
|
formulaLocale: formulaLocale,
|
|
3384
3673
|
showGridLines: showGridLines,
|
|
3385
3674
|
scale: scale,
|
|
@@ -3418,6 +3707,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3418
3707
|
getNote: getNote,
|
|
3419
3708
|
getComment: getComment,
|
|
3420
3709
|
getEffectiveValue: getEffectiveValue,
|
|
3710
|
+
getSparklineGroup: getSparklineGroup,
|
|
3421
3711
|
getFormattedValue: getFormattedValue,
|
|
3422
3712
|
getCellImageUrl: getCellImageUrl,
|
|
3423
3713
|
getEffectiveCellFormat: getEffectiveCellFormat,
|
|
@@ -3445,7 +3735,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3445
3735
|
onOverflow: handleOverflow,
|
|
3446
3736
|
isComparing: isComparing,
|
|
3447
3737
|
getCellDiff: getCellDiff,
|
|
3448
|
-
}), 4), cellBackgroundRenderer =
|
|
3738
|
+
}), 4), cellBackgroundRenderer = _80[0], cellRenderer = _80[1], cellOverlayRenderer = _80[2], headerCellRenderer = _80[3];
|
|
3449
3739
|
/**
|
|
3450
3740
|
* When user selects a selection for moving
|
|
3451
3741
|
* If its a table, we select the entire column
|
|
@@ -3481,11 +3771,25 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3481
3771
|
tokenizer: localeTokenizer,
|
|
3482
3772
|
});
|
|
3483
3773
|
// Selection move: drag a formula reference via its border covers
|
|
3484
|
-
var
|
|
3774
|
+
var _81 = (0, use_selection_move_1.useSelectionMove)({
|
|
3485
3775
|
getCellCoordsFromOffset: getCellCoordsFromOffset,
|
|
3486
3776
|
scrollToCell: scrollToCell,
|
|
3487
3777
|
tokenizer: localeTokenizer,
|
|
3488
|
-
}), onMouseDownMoveSelection =
|
|
3778
|
+
}), onMouseDownMoveSelection = _81.onMouseDownMoveSelection, isDraggingMoveSelection = _81.isDragging;
|
|
3779
|
+
/**
|
|
3780
|
+
* Selected chart: outline its source ranges on this sheet and re-bind
|
|
3781
|
+
* them when a corner handle is dragged (Excel's chart data highlight).
|
|
3782
|
+
*/
|
|
3783
|
+
var _82 = (0, use_chart_source_ranges_1.useChartSourceRanges)({
|
|
3784
|
+
charts: charts,
|
|
3785
|
+
sheetId: sheetId,
|
|
3786
|
+
getSheetName: getSheetName,
|
|
3787
|
+
readonly: readonly,
|
|
3788
|
+
onUpdateChart: onUpdateChart,
|
|
3789
|
+
getCellBounds: getCellBounds,
|
|
3790
|
+
getCellCoordsFromOffset: getCellCoordsFromOffset,
|
|
3791
|
+
scrollToCell: scrollToCell,
|
|
3792
|
+
}), chartSourceBorderStyles = _82.chartSourceBorderStyles, onMouseDownChartSourceResizeHandle = _82.onMouseDownChartSourceResizeHandle;
|
|
3489
3793
|
/**
|
|
3490
3794
|
* Hide fill handle
|
|
3491
3795
|
* 1. When user is in edit mode
|
|
@@ -3498,9 +3802,9 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3498
3802
|
/**
|
|
3499
3803
|
* Flashing
|
|
3500
3804
|
*/
|
|
3501
|
-
var
|
|
3805
|
+
var _83 = (0, use_flash_1.useFlash)({
|
|
3502
3806
|
theme: theme,
|
|
3503
|
-
}), flash =
|
|
3807
|
+
}), flash = _83.flash, mark = _83.mark, unmark = _83.unmark, onFlashEnd = _83.onFlashEnd, flashingBorders = _83.flashingBorders;
|
|
3504
3808
|
// Cache hover ids
|
|
3505
3809
|
var cachedHoveredSelectionIds = (0, use_hovered_selection_ids_1.useHoveredSelectionIds)({
|
|
3506
3810
|
selections: selections,
|
|
@@ -3518,6 +3822,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3518
3822
|
isFillShrink: fillShrink !== undefined,
|
|
3519
3823
|
onSelectionMouseDown: onSelectionElementMouseDown,
|
|
3520
3824
|
onMouseDownResizeHandle: onMouseDownResizeHandle,
|
|
3825
|
+
onMouseDownChartSourceResizeHandle: onMouseDownChartSourceResizeHandle,
|
|
3521
3826
|
onMouseDownMoveSelection: onMouseDownMoveSelection,
|
|
3522
3827
|
isDraggingMoveSelection: isDraggingMoveSelection,
|
|
3523
3828
|
onChangeActiveCell: onChangeActiveCell,
|
|
@@ -3550,6 +3855,12 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3550
3855
|
onCloseFillOptions: handleCloseFillOptions,
|
|
3551
3856
|
insertOptions: insertOptions,
|
|
3552
3857
|
onChooseInsertOption: handleChooseInsertOption,
|
|
3858
|
+
tableAutoExpansion: tableAutoExpansion,
|
|
3859
|
+
canStopAutoExpandingTables: !!onChangeAutoExpandTables,
|
|
3860
|
+
onChooseTableAutoExpansionOption: handleChooseTableAutoExpansionOption,
|
|
3861
|
+
calculatedColumnFill: calculatedColumnFill,
|
|
3862
|
+
canStopAutoCalculatedColumns: !!onChangeAutoCalculatedColumns,
|
|
3863
|
+
onChooseCalculatedColumnOption: handleChooseCalculatedColumnOption,
|
|
3553
3864
|
hoveredCell: delayedHoveredCell,
|
|
3554
3865
|
onRemoveQuickEdit: onRemoveQuickEdit,
|
|
3555
3866
|
onAddQuickEdit: onAddQuickEdit,
|
|
@@ -3584,8 +3895,13 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3584
3895
|
agentSuggestions: agentSuggestions,
|
|
3585
3896
|
quickEditValues: quickEditValues,
|
|
3586
3897
|
});
|
|
3898
|
+
// A selected chart's source outlines draw on top of the other range borders.
|
|
3899
|
+
var gridBorderStyles = (0, react_1.useMemo)(function () {
|
|
3900
|
+
return chartSourceBorderStyles.length
|
|
3901
|
+
? tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(finalBorderStyles), false), tslib_1.__read(chartSourceBorderStyles), false) : finalBorderStyles;
|
|
3902
|
+
}, [finalBorderStyles, chartSourceBorderStyles]);
|
|
3587
3903
|
// Hidden column markers
|
|
3588
|
-
var
|
|
3904
|
+
var _84 = tslib_1.__read((0, use_hidden_dimension_markers_1.useHiddenDimensionMarkers)({
|
|
3589
3905
|
sheetId: sheetId,
|
|
3590
3906
|
columnMetadata: columnMetadata,
|
|
3591
3907
|
rowMetadata: rowMetadata,
|
|
@@ -3598,7 +3914,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3598
3914
|
columnCount: columnCount,
|
|
3599
3915
|
HiddenRowMarkers: HiddenRowMarkers,
|
|
3600
3916
|
HiddenColumnMarkers: HiddenColumnMarkers,
|
|
3601
|
-
}), 4), hiddenColumnMarkers =
|
|
3917
|
+
}), 4), hiddenColumnMarkers = _84[0], frozenHiddenColumnMarkers = _84[1], hiddenRowMarkers = _84[2], frozenHiddenRowMarkers = _84[3];
|
|
3602
3918
|
// Zoom lister
|
|
3603
3919
|
var onMouseWheel = (0, use_scale_listener_1.useScaleListener)({
|
|
3604
3920
|
zoomSpeed: zoomSpeed,
|
|
@@ -3714,6 +4030,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3714
4030
|
getNextFocusableCell: getNextFocusableCell,
|
|
3715
4031
|
onEditorKeyDown: onEditorKeyDown,
|
|
3716
4032
|
scrollToCell: scrollToCell,
|
|
4033
|
+
scrollToChart: scrollToChart,
|
|
3717
4034
|
scrollToBottom: scrollToBottom,
|
|
3718
4035
|
focusSheet: focusSheet,
|
|
3719
4036
|
canEditCell: canEditCell,
|
|
@@ -3833,7 +4150,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3833
4150
|
}
|
|
3834
4151
|
// Wait for sheet change to finish
|
|
3835
4152
|
requestAnimationFrame(function () {
|
|
3836
|
-
var _a;
|
|
4153
|
+
var _a, _b;
|
|
3837
4154
|
// If user is not in formula mode and changing sheet.
|
|
3838
4155
|
// The edit belongs to the sheet it was started on, so flush it —
|
|
3839
4156
|
// `hideEditor()` alone threw the typed value away, leaving the cell
|
|
@@ -3870,7 +4187,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3870
4187
|
// Keep focus back on sheet
|
|
3871
4188
|
// Check if user is focused on the context menu
|
|
3872
4189
|
if (grid_2.canUseDOM &&
|
|
3873
|
-
((_a =
|
|
4190
|
+
((_b = (_a = (0, grid_2.getOwnerDocument)(gridContainerRef.current)) === null || _a === void 0 ? void 0 : _a.activeElement) === null || _b === void 0 ? void 0 : _b.getAttribute("role")) !== "menu") {
|
|
3874
4191
|
focusSheet();
|
|
3875
4192
|
}
|
|
3876
4193
|
}
|
|
@@ -3886,6 +4203,10 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3886
4203
|
scrollToCell: scrollToCell,
|
|
3887
4204
|
commit: commit,
|
|
3888
4205
|
openFillSeriesDialog: function () { var _a; return (_a = openFillSeriesDialogForRef.current) === null || _a === void 0 ? void 0 : _a.call(openFillSeriesDialogForRef); },
|
|
4206
|
+
copyChart: copyChart,
|
|
4207
|
+
cutChart: cutChart,
|
|
4208
|
+
pasteChart: pasteChart,
|
|
4209
|
+
duplicateChart: duplicateChart,
|
|
3889
4210
|
};
|
|
3890
4211
|
setSpreadsheetApi(new spreadsheet_api_1.SpreadsheetApi(propsReferenceRef, stableMethods, store, instanceStore, instanceId));
|
|
3891
4212
|
}, []);
|
|
@@ -3950,6 +4271,13 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3950
4271
|
* in formula mode
|
|
3951
4272
|
*/
|
|
3952
4273
|
var enableSelectionDrag = !isSelectionInProgress && !isEditInProgress && !formulaMode;
|
|
4274
|
+
// A chartsheet IS its chart: no grid, headers, editor or cell menus — only the chart and its
|
|
4275
|
+
// context menu (Excel).
|
|
4276
|
+
if (sheetType === "chartsheet") {
|
|
4277
|
+
return (react_1.default.createElement("div", tslib_1.__assign({ className: (0, ui_1.cn)("rnc-canvas-wrapper after:box-border before:box-border [&_*]:box-border flex min-h-0 min-w-0 relative z-[1] flex-1 bg-rnc-background", className), ref: gridContainerRef, role: "application", "aria-label": "Chart sheet" }, rest),
|
|
4278
|
+
react_1.default.createElement(ChartSheetViewComponent, { sheetId: sheetId, chart: charts === null || charts === void 0 ? void 0 : charts.find(function (chart) { var _a; return ((_a = chart.position) === null || _a === void 0 ? void 0 : _a.sheetId) === sheetId; }), width: width, height: height, theme: theme, backgroundColor: cellBackgroundColor, readonly: readonly, getChartComponent: getChartComponent, onDeleteChart: onDeleteChart, onUpdateChart: onUpdateChart, onRequestContextMenu: requestChartContextMenu }),
|
|
4279
|
+
embedContextMenuComponent));
|
|
4280
|
+
}
|
|
3953
4281
|
return (react_1.default.createElement("div", tslib_1.__assign({ className: (0, ui_1.cn)("rnc-canvas-wrapper after:box-border before:box-border [&_*]:box-border flex min-h-0 min-w-0 relative z-[1] flex-1 bg-rnc-background", className), ref: gridContainerRef,
|
|
3954
4282
|
// The grid paints to <canvas>, so there is no per-cell DOM for a screen
|
|
3955
4283
|
// reader to traverse. role="application" passes keystrokes through to our
|
|
@@ -3964,11 +4292,11 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3964
4292
|
// Bind to outer container, so it always takes
|
|
3965
4293
|
// priority over other components
|
|
3966
4294
|
// generated by hooks
|
|
3967
|
-
onMouseMove: mouseMoveThrottler, onWheel: onMouseWheel }, rest),
|
|
4295
|
+
onMouseMove: mouseMoveThrottler, onWheel: onMouseWheel }, rest, { style: tableHitCursor ? tslib_1.__assign(tslib_1.__assign({}, rest.style), { cursor: tableHitCursor }) : rest.style }),
|
|
3968
4296
|
width === 0 || height === 0 ? (react_1.default.createElement("div", { className: "flex border-solid border-rnc-border border border-t border-b flex-1 justify-center items-center" },
|
|
3969
4297
|
react_1.default.createElement("div", { className: "space-y-2" },
|
|
3970
4298
|
react_1.default.createElement(ui_1.Skeleton, { className: "h-4 w-[250px]" }),
|
|
3971
|
-
react_1.default.createElement(ui_1.Skeleton, { className: "h-4 w-[250px]" })))) : (react_1.default.createElement(grid_5.Grid, { ref: gridRef, overscanCount: overscanCount, rowCount: sheetRowCount, columnCount: sheetColumnCount, rowHeight: rowHeight, columnWidth: columnWidth, itemRenderer: cellRenderer, headerRenderer: headerCellRenderer, selectionRenderer: selectionRenderer, gridLineColor: gridLineColor, gridLineWidth: gridLineWidth, borderStyles:
|
|
4299
|
+
react_1.default.createElement(ui_1.Skeleton, { className: "h-4 w-[250px]" })))) : (react_1.default.createElement(grid_5.Grid, { ref: gridRef, overscanCount: overscanCount, rowCount: sheetRowCount, columnCount: sheetColumnCount, rowHeight: rowHeight, columnWidth: columnWidth, itemRenderer: cellRenderer, headerRenderer: headerCellRenderer, selectionRenderer: selectionRenderer, gridLineColor: gridLineColor, gridLineWidth: gridLineWidth, borderStyles: gridBorderStyles, mergedCells: merges, scale: scale, width: width, height: height, frozenColumns: frozenColumns, frozenRows: frozenRows, activeCell: activeCell, selections: formulaMode ? formulaSelections : selections, FillHandle: fill_handle_1.FillHandle, showFillHandle: showFillHandle, fillHandleSize: fillHandleSize, showGridLines: showGridLines, enableCellOverlay: true, enableCellBackground: true, enableSelectionDrag: enableSelectionDrag, showFrozenColumnShadow: showFrozenSeparator, showFrozenRowShadow: showFrozenSeparator, selectionBorderColor: selectionBorderColor, selectionBackgroundColor: selectionBackgroundColor, fillhandleBorderColor: cellBackgroundColor, isDraggingSelection: isDragging, fillSelection: fillShrinkOverlay !== null && fillShrinkOverlay !== void 0 ? fillShrinkOverlay : fillSelection, onPointerDown: handlePointerDown, onPointerUp: handlePointerUp, onMouseDown: handleMouseDown, onDoubleClick: handleDoubleClick, onFillHandleMouseDown: onFillHandleMouseDown, onFillHandleDoubleClick: onFillHandleDoubleClick,
|
|
3972
4300
|
// Dimension of fill handle
|
|
3973
4301
|
scrollToCellOffset: 4, scrollbarSize: scrollbarSize, isHiddenCell: isHiddenCell, isHiddenColumn: isHiddenColumn, isHiddenRow: isHiddenRow, visibleRowRanges: visibleRowRanges, isHiddenOverlay: isHiddenOverlay, isHiddenBackground: isHiddenBackground, overlayRenderer: cellOverlayRenderer, backgroundRenderer: cellBackgroundRenderer, shadowSettings: shadowSettings, onScroll: handleScroll, onViewPortChange: handleViewPortChange, autoFocus: autoFocus, snap: scrollSnap, scrollThrottleTimeout: scrollThrottleTimeout, preventBrowserDefaultScroll: preventBrowserDefaultScroll, showHeaders: showHeaders, gridChildren: gridChildren, onTouchStart: onTouchStart, onDimensionsChange: onDimensionsChange, extendScrollSize: helpers_1.isTouchDevice || helpers_1.isFirefox, isTouchDevice: helpers_1.isTouchDevice, frozenShadowThickness: frozenShadowThickness, onAfterScrollToCell: onAfterScrollToCell, estimatedRowHeight: defaultRowHeight, estimatedColumnWidth: defaultColumnWidth, footerHeight: footerHeight, footerComponent: footerComponent, getOverflowBuffer: getOverflowBuffer, getFrozenColumnOverflowCells: getFrozenColumnOverflowCells })),
|
|
3974
4302
|
tooltipComponent,
|
|
@@ -3976,7 +4304,9 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3976
4304
|
draggableColumns,
|
|
3977
4305
|
draggableRows,
|
|
3978
4306
|
contextMenuComponent,
|
|
4307
|
+
embedContextMenuComponent,
|
|
3979
4308
|
filterComponent,
|
|
4309
|
+
totalsPickerComponent,
|
|
3980
4310
|
headerResizer,
|
|
3981
4311
|
validatorResult,
|
|
3982
4312
|
react_1.default.createElement("div", { "aria-live": "polite", "aria-atomic": "true", style: {
|