@qianxiang-ai/fu-report-designer-engine 0.0.0-stage → 1.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,42 @@
1
+ export * from './native-document.js';
2
+ export declare const FU_REPORT_NATIVE_DESIGNER_ACTIONS: readonly ["save", "preview"];
3
+ export type FuReportNativeDesignerAction = typeof FU_REPORT_NATIVE_DESIGNER_ACTIONS[number];
4
+ export interface FuReportNativeActionsCapability {
5
+ enabled: boolean;
6
+ actions: FuReportNativeDesignerAction[];
7
+ saveTransport?: 'host';
8
+ }
9
+ export declare function isFuReportNativeActionsCapability(value: unknown): value is FuReportNativeActionsCapability;
10
+ export interface FuReportTemplateSavePayload {
11
+ designerObj: {
12
+ id: string;
13
+ name: string;
14
+ type?: string;
15
+ updateCount?: number | null;
16
+ submitForm?: number | null;
17
+ };
18
+ excel_config_id: string;
19
+ rows: Record<string, unknown>;
20
+ [key: string]: unknown;
21
+ }
22
+ export declare function isFuReportTemplateSavePayload(value: unknown): value is FuReportTemplateSavePayload;
23
+ export declare const FU_REPORT_NATIVE_CHART_SETTING_KEYS: readonly ["title", "legend", "tooltip", "grid", "xAxis", "yAxis", "background", "margin", "bar", "line", "pie", "seriesLabel", "centralPoint", "funnel", "gauge", "scatter", "radar", "pictorial", "dataFilter", "barcode", "qrcode", "batchSize", "findReplace", "viewToolbar", "customEditCell", "print"];
24
+ export type FuReportNativeChartSettingKey = typeof FU_REPORT_NATIVE_CHART_SETTING_KEYS[number];
25
+ export type FuReportChartSettingValue = Record<string, unknown> | Array<Record<string, unknown>> | false;
26
+ export interface FuReportDesignerState {
27
+ hasChartSelection: boolean;
28
+ hasEditableSelection?: boolean;
29
+ selectionKind?: 'chart' | 'barcode' | 'qrcode' | 'cell' | 'none';
30
+ chartId?: string;
31
+ selectedChartType?: string;
32
+ settings: Partial<Record<FuReportNativeChartSettingKey, FuReportChartSettingValue>>;
33
+ }
34
+ export interface FuReportChartSettingsPatch {
35
+ key: FuReportNativeChartSettingKey;
36
+ changes: Record<string, FuReportChartSettingPatchValue>;
37
+ index?: number;
38
+ }
39
+ export type FuReportChartSettingPatchValue = string | number | boolean | null | Array<string | number | boolean | null>;
40
+ export declare function isFuReportDesignerState(value: unknown): value is FuReportDesignerState;
41
+ export declare function isFuReportChartSettingsPatch(value: unknown): value is FuReportChartSettingsPatch;
42
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AAEpC,eAAO,MAAM,iCAAiC,8BAA+B,CAAA;AAE7E,MAAM,MAAM,4BAA4B,GACtC,OAAO,iCAAiC,CAAC,MAAM,CAAC,CAAA;AAElD,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,4BAA4B,EAAE,CAAA;IACvC,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,+BAA+B,CAS1C;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE;QACX,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAC3B,CAAA;IACD,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,2BAA2B,CAgBlG;AAED,eAAO,MAAM,mCAAmC,6SA2BtC,CAAA;AAEV,MAAM,MAAM,6BAA6B,GACvC,OAAO,mCAAmC,CAAC,MAAM,CAAC,CAAA;AAEpD,MAAM,MAAM,yBAAyB,GACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC9B,KAAK,CAAA;AAET,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;IAChE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,6BAA6B,EAAE,yBAAyB,CAAC,CAAC,CAAA;CACpF;AAED,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,6BAA6B,CAAA;IAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAA;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,8BAA8B,GACtC,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAA;AAE3C,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,qBAAqB,CAWtF;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,0BAA0B,CAWhG"}
package/dist/index.js ADDED
@@ -0,0 +1,96 @@
1
+ export * from './native-document.js';
2
+ export const FU_REPORT_NATIVE_DESIGNER_ACTIONS = ['save', 'preview'];
3
+ export function isFuReportNativeActionsCapability(value) {
4
+ if (!value || typeof value !== 'object')
5
+ return false;
6
+ const candidate = value;
7
+ return typeof candidate.enabled === 'boolean'
8
+ && Array.isArray(candidate.actions)
9
+ && candidate.actions.length <= FU_REPORT_NATIVE_DESIGNER_ACTIONS.length
10
+ && candidate.actions.every(action => FU_REPORT_NATIVE_DESIGNER_ACTIONS.includes(action))
11
+ && new Set(candidate.actions).size === candidate.actions.length
12
+ && (candidate.saveTransport === undefined || candidate.saveTransport === 'host');
13
+ }
14
+ export function isFuReportTemplateSavePayload(value) {
15
+ if (!value || typeof value !== 'object' || Array.isArray(value))
16
+ return false;
17
+ const candidate = value;
18
+ const designer = candidate.designerObj;
19
+ if (!designer || typeof designer !== 'object' || Array.isArray(designer)
20
+ || typeof designer.id !== 'string' || designer.id.length < 1 || designer.id.length > 128
21
+ || typeof designer.name !== 'string' || designer.name.length < 1 || designer.name.length > 512
22
+ || candidate.excel_config_id !== designer.id
23
+ || !candidate.rows || typeof candidate.rows !== 'object' || Array.isArray(candidate.rows)) {
24
+ return false;
25
+ }
26
+ try {
27
+ return JSON.stringify(value).length <= 16 * 1024 * 1024;
28
+ }
29
+ catch {
30
+ return false;
31
+ }
32
+ }
33
+ export const FU_REPORT_NATIVE_CHART_SETTING_KEYS = [
34
+ 'title',
35
+ 'legend',
36
+ 'tooltip',
37
+ 'grid',
38
+ 'xAxis',
39
+ 'yAxis',
40
+ 'background',
41
+ 'margin',
42
+ 'bar',
43
+ 'line',
44
+ 'pie',
45
+ 'seriesLabel',
46
+ 'centralPoint',
47
+ 'funnel',
48
+ 'gauge',
49
+ 'scatter',
50
+ 'radar',
51
+ 'pictorial',
52
+ 'dataFilter',
53
+ 'barcode',
54
+ 'qrcode',
55
+ 'batchSize',
56
+ 'findReplace',
57
+ 'viewToolbar',
58
+ 'customEditCell',
59
+ 'print'
60
+ ];
61
+ export function isFuReportDesignerState(value) {
62
+ if (!value || typeof value !== 'object')
63
+ return false;
64
+ const candidate = value;
65
+ return typeof candidate.hasChartSelection === 'boolean'
66
+ && (candidate.hasEditableSelection === undefined
67
+ || typeof candidate.hasEditableSelection === 'boolean')
68
+ && (candidate.selectionKind === undefined
69
+ || ['chart', 'barcode', 'qrcode', 'cell', 'none'].includes(candidate.selectionKind))
70
+ && !!candidate.settings
71
+ && typeof candidate.settings === 'object'
72
+ && !Array.isArray(candidate.settings);
73
+ }
74
+ export function isFuReportChartSettingsPatch(value) {
75
+ if (!value || typeof value !== 'object')
76
+ return false;
77
+ const candidate = value;
78
+ return FU_REPORT_NATIVE_CHART_SETTING_KEYS.includes(candidate.key) && !!candidate.changes
79
+ && typeof candidate.changes === 'object'
80
+ && !Array.isArray(candidate.changes)
81
+ && Object.values(candidate.changes).every(isFuReportChartSettingPatchValue)
82
+ && (candidate.index === undefined
83
+ || (Number.isInteger(candidate.index) && Number(candidate.index) >= 0));
84
+ }
85
+ function isFuReportChartSettingPatchValue(value) {
86
+ if (value === null || typeof value === 'boolean')
87
+ return true;
88
+ if (typeof value === 'string')
89
+ return value.length <= 4096;
90
+ if (typeof value === 'number')
91
+ return Number.isFinite(value);
92
+ return Array.isArray(value)
93
+ && value.length <= 16
94
+ && value.every(item => isFuReportChartSettingPatchValue(item) && !Array.isArray(item));
95
+ }
96
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ import type { DesignerDocument, DesignerDocumentSaveCommand, DocumentOwnershipManifest } from '@qianxiang-ai/fu-report-contracts';
2
+ export type FuReportJsonObject = Record<string, unknown>;
3
+ export type FuReportDesignerCommand = {
4
+ type: 'set-cell';
5
+ sheetId?: string;
6
+ row: number;
7
+ col: number;
8
+ value: unknown;
9
+ style?: number;
10
+ } | {
11
+ type: 'replace-cell';
12
+ sheetId?: string;
13
+ row: number;
14
+ col: number;
15
+ value: FuReportJsonObject;
16
+ } | {
17
+ type: 'patch-cell';
18
+ sheetId?: string;
19
+ row: number;
20
+ col: number;
21
+ changes: FuReportJsonObject;
22
+ } | {
23
+ type: 'set-cell-style';
24
+ sheetId?: string;
25
+ row: number;
26
+ col: number;
27
+ changes: FuReportJsonObject;
28
+ } | {
29
+ type: 'insert-rows' | 'delete-rows';
30
+ sheetId?: string;
31
+ index: number;
32
+ count: number;
33
+ } | {
34
+ type: 'insert-cols' | 'delete-cols';
35
+ sheetId?: string;
36
+ index: number;
37
+ count: number;
38
+ } | {
39
+ type: 'set-row-height';
40
+ sheetId?: string;
41
+ index: number;
42
+ height: number;
43
+ } | {
44
+ type: 'set-col-width';
45
+ sheetId?: string;
46
+ index: number;
47
+ width: number;
48
+ } | {
49
+ type: 'set-merge' | 'remove-merge';
50
+ sheetId?: string;
51
+ range: string;
52
+ } | {
53
+ type: 'set-freeze';
54
+ sheetId?: string;
55
+ value: string;
56
+ } | {
57
+ type: 'set-filter';
58
+ sheetId?: string;
59
+ value: FuReportJsonObject;
60
+ } | {
61
+ type: 'set-print';
62
+ sheetId?: string;
63
+ value: FuReportJsonObject;
64
+ } | {
65
+ type: 'patch-sheet';
66
+ sheetId?: string;
67
+ changes: FuReportJsonObject;
68
+ } | {
69
+ type: 'add-sheet';
70
+ sheet: FuReportJsonObject;
71
+ } | {
72
+ type: 'remove-sheet' | 'set-active-sheet';
73
+ sheetId: string;
74
+ } | {
75
+ type: 'rename-sheet';
76
+ sheetId: string;
77
+ name: string;
78
+ } | {
79
+ type: 'add-layer';
80
+ sheetId?: string;
81
+ collection: FuReportLayerCollection;
82
+ layer: FuReportJsonObject;
83
+ } | {
84
+ type: 'remove-layer';
85
+ sheetId?: string;
86
+ collection: FuReportLayerCollection;
87
+ index: number;
88
+ } | {
89
+ type: 'patch-layer';
90
+ sheetId?: string;
91
+ collection: FuReportLayerCollection;
92
+ index: number;
93
+ changes: FuReportJsonObject;
94
+ } | {
95
+ type: 'import-workbook';
96
+ document: FuReportJsonObject;
97
+ } | {
98
+ type: 'batch';
99
+ commands: Exclude<FuReportDesignerCommand, {
100
+ type: 'batch';
101
+ }>[];
102
+ };
103
+ export type FuReportLayerCollection = 'charts' | 'chartList' | 'pictures' | 'images' | 'imgList' | 'maps' | 'barcodeList' | 'qrcodeList' | 'richTextList';
104
+ export interface FuReportDesignerSessionState {
105
+ reportId: string;
106
+ revision: string;
107
+ document: FuReportJsonObject;
108
+ ownershipManifest: DocumentOwnershipManifest;
109
+ dirty: boolean;
110
+ canUndo: boolean;
111
+ canRedo: boolean;
112
+ }
113
+ export declare class FuReportDesignerSession {
114
+ readonly reportId: string;
115
+ private revisionValue;
116
+ private documentValue;
117
+ private savedCanonical;
118
+ private readonly manifest;
119
+ private readonly undoStack;
120
+ private readonly redoStack;
121
+ constructor(source: DesignerDocument);
122
+ get state(): FuReportDesignerSessionState;
123
+ dispatch(command: FuReportDesignerCommand): FuReportDesignerSessionState;
124
+ undo(): FuReportDesignerSessionState;
125
+ redo(): FuReportDesignerSessionState;
126
+ createSaveCommand(): DesignerDocumentSaveCommand;
127
+ markSaved(revision: string, savedDocument?: FuReportJsonObject): FuReportDesignerSessionState;
128
+ }
129
+ export declare function createFuReportDesignerSession(source: DesignerDocument): FuReportDesignerSession;
130
+ export declare function applyCommand(source: FuReportJsonObject, command: FuReportDesignerCommand): FuReportJsonObject;
131
+ //# sourceMappingURL=native-document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-document.d.ts","sourceRoot":"","sources":["../src/native-document.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,520 @@
1
+ const MAX_COMMAND_BYTES = 1024 * 1024;
2
+ const MAX_HISTORY = 2_000;
3
+ export class FuReportDesignerSession {
4
+ reportId;
5
+ revisionValue;
6
+ documentValue;
7
+ savedCanonical;
8
+ manifest;
9
+ undoStack = [];
10
+ redoStack = [];
11
+ constructor(source) {
12
+ if (!source.document || typeof source.document !== 'object' || Array.isArray(source.document)) {
13
+ throw new Error('Designer 文档根节点必须是对象');
14
+ }
15
+ this.reportId = source.reportId;
16
+ this.revisionValue = source.revision;
17
+ this.manifest = clone(source.ownershipManifest);
18
+ this.documentValue = freeze(clone(source.document));
19
+ this.savedCanonical = canonical(this.documentValue);
20
+ }
21
+ get state() {
22
+ return {
23
+ reportId: this.reportId,
24
+ revision: this.revisionValue,
25
+ document: this.documentValue,
26
+ ownershipManifest: clone(this.manifest),
27
+ dirty: canonical(this.documentValue) !== this.savedCanonical,
28
+ canUndo: this.undoStack.length > 0,
29
+ canRedo: this.redoStack.length > 0
30
+ };
31
+ }
32
+ dispatch(command) {
33
+ const commandBytes = new TextEncoder().encode(JSON.stringify(command)).byteLength;
34
+ if (commandBytes > MAX_COMMAND_BYTES)
35
+ throw new Error('Designer 命令超过 1 MiB 上限');
36
+ const before = this.documentValue;
37
+ const after = applyCommand(before, command);
38
+ if (canonical(after) === canonical(before))
39
+ return this.state;
40
+ this.undoStack.push(before);
41
+ if (this.undoStack.length > MAX_HISTORY)
42
+ this.undoStack.shift();
43
+ this.redoStack.length = 0;
44
+ this.documentValue = freeze(after);
45
+ return this.state;
46
+ }
47
+ undo() {
48
+ const previous = this.undoStack.pop();
49
+ if (!previous)
50
+ return this.state;
51
+ this.redoStack.push(this.documentValue);
52
+ this.documentValue = previous;
53
+ return this.state;
54
+ }
55
+ redo() {
56
+ const next = this.redoStack.pop();
57
+ if (!next)
58
+ return this.state;
59
+ this.undoStack.push(this.documentValue);
60
+ this.documentValue = next;
61
+ return this.state;
62
+ }
63
+ createSaveCommand() {
64
+ return {
65
+ protocolVersion: '1.0',
66
+ serializerVersion: 1,
67
+ reportRevision: this.revisionValue,
68
+ ownershipManifest: clone(this.manifest),
69
+ document: clone(this.documentValue)
70
+ };
71
+ }
72
+ markSaved(revision, savedDocument = this.documentValue) {
73
+ this.revisionValue = revision;
74
+ this.savedCanonical = canonical(savedDocument);
75
+ if (canonical(this.documentValue) === this.savedCanonical) {
76
+ this.undoStack.length = 0;
77
+ this.redoStack.length = 0;
78
+ }
79
+ return this.state;
80
+ }
81
+ }
82
+ export function createFuReportDesignerSession(source) {
83
+ return new FuReportDesignerSession(source);
84
+ }
85
+ export function applyCommand(source, command) {
86
+ if (command.type === 'batch') {
87
+ return command.commands.reduce((document, item) => applyCommand(document, item), source);
88
+ }
89
+ if (command.type === 'import-workbook')
90
+ return clone(command.document);
91
+ const document = clone(source);
92
+ if (command.type === 'add-sheet') {
93
+ const id = sheetId(command.sheet);
94
+ if (!id)
95
+ throw new Error('Sheet 标识不能为空');
96
+ if (!Array.isArray(document.sheets) || document.sheets.length === 0) {
97
+ const firstDocument = clone(document);
98
+ delete firstDocument.sheets;
99
+ delete firstDocument.activeSheetId;
100
+ for (const key of Object.keys(document))
101
+ delete document[key];
102
+ document.sheets = [{ id: 'sheet-default', name: 'Sheet 1', order: 0, document: firstDocument }];
103
+ document.activeSheetId = 'sheet-default';
104
+ }
105
+ const sheets = ensureArray(document, 'sheets');
106
+ if (sheets.some(sheet => sheetId(sheet) === id))
107
+ throw new Error('Sheet 标识已存在');
108
+ sheets.push(clone(command.sheet));
109
+ return document;
110
+ }
111
+ if (command.type === 'remove-sheet') {
112
+ const sheets = ensureArray(document, 'sheets');
113
+ if (sheets.length <= 1)
114
+ throw new Error('工作簿至少保留一个 Sheet');
115
+ if (!sheets.some(sheet => sheetId(sheet) === command.sheetId))
116
+ throw new Error('目标 Sheet 不存在');
117
+ document.sheets = sheets.filter(sheet => sheetId(sheet) !== command.sheetId);
118
+ if (String(document.activeSheetId ?? '') === command.sheetId) {
119
+ document.activeSheetId = sheetId(document.sheets[0]);
120
+ }
121
+ return document;
122
+ }
123
+ if (command.type === 'set-active-sheet') {
124
+ const sheets = ensureArray(document, 'sheets');
125
+ if (!sheets.some(sheet => sheetId(sheet) === command.sheetId))
126
+ throw new Error('目标 Sheet 不存在');
127
+ document.activeSheetId = command.sheetId;
128
+ return document;
129
+ }
130
+ if (command.type === 'rename-sheet') {
131
+ const sheets = ensureArray(document, 'sheets');
132
+ const sheet = sheets.find(item => sheetId(item) === command.sheetId);
133
+ if (!sheet || typeof sheet !== 'object' || Array.isArray(sheet))
134
+ throw new Error('目标 Sheet 不存在');
135
+ const name = command.name.trim().slice(0, 128);
136
+ if (!name)
137
+ throw new Error('Sheet 名称不能为空');
138
+ if (sheets.some(item => item !== sheet && sheetName(item) === name))
139
+ throw new Error('Sheet 名称已存在');
140
+ sheet.name = name;
141
+ return document;
142
+ }
143
+ const sheet = resolveSheet(document, command.sheetId);
144
+ if (command.type === 'set-cell' || command.type === 'replace-cell' || command.type === 'patch-cell' || command.type === 'set-cell-style') {
145
+ requireIndex(command.row, 'row');
146
+ requireIndex(command.col, 'col');
147
+ if (command.type === 'replace-cell') {
148
+ replaceCell(sheet, command.row, command.col, command.value);
149
+ return document;
150
+ }
151
+ const cell = ensureCell(sheet, command.row, command.col);
152
+ if (command.type === 'set-cell') {
153
+ cell.text = clone(command.value);
154
+ if (command.style !== undefined)
155
+ cell.style = command.style;
156
+ }
157
+ else if (command.type === 'patch-cell') {
158
+ Object.assign(cell, clone(command.changes));
159
+ }
160
+ else {
161
+ const styles = ensureArray(sheet, 'styles');
162
+ const current = typeof cell.style === 'number'
163
+ ? object(styles[cell.style])
164
+ : object(cell.style);
165
+ const next = mergeStyle(current, command.changes);
166
+ const existingIndex = styles.findIndex(value => canonical(value) === canonical(next));
167
+ if (existingIndex >= 0)
168
+ cell.style = existingIndex;
169
+ else {
170
+ styles.push(next);
171
+ cell.style = styles.length - 1;
172
+ }
173
+ }
174
+ return document;
175
+ }
176
+ if (command.type === 'insert-rows' || command.type === 'delete-rows') {
177
+ const insert = command.type === 'insert-rows';
178
+ mutateIndexedObject(sheet, 'rows', command.index, command.count, insert);
179
+ remapSheetReferences(sheet, 'row', command.index, command.count, insert);
180
+ return document;
181
+ }
182
+ if (command.type === 'insert-cols' || command.type === 'delete-cols') {
183
+ const insert = command.type === 'insert-cols';
184
+ mutateIndexedObject(sheet, 'cols', command.index, command.count, insert);
185
+ const rows = ensureObject(sheet, 'rows');
186
+ for (const row of Object.values(rows)) {
187
+ if (row && typeof row === 'object' && !Array.isArray(row)) {
188
+ mutateIndexedObject(row, 'cells', command.index, command.count, insert);
189
+ }
190
+ }
191
+ remapSheetReferences(sheet, 'col', command.index, command.count, insert);
192
+ return document;
193
+ }
194
+ if (command.type === 'set-row-height') {
195
+ requireIndex(command.index, 'index');
196
+ if (!Number.isFinite(command.height) || command.height < 12 || command.height > 1_000)
197
+ throw new Error('行高非法');
198
+ ensureObject(ensureObject(sheet, 'rows'), String(command.index)).height = command.height;
199
+ return document;
200
+ }
201
+ if (command.type === 'set-col-width') {
202
+ requireIndex(command.index, 'index');
203
+ if (!Number.isFinite(command.width) || command.width < 24 || command.width > 1_000)
204
+ throw new Error('列宽非法');
205
+ ensureObject(ensureObject(sheet, 'cols'), String(command.index)).width = command.width;
206
+ return document;
207
+ }
208
+ if (command.type === 'set-merge' || command.type === 'remove-merge') {
209
+ if (!/^[A-Z]{1,3}[1-9]\d*:[A-Z]{1,3}[1-9]\d*$/.test(command.range))
210
+ throw new Error('合并范围格式非法');
211
+ const merges = ensureStringArray(sheet, 'merges');
212
+ sheet.merges = command.type === 'set-merge'
213
+ ? [...new Set([...merges, command.range])]
214
+ : merges.filter(value => value !== command.range);
215
+ return document;
216
+ }
217
+ if (command.type === 'set-freeze') {
218
+ if (command.value && !/^[A-Z]{1,3}[1-9]\d*$/.test(command.value))
219
+ throw new Error('冻结位置格式非法');
220
+ sheet.freeze = command.value;
221
+ return document;
222
+ }
223
+ if (command.type === 'set-filter') {
224
+ sheet.autofilter = clone(command.value);
225
+ return document;
226
+ }
227
+ if (command.type === 'set-print') {
228
+ sheet.printConfig = clone(command.value);
229
+ return document;
230
+ }
231
+ if (command.type === 'patch-sheet') {
232
+ Object.assign(sheet, clone(command.changes));
233
+ return document;
234
+ }
235
+ if (command.type === 'add-layer') {
236
+ ensureArray(sheet, command.collection).push(clone(command.layer));
237
+ // 浮动图层也必须扩展工作表可视区域,否则查看器会按空表尺寸裁掉图表或图片。
238
+ const area = ensureObject(sheet, 'area');
239
+ const row = Math.max(0, Math.trunc(Number(command.layer.row) || 0));
240
+ const col = Math.max(0, Math.trunc(Number(command.layer.col) || 0));
241
+ const rows = Math.max(1, Math.ceil((Number(command.layer.height) || 26) / 26));
242
+ const cols = Math.max(1, Math.ceil((Number(command.layer.width) || 100) / 100));
243
+ area.eri = Math.max(Number(area.eri) || 0, row + rows - 1);
244
+ area.eci = Math.max(Number(area.eci) || 0, col + cols - 1);
245
+ return document;
246
+ }
247
+ if (command.type === 'remove-layer') {
248
+ requireIndex(command.index, 'index');
249
+ const layers = ensureArray(sheet, command.collection);
250
+ if (!layers[command.index])
251
+ throw new Error('目标图层不存在');
252
+ layers.splice(command.index, 1);
253
+ return document;
254
+ }
255
+ if (command.type === 'patch-layer') {
256
+ requireIndex(command.index, 'index');
257
+ const layers = ensureArray(sheet, command.collection);
258
+ const current = layers[command.index];
259
+ if (!current || typeof current !== 'object' || Array.isArray(current))
260
+ throw new Error('目标图层不存在');
261
+ layers[command.index] = { ...current, ...clone(command.changes) };
262
+ return document;
263
+ }
264
+ return document;
265
+ }
266
+ function resolveSheet(document, requested) {
267
+ const sheetsValue = document.sheets;
268
+ if (!Array.isArray(sheetsValue) || sheetsValue.length === 0)
269
+ return document;
270
+ const id = requested || String(document.activeSheetId ?? '');
271
+ const selected = sheetsValue.find(item => sheetId(item) === id) ?? sheetsValue[0];
272
+ if (!selected || typeof selected !== 'object' || Array.isArray(selected))
273
+ throw new Error('Sheet 文档非法');
274
+ const record = selected;
275
+ const child = record.document;
276
+ return child && typeof child === 'object' && !Array.isArray(child)
277
+ ? child
278
+ : record;
279
+ }
280
+ function ensureCell(sheet, rowIndex, colIndex) {
281
+ const rows = ensureObject(sheet, 'rows');
282
+ const row = ensureObject(rows, String(rowIndex));
283
+ return ensureObject(ensureObject(row, 'cells'), String(colIndex));
284
+ }
285
+ function mergeStyle(current, changes) {
286
+ const next = { ...clone(current), ...clone(changes) };
287
+ if (current.font || changes.font)
288
+ next.font = { ...object(current.font), ...object(changes.font) };
289
+ if (current.border || changes.border)
290
+ next.border = { ...object(current.border), ...object(changes.border) };
291
+ return next;
292
+ }
293
+ function object(value) {
294
+ return value && typeof value === 'object' && !Array.isArray(value)
295
+ ? value
296
+ : {};
297
+ }
298
+ function mutateIndexedObject(owner, key, index, count, insert) {
299
+ requireIndex(index, 'index');
300
+ if (!Number.isInteger(count) || count < 1 || count > 10_000)
301
+ throw new Error('行列变更数量非法');
302
+ const values = ensureObject(owner, key);
303
+ const result = {};
304
+ for (const [rawIndex, value] of Object.entries(values)) {
305
+ if (!/^\d+$/.test(rawIndex)) {
306
+ result[rawIndex] = value;
307
+ continue;
308
+ }
309
+ const current = Number(rawIndex);
310
+ if (insert)
311
+ result[String(current >= index ? current + count : current)] = value;
312
+ else if (current < index || current >= index + count) {
313
+ result[String(current >= index + count ? current - count : current)] = value;
314
+ }
315
+ }
316
+ owner[key] = result;
317
+ }
318
+ function replaceCell(sheet, rowIndex, colIndex, value) {
319
+ const rows = ensureObject(sheet, 'rows');
320
+ const row = ensureObject(rows, String(rowIndex));
321
+ const cells = ensureObject(row, 'cells');
322
+ if (Object.keys(value).length === 0)
323
+ delete cells[String(colIndex)];
324
+ else
325
+ cells[String(colIndex)] = clone(value);
326
+ }
327
+ const LAYER_COLLECTIONS = [
328
+ 'charts', 'chartList', 'pictures', 'images', 'imgList', 'maps',
329
+ 'barcodeList', 'qrcodeList', 'richTextList'
330
+ ];
331
+ const COORDINATE_TREES = [
332
+ 'autofilter', 'printConfig', 'cellLinkage', 'chartLinkage', 'linkages',
333
+ 'querySetting', 'queryFormSetting', 'primarySubSetting'
334
+ ];
335
+ /**
336
+ * 行列结构变化必须同步所有可见坐标引用,避免保存后出现合并区、图层和联动错位。
337
+ * 服务端保留但未投影到安全文档的增强配置由迁移门禁阻止结构编辑,不能在浏览器猜测修改。
338
+ */
339
+ function remapSheetReferences(sheet, axis, index, count, insert) {
340
+ const merges = ensureStringArray(sheet, 'merges');
341
+ sheet.merges = merges
342
+ .map(value => remapRangeAddress(value, axis, index, count, insert))
343
+ .filter((value) => value !== undefined && !isSingleCellRange(value));
344
+ if (typeof sheet.freeze === 'string' && sheet.freeze) {
345
+ sheet.freeze = remapCellAddress(sheet.freeze, axis, index, count, insert);
346
+ }
347
+ const area = object(sheet.area);
348
+ const areaKey = axis === 'row' ? 'eri' : 'eci';
349
+ if (Number.isInteger(area[areaKey])) {
350
+ area[areaKey] = remapPoint(Number(area[areaKey]), index, count, insert);
351
+ }
352
+ for (const collection of LAYER_COLLECTIONS) {
353
+ const layers = sheet[collection];
354
+ if (!Array.isArray(layers))
355
+ continue;
356
+ for (const layer of layers) {
357
+ if (!layer || typeof layer !== 'object' || Array.isArray(layer))
358
+ continue;
359
+ const record = layer;
360
+ const key = axis === 'row' ? 'row' : 'col';
361
+ if (Number.isInteger(record[key])) {
362
+ record[key] = remapPoint(Number(record[key]), index, count, insert);
363
+ }
364
+ }
365
+ }
366
+ for (const key of COORDINATE_TREES) {
367
+ if (sheet[key] !== undefined)
368
+ remapCoordinateTree(sheet[key], axis, index, count, insert);
369
+ }
370
+ }
371
+ function remapCoordinateTree(value, axis, index, count, insert) {
372
+ if (Array.isArray(value)) {
373
+ value.forEach(item => remapCoordinateTree(item, axis, index, count, insert));
374
+ return;
375
+ }
376
+ if (!value || typeof value !== 'object')
377
+ return;
378
+ const record = value;
379
+ const numericKeys = axis === 'row'
380
+ ? new Set(['row', 'sri', 'eri', 'startRow', 'endRow'])
381
+ : new Set(['col', 'sci', 'eci', 'startCol', 'endCol']);
382
+ const addressKeys = new Set(['range', 'ref', 'address', 'cell', 'cellAddress', 'printArea']);
383
+ for (const [key, child] of Object.entries(record)) {
384
+ if (numericKeys.has(key) && Number.isInteger(child)) {
385
+ record[key] = remapPoint(Number(child), index, count, insert);
386
+ }
387
+ else if (addressKeys.has(key) && typeof child === 'string') {
388
+ record[key] = child.includes(':')
389
+ ? remapRangeAddress(child, axis, index, count, insert) ?? ''
390
+ : remapCellAddress(child, axis, index, count, insert);
391
+ }
392
+ else {
393
+ remapCoordinateTree(child, axis, index, count, insert);
394
+ }
395
+ }
396
+ }
397
+ function remapRangeAddress(value, axis, index, count, insert) {
398
+ const match = /^([A-Z]{1,3})([1-9]\d*):([A-Z]{1,3})([1-9]\d*)$/.exec(value);
399
+ if (!match)
400
+ return value;
401
+ const startRow = Number(match[2]) - 1;
402
+ const endRow = Number(match[4]) - 1;
403
+ const startCol = columnNumber(match[1]);
404
+ const endCol = columnNumber(match[3]);
405
+ const interval = remapInterval(axis === 'row' ? startRow : startCol, axis === 'row' ? endRow : endCol, index, count, insert);
406
+ if (!interval)
407
+ return undefined;
408
+ return axis === 'row'
409
+ ? `${match[1]}${interval.start + 1}:${match[3]}${interval.end + 1}`
410
+ : `${columnLetters(interval.start)}${match[2]}:${columnLetters(interval.end)}${match[4]}`;
411
+ }
412
+ function remapCellAddress(value, axis, index, count, insert) {
413
+ const match = /^([A-Z]{1,3})([1-9]\d*)$/.exec(value);
414
+ if (!match)
415
+ return value;
416
+ const row = Number(match[2]) - 1;
417
+ const col = columnNumber(match[1]);
418
+ return axis === 'row'
419
+ ? `${match[1]}${remapPoint(row, index, count, insert) + 1}`
420
+ : `${columnLetters(remapPoint(col, index, count, insert))}${match[2]}`;
421
+ }
422
+ function remapInterval(start, end, index, count, insert) {
423
+ if (insert) {
424
+ if (index <= start)
425
+ return { start: start + count, end: end + count };
426
+ if (index <= end)
427
+ return { start, end: end + count };
428
+ return { start, end };
429
+ }
430
+ const deletionEnd = index + count;
431
+ if (end < index)
432
+ return { start, end };
433
+ if (start >= deletionEnd)
434
+ return { start: start - count, end: end - count };
435
+ if (start >= index && end < deletionEnd)
436
+ return undefined;
437
+ if (start < index && end < deletionEnd)
438
+ return { start, end: index - 1 };
439
+ if (start >= index && end >= deletionEnd)
440
+ return { start: index, end: end - count };
441
+ return { start, end: end - count };
442
+ }
443
+ function remapPoint(value, index, count, insert) {
444
+ if (insert)
445
+ return value >= index ? value + count : value;
446
+ if (value < index)
447
+ return value;
448
+ if (value >= index + count)
449
+ return value - count;
450
+ return index;
451
+ }
452
+ function isSingleCellRange(value) {
453
+ const match = /^([A-Z]{1,3}[1-9]\d*):([A-Z]{1,3}[1-9]\d*)$/.exec(value);
454
+ return Boolean(match && match[1] === match[2]);
455
+ }
456
+ function columnNumber(value) {
457
+ let result = 0;
458
+ for (const character of value)
459
+ result = result * 26 + character.charCodeAt(0) - 64;
460
+ return result - 1;
461
+ }
462
+ function columnLetters(value) {
463
+ let current = value + 1;
464
+ let result = '';
465
+ while (current > 0) {
466
+ const remainder = (current - 1) % 26;
467
+ result = String.fromCharCode(65 + remainder) + result;
468
+ current = Math.floor((current - 1) / 26);
469
+ }
470
+ return result;
471
+ }
472
+ function ensureObject(owner, key) {
473
+ const value = owner[key];
474
+ if (!value || typeof value !== 'object' || Array.isArray(value))
475
+ owner[key] = {};
476
+ return owner[key];
477
+ }
478
+ function ensureArray(owner, key) {
479
+ if (!Array.isArray(owner[key]))
480
+ owner[key] = [];
481
+ return owner[key];
482
+ }
483
+ function ensureStringArray(owner, key) {
484
+ return ensureArray(owner, key).filter(value => typeof value === 'string');
485
+ }
486
+ function sheetId(value) {
487
+ if (!value || typeof value !== 'object' || Array.isArray(value))
488
+ return '';
489
+ const record = value;
490
+ return String(record.id ?? record.sheetId ?? record.name ?? '');
491
+ }
492
+ function sheetName(value) {
493
+ if (!value || typeof value !== 'object' || Array.isArray(value))
494
+ return '';
495
+ return String(value.name ?? '');
496
+ }
497
+ function requireIndex(value, name) {
498
+ if (!Number.isInteger(value) || value < 0 || value > 1_000_000)
499
+ throw new Error(`${name} 索引非法`);
500
+ }
501
+ function clone(value) {
502
+ return structuredClone(value);
503
+ }
504
+ function freeze(value) {
505
+ if (value && typeof value === 'object' && !Object.isFrozen(value)) {
506
+ Object.freeze(value);
507
+ for (const child of Object.values(value))
508
+ freeze(child);
509
+ }
510
+ return value;
511
+ }
512
+ function canonical(value) {
513
+ if (Array.isArray(value))
514
+ return `[${value.map(canonical).join(',')}]`;
515
+ if (value && typeof value === 'object') {
516
+ return `{${Object.keys(value).sort().map(key => `${JSON.stringify(key)}:${canonical(value[key])}`).join(',')}}`;
517
+ }
518
+ return JSON.stringify(value);
519
+ }
520
+ //# sourceMappingURL=native-document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-document.js","sourceRoot":"","sources":["../src/native-document.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,30 @@
1
1
  {
2
2
  "name": "@qianxiang-ai/fu-report-designer-engine",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "1.1.7",
4
+ "license": "AGPL-3.0-only",
5
+ "author": "位志国 <ijunfu@aliyun.com>",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "publishConfig": {
19
+ "access": "public",
20
+ "registry": "https://registry.npmjs.org/"
21
+ },
22
+ "dependencies": {
23
+ "@qianxiang-ai/fu-report-contracts": "1.1.7"
24
+ },
25
+ "scripts": {
26
+ "build": "node ../../scripts/clean-dist.mjs && tsc -p tsconfig.json",
27
+ "typecheck": "tsc -p tsconfig.json --noEmit",
28
+ "test": "vitest run src"
29
+ }
6
30
  }
package/README.md DELETED
@@ -1,3 +0,0 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.