@k-table/sheet-core 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-2Z7KMZEW.js +1 -0
- package/dist/chunk-FRYFH3X6.js +1 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +2076 -0
- package/dist/index.d.ts +2076 -0
- package/dist/index.js +1 -0
- package/dist/migrate/index.cjs +1 -0
- package/dist/migrate/index.d.cts +9 -0
- package/dist/migrate/index.d.ts +9 -0
- package/dist/migrate/index.js +1 -0
- package/dist/sheet-template-model.cjs +1 -0
- package/dist/sheet-template-model.d.cts +132 -0
- package/dist/sheet-template-model.d.ts +132 -0
- package/dist/sheet-template-model.js +1 -0
- package/dist/types-9rRrxBdg.d.cts +435 -0
- package/dist/types-9rRrxBdg.d.ts +435 -0
- package/package.json +47 -9
- package/README.md +0 -5
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 域文档 02 §1.3~1.4 — `workbook.ktTemplate` 与 Kt.Api.SheetTemplate 契约同构。
|
|
3
|
+
*/
|
|
4
|
+
/** 含端点,与 Excel / 引擎 `MergeRange` 一致 */
|
|
5
|
+
type KtTemplateSlotRect = {
|
|
6
|
+
sheetId?: string;
|
|
7
|
+
r1: number;
|
|
8
|
+
c1: number;
|
|
9
|
+
r2: number;
|
|
10
|
+
c2: number;
|
|
11
|
+
};
|
|
12
|
+
type KtTemplateSpliceSpec = {
|
|
13
|
+
spliceDataRow1: number | null;
|
|
14
|
+
bodyColumnCount?: number;
|
|
15
|
+
};
|
|
16
|
+
type KtTemplateFlexibleRowSegment = {
|
|
17
|
+
r1: number;
|
|
18
|
+
r2: number;
|
|
19
|
+
minHeight: number;
|
|
20
|
+
maxHeight: number;
|
|
21
|
+
weight?: number;
|
|
22
|
+
};
|
|
23
|
+
type KtTemplateMainField = {
|
|
24
|
+
bindingKey: string;
|
|
25
|
+
displayName?: string;
|
|
26
|
+
dataType?: string;
|
|
27
|
+
required?: boolean;
|
|
28
|
+
defaultValue?: string;
|
|
29
|
+
dictCode?: string;
|
|
30
|
+
description?: string;
|
|
31
|
+
};
|
|
32
|
+
type KtTemplateSubTableColumn = {
|
|
33
|
+
columnKey: string;
|
|
34
|
+
displayName?: string;
|
|
35
|
+
dataType?: string;
|
|
36
|
+
required?: boolean;
|
|
37
|
+
dictCode?: string;
|
|
38
|
+
};
|
|
39
|
+
type KtTemplateSubTable = {
|
|
40
|
+
subTableId: string;
|
|
41
|
+
dataPath: string;
|
|
42
|
+
rowsPerDataPage?: number;
|
|
43
|
+
rowMin?: number;
|
|
44
|
+
rowMax?: number;
|
|
45
|
+
columns?: KtTemplateSubTableColumn[];
|
|
46
|
+
};
|
|
47
|
+
type KtTemplateBinding = {
|
|
48
|
+
mainFields?: KtTemplateMainField[];
|
|
49
|
+
subTables?: KtTemplateSubTable[];
|
|
50
|
+
};
|
|
51
|
+
type KtTemplateRoot = {
|
|
52
|
+
splice: KtTemplateSpliceSpec;
|
|
53
|
+
flexibleRows?: KtTemplateFlexibleRowSegment[];
|
|
54
|
+
binding?: KtTemplateBinding;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/** 公式工作室 catalog SSOT */
|
|
58
|
+
type FormulaCatalogTarget = {
|
|
59
|
+
scope: "main" | "base" | "sub";
|
|
60
|
+
key: string;
|
|
61
|
+
subSchemaId?: number;
|
|
62
|
+
};
|
|
63
|
+
type FormulaCatalogEntry = {
|
|
64
|
+
id: string;
|
|
65
|
+
kind: "field" | "script" | "gridRef";
|
|
66
|
+
/** 用户友好赋值式,如 m.m1 = sum(s1.s1) */
|
|
67
|
+
assignment?: string;
|
|
68
|
+
target?: FormulaCatalogTarget;
|
|
69
|
+
/** 编译后 := 右侧或脚本 body */
|
|
70
|
+
source: string;
|
|
71
|
+
enabled?: boolean;
|
|
72
|
+
triggers?: Array<"onCommit" | "onCompute">;
|
|
73
|
+
runWhen?: "auto" | "manualOnly";
|
|
74
|
+
inputWhen?: "always" | "anyPresent" | "allPresent";
|
|
75
|
+
inputFields?: string[];
|
|
76
|
+
errorText?: string;
|
|
77
|
+
/** 人工固定顺序(不参与拓扑重排) */
|
|
78
|
+
orderPinned?: boolean;
|
|
79
|
+
/** 有效执行序(sync 后写入) */
|
|
80
|
+
effectiveOrder?: number;
|
|
81
|
+
scriptBlockKey?: string;
|
|
82
|
+
};
|
|
83
|
+
type FormulaCatalog = {
|
|
84
|
+
v: 1;
|
|
85
|
+
entries: FormulaCatalogEntry[];
|
|
86
|
+
/** auto | manual */
|
|
87
|
+
orderMode?: "auto" | "manual";
|
|
88
|
+
};
|
|
89
|
+
declare function emptyFormulaCatalog(): FormulaCatalog;
|
|
90
|
+
/** 从 workbook.meta 读取 formulaCatalog(v1 校验),缺省返回空 catalog */
|
|
91
|
+
declare function getFormulaCatalogFromMeta(meta: {
|
|
92
|
+
formulaCatalog?: unknown;
|
|
93
|
+
} | null | undefined): FormulaCatalog;
|
|
94
|
+
declare function normalizeFormulaCatalog(raw: unknown): FormulaCatalog | null;
|
|
95
|
+
|
|
96
|
+
type DerivedFieldRule = {
|
|
97
|
+
id: string;
|
|
98
|
+
/** 用户友好赋值式,如 m.m1 = sum(s1.amount) */
|
|
99
|
+
expr: string;
|
|
100
|
+
label?: string;
|
|
101
|
+
/** 编译目标(可选缓存;以 expr 编译为准) */
|
|
102
|
+
target?: FormulaCatalogTarget;
|
|
103
|
+
triggers?: Array<"onCommit" | "onCompute">;
|
|
104
|
+
enabled?: boolean;
|
|
105
|
+
};
|
|
106
|
+
declare function newDerivedRuleId(): string;
|
|
107
|
+
declare function normalizeDerivedRules(raw: unknown): DerivedFieldRule[];
|
|
108
|
+
declare function getWorkbookDerivedRules(meta?: {
|
|
109
|
+
derivedRules?: unknown;
|
|
110
|
+
} | null): DerivedFieldRule[];
|
|
111
|
+
|
|
112
|
+
/** 与 k-table-api `SheetTemplateConstants` 及 docs/schema/kt/sheet.md 对齐(整型枚举)。 */
|
|
113
|
+
declare const DRAFT_KIND: {
|
|
114
|
+
readonly Base: 0;
|
|
115
|
+
readonly Business: 1;
|
|
116
|
+
};
|
|
117
|
+
declare const CREATION_MODE: {
|
|
118
|
+
readonly Inherit: 0;
|
|
119
|
+
readonly Splice: 1;
|
|
120
|
+
/** 多 Tab 混合(继承 + 拼接 per-sheet) */
|
|
121
|
+
readonly Mixed: 2;
|
|
122
|
+
};
|
|
123
|
+
declare const SNAPSHOT_KIND: {
|
|
124
|
+
readonly Base: 0;
|
|
125
|
+
readonly Business: 1;
|
|
126
|
+
};
|
|
127
|
+
/** 拼接草案列模式:与 k-table-api `SheetTemplateConstants.SpliceColumnMode` 一致 */
|
|
128
|
+
declare const SPLICE_COLUMN_MODE: {
|
|
129
|
+
readonly Equal: 0;
|
|
130
|
+
readonly Free: 1;
|
|
131
|
+
};
|
|
132
|
+
type DraftKind = (typeof DRAFT_KIND)[keyof typeof DRAFT_KIND];
|
|
133
|
+
type CreationMode = (typeof CREATION_MODE)[keyof typeof CREATION_MODE];
|
|
134
|
+
type SnapshotKind = (typeof SNAPSHOT_KIND)[keyof typeof SNAPSHOT_KIND];
|
|
135
|
+
/** 与 Kt.Api.Domain.SheetTemplateConstants.WorkbookMetaInheritSourceBaseSnapshotRowId 一致 */
|
|
136
|
+
declare const WORKBOOK_META_INHERIT_SOURCE_BASE_SNAPSHOT_ROW_ID: "inheritSourceBaseSnapshotRowId";
|
|
137
|
+
|
|
138
|
+
type AggregateEmptyAs = "null" | "zero";
|
|
139
|
+
type WorkbookComputePolicy = {
|
|
140
|
+
v: 1;
|
|
141
|
+
maxIterations?: number;
|
|
142
|
+
defaultRoundingTriggers?: Array<"onCommit" | "onCompute">;
|
|
143
|
+
aggregateEmptyAs?: AggregateEmptyAs;
|
|
144
|
+
chartRefreshOnCompute?: boolean;
|
|
145
|
+
chartRefreshOnPageChange?: boolean;
|
|
146
|
+
};
|
|
147
|
+
declare const DEFAULT_COMPUTE_POLICY: WorkbookComputePolicy;
|
|
148
|
+
/** 结构化 meta:仅需 computePolicy 字段,避免 core 反依赖 WorkbookMeta(打破循环)。 */
|
|
149
|
+
type MetaWithComputePolicy = {
|
|
150
|
+
computePolicy?: unknown;
|
|
151
|
+
} | null | undefined;
|
|
152
|
+
declare function normalizeComputePolicy(raw: unknown): WorkbookComputePolicy;
|
|
153
|
+
declare function getWorkbookComputePolicy(meta?: MetaWithComputePolicy): WorkbookComputePolicy;
|
|
154
|
+
declare function getAggregateEmptyAs(meta?: MetaWithComputePolicy): AggregateEmptyAs;
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* 模板内嵌字段注册表——纯类型(逻辑保留在 kt-web lib/sheet/templateFieldRegistry.ts)。
|
|
158
|
+
*/
|
|
159
|
+
declare const TEMPLATE_FIELD_REGISTRY_VERSION: 1;
|
|
160
|
+
/** 单条字段定义(与历史 BaseFieldRow 语义对齐,无 id/tenantId/templateCode) */
|
|
161
|
+
type TemplateFieldDef = {
|
|
162
|
+
bindingKey: string;
|
|
163
|
+
displayName: string;
|
|
164
|
+
dataType: string;
|
|
165
|
+
requiredDefault?: boolean;
|
|
166
|
+
defaultValue?: string | null;
|
|
167
|
+
dictCode?: string | null;
|
|
168
|
+
roundingJson?: string | null;
|
|
169
|
+
formulaJson?: string | null;
|
|
170
|
+
runtimeEditable?: boolean;
|
|
171
|
+
writebackTarget?: string | null;
|
|
172
|
+
description?: string | null;
|
|
173
|
+
sortOrder?: number;
|
|
174
|
+
enabled?: boolean;
|
|
175
|
+
/** image 字段存储方式 */
|
|
176
|
+
imageStorage?: "base64" | "fileId" | "url";
|
|
177
|
+
/** legacy inputType 映射:{ inputType, allowCustom?, memory?, multiline? } */
|
|
178
|
+
inputWidgetJson?: string | null;
|
|
179
|
+
};
|
|
180
|
+
type TemplateSubFieldDef = TemplateFieldDef & {
|
|
181
|
+
subSchemaId: number;
|
|
182
|
+
/** 子表有效行数统计键;同 subSchemaId 至多一个 true */
|
|
183
|
+
subRowCountKey?: boolean;
|
|
184
|
+
};
|
|
185
|
+
type TemplateFieldRegistry = {
|
|
186
|
+
v: typeof TEMPLATE_FIELD_REGISTRY_VERSION;
|
|
187
|
+
updatedAt?: string;
|
|
188
|
+
base: TemplateFieldDef[];
|
|
189
|
+
main: TemplateFieldDef[];
|
|
190
|
+
sub: TemplateSubFieldDef[];
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* 子表每页槽位数配置——纯类型(逻辑保留在 kt-web lib/sheet/subTableSlotConfig.ts)。
|
|
195
|
+
*/
|
|
196
|
+
type SubTableSlotConfigEntry = {
|
|
197
|
+
sheetId: string;
|
|
198
|
+
subSchemaId: number;
|
|
199
|
+
slotsPerPage: number;
|
|
200
|
+
};
|
|
201
|
+
type SubTableSlotConfig = SubTableSlotConfigEntry[];
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* per-sheet 业务档案——纯类型(逻辑保留在 kt-web lib/sheet/businessSheetProfile.ts)。
|
|
205
|
+
*/
|
|
206
|
+
|
|
207
|
+
/** per-sheet 业务档案:继承或拼接,key = sheetId */
|
|
208
|
+
type BusinessSheetProfile = {
|
|
209
|
+
creationMode: typeof CREATION_MODE.Inherit | typeof CREATION_MODE.Splice;
|
|
210
|
+
/** 用户可见 Tab 名;绑定 sheetName 系统参数时优先于 sheet.name */
|
|
211
|
+
displayName?: string;
|
|
212
|
+
/** 继承:所选基础快照行 id */
|
|
213
|
+
inheritSourceBaseSnapshotRowId?: string;
|
|
214
|
+
/** 拼接 */
|
|
215
|
+
baseSnapshotRowId?: string;
|
|
216
|
+
middleDesignColumnCount?: number;
|
|
217
|
+
spliceColumnMode?: number;
|
|
218
|
+
maxBorrowRowHeight?: number | null;
|
|
219
|
+
/** 拼接上/下条带:独立 mini-workbook JSON */
|
|
220
|
+
spliceTopStripJson?: string;
|
|
221
|
+
spliceBottomStripJson?: string;
|
|
222
|
+
/** 勾选后:业务模板「同步母版」时自动处理本 Sheet */
|
|
223
|
+
syncWithBaseOnUpgrade?: boolean;
|
|
224
|
+
/** 母版 templateCode,用于解析最新有效基础快照 */
|
|
225
|
+
baseTemplateCode?: string;
|
|
226
|
+
/** 上次成功同步时的基础快照 id */
|
|
227
|
+
lastSyncedBaseSnapshotRowId?: string;
|
|
228
|
+
lastSyncedAt?: string;
|
|
229
|
+
/** LIMS 左栏本页信息作用域 id(默认 sheetId) */
|
|
230
|
+
basicScopeId?: string;
|
|
231
|
+
/** 是否在 LIMS 左栏「本页信息」展示 scoped 字段 */
|
|
232
|
+
showInLimsLeftPanel?: boolean;
|
|
233
|
+
};
|
|
234
|
+
type BusinessSheetProfiles = Record<string, BusinessSheetProfile>;
|
|
235
|
+
declare const WORKBOOK_META_BUSINESS_SHEET_PROFILES: "businessSheetProfiles";
|
|
236
|
+
type DraftDbSpliceMeta = {
|
|
237
|
+
creationMode?: number | null;
|
|
238
|
+
baseSnapshotRowId?: string | null;
|
|
239
|
+
middleDesignColumnCount?: number | null;
|
|
240
|
+
spliceColumnMode?: number | null;
|
|
241
|
+
maxBorrowRowHeight?: number | null;
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
/** 边框线宽(与 01 §2.3a.3 / §2.4 对齐)。 */
|
|
245
|
+
type BorderWidth = "none" | "thin" | "medium" | "thick";
|
|
246
|
+
/** 边框线型图案。 */
|
|
247
|
+
type BorderPattern = "solid" | "dashed" | "dotted";
|
|
248
|
+
interface CellBorderSide {
|
|
249
|
+
style?: BorderWidth;
|
|
250
|
+
pattern?: BorderPattern;
|
|
251
|
+
}
|
|
252
|
+
/** 四边 + 共色(T1-10a)。 */
|
|
253
|
+
interface CellBorders {
|
|
254
|
+
top?: CellBorderSide;
|
|
255
|
+
bottom?: CellBorderSide;
|
|
256
|
+
left?: CellBorderSide;
|
|
257
|
+
right?: CellBorderSide;
|
|
258
|
+
color?: string;
|
|
259
|
+
}
|
|
260
|
+
type HorizontalAlign = "left" | "center" | "right";
|
|
261
|
+
type VerticalAlign = "top" | "middle" | "bottom";
|
|
262
|
+
/** M2 全量样式域(01 §2.4)。 */
|
|
263
|
+
interface CellStyle {
|
|
264
|
+
fontFamily?: string;
|
|
265
|
+
fontSizePt?: number;
|
|
266
|
+
bold?: boolean;
|
|
267
|
+
italic?: boolean;
|
|
268
|
+
underline?: boolean;
|
|
269
|
+
strikethrough?: boolean;
|
|
270
|
+
foreground?: string;
|
|
271
|
+
background?: string;
|
|
272
|
+
horizontalAlign?: HorizontalAlign;
|
|
273
|
+
verticalAlign?: VerticalAlign;
|
|
274
|
+
wrapText?: boolean;
|
|
275
|
+
shrinkToFit?: boolean;
|
|
276
|
+
superscript?: boolean;
|
|
277
|
+
subscript?: boolean;
|
|
278
|
+
borders?: CellBorders;
|
|
279
|
+
}
|
|
280
|
+
interface RichRun {
|
|
281
|
+
t: string;
|
|
282
|
+
style?: Omit<CellStyle, "horizontalAlign" | "verticalAlign" | "wrapText" | "shrinkToFit" | "borders">;
|
|
283
|
+
}
|
|
284
|
+
interface CellData {
|
|
285
|
+
value?: string;
|
|
286
|
+
f?: string;
|
|
287
|
+
style?: CellStyle;
|
|
288
|
+
runs?: RichRun[];
|
|
289
|
+
}
|
|
290
|
+
interface MergeRect {
|
|
291
|
+
r1: number;
|
|
292
|
+
c1: number;
|
|
293
|
+
r2: number;
|
|
294
|
+
c2: number;
|
|
295
|
+
}
|
|
296
|
+
type PaperSizeName = "A4" | "A3" | "Letter" | "Custom";
|
|
297
|
+
interface PageSettings {
|
|
298
|
+
paper: PaperSizeName;
|
|
299
|
+
/** mm,仅 paper === Custom 时使用。 */
|
|
300
|
+
widthMm?: number;
|
|
301
|
+
heightMm?: number;
|
|
302
|
+
orientation: "portrait" | "landscape";
|
|
303
|
+
marginMm: {
|
|
304
|
+
top: number;
|
|
305
|
+
right: number;
|
|
306
|
+
bottom: number;
|
|
307
|
+
left: number;
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
interface Sheet {
|
|
311
|
+
rowCount: number;
|
|
312
|
+
colCount: number;
|
|
313
|
+
rowHeights?: number[];
|
|
314
|
+
colWidths?: number[];
|
|
315
|
+
defaultRowHeight?: number;
|
|
316
|
+
defaultColWidth?: number;
|
|
317
|
+
cells: Record<string, CellData>;
|
|
318
|
+
merges: MergeRect[];
|
|
319
|
+
page?: PageSettings;
|
|
320
|
+
}
|
|
321
|
+
interface SheetItem {
|
|
322
|
+
id: string;
|
|
323
|
+
name: string;
|
|
324
|
+
sheet: Sheet;
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* 拼接草案保存时写入 `meta`,批发布可与当前基础快照校验后复用 `colSpans`。
|
|
328
|
+
* `colSpans.length === middleDesignColumnCount`,且 `sum(colSpans) ===` 基础 kt 体列数 BodyCols。
|
|
329
|
+
*/
|
|
330
|
+
interface SpliceComposeCacheV1 {
|
|
331
|
+
v: 1;
|
|
332
|
+
baseSnapshotRowId: string;
|
|
333
|
+
spliceColumnMode: number;
|
|
334
|
+
middleDesignColumnCount: number;
|
|
335
|
+
colSpans: number[];
|
|
336
|
+
baseContentHash?: string | null;
|
|
337
|
+
}
|
|
338
|
+
/** 报表明细带定义(KTL @band;语法/模型预留,打印链路暂不消费) */
|
|
339
|
+
interface WorkbookReportBandDef {
|
|
340
|
+
sheetId: string;
|
|
341
|
+
/** 明细带模板行区间(1-based,含端点) */
|
|
342
|
+
startRow: number;
|
|
343
|
+
endRow: number;
|
|
344
|
+
/** 绑定的子表区号(数据源) */
|
|
345
|
+
subSchemaId?: number;
|
|
346
|
+
/** 跨页续表时每页重复的表头行区间 */
|
|
347
|
+
headerStartRow?: number;
|
|
348
|
+
headerEndRow?: number;
|
|
349
|
+
}
|
|
350
|
+
/** 报表元信息(KTL @report 块;报表文件专用,普通模板可缺省) */
|
|
351
|
+
interface WorkbookReportMeta {
|
|
352
|
+
/** 报表标题 */
|
|
353
|
+
title?: string;
|
|
354
|
+
/** 报表业务版本(区别于 ktlSourceVersion) */
|
|
355
|
+
reportVersion?: string;
|
|
356
|
+
/** 描述 */
|
|
357
|
+
description?: string;
|
|
358
|
+
/** 明细带(@band)配置——预留 */
|
|
359
|
+
bands?: WorkbookReportBandDef[];
|
|
360
|
+
}
|
|
361
|
+
interface WorkbookMeta {
|
|
362
|
+
author?: string;
|
|
363
|
+
locale?: string;
|
|
364
|
+
timezone?: string;
|
|
365
|
+
/** 仅拼接业务草案中区工作簿:合成列映射缓存 */
|
|
366
|
+
spliceComposeCache?: SpliceComposeCacheV1;
|
|
367
|
+
/** 业务多 Tab:per-sheet 继承/拼接档案,key = sheetId */
|
|
368
|
+
businessSheetProfiles?: BusinessSheetProfiles;
|
|
369
|
+
/** 继承草案:所选基础快照行 id(单 sheet 旧数据兼容) */
|
|
370
|
+
inheritSourceBaseSnapshotRowId?: string;
|
|
371
|
+
/** 模板包内嵌字段注册表(设计态 SSOT;发布时 bake 至 capabilities.fieldRegistry) */
|
|
372
|
+
fieldRegistry?: TemplateFieldRegistry;
|
|
373
|
+
/** 子表每 sheet×subSchema 每页槽位数 */
|
|
374
|
+
subTableSlotConfig?: SubTableSlotConfig;
|
|
375
|
+
/** 公式工作室 catalog(设计态 SSOT) */
|
|
376
|
+
formulaCatalog?: FormulaCatalog;
|
|
377
|
+
/** 模板级计算策略(设计态 SSOT) */
|
|
378
|
+
computePolicy?: WorkbookComputePolicy;
|
|
379
|
+
/** 声明式派生规则(设计态 SSOT;写回 fieldRegistry.formulaJson) */
|
|
380
|
+
derivedRules?: DerivedFieldRule[];
|
|
381
|
+
/** 报表元信息(KTL @report 块) */
|
|
382
|
+
report?: WorkbookReportMeta;
|
|
383
|
+
/** KTL 源码文本(设计态持久化) */
|
|
384
|
+
ktlSource?: string;
|
|
385
|
+
/** KTL 源码版本号(每次修改递增) */
|
|
386
|
+
ktlSourceVersion?: number;
|
|
387
|
+
/** KTL Source Map 序列化 JSON(持久化以避免每次重解析) */
|
|
388
|
+
ktlSourceMap?: string;
|
|
389
|
+
}
|
|
390
|
+
/** M3 公式/脚本:工作簿级脚本块与命名区域 */
|
|
391
|
+
type WorkbookScriptHook = "compute" | "beforeRender";
|
|
392
|
+
interface WorkbookScriptBlock {
|
|
393
|
+
/** 唯一键;与 CellFormulaBindingMeta.scriptBlockKey 对应;习惯以 CALC_ 前缀 */
|
|
394
|
+
key: string;
|
|
395
|
+
/** 作用域:main 仅主表一次;subRow 每子表行 */
|
|
396
|
+
scope: "main" | "subRow";
|
|
397
|
+
/** subRow 的子表区号 */
|
|
398
|
+
subSchemaId?: number;
|
|
399
|
+
/**
|
|
400
|
+
* compute(默认):参与公式计算链;
|
|
401
|
+
* beforeRender:实例预览/打印前执行,可控制 sheet/逻辑页是否参与渲染。
|
|
402
|
+
*/
|
|
403
|
+
hook?: WorkbookScriptHook;
|
|
404
|
+
/** 受限 JS 表达式/函数体源码 */
|
|
405
|
+
source: string;
|
|
406
|
+
/** 入参白名单,可留空代表所有可读上下文 */
|
|
407
|
+
inputs?: string[];
|
|
408
|
+
errorText?: string;
|
|
409
|
+
meta?: {
|
|
410
|
+
updatedAt?: string;
|
|
411
|
+
updatedBy?: string;
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
interface WorkbookScripts {
|
|
415
|
+
v: 1;
|
|
416
|
+
language: "safe-js-expr";
|
|
417
|
+
blocks: WorkbookScriptBlock[];
|
|
418
|
+
}
|
|
419
|
+
/** M3+ 命名区域:'NetPrice' → Sheet1!B2 或 Sheet1!A1:A10 */
|
|
420
|
+
interface WorkbookNamedRange {
|
|
421
|
+
name: string;
|
|
422
|
+
ref: string;
|
|
423
|
+
}
|
|
424
|
+
interface Workbook {
|
|
425
|
+
workbookVersion: number;
|
|
426
|
+
sheets: SheetItem[];
|
|
427
|
+
activeSheetId: string;
|
|
428
|
+
ktTemplate?: KtTemplateRoot;
|
|
429
|
+
meta?: WorkbookMeta;
|
|
430
|
+
scripts?: WorkbookScripts;
|
|
431
|
+
namedRanges?: WorkbookNamedRange[];
|
|
432
|
+
extension?: Record<string, unknown>;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
export { type WorkbookReportMeta as $, type AggregateEmptyAs as A, type BorderWidth as B, type CellData as C, DEFAULT_COMPUTE_POLICY as D, type KtTemplateSubTableColumn as E, type FormulaCatalogTarget as F, type PaperSizeName as G, type HorizontalAlign as H, SNAPSHOT_KIND as I, SPLICE_COLUMN_MODE as J, type KtTemplateRoot as K, type SnapshotKind as L, type MergeRect as M, type SpliceComposeCacheV1 as N, type SubTableSlotConfig as O, type PageSettings as P, type SubTableSlotConfigEntry as Q, type RichRun as R, type Sheet as S, type TemplateFieldRegistry as T, TEMPLATE_FIELD_REGISTRY_VERSION as U, type VerticalAlign as V, type WorkbookScripts as W, WORKBOOK_META_BUSINESS_SHEET_PROFILES as X, WORKBOOK_META_INHERIT_SOURCE_BASE_SNAPSHOT_ROW_ID as Y, type WorkbookComputePolicy as Z, type WorkbookReportBandDef as _, type WorkbookMeta as a, type WorkbookScriptBlock as a0, type WorkbookScriptHook as a1, emptyFormulaCatalog as a2, getAggregateEmptyAs as a3, getFormulaCatalogFromMeta as a4, getWorkbookComputePolicy as a5, getWorkbookDerivedRules as a6, newDerivedRuleId as a7, normalizeComputePolicy as a8, normalizeDerivedRules as a9, normalizeFormulaCatalog as aa, type WorkbookNamedRange as b, type BorderPattern as c, type SheetItem as d, type Workbook as e, type FormulaCatalogEntry as f, type TemplateFieldDef as g, type TemplateSubFieldDef as h, type BusinessSheetProfile as i, type BusinessSheetProfiles as j, CREATION_MODE as k, type CellBorderSide as l, type CellBorders as m, type CellStyle as n, type CreationMode as o, DRAFT_KIND as p, type DerivedFieldRule as q, type DraftDbSpliceMeta as r, type DraftKind as s, type FormulaCatalog as t, type KtTemplateBinding as u, type KtTemplateFlexibleRowSegment as v, type KtTemplateMainField as w, type KtTemplateSlotRect as x, type KtTemplateSpliceSpec as y, type KtTemplateSubTable as z };
|
package/package.json
CHANGED
|
@@ -1,9 +1,47 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@k-table/sheet-core",
|
|
3
|
-
"version": "0.0
|
|
4
|
-
"
|
|
5
|
-
"license": "UNLICENSED",
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@k-table/sheet-core",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"publishConfig": { "access": "public" },
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"description": "kt 表格无头引擎:模型/序列化/公式/运行态/拼接/实例数据/迁移(无 React/DOM/window/fetch/zustand)",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "./dist/index.cjs",
|
|
9
|
+
"module": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/index.js",
|
|
15
|
+
"require": "./dist/index.cjs"
|
|
16
|
+
},
|
|
17
|
+
"./migrate": {
|
|
18
|
+
"types": "./dist/migrate/index.d.ts",
|
|
19
|
+
"import": "./dist/migrate/index.js",
|
|
20
|
+
"require": "./dist/migrate/index.cjs"
|
|
21
|
+
},
|
|
22
|
+
"./sheet-template-model": {
|
|
23
|
+
"types": "./dist/sheet-template-model.d.ts",
|
|
24
|
+
"import": "./dist/sheet-template-model.js",
|
|
25
|
+
"require": "./dist/sheet-template-model.cjs"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"files": [
|
|
29
|
+
"dist"
|
|
30
|
+
],
|
|
31
|
+
"sideEffects": false,
|
|
32
|
+
"scripts": {
|
|
33
|
+
"build": "tsup",
|
|
34
|
+
"typecheck": "tsc --noEmit",
|
|
35
|
+
"test": "vitest run",
|
|
36
|
+
"lint": "eslint --config ../eslint.config.mjs \"src/**/*.ts\"",
|
|
37
|
+
"clean": "rimraf dist"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"@k-table/sheet-host": "*"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"tsup": "^8.0.0",
|
|
44
|
+
"typescript": "^5",
|
|
45
|
+
"vitest": "^4.1.5"
|
|
46
|
+
}
|
|
47
|
+
}
|