@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,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FilterBox = exports.FilterBoxWrapper = exports.isTableView = void 0;
|
|
3
|
+
exports.FilterBox = exports.FilterBoxWrapper = exports.hasActiveFilterCriteria = exports.isTableView = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var grid_1 = require("@rowsncolumns/grid");
|
|
6
6
|
var icons_1 = require("@rowsncolumns/icons");
|
|
@@ -19,6 +19,21 @@ var isTableView = function (filter) {
|
|
|
19
19
|
return "columns" in filter;
|
|
20
20
|
};
|
|
21
21
|
exports.isTableView = isTableView;
|
|
22
|
+
/**
|
|
23
|
+
* Whether a column's stored criteria still filter anything — what enables
|
|
24
|
+
* Excel's "Clear Filter From <column>" item. Same test as the state layer's
|
|
25
|
+
* `isFilterCriteriaActive`.
|
|
26
|
+
*/
|
|
27
|
+
var hasActiveFilterCriteria = function (criteria) {
|
|
28
|
+
var _a, _b, _c;
|
|
29
|
+
return Boolean(criteria &&
|
|
30
|
+
(((_a = criteria.condition) === null || _a === void 0 ? void 0 : _a.type) ||
|
|
31
|
+
((_b = criteria.condition2) === null || _b === void 0 ? void 0 : _b.type) ||
|
|
32
|
+
((_c = criteria.visibleValues) === null || _c === void 0 ? void 0 : _c.length) ||
|
|
33
|
+
criteria.colorFilter ||
|
|
34
|
+
criteria.iconFilter));
|
|
35
|
+
};
|
|
36
|
+
exports.hasActiveFilterCriteria = hasActiveFilterCriteria;
|
|
22
37
|
// Excel-style "Auto apply": changes in the filter box apply live without
|
|
23
38
|
// pressing Apply. On by default like Excel; unchecking it survives across
|
|
24
39
|
// filter boxes and sessions, matching Excel's sticky checkbox.
|
|
@@ -45,7 +60,7 @@ var storeAutoApplyPreference = function (value) {
|
|
|
45
60
|
}
|
|
46
61
|
};
|
|
47
62
|
exports.FilterBoxWrapper = (0, react_2.memo)(function (_a) {
|
|
48
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
63
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1;
|
|
49
64
|
var dimensionIndex = _a.dimensionIndex, onOpenChange = _a.onOpenChange, onSort = _a.onSort, onFilter = _a.onFilter, onDeleteTableColumn = _a.onDeleteTableColumn, onInsertTableColumn = _a.onInsertTableColumn, sheetId = _a.sheetId, filter = _a.filter, values = _a.values, availableCellColors = _a.availableCellColors, availableFontColors = _a.availableFontColors, availableIcons = _a.availableIcons, customLists = _a.customLists;
|
|
50
65
|
// Opens the host-mounted multi-level Sort dialog.
|
|
51
66
|
var openSortDialog = (0, sort_dialog_atom_1.useOpenSortDialog)();
|
|
@@ -56,23 +71,30 @@ exports.FilterBoxWrapper = (0, react_2.memo)(function (_a) {
|
|
|
56
71
|
// Table view
|
|
57
72
|
var isTable = (0, exports.isTableView)(filter);
|
|
58
73
|
// State
|
|
59
|
-
var
|
|
74
|
+
var _2 = tslib_1.__read((0, react_1.useState)((_d = (_c = filterCriteria === null || filterCriteria === void 0 ? void 0 : filterCriteria.condition) === null || _c === void 0 ? void 0 : _c.type) !== null && _d !== void 0 ? _d : undefined), 2), conditionType = _2[0], onChangeConditionType = _2[1];
|
|
60
75
|
// Hidden values
|
|
61
|
-
var
|
|
62
|
-
var
|
|
76
|
+
var _3 = tslib_1.__read((0, react_1.useState)((_e = filterCriteria === null || filterCriteria === void 0 ? void 0 : filterCriteria.visibleValues) !== null && _e !== void 0 ? _e : values), 2), visibleValues = _3[0], onChangeVisibleValues = _3[1];
|
|
77
|
+
var _4 = tslib_1.__read((0, react_1.useState)((_j = (_h = (_g = (_f = filterCriteria === null || filterCriteria === void 0 ? void 0 : filterCriteria.condition) === null || _f === void 0 ? void 0 : _f.values) === null || _g === void 0 ? void 0 : _g[0]) === null || _h === void 0 ? void 0 : _h.userEnteredValue) !== null && _j !== void 0 ? _j : ""), 2), fromValue = _4[0], onChangeFromValue = _4[1];
|
|
63
78
|
// For range : Between type
|
|
64
|
-
var
|
|
79
|
+
var _5 = tslib_1.__read((0, react_1.useState)((_o = (_m = (_l = (_k = filterCriteria === null || filterCriteria === void 0 ? void 0 : filterCriteria.condition) === null || _k === void 0 ? void 0 : _k.values) === null || _l === void 0 ? void 0 : _l[1]) === null || _m === void 0 ? void 0 : _m.userEnteredValue) !== null && _o !== void 0 ? _o : ""), 2), toValue = _5[0], onChangeToValue = _5[1];
|
|
65
80
|
// Color & icon filter criteria (Phase 3). `null` means "cleared this
|
|
66
81
|
// turn"; `undefined` (initial) means "no change — preserve any
|
|
67
82
|
// existing criterion from the spec".
|
|
68
|
-
var
|
|
69
|
-
var
|
|
83
|
+
var _6 = tslib_1.__read((0, react_1.useState)(undefined), 2), colorFilter = _6[0], onChangeColorFilter = _6[1];
|
|
84
|
+
var _7 = tslib_1.__read((0, react_1.useState)(undefined), 2), iconFilter = _7[0], onChangeIconFilter = _7[1];
|
|
85
|
+
// Excel's Custom AutoFilter second clause + And / Or join.
|
|
86
|
+
var _8 = tslib_1.__read((0, react_1.useState)((_q = (_p = filterCriteria === null || filterCriteria === void 0 ? void 0 : filterCriteria.condition2) === null || _p === void 0 ? void 0 : _p.type) !== null && _q !== void 0 ? _q : undefined), 2), condition2Type = _8[0], onChangeCondition2Type = _8[1];
|
|
87
|
+
var _9 = tslib_1.__read((0, react_1.useState)((_u = (_t = (_s = (_r = filterCriteria === null || filterCriteria === void 0 ? void 0 : filterCriteria.condition2) === null || _r === void 0 ? void 0 : _r.values) === null || _s === void 0 ? void 0 : _s[0]) === null || _t === void 0 ? void 0 : _t.userEnteredValue) !== null && _u !== void 0 ? _u : ""), 2), condition2From = _9[0], onChangeCondition2From = _9[1];
|
|
88
|
+
var _10 = tslib_1.__read((0, react_1.useState)((_y = (_x = (_w = (_v = filterCriteria === null || filterCriteria === void 0 ? void 0 : filterCriteria.condition2) === null || _v === void 0 ? void 0 : _v.values) === null || _w === void 0 ? void 0 : _w[1]) === null || _x === void 0 ? void 0 : _x.userEnteredValue) !== null && _y !== void 0 ? _y : ""), 2), condition2To = _10[0], onChangeCondition2To = _10[1];
|
|
89
|
+
var _11 = tslib_1.__read((0, react_1.useState)((_z = filterCriteria === null || filterCriteria === void 0 ? void 0 : filterCriteria.conditionJoin) !== null && _z !== void 0 ? _z : "AND"), 2), conditionJoin = _11[0], onChangeConditionJoin = _11[1];
|
|
90
|
+
// "Sort by Color" is a collapsed sub-menu of the dropdown, like Excel's.
|
|
91
|
+
var _12 = tslib_1.__read((0, react_1.useState)(false), 2), showSortByColor = _12[0], setShowSortByColor = _12[1];
|
|
70
92
|
// Auto apply (Excel parity). `pendingAutoApplyTick` counts user edits made
|
|
71
93
|
// while auto apply is on; the debounced effect below applies the newest
|
|
72
94
|
// state once per burst.
|
|
73
|
-
var
|
|
95
|
+
var _13 = tslib_1.__read((0, react_1.useState)(readAutoApplyPreference), 2), autoApply = _13[0], setAutoApply = _13[1];
|
|
74
96
|
var autoApplyRef = (0, react_1.useRef)(autoApply);
|
|
75
|
-
var
|
|
97
|
+
var _14 = tslib_1.__read((0, react_1.useState)(0), 2), pendingAutoApplyTick = _14[0], setPendingAutoApplyTick = _14[1];
|
|
76
98
|
// Armed only after mount: FilterByCondition clears its To value via a
|
|
77
99
|
// mount-time layout effect — a programmatic write, not a user edit.
|
|
78
100
|
// Without this guard, just opening the filter box would fire an apply.
|
|
@@ -177,9 +199,22 @@ exports.FilterBoxWrapper = (0, react_2.memo)(function (_a) {
|
|
|
177
199
|
}
|
|
178
200
|
return undefined;
|
|
179
201
|
})();
|
|
202
|
+
var condition2Values = [];
|
|
203
|
+
if (condition2From) {
|
|
204
|
+
condition2Values.push({ userEnteredValue: condition2From });
|
|
205
|
+
}
|
|
206
|
+
if (condition2To) {
|
|
207
|
+
condition2Values.push({ userEnteredValue: condition2To });
|
|
208
|
+
}
|
|
209
|
+
// A second clause without a first is applied as the only clause.
|
|
210
|
+
var condition2 = condition2Type
|
|
211
|
+
? { type: condition2Type, values: condition2Values }
|
|
212
|
+
: null;
|
|
180
213
|
onFilter === null || onFilter === void 0 ? void 0 : onFilter(sheetId, filter, dimensionIndex, conditionType, conditionValues, normalizedVisibleValues, {
|
|
181
214
|
colorFilter: colorFilter,
|
|
182
215
|
iconFilter: iconFilter,
|
|
216
|
+
condition2: condition2,
|
|
217
|
+
conditionJoin: condition2 ? conditionJoin : null,
|
|
183
218
|
});
|
|
184
219
|
}, [
|
|
185
220
|
sheetId,
|
|
@@ -189,11 +224,39 @@ exports.FilterBoxWrapper = (0, react_2.memo)(function (_a) {
|
|
|
189
224
|
fromValue,
|
|
190
225
|
toValue,
|
|
191
226
|
conditionType,
|
|
227
|
+
condition2Type,
|
|
228
|
+
condition2From,
|
|
229
|
+
condition2To,
|
|
230
|
+
conditionJoin,
|
|
192
231
|
visibleValues,
|
|
193
232
|
values,
|
|
194
233
|
colorFilter,
|
|
195
234
|
iconFilter,
|
|
196
235
|
]);
|
|
236
|
+
// Excel's "Clear Filter From <column>": drop every criterion on this
|
|
237
|
+
// column only — the filter (and the other columns' criteria) stay.
|
|
238
|
+
var columnLabel = isTable
|
|
239
|
+
? (_1 = (_0 = filter.columns) === null || _0 === void 0 ? void 0 : _0[dimensionIndex]) === null || _1 === void 0 ? void 0 : _1.name
|
|
240
|
+
: undefined;
|
|
241
|
+
var clearLabel = "Clear Filter From \"".concat(columnLabel !== null && columnLabel !== void 0 ? columnLabel : "Column ".concat((0, utils_1.number2Alpha)(filter.range.startColumnIndex + dimensionIndex)), "\"");
|
|
242
|
+
var canClearColumn = (0, exports.hasActiveFilterCriteria)(filterCriteria);
|
|
243
|
+
var onClearColumnFilter = (0, react_2.useCallback)(function () {
|
|
244
|
+
onFilter === null || onFilter === void 0 ? void 0 : onFilter(sheetId, filter, dimensionIndex, undefined, undefined, undefined, {
|
|
245
|
+
colorFilter: null,
|
|
246
|
+
iconFilter: null,
|
|
247
|
+
condition2: null,
|
|
248
|
+
});
|
|
249
|
+
onClose();
|
|
250
|
+
}, [onFilter, sheetId, filter, dimensionIndex, onClose]);
|
|
251
|
+
// Excel's "Sort by Color": surface the picked fill / font colour or CF icon
|
|
252
|
+
// to the top of the column (one level, ascending).
|
|
253
|
+
var onSortByColor = (0, react_2.useCallback)(function (options) {
|
|
254
|
+
onSort === null || onSort === void 0 ? void 0 : onSort(sheetId, filter, dimensionIndex, "ASCENDING", options);
|
|
255
|
+
onClose();
|
|
256
|
+
}, [onSort, sheetId, filter, dimensionIndex, onClose]);
|
|
257
|
+
var hasSortColors = Boolean((availableCellColors === null || availableCellColors === void 0 ? void 0 : availableCellColors.length) ||
|
|
258
|
+
(availableFontColors === null || availableFontColors === void 0 ? void 0 : availableFontColors.length) ||
|
|
259
|
+
(availableIcons === null || availableIcons === void 0 ? void 0 : availableIcons.length));
|
|
197
260
|
// Debounced auto-apply. `appliedTickRef` keeps applyFilter identity
|
|
198
261
|
// changes that carry no user edit (e.g. the async values re-sync above)
|
|
199
262
|
// from re-applying an already-flushed tick.
|
|
@@ -250,6 +313,10 @@ exports.FilterBoxWrapper = (0, react_2.memo)(function (_a) {
|
|
|
250
313
|
var onUserChangeColorFilter = (0, react_2.useMemo)(function () { return wrapWithAutoApply(onChangeColorFilter); }, [wrapWithAutoApply]);
|
|
251
314
|
var onUserChangeIconFilter = (0, react_2.useMemo)(function () { return wrapWithAutoApply(onChangeIconFilter); }, [wrapWithAutoApply]);
|
|
252
315
|
var onUserChangeVisibleValues = (0, react_2.useMemo)(function () { return wrapWithAutoApply(onChangeVisibleValues); }, [wrapWithAutoApply]);
|
|
316
|
+
var onUserChangeCondition2Type = (0, react_2.useMemo)(function () { return wrapWithAutoApply(onChangeCondition2Type); }, [wrapWithAutoApply]);
|
|
317
|
+
var onUserChangeCondition2From = (0, react_2.useMemo)(function () { return wrapWithAutoApply(onChangeCondition2From); }, [wrapWithAutoApply]);
|
|
318
|
+
var onUserChangeCondition2To = (0, react_2.useMemo)(function () { return wrapWithAutoApply(onChangeCondition2To); }, [wrapWithAutoApply]);
|
|
319
|
+
var onUserChangeConditionJoin = (0, react_2.useMemo)(function () { return wrapWithAutoApply(onChangeConditionJoin); }, [wrapWithAutoApply]);
|
|
253
320
|
// Apply
|
|
254
321
|
var onSubmit = (0, react_2.useCallback)(function (event) {
|
|
255
322
|
event.preventDefault();
|
|
@@ -309,8 +376,32 @@ exports.FilterBoxWrapper = (0, react_2.memo)(function (_a) {
|
|
|
309
376
|
react_1.default.createElement(ui_1.DropdownLeftSlot, { className: "text-base leading-4" },
|
|
310
377
|
react_1.default.createElement(icons_1.SortDownIcon, null)),
|
|
311
378
|
"Custom sort\u2026"),
|
|
379
|
+
react_1.default.createElement(ui_1.PopoverMenuItem, { type: "button", disabled: !hasSortColors, "aria-expanded": showSortByColor, onClick: function () { return setShowSortByColor(function (open) { return !open; }); } },
|
|
380
|
+
react_1.default.createElement(ui_1.DropdownLeftSlot, { className: "text-base leading-4" }, showSortByColor ? react_1.default.createElement(icons_1.ChevronDownIcon, null) : react_1.default.createElement(icons_1.ChevronRightIcon, null)),
|
|
381
|
+
"Sort by Color"),
|
|
382
|
+
showSortByColor && hasSortColors ? (react_1.default.createElement("div", { className: "flex flex-col pl-6 pb-1", role: "group", "aria-label": "Sort by Color" }, availableCellColors === null || availableCellColors === void 0 ? void 0 :
|
|
383
|
+
availableCellColors.map(function (color) { return (react_1.default.createElement(ui_1.Button, { key: "cell-".concat(color), type: "button", "aria-label": "Sort by cell color ".concat(color), title: "Sort by cell color ".concat(color), onClick: function () { return onSortByColor({ sortBy: "cellColor", sortColor: color }); }, className: "justify-start px-2 py-0 gap-2 text-sm text-left w-full h-6" },
|
|
384
|
+
react_1.default.createElement("span", { className: "inline-block h-4 w-4 rounded border border-gray-300 shrink-0", style: { backgroundColor: color } }),
|
|
385
|
+
"Cell color ",
|
|
386
|
+
color)); }), availableFontColors === null || availableFontColors === void 0 ? void 0 :
|
|
387
|
+
availableFontColors.map(function (color) { return (react_1.default.createElement(ui_1.Button, { key: "font-".concat(color), type: "button", "aria-label": "Sort by font color ".concat(color), title: "Sort by font color ".concat(color), onClick: function () { return onSortByColor({ sortBy: "fontColor", sortColor: color }); }, className: "justify-start px-2 py-0 gap-2 text-sm text-left w-full h-6" },
|
|
388
|
+
react_1.default.createElement("span", { className: "inline-block h-4 w-4 rounded border border-gray-300 shrink-0", style: { backgroundColor: color } }),
|
|
389
|
+
"Font color ",
|
|
390
|
+
color)); }), availableIcons === null || availableIcons === void 0 ? void 0 :
|
|
391
|
+
availableIcons.map(function (icon) { return (react_1.default.createElement(ui_1.Button, { key: "icon-".concat(icon.iconSet, "-").concat(icon.iconId), type: "button", "aria-label": "Sort by ".concat(icon.iconSet, " icon ").concat(icon.iconId), title: "Sort by ".concat(icon.iconSet, " icon ").concat(icon.iconId), onClick: function () {
|
|
392
|
+
return onSortByColor({
|
|
393
|
+
sortBy: "icon",
|
|
394
|
+
sortIcon: { iconSet: icon.iconSet, iconId: icon.iconId },
|
|
395
|
+
});
|
|
396
|
+
}, className: "justify-start px-2 py-0 gap-2 text-sm text-left w-full h-6" },
|
|
397
|
+
react_1.default.createElement("span", { className: "inline-block h-4 w-4 leading-none text-center text-sm shrink-0", style: icon.color ? { color: icon.color } : undefined }, icon.glyph),
|
|
398
|
+
"Icon")); }))) : null,
|
|
399
|
+
react_1.default.createElement(ui_1.PopoverMenuItem, { type: "button", disabled: !canClearColumn, onClick: onClearColumnFilter },
|
|
400
|
+
react_1.default.createElement(ui_1.DropdownLeftSlot, { className: "text-base leading-4" },
|
|
401
|
+
react_1.default.createElement(icons_1.Cross2Icon, null)),
|
|
402
|
+
clearLabel),
|
|
312
403
|
react_1.default.createElement("div", { className: "py-2 px-2" },
|
|
313
|
-
react_1.default.createElement(filter_by_condition_1.FilterByCondition, { conditionType: conditionType, fromValue: fromValue, toValue: toValue, onChangeConditionType: onUserChangeConditionType, onChangeFromValue: onUserChangeFromValue, onChangeToValue: onUserChangeToValue }),
|
|
404
|
+
react_1.default.createElement(filter_by_condition_1.FilterByCondition, { conditionType: conditionType, fromValue: fromValue, toValue: toValue, onChangeConditionType: onUserChangeConditionType, onChangeFromValue: onUserChangeFromValue, onChangeToValue: onUserChangeToValue, condition2Type: condition2Type, condition2From: condition2From, condition2To: condition2To, conditionJoin: conditionJoin, onChangeCondition2Type: onUserChangeCondition2Type, onChangeCondition2From: onUserChangeCondition2From, onChangeCondition2To: onUserChangeCondition2To, onChangeConditionJoin: onUserChangeConditionJoin }),
|
|
314
405
|
react_1.default.createElement(ui_1.Separator, { className: "mt-2 mb-2" }),
|
|
315
406
|
react_1.default.createElement(filter_by_color_1.FilterByColor, { colorFilter: colorFilter === undefined
|
|
316
407
|
? filterCriteria === null || filterCriteria === void 0 ? void 0 : filterCriteria.colorFilter
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { EmbeddedChart, MoveChartTarget, Sheet } from "../../types";
|
|
3
|
+
export type MoveChartDialogProps = {
|
|
4
|
+
/** Controls visibility. */
|
|
5
|
+
open: boolean;
|
|
6
|
+
onOpenChange(open: boolean): void;
|
|
7
|
+
/** The chart being moved; its `position.sheetId` is the source sheet. */
|
|
8
|
+
chart: EmbeddedChart;
|
|
9
|
+
/** Every sheet of the workbook (chartsheets are not offered as "Object in" targets). */
|
|
10
|
+
sheets: Sheet[];
|
|
11
|
+
onSubmit(target: MoveChartTarget): void;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Excel's "Move Chart…" dialog: "New sheet: [Chart1]" creates a chartsheet
|
|
15
|
+
* (a tab that is the chart, no cells) or "Object in: [Sheet]" moves the chart
|
|
16
|
+
* onto another worksheet. UI-only — the host turns the target into the move.
|
|
17
|
+
*/
|
|
18
|
+
export declare const MoveChartDialog: React.MemoExoticComponent<({ open, onOpenChange, chart, sheets, onSubmit }: MoveChartDialogProps) => React.JSX.Element>;
|
|
19
|
+
export type MoveChartDialogHostProps = {
|
|
20
|
+
sheets: Sheet[];
|
|
21
|
+
/** `useCharts().onMoveChartToSheet` / the engine hook's `onMoveChartToSheet`. */
|
|
22
|
+
onMoveChartToSheet(chart: EmbeddedChart, target: MoveChartTarget): unknown;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Host-mounted, atom-driven wrapper around {@link MoveChartDialog}. Mount it
|
|
26
|
+
* once alongside the other editor dialogs; the chart context menu and the
|
|
27
|
+
* chart editor open it. Remounted per request so each opening starts from the
|
|
28
|
+
* chart's current sheet.
|
|
29
|
+
*/
|
|
30
|
+
export declare const MoveChartDialogHost: {
|
|
31
|
+
({ sheets, onMoveChartToSheet, }: MoveChartDialogHostProps): React.JSX.Element | null;
|
|
32
|
+
displayName: string;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/move-chart-dialog/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAO3D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzE,MAAM,MAAM,oBAAoB,GAAG;IACjC,2BAA2B;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,yEAAyE;IACzE,KAAK,EAAE,aAAa,CAAC;IACrB,wFAAwF;IACxF,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;CACzC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,8EACwB,oBAAoB,uBAgIvE,CAAC;AAIF,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,iFAAiF;IACjF,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC;CAC5E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;sCAG7B,wBAAwB;;CAiB1B,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MoveChartDialogHost = exports.MoveChartDialog = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var ui_1 = require("@rowsncolumns/ui");
|
|
6
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
7
|
+
var chart_sheet_1 = require("../../api/chart-sheet");
|
|
8
|
+
var move_chart_dialog_atom_1 = require("../../atoms/move-chart-dialog.atom");
|
|
9
|
+
/**
|
|
10
|
+
* Excel's "Move Chart…" dialog: "New sheet: [Chart1]" creates a chartsheet
|
|
11
|
+
* (a tab that is the chart, no cells) or "Object in: [Sheet]" moves the chart
|
|
12
|
+
* onto another worksheet. UI-only — the host turns the target into the move.
|
|
13
|
+
*/
|
|
14
|
+
exports.MoveChartDialog = (0, react_1.memo)(function (_a) {
|
|
15
|
+
var _b;
|
|
16
|
+
var open = _a.open, onOpenChange = _a.onOpenChange, chart = _a.chart, sheets = _a.sheets, onSubmit = _a.onSubmit;
|
|
17
|
+
var sourceSheetId = chart.position.sheetId;
|
|
18
|
+
var sourceSheet = sheets.find(function (sheet) { return sheet.sheetId === sourceSheetId; });
|
|
19
|
+
var sourceIsChartSheet = (sourceSheet === null || sourceSheet === void 0 ? void 0 : sourceSheet.type) === "chartsheet";
|
|
20
|
+
var worksheets = sheets.filter(function (sheet) { return sheet.type !== "chartsheet" && !sheet.hidden; });
|
|
21
|
+
// Excel pre-selects where the chart currently is: "New sheet" (with the
|
|
22
|
+
// chartsheet's own name) for a chartsheet chart, "Object in" otherwise.
|
|
23
|
+
var _c = tslib_1.__read((0, react_1.useState)(sourceIsChartSheet ? "newSheet" : "sheet"), 2), mode = _c[0], setMode = _c[1];
|
|
24
|
+
var _d = tslib_1.__read((0, react_1.useState)(sourceIsChartSheet && sourceSheet
|
|
25
|
+
? sourceSheet.title
|
|
26
|
+
: (0, chart_sheet_1.getNextChartSheetTitle)(sheets)), 2), title = _d[0], setTitle = _d[1];
|
|
27
|
+
var _e = tslib_1.__read((0, react_1.useState)(worksheets.some(function (sheet) { return sheet.sheetId === sourceSheetId; })
|
|
28
|
+
? sourceSheetId
|
|
29
|
+
: (_b = worksheets[0]) === null || _b === void 0 ? void 0 : _b.sheetId), 2), targetSheetId = _e[0], setTargetSheetId = _e[1];
|
|
30
|
+
var commit = (0, react_1.useCallback)(function () {
|
|
31
|
+
if (mode === "newSheet") {
|
|
32
|
+
var trimmed = title.trim();
|
|
33
|
+
// Keeping a chartsheet's own name is not a move.
|
|
34
|
+
if (!(sourceIsChartSheet && trimmed === (sourceSheet === null || sourceSheet === void 0 ? void 0 : sourceSheet.title))) {
|
|
35
|
+
onSubmit({ kind: "newSheet", title: trimmed || undefined });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else if (targetSheetId !== undefined && targetSheetId !== sourceSheetId) {
|
|
39
|
+
onSubmit({ kind: "sheet", sheetId: targetSheetId });
|
|
40
|
+
}
|
|
41
|
+
onOpenChange(false);
|
|
42
|
+
}, [
|
|
43
|
+
mode,
|
|
44
|
+
title,
|
|
45
|
+
targetSheetId,
|
|
46
|
+
sourceSheetId,
|
|
47
|
+
sourceIsChartSheet,
|
|
48
|
+
sourceSheet,
|
|
49
|
+
onSubmit,
|
|
50
|
+
onOpenChange,
|
|
51
|
+
]);
|
|
52
|
+
return (react_1.default.createElement(ui_1.Dialog, { open: open, onOpenChange: onOpenChange, modal: true },
|
|
53
|
+
react_1.default.createElement(ui_1.DialogContent, { className: "w-[360px] max-w-[92vw] pointer-events-auto" },
|
|
54
|
+
react_1.default.createElement(ui_1.DialogTitle, null, "Move Chart"),
|
|
55
|
+
react_1.default.createElement(ui_1.DialogCloseButton, null),
|
|
56
|
+
react_1.default.createElement(ui_1.DialogBody, { className: "flex flex-col gap-4" },
|
|
57
|
+
react_1.default.createElement("form", { className: "flex flex-col gap-4", onSubmit: function (e) {
|
|
58
|
+
e.preventDefault();
|
|
59
|
+
commit();
|
|
60
|
+
} },
|
|
61
|
+
react_1.default.createElement("fieldset", { className: "flex flex-col gap-2 min-w-0 border-0 p-0 m-0" },
|
|
62
|
+
react_1.default.createElement("legend", { className: "text-xs font-medium mb-1" }, "Choose where you want the chart to be placed:"),
|
|
63
|
+
react_1.default.createElement("label", { className: "flex items-center gap-2 text-xs py-0.5 cursor-pointer" },
|
|
64
|
+
react_1.default.createElement("input", { type: "radio", name: "move-chart-target", value: "newSheet", checked: mode === "newSheet", onChange: function () { return setMode("newSheet"); } }),
|
|
65
|
+
react_1.default.createElement("span", { className: "w-20 shrink-0" }, "New sheet:"),
|
|
66
|
+
react_1.default.createElement("input", { type: "text", "aria-label": "New sheet name", className: "flex-1 min-w-0 rounded border border-rnc-border bg-transparent px-2 py-1 text-xs", value: title, disabled: mode !== "newSheet", onChange: function (e) { return setTitle(e.target.value); }, onFocus: function () { return setMode("newSheet"); } })),
|
|
67
|
+
react_1.default.createElement("label", { className: "flex items-center gap-2 text-xs py-0.5 cursor-pointer" },
|
|
68
|
+
react_1.default.createElement("input", { type: "radio", name: "move-chart-target", value: "sheet", checked: mode === "sheet", disabled: worksheets.length === 0, onChange: function () { return setMode("sheet"); } }),
|
|
69
|
+
react_1.default.createElement("span", { className: "w-20 shrink-0" }, "Object in:"),
|
|
70
|
+
react_1.default.createElement("select", { "aria-label": "Object in sheet", className: "flex-1 min-w-0 rounded border border-rnc-border bg-transparent px-2 py-1 text-xs", value: targetSheetId !== null && targetSheetId !== void 0 ? targetSheetId : "", disabled: mode !== "sheet" || worksheets.length === 0, onChange: function (e) { return setTargetSheetId(Number(e.target.value)); } }, worksheets.map(function (sheet) { return (react_1.default.createElement("option", { key: sheet.sheetId, value: sheet.sheetId }, sheet.title)); })))),
|
|
71
|
+
react_1.default.createElement(ui_1.Separator, null),
|
|
72
|
+
react_1.default.createElement("div", { className: "flex justify-end gap-2" },
|
|
73
|
+
react_1.default.createElement(ui_1.Button, { type: "button", variant: "outline", size: "sm", onClick: function () { return onOpenChange(false); } }, "Cancel"),
|
|
74
|
+
react_1.default.createElement(ui_1.Button, { type: "submit", size: "sm", autoFocus: true }, "OK")))))));
|
|
75
|
+
});
|
|
76
|
+
exports.MoveChartDialog.displayName = "MoveChartDialog";
|
|
77
|
+
/**
|
|
78
|
+
* Host-mounted, atom-driven wrapper around {@link MoveChartDialog}. Mount it
|
|
79
|
+
* once alongside the other editor dialogs; the chart context menu and the
|
|
80
|
+
* chart editor open it. Remounted per request so each opening starts from the
|
|
81
|
+
* chart's current sheet.
|
|
82
|
+
*/
|
|
83
|
+
var MoveChartDialogHost = function (_a) {
|
|
84
|
+
var sheets = _a.sheets, onMoveChartToSheet = _a.onMoveChartToSheet;
|
|
85
|
+
(0, move_chart_dialog_atom_1.useRegisterMoveChartDialogHost)();
|
|
86
|
+
var _b = tslib_1.__read((0, move_chart_dialog_atom_1.useMoveChartDialogState)(), 2), request = _b[0], setRequest = _b[1];
|
|
87
|
+
var close = (0, react_1.useCallback)(function () { return setRequest(null); }, [setRequest]);
|
|
88
|
+
if (!request)
|
|
89
|
+
return null;
|
|
90
|
+
return (react_1.default.createElement(exports.MoveChartDialog, { key: String(request.chart.chartId), open: true, onOpenChange: function (open) {
|
|
91
|
+
if (!open)
|
|
92
|
+
close();
|
|
93
|
+
}, chart: request.chart, sheets: sheets, onSubmit: function (target) { return onMoveChartToSheet(request.chart, target); } }));
|
|
94
|
+
};
|
|
95
|
+
exports.MoveChartDialogHost = MoveChartDialogHost;
|
|
96
|
+
exports.MoveChartDialogHost.displayName = "MoveChartDialogHost";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { CellFormat, GridRange } from "@rowsncolumns/common-types";
|
|
3
|
-
import type { PageBlock as PageBlockType } from "./use-page-layout";
|
|
3
|
+
import type { PageBlock as PageBlockType, PrintedChart } from "./use-page-layout";
|
|
4
4
|
import { type HeaderFooterFields, type Margins, type PrintAlignment, type PrintVerticalAlignment } from "./settings";
|
|
5
5
|
export type CellAccess = {
|
|
6
6
|
sheetId: number;
|
|
@@ -57,6 +57,14 @@ export type PageBlockProps = CellAccess & {
|
|
|
57
57
|
* is dropped so the iframe-side rendering doesn't waste ink on it.
|
|
58
58
|
*/
|
|
59
59
|
screen?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Charts whose anchor cell lands on this page (`placeChartsOnPages`),
|
|
62
|
+
* drawn over the cells at their sheet position. `imageUrl` is the
|
|
63
|
+
* renderer's PNG capture; without one a titled frame stands in.
|
|
64
|
+
*/
|
|
65
|
+
charts?: Array<PrintedChart & {
|
|
66
|
+
imageUrl?: string;
|
|
67
|
+
}>;
|
|
60
68
|
};
|
|
61
69
|
export declare const PageBlock: React.FC<PageBlockProps>;
|
|
62
70
|
//# sourceMappingURL=page-block.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-block.d.ts","sourceRoot":"","sources":["../../../../components/print-preview/page-block.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EACV,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"page-block.d.ts","sourceRoot":"","sources":["../../../../components/print-preview/page-block.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EACV,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EACV,SAAS,IAAI,aAAa,EAC1B,YAAY,EACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC5B,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,CACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAE,CAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;IAChD,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CACR,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,OAAO,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG;IACxC,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB,EAAE,cAAc,CAAC;IACpC,iBAAiB,EAAE,sBAAsB,CAAC;IAC1C;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,YAAY,CAAC,EAAE;QACb,MAAM,EAAE,kBAAkB,CAAC;QAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,IAAI,CAAC;KACX,CAAC;IACF;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD,CAAC;AA+HF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA2T9C,CAAC"}
|
|
@@ -128,7 +128,7 @@ var HeaderFooterStrip = function (_a) {
|
|
|
128
128
|
react_1.default.createElement("div", { style: tslib_1.__assign(tslib_1.__assign({}, cellBase), { justifyContent: "flex-end" }) }, right)));
|
|
129
129
|
};
|
|
130
130
|
var PageBlock = function (_a) {
|
|
131
|
-
var block = _a.block, pageWidth = _a.pageWidth, pageHeight = _a.pageHeight, margins = _a.margins, scale = _a.scale, showGridlines = _a.showGridlines, showNotes = _a.showNotes, horizontalAlignment = _a.horizontalAlignment, verticalAlignment = _a.verticalAlignment, sheetId = _a.sheetId, getFormattedValue = _a.getFormattedValue, getEffectiveFormat = _a.getEffectiveFormat, getColumnWidth = _a.getColumnWidth, getRowHeight = _a.getRowHeight, merges = _a.merges, hasNote = _a.hasNote, frozenRowStart = _a.frozenRowStart, frozenRowEnd = _a.frozenRowEnd, frozenColumnStart = _a.frozenColumnStart, frozenColumnEnd = _a.frozenColumnEnd, headerFooter = _a.headerFooter, _b = _a.screen, screen = _b === void 0 ? true : _b;
|
|
131
|
+
var block = _a.block, pageWidth = _a.pageWidth, pageHeight = _a.pageHeight, margins = _a.margins, scale = _a.scale, showGridlines = _a.showGridlines, showNotes = _a.showNotes, horizontalAlignment = _a.horizontalAlignment, verticalAlignment = _a.verticalAlignment, sheetId = _a.sheetId, getFormattedValue = _a.getFormattedValue, getEffectiveFormat = _a.getEffectiveFormat, getColumnWidth = _a.getColumnWidth, getRowHeight = _a.getRowHeight, merges = _a.merges, hasNote = _a.hasNote, frozenRowStart = _a.frozenRowStart, frozenRowEnd = _a.frozenRowEnd, frozenColumnStart = _a.frozenColumnStart, frozenColumnEnd = _a.frozenColumnEnd, headerFooter = _a.headerFooter, _b = _a.screen, screen = _b === void 0 ? true : _b, charts = _a.charts;
|
|
132
132
|
var showFrozenRows = frozenRowStart !== undefined &&
|
|
133
133
|
frozenRowEnd !== undefined &&
|
|
134
134
|
frozenRowEnd >= frozenRowStart;
|
|
@@ -190,6 +190,9 @@ var PageBlock = function (_a) {
|
|
|
190
190
|
alignItems: VALIGN_TO_FLEX[verticalAlignment],
|
|
191
191
|
};
|
|
192
192
|
var tableWrap = {
|
|
193
|
+
// Charts are absolutely positioned over the table in unscaled px, so
|
|
194
|
+
// the same transform scales them with the cells they anchor to.
|
|
195
|
+
position: "relative",
|
|
193
196
|
// The content box is the printable area; the table is the actual
|
|
194
197
|
// sheet slice scaled by the user-selected scale factor. Using a
|
|
195
198
|
// CSS `transform: scale(...)` instead of resizing each cell keeps
|
|
@@ -316,7 +319,30 @@ var PageBlock = function (_a) {
|
|
|
316
319
|
} }, value)),
|
|
317
320
|
noted ? react_1.default.createElement("span", { style: noteMarkerStyle }) : null));
|
|
318
321
|
})));
|
|
319
|
-
})))
|
|
322
|
+
}))), charts === null || charts === void 0 ? void 0 :
|
|
323
|
+
charts.map(function (chart) {
|
|
324
|
+
var _a, _b;
|
|
325
|
+
var frame = {
|
|
326
|
+
position: "absolute",
|
|
327
|
+
left: chart.left,
|
|
328
|
+
top: chart.top,
|
|
329
|
+
width: chart.width,
|
|
330
|
+
height: chart.height,
|
|
331
|
+
overflow: "hidden",
|
|
332
|
+
backgroundColor: "white",
|
|
333
|
+
};
|
|
334
|
+
return (react_1.default.createElement("div", { key: chart.chartId, "data-print-chart": chart.chartId, style: frame }, chart.imageUrl ? (react_1.default.createElement("img", { src: chart.imageUrl, alt: (_a = chart.title) !== null && _a !== void 0 ? _a : "Chart", style: { width: "100%", height: "100%", display: "block" } })) : (react_1.default.createElement("div", { style: {
|
|
335
|
+
width: "100%",
|
|
336
|
+
height: "100%",
|
|
337
|
+
boxSizing: "border-box",
|
|
338
|
+
border: "1px solid #d1d5db",
|
|
339
|
+
display: "flex",
|
|
340
|
+
alignItems: "center",
|
|
341
|
+
justifyContent: "center",
|
|
342
|
+
fontSize: 12,
|
|
343
|
+
color: "#6b7280",
|
|
344
|
+
} }, (_b = chart.title) !== null && _b !== void 0 ? _b : "Chart"))));
|
|
345
|
+
}))),
|
|
320
346
|
headerFooter ? (react_1.default.createElement(HeaderFooterStrip, { position: "footer", data: headerFooter })) : null));
|
|
321
347
|
};
|
|
322
348
|
exports.PageBlock = PageBlock;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { CellData, CellFormat } from "@rowsncolumns/common-types";
|
|
3
3
|
import type { SelectionArea } from "@rowsncolumns/grid";
|
|
4
|
-
import type { Sheet } from "../../types";
|
|
4
|
+
import type { EmbeddedChart, Sheet } from "../../types";
|
|
5
5
|
export type PrintPreviewDialogProps = {
|
|
6
6
|
isOpen: boolean;
|
|
7
7
|
onClose: () => void;
|
|
@@ -44,6 +44,13 @@ export type PrintPreviewDialogProps = {
|
|
|
44
44
|
* marker.
|
|
45
45
|
*/
|
|
46
46
|
getCellData?: (sheetId: number, rowIndex: number, columnIndex: number) => CellData | null | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* The workbook's charts — same array the grid renders. Each prints on
|
|
49
|
+
* the page its anchor cell lands on, as the PNG the mounted renderer
|
|
50
|
+
* captures (`exportPng`); a chart on a sheet that is not on screen has
|
|
51
|
+
* no renderer to capture and prints as a titled frame.
|
|
52
|
+
*/
|
|
53
|
+
charts?: EmbeddedChart[];
|
|
47
54
|
};
|
|
48
55
|
export declare const PrintPreviewDialog: React.FC<PrintPreviewDialogProps>;
|
|
49
56
|
//# sourceMappingURL=print-preview-dialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"print-preview-dialog.d.ts","sourceRoot":"","sources":["../../../../components/print-preview/print-preview-dialog.tsx"],"names":[],"mappings":"AAYA,OAAO,
|
|
1
|
+
{"version":3,"file":"print-preview-dialog.d.ts","sourceRoot":"","sources":["../../../../components/print-preview/print-preview-dialog.tsx"],"names":[],"mappings":"AAYA,OAAO,KAMN,MAAM,OAAO,CAAC;AAaf,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EAEX,MAAM,4BAA4B,CAAC;AAKpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AA4BxD,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,iBAAiB,EAAE,CACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAE,CAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,0EAA0E;IAC1E,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC1D,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC7D;;;;OAIG;IACH,WAAW,CAAC,EAAE,CACZ,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;CAC1B,CAAC;AAgEF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAusBhE,CAAC"}
|