react-semaphor 0.1.515 → 0.1.516
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/analytics-protocol/index.cjs +1 -1
- package/dist/analytics-protocol/index.js +226 -225
- package/dist/brand-studio/index.cjs +1 -1
- package/dist/brand-studio/index.js +4 -4
- package/dist/briefings/index.cjs +1 -1
- package/dist/briefings/index.js +8 -8
- package/dist/chunks/{calculated-field-identity-BiTGmnST.cjs → calculated-field-identity-5bg9oHTw.cjs} +1 -1
- package/dist/chunks/{calculated-field-identity-DnRd4YIY.js → calculated-field-identity-DzJBs2J8.js} +4 -4
- package/dist/chunks/{card-config-utils-B2cDWQqB.js → card-config-utils-Cxnq2R6z.js} +14 -14
- package/dist/chunks/{card-config-utils-CMO4_zVs.cjs → card-config-utils-z86y6tSq.cjs} +1 -1
- package/dist/chunks/column-bands-CU0byntA.cjs +1 -0
- package/dist/chunks/column-bands-RdM-kjDe.js +47 -0
- package/dist/chunks/{dashboard-briefing-launcher-BA_bl05p.js → dashboard-briefing-launcher-BCEHJ_eD.js} +15 -12
- package/dist/chunks/{dashboard-briefing-launcher-B7zqm8P1.cjs → dashboard-briefing-launcher-CjZ4aE34.cjs} +2 -2
- package/dist/chunks/{dashboard-controls-QMW17RKx.js → dashboard-controls-DFfit5KH.js} +12 -12
- package/dist/chunks/{dashboard-controls-x_v9wLOU.cjs → dashboard-controls-f9aJ70Zu.cjs} +1 -1
- package/dist/chunks/{dashboard-date-comparison-definition-D7Bl-YAl.js → dashboard-date-comparison-definition-BqNhECUr.js} +6 -6
- package/dist/chunks/{dashboard-date-comparison-definition-C_w-GO_5.cjs → dashboard-date-comparison-definition-Y6JZwpcr.cjs} +1 -1
- package/dist/chunks/{dashboard-json-DRnpkNwO.js → dashboard-json-DVtcA02f.js} +7 -7
- package/dist/chunks/{dashboard-json-0ZLLBlHj.cjs → dashboard-json-deqQC-UR.cjs} +1 -1
- package/dist/chunks/edit-dashboard-visual-DK6lSC_p.cjs +172 -0
- package/dist/chunks/{edit-dashboard-visual-1ISjhwry.js → edit-dashboard-visual-lJ6rDH3w.js} +4338 -4324
- package/dist/chunks/{editor-action-buttons-BTCKZERI.js → editor-action-buttons-Bnxxa439.js} +7 -7
- package/dist/chunks/{editor-action-buttons-Czq5SnA9.cjs → editor-action-buttons-CmDaQbPN.cjs} +1 -1
- package/dist/chunks/{field-aggregations-CzuQKtqx.js → field-aggregations-Dl2A3rbV.js} +461 -358
- package/dist/chunks/field-aggregations-pH_3kymD.cjs +1 -0
- package/dist/chunks/{field-dependencies-DIab72rQ.cjs → field-dependencies-EB485TdB.cjs} +1 -1
- package/dist/chunks/{field-dependencies-DXW4jtvJ.js → field-dependencies-v-lJNzC7.js} +1 -1
- package/dist/chunks/{index-Dlic9KZs.js → index-BVVl2JDK.js} +57730 -54586
- package/dist/chunks/index-DfqMtR9S.cjs +4 -0
- package/dist/chunks/index-UNKSfi7s.cjs +1434 -0
- package/dist/chunks/{index-v1OE4-eA.js → index-ylOpKRDu.js} +877 -849
- package/dist/chunks/{matrix-analytical-definition-Ct5Tu8np.cjs → matrix-analytical-definition-BWd159lN.cjs} +1 -1
- package/dist/chunks/{matrix-analytical-definition-BDAK2aEi.js → matrix-analytical-definition-BimC4XIV.js} +1 -1
- package/dist/chunks/{matrix-card-U4c72doZ.cjs → matrix-card-C2RjEYZ8.cjs} +1 -1
- package/dist/chunks/{matrix-card-DOIeTmjh.js → matrix-card-CIlz0Dnp.js} +2 -2
- package/dist/chunks/{matrix-control-sources-FjxGIbqk.cjs → matrix-control-sources-BvEJF7d3.cjs} +1 -1
- package/dist/chunks/{matrix-control-sources-BxKH2yu2.js → matrix-control-sources-KbZe1gj_.js} +51 -51
- package/dist/chunks/{matrix-definition-CBJW_4ii.cjs → matrix-definition-DanUT11P.cjs} +1 -1
- package/dist/chunks/{matrix-definition-I9rHB9zN.js → matrix-definition-E5gXXSTZ.js} +1 -1
- package/dist/chunks/matrix-formatter-BJTO8ky9.cjs +1 -0
- package/dist/chunks/{matrix-formatter-BdIsE7Qu.js → matrix-formatter-CCXNRt3s.js} +81 -81
- package/dist/chunks/{matrix-member-presentation-DO1VSqfh.js → matrix-member-presentation-Bw7-JCrr.js} +64 -64
- package/dist/chunks/matrix-member-presentation-DvXDEo0U.cjs +1 -0
- package/dist/chunks/{matrix-operation-contract-DoiWTUbT.cjs → matrix-operation-contract-0RxoU_M3.cjs} +1 -1
- package/dist/chunks/{matrix-operation-contract-D0HfzwZg.js → matrix-operation-contract-D32U2CSw.js} +19 -19
- package/dist/chunks/{metric-comparison-Dqc7_tnW.js → metric-comparison-BphoJ9bq.js} +1 -1
- package/dist/chunks/{metric-comparison-DBQ3EJTz.cjs → metric-comparison-CUmltzpz.cjs} +1 -1
- package/dist/chunks/pivot-header-presentation-BSZhB1g-.js +661 -0
- package/dist/chunks/pivot-header-presentation-EoUS5ze5.cjs +5 -0
- package/dist/chunks/{pivot-result-identity-8M-bZrw9.js → pivot-result-identity-BzUQiCEV.js} +4 -4
- package/dist/chunks/{pivot-result-identity-uTiylUNr.cjs → pivot-result-identity-gquWljbd.cjs} +1 -1
- package/dist/chunks/{pivot-result-lifecycle-vg_suUNb.cjs → pivot-result-lifecycle-gl9cBfB-.cjs} +1 -1
- package/dist/chunks/{pivot-result-lifecycle-CEmyU2At.js → pivot-result-lifecycle-kRhiJkzg.js} +8 -8
- package/dist/chunks/{raw-temporal-Bj6_w9cG.js → raw-temporal-BqOfk-xN.js} +16 -16
- package/dist/chunks/{raw-temporal-contract-CFLGwTiI.js → raw-temporal-contract-BQZIJ1fn.js} +1 -1
- package/dist/chunks/{raw-temporal-contract-DECbTuzA.cjs → raw-temporal-contract-CklMVG_1.cjs} +1 -1
- package/dist/chunks/{raw-temporal-CeblVJbu.cjs → raw-temporal-eJXecCyJ.cjs} +1 -1
- package/dist/chunks/{report-preferences-dialog-b8J6KjSy.js → report-preferences-dialog-CHXPEl7v.js} +6 -6
- package/dist/chunks/{report-preferences-dialog-Dr1BYwuf.cjs → report-preferences-dialog-Cto0vDwI.cjs} +1 -1
- package/dist/chunks/{report-runtime-context-Cs65Mrxj.js → report-runtime-context-CxIoGyNM.js} +1 -1
- package/dist/chunks/{report-runtime-context-DzvHBPxl.cjs → report-runtime-context-CzSrCBsu.cjs} +1 -1
- package/dist/chunks/{selection-reducer-BIiQXbGM.js → selection-reducer-CvCBQbl2.js} +1 -1
- package/dist/chunks/{selection-reducer-CGKKsaPa.cjs → selection-reducer-Kl22OzIk.cjs} +1 -1
- package/dist/chunks/{semantic-format-Dt-nUxFB.js → semantic-format-DwqGYx4V.js} +2 -2
- package/dist/chunks/{semantic-format-DFI1iszk.cjs → semantic-format-mVI32OJH.cjs} +1 -1
- package/dist/chunks/{source-entity-resolution-D7vnmDwm.js → source-entity-resolution-Bzefiive.js} +7 -7
- package/dist/chunks/{source-entity-resolution-CjbgnwyX.cjs → source-entity-resolution-R46X34SE.cjs} +1 -1
- package/dist/chunks/switch-DNbWXEOP.cjs +134 -0
- package/dist/chunks/{switch-D5_tjsIS.js → switch-DNv-hVmt.js} +8230 -7681
- package/dist/chunks/{temporal-bucket-B9hMwemw.js → temporal-bucket-DlFuhCnT.js} +6 -6
- package/dist/chunks/{temporal-bucket-contract-IWDgyTMw.js → temporal-bucket-contract-DTLDRzgV.js} +1 -1
- package/dist/chunks/{temporal-bucket-contract-ZctiyXYk.cjs → temporal-bucket-contract-nTv6gvX5.cjs} +1 -1
- package/dist/chunks/{token-types-Dl0hcKBX.js → token-types-BC6RcUY8.js} +1 -1
- package/dist/chunks/{token-types-Ahh5u4iT.cjs → token-types-aWrzwonf.cjs} +1 -1
- package/dist/chunks/{update-policy-COjFudhl.cjs → update-policy-DRDLWe7Y.cjs} +1 -1
- package/dist/chunks/{update-policy-BeQqjupC.js → update-policy-DhAUtiC8.js} +2 -2
- package/dist/chunks/{validators-CkHsAvwB.js → validators-CsdOtZI6.js} +411 -397
- package/dist/chunks/validators-DFeDcdpA.cjs +1 -0
- package/dist/dashboard/index.cjs +1 -1
- package/dist/dashboard/index.js +1 -1
- package/dist/dashboard-authoring/index.cjs +3 -3
- package/dist/dashboard-authoring/index.js +233 -227
- package/dist/data-app-builder/index.cjs +1 -1
- package/dist/data-app-builder/index.js +3 -3
- package/dist/data-app-codegen/index.cjs +1 -1
- package/dist/data-app-codegen/index.js +2 -2
- package/dist/data-app-codegen-node/index.cjs +1 -1
- package/dist/data-app-codegen-node/index.js +3 -3
- package/dist/data-app-sdk/index.cjs +1 -1
- package/dist/data-app-sdk/index.js +5 -5
- package/dist/data-app-sdk-adapters/index.cjs +1 -1
- package/dist/data-app-sdk-adapters/index.js +2 -2
- package/dist/data-app-sdk-validation/index.cjs +1 -1
- package/dist/data-app-sdk-validation/index.js +5 -5
- package/dist/format-utils/index.cjs +3 -3
- package/dist/format-utils/index.js +291 -402
- package/dist/index.cjs +1 -1
- package/dist/index.js +15 -15
- package/dist/pdf-table-layout/index.cjs +1 -0
- package/dist/pdf-table-layout/index.js +993 -0
- package/dist/report-runtime-context/index.cjs +1 -1
- package/dist/report-runtime-context/index.js +2 -2
- package/dist/style.css +1 -1
- package/dist/surfboard/index.cjs +1 -1
- package/dist/surfboard/index.js +2 -2
- package/dist/types/briefings/index.d.ts +1 -1
- package/dist/types/components/document-sheet/document-input-bar.d.ts +1 -3
- package/dist/types/components/document-sheet/document-insert-picker.d.ts +37 -0
- package/dist/types/components/document-sheet/document-kpi-section.d.ts +17 -0
- package/dist/types/components/document-sheet/document-matrix-layout-context.d.ts +10 -0
- package/dist/types/components/document-sheet/document-matrix-section.d.ts +27 -0
- package/dist/types/components/document-sheet/document-measure-layer.d.ts +45 -0
- package/dist/types/components/document-sheet/document-outline.d.ts +7 -1
- package/dist/types/components/document-sheet/document-page-navigation.d.ts +22 -0
- package/dist/types/components/document-sheet/document-page.d.ts +9 -5
- package/dist/types/components/document-sheet/document-panel/document-side-panel.d.ts +36 -0
- package/dist/types/components/document-sheet/document-panel/inputs-panel.d.ts +9 -0
- package/dist/types/components/document-sheet/document-panel/page-panel.d.ts +5 -0
- package/dist/types/components/document-sheet/document-panel/panel-controls.d.ts +14 -0
- package/dist/types/components/document-sheet/document-panel/region-panels.d.ts +11 -0
- package/dist/types/components/document-sheet/document-panel/section-panel.d.ts +25 -0
- package/dist/types/components/document-sheet/document-section-print-boundary.d.ts +9 -0
- package/dist/types/components/document-sheet/document-table-chrome.d.ts +22 -0
- package/dist/types/components/document-sheet/document-table-section.d.ts +3 -7
- package/dist/types/components/document-sheet/document-text-preview-context.d.ts +8 -0
- package/dist/types/components/document-sheet/use-first-fitting-variant.d.ts +18 -0
- package/dist/types/components/editor/editor-main/dashboard-variable-node.d.ts +12 -2
- package/dist/types/components/explorer/chart-configuration/matrix-authoring-controls.d.ts +7 -2
- package/dist/types/components/text-variables/variable-chip-plugin.d.ts +23 -0
- package/dist/types/components/text-variables/variable-chip.d.ts +18 -0
- package/dist/types/components/text-variables/variable-picker.d.ts +27 -0
- package/dist/types/components/visual/settings/table-presentation-settings.d.ts +27 -1
- package/dist/types/index.cjs +1 -1
- package/dist/types/index.js +5 -5
- package/dist/types/lib/dashboard-inputs/text-variable-options.d.ts +15 -0
- package/dist/types/lib/document/document-canvas-actions.d.ts +22 -0
- package/dist/types/lib/document/document-edits.d.ts +119 -0
- package/dist/types/lib/document/document-kpi-figure.d.ts +27 -0
- package/dist/types/lib/document/document-kpi-layout.d.ts +29 -0
- package/dist/types/lib/document/document-kpi-section-edits.d.ts +15 -0
- package/dist/types/lib/document/document-matrix-bands.d.ts +66 -0
- package/dist/types/lib/document/document-matrix-print.d.ts +11 -0
- package/dist/types/lib/document/document-pagination.d.ts +56 -3
- package/dist/types/lib/document/document-panel-target.d.ts +19 -0
- package/dist/types/lib/document/document-section-editor.d.ts +8 -7
- package/dist/types/lib/document/document-section-kinds.d.ts +49 -0
- package/dist/types/lib/document/document-section-query-options.d.ts +25 -0
- package/dist/types/lib/document/document-section-render-state.d.ts +26 -0
- package/dist/types/lib/document/document-section-utils.d.ts +11 -4
- package/dist/types/lib/document/document-table-dom.d.ts +4 -6
- package/dist/types/lib/document/document-table-pagination-model.d.ts +0 -5
- package/dist/types/lib/document/document-table-print-model.d.ts +4 -3
- package/dist/types/lib/document/document-table-style.d.ts +15 -4
- package/dist/types/lib/document/document-table-surface.d.ts +15 -0
- package/dist/types/lib/document/document-variables.d.ts +40 -6
- package/dist/types/lib/document/use-document-section-data.d.ts +39 -0
- package/dist/types/lib/document/use-measured-document-table-layout.d.ts +50 -0
- package/dist/types/lib/formatters/kpi-result-values.d.ts +20 -0
- package/dist/types/lib/hooks/query-context/use-dashboard-card-execution-snapshot.d.ts +8 -2
- package/dist/types/lib/hooks/use-dashboard-frame-query.d.ts +6 -0
- package/dist/types/lib/hooks/use-dashboard-kpi-actions.d.ts +1 -1
- package/dist/types/lib/hooks/use-document-section-editor.d.ts +2 -2
- package/dist/types/lib/hooks/use-document-section-session.d.ts +36 -0
- package/dist/types/lib/hooks/use-editor-preview.d.ts +17 -0
- package/dist/types/lib/hooks/use-is-editing-card.d.ts +7 -0
- package/dist/types/lib/matrix-table/matrix-card-adapter.d.ts +2 -0
- package/dist/types/lib/matrix-table/matrix-card-draft.d.ts +2 -0
- package/dist/types/lib/matrix-table/matrix-delivery.d.ts +4 -0
- package/dist/types/lib/matrix-table/matrix-layout-read.d.ts +68 -0
- package/dist/types/lib/query-context/build-dashboard-execution-snapshot.d.ts +8 -1
- package/dist/types/lib/query-context/build-dashboard-frame-base-query-contexts.d.ts +4 -2
- package/dist/types/lib/query-context/card-execution.d.ts +30 -0
- package/dist/types/lib/query-context/document-section-card-query.d.ts +37 -0
- package/dist/types/lib/stores/dashboard-store.d.ts +12 -8
- package/dist/types/lib/stores/editor-store.d.ts +2 -0
- package/dist/types/lib/text-variables/text-variable-types.d.ts +39 -0
- package/dist/types/lib/types/common-types.d.ts +34 -1
- package/dist/types/lib/utils/card-definition.d.ts +2 -0
- package/dist/types/lib/utils/card-utils.d.ts +13 -6
- package/dist/types/pdf-table-layout.d.ts +2 -0
- package/dist/types/shared/analytics-protocol/index.d.ts +1 -1
- package/dist/types/shared/analytics-protocol/matrix-definition-contract.d.ts +45 -0
- package/dist/types/shared/analytics-protocol/matrix-member-presentation.d.ts +4 -0
- package/dist/types/shared/dashboard-authoring/document-section-cards.d.ts +56 -0
- package/dist/types/shared/dashboard-authoring/index.d.ts +1 -0
- package/dist/types/shared/dashboard-authoring/matrix-delivery.d.ts +36 -1
- package/dist/types/shared/format-utils/formatters/matrix-formatter.d.ts +5 -0
- package/dist/types/shared/format-utils/index.d.ts +1 -0
- package/dist/types/shared/format-utils/matrix-export-presentation.d.ts +690 -1
- package/dist/types/shared/format-utils/matrix-print.d.ts +38 -0
- package/dist/types/shared/format-utils/pdf-table-layout/column-bands.d.ts +55 -0
- package/dist/types/shared/format-utils/pdf-table-layout/index.d.ts +6 -0
- package/dist/types/shared/format-utils/pdf-table-layout/page-size.d.ts +7 -0
- package/dist/types/shared/format-utils/pdf-table-layout/table-column-semantics.d.ts +106 -0
- package/dist/types/shared/format-utils/pdf-table-layout/table-column-widths.d.ts +13 -0
- package/dist/types/shared/format-utils/pdf-table-layout/table-page-geometry.d.ts +19 -0
- package/dist/types/shared/format-utils/pdf-table-layout/wide-table-layout.d.ts +46 -0
- package/dist/types/shared/format-utils/table-structure.d.ts +9 -0
- package/package.json +6 -1
- package/dist/chunks/edit-dashboard-visual-CI0EqzKj.cjs +0 -172
- package/dist/chunks/field-aggregations-jSi77h9Z.cjs +0 -1
- package/dist/chunks/index-BMMXKK3G.cjs +0 -4
- package/dist/chunks/index-C6_xef4P.cjs +0 -1424
- package/dist/chunks/matrix-formatter-Dajj91Ni.cjs +0 -1
- package/dist/chunks/matrix-member-presentation-CFHjdrxT.cjs +0 -1
- package/dist/chunks/pivot-header-presentation-BIf4HW3L.js +0 -414
- package/dist/chunks/pivot-header-presentation-B_N11CgN.cjs +0 -5
- package/dist/chunks/switch-Ced9ZZwI.cjs +0 -134
- package/dist/chunks/validators-DVYAnnX0.cjs +0 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { MatrixExportLayout, MatrixExportRow, MatrixPresentation } from '../analytics-protocol/index.js';
|
|
2
|
+
/** How a printed Matrix organizes its rows (Plan 2, 2d, C1). */
|
|
3
|
+
export type MatrixPrintOrganization = {
|
|
4
|
+
/** `tabular`: one column per row level. `outline`: one indented column. */
|
|
5
|
+
rowLabels: 'tabular' | 'outline';
|
|
6
|
+
/** Where each group's subtotal prints. */
|
|
7
|
+
subtotals: 'after' | 'before';
|
|
8
|
+
};
|
|
9
|
+
/** A report's organization: what a card PDF prints and a Document defaults to. */
|
|
10
|
+
export declare const MATRIX_PRINT_ORGANIZATION_DEFAULTS: MatrixPrintOrganization;
|
|
11
|
+
/**
|
|
12
|
+
* The presentation a Matrix prints with: its row labels and subtotal
|
|
13
|
+
* position. A tabular Matrix keeps its own label repetition; any other prints
|
|
14
|
+
* each label once. Grand totals, visibility, labels and formats are
|
|
15
|
+
* unchanged, so the rows and totals are the Matrix's own (E5).
|
|
16
|
+
*/
|
|
17
|
+
export declare function applyMatrixPrintOrganization(presentation: MatrixPresentation, organization: MatrixPrintOrganization): MatrixPresentation;
|
|
18
|
+
/** Decimals a print default uses when a column has fractional values. */
|
|
19
|
+
export declare const MATRIX_PRINT_DEFAULT_DECIMALS = 2;
|
|
20
|
+
/**
|
|
21
|
+
* A numeric measure with no format of its own (no authored override and no
|
|
22
|
+
* semantic format) prints with grouping and fixed decimals: none when every
|
|
23
|
+
* value in the result is whole, else two. Authored and semantic formats are
|
|
24
|
+
* never replaced.
|
|
25
|
+
*/
|
|
26
|
+
export declare function applyMatrixPrintNumberDefaults(layout: MatrixExportLayout, rows: readonly MatrixExportRow[], presentation: MatrixPresentation): MatrixPresentation;
|
|
27
|
+
/**
|
|
28
|
+
* Where a printed Matrix may break pages (Plan 2, P6): for each row, whether
|
|
29
|
+
* it must stay on the page of the row before it.
|
|
30
|
+
* - A total (subtotal or grand total) never starts a page.
|
|
31
|
+
* - A row that heads a group (an outline header row, or a subtotal printed
|
|
32
|
+
* before its group) never ends a page.
|
|
33
|
+
* - A group's first row is never the only row of that group at the bottom of
|
|
34
|
+
* a page when the group has more rows.
|
|
35
|
+
* A subtotal printed after its group therefore stays with the group's last
|
|
36
|
+
* row. The paginator decides what gives way when no allowed break fits.
|
|
37
|
+
*/
|
|
38
|
+
export declare function planMatrixKeepWithPrevious(rows: readonly MatrixExportRow[]): boolean[];
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A column to place: its width, and the column group it belongs to, as an
|
|
3
|
+
* index into the table's groups in column order. `null` marks a row-label
|
|
4
|
+
* column, which repeats on every band.
|
|
5
|
+
*/
|
|
6
|
+
export type ColumnBandColumn = {
|
|
7
|
+
widthPx: number;
|
|
8
|
+
group: number | null;
|
|
9
|
+
};
|
|
10
|
+
/** One band: the columns it prints, in order, and the groups it covers. */
|
|
11
|
+
export type ColumnBand = {
|
|
12
|
+
/** Row-label columns first, then the band's group columns. */
|
|
13
|
+
columns: number[];
|
|
14
|
+
firstGroup: number;
|
|
15
|
+
lastGroup: number;
|
|
16
|
+
};
|
|
17
|
+
export type ColumnBandPlan = {
|
|
18
|
+
kind: 'fits';
|
|
19
|
+
} | {
|
|
20
|
+
kind: 'bands';
|
|
21
|
+
bands: ColumnBand[];
|
|
22
|
+
}
|
|
23
|
+
/** One group is wider than the page next to the row labels. */
|
|
24
|
+
| {
|
|
25
|
+
kind: 'too_wide';
|
|
26
|
+
reason: 'group';
|
|
27
|
+
}
|
|
28
|
+
/** It needs more bands than allowed. */
|
|
29
|
+
| {
|
|
30
|
+
kind: 'too_wide';
|
|
31
|
+
reason: 'bands';
|
|
32
|
+
bandCount: number;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Packs whole column groups, after the row-label columns, into bands no
|
|
36
|
+
* wider than `printableWidthPx`. A group is never split: a column member's
|
|
37
|
+
* measures stay together. Groups keep their order, and each band takes as
|
|
38
|
+
* many as fit.
|
|
39
|
+
*/
|
|
40
|
+
export declare function planColumnBands({ columns, printableWidthPx, maxBands, }: {
|
|
41
|
+
columns: readonly ColumnBandColumn[];
|
|
42
|
+
printableWidthPx: number;
|
|
43
|
+
maxBands: number;
|
|
44
|
+
}): ColumnBandPlan;
|
|
45
|
+
/**
|
|
46
|
+
* A band's caption: the column level, the members it covers, and their
|
|
47
|
+
* positions ("Yard: Tacoma to Newark (4 to 6 of 6)"). Documents and card PDFs
|
|
48
|
+
* caption bands alike.
|
|
49
|
+
*/
|
|
50
|
+
export declare function columnBandCaption({ groupLevelLabel, groupLabels, firstGroup, lastGroup, }: {
|
|
51
|
+
groupLevelLabel: string;
|
|
52
|
+
groupLabels: readonly string[];
|
|
53
|
+
firstGroup: number;
|
|
54
|
+
lastGroup: number;
|
|
55
|
+
}): string;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Page sizes Puppeteer's `page.pdf()` accepts, with its capitalization. */
|
|
2
|
+
export type PdfPageSize = 'Letter' | 'Legal' | 'Tabloid' | 'Ledger' | 'A0' | 'A1' | 'A2' | 'A3' | 'A4' | 'A5' | 'A6';
|
|
3
|
+
/**
|
|
4
|
+
* Normalizes a page size in any case to Puppeteer's name. An unknown size
|
|
5
|
+
* warns and falls back to Letter.
|
|
6
|
+
*/
|
|
7
|
+
export declare function normalizePageSize(size?: string | null): PdfPageSize;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A table cell as the PDF renderer receives it: from the structured Fast PDF
|
|
3
|
+
* path or extracted from the rendered DOM. Every field is optional.
|
|
4
|
+
*/
|
|
5
|
+
export type PdfTableCellInput = {
|
|
6
|
+
text?: unknown;
|
|
7
|
+
colspan?: number | string;
|
|
8
|
+
rowspan?: number | string;
|
|
9
|
+
className?: string;
|
|
10
|
+
columnId?: string | null;
|
|
11
|
+
isHeader?: boolean;
|
|
12
|
+
isNumeric?: boolean;
|
|
13
|
+
pdfIsNumeric?: boolean;
|
|
14
|
+
measuredWidthPx?: number | string | null;
|
|
15
|
+
[key: string]: unknown;
|
|
16
|
+
};
|
|
17
|
+
export type PdfTableRowInput = {
|
|
18
|
+
type?: string;
|
|
19
|
+
cells?: PdfTableCellInput[];
|
|
20
|
+
[key: string]: unknown;
|
|
21
|
+
};
|
|
22
|
+
/** A header row: its cells, or an object that carries them. */
|
|
23
|
+
export type PdfTableHeaderRowInput = PdfTableCellInput[] | {
|
|
24
|
+
cells?: PdfTableCellInput[];
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
};
|
|
27
|
+
export type PdfTableColumnMeta = {
|
|
28
|
+
columnId?: string;
|
|
29
|
+
label?: unknown;
|
|
30
|
+
isNumeric?: boolean;
|
|
31
|
+
measuredWidthPx?: number;
|
|
32
|
+
[key: string]: unknown;
|
|
33
|
+
};
|
|
34
|
+
export type PdfTableMetadata = {
|
|
35
|
+
tableType?: string;
|
|
36
|
+
totalColumns?: number;
|
|
37
|
+
columns?: PdfTableColumnMeta[];
|
|
38
|
+
pivotLevels?: unknown;
|
|
39
|
+
rowLevels?: unknown;
|
|
40
|
+
[key: string]: unknown;
|
|
41
|
+
};
|
|
42
|
+
export type PdfTableData = {
|
|
43
|
+
headers?: PdfTableHeaderRowInput[];
|
|
44
|
+
rows?: PdfTableRowInput[];
|
|
45
|
+
grandTotal?: PdfTableRowInput | null;
|
|
46
|
+
metadata?: PdfTableMetadata;
|
|
47
|
+
[key: string]: unknown;
|
|
48
|
+
};
|
|
49
|
+
export type PdfTableModelOptions = {
|
|
50
|
+
suppressEmptyColumns?: boolean;
|
|
51
|
+
[key: string]: unknown;
|
|
52
|
+
};
|
|
53
|
+
/** A normalized cell. */
|
|
54
|
+
export type PdfTableCell = {
|
|
55
|
+
text: string;
|
|
56
|
+
colspan: number;
|
|
57
|
+
rowspan: number;
|
|
58
|
+
className: string;
|
|
59
|
+
columnId: string | null;
|
|
60
|
+
isHeader: boolean;
|
|
61
|
+
isNumeric?: boolean;
|
|
62
|
+
pdfIsNumeric?: boolean;
|
|
63
|
+
measuredWidthPx?: number | null;
|
|
64
|
+
[key: string]: unknown;
|
|
65
|
+
};
|
|
66
|
+
export type PdfTableRow = {
|
|
67
|
+
cells: PdfTableCell[];
|
|
68
|
+
[key: string]: unknown;
|
|
69
|
+
};
|
|
70
|
+
/** One column of the table model, with its resolved meaning and widths. */
|
|
71
|
+
export type PdfTableColumn = {
|
|
72
|
+
index: number;
|
|
73
|
+
sourceIndex: number;
|
|
74
|
+
columnId: string;
|
|
75
|
+
label: string;
|
|
76
|
+
type: string;
|
|
77
|
+
minWidthPx: number;
|
|
78
|
+
widthPx: number;
|
|
79
|
+
isNumeric: boolean;
|
|
80
|
+
declaredNumeric: boolean;
|
|
81
|
+
};
|
|
82
|
+
export type PdfTableProjection = {
|
|
83
|
+
headers: PdfTableRow[];
|
|
84
|
+
rows: PdfTableRow[];
|
|
85
|
+
grandTotal: PdfTableRow | null;
|
|
86
|
+
columns: PdfTableColumn[];
|
|
87
|
+
};
|
|
88
|
+
export type PdfTableModel = {
|
|
89
|
+
columns: PdfTableColumn[];
|
|
90
|
+
hiddenEmptyColumns: {
|
|
91
|
+
columnId: string;
|
|
92
|
+
label: string;
|
|
93
|
+
}[];
|
|
94
|
+
isPivotTable: boolean;
|
|
95
|
+
pivotAnchorCount: number;
|
|
96
|
+
project: (selectedModelIndices?: number[], options?: {
|
|
97
|
+
preserveHeaderHierarchy?: boolean;
|
|
98
|
+
preserveBodySpans?: boolean;
|
|
99
|
+
}) => PdfTableProjection;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Build the authoritative PDF table model once. Both structured Fast PDF and
|
|
103
|
+
* DOM-extracted inputs cross this same seam before fit or banded projection.
|
|
104
|
+
* The returned projector is the only supported way to derive render sections.
|
|
105
|
+
*/
|
|
106
|
+
export declare function buildPdfTableModel(tableData?: PdfTableData, options?: PdfTableModelOptions): PdfTableModel;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type PdfColumnType = 'boolean' | 'numeric' | 'datetime' | 'id' | 'text';
|
|
2
|
+
export declare function getColumnWidthBounds(type?: string): Readonly<{
|
|
3
|
+
min: number;
|
|
4
|
+
max: number;
|
|
5
|
+
}>;
|
|
6
|
+
export declare function estimateColumnWidthPx({ type, label, sampleValues, grandTotalValue, measuredWidthPx, declaredNumeric, }?: {
|
|
7
|
+
type?: string;
|
|
8
|
+
label?: unknown;
|
|
9
|
+
sampleValues?: unknown[];
|
|
10
|
+
grandTotalValue?: unknown;
|
|
11
|
+
measuredWidthPx?: number | string | null;
|
|
12
|
+
declaredNumeric?: boolean;
|
|
13
|
+
}): number;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Page margins and body padding for table PDFs. */
|
|
2
|
+
export declare const TABLE_PAGE_GEOMETRY: Readonly<{
|
|
3
|
+
marginsMm: Readonly<{
|
|
4
|
+
top: 8;
|
|
5
|
+
right: 10;
|
|
6
|
+
bottom: 12;
|
|
7
|
+
left: 10;
|
|
8
|
+
}>;
|
|
9
|
+
printBodyPaddingMm: 0;
|
|
10
|
+
}>;
|
|
11
|
+
export declare function getTablePdfMargins(): {
|
|
12
|
+
top: string;
|
|
13
|
+
right: string;
|
|
14
|
+
bottom: string;
|
|
15
|
+
left: string;
|
|
16
|
+
};
|
|
17
|
+
export declare function getTablePrintBodyPaddingCss(): string;
|
|
18
|
+
/** The left and right margins plus body padding, in CSS pixels. */
|
|
19
|
+
export declare function getTableHorizontalInsetPx(): number;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { PdfPageSize } from './page-size.js';
|
|
2
|
+
import { PdfTableData, PdfTableModelOptions, PdfTableRow } from './table-column-semantics.js';
|
|
3
|
+
export type WideTableStrategy = 'auto' | 'fit' | 'horizontal_paginate';
|
|
4
|
+
export type PdfPageOrientation = 'portrait' | 'landscape';
|
|
5
|
+
export type WideTableLayoutOptions = PdfTableModelOptions & {
|
|
6
|
+
pageSize?: string;
|
|
7
|
+
orientation?: string;
|
|
8
|
+
wideTableStrategy?: string;
|
|
9
|
+
};
|
|
10
|
+
export type WideTableSectionColumn = {
|
|
11
|
+
columnId: string;
|
|
12
|
+
label: string;
|
|
13
|
+
widthPx: number;
|
|
14
|
+
isNumeric: boolean;
|
|
15
|
+
};
|
|
16
|
+
/** One printed table: the whole table, or one band of a wide one. */
|
|
17
|
+
export type WideTableSection = {
|
|
18
|
+
headers: PdfTableRow[];
|
|
19
|
+
rows: PdfTableRow[];
|
|
20
|
+
grandTotal: PdfTableRow | null;
|
|
21
|
+
bandLabel: string | null;
|
|
22
|
+
columns: WideTableSectionColumn[];
|
|
23
|
+
};
|
|
24
|
+
export type WideTableLayout = {
|
|
25
|
+
sections: WideTableSection[];
|
|
26
|
+
layoutApplied: {
|
|
27
|
+
requestedPageSize: PdfPageSize;
|
|
28
|
+
requestedOrientation: PdfPageOrientation;
|
|
29
|
+
effectivePageSize: PdfPageSize;
|
|
30
|
+
effectiveOrientation: PdfPageOrientation;
|
|
31
|
+
usedBanding: boolean;
|
|
32
|
+
bandCount: number;
|
|
33
|
+
totalColumns: number;
|
|
34
|
+
anchorColumns: string[];
|
|
35
|
+
autoAdjustedLayout: boolean;
|
|
36
|
+
strategyApplied: 'fit' | 'horizontal_paginate';
|
|
37
|
+
hiddenEmptyColumnCount: number;
|
|
38
|
+
hiddenEmptyColumns: string[];
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Lays a table out on paper: it fits on the requested page, or on a wider or
|
|
43
|
+
* landscape page, or it prints in column bands that repeat the anchor
|
|
44
|
+
* (row label) columns.
|
|
45
|
+
*/
|
|
46
|
+
export declare function buildWideTableLayout(tableData: PdfTableData, options?: WideTableLayoutOptions): WideTableLayout;
|
|
@@ -27,6 +27,8 @@ export type FastPathDataRow = {
|
|
|
27
27
|
type?: string;
|
|
28
28
|
subtotalLevel?: string | null;
|
|
29
29
|
index?: number;
|
|
30
|
+
/** A printed Matrix row that must stay on the page of the row before (P6). */
|
|
31
|
+
keepWithPrevious?: boolean;
|
|
30
32
|
cells: FastPathTableCell[];
|
|
31
33
|
};
|
|
32
34
|
export type FastPathGrandTotal = {
|
|
@@ -39,5 +41,12 @@ export type FastPathTableStructure = {
|
|
|
39
41
|
metadata?: Record<string, unknown> & {
|
|
40
42
|
columnOrder?: string[];
|
|
41
43
|
columns?: FastPathColumnHint[];
|
|
44
|
+
/**
|
|
45
|
+
* A printed Matrix's column groups, which bands never split: per column,
|
|
46
|
+
* its group index, or `null` for a row-label column.
|
|
47
|
+
*/
|
|
48
|
+
columnGroups?: readonly (number | null)[];
|
|
49
|
+
groupLabels?: readonly string[];
|
|
50
|
+
groupLevelLabel?: string;
|
|
42
51
|
};
|
|
43
52
|
};
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"email": "support@semaphor.cloud"
|
|
6
6
|
},
|
|
7
7
|
"license": "MIT",
|
|
8
|
-
"version": "0.1.
|
|
8
|
+
"version": "0.1.516",
|
|
9
9
|
"description": "Fully interactive and customizable dashboards for your apps.",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"react",
|
|
@@ -132,6 +132,11 @@
|
|
|
132
132
|
"import": "./dist/pdf-export-policy/index.js",
|
|
133
133
|
"require": "./dist/pdf-export-policy/index.cjs"
|
|
134
134
|
},
|
|
135
|
+
"./format-utils/pdf-table-layout": {
|
|
136
|
+
"types": "./dist/types/pdf-table-layout.d.ts",
|
|
137
|
+
"import": "./dist/pdf-table-layout/index.js",
|
|
138
|
+
"require": "./dist/pdf-table-layout/index.cjs"
|
|
139
|
+
},
|
|
135
140
|
"./value-format-preferences": {
|
|
136
141
|
"types": "./dist/types/value-format-preferences.d.ts",
|
|
137
142
|
"import": "./dist/value-format-preferences/index.js",
|