@rowsncolumns/spreadsheet 10.3.1 → 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 +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/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/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
|
@@ -1,25 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.withTotalRowFunction = exports.getTotalRowFunctionFormula = exports.getTotalRowFunctionFromFormula = exports.escapeStructuredColumnName = exports.MORE_FUNCTIONS_INITIAL_VALUE = exports.TOTAL_ROW_FUNCTIONS = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var utils_1 = require("@rowsncolumns/utils");
|
|
6
|
+
Object.defineProperty(exports, "escapeStructuredColumnName", { enumerable: true, get: function () { return utils_1.escapeStructuredColumnName; } });
|
|
7
|
+
Object.defineProperty(exports, "getTotalRowFunctionFromFormula", { enumerable: true, get: function () { return utils_1.getTotalsRowFunctionFromFormula; } });
|
|
4
8
|
exports.TOTAL_ROW_FUNCTIONS = [
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
]
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
};
|
|
22
|
-
|
|
9
|
+
["none", "None"],
|
|
10
|
+
["average", "Average"],
|
|
11
|
+
["count", "Count"],
|
|
12
|
+
["countNums", "Count Numbers"],
|
|
13
|
+
["max", "Max"],
|
|
14
|
+
["min", "Min"],
|
|
15
|
+
["sum", "Sum"],
|
|
16
|
+
["stdDev", "StdDev"],
|
|
17
|
+
["var", "Var"],
|
|
18
|
+
].map(function (_a) {
|
|
19
|
+
var _b = tslib_1.__read(_a, 2), id = _b[0], label = _b[1];
|
|
20
|
+
return ({
|
|
21
|
+
id: id,
|
|
22
|
+
label: label,
|
|
23
|
+
subtotal: utils_1.TOTALS_ROW_FUNCTION_SUBTOTAL[id],
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
/** What "More Functions…" pre-fills in the cell editor for a custom totals formula. */
|
|
27
|
+
exports.MORE_FUNCTIONS_INITIAL_VALUE = "=SUBTOTAL(";
|
|
23
28
|
/**
|
|
24
29
|
* Formula for a totals-row cell, e.g. `=SUBTOTAL(109,Table1[Amount])`.
|
|
25
30
|
* Qualified with the table name so it evaluates from any engine and matches
|
|
@@ -31,32 +36,27 @@ var getTotalRowFunctionFormula = function (fn, table, columnIndex) {
|
|
|
31
36
|
if (fn === "none") {
|
|
32
37
|
return "";
|
|
33
38
|
}
|
|
34
|
-
var option = exports.TOTAL_ROW_FUNCTIONS.find(function (item) { return item.id === fn; });
|
|
35
39
|
var columnName = (_b = (_a = table.columns) === null || _a === void 0 ? void 0 : _a[columnIndex - table.range.startColumnIndex]) === null || _b === void 0 ? void 0 : _b.name;
|
|
36
|
-
if (!
|
|
40
|
+
if (!columnName || !table.title) {
|
|
37
41
|
return undefined;
|
|
38
42
|
}
|
|
39
|
-
return
|
|
43
|
+
return (0, utils_1.getTotalsRowFormula)(fn, table.title, columnName);
|
|
40
44
|
};
|
|
41
45
|
exports.getTotalRowFunctionFormula = getTotalRowFunctionFormula;
|
|
42
46
|
/**
|
|
43
|
-
*
|
|
44
|
-
* the
|
|
45
|
-
* `
|
|
47
|
+
* The table's columns with `columnIndex`'s `totalsRowFunction` set to `fn` —
|
|
48
|
+
* the shape `onUpdateTable` persists so the choice survives toggling the totals
|
|
49
|
+
* row off and on. `undefined` when the column list does not cover the cell.
|
|
46
50
|
*/
|
|
47
|
-
var
|
|
48
|
-
var _a
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
if (!match) {
|
|
54
|
-
return "none";
|
|
51
|
+
var withTotalRowFunction = function (table, columnIndex, fn) {
|
|
52
|
+
var _a;
|
|
53
|
+
var index = columnIndex - table.range.startColumnIndex;
|
|
54
|
+
var column = (_a = table.columns) === null || _a === void 0 ? void 0 : _a[index];
|
|
55
|
+
if (!column) {
|
|
56
|
+
return undefined;
|
|
55
57
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return item.subtotal !== undefined && item.subtotal - 100 === normalized;
|
|
60
|
-
})) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : "none");
|
|
58
|
+
return table.columns.map(function (item, i) {
|
|
59
|
+
return i === index ? tslib_1.__assign(tslib_1.__assign({}, item), { totalsRowFunction: fn }) : item;
|
|
60
|
+
});
|
|
61
61
|
};
|
|
62
|
-
exports.
|
|
62
|
+
exports.withTotalRowFunction = withTotalRowFunction;
|
|
@@ -11,6 +11,23 @@ export type ChartComponentProps = {
|
|
|
11
11
|
isSelected: boolean;
|
|
12
12
|
readonly?: boolean;
|
|
13
13
|
onDeleteChart: CanvasGridProps["onDeleteChart"];
|
|
14
|
+
/**
|
|
15
|
+
* Persist an edited chart (the grid's `onUpdateChart`). Renderers use it
|
|
16
|
+
* for in-place operations such as Switch Row/Column.
|
|
17
|
+
*/
|
|
18
|
+
onUpdateChart?: CanvasGridProps["onUpdateChart"];
|
|
19
|
+
/** Chart clipboard (Ctrl+C / Ctrl+X / Ctrl+V / Ctrl+D) — for a chart context menu. */
|
|
20
|
+
onCopyChart?: (chartId: EmbeddedChart["chartId"]) => boolean;
|
|
21
|
+
onCutChart?: (chartId: EmbeddedChart["chartId"]) => boolean;
|
|
22
|
+
onPasteChart?: () => boolean;
|
|
23
|
+
onDuplicateChart?: (chartId: EmbeddedChart["chartId"]) => EmbeddedChart | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Excel's PivotChart field buttons, drawn over the chart frame. The host
|
|
26
|
+
* composes them (`PivotChartFieldButtons` from `@rowsncolumns/pivot`
|
|
27
|
+
* with its pivot tables and sort / filter actions) because the renderer
|
|
28
|
+
* knows nothing about pivots; renderers place the node inside the frame.
|
|
29
|
+
*/
|
|
30
|
+
fieldButtons?: React.ReactNode;
|
|
14
31
|
};
|
|
15
32
|
export declare const ChartComponent: React.MemoExoticComponent<({ backgroundColor }: ChartComponentProps) => React.JSX.Element>;
|
|
16
33
|
//# sourceMappingURL=chart-component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-component.d.ts","sourceRoot":"","sources":["../../../../components/embeds/chart-component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEhF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,gBAAgB,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"chart-component.d.ts","sourceRoot":"","sources":["../../../../components/embeds/chart-component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEhF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,gBAAgB,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IAChD;;;OAGG;IACH,aAAa,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IACjD,sFAAsF;IACtF,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC;IAC7D,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC;IAC5D,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,CACjB,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,KAC9B,aAAa,GAAG,SAAS,CAAC;IAC/B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,cAAc,kDACH,mBAAmB,uBAY1C,CAAC"}
|
|
@@ -1,26 +1,46 @@
|
|
|
1
1
|
import type { CellInterface } from "@rowsncolumns/grid";
|
|
2
2
|
import React from "react";
|
|
3
3
|
import type { DraggableBounds } from "react-draggable";
|
|
4
|
-
type EmbedDraggableProps = Omit<React.HTMLAttributes<HTMLDivElement>, "id" | "onResize" | "children"> & {
|
|
4
|
+
type EmbedDraggableProps = Omit<React.HTMLAttributes<HTMLDivElement>, "id" | "onResize" | "children" | "onCopy" | "onCut" | "onPaste" | "onDoubleClick"> & {
|
|
5
5
|
id: string | number;
|
|
6
6
|
height: number;
|
|
7
7
|
width: number;
|
|
8
8
|
offsetXPixels: number;
|
|
9
9
|
offsetYPixels: number;
|
|
10
|
+
/**
|
|
11
|
+
* Second anchor of a "Move and size with cells" object: the cell its
|
|
12
|
+
* bottom-right corner sits in plus the pixel offsets into it. When set the
|
|
13
|
+
* frame spans the two anchors, so a column / row resize between them
|
|
14
|
+
* stretches it; `width` / `height` are the fallback size.
|
|
15
|
+
*/
|
|
16
|
+
toCell?: CellInterface;
|
|
17
|
+
toOffsetXPixels?: number;
|
|
18
|
+
toOffsetYPixels?: number;
|
|
10
19
|
isSelected: boolean;
|
|
11
20
|
borderColor?: string;
|
|
12
21
|
lockAspectRatio?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Stacking rank among the sheet's floating objects (1 = back-most); the
|
|
24
|
+
* selected object is lifted above every unselected one.
|
|
25
|
+
*/
|
|
26
|
+
zIndex?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Rectangle (grid pixel space) the object must stay inside — the sheet
|
|
29
|
+
* body. Drags, nudges and resizes are clamped so no edge leaves it.
|
|
30
|
+
*/
|
|
13
31
|
bounds?: DraggableBounds;
|
|
14
32
|
scale?: number;
|
|
15
33
|
resizable?: boolean;
|
|
16
34
|
draggable?: boolean;
|
|
17
35
|
rotatable?: boolean;
|
|
18
36
|
/**
|
|
19
|
-
* Callback when user moves an embed
|
|
37
|
+
* Callback when user moves an embed. `width` / `height` are the frame's
|
|
38
|
+
* on-screen size (grid pixel space), so the host can re-anchor its
|
|
39
|
+
* bottom-right corner too.
|
|
20
40
|
* @param top
|
|
21
41
|
* @param left
|
|
22
42
|
*/
|
|
23
|
-
onMove?(id: string | number, x: number, y: number): void;
|
|
43
|
+
onMove?(id: string | number, x: number, y: number, width: number, height: number): void;
|
|
24
44
|
/**
|
|
25
45
|
* Callback when user resizes
|
|
26
46
|
* @param width
|
|
@@ -32,12 +52,49 @@ type EmbedDraggableProps = Omit<React.HTMLAttributes<HTMLDivElement>, "id" | "on
|
|
|
32
52
|
* @param id
|
|
33
53
|
*/
|
|
34
54
|
onDelete?(id: string | number): void;
|
|
55
|
+
/**
|
|
56
|
+
* Ctrl/Cmd + D while the embed has focus
|
|
57
|
+
* @param id
|
|
58
|
+
*/
|
|
59
|
+
onDuplicate?(id: string | number): void;
|
|
60
|
+
/**
|
|
61
|
+
* Clipboard events while the embed has focus (the grid's cell editor
|
|
62
|
+
* never sees them — the focused embed is their target)
|
|
63
|
+
*/
|
|
64
|
+
onCopy?(id: string | number, e: React.ClipboardEvent<HTMLDivElement>): void;
|
|
65
|
+
onCut?(id: string | number, e: React.ClipboardEvent<HTMLDivElement>): void;
|
|
66
|
+
onPaste?(id: string | number, e: React.ClipboardEvent<HTMLDivElement>): void;
|
|
67
|
+
/**
|
|
68
|
+
* Escape: drop the selection and hand focus back to the grid
|
|
69
|
+
* @param id
|
|
70
|
+
*/
|
|
71
|
+
onDeselect?(id: string | number): void;
|
|
72
|
+
/**
|
|
73
|
+
* Double-click on the object (Excel opens the format pane; the chart
|
|
74
|
+
* editor here)
|
|
75
|
+
* @param id
|
|
76
|
+
*/
|
|
77
|
+
onDoubleClick?(id: string | number): void;
|
|
78
|
+
/**
|
|
79
|
+
* Snap a point (grid pixel space) to the nearest cell corner. Alt-drag / Alt-resize
|
|
80
|
+
* snap through this; without it the modifier is inert.
|
|
81
|
+
*/
|
|
82
|
+
snapToGrid?(x: number, y: number): {
|
|
83
|
+
x: number;
|
|
84
|
+
y: number;
|
|
85
|
+
} | undefined;
|
|
86
|
+
/**
|
|
87
|
+
* Right-click, Shift+F10 or the ContextMenu key on the object. Receives
|
|
88
|
+
* the viewport point the menu should open at and the object's element, so
|
|
89
|
+
* the host can return focus to it once the menu closes.
|
|
90
|
+
*/
|
|
91
|
+
onRequestContextMenu?(id: string | number, clientX: number, clientY: number, element: HTMLDivElement): void;
|
|
35
92
|
/**
|
|
36
93
|
* Anchor cell
|
|
37
94
|
*/
|
|
38
95
|
anchorCell: CellInterface;
|
|
39
96
|
children: (width: number, height: number) => React.ReactNode;
|
|
40
97
|
};
|
|
41
|
-
export declare const EmbedDraggable: ({ id, scale, height, width, offsetXPixels, offsetYPixels, isSelected, borderColor, lockAspectRatio, resizable, draggable, children, onMove, onResize, onDelete, onMouseMove, onPointerDown, bounds, anchorCell, }: EmbedDraggableProps) => React.JSX.Element;
|
|
98
|
+
export declare const EmbedDraggable: ({ id, scale, height, width, offsetXPixels, offsetYPixels, isSelected, borderColor, lockAspectRatio, zIndex, resizable, draggable, children, onMove, onResize, onDelete, onDuplicate, onCopy, onCut, onPaste, onDeselect, onDoubleClick, snapToGrid, onRequestContextMenu, onMouseMove, onPointerDown, bounds, anchorCell, toCell, toOffsetXPixels, toOffsetYPixels, }: EmbedDraggableProps) => React.JSX.Element;
|
|
42
99
|
export {};
|
|
43
100
|
//# sourceMappingURL=embed-draggable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed-draggable.d.ts","sourceRoot":"","sources":["../../../../components/embeds/embed-draggable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,KAAwC,MAAM,OAAO,CAAC;AAC7D,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,iBAAiB,CAAC;AAOzB,KAAK,mBAAmB,GAAG,IAAI,CAC7B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"embed-draggable.d.ts","sourceRoot":"","sources":["../../../../components/embeds/embed-draggable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,KAAwC,MAAM,OAAO,CAAC;AAC7D,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,iBAAiB,CAAC;AAOzB,KAAK,mBAAmB,GAAG,IAAI,CAC7B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAClC,IAAI,GACJ,UAAU,GACV,UAAU,GACV,QAAQ,GACR,OAAO,GACP,SAAS,GACT,eAAe,CAClB,GAAG;IACF,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;OAMG;IACH,MAAM,CAAC,CACL,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,IAAI,CAAC;IACR;;;;OAIG;IACH,QAAQ,CAAC,CACP,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,IAAI,CAAC;IACR;;;OAGG;IACH,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC;;;OAGG;IACH,WAAW,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACxC;;;OAGG;IACH,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IAC5E,KAAK,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IAC3E,OAAO,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IAC7E;;;OAGG;IACH,UAAU,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACvC;;;;OAIG;IACH,aAAa,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1C;;;OAGG;IACH,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACxE;;;;OAIG;IACH,oBAAoB,CAAC,CACnB,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,GACtB,IAAI,CAAC;IACR;;OAEG;IACH,UAAU,EAAE,aAAa,CAAC;IAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CAC9D,CAAC;AA4DF,eAAO,MAAM,cAAc,GAAI,uWAgC5B,mBAAmB,sBA8VrB,CAAC"}
|
|
@@ -5,9 +5,34 @@ var tslib_1 = require("tslib");
|
|
|
5
5
|
var grid_1 = require("@rowsncolumns/grid");
|
|
6
6
|
var ui_1 = require("@rowsncolumns/ui");
|
|
7
7
|
var react_1 = tslib_1.__importStar(require("react"));
|
|
8
|
-
var react_draggable_1 =
|
|
8
|
+
var react_draggable_1 = require("react-draggable");
|
|
9
9
|
var react_resizable_1 = require("react-resizable");
|
|
10
10
|
var use_isomorphic_layout_effect_1 = require("../../hooks/use-isomorphic-layout-effect");
|
|
11
|
+
/** Lifts the selected object over every unselected one (ranks count from 1 per object). */
|
|
12
|
+
var SELECTED_Z_INDEX_LIFT = 100000;
|
|
13
|
+
var ARROW_KEY_DELTAS = {
|
|
14
|
+
ArrowLeft: [-1, 0],
|
|
15
|
+
ArrowRight: [1, 0],
|
|
16
|
+
ArrowUp: [0, -1],
|
|
17
|
+
ArrowDown: [0, 1],
|
|
18
|
+
};
|
|
19
|
+
/** Excel nudges a selected object 1px per arrow press; Shift makes it a coarse step. */
|
|
20
|
+
var NUDGE_STEP = 1;
|
|
21
|
+
var NUDGE_STEP_SHIFT = 10;
|
|
22
|
+
/** Corner handles are two letters ("ne"); edge handles one ("n"). */
|
|
23
|
+
var isCornerHandle = function (handle) { return handle.length === 2; };
|
|
24
|
+
/** Top-left corner that keeps a `width` × `height` object inside `bounds`; the top-left edges win when it does not fit. */
|
|
25
|
+
var clampToBounds = function (x, y, width, height, bounds) {
|
|
26
|
+
var _a, _b, _c, _d;
|
|
27
|
+
return ({
|
|
28
|
+
x: Math.max((_a = bounds === null || bounds === void 0 ? void 0 : bounds.left) !== null && _a !== void 0 ? _a : -Infinity, Math.min(((_b = bounds === null || bounds === void 0 ? void 0 : bounds.right) !== null && _b !== void 0 ? _b : Infinity) - width, x)),
|
|
29
|
+
y: Math.max((_c = bounds === null || bounds === void 0 ? void 0 : bounds.top) !== null && _c !== void 0 ? _c : -Infinity, Math.min(((_d = bounds === null || bounds === void 0 ? void 0 : bounds.bottom) !== null && _d !== void 0 ? _d : Infinity) - height, y)),
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
/** Clamp one edge of a resize into `[min, max]`. */
|
|
33
|
+
var clampEdge = function (value, min, max) {
|
|
34
|
+
return Math.min(max !== null && max !== void 0 ? max : Infinity, Math.max(min !== null && min !== void 0 ? min : -Infinity, value));
|
|
35
|
+
};
|
|
11
36
|
var resizeHandles = [
|
|
12
37
|
"se",
|
|
13
38
|
"n",
|
|
@@ -20,20 +45,39 @@ var resizeHandles = [
|
|
|
20
45
|
];
|
|
21
46
|
var EmbedDraggable = function (_a) {
|
|
22
47
|
var _b, _c;
|
|
23
|
-
var id = _a.id, _d = _a.scale, scale = _d === void 0 ? 1 : _d, height = _a.height, width = _a.width, offsetXPixels = _a.offsetXPixels, offsetYPixels = _a.offsetYPixels, isSelected = _a.isSelected, borderColor = _a.borderColor, lockAspectRatio = _a.lockAspectRatio, _e = _a.resizable, resizable = _e === void 0 ? true : _e, _f = _a.draggable, draggable = _f === void 0 ? true : _f, children = _a.children, onMove = _a.onMove, onResize = _a.onResize, onDelete = _a.onDelete, onMouseMove = _a.onMouseMove, onPointerDown = _a.onPointerDown, bounds = _a.bounds, anchorCell = _a.anchorCell;
|
|
48
|
+
var id = _a.id, _d = _a.scale, scale = _d === void 0 ? 1 : _d, height = _a.height, width = _a.width, offsetXPixels = _a.offsetXPixels, offsetYPixels = _a.offsetYPixels, isSelected = _a.isSelected, borderColor = _a.borderColor, lockAspectRatio = _a.lockAspectRatio, zIndex = _a.zIndex, _e = _a.resizable, resizable = _e === void 0 ? true : _e, _f = _a.draggable, draggable = _f === void 0 ? true : _f, children = _a.children, onMove = _a.onMove, onResize = _a.onResize, onDelete = _a.onDelete, onDuplicate = _a.onDuplicate, onCopy = _a.onCopy, onCut = _a.onCut, onPaste = _a.onPaste, onDeselect = _a.onDeselect, onDoubleClick = _a.onDoubleClick, snapToGrid = _a.snapToGrid, onRequestContextMenu = _a.onRequestContextMenu, onMouseMove = _a.onMouseMove, onPointerDown = _a.onPointerDown, bounds = _a.bounds, anchorCell = _a.anchorCell, toCell = _a.toCell, _g = _a.toOffsetXPixels, toOffsetXPixels = _g === void 0 ? 0 : _g, _h = _a.toOffsetYPixels, toOffsetYPixels = _h === void 0 ? 0 : _h;
|
|
24
49
|
var getCellOffsetFromCoords = (0, grid_1.useGridContext)().getCellOffsetFromCoords;
|
|
25
50
|
var position = getCellOffsetFromCoords === null || getCellOffsetFromCoords === void 0 ? void 0 : getCellOffsetFromCoords(anchorCell);
|
|
26
51
|
var x = ((_b = position === null || position === void 0 ? void 0 : position.x) !== null && _b !== void 0 ? _b : 0) + offsetXPixels;
|
|
27
52
|
var y = ((_c = position === null || position === void 0 ? void 0 : position.y) !== null && _c !== void 0 ? _c : 0) + offsetYPixels;
|
|
28
|
-
|
|
53
|
+
// Two anchors: the frame is whatever lies between them (a collapsed span
|
|
54
|
+
// after a delete draws nothing rather than a negative box)
|
|
55
|
+
var toPosition = toCell ? getCellOffsetFromCoords === null || getCellOffsetFromCoords === void 0 ? void 0 : getCellOffsetFromCoords(toCell) : undefined;
|
|
56
|
+
if (toPosition) {
|
|
57
|
+
width = Math.max(0, toPosition.x + toOffsetXPixels - x);
|
|
58
|
+
height = Math.max(0, toPosition.y + toOffsetYPixels - y);
|
|
59
|
+
}
|
|
60
|
+
var _j = tslib_1.__read((0, react_1.useState)(function () { return ({
|
|
29
61
|
internalWidth: width,
|
|
30
62
|
internalHeight: height,
|
|
31
63
|
internalX: x,
|
|
32
64
|
internalY: y,
|
|
33
|
-
}); }), 2), dimensions =
|
|
65
|
+
}); }), 2), dimensions = _j[0], setDimensions = _j[1];
|
|
34
66
|
var internalWidth = dimensions.internalWidth, internalHeight = dimensions.internalHeight, internalX = dimensions.internalX, internalY = dimensions.internalY;
|
|
35
67
|
var incomingDimensionRef = (0, react_1.useRef)(undefined);
|
|
36
68
|
var nodeRef = (0, react_1.useRef)(null);
|
|
69
|
+
// Geometry currently on screen — what the end-of-gesture callbacks report, independent of
|
|
70
|
+
// whether the last `setDimensions` has rendered yet.
|
|
71
|
+
var appliedRef = (0, react_1.useRef)(dimensions);
|
|
72
|
+
// Where the pointer would have put the object with no snapping. The displayed geometry is
|
|
73
|
+
// derived from it on every event, so a snap never feeds back into the next pointer delta.
|
|
74
|
+
var gestureRef = (0, react_1.useRef)(dimensions);
|
|
75
|
+
// Shift on a corner handle keeps the aspect ratio for the rest of the gesture
|
|
76
|
+
var _k = tslib_1.__read((0, react_1.useState)(false), 2), shiftLocksAspectRatio = _k[0], setShiftLocksAspectRatio = _k[1];
|
|
77
|
+
var commit = (0, react_1.useCallback)(function (next) {
|
|
78
|
+
appliedRef.current = next;
|
|
79
|
+
setDimensions(next);
|
|
80
|
+
}, []);
|
|
37
81
|
// Focus if selected index changes
|
|
38
82
|
(0, use_isomorphic_layout_effect_1.useIsomorphicLayoutEffect)(function () {
|
|
39
83
|
var _a, _b;
|
|
@@ -42,46 +86,139 @@ var EmbedDraggable = function (_a) {
|
|
|
42
86
|
(_b = nodeRef.current) === null || _b === void 0 ? void 0 : _b.focus({ preventScroll: true });
|
|
43
87
|
}
|
|
44
88
|
}, [isSelected]);
|
|
45
|
-
//
|
|
46
|
-
var
|
|
47
|
-
|
|
89
|
+
// Starts moving
|
|
90
|
+
var handleMoveStart = (0, react_1.useCallback)(function (e) {
|
|
91
|
+
gestureRef.current = tslib_1.__assign({}, appliedRef.current);
|
|
92
|
+
if (e.altKey) {
|
|
93
|
+
// Alt+mousedown must not start a native selection / focus change
|
|
94
|
+
e.preventDefault();
|
|
95
|
+
}
|
|
48
96
|
}, []);
|
|
97
|
+
// Handle move. Update internal state; Alt snaps the top-left corner to the cell grid
|
|
98
|
+
var handleMove = (0, react_1.useCallback)(function (e, data) {
|
|
99
|
+
var raw = gestureRef.current;
|
|
100
|
+
raw.internalX += data.deltaX;
|
|
101
|
+
raw.internalY += data.deltaY;
|
|
102
|
+
var _a = appliedRef.current, internalWidth = _a.internalWidth, internalHeight = _a.internalHeight;
|
|
103
|
+
var next = clampToBounds(raw.internalX, raw.internalY, internalWidth, internalHeight, bounds);
|
|
104
|
+
if (e.altKey && snapToGrid) {
|
|
105
|
+
var snapped = snapToGrid(next.x, next.y);
|
|
106
|
+
if (snapped) {
|
|
107
|
+
next = clampToBounds(snapped.x, snapped.y, internalWidth, internalHeight, bounds);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
commit(tslib_1.__assign(tslib_1.__assign({}, appliedRef.current), { internalX: next.x, internalY: next.y }));
|
|
111
|
+
}, [bounds, snapToGrid, commit]);
|
|
49
112
|
// Ends moving
|
|
50
|
-
var handleMoveEnd = (0, react_1.useCallback)(function (
|
|
113
|
+
var handleMoveEnd = (0, react_1.useCallback)(function () {
|
|
51
114
|
var _a, _b;
|
|
52
|
-
|
|
53
|
-
|
|
115
|
+
var _c = appliedRef.current, internalX = _c.internalX, internalY = _c.internalY, internalWidth = _c.internalWidth, internalHeight = _c.internalHeight;
|
|
116
|
+
if (((_a = incomingDimensionRef.current) === null || _a === void 0 ? void 0 : _a.x) === internalX &&
|
|
117
|
+
((_b = incomingDimensionRef.current) === null || _b === void 0 ? void 0 : _b.y) === internalY) {
|
|
54
118
|
return;
|
|
55
119
|
}
|
|
56
|
-
onMove === null || onMove === void 0 ? void 0 : onMove(id,
|
|
120
|
+
onMove === null || onMove === void 0 ? void 0 : onMove(id, internalX, internalY, internalWidth, internalHeight);
|
|
57
121
|
}, [onMove, id]);
|
|
58
|
-
//
|
|
122
|
+
// Arrow keys nudge the object by whole pixels, clamped like a drag is
|
|
123
|
+
var handleNudge = (0, react_1.useCallback)(function (dx, dy) {
|
|
124
|
+
var _a = clampToBounds(internalX + dx, internalY + dy, internalWidth, internalHeight, bounds), nextX = _a.x, nextY = _a.y;
|
|
125
|
+
if (nextX === internalX && nextY === internalY) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
commit(tslib_1.__assign(tslib_1.__assign({}, appliedRef.current), { internalX: nextX, internalY: nextY }));
|
|
129
|
+
onMove === null || onMove === void 0 ? void 0 : onMove(id, nextX, nextY, internalWidth, internalHeight);
|
|
130
|
+
}, [
|
|
131
|
+
bounds,
|
|
132
|
+
internalX,
|
|
133
|
+
internalY,
|
|
134
|
+
internalWidth,
|
|
135
|
+
internalHeight,
|
|
136
|
+
onMove,
|
|
137
|
+
id,
|
|
138
|
+
commit,
|
|
139
|
+
]);
|
|
140
|
+
// Starts resizing
|
|
141
|
+
var handleResizeStart = (0, react_1.useCallback)(function (e, _a) {
|
|
142
|
+
var handle = _a.handle;
|
|
143
|
+
gestureRef.current = tslib_1.__assign({}, appliedRef.current);
|
|
144
|
+
setShiftLocksAspectRatio(isCornerHandle(handle) && Boolean(e.shiftKey));
|
|
145
|
+
}, []);
|
|
146
|
+
// Resizing: Update internal state; Alt snaps the dragged edges to the cell grid
|
|
59
147
|
var handleResize = (0, react_1.useCallback)(function (e, _a) {
|
|
148
|
+
var _b, _c, _d, _e;
|
|
60
149
|
var size = _a.size, handle = _a.handle;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
150
|
+
var _f = e, altKey = _f.altKey, shiftKey = _f.shiftKey;
|
|
151
|
+
setShiftLocksAspectRatio(isCornerHandle(handle) && Boolean(shiftKey));
|
|
152
|
+
// `size` is the rendered size (`dimensions`) plus this event's pointer delta
|
|
153
|
+
var deltaHeight = size.height - dimensions.internalHeight;
|
|
154
|
+
var deltaWidth = size.width - dimensions.internalWidth;
|
|
155
|
+
var raw = gestureRef.current;
|
|
156
|
+
var movesTop = handle[0] === "n";
|
|
157
|
+
var movesLeft = handle[handle.length - 1] === "w";
|
|
158
|
+
raw.internalWidth += deltaWidth;
|
|
159
|
+
raw.internalHeight += deltaHeight;
|
|
160
|
+
if (movesTop) {
|
|
161
|
+
raw.internalY -= deltaHeight;
|
|
162
|
+
}
|
|
163
|
+
if (movesLeft) {
|
|
164
|
+
raw.internalX -= deltaWidth;
|
|
165
|
+
}
|
|
166
|
+
var movesRight = handle[handle.length - 1] === "e";
|
|
167
|
+
var movesBottom = handle[0] === "s";
|
|
168
|
+
// The dragged edges stop at the sheet body; the opposite edges never move
|
|
169
|
+
var rawRight = raw.internalX + raw.internalWidth;
|
|
170
|
+
var rawBottom = raw.internalY + raw.internalHeight;
|
|
171
|
+
var left = movesLeft
|
|
172
|
+
? clampEdge(raw.internalX, bounds === null || bounds === void 0 ? void 0 : bounds.left, undefined)
|
|
173
|
+
: raw.internalX;
|
|
174
|
+
var top = movesTop
|
|
175
|
+
? clampEdge(raw.internalY, bounds === null || bounds === void 0 ? void 0 : bounds.top, undefined)
|
|
176
|
+
: raw.internalY;
|
|
177
|
+
var right = movesRight
|
|
178
|
+
? clampEdge(rawRight, undefined, bounds === null || bounds === void 0 ? void 0 : bounds.right)
|
|
179
|
+
: rawRight;
|
|
180
|
+
var bottom = movesBottom
|
|
181
|
+
? clampEdge(rawBottom, undefined, bounds === null || bounds === void 0 ? void 0 : bounds.bottom)
|
|
182
|
+
: rawBottom;
|
|
183
|
+
if (altKey && snapToGrid) {
|
|
184
|
+
var snappedLeft = movesLeft ? (_b = snapToGrid(left, top)) === null || _b === void 0 ? void 0 : _b.x : undefined;
|
|
185
|
+
var snappedRight = movesRight ? (_c = snapToGrid(right, top)) === null || _c === void 0 ? void 0 : _c.x : undefined;
|
|
186
|
+
var snappedTop = movesTop ? (_d = snapToGrid(left, top)) === null || _d === void 0 ? void 0 : _d.y : undefined;
|
|
187
|
+
var snappedBottom = movesBottom
|
|
188
|
+
? (_e = snapToGrid(left, bottom)) === null || _e === void 0 ? void 0 : _e.y
|
|
189
|
+
: undefined;
|
|
190
|
+
// A snap that would collapse the object keeps the unsnapped edge
|
|
191
|
+
if (snappedLeft !== undefined && snappedLeft < right) {
|
|
192
|
+
left = snappedLeft;
|
|
193
|
+
}
|
|
194
|
+
if (snappedRight !== undefined && snappedRight > left) {
|
|
195
|
+
right = snappedRight;
|
|
196
|
+
}
|
|
197
|
+
if (snappedTop !== undefined && snappedTop < bottom) {
|
|
198
|
+
top = snappedTop;
|
|
68
199
|
}
|
|
69
|
-
if (
|
|
70
|
-
|
|
200
|
+
if (snappedBottom !== undefined && snappedBottom > top) {
|
|
201
|
+
bottom = snappedBottom;
|
|
71
202
|
}
|
|
72
|
-
|
|
203
|
+
}
|
|
204
|
+
commit({
|
|
205
|
+
internalX: left,
|
|
206
|
+
internalY: top,
|
|
207
|
+
internalWidth: right - left,
|
|
208
|
+
internalHeight: bottom - top,
|
|
73
209
|
});
|
|
74
|
-
}, []);
|
|
210
|
+
}, [dimensions, snapToGrid, commit]);
|
|
75
211
|
// Resize ends
|
|
76
|
-
var handleResizeEnd = (0, react_1.useCallback)(function (
|
|
77
|
-
var
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
212
|
+
var handleResizeEnd = (0, react_1.useCallback)(function () {
|
|
213
|
+
var _a, _b;
|
|
214
|
+
setShiftLocksAspectRatio(false);
|
|
215
|
+
var _c = appliedRef.current, internalX = _c.internalX, internalY = _c.internalY, internalWidth = _c.internalWidth, internalHeight = _c.internalHeight;
|
|
216
|
+
if (((_a = incomingDimensionRef.current) === null || _a === void 0 ? void 0 : _a.width) === internalWidth &&
|
|
217
|
+
((_b = incomingDimensionRef.current) === null || _b === void 0 ? void 0 : _b.height) === internalHeight) {
|
|
81
218
|
return;
|
|
82
219
|
}
|
|
83
|
-
onResize === null || onResize === void 0 ? void 0 : onResize(id,
|
|
84
|
-
}, [onResize, id, scale
|
|
220
|
+
onResize === null || onResize === void 0 ? void 0 : onResize(id, internalX, internalY, internalWidth / scale, internalHeight / scale);
|
|
221
|
+
}, [onResize, id, scale]);
|
|
85
222
|
// When state is saved, update internal state
|
|
86
223
|
(0, use_isomorphic_layout_effect_1.useIsomorphicLayoutEffect)(function () {
|
|
87
224
|
incomingDimensionRef.current = {
|
|
@@ -90,29 +227,67 @@ var EmbedDraggable = function (_a) {
|
|
|
90
227
|
width: width,
|
|
91
228
|
height: height,
|
|
92
229
|
};
|
|
93
|
-
|
|
230
|
+
commit({
|
|
94
231
|
internalX: x,
|
|
95
232
|
internalY: y,
|
|
96
233
|
internalHeight: height,
|
|
97
234
|
internalWidth: width,
|
|
98
235
|
});
|
|
99
|
-
}, [width, height, x, y]);
|
|
100
|
-
return (react_1.default.createElement(react_draggable_1.
|
|
101
|
-
|
|
102
|
-
y: internalY,
|
|
103
|
-
}, bounds: bounds, onDrag: handleMove, onStop: handleMoveEnd, cancel: ".react-resizable-handle, .rnc-draggable-ignore, .plot-container .draglayer", scale: 1, disabled: !draggable },
|
|
104
|
-
react_1.default.createElement(react_resizable_1.Resizable, { width: internalWidth, height: internalHeight, onResize: handleResize, onResizeStop: handleResizeEnd, lockAspectRatio: lockAspectRatio, resizeHandles: resizable ? resizeHandles : [] },
|
|
236
|
+
}, [width, height, x, y, commit]);
|
|
237
|
+
return (react_1.default.createElement(react_draggable_1.DraggableCore, { nodeRef: nodeRef, onStart: handleMoveStart, onDrag: handleMove, onStop: handleMoveEnd, cancel: ".react-resizable-handle, .rnc-draggable-ignore", scale: 1, disabled: !draggable },
|
|
238
|
+
react_1.default.createElement(react_resizable_1.Resizable, { width: internalWidth, height: internalHeight, onResizeStart: handleResizeStart, onResize: handleResize, onResizeStop: handleResizeEnd, lockAspectRatio: lockAspectRatio || shiftLocksAspectRatio, resizeHandles: resizable ? resizeHandles : [] },
|
|
105
239
|
react_1.default.createElement("div", { className: (0, ui_1.cn)("text-rnc-foreground text-sm pointer-events-auto border border-solid border-transparent flex select-none box-content absolute rnc-embed-component outline-none", isSelected ? "[&_.react-resizable-handle]:bg-[#1a73e8]" : undefined, isSelected ? "rnc-embed-active" : undefined), style: {
|
|
106
240
|
width: internalWidth,
|
|
107
241
|
height: internalHeight,
|
|
242
|
+
transform: "translate(".concat(internalX, "px, ").concat(internalY, "px)"),
|
|
108
243
|
borderColor: borderColor,
|
|
109
|
-
zIndex: isSelected
|
|
244
|
+
zIndex: isSelected
|
|
245
|
+
? (zIndex !== null && zIndex !== void 0 ? zIndex : 0) + SELECTED_Z_INDEX_LIFT
|
|
246
|
+
: zIndex,
|
|
110
247
|
}, tabIndex: 0, onKeyDown: function (e) {
|
|
111
248
|
if (e.key === "Backspace" || e.key === "Delete") {
|
|
112
249
|
onDelete === null || onDelete === void 0 ? void 0 : onDelete(id);
|
|
250
|
+
return;
|
|
113
251
|
}
|
|
114
|
-
|
|
252
|
+
if ((e.metaKey || e.ctrlKey) &&
|
|
253
|
+
!e.altKey &&
|
|
254
|
+
!e.shiftKey &&
|
|
255
|
+
e.key.toLowerCase() === "d" &&
|
|
256
|
+
onDuplicate) {
|
|
257
|
+
e.preventDefault();
|
|
258
|
+
onDuplicate(id);
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
if (e.key === "Escape") {
|
|
262
|
+
e.preventDefault();
|
|
263
|
+
onDeselect === null || onDeselect === void 0 ? void 0 : onDeselect(id);
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
if (e.key === "Alt") {
|
|
267
|
+
// Alt is a snap modifier here; keep it from opening the browser menu bar
|
|
268
|
+
e.preventDefault();
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
var delta = ARROW_KEY_DELTAS[e.key];
|
|
272
|
+
if (delta && draggable) {
|
|
273
|
+
// The grid must not scroll while the object is being nudged
|
|
274
|
+
e.preventDefault();
|
|
275
|
+
var step = e.shiftKey ? NUDGE_STEP_SHIFT : NUDGE_STEP;
|
|
276
|
+
handleNudge(delta[0] * step, delta[1] * step);
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
if (e.key === "ContextMenu" || (e.key === "F10" && e.shiftKey)) {
|
|
280
|
+
e.preventDefault();
|
|
281
|
+
var rect = e.currentTarget.getBoundingClientRect();
|
|
282
|
+
onRequestContextMenu === null || onRequestContextMenu === void 0 ? void 0 : onRequestContextMenu(id, rect.left, rect.top, e.currentTarget);
|
|
283
|
+
}
|
|
284
|
+
}, onCopy: onCopy ? function (e) { return onCopy(id, e); } : undefined, onCut: onCut ? function (e) { return onCut(id, e); } : undefined, onPaste: onPaste ? function (e) { return onPaste(id, e); } : undefined, ref: nodeRef, onMouseMove: onMouseMove, onPointerDown: onPointerDown, onDoubleClick: onDoubleClick ? function () { return onDoubleClick(id); } : undefined, onContextMenu: function (e) {
|
|
115
285
|
e.stopPropagation();
|
|
286
|
+
if (!onRequestContextMenu) {
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
e.preventDefault();
|
|
290
|
+
onRequestContextMenu(id, e.clientX, e.clientY, e.currentTarget);
|
|
116
291
|
} }, children(internalWidth, internalHeight)))));
|
|
117
292
|
};
|
|
118
293
|
exports.EmbedDraggable = EmbedDraggable;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Excel groups a date column's AutoFilter checklist into a Year → Month → Day
|
|
3
|
+
* tree with tri-state parents. The checklist only knows each cell's DISPLAYED
|
|
4
|
+
* text, so a value is treated as a date when it parses as one AND looks like
|
|
5
|
+
* one — digits separated by `/ - .` or a month name — which keeps plain
|
|
6
|
+
* numbers ("2026") and text out. The tree is built only when every non-blank
|
|
7
|
+
* value in the column is such a date (a mixed column stays a flat list, as a
|
|
8
|
+
* text column would). Newest first at every level, matching Excel.
|
|
9
|
+
*/
|
|
10
|
+
export type DateTreeNode = {
|
|
11
|
+
/** Stable key: `y:2026`, `m:2026-09`, `d:2026-09-29`. */
|
|
12
|
+
key: string;
|
|
13
|
+
label: string;
|
|
14
|
+
/** Every checklist value (display text) under this node. */
|
|
15
|
+
values: string[];
|
|
16
|
+
children?: DateTreeNode[];
|
|
17
|
+
};
|
|
18
|
+
/** The calendar date a checklist value displays, or `undefined` when it is not a date. */
|
|
19
|
+
export declare const parseFilterDateValue: (value: string) => Date | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Year → Month → Day nodes for `values`, or `undefined` when the column is
|
|
22
|
+
* not a date column. `blankLabel` (the "(Blanks)" entry) is skipped; callers
|
|
23
|
+
* render it beside the tree.
|
|
24
|
+
*/
|
|
25
|
+
export declare const buildDateTree: (values: readonly string[], blankLabel: string) => DateTreeNode[] | undefined;
|
|
26
|
+
/** `true` all checked, `false` none, `"mixed"` some — the tri-state of a node or the whole list. */
|
|
27
|
+
export declare const triState: (values: readonly string[], isVisible: (value: string) => boolean) => boolean | "mixed";
|
|
28
|
+
//# sourceMappingURL=date-tree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-tree.d.ts","sourceRoot":"","sources":["../../../../components/filter-box/date-tree.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,YAAY,GAAG;IACzB,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B,CAAC;AAqBF,0FAA0F;AAC1F,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,KAAG,IAAI,GAAG,SAS3D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,SAAS,MAAM,EAAE,EACzB,YAAY,MAAM,KACjB,YAAY,EAAE,GAAG,SAgDnB,CAAC;AAEF,oGAAoG;AACpG,eAAO,MAAM,QAAQ,GACnB,QAAQ,SAAS,MAAM,EAAE,EACzB,WAAW,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,KACpC,OAAO,GAAG,OAOZ,CAAC"}
|