@k-table/report 1.0.0 → 1.0.3
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/index.cjs +1 -1
- package/dist/index.css +31 -18
- package/dist/index.d.ts +29 -4
- package/dist/index.js +1 -1
- package/dist/store.cjs +1 -1
- package/dist/store.d.ts +29 -4
- package/dist/store.js +1 -1
- package/dist/styles.css +839 -8
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -136,9 +136,9 @@ table.kt-sheet-region-table td {
|
|
|
136
136
|
padding: 6px 8px;
|
|
137
137
|
border-bottom-width: 1px;
|
|
138
138
|
border-bottom-style: solid;
|
|
139
|
-
border-bottom-color: #e5e6eb;
|
|
140
|
-
background: #fff;
|
|
141
|
-
color: #1d2129;
|
|
139
|
+
border-bottom-color: var(--kt-forms-border, var(--kt-border, #e5e6eb));
|
|
140
|
+
background: var(--kt-forms-chrome-bar, var(--kt-header-bg, #fff));
|
|
141
|
+
color: var(--kt-forms-text, var(--kt-text, #1d2129));
|
|
142
142
|
}
|
|
143
143
|
.kt-compose-preview-pane-head__start {
|
|
144
144
|
display: flex;
|
|
@@ -156,29 +156,28 @@ table.kt-sheet-region-table td {
|
|
|
156
156
|
.kt-preview-print-bar {
|
|
157
157
|
display: flex;
|
|
158
158
|
align-items: center;
|
|
159
|
+
flex-wrap: wrap;
|
|
159
160
|
gap: 8px;
|
|
160
|
-
height:
|
|
161
|
-
min-height: 28px;
|
|
161
|
+
min-height: 40px;
|
|
162
162
|
margin-bottom: 8px;
|
|
163
163
|
box-sizing: border-box;
|
|
164
|
+
color: var(--kt-forms-text, var(--kt-text, #1d2129));
|
|
164
165
|
}
|
|
165
166
|
.kt-preview-print-bar-main,
|
|
166
167
|
.kt-preview-print-bar-end,
|
|
167
168
|
.kt-preview-zoom {
|
|
168
169
|
display: flex;
|
|
169
170
|
align-items: center;
|
|
170
|
-
min-height:
|
|
171
|
-
height: 28px;
|
|
171
|
+
min-height: 28px;
|
|
172
172
|
}
|
|
173
173
|
.kt-preview-print-bar-main {
|
|
174
174
|
min-width: 0;
|
|
175
|
-
flex: 1;
|
|
175
|
+
flex: 1 1 auto;
|
|
176
176
|
gap: 8px;
|
|
177
|
-
flex-wrap:
|
|
178
|
-
overflow-x: auto;
|
|
177
|
+
flex-wrap: wrap;
|
|
179
178
|
}
|
|
180
179
|
.kt-preview-print-bar-end {
|
|
181
|
-
flex
|
|
180
|
+
flex: 0 0 auto;
|
|
182
181
|
margin-left: auto;
|
|
183
182
|
gap: 4px;
|
|
184
183
|
}
|
|
@@ -191,34 +190,48 @@ table.kt-sheet-region-table td {
|
|
|
191
190
|
height: 28px;
|
|
192
191
|
line-height: 28px;
|
|
193
192
|
font-size: 12px;
|
|
194
|
-
color: #8c8c8c;
|
|
193
|
+
color: var(--kt-forms-text-secondary, var(--kt-text-secondary, #8c8c8c));
|
|
195
194
|
white-space: nowrap;
|
|
196
195
|
}
|
|
197
196
|
.kt-preview-fill-icon-btn {
|
|
198
197
|
display: inline-flex;
|
|
199
198
|
align-items: center;
|
|
200
199
|
justify-content: center;
|
|
201
|
-
width:
|
|
202
|
-
height:
|
|
200
|
+
width: 28px;
|
|
201
|
+
height: 28px;
|
|
203
202
|
padding: 0;
|
|
204
203
|
border-width: 0;
|
|
205
204
|
background: transparent;
|
|
206
|
-
color: #4e5969;
|
|
205
|
+
color: var(--kt-forms-text-secondary, var(--kt-text-secondary, #4e5969));
|
|
207
206
|
cursor: pointer;
|
|
208
207
|
border-radius: 2px;
|
|
209
208
|
flex-shrink: 0;
|
|
210
209
|
font-size: 16px;
|
|
211
210
|
}
|
|
212
211
|
.kt-preview-fill-icon-btn:hover {
|
|
213
|
-
background: #e5e6eb;
|
|
214
|
-
color: #1d2129;
|
|
212
|
+
background: var(--kt-primary-soft, #e5e6eb);
|
|
213
|
+
color: var(--kt-forms-text, var(--kt-text, #1d2129));
|
|
215
214
|
}
|
|
216
215
|
.kt-preview-page-chrome {
|
|
217
216
|
box-sizing: border-box;
|
|
218
217
|
min-height: calc(100vh - 104px);
|
|
219
|
-
background: #
|
|
218
|
+
background: var(--kt-forms-preview-host, var(--kt-page-bg, #f2f3f5));
|
|
219
|
+
color: var(--kt-forms-text, var(--kt-text));
|
|
220
220
|
padding: 16px;
|
|
221
221
|
}
|
|
222
|
+
.kt-preview--modal {
|
|
223
|
+
min-width: 0;
|
|
224
|
+
min-height: 0;
|
|
225
|
+
}
|
|
226
|
+
.kt-preview--modal .kt-preview-print-bar {
|
|
227
|
+
position: sticky;
|
|
228
|
+
top: 0;
|
|
229
|
+
z-index: 2;
|
|
230
|
+
background: var(--kt-forms-preview-host, var(--kt-page-bg, #f2f3f5));
|
|
231
|
+
}
|
|
232
|
+
.kt-preview--modal .kt-report-preview-host {
|
|
233
|
+
padding-top: 8px;
|
|
234
|
+
}
|
|
222
235
|
.kt-preview-page-chrome--fill {
|
|
223
236
|
min-height: 100vh;
|
|
224
237
|
padding: 8px;
|
package/dist/index.d.ts
CHANGED
|
@@ -226,8 +226,8 @@ export interface KtPreviewHooks {
|
|
|
226
226
|
) => void;
|
|
227
227
|
}
|
|
228
228
|
export interface KtDesignerHooks {
|
|
229
|
-
/**
|
|
230
|
-
bindingSchemas?: unknown[];
|
|
229
|
+
/** 业务绑定字段目录,并入设计器字段面板;函数形式按当前 artifact 动态解析 */
|
|
230
|
+
bindingSchemas?: unknown[] | ((ctx: { artifactId?: string }) => unknown[] | undefined);
|
|
231
231
|
/** 公式试算(宿主业务 API,按字段);缺省时公式面板只编辑不试算 */
|
|
232
232
|
trialFormula?: (ctx: {
|
|
233
233
|
artifactId?: string;
|
|
@@ -433,7 +433,17 @@ export function KtReportDesigner(props: {
|
|
|
433
433
|
allowImportPack?: boolean;
|
|
434
434
|
extraActions?: ReactNode;
|
|
435
435
|
leadingActions?: ReactNode;
|
|
436
|
+
/** 宿主桥(如 AI 设计助手):挂载后注入当前稿读写能力 */
|
|
437
|
+
bridgeRef?: { current: KtReportDesignerBridge | null };
|
|
438
|
+
/** 只读:隐藏保存/另存/导入入口(权限降级;画布仍可交互但不持久化) */
|
|
439
|
+
readOnly?: boolean;
|
|
436
440
|
}): JSX.Element;
|
|
441
|
+
/** 设计器宿主桥:读当前 KTL / 应用 KTL(带诊断)/ 当前预览字段袋文本 */
|
|
442
|
+
export type KtReportDesignerBridge = {
|
|
443
|
+
getCurrentKtl: () => string;
|
|
444
|
+
applyKtl: (ktl: string) => { ok: boolean; diagnostics?: { severity: string; message: string }[] };
|
|
445
|
+
getFieldDataText?: () => string;
|
|
446
|
+
};
|
|
437
447
|
export function KtReportPreview(props: {
|
|
438
448
|
artifact?: Artifact;
|
|
439
449
|
artifactId?: string;
|
|
@@ -466,6 +476,8 @@ export function KtReportPreview(props: {
|
|
|
466
476
|
next: { showOpinion: boolean; showQr: boolean; showReviewer: boolean },
|
|
467
477
|
remember: { rememberUnit?: boolean; rememberMaster?: boolean },
|
|
468
478
|
) => void;
|
|
479
|
+
/** page = 整页预览台;modal = 设计器弹层 */
|
|
480
|
+
chrome?: "page" | "modal";
|
|
469
481
|
}): JSX.Element;
|
|
470
482
|
// C3:低层逃生舱与通用预览工具
|
|
471
483
|
export type PageChromeRegions = { showOpinion: boolean; showQr: boolean; showReviewer: boolean };
|
|
@@ -536,14 +548,23 @@ export function KtReportPreviewSurface(props: {
|
|
|
536
548
|
pageChrome?: PageChromeRegions | null;
|
|
537
549
|
onPageChromeCommit?: (next: PageChromeRegions, remember: PageChromeRemember) => void;
|
|
538
550
|
watermarkOverride?: unknown;
|
|
551
|
+
/** 只构建指定 sheet(宿主分副本/隐藏副页场景) */
|
|
552
|
+
sheetIds?: string[];
|
|
553
|
+
/** 文档后处理(宿主业务变换):内建构建完成、空白变换之后调用 */
|
|
554
|
+
transformDocument?: (doc: unknown, ctx: { fieldData: ReportFieldData }) => unknown;
|
|
539
555
|
}): JSX.Element;
|
|
540
556
|
export function KtReportCatalog(props: {
|
|
541
557
|
store?: ArtifactStore;
|
|
542
558
|
kinds?: ArtifactKind[];
|
|
543
559
|
onOpenDesign: (id: string) => void;
|
|
544
|
-
|
|
560
|
+
/** 不提供则行内无「预览」入口(如母版等不可独立预览的 kind) */
|
|
561
|
+
onOpenPreview?: (id: string) => void;
|
|
545
562
|
/** 提供且 features.fill 开启时,行内出现「录入」入口 */
|
|
546
563
|
onOpenFill?: (id: string) => void;
|
|
564
|
+
/** 宿主行操作插槽:追加在内建操作之后(如启用开关/变体/提升/重置等宿主语义) */
|
|
565
|
+
renderRowActions?: (row: ArtifactMeta, ctx: { reload: () => void }) => ReactNode;
|
|
566
|
+
/** 行选择(宿主批量操作):提供后出现勾选列 */
|
|
567
|
+
rowSelection?: { selectedIds: string[]; onChange: (ids: string[]) => void };
|
|
547
568
|
}): JSX.Element;
|
|
548
569
|
export function KtThemeBar(props?: { variant?: "default" | "onPrimary" }): JSX.Element;
|
|
549
570
|
export function KtBrandBar(props: { title: string; themeBar?: boolean }): JSX.Element;
|
|
@@ -576,7 +597,10 @@ export function validateFieldsFormulas(fields: FormulaField[]): string | null;
|
|
|
576
597
|
export function prepageSaveError(workbook: unknown): string | null;
|
|
577
598
|
export function readPrepage(workbook: unknown): { sheetId?: string; rules: unknown[] } | null;
|
|
578
599
|
export function isPrepageSheet(workbook: unknown, sheetId: string): boolean;
|
|
579
|
-
export function parseKtlSafe(ktl: string): {
|
|
600
|
+
export function parseKtlSafe(ktl: string): {
|
|
601
|
+
workbook: import("@k-table/sheet-core").TemplateWorkbookState | null;
|
|
602
|
+
diagnostics: { severity: string; message: string }[];
|
|
603
|
+
};
|
|
580
604
|
export function workbookToKtlText(workbook: unknown): string;
|
|
581
605
|
|
|
582
606
|
// ---- C2a:实例填报(KtReportFill + 画布三件套) ----
|
|
@@ -670,6 +694,7 @@ export const KtReportFill: React.ForwardRefExoticComponent<
|
|
|
670
694
|
request?: <T>(path: string, init?: RequestInit) => Promise<T>;
|
|
671
695
|
scheme?: any;
|
|
672
696
|
onSchemeChange?: (s: any, b: any) => void;
|
|
697
|
+
loadMaster?: (masterId: string) => Promise<string | null>;
|
|
673
698
|
};
|
|
674
699
|
dicts?: Record<string, { value: string; label: string }[]>;
|
|
675
700
|
className?: string;
|