@printwithsynergy/artwork-pdf-editor 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +62 -0
- package/dist/components/AccessibilityHintsPanel.d.ts +142 -0
- package/dist/components/AccessibilityHintsPanel.d.ts.map +1 -0
- package/dist/components/AccessibilityHintsPanel.js +158 -0
- package/dist/components/AccessibilityHintsPanel.js.map +1 -0
- package/dist/components/AnnotationOverlay.d.ts +142 -0
- package/dist/components/AnnotationOverlay.d.ts.map +1 -0
- package/dist/components/AnnotationOverlay.js +141 -0
- package/dist/components/AnnotationOverlay.js.map +1 -0
- package/dist/components/AnnotationsSidebar.d.ts +98 -0
- package/dist/components/AnnotationsSidebar.d.ts.map +1 -0
- package/dist/components/AnnotationsSidebar.js +100 -0
- package/dist/components/AnnotationsSidebar.js.map +1 -0
- package/dist/components/BarcodeGeneratorPanel.d.ts +58 -0
- package/dist/components/BarcodeGeneratorPanel.d.ts.map +1 -0
- package/dist/components/BarcodeGeneratorPanel.js +91 -0
- package/dist/components/BarcodeGeneratorPanel.js.map +1 -0
- package/dist/components/BraillePanel.d.ts +99 -0
- package/dist/components/BraillePanel.d.ts.map +1 -0
- package/dist/components/BraillePanel.js +221 -0
- package/dist/components/BraillePanel.js.map +1 -0
- package/dist/components/BrandAssetsPanel.d.ts +130 -0
- package/dist/components/BrandAssetsPanel.d.ts.map +1 -0
- package/dist/components/BrandAssetsPanel.js +125 -0
- package/dist/components/BrandAssetsPanel.js.map +1 -0
- package/dist/components/BrandConsistencyPanel.d.ts +140 -0
- package/dist/components/BrandConsistencyPanel.d.ts.map +1 -0
- package/dist/components/BrandConsistencyPanel.js +158 -0
- package/dist/components/BrandConsistencyPanel.js.map +1 -0
- package/dist/components/ComplianceFindingsPanel.d.ts +62 -0
- package/dist/components/ComplianceFindingsPanel.d.ts.map +1 -0
- package/dist/components/ComplianceFindingsPanel.js +118 -0
- package/dist/components/ComplianceFindingsPanel.js.map +1 -0
- package/dist/components/DesignSuggestionsPanel.d.ts +148 -0
- package/dist/components/DesignSuggestionsPanel.d.ts.map +1 -0
- package/dist/components/DesignSuggestionsPanel.js +154 -0
- package/dist/components/DesignSuggestionsPanel.js.map +1 -0
- package/dist/components/DielineParametersPanel.d.ts +62 -0
- package/dist/components/DielineParametersPanel.d.ts.map +1 -0
- package/dist/components/DielineParametersPanel.js +170 -0
- package/dist/components/DielineParametersPanel.js.map +1 -0
- package/dist/components/DielinePreview.d.ts +150 -0
- package/dist/components/DielinePreview.d.ts.map +1 -0
- package/dist/components/DielinePreview.js +146 -0
- package/dist/components/DielinePreview.js.map +1 -0
- package/dist/components/EditorApp.d.ts +18 -3
- package/dist/components/EditorApp.d.ts.map +1 -1
- package/dist/components/EditorApp.js +42 -7
- package/dist/components/EditorApp.js.map +1 -1
- package/dist/components/EditorCanvas.d.ts +31 -2
- package/dist/components/EditorCanvas.d.ts.map +1 -1
- package/dist/components/EditorCanvas.js +97 -16
- package/dist/components/EditorCanvas.js.map +1 -1
- package/dist/components/EmailNotifyPanel.d.ts +165 -0
- package/dist/components/EmailNotifyPanel.d.ts.map +1 -0
- package/dist/components/EmailNotifyPanel.js +211 -0
- package/dist/components/EmailNotifyPanel.js.map +1 -0
- package/dist/components/FileDropZone.d.ts +9 -1
- package/dist/components/FileDropZone.d.ts.map +1 -1
- package/dist/components/FileDropZone.js +53 -5
- package/dist/components/FileDropZone.js.map +1 -1
- package/dist/components/FoldEditorPanel.d.ts +68 -0
- package/dist/components/FoldEditorPanel.d.ts.map +1 -0
- package/dist/components/FoldEditorPanel.js +65 -0
- package/dist/components/FoldEditorPanel.js.map +1 -0
- package/dist/components/FoldPreviewOverlay.d.ts +48 -0
- package/dist/components/FoldPreviewOverlay.d.ts.map +1 -0
- package/dist/components/FoldPreviewOverlay.js +182 -0
- package/dist/components/FoldPreviewOverlay.js.map +1 -0
- package/dist/components/Gs1DigitalLinkPanel.d.ts +103 -0
- package/dist/components/Gs1DigitalLinkPanel.d.ts.map +1 -0
- package/dist/components/Gs1DigitalLinkPanel.js +199 -0
- package/dist/components/Gs1DigitalLinkPanel.js.map +1 -0
- package/dist/components/HistoryPanel.d.ts +39 -0
- package/dist/components/HistoryPanel.d.ts.map +1 -0
- package/dist/components/HistoryPanel.js +72 -0
- package/dist/components/HistoryPanel.js.map +1 -0
- package/dist/components/IccSoftProofOverlay.d.ts +67 -0
- package/dist/components/IccSoftProofOverlay.d.ts.map +1 -0
- package/dist/components/IccSoftProofOverlay.js +119 -0
- package/dist/components/IccSoftProofOverlay.js.map +1 -0
- package/dist/components/ImposePanel.d.ts +71 -0
- package/dist/components/ImposePanel.d.ts.map +1 -0
- package/dist/components/ImposePanel.js +127 -0
- package/dist/components/ImposePanel.js.map +1 -0
- package/dist/components/InksPanel.d.ts +61 -0
- package/dist/components/InksPanel.d.ts.map +1 -0
- package/dist/components/InksPanel.js +84 -0
- package/dist/components/InksPanel.js.map +1 -0
- package/dist/components/JobSetupPanel.d.ts +118 -0
- package/dist/components/JobSetupPanel.d.ts.map +1 -0
- package/dist/components/JobSetupPanel.js +169 -0
- package/dist/components/JobSetupPanel.js.map +1 -0
- package/dist/components/LayersPanel.d.ts.map +1 -1
- package/dist/components/LayersPanel.js +1 -0
- package/dist/components/LayersPanel.js.map +1 -1
- package/dist/components/MarkLibraryPanel.d.ts +131 -0
- package/dist/components/MarkLibraryPanel.d.ts.map +1 -0
- package/dist/components/MarkLibraryPanel.js +184 -0
- package/dist/components/MarkLibraryPanel.js.map +1 -0
- package/dist/components/MisEstimateButton.d.ts +73 -0
- package/dist/components/MisEstimateButton.d.ts.map +1 -0
- package/dist/components/MisEstimateButton.js +57 -0
- package/dist/components/MisEstimateButton.js.map +1 -0
- package/dist/components/NutritionPanel.d.ts +118 -0
- package/dist/components/NutritionPanel.d.ts.map +1 -0
- package/dist/components/NutritionPanel.js +169 -0
- package/dist/components/NutritionPanel.js.map +1 -0
- package/dist/components/PageNavigator.d.ts.map +1 -1
- package/dist/components/PageNavigator.js +6 -1
- package/dist/components/PageNavigator.js.map +1 -1
- package/dist/components/PaletteManager.d.ts +32 -0
- package/dist/components/PaletteManager.d.ts.map +1 -0
- package/dist/components/PaletteManager.js +89 -0
- package/dist/components/PaletteManager.js.map +1 -0
- package/dist/components/PaletteToSpotPanel.d.ts +122 -0
- package/dist/components/PaletteToSpotPanel.d.ts.map +1 -0
- package/dist/components/PaletteToSpotPanel.js +160 -0
- package/dist/components/PaletteToSpotPanel.js.map +1 -0
- package/dist/components/PreflightAutoFixPanel.d.ts +110 -0
- package/dist/components/PreflightAutoFixPanel.d.ts.map +1 -0
- package/dist/components/PreflightAutoFixPanel.js +119 -0
- package/dist/components/PreflightAutoFixPanel.js.map +1 -0
- package/dist/components/PreflightDiffPanel.d.ts +127 -0
- package/dist/components/PreflightDiffPanel.d.ts.map +1 -0
- package/dist/components/PreflightDiffPanel.js +0 -0
- package/dist/components/PreflightDiffPanel.js.map +1 -0
- package/dist/components/ProcessRulesPanel.d.ts +81 -0
- package/dist/components/ProcessRulesPanel.d.ts.map +1 -0
- package/dist/components/ProcessRulesPanel.js +143 -0
- package/dist/components/ProcessRulesPanel.js.map +1 -0
- package/dist/components/SlackNotifyPanel.d.ts +139 -0
- package/dist/components/SlackNotifyPanel.d.ts.map +1 -0
- package/dist/components/SlackNotifyPanel.js +133 -0
- package/dist/components/SlackNotifyPanel.js.map +1 -0
- package/dist/components/SmartSpotMatchPanel.d.ts +143 -0
- package/dist/components/SmartSpotMatchPanel.d.ts.map +1 -0
- package/dist/components/SmartSpotMatchPanel.js +159 -0
- package/dist/components/SmartSpotMatchPanel.js.map +1 -0
- package/dist/components/SwatchesPicker.d.ts +83 -0
- package/dist/components/SwatchesPicker.d.ts.map +1 -0
- package/dist/components/SwatchesPicker.js +151 -0
- package/dist/components/SwatchesPicker.js.map +1 -0
- package/dist/components/TacOverlay.d.ts +47 -0
- package/dist/components/TacOverlay.d.ts.map +1 -0
- package/dist/components/TacOverlay.js +116 -0
- package/dist/components/TacOverlay.js.map +1 -0
- package/dist/components/TrapEditorPanel.d.ts +52 -0
- package/dist/components/TrapEditorPanel.d.ts.map +1 -0
- package/dist/components/TrapEditorPanel.js +64 -0
- package/dist/components/TrapEditorPanel.js.map +1 -0
- package/dist/components/TrapPreviewOverlay.d.ts +64 -0
- package/dist/components/TrapPreviewOverlay.d.ts.map +1 -0
- package/dist/components/TrapPreviewOverlay.js +120 -0
- package/dist/components/TrapPreviewOverlay.js.map +1 -0
- package/dist/components/VariantMatrixPanel.d.ts +61 -0
- package/dist/components/VariantMatrixPanel.d.ts.map +1 -0
- package/dist/components/VariantMatrixPanel.js +97 -0
- package/dist/components/VariantMatrixPanel.js.map +1 -0
- package/dist/components/VariantMatrixVersionPanel.d.ts +122 -0
- package/dist/components/VariantMatrixVersionPanel.d.ts.map +1 -0
- package/dist/components/VariantMatrixVersionPanel.js +162 -0
- package/dist/components/VariantMatrixVersionPanel.js.map +1 -0
- package/dist/components/WebhookNotifyPanel.d.ts +160 -0
- package/dist/components/WebhookNotifyPanel.d.ts.map +1 -0
- package/dist/components/WebhookNotifyPanel.js +100 -0
- package/dist/components/WebhookNotifyPanel.js.map +1 -0
- package/dist/components/WhiteUnderbasePanel.d.ts +107 -0
- package/dist/components/WhiteUnderbasePanel.d.ts.map +1 -0
- package/dist/components/WhiteUnderbasePanel.js +104 -0
- package/dist/components/WhiteUnderbasePanel.js.map +1 -0
- package/dist/hooks/useEditorMode.d.ts +25 -5
- package/dist/hooks/useEditorMode.d.ts.map +1 -1
- package/dist/hooks/useEditorMode.js +18 -5
- package/dist/hooks/useEditorMode.js.map +1 -1
- package/dist/index.d.ts +49 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -2
- package/dist/index.js.map +1 -1
- package/dist/lens/preflight-findings.d.ts.map +1 -1
- package/dist/lens/preflight-findings.js.map +1 -1
- package/dist/lib/barcode-scan.d.ts +154 -0
- package/dist/lib/barcode-scan.d.ts.map +1 -0
- package/dist/lib/barcode-scan.js +152 -0
- package/dist/lib/barcode-scan.js.map +1 -0
- package/dist/lib/color-math.d.ts +76 -0
- package/dist/lib/color-math.d.ts.map +1 -0
- package/dist/lib/color-math.js +96 -0
- package/dist/lib/color-math.js.map +1 -0
- package/dist/lib/dieline-template.d.ts +87 -0
- package/dist/lib/dieline-template.d.ts.map +1 -1
- package/dist/lib/dieline-template.js +163 -0
- package/dist/lib/dieline-template.js.map +1 -1
- package/dist/lib/editor-config.d.ts +384 -0
- package/dist/lib/editor-config.d.ts.map +1 -1
- package/dist/lib/editor-config.js +89 -0
- package/dist/lib/editor-config.js.map +1 -1
- package/dist/lib/fold-geometry.d.ts +144 -0
- package/dist/lib/fold-geometry.d.ts.map +1 -0
- package/dist/lib/fold-geometry.js +138 -0
- package/dist/lib/fold-geometry.js.map +1 -0
- package/dist/lib/merge-tokens.d.ts +81 -0
- package/dist/lib/merge-tokens.d.ts.map +1 -0
- package/dist/lib/merge-tokens.js +88 -0
- package/dist/lib/merge-tokens.js.map +1 -0
- package/dist/lib/palette-registry.d.ts +40 -0
- package/dist/lib/palette-registry.d.ts.map +1 -0
- package/dist/lib/palette-registry.js +49 -0
- package/dist/lib/palette-registry.js.map +1 -0
- package/dist/lib/panel-anchor.d.ts +101 -0
- package/dist/lib/panel-anchor.d.ts.map +1 -0
- package/dist/lib/panel-anchor.js +68 -0
- package/dist/lib/panel-anchor.js.map +1 -0
- package/dist/lib/preflight/checks.d.ts.map +1 -1
- package/dist/lib/preflight/checks.js +71 -0
- package/dist/lib/preflight/checks.js.map +1 -1
- package/dist/lib/preflight/types.d.ts.map +1 -1
- package/dist/lib/preflight/types.js +11 -0
- package/dist/lib/preflight/types.js.map +1 -1
- package/dist/lib/rasterize.d.ts +93 -0
- package/dist/lib/rasterize.d.ts.map +1 -0
- package/dist/lib/rasterize.js +117 -0
- package/dist/lib/rasterize.js.map +1 -0
- package/dist/lib/separations-registry.d.ts +99 -0
- package/dist/lib/separations-registry.d.ts.map +1 -0
- package/dist/lib/separations-registry.js +59 -0
- package/dist/lib/separations-registry.js.map +1 -0
- package/dist/lib/unwired.d.ts +29 -0
- package/dist/lib/unwired.d.ts.map +1 -0
- package/dist/lib/unwired.js +58 -0
- package/dist/lib/unwired.js.map +1 -0
- package/package.json +20 -11
- package/dist/components/SeparationsPanel.d.ts +0 -9
- package/dist/components/SeparationsPanel.d.ts.map +0 -1
- package/dist/components/SeparationsPanel.js +0 -168
- package/dist/components/SeparationsPanel.js.map +0 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wave 2 S3 — panel-anchored objects.
|
|
3
|
+
*
|
|
4
|
+
* Lightweight hit-testing + lookup helpers for binding canvas objects
|
|
5
|
+
* to a specific {@link DielinePanel}. The document-model already
|
|
6
|
+
* carries the anchor id (`ArtworkObject.anchorPanelId`); these
|
|
7
|
+
* helpers complete the editor-side wiring so hosts can:
|
|
8
|
+
*
|
|
9
|
+
* - resolve which panel a click landed on (`findPanelAt`)
|
|
10
|
+
* - look up an anchored panel by id (`getPanelById`)
|
|
11
|
+
* - compute an object's effective parent panel during layout
|
|
12
|
+
*
|
|
13
|
+
* The current implementation uses bbox-only hit-testing — fast, good
|
|
14
|
+
* enough for orthogonal carton dielines, and side-step's polygon /
|
|
15
|
+
* SVG-`d` parsing. Hosts that ship complex non-rectangular panels
|
|
16
|
+
* (e.g. organic pouches) can extend by walking each panel's
|
|
17
|
+
* `pathData` themselves and bypass `findPanelAt`.
|
|
18
|
+
*
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Editor-side mirror of `@artworkpdf/document-model`'s `DielinePanel`.
|
|
23
|
+
* Duplicated here to keep `editor-app` consumable without the
|
|
24
|
+
* document-model peer dep (same pattern as `EditorSeparation` and
|
|
25
|
+
* `FoldGeometryPanelMetadata`).
|
|
26
|
+
*
|
|
27
|
+
* @public
|
|
28
|
+
*/
|
|
29
|
+
export type EditorDielinePanel = {
|
|
30
|
+
id: string;
|
|
31
|
+
name?: string;
|
|
32
|
+
pathData: string;
|
|
33
|
+
bbox: {
|
|
34
|
+
x: number;
|
|
35
|
+
y: number;
|
|
36
|
+
width: number;
|
|
37
|
+
height: number;
|
|
38
|
+
};
|
|
39
|
+
role?: "front" | "back" | "top" | "bottom" | "left" | "right" | "flap" | "glue" | "other";
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Point-in-bbox test for a single panel. Returns `true` when the
|
|
43
|
+
* point lies within the bbox with all four edges inclusive — so a
|
|
44
|
+
* point on a seam between two adjacent panels matches both, and
|
|
45
|
+
* disambiguation is left to {@link findPanelAt}'s declaration-order
|
|
46
|
+
* first-match.
|
|
47
|
+
*
|
|
48
|
+
* Degenerate bboxes (`width <= 0` or `height <= 0`) never match —
|
|
49
|
+
* upstream dieline parsers occasionally emit collapsed cut/crease
|
|
50
|
+
* loops with zero-sized boxes, and silently swallowing those keeps
|
|
51
|
+
* the panel picker quiet on broken templates.
|
|
52
|
+
*
|
|
53
|
+
* @public
|
|
54
|
+
*/
|
|
55
|
+
export declare function isPointInPanel(point: {
|
|
56
|
+
x: number;
|
|
57
|
+
y: number;
|
|
58
|
+
}, panel: EditorDielinePanel): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Return the first panel that contains `point`, or `undefined` when
|
|
61
|
+
* the click landed outside every panel (over the bleed area, say).
|
|
62
|
+
*
|
|
63
|
+
* Panels are checked in declaration order; hosts that emit overlapping
|
|
64
|
+
* panels (e.g. a glue flap that overlaps a front face) get the
|
|
65
|
+
* first-match semantics they need by ordering the array
|
|
66
|
+
* front-of-rendering-stack first.
|
|
67
|
+
*
|
|
68
|
+
* @public
|
|
69
|
+
*/
|
|
70
|
+
export declare function findPanelAt(point: {
|
|
71
|
+
x: number;
|
|
72
|
+
y: number;
|
|
73
|
+
}, panels: readonly EditorDielinePanel[]): EditorDielinePanel | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* Convenience lookup — returns the panel with the given id, or
|
|
76
|
+
* `undefined` if the anchor is stale (e.g. the dieline was
|
|
77
|
+
* regenerated and the previous panel ids no longer exist).
|
|
78
|
+
*
|
|
79
|
+
* @public
|
|
80
|
+
*/
|
|
81
|
+
export declare function getPanelById(id: string, panels: readonly EditorDielinePanel[]): EditorDielinePanel | undefined;
|
|
82
|
+
/**
|
|
83
|
+
* Compute an object's effective parent panel:
|
|
84
|
+
* - if `anchorPanelId` is set and resolves, return that panel
|
|
85
|
+
* - otherwise fall back to whichever panel contains the object's
|
|
86
|
+
* current `(x, y)` position
|
|
87
|
+
*
|
|
88
|
+
* Returns `undefined` when neither resolves — the object is free-
|
|
89
|
+
* floating (positioned in page coordinates, not panel-relative).
|
|
90
|
+
*
|
|
91
|
+
* Hosts call this on every commit to keep the visible "anchored to
|
|
92
|
+
* X" badge in sync.
|
|
93
|
+
*
|
|
94
|
+
* @public
|
|
95
|
+
*/
|
|
96
|
+
export declare function resolveAnchorPanel(obj: {
|
|
97
|
+
x: number;
|
|
98
|
+
y: number;
|
|
99
|
+
anchorPanelId?: string;
|
|
100
|
+
}, panels: readonly EditorDielinePanel[]): EditorDielinePanel | undefined;
|
|
101
|
+
//# sourceMappingURL=panel-anchor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-anchor.d.ts","sourceRoot":"","sources":["../../src/lib/panel-anchor.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAC3F,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/B,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAIT;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/B,MAAM,EAAE,SAAS,kBAAkB,EAAE,GACpC,kBAAkB,GAAG,SAAS,CAEhC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,SAAS,kBAAkB,EAAE,GACpC,kBAAkB,GAAG,SAAS,CAEhC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,EACrD,MAAM,EAAE,SAAS,kBAAkB,EAAE,GACpC,kBAAkB,GAAG,SAAS,CAMhC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
+
/**
|
|
3
|
+
* Point-in-bbox test for a single panel. Returns `true` when the
|
|
4
|
+
* point lies within the bbox with all four edges inclusive — so a
|
|
5
|
+
* point on a seam between two adjacent panels matches both, and
|
|
6
|
+
* disambiguation is left to {@link findPanelAt}'s declaration-order
|
|
7
|
+
* first-match.
|
|
8
|
+
*
|
|
9
|
+
* Degenerate bboxes (`width <= 0` or `height <= 0`) never match —
|
|
10
|
+
* upstream dieline parsers occasionally emit collapsed cut/crease
|
|
11
|
+
* loops with zero-sized boxes, and silently swallowing those keeps
|
|
12
|
+
* the panel picker quiet on broken templates.
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
export function isPointInPanel(point, panel) {
|
|
17
|
+
const { x, y, width, height } = panel.bbox;
|
|
18
|
+
if (width <= 0 || height <= 0)
|
|
19
|
+
return false;
|
|
20
|
+
return point.x >= x && point.x <= x + width && point.y >= y && point.y <= y + height;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Return the first panel that contains `point`, or `undefined` when
|
|
24
|
+
* the click landed outside every panel (over the bleed area, say).
|
|
25
|
+
*
|
|
26
|
+
* Panels are checked in declaration order; hosts that emit overlapping
|
|
27
|
+
* panels (e.g. a glue flap that overlaps a front face) get the
|
|
28
|
+
* first-match semantics they need by ordering the array
|
|
29
|
+
* front-of-rendering-stack first.
|
|
30
|
+
*
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
export function findPanelAt(point, panels) {
|
|
34
|
+
return panels.find((p) => isPointInPanel(point, p));
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Convenience lookup — returns the panel with the given id, or
|
|
38
|
+
* `undefined` if the anchor is stale (e.g. the dieline was
|
|
39
|
+
* regenerated and the previous panel ids no longer exist).
|
|
40
|
+
*
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
export function getPanelById(id, panels) {
|
|
44
|
+
return panels.find((p) => p.id === id);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Compute an object's effective parent panel:
|
|
48
|
+
* - if `anchorPanelId` is set and resolves, return that panel
|
|
49
|
+
* - otherwise fall back to whichever panel contains the object's
|
|
50
|
+
* current `(x, y)` position
|
|
51
|
+
*
|
|
52
|
+
* Returns `undefined` when neither resolves — the object is free-
|
|
53
|
+
* floating (positioned in page coordinates, not panel-relative).
|
|
54
|
+
*
|
|
55
|
+
* Hosts call this on every commit to keep the visible "anchored to
|
|
56
|
+
* X" badge in sync.
|
|
57
|
+
*
|
|
58
|
+
* @public
|
|
59
|
+
*/
|
|
60
|
+
export function resolveAnchorPanel(obj, panels) {
|
|
61
|
+
if (obj.anchorPanelId) {
|
|
62
|
+
const explicit = getPanelById(obj.anchorPanelId, panels);
|
|
63
|
+
if (explicit)
|
|
64
|
+
return explicit;
|
|
65
|
+
}
|
|
66
|
+
return findPanelAt({ x: obj.x, y: obj.y }, panels);
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=panel-anchor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-anchor.js","sourceRoot":"","sources":["../../src/lib/panel-anchor.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAuC7C;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAC5B,KAA+B,EAC/B,KAAyB;IAEzB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;IAC3C,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACvF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CACzB,KAA+B,EAC/B,MAAqC;IAErC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,EAAU,EACV,MAAqC;IAErC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAqD,EACrD,MAAqC;IAErC,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;IAChC,CAAC;IACD,OAAO,WAAW,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../../src/lib/preflight/checks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../../src/lib/preflight/checks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7D,KAAK,WAAW,GAAG;IAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEzE,wBAAsB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CA2D9F"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
1
2
|
import { PDFArray, PDFDict, PDFDocument, PDFName } from "pdf-lib";
|
|
3
|
+
import { scanBarcodes, validateBarcode } from "../barcode-scan";
|
|
2
4
|
const KNOWN_SPOT_PREFIXES = ["PANTONE", "HKS ", "TOYO", "DIC ", "Reflex Blue", "Rhodamine"];
|
|
3
5
|
export async function runClientChecks(file, rules) {
|
|
4
6
|
const issues = [];
|
|
@@ -47,6 +49,17 @@ export async function runClientChecks(file, rules) {
|
|
|
47
49
|
if (doc)
|
|
48
50
|
issues.push(...checkPdfSpotColors(doc, rule));
|
|
49
51
|
break;
|
|
52
|
+
case "barcode_validation":
|
|
53
|
+
if (isRaster) {
|
|
54
|
+
issues.push(...(await checkRasterBarcodes(file, rule)));
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
// PDF barcode scanning needs the PDF-to-raster pipeline
|
|
58
|
+
// (deferred); mark the check as skipped so the server-side
|
|
59
|
+
// preflight knows it's still owed for PDF uploads.
|
|
60
|
+
skippedChecks.push(rule.checkName);
|
|
61
|
+
}
|
|
62
|
+
break;
|
|
50
63
|
}
|
|
51
64
|
}
|
|
52
65
|
return { issues, skippedChecks };
|
|
@@ -203,6 +216,64 @@ function checkPdfFonts(doc, rule) {
|
|
|
203
216
|
},
|
|
204
217
|
];
|
|
205
218
|
}
|
|
219
|
+
async function checkRasterBarcodes(file, rule) {
|
|
220
|
+
// Load the file into an ImageBitmap → 2d-canvas → ImageData so the
|
|
221
|
+
// barcode scanner can read raw pixels. Wrapped in a try so an
|
|
222
|
+
// unsupported image format fails open (no false negatives —
|
|
223
|
+
// server-side preflight catches what the editor can't).
|
|
224
|
+
let bitmap;
|
|
225
|
+
try {
|
|
226
|
+
bitmap = await createImageBitmap(file);
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
return [];
|
|
230
|
+
}
|
|
231
|
+
// OffscreenCanvas was Safari-only as of 16.4 and is still missing
|
|
232
|
+
// from some embedded webviews; feature-detect and fall back to a
|
|
233
|
+
// regular HTMLCanvasElement so this never throws ReferenceError.
|
|
234
|
+
let ctx = null;
|
|
235
|
+
if (typeof OffscreenCanvas !== "undefined") {
|
|
236
|
+
const canvas = new OffscreenCanvas(bitmap.width, bitmap.height);
|
|
237
|
+
ctx = canvas.getContext("2d");
|
|
238
|
+
}
|
|
239
|
+
else if (typeof document !== "undefined") {
|
|
240
|
+
const canvas = document.createElement("canvas");
|
|
241
|
+
canvas.width = bitmap.width;
|
|
242
|
+
canvas.height = bitmap.height;
|
|
243
|
+
ctx = canvas.getContext("2d");
|
|
244
|
+
}
|
|
245
|
+
if (!ctx) {
|
|
246
|
+
bitmap.close();
|
|
247
|
+
return [];
|
|
248
|
+
}
|
|
249
|
+
ctx.drawImage(bitmap, 0, 0);
|
|
250
|
+
const imageData = ctx.getImageData(0, 0, bitmap.width, bitmap.height);
|
|
251
|
+
bitmap.close();
|
|
252
|
+
// Fail-open: a real detector library (jsqr, quagga, zbar) can
|
|
253
|
+
// reject for many reasons (decode failure, WASM init crash, malformed
|
|
254
|
+
// input). We don't want a scanner bug to take out the whole preflight
|
|
255
|
+
// pass, so we swallow and emit no findings.
|
|
256
|
+
let detections;
|
|
257
|
+
try {
|
|
258
|
+
detections = await scanBarcodes(imageData);
|
|
259
|
+
}
|
|
260
|
+
catch {
|
|
261
|
+
return [];
|
|
262
|
+
}
|
|
263
|
+
const issues = [];
|
|
264
|
+
for (const d of detections) {
|
|
265
|
+
const v = validateBarcode(d);
|
|
266
|
+
if (!v.valid) {
|
|
267
|
+
issues.push({
|
|
268
|
+
checkName: rule.checkName,
|
|
269
|
+
severity: rule.severity,
|
|
270
|
+
message: `${d.format} barcode ${d.code} is invalid: ${v.reason ?? "unknown"}`,
|
|
271
|
+
detail: { code: d.code, format: d.format, bounds: d.bounds },
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
return issues;
|
|
276
|
+
}
|
|
206
277
|
function checkPdfSpotColors(doc, rule) {
|
|
207
278
|
const unknown = [];
|
|
208
279
|
for (const page of doc.getPages()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checks.js","sourceRoot":"","sources":["../../../src/lib/preflight/checks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"checks.js","sourceRoot":"","sources":["../../../src/lib/preflight/checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/preflight/types.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/preflight/types.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,aAAa,EAkFlD,CAAC"}
|
|
@@ -76,5 +76,16 @@ export const DEFAULT_PREFLIGHT_RULES = [
|
|
|
76
76
|
clientSide: false,
|
|
77
77
|
params: { allowedModes: ["CMYK", "Spot", "DeviceN", "Gray"] },
|
|
78
78
|
},
|
|
79
|
+
{
|
|
80
|
+
// G2v — detect barcodes in raster uploads and flag ones whose
|
|
81
|
+
// check digit / structure fails their format spec. Client-side
|
|
82
|
+
// because the editor already rasterizes for the live TAC overlay
|
|
83
|
+
// (PR-9) and reuses the same path here.
|
|
84
|
+
checkName: "barcode_validation",
|
|
85
|
+
enabled: true,
|
|
86
|
+
severity: "warn",
|
|
87
|
+
clientSide: true,
|
|
88
|
+
params: {},
|
|
89
|
+
},
|
|
79
90
|
];
|
|
80
91
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/preflight/types.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,0DAA0D;AAC1D,+DAA+D;AAC/D,oEAAoE;AACpE,gEAAgE;AAChE,wBAAwB;AA4BxB,MAAM,CAAC,MAAM,uBAAuB,GAAoB;IACtD;QACE,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;KACxB;IACD;QACE,SAAS,EAAE,gBAAgB;QAC3B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,EAAE;KACX;IACD;QACE,SAAS,EAAE,gBAAgB;QAC3B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;KACvB;IACD;QACE,SAAS,EAAE,uBAAuB;QAClC,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE;KAChC;IACD;QACE,SAAS,EAAE,kBAAkB;QAC7B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;KACrB;IACD;QACE,SAAS,EAAE,oBAAoB;QAC/B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;KACxB;IACD;QACE,SAAS,EAAE,oBAAoB;QAC/B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE;KAC5B;IACD;QACE,SAAS,EAAE,eAAe;QAC1B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,EAAE,eAAe,EAAE,CAAC,kBAAkB,EAAE,SAAS,EAAE,mBAAmB,CAAC,EAAE;KAClF;IACD;QACE,SAAS,EAAE,oBAAoB;QAC/B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE;KACxC;IACD;QACE,SAAS,EAAE,YAAY;QACvB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE;KAC9D;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/preflight/types.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,0DAA0D;AAC1D,+DAA+D;AAC/D,oEAAoE;AACpE,gEAAgE;AAChE,wBAAwB;AA4BxB,MAAM,CAAC,MAAM,uBAAuB,GAAoB;IACtD;QACE,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;KACxB;IACD;QACE,SAAS,EAAE,gBAAgB;QAC3B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,EAAE;KACX;IACD;QACE,SAAS,EAAE,gBAAgB;QAC3B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;KACvB;IACD;QACE,SAAS,EAAE,uBAAuB;QAClC,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE;KAChC;IACD;QACE,SAAS,EAAE,kBAAkB;QAC7B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;KACrB;IACD;QACE,SAAS,EAAE,oBAAoB;QAC/B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;KACxB;IACD;QACE,SAAS,EAAE,oBAAoB;QAC/B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE;KAC5B;IACD;QACE,SAAS,EAAE,eAAe;QAC1B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,EAAE,eAAe,EAAE,CAAC,kBAAkB,EAAE,SAAS,EAAE,mBAAmB,CAAC,EAAE;KAClF;IACD;QACE,SAAS,EAAE,oBAAoB;QAC/B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE;KACxC;IACD;QACE,SAAS,EAAE,YAAY;QACvB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE;KAC9D;IACD;QACE,8DAA8D;QAC9D,+DAA+D;QAC/D,iEAAiE;QACjE,wCAAwC;QACxC,SAAS,EAAE,oBAAoB;QAC/B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,EAAE;KACX;CACF,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canvas → ImageData rasterization + per-pixel TAC sampling.
|
|
3
|
+
*
|
|
4
|
+
* The C4 "live total area coverage" feature reads the Konva Stage
|
|
5
|
+
* as a raster, samples each pixel's effective CMYK contribution,
|
|
6
|
+
* and surfaces the maximum + average TAC as a sanity-check overlay
|
|
7
|
+
* for the user **before** they submit a render job.
|
|
8
|
+
*
|
|
9
|
+
* Browser-side approximation, not a substitute for compile-pdf's
|
|
10
|
+
* ICC-aware server-side TAC check (`total_ink_coverage` preflight
|
|
11
|
+
* rule). The editor flags obviously over-inked regions in real time;
|
|
12
|
+
* the server-side check covers the colorimetric edge cases.
|
|
13
|
+
*
|
|
14
|
+
* Stage rasterization needs a live Konva instance + DOM, so the
|
|
15
|
+
* functions here can't be unit-tested without jsdom. The pure pixel
|
|
16
|
+
* sampler ({@link sampleTACFromImageData}) takes a synthetic
|
|
17
|
+
* ImageData and is fully testable in node.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Konva Stage shape just deep enough for the rasterize call — keeps
|
|
21
|
+
* this module from importing `konva` directly (the canvas already
|
|
22
|
+
* pulls it; we just need the `toCanvas` method).
|
|
23
|
+
*/
|
|
24
|
+
type StageLike = {
|
|
25
|
+
toCanvas: (cfg?: {
|
|
26
|
+
pixelRatio?: number;
|
|
27
|
+
}) => HTMLCanvasElement;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Render a Konva Stage to an `ImageData` buffer.
|
|
31
|
+
*
|
|
32
|
+
* `pixelRatio` defaults to `1` for performance; UIs that need
|
|
33
|
+
* higher fidelity (separations panel, export preview) pass `2` or
|
|
34
|
+
* more. The browser's own `HTMLCanvasElement.getContext("2d")
|
|
35
|
+
* .getImageData()` does the heavy lift; this is a thin facade.
|
|
36
|
+
*
|
|
37
|
+
* Throws if the canvas's 2d context can't be acquired (extremely
|
|
38
|
+
* rare; old browser quirks).
|
|
39
|
+
*
|
|
40
|
+
* @public
|
|
41
|
+
*/
|
|
42
|
+
export declare function rasterizeStage(stage: StageLike, opts?: {
|
|
43
|
+
pixelRatio?: number;
|
|
44
|
+
}): ImageData;
|
|
45
|
+
/**
|
|
46
|
+
* Per-pixel TAC summary across an `ImageData` buffer.
|
|
47
|
+
*
|
|
48
|
+
* Walks every pixel, converts its `(r, g, b)` to subtractive CMYK
|
|
49
|
+
* (via the same {@link hexToCmyk}-equivalent math, applied directly
|
|
50
|
+
* to the raw 0-255 bytes), and tracks the max + running sum so the
|
|
51
|
+
* caller can compute the average.
|
|
52
|
+
*
|
|
53
|
+
* `perPixelPct` is a flat `Uint8ClampedArray` of `width × height`
|
|
54
|
+
* entries; each is the TAC percent (0-400) clamped to a byte's
|
|
55
|
+
* range (255 = >=255%, allowing the heatmap shader to render a
|
|
56
|
+
* single-channel raster without scaling).
|
|
57
|
+
*
|
|
58
|
+
* **Alpha composite**: semi-transparent pixels are pre-blended onto
|
|
59
|
+
* an opaque white background before the CMYK conversion. This
|
|
60
|
+
* mirrors what the editor's canvas actually displays (everything
|
|
61
|
+
* sits on the white page) so an `rgba(255,0,0,0.1)` pixel registers
|
|
62
|
+
* as the ~20% TAC it'd actually print at, not the 200% full red it
|
|
63
|
+
* would be without the composite step. Pass an `opts.background`
|
|
64
|
+
* hex to composite onto a non-white substrate.
|
|
65
|
+
*
|
|
66
|
+
* **Approximation:** spot ink contribution is not modeled here. A
|
|
67
|
+
* full per-separation pass requires masking pixels by ink (planned
|
|
68
|
+
* for PR-9's UI overlay when the registered-spots map is available).
|
|
69
|
+
*
|
|
70
|
+
* Throws when `image.data.length !== image.width × image.height × 4`
|
|
71
|
+
* — defensive against misuse from upstream callers that pass a
|
|
72
|
+
* partially-constructed or mis-typed ImageData-shaped object.
|
|
73
|
+
*
|
|
74
|
+
* @public
|
|
75
|
+
*/
|
|
76
|
+
export declare function sampleTACFromImageData(image: ImageData, opts?: {
|
|
77
|
+
background?: [number, number, number];
|
|
78
|
+
}): {
|
|
79
|
+
maxPct: number;
|
|
80
|
+
avgPct: number;
|
|
81
|
+
perPixelPct: Uint8ClampedArray;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Convenience: sample TAC from a raw hex color (single-pixel case).
|
|
85
|
+
* Used by tests + the editor's color picker's at-a-glance feedback.
|
|
86
|
+
*
|
|
87
|
+
* @returns The TAC percent (0-400) or `null` for malformed hex.
|
|
88
|
+
*
|
|
89
|
+
* @public
|
|
90
|
+
*/
|
|
91
|
+
export declare function tacForHex(hex: string): number | null;
|
|
92
|
+
export {};
|
|
93
|
+
//# sourceMappingURL=rasterize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rasterize.d.ts","sourceRoot":"","sources":["../../src/lib/rasterize.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;GAIG;AACH,KAAK,SAAS,GAAG;IACf,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,iBAAiB,CAAC;CAChE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,SAAS,CAO9F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS,EAChB,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAO,GACnD;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,iBAAiB,CAAC;CAChC,CAiDA;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIpD"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
+
import { hexToCmyk, tacPercent } from "./color-math";
|
|
3
|
+
/**
|
|
4
|
+
* Render a Konva Stage to an `ImageData` buffer.
|
|
5
|
+
*
|
|
6
|
+
* `pixelRatio` defaults to `1` for performance; UIs that need
|
|
7
|
+
* higher fidelity (separations panel, export preview) pass `2` or
|
|
8
|
+
* more. The browser's own `HTMLCanvasElement.getContext("2d")
|
|
9
|
+
* .getImageData()` does the heavy lift; this is a thin facade.
|
|
10
|
+
*
|
|
11
|
+
* Throws if the canvas's 2d context can't be acquired (extremely
|
|
12
|
+
* rare; old browser quirks).
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
export function rasterizeStage(stage, opts = {}) {
|
|
17
|
+
const cfg = {};
|
|
18
|
+
if (opts.pixelRatio !== undefined)
|
|
19
|
+
cfg.pixelRatio = opts.pixelRatio;
|
|
20
|
+
const canvas = stage.toCanvas(cfg);
|
|
21
|
+
const ctx = canvas.getContext("2d");
|
|
22
|
+
if (!ctx)
|
|
23
|
+
throw new Error("rasterizeStage: 2d context unavailable on stage canvas");
|
|
24
|
+
return ctx.getImageData(0, 0, canvas.width, canvas.height);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Per-pixel TAC summary across an `ImageData` buffer.
|
|
28
|
+
*
|
|
29
|
+
* Walks every pixel, converts its `(r, g, b)` to subtractive CMYK
|
|
30
|
+
* (via the same {@link hexToCmyk}-equivalent math, applied directly
|
|
31
|
+
* to the raw 0-255 bytes), and tracks the max + running sum so the
|
|
32
|
+
* caller can compute the average.
|
|
33
|
+
*
|
|
34
|
+
* `perPixelPct` is a flat `Uint8ClampedArray` of `width × height`
|
|
35
|
+
* entries; each is the TAC percent (0-400) clamped to a byte's
|
|
36
|
+
* range (255 = >=255%, allowing the heatmap shader to render a
|
|
37
|
+
* single-channel raster without scaling).
|
|
38
|
+
*
|
|
39
|
+
* **Alpha composite**: semi-transparent pixels are pre-blended onto
|
|
40
|
+
* an opaque white background before the CMYK conversion. This
|
|
41
|
+
* mirrors what the editor's canvas actually displays (everything
|
|
42
|
+
* sits on the white page) so an `rgba(255,0,0,0.1)` pixel registers
|
|
43
|
+
* as the ~20% TAC it'd actually print at, not the 200% full red it
|
|
44
|
+
* would be without the composite step. Pass an `opts.background`
|
|
45
|
+
* hex to composite onto a non-white substrate.
|
|
46
|
+
*
|
|
47
|
+
* **Approximation:** spot ink contribution is not modeled here. A
|
|
48
|
+
* full per-separation pass requires masking pixels by ink (planned
|
|
49
|
+
* for PR-9's UI overlay when the registered-spots map is available).
|
|
50
|
+
*
|
|
51
|
+
* Throws when `image.data.length !== image.width × image.height × 4`
|
|
52
|
+
* — defensive against misuse from upstream callers that pass a
|
|
53
|
+
* partially-constructed or mis-typed ImageData-shaped object.
|
|
54
|
+
*
|
|
55
|
+
* @public
|
|
56
|
+
*/
|
|
57
|
+
export function sampleTACFromImageData(image, opts = {}) {
|
|
58
|
+
const { data, width, height } = image;
|
|
59
|
+
const pixelCount = width * height;
|
|
60
|
+
const expected = pixelCount * 4;
|
|
61
|
+
if (data.length !== expected) {
|
|
62
|
+
throw new Error(`sampleTACFromImageData: data.length=${data.length} but ${width}×${height}×4=${expected}`);
|
|
63
|
+
}
|
|
64
|
+
const [bgR, bgG, bgB] = opts.background ?? [255, 255, 255];
|
|
65
|
+
const perPixelPct = new Uint8ClampedArray(pixelCount);
|
|
66
|
+
let maxPct = 0;
|
|
67
|
+
let sumPct = 0;
|
|
68
|
+
let i = 0;
|
|
69
|
+
for (let p = 0; p < data.length; p += 4) {
|
|
70
|
+
// Pre-multiply with the background ("over" composite) so
|
|
71
|
+
// semi-transparent pixels reflect what's actually visible /
|
|
72
|
+
// printable. Fully-opaque pixels (the common case) pass through
|
|
73
|
+
// unchanged because alpha=1 collapses the lerp.
|
|
74
|
+
const a = (data[p + 3] ?? 255) / 255;
|
|
75
|
+
const inv = 1 - a;
|
|
76
|
+
const r = ((data[p] ?? 0) * a + bgR * inv) / 255;
|
|
77
|
+
const g = ((data[p + 1] ?? 0) * a + bgG * inv) / 255;
|
|
78
|
+
const b = ((data[p + 2] ?? 0) * a + bgB * inv) / 255;
|
|
79
|
+
// Subtractive RGB → CMYK with K-extraction; same math as
|
|
80
|
+
// color-math.ts but inlined for the tight loop.
|
|
81
|
+
const k = 1 - Math.max(r, g, b);
|
|
82
|
+
let c = 0;
|
|
83
|
+
let m = 0;
|
|
84
|
+
let y = 0;
|
|
85
|
+
if (k < 1) {
|
|
86
|
+
const scale = 1 - k;
|
|
87
|
+
c = (1 - r - k) / scale;
|
|
88
|
+
m = (1 - g - k) / scale;
|
|
89
|
+
y = (1 - b - k) / scale;
|
|
90
|
+
}
|
|
91
|
+
const tac = (c + m + y + k) * 100;
|
|
92
|
+
if (tac > maxPct)
|
|
93
|
+
maxPct = tac;
|
|
94
|
+
sumPct += tac;
|
|
95
|
+
perPixelPct[i++] = Math.min(255, Math.round(tac));
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
maxPct,
|
|
99
|
+
avgPct: pixelCount > 0 ? sumPct / pixelCount : 0,
|
|
100
|
+
perPixelPct,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Convenience: sample TAC from a raw hex color (single-pixel case).
|
|
105
|
+
* Used by tests + the editor's color picker's at-a-glance feedback.
|
|
106
|
+
*
|
|
107
|
+
* @returns The TAC percent (0-400) or `null` for malformed hex.
|
|
108
|
+
*
|
|
109
|
+
* @public
|
|
110
|
+
*/
|
|
111
|
+
export function tacForHex(hex) {
|
|
112
|
+
const cmyk = hexToCmyk(hex);
|
|
113
|
+
if (cmyk === null)
|
|
114
|
+
return null;
|
|
115
|
+
return tacPercent(cmyk);
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=rasterize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rasterize.js","sourceRoot":"","sources":["../../src/lib/rasterize.ts"],"names":[],"mappings":"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"}
|