react_hsbc_teller 2.0.5 → 2.0.6-5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +39 -39
- package/README.en.md +36 -36
- package/README.md +352 -52
- package/config/webpack.config.js +119 -119
- package/config/webpack.dev.js +108 -108
- package/config/webpack.prod.js +104 -104
- package/lib/hsbc.js +1 -1
- package/lib/hsbc.js.LICENSE.txt +24 -16
- package/package.json +110 -109
- package/packages/api/api.js +818 -570
- package/packages/api/server.js +50 -50
- package/packages/assets/img/icon_fail.jpg +0 -0
- package/packages/assets/img/icon_paper.png +0 -0
- package/packages/assets/img/icon_success.jpg +0 -0
- package/packages/assets/mp3/ipad_join_meeting.mp3 +0 -0
- package/packages/assets/mp3/ipad_leave_error.mp3 +0 -0
- package/packages/assets/mp3/ipad_leave_meeting.mp3 +0 -0
- package/packages/assets/mp3/ipad_low_power.mp3 +0 -0
- package/packages/assets/mp3/ipad_media_close.mp3 +0 -0
- package/packages/assets/mp3/media_error.mp3 +0 -0
- package/packages/assets/mp3/networkweak.mp3 +0 -0
- package/packages/assets/mp3/pip_close.mp3 +0 -0
- package/packages/assets/mp3/record_error.mp3 +0 -0
- package/packages/assets/mp3/share_stop_audio.mp3 +0 -0
- package/packages/common/index.esm.js +374 -374
- package/packages/demo/demo.js +307 -279
- package/packages/demo/index.js +3 -3
- package/packages/demo/pdf.js +94 -79
- package/packages/envconfig/envconfig.js +12 -12
- package/packages/index.js +2 -2
- package/packages/pages/components/step/step.jsx +25 -31
- package/packages/pages/foot/foot.jsx +235 -234
- package/packages/pages/foot/foot.less +85 -85
- package/packages/pages/header/header.jsx +15 -15
- package/packages/pages/header/header.less +51 -51
- package/packages/pages/index.jsx +52 -52
- package/packages/pages/multiModule/components/copy/agree.jsx +115 -0
- package/packages/pages/multiModule/components/copy/agree.less +105 -0
- package/packages/pages/multiModule/components/copy/copyTwo.jsx +682 -0
- package/packages/pages/multiModule/components/copy/copyTwo.less +180 -0
- package/packages/pages/multiModule/components/copy/copy_en.jsx +368 -0
- package/packages/pages/multiModule/components/copy/copy_en.less +145 -0
- package/packages/pages/multiModule/components/copy/copylist.jsx +291 -0
- package/packages/pages/multiModule/components/copy/copylist.less +83 -0
- package/packages/pages/multiModule/components/copy/risk.jsx +296 -0
- package/packages/pages/multiModule/components/copy/risk.less +123 -0
- package/packages/pages/multiModule/components/sign/signMy.jsx +308 -0
- package/packages/pages/multiModule/components/sign/signMy.less +128 -0
- package/packages/pages/multiModule/components/subscribe/subscribe.jsx +113 -0
- package/packages/pages/multiModule/components/subscribe/subscribe.less +82 -0
- package/packages/pages/multiModule/multiModule.jsx +26 -0
- package/packages/pages/multiModule/multiModule.less +20 -0
- package/packages/pages/sign/signMy.jsx +223 -221
- package/packages/pages/sign/signMy.less +129 -129
- package/packages/pages/video/video.jsx +7751 -6164
- package/packages/pages/video/video.less +718 -635
- package/packages/style/index.less +1 -1
- package/packages/style/reset.less +345 -345
- package/packages/utils/asrController.js +259 -0
- package/packages/utils/asyncComponent.jsx +26 -26
- package/packages/utils/mixin.js +27 -27
- package/packages/utils/setRem.js +10 -10
- package/packages/utils/utils.js +199 -0
- package/public/index.html +77 -77
- package/src/index.js +11 -11
- package/src/index.less +5 -5
- package/tsconfig.json +11 -11
- package/packages/common/JKL.js +0 -61
- package/packages/common/XML.js +0 -271
- package/packages/common/websocket.js +0 -267
- package/packages/utils/cell.js +0 -64
package/public/index.html
CHANGED
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8"/>
|
|
5
|
-
<link rel="shortcut icon" href="favicon.ico">
|
|
6
|
-
<meta content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport" />
|
|
7
|
-
<!-- // 强制Chromium内核,作用于360浏览器、QQ浏览器等国产双核浏览器: -->
|
|
8
|
-
<meta name="renderer" content="webkit"/>
|
|
9
|
-
<!-- // 强制Chromium内核,作用于其他双核浏览器: -->
|
|
10
|
-
<meta name="force-rendering" content="webkit"/>
|
|
11
|
-
<!-- // 如果有安装 Google Chrome Frame 插件则强制为Chromium内核,否则强制本机支持的最高版本IE内核,作用于IE浏览器: -->
|
|
12
|
-
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/>
|
|
13
|
-
<!-- <script src="/mrtc1.4.7/lib/tfjs.js"></script>
|
|
14
|
-
<script src="./mrtc1.4.7/lib/pix.js"></script>
|
|
15
|
-
<script src="./mrtc1.4.7/lib/log4b.js"></script>
|
|
16
|
-
<script src="./mrtc1.4.7/lib/meeting_api_util.js"></script>
|
|
17
|
-
<script src="./mrtc1.4.7/lib/mcu.js"></script>
|
|
18
|
-
<script src="./mrtc1.4.7/lib/client_record.js"></script>
|
|
19
|
-
<script src="./mrtc1.4.7/lib/meeting_vod.js"></script>
|
|
20
|
-
<script src="./mrtc1.4.7/lib/remote_record.js"></script>
|
|
21
|
-
<script src="./mrtc1.4.7/lib/meeting_invite.js"></script>
|
|
22
|
-
<script src="./mrtc1.4.7/lib/meeting_im.js"></script>
|
|
23
|
-
<script src="./mrtc1.4.7/lib/meeting_camera_stream.js"></script>
|
|
24
|
-
<script src="./mrtc1.4.7/lib/meeting_file_stream.js"></script>
|
|
25
|
-
<script src="./mrtc1.4.7/lib/meeting_desk_stream.js"></script>
|
|
26
|
-
<script src="./mrtc1.4.7/lib/meeting_html_stream.js"></script>
|
|
27
|
-
<script src="./mrtc1.4.7/lib/meeting_beautify_stream.js"></script>
|
|
28
|
-
<script src="./mrtc1.4.7/lib/stream.js"></script>
|
|
29
|
-
<script src="./mrtc1.4.7/lib/room.js"></script>
|
|
30
|
-
<script src="./mrtc1.4.7/lib/backgroundBlur.js"></script>
|
|
31
|
-
<script src="./mrtc1.4.7/lib/meeting_api.js"></script>
|
|
32
|
-
<script src="./mrtc1.4.7/lib/html2image.js"></script>
|
|
33
|
-
<script src="./mrtc1.4.7/lib/reconnecting-websocket.min.js"></script>
|
|
34
|
-
<script src="./mrtc1.4.7/lib/mtc_api.js"></script>
|
|
35
|
-
<script src="./mrtc1.4.7/lib/BandwidthHandler.js"></script>
|
|
36
|
-
<script src="./mrtc1.4.7/lib/RecordRTC.min.js"></script>
|
|
37
|
-
<script src="./mrtc1.4.7/lib/pdf.js"></script>
|
|
38
|
-
<script src="./mrtc1.4.7/lib/EBML.js"></script>
|
|
39
|
-
<script src="./mrtc1.4.7/lib/adapter.js"></script>
|
|
40
|
-
<script src="./mrtc1.4.7/lib/beauty.js"></script>
|
|
41
|
-
<script src="./mrtc1.4.7/lib/getMediaInfo.js"></script> -->
|
|
42
|
-
<!-- <script type="text/javascript" src="http://dns.leimon.xyz/log4b.js"></script>
|
|
43
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_api_util.js"></script>
|
|
44
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/mcu.js"></script>
|
|
45
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/client_record.js"></script>
|
|
46
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_vod.js"></script>
|
|
47
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/remote_record.js"></script>
|
|
48
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_invite.js"></script>
|
|
49
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_im.js"></script>
|
|
50
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_camera_stream.js"></script>
|
|
51
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_file_stream.js"></script>
|
|
52
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_desk_stream.js"></script>
|
|
53
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_html_stream.js"></script>
|
|
54
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_beautify_stream.js"></script>
|
|
55
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/stream.js"></script>
|
|
56
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/room.js"></script>
|
|
57
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/backgroundBlur.js"></script>
|
|
58
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_api.js"></script>
|
|
59
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/html2image.js"></script>
|
|
60
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/reconnecting-websocket.min.js"></script>
|
|
61
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/mtc_api.js"></script>
|
|
62
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/BandwidthHandler.js"></script>
|
|
63
|
-
<script src="https://gw.alipayobjects.com/os/lib/recordrtc/5.5.9/RecordRTC.min.js"></script>
|
|
64
|
-
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.2"></script>
|
|
65
|
-
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/body-pix@2.0"></script>
|
|
66
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/pdf.js"></script>
|
|
67
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/EBML.js"></script>
|
|
68
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/adapter.js"></script>
|
|
69
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/beauty.js"></script>
|
|
70
|
-
<script type="text/javascript" src="http://dns.leimon.xyz/getMediaInfo.js"></script> -->
|
|
71
|
-
<!-- <script type="text/javascript" src="http://dns.leimon.xyz/websocket.js"></script>-->
|
|
72
|
-
<title>汇丰银行营业厅 | <%= htmlWebpackPlugin.options.title %></title>
|
|
73
|
-
</head>
|
|
74
|
-
<body>
|
|
75
|
-
<div id="root"></div>
|
|
76
|
-
</body>
|
|
77
|
-
</html>
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8"/>
|
|
5
|
+
<link rel="shortcut icon" href="favicon.ico">
|
|
6
|
+
<meta content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport" />
|
|
7
|
+
<!-- // 强制Chromium内核,作用于360浏览器、QQ浏览器等国产双核浏览器: -->
|
|
8
|
+
<meta name="renderer" content="webkit"/>
|
|
9
|
+
<!-- // 强制Chromium内核,作用于其他双核浏览器: -->
|
|
10
|
+
<meta name="force-rendering" content="webkit"/>
|
|
11
|
+
<!-- // 如果有安装 Google Chrome Frame 插件则强制为Chromium内核,否则强制本机支持的最高版本IE内核,作用于IE浏览器: -->
|
|
12
|
+
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/>
|
|
13
|
+
<!-- <script src="/mrtc1.4.7/lib/tfjs.js"></script>
|
|
14
|
+
<script src="./mrtc1.4.7/lib/pix.js"></script>
|
|
15
|
+
<script src="./mrtc1.4.7/lib/log4b.js"></script>
|
|
16
|
+
<script src="./mrtc1.4.7/lib/meeting_api_util.js"></script>
|
|
17
|
+
<script src="./mrtc1.4.7/lib/mcu.js"></script>
|
|
18
|
+
<script src="./mrtc1.4.7/lib/client_record.js"></script>
|
|
19
|
+
<script src="./mrtc1.4.7/lib/meeting_vod.js"></script>
|
|
20
|
+
<script src="./mrtc1.4.7/lib/remote_record.js"></script>
|
|
21
|
+
<script src="./mrtc1.4.7/lib/meeting_invite.js"></script>
|
|
22
|
+
<script src="./mrtc1.4.7/lib/meeting_im.js"></script>
|
|
23
|
+
<script src="./mrtc1.4.7/lib/meeting_camera_stream.js"></script>
|
|
24
|
+
<script src="./mrtc1.4.7/lib/meeting_file_stream.js"></script>
|
|
25
|
+
<script src="./mrtc1.4.7/lib/meeting_desk_stream.js"></script>
|
|
26
|
+
<script src="./mrtc1.4.7/lib/meeting_html_stream.js"></script>
|
|
27
|
+
<script src="./mrtc1.4.7/lib/meeting_beautify_stream.js"></script>
|
|
28
|
+
<script src="./mrtc1.4.7/lib/stream.js"></script>
|
|
29
|
+
<script src="./mrtc1.4.7/lib/room.js"></script>
|
|
30
|
+
<script src="./mrtc1.4.7/lib/backgroundBlur.js"></script>
|
|
31
|
+
<script src="./mrtc1.4.7/lib/meeting_api.js"></script>
|
|
32
|
+
<script src="./mrtc1.4.7/lib/html2image.js"></script>
|
|
33
|
+
<script src="./mrtc1.4.7/lib/reconnecting-websocket.min.js"></script>
|
|
34
|
+
<script src="./mrtc1.4.7/lib/mtc_api.js"></script>
|
|
35
|
+
<script src="./mrtc1.4.7/lib/BandwidthHandler.js"></script>
|
|
36
|
+
<script src="./mrtc1.4.7/lib/RecordRTC.min.js"></script>
|
|
37
|
+
<script src="./mrtc1.4.7/lib/pdf.js"></script>
|
|
38
|
+
<script src="./mrtc1.4.7/lib/EBML.js"></script>
|
|
39
|
+
<script src="./mrtc1.4.7/lib/adapter.js"></script>
|
|
40
|
+
<script src="./mrtc1.4.7/lib/beauty.js"></script>
|
|
41
|
+
<script src="./mrtc1.4.7/lib/getMediaInfo.js"></script> -->
|
|
42
|
+
<!-- <script type="text/javascript" src="http://dns.leimon.xyz/log4b.js"></script>
|
|
43
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_api_util.js"></script>
|
|
44
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/mcu.js"></script>
|
|
45
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/client_record.js"></script>
|
|
46
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_vod.js"></script>
|
|
47
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/remote_record.js"></script>
|
|
48
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_invite.js"></script>
|
|
49
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_im.js"></script>
|
|
50
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_camera_stream.js"></script>
|
|
51
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_file_stream.js"></script>
|
|
52
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_desk_stream.js"></script>
|
|
53
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_html_stream.js"></script>
|
|
54
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_beautify_stream.js"></script>
|
|
55
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/stream.js"></script>
|
|
56
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/room.js"></script>
|
|
57
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/backgroundBlur.js"></script>
|
|
58
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/meeting_api.js"></script>
|
|
59
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/html2image.js"></script>
|
|
60
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/reconnecting-websocket.min.js"></script>
|
|
61
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/mtc_api.js"></script>
|
|
62
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/BandwidthHandler.js"></script>
|
|
63
|
+
<script src="https://gw.alipayobjects.com/os/lib/recordrtc/5.5.9/RecordRTC.min.js"></script>
|
|
64
|
+
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.2"></script>
|
|
65
|
+
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/body-pix@2.0"></script>
|
|
66
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/pdf.js"></script>
|
|
67
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/EBML.js"></script>
|
|
68
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/adapter.js"></script>
|
|
69
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/beauty.js"></script>
|
|
70
|
+
<script type="text/javascript" src="http://dns.leimon.xyz/getMediaInfo.js"></script> -->
|
|
71
|
+
<!-- <script type="text/javascript" src="http://dns.leimon.xyz/websocket.js"></script>-->
|
|
72
|
+
<title>汇丰银行营业厅 | <%= htmlWebpackPlugin.options.title %></title>
|
|
73
|
+
</head>
|
|
74
|
+
<body>
|
|
75
|
+
<div id="root"></div>
|
|
76
|
+
</body>
|
|
77
|
+
</html>
|
package/src/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import ReactDOM from "react-dom";
|
|
3
|
-
import "./index.less";
|
|
4
|
-
import '@babel/polyfill';
|
|
5
|
-
import { HSBC } from "../lib/hsbc";
|
|
6
|
-
// import {HSBC} from "../packages";
|
|
7
|
-
|
|
8
|
-
ReactDOM.render(
|
|
9
|
-
<div className="hsbc"><HSBC></HSBC></div>,
|
|
10
|
-
document.getElementById("root")
|
|
11
|
-
);
|
|
1
|
+
import React from "react";
|
|
2
|
+
import ReactDOM from "react-dom";
|
|
3
|
+
import "./index.less";
|
|
4
|
+
import '@babel/polyfill';
|
|
5
|
+
import { HSBC } from "../lib/hsbc";
|
|
6
|
+
// import {HSBC} from "../packages";
|
|
7
|
+
|
|
8
|
+
ReactDOM.render(
|
|
9
|
+
<div className="hsbc"><HSBC></HSBC></div>,
|
|
10
|
+
document.getElementById("root")
|
|
11
|
+
);
|
package/src/index.less
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
.hsbc {
|
|
2
|
-
height: calc(100vh);
|
|
3
|
-
}
|
|
4
|
-
.hsbc>div {
|
|
5
|
-
height: 100%;
|
|
1
|
+
.hsbc {
|
|
2
|
+
height: calc(100vh);
|
|
3
|
+
}
|
|
4
|
+
.hsbc>div {
|
|
5
|
+
height: 100%;
|
|
6
6
|
}
|
package/tsconfig.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"experimentalDecorators": true,
|
|
4
|
-
"outDir": "./dist/",
|
|
5
|
-
"sourceMap": true,
|
|
6
|
-
"noImplicitAny": true,
|
|
7
|
-
"module": "es6",
|
|
8
|
-
"target": "es5",
|
|
9
|
-
"jsx": "react",
|
|
10
|
-
"allowJs": true
|
|
11
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"experimentalDecorators": true,
|
|
4
|
+
"outDir": "./dist/",
|
|
5
|
+
"sourceMap": true,
|
|
6
|
+
"noImplicitAny": true,
|
|
7
|
+
"module": "es6",
|
|
8
|
+
"target": "es5",
|
|
9
|
+
"jsx": "react",
|
|
10
|
+
"allowJs": true
|
|
11
|
+
}
|
|
12
12
|
}
|
package/packages/common/JKL.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
const JKL = {};
|
|
2
|
-
|
|
3
|
-
JKL.Dumper = function () {
|
|
4
|
-
return this;
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
// Dump the data into JSON format
|
|
8
|
-
|
|
9
|
-
JKL.Dumper.prototype.dump = function (data, offset) {
|
|
10
|
-
if (typeof (offset) === 'undefined') offset = '';
|
|
11
|
-
const nextoff = `${offset} `;
|
|
12
|
-
switch (typeof (data)) {
|
|
13
|
-
case 'string':
|
|
14
|
-
return `"${this.escapeString(data)}"`;
|
|
15
|
-
break;
|
|
16
|
-
case 'number':
|
|
17
|
-
return data;
|
|
18
|
-
break;
|
|
19
|
-
case 'boolean':
|
|
20
|
-
return data ? 'true' : 'false';
|
|
21
|
-
break;
|
|
22
|
-
case 'undefined':
|
|
23
|
-
return 'null';
|
|
24
|
-
break;
|
|
25
|
-
case 'object':
|
|
26
|
-
if (data == null) {
|
|
27
|
-
return 'null';
|
|
28
|
-
} if (data.constructor == Array) {
|
|
29
|
-
var array = [];
|
|
30
|
-
for (let i = 0; i < data.length; i++) {
|
|
31
|
-
array[i] = this.dump(data[i], nextoff);
|
|
32
|
-
}
|
|
33
|
-
return `[\n${nextoff}${array.join(`,\n${nextoff}`)}\n${offset}]`;
|
|
34
|
-
}
|
|
35
|
-
var array = [];
|
|
36
|
-
for (let key in data) {
|
|
37
|
-
const val = this.dump(data[key], nextoff);
|
|
38
|
-
// if ( key.match( /[^A-Za-z0-9_]/ )) {
|
|
39
|
-
key = `"${this.escapeString(key)}"`;
|
|
40
|
-
// }
|
|
41
|
-
array[array.length] = `${key}: ${val}`;
|
|
42
|
-
}
|
|
43
|
-
if (array.length == 1 && !array[0].match(/[\n\{\[]/)) {
|
|
44
|
-
return `{ ${array[0]} }`;
|
|
45
|
-
}
|
|
46
|
-
return `{\n${nextoff}${array.join(`,\n${nextoff}`)}\n${offset}}`;
|
|
47
|
-
|
|
48
|
-
break;
|
|
49
|
-
default:
|
|
50
|
-
return data;
|
|
51
|
-
// unsupported data type
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
// escape '\' and '"'
|
|
57
|
-
|
|
58
|
-
JKL.Dumper.prototype.escapeString = function (str) {
|
|
59
|
-
return str.replace(/\\/g, '\\\\').replace(/\"/g, '\\"');
|
|
60
|
-
};
|
|
61
|
-
export default JKL;
|
package/packages/common/XML.js
DELETED
|
@@ -1,271 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-undef */
|
|
2
|
-
// ========================================================================
|
|
3
|
-
// XML.ObjTree -- XML source code from/to JavaScript object like E4X
|
|
4
|
-
// ========================================================================
|
|
5
|
-
|
|
6
|
-
import JKL from './JKL';
|
|
7
|
-
|
|
8
|
-
const XML = {};
|
|
9
|
-
|
|
10
|
-
XML.ObjTree = function () {
|
|
11
|
-
return this;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
// class variables
|
|
15
|
-
|
|
16
|
-
XML.ObjTree.VERSION = '0.23';
|
|
17
|
-
|
|
18
|
-
// object prototype
|
|
19
|
-
|
|
20
|
-
XML.ObjTree.prototype.xmlDecl = '<?xml version="1.0" encoding="UTF-8" ?>\n';
|
|
21
|
-
XML.ObjTree.prototype.attr_prefix = '-';
|
|
22
|
-
|
|
23
|
-
// method: parseXML( xmlsource )
|
|
24
|
-
|
|
25
|
-
XML.ObjTree.prototype.parseXML = function (xml) {
|
|
26
|
-
let xmldom;
|
|
27
|
-
let root;
|
|
28
|
-
if (window.DOMParser) {
|
|
29
|
-
xmldom = new DOMParser();
|
|
30
|
-
// xmldom.async = false; // DOMParser is always sync-mode
|
|
31
|
-
const dom = xmldom.parseFromString(xml, 'application/xml');
|
|
32
|
-
if (!dom) return;
|
|
33
|
-
root = dom.documentElement;
|
|
34
|
-
} else if (window.ActiveXObject) {
|
|
35
|
-
xmldom = new ActiveXObject('Microsoft.XMLDOM');
|
|
36
|
-
xmldom.async = false;
|
|
37
|
-
xmldom.loadXML(xml);
|
|
38
|
-
root = xmldom.documentElement;
|
|
39
|
-
}
|
|
40
|
-
if (!root) return;
|
|
41
|
-
return this.parseDOM(root);
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
// method: parseHTTP( url, options, callback )
|
|
45
|
-
|
|
46
|
-
XML.ObjTree.prototype.parseHTTP = function (url, options, callback) {
|
|
47
|
-
const myopt = {};
|
|
48
|
-
for (const key in options) {
|
|
49
|
-
myopt[key] = options[key]; // copy object
|
|
50
|
-
}
|
|
51
|
-
if (!myopt.method) {
|
|
52
|
-
if (typeof (myopt.postBody) === 'undefined'
|
|
53
|
-
&& typeof (myopt.postbody) === 'undefined'
|
|
54
|
-
&& typeof (myopt.parameters) === 'undefined') {
|
|
55
|
-
myopt.method = 'get';
|
|
56
|
-
} else {
|
|
57
|
-
myopt.method = 'post';
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
if (callback) {
|
|
61
|
-
myopt.asynchronous = true; // async-mode
|
|
62
|
-
const __this = this;
|
|
63
|
-
const __func = callback;
|
|
64
|
-
const __save = myopt.onComplete;
|
|
65
|
-
myopt.onComplete = function (trans) {
|
|
66
|
-
let tree;
|
|
67
|
-
if (trans && trans.responseXML && trans.responseXML.documentElement) {
|
|
68
|
-
tree = __this.parseDOM(trans.responseXML.documentElement);
|
|
69
|
-
}
|
|
70
|
-
__func(tree, trans);
|
|
71
|
-
if (__save) __save(trans);
|
|
72
|
-
};
|
|
73
|
-
} else {
|
|
74
|
-
myopt.asynchronous = false; // sync-mode
|
|
75
|
-
}
|
|
76
|
-
let trans;
|
|
77
|
-
if (typeof (HTTP) !== 'undefined' && HTTP.Request) {
|
|
78
|
-
myopt.uri = url;
|
|
79
|
-
var req = new HTTP.Request(myopt); // JSAN
|
|
80
|
-
if (req) trans = req.transport;
|
|
81
|
-
} else if (typeof (Ajax) !== 'undefined' && Ajax.Request) {
|
|
82
|
-
var req = new Ajax.Request(url, myopt); // ptorotype.js
|
|
83
|
-
if (req) trans = req.transport;
|
|
84
|
-
}
|
|
85
|
-
if (callback) return trans;
|
|
86
|
-
if (trans && trans.responseXML && trans.responseXML.documentElement) {
|
|
87
|
-
return this.parseDOM(trans.responseXML.documentElement);
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
// method: parseDOM( documentroot )
|
|
92
|
-
|
|
93
|
-
XML.ObjTree.prototype.parseDOM = function (root) {
|
|
94
|
-
if (!root) return;
|
|
95
|
-
|
|
96
|
-
this.__force_array = {};
|
|
97
|
-
if (this.force_array) {
|
|
98
|
-
for (let i = 0; i < this.force_array.length; i++) {
|
|
99
|
-
this.__force_array[this.force_array[i]] = 1;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
let json = this.parseElement(root); // parse root node
|
|
104
|
-
if (this.__force_array[root.nodeName]) {
|
|
105
|
-
json = [json];
|
|
106
|
-
}
|
|
107
|
-
if (root.nodeType != 11) { // DOCUMENT_FRAGMENT_NODE
|
|
108
|
-
const tmp = {};
|
|
109
|
-
tmp[root.nodeName] = json; // root nodeName
|
|
110
|
-
json = tmp;
|
|
111
|
-
}
|
|
112
|
-
return json;
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
// method: parseElement( element )
|
|
116
|
-
|
|
117
|
-
XML.ObjTree.prototype.parseElement = function (elem) {
|
|
118
|
-
// COMMENT_NODE
|
|
119
|
-
if (elem.nodeType == 7) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
// TEXT_NODE CDATA_SECTION_NODE
|
|
124
|
-
if (elem.nodeType == 3 || elem.nodeType == 4) {
|
|
125
|
-
const bool = elem.nodeValue.match(/[^\x00-\x20]/);
|
|
126
|
-
if (bool == null) return; // ignore white spaces
|
|
127
|
-
return elem.nodeValue;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
let retval;
|
|
131
|
-
const cnt = {};
|
|
132
|
-
|
|
133
|
-
// parse attributes
|
|
134
|
-
if (elem.attributes && elem.attributes.length) {
|
|
135
|
-
retval = {};
|
|
136
|
-
for (var i = 0; i < elem.attributes.length; i++) {
|
|
137
|
-
var key = elem.attributes[i].nodeName;
|
|
138
|
-
if (typeof (key) !== 'string') continue;
|
|
139
|
-
var val = elem.attributes[i].nodeValue;
|
|
140
|
-
if (!val) continue;
|
|
141
|
-
key = this.attr_prefix + key;
|
|
142
|
-
if (typeof (cnt[key]) === 'undefined') cnt[key] = 0;
|
|
143
|
-
cnt[key]++;
|
|
144
|
-
this.addNode(retval, key, cnt[key], val);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
// parse child nodes (recursive)
|
|
149
|
-
if (elem.childNodes && elem.childNodes.length) {
|
|
150
|
-
let textonly = true;
|
|
151
|
-
if (retval) textonly = false; // some attributes exists
|
|
152
|
-
for (var i = 0; i < elem.childNodes.length && textonly; i++) {
|
|
153
|
-
const ntype = elem.childNodes[i].nodeType;
|
|
154
|
-
if (ntype == 3 || ntype == 4) continue;
|
|
155
|
-
textonly = false;
|
|
156
|
-
}
|
|
157
|
-
if (textonly) {
|
|
158
|
-
if (!retval) retval = '';
|
|
159
|
-
for (var i = 0; i < elem.childNodes.length; i++) {
|
|
160
|
-
retval += elem.childNodes[i].nodeValue;
|
|
161
|
-
}
|
|
162
|
-
} else {
|
|
163
|
-
if (!retval) retval = {};
|
|
164
|
-
for (var i = 0; i < elem.childNodes.length; i++) {
|
|
165
|
-
var key = elem.childNodes[i].nodeName;
|
|
166
|
-
if (typeof (key) !== 'string') continue;
|
|
167
|
-
var val = this.parseElement(elem.childNodes[i]);
|
|
168
|
-
if (!val) continue;
|
|
169
|
-
if (typeof (cnt[key]) === 'undefined') cnt[key] = 0;
|
|
170
|
-
cnt[key]++;
|
|
171
|
-
this.addNode(retval, key, cnt[key], val);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
return retval;
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
// method: addNode( hash, key, count, value )
|
|
179
|
-
|
|
180
|
-
XML.ObjTree.prototype.addNode = function (hash, key, cnts, val) {
|
|
181
|
-
if (this.__force_array[key]) {
|
|
182
|
-
if (cnts == 1) hash[key] = [];
|
|
183
|
-
hash[key][hash[key].length] = val; // push
|
|
184
|
-
} else if (cnts == 1) { // 1st sibling
|
|
185
|
-
hash[key] = val;
|
|
186
|
-
} else if (cnts == 2) { // 2nd sibling
|
|
187
|
-
hash[key] = [hash[key], val];
|
|
188
|
-
} else { // 3rd sibling and more
|
|
189
|
-
hash[key][hash[key].length] = val;
|
|
190
|
-
}
|
|
191
|
-
};
|
|
192
|
-
|
|
193
|
-
// method: writeXML( tree )
|
|
194
|
-
|
|
195
|
-
XML.ObjTree.prototype.writeXML = function (tree) {
|
|
196
|
-
const xml = this.hash_to_xml(null, tree);
|
|
197
|
-
return this.xmlDecl + xml;
|
|
198
|
-
};
|
|
199
|
-
|
|
200
|
-
// method: hash_to_xml( tagName, tree )
|
|
201
|
-
|
|
202
|
-
XML.ObjTree.prototype.hash_to_xml = function (name, tree) {
|
|
203
|
-
const elem = [];
|
|
204
|
-
const attr = [];
|
|
205
|
-
for (const key in tree) {
|
|
206
|
-
if (!tree.hasOwnProperty(key)) continue;
|
|
207
|
-
const val = tree[key];
|
|
208
|
-
if (key.charAt(0) != this.attr_prefix) {
|
|
209
|
-
if (typeof (val) === 'undefined' || val == null) {
|
|
210
|
-
elem[elem.length] = `<${key} />`;
|
|
211
|
-
} else if (typeof (val) === 'object' && val.constructor == Array) {
|
|
212
|
-
elem[elem.length] = this.array_to_xml(key, val);
|
|
213
|
-
} else if (typeof (val) === 'object') {
|
|
214
|
-
elem[elem.length] = this.hash_to_xml(key, val);
|
|
215
|
-
} else {
|
|
216
|
-
elem[elem.length] = this.scalar_to_xml(key, val);
|
|
217
|
-
}
|
|
218
|
-
} else {
|
|
219
|
-
attr[attr.length] = ` ${key.substring(1)}="${this.xml_escape(val)}"`;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
const jattr = attr.join('');
|
|
223
|
-
let jelem = elem.join('');
|
|
224
|
-
if (typeof (name) === 'undefined' || name == null) {
|
|
225
|
-
// no tag
|
|
226
|
-
} else if (elem.length > 0) {
|
|
227
|
-
if (jelem.match(/\n/)) {
|
|
228
|
-
jelem = `<${name}${jattr}>\n${jelem}</${name}>\n`;
|
|
229
|
-
} else {
|
|
230
|
-
jelem = `<${name}${jattr}>${jelem}</${name}>\n`;
|
|
231
|
-
}
|
|
232
|
-
} else {
|
|
233
|
-
jelem = `<${name}${jattr} />\n`;
|
|
234
|
-
}
|
|
235
|
-
return jelem;
|
|
236
|
-
};
|
|
237
|
-
|
|
238
|
-
// method: array_to_xml( tagName, array )
|
|
239
|
-
|
|
240
|
-
XML.ObjTree.prototype.array_to_xml = function (name, array) {
|
|
241
|
-
const out = [];
|
|
242
|
-
for (let i = 0; i < array.length; i++) {
|
|
243
|
-
const val = array[i];
|
|
244
|
-
if (typeof (val) === 'undefined' || val == null) {
|
|
245
|
-
out[out.length] = `<${name} />`;
|
|
246
|
-
} else if (typeof (val) === 'object' && val.constructor == Array) {
|
|
247
|
-
out[out.length] = this.array_to_xml(name, val);
|
|
248
|
-
} else if (typeof (val) === 'object') {
|
|
249
|
-
out[out.length] = this.hash_to_xml(name, val);
|
|
250
|
-
} else {
|
|
251
|
-
out[out.length] = this.scalar_to_xml(name, val);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
return out.join('');
|
|
255
|
-
};
|
|
256
|
-
|
|
257
|
-
// method: scalar_to_xml( tagName, text )
|
|
258
|
-
|
|
259
|
-
XML.ObjTree.prototype.scalar_to_xml = function (name, text) {
|
|
260
|
-
if (name == '#text') {
|
|
261
|
-
return this.xml_escape(text);
|
|
262
|
-
}
|
|
263
|
-
return `<${name}>${this.xml_escape(text)}</${name}>\n`;
|
|
264
|
-
};
|
|
265
|
-
|
|
266
|
-
// method: xml_escape( text )
|
|
267
|
-
|
|
268
|
-
XML.ObjTree.prototype.xml_escape = function (text) {
|
|
269
|
-
return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
|
|
270
|
-
};
|
|
271
|
-
export default XML;
|