@rowsncolumns/spreadsheet 10.6.5 → 10.7.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/autocomplete.d.ts +42 -0
- package/dist/cjs/api/autocomplete.d.ts.map +1 -0
- package/dist/cjs/api/autocomplete.js +114 -0
- package/dist/cjs/api/banded-ranges.d.ts.map +1 -1
- package/dist/cjs/api/banded-ranges.js +51 -1
- package/dist/cjs/api/error-checking.d.ts +82 -0
- package/dist/cjs/api/error-checking.d.ts.map +1 -0
- package/dist/cjs/api/error-checking.js +207 -0
- package/dist/cjs/api/move-overwrite.d.ts +8 -2
- package/dist/cjs/api/move-overwrite.d.ts.map +1 -1
- package/dist/cjs/api/move-overwrite.js +19 -3
- package/dist/cjs/api/selections.d.ts +2 -2
- package/dist/cjs/api/validation.d.ts +39 -1
- package/dist/cjs/api/validation.d.ts.map +1 -1
- package/dist/cjs/api/validation.js +87 -1
- package/dist/cjs/atoms/cell-input-context.atom.d.ts +4 -1
- package/dist/cjs/atoms/cell-input-context.atom.d.ts.map +1 -1
- package/dist/cjs/atoms/enter-key-direction.atom.d.ts +11 -0
- package/dist/cjs/atoms/enter-key-direction.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/enter-key-direction.atom.js +13 -0
- package/dist/cjs/atoms/index.d.ts +1 -0
- package/dist/cjs/atoms/index.d.ts.map +1 -1
- package/dist/cjs/atoms/index.js +1 -0
- package/dist/cjs/atoms/paste-menu.atom.d.ts +22 -0
- package/dist/cjs/atoms/paste-menu.atom.d.ts.map +1 -1
- package/dist/cjs/atoms/paste-menu.atom.js +13 -1
- package/dist/cjs/atoms/pick-list.atom.d.ts +15 -0
- package/dist/cjs/atoms/pick-list.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/pick-list.atom.js +7 -0
- package/dist/cjs/components/canvas-grid/index.d.ts.map +1 -1
- package/dist/cjs/components/canvas-grid/index.js +305 -70
- package/dist/cjs/components/canvas-grid/typings.d.ts +96 -11
- 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 +7 -8
- package/dist/cjs/components/cell/typings.d.ts +9 -0
- package/dist/cjs/components/cell/typings.d.ts.map +1 -1
- package/dist/cjs/components/cell-editor/helpers.d.ts +22 -2
- package/dist/cjs/components/cell-editor/helpers.d.ts.map +1 -1
- package/dist/cjs/components/cell-editor/helpers.js +32 -8
- package/dist/cjs/components/cell-editor/index.d.ts +7 -1
- package/dist/cjs/components/cell-editor/index.d.ts.map +1 -1
- package/dist/cjs/components/cell-editor/index.js +85 -13
- package/dist/cjs/components/cell-indicator/index.d.ts +41 -0
- package/dist/cjs/components/cell-indicator/index.d.ts.map +1 -0
- package/dist/cjs/components/cell-indicator/index.js +90 -0
- package/dist/cjs/components/cell-input/cell-input.d.ts +10 -2
- package/dist/cjs/components/cell-input/cell-input.d.ts.map +1 -1
- package/dist/cjs/components/cell-input/cell-input.js +5 -3
- 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 +9 -2
- package/dist/cjs/components/cell-structured/sparkline-math.d.ts +27 -1
- package/dist/cjs/components/cell-structured/sparkline-math.d.ts.map +1 -1
- package/dist/cjs/components/cell-structured/sparkline-math.js +48 -1
- 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 +36 -92
- package/dist/cjs/components/cell-structured/types.d.ts +6 -0
- package/dist/cjs/components/cell-structured/types.d.ts.map +1 -1
- package/dist/cjs/components/data-table-dialog/index.d.ts +22 -0
- package/dist/cjs/components/data-table-dialog/index.d.ts.map +1 -0
- package/dist/cjs/components/data-table-dialog/index.js +93 -0
- package/dist/cjs/components/error-check-smart-tag/index.d.ts +27 -0
- package/dist/cjs/components/error-check-smart-tag/index.d.ts.map +1 -0
- package/dist/cjs/components/error-check-smart-tag/index.js +39 -0
- package/dist/cjs/components/forecast-sheet-dialog/index.d.ts +26 -0
- package/dist/cjs/components/forecast-sheet-dialog/index.d.ts.map +1 -0
- package/dist/cjs/components/forecast-sheet-dialog/index.js +92 -0
- package/dist/cjs/components/paste-special-dialog/index.d.ts +3 -3
- package/dist/cjs/components/paste-special-dialog/index.d.ts.map +1 -1
- package/dist/cjs/components/paste-special-dialog/index.js +61 -23
- package/dist/cjs/components/protect-sheet-dialog/allow-edit-ranges-dialog.d.ts +57 -0
- package/dist/cjs/components/protect-sheet-dialog/allow-edit-ranges-dialog.d.ts.map +1 -0
- package/dist/cjs/components/protect-sheet-dialog/allow-edit-ranges-dialog.js +196 -0
- package/dist/cjs/components/protect-sheet-dialog/constants.d.ts +3 -0
- package/dist/cjs/components/protect-sheet-dialog/constants.d.ts.map +1 -0
- package/dist/cjs/components/protect-sheet-dialog/constants.js +5 -0
- package/dist/cjs/components/protect-sheet-dialog/index.d.ts +2 -2
- package/dist/cjs/components/protect-sheet-dialog/index.d.ts.map +1 -1
- package/dist/cjs/components/protect-sheet-dialog/index.js +5 -3
- package/dist/cjs/components/scenario-manager-dialog/index.d.ts +51 -0
- package/dist/cjs/components/scenario-manager-dialog/index.d.ts.map +1 -0
- package/dist/cjs/components/scenario-manager-dialog/index.js +257 -0
- 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 +9 -4
- package/dist/cjs/components/selection/paste-menu.d.ts +14 -1
- package/dist/cjs/components/selection/paste-menu.d.ts.map +1 -1
- package/dist/cjs/components/selection/paste-menu.js +78 -6
- package/dist/cjs/components/selection/paste-options.d.ts +28 -0
- package/dist/cjs/components/selection/paste-options.d.ts.map +1 -0
- package/dist/cjs/components/selection/paste-options.js +70 -0
- package/dist/cjs/components/selection/types.d.ts +12 -1
- package/dist/cjs/components/selection/types.d.ts.map +1 -1
- package/dist/cjs/components/selection-drop-menu/index.d.ts +18 -0
- package/dist/cjs/components/selection-drop-menu/index.d.ts.map +1 -0
- package/dist/cjs/components/selection-drop-menu/index.js +62 -0
- package/dist/cjs/components/solver-dialog/index.d.ts +57 -0
- package/dist/cjs/components/solver-dialog/index.d.ts.map +1 -0
- package/dist/cjs/components/solver-dialog/index.js +204 -0
- package/dist/cjs/components/toolbar/sparkline-actions.d.ts +3 -2
- package/dist/cjs/components/toolbar/sparkline-actions.d.ts.map +1 -1
- package/dist/cjs/components/toolbar/sparkline-actions.js +6 -2
- package/dist/cjs/components/toolbar/table-style-selector.d.ts.map +1 -1
- package/dist/cjs/components/toolbar/table-style-selector.js +33 -2
- package/dist/cjs/config.d.ts +5 -4
- package/dist/cjs/config.d.ts.map +1 -1
- package/dist/cjs/config.js +13 -9
- package/dist/cjs/hooks/use-cell-renderer.d.ts +12 -1
- package/dist/cjs/hooks/use-cell-renderer.d.ts.map +1 -1
- package/dist/cjs/hooks/use-cell-renderer.js +6 -3
- package/dist/cjs/hooks/use-copy-paste-cut.d.ts +36 -2
- package/dist/cjs/hooks/use-copy-paste-cut.d.ts.map +1 -1
- package/dist/cjs/hooks/use-copy-paste-cut.js +131 -5
- package/dist/cjs/hooks/use-editable.d.ts +6 -0
- package/dist/cjs/hooks/use-editable.d.ts.map +1 -1
- package/dist/cjs/hooks/use-editor-submit.d.ts +45 -3
- package/dist/cjs/hooks/use-editor-submit.d.ts.map +1 -1
- package/dist/cjs/hooks/use-editor-submit.js +91 -7
- package/dist/cjs/hooks/use-keyboard-handler.d.ts +5 -1
- package/dist/cjs/hooks/use-keyboard-handler.d.ts.map +1 -1
- package/dist/cjs/hooks/use-keyboard-handler.js +10 -1
- package/dist/cjs/hooks/use-selection-drag-copy.d.ts +55 -0
- package/dist/cjs/hooks/use-selection-drag-copy.d.ts.map +1 -0
- package/dist/cjs/hooks/use-selection-drag-copy.js +274 -0
- package/dist/cjs/hooks/use-selection-renderer.d.ts +8 -1
- package/dist/cjs/hooks/use-selection-renderer.d.ts.map +1 -1
- package/dist/cjs/hooks/use-selection-renderer.js +7 -2
- package/dist/cjs/hooks/use-selection.d.ts +59 -1
- package/dist/cjs/hooks/use-selection.d.ts.map +1 -1
- package/dist/cjs/hooks/use-selection.js +270 -61
- package/dist/cjs/index.d.ts +6 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +5 -0
- package/dist/cjs/release-date.js +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/types.d.ts +50 -1
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/api/autocomplete.d.ts +42 -0
- package/dist/esm/api/autocomplete.d.ts.map +1 -0
- package/dist/esm/api/autocomplete.js +91 -0
- package/dist/esm/api/banded-ranges.d.ts.map +1 -1
- package/dist/esm/api/banded-ranges.js +52 -2
- package/dist/esm/api/error-checking.d.ts +82 -0
- package/dist/esm/api/error-checking.d.ts.map +1 -0
- package/dist/esm/api/error-checking.js +156 -0
- package/dist/esm/api/move-overwrite.d.ts +8 -2
- package/dist/esm/api/move-overwrite.d.ts.map +1 -1
- package/dist/esm/api/move-overwrite.js +17 -2
- package/dist/esm/api/selections.d.ts +2 -2
- package/dist/esm/api/validation.d.ts +39 -1
- package/dist/esm/api/validation.d.ts.map +1 -1
- package/dist/esm/api/validation.js +70 -0
- package/dist/esm/atoms/cell-input-context.atom.d.ts +4 -1
- package/dist/esm/atoms/cell-input-context.atom.d.ts.map +1 -1
- package/dist/esm/atoms/enter-key-direction.atom.d.ts +11 -0
- package/dist/esm/atoms/enter-key-direction.atom.d.ts.map +1 -0
- package/dist/esm/atoms/enter-key-direction.atom.js +8 -0
- package/dist/esm/atoms/index.d.ts +1 -0
- package/dist/esm/atoms/index.d.ts.map +1 -1
- package/dist/esm/atoms/index.js +1 -0
- package/dist/esm/atoms/paste-menu.atom.d.ts +22 -0
- package/dist/esm/atoms/paste-menu.atom.d.ts.map +1 -1
- package/dist/esm/atoms/paste-menu.atom.js +10 -1
- package/dist/esm/atoms/pick-list.atom.d.ts +15 -0
- package/dist/esm/atoms/pick-list.atom.d.ts.map +1 -0
- package/dist/esm/atoms/pick-list.atom.js +3 -0
- package/dist/esm/components/canvas-grid/index.d.ts.map +1 -1
- package/dist/esm/components/canvas-grid/index.js +239 -13
- package/dist/esm/components/canvas-grid/typings.d.ts +96 -11
- 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 +8 -9
- package/dist/esm/components/cell/typings.d.ts +9 -0
- package/dist/esm/components/cell/typings.d.ts.map +1 -1
- package/dist/esm/components/cell-editor/helpers.d.ts +22 -2
- package/dist/esm/components/cell-editor/helpers.d.ts.map +1 -1
- package/dist/esm/components/cell-editor/helpers.js +25 -7
- package/dist/esm/components/cell-editor/index.d.ts +7 -1
- package/dist/esm/components/cell-editor/index.d.ts.map +1 -1
- package/dist/esm/components/cell-editor/index.js +80 -9
- package/dist/esm/components/cell-indicator/index.d.ts +41 -0
- package/dist/esm/components/cell-indicator/index.d.ts.map +1 -0
- package/dist/esm/components/cell-indicator/index.js +76 -0
- package/dist/esm/components/cell-input/cell-input.d.ts +10 -2
- package/dist/esm/components/cell-input/cell-input.d.ts.map +1 -1
- package/dist/esm/components/cell-input/cell-input.js +5 -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 +9 -2
- package/dist/esm/components/cell-structured/sparkline-math.d.ts +27 -1
- package/dist/esm/components/cell-structured/sparkline-math.d.ts.map +1 -1
- package/dist/esm/components/cell-structured/sparkline-math.js +35 -0
- 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 +34 -88
- package/dist/esm/components/cell-structured/types.d.ts +6 -0
- package/dist/esm/components/cell-structured/types.d.ts.map +1 -1
- package/dist/esm/components/data-table-dialog/index.d.ts +22 -0
- package/dist/esm/components/data-table-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/data-table-dialog/index.js +75 -0
- package/dist/esm/components/error-check-smart-tag/index.d.ts +27 -0
- package/dist/esm/components/error-check-smart-tag/index.d.ts.map +1 -0
- package/dist/esm/components/error-check-smart-tag/index.js +33 -0
- package/dist/esm/components/forecast-sheet-dialog/index.d.ts +26 -0
- package/dist/esm/components/forecast-sheet-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/forecast-sheet-dialog/index.js +83 -0
- package/dist/esm/components/paste-special-dialog/index.d.ts +3 -3
- package/dist/esm/components/paste-special-dialog/index.d.ts.map +1 -1
- package/dist/esm/components/paste-special-dialog/index.js +58 -23
- package/dist/esm/components/protect-sheet-dialog/allow-edit-ranges-dialog.d.ts +57 -0
- package/dist/esm/components/protect-sheet-dialog/allow-edit-ranges-dialog.d.ts.map +1 -0
- package/dist/esm/components/protect-sheet-dialog/allow-edit-ranges-dialog.js +177 -0
- package/dist/esm/components/protect-sheet-dialog/constants.d.ts +3 -0
- package/dist/esm/components/protect-sheet-dialog/constants.d.ts.map +1 -0
- package/dist/esm/components/protect-sheet-dialog/constants.js +2 -0
- package/dist/esm/components/protect-sheet-dialog/index.d.ts +2 -2
- package/dist/esm/components/protect-sheet-dialog/index.d.ts.map +1 -1
- package/dist/esm/components/protect-sheet-dialog/index.js +3 -2
- package/dist/esm/components/scenario-manager-dialog/index.d.ts +51 -0
- package/dist/esm/components/scenario-manager-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/scenario-manager-dialog/index.js +213 -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 +9 -4
- package/dist/esm/components/selection/paste-menu.d.ts +14 -1
- package/dist/esm/components/selection/paste-menu.d.ts.map +1 -1
- package/dist/esm/components/selection/paste-menu.js +76 -8
- package/dist/esm/components/selection/paste-options.d.ts +28 -0
- package/dist/esm/components/selection/paste-options.d.ts.map +1 -0
- package/dist/esm/components/selection/paste-options.js +62 -0
- package/dist/esm/components/selection/types.d.ts +12 -1
- package/dist/esm/components/selection/types.d.ts.map +1 -1
- package/dist/esm/components/selection-drop-menu/index.d.ts +18 -0
- package/dist/esm/components/selection-drop-menu/index.d.ts.map +1 -0
- package/dist/esm/components/selection-drop-menu/index.js +56 -0
- package/dist/esm/components/solver-dialog/index.d.ts +57 -0
- package/dist/esm/components/solver-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/solver-dialog/index.js +176 -0
- package/dist/esm/components/toolbar/sparkline-actions.d.ts +3 -2
- package/dist/esm/components/toolbar/sparkline-actions.d.ts.map +1 -1
- package/dist/esm/components/toolbar/sparkline-actions.js +6 -2
- package/dist/esm/components/toolbar/table-style-selector.d.ts.map +1 -1
- package/dist/esm/components/toolbar/table-style-selector.js +29 -3
- package/dist/esm/config.d.ts +5 -4
- package/dist/esm/config.d.ts.map +1 -1
- package/dist/esm/config.js +12 -8
- package/dist/esm/hooks/use-cell-renderer.d.ts +12 -1
- package/dist/esm/hooks/use-cell-renderer.d.ts.map +1 -1
- package/dist/esm/hooks/use-cell-renderer.js +5 -2
- package/dist/esm/hooks/use-copy-paste-cut.d.ts +36 -2
- package/dist/esm/hooks/use-copy-paste-cut.d.ts.map +1 -1
- package/dist/esm/hooks/use-copy-paste-cut.js +117 -6
- package/dist/esm/hooks/use-editable.d.ts +6 -0
- package/dist/esm/hooks/use-editable.d.ts.map +1 -1
- package/dist/esm/hooks/use-editor-submit.d.ts +45 -3
- package/dist/esm/hooks/use-editor-submit.d.ts.map +1 -1
- package/dist/esm/hooks/use-editor-submit.js +81 -6
- package/dist/esm/hooks/use-keyboard-handler.d.ts +5 -1
- package/dist/esm/hooks/use-keyboard-handler.d.ts.map +1 -1
- package/dist/esm/hooks/use-keyboard-handler.js +10 -1
- package/dist/esm/hooks/use-selection-drag-copy.d.ts +55 -0
- package/dist/esm/hooks/use-selection-drag-copy.d.ts.map +1 -0
- package/dist/esm/hooks/use-selection-drag-copy.js +245 -0
- package/dist/esm/hooks/use-selection-renderer.d.ts +8 -1
- package/dist/esm/hooks/use-selection-renderer.d.ts.map +1 -1
- package/dist/esm/hooks/use-selection-renderer.js +7 -2
- package/dist/esm/hooks/use-selection.d.ts +59 -1
- package/dist/esm/hooks/use-selection.d.ts.map +1 -1
- package/dist/esm/hooks/use-selection.js +245 -52
- package/dist/esm/index.d.ts +6 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +5 -0
- package/dist/esm/release-date.js +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esm/types.d.ts +50 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/spreadsheet.min.css +1 -1
- package/package.json +6 -5
- package/dist/cjs/components/cell-error/index.d.ts +0 -14
- package/dist/cjs/components/cell-error/index.d.ts.map +0 -1
- package/dist/cjs/components/cell-error/index.js +0 -24
- package/dist/esm/components/cell-error/index.d.ts +0 -14
- package/dist/esm/components/cell-error/index.d.ts.map +0 -1
- package/dist/esm/components/cell-error/index.js +0 -18
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CellInterface, GridRange } from "@rowsncolumns/grid";
|
|
2
|
-
import type { BooleanCondition, CellData, ConditionType, ConditionValue, CustomFormulaResult, DataValidationRule, DataValidationRuleAlert, FilterCriteria, Maybe, ProtectedRange, SheetProtection, TimePeriodTypes } from "../types";
|
|
2
|
+
import type { AllowEditRange, BooleanCondition, CellData, ConditionType, ConditionValue, CustomFormulaResult, DataValidationRule, DataValidationRuleAlert, FilterCriteria, Maybe, ProtectedRange, SheetProtection, TimePeriodTypes } from "../types";
|
|
3
3
|
export type CheckBooleanRuleOptions = {
|
|
4
4
|
locale?: string;
|
|
5
5
|
};
|
|
@@ -50,6 +50,28 @@ export declare const showValidationDropdownArrow: (rule?: DataValidationRule | n
|
|
|
50
50
|
* @returns
|
|
51
51
|
*/
|
|
52
52
|
export declare const isProtectedCell: (sheetId: number, cell: CellInterface, protectedRanges: ProtectedRange[]) => boolean;
|
|
53
|
+
/**
|
|
54
|
+
* The Excel Allow Edit Range covering `cell` on `sheetId`, preferring one this
|
|
55
|
+
* session may already edit (no password, or unlocked). `undefined` when no
|
|
56
|
+
* range covers the cell.
|
|
57
|
+
*/
|
|
58
|
+
export declare const getAllowEditRangeAt: (sheetId: number, cell: CellInterface, allowEditRanges: Maybe<AllowEditRange[]> | undefined) => AllowEditRange | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* What worksheet protection lets a typed edit of `cell` do (Excel's rules):
|
|
61
|
+
* `"edit"` for an unprotected sheet, an unlocked cell or a cell of an open
|
|
62
|
+
* Allow Edit Range; `"locked"` for any other locked cell; `{ unlock }` for a
|
|
63
|
+
* cell of a password-protected range this session has not unlocked (Excel's
|
|
64
|
+
* Unlock Range prompt).
|
|
65
|
+
*/
|
|
66
|
+
export declare const resolveProtectedCellEdit: ({ sheetId, cell, sheetProtection, cellProtection, allowEditRanges, }: {
|
|
67
|
+
sheetId: number;
|
|
68
|
+
cell: CellInterface;
|
|
69
|
+
sheetProtection: Maybe<SheetProtection> | undefined;
|
|
70
|
+
cellProtection: Maybe<Pick<NonNullable<CellData["protection"]>, "locked">>;
|
|
71
|
+
allowEditRanges?: Maybe<AllowEditRange[]>;
|
|
72
|
+
}) => "edit" | "locked" | {
|
|
73
|
+
unlock: AllowEditRange;
|
|
74
|
+
};
|
|
53
75
|
/**
|
|
54
76
|
* Check if the entire sheet is protected
|
|
55
77
|
* @param sheetId
|
|
@@ -86,6 +108,22 @@ export declare const isActionBlockedBySheetProtection: (sheetProtection: Maybe<S
|
|
|
86
108
|
* protection is inactive.
|
|
87
109
|
*/
|
|
88
110
|
export declare const isCellLockedUnderProtection: (sheetProtection: Maybe<SheetProtection> | undefined, cellProtection: Maybe<Pick<NonNullable<CellData["protection"]>, "locked">>) => boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Past this many cells a selection on a sheet that refuses locked cells is
|
|
113
|
+
* refused without a per-cell scan (it would cover a locked default cell in
|
|
114
|
+
* practice — the engine's protection gate uses the same reasoning).
|
|
115
|
+
*/
|
|
116
|
+
export declare const SELECTABLE_SCAN_CELL_CAP = 100000;
|
|
117
|
+
/**
|
|
118
|
+
* Excel's "Select locked cells" / "Select unlocked cells" (support.microsoft.com
|
|
119
|
+
* "Protect a worksheet"): whether the selection may cover `range` on a sheet.
|
|
120
|
+
* Only an ACTIVE protection restricts anything. `selectUnlockedCells` set
|
|
121
|
+
* (`true` prohibits) means no cell can be selected — Excel clears both boxes
|
|
122
|
+
* together. `selectLockedCells` set means the range must hold only unlocked
|
|
123
|
+
* cells (`protection.locked === false`; a cell is locked by default). Absent
|
|
124
|
+
* flags take the OOXML schema default: allowed.
|
|
125
|
+
*/
|
|
126
|
+
export declare const isRangeSelectableUnderProtection: (sheetProtection: Maybe<SheetProtection> | undefined, range: GridRange, getCellProtection: (rowIndex: number, columnIndex: number) => Maybe<Pick<NonNullable<CellData["protection"]>, "locked">> | undefined) => boolean;
|
|
89
127
|
/**
|
|
90
128
|
* Whether a cell's contents are hidden from the formula bar: Excel's Format
|
|
91
129
|
* Cells ▸ Protection ▸ Hidden takes effect only while the sheet is protected.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../api/validation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../api/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.decideValidationCommit = exports.shouldUsePreviousValue = exports.getProtectedRange = exports.isProtectedRange = exports.isCellFormulaHiddenUnderProtection = exports.isCellLockedUnderProtection = exports.isActionBlockedBySheetProtection = exports.isSheetProtectionActive = exports.isProtectedSheet = exports.isProtectedCell = exports.showValidationDropdownArrow = exports.validationValueToDate = exports.passesAggregateFilterThreshold = exports.resolveAggregateFilterThreshold = exports.isAggregateFilterCondition = exports.AGGREGATE_FILTER_CONDITION_TYPES = exports.checkFilterCondition = exports.checkFilterRule = exports.checkBooleanRule = void 0;
|
|
3
|
+
exports.decideValidationCommit = exports.shouldUsePreviousValue = exports.getProtectedRange = exports.isProtectedRange = exports.isCellFormulaHiddenUnderProtection = exports.isRangeSelectableUnderProtection = exports.SELECTABLE_SCAN_CELL_CAP = exports.isCellLockedUnderProtection = exports.isActionBlockedBySheetProtection = exports.isSheetProtectionActive = exports.isProtectedSheet = exports.resolveProtectedCellEdit = exports.getAllowEditRangeAt = exports.isProtectedCell = exports.showValidationDropdownArrow = exports.validationValueToDate = exports.passesAggregateFilterThreshold = exports.resolveAggregateFilterThreshold = exports.isAggregateFilterCondition = exports.AGGREGATE_FILTER_CONDITION_TYPES = exports.checkFilterCondition = exports.checkFilterRule = exports.checkBooleanRule = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var grid_1 = require("@rowsncolumns/grid");
|
|
6
6
|
var utils_1 = require("@rowsncolumns/utils");
|
|
@@ -515,6 +515,54 @@ var isProtectedCell = function (sheetId, cell, protectedRanges) {
|
|
|
515
515
|
});
|
|
516
516
|
};
|
|
517
517
|
exports.isProtectedCell = isProtectedCell;
|
|
518
|
+
/**
|
|
519
|
+
* The Excel Allow Edit Range covering `cell` on `sheetId`, preferring one this
|
|
520
|
+
* session may already edit (no password, or unlocked). `undefined` when no
|
|
521
|
+
* range covers the cell.
|
|
522
|
+
*/
|
|
523
|
+
var getAllowEditRangeAt = function (sheetId, cell, allowEditRanges) {
|
|
524
|
+
var e_1, _a;
|
|
525
|
+
var found;
|
|
526
|
+
try {
|
|
527
|
+
for (var _b = tslib_1.__values(allowEditRanges !== null && allowEditRanges !== void 0 ? allowEditRanges : []), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
528
|
+
var range = _c.value;
|
|
529
|
+
if (range.sheetId !== sheetId)
|
|
530
|
+
continue;
|
|
531
|
+
if (!range.ranges.some(function (r) { return (0, grid_1.isCellWithinBounds)(cell, r); }))
|
|
532
|
+
continue;
|
|
533
|
+
if (range.unlocked)
|
|
534
|
+
return range;
|
|
535
|
+
found !== null && found !== void 0 ? found : (found = range);
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
539
|
+
finally {
|
|
540
|
+
try {
|
|
541
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
542
|
+
}
|
|
543
|
+
finally { if (e_1) throw e_1.error; }
|
|
544
|
+
}
|
|
545
|
+
return found;
|
|
546
|
+
};
|
|
547
|
+
exports.getAllowEditRangeAt = getAllowEditRangeAt;
|
|
548
|
+
/**
|
|
549
|
+
* What worksheet protection lets a typed edit of `cell` do (Excel's rules):
|
|
550
|
+
* `"edit"` for an unprotected sheet, an unlocked cell or a cell of an open
|
|
551
|
+
* Allow Edit Range; `"locked"` for any other locked cell; `{ unlock }` for a
|
|
552
|
+
* cell of a password-protected range this session has not unlocked (Excel's
|
|
553
|
+
* Unlock Range prompt).
|
|
554
|
+
*/
|
|
555
|
+
var resolveProtectedCellEdit = function (_a) {
|
|
556
|
+
var sheetId = _a.sheetId, cell = _a.cell, sheetProtection = _a.sheetProtection, cellProtection = _a.cellProtection, allowEditRanges = _a.allowEditRanges;
|
|
557
|
+
if (!(0, exports.isCellLockedUnderProtection)(sheetProtection, cellProtection)) {
|
|
558
|
+
return "edit";
|
|
559
|
+
}
|
|
560
|
+
var range = (0, exports.getAllowEditRangeAt)(sheetId, cell, allowEditRanges);
|
|
561
|
+
if (!range)
|
|
562
|
+
return "locked";
|
|
563
|
+
return range.unlocked ? "edit" : { unlock: range };
|
|
564
|
+
};
|
|
565
|
+
exports.resolveProtectedCellEdit = resolveProtectedCellEdit;
|
|
518
566
|
/**
|
|
519
567
|
* Check if the entire sheet is protected
|
|
520
568
|
* @param sheetId
|
|
@@ -570,6 +618,44 @@ var isCellLockedUnderProtection = function (sheetProtection, cellProtection) {
|
|
|
570
618
|
return (0, exports.isSheetProtectionActive)(sheetProtection) && (cellProtection === null || cellProtection === void 0 ? void 0 : cellProtection.locked) !== false;
|
|
571
619
|
};
|
|
572
620
|
exports.isCellLockedUnderProtection = isCellLockedUnderProtection;
|
|
621
|
+
/**
|
|
622
|
+
* Past this many cells a selection on a sheet that refuses locked cells is
|
|
623
|
+
* refused without a per-cell scan (it would cover a locked default cell in
|
|
624
|
+
* practice — the engine's protection gate uses the same reasoning).
|
|
625
|
+
*/
|
|
626
|
+
exports.SELECTABLE_SCAN_CELL_CAP = 100000;
|
|
627
|
+
/**
|
|
628
|
+
* Excel's "Select locked cells" / "Select unlocked cells" (support.microsoft.com
|
|
629
|
+
* "Protect a worksheet"): whether the selection may cover `range` on a sheet.
|
|
630
|
+
* Only an ACTIVE protection restricts anything. `selectUnlockedCells` set
|
|
631
|
+
* (`true` prohibits) means no cell can be selected — Excel clears both boxes
|
|
632
|
+
* together. `selectLockedCells` set means the range must hold only unlocked
|
|
633
|
+
* cells (`protection.locked === false`; a cell is locked by default). Absent
|
|
634
|
+
* flags take the OOXML schema default: allowed.
|
|
635
|
+
*/
|
|
636
|
+
var isRangeSelectableUnderProtection = function (sheetProtection, range, getCellProtection) {
|
|
637
|
+
var _a;
|
|
638
|
+
if (!(0, exports.isSheetProtectionActive)(sheetProtection))
|
|
639
|
+
return true;
|
|
640
|
+
if ((sheetProtection === null || sheetProtection === void 0 ? void 0 : sheetProtection.selectUnlockedCells) === true)
|
|
641
|
+
return false;
|
|
642
|
+
if ((sheetProtection === null || sheetProtection === void 0 ? void 0 : sheetProtection.selectLockedCells) !== true)
|
|
643
|
+
return true;
|
|
644
|
+
var rows = range.endRowIndex - range.startRowIndex + 1;
|
|
645
|
+
var columns = range.endColumnIndex - range.startColumnIndex + 1;
|
|
646
|
+
if (rows <= 0 || columns <= 0)
|
|
647
|
+
return true;
|
|
648
|
+
if (rows * columns > exports.SELECTABLE_SCAN_CELL_CAP)
|
|
649
|
+
return false;
|
|
650
|
+
for (var row = range.startRowIndex; row <= range.endRowIndex; row++) {
|
|
651
|
+
for (var column = range.startColumnIndex; column <= range.endColumnIndex; column++) {
|
|
652
|
+
if (((_a = getCellProtection(row, column)) === null || _a === void 0 ? void 0 : _a.locked) !== false)
|
|
653
|
+
return false;
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
return true;
|
|
657
|
+
};
|
|
658
|
+
exports.isRangeSelectableUnderProtection = isRangeSelectableUnderProtection;
|
|
573
659
|
/**
|
|
574
660
|
* Whether a cell's contents are hidden from the formula bar: Excel's Format
|
|
575
661
|
* Cells ▸ Protection ▸ Hidden takes effect only while the sheet is protected.
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
export declare const useCellInputContext: () => {
|
|
2
2
|
makeEditable: ((sheetId: number, cell: import("@rowsncolumns/grid").CellInterface, initialValue?: string, options?: import("../hooks/use-editable").MakeEditableOptions) => void) | undefined;
|
|
3
3
|
getNextFocusableCell: ((sheetId: number, currentCell: import("@rowsncolumns/grid").CellInterface, direction?: import("@rowsncolumns/grid").Direction, restrictWithinSelection?: boolean) => import("@rowsncolumns/grid").CellInterface | null) | undefined;
|
|
4
|
-
submitEditor: ((value: string, textFormatRuns: import("@rowsncolumns/common-types").TextFormatRun[] | undefined, sheetId: number, activeCell: import("@rowsncolumns/grid").CellInterface, nextActiveCell?: import("@rowsncolumns/grid").CellInterface | null | undefined
|
|
4
|
+
submitEditor: ((value: string, textFormatRuns: import("@rowsncolumns/common-types").TextFormatRun[] | undefined, sheetId: number, activeCell: import("@rowsncolumns/grid").CellInterface, nextActiveCell?: import("@rowsncolumns/grid").CellInterface | null | undefined, shouldFocusGrid?: boolean, options?: {
|
|
5
|
+
arrayFormula?: boolean;
|
|
6
|
+
fillSelection?: boolean;
|
|
7
|
+
}) => void) | undefined;
|
|
5
8
|
cancelEditor: ((e?: React.KeyboardEvent<HTMLDivElement>) => void) | undefined;
|
|
6
9
|
onEditorKeyDown: ((e: React.KeyboardEvent<HTMLDivElement>) => void) | undefined;
|
|
7
10
|
canEditCell: ((sheetId: number, cell: import("@rowsncolumns/grid").CellInterface) => boolean) | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell-input-context.atom.d.ts","sourceRoot":"","sources":["../../../atoms/cell-input-context.atom.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"cell-input-context.atom.d.ts","sourceRoot":"","sources":["../../../atoms/cell-input-context.atom.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,mBAAmB;;;;oBACohiF,CAAC;qBAAwB,CAAC;;;;;;;;;;;CAD//hF,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { EnterKeyDirection } from "../components/cell-editor/helpers";
|
|
2
|
+
/**
|
|
3
|
+
* The grid's `enterKeyDirection`, for the editors that commit on Enter outside its props (the
|
|
4
|
+
* in-cell editor a host supplies, the formula bar).
|
|
5
|
+
*/
|
|
6
|
+
export declare const enterKeyDirectionAtom: import("jotai").PrimitiveAtom<EnterKeyDirection> & {
|
|
7
|
+
init: EnterKeyDirection;
|
|
8
|
+
};
|
|
9
|
+
export declare const useEnterKeyDirection: () => EnterKeyDirection;
|
|
10
|
+
export declare const useSetEnterKeyDirection: () => (args_0: EnterKeyDirection | ((prev: EnterKeyDirection) => EnterKeyDirection)) => void;
|
|
11
|
+
//# sourceMappingURL=enter-key-direction.atom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enter-key-direction.atom.d.ts","sourceRoot":"","sources":["../../../atoms/enter-key-direction.atom.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;CAAkC,CAAC;AAErE,eAAO,MAAM,oBAAoB,yBAA4C,CAAC;AAC9E,eAAO,MAAM,uBAAuB,8FAA0C,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useSetEnterKeyDirection = exports.useEnterKeyDirection = exports.enterKeyDirectionAtom = void 0;
|
|
4
|
+
var jotai_1 = require("jotai");
|
|
5
|
+
/**
|
|
6
|
+
* The grid's `enterKeyDirection`, for the editors that commit on Enter outside its props (the
|
|
7
|
+
* in-cell editor a host supplies, the formula bar).
|
|
8
|
+
*/
|
|
9
|
+
exports.enterKeyDirectionAtom = (0, jotai_1.atom)("down");
|
|
10
|
+
var useEnterKeyDirection = function () { return (0, jotai_1.useAtomValue)(exports.enterKeyDirectionAtom); };
|
|
11
|
+
exports.useEnterKeyDirection = useEnterKeyDirection;
|
|
12
|
+
var useSetEnterKeyDirection = function () { return (0, jotai_1.useSetAtom)(exports.enterKeyDirectionAtom); };
|
|
13
|
+
exports.useSetEnterKeyDirection = useSetEnterKeyDirection;
|
|
@@ -13,6 +13,7 @@ export * from "./selected-chart-embed.atom";
|
|
|
13
13
|
export * from "./selected-chart-series.atom";
|
|
14
14
|
export * from "./popover.atom";
|
|
15
15
|
export * from "./paste-menu.atom";
|
|
16
|
+
export * from "./pick-list.atom";
|
|
16
17
|
export * from "./fill-options.atom";
|
|
17
18
|
export * from "./fill-series-dialog.atom";
|
|
18
19
|
export * from "./magic-fill-state.atom";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../atoms/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../atoms/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC"}
|
package/dist/cjs/atoms/index.js
CHANGED
|
@@ -18,6 +18,7 @@ tslib_1.__exportStar(require("./selected-chart-embed.atom"), exports);
|
|
|
18
18
|
tslib_1.__exportStar(require("./selected-chart-series.atom"), exports);
|
|
19
19
|
tslib_1.__exportStar(require("./popover.atom"), exports);
|
|
20
20
|
tslib_1.__exportStar(require("./paste-menu.atom"), exports);
|
|
21
|
+
tslib_1.__exportStar(require("./pick-list.atom"), exports);
|
|
21
22
|
tslib_1.__exportStar(require("./fill-options.atom"), exports);
|
|
22
23
|
tslib_1.__exportStar(require("./fill-series-dialog.atom"), exports);
|
|
23
24
|
tslib_1.__exportStar(require("./magic-fill-state.atom"), exports);
|
|
@@ -1,6 +1,28 @@
|
|
|
1
|
+
import type { PasteOptionId } from "../components/selection/paste-options";
|
|
1
2
|
export declare const showPasteMenuAtom: import("jotai").PrimitiveAtom<boolean> & {
|
|
2
3
|
init: boolean;
|
|
3
4
|
};
|
|
4
5
|
export declare const useShowPasteMenu: () => [boolean, (args_0: boolean | ((prev: boolean) => boolean)) => void];
|
|
5
6
|
export declare const useSetShowPasteMenu: () => (args_0: boolean | ((prev: boolean) => boolean)) => void;
|
|
7
|
+
/**
|
|
8
|
+
* The Paste Options button's state for the last paste: whether its gallery
|
|
9
|
+
* is open (a click, or Ctrl pressed alone after the paste), which gallery
|
|
10
|
+
* entry the paste currently stands as, and what the gallery may offer.
|
|
11
|
+
*/
|
|
12
|
+
export type PasteMenuState = {
|
|
13
|
+
open: boolean;
|
|
14
|
+
/** The gallery entry the last paste was applied as. */
|
|
15
|
+
active?: PasteOptionId;
|
|
16
|
+
/** The last paste can be re-applied in another mode (a copy, not a cut). */
|
|
17
|
+
canReapply: boolean;
|
|
18
|
+
/** Paste Link needs copied grid cells (not after a cut or a foreign clipboard). */
|
|
19
|
+
canLink: boolean;
|
|
20
|
+
};
|
|
21
|
+
export declare const DEFAULT_PASTE_MENU_STATE: PasteMenuState;
|
|
22
|
+
export declare const pasteMenuStateAtom: import("jotai").PrimitiveAtom<PasteMenuState> & {
|
|
23
|
+
init: PasteMenuState;
|
|
24
|
+
};
|
|
25
|
+
export declare const usePasteMenuState: () => [PasteMenuState, (args_0: PasteMenuState | ((prev: PasteMenuState) => PasteMenuState)) => void];
|
|
26
|
+
export declare const usePasteMenuStateValue: () => PasteMenuState;
|
|
27
|
+
export declare const useSetPasteMenuState: () => (args_0: PasteMenuState | ((prev: PasteMenuState) => PasteMenuState)) => void;
|
|
6
28
|
//# sourceMappingURL=paste-menu.atom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paste-menu.atom.d.ts","sourceRoot":"","sources":["../../../atoms/paste-menu.atom.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB;;CAAc,CAAC;AAE7C,eAAO,MAAM,gBAAgB,2EAAmC,CAAC;AACjE,eAAO,MAAM,mBAAmB,gEAAsC,CAAC"}
|
|
1
|
+
{"version":3,"file":"paste-menu.atom.d.ts","sourceRoot":"","sources":["../../../atoms/paste-menu.atom.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAE3E,eAAO,MAAM,iBAAiB;;CAAc,CAAC;AAE7C,eAAO,MAAM,gBAAgB,2EAAmC,CAAC;AACjE,eAAO,MAAM,mBAAmB,gEAAsC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,uDAAuD;IACvD,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,4EAA4E;IAC5E,UAAU,EAAE,OAAO,CAAC;IACpB,mFAAmF;IACnF,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,cAItC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;CAAiD,CAAC;AAEjF,eAAO,MAAM,iBAAiB,uGAAoC,CAAC;AACnE,eAAO,MAAM,sBAAsB,sBAAyC,CAAC;AAC7E,eAAO,MAAM,oBAAoB,qFAAuC,CAAC"}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useSetShowPasteMenu = exports.useShowPasteMenu = exports.showPasteMenuAtom = void 0;
|
|
3
|
+
exports.useSetPasteMenuState = exports.usePasteMenuStateValue = exports.usePasteMenuState = exports.pasteMenuStateAtom = exports.DEFAULT_PASTE_MENU_STATE = exports.useSetShowPasteMenu = exports.useShowPasteMenu = exports.showPasteMenuAtom = void 0;
|
|
4
4
|
var jotai_1 = require("jotai");
|
|
5
5
|
exports.showPasteMenuAtom = (0, jotai_1.atom)(false);
|
|
6
6
|
var useShowPasteMenu = function () { return (0, jotai_1.useAtom)(exports.showPasteMenuAtom); };
|
|
7
7
|
exports.useShowPasteMenu = useShowPasteMenu;
|
|
8
8
|
var useSetShowPasteMenu = function () { return (0, jotai_1.useSetAtom)(exports.showPasteMenuAtom); };
|
|
9
9
|
exports.useSetShowPasteMenu = useSetShowPasteMenu;
|
|
10
|
+
exports.DEFAULT_PASTE_MENU_STATE = {
|
|
11
|
+
open: false,
|
|
12
|
+
canReapply: false,
|
|
13
|
+
canLink: false,
|
|
14
|
+
};
|
|
15
|
+
exports.pasteMenuStateAtom = (0, jotai_1.atom)(exports.DEFAULT_PASTE_MENU_STATE);
|
|
16
|
+
var usePasteMenuState = function () { return (0, jotai_1.useAtom)(exports.pasteMenuStateAtom); };
|
|
17
|
+
exports.usePasteMenuState = usePasteMenuState;
|
|
18
|
+
var usePasteMenuStateValue = function () { return (0, jotai_1.useAtomValue)(exports.pasteMenuStateAtom); };
|
|
19
|
+
exports.usePasteMenuStateValue = usePasteMenuStateValue;
|
|
20
|
+
var useSetPasteMenuState = function () { return (0, jotai_1.useSetAtom)(exports.pasteMenuStateAtom); };
|
|
21
|
+
exports.useSetPasteMenuState = useSetPasteMenuState;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CellInterface } from "@rowsncolumns/grid";
|
|
2
|
+
/**
|
|
3
|
+
* Excel's Pick From Drop-down List (Alt+↓ on a cell with no list of its
|
|
4
|
+
* own): the column's entries the cell editor offers for `cell`.
|
|
5
|
+
*/
|
|
6
|
+
export type PickListRequest = {
|
|
7
|
+
sheetId: number;
|
|
8
|
+
cell: CellInterface;
|
|
9
|
+
entries: string[];
|
|
10
|
+
};
|
|
11
|
+
export declare const pickListAtom: import("jotai").PrimitiveAtom<PickListRequest | null> & {
|
|
12
|
+
init: PickListRequest | null;
|
|
13
|
+
};
|
|
14
|
+
export declare const usePickList: () => [PickListRequest | null, (args_0: PickListRequest | ((prev: PickListRequest | null) => PickListRequest | null) | null) => void];
|
|
15
|
+
//# sourceMappingURL=pick-list.atom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pick-list.atom.d.ts","sourceRoot":"","sources":["../../../atoms/pick-list.atom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,YAAY;;CAAqC,CAAC;AAE/D,eAAO,MAAM,WAAW,uIAA8B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.usePickList = exports.pickListAtom = void 0;
|
|
4
|
+
var jotai_1 = require("jotai");
|
|
5
|
+
exports.pickListAtom = (0, jotai_1.atom)(null);
|
|
6
|
+
var usePickList = function () { return (0, jotai_1.useAtom)(exports.pickListAtom); };
|
|
7
|
+
exports.usePickList = usePickList;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/canvas-grid/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/canvas-grid/index.tsx"],"names":[],"mappings":"AAwDA,OAAO,KASN,MAAM,OAAO,CAAC;AA4Of,OAAO,KAAK,EAGV,QAAQ,EAWT,MAAM,aAAa,CAAC;AAyBrB,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EAEhB,MAAM,WAAW,CAAC;AAqgNnB,eAAO,MAAM,UAAU,EAA4C,CACjE,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,EAEvB,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GACvB,wBAAwB,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,KAChE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC"}
|