@gridsheet/react-core 3.0.6 → 3.0.7
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/components/CellStateOverlay.d.ts.map +1 -1
- package/dist/components/GridSheet.d.ts.map +1 -1
- package/dist/components/StoreObserver.d.ts +3 -1
- package/dist/components/StoreObserver.d.ts.map +1 -1
- package/dist/{hooks-CcD8I6FA.mjs → hooks-CvkA2lFB.mjs} +403 -364
- package/dist/hooks-CvkA2lFB.mjs.map +1 -0
- package/dist/index.js +852 -835
- package/dist/index.js.map +1 -1
- package/dist/spellbook.js +1 -1
- package/dist/store/actions.d.ts.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/hooks-CcD8I6FA.mjs.map +0 -1
package/dist/spellbook.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { allFunctions as i } from "@gridsheet/functions";
|
|
2
2
|
import { createBook as n } from "@gridsheet/core";
|
|
3
|
-
import { U as e } from "./hooks-
|
|
3
|
+
import { U as e } from "./hooks-CvkA2lFB.mjs";
|
|
4
4
|
const s = ({ additionalFunctions: o, ...t } = {}) => e({ ...t, additionalFunctions: { ...i, ...o } }), c = ({ additionalFunctions: o, ...t } = {}) => n({ ...t, additionalFunctions: { ...i, ...o } });
|
|
5
5
|
export {
|
|
6
6
|
c as createSpellbook,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/store/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,EAIT,YAAY,EAEZ,WAAW,EACX,YAAY,EACZ,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAaxC,KAAK,iBAAiB,GAAG,SAAS,GAAG;IACnC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,OAAO,SAAS,EAAE,QAAQ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,KAAG,SAkCjF,CAAC;AAEF,qBAAa,UAAU,CAAC,CAAC;IACvB,MAAM,CAAC,IAAI,SAAK;IAChB,OAAO,CAAC,QAAQ,CAAa;IAC7B,2EAA2E;IACpE,QAAQ,UAAS;IAEjB,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,iBAAiB;IAGvD,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE;IAM5C,IAAI,cANU,CAAC,KAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE;CAWpD;AAED,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,OAE/C,CAAC;AAgBF,eAAO,MAAM,cAAc;UAhCQ,MAAM;;CAgCsB,CAAC;AAgBhE,eAAO,MAAM,sBAAsB;UAhDA,MAAM;;CAgDsC,CAAC;AAgBhF,eAAO,MAAM,cAAc;UAhEQ,MAAM;;CAgEsB,CAAC;AAgBhE,eAAO,MAAM,cAAc;UAhFQ,MAAM;;CAgFsB,CAAC;AAUhE,eAAO,MAAM,iBAAiB;UA1FK,MAAM;;CA0F4B,CAAC;AAUtE,eAAO,MAAM,qBAAqB;UApGC,MAAM;;CAoGoC,CAAC;AAoB9E,eAAO,MAAM,cAAc;UAxHQ,MAAM;;CAwHsB,CAAC;AAUhE,eAAO,MAAM,sBAAsB;UAlIA,MAAM;;CAkIsC,CAAC;AAUhF,eAAO,MAAM,oBAAoB;UA5IE,MAAM;;CA4IkC,CAAC;AAU5E,eAAO,MAAM,oBAAoB;UAtJE,MAAM;;CAsJkC,CAAC;AAU5E,eAAO,MAAM,WAAW;UAhKW,MAAM;;CAgKgB,CAAC;AAY1D,eAAO,MAAM,WAAW;UA5KW,MAAM;;CA4KgB,CAAC;AAU1D,eAAO,MAAM,aAAa;UAtLS,MAAM;;CAsLoB,CAAC;AAU9D,eAAO,MAAM,WAAW;UAhMW,MAAM;;CAgMU,CAAC;AAUpD,eAAO,MAAM,IAAI;UA1MkB,MAAM;;CA0ME,CAAC;AAqB5C,eAAO,MAAM,IAAI;UA/NkB,MAAM;;CA+NE,CAAC;AAsB5C,eAAO,MAAM,GAAG;UArPmB,MAAM;;CAqPA,CAAC;AAuJ1C,eAAO,MAAM,KAAK;YArJoB,WAAW,EAAE,EAAE;eAAa,OAAO;;UAvPtC,MAAM;;gBAuPH,WAAW,EAAE,EAAE;mBAAa,OAAO;;CAqJ5B,CAAC;AAmB9C,eAAO,MAAM,MAAM;UA/ZgB,MAAM;;CA+ZM,CAAC;AAWhD,eAAO,MAAM,MAAM;UA1agB,MAAM;;CA0aM,CAAC;AAYhD,eAAO,MAAM,MAAM;UAtbgB,MAAM;;CAsbM,CAAC;AAgChD,eAAO,MAAM,UAAU;WA9BmB,SAAS;aAAW,MAAM;;UAxbjC,MAAM;;eAwbC,SAAS;iBAAW,MAAM;;CA8Bb,CAAC;AAiCxD,eAAO,MAAM,UAAU;WA/BmB,SAAS;aAAW,MAAM;;UAxdjC,MAAM;;eAwdC,SAAS;iBAAW,MAAM;;CA+Bb,CAAC;AAkBxD,eAAO,MAAM,IAAI;UAzgBkB,MAAM;;CAygBE,CAAC;AAoB5C,eAAO,MAAM,MAAM;UA7hBgB,MAAM;;CA6hBM,CAAC;AAwChD,eAAO,MAAM,KAAK;WAtCmB,MAAM;YAAU,SAAS;;UA/hB3B,MAAM;;eA+hBJ,MAAM;gBAAU,SAAS;;CAsCjB,CAAC;AAkE9C,eAAO,MAAM,KAAK;UAvoBiB,MAAM;;CAuoBI,CAAC;AA4C9C,eAAO,MAAM,IAAI;UAnrBkB,MAAM;;CAmrBE,CAAC;AA4C5C,eAAO,MAAM,IAAI;UA/tBkB,MAAM;;CA+tBE,CAAC;AAsF5C,eAAO,MAAM,KAAK;cAlFJ,OAAO;YACT,MAAM;YACN,MAAM;aACL,MAAM;aACN,MAAM;;UAvuBgB,MAAM;;kBAmuB3B,OAAO;gBACT,MAAM;gBACN,MAAM;iBACL,MAAM;iBACN,MAAM;;CA8E0B,CAAC;AAmH9C,eAAO,MAAM,IAAI;YA/GL,MAAM;YACN,MAAM;aACL,MAAM;aACN,MAAM;;UA5zBgB,MAAM;;gBAyzB7B,MAAM;gBACN,MAAM;iBACL,MAAM;iBACN,MAAM;;CA4GwB,CAAC;AAW5C,eAAO,MAAM,YAAY;UAn7BU,MAAM;;CAm7BkB,CAAC;AAiC5D,eAAO,MAAM,eAAe;aA/BqB,MAAM;OAAK,MAAM;eAAa,YAAY;;UAr7BxD,MAAM;;iBAq7BQ,MAAM;WAAK,MAAM;mBAAa,YAAY;;CA+B1B,CAAC;AA0ClE,eAAO,MAAM,eAAe;aAxCqB,MAAM;OAAK,MAAM;eAAa,YAAY;;UAt9BxD,MAAM;;iBAs9BQ,MAAM;WAAK,MAAM;mBAAa,YAAY;;CAwC1B,CAAC;AAkClE,eAAO,MAAM,cAAc;aAhCqB,MAAM;OAAK,MAAM;eAAa,YAAY;;UAhgCvD,MAAM;;iBAggCO,MAAM;WAAK,MAAM;mBAAa,YAAY;;CAgC3B,CAAC;AA6ChE,eAAO,MAAM,eAAe;aA3CqB,MAAM;OAAK,MAAM;eAAa,YAAY;;UAliCxD,MAAM;;iBAkiCQ,MAAM;WAAK,MAAM;mBAAa,YAAY;;CA2C1B,CAAC;
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/store/actions.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -6,8 +6,8 @@ export type Policies = {
|
|
|
6
6
|
[s: string]: PolicyType;
|
|
7
7
|
};
|
|
8
8
|
export type OptionsType = {
|
|
9
|
-
sheetHeight?: number;
|
|
10
|
-
sheetWidth?: number;
|
|
9
|
+
sheetHeight?: number | string;
|
|
10
|
+
sheetWidth?: number | string;
|
|
11
11
|
sheetResize?: CSSProperties['resize'];
|
|
12
12
|
editingOnEnter?: boolean;
|
|
13
13
|
showFormulaBar?: boolean;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,YAAY,EACV,iBAAiB,EACjB,OAAO,EACP,UAAU,EACV,CAAC,EACD,CAAC,EACD,MAAM,EACN,KAAK,EACL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,UAAU,EACV,MAAM,EACN,qBAAqB,EACrB,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,EACT,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,EAAE,EACF,GAAG,EACH,QAAQ,EACR,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC1G,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACjH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,MAAM,QAAQ,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAAC;AAEnD,MAAM,MAAM,WAAW,GAAG;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gridsheet/react-core",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.7",
|
|
4
4
|
"description": "Spreadsheet component for React",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -64,10 +64,10 @@
|
|
|
64
64
|
"typescript": "^5.8.2",
|
|
65
65
|
"vite": "^6.2.2",
|
|
66
66
|
"vite-plugin-dts": "^4.5.3",
|
|
67
|
-
"@gridsheet/functions": "3.0.
|
|
67
|
+
"@gridsheet/functions": "3.0.7"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@gridsheet/core": "3.0.
|
|
70
|
+
"@gridsheet/core": "3.0.7"
|
|
71
71
|
},
|
|
72
72
|
"peerDependencies": {
|
|
73
73
|
"react": ">=16.9.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-CcD8I6FA.mjs","sources":["../src/store/helpers.ts","../src/store/actions.ts","../src/lib/hooks.ts"],"sourcesContent":["import { a2p, x2c, y2r } from '@gridsheet/core';\nimport { Sheet } from '@gridsheet/core';\nimport type { Address, PointType, StorePatchType, StoreType } from '../types';\n\n/**\n * Strip redundant fields from a StorePatchType before recording in history.\n * - selectingZone with endY === -1 && endX === -1 is a no-selection sentinel and need not be stored.\n */\nexport const compactReflection = (reflection: StorePatchType): StorePatchType => {\n const result = { ...reflection };\n if (result.selectingZone != null && result.selectingZone.endY === -1 && result.selectingZone.endX === -1) {\n delete result.selectingZone;\n }\n return result;\n};\n\nexport const restrictPoints = (store: StoreType, sheet: Sheet) => {\n const { choosing, selectingZone } = store;\n let { y, x } = choosing;\n let { startY: y1, startX: x1, endY: y2, endX: x2 } = selectingZone;\n const [numRows, numCols] = [sheet.numRows, sheet.numCols];\n if (y > numRows) {\n y = numRows;\n }\n if (x > numCols) {\n x = numCols;\n }\n if (y1 > numRows) {\n y1 = numRows;\n }\n if (y2 > numRows) {\n y2 = numRows;\n }\n if (x1 > numCols) {\n x1 = numCols;\n }\n if (x2 > numCols) {\n x2 = numCols;\n }\n return {\n choosing: { y, x } as PointType,\n selectingZone: { startY: y1, startX: x1, endY: y2, endX: x2 },\n };\n};\n\nconst FLASH_CLASS = 'gs-flash-overlay--active';\nconst FLASH_DURATION_MS = 600;\nexport const flashSheet = (el: HTMLElement | null) => {\n if (!el) {\n return;\n }\n el.classList.remove(FLASH_CLASS);\n // force reflow to restart animation when called consecutively\n void el.offsetWidth;\n el.classList.add(FLASH_CLASS);\n setTimeout(() => el.classList.remove(FLASH_CLASS), FLASH_DURATION_MS);\n};\n\nexport const flashWithCallback = (\n store: StoreType,\n sheet: Sheet,\n callback: ((s: StoreType) => void) | undefined,\n): StoreType & { callback?: (store: StoreType) => void } => ({\n ...store,\n sheetReactive: { current: sheet },\n callback: (s: StoreType) => {\n callback?.(s);\n flashSheet(store.flashRef.current);\n },\n});\n\nexport const initSearchStatement = (sheet: Sheet, store: StoreType) => {\n const { searchQuery, searchCaseSensitive, searchRegex, searchRange } = store;\n let { choosing } = store;\n if (!searchQuery) {\n return { matchingCells: [] };\n }\n const matchingCells: Address[] = [];\n\n let matcher: (value: string) => boolean;\n if (searchRegex) {\n try {\n const flags = searchCaseSensitive ? '' : 'i';\n const regex = new RegExp(searchQuery, flags);\n matcher = (v: string) => regex.test(v);\n } catch (e) {\n // Invalid regex, treat as literal string\n const q = searchCaseSensitive ? searchQuery : searchQuery.toLowerCase();\n matcher = (v: string) => {\n const s = searchCaseSensitive ? v : v.toLowerCase();\n return s.indexOf(q) !== -1;\n };\n }\n } else {\n const q = searchCaseSensitive ? searchQuery : searchQuery.toLowerCase();\n matcher = (v: string) => {\n const s = searchCaseSensitive ? v : v.toLowerCase();\n return s.indexOf(q) !== -1;\n };\n }\n\n // Determine search range\n let startY = 1,\n endY = sheet.bottom;\n let startX = 1,\n endX = sheet.right;\n if (searchRange) {\n startY = searchRange.startY;\n endY = searchRange.endY;\n startX = searchRange.startX;\n endX = searchRange.endX;\n }\n\n for (let y = startY; y <= endY; y++) {\n for (let x = startX; x <= endX; x++) {\n const v = sheet.getSerializedValue({ point: { y, x } });\n if (matcher(v)) {\n matchingCells.push(`${x2c(x)}${y2r(y)}`);\n }\n }\n }\n const matchingCellIndex = matchingCells.length === store.matchingCells.length ? store.matchingCellIndex : 0;\n if (matchingCells.length > 0) {\n const address = matchingCells[matchingCellIndex];\n choosing = a2p(address);\n }\n return { matchingCells, searchQuery, matchingCellIndex, choosing };\n};\n\nexport const isXSheetFocused = (store: StoreType) => {\n const { sheetId, sheetReactive: sheetRef } = store;\n const sheet = sheetRef.current;\n if (!sheet) {\n return false;\n }\n if (sheetId === sheet.registry.editingSheetId) {\n return false;\n }\n return !!sheet.registry.editingAddress;\n};\n","import {\n StoreType,\n RectType,\n ZoneType,\n PointType,\n RangeType,\n FeedbackType,\n CellsByAddressType,\n AreaType,\n PositionType,\n ModeType,\n RawCellType,\n OperatorType,\n FilterConfig,\n} from '../types';\nimport { zoneToArea, superposeArea, matrixShape, areaShape, areaDiff, areaToZone, restrictZone } from '@gridsheet/core';\nimport { Sheet } from '@gridsheet/core';\n\nimport { p2a, a2p } from '@gridsheet/core';\nimport { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '@gridsheet/core';\nimport { initSearchStatement, restrictPoints, flashSheet, flashWithCallback, compactReflection } from './helpers';\nimport { smartScroll } from '@gridsheet/core';\nimport { operations as prevention } from '@gridsheet/core';\nimport { Autofill } from '@gridsheet/core';\n\nconst resetZone: ZoneType = { startY: -1, startX: -1, endY: -1, endX: -1 };\n\nconst actions: { [s: string]: CoreAction<any> } = {};\n\ntype StoreWithCallback = StoreType & {\n callback?: (store: StoreType) => void;\n};\n\nexport const reducer = <T>(store: StoreType, action: { type: number; value: T }): StoreType => {\n const act: CoreAction<T> | undefined = actions[action.type];\n if (act == null) {\n return store;\n }\n\n // React StrictMode calls reducers twice per dispatch to detect side effects.\n // Since Sheet is a mutable object, the second call re-applies operations (double undo, etc.).\n // Guard: React passes the SAME action object reference to both calls, so we use object identity\n // to distinguish a StrictMode second-call (same reference) from a new dispatch (new reference).\n // Using a Map allows multiple batched dispatches to each have their own cached result,\n // preventing the single-slot cache from being overwritten when actions are processed together.\n const registry = store.sheetReactive.current?.registry;\n if (registry?._strictModeCache?.has(action)) {\n const cached = registry._strictModeCache.get(action) as StoreType;\n registry._strictModeCache.delete(action);\n return cached;\n }\n\n const { callback, ...newStore } = act.reduce(store, action.value);\n callback?.(newStore);\n const result = { ...store, ...newStore };\n\n if (registry) {\n if (!registry._strictModeCache) {\n registry._strictModeCache = new Map();\n }\n registry._strictModeCache.set(action, result);\n queueMicrotask(() => {\n registry._strictModeCache?.delete(action);\n });\n }\n\n return result;\n};\n\nexport class CoreAction<T> {\n static head = 1;\n private actionId: number = 1;\n /** Whether this action mutates sheet data (triggers loading indicator). */\n public mutation = false;\n\n public reduce(store: StoreType, payload: T): StoreWithCallback {\n return store;\n }\n public call(payload: T): { type: number; value: T } {\n return {\n type: this.actionId,\n value: payload,\n };\n }\n public bind() {\n this.actionId = CoreAction.head++;\n actions[this.actionId] = this;\n return this.call.bind(this);\n }\n}\n\n/** Returns true if the given action type is a mutation (heavy operation). */\nexport const isMutationAction = (type: number): boolean => {\n return actions[type]?.mutation === true;\n};\n\nclass SetSearchQueryAction<T extends string | undefined> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const searchQuery = payload;\n const { sheetReactive: sheetRef } = store;\n if (sheetRef.current == null) {\n return store;\n }\n return {\n ...store,\n ...initSearchStatement(sheetRef.current, { ...store, searchQuery }),\n searchQuery,\n };\n }\n}\nexport const setSearchQuery = new SetSearchQueryAction().bind();\n\nclass SetSearchCaseSensitiveAction<T extends boolean> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const searchCaseSensitive = payload;\n const { sheetReactive: sheetRef } = store;\n if (sheetRef.current == null) {\n return store;\n }\n return {\n ...store,\n ...initSearchStatement(sheetRef.current, { ...store, searchCaseSensitive }),\n searchCaseSensitive,\n };\n }\n}\nexport const setSearchCaseSensitive = new SetSearchCaseSensitiveAction().bind();\n\nclass SetSearchRegexAction<T extends boolean> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const searchRegex = payload;\n const { sheetReactive: sheetRef } = store;\n if (sheetRef.current == null) {\n return store;\n }\n return {\n ...store,\n ...initSearchStatement(sheetRef.current, { ...store, searchRegex }),\n searchRegex,\n };\n }\n}\nexport const setSearchRegex = new SetSearchRegexAction().bind();\n\nclass SetSearchRangeAction<T extends ZoneType | undefined> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const searchRange = payload;\n const { sheetReactive: sheetRef } = store;\n if (sheetRef.current == null) {\n return store;\n }\n return {\n ...store,\n ...initSearchStatement(sheetRef.current, { ...store, searchRange }),\n searchRange,\n };\n }\n}\nexport const setSearchRange = new SetSearchRangeAction().bind();\n\nclass SetEditingAddressAction<T extends string> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n return {\n ...store,\n editingAddress: payload,\n };\n }\n}\nexport const setEditingAddress = new SetEditingAddressAction().bind();\n\nclass SetAutofillDraggingToAction<T extends PointType | null> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n return {\n ...store,\n autofillDraggingTo: payload,\n };\n }\n}\nexport const setAutofillDraggingTo = new SetAutofillDraggingToAction().bind();\n\nclass SubmitAutofillAction<T extends PointType> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const autofill = new Autofill(store, payload);\n const sheet = autofill.applied;\n const selectingZone = areaToZone(autofill.wholeArea);\n\n return {\n ...store,\n sheetReactive: { current: sheet },\n ...initSearchStatement(sheet, store),\n ...restrictPoints(store, sheet),\n selectingZone,\n leftHeaderSelecting: false,\n topHeaderSelecting: false,\n autofillDraggingTo: null,\n };\n }\n}\nexport const submitAutofill = new SubmitAutofillAction().bind();\n\nclass SetContextMenuPositionAction<T extends PositionType> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n return {\n ...store,\n contextMenuPosition: payload,\n };\n }\n}\nexport const setContextMenuPosition = new SetContextMenuPositionAction().bind();\n\nclass SetResizingPositionYAction<T extends [number, number, number]> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n return {\n ...store,\n resizingPositionY: payload,\n };\n }\n}\nexport const setResizingPositionY = new SetResizingPositionYAction().bind();\n\nclass SetResizingPositionXAction<T extends [number, number, number]> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n return {\n ...store,\n resizingPositionX: payload,\n };\n }\n}\nexport const setResizingPositionX = new SetResizingPositionXAction().bind();\n\nclass SetEnteringAction<T extends boolean> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n return {\n ...store,\n entering: payload,\n };\n }\n}\nexport const setEntering = new SetEnteringAction().bind();\n\nclass UpdateSheetAction<T extends Sheet> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n return {\n ...store,\n sheetReactive: { current: payload },\n ...initSearchStatement(payload, store),\n ...restrictPoints(store, payload),\n };\n }\n}\nexport const updateSheet = new UpdateSheetAction().bind();\n\nclass SetEditorRectAction<T extends RectType> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n return {\n ...store,\n editorRect: payload,\n };\n }\n}\nexport const setEditorRect = new SetEditorRectAction().bind();\n\nclass SetDragging<T extends boolean> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n return {\n ...store,\n dragging: payload,\n };\n }\n}\nexport const setDragging = new SetDragging().bind();\n\nclass BlurAction<T extends null> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n return {\n ...store,\n editingAddress: '',\n };\n }\n}\nexport const blur = new BlurAction().bind();\n\nclass CopyAction<T extends ZoneType> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { sheetReactive: sheetRef } = store;\n const sheet = sheetRef.current;\n if (!sheet) {\n return store;\n }\n return {\n ...store,\n callback: ({ sheetReactive: sheetRef }) => {\n sheet.registry.transmit({\n copyingSheetId: sheet.id,\n copyingZone: payload,\n cutting: false,\n });\n },\n };\n }\n}\nexport const copy = new CopyAction().bind();\n\nclass CutAction<T extends ZoneType> extends CoreAction<T> {\n mutation = true;\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { sheetReactive: sheetRef } = store;\n const sheet = sheetRef.current;\n if (!sheet) {\n return store;\n }\n return {\n ...store,\n callback: ({ sheetReactive: sheetRef }) => {\n sheet.registry.transmit({\n copyingSheetId: sheet.id,\n copyingZone: payload,\n cutting: true,\n });\n },\n };\n }\n}\nexport const cut = new CutAction().bind();\n\nclass PasteAction<T extends { matrix: RawCellType[][]; onlyValue: boolean }> extends CoreAction<T> {\n mutation = true;\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { choosing, selectingZone, sheetReactive: dstSheetRef } = store;\n const dstSheet = dstSheetRef.current;\n if (!dstSheet) {\n return store;\n }\n const { registry } = dstSheet;\n const { copyingSheetId, copyingZone, cutting } = registry;\n const srcSheet = dstSheet.getSheetBySheetId(copyingSheetId);\n\n let selectingArea = zoneToArea(selectingZone);\n const copyingArea = zoneToArea(copyingZone);\n const { matrix, onlyValue } = payload;\n\n if (cutting) {\n if (!srcSheet) {\n return store;\n }\n const src = copyingArea;\n const { rows: dy, cols: dx } = areaDiff(copyingArea);\n const dst: AreaType =\n selectingArea.top !== -1\n ? {\n top: selectingArea.top,\n left: selectingArea.left,\n bottom: selectingArea.top + dy,\n right: selectingArea.left + dx,\n }\n : {\n top: choosing.y,\n left: choosing.x,\n bottom: choosing.y + dy,\n right: choosing.x + dx,\n };\n\n const nextSelectingZone = restrictZone(areaToZone(dst));\n const newSheet = dstSheet.move({\n srcSheet,\n src,\n dst,\n operator: 'USER',\n undoReflection: compactReflection({\n sheetId: srcSheet.id,\n selectingZone: nextSelectingZone,\n choosing,\n transmit: { copyingSheetId: srcSheet.id, copyingZone, cutting: true },\n }),\n redoReflection: compactReflection({\n sheetId: srcSheet.id,\n choosing,\n transmit: { copyingSheetId: srcSheet.id, copyingZone: resetZone },\n }),\n });\n\n return {\n ...store,\n ...initSearchStatement(newSheet, store),\n sheetReactive: { current: newSheet },\n selectingZone: nextSelectingZone,\n inputting: newSheet.getSerializedValue({ point: choosing, resolution: 'RAW' }),\n callback: ({ sheetReactive: sheetRef }) => {\n registry.transmit({\n cutting: false,\n copyingZone: resetZone,\n });\n },\n };\n }\n\n let newSheet: Sheet;\n let { y, x } = choosing;\n\n if (copyingArea.top === -1) {\n const { rows: height, cols: width } = matrixShape({ matrix, base: -1 });\n selectingArea = {\n top: y,\n left: x,\n bottom: y + height,\n right: x + width,\n };\n const nextSelectingZone = restrictZone(areaToZone(selectingArea));\n newSheet = dstSheet.writeRawCellMatrix({\n point: { y, x },\n matrix,\n onlyValue,\n undoReflection: compactReflection({\n sheetId: dstSheet.id,\n selectingZone: nextSelectingZone,\n choosing,\n }),\n redoReflection: compactReflection({\n sheetId: dstSheet.id,\n selectingZone: nextSelectingZone,\n choosing,\n }),\n });\n } else {\n if (srcSheet == null) {\n return store;\n }\n let { rows: dy, cols: dx } = areaDiff(copyingArea);\n if (selectingArea.top !== -1) {\n y = selectingArea.top;\n x = selectingArea.left;\n const superposed = superposeArea(selectingArea, copyingArea);\n dy = superposed.rows;\n dx = superposed.cols;\n }\n selectingArea = { top: y, left: x, bottom: y + dy, right: x + dx };\n newSheet = dstSheet.copy({\n srcSheet,\n src: copyingArea,\n dst: selectingArea,\n onlyValue,\n operator: 'USER',\n undoReflection: compactReflection({\n sheetId: srcSheet.id,\n transmit: { copyingZone },\n choosing,\n selectingZone,\n }),\n redoReflection: compactReflection({\n sheetId: srcSheet.id,\n transmit: { copyingSheetId: srcSheet.id, copyingZone: resetZone },\n choosing,\n selectingZone: areaToZone(selectingArea),\n }),\n });\n }\n\n const nextSelectingZone = restrictZone(areaToZone(selectingArea));\n nextSelectingZone.endX = Math.min(nextSelectingZone.endX, newSheet.numCols);\n nextSelectingZone.endY = Math.min(nextSelectingZone.endY, newSheet.numRows);\n return {\n ...store,\n sheetReactive: { current: newSheet },\n selectingZone: nextSelectingZone,\n inputting: newSheet.getSerializedValue({ point: choosing, resolution: 'RAW' }),\n ...initSearchStatement(newSheet, store),\n callback: ({ sheetReactive: sheetRef }) => {\n registry.transmit({\n copyingZone: resetZone,\n });\n },\n };\n }\n}\nexport const paste = new PasteAction().bind();\n\nclass EscapeAction<T extends null> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { sheetReactive: sheetRef } = store;\n return {\n ...store,\n editingAddress: '',\n leftHeaderSelecting: false,\n topHeaderSelecting: false,\n callback: ({ sheetReactive: sheetRef }) => {\n sheetRef.current!.registry.transmit({\n copyingZone: resetZone,\n cutting: false,\n });\n },\n };\n }\n}\nexport const escape = new EscapeAction().bind();\n\nclass ChooseAction<T extends PointType> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n return {\n ...store,\n choosing: payload,\n entering: true,\n };\n }\n}\nexport const choose = new ChooseAction().bind();\n\nclass SelectAction<T extends ZoneType> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n return {\n ...store,\n selectingZone: payload,\n leftHeaderSelecting: false,\n topHeaderSelecting: false,\n };\n }\n}\nexport const select = new SelectAction().bind();\n\nclass SelectRowsAction<T extends { range: RangeType; numCols: number }> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { range, numCols } = payload;\n const { start, end } = range;\n const sheet = store.sheetReactive.current;\n const selectingZone = {\n startY: start,\n startX: 1,\n endY: end,\n endX: numCols,\n };\n // Find the first non-filtered row in the selection for choosing\n let choosingY = start;\n if (sheet) {\n for (let y = start; y <= end; y++) {\n if (!sheet.isRowFiltered(y)) {\n choosingY = y;\n break;\n }\n }\n }\n return {\n ...store,\n selectingZone,\n choosing: { y: choosingY, x: 1 },\n leftHeaderSelecting: true,\n topHeaderSelecting: false,\n };\n }\n}\nexport const selectRows = new SelectRowsAction().bind();\n\nclass SelectColsAction<T extends { range: RangeType; numRows: number }> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { range, numRows } = payload;\n const { start, end } = range;\n const sheet = store.sheetReactive.current;\n const selectingZone = {\n startY: 1,\n startX: start,\n endY: numRows,\n endX: end,\n };\n // Find the first non-filtered row (y=1 is always visible for columns, use y=1)\n // For columns there is no column-level filter, so choosing y=1 (first data row visible)\n let choosingY = 1;\n if (sheet) {\n for (let y = 1; y <= numRows; y++) {\n if (!sheet.isRowFiltered(y)) {\n choosingY = y;\n break;\n }\n }\n }\n return {\n ...store,\n selectingZone,\n choosing: { y: choosingY, x: start },\n leftHeaderSelecting: false,\n topHeaderSelecting: true,\n };\n }\n}\nexport const selectCols = new SelectColsAction().bind();\n\nclass DragAction<T extends PointType> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { startY, startX } = store.selectingZone;\n const selectingZone = {\n startY,\n startX,\n endY: payload.y,\n endX: payload.x,\n };\n if (startY === payload.y && startX === payload.x) {\n selectingZone.endY = -1;\n selectingZone.endX = -1;\n }\n return { ...store, selectingZone };\n }\n}\nexport const drag = new DragAction().bind();\n\nclass SearchAction<T extends number> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { matchingCells } = store;\n let { matchingCellIndex, choosing } = store;\n matchingCellIndex += payload;\n if (matchingCellIndex >= matchingCells.length) {\n matchingCellIndex = 0;\n } else if (matchingCellIndex < 0) {\n matchingCellIndex = matchingCells.length - 1;\n }\n\n if (matchingCells.length > 0) {\n const address = matchingCells[matchingCellIndex];\n choosing = a2p(address);\n }\n return { ...store, matchingCells, matchingCellIndex, choosing };\n }\n}\nexport const search = new SearchAction().bind();\n\nclass WriteAction<T extends { value: string; point?: PointType }> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n let { value, point } = payload;\n const { choosing, selectingZone, sheetReactive: sheetRef } = store;\n if (point == null) {\n point = choosing;\n }\n const sheet = sheetRef.current;\n if (!sheet) {\n return store;\n }\n const newSheet = sheet.write({\n point: point,\n value,\n operator: 'USER',\n undoReflection: compactReflection({\n sheetId: sheet.id,\n selectingZone,\n choosing: point,\n }),\n redoReflection: compactReflection({\n sheetId: sheet.id,\n selectingZone,\n choosing: point,\n }),\n });\n return {\n ...store,\n ...initSearchStatement(newSheet, store),\n sheetReactive: { current: newSheet },\n callback: ({ sheetReactive: sheetRef }) => {\n sheet.registry.transmit({\n copyingZone: resetZone,\n });\n },\n };\n }\n}\nexport const write = new WriteAction().bind();\n\nclass ClearAction<T extends null> extends CoreAction<T> {\n mutation = true;\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { choosing, selectingZone, sheetReactive: sheetRef } = store;\n const sheet = sheetRef.current;\n if (!sheet) {\n return store;\n }\n\n let selectingArea = zoneToArea(selectingZone);\n if (selectingArea.top === -1) {\n const { y, x } = choosing;\n selectingArea = { top: y, left: x, bottom: y, right: x };\n }\n const { top, left, bottom, right } = selectingArea;\n const diff: CellsByAddressType = {};\n let diffCount = 0;\n for (let y = top; y <= bottom; y++) {\n if (sheet.isRowFiltered(y)) {\n continue;\n }\n for (let x = left; x <= right; x++) {\n const cell = sheet.getCell({ y, x }, { resolution: 'SYSTEM' });\n const address = p2a({ y, x });\n if (prevention.hasOperation(cell?.prevention, prevention.Write)) {\n continue;\n }\n // Spilled cells are derived from the origin cell's formula and should\n // not be cleared independently — doing so would blank the FormulaBar\n // while the spill re-populates the value on next evaluation.\n if (sheet.getSystem({ y, x })?.spilledFrom != null) {\n continue;\n }\n if (cell?.value != null) {\n diff[address] = { value: undefined };\n diffCount++;\n }\n }\n }\n if (diffCount === 0) {\n return store;\n }\n sheet.update({\n diff,\n partial: true,\n operator: 'USER',\n undoReflection: compactReflection({\n sheetId: sheet.id,\n selectingZone,\n choosing,\n }),\n redoReflection: compactReflection({\n sheetId: sheet.id,\n selectingZone,\n choosing,\n }),\n });\n return {\n ...store,\n ...initSearchStatement(sheet, store),\n sheetReactive: { current: sheet },\n };\n }\n}\nexport const clear = new ClearAction().bind();\n\nclass UndoAction<T extends null> extends CoreAction<T> {\n mutation = true;\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { sheetReactive: sheetRef } = store;\n const sheet = sheetRef.current;\n if (!sheet) {\n return store;\n }\n const { history, callback } = sheet.undo();\n if (history == null) {\n return store;\n }\n if (history.dstSheetId !== sheet.id) {\n const { dispatch, store: dstStore } = sheet.registry.contextsBySheetId[history.dstSheetId];\n dispatch(\n setStore({\n ...dstStore,\n ...history.undoReflection,\n sheetReactive: { current: dstStore.sheetReactive.current },\n }),\n );\n flashSheet(dstStore.flashRef.current);\n // For cross-sheet MOVE: the src (current) sheet's lastChangedAddresses was also updated.\n // Return updated sheetReactive so this sheet's Emitter fires onChange.\n if (history.srcSheetId === sheet.id) {\n return flashWithCallback(store, sheet, callback);\n }\n return store;\n }\n return {\n ...store,\n ...restrictPoints(store, sheet),\n ...history.undoReflection,\n ...initSearchStatement(sheet, store),\n sheetReactive: { current: sheet },\n callback: (s: StoreType) => {\n callback?.(s);\n flashSheet(store.flashRef.current);\n },\n };\n }\n}\nexport const undo = new UndoAction().bind();\n\nclass RedoAction<T extends null> extends CoreAction<T> {\n mutation = true;\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { sheetReactive: sheetRef } = store;\n const sheet = sheetRef.current;\n if (sheet == null) {\n return store;\n }\n const { history, newSheet, callback } = sheet.redo();\n if (history == null) {\n return store;\n }\n if (history.dstSheetId !== sheet.id) {\n const { dispatch, store: dstStore } = sheet.registry.contextsBySheetId[history.dstSheetId];\n dispatch(\n setStore({\n ...dstStore,\n ...history.redoReflection,\n sheetReactive: { current: dstStore.sheetReactive.current },\n }),\n );\n flashSheet(dstStore.flashRef.current);\n // For cross-sheet MOVE: the src (current) sheet's lastChangedAddresses was also updated.\n // Return updated sheetReactive so this sheet's Emitter fires onChange.\n if (history.srcSheetId === sheet.id) {\n return flashWithCallback(store, sheet, callback);\n }\n return store;\n }\n return {\n ...store,\n ...restrictPoints(store, sheet),\n ...history.redoReflection,\n ...initSearchStatement(sheet, store),\n sheetReactive: { current: sheet },\n callback: (s: StoreType) => {\n callback?.(s);\n flashSheet(store.flashRef.current);\n },\n };\n }\n}\nexport const redo = new RedoAction().bind();\n\nclass ArrowAction<\n T extends {\n shiftKey: boolean;\n deltaY: number;\n deltaX: number;\n numRows: number;\n numCols: number;\n },\n> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { shiftKey, deltaY, deltaX, numRows, numCols } = payload;\n const { choosing, sheetReactive: sheetRef, tabularRef } = store;\n const sheet = sheetRef.current;\n if (sheet == null) {\n return store;\n }\n let { selectingZone } = store;\n const { y, x } = choosing;\n if (shiftKey) {\n const [dragEndY, dragEndX] = [\n selectingZone.endY === -1 ? y : selectingZone.endY,\n selectingZone.endX === -1 ? x : selectingZone.endX,\n ];\n const [nextY, nextX] = [dragEndY + deltaY, dragEndX + deltaX];\n if (nextY < 1 || numRows < nextY || nextX < 1 || numCols < nextX) {\n return store;\n }\n selectingZone =\n y === nextY && x === nextX\n ? { startY: -1, startX: -1, endY: -1, endX: -1 }\n : { startY: y, startX: x, endY: nextY, endX: nextX };\n return {\n ...store,\n selectingZone,\n };\n }\n const [nextY, nextX] = [y + deltaY, x + deltaX];\n if (nextY < 1 || numRows < nextY || nextX < 1 || numCols < nextX) {\n return store;\n }\n // Skip hidden rows\n let resolvedY = nextY;\n if (sheet.isRowFiltered(resolvedY)) {\n const dir = deltaY >= 0 ? 1 : -1;\n while (resolvedY >= 1 && resolvedY <= numRows && sheet.isRowFiltered(resolvedY)) {\n resolvedY += dir;\n }\n if (resolvedY < 1 || resolvedY > numRows) {\n return store; // no visible row in that direction\n }\n }\n let { y: editorTop, x: editorLeft, height, width } = store.editorRect;\n if (deltaY > 0) {\n for (let i = y; i < resolvedY; i++) {\n editorTop += sheet.getCell({ y: i, x: 0 }, { resolution: 'SYSTEM' })?.height || DEFAULT_HEIGHT;\n }\n } else if (deltaY < 0) {\n for (let i = y - 1; i >= resolvedY; i--) {\n editorTop -= sheet.getCell({ y: i, x: 0 }, { resolution: 'SYSTEM' })?.height || DEFAULT_HEIGHT;\n }\n }\n if (deltaX > 0) {\n for (let i = x; i < nextX; i++) {\n editorLeft += sheet.getCell({ y: 0, x: i }, { resolution: 'SYSTEM' })?.width || DEFAULT_WIDTH;\n }\n } else if (deltaX < 0) {\n for (let i = x - 1; i >= nextX; i--) {\n editorLeft -= sheet.getCell({ y: 0, x: i }, { resolution: 'SYSTEM' })?.width || DEFAULT_WIDTH;\n }\n }\n\n const cell = sheet.getCell({ y: resolvedY, x: nextX }, { resolution: 'SYSTEM' });\n height = cell?.height || DEFAULT_HEIGHT;\n width = cell?.width || DEFAULT_WIDTH;\n\n smartScroll(sheet, tabularRef.current, { y: resolvedY, x: nextX });\n return {\n ...store,\n selectingZone: { startY: -1, startX: -1, endY: -1, endX: -1 },\n choosing: { y: resolvedY, x: nextX } as PointType,\n editorRect: { y: editorTop, x: editorLeft, height, width },\n };\n }\n}\nexport const arrow = new ArrowAction().bind();\n\nclass WalkAction<\n T extends {\n deltaY: number;\n deltaX: number;\n numRows: number;\n numCols: number;\n },\n> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { numRows, numCols } = payload;\n let { deltaY, deltaX } = payload;\n const { choosing, selectingZone, sheetReactive: sheetRef, tabularRef: gridOuterRef } = store;\n const sheet = sheetRef.current;\n if (sheet == null) {\n return store;\n }\n\n let { y: editorTop, x: editorLeft, height, width } = store.editorRect;\n const { y, x } = choosing;\n const selectingArea = zoneToArea(selectingZone);\n const { top, left, bottom, right } = selectingArea;\n let [nextY, nextX] = [y + deltaY, x + deltaX];\n if (nextY < top && top !== -1) {\n deltaY = bottom - nextY;\n nextY = bottom;\n if (nextX > left) {\n nextX--;\n deltaX--;\n } else {\n deltaX = right - nextX;\n nextX = right;\n }\n }\n if (nextY > bottom && bottom !== -1) {\n deltaY = top - nextY;\n nextY = top;\n if (nextX < right) {\n nextX++;\n deltaX++;\n } else {\n deltaX = left - nextX;\n nextX = left;\n }\n }\n if (nextX < left && left !== -1) {\n deltaX = right - nextX;\n nextX = right;\n if (nextY > top) {\n nextY--;\n deltaY--;\n } else {\n deltaY = bottom - nextY;\n nextY = bottom;\n }\n }\n if (nextX > right && right !== -1) {\n deltaX = left - nextX;\n nextX = left;\n if (nextY < bottom) {\n nextY++;\n deltaY++;\n } else {\n deltaY = top - nextY;\n nextY = top;\n }\n }\n\n if (nextY < 1 || numRows < nextY || nextX < 1 || numCols < nextX) {\n return store;\n }\n\n // Skip hidden rows\n if (sheet.isRowFiltered(nextY)) {\n const dir = deltaY >= 0 ? 1 : -1;\n const lo = top !== -1 ? top : 1;\n const hi = bottom !== -1 ? bottom : numRows;\n while (nextY >= lo && nextY <= hi && sheet.isRowFiltered(nextY)) {\n nextY += dir;\n }\n if (nextY < lo || nextY > hi || sheet.isRowFiltered(nextY)) {\n return store; // no visible row in range\n }\n }\n\n if (deltaY > 0) {\n for (let i = y; i < nextY; i++) {\n editorTop += sheet.getCell({ y: i, x: 0 }, { resolution: 'SYSTEM' })?.height || DEFAULT_HEIGHT;\n }\n } else if (deltaY < 0) {\n for (let i = y - 1; i >= nextY; i--) {\n editorTop -= sheet.getCell({ y: i, x: 0 }, { resolution: 'SYSTEM' })?.height || DEFAULT_HEIGHT;\n }\n }\n if (deltaX > 0) {\n for (let i = x; i < nextX; i++) {\n editorLeft += sheet.getCell({ y: 0, x: i }, { resolution: 'SYSTEM' })?.width || DEFAULT_WIDTH;\n }\n } else if (deltaX < 0) {\n for (let i = x - 1; i >= nextX; i--) {\n editorLeft -= sheet.getCell({ y: 0, x: i }, { resolution: 'SYSTEM' })?.width || DEFAULT_WIDTH;\n }\n }\n const cell = sheet.getCell({ y: nextY, x: nextX }, { resolution: 'SYSTEM' });\n height = cell?.height || DEFAULT_HEIGHT;\n width = cell?.width || DEFAULT_WIDTH;\n smartScroll(sheet, gridOuterRef.current, { y: nextY, x: nextX });\n return {\n ...store,\n choosing: { y: nextY, x: nextX } as PointType,\n editorRect: { y: editorTop, x: editorLeft, height, width },\n };\n }\n}\nexport const walk = new WalkAction().bind();\n\nclass SetInputtingAction<T extends string> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n return {\n ...store,\n inputting: payload,\n };\n }\n}\n\nexport const setInputting = new SetInputtingAction().bind();\n\nclass InsertRowsAboveAction<T extends { numRows: number; y: number; operator?: OperatorType }> extends CoreAction<T> {\n mutation = true;\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { numRows, y, operator } = payload;\n const { sheetReactive: sheetRef, selectingZone, choosing } = store;\n const sheet = sheetRef.current;\n if (sheet == null) {\n return store;\n }\n sheet.insertRows({\n y,\n numRows,\n baseY: y,\n operator,\n undoReflection: compactReflection({\n sheetId: sheet.id,\n selectingZone,\n choosing,\n }),\n redoReflection: compactReflection({\n sheetId: sheet.id,\n selectingZone,\n choosing,\n }),\n });\n return {\n ...store,\n sheetReactive: { current: sheet },\n };\n }\n}\nexport const insertRowsAbove = new InsertRowsAboveAction().bind();\n\nclass InsertRowsBelowAction<T extends { numRows: number; y: number; operator?: OperatorType }> extends CoreAction<T> {\n mutation = true;\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { numRows, y, operator } = payload;\n const { sheetReactive: sheetRef, selectingZone, choosing, editorRef } = store;\n const sheet = sheetRef.current;\n if (sheet == null) {\n return store;\n }\n const nextSelectingZone = {\n ...selectingZone,\n startY: selectingZone.startY + numRows,\n endY: selectingZone.endY + numRows,\n };\n const nextChoosing = { ...choosing, y: choosing.y + numRows };\n\n sheet.insertRows({\n y: y + 1,\n numRows,\n baseY: y,\n operator,\n undoReflection: compactReflection({\n sheetId: sheet.id,\n selectingZone,\n choosing,\n }),\n redoReflection: compactReflection({\n sheetId: sheet.id,\n selectingZone: nextSelectingZone,\n choosing: nextChoosing,\n }),\n });\n return {\n ...store,\n selectingZone: nextSelectingZone,\n choosing: nextChoosing,\n sheetReactive: { current: sheet },\n };\n }\n}\nexport const insertRowsBelow = new InsertRowsBelowAction().bind();\n\nclass InsertColsLeftAction<T extends { numCols: number; x: number; operator?: OperatorType }> extends CoreAction<T> {\n mutation = true;\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { numCols, x, operator } = payload;\n const { sheetReactive: sheetRef, selectingZone, choosing, editorRef } = store;\n const sheet = sheetRef.current;\n if (sheet == null) {\n return store;\n }\n\n sheet.insertCols({\n x,\n numCols,\n baseX: x,\n operator,\n undoReflection: compactReflection({\n sheetId: sheet.id,\n selectingZone,\n choosing,\n }),\n redoReflection: compactReflection({\n sheetId: sheet.id,\n selectingZone,\n choosing,\n }),\n });\n return {\n ...store,\n sheetReactive: { current: sheet },\n };\n }\n}\nexport const insertColsLeft = new InsertColsLeftAction().bind();\n\nclass InsertColsRightAction<T extends { numCols: number; x: number; operator?: OperatorType }> extends CoreAction<T> {\n mutation = true;\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { numCols, x, operator } = payload;\n const { sheetReactive: sheetRef, selectingZone, choosing } = store;\n const sheet = sheetRef.current;\n if (sheet == null) {\n return store;\n }\n const nextSelectingZone = {\n ...selectingZone,\n startX: selectingZone.startX + numCols,\n endX: selectingZone.endX + numCols,\n };\n const nextChoosing = { ...choosing, x: choosing.x + numCols };\n\n selectingZone.startX += numCols;\n selectingZone.endX += numCols;\n\n sheet.insertCols({\n x: x + 1,\n numCols,\n baseX: x,\n operator,\n undoReflection: compactReflection({\n sheetId: sheet.id,\n selectingZone,\n choosing,\n }),\n redoReflection: compactReflection({\n sheetId: sheet.id,\n selectingZone: nextSelectingZone,\n choosing: nextChoosing,\n }),\n });\n return {\n ...store,\n selectingZone: nextSelectingZone,\n choosing: nextChoosing,\n sheetReactive: { current: sheet },\n };\n }\n}\nexport const insertColsRight = new InsertColsRightAction().bind();\n\nclass RemoveRowsAction<T extends { numRows: number; y: number; operator?: OperatorType }> extends CoreAction<T> {\n mutation = true;\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { numRows, y, operator } = payload;\n const { sheetReactive: sheetRef, selectingZone, choosing, editorRef } = store;\n const sheet = sheetRef.current;\n if (sheet == null) {\n return store;\n }\n\n sheet.removeRows({\n y,\n numRows,\n operator,\n undoReflection: compactReflection({\n sheetId: sheet.id,\n selectingZone,\n choosing,\n sheetHeight: store.sheetHeight,\n }),\n redoReflection: compactReflection({\n sheetId: sheet.id,\n selectingZone,\n choosing,\n }),\n });\n\n return {\n ...store,\n sheetReactive: { current: sheet },\n };\n }\n}\nexport const removeRows = new RemoveRowsAction().bind();\n\nclass RemoveColsAction<T extends { numCols: number; x: number; operator?: OperatorType }> extends CoreAction<T> {\n mutation = true;\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { numCols, x, operator } = payload;\n const { sheetReactive: sheetRef, selectingZone, choosing, editorRef } = store;\n const sheet = sheetRef.current;\n if (sheet == null) {\n return store;\n }\n\n sheet.removeCols({\n x,\n numCols,\n operator,\n undoReflection: compactReflection({\n sheetId: sheet.id,\n selectingZone,\n choosing,\n sheetWidth: store.sheetWidth,\n }),\n redoReflection: compactReflection({\n sheetId: sheet.id,\n selectingZone,\n choosing,\n }),\n });\n\n return {\n ...store,\n sheetReactive: { current: sheet },\n };\n }\n}\nexport const removeCols = new RemoveColsAction().bind();\n\nclass SortRowsAction<T extends { x: number; direction: 'asc' | 'desc' }> extends CoreAction<T> {\n mutation = true;\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { x, direction } = payload;\n const { sheetReactive: sheetRef, selectingZone, choosing } = store;\n const sheet = sheetRef.current;\n if (sheet == null) {\n return store;\n }\n sheet.sortRows({ x, direction });\n const reflection = compactReflection({ sheetId: sheet.id, selectingZone, choosing });\n if (sheet.registry.lastHistory) {\n sheet.registry.lastHistory.undoReflection = reflection;\n sheet.registry.lastHistory.redoReflection = reflection;\n }\n return {\n ...store,\n sheetReactive: { current: sheet },\n };\n }\n}\nexport const sortRows = new SortRowsAction().bind();\n\nclass FilterRowsAction<T extends { x?: number; filter?: FilterConfig }> extends CoreAction<T> {\n mutation = true;\n reduce(store: StoreType, payload: T): StoreWithCallback {\n const { x, filter } = payload;\n const { sheetReactive: sheetRef, selectingZone, choosing } = store;\n const sheet = sheetRef.current;\n if (sheet == null) {\n return store;\n }\n sheet.filterRows({ x, filter });\n const reflection = compactReflection({ sheetId: sheet.id, selectingZone, choosing });\n if (sheet.registry.lastHistory) {\n sheet.registry.lastHistory.undoReflection = reflection;\n sheet.registry.lastHistory.redoReflection = reflection;\n }\n let newChoosing = choosing;\n if (sheet.isRowFiltered(choosing.y)) {\n for (let y = 1; y <= sheet.numRows; y++) {\n if (!sheet.isRowFiltered(y)) {\n newChoosing = { y, x: choosing.x };\n break;\n }\n }\n }\n return {\n ...store,\n choosing: newChoosing,\n selectingZone: newChoosing !== choosing ? resetZone : selectingZone,\n sheetReactive: { current: sheet },\n callback: ({ sheetReactive: sheetRef }) => {\n const t = sheetRef.current;\n if (t) {\n t.registry.transmit({\n cutting: false,\n copyingZone: resetZone,\n });\n }\n },\n };\n }\n}\nexport const filterRows = new FilterRowsAction().bind();\n\nclass SetColumnMenuAction<T extends { x: number; position: { y: number; x: number } } | null> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n return {\n ...store,\n columnMenuState: payload,\n };\n }\n}\nexport const setColumnMenu = new SetColumnMenuAction().bind();\n\nclass SetRowMenuAction<T extends { y: number; position: { y: number; x: number } } | null> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n return {\n ...store,\n rowMenuState: payload,\n };\n }\n}\nexport const setRowMenu = new SetRowMenuAction().bind();\n\nclass SetEditorHoveringAction<T extends boolean> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n return {\n ...store,\n editorHovering: payload,\n };\n }\n}\nexport const setEditorHovering = new SetEditorHoveringAction().bind();\n\nclass setStoreAction<T extends Partial<StoreType>> extends CoreAction<T> {\n reduce(store: StoreType, payload: T): StoreWithCallback {\n return {\n ...store,\n ...payload,\n };\n }\n}\nexport const setStore = new setStoreAction().bind();\n\nexport const userActions = {\n blur,\n copy,\n cut,\n paste,\n escape,\n choose,\n select,\n selectRows,\n selectCols,\n drag,\n search,\n write,\n clear,\n undo,\n redo,\n arrow,\n walk,\n insertRowsAbove,\n insertRowsBelow,\n insertColsLeft,\n insertColsRight,\n removeRows,\n removeCols,\n sortRows,\n filterRows,\n};\n","import { useEffect, useState, useRef } from 'react';\nimport { createBook, type BookType, type RegistryProps, type TransmitProps } from '@gridsheet/core';\nimport { updateSheet } from '../store/actions';\n\n// Return the document object with SSR.\nexport const useBrowser = () => {\n const [ok, setOk] = useState(false);\n useEffect(() => {\n setOk(true);\n }, []);\n if (ok && typeof window !== 'undefined') {\n return { window, document };\n }\n return { window: null, document: null };\n};\n\nexport const useDebounce = <T>(value: T, delay = 100) => {\n const [debouncedValue, setDebouncedValue] = useState(value);\n const timerRef = useRef<number>();\n\n useEffect(() => {\n timerRef.current = window.setTimeout(() => setDebouncedValue(value), delay);\n return () => {\n window.clearTimeout(timerRef.current);\n };\n }, [value, delay]);\n return debouncedValue;\n};\n\nexport const useDebounceCallback = (callback: (...args: any[]) => void, delay = 100) => {\n const debouncedCallback = useRef(callback);\n const timerRef = useRef<number>();\n\n useEffect(() => {\n debouncedCallback.current = callback;\n }, [callback]);\n\n return (...args: any[]) => {\n window.clearTimeout(timerRef.current);\n timerRef.current = window.setTimeout(() => {\n debouncedCallback.current(...args);\n }, delay);\n };\n};\n\nexport const useBook = (props: RegistryProps = {}) => {\n const [book, setBook] = useState<BookType>(() => createBook(props));\n const { registry } = book;\n registry.updateSheet = updateSheet;\n registry.transmit = (patch?: TransmitProps) => {\n Object.assign(registry, patch);\n if (!registry.ready) {\n return;\n }\n requestAnimationFrame(() => setBook({ registry }));\n };\n useEffect(() => {\n Object.assign(registry, props);\n }, [props]);\n return book;\n};\n"],"names":["compactReflection","reflection","result","restrictPoints","store","sheet","choosing","selectingZone","y","x","y1","x1","y2","x2","numRows","numCols","FLASH_CLASS","FLASH_DURATION_MS","flashSheet","el","flashWithCallback","callback","s","initSearchStatement","searchQuery","searchCaseSensitive","searchRegex","searchRange","matchingCells","matcher","flags","regex","v","q","startY","endY","startX","endX","x2c","y2r","matchingCellIndex","address","a2p","isXSheetFocused","sheetId","sheetRef","resetZone","actions","reducer","action","act","registry","_a","_b","cached","newStore","_CoreAction","payload","CoreAction","isMutationAction","type","SetSearchQueryAction","setSearchQuery","SetSearchCaseSensitiveAction","setSearchCaseSensitive","SetSearchRegexAction","setSearchRegex","SetSearchRangeAction","setSearchRange","SetEditingAddressAction","setEditingAddress","SetAutofillDraggingToAction","setAutofillDraggingTo","SubmitAutofillAction","autofill","Autofill","areaToZone","submitAutofill","SetContextMenuPositionAction","setContextMenuPosition","SetResizingPositionYAction","setResizingPositionY","SetResizingPositionXAction","setResizingPositionX","SetEnteringAction","setEntering","UpdateSheetAction","updateSheet","SetEditorRectAction","setEditorRect","SetDragging","setDragging","BlurAction","blur","CopyAction","copy","CutAction","cut","PasteAction","dstSheetRef","dstSheet","copyingSheetId","copyingZone","cutting","srcSheet","selectingArea","zoneToArea","copyingArea","matrix","onlyValue","src","dy","dx","areaDiff","dst","nextSelectingZone","restrictZone","newSheet","height","width","matrixShape","superposed","superposeArea","paste","EscapeAction","escape","ChooseAction","choose","SelectAction","select","SelectRowsAction","range","start","end","choosingY","selectRows","SelectColsAction","selectCols","DragAction","drag","SearchAction","search","WriteAction","value","point","write","ClearAction","top","left","bottom","right","diff","diffCount","cell","p2a","prevention","clear","UndoAction","history","dispatch","dstStore","setStore","undo","RedoAction","redo","ArrowAction","shiftKey","deltaY","deltaX","tabularRef","dragEndY","dragEndX","nextY","nextX","resolvedY","dir","editorTop","editorLeft","i","DEFAULT_HEIGHT","_c","DEFAULT_WIDTH","_d","smartScroll","arrow","WalkAction","gridOuterRef","lo","hi","walk","SetInputtingAction","setInputting","InsertRowsAboveAction","operator","insertRowsAbove","InsertRowsBelowAction","editorRef","nextChoosing","insertRowsBelow","InsertColsLeftAction","insertColsLeft","InsertColsRightAction","insertColsRight","RemoveRowsAction","removeRows","RemoveColsAction","removeCols","SortRowsAction","direction","sortRows","FilterRowsAction","filter","newChoosing","t","filterRows","SetColumnMenuAction","setColumnMenu","SetRowMenuAction","setRowMenu","SetEditorHoveringAction","setEditorHovering","setStoreAction","userActions","useBrowser","ok","setOk","useState","useEffect","useDebounceCallback","delay","debouncedCallback","useRef","timerRef","args","useBook","props","book","setBook","createBook","patch"],"mappings":"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"}
|