@rowsncolumns/spreadsheet 10.3.1 → 10.4.1
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 +393 -72
- 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 +214 -39
- 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/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-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-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-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-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-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.d.ts +9 -1
- package/dist/cjs/hooks/use-selection.d.ts.map +1 -1
- package/dist/cjs/hooks/use-selection.js +118 -30
- 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 +22 -10
- 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 +332 -21
- 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 +204 -45
- 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/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-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-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-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-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-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.d.ts +9 -1
- package/dist/esm/hooks/use-selection.d.ts.map +1 -1
- package/dist/esm/hooks/use-selection.js +122 -30
- 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 +21 -10
- 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 +12 -10
- 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
|
@@ -1,11 +1,46 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useEmbedsCharts = exports.getOverlayPlacement = void 0;
|
|
3
|
+
exports.useEmbedsCharts = exports.getOverlayToAnchorProps = exports.isMoveAndSizePlacement = exports.getOverlayPlacement = exports.resolveOverlayCell = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var react_1 = tslib_1.__importStar(require("react"));
|
|
6
6
|
var atoms_1 = require("../atoms");
|
|
7
|
+
var embed_context_menu_1 = require("../components/context-menu/embed-context-menu");
|
|
8
|
+
var move_chart_dialog_atom_1 = require("../atoms/move-chart-dialog.atom");
|
|
7
9
|
var embeds_1 = require("../components/embeds");
|
|
8
10
|
var config_1 = require("../config");
|
|
11
|
+
var pivot_chart_field_buttons_1 = require("../utils/pivot-chart-field-buttons");
|
|
12
|
+
var copy_as_picture_1 = require("../utils/copy-as-picture");
|
|
13
|
+
var z_order_1 = require("../utils/z-order");
|
|
14
|
+
var use_context_menu_1 = require("./use-context-menu");
|
|
15
|
+
/**
|
|
16
|
+
* The cell an object's top-left corner actually sits in: its anchor cell
|
|
17
|
+
* walked forward by its pixel offsets. An `absoluteAnchor` imports as A1 plus
|
|
18
|
+
* a large offset, so the raw anchor says nothing about which pane the object
|
|
19
|
+
* is on screen in. The walk is bounded by `maxRow` / `maxColumn` (the frozen
|
|
20
|
+
* counts) — past them the answer is "body" regardless of the exact cell.
|
|
21
|
+
*/
|
|
22
|
+
var resolveOverlayCell = function (anchorCell, offsetXPixels, offsetYPixels, getCellOffsetFromCoords, maxRow, maxColumn) {
|
|
23
|
+
var _a, _b;
|
|
24
|
+
var rowIndex = anchorCell.rowIndex, columnIndex = anchorCell.columnIndex;
|
|
25
|
+
var x = offsetXPixels;
|
|
26
|
+
var y = offsetYPixels;
|
|
27
|
+
while (rowIndex < maxRow) {
|
|
28
|
+
var height = (_a = getCellOffsetFromCoords({ rowIndex: rowIndex, columnIndex: columnIndex })) === null || _a === void 0 ? void 0 : _a.height;
|
|
29
|
+
if (height === undefined || y < height)
|
|
30
|
+
break;
|
|
31
|
+
y -= height;
|
|
32
|
+
rowIndex += 1;
|
|
33
|
+
}
|
|
34
|
+
while (columnIndex < maxColumn) {
|
|
35
|
+
var width = (_b = getCellOffsetFromCoords({ rowIndex: rowIndex, columnIndex: columnIndex })) === null || _b === void 0 ? void 0 : _b.width;
|
|
36
|
+
if (width === undefined || x < width)
|
|
37
|
+
break;
|
|
38
|
+
x -= width;
|
|
39
|
+
columnIndex += 1;
|
|
40
|
+
}
|
|
41
|
+
return { rowIndex: rowIndex, columnIndex: columnIndex };
|
|
42
|
+
};
|
|
43
|
+
exports.resolveOverlayCell = resolveOverlayCell;
|
|
9
44
|
/**
|
|
10
45
|
* Get placement of an item based on anchor cell position
|
|
11
46
|
*/
|
|
@@ -24,6 +59,24 @@ var getOverlayPlacement = function (anchorCell, frozenRows, frozenColumns) {
|
|
|
24
59
|
return "body";
|
|
25
60
|
};
|
|
26
61
|
exports.getOverlayPlacement = getOverlayPlacement;
|
|
62
|
+
/** Excel's default placement — an object with no explicit mode moves and sizes with cells. */
|
|
63
|
+
var isMoveAndSizePlacement = function (overlay) { var _a; return ((_a = overlay === null || overlay === void 0 ? void 0 : overlay.placement) !== null && _a !== void 0 ? _a : "moveAndSize") === "moveAndSize"; };
|
|
64
|
+
exports.isMoveAndSizePlacement = isMoveAndSizePlacement;
|
|
65
|
+
/**
|
|
66
|
+
* The props that lay a frame out from both anchors — only a `moveAndSize`
|
|
67
|
+
* object with a persisted second anchor; the others keep their pixel size.
|
|
68
|
+
*/
|
|
69
|
+
var getOverlayToAnchorProps = function (overlay) {
|
|
70
|
+
var _a, _b;
|
|
71
|
+
return (0, exports.isMoveAndSizePlacement)(overlay) && overlay.toCell
|
|
72
|
+
? {
|
|
73
|
+
toCell: overlay.toCell,
|
|
74
|
+
toOffsetXPixels: (_a = overlay.toOffsetXPixels) !== null && _a !== void 0 ? _a : 0,
|
|
75
|
+
toOffsetYPixels: (_b = overlay.toOffsetYPixels) !== null && _b !== void 0 ? _b : 0,
|
|
76
|
+
}
|
|
77
|
+
: undefined;
|
|
78
|
+
};
|
|
79
|
+
exports.getOverlayToAnchorProps = getOverlayToAnchorProps;
|
|
27
80
|
var defaultGetChartComponent = function (props) { return (react_1.default.createElement(embeds_1.ChartComponent, tslib_1.__assign({}, props))); };
|
|
28
81
|
var defaultGetEmbedComponent = function (props) { return (react_1.default.createElement(embeds_1.EmbedComponent, tslib_1.__assign({}, props))); };
|
|
29
82
|
var defaultGetSlicerComponent = function (props) { return (react_1.default.createElement(embeds_1.SlicerComponent, tslib_1.__assign({}, props))); };
|
|
@@ -40,15 +93,204 @@ var validateEmbeds = function (embedsOrCharts, sheetId) {
|
|
|
40
93
|
});
|
|
41
94
|
};
|
|
42
95
|
var useEmbedsCharts = function (_a) {
|
|
43
|
-
var _b = _a.scale, scale = _b === void 0 ? 1 : _b, charts = _a.charts, embeds = _a.embeds, slicers = _a.slicers, sheetId = _a.sheetId, _c = _a.frozenRows, frozenRows = _c === void 0 ? 0 : _c, _d = _a.frozenColumns, frozenColumns = _d === void 0 ? 0 : _d, getCellOffsetFromCoords = _a.getCellOffsetFromCoords, getCellCoordsFromOffset = _a.getCellCoordsFromOffset, getAbsolutePositionFromOffset = _a.getAbsolutePositionFromOffset, getBounds = _a.getBounds,
|
|
44
|
-
var
|
|
96
|
+
var _b = _a.scale, scale = _b === void 0 ? 1 : _b, charts = _a.charts, embeds = _a.embeds, slicers = _a.slicers, sheetId = _a.sheetId, _c = _a.frozenRows, frozenRows = _c === void 0 ? 0 : _c, _d = _a.frozenColumns, frozenColumns = _d === void 0 ? 0 : _d, getCellOffsetFromCoords = _a.getCellOffsetFromCoords, getCellCoordsFromOffset = _a.getCellCoordsFromOffset, getAbsolutePositionFromOffset = _a.getAbsolutePositionFromOffset, getRelativePositionFromOffset = _a.getRelativePositionFromOffset, _e = _a.ContextMenuWrapper, ContextMenuWrapper = _e === void 0 ? use_context_menu_1.DefaultContextMenuWrapper : _e, focusSheet = _a.focusSheet, getBounds = _a.getBounds, _f = _a.selectedColor, selectedColor = _f === void 0 ? "#1a73e8" : _f, onMoveChart = _a.onMoveChart, onResizeChart = _a.onResizeChart, chartClipboard = _a.chartClipboard, onMoveEmbed = _a.onMoveEmbed, onResizeEmbed = _a.onResizeEmbed, onDeleteChart = _a.onDeleteChart, onUpdateChart = _a.onUpdateChart, onChangeZOrder = _a.onChangeZOrder, onDeleteEmbed = _a.onDeleteEmbed, onRequestEditEmbed = _a.onRequestEditEmbed, onMoveSlicer = _a.onMoveSlicer, onResizeSlicer = _a.onResizeSlicer, onDeleteSlicer = _a.onDeleteSlicer, onRequestEditSlicer = _a.onRequestEditSlicer, onFilterTable = _a.onFilterTable, onFilterPivot = _a.onFilterPivot, tables = _a.tables, pivotTables = _a.pivotTables, getFormattedValue = _a.getFormattedValue, _g = _a.getChartComponent, getChartComponent = _g === void 0 ? defaultGetChartComponent : _g, _h = _a.getEmbedComponent, getEmbedComponent = _h === void 0 ? defaultGetEmbedComponent : _h, _j = _a.getSlicerComponent, getSlicerComponent = _j === void 0 ? defaultGetSlicerComponent : _j, readonly = _a.readonly, theme = _a.theme, backgroundColor = _a.backgroundColor, disabled = _a.disabled;
|
|
97
|
+
var _k = tslib_1.__read((0, atoms_1.useSelectedChartEmbed)(), 2), selectedIndex = _k[0], setSelectedIndex = _k[1];
|
|
98
|
+
var _l = tslib_1.__read((0, atoms_1.useSelectedChartSeries)(), 2), selectedSeries = _l[0], setSelectedSeries = _l[1];
|
|
99
|
+
var getChartActions = (0, atoms_1.useGetChartActions)();
|
|
100
|
+
var _m = tslib_1.__read((0, react_1.useState)(), 2), contextMenu = _m[0], setContextMenu = _m[1];
|
|
101
|
+
// The object the open menu belongs to; focus returns to it (or to the
|
|
102
|
+
// sheet once it has been deleted) when the menu closes.
|
|
103
|
+
var contextMenuTargetRef = (0, react_1.useRef)(null);
|
|
45
104
|
/**
|
|
46
105
|
* When user selects the sheet
|
|
47
106
|
*/
|
|
48
107
|
var handleMouseDown = (0, react_1.useCallback)(function () {
|
|
49
108
|
setSelectedIndex(undefined);
|
|
50
109
|
}, [setSelectedIndex]);
|
|
51
|
-
|
|
110
|
+
// Escape on a selected object: Excel first steps back from a selected data
|
|
111
|
+
// series to the whole chart, then drops the selection and the active cell
|
|
112
|
+
// takes focus again
|
|
113
|
+
var handleDeselect = (0, react_1.useCallback)(function (id) {
|
|
114
|
+
if ((selectedSeries === null || selectedSeries === void 0 ? void 0 : selectedSeries.chartId) === id) {
|
|
115
|
+
setSelectedSeries(undefined);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
setSelectedIndex(undefined);
|
|
119
|
+
focusSheet();
|
|
120
|
+
}, [selectedSeries, setSelectedSeries, setSelectedIndex, focusSheet]);
|
|
121
|
+
// Pressing on a chart selects it; a series selection is made afresh by the
|
|
122
|
+
// click that follows (the renderer publishes it), so a stale one never
|
|
123
|
+
// reappears when the same chart is re-selected
|
|
124
|
+
var selectChart = (0, react_1.useCallback)(function (id) {
|
|
125
|
+
setSelectedIndex(id);
|
|
126
|
+
setSelectedSeries(undefined);
|
|
127
|
+
}, [setSelectedIndex, setSelectedSeries]);
|
|
128
|
+
// Double-click on a chart opens the host's editor (Excel opens the format pane)
|
|
129
|
+
var handleChartDoubleClick = (0, react_1.useCallback)(function (id) {
|
|
130
|
+
var _a, _b;
|
|
131
|
+
(_b = (_a = getChartActions(id)) === null || _a === void 0 ? void 0 : _a.requestEdit) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
132
|
+
}, [getChartActions]);
|
|
133
|
+
// Stacking rank (1 = back-most) of every chart and embed on the sheet —
|
|
134
|
+
// charts and embeds are two arrays but one z-order (Excel's Arrange menu).
|
|
135
|
+
var stackingRanks = (0, react_1.useMemo)(function () { return (0, z_order_1.getStackingRanks)(charts, embeds, sheetId); }, [charts, embeds, sheetId]);
|
|
136
|
+
var stackingRankOf = (0, react_1.useCallback)(function (target) { return stackingRanks.get((0, z_order_1.stackingKey)(target)); }, [stackingRanks]);
|
|
137
|
+
/**
|
|
138
|
+
* Excel's Arrange commands for one object, each present only while it
|
|
139
|
+
* would move the object (the front-most one has nothing to bring forward).
|
|
140
|
+
*/
|
|
141
|
+
var getArrangeActions = (0, react_1.useCallback)(function (target) {
|
|
142
|
+
if (!onChangeZOrder || readonly) {
|
|
143
|
+
return {};
|
|
144
|
+
}
|
|
145
|
+
var arrange = function (direction) {
|
|
146
|
+
var changes = (0, z_order_1.planZOrderChange)(charts, embeds, sheetId, target, direction);
|
|
147
|
+
return changes ? function () { return onChangeZOrder(changes); } : undefined;
|
|
148
|
+
};
|
|
149
|
+
return {
|
|
150
|
+
onBringToFront: arrange("bringToFront"),
|
|
151
|
+
onBringForward: arrange("bringForward"),
|
|
152
|
+
onSendBackward: arrange("sendBackward"),
|
|
153
|
+
onSendToBack: arrange("sendToBack"),
|
|
154
|
+
};
|
|
155
|
+
}, [onChangeZOrder, readonly, charts, embeds, sheetId]);
|
|
156
|
+
/**
|
|
157
|
+
* Menu actions for a floating object. Actions without a handler are
|
|
158
|
+
* omitted so the menu only lists commands that do something.
|
|
159
|
+
*/
|
|
160
|
+
var openMoveChartDialog = (0, move_chart_dialog_atom_1.useOpenMoveChartDialog)();
|
|
161
|
+
var canMoveChartToSheet = (0, move_chart_dialog_atom_1.useIsMoveChartDialogMounted)();
|
|
162
|
+
var getContextMenuActions = (0, react_1.useCallback)(function (kind, id) {
|
|
163
|
+
var actions = {};
|
|
164
|
+
if (kind === "chart") {
|
|
165
|
+
var chart_1 = charts === null || charts === void 0 ? void 0 : charts.find(function (item) { return item.chartId === id; });
|
|
166
|
+
if (!chart_1) {
|
|
167
|
+
return actions;
|
|
168
|
+
}
|
|
169
|
+
var rendererActions = getChartActions(id);
|
|
170
|
+
if (chartClipboard) {
|
|
171
|
+
if (!readonly) {
|
|
172
|
+
actions.onCut = function () { return chartClipboard.cutChart(id); };
|
|
173
|
+
}
|
|
174
|
+
actions.onCopy = function () { return chartClipboard.copyChart(id); };
|
|
175
|
+
if (chartClipboard.hasChartOnClipboard()) {
|
|
176
|
+
actions.onPaste = function () { return chartClipboard.pasteChart(); };
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// Excel's "Copy as Picture" — the capture starts inside the click
|
|
180
|
+
// that asked for it, so the clipboard write stays in the gesture.
|
|
181
|
+
var exportPng_1 = rendererActions === null || rendererActions === void 0 ? void 0 : rendererActions.exportPng;
|
|
182
|
+
if (exportPng_1 && (0, copy_as_picture_1.canCopyImageToClipboard)()) {
|
|
183
|
+
actions.onCopyAsPicture = function () {
|
|
184
|
+
void (0, copy_as_picture_1.copyPngToClipboard)(exportPng_1());
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
if ((rendererActions === null || rendererActions === void 0 ? void 0 : rendererActions.requestEdit) && !readonly) {
|
|
188
|
+
actions.onRequestEdit = rendererActions.requestEdit;
|
|
189
|
+
// The editor opens on its Setup tab, whose first control is the
|
|
190
|
+
// chart type — the nearest thing to Excel's Change Chart Type dialog.
|
|
191
|
+
actions.onRequestChangeChartType = rendererActions.requestEdit;
|
|
192
|
+
}
|
|
193
|
+
if ((rendererActions === null || rendererActions === void 0 ? void 0 : rendererActions.switchRowColumn) && !readonly) {
|
|
194
|
+
actions.onSwitchRowColumn = rendererActions.switchRowColumn;
|
|
195
|
+
}
|
|
196
|
+
if (canMoveChartToSheet && !readonly) {
|
|
197
|
+
actions.onRequestMoveChart = function () { return openMoveChartDialog({ chart: chart_1 }); };
|
|
198
|
+
}
|
|
199
|
+
// PivotChart: Excel's Hide / Show All Field Buttons — one chart
|
|
200
|
+
// update (one undo step) that flips only the visibility flag.
|
|
201
|
+
if (chart_1.spec.pivotTableId != null && onUpdateChart && !readonly) {
|
|
202
|
+
var toggle = function () {
|
|
203
|
+
return onUpdateChart(tslib_1.__assign(tslib_1.__assign({}, chart_1), { spec: tslib_1.__assign(tslib_1.__assign({}, chart_1.spec), (0, pivot_chart_field_buttons_1.togglePivotChartFieldButtons)(chart_1.spec)) }));
|
|
204
|
+
};
|
|
205
|
+
if ((0, pivot_chart_field_buttons_1.pivotChartFieldButtonsVisible)(chart_1.spec)) {
|
|
206
|
+
actions.onHideFieldButtons = toggle;
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
actions.onShowFieldButtons = toggle;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
if (rendererActions === null || rendererActions === void 0 ? void 0 : rendererActions.downloadPng) {
|
|
213
|
+
actions.onDownloadPng = rendererActions.downloadPng;
|
|
214
|
+
}
|
|
215
|
+
Object.assign(actions, getArrangeActions({ kind: "chart", id: id }));
|
|
216
|
+
if (onDeleteChart && !readonly) {
|
|
217
|
+
actions.onDelete = function () { return onDeleteChart(id); };
|
|
218
|
+
}
|
|
219
|
+
return actions;
|
|
220
|
+
}
|
|
221
|
+
var embed = embeds === null || embeds === void 0 ? void 0 : embeds.find(function (item) { return item.embedId === id; });
|
|
222
|
+
if (!embed) {
|
|
223
|
+
return actions;
|
|
224
|
+
}
|
|
225
|
+
if (onRequestEditEmbed && !readonly) {
|
|
226
|
+
actions.onRequestEdit = function () { return onRequestEditEmbed(embed); };
|
|
227
|
+
}
|
|
228
|
+
Object.assign(actions, getArrangeActions({ kind: "embed", id: id }));
|
|
229
|
+
if (onDeleteEmbed && !readonly) {
|
|
230
|
+
actions.onDelete = function () { return onDeleteEmbed(id); };
|
|
231
|
+
}
|
|
232
|
+
return actions;
|
|
233
|
+
}, [
|
|
234
|
+
charts,
|
|
235
|
+
embeds,
|
|
236
|
+
readonly,
|
|
237
|
+
getChartActions,
|
|
238
|
+
chartClipboard,
|
|
239
|
+
onDeleteChart,
|
|
240
|
+
onUpdateChart,
|
|
241
|
+
onRequestEditEmbed,
|
|
242
|
+
onDeleteEmbed,
|
|
243
|
+
canMoveChartToSheet,
|
|
244
|
+
openMoveChartDialog,
|
|
245
|
+
getArrangeActions,
|
|
246
|
+
]);
|
|
247
|
+
/**
|
|
248
|
+
* Right-click / Shift+F10 on a floating object: select it (Excel does),
|
|
249
|
+
* then open its menu at the pointer.
|
|
250
|
+
*/
|
|
251
|
+
var requestContextMenu = (0, react_1.useCallback)(function (kind, id, clientX, clientY, element) {
|
|
252
|
+
setSelectedIndex(id);
|
|
253
|
+
if (!(0, embed_context_menu_1.hasEmbedContextMenuItems)(getContextMenuActions(kind, id))) {
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
var position = getRelativePositionFromOffset(clientX, clientY);
|
|
257
|
+
if (!position) {
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
contextMenuTargetRef.current = element;
|
|
261
|
+
setContextMenu({ kind: kind, id: id, left: position.x, top: position.y });
|
|
262
|
+
}, [setSelectedIndex, getContextMenuActions, getRelativePositionFromOffset]);
|
|
263
|
+
var handleChartContextMenu = (0, react_1.useCallback)(function (id, clientX, clientY, element) { return requestContextMenu("chart", id, clientX, clientY, element); }, [requestContextMenu]);
|
|
264
|
+
var handleEmbedContextMenu = (0, react_1.useCallback)(function (id, clientX, clientY, element) { return requestContextMenu("embed", id, clientX, clientY, element); }, [requestContextMenu]);
|
|
265
|
+
var closeContextMenu = (0, react_1.useCallback)(function (isOpen) {
|
|
266
|
+
if (!isOpen) {
|
|
267
|
+
setContextMenu(undefined);
|
|
268
|
+
}
|
|
269
|
+
}, []);
|
|
270
|
+
var handleContextMenuCloseAutoFocus = (0, react_1.useCallback)(function () {
|
|
271
|
+
var target = contextMenuTargetRef.current;
|
|
272
|
+
contextMenuTargetRef.current = null;
|
|
273
|
+
if (target === null || target === void 0 ? void 0 : target.isConnected) {
|
|
274
|
+
target.focus({ preventScroll: true });
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
focusSheet();
|
|
278
|
+
}
|
|
279
|
+
}, [focusSheet]);
|
|
280
|
+
var contextMenuComponent = (0, react_1.useMemo)(function () {
|
|
281
|
+
var _a, _b;
|
|
282
|
+
var actions = contextMenu
|
|
283
|
+
? getContextMenuActions(contextMenu.kind, contextMenu.id)
|
|
284
|
+
: undefined;
|
|
285
|
+
return (react_1.default.createElement(ContextMenuWrapper, { left: (_a = contextMenu === null || contextMenu === void 0 ? void 0 : contextMenu.left) !== null && _a !== void 0 ? _a : 0, top: (_b = contextMenu === null || contextMenu === void 0 ? void 0 : contextMenu.top) !== null && _b !== void 0 ? _b : 0, isOpen: !!contextMenu, onOpenChange: closeContextMenu }, contextMenu && actions ? (react_1.default.createElement(embed_context_menu_1.EmbedContextMenu, tslib_1.__assign({ kind: contextMenu.kind }, actions, { onCloseAutoFocus: handleContextMenuCloseAutoFocus }))) : null));
|
|
286
|
+
}, [
|
|
287
|
+
ContextMenuWrapper,
|
|
288
|
+
contextMenu,
|
|
289
|
+
getContextMenuActions,
|
|
290
|
+
closeContextMenu,
|
|
291
|
+
handleContextMenuCloseAutoFocus,
|
|
292
|
+
]);
|
|
293
|
+
var getCellPositionAt = (0, react_1.useCallback)(function (x, y) {
|
|
52
294
|
var _a, _b;
|
|
53
295
|
var position = getAbsolutePositionFromOffset(x, y);
|
|
54
296
|
// Use includeFrozen=true to detect cells in all regions
|
|
@@ -64,15 +306,76 @@ var useEmbedsCharts = function (_a) {
|
|
|
64
306
|
getCellCoordsFromOffset,
|
|
65
307
|
getAbsolutePositionFromOffset,
|
|
66
308
|
]);
|
|
309
|
+
/**
|
|
310
|
+
* Anchor cell + pixel offsets for a point in grid pixel space. A point past
|
|
311
|
+
* the sheet body (no cell there) is pulled back to its nearest body cell, so
|
|
312
|
+
* a gesture that ends outside the sheet is persisted at the clamped position
|
|
313
|
+
* instead of being dropped and leaving the frame where it was let go.
|
|
314
|
+
*/
|
|
315
|
+
var getCellPosition = (0, react_1.useCallback)(function (x, y) {
|
|
316
|
+
var _a, _b;
|
|
317
|
+
var position = getCellPositionAt(x, y);
|
|
318
|
+
if (position) {
|
|
319
|
+
return position;
|
|
320
|
+
}
|
|
321
|
+
var bounds = getBounds();
|
|
322
|
+
var clampedX = Math.max((_a = bounds.left) !== null && _a !== void 0 ? _a : -Infinity, Math.min(bounds.right !== undefined ? bounds.right - 1 : Infinity, x));
|
|
323
|
+
var clampedY = Math.max((_b = bounds.top) !== null && _b !== void 0 ? _b : -Infinity, Math.min(bounds.bottom !== undefined ? bounds.bottom - 1 : Infinity, y));
|
|
324
|
+
if (clampedX === x && clampedY === y) {
|
|
325
|
+
return undefined;
|
|
326
|
+
}
|
|
327
|
+
return getCellPositionAt(clampedX, clampedY);
|
|
328
|
+
}, [getCellPositionAt, getBounds]);
|
|
329
|
+
// Alt-drag / Alt-resize: nearest cell corner to a point, in the same pixel space the objects are laid out in
|
|
330
|
+
var snapToCellGrid = (0, react_1.useCallback)(function (x, y) {
|
|
331
|
+
var position = getCellPosition(x, y);
|
|
332
|
+
var cell = position ? getCellOffsetFromCoords(position[0]) : undefined;
|
|
333
|
+
if (!position || !cell) {
|
|
334
|
+
return undefined;
|
|
335
|
+
}
|
|
336
|
+
var _a = tslib_1.__read(position, 3), offsetXPixels = _a[1], offsetYPixels = _a[2];
|
|
337
|
+
return {
|
|
338
|
+
x: offsetXPixels < cell.width / 2 ? cell.x : cell.x + cell.width,
|
|
339
|
+
y: offsetYPixels < cell.height / 2 ? cell.y : cell.y + cell.height,
|
|
340
|
+
};
|
|
341
|
+
}, [getCellPosition, getCellOffsetFromCoords]);
|
|
342
|
+
/**
|
|
343
|
+
* Where a `moveAndSize` object's bottom-right corner landed (grid pixel
|
|
344
|
+
* space) as its second anchor — Excel rewrites `to` on every move and
|
|
345
|
+
* resize. `moveOnly` / `absolute` objects keep a pixel size instead.
|
|
346
|
+
*/
|
|
347
|
+
var getToAnchor = (0, react_1.useCallback)(function (overlay, right, bottom) {
|
|
348
|
+
if (!(0, exports.isMoveAndSizePlacement)(overlay)) {
|
|
349
|
+
return undefined;
|
|
350
|
+
}
|
|
351
|
+
var position = getCellPosition(right, bottom);
|
|
352
|
+
if (!position) {
|
|
353
|
+
return undefined;
|
|
354
|
+
}
|
|
355
|
+
var _a = tslib_1.__read(position, 3), toCell = _a[0], toOffsetXPixels = _a[1], toOffsetYPixels = _a[2];
|
|
356
|
+
return { toCell: toCell, toOffsetXPixels: toOffsetXPixels, toOffsetYPixels: toOffsetYPixels };
|
|
357
|
+
}, [getCellPosition]);
|
|
358
|
+
var getChartOverlay = (0, react_1.useCallback)(function (id) {
|
|
359
|
+
var _a, _b;
|
|
360
|
+
return (_b = (_a = charts === null || charts === void 0 ? void 0 : charts.find(function (chart) { return chart.chartId === id; })) === null || _a === void 0 ? void 0 : _a.position) === null || _b === void 0 ? void 0 : _b.overlayPosition;
|
|
361
|
+
}, [charts]);
|
|
362
|
+
var getEmbedOverlay = (0, react_1.useCallback)(function (id) {
|
|
363
|
+
var _a, _b;
|
|
364
|
+
return (_b = (_a = embeds === null || embeds === void 0 ? void 0 : embeds.find(function (embed) { return embed.embedId === id; })) === null || _a === void 0 ? void 0 : _a.position) === null || _b === void 0 ? void 0 : _b.overlayPosition;
|
|
365
|
+
}, [embeds]);
|
|
366
|
+
var getSlicerOverlay = (0, react_1.useCallback)(function (id) {
|
|
367
|
+
var _a, _b;
|
|
368
|
+
return (_b = (_a = slicers === null || slicers === void 0 ? void 0 : slicers.find(function (slicer) { return slicer.slicerId === id; })) === null || _a === void 0 ? void 0 : _a.position) === null || _b === void 0 ? void 0 : _b.overlayPosition;
|
|
369
|
+
}, [slicers]);
|
|
67
370
|
// Callback when user moves a chart
|
|
68
|
-
var handleMove = (0, react_1.useCallback)(function (id, x, y) {
|
|
371
|
+
var handleMove = (0, react_1.useCallback)(function (id, x, y, width, height) {
|
|
69
372
|
var position = getCellPosition(x, y);
|
|
70
373
|
if (!position) {
|
|
71
374
|
return;
|
|
72
375
|
}
|
|
73
376
|
var _a = tslib_1.__read(position, 3), anchorCell = _a[0], offsetXPixels = _a[1], offsetYPixels = _a[2];
|
|
74
|
-
onMoveChart === null || onMoveChart === void 0 ? void 0 : onMoveChart(id, anchorCell, offsetXPixels, offsetYPixels);
|
|
75
|
-
}, [onMoveChart, getCellPosition]);
|
|
377
|
+
onMoveChart === null || onMoveChart === void 0 ? void 0 : onMoveChart(id, anchorCell, offsetXPixels, offsetYPixels, getToAnchor(getChartOverlay(id), x + width, y + height));
|
|
378
|
+
}, [onMoveChart, getCellPosition, getToAnchor, getChartOverlay]);
|
|
76
379
|
// Callback when resizes an embed
|
|
77
380
|
var handleEmbedResize = (0, react_1.useCallback)(function (id, x, y, width, height) {
|
|
78
381
|
var position = getCellPosition(x, y);
|
|
@@ -80,17 +383,17 @@ var useEmbedsCharts = function (_a) {
|
|
|
80
383
|
return;
|
|
81
384
|
}
|
|
82
385
|
var _a = tslib_1.__read(position, 3), anchorCell = _a[0], offsetXPixels = _a[1], offsetYPixels = _a[2];
|
|
83
|
-
onResizeEmbed === null || onResizeEmbed === void 0 ? void 0 : onResizeEmbed(id, sheetId, anchorCell, offsetXPixels, offsetYPixels, width, height);
|
|
84
|
-
}, [onResizeEmbed, sheetId, getCellPosition]);
|
|
386
|
+
onResizeEmbed === null || onResizeEmbed === void 0 ? void 0 : onResizeEmbed(id, sheetId, anchorCell, offsetXPixels, offsetYPixels, width, height, getToAnchor(getEmbedOverlay(id), x + width * scale, y + height * scale));
|
|
387
|
+
}, [onResizeEmbed, sheetId, scale, getCellPosition, getToAnchor, getEmbedOverlay]);
|
|
85
388
|
// Callback when user moves a chart
|
|
86
|
-
var handleEmbedMove = (0, react_1.useCallback)(function (id, x, y) {
|
|
389
|
+
var handleEmbedMove = (0, react_1.useCallback)(function (id, x, y, width, height) {
|
|
87
390
|
var position = getCellPosition(x, y);
|
|
88
391
|
if (!position) {
|
|
89
392
|
return;
|
|
90
393
|
}
|
|
91
394
|
var _a = tslib_1.__read(position, 3), anchorCell = _a[0], offsetXPixels = _a[1], offsetYPixels = _a[2];
|
|
92
|
-
onMoveEmbed === null || onMoveEmbed === void 0 ? void 0 : onMoveEmbed(id, sheetId, anchorCell, offsetXPixels, offsetYPixels);
|
|
93
|
-
}, [onMoveEmbed, sheetId, getCellPosition]);
|
|
395
|
+
onMoveEmbed === null || onMoveEmbed === void 0 ? void 0 : onMoveEmbed(id, sheetId, anchorCell, offsetXPixels, offsetYPixels, getToAnchor(getEmbedOverlay(id), x + width, y + height));
|
|
396
|
+
}, [onMoveEmbed, sheetId, getCellPosition, getToAnchor, getEmbedOverlay]);
|
|
94
397
|
// Callback when resizes a chart
|
|
95
398
|
var handleResize = (0, react_1.useCallback)(function (id, x, y, width, height) {
|
|
96
399
|
var position = getCellPosition(x, y);
|
|
@@ -98,8 +401,8 @@ var useEmbedsCharts = function (_a) {
|
|
|
98
401
|
return;
|
|
99
402
|
}
|
|
100
403
|
var _a = tslib_1.__read(position, 3), anchorCell = _a[0], offsetXPixels = _a[1], offsetYPixels = _a[2];
|
|
101
|
-
onResizeChart === null || onResizeChart === void 0 ? void 0 : onResizeChart(id, anchorCell, offsetXPixels, offsetYPixels, width, height);
|
|
102
|
-
}, [onResizeChart, getCellPosition]);
|
|
404
|
+
onResizeChart === null || onResizeChart === void 0 ? void 0 : onResizeChart(id, anchorCell, offsetXPixels, offsetYPixels, width, height, getToAnchor(getChartOverlay(id), x + width * scale, y + height * scale));
|
|
405
|
+
}, [onResizeChart, scale, getCellPosition, getToAnchor, getChartOverlay]);
|
|
103
406
|
// Callback when user resizes a slicer
|
|
104
407
|
var handleSlicerResize = (0, react_1.useCallback)(function (id, x, y, width, height) {
|
|
105
408
|
var position = getCellPosition(x, y);
|
|
@@ -107,17 +410,27 @@ var useEmbedsCharts = function (_a) {
|
|
|
107
410
|
return;
|
|
108
411
|
}
|
|
109
412
|
var _a = tslib_1.__read(position, 3), anchorCell = _a[0], offsetXPixels = _a[1], offsetYPixels = _a[2];
|
|
110
|
-
onResizeSlicer === null || onResizeSlicer === void 0 ? void 0 : onResizeSlicer(id, sheetId, anchorCell, offsetXPixels, offsetYPixels, width, height);
|
|
111
|
-
}, [onResizeSlicer, sheetId, getCellPosition]);
|
|
413
|
+
onResizeSlicer === null || onResizeSlicer === void 0 ? void 0 : onResizeSlicer(id, sheetId, anchorCell, offsetXPixels, offsetYPixels, width, height, getToAnchor(getSlicerOverlay(id), x + width * scale, y + height * scale));
|
|
414
|
+
}, [onResizeSlicer, sheetId, scale, getCellPosition, getToAnchor, getSlicerOverlay]);
|
|
112
415
|
// Callback when user moves a slicer
|
|
113
|
-
var handleSlicerMove = (0, react_1.useCallback)(function (id, x, y) {
|
|
416
|
+
var handleSlicerMove = (0, react_1.useCallback)(function (id, x, y, width, height) {
|
|
114
417
|
var position = getCellPosition(x, y);
|
|
115
418
|
if (!position) {
|
|
116
419
|
return;
|
|
117
420
|
}
|
|
118
421
|
var _a = tslib_1.__read(position, 3), anchorCell = _a[0], offsetXPixels = _a[1], offsetYPixels = _a[2];
|
|
119
|
-
onMoveSlicer === null || onMoveSlicer === void 0 ? void 0 : onMoveSlicer(id, sheetId, anchorCell, offsetXPixels, offsetYPixels);
|
|
120
|
-
}, [onMoveSlicer, sheetId, getCellPosition]);
|
|
422
|
+
onMoveSlicer === null || onMoveSlicer === void 0 ? void 0 : onMoveSlicer(id, sheetId, anchorCell, offsetXPixels, offsetYPixels, getToAnchor(getSlicerOverlay(id), x + width, y + height));
|
|
423
|
+
}, [onMoveSlicer, sheetId, getCellPosition, getToAnchor, getSlicerOverlay]);
|
|
424
|
+
// The frozen-pane layer an object renders in: the cell its top-left corner
|
|
425
|
+
// actually sits in (anchor walked forward by the pixel offsets) against the
|
|
426
|
+
// frozen counts. Charts, pictures / embeds and slicers share it, so an object
|
|
427
|
+
// anchored in the frozen rows stays put while the body scrolls, like Excel.
|
|
428
|
+
var placementOf = (0, react_1.useCallback)(function (_a) {
|
|
429
|
+
var anchorCell = _a.anchorCell, offsetXPixels = _a.offsetXPixels, offsetYPixels = _a.offsetYPixels;
|
|
430
|
+
return (0, exports.getOverlayPlacement)(anchorCell
|
|
431
|
+
? (0, exports.resolveOverlayCell)(anchorCell, offsetXPixels !== null && offsetXPixels !== void 0 ? offsetXPixels : 0, offsetYPixels !== null && offsetYPixels !== void 0 ? offsetYPixels : 0, getCellOffsetFromCoords, frozenRows, frozenColumns)
|
|
432
|
+
: anchorCell, frozenRows, frozenColumns);
|
|
433
|
+
}, [frozenRows, frozenColumns, getCellOffsetFromCoords]);
|
|
121
434
|
// Chart components - categorized by frozen pane placement
|
|
122
435
|
var chartComponents = (0, react_1.useMemo)(function () {
|
|
123
436
|
var _a;
|
|
@@ -132,13 +445,23 @@ var useEmbedsCharts = function (_a) {
|
|
|
132
445
|
return result;
|
|
133
446
|
}
|
|
134
447
|
var bounds = getBounds();
|
|
135
|
-
(_a = validateEmbeds(charts, sheetId)) === null || _a === void 0 ? void 0 : _a.filter(function (chart) { return chart.position.sheetId === sheetId; }).
|
|
448
|
+
(_a = validateEmbeds(charts, sheetId)) === null || _a === void 0 ? void 0 : _a.filter(function (chart) { return chart.position.sheetId === sheetId; }).map(function (chart) { return ({
|
|
449
|
+
chart: chart,
|
|
450
|
+
zIndex: stackingRankOf({ kind: "chart", id: chart.chartId }),
|
|
451
|
+
}); }).sort(function (a, b) { var _a, _b; return ((_a = a.zIndex) !== null && _a !== void 0 ? _a : 0) - ((_b = b.zIndex) !== null && _b !== void 0 ? _b : 0); }).forEach(function (_a) {
|
|
452
|
+
var chart = _a.chart, zIndex = _a.zIndex;
|
|
136
453
|
var chartId = chart.chartId, overlayPosition = chart.position.overlayPosition, borderColor = chart.borderColor, draggable = chart.draggable, resizable = chart.resizable;
|
|
137
|
-
var anchorCell = overlayPosition.anchorCell,
|
|
454
|
+
var anchorCell = overlayPosition.anchorCell, _b = overlayPosition.widthPixels, widthPixels = _b === void 0 ? 0 : _b, _c = overlayPosition.heightPixels, heightPixels = _c === void 0 ? 0 : _c, _d = overlayPosition.offsetXPixels, offsetXPixels = _d === void 0 ? 0 : _d, _e = overlayPosition.offsetYPixels, offsetYPixels = _e === void 0 ? 0 : _e;
|
|
138
455
|
var isSelected = selectedIndex === chartId;
|
|
139
456
|
var finalBorderColor = isSelected ? selectedColor : borderColor;
|
|
140
|
-
var placement = (
|
|
141
|
-
var component = (react_1.default.createElement(embeds_1.EmbedDraggable, { bounds: bounds, key: chartId, anchorCell: anchorCell, id: chartId, isSelected: isSelected, borderColor: finalBorderColor !== null && finalBorderColor !== void 0 ? finalBorderColor : undefined, onPointerDown: function () { return
|
|
457
|
+
var placement = placementOf(overlayPosition);
|
|
458
|
+
var component = (react_1.default.createElement(embeds_1.EmbedDraggable, tslib_1.__assign({ bounds: bounds, key: chartId, anchorCell: anchorCell, id: chartId, isSelected: isSelected, zIndex: zIndex, borderColor: finalBorderColor !== null && finalBorderColor !== void 0 ? finalBorderColor : undefined, onPointerDown: function () { return selectChart(chartId); }, onDoubleClick: readonly ? undefined : handleChartDoubleClick, height: (heightPixels !== null && heightPixels !== void 0 ? heightPixels : 0) * scale, width: (widthPixels !== null && widthPixels !== void 0 ? widthPixels : 0) * scale, offsetXPixels: offsetXPixels !== null && offsetXPixels !== void 0 ? offsetXPixels : 0, offsetYPixels: offsetYPixels !== null && offsetYPixels !== void 0 ? offsetYPixels : 0 }, (0, exports.getOverlayToAnchorProps)(overlayPosition), { onResize: handleResize, onMove: handleMove, scale: scale, onDelete: onDeleteChart, onDuplicate: chartClipboard === null || chartClipboard === void 0 ? void 0 : chartClipboard.duplicateChart, onCopy: chartClipboard
|
|
459
|
+
? function (id, e) { return chartClipboard.copyChart(id, e.nativeEvent); }
|
|
460
|
+
: undefined, onCut: chartClipboard
|
|
461
|
+
? function (id, e) { return chartClipboard.cutChart(id, e.nativeEvent); }
|
|
462
|
+
: undefined, onPaste: chartClipboard
|
|
463
|
+
? function (_id, e) { return chartClipboard.pasteChart(e.nativeEvent); }
|
|
464
|
+
: undefined, onDeselect: handleDeselect, onRequestContextMenu: handleChartContextMenu, snapToGrid: snapToCellGrid, draggable: readonly ? false : draggable !== null && draggable !== void 0 ? draggable : undefined, resizable: readonly ? false : resizable !== null && resizable !== void 0 ? resizable : undefined }), function (width, height) {
|
|
142
465
|
return getChartComponent === null || getChartComponent === void 0 ? void 0 : getChartComponent({
|
|
143
466
|
chart: chart,
|
|
144
467
|
width: width,
|
|
@@ -147,6 +470,11 @@ var useEmbedsCharts = function (_a) {
|
|
|
147
470
|
backgroundColor: backgroundColor,
|
|
148
471
|
isSelected: isSelected,
|
|
149
472
|
onDeleteChart: onDeleteChart,
|
|
473
|
+
onUpdateChart: onUpdateChart,
|
|
474
|
+
onCopyChart: chartClipboard === null || chartClipboard === void 0 ? void 0 : chartClipboard.copyChart,
|
|
475
|
+
onCutChart: chartClipboard === null || chartClipboard === void 0 ? void 0 : chartClipboard.cutChart,
|
|
476
|
+
onPasteChart: chartClipboard === null || chartClipboard === void 0 ? void 0 : chartClipboard.pasteChart,
|
|
477
|
+
onDuplicateChart: chartClipboard === null || chartClipboard === void 0 ? void 0 : chartClipboard.duplicateChart,
|
|
150
478
|
sheetId: sheetId,
|
|
151
479
|
readonly: readonly,
|
|
152
480
|
});
|
|
@@ -162,30 +490,46 @@ var useEmbedsCharts = function (_a) {
|
|
|
162
490
|
sheetId,
|
|
163
491
|
selectedColor,
|
|
164
492
|
selectedIndex,
|
|
165
|
-
|
|
493
|
+
selectChart,
|
|
494
|
+
handleDeselect,
|
|
495
|
+
handleChartDoubleClick,
|
|
496
|
+
snapToCellGrid,
|
|
166
497
|
handleMove,
|
|
167
498
|
handleResize,
|
|
499
|
+
handleChartContextMenu,
|
|
168
500
|
getChartComponent,
|
|
169
501
|
theme,
|
|
170
502
|
onDeleteChart,
|
|
503
|
+
onUpdateChart,
|
|
504
|
+
chartClipboard,
|
|
171
505
|
backgroundColor,
|
|
172
|
-
|
|
173
|
-
|
|
506
|
+
placementOf,
|
|
507
|
+
stackingRankOf,
|
|
174
508
|
]);
|
|
175
|
-
// Embed components
|
|
509
|
+
// Embed components - categorized by frozen pane placement like charts
|
|
176
510
|
var embedComponents = (0, react_1.useMemo)(function () {
|
|
177
|
-
var _a
|
|
511
|
+
var _a;
|
|
512
|
+
var result = {
|
|
513
|
+
body: [],
|
|
514
|
+
frozenRow: [],
|
|
515
|
+
frozenColumn: [],
|
|
516
|
+
intersection: [],
|
|
517
|
+
};
|
|
178
518
|
// If user has no EmbedComponent, skip rendering
|
|
179
519
|
if (!getEmbedComponent || disabled) {
|
|
180
|
-
return
|
|
520
|
+
return result;
|
|
181
521
|
}
|
|
182
|
-
|
|
522
|
+
(_a = validateEmbeds(embeds, sheetId)) === null || _a === void 0 ? void 0 : _a.filter(function (embed) { return embed.position.sheetId === sheetId; }).map(function (embed) { return ({
|
|
523
|
+
embed: embed,
|
|
524
|
+
zIndex: stackingRankOf({ kind: "embed", id: embed.embedId }),
|
|
525
|
+
}); }).sort(function (a, b) { var _a, _b; return ((_a = a.zIndex) !== null && _a !== void 0 ? _a : 0) - ((_b = b.zIndex) !== null && _b !== void 0 ? _b : 0); }).forEach(function (_a) {
|
|
526
|
+
var embed = _a.embed, zIndex = _a.zIndex;
|
|
183
527
|
var embedId = embed.embedId, overlayPosition = embed.position.overlayPosition, borderColor = embed.borderColor, lockAspectRatio = embed.lockAspectRatio, draggable = embed.draggable, resizable = embed.resizable;
|
|
184
|
-
var anchorCell = overlayPosition.anchorCell,
|
|
528
|
+
var anchorCell = overlayPosition.anchorCell, _b = overlayPosition.widthPixels, widthPixels = _b === void 0 ? 0 : _b, _c = overlayPosition.heightPixels, heightPixels = _c === void 0 ? 0 : _c, _d = overlayPosition.offsetXPixels, offsetXPixels = _d === void 0 ? 0 : _d, _e = overlayPosition.offsetYPixels, offsetYPixels = _e === void 0 ? 0 : _e;
|
|
185
529
|
var bounds = getBounds();
|
|
186
530
|
var isSelected = selectedIndex === embedId;
|
|
187
531
|
var finalBorderColor = isSelected ? selectedColor : borderColor;
|
|
188
|
-
|
|
532
|
+
result[placementOf(overlayPosition)].push(react_1.default.createElement(embeds_1.EmbedDraggable, tslib_1.__assign({ key: embedId, anchorCell: anchorCell, id: embedId, isSelected: isSelected, zIndex: zIndex, borderColor: finalBorderColor !== null && finalBorderColor !== void 0 ? finalBorderColor : undefined, onPointerDown: function () { return setSelectedIndex(embedId); }, height: (heightPixels !== null && heightPixels !== void 0 ? heightPixels : 0) * scale, width: (widthPixels !== null && widthPixels !== void 0 ? widthPixels : 0) * scale, offsetXPixels: offsetXPixels !== null && offsetXPixels !== void 0 ? offsetXPixels : 0, offsetYPixels: offsetYPixels !== null && offsetYPixels !== void 0 ? offsetYPixels : 0 }, (0, exports.getOverlayToAnchorProps)(overlayPosition), { onResize: handleEmbedResize, onMove: handleEmbedMove, bounds: bounds, scale: scale, onDelete: onDeleteEmbed, onDeselect: handleDeselect, onRequestContextMenu: handleEmbedContextMenu, snapToGrid: snapToCellGrid, lockAspectRatio: lockAspectRatio !== null && lockAspectRatio !== void 0 ? lockAspectRatio : undefined, resizable: readonly ? false : resizable !== null && resizable !== void 0 ? resizable : undefined, draggable: readonly ? false : draggable !== null && draggable !== void 0 ? draggable : undefined }), function (width, height) {
|
|
189
533
|
return getEmbedComponent === null || getEmbedComponent === void 0 ? void 0 : getEmbedComponent({
|
|
190
534
|
embed: embed,
|
|
191
535
|
width: width,
|
|
@@ -199,7 +543,8 @@ var useEmbedsCharts = function (_a) {
|
|
|
199
543
|
readonly: readonly,
|
|
200
544
|
});
|
|
201
545
|
}));
|
|
202
|
-
})
|
|
546
|
+
});
|
|
547
|
+
return result;
|
|
203
548
|
}, [
|
|
204
549
|
disabled,
|
|
205
550
|
scale,
|
|
@@ -210,30 +555,42 @@ var useEmbedsCharts = function (_a) {
|
|
|
210
555
|
getBounds,
|
|
211
556
|
selectedIndex,
|
|
212
557
|
setSelectedIndex,
|
|
558
|
+
handleDeselect,
|
|
559
|
+
snapToCellGrid,
|
|
213
560
|
handleEmbedMove,
|
|
214
561
|
handleEmbedResize,
|
|
562
|
+
handleEmbedContextMenu,
|
|
215
563
|
getEmbedComponent,
|
|
216
564
|
theme,
|
|
217
565
|
onDeleteEmbed,
|
|
218
566
|
onRequestEditEmbed,
|
|
219
567
|
backgroundColor,
|
|
568
|
+
placementOf,
|
|
569
|
+
stackingRankOf,
|
|
220
570
|
]);
|
|
221
|
-
// Slicer components
|
|
571
|
+
// Slicer components — always above charts and embeds, as before z-order;
|
|
572
|
+
// categorized by frozen pane placement like charts.
|
|
222
573
|
var slicerComponents = (0, react_1.useMemo)(function () {
|
|
223
|
-
var _a
|
|
574
|
+
var _a;
|
|
575
|
+
var result = {
|
|
576
|
+
body: [],
|
|
577
|
+
frozenRow: [],
|
|
578
|
+
frozenColumn: [],
|
|
579
|
+
intersection: [],
|
|
580
|
+
};
|
|
224
581
|
// If user has no SlicerComponent, skip rendering
|
|
225
582
|
if (!getSlicerComponent || disabled) {
|
|
226
|
-
return
|
|
583
|
+
return result;
|
|
227
584
|
}
|
|
228
|
-
|
|
585
|
+
(_a = validateEmbeds(slicers, sheetId)) === null || _a === void 0 ? void 0 : _a.filter(function (slicer) { return slicer.position.sheetId === sheetId; }).forEach(function (slicer) {
|
|
229
586
|
var slicerId = slicer.slicerId, overlayPosition = slicer.position.overlayPosition, borderColor = slicer.borderColor, draggable = slicer.draggable, resizable = slicer.resizable;
|
|
230
587
|
var anchorCell = overlayPosition.anchorCell, _a = overlayPosition.widthPixels, widthPixels = _a === void 0 ? 0 : _a, _b = overlayPosition.heightPixels, heightPixels = _b === void 0 ? 0 : _b, _c = overlayPosition.offsetXPixels, offsetXPixels = _c === void 0 ? 0 : _c, _d = overlayPosition.offsetYPixels, offsetYPixels = _d === void 0 ? 0 : _d;
|
|
231
588
|
var bounds = getBounds();
|
|
232
589
|
var isSelected = selectedIndex === slicerId;
|
|
233
590
|
var finalBorderColor = isSelected ? selectedColor : borderColor;
|
|
234
|
-
|
|
591
|
+
result[placementOf(overlayPosition)].push(react_1.default.createElement(embeds_1.EmbedDraggable, tslib_1.__assign({ key: slicerId, anchorCell: anchorCell, id: slicerId, isSelected: isSelected, zIndex: stackingRanks.size + 1, borderColor: typeof finalBorderColor === "string"
|
|
235
592
|
? finalBorderColor
|
|
236
|
-
: undefined, onPointerDown: function () { return setSelectedIndex(slicerId); }, height: (heightPixels !== null && heightPixels !== void 0 ? heightPixels : 0) * scale, width: (widthPixels !== null && widthPixels !== void 0 ? widthPixels : 0) * scale, offsetXPixels: offsetXPixels !== null && offsetXPixels !== void 0 ? offsetXPixels : 0, offsetYPixels: offsetYPixels !== null && offsetYPixels !== void 0 ? offsetYPixels : 0, onResize: handleSlicerResize, onMove: handleSlicerMove, bounds: bounds, scale: scale, onDelete: onDeleteSlicer, resizable: readonly ? false : resizable !== null && resizable !== void 0 ? resizable : undefined, draggable: readonly ? false : draggable !== null && draggable !== void 0 ? draggable : undefined }, function (width, height) {
|
|
593
|
+
: undefined, onPointerDown: function () { return setSelectedIndex(slicerId); }, height: (heightPixels !== null && heightPixels !== void 0 ? heightPixels : 0) * scale, width: (widthPixels !== null && widthPixels !== void 0 ? widthPixels : 0) * scale, offsetXPixels: offsetXPixels !== null && offsetXPixels !== void 0 ? offsetXPixels : 0, offsetYPixels: offsetYPixels !== null && offsetYPixels !== void 0 ? offsetYPixels : 0 }, (0, exports.getOverlayToAnchorProps)(overlayPosition), { onResize: handleSlicerResize, onMove: handleSlicerMove, bounds: bounds, scale: scale, onDelete: onDeleteSlicer, onDeselect: handleDeselect, snapToGrid: snapToCellGrid, resizable: readonly ? false : resizable !== null && resizable !== void 0 ? resizable : undefined, draggable: readonly ? false : draggable !== null && draggable !== void 0 ? draggable : undefined }), function (width, height) {
|
|
237
594
|
return getSlicerComponent === null || getSlicerComponent === void 0 ? void 0 : getSlicerComponent({
|
|
238
595
|
slicer: slicer,
|
|
239
596
|
width: width,
|
|
@@ -251,7 +608,8 @@ var useEmbedsCharts = function (_a) {
|
|
|
251
608
|
readonly: readonly,
|
|
252
609
|
});
|
|
253
610
|
}));
|
|
254
|
-
})
|
|
611
|
+
});
|
|
612
|
+
return result;
|
|
255
613
|
}, [
|
|
256
614
|
disabled,
|
|
257
615
|
scale,
|
|
@@ -262,6 +620,8 @@ var useEmbedsCharts = function (_a) {
|
|
|
262
620
|
getBounds,
|
|
263
621
|
selectedIndex,
|
|
264
622
|
setSelectedIndex,
|
|
623
|
+
handleDeselect,
|
|
624
|
+
snapToCellGrid,
|
|
265
625
|
handleSlicerMove,
|
|
266
626
|
handleSlicerResize,
|
|
267
627
|
getSlicerComponent,
|
|
@@ -273,12 +633,23 @@ var useEmbedsCharts = function (_a) {
|
|
|
273
633
|
pivotTables,
|
|
274
634
|
getFormattedValue,
|
|
275
635
|
backgroundColor,
|
|
636
|
+
placementOf,
|
|
637
|
+
stackingRanks,
|
|
276
638
|
]);
|
|
277
639
|
return (0, react_1.useMemo)(function () { return ({
|
|
278
640
|
chartComponents: chartComponents,
|
|
279
641
|
embedComponents: embedComponents,
|
|
280
642
|
slicerComponents: slicerComponents,
|
|
643
|
+
contextMenuComponent: contextMenuComponent,
|
|
281
644
|
onMouseDown: handleMouseDown,
|
|
282
|
-
|
|
645
|
+
requestChartContextMenu: handleChartContextMenu,
|
|
646
|
+
}); }, [
|
|
647
|
+
chartComponents,
|
|
648
|
+
embedComponents,
|
|
649
|
+
slicerComponents,
|
|
650
|
+
contextMenuComponent,
|
|
651
|
+
handleMouseDown,
|
|
652
|
+
handleChartContextMenu,
|
|
653
|
+
]);
|
|
283
654
|
};
|
|
284
655
|
exports.useEmbedsCharts = useEmbedsCharts;
|
|
@@ -6,8 +6,8 @@ type UseGridChildrenProps = {
|
|
|
6
6
|
stickyEditor?: boolean;
|
|
7
7
|
editorComponent: React.ReactElement | null;
|
|
8
8
|
chartComponents: ReturnType<typeof useEmbedsCharts>["chartComponents"];
|
|
9
|
-
embedComponents:
|
|
10
|
-
slicerComponents:
|
|
9
|
+
embedComponents: ReturnType<typeof useEmbedsCharts>["embedComponents"] | null | undefined;
|
|
10
|
+
slicerComponents: ReturnType<typeof useEmbedsCharts>["slicerComponents"] | null | undefined;
|
|
11
11
|
pivotPlaceholders: React.JSX.Element[] | null | undefined;
|
|
12
12
|
tableResizers: React.JSX.Element[] | null | undefined;
|
|
13
13
|
hiddenColumnMarkers: React.JSX.Element | null | undefined;
|