@rhc-office/sdk 6.6.256

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 (126) hide show
  1. package/README.md +176 -0
  2. package/dist/api/annotation-tool.d.ts +127 -0
  3. package/dist/api/annotation-tool.d.ts.map +1 -0
  4. package/dist/api/callbacks.d.ts +25 -0
  5. package/dist/api/callbacks.d.ts.map +1 -0
  6. package/dist/api/common.d.ts +83 -0
  7. package/dist/api/common.d.ts.map +1 -0
  8. package/dist/api/crypto-tool.d.ts +9 -0
  9. package/dist/api/crypto-tool.d.ts.map +1 -0
  10. package/dist/api/digital-sign-environment.d.ts +100 -0
  11. package/dist/api/digital-sign-environment.d.ts.map +1 -0
  12. package/dist/api/document-sdk.d.ts +111 -0
  13. package/dist/api/document-sdk.d.ts.map +1 -0
  14. package/dist/api/document-tool.d.ts +68 -0
  15. package/dist/api/document-tool.d.ts.map +1 -0
  16. package/dist/api/ekey-tool.d.ts +8 -0
  17. package/dist/api/ekey-tool.d.ts.map +1 -0
  18. package/dist/api/extension-tool.d.ts +5 -0
  19. package/dist/api/extension-tool.d.ts.map +1 -0
  20. package/dist/api/find-tool.d.ts +6 -0
  21. package/dist/api/find-tool.d.ts.map +1 -0
  22. package/dist/api/menu-visibility.d.ts +16 -0
  23. package/dist/api/menu-visibility.d.ts.map +1 -0
  24. package/dist/api/networking-tool.d.ts +7 -0
  25. package/dist/api/networking-tool.d.ts.map +1 -0
  26. package/dist/api/page-tool.d.ts +28 -0
  27. package/dist/api/page-tool.d.ts.map +1 -0
  28. package/dist/api/pdf-formfiller.d.ts +12 -0
  29. package/dist/api/pdf-formfiller.d.ts.map +1 -0
  30. package/dist/api/review-tool.d.ts +71 -0
  31. package/dist/api/review-tool.d.ts.map +1 -0
  32. package/dist/api/sign-server.d.ts +32 -0
  33. package/dist/api/sign-server.d.ts.map +1 -0
  34. package/dist/api/sign-tool.d.ts +31 -0
  35. package/dist/api/sign-tool.d.ts.map +1 -0
  36. package/dist/api/symbology-tool.d.ts +4 -0
  37. package/dist/api/symbology-tool.d.ts.map +1 -0
  38. package/dist/api/template-sign.d.ts +88 -0
  39. package/dist/api/template-sign.d.ts.map +1 -0
  40. package/dist/api/ui-tool.d.ts +35 -0
  41. package/dist/api/ui-tool.d.ts.map +1 -0
  42. package/dist/api/watermark.d.ts +25 -0
  43. package/dist/api/watermark.d.ts.map +1 -0
  44. package/dist/index.d.ts +23 -0
  45. package/dist/index.d.ts.map +1 -0
  46. package/dist/index.js +1061 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/index.umd.cjs +2 -0
  49. package/dist/index.umd.cjs.map +1 -0
  50. package/dist/tools/DocumentToolImpl.d.ts +27 -0
  51. package/dist/tools/DocumentToolImpl.d.ts.map +1 -0
  52. package/dist/tools/FindToolImpl.d.ts +10 -0
  53. package/dist/tools/FindToolImpl.d.ts.map +1 -0
  54. package/dist/tools/NetworkingToolImpl.d.ts +10 -0
  55. package/dist/tools/NetworkingToolImpl.d.ts.map +1 -0
  56. package/dist/tools/PageToolImpl.d.ts +31 -0
  57. package/dist/tools/PageToolImpl.d.ts.map +1 -0
  58. package/dist/tools/PdfFormFillerImpl.d.ts +13 -0
  59. package/dist/tools/PdfFormFillerImpl.d.ts.map +1 -0
  60. package/dist/tools/Phase1ToolPlaceholder.d.ts +5 -0
  61. package/dist/tools/Phase1ToolPlaceholder.d.ts.map +1 -0
  62. package/dist/tools/SDKValueObjects.d.ts +55 -0
  63. package/dist/tools/SDKValueObjects.d.ts.map +1 -0
  64. package/dist/tools/UIToolImpl.d.ts +31 -0
  65. package/dist/tools/UIToolImpl.d.ts.map +1 -0
  66. package/dist/tools/index.d.ts +9 -0
  67. package/dist/tools/index.d.ts.map +1 -0
  68. package/dist/viewer/AdapterProtocol.d.ts +78 -0
  69. package/dist/viewer/AdapterProtocol.d.ts.map +1 -0
  70. package/dist/viewer/BridgeToolAdapter.d.ts +23 -0
  71. package/dist/viewer/BridgeToolAdapter.d.ts.map +1 -0
  72. package/dist/viewer/DocumentSDK.d.ts +85 -0
  73. package/dist/viewer/DocumentSDK.d.ts.map +1 -0
  74. package/dist/viewer/ReaderBridgeClient.d.ts +31 -0
  75. package/dist/viewer/ReaderBridgeClient.d.ts.map +1 -0
  76. package/dist/viewer/ReaderConfiguration.d.ts +11 -0
  77. package/dist/viewer/ReaderConfiguration.d.ts.map +1 -0
  78. package/dist/viewer/ReaderScriptLoader.d.ts +10 -0
  79. package/dist/viewer/ReaderScriptLoader.d.ts.map +1 -0
  80. package/dist/viewer/ReaderStateStore.d.ts +21 -0
  81. package/dist/viewer/ReaderStateStore.d.ts.map +1 -0
  82. package/dist/viewer/SdkCallbackRegistry.d.ts +18 -0
  83. package/dist/viewer/SdkCallbackRegistry.d.ts.map +1 -0
  84. package/dist/viewer/index.d.ts +2 -0
  85. package/dist/viewer/index.d.ts.map +1 -0
  86. package/package.json +48 -0
  87. package/src/api/annotation-tool.ts +199 -0
  88. package/src/api/callbacks.ts +59 -0
  89. package/src/api/common.ts +117 -0
  90. package/src/api/crypto-tool.ts +10 -0
  91. package/src/api/digital-sign-environment.ts +411 -0
  92. package/src/api/document-sdk.ts +152 -0
  93. package/src/api/document-tool.ts +106 -0
  94. package/src/api/ekey-tool.ts +11 -0
  95. package/src/api/extension-tool.ts +5 -0
  96. package/src/api/find-tool.ts +7 -0
  97. package/src/api/menu-visibility.ts +17 -0
  98. package/src/api/networking-tool.ts +9 -0
  99. package/src/api/page-tool.ts +56 -0
  100. package/src/api/pdf-formfiller.ts +13 -0
  101. package/src/api/review-tool.ts +105 -0
  102. package/src/api/sign-server.ts +53 -0
  103. package/src/api/sign-tool.ts +50 -0
  104. package/src/api/symbology-tool.ts +11 -0
  105. package/src/api/template-sign.ts +102 -0
  106. package/src/api/ui-tool.ts +66 -0
  107. package/src/api/watermark.ts +35 -0
  108. package/src/index.ts +22 -0
  109. package/src/tools/DocumentToolImpl.ts +158 -0
  110. package/src/tools/FindToolImpl.ts +32 -0
  111. package/src/tools/NetworkingToolImpl.ts +36 -0
  112. package/src/tools/PageToolImpl.ts +181 -0
  113. package/src/tools/PdfFormFillerImpl.ts +67 -0
  114. package/src/tools/Phase1ToolPlaceholder.ts +35 -0
  115. package/src/tools/SDKValueObjects.ts +172 -0
  116. package/src/tools/UIToolImpl.ts +145 -0
  117. package/src/tools/index.ts +8 -0
  118. package/src/viewer/AdapterProtocol.ts +114 -0
  119. package/src/viewer/BridgeToolAdapter.ts +137 -0
  120. package/src/viewer/DocumentSDK.ts +688 -0
  121. package/src/viewer/ReaderBridgeClient.ts +216 -0
  122. package/src/viewer/ReaderConfiguration.ts +59 -0
  123. package/src/viewer/ReaderScriptLoader.ts +130 -0
  124. package/src/viewer/ReaderStateStore.ts +55 -0
  125. package/src/viewer/SdkCallbackRegistry.ts +89 -0
  126. package/src/viewer/index.ts +1 -0
@@ -0,0 +1,117 @@
1
+ /**
2
+ * 键值字段
3
+ */
4
+ export interface IKVField {
5
+ key?: string;
6
+ value?: string;
7
+ description?: string;
8
+
9
+ setFieldName(name: string): void;
10
+
11
+ setFieldValue(value: string): void;
12
+
13
+ setDescription(description?: string): void;
14
+ }
15
+
16
+ /**
17
+ * 文件上传选项
18
+ */
19
+ export interface FileUploadOptions {
20
+ formFiledName: string;
21
+ fileName: string;
22
+ }
23
+
24
+ /**
25
+ * 签章类型
26
+ * 0 - 普通章
27
+ * 1 - 校核章
28
+ * 2 - 单侧骑缝章
29
+ * 3 - 双侧骑缝章
30
+ */
31
+ export type DigitalSignType = 0 | 1 | 2 | 3;
32
+
33
+ /**
34
+ * 印章位置
35
+ */
36
+ export type DigitalSealPosition = number;
37
+
38
+ /**
39
+ * 数字签章选项
40
+ */
41
+ export interface IDigitalSignOptions {
42
+ pageRange?: string;
43
+ page?: number;
44
+ pageX?: number;
45
+ pageY?: number;
46
+
47
+ signReason?: string;
48
+ signLocation?: string;
49
+ signUserData?: string;
50
+
51
+ fields: IKVField[];
52
+
53
+ defaultStampPassword?: string;
54
+ defaultKeystorePassword?: string;
55
+
56
+ keywordText?: string | undefined;
57
+ keywordTextFixedPositions:
58
+ | {
59
+ pageIndex?: number;
60
+ firstOccurrence?: boolean;
61
+ position?: number;
62
+ }[]
63
+ | undefined;
64
+ keywordOffsetX: number;
65
+ keywordOffsetY: number;
66
+
67
+ bookmarkName?: string | undefined;
68
+ bookmarkOffsetX: number;
69
+ bookmarkOffsetY: number;
70
+
71
+ printMargin?: number;
72
+
73
+ grayscaleSealImage: boolean;
74
+
75
+ getSignType(): DigitalSignType;
76
+
77
+ setSignType(signType: DigitalSignType): void;
78
+
79
+ isCrossPageSideSign(): boolean;
80
+
81
+ getSealPosition(): DigitalSealPosition;
82
+
83
+ setSignOnPageSides(signType: number): void;
84
+
85
+ setSignPositionOnPageSides(position: number): void;
86
+
87
+ setPageRange(text: string): void;
88
+
89
+ getPageRange(): string | undefined;
90
+
91
+ getPageRanges(): number[];
92
+
93
+ setSignUserData(signUserData: string): void;
94
+
95
+ setPrintMargin(margin: number): void;
96
+
97
+ getPrintMargin(): number;
98
+
99
+ setSignReason(reason: string): void;
100
+
101
+ getSignReason(): string | undefined;
102
+
103
+ setSignLocation(location: string): void;
104
+
105
+ getSignLocation(): string | undefined;
106
+
107
+ setDefaultStampPassword(password: string): void;
108
+ }
109
+
110
+ /**
111
+ * 签名字段(扩展自键值字段)
112
+ */
113
+ export interface ISignatureField extends IKVField {
114
+ setHidden(hidden: boolean): void;
115
+
116
+ isHidden(): boolean;
117
+ }
@@ -0,0 +1,10 @@
1
+ export type SecurityProviderInfo = {
2
+ providerName: string;
3
+ applyFor: 'DocSign' | 'DocSignVerification';
4
+ };
5
+
6
+ export interface CryptoTool {
7
+ configSecurityProvider(providers: SecurityProviderInfo[]): void;
8
+
9
+ getSecurityProviders(): Promise<SecurityProviderInfo[]>;
10
+ }
@@ -0,0 +1,411 @@
1
+ export type SignServerAuthSource = 'Password' | 'USBKey' | 'KolKey' | 'Token';
2
+ export type DigitalSignRsaMode = 'auto' | 'rsa' | 'sm2';
3
+ export type SigningDeviceType = 'client' | 'bjca' | 'plugin' | 'kol' | 'hsm' | string;
4
+ export type EdgePosition =
5
+ | 'LEFT_TOP'
6
+ | 'LEFT_CENTER'
7
+ | 'LEFT_BOTTOM'
8
+ | 'RIGHT_TOP'
9
+ | 'RIGHT_CENTER'
10
+ | 'RIGHT_BOTTOM'
11
+ | string;
12
+ export type SignatureType = 'REGULAR_ESM' | 'OFCRYPTO_ESM' | string;
13
+
14
+ const DEFAULT_EDGE_POSITION = 'RIGHT_CENTER' as EdgePosition;
15
+ const DEFAULT_SIGNATURE_TYPE = 'REGULAR_ESM' as SignatureType;
16
+ const DEFAULT_RSA_MODE: DigitalSignRsaMode = 'auto';
17
+
18
+ export interface DigitalSignSignServerConfig {
19
+ authSource: SignServerAuthSource;
20
+ defaultLogin: string;
21
+ defaultPassword: string;
22
+ defaultServer: string;
23
+ kol: {
24
+ appId: string;
25
+ appName: string;
26
+ serviceUrl: string;
27
+ token: string;
28
+ };
29
+ macAddress: string;
30
+ token: string;
31
+ usbKey: {
32
+ checkCertificateBinding: boolean;
33
+ usbKeyType: number;
34
+ };
35
+ }
36
+
37
+ export interface DigitalSignDefaultsConfig {
38
+ bjca: {
39
+ pin: string;
40
+ };
41
+ deviceType: SigningDeviceType;
42
+ edgePosition: EdgePosition;
43
+ kol: {
44
+ appId: string;
45
+ appName: string;
46
+ pin: string;
47
+ serviceUrl: string;
48
+ token: string;
49
+ };
50
+ plugin: {
51
+ pin: string;
52
+ usbKeyType: number;
53
+ };
54
+ rsaMode: DigitalSignRsaMode;
55
+ signatureType: SignatureType;
56
+ }
57
+
58
+ export interface DigitalSignEnvironmentConfig {
59
+ defaults: DigitalSignDefaultsConfig;
60
+ signServer: DigitalSignSignServerConfig;
61
+ }
62
+
63
+ export interface DigitalSignDefaultsPatch {
64
+ bjca?: {
65
+ pin?: string;
66
+ };
67
+ deviceType?: SigningDeviceType;
68
+ edgePosition?: EdgePosition;
69
+ kol?: {
70
+ appId?: string;
71
+ appName?: string;
72
+ pin?: string;
73
+ serviceUrl?: string;
74
+ token?: string;
75
+ };
76
+ plugin?: {
77
+ pin?: string;
78
+ usbKeyType?: number;
79
+ };
80
+ rsaMode?: DigitalSignRsaMode;
81
+ signatureType?: SignatureType;
82
+ }
83
+
84
+ export interface DigitalSignSignServerPatch {
85
+ authSource?: SignServerAuthSource;
86
+ defaultLogin?: string;
87
+ defaultPassword?: string;
88
+ defaultServer?: string;
89
+ kol?: {
90
+ appId?: string;
91
+ appName?: string;
92
+ serviceUrl?: string;
93
+ token?: string;
94
+ };
95
+ macAddress?: string;
96
+ token?: string;
97
+ usbKey?: {
98
+ checkCertificateBinding?: boolean;
99
+ usbKeyType?: number;
100
+ };
101
+ }
102
+
103
+ export interface DigitalSignEnvironmentPatch {
104
+ defaults?: DigitalSignDefaultsPatch;
105
+ signServer?: DigitalSignSignServerPatch;
106
+ }
107
+
108
+ interface DigitalSignEnvironmentRuntimeStore {
109
+ current: DigitalSignEnvironmentConfig;
110
+ defaults: DigitalSignEnvironmentConfig;
111
+ overrides: DigitalSignEnvironmentPatch;
112
+ }
113
+
114
+ const DIGITAL_SIGN_ENVIRONMENT_STORE_KEY = '__RHC_OFFICE_DIGITAL_SIGN_ENVIRONMENT__';
115
+
116
+ const EMPTY_DIGITAL_SIGN_ENVIRONMENT: DigitalSignEnvironmentConfig = {
117
+ defaults: {
118
+ bjca: {
119
+ pin: '',
120
+ },
121
+ deviceType: 'client',
122
+ edgePosition: DEFAULT_EDGE_POSITION,
123
+ kol: {
124
+ appId: '',
125
+ appName: '',
126
+ pin: '',
127
+ serviceUrl: '',
128
+ token: '',
129
+ },
130
+ plugin: {
131
+ pin: '',
132
+ usbKeyType: 14,
133
+ },
134
+ rsaMode: DEFAULT_RSA_MODE,
135
+ signatureType: DEFAULT_SIGNATURE_TYPE,
136
+ },
137
+ signServer: {
138
+ authSource: 'Password',
139
+ defaultLogin: '',
140
+ defaultPassword: '',
141
+ defaultServer: '',
142
+ kol: {
143
+ appId: '',
144
+ appName: '',
145
+ serviceUrl: '',
146
+ token: '',
147
+ },
148
+ macAddress: '',
149
+ token: '',
150
+ usbKey: {
151
+ checkCertificateBinding: false,
152
+ usbKeyType: 14,
153
+ },
154
+ },
155
+ };
156
+
157
+ const cloneDefaultsConfig = (config: DigitalSignDefaultsConfig): DigitalSignDefaultsConfig => {
158
+ return {
159
+ bjca: {
160
+ pin: config.bjca.pin,
161
+ },
162
+ deviceType: config.deviceType,
163
+ edgePosition: config.edgePosition,
164
+ kol: {
165
+ appId: config.kol.appId,
166
+ appName: config.kol.appName,
167
+ pin: config.kol.pin,
168
+ serviceUrl: config.kol.serviceUrl,
169
+ token: config.kol.token,
170
+ },
171
+ plugin: {
172
+ pin: config.plugin.pin,
173
+ usbKeyType: config.plugin.usbKeyType,
174
+ },
175
+ rsaMode: config.rsaMode,
176
+ signatureType: config.signatureType,
177
+ };
178
+ };
179
+
180
+ const cloneSignServerConfig = (
181
+ config: DigitalSignSignServerConfig,
182
+ ): DigitalSignSignServerConfig => {
183
+ return {
184
+ authSource: config.authSource,
185
+ defaultLogin: config.defaultLogin,
186
+ defaultPassword: config.defaultPassword,
187
+ defaultServer: config.defaultServer,
188
+ kol: {
189
+ appId: config.kol.appId,
190
+ appName: config.kol.appName,
191
+ serviceUrl: config.kol.serviceUrl,
192
+ token: config.kol.token,
193
+ },
194
+ macAddress: config.macAddress,
195
+ token: config.token,
196
+ usbKey: {
197
+ checkCertificateBinding: config.usbKey.checkCertificateBinding,
198
+ usbKeyType: config.usbKey.usbKeyType,
199
+ },
200
+ };
201
+ };
202
+
203
+ const cloneEnvironmentConfig = (
204
+ config: DigitalSignEnvironmentConfig,
205
+ ): DigitalSignEnvironmentConfig => {
206
+ return {
207
+ defaults: cloneDefaultsConfig(config.defaults),
208
+ signServer: cloneSignServerConfig(config.signServer),
209
+ };
210
+ };
211
+
212
+ const cloneEnvironmentPatch = (patch: DigitalSignEnvironmentPatch): DigitalSignEnvironmentPatch => {
213
+ return {
214
+ defaults: patch.defaults
215
+ ? {
216
+ ...patch.defaults,
217
+ bjca: patch.defaults.bjca ? { ...patch.defaults.bjca } : undefined,
218
+ kol: patch.defaults.kol ? { ...patch.defaults.kol } : undefined,
219
+ plugin: patch.defaults.plugin ? { ...patch.defaults.plugin } : undefined,
220
+ }
221
+ : undefined,
222
+ signServer: patch.signServer
223
+ ? {
224
+ ...patch.signServer,
225
+ kol: patch.signServer.kol ? { ...patch.signServer.kol } : undefined,
226
+ usbKey: patch.signServer.usbKey ? { ...patch.signServer.usbKey } : undefined,
227
+ }
228
+ : undefined,
229
+ };
230
+ };
231
+
232
+ const mergeDefaultsPatch = (
233
+ base: DigitalSignDefaultsConfig,
234
+ patch?: DigitalSignEnvironmentPatch['defaults'],
235
+ ): DigitalSignDefaultsConfig => {
236
+ if (!patch) {
237
+ return cloneDefaultsConfig(base);
238
+ }
239
+
240
+ return {
241
+ bjca: {
242
+ pin: patch.bjca?.pin ?? base.bjca.pin,
243
+ },
244
+ deviceType: patch.deviceType ?? base.deviceType,
245
+ edgePosition: patch.edgePosition ?? base.edgePosition,
246
+ kol: {
247
+ appId: patch.kol?.appId ?? base.kol.appId,
248
+ appName: patch.kol?.appName ?? base.kol.appName,
249
+ pin: patch.kol?.pin ?? base.kol.pin,
250
+ serviceUrl: patch.kol?.serviceUrl ?? base.kol.serviceUrl,
251
+ token: patch.kol?.token ?? base.kol.token,
252
+ },
253
+ plugin: {
254
+ pin: patch.plugin?.pin ?? base.plugin.pin,
255
+ usbKeyType: patch.plugin?.usbKeyType ?? base.plugin.usbKeyType,
256
+ },
257
+ rsaMode: patch.rsaMode ?? base.rsaMode,
258
+ signatureType: patch.signatureType ?? base.signatureType,
259
+ };
260
+ };
261
+
262
+ const mergeSignServerPatch = (
263
+ base: DigitalSignSignServerConfig,
264
+ patch?: DigitalSignEnvironmentPatch['signServer'],
265
+ ): DigitalSignSignServerConfig => {
266
+ if (!patch) {
267
+ return cloneSignServerConfig(base);
268
+ }
269
+
270
+ return {
271
+ authSource: patch.authSource ?? base.authSource,
272
+ defaultLogin: patch.defaultLogin ?? base.defaultLogin,
273
+ defaultPassword: patch.defaultPassword ?? base.defaultPassword,
274
+ defaultServer: patch.defaultServer ?? base.defaultServer,
275
+ kol: {
276
+ appId: patch.kol?.appId ?? base.kol.appId,
277
+ appName: patch.kol?.appName ?? base.kol.appName,
278
+ serviceUrl: patch.kol?.serviceUrl ?? base.kol.serviceUrl,
279
+ token: patch.kol?.token ?? base.kol.token,
280
+ },
281
+ macAddress: patch.macAddress ?? base.macAddress,
282
+ token: patch.token ?? base.token,
283
+ usbKey: {
284
+ checkCertificateBinding:
285
+ patch.usbKey?.checkCertificateBinding ?? base.usbKey.checkCertificateBinding,
286
+ usbKeyType: patch.usbKey?.usbKeyType ?? base.usbKey.usbKeyType,
287
+ },
288
+ };
289
+ };
290
+
291
+ const mergeEnvironmentPatch = (
292
+ base: DigitalSignEnvironmentConfig,
293
+ patch: DigitalSignEnvironmentPatch,
294
+ ): DigitalSignEnvironmentConfig => {
295
+ return {
296
+ defaults: mergeDefaultsPatch(base.defaults, patch.defaults),
297
+ signServer: mergeSignServerPatch(base.signServer, patch.signServer),
298
+ };
299
+ };
300
+
301
+ const mergeEnvironmentPatchState = (
302
+ base: DigitalSignEnvironmentPatch,
303
+ patch: DigitalSignEnvironmentPatch,
304
+ ): DigitalSignEnvironmentPatch => {
305
+ return {
306
+ defaults:
307
+ base.defaults || patch.defaults
308
+ ? {
309
+ ...base.defaults,
310
+ ...patch.defaults,
311
+ bjca: {
312
+ ...(base.defaults?.bjca ?? {}),
313
+ ...(patch.defaults?.bjca ?? {}),
314
+ },
315
+ kol: {
316
+ ...(base.defaults?.kol ?? {}),
317
+ ...(patch.defaults?.kol ?? {}),
318
+ },
319
+ plugin: {
320
+ ...(base.defaults?.plugin ?? {}),
321
+ ...(patch.defaults?.plugin ?? {}),
322
+ },
323
+ }
324
+ : undefined,
325
+ signServer:
326
+ base.signServer || patch.signServer
327
+ ? {
328
+ ...base.signServer,
329
+ ...patch.signServer,
330
+ kol: {
331
+ ...(base.signServer?.kol ?? {}),
332
+ ...(patch.signServer?.kol ?? {}),
333
+ },
334
+ usbKey: {
335
+ ...(base.signServer?.usbKey ?? {}),
336
+ ...(patch.signServer?.usbKey ?? {}),
337
+ },
338
+ }
339
+ : undefined,
340
+ };
341
+ };
342
+
343
+ const getGlobalScope = (): typeof globalThis & {
344
+ [DIGITAL_SIGN_ENVIRONMENT_STORE_KEY]?: DigitalSignEnvironmentRuntimeStore;
345
+ } => {
346
+ return globalThis as typeof globalThis & {
347
+ [DIGITAL_SIGN_ENVIRONMENT_STORE_KEY]?: DigitalSignEnvironmentRuntimeStore;
348
+ };
349
+ };
350
+
351
+ const resolveRuntimeStore = (): DigitalSignEnvironmentRuntimeStore => {
352
+ const globalScope = getGlobalScope();
353
+ if (!globalScope[DIGITAL_SIGN_ENVIRONMENT_STORE_KEY]) {
354
+ globalScope[DIGITAL_SIGN_ENVIRONMENT_STORE_KEY] = {
355
+ current: cloneEnvironmentConfig(EMPTY_DIGITAL_SIGN_ENVIRONMENT),
356
+ defaults: cloneEnvironmentConfig(EMPTY_DIGITAL_SIGN_ENVIRONMENT),
357
+ overrides: {},
358
+ };
359
+ }
360
+
361
+ return globalScope[DIGITAL_SIGN_ENVIRONMENT_STORE_KEY]!;
362
+ };
363
+
364
+ export const getDigitalSignEnvironment = (): DigitalSignEnvironmentConfig => {
365
+ return resolveRuntimeStore().current;
366
+ };
367
+
368
+ export const initializeDigitalSignEnvironment = (
369
+ defaults: DigitalSignEnvironmentConfig,
370
+ ): DigitalSignEnvironmentConfig => {
371
+ const store = resolveRuntimeStore();
372
+ store.defaults = cloneEnvironmentConfig(defaults);
373
+ store.current = mergeEnvironmentPatch(store.defaults, store.overrides);
374
+ return store.current;
375
+ };
376
+
377
+ export const setDigitalSignEnvironment = (
378
+ config: DigitalSignEnvironmentConfig,
379
+ ): DigitalSignEnvironmentConfig => {
380
+ const store = resolveRuntimeStore();
381
+ store.current = cloneEnvironmentConfig(config);
382
+ store.overrides = cloneEnvironmentPatch(config);
383
+ return store.current;
384
+ };
385
+
386
+ export const patchDigitalSignEnvironment = (
387
+ patch: DigitalSignEnvironmentPatch,
388
+ ): DigitalSignEnvironmentConfig => {
389
+ const store = resolveRuntimeStore();
390
+ store.overrides = mergeEnvironmentPatchState(store.overrides, cloneEnvironmentPatch(patch));
391
+ store.current = mergeEnvironmentPatch(store.current, patch);
392
+ return store.current;
393
+ };
394
+
395
+ export const resetDigitalSignEnvironment = (
396
+ defaults?: DigitalSignEnvironmentConfig,
397
+ ): DigitalSignEnvironmentConfig => {
398
+ const store = resolveRuntimeStore();
399
+ if (defaults) {
400
+ store.defaults = cloneEnvironmentConfig(defaults);
401
+ }
402
+ store.overrides = {};
403
+ store.current = cloneEnvironmentConfig(store.defaults);
404
+ return store.current;
405
+ };
406
+
407
+ export const DIGITAL_SIGN_DEFAULTS = {
408
+ EDGE_POSITION: DEFAULT_EDGE_POSITION,
409
+ RSA_MODE: DEFAULT_RSA_MODE,
410
+ SIGNATURE_TYPE: DEFAULT_SIGNATURE_TYPE,
411
+ } as const;
@@ -0,0 +1,152 @@
1
+ import { IDigitalSignOptions, IKVField } from './common';
2
+ import { ReaderReadyCallback, ReaderUnloadCallback } from './callbacks';
3
+ import { DocumentTool } from './document-tool';
4
+ import { AnnotationTool } from './annotation-tool';
5
+ import { UITool } from './ui-tool';
6
+ import { PageTool } from './page-tool';
7
+ import { FindTool } from './find-tool';
8
+ import { DigitalSignTool } from './sign-tool';
9
+ import { SignServerTool } from './sign-server';
10
+ import { NetworkingTool } from './networking-tool';
11
+ import { EkeyTool } from './ekey-tool';
12
+ import { ExtensionTool } from './extension-tool';
13
+ import { SymbologyTool } from './symbology-tool';
14
+ import { TemplateSignTool } from './template-sign';
15
+ import { PdfFormFiller } from './pdf-formfiller';
16
+ import { ReviewTool } from './review-tool';
17
+ import { CryptoTool } from './crypto-tool';
18
+
19
+ export interface IReaderEmbedOptions {
20
+ debug?: boolean;
21
+ scrollIntoView?: boolean;
22
+ toolbar?: boolean;
23
+ canOpenNewFile?: boolean;
24
+ canPrint?: boolean;
25
+ canDownload?: boolean;
26
+ language?: 'en_US' | 'zh_CN';
27
+ theme?: string;
28
+ binder?: string;
29
+ origin?: string;
30
+
31
+ /**
32
+ * 阅读器部署的地址
33
+ */
34
+ officeServer: string;
35
+ /**
36
+ * View: 阅读模式,Annotation: 批注模式,DigitalSign: 签章模式
37
+ */
38
+ viewMode: string;
39
+ /**
40
+ * 签章功能:Server: 服务器签章,Extension: 浏览器控件签章
41
+ */
42
+ signMode?: 'Extension' | 'Server';
43
+ /**
44
+ * 是否显示菜单
45
+ */
46
+ ribbonMenu?: boolean;
47
+ /**
48
+ * 是否显示菜单标题
49
+ */
50
+ ribbonTitle?: boolean;
51
+ /**
52
+ * 是否保持菜单样式
53
+ */
54
+ keepPCMenu?: boolean;
55
+ /**
56
+ * 是否紧凑模式,通常可以在移动设备上有更好的体验
57
+ */
58
+ compactViewer?: boolean;
59
+ /**
60
+ * 单文档模式
61
+ * 设置为 true 时可以同时打开多个文档,页面上使用 Tab 视图来呈现
62
+ * 注意:compactViewer 为 true 时,单文档模式将自动禁用
63
+ */
64
+ singleViewer?: boolean;
65
+ /**
66
+ * 阅读器视图样式
67
+ */
68
+ style?: string;
69
+ /**
70
+ * 阅读器视图宽度
71
+ */
72
+ width?: string;
73
+ /**
74
+ * 阅读器视图高度
75
+ */
76
+ height?: string;
77
+ }
78
+
79
+ export interface IDocumentSDK {
80
+ enableDebug(debug: boolean): void;
81
+
82
+ changeLanguage(lang: string): void;
83
+
84
+ setLicense(license: string, feature: string): void;
85
+
86
+ setSessionUser(
87
+ userNameOrInfo:
88
+ | string
89
+ | {
90
+ userName: string;
91
+ userId?: any;
92
+ },
93
+ ): void;
94
+
95
+ setSessionUserId(userId: string | number): void;
96
+
97
+ setSessionData(sessionData: string): void;
98
+
99
+ isReaderReady(): boolean;
100
+
101
+ isReaderDestroyed(): boolean;
102
+
103
+ addReaderReadyCallback(callback: ReaderReadyCallback): void;
104
+
105
+ addReaderUnloadCallback(callback: ReaderUnloadCallback): void;
106
+
107
+ setReaderEventListener(callback: (event: string, payload: any) => void): void;
108
+
109
+ embedReader(
110
+ container: string | HTMLDivElement,
111
+ appUrl: string,
112
+ configuration: IReaderEmbedOptions,
113
+ ): void;
114
+
115
+ removeReader(): void;
116
+
117
+ // Tool accessors
118
+
119
+ getDocumentTool(): DocumentTool;
120
+
121
+ getUITool(): UITool;
122
+
123
+ getPageTool(): PageTool;
124
+
125
+ getFindTool(): FindTool;
126
+
127
+ getSignServerTool(): SignServerTool;
128
+
129
+ getDigitalSignTool(): DigitalSignTool;
130
+
131
+ getReviewTool(): ReviewTool;
132
+
133
+ getEkeyTool(): EkeyTool;
134
+
135
+ getSymbologyTool(): SymbologyTool;
136
+
137
+ getAnnotationTool(): AnnotationTool;
138
+
139
+ getTemplateSignTool(): TemplateSignTool;
140
+
141
+ getPdfFormFiller(): PdfFormFiller;
142
+
143
+ getExtensionTool(): ExtensionTool;
144
+
145
+ getNetworkingTool(): NetworkingTool;
146
+
147
+ getCryptoTool(): CryptoTool;
148
+
149
+ createDigitalSignOptions(): IDigitalSignOptions;
150
+
151
+ createKVField(key: string, value: string, description?: string): IKVField;
152
+ }