@gridsheet/preact-core 3.0.0-rc.0 → 3.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ContextMenu.d.ts +1 -0
- package/dist/components/EditorOptions.d.ts +11 -0
- package/dist/components/FunctionGuide.d.ts +19 -0
- package/dist/components/useAutocomplete.d.ts +25 -0
- package/dist/constants.d.ts +0 -13
- package/dist/formula/evaluator.d.ts +2 -0
- package/dist/formula/functions/__async.d.ts +9 -6
- package/dist/formula/functions/__base.d.ts +27 -5
- package/dist/formula/functions/abs.d.ts +2 -5
- package/dist/formula/functions/acos.d.ts +2 -5
- package/dist/formula/functions/add.d.ts +2 -5
- package/dist/formula/functions/and.d.ts +2 -12
- package/dist/formula/functions/asin.d.ts +2 -5
- package/dist/formula/functions/atan.d.ts +2 -5
- package/dist/formula/functions/atan2.d.ts +2 -5
- package/dist/formula/functions/average.d.ts +2 -12
- package/dist/formula/functions/col.d.ts +2 -6
- package/dist/formula/functions/concat.d.ts +2 -5
- package/dist/formula/functions/concatenate.d.ts +2 -12
- package/dist/formula/functions/cos.d.ts +2 -5
- package/dist/formula/functions/count.d.ts +2 -12
- package/dist/formula/functions/counta.d.ts +2 -12
- package/dist/formula/functions/countif.d.ts +2 -5
- package/dist/formula/functions/divide.d.ts +2 -5
- package/dist/formula/functions/eq.d.ts +2 -5
- package/dist/formula/functions/exp.d.ts +2 -5
- package/dist/formula/functions/gt.d.ts +2 -5
- package/dist/formula/functions/gte.d.ts +2 -5
- package/dist/formula/functions/hlookup.d.ts +2 -10
- package/dist/formula/functions/if.d.ts +2 -10
- package/dist/formula/functions/iferror.d.ts +2 -10
- package/dist/formula/functions/index.d.ts +2 -10
- package/dist/formula/functions/len.d.ts +2 -5
- package/dist/formula/functions/lenb.d.ts +2 -5
- package/dist/formula/functions/ln.d.ts +2 -5
- package/dist/formula/functions/log.d.ts +2 -5
- package/dist/formula/functions/log10.d.ts +2 -5
- package/dist/formula/functions/lt.d.ts +2 -5
- package/dist/formula/functions/lte.d.ts +2 -5
- package/dist/formula/functions/match.d.ts +2 -10
- package/dist/formula/functions/max.d.ts +2 -12
- package/dist/formula/functions/min.d.ts +2 -12
- package/dist/formula/functions/minus.d.ts +2 -5
- package/dist/formula/functions/mod.d.ts +2 -5
- package/dist/formula/functions/multiply.d.ts +2 -5
- package/dist/formula/functions/ne.d.ts +2 -5
- package/dist/formula/functions/not.d.ts +2 -5
- package/dist/formula/functions/now.d.ts +2 -2
- package/dist/formula/functions/or.d.ts +2 -12
- package/dist/formula/functions/pi.d.ts +2 -2
- package/dist/formula/functions/power.d.ts +2 -5
- package/dist/formula/functions/product.d.ts +2 -12
- package/dist/formula/functions/radians.d.ts +2 -5
- package/dist/formula/functions/rand.d.ts +2 -2
- package/dist/formula/functions/round.d.ts +2 -10
- package/dist/formula/functions/rounddown.d.ts +2 -10
- package/dist/formula/functions/roundup.d.ts +2 -10
- package/dist/formula/functions/row.d.ts +2 -6
- package/dist/formula/functions/sin.d.ts +2 -5
- package/dist/formula/functions/sqrt.d.ts +2 -5
- package/dist/formula/functions/sum.d.ts +2 -12
- package/dist/formula/functions/sumif.d.ts +2 -10
- package/dist/formula/functions/tan.d.ts +2 -5
- package/dist/formula/functions/uminus.d.ts +2 -5
- package/dist/formula/functions/vlookup.d.ts +2 -10
- package/dist/formula/mapping.d.ts +8 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.js +7572 -6553
- package/dist/index.js.map +1 -1
- package/dist/lib/cell.d.ts +13 -1
- package/dist/lib/coords.d.ts +1 -1
- package/dist/lib/hub.d.ts +8 -4
- package/dist/lib/spatial.d.ts +2 -0
- package/dist/lib/table.d.ts +6 -1
- package/dist/policy/core.d.ts +16 -9
- package/dist/sentinels.d.ts +23 -0
- package/dist/store/actions.d.ts +12 -0
- package/dist/store/dispatchers.d.ts +2 -0
- package/dist/store/helpers.d.ts +0 -6
- package/dist/styles/minified.d.ts +2 -2
- package/dist/types.d.ts +19 -9
- package/package.json +1 -1
package/dist/lib/cell.d.ts
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
-
import { CellType } from '../types';
|
|
1
|
+
import { AsyncCache, CellType, System } from '../types';
|
|
2
2
|
export declare const filterCellFields: (cell: CellType, ignoreFields: (keyof CellType)[]) => CellType;
|
|
3
|
+
/**
|
|
4
|
+
* Ensure that `cell._sys` exists, initialising it with sensible defaults
|
|
5
|
+
* when missing. Any keys present in `defaults` that are absent on the
|
|
6
|
+
* existing `_sys` object are filled in.
|
|
7
|
+
* Returns the (possibly freshly-created) `System` object.
|
|
8
|
+
*/
|
|
9
|
+
export declare const ensureSys: (cell: CellType, defaults?: Partial<System>) => System;
|
|
10
|
+
/**
|
|
11
|
+
* Write an `AsyncCache` entry into `cell.asyncCaches[key]`, creating the
|
|
12
|
+
* `asyncCaches` record if it does not yet exist.
|
|
13
|
+
*/
|
|
14
|
+
export declare const setAsyncCache: (cell: CellType, key: string, ac: AsyncCache) => void;
|
|
3
15
|
//# sourceMappingURL=cell.d.ts.map
|
package/dist/lib/coords.d.ts
CHANGED
|
@@ -5,6 +5,6 @@ export declare const y2r: (y: number) => string;
|
|
|
5
5
|
export declare const r2y: (row: number | string, absolute?: boolean) => number;
|
|
6
6
|
export declare const p2a: ({ y, x, absX, absY }: ExtraPointType) => string;
|
|
7
7
|
export declare const a2p: (address: Address) => ExtraPointType;
|
|
8
|
-
export declare const grantAddressAbsolute: (address: Address, absCol: boolean, absRow: boolean) => string
|
|
8
|
+
export declare const grantAddressAbsolute: (address: Address, absCol: boolean, absRow: boolean) => string;
|
|
9
9
|
export declare const stripAddressAbsolute: (address: Address) => string;
|
|
10
10
|
//# sourceMappingURL=coords.d.ts.map
|
package/dist/lib/hub.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Pending } from '../
|
|
2
|
-
import { HistoryType, RefPaletteType, SheetIdsByName, ContextsBySheetId, ZoneType, CellsByIdType, Id,
|
|
3
|
-
import { UserTable
|
|
1
|
+
import { Pending } from '../sentinels';
|
|
2
|
+
import { HistoryType, RefPaletteType, SheetIdsByName, ContextsBySheetId, ZoneType, CellsByIdType, Id, FeedbackType, EditorEvent, CursorStateType } from '../types';
|
|
3
|
+
import { UserTable } from './table';
|
|
4
4
|
import { FunctionMapping } from '../formula/functions/__base';
|
|
5
5
|
import { PolicyType } from '../policy/core';
|
|
6
6
|
import { RendererType } from '../renderers/core';
|
|
@@ -67,6 +67,11 @@ export declare class Wire {
|
|
|
67
67
|
solvedCaches: Map<Id, any>;
|
|
68
68
|
/** Currently in-flight async formula Pending sentinels (keyed by cell ID). */
|
|
69
69
|
asyncPending: Map<string, Pending>;
|
|
70
|
+
/** In-flight async formulas shared by cache key (for useInflight). */
|
|
71
|
+
asyncInflight?: Map<string, {
|
|
72
|
+
pending: Pending;
|
|
73
|
+
expireTime?: number;
|
|
74
|
+
}>;
|
|
70
75
|
copyingSheetId: number;
|
|
71
76
|
copyingZone: ZoneType;
|
|
72
77
|
cutting: boolean;
|
|
@@ -119,7 +124,6 @@ export declare class Wire {
|
|
|
119
124
|
}) => void;
|
|
120
125
|
transmit: (newHub?: TransmitProps) => void;
|
|
121
126
|
identifyFormula(): void;
|
|
122
|
-
getSystem(id: Id, table: Table): System;
|
|
123
127
|
constructor({ historyLimit, additionalFunctions, renderers, parsers, labelers, policies, onSave, onChange, onRemoveRows, onRemoveCols, onInsertRows, onInsertCols, onSelect, onKeyUp, onInit, }?: WireProps);
|
|
124
128
|
}
|
|
125
129
|
export type TransmitProps = Partial<Wire>;
|
package/dist/lib/spatial.d.ts
CHANGED
|
@@ -88,5 +88,7 @@ export declare const addressesToCols: (addresses: Address[], asc?: boolean | nul
|
|
|
88
88
|
* @param asc - true: ascending, false: descending, null: insertion order
|
|
89
89
|
*/
|
|
90
90
|
export declare const addressesToRows: (addresses: Address[], asc?: boolean | null) => number[];
|
|
91
|
+
export declare const isAreaNotSelected: (area: AreaType) => boolean;
|
|
92
|
+
export declare const isZoneNotSelected: (zone: ZoneType) => boolean;
|
|
91
93
|
export {};
|
|
92
94
|
//# sourceMappingURL=spatial.d.ts.map
|
package/dist/lib/table.d.ts
CHANGED
|
@@ -79,6 +79,7 @@ export interface UserTable {
|
|
|
79
79
|
getRectSize(area: AreaType): ShapeType;
|
|
80
80
|
getCellByPoint(point: PointType, refEvaluation?: RefEvaluation, raise?: boolean): CellType | undefined;
|
|
81
81
|
getCellByAddress(address: Address, refEvaluation?: RefEvaluation, raise?: boolean): CellType | undefined;
|
|
82
|
+
getPolicyByPoint(point: PointType): PolicyType;
|
|
82
83
|
getNumRows(base?: number): number;
|
|
83
84
|
getNumCols(base?: number): number;
|
|
84
85
|
getFieldMatrix(args?: GetFieldMatrixProps): any[][];
|
|
@@ -255,6 +256,7 @@ export declare class Table implements UserTable {
|
|
|
255
256
|
getSheetId(): number;
|
|
256
257
|
getTableBySheetName(sheetName: string): Table | null;
|
|
257
258
|
getTableBySheetId(sheetId: number): Table | null;
|
|
259
|
+
private static _stack;
|
|
258
260
|
initialize(cells: CellsByAddressType): void;
|
|
259
261
|
incrementVersion(): void;
|
|
260
262
|
private generateId;
|
|
@@ -315,6 +317,7 @@ export declare class Table implements UserTable {
|
|
|
315
317
|
* is no longer addressable; on forward pass they are skipped; on reverse pass the ID is written back.
|
|
316
318
|
*/
|
|
317
319
|
private _createMoveRelations;
|
|
320
|
+
get defaultPolicy(): PolicyType;
|
|
318
321
|
/**
|
|
319
322
|
* Apply (or reverse) a MoveRelations list.
|
|
320
323
|
*
|
|
@@ -442,8 +445,10 @@ export declare class Table implements UserTable {
|
|
|
442
445
|
getFunction(name: string): typeof import('../formula/functions/__base').BaseFunction;
|
|
443
446
|
getLabel(label: string | undefined, labelerKey: string | undefined, n: number): string | null;
|
|
444
447
|
getBase(): this;
|
|
448
|
+
addDependents(id: Id, dependency: string): void;
|
|
445
449
|
getSolvedCache(point: PointType): any;
|
|
446
|
-
|
|
450
|
+
setSolvingCache(point: PointType): void;
|
|
451
|
+
finishSolvedCache(point: PointType, value: any): void;
|
|
447
452
|
clearSolvedCaches(): void;
|
|
448
453
|
sheetPrefix(omit?: boolean): string;
|
|
449
454
|
rangeToArea(range: string): {
|
package/dist/policy/core.d.ts
CHANGED
|
@@ -1,47 +1,54 @@
|
|
|
1
|
+
import { FC, ReactNode } from 'react';
|
|
1
2
|
import { UserTable } from '../lib/table';
|
|
2
3
|
import { CellPatchType, CellType, OperationType, PointType } from '../types';
|
|
3
|
-
export type
|
|
4
|
+
export type AutocompleteOption = {
|
|
4
5
|
value: any;
|
|
5
6
|
label?: any;
|
|
6
7
|
keywords?: string[];
|
|
8
|
+
tooltip?: ReactNode | FC<{
|
|
9
|
+
value?: any;
|
|
10
|
+
}>;
|
|
7
11
|
};
|
|
8
12
|
export type RestrictProps = {
|
|
9
13
|
table: UserTable;
|
|
10
14
|
point: PointType;
|
|
11
|
-
|
|
12
|
-
|
|
15
|
+
current?: CellType;
|
|
16
|
+
next?: CellType;
|
|
13
17
|
operation: OperationType;
|
|
14
18
|
};
|
|
15
19
|
export type OnClipProps = {
|
|
16
20
|
table: UserTable;
|
|
17
21
|
point: PointType;
|
|
18
22
|
};
|
|
19
|
-
export type
|
|
23
|
+
export type GetFallbackProps = {
|
|
20
24
|
table: UserTable;
|
|
21
25
|
point: PointType;
|
|
22
26
|
value: any;
|
|
23
27
|
};
|
|
24
28
|
export type PolicyMixinType = {
|
|
25
|
-
|
|
29
|
+
getFallback?: (props: GetFallbackProps) => CellType | undefined;
|
|
26
30
|
select?: (props: RestrictProps) => CellType | undefined;
|
|
27
31
|
validate?: (props: RestrictProps) => CellType | undefined;
|
|
28
32
|
onClip?: (props: OnClipProps) => string;
|
|
29
|
-
getOptions?: () =>
|
|
33
|
+
getOptions?: () => AutocompleteOption[];
|
|
30
34
|
};
|
|
31
35
|
type PolicyProps = {
|
|
32
36
|
mixins?: PolicyMixinType[];
|
|
37
|
+
priority?: number;
|
|
33
38
|
};
|
|
34
39
|
export declare class Policy implements PolicyMixinType {
|
|
40
|
+
priority: number;
|
|
35
41
|
constructor(props?: PolicyProps);
|
|
36
42
|
private applyMixins;
|
|
37
|
-
|
|
43
|
+
getFallback(props: GetFallbackProps): any;
|
|
38
44
|
select(props: RestrictProps): any;
|
|
39
45
|
validate(props: RestrictProps): CellPatchType | undefined;
|
|
40
46
|
restrict(props: RestrictProps): CellPatchType | undefined;
|
|
41
47
|
onClip(props: OnClipProps): string;
|
|
42
|
-
getOptions():
|
|
48
|
+
getOptions(): AutocompleteOption[];
|
|
43
49
|
}
|
|
44
50
|
export type PolicyType = Policy;
|
|
45
|
-
export declare const
|
|
51
|
+
export declare const DEFAULT_POLICY_NAME = "default";
|
|
52
|
+
export declare const nonePolicy: Policy;
|
|
46
53
|
export {};
|
|
47
54
|
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare class Sentinel {
|
|
2
|
+
readonly code: string;
|
|
3
|
+
readonly __isSentinel = true;
|
|
4
|
+
constructor(code: string);
|
|
5
|
+
is(obj: any): obj is this;
|
|
6
|
+
static is(obj: any, code?: string): obj is Sentinel;
|
|
7
|
+
}
|
|
8
|
+
export declare const SOLVING: Sentinel;
|
|
9
|
+
/**
|
|
10
|
+
* Sentinel value representing an in-flight async formula computation.
|
|
11
|
+
* Cells whose solved cache contains a Pending will render a loading indicator.
|
|
12
|
+
* Dependent cells that encounter a Pending value also become pending.
|
|
13
|
+
*/
|
|
14
|
+
export declare class Pending<T = unknown> {
|
|
15
|
+
private static counter;
|
|
16
|
+
private readonly id;
|
|
17
|
+
readonly promise: Promise<T>;
|
|
18
|
+
readonly __isPending = true;
|
|
19
|
+
constructor(promise: Promise<T>);
|
|
20
|
+
static is(obj: any): obj is Pending;
|
|
21
|
+
toString(): string;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=sentinels.d.ts.map
|
package/dist/store/actions.d.ts
CHANGED
|
@@ -28,6 +28,14 @@ export declare const setSearchCaseSensitive: (payload: boolean) => {
|
|
|
28
28
|
type: number;
|
|
29
29
|
value: boolean;
|
|
30
30
|
};
|
|
31
|
+
export declare const setSearchRegex: (payload: boolean) => {
|
|
32
|
+
type: number;
|
|
33
|
+
value: boolean;
|
|
34
|
+
};
|
|
35
|
+
export declare const setSearchRange: (payload: ZoneType | undefined) => {
|
|
36
|
+
type: number;
|
|
37
|
+
value: ZoneType | undefined;
|
|
38
|
+
};
|
|
31
39
|
export declare const setEditingAddress: (payload: string) => {
|
|
32
40
|
type: number;
|
|
33
41
|
value: string;
|
|
@@ -310,6 +318,10 @@ export declare const setRowMenu: (payload: {
|
|
|
310
318
|
};
|
|
311
319
|
} | null;
|
|
312
320
|
};
|
|
321
|
+
export declare const setEditorHovering: (payload: boolean) => {
|
|
322
|
+
type: number;
|
|
323
|
+
value: boolean;
|
|
324
|
+
};
|
|
313
325
|
export declare const setStore: (payload: Partial<StoreType>) => {
|
|
314
326
|
type: number;
|
|
315
327
|
value: Partial<StoreType>;
|
|
@@ -14,6 +14,7 @@ export declare const rowsSorterAsc: ({ store, dispatch }: ContextMenuProps, x: n
|
|
|
14
14
|
export declare const rowsSorterDesc: ({ store, dispatch }: ContextMenuProps, x: number) => Promise<void>;
|
|
15
15
|
export declare const rowsFilterer: ({ store, dispatch }: ContextMenuProps, x: number, filter: FilterConfig) => Promise<void>;
|
|
16
16
|
export declare const rowsFilterClearer: ({ store, dispatch }: ContextMenuProps, x?: number) => Promise<void>;
|
|
17
|
+
export declare const searcher: ({ store, dispatch }: ContextMenuProps) => Promise<void>;
|
|
17
18
|
export declare const syncers: {
|
|
18
19
|
copy: ({ store, dispatch }: ContextMenuProps) => Promise<void>;
|
|
19
20
|
cut: ({ store, dispatch }: ContextMenuProps) => Promise<void>;
|
|
@@ -30,5 +31,6 @@ export declare const syncers: {
|
|
|
30
31
|
sortRowsDesc: ({ store, dispatch }: ContextMenuProps, x: number) => Promise<void>;
|
|
31
32
|
filterRows: ({ store, dispatch }: ContextMenuProps, x: number, filter: FilterConfig) => Promise<void>;
|
|
32
33
|
clearFilter: ({ store, dispatch }: ContextMenuProps, x?: number) => Promise<void>;
|
|
34
|
+
search: ({ store, dispatch }: ContextMenuProps) => Promise<void>;
|
|
33
35
|
};
|
|
34
36
|
//# sourceMappingURL=dispatchers.d.ts.map
|
package/dist/store/helpers.d.ts
CHANGED
|
@@ -8,12 +8,6 @@ export declare const restrictPoints: (store: StoreType, table: Table) => {
|
|
|
8
8
|
endY: number;
|
|
9
9
|
endX: number;
|
|
10
10
|
};
|
|
11
|
-
copyingZone: {
|
|
12
|
-
startY: number;
|
|
13
|
-
startX: number;
|
|
14
|
-
endY: number;
|
|
15
|
-
endX: number;
|
|
16
|
-
};
|
|
17
11
|
};
|
|
18
12
|
export declare const shouldTracking: (operation: string) => boolean;
|
|
19
13
|
export declare const initSearchStatement: (table: Table, store: StoreType) => {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const LAST_MODIFIED =
|
|
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}}";
|
|
1
|
+
export declare const LAST_MODIFIED = 1772897729;
|
|
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-modal{width:100%;height:100vh;z-index:12}.gs-label-input-label{font-size:13px;letter-spacing:1px}.gs-menu-divider{background-color:#aaa;padding:0;margin:5px 0;height:1px;list-style-type: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-context-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-context-menu:hover{opacity:1}.gs-context-menu .gs-menu-items{color:#555;margin:0;padding:0;min-width:250px}.gs-menu-item{padding:5px 10px;list-style-type:none;display:flex}.gs-menu-item.gs-enabled{cursor:pointer}.gs-menu-item.gs-enabled:hover{background-color:#eee}.gs-menu-item.gs-disabled{opacity:.5;cursor:not-allowed}.gs-menu-item .gs-menu-name{font-size:13px;letter-spacing:1px;flex:1}.gs-menu-shortcut{font-size:10px;line-height:20px;color:#999}.gs-menu-shortcut:before{content:\"( \"}.gs-menu-shortcut:after{content:\" )\"}.gs-menu-shortcut .gs-menu-underline{text-decoration:underline}.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 .gs-column-menu-sort{align-items:center}.gs-column-menu .gs-column-menu-sort .gs-sort-buttons{display:flex;gap:4px;margin-left:auto}.gs-column-menu .gs-column-menu-sort .gs-sort-btn{font-size:12px;padding:4px 8px;border:1px solid transparent;border-radius:3px;background-color:rgba(180,180,180,.1);cursor:pointer;color:#555;font-weight:700;letter-spacing:.5px}.gs-column-menu .gs-column-menu-sort .gs-sort-btn:hover:not(:disabled){border-color:#555}.gs-column-menu .gs-column-menu-sort .gs-sort-btn:disabled{opacity:.5;cursor:not-allowed}.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:4px 8px;border:1px solid transparent;border-radius:3px;background-color:rgba(180,180,180,.1);cursor:pointer;color:#555;font-weight:700;letter-spacing:.5px}.gs-column-menu .gs-label-apply-btn:hover:not(:disabled){border-color:#555}.gs-column-menu .gs-label-apply-btn:disabled{opacity:.5;cursor:not-allowed}.gs-column-menu .gs-column-menu-filter{padding:5px 10px;list-style-type:none;font-size:13px}.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:rgba(180,180,180,.1);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{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-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{position:fixed;z-index:1000;padding:4px;background:var(--gs-bg,#fff);box-shadow:0 4px 12px rgba(0,0,0,.15);border:1px solid rgba(0,0,0,.1);border-radius:6px;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;overflow:visible}.gs-editor-option{position:relative;cursor:pointer;list-style:none;padding:6px 12px;font-size:13px;border-radius:4px;color:#333;margin-bottom:2px}.gs-editor-option-content{display:flex;justify-content:space-between;width:100%;align-items:center}.gs-editor-option-tab{font-size:10px;color:#aaa;margin-left:8px;padding:2px 4px;border:1px solid #ddd;border-radius:3px;background:#f9f9f9}.gs-editor-option:last-child{margin-bottom:0}.gs-editor-option:hover{background-color:#f5f5f5}.gs-editor-option-selected{background-color:#ebf5ff;color:#06c;font-weight:500}.gs-editor-option-selected:hover{background-color:#e0f0ff}.gs-fn-guide1{position:absolute;top:-4px;left:calc(100% + 8px);background:#fff;border:1px solid rgba(0,0,0,.1);box-shadow:0 4px 16px rgba(0,0,0,.12);border-radius:6px;padding:16px;width:280px;z-index:1000;cursor:default;white-space:normal;color:#333}.gs-fn-guide1-tooltip{margin-bottom:8px;line-height:1.4;font-size:13px}.gs-fn-guide1-example{font-family:monospace;font-weight:600;font-size:13px;margin-bottom:8px;color:#1a1a1a;background:#f5f5f5;padding:6px 8px;border-radius:4px;border:1px solid #eee}.gs-fn-guide1-desc{font-size:13px;color:#555;margin-bottom:12px;line-height:1.4}.gs-fn-guide1-desc p{margin:0 0 6px 0}.gs-fn-guide1-desc p:last-child{margin-bottom:0}.gs-fn-guide1-args{border-top:1px solid #eee;padding-top:10px}.gs-fn-guide1-arg{margin-bottom:6px;line-height:1.4;font-size:12px}.gs-fn-guide1-arg-name{font-weight:600;color:#06c}.gs-fn-guide1-arg-opt{color:#888;font-size:11px}.gs-fn-guide1-arg-iter{font-weight:600;color:#06c}.gs-fn-guide1-arg-type{color:#06c;padding:0 4px;background:#ebf5ff;border-radius:3px;font-size:11px;margin:0 4px}.gs-fn-guide1-arg-desc{color:#666}.gs-editor[data-mode=dark] .gs-editor-options{background:#252526;border-color:#454545;box-shadow:0 4px 12px rgba(0,0,0,.5)}.gs-editor[data-mode=dark] .gs-editor-option{color:#ccc}.gs-editor[data-mode=dark] .gs-editor-option:hover{background-color:#333}.gs-editor[data-mode=dark] .gs-editor-option-selected{background-color:#094771;color:#fff}.gs-editor[data-mode=dark] .gs-editor-option-selected:hover{background-color:#0d5a8f}.gs-editor[data-mode=dark] .gs-editor-option-tab{color:#777;background:#333;border-color:#444}.gs-editor[data-mode=dark] .gs-fn-guide1{background:#252526;border-color:#454545;color:#ccc}.gs-editor[data-mode=dark] .gs-fn-guide1-example{background:#1e1e1e;border-color:#333;color:#d4d4d4}.gs-editor[data-mode=dark] .gs-fn-guide1-desc{color:#aaa}.gs-editor[data-mode=dark] .gs-fn-guide1-args{border-color:#333}.gs-editor[data-mode=dark] .gs-fn-guide1-arg-iter,.gs-editor[data-mode=dark] .gs-fn-guide1-arg-name{color:#4fc1ff}.gs-editor[data-mode=dark] .gs-fn-guide1-arg-opt{color:#777}.gs-editor[data-mode=dark] .gs-fn-guide1-arg-type{background:#094771;color:#4fc1ff}.gs-editor[data-mode=dark] .gs-fn-guide1-arg-desc{color:#999}.gs-editor[data-mode=dark] .gs-fn-guide2{background:#252526;border-color:#454545;box-shadow:0 4px 12px rgba(0,0,0,.5);color:#ccc}.gs-editor[data-mode=dark] .gs-fn-guide2-name{color:#dfdbdb;background:#333;border-color:#444}.gs-editor[data-mode=dark] .gs-fn-guide2 .gs-active-arg{color:#fff;background-color:#094771}.gs-editor[data-mode=dark] .gs-fn-guide2-arg-type{background:#094771;color:#4fc1ff}.gs-editor[data-mode=dark] .gs-fn-guide2-desc{color:#aaa;border-top-color:#333}.gs-fn-guide2{position:fixed;left:0;background:#fff;border:1px solid rgba(0,0,0,.1);box-shadow:0 4px 16px rgba(0,0,0,.12);border-radius:6px;padding:12px 16px;width:280px;z-index:1000;cursor:default;white-space:normal;color:#333;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;transition:opacity .1s ease-in-out}.gs-fn-guide2.gs-fn-guide2-hidden{opacity:0!important;pointer-events:none!important}.gs-fn-guide2-name{font-family:monospace;font-weight:700;font-size:13px;color:#1a1a1a;background:#f5f5f5;padding:6px 8px;border-radius:4px;border:1px solid #eee;display:block;width:100%;box-sizing:border-box;margin-bottom:8px}.gs-fn-guide2-args-inline{font-size:13px;font-family:monospace;line-height:1.5;margin-bottom:8px;color:#666}.gs-fn-guide2-args-inline span{transition:all .2s ease-in-out}.gs-fn-guide2 .gs-active-arg{font-weight:700;color:#06c;background-color:#ebf5ff;padding:2px 4px;margin:0 -4px;border-radius:4px}.gs-fn-guide2-arg-type{color:#06c;padding:0 4px;background:#ebf5ff;border-radius:3px;font-size:11px;margin:0 4px}.gs-fn-guide2-desc{font-size:12px;color:#555;line-height:1.4;border-top:1px solid #eee;padding-top:8px;margin-top:4px}.gs-fn-guide2-desc p{margin:0}.gs-fn-guide2-desc-more{font-style:italic;color:#888;margin-top:4px!important;font-size:11px}.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:flex;align-items: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{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:flex;align-items:center;justify-content:center;width:30px;flex-shrink:0}.gs-search-bar .gs-search-input-wrapper{flex-grow:1;position:relative;display:flex;align-items:center;height:100%}.gs-search-bar .gs-search-input-ghost{position:absolute;left:2px;right:2px;top:0;bottom:0;pointer-events:none;font-size:12px;font-family:monospace,Arial;line-height:24px;letter-spacing:1px;white-space:pre-wrap;word-break:break-all;color:transparent;overflow:hidden}.gs-search-bar .gs-search-input-ghost .gs-search-ghost-hint{color:#aaa}.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;flex-grow:1;width:100%;resize:none}.gs-search-progress{color:#999;font-size:13px;width:60px;flex-shrink:0;white-space:nowrap;text-align:center}.gs-search-close{cursor:pointer;display:flex;align-items:center;justify-content:center;width:24px;flex-shrink:0}.gs-search-buttons{display:flex;align-items:center;white-space:nowrap;flex-shrink:0}.gs-search-button{display:inline-flex;cursor:pointer;margin:0 2px}.gs-search-button span{display:inline-block;font-size:11px;padding:3px 5px;background-color:rgba(128,128,128,.1);border:1px solid rgba(128,128,128,.3);border-radius:3px;transition:all .15s ease;line-height:1}.gs-search-button span:hover{background-color:rgba(128,128,128,.2)}.gs-search-button span.gs-search-button-on{color:#07f;background-color:rgba(200,200,255,.5);border-color:#07f}.gs-search-range span{white-space:nowrap;font-family:monospace}@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}}@keyframes gs-flash{0%{opacity:0}20%{opacity:1}100%{opacity:0}}.gs-flash-overlay{position:absolute;inset:0;pointer-events:none;z-index:9999;background:rgba(0,119,255,.15);opacity:0}.gs-flash-overlay--active{animation:gs-flash .6s ease-out forwards}";
|
|
3
3
|
//# sourceMappingURL=minified.d.ts.map
|
package/dist/types.d.ts
CHANGED
|
@@ -48,20 +48,19 @@ export type HeadersType = 'both' | 'vertical' | 'horizontal' | 'none';
|
|
|
48
48
|
export type AsyncCache = {
|
|
49
49
|
/** Cached result value from the async computation. */
|
|
50
50
|
value: any;
|
|
51
|
-
/** Cache key derived from function name + arguments. Used to detect when inputs change. */
|
|
52
|
-
key: string;
|
|
53
51
|
/** Absolute timestamp (ms since epoch) at which the cache expires. undefined means cache never expires. */
|
|
54
52
|
expireTime?: number;
|
|
55
53
|
};
|
|
56
54
|
export type System = {
|
|
57
|
-
id
|
|
58
|
-
sheetId
|
|
59
|
-
changedTime
|
|
60
|
-
dependents
|
|
55
|
+
id?: string;
|
|
56
|
+
sheetId?: number;
|
|
57
|
+
changedTime?: number;
|
|
58
|
+
dependents?: Set<string>;
|
|
61
59
|
/** Cumulative top offset (px) from table origin. Set on row-header cells (x=0). */
|
|
62
60
|
offsetTop?: number;
|
|
63
61
|
/** Cumulative left offset (px) from table origin. Set on col-header cells (y=0). */
|
|
64
62
|
offsetLeft?: number;
|
|
63
|
+
tmpAsyncCaches?: Record<string, AsyncCache>;
|
|
65
64
|
};
|
|
66
65
|
export type FilterConditionMethod = 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'blank' | 'nonblank' | 'includes' | 'excludes';
|
|
67
66
|
export type FilterCondition = {
|
|
@@ -89,7 +88,7 @@ export type CellType<T = any, Custom = any> = {
|
|
|
89
88
|
prevention?: OperationType;
|
|
90
89
|
_sys?: System;
|
|
91
90
|
/** Cached result from an async formula. Stored directly on the cell for serializability. */
|
|
92
|
-
|
|
91
|
+
asyncCaches?: Record<string, AsyncCache>;
|
|
93
92
|
/** Filter configuration. Set on col-header cells (y=0). */
|
|
94
93
|
filter?: FilterConfig;
|
|
95
94
|
/** Whether this row is hidden by a filter. Set on row-header cells (x=0). */
|
|
@@ -158,6 +157,7 @@ export type StoreType = {
|
|
|
158
157
|
sheetId: number;
|
|
159
158
|
tableReactive: RefObject<Table>;
|
|
160
159
|
rootRef: RefObject<HTMLDivElement>;
|
|
160
|
+
flashRef: RefObject<HTMLDivElement>;
|
|
161
161
|
mainRef: RefObject<HTMLDivElement>;
|
|
162
162
|
editorRef: RefObject<HTMLTextAreaElement>;
|
|
163
163
|
largeEditorRef: RefObject<HTMLTextAreaElement>;
|
|
@@ -182,6 +182,8 @@ export type StoreType = {
|
|
|
182
182
|
mode: ModeType;
|
|
183
183
|
searchQuery?: string;
|
|
184
184
|
searchCaseSensitive: boolean;
|
|
185
|
+
searchRegex: boolean;
|
|
186
|
+
searchRange?: ZoneType;
|
|
185
187
|
matchingCells: string[];
|
|
186
188
|
matchingCellIndex: number;
|
|
187
189
|
editingOnEnter: boolean;
|
|
@@ -198,6 +200,7 @@ export type StoreType = {
|
|
|
198
200
|
y: number;
|
|
199
201
|
position: PositionType;
|
|
200
202
|
} | null;
|
|
203
|
+
editorHovering: boolean;
|
|
201
204
|
};
|
|
202
205
|
export type Manager<T> = {
|
|
203
206
|
instance: T;
|
|
@@ -249,8 +252,15 @@ export type HistoryUpdateType = {
|
|
|
249
252
|
diffAfter: CellsByIdType;
|
|
250
253
|
partial: boolean;
|
|
251
254
|
};
|
|
252
|
-
export type
|
|
253
|
-
|
|
255
|
+
export type MoveRelation = {
|
|
256
|
+
before?: string;
|
|
257
|
+
after?: string;
|
|
258
|
+
src: Address;
|
|
259
|
+
dst?: Address;
|
|
260
|
+
new?: Id;
|
|
261
|
+
lost?: Id;
|
|
262
|
+
};
|
|
263
|
+
export type MoveRelations = MoveRelation[];
|
|
254
264
|
export type HistoryMoveType = {
|
|
255
265
|
operation: 'MOVE';
|
|
256
266
|
srcSheetId: number;
|