@fileverse-dev/dsheet 3.0.1-yjs-2 → 3.0.2-patch.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/{constants-Cdz6oSCq.js → constants-Q8nzbvQO.js} +5 -3
- package/dist/constants.js +1 -1
- package/dist/editor/components/editor-workbook-sync.d.ts +1 -1
- package/dist/editor/constants/shared-constants.d.ts +2 -0
- package/dist/{executeStringFunction-COcGVlOE.js → executeStringFunction-C5hEkx9z.js} +9318 -13673
- package/dist/formula.js +1 -1
- package/dist/{index-BBy6z-oo.js → index-Dql-IRPC.js} +24662 -21401
- package/dist/index.es.js +42 -42
- package/dist/sheet-engine/core/api/cell.d.ts +20 -0
- package/dist/sheet-engine/core/api/common.d.ts +1 -2
- package/dist/sheet-engine/core/api/index.d.ts +0 -1
- package/dist/sheet-engine/core/api/sheet.d.ts +0 -5
- package/dist/sheet-engine/core/modules/formula-worker-bridge.d.ts +0 -1
- package/dist/sheet-engine/core/settings.d.ts +1 -1
- package/dist/sheet-engine/core/types.d.ts +0 -3
- package/dist/sheet-engine/react/components/Workbook/api.d.ts +1 -8
- package/dist/sheet-engine/react/components/Workbook/index.d.ts +1 -5
- package/dist/{use-xlsx-import-impl-DWEFU2LX.js → use-xlsx-import-impl-BsL90Hs0.js} +477 -491
- package/dist/{xlsx-export-impl-BNythnz2.js → xlsx-export-impl-DfQuhamE.js} +1106 -1106
- package/package.json +7 -4
- package/dist/editor/utils/config-ydoc-update.d.ts +0 -20
- package/dist/sheet-engine/core/api/sheet-flowdata-lifecycle.d.ts +0 -17
- package/dist/sheet-engine/core/paste/paste-border-utils.d.ts +0 -23
- package/dist/sheet-engine/core/utils/border-config-utils.d.ts +0 -10
- package/dist/sheet-engine/core/utils/cell-persist-utils.d.ts +0 -8
- package/dist/sheet-engine/core/utils/range-format.d.ts +0 -43
- package/dist/sheet-engine/core/utils/ydoc-celldata-changes.d.ts +0 -40
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@fileverse-dev/dsheet",
|
|
3
3
|
"private": false,
|
|
4
4
|
"description": "DSheet",
|
|
5
|
-
"version": "3.0.1
|
|
5
|
+
"version": "3.0.2-patch.1",
|
|
6
6
|
"main": "dist/index.es.js",
|
|
7
7
|
"module": "dist/index.es.js",
|
|
8
8
|
"exports": {
|
|
@@ -81,9 +81,11 @@
|
|
|
81
81
|
"xlsx-js-style": "^1.2.0",
|
|
82
82
|
"y-indexeddb": "^9.0.12",
|
|
83
83
|
"y-protocols": "^1.0.6",
|
|
84
|
-
"yjs": "^13.6.15",
|
|
85
84
|
"viem": "^2.35.0"
|
|
86
85
|
},
|
|
86
|
+
"peerDependencies": {
|
|
87
|
+
"yjs": ">=13.6.30 <14"
|
|
88
|
+
},
|
|
87
89
|
"devDependencies": {
|
|
88
90
|
"@types/lodash": "^4.17.23",
|
|
89
91
|
"@types/node": "^20.10.0",
|
|
@@ -110,6 +112,7 @@
|
|
|
110
112
|
"sass": "^1.77.2",
|
|
111
113
|
"tailwindcss": "^3.4.3",
|
|
112
114
|
"typescript": "^5.2.2",
|
|
113
|
-
"vite": "^5.0.0"
|
|
115
|
+
"vite": "^5.0.0",
|
|
116
|
+
"yjs": "13.6.30"
|
|
114
117
|
}
|
|
115
|
-
}
|
|
118
|
+
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { WorkbookInstance } from '../../sheet-engine/react';
|
|
2
|
-
import { SheetChangePath } from './update-ydoc';
|
|
3
|
-
|
|
4
|
-
import * as Y from 'yjs';
|
|
5
|
-
/** Diff top-level config sub-keys and emit granular Yjs updates. */
|
|
6
|
-
export declare function buildConfigSubKeyChanges({ sheetId, oldConfig, newConfig, }: {
|
|
7
|
-
sheetId: string;
|
|
8
|
-
oldConfig: Record<string, any>;
|
|
9
|
-
newConfig: Record<string, any>;
|
|
10
|
-
}): SheetChangePath[];
|
|
11
|
-
/**
|
|
12
|
-
* Sync active sheet config sub-keys to Yjs (borderInfo, merge, rowlen, …).
|
|
13
|
-
* Replaces whole-config writes so only changed sub-keys are broadcast.
|
|
14
|
-
*/
|
|
15
|
-
export declare const configYdocUpdate: ({ sheetEditorRef, ydocRef, dsheetId, handleContentPortal, }: {
|
|
16
|
-
sheetEditorRef: React.RefObject<WorkbookInstance | null>;
|
|
17
|
-
ydocRef: React.RefObject<Y.Doc | null>;
|
|
18
|
-
dsheetId: string;
|
|
19
|
-
handleContentPortal?: any;
|
|
20
|
-
}) => void;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Context } from '../context';
|
|
2
|
-
|
|
3
|
-
/** Drop cached dense-sheet set (e.g. after structural workbook changes). */
|
|
4
|
-
export declare function invalidateSheetsRequiredDenseCache(): void;
|
|
5
|
-
/**
|
|
6
|
-
* Sheets that must keep dense `data` while `activeSheetId` is active:
|
|
7
|
-
* the active tab, tabs its formulas read, and tabs with formulas that read it.
|
|
8
|
-
*/
|
|
9
|
-
export declare function getSheetsRequiredDense(ctx: Context, activeSheetId: string): Set<string>;
|
|
10
|
-
/** Sheets the formula worker needs dense — active refs plus any tab with formulas. */
|
|
11
|
-
export declare function getSheetsNeededForWorkerSnapshot(ctx: Context): Set<string>;
|
|
12
|
-
export declare function demoteSheetToCelldata(ctx: Context, sheetId: string): void;
|
|
13
|
-
/**
|
|
14
|
-
* On tab switch: persist outgoing config, demote tabs not needed dense,
|
|
15
|
-
* hydrate active tab + cross-sheet references.
|
|
16
|
-
*/
|
|
17
|
-
export declare function syncAndDemoteInactiveFlowdata(ctx: Context, activeSheetId: string, previousSheetId: string | null): Set<string>;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export declare function isTransparentBorderColor(color: string): boolean;
|
|
2
|
-
export declare function isMeaningfulBorderSide(side: {
|
|
3
|
-
style?: number;
|
|
4
|
-
color?: string;
|
|
5
|
-
} | undefined): boolean;
|
|
6
|
-
export declare function filterMeaningfulBorderSides(sides: {
|
|
7
|
-
l?: {
|
|
8
|
-
style?: number;
|
|
9
|
-
color?: string;
|
|
10
|
-
};
|
|
11
|
-
r?: {
|
|
12
|
-
style?: number;
|
|
13
|
-
color?: string;
|
|
14
|
-
};
|
|
15
|
-
t?: {
|
|
16
|
-
style?: number;
|
|
17
|
-
color?: string;
|
|
18
|
-
};
|
|
19
|
-
b?: {
|
|
20
|
-
style?: number;
|
|
21
|
-
color?: string;
|
|
22
|
-
};
|
|
23
|
-
}): typeof sides;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Context } from '../context';
|
|
2
|
-
|
|
3
|
-
export type BorderSelection = {
|
|
4
|
-
row: [number, number];
|
|
5
|
-
column: [number, number];
|
|
6
|
-
};
|
|
7
|
-
/** Remove border entries overlapping a single selection (cell + range types). */
|
|
8
|
-
export declare function removeBorderInfoForSelection(borderInfo: any[], rowSt: number, rowEd: number, colSt: number, colEd: number): any[];
|
|
9
|
-
export declare function removeBorderInfoInSelections(borderInfo: any[] | undefined, selections: BorderSelection[]): any[];
|
|
10
|
-
export declare function syncBorderInfoToYdoc(ctx: Context, borderInfo: any[]): void;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Cell } from '../types';
|
|
2
|
-
|
|
3
|
-
export declare const CELL_FORMAT_ATTRS: readonly ["tb", "ht", "vt", "tr", "fs", "ff", "fc", "bl", "it", "un", "cl", "bg", "ct"];
|
|
4
|
-
export type CellFormatAttr = (typeof CELL_FORMAT_ATTRS)[number];
|
|
5
|
-
export declare function hasCellMeaningfulContent(cell: Cell | string | number | boolean | null | undefined): boolean;
|
|
6
|
-
export declare function isFormatOnlyEmptyCell(cell: Cell | string | number | boolean | null | undefined): boolean;
|
|
7
|
-
export declare function shouldPersistCelldataCell(cell: Cell | string | number | boolean | null | undefined): boolean;
|
|
8
|
-
export declare function celldataEntryEqual(existing: unknown, next: unknown): boolean;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { Cell, CellMatrix, CellWithRowAndCol, Sheet } from '../types';
|
|
2
|
-
|
|
3
|
-
export type CellFormatRange = {
|
|
4
|
-
row: [number, number];
|
|
5
|
-
column: [number, number];
|
|
6
|
-
tb?: string;
|
|
7
|
-
ht?: number | string;
|
|
8
|
-
vt?: number | string;
|
|
9
|
-
tr?: string;
|
|
10
|
-
fs?: number;
|
|
11
|
-
ff?: number | string;
|
|
12
|
-
fc?: string;
|
|
13
|
-
bl?: number;
|
|
14
|
-
it?: number;
|
|
15
|
-
un?: number;
|
|
16
|
-
cl?: number;
|
|
17
|
-
bg?: string;
|
|
18
|
-
ct?: Cell['ct'];
|
|
19
|
-
};
|
|
20
|
-
declare function rangesEqual(a: CellFormatRange[] | undefined, b: CellFormatRange[] | undefined): boolean;
|
|
21
|
-
/** Merge overlapping/adjacent ranges that carry identical format attrs. */
|
|
22
|
-
export declare function normalizeCellFormatRanges(ranges: CellFormatRange[] | undefined): CellFormatRange[];
|
|
23
|
-
export declare function getCellFormatRangeGridBounds(ranges: CellFormatRange[] | undefined): {
|
|
24
|
-
maxRow: number;
|
|
25
|
-
maxCol: number;
|
|
26
|
-
} | null;
|
|
27
|
-
export declare function upsertCellFormatRange(ranges: CellFormatRange[] | undefined, rowSt: number, rowEd: number, colSt: number, colEd: number, attrs: Partial<CellFormatRange>): {
|
|
28
|
-
ranges: CellFormatRange[];
|
|
29
|
-
changed: boolean;
|
|
30
|
-
};
|
|
31
|
-
export declare function punchHoleInCellFormatRanges(ranges: CellFormatRange[] | undefined, r: number, c: number): CellFormatRange[];
|
|
32
|
-
export declare function punchRectHoleInCellFormatRanges(ranges: CellFormatRange[] | undefined, rowSt: number, rowEd: number, colSt: number, colEd: number): CellFormatRange[];
|
|
33
|
-
export declare function shiftCellFormatRangesOnInsert(ranges: CellFormatRange[] | undefined, type: 'row' | 'column', index: number, count: number, direction: 'lefttop' | 'rightbottom'): CellFormatRange[];
|
|
34
|
-
export declare function shiftCellFormatRangesOnDelete(ranges: CellFormatRange[] | undefined, type: 'row' | 'column', start: number, end: number): CellFormatRange[];
|
|
35
|
-
export declare function applyCellFormatRangesToData(data: CellMatrix | null | undefined, ranges: CellFormatRange[] | undefined): void;
|
|
36
|
-
export declare function buildSheetDataMatrixForExport(sheet: {
|
|
37
|
-
data?: CellMatrix | null;
|
|
38
|
-
celldata?: CellWithRowAndCol[];
|
|
39
|
-
row?: number;
|
|
40
|
-
column?: number;
|
|
41
|
-
config?: Sheet['config'];
|
|
42
|
-
}): CellMatrix;
|
|
43
|
-
export { rangesEqual };
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Context } from '../context';
|
|
2
|
-
import { Cell, CellWithRowAndCol } from '../types';
|
|
3
|
-
|
|
4
|
-
export type CelldataYdocChange = {
|
|
5
|
-
sheetId: string;
|
|
6
|
-
path: string[];
|
|
7
|
-
key?: string;
|
|
8
|
-
value: any;
|
|
9
|
-
type?: 'update' | 'delete';
|
|
10
|
-
};
|
|
11
|
-
/** Cheap equality before deep compare — hot path for structural diffs. */
|
|
12
|
-
export declare function cellsEqualForYdocPersist(before: unknown, after: unknown): boolean;
|
|
13
|
-
/**
|
|
14
|
-
* Snapshot persisted cells in a range.
|
|
15
|
-
* Prefer sparse `celldata` when provided — O(populated cells), not O(range area).
|
|
16
|
-
*/
|
|
17
|
-
export declare function snapshotPersistedCelldataInRange(data: unknown[][] | null | undefined, r1: number, r2: number, c1: number, c2: number, celldata?: CellWithRowAndCol[] | null): Map<string, Cell | string | number | boolean>;
|
|
18
|
-
export declare function appendCelldataDiffChange(changes: CelldataYdocChange[], sheetId: string, r: number, c: number, cell: unknown, beforePersisted?: Map<string, Cell | string | number | boolean>): void;
|
|
19
|
-
export declare function buildCelldataChangesForRange(sheetId: string, data: unknown[][], r1: number, r2: number, c1: number, c2: number, beforePersisted?: Map<string, Cell | string | number | boolean>): CelldataYdocChange[];
|
|
20
|
-
export declare function emitCelldataRangeDiffToYdoc(ctx: Context, sheetId: string, data: unknown[][], r1: number, r2: number, c1: number, c2: number, beforePersisted?: Map<string, Cell | string | number | boolean>): void;
|
|
21
|
-
export type MergeBounds = {
|
|
22
|
-
minR: number;
|
|
23
|
-
minC: number;
|
|
24
|
-
maxR: number;
|
|
25
|
-
maxC: number;
|
|
26
|
-
};
|
|
27
|
-
/** Disturbed range for insert row/col — snapshot only rows/cols that may shift. */
|
|
28
|
-
export declare function getInsertRowColSnapshotBounds(type: 'row' | 'column', index: number, direction: 'lefttop' | 'rightbottom', rowCount: number, colCount: number, mergeBounds: MergeBounds | null): {
|
|
29
|
-
r1: number;
|
|
30
|
-
r2: number;
|
|
31
|
-
c1: number;
|
|
32
|
-
c2: number;
|
|
33
|
-
};
|
|
34
|
-
/** Disturbed range for delete row/col — from deletion point to sheet edge. */
|
|
35
|
-
export declare function getDeleteRowColSnapshotBounds(type: 'row' | 'column', start: number, rowCount: number, colCount: number, mergeBounds: MergeBounds | null): {
|
|
36
|
-
r1: number;
|
|
37
|
-
r2: number;
|
|
38
|
-
c1: number;
|
|
39
|
-
c2: number;
|
|
40
|
-
};
|