weaver-e10-builder 1.5.11 → 1.5.13
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/README.md +212 -189
- package/assets/image-style-observation.schema.json +1355 -0
- package/assets/layout-spec.schema.json +52 -0
- package/dist/commands/designer-common.d.ts.map +1 -1
- package/dist/commands/designer-common.js +91 -0
- package/dist/commands/designer-common.js.map +1 -1
- package/dist/commands/form-add-detail-table.d.ts.map +1 -1
- package/dist/commands/form-add-detail-table.js +97 -1
- package/dist/commands/form-add-detail-table.js.map +1 -1
- package/dist/commands/form-field-linkage.d.ts +55 -0
- package/dist/commands/form-field-linkage.d.ts.map +1 -1
- package/dist/commands/form-field-linkage.js +1026 -12
- package/dist/commands/form-field-linkage.js.map +1 -1
- package/dist/commands/form-formula-linkage.d.ts +36 -0
- package/dist/commands/form-formula-linkage.d.ts.map +1 -1
- package/dist/commands/form-formula-linkage.js +107 -7
- package/dist/commands/form-formula-linkage.js.map +1 -1
- package/dist/commands/form-formula.d.ts.map +1 -1
- package/dist/commands/form-formula.js +21 -4
- package/dist/commands/form-formula.js.map +1 -1
- package/dist/commands/form-layout-restore.d.ts +3 -0
- package/dist/commands/form-layout-restore.d.ts.map +1 -0
- package/dist/commands/form-layout-restore.js +217 -0
- package/dist/commands/form-layout-restore.js.map +1 -0
- package/dist/commands/form-layout.d.ts.map +1 -1
- package/dist/commands/form-layout.js +11 -1
- package/dist/commands/form-layout.js.map +1 -1
- package/dist/commands/form-obj-meta.d.ts +12 -0
- package/dist/commands/form-obj-meta.d.ts.map +1 -0
- package/dist/commands/form-obj-meta.js +116 -0
- package/dist/commands/form-obj-meta.js.map +1 -0
- package/dist/commands/form-validate.d.ts.map +1 -1
- package/dist/commands/form-validate.js +167 -35
- package/dist/commands/form-validate.js.map +1 -1
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +359 -27
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/menu.d.ts.map +1 -1
- package/dist/commands/menu.js +5 -3
- package/dist/commands/menu.js.map +1 -1
- package/dist/commands/wf-form.d.ts.map +1 -1
- package/dist/commands/wf-form.js +215 -13
- package/dist/commands/wf-form.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +18 -4
- package/dist/commands/workflow.js.map +1 -1
- package/dist/core/client.d.ts +2 -1
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +4 -2
- package/dist/core/client.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/services/actionflow/calendar_mapper.d.ts.map +1 -1
- package/dist/services/actionflow/calendar_mapper.js +34 -14
- package/dist/services/actionflow/calendar_mapper.js.map +1 -1
- package/dist/services/actionflow/components/document_actions.d.ts.map +1 -1
- package/dist/services/actionflow/components/document_actions.js +113 -4
- package/dist/services/actionflow/components/document_actions.js.map +1 -1
- package/dist/services/actionflow/components/eb_get_data_by_id.d.ts.map +1 -1
- package/dist/services/actionflow/components/eb_get_data_by_id.js +18 -1
- package/dist/services/actionflow/components/eb_get_data_by_id.js.map +1 -1
- package/dist/services/actionflow/components/index.d.ts.map +1 -1
- package/dist/services/actionflow/components/index.js +2 -1
- package/dist/services/actionflow/components/index.js.map +1 -1
- package/dist/services/actionflow/components/schedule_create.d.ts.map +1 -1
- package/dist/services/actionflow/components/schedule_create.js +22 -6
- package/dist/services/actionflow/components/schedule_create.js.map +1 -1
- package/dist/services/actionflow/components/workflow_actions.d.ts +1 -0
- package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -1
- package/dist/services/actionflow/components/workflow_actions.js +31 -6
- package/dist/services/actionflow/components/workflow_actions.js.map +1 -1
- package/dist/services/actionflow/context_preflight.d.ts +5 -0
- package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
- package/dist/services/actionflow/context_preflight.js +88 -34
- package/dist/services/actionflow/context_preflight.js.map +1 -1
- package/dist/services/actionflow/document_source.d.ts +5 -0
- package/dist/services/actionflow/document_source.d.ts.map +1 -1
- package/dist/services/actionflow/document_source.js +16 -0
- package/dist/services/actionflow/document_source.js.map +1 -1
- package/dist/services/actionflow/filter_rules.d.ts.map +1 -1
- package/dist/services/actionflow/filter_rules.js +9 -8
- package/dist/services/actionflow/filter_rules.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts +2 -1
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +52 -22
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/preflight_service.d.ts +5 -0
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +128 -3
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/actionflow/save_workflow_draft.d.ts +7 -0
- package/dist/services/actionflow/save_workflow_draft.d.ts.map +1 -1
- package/dist/services/actionflow/save_workflow_draft.js +1 -1
- package/dist/services/actionflow/save_workflow_draft.js.map +1 -1
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_compiler.js +51 -13
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/form-formula-linkage.d.ts +4 -0
- package/dist/services/form-formula-linkage.d.ts.map +1 -1
- package/dist/services/form-formula-linkage.js +3 -1
- package/dist/services/form-formula-linkage.js.map +1 -1
- package/dist/services/form-layout-io.d.ts +18 -0
- package/dist/services/form-layout-io.d.ts.map +1 -0
- package/dist/services/form-layout-io.js +89 -0
- package/dist/services/form-layout-io.js.map +1 -0
- package/dist/services/form-layout-source/artifact.d.ts +8 -0
- package/dist/services/form-layout-source/artifact.d.ts.map +1 -0
- package/dist/services/form-layout-source/artifact.js +52 -0
- package/dist/services/form-layout-source/artifact.js.map +1 -0
- package/dist/services/form-layout-source/binding.d.ts +10 -0
- package/dist/services/form-layout-source/binding.d.ts.map +1 -0
- package/dist/services/form-layout-source/binding.js +43 -0
- package/dist/services/form-layout-source/binding.js.map +1 -0
- package/dist/services/form-layout-source/compile.d.ts +7 -0
- package/dist/services/form-layout-source/compile.d.ts.map +1 -0
- package/dist/services/form-layout-source/compile.js +262 -0
- package/dist/services/form-layout-source/compile.js.map +1 -0
- package/dist/services/form-layout-source/creation.d.ts +18 -0
- package/dist/services/form-layout-source/creation.d.ts.map +1 -0
- package/dist/services/form-layout-source/creation.js +42 -0
- package/dist/services/form-layout-source/creation.js.map +1 -0
- package/dist/services/form-layout-source/excel-extractor.d.ts +7 -0
- package/dist/services/form-layout-source/excel-extractor.d.ts.map +1 -0
- package/dist/services/form-layout-source/excel-extractor.js +342 -0
- package/dist/services/form-layout-source/excel-extractor.js.map +1 -0
- package/dist/services/form-layout-source/image-border.d.ts +9 -0
- package/dist/services/form-layout-source/image-border.d.ts.map +1 -0
- package/dist/services/form-layout-source/image-border.js +128 -0
- package/dist/services/form-layout-source/image-border.js.map +1 -0
- package/dist/services/form-layout-source/image-observation.d.ts +14 -0
- package/dist/services/form-layout-source/image-observation.d.ts.map +1 -0
- package/dist/services/form-layout-source/image-observation.js +90 -0
- package/dist/services/form-layout-source/image-observation.js.map +1 -0
- package/dist/services/form-layout-source/image-review.d.ts +32 -0
- package/dist/services/form-layout-source/image-review.d.ts.map +1 -0
- package/dist/services/form-layout-source/image-review.js +266 -0
- package/dist/services/form-layout-source/image-review.js.map +1 -0
- package/dist/services/form-layout-source/image-style.d.ts +16 -0
- package/dist/services/form-layout-source/image-style.d.ts.map +1 -0
- package/dist/services/form-layout-source/image-style.js +539 -0
- package/dist/services/form-layout-source/image-style.js.map +1 -0
- package/dist/services/form-layout-source/json.d.ts +3 -0
- package/dist/services/form-layout-source/json.d.ts.map +1 -0
- package/dist/services/form-layout-source/json.js +33 -0
- package/dist/services/form-layout-source/json.js.map +1 -0
- package/dist/services/form-layout-source/presentation.d.ts +23 -0
- package/dist/services/form-layout-source/presentation.d.ts.map +1 -0
- package/dist/services/form-layout-source/presentation.js +174 -0
- package/dist/services/form-layout-source/presentation.js.map +1 -0
- package/dist/services/form-layout-source/preview.d.ts +4 -0
- package/dist/services/form-layout-source/preview.d.ts.map +1 -0
- package/dist/services/form-layout-source/preview.js +49 -0
- package/dist/services/form-layout-source/preview.js.map +1 -0
- package/dist/services/form-layout-source/schema.d.ts +20 -0
- package/dist/services/form-layout-source/schema.d.ts.map +1 -0
- package/dist/services/form-layout-source/schema.js +149 -0
- package/dist/services/form-layout-source/schema.js.map +1 -0
- package/dist/services/form-layout-source/source-grid.d.ts +8 -0
- package/dist/services/form-layout-source/source-grid.d.ts.map +1 -0
- package/dist/services/form-layout-source/source-grid.js +61 -0
- package/dist/services/form-layout-source/source-grid.js.map +1 -0
- package/dist/services/form-layout-source/types.d.ts +242 -0
- package/dist/services/form-layout-source/types.d.ts.map +1 -0
- package/dist/services/form-layout-source/types.js +2 -0
- package/dist/services/form-layout-source/types.js.map +1 -0
- package/dist/services/form-layout-source/verify.d.ts +14 -0
- package/dist/services/form-layout-source/verify.d.ts.map +1 -0
- package/dist/services/form-layout-source/verify.js +226 -0
- package/dist/services/form-layout-source/verify.js.map +1 -0
- package/dist/services/form-linkage-condition.d.ts +15 -0
- package/dist/services/form-linkage-condition.d.ts.map +1 -1
- package/dist/services/form-linkage-condition.js +19 -10
- package/dist/services/form-linkage-condition.js.map +1 -1
- package/dist/services/form-obj-meta.d.ts +72 -0
- package/dist/services/form-obj-meta.d.ts.map +1 -0
- package/dist/services/form-obj-meta.js +103 -0
- package/dist/services/form-obj-meta.js.map +1 -0
- package/dist/services/form-sub-detail.d.ts +25 -0
- package/dist/services/form-sub-detail.d.ts.map +1 -1
- package/dist/services/form-sub-detail.js +64 -0
- package/dist/services/form-sub-detail.js.map +1 -1
- package/dist/services/validate-help.d.ts +25 -0
- package/dist/services/validate-help.d.ts.map +1 -0
- package/dist/services/validate-help.js +29 -0
- package/dist/services/validate-help.js.map +1 -0
- package/dist/services/workflow-operator.d.ts +12 -5
- package/dist/services/workflow-operator.d.ts.map +1 -1
- package/dist/services/workflow-operator.js +41 -16
- package/dist/services/workflow-operator.js.map +1 -1
- package/package.json +3 -1
- package/skill-docs/SKILL.md +38 -165
- package/skill-docs/_catalog.md +4 -1
- package/skill-docs/actionflows/references/components/document/DocumentSave.md +17 -17
- package/skill-docs/actionflows/references/components/workflow/ApproveCompletelyDelete.md +29 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveDelete.md +1 -1
- package/skill-docs/assets/schemas/image-style-observation.schema.json +1355 -0
- package/skill-docs/references/coding/guide-page-code.md +2 -0
- package/skill-docs/references/coding/ref-compile-rules.md +2 -0
- package/skill-docs/references/common/capability-boundaries.md +15 -0
- package/skill-docs/references/common/guide-install.md +44 -0
- package/skill-docs/references/common/guide-plan-template.md +167 -164
- package/skill-docs/references/common/map.md +9 -0
- package/skill-docs/references/common/ref-cli-commands.md +650 -635
- package/skill-docs/references/form/guide-create-form.md +2 -0
- package/skill-docs/references/form/guide-field-linkage.md +185 -58
- package/skill-docs/references/form/guide-form-formula-functions.md +354 -343
- package/skill-docs/references/form/guide-form-layout-planning.md +6 -0
- package/skill-docs/references/form/guide-form-layout-source.md +366 -0
- package/skill-docs/references/form/guide-form-linkage.md +56 -66
- package/skill-docs/references/form/guide-form-view.md +1 -1
- package/skill-docs/references/form/guide-formula-linkage.md +44 -1
- package/skill-docs/references/workflow/guide-workflow.md +1 -1
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import { layoutSaveBody, fieldsHash, snapshotHash } from '../form-layout-io.js';
|
|
2
|
+
import { assert, clone, digest, validateSpec } from './schema.js';
|
|
3
|
+
import { associatedField, bindField, detailIdentity, flattenComponents } from './binding.js';
|
|
4
|
+
import { bindCell, cellAt, extent, nativeSheet, valueCellAt, within } from './source-grid.js';
|
|
5
|
+
import { normalizeObservedStyle, prepareImageStyleSheet, projectImageField, projectImagePage } from './image-style.js';
|
|
6
|
+
import { presentSourceGrid } from './presentation.js';
|
|
7
|
+
import { projectImageBorders } from './image-border.js';
|
|
8
|
+
export function artifactDigest(artifact) {
|
|
9
|
+
const { artifactHash: _, ...body } = artifact;
|
|
10
|
+
return digest(body);
|
|
11
|
+
}
|
|
12
|
+
/** 纯编译:复用现有字段及组件,不接收 ApiClient,不分配业务 ID,不产生网络操作。 */
|
|
13
|
+
export function compileSourceLayout(context, source, spec, compilerVersion = 'e10.layout-compiler/v5') {
|
|
14
|
+
const borderFixes = compilerVersion === 'e10.layout-compiler/v5';
|
|
15
|
+
const fixes = ['e10.layout-compiler/v3', 'e10.layout-compiler/v4', 'e10.layout-compiler/v5'].includes(compilerVersion);
|
|
16
|
+
const effectiveText = compilerVersion === 'e10.layout-compiler/v4' || borderFixes;
|
|
17
|
+
assert(borderFixes || !source.imageStyles?.tableBorders?.length, '表格外框观察需要 v5 编译器,旧版本不能忽略新的边框证据');
|
|
18
|
+
const sheet = prepareImageStyleSheet(source, validateSpec(spec, source), fixes, borderFixes);
|
|
19
|
+
const snapshot = clone(context.snapshot);
|
|
20
|
+
const imageStyleProjection = { entries: [], issues: [...(source.imageStyles?.issues || [])] };
|
|
21
|
+
if (fixes && source.imageStyles?.notes)
|
|
22
|
+
imageStyleProjection.notes = clone(source.imageStyles.notes);
|
|
23
|
+
const usedStyleRules = new Set();
|
|
24
|
+
assert(String(snapshot.form?.id) === context.target.formId && snapshot.formLayout?.id, '布局与目标 Form 不匹配');
|
|
25
|
+
assert(snapshot.formLayout.updateTimeStamp !== undefined, '布局缺少当前时间戳');
|
|
26
|
+
const pages = snapshot.formLayout.pageLayouts;
|
|
27
|
+
assert(Array.isArray(pages) && pages.length === 1 && pages[0].layoutType === 'EXCEL' && pages[0].terminalType === 'PC', '当前源还原支持单个 PC EXCEL 页面;不转换布局类型');
|
|
28
|
+
const page = pages[0];
|
|
29
|
+
const comps = flattenComponents(page.comps || []);
|
|
30
|
+
page.pageId = String(snapshot.formLayout.id);
|
|
31
|
+
if (!page.module)
|
|
32
|
+
page.module = context.target.module;
|
|
33
|
+
if (!page.ecodeVersion)
|
|
34
|
+
page.ecodeVersion = 1;
|
|
35
|
+
assert(new Set(comps.map(c => String(c.id))).size === comps.length && comps.every(c => typeof c.id === 'string' && c.id), '原生组件 ID 缺失或重复');
|
|
36
|
+
assert(page.config?.workbook?.Sheet1 && Array.isArray(page.config.workbook.Sheet1.cells), '缺少完整原生主 workbook');
|
|
37
|
+
const bound = new Set();
|
|
38
|
+
const handled = new Set();
|
|
39
|
+
const claimed = new Set();
|
|
40
|
+
const removed = new Set();
|
|
41
|
+
const details = spec.details || [];
|
|
42
|
+
const ids = new Set();
|
|
43
|
+
for (const dt of details) {
|
|
44
|
+
assert(!ids.has(dt.subFormId), '同一明细重复放置');
|
|
45
|
+
ids.add(dt.subFormId);
|
|
46
|
+
for (let r = dt.sourceRegion.row; r < dt.sourceRegion.row + dt.sourceRegion.rowCount; r++) {
|
|
47
|
+
assert(!removed.has(r), '不同明细源区域共享迁移行');
|
|
48
|
+
removed.add(r);
|
|
49
|
+
}
|
|
50
|
+
assert(!within(dt.anchor, dt.sourceRegion), '明细锚点不能位于迁移区域');
|
|
51
|
+
}
|
|
52
|
+
const claim = (p, area) => {
|
|
53
|
+
const span = extent(sheet, p);
|
|
54
|
+
if (area)
|
|
55
|
+
assert(within(span, area) && within({ row: span.row + span.rowCount - 1, col: span.col + span.colCount - 1 }, area), '明细源字段超出区域');
|
|
56
|
+
else
|
|
57
|
+
assert(Array.from({ length: span.rowCount }, (_, r) => p.row + r).every(r => !removed.has(r)), '主表字段或明细标题与迁移行冲突');
|
|
58
|
+
for (let r = p.row; r < p.row + span.rowCount; r++)
|
|
59
|
+
for (let c = p.col; c < p.col + span.colCount; c++) {
|
|
60
|
+
const key = `${r},${c}`;
|
|
61
|
+
assert(!claimed.has(key), `TITLE、VALUE 或明细锚点相互重叠 (${key});独占整行需要分别设置标题和值区域的合并跨度,不能同坐标绑定或用 single-row 代替`);
|
|
62
|
+
claimed.add(key);
|
|
63
|
+
}
|
|
64
|
+
return span;
|
|
65
|
+
};
|
|
66
|
+
const shift = (p) => ({ row: p.row - [...removed].filter(r => r < p.row).length, col: p.col });
|
|
67
|
+
const main = { ...clone(page.config.workbook.Sheet1), ...nativeSheet(sheet, removed) };
|
|
68
|
+
const warnings = [...source.unsupported];
|
|
69
|
+
for (const [key, max] of [['frozenRowCount', main.rowCount], ['frozenColumnCount', main.columnCount + (compilerVersion === 'legacy' ? 0 : 2)]]) {
|
|
70
|
+
if (main[key] !== undefined)
|
|
71
|
+
assert(Number.isInteger(main[key]) && main[key] >= 0 && main[key] <= max, '原有冻结配置超出新网格范围,需要先调整配置');
|
|
72
|
+
}
|
|
73
|
+
const move = (comp, p, targetSheet, sourcePosition, sourceCell = cellAt(sheet, sourcePosition)) => {
|
|
74
|
+
const span = extent(sheet, sourcePosition);
|
|
75
|
+
comp.config.excel.row = p.row;
|
|
76
|
+
comp.config.excel.col = p.col;
|
|
77
|
+
// 原生组件的身份、父节点、业务配置及其他位置元数据保留;单元格跨度由 workbook 管理。
|
|
78
|
+
bindCell(targetSheet, comp, p, sourceCell);
|
|
79
|
+
handled.add(String(comp.id));
|
|
80
|
+
return span;
|
|
81
|
+
};
|
|
82
|
+
const checkTitle = (binding, p) => {
|
|
83
|
+
const text = String(cellAt(sheet, p).value ?? '').trim();
|
|
84
|
+
const raw = binding.title.config?.title;
|
|
85
|
+
const explicitAlias = source.imageStyles?.fields?.find(r => r.fieldId === binding.field.fieldId && r.displayTitle !== undefined && (r.subFormId ? r.subFormId === String(binding.field.subFormId) : ['', '0', '-1'].includes(String(binding.field.subFormId || ''))))?.displayTitle;
|
|
86
|
+
const actual = String(explicitAlias ?? (typeof raw === 'string' ? raw : raw?.nameAlias || binding.field.title || binding.field.fieldName || '')).trim();
|
|
87
|
+
const markedRequired = text.startsWith('*') || text.endsWith('*');
|
|
88
|
+
const normalized = text.replace(/^[*\s]+|[*\s::]+$/g, '').trim();
|
|
89
|
+
const literalMatch = text.replace(/[::]$/g, '').trim() === actual.replace(/[::]$/g, '').trim();
|
|
90
|
+
assert(literalMatch || normalized === actual.replace(/[::]$/g, '').trim(), `源 TITLE 与已有字段标题不一致:${text} / ${actual};不自动重命名字段。若仅需不同展示文案,请在 imageStyles.fields 中用真实 fieldId 设置 displayTitle,并让其与源 TITLE 一致;源 TITLE 为空时先补全观察`);
|
|
91
|
+
assert(literalMatch || !markedRequired || binding.value.config.required === true || binding.title.config.required === true || binding.field.required === true, '源必填标记与现有字段冲突,应先由 CLI 完成字段业务配置');
|
|
92
|
+
};
|
|
93
|
+
for (const field of spec.fields) {
|
|
94
|
+
claim(field.title);
|
|
95
|
+
claim(field.value);
|
|
96
|
+
const binding = bindField(field, context, comps);
|
|
97
|
+
assert(!bound.has(binding.field.fieldId), '字段重复放置');
|
|
98
|
+
bound.add(binding.field.fieldId);
|
|
99
|
+
checkTitle(binding, field.title);
|
|
100
|
+
const titleCell = cellAt(sheet, field.title), valueCell = source.imageStyles ? cellAt(sheet, field.value) : valueCellAt(sheet, field.value, field.title);
|
|
101
|
+
projectImageField(source, binding, titleCell, valueCell, imageStyleProjection, usedStyleRules, sheet.name, fixes, effectiveText);
|
|
102
|
+
move(binding.title, shift(field.title), main, field.title, titleCell);
|
|
103
|
+
move(binding.value, shift(field.value), main, field.value, valueCell);
|
|
104
|
+
}
|
|
105
|
+
for (const dt of details) {
|
|
106
|
+
claim(dt.anchor);
|
|
107
|
+
const containers = comps.filter(c => c.type === 'DetailTable' && detailIdentity(c) === dt.subFormId);
|
|
108
|
+
assert(containers.length === 1 && containers[0].config?.excel?.parent === 'ROOT', `明细 ${dt.subFormId} 缺少唯一顶层容器`);
|
|
109
|
+
const container = containers[0];
|
|
110
|
+
const childSheet = page.config.workbook[String(container.id)];
|
|
111
|
+
assert(childSheet && Array.isArray(childSheet.cells) && Array.isArray(childSheet.rows) && Array.isArray(childSheet.columns), '缺少原生明细子 workbook,不构造不完整明细');
|
|
112
|
+
assert(Number(childSheet.rowCount) >= 20 && childSheet.rows.length >= 5 && childSheet.columns.length >= 3, '原生明细缺少标准行列结构');
|
|
113
|
+
assert(Number.isInteger(childSheet.columnCount) && childSheet.columnCount === childSheet.columns.length, '原生明细列结构不完整');
|
|
114
|
+
const childPositions = new Set();
|
|
115
|
+
for (const cell of childSheet.cells) {
|
|
116
|
+
const row = Number(cell.row), col = Number(cell.col), key = `${row},${col}`;
|
|
117
|
+
assert(Number.isInteger(row) && Number.isInteger(col) && row >= 0 && row < childSheet.rowCount && col >= 0 && col < childSheet.columnCount && !childPositions.has(key), '原生明细单元格坐标无效或重复');
|
|
118
|
+
childPositions.add(key);
|
|
119
|
+
}
|
|
120
|
+
const controls = new Set(childSheet.cells.map((c) => c.style?.cellType?.type));
|
|
121
|
+
assert(['de_titletext', 'de_btn', 'de_checkall', 'de_serialtitle', 'de_title', 'de_checksingle', 'de_serialnum', 'de_tail'].every(type => controls.has(type)), '原生明细缺少完整系统控件,不补造空壳');
|
|
122
|
+
assert(!container.config.enableSubDetail, '二级明细不在源样式还原范围');
|
|
123
|
+
move(container, shift(dt.anchor), main, dt.anchor);
|
|
124
|
+
const detailSourceClaims = new Set();
|
|
125
|
+
for (const field of dt.fields) {
|
|
126
|
+
claim(field.title, dt.sourceRegion);
|
|
127
|
+
claim(field.value, dt.sourceRegion);
|
|
128
|
+
for (const p of [field.title, field.value]) {
|
|
129
|
+
const e = extent(sheet, p);
|
|
130
|
+
for (let r = e.row; r < e.row + e.rowCount; r++)
|
|
131
|
+
for (let c = e.col; c < e.col + e.colCount; c++)
|
|
132
|
+
detailSourceClaims.add(`${r},${c}`);
|
|
133
|
+
}
|
|
134
|
+
const binding = bindField(field, context, comps, dt.subFormId);
|
|
135
|
+
assert(!bound.has(binding.field.fieldId), '明细字段重复放置');
|
|
136
|
+
bound.add(binding.field.fieldId);
|
|
137
|
+
checkTitle(binding, field.title);
|
|
138
|
+
const titleCell = cellAt(sheet, field.title), valueCell = source.imageStyles ? cellAt(sheet, field.value) : valueCellAt(sheet, field.value, field.title);
|
|
139
|
+
projectImageField(source, binding, titleCell, valueCell, imageStyleProjection, usedStyleRules, sheet.name, fixes, effectiveText);
|
|
140
|
+
for (const [comp, sourcePoint] of [[binding.title, field.title], [binding.value, field.value]]) {
|
|
141
|
+
const excel = comp.config.excel;
|
|
142
|
+
const cells = childSheet.cells.filter((c) => String(c.style?.cellType?.comId || '') === String(comp.id));
|
|
143
|
+
assert(cells.length === 1 && Number(cells[0].row) === Number(excel.row) && Number(cells[0].col) === Number(excel.col), '明细组件与网格身份或位置不一致');
|
|
144
|
+
bindCell(childSheet, comp, { row: Number(excel.row), col: Number(excel.col) }, comp === binding.value ? valueCell : titleCell);
|
|
145
|
+
handled.add(String(comp.id));
|
|
146
|
+
}
|
|
147
|
+
// 原生明细保留完整系统行列,源列宽合并投影到对应业务列。
|
|
148
|
+
const col = Number(binding.value.config.excel.col);
|
|
149
|
+
assert(childSheet.columns[col], '明细业务列尺寸缺失');
|
|
150
|
+
const span = extent(sheet, field.value);
|
|
151
|
+
childSheet.columns[col].size = sheet.columns.slice(span.col, span.col + span.colCount).reduce((n, c) => n + c.size, 0);
|
|
152
|
+
for (const [comp, p] of [[binding.title, field.title], [binding.value, field.value]]) {
|
|
153
|
+
const row = Number(comp.config.excel.row);
|
|
154
|
+
if (childSheet.rows[row])
|
|
155
|
+
childSheet.rows[row].size = Math.max(childSheet.rows[row].size, sheet.rows[p.row].size);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
for (const cell of sheet.cells)
|
|
159
|
+
if (within({ row: Number(cell.row), col: Number(cell.col) }, dt.sourceRegion) && (cell.value !== undefined && cell.value !== '' || cell.formula)) {
|
|
160
|
+
assert(detailSourceClaims.has(`${Number(cell.row)},${Number(cell.col)}`), '明细迁移区域包含未绑定的静态内容');
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
for (const cell of sheet.cells)
|
|
164
|
+
if (removed.has(Number(cell.row)) && (cell.value !== undefined && cell.value !== '' || cell.formula)) {
|
|
165
|
+
assert(details.some(dt => within({ row: Number(cell.row), col: Number(cell.col) }, dt.sourceRegion)), '明细整行迁移会删除区域外静态文字');
|
|
166
|
+
}
|
|
167
|
+
for (const cell of main.cells)
|
|
168
|
+
if (cell.formula) {
|
|
169
|
+
assert(spec.allowUnsupported === true && cell.value !== undefined, '未绑定的源公式需要缓存值和 allowUnsupported;计算规则仍需由 CLI 单独配置');
|
|
170
|
+
warnings.push(`${sheet.name}!${cell.row},${cell.col}: 公式仅保留缓存显示值,不创建计算规则`);
|
|
171
|
+
delete cell.formula;
|
|
172
|
+
}
|
|
173
|
+
for (const comp of comps) {
|
|
174
|
+
if (handled.has(String(comp.id)))
|
|
175
|
+
continue;
|
|
176
|
+
const field = context.fields.find(f => f.fieldId === associatedField(comp));
|
|
177
|
+
assert(!field || comp.config?.display === false || comp.config?.hidden === true, `源样表未覆盖现有字段 ${field?.title || field?.fieldName || field?.fieldId}`);
|
|
178
|
+
if (comp.type === 'DetailTable')
|
|
179
|
+
assert(ids.has(detailIdentity(comp)), '源样表未覆盖现有明细');
|
|
180
|
+
const parent = comp.config?.excel?.parent;
|
|
181
|
+
if (parent && parent !== 'ROOT') {
|
|
182
|
+
assert(comps.some(c => c.type === 'DetailTable' && c.config?.excel?.nodeId === parent), '保留组件位于未支持的嵌套容器');
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
const oldCells = page.config.workbook.Sheet1.cells.filter((c) => String(c.style?.cellType?.comId || '') === String(comp.id));
|
|
186
|
+
for (const cell of oldCells) {
|
|
187
|
+
const p = { row: Number(cell.row), col: Number(cell.col) };
|
|
188
|
+
assert(p.row < main.rowCount && p.col < main.columnCount && !main.cells.some((c) => Number(c.row) === p.row && Number(c.col) === p.col), '未修改组件与源网格冲突,需要明确完整布局映射');
|
|
189
|
+
main.cells.push(clone(cell));
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
page.config.workbook.Sheet1 = main;
|
|
193
|
+
const imageBorderProjection = borderFixes && source.sourceType === 'image' ? projectImageBorders(source, main, sheet.name, removed) : undefined;
|
|
194
|
+
if (imageBorderProjection) {
|
|
195
|
+
imageStyleProjection.issues.push(...imageBorderProjection.issues);
|
|
196
|
+
if (!imageBorderProjection.observed)
|
|
197
|
+
warnings.push('[IMAGE_BORDER_OBSERVATION_REQUIRED] 未记录表格外框,草稿可预览;保存前需补充 tableBorders 并经用户确认');
|
|
198
|
+
}
|
|
199
|
+
const presentation = compilerVersion === 'legacy' ? undefined : presentSourceGrid(main, comps, context.snapshot.formLayout.pageLayouts[0].config.workbook.Sheet1);
|
|
200
|
+
if (fixes)
|
|
201
|
+
for (const grid of Object.values(page.config.workbook))
|
|
202
|
+
for (const cell of grid.cells || []) {
|
|
203
|
+
assert(Number.isInteger(Number(cell.row)) && Number.isInteger(Number(cell.col)), '原生单元格坐标无效');
|
|
204
|
+
cell.row = String(Number(cell.row));
|
|
205
|
+
cell.col = String(Number(cell.col));
|
|
206
|
+
}
|
|
207
|
+
const columnOffset = presentation?.addedLeft ? 1 : 0;
|
|
208
|
+
if (imageBorderProjection) {
|
|
209
|
+
for (const entry of imageBorderProjection.entries)
|
|
210
|
+
entry.col += columnOffset;
|
|
211
|
+
for (const table of imageBorderProjection.tables)
|
|
212
|
+
table.col += columnOffset;
|
|
213
|
+
}
|
|
214
|
+
if (source.imageStyles) {
|
|
215
|
+
for (const rule of source.imageStyles.cells || []) {
|
|
216
|
+
const style = normalizeObservedStyle(rule.style);
|
|
217
|
+
const native = cellAt(sheet, rule);
|
|
218
|
+
const mapped = [...spec.fields, ...(spec.details || []).flatMap(d => d.fields)].some(f => [f.title, f.value].some(p => p.row === rule.row && p.col === rule.col));
|
|
219
|
+
if (!mapped && [style.fontWeight, style.fontStyle, style.fontFamily].some(v => v !== undefined) && !native.style?.font)
|
|
220
|
+
imageStyleProjection.issues.push(`静态单元格 ${rule.row},${rule.col} 的字体缺少可用字号,不能只凭 bold 推定字体`);
|
|
221
|
+
}
|
|
222
|
+
assert((source.imageStyles.fields || []).every(rule => usedStyleRules.has(rule)), '图片样式引用了未绑定字段,不修改布局范围外组件');
|
|
223
|
+
projectImagePage(source, snapshot.formLayout, imageStyleProjection);
|
|
224
|
+
const sourceMainPositions = new Set(sheet.cells.filter(c => !removed.has(Number(c.row))).map(c => {
|
|
225
|
+
const row = shift({ row: Number(c.row), col: Number(c.col) }).row;
|
|
226
|
+
const move = presentation?.staticCellMoves.find(m => m.row === row && m.fromCol === Number(c.col));
|
|
227
|
+
return `${row},${move?.toCol ?? Number(c.col) + columnOffset}`;
|
|
228
|
+
}));
|
|
229
|
+
for (const [key, grid] of Object.entries(page.config.workbook))
|
|
230
|
+
for (const cell of grid.cells || []) {
|
|
231
|
+
const fromSource = key === 'Sheet1' && sourceMainPositions.has(`${Number(cell.row)},${Number(cell.col)}`);
|
|
232
|
+
const boundCell = handled.has(String(cell.style?.cellType?.comId || ''));
|
|
233
|
+
if (!fromSource && !boundCell)
|
|
234
|
+
continue;
|
|
235
|
+
const { cellType: _, ...properties } = cell.style || {};
|
|
236
|
+
if (Object.keys(properties).length)
|
|
237
|
+
imageStyleProjection.entries.push({ layer: 'cell', sheet: key, row: Number(cell.row), col: Number(cell.col), source: `workbook:${key}!${cell.row},${cell.col}`, properties: clone(properties) });
|
|
238
|
+
}
|
|
239
|
+
if (!imageStyleProjection.entries.length)
|
|
240
|
+
imageStyleProjection.issues.push('未观察到可投影图片样式,布局结构通过不等于图片样式已还原');
|
|
241
|
+
assert(!imageStyleProjection.issues.length || spec.allowUnsupported === true, `图片样式投影未闭合:${imageStyleProjection.issues.join('; ')}`);
|
|
242
|
+
warnings.push(...imageStyleProjection.issues);
|
|
243
|
+
}
|
|
244
|
+
const request = layoutSaveBody(context.target, snapshot, true);
|
|
245
|
+
const artifact = {
|
|
246
|
+
schemaVersion: 'e10.layout-artifact/v1', context: clone(context), source: clone(source), spec: clone(spec), request,
|
|
247
|
+
...(presentation ? { compilerVersion: compilerVersion, presentation } : {}),
|
|
248
|
+
fieldHash: fieldsHash(context.fields), snapshotHash: snapshotHash(context.snapshot), warnings, artifactHash: '',
|
|
249
|
+
...(source.imageStyles ? { imageStyleProjection } : {}),
|
|
250
|
+
...(imageBorderProjection ? { imageBorderProjection } : {}),
|
|
251
|
+
};
|
|
252
|
+
artifact.artifactHash = artifactDigest(artifact);
|
|
253
|
+
return artifact;
|
|
254
|
+
}
|
|
255
|
+
/** 不信任产物里任意保存请求,按原始输入重编译并逐项核对。 */
|
|
256
|
+
export function validateArtifact(artifact) {
|
|
257
|
+
assert(artifact?.schemaVersion === 'e10.layout-artifact/v1' && artifact.artifactHash === artifactDigest(artifact), '编译产物摘要不一致');
|
|
258
|
+
assert(artifact.compilerVersion === undefined || ['e10.layout-compiler/v2', 'e10.layout-compiler/v3', 'e10.layout-compiler/v4', 'e10.layout-compiler/v5'].includes(artifact.compilerVersion), '不支持的布局编译版本');
|
|
259
|
+
const recompiled = compileSourceLayout(artifact.context, artifact.source, artifact.spec, artifact.compilerVersion ?? 'legacy');
|
|
260
|
+
assert(recompiled.artifactHash === artifact.artifactHash, '产物与可复现编译结果不一致');
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=compile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../src/services/form-layout-source/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACvH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,UAAU,cAAc,CAAC,QAAwB;IACrD,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;IAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AACrE,CAAC;AACD,oDAAoD;AACpD,MAAM,UAAU,mBAAmB,CAAC,OAAsB,EAAE,MAAoB,EAAE,IAAgB,EAAE,kBAA6E,wBAAwB;IACvM,MAAM,WAAW,GAAG,eAAe,KAAK,wBAAwB,CAAC;IACjE,MAAM,KAAK,GAAG,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACvH,MAAM,aAAa,GAAG,eAAe,KAAK,wBAAwB,IAAI,WAAW,CAAC;IAClF,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,+BAA+B,CAAC,CAAC;IAClG,MAAM,KAAK,GAAG,sBAAsB,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvI,MAAM,oBAAoB,GAAyB,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IACpH,IAAI,KAAK,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK;QAAE,oBAAoB,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACrG,MAAM,cAAc,GAAG,IAAI,GAAG,EAAO,CAAC;IACtC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACzG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,KAAK,SAAS,EAAE,WAAW,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;IAC9C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,IAAI,EAAE,+BAA+B,CAAC,CAAC;IACzJ,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAAC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC7C,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IACtD,IAAI,CAAC,IAAI,CAAC,YAAY;QAAE,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;IAC9C,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;IAC3I,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAC9G,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAAC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAAC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAAC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IACzI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IAAC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAClE,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;QAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QAClE,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QACvJ,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,CAAQ,EAAE,IAAU,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9B,IAAI,IAAI;YAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;;YACvI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACvH,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;YAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvG,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,0BAA0B,GAAG,iDAAiD,CAAC,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,CAAQ,EAAS,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7G,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;IACvF,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAU,EAAE,CAAC;QACxJ,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,uBAAuB,CAAC,CAAC;IAClI,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,IAAS,EAAE,CAAQ,EAAE,WAAgB,EAAE,cAAqB,EAAE,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,EAAE;QACxH,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;QAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;QAC7D,iDAAiD;QACjD,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,OAAY,EAAE,CAAQ,EAAE,EAAE;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;QACxC,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;QACpR,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxJ,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACjE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/F,MAAM,CAAC,YAAY,IAAI,UAAU,KAAK,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,sBAAsB,IAAI,MAAM,MAAM,wGAAwG,CAAC,CAAC;QAC3N,MAAM,CAAC,YAAY,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,+BAA+B,CAAC,CAAC;IAClM,CAAC,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;QAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxI,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACzJ,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,cAAc,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QACjI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC/I,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzB,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QACjB,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC;QACrG,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,EAAE,MAAM,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC;QACjH,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,2BAA2B,CAAC,CAAC;QAC1J,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC;QAC3H,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,WAAW,KAAK,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACvH,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAC5E,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,UAAU,CAAC,QAAQ,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,UAAU,CAAC,WAAW,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC;YAC1L,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACpF,MAAM,CAAC,CAAC,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;QACrL,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YAC9B,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;YAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;YACzE,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAAC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE;oBAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE;wBAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAAC,CAAC;YAClN,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;YAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;YAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxJ,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACzJ,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,cAAc,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;YACjI,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAU,EAAE,CAAC;gBACxG,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAChC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9G,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,CAAC;gBAC1I,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/J,CAAC;YACD,8BAA8B;YAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;YACjG,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAChK,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAU,EAAE,CAAC;gBAC9F,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;oBAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/J,CAAC;QACH,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK;YAAE,IAAI,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjL,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAC;YAChG,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK;QAAE,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACrI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAC5H,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK;QAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,iDAAiD,CAAC,CAAC;YACtH,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,sBAAsB,CAAC,CAAC;YAC3E,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAAE,SAAS;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,MAAM,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EAAE,cAAc,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,SAAS,IAAI,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACrJ,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;QAC1C,IAAI,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC;YAC1G,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAClI,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3D,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,wBAAwB,CAAC,CAAC;YACxK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACnC,MAAM,qBAAqB,GAAG,WAAW,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChJ,IAAI,qBAAqB,EAAE,CAAC;QAC1B,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,qBAAqB,CAAC,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;IACrI,CAAC;IACD,MAAM,YAAY,GAAG,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClK,IAAI,KAAK;QAAE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAU;YAAE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;gBAChH,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;gBAC9F,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3E,CAAC;IACD,MAAM,YAAY,GAAG,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,IAAI,qBAAqB,EAAE,CAAC;QAC1B,KAAK,MAAM,KAAK,IAAI,qBAAqB,CAAC,OAAO;YAAE,KAAK,CAAC,GAAG,IAAI,YAAY,CAAC;QAC7E,KAAK,MAAM,KAAK,IAAI,qBAAqB,CAAC,MAAM;YAAE,KAAK,CAAC,GAAG,IAAI,YAAY,CAAC;IAC9E,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAClK,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI;gBAAE,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,2BAA2B,CAAC,CAAC;QACrN,CAAC;QACD,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC;QAC7G,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QACpE,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC/F,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;YAClE,MAAM,IAAI,GAAG,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACnG,OAAO,GAAG,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,CAAC;QACjE,CAAC,CAAC,CAAC,CAAC;QACJ,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAU;YAAE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;gBAC7G,MAAM,UAAU,GAAG,GAAG,KAAK,QAAQ,IAAI,mBAAmB,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC1G,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;gBACzE,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS;oBAAE,SAAS;gBACxC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACxD,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM;oBAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACvO,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM;YAAE,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC3G,MAAM,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE,aAAa,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrI,QAAQ,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAmB;QAC/B,aAAa,EAAE,wBAAwB,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO;QACnH,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,eAAiE,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7H,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC/G,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC;IACF,QAAQ,CAAC,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAAC,OAAO,QAAQ,CAAC;AACpE,CAAC;AACD,kCAAkC;AAClC,MAAM,UAAU,gBAAgB,CAAC,QAAwB;IACvD,MAAM,CAAC,QAAQ,EAAE,aAAa,KAAK,wBAAwB,IAAI,QAAQ,CAAC,YAAY,KAAK,cAAc,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;IAChI,MAAM,CAAC,QAAQ,CAAC,eAAe,KAAK,SAAS,IAAI,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC,CAAC;IAC5M,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,CAAC;IAC/H,MAAM,CAAC,UAAU,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type LayoutClient } from '../form-layout-io.js';
|
|
2
|
+
import type { LayoutSource, LayoutSpec, LayoutTarget } from './types.js';
|
|
3
|
+
export interface SourceLayoutInputs {
|
|
4
|
+
source: LayoutSource;
|
|
5
|
+
spec: LayoutSpec;
|
|
6
|
+
artifactOut: string;
|
|
7
|
+
}
|
|
8
|
+
/** 创建前验证源文件及布局描述;不依赖尚未生成的字段 ID,不执行业务请求。 */
|
|
9
|
+
export declare function prepareSourceLayoutInputs(options: {
|
|
10
|
+
layoutSource?: string;
|
|
11
|
+
layoutSpec?: string;
|
|
12
|
+
layoutArtifactOut?: string;
|
|
13
|
+
fields?: string;
|
|
14
|
+
layout?: string;
|
|
15
|
+
}): Promise<SourceLayoutInputs | null>;
|
|
16
|
+
/** 字段补写和归组全部结束后调用;故障只保留部分状态,不删除已创建的表单。 */
|
|
17
|
+
export declare function restoreSourceLayoutAfterCreate(client: LayoutClient, baseUrl: string, target: LayoutTarget, inputs: SourceLayoutInputs): Promise<any>;
|
|
18
|
+
//# sourceMappingURL=creation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"creation.d.ts","sourceRoot":"","sources":["../../../src/services/form-layout-source/creation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAK5E,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGzE,MAAM,WAAW,kBAAkB;IAAG,MAAM,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE;AACnG,2CAA2C;AAC3C,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAYzM;AACD,0CAA0C;AAC1C,wBAAsB,8BAA8B,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,CAU1J"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { readLayoutContext } from '../form-layout-io.js';
|
|
2
|
+
import { checkOutputPath, readJson, distinctOutput, verifySourceFile, writeJson } from './artifact.js';
|
|
3
|
+
import { assert, validateSpec } from './schema.js';
|
|
4
|
+
import { compileSourceLayout } from './compile.js';
|
|
5
|
+
import { applySourceLayout } from './verify.js';
|
|
6
|
+
import { assertBorderObservation } from './image-border.js';
|
|
7
|
+
/** 创建前验证源文件及布局描述;不依赖尚未生成的字段 ID,不执行业务请求。 */
|
|
8
|
+
export async function prepareSourceLayoutInputs(options) {
|
|
9
|
+
if (!options.layoutSource && !options.layoutSpec && !options.layoutArtifactOut)
|
|
10
|
+
return null;
|
|
11
|
+
assert(options.layoutSource && options.layoutSpec && options.layoutArtifactOut, '源布局创建需要同时提供 --layout-source、--layout-spec 和 --layout-artifact-out');
|
|
12
|
+
assert(String(options.layout || 'EXCEL').toUpperCase() === 'EXCEL', '源样式还原需要创建 EXCEL 表单,不转换 FLOW');
|
|
13
|
+
const source = readJson(options.layoutSource);
|
|
14
|
+
const spec = readJson(options.layoutSpec);
|
|
15
|
+
for (const out of [options.layoutArtifactOut, `${options.layoutArtifactOut}.report.json`]) {
|
|
16
|
+
distinctOutput(out, [options.layoutSource, options.layoutSpec, options.fields, source.sourceFile]);
|
|
17
|
+
checkOutputPath(out);
|
|
18
|
+
}
|
|
19
|
+
validateSpec(spec, source);
|
|
20
|
+
await verifySourceFile(source);
|
|
21
|
+
assert(source.sourceType !== 'image' || source.observations?.confirmed === true, '[IMAGE_STYLE_CONFIRMATION_REQUIRED] 图片布局创建前先向用户展示字体、字号、颜色及对齐;用户确认后 style-review --confirm,再使用确认后的源文件创建');
|
|
22
|
+
assertBorderObservation(source, spec.allowUnsupported === true);
|
|
23
|
+
return { source, spec, artifactOut: options.layoutArtifactOut };
|
|
24
|
+
}
|
|
25
|
+
/** 字段补写和归组全部结束后调用;故障只保留部分状态,不删除已创建的表单。 */
|
|
26
|
+
export async function restoreSourceLayoutAfterCreate(client, baseUrl, target, inputs) {
|
|
27
|
+
await verifySourceFile(inputs.source);
|
|
28
|
+
const context = await readLayoutContext(client, baseUrl, target);
|
|
29
|
+
const artifact = compileSourceLayout(context, inputs.source, inputs.spec);
|
|
30
|
+
writeJson(inputs.artifactOut, artifact);
|
|
31
|
+
const result = await applySourceLayout(client, baseUrl, artifact);
|
|
32
|
+
const reportOut = `${inputs.artifactOut}.report.json`;
|
|
33
|
+
let reportWriteError;
|
|
34
|
+
try {
|
|
35
|
+
writeJson(reportOut, result);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
reportWriteError = error.message;
|
|
39
|
+
}
|
|
40
|
+
return { ...result, artifactOut: inputs.artifactOut, reportOut, ...(reportWriteError ? { reportWriteError } : {}) };
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=creation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"creation.js","sourceRoot":"","sources":["../../../src/services/form-layout-source/creation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"excel-extractor.d.ts","sourceRoot":"","sources":["../../../src/services/form-layout-source/excel-extractor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,YAAY,CAAC;AAUlE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAInE;AAgFD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CA8G5E"}
|