@rasterex/viewer 1.0.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.
Files changed (156) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +279 -0
  3. package/SECURITY.md +54 -0
  4. package/dist/RasterexViewer.d.ts +70 -0
  5. package/dist/RasterexViewer.d.ts.map +1 -0
  6. package/dist/RasterexViewer.js +410 -0
  7. package/dist/RasterexViewer.js.map +1 -0
  8. package/dist/compat/matrix.d.ts +9 -0
  9. package/dist/compat/matrix.d.ts.map +1 -0
  10. package/dist/compat/matrix.js +12 -0
  11. package/dist/compat/matrix.js.map +1 -0
  12. package/dist/constants.d.ts +8 -0
  13. package/dist/constants.d.ts.map +1 -0
  14. package/dist/constants.js +8 -0
  15. package/dist/constants.js.map +1 -0
  16. package/dist/createDocumentViewer.d.ts +8 -0
  17. package/dist/createDocumentViewer.d.ts.map +1 -0
  18. package/dist/createDocumentViewer.js +16 -0
  19. package/dist/createDocumentViewer.js.map +1 -0
  20. package/dist/createViewer.d.ts +4 -0
  21. package/dist/createViewer.d.ts.map +1 -0
  22. package/dist/createViewer.js +5 -0
  23. package/dist/createViewer.js.map +1 -0
  24. package/dist/demo-presets.d.ts +45 -0
  25. package/dist/demo-presets.d.ts.map +1 -0
  26. package/dist/demo-presets.js +22 -0
  27. package/dist/demo-presets.js.map +1 -0
  28. package/dist/demoPresets.d.ts +2 -0
  29. package/dist/demoPresets.d.ts.map +1 -0
  30. package/dist/demoPresets.js +2 -0
  31. package/dist/demoPresets.js.map +1 -0
  32. package/dist/diagnostics.d.ts +76 -0
  33. package/dist/diagnostics.d.ts.map +1 -0
  34. package/dist/diagnostics.js +38 -0
  35. package/dist/diagnostics.js.map +1 -0
  36. package/dist/domains/AnnotationsApi.d.ts +139 -0
  37. package/dist/domains/AnnotationsApi.d.ts.map +1 -0
  38. package/dist/domains/AnnotationsApi.js +256 -0
  39. package/dist/domains/AnnotationsApi.js.map +1 -0
  40. package/dist/domains/BlocksApi.d.ts +151 -0
  41. package/dist/domains/BlocksApi.d.ts.map +1 -0
  42. package/dist/domains/BlocksApi.js +191 -0
  43. package/dist/domains/BlocksApi.js.map +1 -0
  44. package/dist/domains/CanvasApi.d.ts +13 -0
  45. package/dist/domains/CanvasApi.d.ts.map +1 -0
  46. package/dist/domains/CanvasApi.js +22 -0
  47. package/dist/domains/CanvasApi.js.map +1 -0
  48. package/dist/domains/CollaborationApi.d.ts +65 -0
  49. package/dist/domains/CollaborationApi.d.ts.map +1 -0
  50. package/dist/domains/CollaborationApi.js +177 -0
  51. package/dist/domains/CollaborationApi.js.map +1 -0
  52. package/dist/domains/CompareApi.d.ts +73 -0
  53. package/dist/domains/CompareApi.d.ts.map +1 -0
  54. package/dist/domains/CompareApi.js +175 -0
  55. package/dist/domains/CompareApi.js.map +1 -0
  56. package/dist/domains/DocumentsApi.d.ts +175 -0
  57. package/dist/domains/DocumentsApi.d.ts.map +1 -0
  58. package/dist/domains/DocumentsApi.js +407 -0
  59. package/dist/domains/DocumentsApi.js.map +1 -0
  60. package/dist/domains/LayersApi.d.ts +76 -0
  61. package/dist/domains/LayersApi.d.ts.map +1 -0
  62. package/dist/domains/LayersApi.js +159 -0
  63. package/dist/domains/LayersApi.js.map +1 -0
  64. package/dist/domains/MeasurementsApi.d.ts +150 -0
  65. package/dist/domains/MeasurementsApi.d.ts.map +1 -0
  66. package/dist/domains/MeasurementsApi.js +388 -0
  67. package/dist/domains/MeasurementsApi.js.map +1 -0
  68. package/dist/domains/StylesApi.d.ts +50 -0
  69. package/dist/domains/StylesApi.d.ts.map +1 -0
  70. package/dist/domains/StylesApi.js +53 -0
  71. package/dist/domains/StylesApi.js.map +1 -0
  72. package/dist/domains/ToolsApi.d.ts +251 -0
  73. package/dist/domains/ToolsApi.d.ts.map +1 -0
  74. package/dist/domains/ToolsApi.js +275 -0
  75. package/dist/domains/ToolsApi.js.map +1 -0
  76. package/dist/domains/canvasBrokerCommands.d.ts +38 -0
  77. package/dist/domains/canvasBrokerCommands.d.ts.map +1 -0
  78. package/dist/domains/canvasBrokerCommands.js +79 -0
  79. package/dist/domains/canvasBrokerCommands.js.map +1 -0
  80. package/dist/errors.d.ts +28 -0
  81. package/dist/errors.d.ts.map +1 -0
  82. package/dist/errors.js +82 -0
  83. package/dist/errors.js.map +1 -0
  84. package/dist/index.d.ts +45 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/index.js +26 -0
  87. package/dist/index.js.map +1 -0
  88. package/dist/messaging/CanvasMessageBroker.d.ts +36 -0
  89. package/dist/messaging/CanvasMessageBroker.d.ts.map +1 -0
  90. package/dist/messaging/CanvasMessageBroker.js +95 -0
  91. package/dist/messaging/CanvasMessageBroker.js.map +1 -0
  92. package/dist/messaging/IframeTransport.d.ts +29 -0
  93. package/dist/messaging/IframeTransport.d.ts.map +1 -0
  94. package/dist/messaging/IframeTransport.js +74 -0
  95. package/dist/messaging/IframeTransport.js.map +1 -0
  96. package/dist/messaging/MessageClient.d.ts +32 -0
  97. package/dist/messaging/MessageClient.d.ts.map +1 -0
  98. package/dist/messaging/MessageClient.js +110 -0
  99. package/dist/messaging/MessageClient.js.map +1 -0
  100. package/dist/messaging/ViewerMessagingSession.d.ts +17 -0
  101. package/dist/messaging/ViewerMessagingSession.d.ts.map +1 -0
  102. package/dist/messaging/ViewerMessagingSession.js +17 -0
  103. package/dist/messaging/ViewerMessagingSession.js.map +1 -0
  104. package/dist/protocol/capabilities.d.ts +6 -0
  105. package/dist/protocol/capabilities.d.ts.map +1 -0
  106. package/dist/protocol/capabilities.js +5 -0
  107. package/dist/protocol/capabilities.js.map +1 -0
  108. package/dist/protocol/compatibility.d.ts +7 -0
  109. package/dist/protocol/compatibility.d.ts.map +1 -0
  110. package/dist/protocol/compatibility.js +2 -0
  111. package/dist/protocol/compatibility.js.map +1 -0
  112. package/dist/protocol/constants.d.ts +3 -0
  113. package/dist/protocol/constants.d.ts.map +1 -0
  114. package/dist/protocol/constants.js +3 -0
  115. package/dist/protocol/constants.js.map +1 -0
  116. package/dist/protocol/envelope.d.ts +27 -0
  117. package/dist/protocol/envelope.d.ts.map +1 -0
  118. package/dist/protocol/envelope.js +2 -0
  119. package/dist/protocol/envelope.js.map +1 -0
  120. package/dist/protocol/errors.d.ts +42 -0
  121. package/dist/protocol/errors.d.ts.map +1 -0
  122. package/dist/protocol/errors.js +35 -0
  123. package/dist/protocol/errors.js.map +1 -0
  124. package/dist/protocol/handshake.d.ts +13 -0
  125. package/dist/protocol/handshake.d.ts.map +1 -0
  126. package/dist/protocol/handshake.js +2 -0
  127. package/dist/protocol/handshake.js.map +1 -0
  128. package/dist/protocol/index.d.ts +10 -0
  129. package/dist/protocol/index.d.ts.map +1 -0
  130. package/dist/protocol/index.js +5 -0
  131. package/dist/protocol/index.js.map +1 -0
  132. package/dist/types.d.ts +29 -0
  133. package/dist/types.d.ts.map +1 -0
  134. package/dist/types.js +2 -0
  135. package/dist/types.js.map +1 -0
  136. package/dist/utils/DomainEventEmitter.d.ts +12 -0
  137. package/dist/utils/DomainEventEmitter.d.ts.map +1 -0
  138. package/dist/utils/DomainEventEmitter.js +34 -0
  139. package/dist/utils/DomainEventEmitter.js.map +1 -0
  140. package/dist/utils/compatibility.d.ts +15 -0
  141. package/dist/utils/compatibility.d.ts.map +1 -0
  142. package/dist/utils/compatibility.js +170 -0
  143. package/dist/utils/compatibility.js.map +1 -0
  144. package/dist/utils/createRequestId.d.ts +2 -0
  145. package/dist/utils/createRequestId.d.ts.map +1 -0
  146. package/dist/utils/createRequestId.js +6 -0
  147. package/dist/utils/createRequestId.js.map +1 -0
  148. package/dist/utils/createSdkInstanceId.d.ts +2 -0
  149. package/dist/utils/createSdkInstanceId.d.ts.map +1 -0
  150. package/dist/utils/createSdkInstanceId.js +6 -0
  151. package/dist/utils/createSdkInstanceId.js.map +1 -0
  152. package/dist/utils/deriveOrigin.d.ts +2 -0
  153. package/dist/utils/deriveOrigin.d.ts.map +1 -0
  154. package/dist/utils/deriveOrigin.js +4 -0
  155. package/dist/utils/deriveOrigin.js.map +1 -0
  156. package/package.json +46 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollaborationApi.js","sourceRoot":"","sources":["../../src/domains/CollaborationApi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import { type DomainEventHandler, type DomainEventUnsubscribe } from "../utils/DomainEventEmitter.js";
2
+ import type { CanvasMessageBroker } from "../messaging/CanvasMessageBroker.js";
3
+ export interface CompareAlignPayload {
4
+ backgroundUrl?: string;
5
+ overlayUrl?: string;
6
+ backgroundFileName?: string;
7
+ overlayFileName?: string;
8
+ outputName?: string;
9
+ dpi?: number;
10
+ backgroundColor?: string;
11
+ overlayColor?: string;
12
+ equalColor?: string;
13
+ alignArray?: Array<Record<string, unknown>>;
14
+ }
15
+ export interface ComparisonResult {
16
+ relativePath: string;
17
+ activeFile: unknown;
18
+ otherFile: unknown;
19
+ activeFileUrl?: string;
20
+ otherFileUrl?: string;
21
+ activeColor?: unknown;
22
+ otherColor?: unknown;
23
+ activeSetAs?: unknown;
24
+ otherSetAs?: unknown;
25
+ alignarray?: Array<Record<string, unknown>>;
26
+ dpi?: number;
27
+ name?: string;
28
+ index?: number;
29
+ mode?: "compare" | "align";
30
+ backgroundUrl?: string;
31
+ overlayUrl?: string;
32
+ }
33
+ export interface ComparisonErrorPayload {
34
+ mode?: "compare" | "align";
35
+ message: string;
36
+ }
37
+ export interface CompareProgressStartEvent {
38
+ message: string;
39
+ }
40
+ export interface CompareSaveOptions {
41
+ outputName?: string;
42
+ }
43
+ export interface CompareEventMap {
44
+ progressStart: CompareProgressStartEvent;
45
+ progressEnd: undefined;
46
+ comparisonComplete: ComparisonResult | undefined;
47
+ comparisonError: ComparisonErrorPayload;
48
+ compareSaveComplete: string | undefined;
49
+ }
50
+ export type CompareEventName = keyof CompareEventMap;
51
+ export type CompareEventHandler<TEventName extends CompareEventName> = DomainEventHandler<CompareEventMap[TEventName]>;
52
+ export type CompareEventUnsubscribe = DomainEventUnsubscribe;
53
+ export interface CompareApiOptions {
54
+ getBroker: () => CanvasMessageBroker | null;
55
+ getIsReady: () => boolean;
56
+ }
57
+ export declare class CompareApi {
58
+ private readonly options;
59
+ private readonly events;
60
+ private broker;
61
+ private brokerCleanups;
62
+ constructor(options: CompareApiOptions);
63
+ on<TEventName extends CompareEventName>(eventName: TEventName, handler: CompareEventHandler<TEventName>): CompareEventUnsubscribe;
64
+ connect(): void;
65
+ disconnect(): void;
66
+ compare(payload: CompareAlignPayload): void;
67
+ align(payload: CompareAlignPayload): void;
68
+ save(options?: CompareSaveOptions | string): void;
69
+ private send;
70
+ private validateCompareAlignPayload;
71
+ private validateColor;
72
+ }
73
+ //# sourceMappingURL=CompareApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompareApi.d.ts","sourceRoot":"","sources":["../../src/domains/CompareApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC5B,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EACV,mBAAmB,EAEpB,MAAM,qCAAqC,CAAC;AAM7C,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,yBAAyB,CAAC;IACzC,WAAW,EAAE,SAAS,CAAC;IACvB,kBAAkB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACjD,eAAe,EAAE,sBAAsB,CAAC;IACxC,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC;AACrD,MAAM,MAAM,mBAAmB,CAAC,UAAU,SAAS,gBAAgB,IACjE,kBAAkB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;AAClD,MAAM,MAAM,uBAAuB,GAAG,sBAAsB,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,mBAAmB,GAAG,IAAI,CAAC;IAC5C,UAAU,EAAE,MAAM,OAAO,CAAC;CAC3B;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;IACpE,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,cAAc,CAAkC;gBAE5C,OAAO,EAAE,iBAAiB;IAItC,EAAE,CAAC,UAAU,SAAS,gBAAgB,EACpC,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,mBAAmB,CAAC,UAAU,CAAC,GACvC,uBAAuB;IAK1B,OAAO,IAAI,IAAI;IAgCf,UAAU,IAAI,IAAI;IASlB,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAK3C,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAKzC,IAAI,CAAC,OAAO,GAAE,kBAAkB,GAAG,MAAW,GAAG,IAAI;IA8CrD,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,2BAA2B;IAoGnC,OAAO,CAAC,aAAa;CAoBtB"}
@@ -0,0 +1,175 @@
1
+ import { DomainEventEmitter } from "../utils/DomainEventEmitter.js";
2
+ import { createCanvasCommandError, requireReadyBroker } from "./canvasBrokerCommands.js";
3
+ export class CompareApi {
4
+ constructor(options) {
5
+ this.events = new DomainEventEmitter();
6
+ this.broker = null;
7
+ this.brokerCleanups = [];
8
+ this.options = options;
9
+ }
10
+ on(eventName, handler) {
11
+ this.connect();
12
+ return this.events.on(eventName, handler);
13
+ }
14
+ connect() {
15
+ const broker = this.options.getBroker();
16
+ if (!broker || broker === this.broker) {
17
+ return;
18
+ }
19
+ this.disconnect();
20
+ this.broker = broker;
21
+ this.brokerCleanups = [
22
+ broker.on("progressStart", (message) => {
23
+ this.events.emit("progressStart", {
24
+ message: getProgressMessage(message.message)
25
+ });
26
+ }),
27
+ broker.on("progressEnd", () => {
28
+ this.events.emit("progressEnd", undefined);
29
+ }),
30
+ broker.on("comparisonComplete", (message) => {
31
+ this.events.emit("comparisonComplete", message.payload);
32
+ }),
33
+ broker.on("comparisonError", (message) => {
34
+ if (isComparisonErrorPayload(message.payload)) {
35
+ this.events.emit("comparisonError", message.payload);
36
+ }
37
+ }),
38
+ broker.on("compareSaveComplete", (message) => {
39
+ this.events.emit("compareSaveComplete", message.payload);
40
+ })
41
+ ];
42
+ }
43
+ disconnect() {
44
+ for (const cleanup of this.brokerCleanups) {
45
+ cleanup();
46
+ }
47
+ this.brokerCleanups = [];
48
+ this.broker = null;
49
+ }
50
+ compare(payload) {
51
+ this.validateCompareAlignPayload("compare", payload);
52
+ this.send("compare", payload);
53
+ }
54
+ align(payload) {
55
+ this.validateCompareAlignPayload("align", payload);
56
+ this.send("align", payload);
57
+ }
58
+ save(options = {}) {
59
+ const payload = typeof options === "string"
60
+ ? options
61
+ : options?.outputName
62
+ ? { outputName: options.outputName }
63
+ : {};
64
+ if (typeof options === "string" && options.trim().length === 0) {
65
+ throw createCanvasCommandError("compareSave", "Compare save outputName must not be empty when provided.", {
66
+ options
67
+ });
68
+ }
69
+ if (typeof options === "object" &&
70
+ options !== null &&
71
+ options.outputName !== undefined &&
72
+ options.outputName.trim().length === 0) {
73
+ throw createCanvasCommandError("compareSave", "Compare save outputName must not be empty when provided.", {
74
+ options
75
+ });
76
+ }
77
+ if (typeof options === "object" && options === null) {
78
+ throw createCanvasCommandError("compareSave", "Compare save options must be an outputName string or an options object.", {
79
+ options
80
+ });
81
+ }
82
+ this.send("compareSave", payload);
83
+ }
84
+ send(type, payload) {
85
+ requireReadyBroker({
86
+ ...this.options,
87
+ type,
88
+ apiName: "viewer.compare"
89
+ }).send(type, payload);
90
+ }
91
+ validateCompareAlignPayload(type, payload) {
92
+ if (!payload || typeof payload !== "object") {
93
+ throw createCanvasCommandError(type, "Compare and align require a payload object.", {
94
+ payload
95
+ });
96
+ }
97
+ if (!hasText(payload.backgroundUrl) && !hasText(payload.backgroundFileName)) {
98
+ throw createCanvasCommandError(type, "Compare and align require backgroundUrl or backgroundFileName.", {
99
+ payload
100
+ });
101
+ }
102
+ if (!hasText(payload.overlayUrl) && !hasText(payload.overlayFileName)) {
103
+ throw createCanvasCommandError(type, "Compare and align require overlayUrl or overlayFileName.", {
104
+ payload
105
+ });
106
+ }
107
+ const backgroundSource = payload.backgroundUrl ?? payload.backgroundFileName;
108
+ const overlaySource = payload.overlayUrl ?? payload.overlayFileName;
109
+ const backgroundSourceText = hasText(backgroundSource)
110
+ ? backgroundSource.trim()
111
+ : null;
112
+ const overlaySourceText = hasText(overlaySource)
113
+ ? overlaySource.trim()
114
+ : null;
115
+ if (backgroundSourceText !== null &&
116
+ overlaySourceText !== null &&
117
+ backgroundSourceText === overlaySourceText) {
118
+ throw createCanvasCommandError(type, "Compare and align require different background and overlay sources.", {
119
+ payload
120
+ });
121
+ }
122
+ if (payload.dpi !== undefined && (!Number.isFinite(payload.dpi) || payload.dpi <= 0)) {
123
+ throw createCanvasCommandError(type, "Compare and align dpi must be a positive finite number when provided.", {
124
+ payload
125
+ });
126
+ }
127
+ this.validateColor(type, payload.backgroundColor, "backgroundColor", payload);
128
+ this.validateColor(type, payload.overlayColor, "overlayColor", payload);
129
+ this.validateColor(type, payload.equalColor, "equalColor", payload);
130
+ if (payload.outputName !== undefined && payload.outputName.trim().length === 0) {
131
+ throw createCanvasCommandError(type, "Compare and align outputName must not be empty when provided.", {
132
+ payload
133
+ });
134
+ }
135
+ if (payload.alignArray === undefined) {
136
+ return;
137
+ }
138
+ if (!Array.isArray(payload.alignArray) ||
139
+ payload.alignArray.length > 2 ||
140
+ !payload.alignArray.every(isPlainObject)) {
141
+ throw createCanvasCommandError(type, "Align alignArray must contain no more than two point objects when provided.", {
142
+ payload
143
+ });
144
+ }
145
+ }
146
+ validateColor(type, color, fieldName, payload) {
147
+ if (color === undefined) {
148
+ return;
149
+ }
150
+ if (!isHexColor(color) && !isRgbColor(color)) {
151
+ throw createCanvasCommandError(type, `Compare and align ${fieldName} must be a hex or RGB color string when provided.`, {
152
+ payload
153
+ });
154
+ }
155
+ }
156
+ }
157
+ function hasText(value) {
158
+ return typeof value === "string" && value.trim().length > 0;
159
+ }
160
+ function isHexColor(value) {
161
+ return /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(value);
162
+ }
163
+ function isRgbColor(value) {
164
+ return /^rgb\(\s*(?:25[0-5]|2[0-4]\d|1?\d?\d)\s*,\s*(?:25[0-5]|2[0-4]\d|1?\d?\d)\s*,\s*(?:25[0-5]|2[0-4]\d|1?\d?\d)\s*\)$/.test(value);
165
+ }
166
+ function isPlainObject(value) {
167
+ return !!value && typeof value === "object" && !Array.isArray(value);
168
+ }
169
+ function isComparisonErrorPayload(payload) {
170
+ return !!payload && typeof payload === "object" && typeof payload.message === "string";
171
+ }
172
+ function getProgressMessage(message) {
173
+ return message ?? "";
174
+ }
175
+ //# sourceMappingURL=CompareApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompareApi.js","sourceRoot":"","sources":["../../src/domains/CompareApi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ import type { RasterexViewerError } from "../errors.js";
2
+ import { type DomainEventHandler, type DomainEventUnsubscribe } from "../utils/DomainEventEmitter.js";
3
+ import type { CanvasMessageBroker } from "../messaging/CanvasMessageBroker.js";
4
+ export interface DocumentOpenOptions {
5
+ url?: string;
6
+ path?: string;
7
+ displayName?: string;
8
+ name?: string;
9
+ cacheId?: string;
10
+ mime?: string;
11
+ requestId?: string;
12
+ }
13
+ export interface DocumentOpenFileOptions {
14
+ cacheId?: string;
15
+ requestId?: string;
16
+ }
17
+ export interface SetActiveFileByIndexOptions {
18
+ index: number;
19
+ }
20
+ export interface SelectPageOptions {
21
+ pageIndex?: number;
22
+ pageNumber?: number;
23
+ }
24
+ export interface DocumentExportOptions {
25
+ timeoutMs?: number;
26
+ }
27
+ export interface DocumentExportResult {
28
+ fileUrl: string;
29
+ }
30
+ export type PageRange = [number] | [number, number];
31
+ export type PageManipulationAction = "move-top" | "move-bottom" | "move-up" | "move-down" | "rotate-r" | "rotate-l" | "page-copy" | "page-paste" | "page-extract" | "page-extract-delete" | "page-delete" | "page-insert" | "page-replace" | "page-insert-blank";
32
+ export interface PageManipulationOptions {
33
+ action: PageManipulationAction;
34
+ pageRange?: PageRange[];
35
+ targetPageIndex?: number;
36
+ file?: File;
37
+ selectedPages?: PageRange[];
38
+ count?: number;
39
+ width?: number;
40
+ height?: number;
41
+ timeoutMs?: number;
42
+ }
43
+ export interface PageManipulationResult {
44
+ requestId: string;
45
+ success?: boolean;
46
+ error?: string;
47
+ [key: string]: unknown;
48
+ }
49
+ export type CanvasFileTabIcon = "pdf" | "image" | "cad" | "doc" | "generic";
50
+ export interface CanvasFileTab {
51
+ id: string;
52
+ title: string;
53
+ icon?: CanvasFileTabIcon;
54
+ coreId?: string | number;
55
+ index?: number;
56
+ }
57
+ export interface CanvasFileInfo {
58
+ url?: string;
59
+ name?: string;
60
+ date?: unknown;
61
+ width?: unknown;
62
+ height?: unknown;
63
+ }
64
+ export interface CanvasPageListItem {
65
+ index: number;
66
+ pageNumber: number;
67
+ title?: string;
68
+ label: string;
69
+ isSelected: boolean;
70
+ thumbnailDataUrl?: string;
71
+ thumbnailWidth?: number;
72
+ thumbnailHeight?: number;
73
+ }
74
+ export interface CanvasFileTabsPayload {
75
+ requestId?: string;
76
+ tabs: CanvasFileTab[];
77
+ activeId: string;
78
+ }
79
+ export interface CanvasFileInfoPayload {
80
+ requestId?: string;
81
+ fileInfo: CanvasFileInfo | null;
82
+ activeId: string;
83
+ activeIndex?: number;
84
+ }
85
+ export interface CanvasPageListPayload {
86
+ requestId?: string;
87
+ activeId: string;
88
+ activeIndex?: number;
89
+ currentPage: number;
90
+ pageCount: number;
91
+ pages: CanvasPageListItem[];
92
+ }
93
+ export interface DocumentOpenResult {
94
+ requestId: string;
95
+ activeId?: string;
96
+ fileInfo?: CanvasFileInfoPayload;
97
+ fileTabs?: CanvasFileTabsPayload;
98
+ pageList?: CanvasPageListPayload;
99
+ }
100
+ export interface DocumentOpeningEvent {
101
+ requestId: string;
102
+ url?: string;
103
+ path?: string;
104
+ displayName?: string;
105
+ }
106
+ export interface DocumentOpenedEvent extends DocumentOpenResult {
107
+ source: "current-canvas";
108
+ correlation: "inferred";
109
+ }
110
+ export interface DocumentFailedEvent {
111
+ error: RasterexViewerError;
112
+ url?: string;
113
+ path?: string;
114
+ displayName?: string;
115
+ }
116
+ export interface DocumentPageChangedEvent {
117
+ requestId?: string;
118
+ activeId?: string;
119
+ activeIndex?: number;
120
+ currentPage: number;
121
+ pageCount: number;
122
+ pages: CanvasPageListItem[];
123
+ }
124
+ export interface DocumentEventMap {
125
+ opening: DocumentOpeningEvent;
126
+ opened: DocumentOpenedEvent;
127
+ failed: DocumentFailedEvent;
128
+ pageChanged: DocumentPageChangedEvent;
129
+ fileInfo: CanvasFileInfoPayload;
130
+ fileTabs: CanvasFileTabsPayload;
131
+ pageList: CanvasPageListPayload;
132
+ exportComplete: DocumentExportResult;
133
+ }
134
+ export type DocumentEventName = keyof DocumentEventMap;
135
+ export type DocumentEventHandler<TEventName extends DocumentEventName> = DomainEventHandler<DocumentEventMap[TEventName]>;
136
+ export type DocumentEventUnsubscribe = DomainEventUnsubscribe;
137
+ export interface DocumentsApiOptions {
138
+ getBroker: () => CanvasMessageBroker | null;
139
+ getIsReady: () => boolean;
140
+ commandTimeoutMs: number;
141
+ }
142
+ export declare class DocumentsApi {
143
+ private readonly getBroker;
144
+ private readonly getIsReady;
145
+ private readonly commandTimeoutMs;
146
+ private readonly events;
147
+ private activeOpenRequestId;
148
+ private exportInProgress;
149
+ private broker;
150
+ private brokerCleanups;
151
+ constructor(options: DocumentsApiOptions);
152
+ on<TEventName extends DocumentEventName>(eventName: TEventName, handler: DocumentEventHandler<TEventName>): DocumentEventUnsubscribe;
153
+ connect(): void;
154
+ disconnect(): void;
155
+ open(options: DocumentOpenOptions): Promise<DocumentOpenResult>;
156
+ openFile(file: File, options?: DocumentOpenFileOptions): Promise<DocumentOpenResult>;
157
+ setActiveFileByIndex(indexOrOptions: number | SetActiveFileByIndexOptions): void;
158
+ selectPage(options: SelectPageOptions): void;
159
+ export(options?: DocumentExportOptions): Promise<DocumentExportResult>;
160
+ print(): void;
161
+ manipulatePages(options: PageManipulationOptions): Promise<PageManipulationResult>;
162
+ private getOpenSetupError;
163
+ private getOpenFileSetupError;
164
+ private requireReadyBroker;
165
+ private waitForCanvasOpen;
166
+ private clearActiveOpen;
167
+ private isCurrentOpenPayload;
168
+ private isOpenComplete;
169
+ private createViewPayload;
170
+ private createViewFilePayload;
171
+ private emitOpened;
172
+ private emitPageChanged;
173
+ private emitFailed;
174
+ }
175
+ //# sourceMappingURL=DocumentsApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentsApi.d.ts","sourceRoot":"","sources":["../../src/domains/DocumentsApi.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC5B,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,qCAAqC,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEpD,MAAM,MAAM,sBAAsB,GAC9B,UAAU,GACV,aAAa,GACb,SAAS,GACT,WAAW,GACX,UAAU,GACV,UAAU,GACV,WAAW,GACX,YAAY,GACZ,cAAc,GACd,qBAAqB,GACrB,aAAa,GACb,aAAa,GACb,cAAc,GACd,mBAAmB,CAAC;AAExB,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AAE5E,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,WAAW,EAAE,wBAAwB,CAAC;IACtC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,cAAc,EAAE,oBAAoB,CAAC;CACtC;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,gBAAgB,CAAC;AACvD,MAAM,MAAM,oBAAoB,CAAC,UAAU,SAAS,iBAAiB,IACnE,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;AACnD,MAAM,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE9D,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,mBAAmB,GAAG,IAAI,CAAC;IAC5C,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmC;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;IACrE,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,cAAc,CAAkC;gBAE5C,OAAO,EAAE,mBAAmB;IAMxC,EAAE,CAAC,UAAU,SAAS,iBAAiB,EACrC,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,oBAAoB,CAAC,UAAU,CAAC,GACxC,wBAAwB;IAK3B,OAAO,IAAI,IAAI;IAkCf,UAAU,IAAI,IAAI;IASlB,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA+B/D,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA4CxF,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,2BAA2B,GAAG,IAAI;IAUhF,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAkB5C,MAAM,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwC1E,KAAK,IAAI,IAAI;IAKb,eAAe,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAqFlF,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,qBAAqB;IAuB7B,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,iBAAiB;IAqHzB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,UAAU;CAWnB"}