eoss-ui 0.6.66 → 0.6.67

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 (261) hide show
  1. package/lib/button-group.js +108 -106
  2. package/lib/button.js +108 -106
  3. package/lib/calogin.js +312 -310
  4. package/lib/checkbox-group.js +110 -108
  5. package/lib/config/api.js +1 -0
  6. package/lib/data-table-form.js +110 -108
  7. package/lib/data-table.js +113 -111
  8. package/lib/date-picker.js +108 -106
  9. package/lib/dialog.js +108 -106
  10. package/lib/eoss-ui.common.js +1067 -1042
  11. package/lib/flow-group.js +108 -106
  12. package/lib/flow-list.js +208 -199
  13. package/lib/flow.js +510 -492
  14. package/lib/form.js +110 -108
  15. package/lib/handle-user.js +109 -107
  16. package/lib/handler.js +109 -107
  17. package/lib/icon.js +109 -107
  18. package/lib/index.js +1 -1
  19. package/lib/input-number.js +108 -106
  20. package/lib/input.js +108 -106
  21. package/lib/login.js +114 -112
  22. package/lib/main.js +273 -271
  23. package/lib/nav.js +108 -106
  24. package/lib/notify.js +111 -109
  25. package/lib/page.js +108 -106
  26. package/lib/pagination.js +108 -106
  27. package/lib/player.js +108 -106
  28. package/lib/qr-code.js +121 -119
  29. package/lib/radio-group.js +110 -108
  30. package/lib/retrial-auth.js +111 -109
  31. package/lib/select-ganged.js +110 -108
  32. package/lib/select.js +110 -108
  33. package/lib/selector-panel.js +126 -124
  34. package/lib/selector.js +109 -107
  35. package/lib/sizer.js +110 -108
  36. package/lib/steps.js +108 -106
  37. package/lib/switch.js +108 -106
  38. package/lib/table-form.js +108 -106
  39. package/lib/tabs.js +108 -106
  40. package/lib/tips.js +109 -107
  41. package/lib/tree-group.js +108 -106
  42. package/lib/tree.js +109 -107
  43. package/lib/upload.js +118 -116
  44. package/lib/wujie.js +108 -106
  45. package/lib/wxlogin.js +108 -106
  46. package/package.json +160 -160
  47. package/packages/button/index.js +5 -5
  48. package/packages/button/src/main.vue +418 -418
  49. package/packages/button-group/index.js +5 -5
  50. package/packages/button-group/src/main.vue +298 -298
  51. package/packages/calendar/index.js +5 -5
  52. package/packages/calogin/index.js +5 -5
  53. package/packages/calogin/src/main.vue +131 -131
  54. package/packages/calogin/src/plugin.js +748 -748
  55. package/packages/card/index.js +5 -5
  56. package/packages/card/src/main.vue +156 -156
  57. package/packages/cascader/index.js +5 -5
  58. package/packages/cascader/src/main.vue +168 -168
  59. package/packages/checkbox-group/index.js +5 -5
  60. package/packages/checkbox-group/src/main.vue +333 -333
  61. package/packages/clients/index.js +5 -5
  62. package/packages/clients/src/main.vue +151 -151
  63. package/packages/data-table/index.js +5 -5
  64. package/packages/data-table/src/children.vue +39 -39
  65. package/packages/data-table/src/column.vue +989 -989
  66. package/packages/data-table/src/main.vue +1822 -1822
  67. package/packages/data-table/src/sizer.vue +195 -195
  68. package/packages/data-table-form/index.js +5 -5
  69. package/packages/data-table-form/src/checkbox.vue +101 -101
  70. package/packages/data-table-form/src/colgroup.vue +17 -17
  71. package/packages/data-table-form/src/main.vue +181 -181
  72. package/packages/data-table-form/src/radio.vue +65 -65
  73. package/packages/data-table-form/src/table.vue +233 -233
  74. package/packages/data-table-form/src/tbody.vue +336 -336
  75. package/packages/data-table-form/src/thead.vue +68 -68
  76. package/packages/date-picker/index.js +5 -5
  77. package/packages/date-picker/src/main.vue +236 -236
  78. package/packages/dialog/index.js +5 -5
  79. package/packages/enable-drag/index.js +5 -5
  80. package/packages/enterprise/index.js +5 -5
  81. package/packages/enterprise/src/main.vue +66 -66
  82. package/packages/error-page/index.js +5 -5
  83. package/packages/error-page/src/main.vue +44 -44
  84. package/packages/flow/index.js +5 -5
  85. package/packages/flow/src/component/Circulate.vue +351 -346
  86. package/packages/flow/src/component/CommonOpinions.vue +346 -346
  87. package/packages/flow/src/component/CustomPreset.vue +322 -322
  88. package/packages/flow/src/component/FileList.vue +99 -99
  89. package/packages/flow/src/component/Preset.vue +255 -255
  90. package/packages/flow/src/component/SendMsg.vue +241 -241
  91. package/packages/flow/src/component/TimeLimit.vue +190 -190
  92. package/packages/flow/src/component/taskUnionExamine.vue +619 -619
  93. package/packages/flow/src/form.vue +121 -121
  94. package/packages/flow/src/freeStartFlow.vue +2843 -2843
  95. package/packages/flow/src/main.vue +3367 -3361
  96. package/packages/flow/src/processForm.vue +1091 -1091
  97. package/packages/flow/src/processReject.vue +294 -294
  98. package/packages/flow/src/reset.vue +905 -900
  99. package/packages/flow/src/selectUser.vue +1 -1
  100. package/packages/flow/src/startTaskRead.vue +659 -659
  101. package/packages/flow/src/supervise.vue +149 -149
  102. package/packages/flow/src/table.vue +58 -58
  103. package/packages/flow-group/index.js +5 -5
  104. package/packages/flow-group/src/main.vue +688 -688
  105. package/packages/flow-list/index.js +5 -5
  106. package/packages/flow-list/src/main.vue +1757 -1750
  107. package/packages/form/index.js +5 -5
  108. package/packages/form/src/main.vue +3581 -3581
  109. package/packages/form/src/table.vue +1426 -1426
  110. package/packages/handle-user/index.js +5 -5
  111. package/packages/handle-user/src/main.vue +138 -138
  112. package/packages/handler/index.js +5 -5
  113. package/packages/handler/src/main.vue +493 -493
  114. package/packages/icon/index.js +5 -5
  115. package/packages/icon/src/main.vue +101 -101
  116. package/packages/icons/index.js +5 -5
  117. package/packages/icons/src/main.vue +81 -81
  118. package/packages/input/index.js +5 -5
  119. package/packages/input/src/main.vue +356 -356
  120. package/packages/input-number/index.js +5 -5
  121. package/packages/input-number/src/main.vue +106 -106
  122. package/packages/label/index.js +5 -5
  123. package/packages/label/src/main.vue +457 -457
  124. package/packages/layout/index.js +5 -5
  125. package/packages/layout/src/item.vue +152 -152
  126. package/packages/layout/src/main.vue +31 -31
  127. package/packages/login/index.js +5 -5
  128. package/packages/login/src/main.vue +1988 -1988
  129. package/packages/login/src/resetPassword.vue +562 -562
  130. package/packages/main/index.js +5 -5
  131. package/packages/main/src/default/message.vue +249 -249
  132. package/packages/main/src/default/notice.vue +157 -157
  133. package/packages/main/src/default/userinfo.vue +503 -503
  134. package/packages/main/src/public/online.vue +89 -89
  135. package/packages/main/src/public/search.vue +462 -462
  136. package/packages/main/src/public/settings.vue +221 -221
  137. package/packages/main/src/simplicity/apps.vue +388 -388
  138. package/packages/main/src/simplicity/avatar.vue +83 -83
  139. package/packages/main/src/simplicity/handler.vue +259 -259
  140. package/packages/main/src/simplicity/index.vue +2089 -2089
  141. package/packages/main/src/simplicity/lists.vue +84 -84
  142. package/packages/main/src/simplicity/menu-list.vue +135 -135
  143. package/packages/main/src/simplicity/message.vue +259 -259
  144. package/packages/main/src/simplicity/notice.vue +190 -190
  145. package/packages/main/src/simplicity/router-page.vue +45 -45
  146. package/packages/main/src/simplicity/sub-menu.vue +264 -264
  147. package/packages/main/src/simplicity/user.vue +257 -257
  148. package/packages/main/src/simplicity/userinfo.vue +312 -312
  149. package/packages/menu/index.js +5 -5
  150. package/packages/menu/src/main.vue +584 -584
  151. package/packages/nav/index.js +5 -5
  152. package/packages/nav/src/main.vue +351 -351
  153. package/packages/notify/index.js +5 -5
  154. package/packages/notify/src/main.vue +538 -538
  155. package/packages/page/index.js +5 -5
  156. package/packages/page/src/main.vue +167 -167
  157. package/packages/pagination/index.js +5 -5
  158. package/packages/pagination/src/main.vue +96 -96
  159. package/packages/player/index.js +5 -5
  160. package/packages/player/src/main.vue +194 -194
  161. package/packages/qr-code/index.js +5 -5
  162. package/packages/qr-code/src/main.vue +170 -170
  163. package/packages/radio-group/index.js +6 -6
  164. package/packages/radio-group/src/main.vue +319 -319
  165. package/packages/retrial-auth/index.js +5 -5
  166. package/packages/retrial-auth/src/main.vue +280 -280
  167. package/packages/select/index.js +5 -5
  168. package/packages/select/src/main.vue +778 -778
  169. package/packages/select-ganged/index.js +5 -5
  170. package/packages/select-ganged/src/main.vue +724 -724
  171. package/packages/selector/index.js +5 -5
  172. package/packages/selector/src/main.vue +687 -687
  173. package/packages/selector-panel/index.js +5 -5
  174. package/packages/selector-panel/src/main.vue +1027 -1027
  175. package/packages/selector-panel/src/selection.vue +177 -177
  176. package/packages/selector-panel/src/tree.vue +129 -129
  177. package/packages/sizer/index.js +5 -5
  178. package/packages/sizer/src/main.vue +254 -254
  179. package/packages/steps/index.js +5 -5
  180. package/packages/steps/src/main.vue +181 -181
  181. package/packages/switch/index.js +5 -5
  182. package/packages/switch/src/main.vue +154 -154
  183. package/packages/table-form/index.js +5 -5
  184. package/packages/tabs/index.js +5 -5
  185. package/packages/tabs/src/main.vue +788 -788
  186. package/packages/tabs-panel/index.js +5 -5
  187. package/packages/tabs-panel/src/main.vue +29 -29
  188. package/packages/theme-chalk/src/base.scss +261 -261
  189. package/packages/theme-chalk/src/button-group.scss +176 -176
  190. package/packages/theme-chalk/src/button.scss +24 -24
  191. package/packages/theme-chalk/src/calendar.scss +113 -113
  192. package/packages/theme-chalk/src/card.scss +99 -99
  193. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  194. package/packages/theme-chalk/src/clients.scss +87 -87
  195. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  196. package/packages/theme-chalk/src/data-table.scss +293 -293
  197. package/packages/theme-chalk/src/date-picker.scss +7 -7
  198. package/packages/theme-chalk/src/dialog.scss +77 -77
  199. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  200. package/packages/theme-chalk/src/enterprise.scss +5 -5
  201. package/packages/theme-chalk/src/error-page.scss +18 -18
  202. package/packages/theme-chalk/src/flow-group.scss +110 -110
  203. package/packages/theme-chalk/src/flow-list.scss +39 -39
  204. package/packages/theme-chalk/src/flow.scss +343 -343
  205. package/packages/theme-chalk/src/form.scss +496 -496
  206. package/packages/theme-chalk/src/handle-user.scss +40 -40
  207. package/packages/theme-chalk/src/handler.scss +143 -143
  208. package/packages/theme-chalk/src/icon.scss +1792 -1792
  209. package/packages/theme-chalk/src/icons.scss +99 -99
  210. package/packages/theme-chalk/src/input.scss +9 -9
  211. package/packages/theme-chalk/src/label.scss +24 -24
  212. package/packages/theme-chalk/src/layout.scss +46 -46
  213. package/packages/theme-chalk/src/login.scss +981 -981
  214. package/packages/theme-chalk/src/main.scss +663 -663
  215. package/packages/theme-chalk/src/menu.scss +222 -222
  216. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  217. package/packages/theme-chalk/src/nav.scss +111 -111
  218. package/packages/theme-chalk/src/page.scss +3 -3
  219. package/packages/theme-chalk/src/pagination.scss +29 -29
  220. package/packages/theme-chalk/src/player.scss +9 -9
  221. package/packages/theme-chalk/src/qr-code.scss +17 -17
  222. package/packages/theme-chalk/src/radio-group.scss +9 -9
  223. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  224. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  225. package/packages/theme-chalk/src/select.scss +8 -8
  226. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  227. package/packages/theme-chalk/src/selector.scss +91 -91
  228. package/packages/theme-chalk/src/simplicity.scss +1355 -1355
  229. package/packages/theme-chalk/src/sizer.scss +36 -36
  230. package/packages/theme-chalk/src/steps.scss +88 -88
  231. package/packages/theme-chalk/src/switch.scss +3 -3
  232. package/packages/theme-chalk/src/table-form.scss +1 -1
  233. package/packages/theme-chalk/src/tabs.scss +87 -87
  234. package/packages/theme-chalk/src/tips.scss +7 -7
  235. package/packages/theme-chalk/src/toolbar.scss +179 -179
  236. package/packages/theme-chalk/src/tree-group.scss +72 -72
  237. package/packages/theme-chalk/src/tree.scss +165 -165
  238. package/packages/theme-chalk/src/upload.scss +168 -168
  239. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  240. package/packages/tips/index.js +5 -5
  241. package/packages/tips/src/main.vue +141 -141
  242. package/packages/toolbar/index.js +5 -5
  243. package/packages/toolbar/src/main.vue +430 -430
  244. package/packages/tree/index.js +5 -5
  245. package/packages/tree-group/index.js +5 -5
  246. package/packages/upload/index.js +5 -5
  247. package/packages/upload/src/main.vue +1347 -1347
  248. package/packages/upload/src/picture.js +15 -15
  249. package/packages/wujie/index.js +5 -5
  250. package/packages/wujie/src/main.vue +145 -145
  251. package/packages/wxlogin/index.js +5 -5
  252. package/packages/wxlogin/src/main.vue +128 -128
  253. package/src/config/api.js +291 -290
  254. package/src/config/image.js +2 -2
  255. package/src/index.js +1 -1
  256. package/src/utils/bus.js +3 -3
  257. package/src/utils/date-util.js +312 -312
  258. package/src/utils/http.js +50 -50
  259. package/src/utils/rules.js +18 -18
  260. package/src/utils/store.js +21 -21
  261. package/src/utils/webSocket.js +107 -107
@@ -1,748 +1,748 @@
1
- /**
2
- * JIT_GW_ExtInterface 模块,提供与客户端交互的功能
3
- */
4
- class CA_ExtInterface {
5
- constructor() {
6
- this.currentSessionWSURL = '';
7
- this.useActioveX = false;
8
- this.options = {};
9
- }
10
-
11
- /**
12
- * 简单的 Object.assign 兼容 IE <= 11 的 polyfill
13
- * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
14
- * @param {Object} target - 目标对象
15
- * @param {Object} options - 新的选项对象
16
- */
17
- extendOptions(target, options) {
18
- if (typeof Object.assign === 'function') {
19
- Object.assign(target, options);
20
- } else {
21
- // 兼容 IE < 11
22
- for (const key in options) {
23
- target[key] = options[key];
24
- }
25
- }
26
- }
27
-
28
- /**
29
- * 检查当前会话的 WebSocket URL
30
- */
31
- checkSessionWSURL() {
32
- if (this.currentSessionWSURL === '') {
33
- if (document.location.protocol === 'https:') {
34
- this.currentSessionWSURL = this.sendAndWaitMessage('https://127.0.0.1:10087/', 'QueryService');
35
- } else {
36
- this.currentSessionWSURL = this.sendAndWaitMessage('http://127.0.0.1:10086/', 'QueryService');
37
- }
38
- }
39
- }
40
-
41
- /**
42
- * 检查是否使用 ActiveX
43
- */
44
- isUseActioveX() {
45
- if (!!window.ActiveXObject || 'ActiveXObject' in window) {
46
- this.useActioveX = true;
47
- } else {
48
- this.useActioveX = false;
49
- }
50
- }
51
-
52
- /**
53
- * 扩展发送消息并等待响应
54
- * @param {string} operatorCmd - 操作命令
55
- * @param {string} sendMsg - 发送的消息
56
- * @returns {string} 响应消息
57
- */
58
- sendAndWaitMessageEx(operatorCmd, sendMsg) {
59
- this.checkSessionWSURL();
60
- const strSendMsg = operatorCmd + ':' + sendMsg;
61
- return this.sendAndWaitMessage(this.currentSessionWSURL, strSendMsg);
62
- }
63
-
64
- /**
65
- * 发送消息并等待响应
66
- * @param {string} wsurl - WebSocket URL
67
- * @param {string} sendMsg - 发送的消息
68
- * @returns {string} 响应消息
69
- */
70
- sendAndWaitMessage(wsurl, sendMsg) {
71
- let ResultMsg = '{"value":""}';
72
- if (ResultMsg === wsurl) {
73
- return;
74
- }
75
- try {
76
- const globalXmlHttpRequest = new XMLHttpRequest();
77
- globalXmlHttpRequest.open('POST', wsurl, false);
78
- globalXmlHttpRequest.setRequestHeader('Content-Type', 'text/plain;charset=UTF-8');
79
- globalXmlHttpRequest.send(sendMsg);
80
- ResultMsg = globalXmlHttpRequest.responseText;
81
- } catch (e) {
82
- this.currentSessionWSURL = '';
83
- if (this.options.onError) {
84
- this.options.onError.call(undefined, e);
85
- }
86
- }
87
- return ResultMsg;
88
- }
89
-
90
- /**
91
- * 配置选项
92
- * @param {Object} extendOption - 扩展选项
93
- */
94
- config(extendOption) {
95
- if (extendOption && typeof extendOption === 'object') {
96
- this.extendOptions(this.options, extendOption);
97
- }
98
- }
99
-
100
- /**
101
- * 初始化
102
- */
103
- init() {
104
- this.isUseActioveX();
105
- }
106
-
107
- /**
108
- * 返回客户端的版本
109
- * @returns {string} 客户端版本
110
- */
111
- getClientVersion() {
112
- if (this.useActioveX) {
113
- return window.PNXClient.GetClientVersion();
114
- } else {
115
- const result = JSON.parse(this.sendAndWaitMessageEx('GetClientVersion', ''));
116
- return result.value;
117
- }
118
- }
119
-
120
- /**
121
- * 下载客户端程序并安装
122
- * @param {string} bstrURL - 下载地址
123
- * @param {string} bstrHashValue - 哈希值
124
- * @param {boolean} bSync - 是否同步安装
125
- * @param {boolean} bOnlySSO - 是否仅安装 SSO
126
- * @returns {number} 安装结果
127
- */
128
- setupClient(bstrURL, bstrHashValue, bSync, bOnlySSO) {
129
- if (this.useActioveX) {
130
- return window.PNXClient.SetupClient(bstrURL, bstrHashValue, bSync, bOnlySSO);
131
- } else {
132
- const jsonstr = { 'strURL': bstrURL, 'strHashValue': bstrHashValue, 'bSync': bSync, 'bOnlySSO': bOnlySSO };
133
- const result = JSON.parse(this.sendAndWaitMessageEx('SetupClient', JSON.stringify(jsonstr)));
134
- return result.value;
135
- }
136
- }
137
-
138
- /**
139
- * 获取硬件指纹信息
140
- * @param {number} dwSign - 签名
141
- * @param {string} strGateWayIP - 网关 IP
142
- * @returns {string} 硬件指纹信息
143
- */
144
- getFinger(dwSign, strGateWayIP) {
145
- if (this.useActioveX) {
146
- return window.PNXClient.GetFinger(dwSign, strGateWayIP);
147
- } else {
148
- const jsonstr = { 'dwSign': dwSign, 'strGateWayIP': strGateWayIP };
149
- const result = JSON.parse(this.sendAndWaitMessageEx('GetFinger', JSON.stringify(jsonstr)));
150
- return result.value;
151
- }
152
- }
153
-
154
- /**
155
- * 设置转发策略和代填策略
156
- * @param {string} strProxyPolicy - 转发策略
157
- * @param {string} strSSOPolicy - 代填策略
158
- * @param {string} strGatewayAddress - 网关地址
159
- * @returns {number} 设置结果
160
- */
161
- setPolicy(strProxyPolicy, strSSOPolicy, strGatewayAddress) {
162
- if (this.useActioveX) {
163
- return window.PNXClient.SetPolicy(strProxyPolicy, strSSOPolicy, strGatewayAddress);
164
- } else {
165
- const jsonstr = { 'strProxyPolicy': strProxyPolicy, 'strSSOPolicy': strSSOPolicy, 'strGatewayAddress': strGatewayAddress };
166
- const result = JSON.parse(this.sendAndWaitMessageEx('SetPolicy', JSON.stringify(jsonstr)));
167
- return result.value;
168
- }
169
- }
170
-
171
- /**
172
- * 启动认证信息模块
173
- * @param {string} strFileName - 文件名
174
- * @param {string} strXmlData - XML 数据
175
- * @returns {string} 认证信息
176
- */
177
- getAuthToken(strFileName, strXmlData) {
178
- if (this.useActioveX) {
179
- return window.PNXClient.GetAuthToken(strFileName, strXmlData);
180
- } else {
181
- const jsonstr = { 'strFileName': strFileName, 'strXmlData': strXmlData };
182
- const result = JSON.parse(this.sendAndWaitMessageEx('GetAuthToken', JSON.stringify(jsonstr)));
183
- return result.value;
184
- }
185
- }
186
-
187
- /**
188
- * 打开 BS 应用
189
- * @param {string} strUrl - 应用 URL
190
- * @returns {number} 打开结果
191
- */
192
- navigateURL(strUrl) {
193
- if (this.useActioveX) {
194
- return window.PNXClient.NavigateURL(strUrl);
195
- } else {
196
- const jsonstr = { 'strUrl': strUrl };
197
- const result = JSON.parse(this.sendAndWaitMessageEx('NavigateURL', JSON.stringify(jsonstr)));
198
- return result.value;
199
- }
200
- }
201
-
202
- /**
203
- * 打开 CS 应用
204
- * @param {string} strGatewayAddress - 网关地址
205
- * @param {string} strAppFlag - 应用标识
206
- * @param {string} strAppPath - 应用路径
207
- * @returns {number} 打开结果
208
- */
209
- executeCS(strGatewayAddress, strAppFlag, strAppPath) {
210
- if (this.useActioveX) {
211
- return window.PNXClient.ExecuteCS(strGatewayAddress, strAppFlag, strAppPath);
212
- } else {
213
- const jsonstr = { 'strGatewayAddress': strGatewayAddress, 'strAppFlag': strAppFlag, 'strAppPath': strAppPath };
214
- const result = JSON.parse(this.sendAndWaitMessageEx('ExecuteCS', JSON.stringify(jsonstr)));
215
- return result.value;
216
- }
217
- }
218
-
219
- /**
220
- * 设置自动更新策略
221
- * @param {string} strGatewayAddress - 网关地址
222
- * @param {number} nGatewayPort - 网关端口
223
- * @param {string} strUserToken - 用户令牌
224
- * @param {number} updatedelay - 更新延迟
225
- * @returns {number} 设置结果
226
- */
227
- setUpdatePolicy(strGatewayAddress, nGatewayPort, strUserToken, updatedelay) {
228
- if (this.useActioveX) {
229
- return window.PNXClient.SetUpdatePolicy(strGatewayAddress, nGatewayPort, strUserToken, updatedelay);
230
- } else {
231
- const jsonstr = { 'strGatewayAddress': strGatewayAddress, 'nGatewayPort': nGatewayPort, 'strUserToken': strUserToken, 'ulUpdateDelay': updatedelay };
232
- const result = JSON.parse(this.sendAndWaitMessageEx('SetUpdatePolicy', JSON.stringify(jsonstr)));
233
- return result.value;
234
- }
235
- }
236
-
237
- /**
238
- * 获取客户端 IP
239
- * @param {string} strGatewayIP - 网关 IP
240
- * @returns {string} 客户端 IP
241
- */
242
- getClientIP(strGatewayIP) {
243
- if (this.useActioveX) {
244
- return window.PNXClient.GetClientIP(strGatewayIP);
245
- } else {
246
- const jsonstr = { 'strGatewayIP': strGatewayIP };
247
- const result = JSON.parse(this.sendAndWaitMessageEx('GetClientIP', JSON.stringify(jsonstr)));
248
- return result.value;
249
- }
250
- }
251
-
252
- /**
253
- * 登出网关
254
- * @param {string} strServerIP - 服务器 IP
255
- * @returns {number} 登出结果
256
- */
257
- gwLogout(strServerIP) {
258
- if (this.useActioveX) {
259
- return window.PNXClient.GWLogout(strServerIP);
260
- } else {
261
- const jsonstr = { 'strServerIP': strServerIP };
262
- const result = JSON.parse(this.sendAndWaitMessageEx('GWLogout', JSON.stringify(jsonstr)));
263
- return result.value;
264
- }
265
- }
266
-
267
- /**
268
- * 运行安装包
269
- * @param {number} lRunType - 运行类型
270
- * @param {boolean} bIsOnlySSO - 是否仅安装 SSO
271
- * @returns {number} 运行结果
272
- */
273
- runSetup(lRunType, bIsOnlySSO) {
274
- if (this.useActioveX) {
275
- return window.PNXClient.RunSetup(lRunType, bIsOnlySSO);
276
- } else {
277
- const jsonstr = { 'lRunType': lRunType, 'bIsOnlySSO': bIsOnlySSO };
278
- const result = JSON.parse(this.sendAndWaitMessageEx('RunSetup', JSON.stringify(jsonstr)));
279
- return result.value;
280
- }
281
- }
282
-
283
- /**
284
- * 获取下载进度
285
- * @returns {number} 下载进度
286
- */
287
- getDownloadProgress() {
288
- if (this.useActioveX) {
289
- return window.PNXClient.GetDownloadProgress();
290
- } else {
291
- const jsonstr = '';
292
- const result = JSON.parse(this.sendAndWaitMessageEx('GetDownloadProgress', jsonstr));
293
- return result.value;
294
- }
295
- }
296
-
297
- /**
298
- * 是否安装完成
299
- * @returns {boolean} 安装完成状态
300
- */
301
- isInstallComplete() {
302
- if (this.useActioveX) {
303
- return window.PNXClient.IsInstallComplete();
304
- } else {
305
- const jsonstr = '';
306
- const result = JSON.parse(this.sendAndWaitMessageEx('IsInstallComplete', jsonstr));
307
- return result.value;
308
- }
309
- }
310
-
311
- /**
312
- * 初始化签包对象
313
- * @param {string} strAlgType - 算法类型
314
- * @param {string} strAuxParam - 辅助参数
315
- * @returns {number} 初始化结果
316
- */
317
- initialize(strAlgType, strAuxParam) {
318
- if (this.useActioveX) {
319
- return window.PNXClient.Initialize(strAlgType, strAuxParam);
320
- } else {
321
- const jsonstr = { 'strAlgType': strAlgType, 'strAuxParam': strAuxParam };
322
- const result = JSON.parse(this.sendAndWaitMessageEx('Initialize', JSON.stringify(jsonstr)));
323
- return result.value;
324
- }
325
- }
326
-
327
- /**
328
- * 设置摘要算法
329
- * @param {string} strDigestAlg - 摘要算法
330
- * @returns {number} 设置结果
331
- */
332
- setDigestAlg(strDigestAlg) {
333
- if (this.useActioveX) {
334
- return window.PNXClient.SetDigestAlg(strDigestAlg);
335
- } else {
336
- const jsonstr = { 'strDigestAlg': strDigestAlg };
337
- const result = JSON.parse(this.sendAndWaitMessageEx('SetDigestAlg', JSON.stringify(jsonstr)));
338
- return result.value;
339
- }
340
- }
341
-
342
- /**
343
- * 设置单证书是否弹出对话框
344
- * @param {number} isChoose - 是否弹出对话框
345
- * @returns {number} 设置结果
346
- */
347
- setChooseSingleCert(isChoose) {
348
- if (this.useActioveX) {
349
- return window.PNXClient.SetChooseSingleCert(isChoose);
350
- } else {
351
- const jsonstr = { 'isChoose': isChoose };
352
- const result = JSON.parse(this.sendAndWaitMessageEx('SetChooseSingleCert', JSON.stringify(jsonstr)));
353
- return result.value;
354
- }
355
- }
356
-
357
- /**
358
- * 添加证书过滤条件
359
- * @param {number} ulType - 过滤类型
360
- * @param {string} strValue - 过滤值
361
- * @returns {number} 添加结果
362
- */
363
- addFilter(ulType, strValue) {
364
- if (this.useActioveX) {
365
- return window.PNXClient.AddFilter(ulType, strValue);
366
- } else {
367
- const jsonstr = { 'ulType': ulType, 'strValue': strValue };
368
- const result = JSON.parse(this.sendAndWaitMessageEx('AddFilter', JSON.stringify(jsonstr)));
369
- return result.value;
370
- }
371
- }
372
-
373
- /**
374
- * 清除所有过滤条件
375
- * @returns {number} 清除结果
376
- */
377
- clearFilter() {
378
- if (this.useActioveX) {
379
- return window.PNXClient.ClearFilter();
380
- } else {
381
- const jsonstr = '';
382
- const result = JSON.parse(this.sendAndWaitMessageEx('ClearFilter', jsonstr));
383
- return result.value;
384
- }
385
- }
386
-
387
- /**
388
- * P1 签名
389
- * @param {string} strValueBase64 - 待签名的 Base64 字符串
390
- * @returns {string} 签名结果
391
- */
392
- p1Sign(strValueBase64) {
393
- if (this.useActioveX) {
394
- return window.PNXClient.P1Sign(strValueBase64);
395
- } else {
396
- const jsonstr = { 'strValueBase64': strValueBase64 };
397
- const result = JSON.parse(this.sendAndWaitMessageEx('P1Sign', JSON.stringify(jsonstr)));
398
- return result.value;
399
- }
400
- }
401
-
402
- /**
403
- * P1 签名字符串
404
- * @param {string} strValue - 待签名的字符串
405
- * @returns {string} 签名结果
406
- */
407
- p1SignString(strValue) {
408
- if (this.useActioveX) {
409
- return window.PNXClient.P1SignString(strValue);
410
- } else {
411
- const jsonstr = { 'strValue': strValue };
412
- const result = JSON.parse(this.sendAndWaitMessageEx('P1SignString', JSON.stringify(jsonstr)));
413
- return result.value;
414
- }
415
- }
416
-
417
- /**
418
- * P7 签名
419
- * @param {string} strValueBase64 - 待签名的 Base64 字符串
420
- * @param {boolean} isDetach - 是否分离签名
421
- * @param {boolean} isIncludeCert - 是否包含证书
422
- * @returns {string} 签名结果
423
- */
424
- p7Sign(strValueBase64, isDetach, isIncludeCert) {
425
- if (this.useActioveX) {
426
- return window.PNXClient.P7Sign(strValueBase64, isDetach, isIncludeCert);
427
- } else {
428
- const jsonstr = { 'strValueBase64': strValueBase64, 'isDetach': isDetach, 'isIncludeCert': isIncludeCert };
429
- const result = JSON.parse(this.sendAndWaitMessageEx('P7Sign', JSON.stringify(jsonstr)));
430
- return result.value;
431
- }
432
- }
433
-
434
- /**
435
- * P7 签名字符串
436
- * @param {string} strValue - 待签名的字符串
437
- * @param {boolean} isDetach - 是否分离签名
438
- * @param {boolean} isIncludeCert - 是否包含证书
439
- * @returns {string} 签名结果
440
- */
441
- p7SignString(strValue, isDetach, isIncludeCert) {
442
- if (this.useActioveX) {
443
- return window.PNXClient.P7SignString(strValue, isDetach, isIncludeCert);
444
- } else {
445
- const jsonstr = { 'strValue': strValue, 'isDetach': isDetach, 'isIncludeCert': isIncludeCert };
446
- const result = JSON.parse(this.sendAndWaitMessageEx('P7SignString', JSON.stringify(jsonstr)));
447
- return result.value;
448
- }
449
- }
450
-
451
- /**
452
- * 释放签名对象
453
- * @returns {number} 释放结果
454
- */
455
- finalize() {
456
- if (this.useActioveX) {
457
- return window.PNXClient.Finalize();
458
- } else {
459
- const jsonstr = '';
460
- const result = JSON.parse(this.sendAndWaitMessageEx('Finalize', jsonstr));
461
- return result.value;
462
- }
463
- }
464
-
465
- /**
466
- * 获取签名版本
467
- * @returns {string} 签名版本
468
- */
469
- getSignVersion() {
470
- if (this.useActioveX) {
471
- return window.PNXClient.GetSignVersion();
472
- } else {
473
- const jsonstr = '';
474
- const result = JSON.parse(this.sendAndWaitMessageEx('GetSignVersion', jsonstr));
475
- return result.value;
476
- }
477
- }
478
-
479
- /**
480
- * 获取签名证书
481
- * @returns {string} 签名证书
482
- */
483
- getSignCert() {
484
- if (this.useActioveX) {
485
- return window.PNXClient.GetSignCert();
486
- } else {
487
- const jsonstr = '';
488
- const result = JSON.parse(this.sendAndWaitMessageEx('GetSignCert', jsonstr));
489
- return result.value;
490
- }
491
- }
492
-
493
- /**
494
- * 获取错误码
495
- * @returns {number} 错误码
496
- */
497
- getLastError() {
498
- if (this.useActioveX) {
499
- return window.PNXClient.GetLastError();
500
- } else {
501
- const jsonstr = '';
502
- const result = JSON.parse(this.sendAndWaitMessageEx('GetLastError', jsonstr));
503
- return result.value;
504
- }
505
- }
506
-
507
- /**
508
- * 获取错误信息
509
- * @returns {string} 错误信息
510
- */
511
- getLastErrorMessage() {
512
- if (this.useActioveX) {
513
- return window.PNXClient.GetLastErrorMessage();
514
- } else {
515
- const jsonstr = '';
516
- const result = JSON.parse(this.sendAndWaitMessageEx('GetLastErrorMessage', jsonstr));
517
- return result.value;
518
- }
519
- }
520
-
521
- /**
522
- * 销毁认证对象
523
- * @returns {number} 销毁结果
524
- */
525
- destoryAuth() {
526
- if (this.useActioveX) {
527
- return window.PNXClient.DestoryAuth();
528
- } else {
529
- const jsonstr = '';
530
- const result = JSON.parse(this.sendAndWaitMessageEx('DestoryAuth', jsonstr));
531
- return result.value;
532
- }
533
- }
534
-
535
- /**
536
- * 获取证书类型
537
- * @returns {string} 证书类型
538
- */
539
- getSignCertType() {
540
- if (this.useActioveX) {
541
- return window.PNXClient.GetSignCertType();
542
- } else {
543
- const jsonstr = '';
544
- const result = JSON.parse(this.sendAndWaitMessageEx('GetSignCertType', jsonstr));
545
- return result.value;
546
- }
547
- }
548
-
549
- /**
550
- * 获取签名摘要算法
551
- * @returns {string} 签名摘要算法
552
- */
553
- getSignHash() {
554
- if (this.useActioveX) {
555
- return window.PNXClient.GetSignHash();
556
- } else {
557
- const jsonstr = '';
558
- const result = JSON.parse(this.sendAndWaitMessageEx('GetSignHash', jsonstr));
559
- return result.value;
560
- }
561
- }
562
-
563
- /**
564
- * 使能调用序列
565
- * @param {boolean} bCallQueueEnable - 是否使能调用序列
566
- * @param {boolean} bHeadInfoEnable - 是否使能头部信息
567
- * @returns {number} 使能结果
568
- */
569
- callQueueEnable(bCallQueueEnable, bHeadInfoEnable) {
570
- if (this.useActioveX) {
571
- return window.PNXClient.CallQueueEnable(bCallQueueEnable, bHeadInfoEnable);
572
- } else {
573
- const jsonstr = { 'bCallQueueEnable': bCallQueueEnable, 'bHeadInfoEnable': bHeadInfoEnable };
574
- const result = JSON.parse(this.sendAndWaitMessageEx('CallQueueEnable', JSON.stringify(jsonstr)));
575
- return result.value;
576
- }
577
- }
578
-
579
- /**
580
- * 清空调用序列结果
581
- * @returns {number} 清空调用序列结果
582
- */
583
- callQueueClear() {
584
- if (this.useActioveX) {
585
- return window.PNXClient.CallQueueClear();
586
- } else {
587
- const jsonstr = '';
588
- const result = JSON.parse(this.sendAndWaitMessageEx('CallQueueClear', jsonstr));
589
- return result.value;
590
- }
591
- }
592
-
593
- /**
594
- * 获取调用序列结果
595
- * @returns {string} 调用序列结果
596
- */
597
- callQueueGet() {
598
- if (this.useActioveX) {
599
- return window.PNXClient.CallQueueGet();
600
- } else {
601
- const jsonstr = '';
602
- const result = JSON.parse(this.sendAndWaitMessageEx('CallQueueGet', jsonstr));
603
- return result.value;
604
- }
605
- }
606
-
607
- /**
608
- * 客户端安全策略检查
609
- * @param {string} strGatewayAddress - 网关地址
610
- * @param {number} usGatewayPort - 网关端口
611
- * @param {string} strSecurityPolicys - 安全策略
612
- * @returns {boolean} 检查结果
613
- */
614
- doClientSecurityCheck(strGatewayAddress, usGatewayPort, strSecurityPolicys) {
615
- if (this.useActioveX) {
616
- return window.PNXClient.DoClientSecurityCheck(strGatewayAddress, usGatewayPort, strSecurityPolicys);
617
- } else {
618
- const jsonstr = { 'strGatewayAddress': strGatewayAddress, 'usGatewayPort': usGatewayPort, 'strSecurityPolicys': strSecurityPolicys };
619
- const result = JSON.parse(this.sendAndWaitMessageEx('DoClientSecurityCheck', JSON.stringify(jsonstr)));
620
- return result.value;
621
- }
622
- }
623
-
624
- /**
625
- * 获取通讯协议版本
626
- * @returns {string} 通讯协议版本
627
- */
628
- getProtocolVersion() {
629
- if (this.useActioveX) {
630
- return window.PNXClient.GetProtocolVersion();
631
- } else {
632
- const jsonstr = '';
633
- const result = JSON.parse(this.sendAndWaitMessageEx('GetProtocolVersion', jsonstr));
634
- return result.value;
635
- }
636
- }
637
-
638
- /**
639
- * 修改 Key 的 Pin 码
640
- * @param {string} strCertSn - 证书序列号
641
- * @param {number} lPinCodeType - Pin 码类型
642
- * @param {string} strCurPinCode - 当前 Pin 码
643
- * @param {string} strNewPinCode - 新 Pin 码
644
- * @returns {number} 修改结果
645
- */
646
- changePinCode(strCertSn, lPinCodeType, strCurPinCode, strNewPinCode) {
647
- if (this.useActioveX) {
648
- return window.PNXClient.ChangePinCode(strCertSn, lPinCodeType, strCurPinCode, strNewPinCode);
649
- } else {
650
- const jsonstr = { 'strCertSn': strCertSn, 'lPinCodeType': lPinCodeType, 'strCurPinCode': strCurPinCode, 'strNewPinCode': strNewPinCode };
651
- const result = JSON.parse(this.sendAndWaitMessageEx('ChangePinCode', JSON.stringify(jsonstr)));
652
- return result.value;
653
- }
654
- }
655
-
656
- /**
657
- * 等待策略设置完毕
658
- * @param {string} strGatewayAddress - 网关地址
659
- * @returns {number} 等待结果
660
- */
661
- waitSetPolicyFinish(strGatewayAddress) {
662
- if (this.useActioveX) {
663
- return window.PNXClient.WaitSetPolicyFinish(strGatewayAddress);
664
- } else {
665
- const jsonstr = { 'strGatewayAddress': strGatewayAddress };
666
- const result = JSON.parse(this.sendAndWaitMessageEx('WaitSetPolicyFinish', JSON.stringify(jsonstr)));
667
- return result.value;
668
- }
669
- }
670
-
671
- /**
672
- * 获取会话 Token
673
- * @param {string} strGatewayAddress - 网关地址
674
- * @returns {string} 会话 Token
675
- */
676
- getSessionToken(strGatewayAddress) {
677
- if (this.useActioveX) {
678
- return window.PNXClient.GetSessionToken(strGatewayAddress);
679
- } else {
680
- const jsonstr = { 'strGatewayAddress': strGatewayAddress };
681
- const result = JSON.parse(this.sendAndWaitMessageEx('GetSessionToken', JSON.stringify(jsonstr)));
682
- return result.value;
683
- }
684
- }
685
-
686
- /**
687
- * 获取控件版本
688
- * @returns {string} 控件版本
689
- */
690
- getVersion() {
691
- if (this.useActioveX) {
692
- return window.PNXClient.GetVersion();
693
- } else {
694
- const jsonstr = '';
695
- const result = JSON.parse(this.sendAndWaitMessageEx('GetVersion', jsonstr));
696
- return result.value;
697
- }
698
- }
699
-
700
- /**
701
- * 设置语言资源
702
- * @param {string} strLanguage - 语言资源
703
- * @returns {number} 设置结果
704
- */
705
- setLanguage(strLanguage) {
706
- if (this.useActioveX) {
707
- return window.PNXClient.SetLanguage(strLanguage);
708
- } else {
709
- const jsonstr = { 'strLanguage': strLanguage };
710
- const result = JSON.parse(this.sendAndWaitMessageEx('SetLanguage', JSON.stringify(jsonstr)));
711
- return result.value;
712
- }
713
- }
714
-
715
- /**
716
- * 获取用户属性
717
- * @param {string} strGatewayAddress - 网关地址
718
- * @param {string} strAppFlag - 应用标识
719
- * @param {string} strAttributeName - 属性名称
720
- * @returns {string} 用户属性值
721
- */
722
- getAttribute(strGatewayAddress, strAppFlag, strAttributeName) {
723
- if (this.useActioveX) {
724
- return window.PNXClient.GetAttribute(strGatewayAddress, strAppFlag, strAttributeName);
725
- } else {
726
- const jsonstr = { 'strGatewayAddress': strGatewayAddress, 'strAppFlag': strAppFlag, 'strAttributeName': strAttributeName };
727
- const result = JSON.parse(this.sendAndWaitMessageEx('GetAttribute', JSON.stringify(jsonstr)));
728
- return result.value;
729
- }
730
- }
731
-
732
- /**
733
- * 获取签名加密 PIN 码
734
- * @returns {string} 签名加密 PIN 码
735
- */
736
- getPinCode() {
737
- if (this.useActioveX) {
738
- return window.PNXClient.GetPinCode();
739
- } else {
740
- const jsonstr = '';
741
- const result = JSON.parse(this.sendAndWaitMessageEx('GetPinCode', jsonstr));
742
- return result.value;
743
- }
744
- }
745
- }
746
-
747
- const caPlugin = new CA_ExtInterface();
748
- export default caPlugin;
1
+ /**
2
+ * JIT_GW_ExtInterface 模块,提供与客户端交互的功能
3
+ */
4
+ class CA_ExtInterface {
5
+ constructor() {
6
+ this.currentSessionWSURL = '';
7
+ this.useActioveX = false;
8
+ this.options = {};
9
+ }
10
+
11
+ /**
12
+ * 简单的 Object.assign 兼容 IE <= 11 的 polyfill
13
+ * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
14
+ * @param {Object} target - 目标对象
15
+ * @param {Object} options - 新的选项对象
16
+ */
17
+ extendOptions(target, options) {
18
+ if (typeof Object.assign === 'function') {
19
+ Object.assign(target, options);
20
+ } else {
21
+ // 兼容 IE < 11
22
+ for (const key in options) {
23
+ target[key] = options[key];
24
+ }
25
+ }
26
+ }
27
+
28
+ /**
29
+ * 检查当前会话的 WebSocket URL
30
+ */
31
+ checkSessionWSURL() {
32
+ if (this.currentSessionWSURL === '') {
33
+ if (document.location.protocol === 'https:') {
34
+ this.currentSessionWSURL = this.sendAndWaitMessage('https://127.0.0.1:10087/', 'QueryService');
35
+ } else {
36
+ this.currentSessionWSURL = this.sendAndWaitMessage('http://127.0.0.1:10086/', 'QueryService');
37
+ }
38
+ }
39
+ }
40
+
41
+ /**
42
+ * 检查是否使用 ActiveX
43
+ */
44
+ isUseActioveX() {
45
+ if (!!window.ActiveXObject || 'ActiveXObject' in window) {
46
+ this.useActioveX = true;
47
+ } else {
48
+ this.useActioveX = false;
49
+ }
50
+ }
51
+
52
+ /**
53
+ * 扩展发送消息并等待响应
54
+ * @param {string} operatorCmd - 操作命令
55
+ * @param {string} sendMsg - 发送的消息
56
+ * @returns {string} 响应消息
57
+ */
58
+ sendAndWaitMessageEx(operatorCmd, sendMsg) {
59
+ this.checkSessionWSURL();
60
+ const strSendMsg = operatorCmd + ':' + sendMsg;
61
+ return this.sendAndWaitMessage(this.currentSessionWSURL, strSendMsg);
62
+ }
63
+
64
+ /**
65
+ * 发送消息并等待响应
66
+ * @param {string} wsurl - WebSocket URL
67
+ * @param {string} sendMsg - 发送的消息
68
+ * @returns {string} 响应消息
69
+ */
70
+ sendAndWaitMessage(wsurl, sendMsg) {
71
+ let ResultMsg = '{"value":""}';
72
+ if (ResultMsg === wsurl) {
73
+ return;
74
+ }
75
+ try {
76
+ const globalXmlHttpRequest = new XMLHttpRequest();
77
+ globalXmlHttpRequest.open('POST', wsurl, false);
78
+ globalXmlHttpRequest.setRequestHeader('Content-Type', 'text/plain;charset=UTF-8');
79
+ globalXmlHttpRequest.send(sendMsg);
80
+ ResultMsg = globalXmlHttpRequest.responseText;
81
+ } catch (e) {
82
+ this.currentSessionWSURL = '';
83
+ if (this.options.onError) {
84
+ this.options.onError.call(undefined, e);
85
+ }
86
+ }
87
+ return ResultMsg;
88
+ }
89
+
90
+ /**
91
+ * 配置选项
92
+ * @param {Object} extendOption - 扩展选项
93
+ */
94
+ config(extendOption) {
95
+ if (extendOption && typeof extendOption === 'object') {
96
+ this.extendOptions(this.options, extendOption);
97
+ }
98
+ }
99
+
100
+ /**
101
+ * 初始化
102
+ */
103
+ init() {
104
+ this.isUseActioveX();
105
+ }
106
+
107
+ /**
108
+ * 返回客户端的版本
109
+ * @returns {string} 客户端版本
110
+ */
111
+ getClientVersion() {
112
+ if (this.useActioveX) {
113
+ return window.PNXClient.GetClientVersion();
114
+ } else {
115
+ const result = JSON.parse(this.sendAndWaitMessageEx('GetClientVersion', ''));
116
+ return result.value;
117
+ }
118
+ }
119
+
120
+ /**
121
+ * 下载客户端程序并安装
122
+ * @param {string} bstrURL - 下载地址
123
+ * @param {string} bstrHashValue - 哈希值
124
+ * @param {boolean} bSync - 是否同步安装
125
+ * @param {boolean} bOnlySSO - 是否仅安装 SSO
126
+ * @returns {number} 安装结果
127
+ */
128
+ setupClient(bstrURL, bstrHashValue, bSync, bOnlySSO) {
129
+ if (this.useActioveX) {
130
+ return window.PNXClient.SetupClient(bstrURL, bstrHashValue, bSync, bOnlySSO);
131
+ } else {
132
+ const jsonstr = { 'strURL': bstrURL, 'strHashValue': bstrHashValue, 'bSync': bSync, 'bOnlySSO': bOnlySSO };
133
+ const result = JSON.parse(this.sendAndWaitMessageEx('SetupClient', JSON.stringify(jsonstr)));
134
+ return result.value;
135
+ }
136
+ }
137
+
138
+ /**
139
+ * 获取硬件指纹信息
140
+ * @param {number} dwSign - 签名
141
+ * @param {string} strGateWayIP - 网关 IP
142
+ * @returns {string} 硬件指纹信息
143
+ */
144
+ getFinger(dwSign, strGateWayIP) {
145
+ if (this.useActioveX) {
146
+ return window.PNXClient.GetFinger(dwSign, strGateWayIP);
147
+ } else {
148
+ const jsonstr = { 'dwSign': dwSign, 'strGateWayIP': strGateWayIP };
149
+ const result = JSON.parse(this.sendAndWaitMessageEx('GetFinger', JSON.stringify(jsonstr)));
150
+ return result.value;
151
+ }
152
+ }
153
+
154
+ /**
155
+ * 设置转发策略和代填策略
156
+ * @param {string} strProxyPolicy - 转发策略
157
+ * @param {string} strSSOPolicy - 代填策略
158
+ * @param {string} strGatewayAddress - 网关地址
159
+ * @returns {number} 设置结果
160
+ */
161
+ setPolicy(strProxyPolicy, strSSOPolicy, strGatewayAddress) {
162
+ if (this.useActioveX) {
163
+ return window.PNXClient.SetPolicy(strProxyPolicy, strSSOPolicy, strGatewayAddress);
164
+ } else {
165
+ const jsonstr = { 'strProxyPolicy': strProxyPolicy, 'strSSOPolicy': strSSOPolicy, 'strGatewayAddress': strGatewayAddress };
166
+ const result = JSON.parse(this.sendAndWaitMessageEx('SetPolicy', JSON.stringify(jsonstr)));
167
+ return result.value;
168
+ }
169
+ }
170
+
171
+ /**
172
+ * 启动认证信息模块
173
+ * @param {string} strFileName - 文件名
174
+ * @param {string} strXmlData - XML 数据
175
+ * @returns {string} 认证信息
176
+ */
177
+ getAuthToken(strFileName, strXmlData) {
178
+ if (this.useActioveX) {
179
+ return window.PNXClient.GetAuthToken(strFileName, strXmlData);
180
+ } else {
181
+ const jsonstr = { 'strFileName': strFileName, 'strXmlData': strXmlData };
182
+ const result = JSON.parse(this.sendAndWaitMessageEx('GetAuthToken', JSON.stringify(jsonstr)));
183
+ return result.value;
184
+ }
185
+ }
186
+
187
+ /**
188
+ * 打开 BS 应用
189
+ * @param {string} strUrl - 应用 URL
190
+ * @returns {number} 打开结果
191
+ */
192
+ navigateURL(strUrl) {
193
+ if (this.useActioveX) {
194
+ return window.PNXClient.NavigateURL(strUrl);
195
+ } else {
196
+ const jsonstr = { 'strUrl': strUrl };
197
+ const result = JSON.parse(this.sendAndWaitMessageEx('NavigateURL', JSON.stringify(jsonstr)));
198
+ return result.value;
199
+ }
200
+ }
201
+
202
+ /**
203
+ * 打开 CS 应用
204
+ * @param {string} strGatewayAddress - 网关地址
205
+ * @param {string} strAppFlag - 应用标识
206
+ * @param {string} strAppPath - 应用路径
207
+ * @returns {number} 打开结果
208
+ */
209
+ executeCS(strGatewayAddress, strAppFlag, strAppPath) {
210
+ if (this.useActioveX) {
211
+ return window.PNXClient.ExecuteCS(strGatewayAddress, strAppFlag, strAppPath);
212
+ } else {
213
+ const jsonstr = { 'strGatewayAddress': strGatewayAddress, 'strAppFlag': strAppFlag, 'strAppPath': strAppPath };
214
+ const result = JSON.parse(this.sendAndWaitMessageEx('ExecuteCS', JSON.stringify(jsonstr)));
215
+ return result.value;
216
+ }
217
+ }
218
+
219
+ /**
220
+ * 设置自动更新策略
221
+ * @param {string} strGatewayAddress - 网关地址
222
+ * @param {number} nGatewayPort - 网关端口
223
+ * @param {string} strUserToken - 用户令牌
224
+ * @param {number} updatedelay - 更新延迟
225
+ * @returns {number} 设置结果
226
+ */
227
+ setUpdatePolicy(strGatewayAddress, nGatewayPort, strUserToken, updatedelay) {
228
+ if (this.useActioveX) {
229
+ return window.PNXClient.SetUpdatePolicy(strGatewayAddress, nGatewayPort, strUserToken, updatedelay);
230
+ } else {
231
+ const jsonstr = { 'strGatewayAddress': strGatewayAddress, 'nGatewayPort': nGatewayPort, 'strUserToken': strUserToken, 'ulUpdateDelay': updatedelay };
232
+ const result = JSON.parse(this.sendAndWaitMessageEx('SetUpdatePolicy', JSON.stringify(jsonstr)));
233
+ return result.value;
234
+ }
235
+ }
236
+
237
+ /**
238
+ * 获取客户端 IP
239
+ * @param {string} strGatewayIP - 网关 IP
240
+ * @returns {string} 客户端 IP
241
+ */
242
+ getClientIP(strGatewayIP) {
243
+ if (this.useActioveX) {
244
+ return window.PNXClient.GetClientIP(strGatewayIP);
245
+ } else {
246
+ const jsonstr = { 'strGatewayIP': strGatewayIP };
247
+ const result = JSON.parse(this.sendAndWaitMessageEx('GetClientIP', JSON.stringify(jsonstr)));
248
+ return result.value;
249
+ }
250
+ }
251
+
252
+ /**
253
+ * 登出网关
254
+ * @param {string} strServerIP - 服务器 IP
255
+ * @returns {number} 登出结果
256
+ */
257
+ gwLogout(strServerIP) {
258
+ if (this.useActioveX) {
259
+ return window.PNXClient.GWLogout(strServerIP);
260
+ } else {
261
+ const jsonstr = { 'strServerIP': strServerIP };
262
+ const result = JSON.parse(this.sendAndWaitMessageEx('GWLogout', JSON.stringify(jsonstr)));
263
+ return result.value;
264
+ }
265
+ }
266
+
267
+ /**
268
+ * 运行安装包
269
+ * @param {number} lRunType - 运行类型
270
+ * @param {boolean} bIsOnlySSO - 是否仅安装 SSO
271
+ * @returns {number} 运行结果
272
+ */
273
+ runSetup(lRunType, bIsOnlySSO) {
274
+ if (this.useActioveX) {
275
+ return window.PNXClient.RunSetup(lRunType, bIsOnlySSO);
276
+ } else {
277
+ const jsonstr = { 'lRunType': lRunType, 'bIsOnlySSO': bIsOnlySSO };
278
+ const result = JSON.parse(this.sendAndWaitMessageEx('RunSetup', JSON.stringify(jsonstr)));
279
+ return result.value;
280
+ }
281
+ }
282
+
283
+ /**
284
+ * 获取下载进度
285
+ * @returns {number} 下载进度
286
+ */
287
+ getDownloadProgress() {
288
+ if (this.useActioveX) {
289
+ return window.PNXClient.GetDownloadProgress();
290
+ } else {
291
+ const jsonstr = '';
292
+ const result = JSON.parse(this.sendAndWaitMessageEx('GetDownloadProgress', jsonstr));
293
+ return result.value;
294
+ }
295
+ }
296
+
297
+ /**
298
+ * 是否安装完成
299
+ * @returns {boolean} 安装完成状态
300
+ */
301
+ isInstallComplete() {
302
+ if (this.useActioveX) {
303
+ return window.PNXClient.IsInstallComplete();
304
+ } else {
305
+ const jsonstr = '';
306
+ const result = JSON.parse(this.sendAndWaitMessageEx('IsInstallComplete', jsonstr));
307
+ return result.value;
308
+ }
309
+ }
310
+
311
+ /**
312
+ * 初始化签包对象
313
+ * @param {string} strAlgType - 算法类型
314
+ * @param {string} strAuxParam - 辅助参数
315
+ * @returns {number} 初始化结果
316
+ */
317
+ initialize(strAlgType, strAuxParam) {
318
+ if (this.useActioveX) {
319
+ return window.PNXClient.Initialize(strAlgType, strAuxParam);
320
+ } else {
321
+ const jsonstr = { 'strAlgType': strAlgType, 'strAuxParam': strAuxParam };
322
+ const result = JSON.parse(this.sendAndWaitMessageEx('Initialize', JSON.stringify(jsonstr)));
323
+ return result.value;
324
+ }
325
+ }
326
+
327
+ /**
328
+ * 设置摘要算法
329
+ * @param {string} strDigestAlg - 摘要算法
330
+ * @returns {number} 设置结果
331
+ */
332
+ setDigestAlg(strDigestAlg) {
333
+ if (this.useActioveX) {
334
+ return window.PNXClient.SetDigestAlg(strDigestAlg);
335
+ } else {
336
+ const jsonstr = { 'strDigestAlg': strDigestAlg };
337
+ const result = JSON.parse(this.sendAndWaitMessageEx('SetDigestAlg', JSON.stringify(jsonstr)));
338
+ return result.value;
339
+ }
340
+ }
341
+
342
+ /**
343
+ * 设置单证书是否弹出对话框
344
+ * @param {number} isChoose - 是否弹出对话框
345
+ * @returns {number} 设置结果
346
+ */
347
+ setChooseSingleCert(isChoose) {
348
+ if (this.useActioveX) {
349
+ return window.PNXClient.SetChooseSingleCert(isChoose);
350
+ } else {
351
+ const jsonstr = { 'isChoose': isChoose };
352
+ const result = JSON.parse(this.sendAndWaitMessageEx('SetChooseSingleCert', JSON.stringify(jsonstr)));
353
+ return result.value;
354
+ }
355
+ }
356
+
357
+ /**
358
+ * 添加证书过滤条件
359
+ * @param {number} ulType - 过滤类型
360
+ * @param {string} strValue - 过滤值
361
+ * @returns {number} 添加结果
362
+ */
363
+ addFilter(ulType, strValue) {
364
+ if (this.useActioveX) {
365
+ return window.PNXClient.AddFilter(ulType, strValue);
366
+ } else {
367
+ const jsonstr = { 'ulType': ulType, 'strValue': strValue };
368
+ const result = JSON.parse(this.sendAndWaitMessageEx('AddFilter', JSON.stringify(jsonstr)));
369
+ return result.value;
370
+ }
371
+ }
372
+
373
+ /**
374
+ * 清除所有过滤条件
375
+ * @returns {number} 清除结果
376
+ */
377
+ clearFilter() {
378
+ if (this.useActioveX) {
379
+ return window.PNXClient.ClearFilter();
380
+ } else {
381
+ const jsonstr = '';
382
+ const result = JSON.parse(this.sendAndWaitMessageEx('ClearFilter', jsonstr));
383
+ return result.value;
384
+ }
385
+ }
386
+
387
+ /**
388
+ * P1 签名
389
+ * @param {string} strValueBase64 - 待签名的 Base64 字符串
390
+ * @returns {string} 签名结果
391
+ */
392
+ p1Sign(strValueBase64) {
393
+ if (this.useActioveX) {
394
+ return window.PNXClient.P1Sign(strValueBase64);
395
+ } else {
396
+ const jsonstr = { 'strValueBase64': strValueBase64 };
397
+ const result = JSON.parse(this.sendAndWaitMessageEx('P1Sign', JSON.stringify(jsonstr)));
398
+ return result.value;
399
+ }
400
+ }
401
+
402
+ /**
403
+ * P1 签名字符串
404
+ * @param {string} strValue - 待签名的字符串
405
+ * @returns {string} 签名结果
406
+ */
407
+ p1SignString(strValue) {
408
+ if (this.useActioveX) {
409
+ return window.PNXClient.P1SignString(strValue);
410
+ } else {
411
+ const jsonstr = { 'strValue': strValue };
412
+ const result = JSON.parse(this.sendAndWaitMessageEx('P1SignString', JSON.stringify(jsonstr)));
413
+ return result.value;
414
+ }
415
+ }
416
+
417
+ /**
418
+ * P7 签名
419
+ * @param {string} strValueBase64 - 待签名的 Base64 字符串
420
+ * @param {boolean} isDetach - 是否分离签名
421
+ * @param {boolean} isIncludeCert - 是否包含证书
422
+ * @returns {string} 签名结果
423
+ */
424
+ p7Sign(strValueBase64, isDetach, isIncludeCert) {
425
+ if (this.useActioveX) {
426
+ return window.PNXClient.P7Sign(strValueBase64, isDetach, isIncludeCert);
427
+ } else {
428
+ const jsonstr = { 'strValueBase64': strValueBase64, 'isDetach': isDetach, 'isIncludeCert': isIncludeCert };
429
+ const result = JSON.parse(this.sendAndWaitMessageEx('P7Sign', JSON.stringify(jsonstr)));
430
+ return result.value;
431
+ }
432
+ }
433
+
434
+ /**
435
+ * P7 签名字符串
436
+ * @param {string} strValue - 待签名的字符串
437
+ * @param {boolean} isDetach - 是否分离签名
438
+ * @param {boolean} isIncludeCert - 是否包含证书
439
+ * @returns {string} 签名结果
440
+ */
441
+ p7SignString(strValue, isDetach, isIncludeCert) {
442
+ if (this.useActioveX) {
443
+ return window.PNXClient.P7SignString(strValue, isDetach, isIncludeCert);
444
+ } else {
445
+ const jsonstr = { 'strValue': strValue, 'isDetach': isDetach, 'isIncludeCert': isIncludeCert };
446
+ const result = JSON.parse(this.sendAndWaitMessageEx('P7SignString', JSON.stringify(jsonstr)));
447
+ return result.value;
448
+ }
449
+ }
450
+
451
+ /**
452
+ * 释放签名对象
453
+ * @returns {number} 释放结果
454
+ */
455
+ finalize() {
456
+ if (this.useActioveX) {
457
+ return window.PNXClient.Finalize();
458
+ } else {
459
+ const jsonstr = '';
460
+ const result = JSON.parse(this.sendAndWaitMessageEx('Finalize', jsonstr));
461
+ return result.value;
462
+ }
463
+ }
464
+
465
+ /**
466
+ * 获取签名版本
467
+ * @returns {string} 签名版本
468
+ */
469
+ getSignVersion() {
470
+ if (this.useActioveX) {
471
+ return window.PNXClient.GetSignVersion();
472
+ } else {
473
+ const jsonstr = '';
474
+ const result = JSON.parse(this.sendAndWaitMessageEx('GetSignVersion', jsonstr));
475
+ return result.value;
476
+ }
477
+ }
478
+
479
+ /**
480
+ * 获取签名证书
481
+ * @returns {string} 签名证书
482
+ */
483
+ getSignCert() {
484
+ if (this.useActioveX) {
485
+ return window.PNXClient.GetSignCert();
486
+ } else {
487
+ const jsonstr = '';
488
+ const result = JSON.parse(this.sendAndWaitMessageEx('GetSignCert', jsonstr));
489
+ return result.value;
490
+ }
491
+ }
492
+
493
+ /**
494
+ * 获取错误码
495
+ * @returns {number} 错误码
496
+ */
497
+ getLastError() {
498
+ if (this.useActioveX) {
499
+ return window.PNXClient.GetLastError();
500
+ } else {
501
+ const jsonstr = '';
502
+ const result = JSON.parse(this.sendAndWaitMessageEx('GetLastError', jsonstr));
503
+ return result.value;
504
+ }
505
+ }
506
+
507
+ /**
508
+ * 获取错误信息
509
+ * @returns {string} 错误信息
510
+ */
511
+ getLastErrorMessage() {
512
+ if (this.useActioveX) {
513
+ return window.PNXClient.GetLastErrorMessage();
514
+ } else {
515
+ const jsonstr = '';
516
+ const result = JSON.parse(this.sendAndWaitMessageEx('GetLastErrorMessage', jsonstr));
517
+ return result.value;
518
+ }
519
+ }
520
+
521
+ /**
522
+ * 销毁认证对象
523
+ * @returns {number} 销毁结果
524
+ */
525
+ destoryAuth() {
526
+ if (this.useActioveX) {
527
+ return window.PNXClient.DestoryAuth();
528
+ } else {
529
+ const jsonstr = '';
530
+ const result = JSON.parse(this.sendAndWaitMessageEx('DestoryAuth', jsonstr));
531
+ return result.value;
532
+ }
533
+ }
534
+
535
+ /**
536
+ * 获取证书类型
537
+ * @returns {string} 证书类型
538
+ */
539
+ getSignCertType() {
540
+ if (this.useActioveX) {
541
+ return window.PNXClient.GetSignCertType();
542
+ } else {
543
+ const jsonstr = '';
544
+ const result = JSON.parse(this.sendAndWaitMessageEx('GetSignCertType', jsonstr));
545
+ return result.value;
546
+ }
547
+ }
548
+
549
+ /**
550
+ * 获取签名摘要算法
551
+ * @returns {string} 签名摘要算法
552
+ */
553
+ getSignHash() {
554
+ if (this.useActioveX) {
555
+ return window.PNXClient.GetSignHash();
556
+ } else {
557
+ const jsonstr = '';
558
+ const result = JSON.parse(this.sendAndWaitMessageEx('GetSignHash', jsonstr));
559
+ return result.value;
560
+ }
561
+ }
562
+
563
+ /**
564
+ * 使能调用序列
565
+ * @param {boolean} bCallQueueEnable - 是否使能调用序列
566
+ * @param {boolean} bHeadInfoEnable - 是否使能头部信息
567
+ * @returns {number} 使能结果
568
+ */
569
+ callQueueEnable(bCallQueueEnable, bHeadInfoEnable) {
570
+ if (this.useActioveX) {
571
+ return window.PNXClient.CallQueueEnable(bCallQueueEnable, bHeadInfoEnable);
572
+ } else {
573
+ const jsonstr = { 'bCallQueueEnable': bCallQueueEnable, 'bHeadInfoEnable': bHeadInfoEnable };
574
+ const result = JSON.parse(this.sendAndWaitMessageEx('CallQueueEnable', JSON.stringify(jsonstr)));
575
+ return result.value;
576
+ }
577
+ }
578
+
579
+ /**
580
+ * 清空调用序列结果
581
+ * @returns {number} 清空调用序列结果
582
+ */
583
+ callQueueClear() {
584
+ if (this.useActioveX) {
585
+ return window.PNXClient.CallQueueClear();
586
+ } else {
587
+ const jsonstr = '';
588
+ const result = JSON.parse(this.sendAndWaitMessageEx('CallQueueClear', jsonstr));
589
+ return result.value;
590
+ }
591
+ }
592
+
593
+ /**
594
+ * 获取调用序列结果
595
+ * @returns {string} 调用序列结果
596
+ */
597
+ callQueueGet() {
598
+ if (this.useActioveX) {
599
+ return window.PNXClient.CallQueueGet();
600
+ } else {
601
+ const jsonstr = '';
602
+ const result = JSON.parse(this.sendAndWaitMessageEx('CallQueueGet', jsonstr));
603
+ return result.value;
604
+ }
605
+ }
606
+
607
+ /**
608
+ * 客户端安全策略检查
609
+ * @param {string} strGatewayAddress - 网关地址
610
+ * @param {number} usGatewayPort - 网关端口
611
+ * @param {string} strSecurityPolicys - 安全策略
612
+ * @returns {boolean} 检查结果
613
+ */
614
+ doClientSecurityCheck(strGatewayAddress, usGatewayPort, strSecurityPolicys) {
615
+ if (this.useActioveX) {
616
+ return window.PNXClient.DoClientSecurityCheck(strGatewayAddress, usGatewayPort, strSecurityPolicys);
617
+ } else {
618
+ const jsonstr = { 'strGatewayAddress': strGatewayAddress, 'usGatewayPort': usGatewayPort, 'strSecurityPolicys': strSecurityPolicys };
619
+ const result = JSON.parse(this.sendAndWaitMessageEx('DoClientSecurityCheck', JSON.stringify(jsonstr)));
620
+ return result.value;
621
+ }
622
+ }
623
+
624
+ /**
625
+ * 获取通讯协议版本
626
+ * @returns {string} 通讯协议版本
627
+ */
628
+ getProtocolVersion() {
629
+ if (this.useActioveX) {
630
+ return window.PNXClient.GetProtocolVersion();
631
+ } else {
632
+ const jsonstr = '';
633
+ const result = JSON.parse(this.sendAndWaitMessageEx('GetProtocolVersion', jsonstr));
634
+ return result.value;
635
+ }
636
+ }
637
+
638
+ /**
639
+ * 修改 Key 的 Pin 码
640
+ * @param {string} strCertSn - 证书序列号
641
+ * @param {number} lPinCodeType - Pin 码类型
642
+ * @param {string} strCurPinCode - 当前 Pin 码
643
+ * @param {string} strNewPinCode - 新 Pin 码
644
+ * @returns {number} 修改结果
645
+ */
646
+ changePinCode(strCertSn, lPinCodeType, strCurPinCode, strNewPinCode) {
647
+ if (this.useActioveX) {
648
+ return window.PNXClient.ChangePinCode(strCertSn, lPinCodeType, strCurPinCode, strNewPinCode);
649
+ } else {
650
+ const jsonstr = { 'strCertSn': strCertSn, 'lPinCodeType': lPinCodeType, 'strCurPinCode': strCurPinCode, 'strNewPinCode': strNewPinCode };
651
+ const result = JSON.parse(this.sendAndWaitMessageEx('ChangePinCode', JSON.stringify(jsonstr)));
652
+ return result.value;
653
+ }
654
+ }
655
+
656
+ /**
657
+ * 等待策略设置完毕
658
+ * @param {string} strGatewayAddress - 网关地址
659
+ * @returns {number} 等待结果
660
+ */
661
+ waitSetPolicyFinish(strGatewayAddress) {
662
+ if (this.useActioveX) {
663
+ return window.PNXClient.WaitSetPolicyFinish(strGatewayAddress);
664
+ } else {
665
+ const jsonstr = { 'strGatewayAddress': strGatewayAddress };
666
+ const result = JSON.parse(this.sendAndWaitMessageEx('WaitSetPolicyFinish', JSON.stringify(jsonstr)));
667
+ return result.value;
668
+ }
669
+ }
670
+
671
+ /**
672
+ * 获取会话 Token
673
+ * @param {string} strGatewayAddress - 网关地址
674
+ * @returns {string} 会话 Token
675
+ */
676
+ getSessionToken(strGatewayAddress) {
677
+ if (this.useActioveX) {
678
+ return window.PNXClient.GetSessionToken(strGatewayAddress);
679
+ } else {
680
+ const jsonstr = { 'strGatewayAddress': strGatewayAddress };
681
+ const result = JSON.parse(this.sendAndWaitMessageEx('GetSessionToken', JSON.stringify(jsonstr)));
682
+ return result.value;
683
+ }
684
+ }
685
+
686
+ /**
687
+ * 获取控件版本
688
+ * @returns {string} 控件版本
689
+ */
690
+ getVersion() {
691
+ if (this.useActioveX) {
692
+ return window.PNXClient.GetVersion();
693
+ } else {
694
+ const jsonstr = '';
695
+ const result = JSON.parse(this.sendAndWaitMessageEx('GetVersion', jsonstr));
696
+ return result.value;
697
+ }
698
+ }
699
+
700
+ /**
701
+ * 设置语言资源
702
+ * @param {string} strLanguage - 语言资源
703
+ * @returns {number} 设置结果
704
+ */
705
+ setLanguage(strLanguage) {
706
+ if (this.useActioveX) {
707
+ return window.PNXClient.SetLanguage(strLanguage);
708
+ } else {
709
+ const jsonstr = { 'strLanguage': strLanguage };
710
+ const result = JSON.parse(this.sendAndWaitMessageEx('SetLanguage', JSON.stringify(jsonstr)));
711
+ return result.value;
712
+ }
713
+ }
714
+
715
+ /**
716
+ * 获取用户属性
717
+ * @param {string} strGatewayAddress - 网关地址
718
+ * @param {string} strAppFlag - 应用标识
719
+ * @param {string} strAttributeName - 属性名称
720
+ * @returns {string} 用户属性值
721
+ */
722
+ getAttribute(strGatewayAddress, strAppFlag, strAttributeName) {
723
+ if (this.useActioveX) {
724
+ return window.PNXClient.GetAttribute(strGatewayAddress, strAppFlag, strAttributeName);
725
+ } else {
726
+ const jsonstr = { 'strGatewayAddress': strGatewayAddress, 'strAppFlag': strAppFlag, 'strAttributeName': strAttributeName };
727
+ const result = JSON.parse(this.sendAndWaitMessageEx('GetAttribute', JSON.stringify(jsonstr)));
728
+ return result.value;
729
+ }
730
+ }
731
+
732
+ /**
733
+ * 获取签名加密 PIN 码
734
+ * @returns {string} 签名加密 PIN 码
735
+ */
736
+ getPinCode() {
737
+ if (this.useActioveX) {
738
+ return window.PNXClient.GetPinCode();
739
+ } else {
740
+ const jsonstr = '';
741
+ const result = JSON.parse(this.sendAndWaitMessageEx('GetPinCode', jsonstr));
742
+ return result.value;
743
+ }
744
+ }
745
+ }
746
+
747
+ const caPlugin = new CA_ExtInterface();
748
+ export default caPlugin;