@gridsheet/preact-core 2.2.0 → 3.0.0-rc.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.
@@ -0,0 +1,3 @@
1
+ import { CellType } from '../types';
2
+ export declare const filterCellFields: (cell: CellType, ignoreFields: (keyof CellType)[]) => CellType;
3
+ //# sourceMappingURL=cell.d.ts.map
@@ -7,4 +7,4 @@ export declare const p2a: ({ y, x, absX, absY }: ExtraPointType) => string;
7
7
  export declare const a2p: (address: Address) => ExtraPointType;
8
8
  export declare const grantAddressAbsolute: (address: Address, absCol: boolean, absRow: boolean) => string | undefined;
9
9
  export declare const stripAddressAbsolute: (address: Address) => string;
10
- //# sourceMappingURL=converters.d.ts.map
10
+ //# sourceMappingURL=coords.d.ts.map
package/dist/lib/hub.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { Pending } from '../constants';
1
2
  import { HistoryType, RefPaletteType, SheetIdsByName, ContextsBySheetId, ZoneType, CellsByIdType, Id, System, FeedbackType, EditorEvent, CursorStateType } from '../types';
2
3
  import { UserTable, Table } from './table';
3
4
  import { FunctionMapping } from '../formula/functions/__base';
@@ -21,9 +22,6 @@ export type WireProps = {
21
22
  };
22
23
  onSave?: FeedbackType;
23
24
  onChange?: FeedbackType;
24
- onEdit?: (args: {
25
- table: UserTable;
26
- }) => void;
27
25
  onRemoveRows?: (args: {
28
26
  table: UserTable;
29
27
  ys: number[];
@@ -67,6 +65,8 @@ export declare class Wire {
67
65
  };
68
66
  lastFocused: HTMLTextAreaElement | null;
69
67
  solvedCaches: Map<Id, any>;
68
+ /** Currently in-flight async formula Pending sentinels (keyed by cell ID). */
69
+ asyncPending: Map<string, Pending>;
70
70
  copyingSheetId: number;
71
71
  copyingZone: ZoneType;
72
72
  cutting: boolean;
@@ -91,9 +91,6 @@ export declare class Wire {
91
91
  };
92
92
  onSave?: FeedbackType;
93
93
  onChange?: FeedbackType;
94
- onEdit?: (args: {
95
- table: UserTable;
96
- }) => void;
97
94
  onRemoveRows?: (args: {
98
95
  table: UserTable;
99
96
  ys: number[];
@@ -123,7 +120,7 @@ export declare class Wire {
123
120
  transmit: (newHub?: TransmitProps) => void;
124
121
  identifyFormula(): void;
125
122
  getSystem(id: Id, table: Table): System;
126
- constructor({ historyLimit, additionalFunctions, renderers, parsers, labelers, policies, onSave, onChange, onEdit, onRemoveRows, onRemoveCols, onInsertRows, onInsertCols, onSelect, onKeyUp, onInit, }?: WireProps);
123
+ constructor({ historyLimit, additionalFunctions, renderers, parsers, labelers, policies, onSave, onChange, onRemoveRows, onRemoveCols, onInsertRows, onInsertCols, onSelect, onKeyUp, onInit, }?: WireProps);
127
124
  }
128
125
  export type TransmitProps = Partial<Wire>;
129
126
  export declare const createWire: (props?: WireProps) => Wire;
@@ -27,6 +27,7 @@ export declare const Add: operations;
27
27
  export declare const Delete: operations;
28
28
  export declare const ReadOnly: operations;
29
29
  export declare const ColumnMenu: operations;
30
+ export declare const RowMenu: operations;
30
31
  export declare const ViewOnly: operations;
31
32
  export declare const hasOperation: (operation: operations | undefined, flag: operations) => boolean;
32
33
  export declare const debugOperations: (prevention: operations | undefined) => string[];
@@ -72,5 +72,21 @@ export declare const invertObject: (obj: {
72
72
  }) => {
73
73
  [value: string]: string;
74
74
  };
75
+ /**
76
+ * Convert a list of addresses into an array of bounding areas.
77
+ * Adjacent cells (4-connected: up/down/left/right) are grouped into the same area.
78
+ * Each resulting AreaType is the bounding rectangle of one connected group.
79
+ */
80
+ export declare const addressesToAreas: (addresses: Address[]) => AreaType[];
81
+ /**
82
+ * Extract unique column indices (x) from a list of addresses, ignoring row information.
83
+ * @param asc - true: ascending, false: descending, null: insertion order
84
+ */
85
+ export declare const addressesToCols: (addresses: Address[], asc?: boolean | null) => number[];
86
+ /**
87
+ * Extract unique row indices (y) from a list of addresses, ignoring column information.
88
+ * @param asc - true: ascending, false: descending, null: insertion order
89
+ */
90
+ export declare const addressesToRows: (addresses: Address[], asc?: boolean | null) => number[];
75
91
  export {};
76
- //# sourceMappingURL=structs.d.ts.map
92
+ //# sourceMappingURL=spatial.d.ts.map
@@ -26,18 +26,40 @@ type MoveProps = {
26
26
  redoReflection?: StorePatchType;
27
27
  historicize?: boolean;
28
28
  };
29
+ type CellField = keyof CellType;
30
+ type GetCellProps = GetProps & {
31
+ ignoreFields?: CellField[];
32
+ };
29
33
  type GetFieldProps = GetProps & {
30
34
  field?: keyof CellType;
31
35
  };
32
- type GetPropsWithArea = GetProps & {
36
+ type GetCellMatrixProps = GetCellProps & {
33
37
  area?: AreaType;
34
38
  };
35
- type GetFieldPropsWithArea = GetFieldProps & {
39
+ type GetFieldMatrixProps = GetFieldProps & {
36
40
  area?: AreaType;
37
41
  };
42
+ type GetCellObjectProps = GetCellProps & {
43
+ addresses?: Address[];
44
+ };
45
+ type GetFieldObjectProps = GetFieldProps & {
46
+ addresses?: Address[];
47
+ };
48
+ type GetCellRowsProps = GetCellProps & {
49
+ rows?: number[];
50
+ };
51
+ type GetFieldRowsProps = GetFieldProps & {
52
+ rows?: number[];
53
+ };
54
+ type GetCellColsProps = GetCellProps & {
55
+ cols?: (number | string)[];
56
+ };
57
+ type GetFieldColsProps = GetFieldProps & {
58
+ cols?: (number | string)[];
59
+ };
38
60
  export interface UserTable {
39
- changedAt: Date;
40
- lastChangedAt?: Date;
61
+ changedTime: number;
62
+ lastChangedTime?: number;
41
63
  top: number;
42
64
  left: number;
43
65
  bottom: number;
@@ -59,20 +81,20 @@ export interface UserTable {
59
81
  getCellByAddress(address: Address, refEvaluation?: RefEvaluation, raise?: boolean): CellType | undefined;
60
82
  getNumRows(base?: number): number;
61
83
  getNumCols(base?: number): number;
62
- getFieldMatrix(args?: GetFieldPropsWithArea): any[][];
63
- getFieldObject(args?: GetFieldProps): {
84
+ getFieldMatrix(args?: GetFieldMatrixProps): any[][];
85
+ getFieldObject(args?: GetFieldObjectProps): {
64
86
  [address: Address]: any;
65
87
  };
66
- getFieldRows(args?: GetFieldProps): {
88
+ getFieldRows(args?: GetFieldRowsProps): {
67
89
  [address: Address]: any;
68
90
  }[];
69
- getFieldCols(args?: GetFieldProps): {
91
+ getFieldCols(args?: GetFieldColsProps): {
70
92
  [address: Address]: any;
71
93
  }[];
72
- getMatrix(args?: GetPropsWithArea): (CellType | null)[][];
73
- getObject(args?: GetProps): CellsByAddressType;
74
- getRows(args?: GetProps): CellsByAddressType[];
75
- getCols(args?: GetProps): CellsByAddressType[];
94
+ getCellMatrix(args?: GetCellMatrixProps): (CellType | null)[][];
95
+ getCellObject(args?: GetCellObjectProps): CellsByAddressType;
96
+ getCellRows(args?: GetCellRowsProps): CellsByAddressType[];
97
+ getCellCols(args?: GetCellColsProps): CellsByAddressType[];
76
98
  getHistories(): HistoryType[];
77
99
  move(args: MoveProps): UserTable;
78
100
  copy(args: MoveProps & {
@@ -82,19 +104,19 @@ export interface UserTable {
82
104
  diff: CellsByAddressType;
83
105
  historicize?: boolean;
84
106
  partial?: boolean;
85
- updateChangedAt?: boolean;
107
+ updateChangedTime?: boolean;
86
108
  reflection?: StorePatchType;
87
109
  }): UserTable;
88
110
  writeMatrix(args: {
89
111
  point: PointType;
90
112
  matrix: MatrixType<string>;
91
- updateChangedAt?: boolean;
113
+ updateChangedTime?: boolean;
92
114
  reflection?: StorePatchType;
93
115
  }): UserTable;
94
116
  write(args: {
95
117
  point: PointType;
96
118
  value: string;
97
- updateChangedAt?: boolean;
119
+ updateChangedTime?: boolean;
98
120
  reflection?: StorePatchType;
99
121
  }): UserTable;
100
122
  insertRows(args: {
@@ -103,7 +125,7 @@ export interface UserTable {
103
125
  baseY: number;
104
126
  diff?: CellsByAddressType;
105
127
  partial?: boolean;
106
- updateChangedAt?: boolean;
128
+ updateChangedTime?: boolean;
107
129
  reflection?: StorePatchType;
108
130
  }): UserTable;
109
131
  removeRows(args: {
@@ -117,7 +139,7 @@ export interface UserTable {
117
139
  baseX: number;
118
140
  diff?: CellsByAddressType;
119
141
  partial?: boolean;
120
- updateChangedAt?: boolean;
142
+ updateChangedTime?: boolean;
121
143
  reflection?: StorePatchType;
122
144
  }): UserTable;
123
145
  removeCols(args: {
@@ -139,18 +161,16 @@ export interface UserTable {
139
161
  sortRows(args: {
140
162
  x: number;
141
163
  direction: 'asc' | 'desc';
142
- undoReflection?: StorePatchType;
143
- redoReflection?: StorePatchType;
144
164
  }): UserTable;
145
- filterRows(args: {
146
- x: number;
147
- filter: FilterConfig;
148
- undoReflection?: StorePatchType;
149
- redoReflection?: StorePatchType;
165
+ filterRows(args?: {
166
+ x?: number;
167
+ filter?: FilterConfig;
150
168
  }): UserTable;
151
- clearFilterRows(x?: number, undoReflection?: StorePatchType, redoReflection?: StorePatchType): UserTable;
152
169
  isRowFiltered(y: number): boolean;
153
170
  hasActiveFilters(): boolean;
171
+ hasPendingCells(): boolean;
172
+ waitForPending(): Promise<void>;
173
+ getLastChangedAddresses(): Address[];
154
174
  stringify(props: {
155
175
  point: PointType;
156
176
  cell?: CellType;
@@ -158,8 +178,8 @@ export interface UserTable {
158
178
  }): string;
159
179
  }
160
180
  export declare class Table implements UserTable {
161
- changedAt: Date;
162
- lastChangedAt?: Date;
181
+ changedTime: number;
182
+ lastChangedTime?: number;
163
183
  minNumRows: number;
164
184
  maxNumRows: number;
165
185
  minNumCols: number;
@@ -177,6 +197,7 @@ export declare class Table implements UserTable {
177
197
  private idMatrix;
178
198
  private area;
179
199
  private addressCaches;
200
+ private lastChangedAddresses;
180
201
  constructor({ minNumRows, maxNumRows, minNumCols, maxNumCols, sheetName, hub, }: Props);
181
202
  get headerHeight(): number;
182
203
  setHeaderHeight(height: number, historicize?: boolean): Table;
@@ -186,32 +207,36 @@ export declare class Table implements UserTable {
186
207
  private _getRawCellByPoint;
187
208
  isRowFiltered(y: number): boolean;
188
209
  hasActiveFilters(): boolean;
210
+ /**
211
+ * Returns true if any data cell in this sheet currently holds a Pending value
212
+ * (i.e. an async formula that hasn't resolved yet).
213
+ */
214
+ hasPendingCells(): boolean;
215
+ /**
216
+ * Returns a Promise that resolves when all in-flight async formula computations
217
+ * have completed and no data cells hold Pending values.
218
+ * If nothing is pending, resolves immediately.
219
+ * Useful for waiting before sort/filter so that cell values are fully resolved.
220
+ */
221
+ waitForPending(): Promise<void>;
222
+ /**
223
+ * Returns the addresses that were changed in the most recent `_update()` call.
224
+ * Useful inside `onChange` to know which cells were modified.
225
+ */
226
+ getLastChangedAddresses(): Address[];
189
227
  /** Capture the current state of all filter-related cells (column headers + row headers) as a CellsByIdType snapshot */
190
228
  /** Capture the full cell state of all filter-related header cells as a CellsByIdType snapshot */
191
229
  private _captureFilterCellStates;
192
- filterRows({ x, filter, undoReflection, redoReflection, }: {
193
- x: number;
194
- filter: FilterConfig;
195
- undoReflection?: StorePatchType;
196
- redoReflection?: StorePatchType;
230
+ filterRows({ x, filter, }?: {
231
+ x?: number;
232
+ filter?: FilterConfig;
197
233
  }): Table;
198
- setColLabel({ x, label, undoReflection, redoReflection, }: {
199
- x: number;
200
- label: string;
201
- undoReflection?: StorePatchType;
202
- redoReflection?: StorePatchType;
203
- }): Table;
204
- clearFilterRows(x?: number, undoReflection?: StorePatchType, redoReflection?: StorePatchType): Table;
205
- private _evaluateFilterConfig;
206
234
  private _reapplyFilters;
207
- sortRows({ x, direction, undoReflection, redoReflection, }: {
235
+ sortRows({ x, direction }: {
208
236
  x: number;
209
237
  direction: 'asc' | 'desc';
210
- undoReflection?: StorePatchType;
211
- redoReflection?: StorePatchType;
212
238
  }): Table;
213
- private _applySortOrder;
214
- private _restoreRows;
239
+ private _sortRowMapping;
215
240
  get isInitialized(): boolean;
216
241
  get functions(): FunctionMapping;
217
242
  get parsers(): {
@@ -262,44 +287,66 @@ export declare class Table implements UserTable {
262
287
  get bottom(): number;
263
288
  get right(): number;
264
289
  getFullRef(ref: Address): string;
265
- getFieldMatrix({ area, field, refEvaluation, raise, filter, }?: GetFieldPropsWithArea): any[][];
266
- getFieldObject({ area, field, refEvaluation, raise, filter, }?: GetFieldPropsWithArea): {
290
+ getFieldMatrix({ area, field, refEvaluation, raise, filter, }?: GetFieldMatrixProps): any[][];
291
+ getFieldObject({ field, refEvaluation, raise, filter, addresses, }?: GetFieldObjectProps): {
267
292
  [Address: string]: any;
268
293
  };
269
- getFieldRows({ field, refEvaluation, raise, filter, }?: GetFieldProps): CellsByAddressType[];
270
- getFieldCols({ field, refEvaluation, raise, filter, }?: GetFieldProps): CellsByAddressType[];
271
- getMatrix({ area, refEvaluation, raise, filter, }?: GetPropsWithArea): (CellType | null)[][];
272
- getObject({ refEvaluation, area, raise, filter }?: GetPropsWithArea): CellsByAddressType;
273
- getRows({ refEvaluation, raise, filter }?: GetProps): CellsByAddressType[];
274
- getCols({ refEvaluation, raise, filter }?: GetProps): CellsByAddressType[];
294
+ getFieldRows({ field, refEvaluation, raise, filter, rows, }?: GetFieldRowsProps): CellsByAddressType[];
295
+ getFieldCols({ field, refEvaluation, raise, filter, cols, }?: GetFieldColsProps): CellsByAddressType[];
296
+ getCellMatrix({ area, refEvaluation, raise, filter, ignoreFields, }?: GetCellMatrixProps): (CellType | null)[][];
297
+ getCellObject({ refEvaluation, raise, filter, addresses, ignoreFields, }?: GetCellObjectProps): CellsByAddressType;
298
+ getCellRows({ refEvaluation, raise, filter, rows, ignoreFields, }?: GetCellRowsProps): CellsByAddressType[];
299
+ getCellCols({ refEvaluation, raise, filter, cols, ignoreFields, }?: GetCellColsProps): CellsByAddressType[];
275
300
  private pushHistory;
276
301
  private cleanObsolete;
277
302
  private cleanStrayed;
278
303
  private getNewIdMatrix;
279
304
  private getIdMatrixFromArea;
280
- private setChangedAt;
281
- private getUpdatedArea;
305
+ private setChangedTime;
282
306
  private copyCellLayout;
283
307
  move({ srcTable, src, dst, historicize, operator, undoReflection, redoReflection, }: MoveProps): Table;
308
+ /**
309
+ * Build MoveRelations from src area to dst area, skipping filtered rows.
310
+ *
311
+ * Layout of the returned array (processed in this order by _moveCells):
312
+ * 1. Entries where [0] is a newly-generated ID — these fill the vacated src cells (processed last in forward order)
313
+ * 2. Entries where [0] is a src address and [1] is a dst address — the actual moves (processed first in forward order, descending)
314
+ * Entries whose [1] is an existing ID mean the destination cell is displaced/overflowed and
315
+ * is no longer addressable; on forward pass they are skipped; on reverse pass the ID is written back.
316
+ */
317
+ private _createMoveRelations;
318
+ /**
319
+ * Apply (or reverse) a MoveRelations list.
320
+ *
321
+ * Forward (reverse=false): process descending — actual ID moves happen bottom-up so
322
+ * earlier entries don't clobber later ones; vacate entries (at front of array) are
323
+ * applied last.
324
+ * Reverse (reverse=true): process ascending — restores IDs in the natural order.
325
+ *
326
+ * On forward pass: applies policy, collects diffBefore, runs ReferencePreserver.
327
+ * On reverse pass: only moves IDs (caller is responsible for applyDiff(diffBefore)).
328
+ */
329
+ private _moveCells;
284
330
  copy({ srcTable, src, dst, onlyValue, operator, undoReflection, redoReflection, }: MoveProps & {
285
331
  onlyValue?: boolean;
286
332
  }): Table;
287
333
  getPolicyByPoint(point: PointType): PolicyType;
288
334
  private _update;
289
- update({ diff, partial, updateChangedAt, historicize, operator, operation: op, undoReflection, redoReflection, }: {
335
+ update({ diff, partial, updateChangedTime, historicize, operator, operation: op, ignoreFields, undoReflection, redoReflection, }: {
290
336
  diff: CellsByAddressType;
291
337
  partial?: boolean;
292
- updateChangedAt?: boolean;
338
+ updateChangedTime?: boolean;
293
339
  historicize?: boolean;
294
340
  operator?: OperatorType;
295
341
  operation?: OperationType;
342
+ ignoreFields?: CellField[];
296
343
  undoReflection?: StorePatchType;
297
344
  redoReflection?: StorePatchType;
298
345
  }): Table;
299
- writeRawCellMatrix({ point, matrix, updateChangedAt, historicize, onlyValue, operator, undoReflection, redoReflection, }: {
346
+ writeRawCellMatrix({ point, matrix, updateChangedTime, historicize, onlyValue, operator, undoReflection, redoReflection, }: {
300
347
  point: PointType;
301
348
  matrix: MatrixType<RawCellType>;
302
- updateChangedAt?: boolean;
349
+ updateChangedTime?: boolean;
303
350
  historicize?: boolean;
304
351
  onlyValue?: boolean;
305
352
  operator?: OperatorType;
@@ -309,7 +356,7 @@ export declare class Table implements UserTable {
309
356
  writeMatrix(props: {
310
357
  point: PointType;
311
358
  matrix: MatrixType<string>;
312
- updateChangedAt?: boolean;
359
+ updateChangedTime?: boolean;
313
360
  historicize?: boolean;
314
361
  operator?: OperatorType;
315
362
  undoReflection?: StorePatchType;
@@ -318,19 +365,19 @@ export declare class Table implements UserTable {
318
365
  write(props: {
319
366
  point: PointType;
320
367
  value: string;
321
- updateChangedAt?: boolean;
368
+ updateChangedTime?: boolean;
322
369
  historicize?: boolean;
323
370
  operator?: OperatorType;
324
371
  undoReflection?: StorePatchType;
325
372
  redoReflection?: StorePatchType;
326
373
  }): Table;
327
- insertRows({ y, numRows, baseY, diff, partial, updateChangedAt, operator, undoReflection, redoReflection, }: {
374
+ insertRows({ y, numRows, baseY, diff, partial, updateChangedTime, operator, undoReflection, redoReflection, }: {
328
375
  y: number;
329
376
  numRows: number;
330
377
  baseY: number;
331
378
  diff?: CellsByAddressType;
332
379
  partial?: boolean;
333
- updateChangedAt?: boolean;
380
+ updateChangedTime?: boolean;
334
381
  operator?: OperatorType;
335
382
  undoReflection?: StorePatchType;
336
383
  redoReflection?: StorePatchType;
@@ -342,13 +389,13 @@ export declare class Table implements UserTable {
342
389
  undoReflection?: StorePatchType;
343
390
  redoReflection?: StorePatchType;
344
391
  }): Table;
345
- insertCols({ x, numCols, baseX, diff, partial, updateChangedAt, operator, undoReflection, redoReflection, }: {
392
+ insertCols({ x, numCols, baseX, diff, partial, updateChangedTime, operator, undoReflection, redoReflection, }: {
346
393
  x: number;
347
394
  numCols: number;
348
395
  baseX: number;
349
396
  diff?: CellsByAddressType;
350
397
  partial?: boolean;
351
- updateChangedAt?: boolean;
398
+ updateChangedTime?: boolean;
352
399
  operator?: OperatorType;
353
400
  undoReflection?: StorePatchType;
354
401
  redoReflection?: StorePatchType;
@@ -48,6 +48,7 @@ export declare class Renderer implements RendererMixinType {
48
48
  call(props: RendererCallProps): any;
49
49
  decorate(rendered: any, props: RenderProps): any;
50
50
  render(props: RenderProps): any;
51
+ pending(_props: RenderProps): any;
51
52
  stringify({ value, cell, table, point }: RenderProps): string;
52
53
  string({ value }: RenderProps<string>): any;
53
54
  table(props: RenderProps<Table>): any;
@@ -269,21 +269,13 @@ export declare const sortRows: (payload: {
269
269
  };
270
270
  };
271
271
  export declare const filterRows: (payload: {
272
- x: number;
273
- filter: FilterConfig;
274
- }) => {
275
- type: number;
276
- value: {
277
- x: number;
278
- filter: FilterConfig;
279
- };
280
- };
281
- export declare const clearFilterRows: (payload: {
282
272
  x?: number;
273
+ filter?: FilterConfig;
283
274
  }) => {
284
275
  type: number;
285
276
  value: {
286
277
  x?: number;
278
+ filter?: FilterConfig;
287
279
  };
288
280
  };
289
281
  export declare const setColumnMenu: (payload: {
@@ -302,15 +294,21 @@ export declare const setColumnMenu: (payload: {
302
294
  };
303
295
  } | null;
304
296
  };
305
- export declare const setColLabel: (payload: {
306
- x: number;
307
- label: string;
308
- }) => {
309
- type: number;
310
- value: {
297
+ export declare const setRowMenu: (payload: {
298
+ y: number;
299
+ position: {
300
+ y: number;
311
301
  x: number;
312
- label: string;
313
302
  };
303
+ } | null) => {
304
+ type: number;
305
+ value: {
306
+ y: number;
307
+ position: {
308
+ y: number;
309
+ x: number;
310
+ };
311
+ } | null;
314
312
  };
315
313
  export declare const setStore: (payload: Partial<StoreType>) => {
316
314
  type: number;
@@ -514,31 +512,13 @@ export declare const userActions: {
514
512
  };
515
513
  };
516
514
  filterRows: (payload: {
517
- x: number;
518
- filter: FilterConfig;
519
- }) => {
520
- type: number;
521
- value: {
522
- x: number;
523
- filter: FilterConfig;
524
- };
525
- };
526
- clearFilterRows: (payload: {
527
515
  x?: number;
516
+ filter?: FilterConfig;
528
517
  }) => {
529
518
  type: number;
530
519
  value: {
531
520
  x?: number;
532
- };
533
- };
534
- setColLabel: (payload: {
535
- x: number;
536
- label: string;
537
- }) => {
538
- type: number;
539
- value: {
540
- x: number;
541
- label: string;
521
+ filter?: FilterConfig;
542
522
  };
543
523
  };
544
524
  };
@@ -1,3 +1,3 @@
1
- export declare const LAST_MODIFIED = 1771145572;
2
- export declare const CSS = ".gs-root1{display:inline-block;position:relative;border-spacing:0;width:fit-content;max-width:100%;overflow:auto;font-family:\"SF Pro Text\",\"SF Pro Icons\",\"Helvetica Neue\",Helvetica,Arial,Meiryo,sans-serif;visibility:hidden;opacity:0}.gs-root1.gs-initialized{visibility:visible;opacity:1;transition:opacity .2s ease-in-out}.gs-root1 .gs-main{flex:1;max-width:100%;overflow:hidden;position:relative;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.gs-root1 .gs-resizing{width:100%;height:100%;position:absolute;background-color:rgba(0,127,255,.08);top:0;left:0;z-index:2}.gs-root1 .gs-line-horizontal{width:100%}.gs-root1 .gs-line-vertical{height:100%}.gs-root1 .gs-line{position:relative;top:0;left:0;border:dotted 1px #07f;box-sizing:border-box}.gs-root1 .gs-line span{font-size:10px;padding:3px;background-color:#07f;color:#fff;margin:0;position:absolute;top:0;left:0}.gs-root1 .gs-scroll-handle{width:100%;height:100%;cursor:cell}.gs-hidden{visibility:hidden;position:absolute;top:0;left:0;width:0;height:0;overflow:hidden;pointer-events:none;z-index:-1}.gs-fixed{position:fixed;top:0;left:0;z-index:1}.gs-root1[data-mode=light]{background-color:#e2e2e2;color:#000}.gs-root1[data-mode=light] .gs-main{background-color:#e2e2e2;border-right:solid 1px #ddd;border-bottom:solid 1px #ddd}.gs-root1[data-mode=light] .gs-tabular{background-color:#e2e2e2}.gs-root1[data-mode=light] .gs-formula-bar{background-color:#efefef}.gs-root1[data-mode=light] .gs-formula-bar-editor-inner{color:#555}.gs-root1[data-mode=light] .gs-cell{background-color:#f7f7f7;border-top:solid 1px #ddd;border-left:solid 1px #ddd}.gs-root1[data-mode=light] .gs-adjuster{background-color:#ddd}.gs-root1[data-mode=light] .gs-tabular-inner{background-color:#ddd}.gs-root1[data-mode=light] .gs-th{background-color:#efefef;color:#666}.gs-root1[data-mode=light] .gs-th-top{border-left:solid 1px #ddd}.gs-root1[data-mode=light] .gs-th-top .gs-th-inner{border-top:solid 1px #ddd}.gs-root1[data-mode=light] .gs-th-left{border-top:solid 1px #ddd}.gs-root1[data-mode=light] .gs-th-left .gs-th-inner{border-left:solid 1px #ddd}.gs-root1[data-mode=light] .gs-search-bar{color:rgba(0,0,0,.3)}.gs-editor[data-mode=light].gs-editing textarea{caret-color:#000000}.gs-editor[data-mode=light].gs-editing .gs-editor-hl{background-color:#f7f7f7;color:#000}.gs-editor[data-mode=light] .gs-editor-options{color:#000;background-color:#f7f7f7;border:solid 1px #ddd}.gs-root1[data-mode=dark]{background-color:#5a5a5a;color:#eee}.gs-root1[data-mode=dark] .gs-main{background-color:#3f3f3f;border-right:solid 1px #5a5a5a;border-bottom:solid 1px #5a5a5a}.gs-root1[data-mode=dark] .gs-tabular{background-color:#3f3f3f}.gs-root1[data-mode=dark] .gs-formula-bar{background-color:#4f4f4f}.gs-root1[data-mode=dark] .gs-formula-bar-editor-inner{color:#bbb}.gs-root1[data-mode=dark] .gs-cell{background-color:#212121;border-top:solid 1px #5a5a5a;border-left:solid 1px #5a5a5a}.gs-root1[data-mode=dark] .gs-adjuster{background-color:#5a5a5a}.gs-root1[data-mode=dark] .gs-tabular-inner{background-color:#5a5a5a}.gs-root1[data-mode=dark] .gs-large-editor textarea{color:#eee;caret-color:#eeeeee}.gs-root1[data-mode=dark] .gs-th{background-color:#4f4f4f;color:#eee}.gs-root1[data-mode=dark] .gs-th-top{border-left:solid 1px #5a5a5a}.gs-root1[data-mode=dark] .gs-th-top .gs-th-inner{border-top:solid 1px #5a5a5a}.gs-root1[data-mode=dark] .gs-th-left{border-top:solid 1px #5a5a5a}.gs-root1[data-mode=dark] .gs-th-left .gs-th-inner{border-left:solid 1px #5a5a5a}.gs-root1[data-mode=dark] .gs-search-bar textarea{color:#eee;caret-color:#eeeeee}.gs-root1[data-mode=dark] .gs-search-bar{color:rgba(255,255,255,.3)}.gs-editor[data-mode=dark].gs-editing textarea{caret-color:#eeeeee}.gs-editor[data-mode=dark].gs-editing .gs-editor-hl{background-color:#212121;color:#eee}.gs-editor[data-mode=dark] .gs-editor-options{color:#eee;background-color:#5a5a5a;border:solid 1px #5a5a5a}.gs-cell{transition:border-color .2s ease;padding:0;margin:0;box-sizing:border-box;position:relative;font-size:13px;letter-spacing:1px;line-height:24px;cursor:cell;user-select:none;-webkit-user-select:none;-moz-user-select:none}.gs-cell.gs-copying textarea:focus{outline:solid 1px #0077ff}.gs-cell.gs-selecting{z-index:1}.gs-cell.gs-selecting .gs-cell-label{display:block}.gs-cell.gs-choosing{margin-top:-1px;margin-left:-1px;z-index:1}.gs-cell.gs-choosing.gs-editing{color:transparent}.gs-cell.gs-choosing .gs-cell-label{display:block}.gs-cell .gs-formula-error-triangle{position:absolute;top:0;right:0;border-top:3px solid rgba(200,0,0,.9);border-right:3px solid rgba(200,0,0,.9);border-bottom:3px solid transparent;border-left:3px solid transparent;z-index:1}.gs-cell .gs-cell-label{font-size:8px;font-weight:400;font-style:normal;font-family:math,monospace,serif;letter-spacing:1px;line-height:14px;position:absolute;top:0;right:0;background-color:rgba(0,128,255,.6);color:rgba(255,255,255,.6);padding:0 2px;display:none;opacity:.7}.gs-cell .gs-cell-inner-wrap{width:100%;height:100%;position:absolute;top:0;left:0}.gs-cell .gs-cell-inner{width:100%;height:100%;overflow:hidden;display:flex;box-sizing:border-box;border:none!important}.gs-cell .gs-cell-rendered{overflow:hidden;white-space:pre-wrap;cursor:cell;word-wrap:break-word;word-break:break-all;padding:0 2px;width:100%;height:100%}.gs-cell .gs-cell-rendered>*{position:relative}.gs-cell .gs-cell-rendered>.backface{z-index:0}.gs-cell .gs-autofill-drag{background-color:#07f;position:absolute;width:7px;height:7px;bottom:0;right:0;margin-right:-3.5px;margin-bottom:-3.5px;cursor:crosshair;z-index:1}.gs-th[data-x=\"1\"] .gs-th-inner-wrap{border-left:none}.gs-th[data-y=\"1\"] .gs-th-inner-wrap{border-top:none}.gs-cell[data-x=\"1\"]{border-left:none}.gs-cell[data-y=\"1\"]{border-top:none}.gs-contextmenu-modal{width:100%;height:100vh;z-index:12}.gs-contextmenu{z-index:12;position:fixed;background-color:#fff;padding:5px 0;border-radius:5px;box-shadow:rgba(60,64,67,.3) 0 1px 2px 0,rgba(60,64,67,.15) 0 1px 3px 1px}.gs-contextmenu ul{color:#555;margin:0;padding:0;min-width:250px}.gs-contextmenu li{padding:5px 10px;list-style-type:none;display:flex}.gs-contextmenu li.gs-enabled{cursor:pointer}.gs-contextmenu li.gs-enabled:hover{background-color:#eee}.gs-contextmenu li.gs-disabled{opacity:.5;cursor:not-allowed}.gs-contextmenu li .gs-menu-name{font-size:13px;letter-spacing:1px}.gs-contextmenu li.gs-menu-divider{background-color:#aaa;padding:0;height:1px;margin:10px 0}.gs-contextmenu li .gs-menu-name{flex:1}.gs-contextmenu li .gs-menu-shortcut{font-size:10px;line-height:20px;color:#999}.gs-contextmenu li .gs-menu-shortcut:before{content:\"( \"}.gs-contextmenu li .gs-menu-shortcut:after{content:\" )\"}.gs-contextmenu li .gs-menu-shortcut .gs-menu-underline{text-decoration:underline}.gs-column-menu-modal{width:100%;height:100vh;z-index:12}.gs-column-menu{z-index:12;position:fixed;background-color:#fff;padding:5px 0;border-radius:5px;box-shadow:rgba(60,64,67,.3) 0 1px 2px 0,rgba(60,64,67,.15) 0 1px 3px 1px}.gs-column-menu ul{color:#555;margin:0;padding:0;min-width:200px}.gs-column-menu li{padding:5px 10px;list-style-type:none}.gs-column-menu li.gs-enabled{cursor:pointer}.gs-column-menu li.gs-enabled:hover{background-color:#eee}.gs-column-menu li.gs-disabled{opacity:.5;cursor:not-allowed}.gs-column-menu li .gs-menu-name{font-size:13px;letter-spacing:1px}.gs-column-menu li.gs-menu-divider{background-color:#aaa;padding:0;height:1px;margin:5px 0}.gs-column-menu .gs-column-menu-label{padding:5px 10px}.gs-column-menu .gs-label-input-row{display:flex;gap:4px;align-items:center}.gs-column-menu .gs-label-input{flex:1;font-size:13px;padding:4px 6px;border:none;border-bottom:1px solid #ccc;border-radius:0;outline:0;min-width:0;background-color:transparent;box-shadow:none}.gs-column-menu .gs-label-input:focus{border-bottom-color:#07f;outline:0;box-shadow:none}.gs-column-menu .gs-label-apply-btn{font-size:12px;padding:3px 13px;border:1px solid transparent;border-radius:3px;background-color:transparent;color:#1a8a1a;cursor:pointer;font-weight:700;letter-spacing:1px}.gs-column-menu .gs-label-apply-btn:hover{border-color:#1a8a1a}.gs-column-menu .gs-column-menu-filter{padding:5px 10px}.gs-column-menu .gs-filter-header{display:flex;align-items:center;gap:8px}.gs-column-menu .gs-filter-header .gs-filter-add-btn{font-size:12px;padding:3px 9px;border:1px solid transparent;border-radius:3px;background-color:transparent;cursor:pointer;color:#555;letter-spacing:1px}.gs-column-menu .gs-filter-header .gs-filter-add-btn:hover{border-color:#555}.gs-column-menu .gs-filter-mode-toggle{display:flex;gap:6px;margin-left:auto}.gs-column-menu .gs-filter-mode-toggle label{display:flex;align-items:center;gap:3px;font-size:11px;font-weight:700;letter-spacing:.5px;color:#888;cursor:pointer;user-select:none}.gs-column-menu .gs-filter-mode-toggle label input[type=radio]{margin:0;cursor:pointer}.gs-column-menu .gs-filter-mode-toggle label.gs-active{color:#07f}.gs-column-menu .gs-filter-mode-toggle.gs-disabled{opacity:.4;pointer-events:none}.gs-column-menu .gs-filter-conditions{display:flex;flex-direction:column;gap:5px;margin-top:6px;max-height:200px;overflow-y:auto}.gs-column-menu .gs-filter-condition-row{display:flex;gap:4px;align-items:normal}.gs-column-menu .gs-filter-method-select{font-size:12px;padding:4px 4px;border:none;border-bottom:1px solid #ccc;border-radius:0;outline:0;background-color:#fff;box-shadow:none;min-width:40px;max-width:80px;cursor:pointer}.gs-column-menu .gs-filter-method-select:focus{border-bottom-color:#07f;outline:0;box-shadow:none}.gs-column-menu .gs-filter-value-input{flex:1;font-size:13px;padding:4px 6px;border:none;border-bottom:1px solid #ccc;border-radius:0;outline:0;min-width:0;width:80px;background-color:transparent;box-shadow:none}.gs-column-menu .gs-filter-value-input:focus{border-bottom-color:#07f;outline:0;box-shadow:none}.gs-column-menu .gs-filter-remove-btn{font-size:12px;padding:0;border:none;border-radius:3px;background-color:transparent;cursor:pointer;color:#999;line-height:1;flex-shrink:0}.gs-column-menu .gs-filter-remove-btn:hover{color:#c33}.gs-column-menu .gs-filter-actions{display:flex;gap:4px;margin-top:10px;align-items:center}.gs-column-menu .gs-filter-actions .gs-filter-reset-all-btn{font-size:12px;padding:3px 9px;border:1px solid transparent;border-radius:3px;background-color:transparent;cursor:pointer;color:#c33;font-weight:700;letter-spacing:1px}.gs-column-menu .gs-filter-actions .gs-filter-reset-all-btn:hover{border-color:#c33}.gs-column-menu .gs-filter-actions .gs-filter-actions-right{display:flex;gap:4px;margin-left:auto}.gs-column-menu .gs-filter-actions .gs-filter-reset-btn{font-size:12px;padding:3px 9px;border:1px solid transparent;border-radius:3px;background-color:transparent;cursor:pointer;color:#e08000;font-weight:700;letter-spacing:1px}.gs-column-menu .gs-filter-actions .gs-filter-reset-btn:hover{border-color:#e08000}.gs-column-menu .gs-filter-actions .gs-filter-apply-btn{font-size:12px;padding:3px 13px;border:1px solid transparent;border-radius:3px;background-color:transparent;color:#07f;cursor:pointer;font-weight:700;letter-spacing:1px}.gs-column-menu .gs-filter-actions .gs-filter-apply-btn:hover{border-color:#07f}.gs-column-menu-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);background-color:rgba(128,128,128,.3);border:1px solid #ccc;border-radius:50%;cursor:pointer;font-size:12px;font-weight:700;line-height:1;color:#888;width:18px;height:18px;padding:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease;z-index:2}.gs-column-menu-btn.gs-filtered{opacity:1;background-color:#e0edff;border-color:#07f;color:#07f}.gs-column-menu-btn.gs-active{opacity:1;background-color:#d0e0ff;border-color:#07f;color:#07f}.gs-th-top:hover .gs-column-menu-btn{opacity:1}.gs-editor-hl{padding:0 2px!important;position:absolute;font-family:monospace,Arial;font-size:12px;line-height:24px;letter-spacing:1px}.gs-formula-bar-editor-inner{position:relative;display:table-cell}.gs-editor{opacity:0;z-index:-1}.gs-editor .gs-editor-inner{position:relative}.gs-editor .gs-editor-hl{box-sizing:content-box;border:solid 2px #07f;margin:-2px -1px}.gs-editor textarea{width:100%;padding:0 2px!important;position:absolute;font-size:12px;font-family:monospace,Arial;line-height:24px;letter-spacing:1px;top:0;left:0;border:none;outline:0;background-color:transparent;color:transparent;resize:none;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;overflow:hidden;cursor:default;white-space:pre;height:auto}.gs-editor.gs-editing{z-index:11;opacity:1}.gs-editor.gs-editing .gs-cell-label{pointer-events:none;font-family:math,monospace,serif;position:absolute;top:0;right:0;margin-top:-15px;margin-right:-2px;padding:0 2px;font-size:10px;background-color:rgba(0,119,255,.75);color:#fff;z-index:1}.gs-formula-bar{width:100%;position:relative;display:table;align-items:center;justify-content:center;border-top:solid 1px rgba(128,128,128,.3);border-left:solid 1px rgba(128,128,128,.3);border-right:solid 1px rgba(128,128,128,.3);box-sizing:border-box}.gs-formula-bar .gs-selecting-address{display:table-cell;vertical-align:middle;width:60px;color:rgba(200,200,200);font-size:13px;text-align:center}.gs-formula-bar .gs-fx{display:table-cell;vertical-align:middle;width:30px;color:rgba(200,200,200);font-style:italic;font-family:cursive;text-align:center;border-left:solid 1px rgba(128,128,128,.5);font-size:15px}.gs-formula-bar .gs-editor-hl{z-index:0;overflow-y:auto;box-sizing:border-box;white-space:pre-wrap;word-break:break-all}.gs-formula-bar textarea{position:relative;z-index:1;width:100%;vertical-align:bottom;color:transparent;border:none;background-color:transparent;padding:0 2px;box-sizing:border-box;outline:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;font-size:12px;font-family:monospace,Arial;height:24px;line-height:24px;min-height:24px;letter-spacing:1px;resize:vertical;caret-color:rgba(128,128,128);white-space:pre-wrap;word-break:break-all}.gs-token-type-INVALID_REF{color:red}.gs-token-type-VALUE.gs-token-entity-type-boolean,.gs-token-type-VALUE.gs-token-entity-type-number{color:#39f}.gs-token-type-VALUE.gs-token-entity-type-string{color:#090}.gs-editor-options{padding:0;box-shadow:0 2px 8px rgba(0,0,0,.25);border:1px solid rgba(128,128,128,.2);border-radius:4px}.gs-editor-option{cursor:pointer;list-style:none;padding:5px;font-size:12px}.gs-editor-option:hover{background-color:rgba(128,128,128,.1)}.gs-editor-option-selected{background-color:rgba(128,128,128,.2)}.gs-adjuster{padding:0}.gs-table{margin:0}.gs-tabular{overflow:auto;display:block;box-sizing:border-box;overscroll-behavior:none;position:relative}.gs-tabular-inner>table{table-layout:fixed;border-collapse:collapse;border-spacing:0}.gs-th{z-index:2;padding:0;position:sticky;font-size:13px;font-weight:400;box-sizing:border-box;vertical-align:top}.gs-th .gs-resizer{position:absolute;border-color:transparent;box-sizing:border-box;z-index:2}.gs-th .gs-resizer:hover{background-color:#07f}.gs-th .gs-resizer.gs-protected{display:none}.gs-th-inner{height:100%;box-sizing:border-box;vertical-align:middle;overflow:hidden;display:flex;align-items:center;justify-content:center}.gs-th-inner-wrap{height:100%;box-sizing:border-box;background-color:transparent}.gs-th-top{top:0;overflow:hidden}.gs-th-top .gs-resizer{top:0;right:0;width:3px;cursor:e-resize}.gs-th-top .gs-resizer.gs-dragging{border-right-style:dotted;height:1000000px!important;cursor:e-resize}.gs-th-left{left:0;overflow:hidden;min-width:30px;border-top:solid 1px #ddd}.gs-th-left .gs-resizer{left:0;bottom:0;height:3px;cursor:n-resize}.gs-th-left .gs-resizer.gs-dragging{border-bottom-style:dotted;width:1000000px!important;cursor:n-resize}.gs-th-top.gs-th-left{top:0;left:0;z-index:3;border:none!important}.gs-search-bar{width:100%;display:table;align-items:center;justify-content:center;border-top:solid 1px rgba(128,128,128,.3);border-left:solid 1px rgba(128,128,128,.3);border-right:solid 1px rgba(128,128,128,.3);box-sizing:border-box;background-color:rgba(200,50,0,.2)}.gs-search-bar.gs-search-found{background-color:rgba(0,200,100,.2)}.gs-search-bar .gs-search-bar-inner{vertical-align:middle;border-left:solid 1px rgba(128,128,128,.5)}.gs-search-bar .gs-search-bar-icon{border-left:solid 1px rgba(128,128,128,.3);display:table-cell;vertical-align:middle;width:30px}.gs-search-bar textarea{background-color:transparent;border:none;padding:0 2px;box-sizing:border-box;outline:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;font-size:12px;font-family:monospace,Arial;height:24px;line-height:24px;min-height:24px;letter-spacing:1px;caret-color:rgba(128,128,128);white-space:pre-wrap;word-break:break-all;display:table-cell;vertical-align:middle;width:100%;resize:none}.gs-search-progress{display:table-cell;color:#999;font-size:13px;width:60px;vertical-align:middle;white-space:nowrap;text-align:center}.gs-search-close{display:table-cell;cursor:pointer;vertical-align:middle;width:24px}.gs-search-casesensitive{display:table-cell;cursor:pointer;vertical-align:middle;width:30px}.gs-search-casesensitive span{font-size:14px;padding:0 3px}.gs-search-casesensitive span.gs-search-casesensitive-on{color:#07f;background-color:rgba(200,200,255,.5);border-radius:3px}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}";
1
+ export declare const LAST_MODIFIED = 1771698337;
2
+ export declare const CSS = ".gs-root1{display:inline-block;position:relative;border-spacing:0;width:fit-content;max-width:100%;overflow:auto;font-family:\"SF Pro Text\",\"SF Pro Icons\",\"Helvetica Neue\",Helvetica,Arial,Meiryo,sans-serif;visibility:hidden;opacity:0}.gs-root1.gs-initialized{visibility:visible;opacity:1;transition:opacity .2s ease-in-out}.gs-root1 .gs-main{flex:1;max-width:100%;overflow:hidden;position:relative;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.gs-root1 .gs-resizing{width:100%;height:100%;position:absolute;background-color:rgba(0,127,255,.08);top:0;left:0;z-index:2}.gs-root1 .gs-line-horizontal{width:100%}.gs-root1 .gs-line-vertical{height:100%}.gs-root1 .gs-line{position:relative;top:0;left:0;border:dotted 1px #07f;box-sizing:border-box}.gs-root1 .gs-line span{font-size:10px;padding:3px;background-color:#07f;color:#fff;margin:0;position:absolute;top:0;left:0}.gs-root1 .gs-scroll-handle{width:100%;height:100%;cursor:cell}.gs-hidden{visibility:hidden;position:absolute;top:0;left:0;width:0;height:0;overflow:hidden;pointer-events:none;z-index:-1}.gs-fixed{position:fixed;top:0;left:0;z-index:1}.gs-root1[data-mode=light]{background-color:#e2e2e2;color:#000}.gs-root1[data-mode=light] .gs-main{background-color:#e2e2e2;border-right:solid 1px #ddd;border-bottom:solid 1px #ddd}.gs-root1[data-mode=light] .gs-tabular{background-color:#e2e2e2}.gs-root1[data-mode=light] .gs-formula-bar{background-color:#efefef}.gs-root1[data-mode=light] .gs-formula-bar-editor-inner{color:#555}.gs-root1[data-mode=light] .gs-cell{background-color:#f7f7f7;border-top:solid 1px #ddd;border-left:solid 1px #ddd}.gs-root1[data-mode=light] .gs-adjuster{background-color:#ddd}.gs-root1[data-mode=light] .gs-tabular-inner{background-color:#ddd}.gs-root1[data-mode=light] .gs-th{background-color:#efefef;color:#666}.gs-root1[data-mode=light] .gs-th-top{border-left:solid 1px #ddd}.gs-root1[data-mode=light] .gs-th-top .gs-th-inner{border-top:solid 1px #ddd}.gs-root1[data-mode=light] .gs-th-left{border-top:solid 1px #ddd}.gs-root1[data-mode=light] .gs-th-left .gs-th-inner{border-left:solid 1px #ddd}.gs-root1[data-mode=light] .gs-search-bar{color:rgba(0,0,0,.3)}.gs-editor[data-mode=light].gs-editing textarea{caret-color:#000000}.gs-editor[data-mode=light].gs-editing .gs-editor-hl{background-color:#f7f7f7;color:#000}.gs-editor[data-mode=light] .gs-editor-options{color:#000;background-color:#f7f7f7;border:solid 1px #ddd}.gs-root1[data-mode=dark]{background-color:#5a5a5a;color:#eee}.gs-root1[data-mode=dark] .gs-main{background-color:#3f3f3f;border-right:solid 1px #5a5a5a;border-bottom:solid 1px #5a5a5a}.gs-root1[data-mode=dark] .gs-tabular{background-color:#3f3f3f}.gs-root1[data-mode=dark] .gs-formula-bar{background-color:#4f4f4f}.gs-root1[data-mode=dark] .gs-formula-bar-editor-inner{color:#bbb}.gs-root1[data-mode=dark] .gs-cell{background-color:#212121;border-top:solid 1px #5a5a5a;border-left:solid 1px #5a5a5a}.gs-root1[data-mode=dark] .gs-adjuster{background-color:#5a5a5a}.gs-root1[data-mode=dark] .gs-tabular-inner{background-color:#5a5a5a}.gs-root1[data-mode=dark] .gs-large-editor textarea{color:#eee;caret-color:#eeeeee}.gs-root1[data-mode=dark] .gs-th{background-color:#4f4f4f;color:#eee}.gs-root1[data-mode=dark] .gs-th-top{border-left:solid 1px #5a5a5a}.gs-root1[data-mode=dark] .gs-th-top .gs-th-inner{border-top:solid 1px #5a5a5a}.gs-root1[data-mode=dark] .gs-th-left{border-top:solid 1px #5a5a5a}.gs-root1[data-mode=dark] .gs-th-left .gs-th-inner{border-left:solid 1px #5a5a5a}.gs-root1[data-mode=dark] .gs-search-bar textarea{color:#eee;caret-color:#eeeeee}.gs-root1[data-mode=dark] .gs-search-bar{color:rgba(255,255,255,.3)}.gs-editor[data-mode=dark].gs-editing textarea{caret-color:#eeeeee}.gs-editor[data-mode=dark].gs-editing .gs-editor-hl{background-color:#212121;color:#eee}.gs-editor[data-mode=dark] .gs-editor-options{color:#eee;background-color:#5a5a5a;border:solid 1px #5a5a5a}.gs-cell{transition:border-color .2s ease;padding:0;margin:0;box-sizing:border-box;position:relative;font-size:13px;letter-spacing:1px;line-height:24px;cursor:cell;user-select:none;-webkit-user-select:none;-moz-user-select:none}.gs-cell.gs-copying textarea:focus{outline:solid 1px #0077ff}.gs-cell.gs-selecting{z-index:1}.gs-cell.gs-selecting .gs-cell-label{display:block}.gs-cell.gs-choosing{margin-top:-1px;margin-left:-1px;z-index:1}.gs-cell.gs-choosing.gs-editing{color:transparent}.gs-cell.gs-choosing .gs-cell-label{display:block}.gs-cell.gs-pending .gs-cell-rendered{position:relative;overflow:hidden}.gs-cell.gs-pending .gs-cell-rendered::after{content:'';position:absolute;bottom:0;left:0;height:4px;width:40%;border-radius:1px;background:rgba(100,140,255,.6);animation:gs-pending-slide 1.4s ease-in-out infinite}.gs-cell .gs-formula-error-triangle{position:absolute;top:0;right:0;border-top:3px solid rgba(200,0,0,.9);border-right:3px solid rgba(200,0,0,.9);border-bottom:3px solid transparent;border-left:3px solid transparent;z-index:1}.gs-cell .gs-cell-label{font-size:8px;font-weight:400;font-style:normal;font-family:math,monospace,serif;letter-spacing:1px;line-height:14px;position:absolute;top:0;right:0;background-color:rgba(0,128,255,.6);color:rgba(255,255,255,.6);padding:0 2px;display:none;opacity:.7}.gs-cell .gs-cell-inner-wrap{width:100%;height:100%;position:absolute;top:0;left:0}.gs-cell .gs-cell-inner{width:100%;height:100%;overflow:hidden;display:flex;box-sizing:border-box;border:none!important}.gs-cell .gs-cell-rendered{overflow:hidden;white-space:pre-wrap;cursor:cell;word-wrap:break-word;word-break:break-all;padding:0 2px;width:100%;height:100%}.gs-cell .gs-cell-rendered>*{position:relative}.gs-cell .gs-cell-rendered>.backface{z-index:0}.gs-cell .gs-autofill-drag{background-color:#07f;position:absolute;width:7px;height:7px;bottom:0;right:0;margin-right:-3.5px;margin-bottom:-3.5px;cursor:crosshair;z-index:1}.gs-th[data-x=\"1\"] .gs-th-inner-wrap{border-left:none}.gs-th[data-y=\"1\"] .gs-th-inner-wrap{border-top:none}.gs-cell[data-x=\"1\"]{border-left:none}.gs-cell[data-y=\"1\"]{border-top:none}.gs-menu-btn{position:absolute;background-color:rgba(128,128,128,.3);border:1px solid #ccc;border-radius:50%;cursor:pointer;font-size:12px;font-weight:700;line-height:1;color:#888;width:18px;height:18px;padding:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease;z-index:2}.gs-contextmenu-modal{width:100%;height:100vh;z-index:12}.gs-contextmenu{z-index:12;position:fixed;background-color:#fff;padding:5px 0;border-radius:5px;box-shadow:rgba(60,64,67,.3) 0 1px 2px 0,rgba(60,64,67,.15) 0 1px 3px 1px;opacity:.9;transition:opacity .15s ease}.gs-contextmenu:hover{opacity:1}.gs-contextmenu ul{color:#555;margin:0;padding:0;min-width:250px}.gs-contextmenu li{padding:5px 10px;list-style-type:none;display:flex}.gs-contextmenu li.gs-enabled{cursor:pointer}.gs-contextmenu li.gs-enabled:hover{background-color:#eee}.gs-contextmenu li.gs-disabled{opacity:.5;cursor:not-allowed}.gs-contextmenu li .gs-menu-name{font-size:13px;letter-spacing:1px}.gs-contextmenu li.gs-menu-divider{background-color:#aaa;padding:0;height:1px;margin:10px 0}.gs-contextmenu li .gs-menu-name{flex:1}.gs-contextmenu li .gs-menu-shortcut{font-size:10px;line-height:20px;color:#999}.gs-contextmenu li .gs-menu-shortcut:before{content:\"( \"}.gs-contextmenu li .gs-menu-shortcut:after{content:\" )\"}.gs-contextmenu li .gs-menu-shortcut .gs-menu-underline{text-decoration:underline}.gs-column-menu-modal{width:100%;height:100vh;z-index:12}.gs-column-menu{z-index:12;position:fixed;background-color:#fff;padding:5px 0;border-radius:5px;box-shadow:rgba(60,64,67,.3) 0 1px 2px 0,rgba(60,64,67,.15) 0 1px 3px 1px;opacity:.9;transition:opacity .15s ease}.gs-column-menu:hover{opacity:1}.gs-column-menu ul{color:#555;margin:0;padding:0;min-width:200px}.gs-column-menu li{padding:5px 10px;list-style-type:none}.gs-column-menu li.gs-enabled{cursor:pointer}.gs-column-menu li.gs-enabled:hover{background-color:#eee}.gs-column-menu li.gs-disabled{opacity:.5;cursor:not-allowed}.gs-column-menu li .gs-menu-name{font-size:13px;letter-spacing:1px}.gs-column-menu li.gs-menu-divider{background-color:#aaa;padding:0;height:1px;margin:5px 0}.gs-column-menu .gs-column-menu-label{padding:5px 10px}.gs-column-menu .gs-label-input-row{display:flex;gap:4px;align-items:center}.gs-column-menu .gs-label-input{flex:1;font-size:13px;padding:4px 6px;border:none;border-bottom:1px solid #ccc;border-radius:0;outline:0;min-width:0;width:100px;background-color:transparent;box-shadow:none}.gs-column-menu .gs-label-input:focus{border-bottom-color:#07f;outline:0;box-shadow:none}.gs-column-menu .gs-label-apply-btn{font-size:12px;padding:3px 6px;border:1px solid transparent;border-radius:3px;background-color:transparent;color:#1a8a1a;cursor:pointer;font-weight:700;letter-spacing:1px}.gs-column-menu .gs-label-apply-btn:hover{border-color:#1a8a1a}.gs-column-menu .gs-column-menu-filter{padding:5px 10px}.gs-column-menu .gs-filter-header{display:flex;align-items:center;gap:8px}.gs-column-menu .gs-filter-header .gs-filter-add-btn{font-size:12px;padding:3px 9px;border:1px solid transparent;border-radius:3px;background-color:transparent;cursor:pointer;color:#555;letter-spacing:1px}.gs-column-menu .gs-filter-header .gs-filter-add-btn:hover{border-color:#555}.gs-column-menu .gs-filter-mode-toggle{display:flex;gap:6px;margin-left:auto}.gs-column-menu .gs-filter-mode-toggle label{display:flex;align-items:center;gap:3px;font-size:11px;font-weight:700;letter-spacing:.5px;color:#888;cursor:pointer;user-select:none}.gs-column-menu .gs-filter-mode-toggle label input[type=radio]{margin:0;cursor:pointer}.gs-column-menu .gs-filter-mode-toggle label.gs-active{color:#07f}.gs-column-menu .gs-filter-mode-toggle.gs-disabled{opacity:.4;pointer-events:none}.gs-column-menu .gs-filter-conditions{display:flex;flex-direction:column;gap:5px;margin-top:6px;max-height:200px;overflow-y:auto}.gs-column-menu .gs-filter-condition-row{display:flex;gap:4px;align-items:normal}.gs-column-menu .gs-filter-method-select{font-size:12px;padding:4px 4px;border:none;border-bottom:1px solid #ccc;border-radius:0;outline:0;background-color:#fff;box-shadow:none;min-width:40px;max-width:80px;cursor:pointer}.gs-column-menu .gs-filter-method-select:focus{border-bottom-color:#07f;outline:0;box-shadow:none}.gs-column-menu .gs-filter-value-input{flex:1;font-size:13px;padding:4px 6px;border:none;border-bottom:1px solid #ccc;border-radius:0;outline:0;min-width:0;width:80px;background-color:transparent;box-shadow:none}.gs-column-menu .gs-filter-value-input:focus{border-bottom-color:#07f;outline:0;box-shadow:none}.gs-column-menu .gs-filter-remove-btn{font-size:12px;padding:0;border:none;border-radius:3px;background-color:transparent;cursor:pointer;color:#999;line-height:1;flex-shrink:0}.gs-column-menu .gs-filter-remove-btn:hover{color:#c33}.gs-column-menu .gs-filter-actions{display:flex;gap:4px;margin-top:10px;align-items:center}.gs-column-menu .gs-filter-actions .gs-filter-reset-all-btn{font-size:12px;padding:3px 9px;border:1px solid transparent;border-radius:3px;background-color:transparent;cursor:pointer;color:#c33;font-weight:700;letter-spacing:1px}.gs-column-menu .gs-filter-actions .gs-filter-reset-all-btn:hover{border-color:#c33}.gs-column-menu .gs-filter-actions .gs-filter-actions-right{display:flex;gap:4px;margin-left:auto}.gs-column-menu .gs-filter-actions .gs-filter-reset-btn{font-size:12px;padding:3px 9px;border:1px solid transparent;border-radius:3px;background-color:transparent;cursor:pointer;color:#e08000;font-weight:700;letter-spacing:1px}.gs-column-menu .gs-filter-actions .gs-filter-reset-btn:hover{border-color:#e08000}.gs-column-menu .gs-filter-actions .gs-filter-apply-btn{font-size:12px;padding:3px 6px;border:1px solid transparent;border-radius:3px;background-color:transparent;color:#07f;cursor:pointer;font-weight:700;letter-spacing:1px}.gs-column-menu .gs-filter-actions .gs-filter-apply-btn:hover{border-color:#07f}.gs-column-menu-waiting{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 30px;gap:12px;min-width:180px}.gs-column-menu-waiting .gs-waiting-message{font-size:13px;font-weight:700;color:#555;letter-spacing:.5px}.gs-column-menu-waiting .gs-waiting-spinner{width:24px;height:24px;border:3px solid #e0e0e0;border-top-color:#07f;border-radius:50%;animation:spin .8s linear infinite}.gs-column-menu-waiting .gs-waiting-cancel-btn{font-size:12px;padding:4px 18px;border:1px solid #c33;border-radius:3px;background-color:transparent;color:#c33;cursor:pointer;font-weight:700;letter-spacing:1px}.gs-column-menu-waiting .gs-waiting-cancel-btn:hover{background-color:#c33;color:#fff}.gs-column-menu-btn{right:4px;top:50%;transform:translateY(-50%)}.gs-column-menu-btn.gs-filtered{opacity:1;background-color:#e0edff;border-color:#07f;color:#07f}.gs-column-menu-btn.gs-active{opacity:1;background-color:#d0e0ff;border-color:#07f;color:#07f}.gs-th-top:hover .gs-column-menu-btn{opacity:1}.gs-row-menu-modal{width:100%;height:100vh;z-index:12}.gs-row-menu{z-index:12;position:fixed;background-color:#fff;padding:5px 0;border-radius:5px;box-shadow:rgba(60,64,67,.3) 0 1px 2px 0,rgba(60,64,67,.15) 0 1px 3px 1px;opacity:.9;transition:opacity .15s ease}.gs-row-menu:hover{opacity:1}.gs-row-menu ul{color:#555;margin:0;padding:0;min-width:200px}.gs-row-menu li{padding:5px 10px;list-style-type:none}.gs-row-menu li.gs-enabled{cursor:pointer}.gs-row-menu li.gs-enabled:hover{background-color:#eee}.gs-row-menu li.gs-disabled{opacity:.5;cursor:not-allowed}.gs-row-menu li .gs-menu-name{font-size:13px;letter-spacing:1px}.gs-row-menu li.gs-menu-divider{background-color:#aaa;padding:0;height:1px;margin:5px 0}.gs-row-menu-btn{top:50%;transform:translateY(-50%);right:2px}.gs-row-menu-btn.gs-active{opacity:1;background-color:#d0e0ff;border-color:#07f;color:#07f}.gs-th-left:hover .gs-row-menu-btn{opacity:1}.gs-corner-menu-btn{bottom:2px;right:2px}.gs-corner-menu-btn:hover{opacity:1;background-color:#d0e0ff;border-color:#07f;color:#07f}.gs-th-left.gs-th-top:hover .gs-corner-menu-btn{opacity:1}.gs-editor-hl{padding:0 2px!important;position:absolute;font-family:monospace,Arial;font-size:12px;line-height:24px;letter-spacing:1px}.gs-formula-bar-editor-inner{position:relative;display:table-cell}.gs-editor{opacity:0;z-index:-1}.gs-editor .gs-editor-inner{position:relative}.gs-editor .gs-editor-hl{box-sizing:content-box;border:solid 2px #07f;margin:-2px -1px}.gs-editor textarea{width:100%;padding:0 2px!important;position:absolute;font-size:12px;font-family:monospace,Arial;line-height:24px;letter-spacing:1px;top:0;left:0;border:none;outline:0;background-color:transparent;color:transparent;resize:none;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;overflow:hidden;cursor:default;white-space:pre;height:auto}.gs-editor.gs-editing{z-index:11;opacity:1}.gs-editor.gs-editing .gs-cell-label{pointer-events:none;font-family:math,monospace,serif;position:absolute;top:0;right:0;margin-top:-15px;margin-right:-2px;padding:0 2px;font-size:10px;background-color:rgba(0,119,255,.75);color:#fff;z-index:1}.gs-formula-bar{width:100%;position:relative;display:table;align-items:center;justify-content:center;border-top:solid 1px rgba(128,128,128,.3);border-left:solid 1px rgba(128,128,128,.3);border-right:solid 1px rgba(128,128,128,.3);box-sizing:border-box}.gs-formula-bar .gs-selecting-address{display:table-cell;vertical-align:middle;width:60px;color:rgba(200,200,200);font-size:13px;text-align:center}.gs-formula-bar .gs-fx{display:table-cell;vertical-align:middle;width:30px;color:rgba(200,200,200);font-style:italic;font-family:cursive;text-align:center;border-left:solid 1px rgba(128,128,128,.5);font-size:15px}.gs-formula-bar .gs-editor-hl{z-index:0;overflow-y:auto;box-sizing:border-box;white-space:pre-wrap;word-break:break-all}.gs-formula-bar textarea{position:relative;z-index:1;width:100%;vertical-align:bottom;color:transparent;border:none;background-color:transparent;padding:0 2px;box-sizing:border-box;outline:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;font-size:12px;font-family:monospace,Arial;height:24px;line-height:24px;min-height:24px;letter-spacing:1px;resize:vertical;caret-color:rgba(128,128,128);white-space:pre-wrap;word-break:break-all}.gs-token-type-INVALID_REF{color:red}.gs-token-type-VALUE.gs-token-entity-type-boolean,.gs-token-type-VALUE.gs-token-entity-type-number{color:#39f}.gs-token-type-VALUE.gs-token-entity-type-string{color:#090}.gs-editor-options{padding:0;box-shadow:0 2px 8px rgba(0,0,0,.25);border:1px solid rgba(128,128,128,.2);border-radius:4px}.gs-editor-option{cursor:pointer;list-style:none;padding:5px;font-size:12px}.gs-editor-option:hover{background-color:rgba(128,128,128,.1)}.gs-editor-option-selected{background-color:rgba(128,128,128,.2)}.gs-adjuster{padding:0}.gs-table{margin:0}.gs-tabular{overflow:auto;display:block;box-sizing:border-box;overscroll-behavior:none;position:relative}.gs-tabular-inner>table{table-layout:fixed;border-collapse:collapse;border-spacing:0}.gs-th{z-index:2;padding:0;position:sticky;font-size:13px;font-weight:400;box-sizing:border-box;vertical-align:top}.gs-th .gs-resizer{position:absolute;border-color:transparent;box-sizing:border-box;z-index:2}.gs-th .gs-resizer:hover{background-color:#07f}.gs-th .gs-resizer.gs-protected{display:none}.gs-th-inner{height:100%;box-sizing:border-box;vertical-align:middle;overflow:hidden;display:flex;align-items:center;justify-content:center}.gs-th-inner-wrap{height:100%;box-sizing:border-box;background-color:transparent}.gs-th-top{top:0;overflow:hidden}.gs-th-top .gs-resizer{top:0;right:0;width:3px;cursor:e-resize}.gs-th-top .gs-resizer.gs-dragging{border-right-style:dotted;height:1000000px!important;cursor:e-resize}.gs-th-left{left:0;overflow:hidden;min-width:30px;border-top:solid 1px #ddd}.gs-th-left .gs-resizer{left:0;bottom:0;height:3px;cursor:n-resize}.gs-th-left .gs-resizer.gs-dragging{border-bottom-style:dotted;width:1000000px!important;cursor:n-resize}.gs-th-top.gs-th-left{top:0;left:0;z-index:3;border:none!important}.gs-search-bar{width:100%;display:table;align-items:center;justify-content:center;border-top:solid 1px rgba(128,128,128,.3);border-left:solid 1px rgba(128,128,128,.3);border-right:solid 1px rgba(128,128,128,.3);box-sizing:border-box;background-color:rgba(200,50,0,.2)}.gs-search-bar.gs-search-found{background-color:rgba(0,200,100,.2)}.gs-search-bar .gs-search-bar-inner{vertical-align:middle;border-left:solid 1px rgba(128,128,128,.5)}.gs-search-bar .gs-search-bar-icon{border-left:solid 1px rgba(128,128,128,.3);display:table-cell;vertical-align:middle;width:30px}.gs-search-bar textarea{background-color:transparent;border:none;padding:0 2px;box-sizing:border-box;outline:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;font-size:12px;font-family:monospace,Arial;height:24px;line-height:24px;min-height:24px;letter-spacing:1px;caret-color:rgba(128,128,128);white-space:pre-wrap;word-break:break-all;display:table-cell;vertical-align:middle;width:100%;resize:none}.gs-search-progress{display:table-cell;color:#999;font-size:13px;width:60px;vertical-align:middle;white-space:nowrap;text-align:center}.gs-search-close{display:table-cell;cursor:pointer;vertical-align:middle;width:24px}.gs-search-casesensitive{display:table-cell;cursor:pointer;vertical-align:middle;width:30px}.gs-search-casesensitive span{font-size:14px;padding:0 3px}.gs-search-casesensitive span.gs-search-casesensitive-on{color:#07f;background-color:rgba(200,200,255,.5);border-radius:3px}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes gs-pending-slide{0%{left:-40%}100%{left:100%}}@keyframes gs-pending-pulse{0%{left:0;width:0}50%{left:0;width:100%}100%{left:100%;width:0}}";
3
3
  //# sourceMappingURL=minified.d.ts.map