@rhc-office/sdk 6.6.393 → 6.6.394

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.
@@ -0,0 +1,14 @@
1
+ import type { AttachmentTool } from '../api/attachment-tool';
2
+ import { type BridgeToolAdapterContext } from '../viewer/BridgeToolAdapter';
3
+ export declare class AttachmentToolImpl implements AttachmentTool {
4
+ private readonly adapter;
5
+ private readonly addAttachmentCommand;
6
+ constructor(context: BridgeToolAdapterContext);
7
+ getAttachments: AttachmentTool['getAttachments'];
8
+ getAttachmentFile: AttachmentTool['getAttachmentFile'];
9
+ addAttachment: AttachmentTool['addAttachment'];
10
+ deleteAttachment: AttachmentTool['deleteAttachment'];
11
+ clearAttachments: AttachmentTool['clearAttachments'];
12
+ addAttachmentChangedCallback: AttachmentTool['addAttachmentChangedCallback'];
13
+ }
14
+ //# sourceMappingURL=AttachmentToolImpl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentToolImpl.d.ts","sourceRoot":"","sources":["../../src/tools/AttachmentToolImpl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,KAAK,wBAAwB,EAE9B,MAAM,6BAA6B,CAAC;AA4DrC,qBAAa,kBAAmB,YAAW,cAAc;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAGG;gBAE5B,OAAO,EAAE,wBAAwB;IAY7C,cAAc,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAE9C;IAEF,iBAAiB,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAEpD;IAEF,aAAa,EAAE,cAAc,CAAC,eAAe,CAAC,CAiB5C;IAEF,gBAAgB,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAElD;IAEF,gBAAgB,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAElD;IAEF,4BAA4B,EAAE,cAAc,CAAC,8BAA8B,CAAC,CAE1E;CACH"}
@@ -1,4 +1,5 @@
1
1
  export * from './AnnotationToolImpl';
2
+ export * from './AttachmentToolImpl';
2
3
  export * from './CryptoToolImpl';
3
4
  export * from './DigitalSignToolImpl';
4
5
  export * from './DocumentToolImpl';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC"}
@@ -4,7 +4,7 @@ export declare const RHC_OFFICE_ADAPTER_GLOBAL = "__RHC_OFFICE_EDITOR_ADAPTER__"
4
4
  export declare const RHC_OFFICE_ADAPTER_READY_EVENT = "rhcOfficeAdapterReady";
5
5
  export declare const RHC_OFFICE_ADAPTER_EVENT = "rhcOfficeAdapterEvent";
6
6
  export declare const RHC_OFFICE_READER_ID_ATTRIBUTE = "data-rhc-office-reader-id";
7
- export type AdapterToolName = 'document' | 'page' | 'pageArrange' | 'ui' | 'find' | 'annotation' | 'security' | 'digitalSign' | 'signServer' | 'review' | 'ekey' | 'symbology' | 'templateSign' | 'pdfFormFiller' | 'extension' | 'networking' | 'crypto';
7
+ export type AdapterToolName = 'document' | 'page' | 'pageArrange' | 'attachment' | 'ui' | 'find' | 'annotation' | 'security' | 'digitalSign' | 'signServer' | 'review' | 'ekey' | 'symbology' | 'templateSign' | 'pdfFormFiller' | 'extension' | 'networking' | 'crypto';
8
8
  export type AdapterErrorCode = 'ADAPTER_UNAVAILABLE' | 'READER_NOT_READY' | 'READER_NOT_FOUND' | 'COMMAND_NOT_FOUND' | 'NOT_IMPLEMENTED' | 'INVALID_PARAMS' | 'EXECUTION_FAILED' | 'TIMEOUT';
9
9
  export interface AdapterError {
10
10
  code: AdapterErrorCode;
@@ -1 +1 @@
1
- {"version":3,"file":"AdapterProtocol.d.ts","sourceRoot":"","sources":["../../src/viewer/AdapterProtocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AdapterProtocol.d.ts","sourceRoot":"","sources":["../../src/viewer/AdapterProtocol.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export declare class DocumentSDK implements IDocumentSDK {
12
12
  private readonly uiTool;
13
13
  private readonly pageTool;
14
14
  private readonly pageArrangeTool;
15
+ private readonly attachmentTool;
15
16
  private readonly findTool;
16
17
  private readonly signServerTool;
17
18
  private readonly digitalSignTool;
@@ -57,6 +58,7 @@ export declare class DocumentSDK implements IDocumentSDK {
57
58
  readonly getUITool: IDocumentSDK['getUITool'];
58
59
  readonly getPageTool: IDocumentSDK['getPageTool'];
59
60
  readonly getPageArrangeTool: IDocumentSDK['getPageArrangeTool'];
61
+ readonly getAttachmentTool: IDocumentSDK['getAttachmentTool'];
60
62
  readonly getFindTool: IDocumentSDK['getFindTool'];
61
63
  readonly getSignServerTool: IDocumentSDK['getSignServerTool'];
62
64
  readonly getDigitalSignTool: IDocumentSDK['getDigitalSignTool'];
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentSDK.d.ts","sourceRoot":"","sources":["../../src/viewer/DocumentSDK.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAC;AA+CzE,UAAU,yBAAyB;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAgRD,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IACtD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAMhC;IACF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgD;IAC7E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4C;IACrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmD;IACnF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4C;IACrE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkD;IACjF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmD;IACnF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiD;IAC/E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkD;IACjF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoD;IACrF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiD;IAC/E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkD;IACjF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8C;IACzE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgD;IAE7E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8B;IAE9D,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAK;IAEvB,OAAO,CAAC,mBAAmB,CAAC,CAAsB;IAClD,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,uBAAuB,CAA6C;IAC5E,OAAO,CAAC,mBAAmB,CAGX;IAChB,OAAO,CAAC,WAAW,CAAC,CAAgD;IACpE,OAAO,CAAC,aAAa,CAAC,CAAkD;IACxE,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAyB;IACrE,OAAO,CAAC,YAAY,CAAmC;gBAE3C,OAAO,CAAC,EAAE,yBAAyB;IAO/C,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,aAAa,CAAC,CAE/C;IAEF,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAMrD;IAEF,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CAejD;IAEF,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAGrD;IAEF,QAAQ,CAAC,gBAAgB,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAGzD;IAEF,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAGrD;IAEF,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,eAAe,CAAC,CAEnD;IAEF,QAAQ,CAAC,iBAAiB,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAE3D;IAEF,QAAQ,CAAC,sBAAsB,EAAE,YAAY,CAAC,wBAAwB,CAAC,CAErE;IAEF,QAAQ,CAAC,uBAAuB,EAAE,YAAY,CAAC,yBAAyB,CAAC,CAEvE;IAEF,QAAQ,CAAC,sBAAsB,EAAE,YAAY,CAAC,wBAAwB,CAAC,CAErE;IAEF,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,aAAa,CAAC,CAgB/C;IAEF,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CA4BjD;IAEF,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAEvD;IAEF,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,CAE3C;IAEF,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,aAAa,CAAC,CAE/C;IAEF,QAAQ,CAAC,kBAAkB,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAE7D;IAEF,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,aAAa,CAAC,CAE/C;IAEF,QAAQ,CAAC,iBAAiB,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAE3D;IAEF,QAAQ,CAAC,kBAAkB,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAE7D;IAEF,QAAQ,CAAC,gBAAgB,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAEzD;IAEF,QAAQ,CAAC,iBAAiB,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAE3D;IAEF,QAAQ,CAAC,mBAAmB,EAAE,YAAY,CAAC,qBAAqB,CAAC,CAE/D;IAEF,QAAQ,CAAC,gBAAgB,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAEzD;IAEF,QAAQ,CAAC,iBAAiB,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAE3D;IAEF,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,eAAe,CAAC,CAEnD;IAEF,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAEvD;IAEF,QAAQ,CAAC,wBAAwB,EAAE,YAAY,CAAC,0BAA0B,CAAC,CAEzE;IAEF,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,eAAe,CAAC,CAEnD;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAyD1B;IAEF,OAAO,CAAC,wBAAwB;IAiChC,OAAO,CAAC,uBAAuB;IA2C/B,OAAO,CAAC,0BAA0B;IAclC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAsCrC;IAEF,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAE3C;IAEF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAGlC;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAE9B;IAEF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAOhC;IAEF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAMjC;CACH;AAED,eAAO,MAAM,oBAAoB,GAAI,UAAU,yBAAyB,KAAG,YAE1E,CAAC"}
1
+ {"version":3,"file":"DocumentSDK.d.ts","sourceRoot":"","sources":["../../src/viewer/DocumentSDK.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import type { AnnotationEventCallback, DigitalSignatureRetrieveCallback, DocumentClosedCallback, DocumentOpenedCallback, DocumentSavedCallback, PageChangeCallback, PageModeChangeCallback } from '../api/callbacks';
2
2
  import type { IDigitalAnnotationInfo } from '../api/annotation-tool';
3
+ import type { AttachmentChangedCallback } from '../api/attachment-tool';
3
4
  import type { SignServerAuthCallback } from '../api/sign-server';
4
5
  export declare class SdkCallbackRegistry {
5
6
  readonly annotationEvents: AnnotationEventCallback[];
6
7
  readonly annotationPersist: Array<(event: unknown) => void>;
7
8
  readonly annotationRetrieve: Array<(event: unknown) => void>;
9
+ readonly attachmentChanged: AttachmentChangedCallback[];
8
10
  readonly digitalAnnotationRetrieve: Array<(annotations: IDigitalAnnotationInfo[]) => void>;
9
11
  readonly digitalSign: Array<(response: unknown) => void>;
10
12
  readonly digitalSignatureParse: DigitalSignatureRetrieveCallback[];
@@ -1 +1 @@
1
- {"version":3,"file":"SdkCallbackRegistry.d.ts","sourceRoot":"","sources":["../../src/viewer/SdkCallbackRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAEvB,gCAAgC,EAChC,sBAAsB,EAEtB,sBAAsB,EAItB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAA4B,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AA0D3F,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,uBAAuB,EAAE,CAAM;IAC1D,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,CAAM;IACjE,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,CAAM;IAClE,QAAQ,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,sBAAsB,EAAE,KAAK,IAAI,CAAC,CAAM;IAChG,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC,CAAM;IAC9D,QAAQ,CAAC,qBAAqB,EAAE,gCAAgC,EAAE,CAAM;IACxE,QAAQ,CAAC,wBAAwB,EAAE,gCAAgC,EAAE,CAAM;IAC3E,QAAQ,CAAC,cAAc,EAAE,sBAAsB,EAAE,CAAM;IACvD,QAAQ,CAAC,cAAc,EAAE,sBAAsB,EAAE,CAAM;IACvD,QAAQ,CAAC,aAAa,EAAE,qBAAqB,EAAE,CAAM;IACrD,QAAQ,CAAC,UAAU,EAAE,kBAAkB,EAAE,CAAM;IAC/C,QAAQ,CAAC,cAAc,EAAE,sBAAsB,EAAE,CAAM;IACvD,QAAQ,CAAC,cAAc,EAAE,sBAAsB,EAAE,CAAM;IAEvD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAqE5C"}
1
+ {"version":3,"file":"SdkCallbackRegistry.d.ts","sourceRoot":"","sources":["../../src/viewer/SdkCallbackRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAEvB,gCAAgC,EAChC,sBAAsB,EAEtB,sBAAsB,EAItB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,yBAAyB,EAA4B,MAAM,wBAAwB,CAAC;AAClG,OAAO,KAAK,EAA4B,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AA0D3F,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,uBAAuB,EAAE,CAAM;IAC1D,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,CAAM;IACjE,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,CAAM;IAClE,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB,EAAE,CAAM;IAC7D,QAAQ,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,sBAAsB,EAAE,KAAK,IAAI,CAAC,CAAM;IAChG,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC,CAAM;IAC9D,QAAQ,CAAC,qBAAqB,EAAE,gCAAgC,EAAE,CAAM;IACxE,QAAQ,CAAC,wBAAwB,EAAE,gCAAgC,EAAE,CAAM;IAC3E,QAAQ,CAAC,cAAc,EAAE,sBAAsB,EAAE,CAAM;IACvD,QAAQ,CAAC,cAAc,EAAE,sBAAsB,EAAE,CAAM;IACvD,QAAQ,CAAC,aAAa,EAAE,qBAAqB,EAAE,CAAM;IACrD,QAAQ,CAAC,UAAU,EAAE,kBAAkB,EAAE,CAAM;IAC/C,QAAQ,CAAC,cAAc,EAAE,sBAAsB,EAAE,CAAM;IACvD,QAAQ,CAAC,cAAc,EAAE,sBAAsB,EAAE,CAAM;IAEvD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAwE5C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rhc-office/sdk",
3
- "version": "6.6.393",
3
+ "version": "6.6.394",
4
4
  "description": "SDK for third-party integration with RHC Office Platform",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -262,15 +262,26 @@ export interface AnnotationChangePayload {
262
262
  annotation?: AnnotationRecord;
263
263
  }
264
264
 
265
+ export interface AnnotationHistoryChangedPayload {
266
+ canRedo: boolean;
267
+ canUndo: boolean;
268
+ redoSteps: number;
269
+ undoSteps: number;
270
+ }
271
+
265
272
  export type AnnotationEventName =
266
273
  | 'annotationAdded'
267
274
  | 'annotationRemoved'
268
275
  | 'annotationUpdated'
276
+ | 'annotationHistoryChanged'
269
277
  | 'annotationModeChange'
270
278
  | 'annotationInputDeviceChange'
271
279
  | 'annotationEvent';
272
280
 
273
- export type AnnotationEventPayload = AnnotationChangePayload | Record<string, unknown>;
281
+ export type AnnotationEventPayload =
282
+ | AnnotationChangePayload
283
+ | AnnotationHistoryChangedPayload
284
+ | Record<string, unknown>;
274
285
 
275
286
  export type AnnotationEventCallback = (
276
287
  event: AnnotationEventName | string,
@@ -0,0 +1,43 @@
1
+ import type {
2
+ DocumentAttachmentAddOptions,
3
+ DocumentAttachmentFile,
4
+ DocumentAttachmentInfo,
5
+ DocumentAttachmentMutationAction,
6
+ DocumentAttachmentMutationOptions,
7
+ DocumentAttachmentMutationResult,
8
+ DocumentAttachmentMutationWarning,
9
+ DocumentAttachmentSource,
10
+ } from '@rhc-office/schema';
11
+
12
+ export type AttachmentSource = DocumentAttachmentSource;
13
+ export type AttachmentInfo = DocumentAttachmentInfo;
14
+ export type AttachmentFile = DocumentAttachmentFile;
15
+ export type AttachmentMutationWarning = DocumentAttachmentMutationWarning;
16
+ export type AttachmentMutationAction = DocumentAttachmentMutationAction;
17
+ export type AttachmentMutationOptions = DocumentAttachmentMutationOptions;
18
+ export type AttachmentAddOptions = DocumentAttachmentAddOptions;
19
+ export type AttachmentMutationResult = DocumentAttachmentMutationResult;
20
+
21
+ export type AttachmentChangedCallback = (event: AttachmentMutationResult) => void;
22
+
23
+ export type AttachmentBinaryInput = Uint8Array | ArrayBuffer | Blob | File;
24
+
25
+ export interface AttachmentTool {
26
+ getAttachments(): Promise<AttachmentInfo[]>;
27
+
28
+ getAttachmentFile(id: string): Promise<AttachmentFile | null>;
29
+
30
+ addAttachment(
31
+ data: AttachmentBinaryInput,
32
+ options: AttachmentAddOptions,
33
+ ): Promise<AttachmentMutationResult>;
34
+
35
+ deleteAttachment(
36
+ id: string,
37
+ options?: AttachmentMutationOptions,
38
+ ): Promise<AttachmentMutationResult>;
39
+
40
+ clearAttachments(options?: AttachmentMutationOptions): Promise<AttachmentMutationResult>;
41
+
42
+ addAttachmentChangedCallback(callback: AttachmentChangedCallback): void;
43
+ }
@@ -2,6 +2,7 @@ import { IDigitalSignOptions, IKVField } from './common';
2
2
  import { ReaderReadyCallback, ReaderUnloadCallback } from './callbacks';
3
3
  import { DocumentTool } from './document-tool';
4
4
  import { AnnotationTool } from './annotation-tool';
5
+ import { AttachmentTool } from './attachment-tool';
5
6
  import { UITool } from './ui-tool';
6
7
  import { PageArrangeTool } from './page-arrange-tool';
7
8
  import { PageTool } from './page-tool';
@@ -118,6 +119,8 @@ export interface IDocumentSDK {
118
119
 
119
120
  getPageArrangeTool(): PageArrangeTool;
120
121
 
122
+ getAttachmentTool(): AttachmentTool;
123
+
121
124
  getFindTool(): FindTool;
122
125
 
123
126
  getSignServerTool(): SignServerTool;
package/src/index.ts CHANGED
@@ -3,6 +3,7 @@ export * from './api/callbacks';
3
3
  export * from './api/watermark';
4
4
  export * from './api/menu-visibility';
5
5
  export * from './api/document-tool';
6
+ export * from './api/attachment-tool';
6
7
  export * from './api/annotation-tool';
7
8
  export * from './api/ui-tool';
8
9
  export * from './api/page-tool';
@@ -0,0 +1,129 @@
1
+ import type {
2
+ AttachmentAddOptions,
3
+ AttachmentBinaryInput,
4
+ AttachmentChangedCallback,
5
+ AttachmentMutationResult,
6
+ AttachmentTool,
7
+ } from '../api/attachment-tool';
8
+ import {
9
+ createBridgeToolAdapter,
10
+ type BridgeToolAdapterContext,
11
+ type BridgeToolDescriptor,
12
+ } from '../viewer/BridgeToolAdapter';
13
+
14
+ const ATTACHMENT_TOOL_DESCRIPTOR: BridgeToolDescriptor = {
15
+ addAttachmentChangedCallback: {
16
+ kind: 'callbackRegister',
17
+ callback: (callbacks, args) => {
18
+ const callback = args[0];
19
+ if (typeof callback === 'function') {
20
+ callbacks.attachmentChanged.push(callback as AttachmentChangedCallback);
21
+ }
22
+ },
23
+ },
24
+ addAttachment: { kind: 'command', returnsResult: true },
25
+ clearAttachments: { kind: 'command', returnsResult: true },
26
+ deleteAttachment: { kind: 'command', returnsResult: true },
27
+ getAttachmentFile: { kind: 'query' },
28
+ getAttachments: { kind: 'query' },
29
+ };
30
+
31
+ const toUint8Array = async (data: AttachmentBinaryInput): Promise<Uint8Array> => {
32
+ if (data instanceof Uint8Array) {
33
+ return data.slice();
34
+ }
35
+
36
+ if (data instanceof ArrayBuffer) {
37
+ return new Uint8Array(data.slice(0));
38
+ }
39
+
40
+ if (ArrayBuffer.isView(data)) {
41
+ const view = data as ArrayBufferView;
42
+ return new Uint8Array(view.buffer.slice(view.byteOffset, view.byteOffset + view.byteLength));
43
+ }
44
+
45
+ return new Uint8Array(await data.arrayBuffer());
46
+ };
47
+
48
+ const normalizeAddOptions = (
49
+ data: AttachmentBinaryInput,
50
+ options: AttachmentAddOptions,
51
+ ): AttachmentAddOptions => {
52
+ const normalized: AttachmentAddOptions = { ...options };
53
+ const isFile = typeof File !== 'undefined' && data instanceof File;
54
+ const isBlob = typeof Blob !== 'undefined' && data instanceof Blob;
55
+ if (isFile) {
56
+ normalized.fileName = normalized.fileName || data.name;
57
+ normalized.mimeType = normalized.mimeType || data.type;
58
+ } else if (isBlob) {
59
+ normalized.fileName = normalized.fileName || 'attachment.bin';
60
+ normalized.mimeType = normalized.mimeType || data.type;
61
+ }
62
+
63
+ normalized.fileName = typeof normalized.fileName === 'string' ? normalized.fileName.trim() : '';
64
+ if (!normalized.fileName) {
65
+ throw new Error('Attachment fileName is required for binary attachment input.');
66
+ }
67
+ normalized.mimeType = typeof normalized.mimeType === 'string' ? normalized.mimeType.trim() : '';
68
+ normalized.mimeType = normalized.mimeType || undefined;
69
+ return normalized;
70
+ };
71
+
72
+ export class AttachmentToolImpl implements AttachmentTool {
73
+ private readonly adapter: AttachmentTool;
74
+ private readonly addAttachmentCommand: (payload: {
75
+ content: Uint8Array;
76
+ options: AttachmentAddOptions;
77
+ }) => Promise<AttachmentMutationResult>;
78
+
79
+ constructor(context: BridgeToolAdapterContext) {
80
+ this.adapter = createBridgeToolAdapter<AttachmentTool>(
81
+ 'attachment',
82
+ ATTACHMENT_TOOL_DESCRIPTOR,
83
+ context,
84
+ );
85
+ this.addAttachmentCommand = this.adapter.addAttachment as unknown as (payload: {
86
+ content: Uint8Array;
87
+ options: AttachmentAddOptions;
88
+ }) => Promise<AttachmentMutationResult>;
89
+ }
90
+
91
+ getAttachments: AttachmentTool['getAttachments'] = () => {
92
+ return this.adapter.getAttachments();
93
+ };
94
+
95
+ getAttachmentFile: AttachmentTool['getAttachmentFile'] = (id) => {
96
+ return this.adapter.getAttachmentFile(id);
97
+ };
98
+
99
+ addAttachment: AttachmentTool['addAttachment'] = async (data, options) => {
100
+ const content = await toUint8Array(data);
101
+ const normalizedOptions = normalizeAddOptions(data, options);
102
+ if (content.byteLength === 0) {
103
+ throw new Error('Attachment content cannot be empty.');
104
+ }
105
+ if (
106
+ typeof normalizedOptions.maxSizeBytes === 'number' &&
107
+ content.byteLength > normalizedOptions.maxSizeBytes
108
+ ) {
109
+ throw new Error('Attachment content exceeds maxSizeBytes.');
110
+ }
111
+
112
+ return this.addAttachmentCommand({
113
+ content,
114
+ options: normalizedOptions,
115
+ });
116
+ };
117
+
118
+ deleteAttachment: AttachmentTool['deleteAttachment'] = (id, options) => {
119
+ return this.adapter.deleteAttachment(id, options);
120
+ };
121
+
122
+ clearAttachments: AttachmentTool['clearAttachments'] = (options) => {
123
+ return this.adapter.clearAttachments(options);
124
+ };
125
+
126
+ addAttachmentChangedCallback: AttachmentTool['addAttachmentChangedCallback'] = (callback) => {
127
+ return this.adapter.addAttachmentChangedCallback(callback);
128
+ };
129
+ }
@@ -1,4 +1,5 @@
1
1
  export * from './AnnotationToolImpl';
2
+ export * from './AttachmentToolImpl';
2
3
  export * from './CryptoToolImpl';
3
4
  export * from './DigitalSignToolImpl';
4
5
  export * from './DocumentToolImpl';
@@ -9,6 +9,7 @@ export type AdapterToolName =
9
9
  | 'document'
10
10
  | 'page'
11
11
  | 'pageArrange'
12
+ | 'attachment'
12
13
  | 'ui'
13
14
  | 'find'
14
15
  | 'annotation'
@@ -1,4 +1,5 @@
1
1
  import type { AnnotationTool } from '../api/annotation-tool';
2
+ import type { AttachmentTool } from '../api/attachment-tool';
2
3
  import type { CryptoTool } from '../api/crypto-tool';
3
4
  import type { ReaderReadyCallback, ReaderUnloadCallback } from '../api/callbacks';
4
5
  import type { IDocumentSDK, ReaderThemeMode } from '../api/document-sdk';
@@ -15,6 +16,7 @@ import type { SymbologyTool } from '../api/symbology-tool';
15
16
  import type { TemplateSignTool } from '../api/template-sign';
16
17
  import type { UITool } from '../api/ui-tool';
17
18
  import { AnnotationToolImpl } from '../tools/AnnotationToolImpl';
19
+ import { AttachmentToolImpl } from '../tools/AttachmentToolImpl';
18
20
  import { CryptoToolImpl } from '../tools/CryptoToolImpl';
19
21
  import { DigitalSignToolImpl } from '../tools/DigitalSignToolImpl';
20
22
  import { DocumentToolImpl } from '../tools/DocumentToolImpl';
@@ -338,6 +340,7 @@ export class DocumentSDK implements IDocumentSDK {
338
340
  private readonly uiTool = new UIToolImpl(this.bridgeToolContext);
339
341
  private readonly pageTool = new PageToolImpl(this.bridgeToolContext);
340
342
  private readonly pageArrangeTool = new PageArrangeToolImpl(this.bridgeToolContext);
343
+ private readonly attachmentTool = new AttachmentToolImpl(this.bridgeToolContext);
341
344
  private readonly findTool = new FindToolImpl(this.bridgeToolContext);
342
345
  private readonly signServerTool = new SignServerToolImpl(this.bridgeToolContext);
343
346
  private readonly digitalSignTool = new DigitalSignToolImpl(this.bridgeToolContext);
@@ -507,6 +510,10 @@ export class DocumentSDK implements IDocumentSDK {
507
510
  return this.pageArrangeTool;
508
511
  };
509
512
 
513
+ readonly getAttachmentTool: IDocumentSDK['getAttachmentTool'] = (): AttachmentTool => {
514
+ return this.attachmentTool;
515
+ };
516
+
510
517
  readonly getFindTool: IDocumentSDK['getFindTool'] = (): FindTool => {
511
518
  return this.findTool;
512
519
  };
@@ -13,6 +13,7 @@ import type {
13
13
  PageModeChangeCallback,
14
14
  } from '../api/callbacks';
15
15
  import type { IDigitalAnnotationInfo } from '../api/annotation-tool';
16
+ import type { AttachmentChangedCallback, AttachmentMutationResult } from '../api/attachment-tool';
16
17
  import type { ISignServerAuthorization, SignServerAuthCallback } from '../api/sign-server';
17
18
 
18
19
  const normalizeAnnotationEventPayload = (payload: unknown): AnnotationEventPayload | undefined => {
@@ -75,6 +76,7 @@ export class SdkCallbackRegistry {
75
76
  readonly annotationEvents: AnnotationEventCallback[] = [];
76
77
  readonly annotationPersist: Array<(event: unknown) => void> = [];
77
78
  readonly annotationRetrieve: Array<(event: unknown) => void> = [];
79
+ readonly attachmentChanged: AttachmentChangedCallback[] = [];
78
80
  readonly digitalAnnotationRetrieve: Array<(annotations: IDigitalAnnotationInfo[]) => void> = [];
79
81
  readonly digitalSign: Array<(response: unknown) => void> = [];
80
82
  readonly digitalSignatureParse: DigitalSignatureRetrieveCallback[] = [];
@@ -130,6 +132,9 @@ export class SdkCallbackRegistry {
130
132
  case 'annotationRetrieve':
131
133
  this.annotationRetrieve.forEach((callback) => callback(payload));
132
134
  return;
135
+ case 'attachmentChanged':
136
+ this.attachmentChanged.forEach((callback) => callback(payload as AttachmentMutationResult));
137
+ return;
133
138
  case 'digitalAnnotationRetrieve':
134
139
  this.digitalAnnotationRetrieve.forEach((callback) =>
135
140
  callback(Array.isArray(payload) ? (payload as IDigitalAnnotationInfo[]) : []),