@qianxiang-ai/fu-report-viewer-engine 1.1.12 → 1.1.14

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.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export * from './types.js';
2
- export { convertLegacyViewerModel, parseLegacyRichText } from './legacy-converter.js';
2
+ export { convertLegacyViewerModel, parseLegacyRichText, nativeLayoutSource, applyNativeLayout, prepareNativeLayoutFonts } from './legacy-converter.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export * from './types.js';
2
- export { convertLegacyViewerModel, parseLegacyRichText } from './legacy-converter.js';
2
+ export { convertLegacyViewerModel, parseLegacyRichText, nativeLayoutSource, applyNativeLayout, prepareNativeLayoutFonts } from './legacy-converter.js';
@@ -1,5 +1,10 @@
1
- import type { ViewerRenderModel } from '@qianxiang-ai/fu-report-contracts';
2
- import type { NativeConversionOptions, NativeRichTextNode, NativeViewerDocument } from './types.js';
1
+ import { type ReportLayout, type ViewerRenderModel } from '@qianxiang-ai/fu-report-contracts';
2
+ import type { NativeConversionOptions, NativeRichTextNode, NativeViewerDocument, NativeViewerSheet } from './types.js';
3
3
  export declare function convertLegacyViewerModel(model: ViewerRenderModel, options?: NativeConversionOptions): NativeViewerDocument;
4
4
  export declare function parseLegacyRichText(value: unknown, depth?: number): readonly NativeRichTextNode[];
5
+ /** 原生查看器查询完成后提交普通文本和设计几何,布局入口不会再次查询业务数据。 */
6
+ export declare function nativeLayoutSource(sheet: NativeViewerSheet, printConfig?: Record<string, unknown>): Record<string, unknown>;
7
+ /** 保留单元格身份和交互属性,仅用服务端结果替换行几何及普通文本的位置。 */
8
+ export declare function applyNativeLayout(sheet: NativeViewerSheet, layout: ReportLayout, printConfig?: Record<string, unknown>): NativeViewerSheet;
9
+ export declare function prepareNativeLayoutFonts(layout: ReportLayout, apiBaseUrl: string): Promise<ReportLayout>;
5
10
  //# sourceMappingURL=legacy-converter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"legacy-converter.d.ts","sourceRoot":"","sources":["../src/legacy-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,KAAK,EAMV,uBAAuB,EAKvB,kBAAkB,EAClB,oBAAoB,EAErB,MAAM,YAAY,CAAA;AA4BnB,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,iBAAiB,EACxB,OAAO,GAAE,uBAA4B,GACpC,oBAAoB,CAgBtB;AA0ND,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,SAAI,GAAG,SAAS,kBAAkB,EAAE,CA4B5F"}
1
+ {"version":3,"file":"legacy-converter.d.ts","sourceRoot":"","sources":["../src/legacy-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAC/G,OAAO,KAAK,EAMV,uBAAuB,EAKvB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,YAAY,CAAA;AA4BnB,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,iBAAiB,EACxB,OAAO,GAAE,uBAA4B,GACpC,oBAAoB,CAgBtB;AA4ND,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,SAAI,GAAG,SAAS,kBAAkB,EAAE,CA4B5F;AAqeD,4CAA4C;AAC5C,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0B/H;AAED,yCAAyC;AACzC,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAC9E,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,iBAAiB,CAwB9D;AAKD,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAiB9G"}
@@ -1,3 +1,4 @@
1
+ import { TextLayoutSchema } from '@qianxiang-ai/fu-report-contracts';
1
2
  const DATASET_REFERENCE_SOURCE = '[#$]\\{([A-Za-z_][A-Za-z0-9_.-]{0,127})\\.([A-Za-z_][A-Za-z0-9_.-]{0,127})\\}(\\.group\\(\\))?';
2
3
  const DATASET_REFERENCE = new RegExp(DATASET_REFERENCE_SOURCE, 'g');
3
4
  const EXACT_DATASET_REFERENCE = new RegExp(`^${DATASET_REFERENCE_SOURCE}$`);
@@ -37,7 +38,7 @@ function sourceSheets(root) {
37
38
  }
38
39
  function convertSheet(source, options) {
39
40
  const document = source.document;
40
- const defaultRowHeight = clamp(number(options.defaultRowHeight, 26), 12, 240);
41
+ const defaultRowHeight = clamp(number(options.defaultRowHeight, 25), 12, 240);
41
42
  const defaultColumnWidth = clamp(number(options.defaultColumnWidth, 100), 24, 1000);
42
43
  const expanded = expandRows(object(document.rows), options.datasets ?? {}, defaultRowHeight);
43
44
  const expandedRowShift = Math.max(0, ...expanded.map(row => row.outputRow - row.sourceRow));
@@ -100,6 +101,8 @@ function convertSheet(source, options) {
100
101
  contentBox: inset(bounds, padding),
101
102
  zIndex: integer(cell.zIndex, 1),
102
103
  text: value.text,
104
+ ...(typeof cell.autoHeight === 'boolean' ? { autoHeight: cell.autoHeight } : {}),
105
+ ...(cell.printLayout ? { textLayout: TextLayoutSchema.parse(cell.printLayout) } : {}),
103
106
  richText: value.richText,
104
107
  hyperlink: safeLink(cell.hyperlink ?? cell.link),
105
108
  style,
@@ -130,7 +133,7 @@ function convertSheet(source, options) {
130
133
  columns,
131
134
  cells: visibleCells,
132
135
  layers,
133
- pages: paginate(printRows, object(document.printConfig), height),
136
+ pages: paginate(printRows, object(document.printConfig), height, undefined, cells),
134
137
  frozen: freezePoint(string(document.freeze, ''), printRows, columns)
135
138
  };
136
139
  }
@@ -521,27 +524,31 @@ function normalizeChartType(value) {
521
524
  return value;
522
525
  return 'bar';
523
526
  }
524
- function paginate(rows, config, contentHeight) {
527
+ function paginate(rows, config, contentHeight, resolvedPageHeight, cells = []) {
525
528
  const paperHeightMm = string(config.layout, 'portrait') === 'landscape'
526
529
  ? number(config.width, 297) : number(config.height, 297);
527
530
  const margin = clamp(number(config.marginY, 10), 0, paperHeightMm / 3);
528
- const pageHeight = Math.max(96, (paperHeightMm - margin * 2) * 96 / 25.4);
531
+ const pageHeight = resolvedPageHeight ?? Math.max(1, Math.floor((paperHeightMm - margin * 2) * 96 / 25.4)
532
+ - (config.paginationShow === true ? 20 : 0));
529
533
  const pages = [];
530
- let firstRow = 0;
531
534
  let top = 0;
532
- while (firstRow < rows.length) {
533
- let lastRow = firstRow;
534
- while (lastRow + 1 < rows.length && rows[lastRow + 1].offset + rows[lastRow + 1].size - top <= pageHeight)
535
- lastRow++;
536
- pages.push({ index: pages.length, top, height: pageHeight, firstRow, lastRow });
537
- firstRow = lastRow + 1;
538
- top = rows[firstRow]?.offset ?? rows.reduce((sum, row) => sum + row.size, 0);
539
- }
540
- // 悬浮图层可以超过最后一行;继续分页但不向表格模型插入不存在的数据行。
541
- while (pages.length && pages[pages.length - 1].top + pageHeight < contentHeight) {
542
- const previous = pages[pages.length - 1];
543
- pages.push({ index: pages.length, top: previous.top + pageHeight, height: pageHeight,
544
- firstRow: rows.length - 1, lastRow: rows.length - 1 });
535
+ const blocks = [...rows.map(row => ({ y: row.offset, height: row.size })),
536
+ ...cells.filter(cell => cell.rowspan > 1).map(cell => cell.bounds)];
537
+ while (top < contentHeight) {
538
+ let end = Math.min(contentHeight, top + pageHeight);
539
+ // 普通行和可放下的纵向合并整体移到下一页;超高行按连续区间续页,不能跳过剩余正文。
540
+ for (;;) {
541
+ const crossing = blocks.filter(block => block.y > top && block.y < end
542
+ && block.y + block.height > end && block.height <= pageHeight);
543
+ if (!crossing.length)
544
+ break;
545
+ end = Math.min(...crossing.map(block => block.y));
546
+ }
547
+ const intersecting = rows.filter(row => row.offset < end && row.offset + row.size > top);
548
+ pages.push({ index: pages.length, top, height: end - top,
549
+ firstRow: intersecting[0]?.index ?? Math.max(0, rows.length - 1),
550
+ lastRow: intersecting.at(-1)?.index ?? Math.max(0, rows.length - 1) });
551
+ top = end;
545
552
  }
546
553
  return pages;
547
554
  }
@@ -588,12 +595,12 @@ function normalizeStyle(source) {
588
595
  background: color(source.bgcolor ?? source.background, '#FFFFFF'),
589
596
  color: color(source.color, '#111827'),
590
597
  fontFamily: safeFont(font.name),
591
- fontSize: clamp(number(font.size, 11), 6, 96),
598
+ fontSize: clamp(number(font.size, 10), 6, 96) * 4 / 3,
592
599
  fontWeight: font.bold === true ? 'bold' : 'normal',
593
600
  fontStyle: font.italic === true ? 'italic' : 'normal',
594
601
  textAlign: enumValue(source.align, ['left', 'center', 'right'], 'left'),
595
602
  verticalAlign: enumValue(source.valign, ['top', 'middle', 'bottom'], 'middle'),
596
- whiteSpace: source.textwrap === false ? 'nowrap' : 'pre-wrap',
603
+ whiteSpace: source.textwrap === true ? 'pre-wrap' : 'nowrap',
597
604
  borderTop: borderValue(border.top),
598
605
  borderRight: borderValue(border.right),
599
606
  borderBottom: borderValue(border.bottom),
@@ -601,6 +608,8 @@ function normalizeStyle(source) {
601
608
  };
602
609
  }
603
610
  function normalizePadding(value) {
611
+ if (value === undefined)
612
+ return [0, 1, 0, 3];
604
613
  if (Array.isArray(value)) {
605
614
  const values = value.slice(0, 4).map(item => clamp(number(item, 4), 0, 100));
606
615
  if (values.length === 2)
@@ -730,3 +739,80 @@ function deepFreeze(value) {
730
739
  }
731
740
  return value;
732
741
  }
742
+ /** 原生查看器查询完成后提交普通文本和设计几何,布局入口不会再次查询业务数据。 */
743
+ export function nativeLayoutSource(sheet, printConfig = {}) {
744
+ const rows = {};
745
+ const cols = {};
746
+ const styles = [];
747
+ for (const track of sheet.rows)
748
+ rows[track.index] = { height: track.size, cells: {} };
749
+ for (const track of sheet.columns)
750
+ cols[track.index] = { width: track.size };
751
+ for (const cell of sheet.cells) {
752
+ const style = cell.style;
753
+ const index = styles.length;
754
+ styles.push({ font: { name: style.fontFamily, size: style.fontSize * .75,
755
+ bold: style.fontWeight === 'bold', italic: style.fontStyle === 'italic' },
756
+ align: style.textAlign, valign: style.verticalAlign, textwrap: style.whiteSpace !== 'nowrap' });
757
+ // 富文本仍由原有富文本绘制器负责,保留其设计行高。
758
+ rows[cell.row].cells[cell.column] = {
759
+ text: cell.richText ? '' : cell.text, style: index,
760
+ ...(cell.autoHeight === undefined ? {} : { autoHeight: cell.autoHeight }),
761
+ ...(cell.rowspan > 1 || cell.colspan > 1 ? { merge: [cell.rowspan - 1, cell.colspan - 1] } : {}),
762
+ padding: [cell.contentBox.y - cell.bounds.y,
763
+ cell.bounds.x + cell.bounds.width - cell.contentBox.x - cell.contentBox.width,
764
+ cell.bounds.y + cell.bounds.height - cell.contentBox.y - cell.contentBox.height,
765
+ cell.contentBox.x - cell.bounds.x]
766
+ };
767
+ }
768
+ const config = Object.fromEntries(Object.entries(printConfig).filter(([key]) => ['paper', 'width', 'height', 'layout', 'orientation', 'marginX', 'marginY', 'marginTop', 'paginationShow', 'isBackend'].includes(key)));
769
+ return { rows, cols, styles, printConfig: config };
770
+ }
771
+ /** 保留单元格身份和交互属性,仅用服务端结果替换行几何及普通文本的位置。 */
772
+ export function applyNativeLayout(sheet, layout, printConfig = {}) {
773
+ let offset = 0;
774
+ const rows = sheet.rows.map(track => {
775
+ const size = layout.rows[String(track.index)]?.height ?? track.size;
776
+ const result = { ...track, offset, size };
777
+ offset += size;
778
+ return result;
779
+ });
780
+ const cells = sheet.cells.map(cell => {
781
+ const bounds = cellBounds(rows, sheet.columns, cell.row, cell.column, cell.rowspan, cell.colspan);
782
+ const plan = layout.cells[`${cell.row}:${cell.column}`];
783
+ return { ...cell, bounds,
784
+ contentBox: plan ? inset(bounds, [...plan.padding]) : {
785
+ ...cell.contentBox, y: bounds.y + cell.contentBox.y - cell.bounds.y,
786
+ height: bounds.height - cell.bounds.height + cell.contentBox.height
787
+ },
788
+ ...(!cell.richText && plan ? { textLayout: plan, style: { ...cell.style, fontFamily: plan.fontFamily } } : {}) };
789
+ });
790
+ const layers = sheet.layers.map(layer => {
791
+ const anchor = sheet.rows.find(track => layer.bounds.y >= track.offset && layer.bounds.y < track.offset + track.size);
792
+ const shift = anchor ? (rows[anchor.index]?.offset ?? anchor.offset) - anchor.offset : 0;
793
+ return { ...layer, bounds: { ...layer.bounds, y: layer.bounds.y + shift }, contentBox: { ...layer.contentBox, y: layer.contentBox.y + shift } };
794
+ });
795
+ const height = Math.max(offset, ...layers.map(layer => layer.bounds.y + layer.bounds.height));
796
+ return deepFreeze({ ...sheet, fontFaces: layout.fonts, rows, cells, layers, height, pages: paginate(rows, printConfig, height, layout.pageHeight, cells) });
797
+ }
798
+ /** 只加载布局引用的不可变字体;失败即停止展示,避免浏览器悄悄使用本机字体。 */
799
+ const layoutFontPromises = new Map();
800
+ export async function prepareNativeLayoutFonts(layout, apiBaseUrl) {
801
+ const fonts = layout.fonts.map(face => ({ ...face, resource: `${apiBaseUrl.replace(/\/$/, '')}/${face.resource}` }));
802
+ await Promise.all(fonts.map(face => {
803
+ const key = JSON.stringify(face);
804
+ let promise = layoutFontPromises.get(key);
805
+ if (!promise) {
806
+ promise = new FontFace(face.family, `url(${JSON.stringify(face.resource)})`, {
807
+ weight: String(face.weight), style: face.style
808
+ }).load().then(font => { document.fonts.add(font); return font; }).catch(error => {
809
+ layoutFontPromises.delete(key);
810
+ throw error;
811
+ });
812
+ layoutFontPromises.set(key, promise);
813
+ }
814
+ return promise;
815
+ }));
816
+ await document.fonts.ready;
817
+ return { ...layout, fonts };
818
+ }
package/dist/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { ReportLayout, ReportTextLayout } from '@qianxiang-ai/fu-report-contracts';
1
2
  export interface NativeBounds {
2
3
  readonly x: number;
3
4
  readonly y: number;
@@ -46,6 +47,8 @@ export interface NativeCell {
46
47
  readonly contentBox: NativeBounds;
47
48
  readonly zIndex: number;
48
49
  readonly text: string;
50
+ readonly autoHeight?: boolean;
51
+ readonly textLayout?: ReportTextLayout;
49
52
  readonly richText?: readonly NativeRichTextNode[];
50
53
  readonly hyperlink?: string;
51
54
  readonly style: NativeCellStyle;
@@ -99,6 +102,7 @@ export interface NativePage {
99
102
  readonly lastRow: number;
100
103
  }
101
104
  export interface NativeViewerSheet {
105
+ readonly fontFaces?: ReportLayout['fonts'];
102
106
  readonly id: string;
103
107
  readonly name: string;
104
108
  readonly order: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qianxiang-ai/fu-report-viewer-engine",
3
- "version": "1.1.12",
3
+ "version": "1.1.14",
4
4
  "license": "AGPL-3.0-only",
5
5
  "author": "位志国 <ijunfu@aliyun.com>",
6
6
  "type": "module",
@@ -20,7 +20,7 @@
20
20
  "registry": "https://registry.npmjs.org/"
21
21
  },
22
22
  "dependencies": {
23
- "@qianxiang-ai/fu-report-contracts": "1.1.12"
23
+ "@qianxiang-ai/fu-report-contracts": "1.1.14"
24
24
  },
25
25
  "scripts": {
26
26
  "build": "node ../../scripts/clean-dist.mjs && tsc -p tsconfig.json",