clickgo 3.16.28 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -8
- package/dist/app/{demo/res/video.mp4 → demo.cga} +0 -0
- package/dist/app/task.cga +0 -0
- package/dist/control/arteditor.cgc +0 -0
- package/dist/control/box.cgc +0 -0
- package/dist/control/captcha.cgc +0 -0
- package/dist/control/common.cgc +0 -0
- package/dist/control/desc.cgc +0 -0
- package/dist/control/drawer.cgc +0 -0
- package/dist/control/echarts.cgc +0 -0
- package/dist/control/form.cgc +0 -0
- package/dist/control/iconview.cgc +0 -0
- package/dist/control/jodit.cgc +0 -0
- package/dist/control/map.cgc +0 -0
- package/dist/control/monaco.cgc +0 -0
- package/dist/control/mpegts.cgc +0 -0
- package/dist/control/nav.cgc +0 -0
- package/dist/control/novnc.cgc +0 -0
- package/dist/control/page.cgc +0 -0
- package/dist/control/pdf.cgc +0 -0
- package/dist/control/property.cgc +0 -0
- package/dist/control/qrcode.cgc +0 -0
- package/dist/control/table.cgc +0 -0
- package/dist/control/task.cgc +0 -0
- package/dist/control/tplink.cgc +0 -0
- package/dist/control/tuieditor.cgc +0 -0
- package/dist/control/tuiviewer.cgc +0 -0
- package/dist/control/tums.cgc +0 -0
- package/dist/control/xterm.cgc +0 -0
- package/dist/ext/tums-player/audio.wasm +0 -0
- package/dist/ext/tums-player/decoder.worker.js +129 -0
- package/dist/ext/tums-player/libaudio.js +1 -0
- package/dist/ext/tums-player/libaudio.wasm +0 -0
- package/dist/ext/tums-player/libffmpeg.js +1 -0
- package/dist/ext/tums-player/libffmpeg.wasm +0 -0
- package/dist/ext/tums-player/libs.worker.js +92 -0
- package/dist/ext/tums-player/tums-player.umd.min.js +35 -0
- package/dist/ext/tums-player/webgl.js +2 -0
- package/dist/ext/tums-player/webgl.worker.js +42 -0
- package/dist/global.css +1 -1
- package/dist/index.js +1 -175
- package/dist/theme/dark.cgt +0 -0
- package/dist/theme/light.cgt +0 -0
- package/package.json +16 -10
- package/dist/app/demo/app.js +0 -48
- package/dist/app/demo/config.json +0 -252
- package/dist/app/demo/form/control/alayout2/alayout2.js +0 -43
- package/dist/app/demo/form/control/alayout2/alayout2.xml +0 -16
- package/dist/app/demo/form/control/alert/alert.js +0 -43
- package/dist/app/demo/form/control/alert/alert.xml +0 -32
- package/dist/app/demo/form/control/arteditor/arteditor.js +0 -64
- package/dist/app/demo/form/control/arteditor/arteditor.xml +0 -12
- package/dist/app/demo/form/control/arteditor/img.js +0 -61
- package/dist/app/demo/form/control/arteditor/img.xml +0 -6
- package/dist/app/demo/form/control/block/block.css +0 -1
- package/dist/app/demo/form/control/block/block.scss +0 -17
- package/dist/app/demo/form/control/block/block.xml +0 -7
- package/dist/app/demo/form/control/box/box.js +0 -87
- package/dist/app/demo/form/control/box/box.xml +0 -23
- package/dist/app/demo/form/control/button/button.css +0 -1
- package/dist/app/demo/form/control/button/button.js +0 -51
- package/dist/app/demo/form/control/button/button.scss +0 -18
- package/dist/app/demo/form/control/button/button.xml +0 -133
- package/dist/app/demo/form/control/calendar/calendar.js +0 -62
- package/dist/app/demo/form/control/calendar/calendar.xml +0 -34
- package/dist/app/demo/form/control/captcha/captcha.js +0 -60
- package/dist/app/demo/form/control/captcha/captcha.xml +0 -10
- package/dist/app/demo/form/control/check/check.js +0 -54
- package/dist/app/demo/form/control/check/check.xml +0 -17
- package/dist/app/demo/form/control/circle/circle.xml +0 -36
- package/dist/app/demo/form/control/content/content.js +0 -47
- package/dist/app/demo/form/control/content/content.xml +0 -16
- package/dist/app/demo/form/control/date/date.js +0 -56
- package/dist/app/demo/form/control/date/date.xml +0 -28
- package/dist/app/demo/form/control/datepanel/datepanel.js +0 -63
- package/dist/app/demo/form/control/datepanel/datepanel.xml +0 -32
- package/dist/app/demo/form/control/daterange/daterange.js +0 -54
- package/dist/app/demo/form/control/daterange/daterange.xml +0 -22
- package/dist/app/demo/form/control/delete/delete.js +0 -47
- package/dist/app/demo/form/control/delete/delete.xml +0 -20
- package/dist/app/demo/form/control/desc/desc.js +0 -82
- package/dist/app/demo/form/control/desc/desc.xml +0 -44
- package/dist/app/demo/form/control/dialog/dialog.js +0 -49
- package/dist/app/demo/form/control/dialog/dialog.xml +0 -46
- package/dist/app/demo/form/control/drawer/drawer.js +0 -45
- package/dist/app/demo/form/control/drawer/drawer.xml +0 -34
- package/dist/app/demo/form/control/echarts/echarts.js +0 -137
- package/dist/app/demo/form/control/echarts/echarts.xml +0 -12
- package/dist/app/demo/form/control/empty/empty.js +0 -44
- package/dist/app/demo/form/control/empty/empty.xml +0 -9
- package/dist/app/demo/form/control/file/file.js +0 -60
- package/dist/app/demo/form/control/file/file.xml +0 -25
- package/dist/app/demo/form/control/flow/flow.css +0 -1
- package/dist/app/demo/form/control/flow/flow.js +0 -86
- package/dist/app/demo/form/control/flow/flow.scss +0 -18
- package/dist/app/demo/form/control/flow/flow.xml +0 -101
- package/dist/app/demo/form/control/form/form.css +0 -1
- package/dist/app/demo/form/control/form/form.js +0 -66
- package/dist/app/demo/form/control/form/form.scss +0 -5
- package/dist/app/demo/form/control/form/form.xml +0 -29
- package/dist/app/demo/form/control/grid/grid.js +0 -45
- package/dist/app/demo/form/control/grid/grid.xml +0 -27
- package/dist/app/demo/form/control/group/group.js +0 -50
- package/dist/app/demo/form/control/group/group.xml +0 -46
- package/dist/app/demo/form/control/hske/hske.js +0 -44
- package/dist/app/demo/form/control/hske/hske.xml +0 -19
- package/dist/app/demo/form/control/html/html.js +0 -70
- package/dist/app/demo/form/control/html/html.xml +0 -18
- package/dist/app/demo/form/control/icon/icon.xml +0 -49
- package/dist/app/demo/form/control/iconview/iconview.js +0 -174
- package/dist/app/demo/form/control/iconview/iconview.xml +0 -45
- package/dist/app/demo/form/control/img/img.xml +0 -26
- package/dist/app/demo/form/control/imgviewer/imgviewer.js +0 -46
- package/dist/app/demo/form/control/imgviewer/imgviewer.xml +0 -9
- package/dist/app/demo/form/control/jodit/jodit.js +0 -64
- package/dist/app/demo/form/control/jodit/jodit.xml +0 -24
- package/dist/app/demo/form/control/label/label.js +0 -51
- package/dist/app/demo/form/control/label/label.xml +0 -34
- package/dist/app/demo/form/control/layout/layout.js +0 -45
- package/dist/app/demo/form/control/layout/layout.xml +0 -18
- package/dist/app/demo/form/control/link/link.js +0 -42
- package/dist/app/demo/form/control/link/link.xml +0 -30
- package/dist/app/demo/form/control/list/list.css +0 -1
- package/dist/app/demo/form/control/list/list.js +0 -375
- package/dist/app/demo/form/control/list/list.scss +0 -7
- package/dist/app/demo/form/control/list/list.xml +0 -150
- package/dist/app/demo/form/control/loading/loading.xml +0 -8
- package/dist/app/demo/form/control/map/map.js +0 -206
- package/dist/app/demo/form/control/map/map.xml +0 -44
- package/dist/app/demo/form/control/marquee/marquee.js +0 -64
- package/dist/app/demo/form/control/marquee/marquee.xml +0 -33
- package/dist/app/demo/form/control/menu/menu.js +0 -56
- package/dist/app/demo/form/control/menu/menu.xml +0 -125
- package/dist/app/demo/form/control/monaco/monaco.js +0 -136
- package/dist/app/demo/form/control/monaco/monaco.xml +0 -28
- package/dist/app/demo/form/control/mpegts/mpegts.js +0 -70
- package/dist/app/demo/form/control/mpegts/mpegts.xml +0 -11
- package/dist/app/demo/form/control/nav/nav.js +0 -60
- package/dist/app/demo/form/control/nav/nav.xml +0 -106
- package/dist/app/demo/form/control/novnc/novnc.js +0 -75
- package/dist/app/demo/form/control/novnc/novnc.xml +0 -13
- package/dist/app/demo/form/control/page/page.js +0 -51
- package/dist/app/demo/form/control/page/page.xml +0 -22
- package/dist/app/demo/form/control/palette/palette.js +0 -46
- package/dist/app/demo/form/control/palette/palette.xml +0 -16
- package/dist/app/demo/form/control/panel/panel.js +0 -106
- package/dist/app/demo/form/control/panel/panel.xml +0 -16
- package/dist/app/demo/form/control/panel/test1.js +0 -84
- package/dist/app/demo/form/control/panel/test1.xml +0 -22
- package/dist/app/demo/form/control/panel/test2.xml +0 -4
- package/dist/app/demo/form/control/pdf/pdf.js +0 -65
- package/dist/app/demo/form/control/pdf/pdf.xml +0 -12
- package/dist/app/demo/form/control/pdf/test.pdf +0 -0
- package/dist/app/demo/form/control/progress/progress.js +0 -54
- package/dist/app/demo/form/control/progress/progress.xml +0 -9
- package/dist/app/demo/form/control/property/property.js +0 -166
- package/dist/app/demo/form/control/property/property.xml +0 -6
- package/dist/app/demo/form/control/qrcode/qrcode.js +0 -45
- package/dist/app/demo/form/control/qrcode/qrcode.xml +0 -13
- package/dist/app/demo/form/control/radio/radio.js +0 -51
- package/dist/app/demo/form/control/radio/radio.xml +0 -15
- package/dist/app/demo/form/control/scroll/scroll.js +0 -52
- package/dist/app/demo/form/control/scroll/scroll.xml +0 -38
- package/dist/app/demo/form/control/select/select.js +0 -273
- package/dist/app/demo/form/control/select/select.xml +0 -141
- package/dist/app/demo/form/control/setting/setting.xml +0 -11
- package/dist/app/demo/form/control/sgroup/sgroup.xml +0 -28
- package/dist/app/demo/form/control/step/step.js +0 -61
- package/dist/app/demo/form/control/step/step.xml +0 -16
- package/dist/app/demo/form/control/svg/svg.js +0 -61
- package/dist/app/demo/form/control/svg/svg.xml +0 -24
- package/dist/app/demo/form/control/switch/switch.js +0 -53
- package/dist/app/demo/form/control/switch/switch.xml +0 -29
- package/dist/app/demo/form/control/tab/tab.js +0 -102
- package/dist/app/demo/form/control/tab/tab.xml +0 -22
- package/dist/app/demo/form/control/table/table.js +0 -218
- package/dist/app/demo/form/control/table/table.xml +0 -97
- package/dist/app/demo/form/control/tag/tag.js +0 -44
- package/dist/app/demo/form/control/tag/tag.xml +0 -52
- package/dist/app/demo/form/control/text/text.js +0 -116
- package/dist/app/demo/form/control/text/text.xml +0 -70
- package/dist/app/demo/form/control/timeline/timeline.js +0 -43
- package/dist/app/demo/form/control/timeline/timeline.xml +0 -19
- package/dist/app/demo/form/control/tip/tip.js +0 -43
- package/dist/app/demo/form/control/tip/tip.xml +0 -42
- package/dist/app/demo/form/control/tplink/tplink.js +0 -74
- package/dist/app/demo/form/control/tplink/tplink.xml +0 -13
- package/dist/app/demo/form/control/tuieditor/tuieditor.js +0 -62
- package/dist/app/demo/form/control/tuieditor/tuieditor.xml +0 -22
- package/dist/app/demo/form/control/tuiviewer/tuiviewer.js +0 -45
- package/dist/app/demo/form/control/tuiviewer/tuiviewer.xml +0 -14
- package/dist/app/demo/form/control/uploader/uploader.js +0 -80
- package/dist/app/demo/form/control/uploader/uploader.xml +0 -15
- package/dist/app/demo/form/control/vflow/vflow.css +0 -1
- package/dist/app/demo/form/control/vflow/vflow.js +0 -101
- package/dist/app/demo/form/control/vflow/vflow.scss +0 -22
- package/dist/app/demo/form/control/vflow/vflow.xml +0 -89
- package/dist/app/demo/form/control/video/video.js +0 -47
- package/dist/app/demo/form/control/video/video.xml +0 -14
- package/dist/app/demo/form/control/web/web.js +0 -43
- package/dist/app/demo/form/control/web/web.xml +0 -4
- package/dist/app/demo/form/control/xterm/xterm.js +0 -100
- package/dist/app/demo/form/control/xterm/xterm.xml +0 -6
- package/dist/app/demo/form/event/form/form.css +0 -1
- package/dist/app/demo/form/event/form/form.js +0 -169
- package/dist/app/demo/form/event/form/form.scss +0 -24
- package/dist/app/demo/form/event/form/form.xml +0 -16
- package/dist/app/demo/form/event/other/other.js +0 -78
- package/dist/app/demo/form/event/other/other.xml +0 -5
- package/dist/app/demo/form/event/screen/screen.js +0 -86
- package/dist/app/demo/form/event/screen/screen.xml +0 -9
- package/dist/app/demo/form/event/task/task.js +0 -96
- package/dist/app/demo/form/event/task/task.xml +0 -20
- package/dist/app/demo/form/main.css +0 -1
- package/dist/app/demo/form/main.js +0 -515
- package/dist/app/demo/form/main.scss +0 -9
- package/dist/app/demo/form/main.xml +0 -163
- package/dist/app/demo/form/method/acontrol/acontrol.js +0 -42
- package/dist/app/demo/form/method/acontrol/acontrol.xml +0 -5
- package/dist/app/demo/form/method/aform/aform.js +0 -104
- package/dist/app/demo/form/method/aform/aform.xml +0 -60
- package/dist/app/demo/form/method/aform/sd.js +0 -47
- package/dist/app/demo/form/method/aform/sd.xml +0 -7
- package/dist/app/demo/form/method/core/core.js +0 -86
- package/dist/app/demo/form/method/core/core.xml +0 -23
- package/dist/app/demo/form/method/dom/dom.css +0 -1
- package/dist/app/demo/form/method/dom/dom.js +0 -228
- package/dist/app/demo/form/method/dom/dom.scss +0 -10
- package/dist/app/demo/form/method/dom/dom.xml +0 -76
- package/dist/app/demo/form/method/form/form.js +0 -244
- package/dist/app/demo/form/method/form/form.xml +0 -74
- package/dist/app/demo/form/method/form/test.xml +0 -5
- package/dist/app/demo/form/method/fs/fs.js +0 -209
- package/dist/app/demo/form/method/fs/fs.xml +0 -18
- package/dist/app/demo/form/method/fs/text.js +0 -48
- package/dist/app/demo/form/method/fs/text.xml +0 -3
- package/dist/app/demo/form/method/native/native.js +0 -100
- package/dist/app/demo/form/method/native/native.xml +0 -22
- package/dist/app/demo/form/method/storage/storage.js +0 -77
- package/dist/app/demo/form/method/storage/storage.xml +0 -18
- package/dist/app/demo/form/method/system/system.js +0 -63
- package/dist/app/demo/form/method/system/system.xml +0 -14
- package/dist/app/demo/form/method/task/locale1.json +0 -3
- package/dist/app/demo/form/method/task/locale2.json +0 -3
- package/dist/app/demo/form/method/task/task.js +0 -177
- package/dist/app/demo/form/method/task/task.xml +0 -61
- package/dist/app/demo/form/method/theme/theme.js +0 -92
- package/dist/app/demo/form/method/theme/theme.xml +0 -12
- package/dist/app/demo/form/method/tool/tool.js +0 -122
- package/dist/app/demo/form/method/tool/tool.xml +0 -40
- package/dist/app/demo/form/method/zip/zip.js +0 -126
- package/dist/app/demo/form/method/zip/zip.xml +0 -12
- package/dist/app/demo/form/solution/backpanel/backpanel.js +0 -76
- package/dist/app/demo/form/solution/backpanel/backpanel.xml +0 -31
- package/dist/app/demo/global.css +0 -3
- package/dist/app/demo/res/custombtn.cgc +0 -0
- package/dist/app/demo/res/icon.svg +0 -5
- package/dist/app/demo/res/img.jpg +0 -0
- package/dist/app/demo/res/marker.svg +0 -5
- package/dist/app/demo/res/r-1.svg +0 -32
- package/dist/app/demo/res/r-2.svg +0 -38
- package/dist/app/demo/res/sql.svg +0 -25
- package/dist/app/demo/res/txt.svg +0 -21
- package/dist/app/demo/res/zip.svg +0 -21
- package/dist/app/task/app.js +0 -46
- package/dist/app/task/config.json +0 -29
- package/dist/app/task/form/bar/bar.js +0 -406
- package/dist/app/task/form/bar/bar.xml +0 -46
- package/dist/app/task/form/desktop/desktop.xml +0 -1
- package/dist/app/task/locale/en.json +0 -11
- package/dist/app/task/locale/ja.json +0 -11
- package/dist/app/task/locale/sc.json +0 -11
- package/dist/app/task/locale/tc.json +0 -11
- package/dist/clickgo.d.ts +0 -22
- package/dist/clickgo.js +0 -109
- package/dist/index.d.ts +0 -55
- package/dist/lib/control.d.ts +0 -53
- package/dist/lib/control.js +0 -584
- package/dist/lib/core.d.ts +0 -47
- package/dist/lib/core.js +0 -1005
- package/dist/lib/dom.d.ts +0 -75
- package/dist/lib/dom.js +0 -2147
- package/dist/lib/form.d.ts +0 -222
- package/dist/lib/form.js +0 -2961
- package/dist/lib/fs.d.ts +0 -35
- package/dist/lib/fs.js +0 -1183
- package/dist/lib/native.d.ts +0 -43
- package/dist/lib/native.js +0 -197
- package/dist/lib/storage.d.ts +0 -6
- package/dist/lib/storage.js +0 -215
- package/dist/lib/task.d.ts +0 -32
- package/dist/lib/task.js +0 -1831
- package/dist/lib/theme.d.ts +0 -8
- package/dist/lib/theme.js +0 -176
- package/dist/lib/tool.d.ts +0 -122
- package/dist/lib/tool.js +0 -1021
- package/dist/lib/zip.d.ts +0 -40
- package/dist/lib/zip.js +0 -382
- package/dist/theme/blue.cgt +0 -0
- package/dist/theme/byterun.cgt +0 -0
- package/types/index.d.ts +0 -1374
package/dist/lib/task.js
DELETED
|
@@ -1,1831 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.systemTaskInfo = exports.lastId = exports.list = void 0;
|
|
37
|
-
exports.setFocus = setFocus;
|
|
38
|
-
exports.getFocus = getFocus;
|
|
39
|
-
exports.onFrame = onFrame;
|
|
40
|
-
exports.offFrame = offFrame;
|
|
41
|
-
exports.get = get;
|
|
42
|
-
exports.getPermissions = getPermissions;
|
|
43
|
-
exports.getList = getList;
|
|
44
|
-
exports.run = run;
|
|
45
|
-
exports.checkPermission = checkPermission;
|
|
46
|
-
exports.end = end;
|
|
47
|
-
exports.loadLocaleData = loadLocaleData;
|
|
48
|
-
exports.loadLocale = loadLocale;
|
|
49
|
-
exports.clearLocale = clearLocale;
|
|
50
|
-
exports.setLocale = setLocale;
|
|
51
|
-
exports.setLocaleLang = setLocaleLang;
|
|
52
|
-
exports.clearLocaleLang = clearLocaleLang;
|
|
53
|
-
exports.createTimer = createTimer;
|
|
54
|
-
exports.removeTimer = removeTimer;
|
|
55
|
-
exports.sleep = sleep;
|
|
56
|
-
exports.setSystem = setSystem;
|
|
57
|
-
exports.clearSystem = clearSystem;
|
|
58
|
-
exports.refreshSystemPosition = refreshSystemPosition;
|
|
59
|
-
const clickgo = __importStar(require("../clickgo"));
|
|
60
|
-
const core = __importStar(require("./core"));
|
|
61
|
-
const dom = __importStar(require("./dom"));
|
|
62
|
-
const tool = __importStar(require("./tool"));
|
|
63
|
-
const form = __importStar(require("./form"));
|
|
64
|
-
const control = __importStar(require("./control"));
|
|
65
|
-
const fs = __importStar(require("./fs"));
|
|
66
|
-
const theme = __importStar(require("./theme"));
|
|
67
|
-
const native = __importStar(require("./native"));
|
|
68
|
-
exports.list = {};
|
|
69
|
-
exports.lastId = 0;
|
|
70
|
-
let focusId = null;
|
|
71
|
-
function setFocus(id) {
|
|
72
|
-
focusId = id ?? null;
|
|
73
|
-
}
|
|
74
|
-
function getFocus() {
|
|
75
|
-
return focusId;
|
|
76
|
-
}
|
|
77
|
-
const localeData = {
|
|
78
|
-
'en': {
|
|
79
|
-
'loading': 'Loading...',
|
|
80
|
-
},
|
|
81
|
-
'sc': {
|
|
82
|
-
'loading': '加载中……'
|
|
83
|
-
},
|
|
84
|
-
'tc': {
|
|
85
|
-
'loading': '載入中……'
|
|
86
|
-
},
|
|
87
|
-
'ja': {
|
|
88
|
-
'loading': '読み込み中...'
|
|
89
|
-
},
|
|
90
|
-
'ko': {
|
|
91
|
-
'loading': '로딩 중...'
|
|
92
|
-
},
|
|
93
|
-
'th': {
|
|
94
|
-
'loading': 'กำลังโหลด...'
|
|
95
|
-
},
|
|
96
|
-
'es': {
|
|
97
|
-
'loading': 'Cargando...'
|
|
98
|
-
},
|
|
99
|
-
'de': {
|
|
100
|
-
'loading': 'Laden...'
|
|
101
|
-
},
|
|
102
|
-
'fr': {
|
|
103
|
-
'loading': 'Chargement en cours...'
|
|
104
|
-
},
|
|
105
|
-
'pt': {
|
|
106
|
-
'loading': 'Carregando...'
|
|
107
|
-
},
|
|
108
|
-
'ru': {
|
|
109
|
-
'loading': 'Загрузка...'
|
|
110
|
-
},
|
|
111
|
-
'vi': {
|
|
112
|
-
'loading': 'Đang tải...'
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
let frameTimer = 0;
|
|
116
|
-
const frameMaps = {};
|
|
117
|
-
function onFrame(fun, opt = {}) {
|
|
118
|
-
const taskId = opt.taskId;
|
|
119
|
-
const formId = opt.formId;
|
|
120
|
-
if (!taskId) {
|
|
121
|
-
return 0;
|
|
122
|
-
}
|
|
123
|
-
const task = exports.list[taskId];
|
|
124
|
-
if (!task) {
|
|
125
|
-
return 0;
|
|
126
|
-
}
|
|
127
|
-
if (formId && !task.forms[formId]) {
|
|
128
|
-
return 0;
|
|
129
|
-
}
|
|
130
|
-
const ft = ++frameTimer;
|
|
131
|
-
const count = opt.count ?? 0;
|
|
132
|
-
let c = 0;
|
|
133
|
-
let timer;
|
|
134
|
-
const timerHandler = async () => {
|
|
135
|
-
++c;
|
|
136
|
-
if (formId && task.forms[formId] === undefined) {
|
|
137
|
-
delete task.timers['1x' + ft.toString()];
|
|
138
|
-
delete frameMaps[ft];
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
await fun();
|
|
142
|
-
if (task.timers['1x' + ft.toString()] == undefined) {
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
if (count > 1) {
|
|
146
|
-
if (c === count) {
|
|
147
|
-
delete task.timers['1x' + ft.toString()];
|
|
148
|
-
delete frameMaps[ft];
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
timer = requestAnimationFrame(function () {
|
|
153
|
-
timerHandler().catch(function (e) {
|
|
154
|
-
console.log('task.onFrame: -3', e);
|
|
155
|
-
});
|
|
156
|
-
});
|
|
157
|
-
frameMaps[ft] = timer;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
else if (count === 1) {
|
|
161
|
-
delete task.timers['1x' + ft.toString()];
|
|
162
|
-
delete frameMaps[ft];
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
timer = requestAnimationFrame(function () {
|
|
166
|
-
timerHandler().catch(function (e) {
|
|
167
|
-
console.log('task.onFrame: -2', e);
|
|
168
|
-
});
|
|
169
|
-
});
|
|
170
|
-
frameMaps[ft] = timer;
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
timer = requestAnimationFrame(function () {
|
|
174
|
-
timerHandler().catch(function (e) {
|
|
175
|
-
console.log('task.onFrame: -1', e);
|
|
176
|
-
});
|
|
177
|
-
});
|
|
178
|
-
frameMaps[ft] = timer;
|
|
179
|
-
task.timers['1x' + ft.toString()] = formId ?? 0;
|
|
180
|
-
return ft;
|
|
181
|
-
}
|
|
182
|
-
function offFrame(ft, opt = {}) {
|
|
183
|
-
const taskId = opt.taskId;
|
|
184
|
-
if (!taskId) {
|
|
185
|
-
return;
|
|
186
|
-
}
|
|
187
|
-
if (!exports.list[taskId]) {
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
const formId = exports.list[taskId].timers['1x' + ft.toString()];
|
|
191
|
-
if (formId === undefined) {
|
|
192
|
-
return;
|
|
193
|
-
}
|
|
194
|
-
cancelAnimationFrame(frameMaps[ft]);
|
|
195
|
-
delete exports.list[taskId].timers['1x' + ft.toString()];
|
|
196
|
-
delete frameMaps[ft];
|
|
197
|
-
}
|
|
198
|
-
function get(tid) {
|
|
199
|
-
if (exports.list[tid] === undefined) {
|
|
200
|
-
return null;
|
|
201
|
-
}
|
|
202
|
-
return {
|
|
203
|
-
'name': exports.list[tid].app.config.name,
|
|
204
|
-
'locale': exports.list[tid].locale.lang,
|
|
205
|
-
'customTheme': exports.list[tid].customTheme,
|
|
206
|
-
'formCount': Object.keys(exports.list[tid].forms).length,
|
|
207
|
-
'icon': exports.list[tid].app.icon,
|
|
208
|
-
'path': exports.list[tid].path,
|
|
209
|
-
'current': exports.list[tid].current
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
function getPermissions(tid) {
|
|
213
|
-
if (exports.list[tid] === undefined) {
|
|
214
|
-
return [];
|
|
215
|
-
}
|
|
216
|
-
return tool.clone(exports.list[tid].runtime.permissions);
|
|
217
|
-
}
|
|
218
|
-
function getList() {
|
|
219
|
-
const rtn = {};
|
|
220
|
-
for (const tid in exports.list) {
|
|
221
|
-
const item = exports.list[tid];
|
|
222
|
-
rtn[tid] = {
|
|
223
|
-
'name': item.app.config.name,
|
|
224
|
-
'locale': item.locale.lang,
|
|
225
|
-
'customTheme': item.customTheme,
|
|
226
|
-
'formCount': Object.keys(item.forms).length,
|
|
227
|
-
'icon': item.app.icon,
|
|
228
|
-
'path': item.path,
|
|
229
|
-
'current': item.current
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
return rtn;
|
|
233
|
-
}
|
|
234
|
-
async function run(url, opt = {}, ntid) {
|
|
235
|
-
let app = null;
|
|
236
|
-
if (typeof url === 'string') {
|
|
237
|
-
if (!url.endsWith('/') && !url.endsWith('.cga')) {
|
|
238
|
-
return 0;
|
|
239
|
-
}
|
|
240
|
-
let icon = __dirname + '/../icon.png';
|
|
241
|
-
if (opt.icon) {
|
|
242
|
-
icon = opt.icon;
|
|
243
|
-
}
|
|
244
|
-
opt.notify ??= true;
|
|
245
|
-
const notifyId = opt.notify ? form.notify({
|
|
246
|
-
'title': localeData[core.config.locale]?.loading ?? localeData['en'].loading,
|
|
247
|
-
'content': url,
|
|
248
|
-
'icon': icon,
|
|
249
|
-
'timeout': 0,
|
|
250
|
-
'progress': true
|
|
251
|
-
}) : undefined;
|
|
252
|
-
if (!ntid &&
|
|
253
|
-
!url.startsWith('/clickgo/') &&
|
|
254
|
-
!url.startsWith('/storage/') &&
|
|
255
|
-
!url.startsWith('/mounted/') &&
|
|
256
|
-
!url.startsWith('/package/') &&
|
|
257
|
-
!url.startsWith('/current/')) {
|
|
258
|
-
url = tool.urlResolve(location.href, url);
|
|
259
|
-
}
|
|
260
|
-
app = await core.fetchApp(url, {
|
|
261
|
-
'notifyId': notifyId,
|
|
262
|
-
'progress': opt.progress,
|
|
263
|
-
'cache': opt.cache
|
|
264
|
-
}, ntid);
|
|
265
|
-
if (notifyId) {
|
|
266
|
-
setTimeout(function () {
|
|
267
|
-
form.hideNotify(notifyId);
|
|
268
|
-
}, 3000);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
else if (url.type !== 'app') {
|
|
272
|
-
return -1;
|
|
273
|
-
}
|
|
274
|
-
else {
|
|
275
|
-
app = url;
|
|
276
|
-
}
|
|
277
|
-
if (!app) {
|
|
278
|
-
return -1;
|
|
279
|
-
}
|
|
280
|
-
const taskId = ++exports.lastId;
|
|
281
|
-
const blocks = ['document', 'localStorage'];
|
|
282
|
-
const invoke = {};
|
|
283
|
-
const ks = Object.getOwnPropertyNames(window);
|
|
284
|
-
invoke.window = {};
|
|
285
|
-
for (const k of ks) {
|
|
286
|
-
if (blocks.includes(k)) {
|
|
287
|
-
continue;
|
|
288
|
-
}
|
|
289
|
-
invoke.window[k] = window[k];
|
|
290
|
-
}
|
|
291
|
-
for (const block of blocks) {
|
|
292
|
-
invoke[block] = undefined;
|
|
293
|
-
}
|
|
294
|
-
invoke.console = {
|
|
295
|
-
assert: function (condition, ...data) {
|
|
296
|
-
console.assert(condition, ...data);
|
|
297
|
-
},
|
|
298
|
-
clear: function () {
|
|
299
|
-
console.clear();
|
|
300
|
-
},
|
|
301
|
-
count: function (label) {
|
|
302
|
-
console.count(label);
|
|
303
|
-
},
|
|
304
|
-
countReset: function (label) {
|
|
305
|
-
console.countReset(label);
|
|
306
|
-
},
|
|
307
|
-
debug: function (...data) {
|
|
308
|
-
console.debug(...data);
|
|
309
|
-
},
|
|
310
|
-
dir: function (item, options) {
|
|
311
|
-
console.dir(item, options);
|
|
312
|
-
},
|
|
313
|
-
dirxml: function (...data) {
|
|
314
|
-
console.dirxml(...data);
|
|
315
|
-
},
|
|
316
|
-
error: function (...data) {
|
|
317
|
-
console.error(...data);
|
|
318
|
-
},
|
|
319
|
-
group: function (...data) {
|
|
320
|
-
console.group(...data);
|
|
321
|
-
},
|
|
322
|
-
groupCollapsed: function (...data) {
|
|
323
|
-
console.groupCollapsed(...data);
|
|
324
|
-
},
|
|
325
|
-
groupEnd: function () {
|
|
326
|
-
console.groupEnd();
|
|
327
|
-
},
|
|
328
|
-
info: function (...data) {
|
|
329
|
-
console.info(...data);
|
|
330
|
-
},
|
|
331
|
-
log: function (...data) {
|
|
332
|
-
console.log(...data);
|
|
333
|
-
},
|
|
334
|
-
table: function (tabularData, properties) {
|
|
335
|
-
console.table(tabularData, properties);
|
|
336
|
-
},
|
|
337
|
-
time: function (label) {
|
|
338
|
-
console.time(label);
|
|
339
|
-
},
|
|
340
|
-
timeEnd: function (label) {
|
|
341
|
-
console.timeEnd(label);
|
|
342
|
-
},
|
|
343
|
-
timeLog: function (label, ...data) {
|
|
344
|
-
console.timeLog(label, ...data);
|
|
345
|
-
},
|
|
346
|
-
timeStamp: function (label) {
|
|
347
|
-
console.timeStamp(label);
|
|
348
|
-
},
|
|
349
|
-
trace: function (...data) {
|
|
350
|
-
console.trace(...data);
|
|
351
|
-
},
|
|
352
|
-
warn: function (...data) {
|
|
353
|
-
console.warn(...data);
|
|
354
|
-
}
|
|
355
|
-
};
|
|
356
|
-
invoke.loader = {
|
|
357
|
-
require: function (paths, files, opt) {
|
|
358
|
-
return loader.require(paths, files, opt);
|
|
359
|
-
}
|
|
360
|
-
};
|
|
361
|
-
invoke.invokeClickgo = {
|
|
362
|
-
getVersion: () => {
|
|
363
|
-
return clickgo.getVersion();
|
|
364
|
-
},
|
|
365
|
-
isNative: () => {
|
|
366
|
-
return clickgo.isNative();
|
|
367
|
-
},
|
|
368
|
-
getPlatform: () => {
|
|
369
|
-
return clickgo.getPlatform();
|
|
370
|
-
},
|
|
371
|
-
getDevice: () => {
|
|
372
|
-
return clickgo.getDevice();
|
|
373
|
-
},
|
|
374
|
-
isImmersion: () => {
|
|
375
|
-
return clickgo.isImmersion();
|
|
376
|
-
},
|
|
377
|
-
hasFrame: () => {
|
|
378
|
-
return clickgo.hasFrame();
|
|
379
|
-
},
|
|
380
|
-
'control': {
|
|
381
|
-
'AbstractControl': class extends control.AbstractControl {
|
|
382
|
-
get taskId() {
|
|
383
|
-
return taskId;
|
|
384
|
-
}
|
|
385
|
-
},
|
|
386
|
-
read: function (blob) {
|
|
387
|
-
return control.read(blob);
|
|
388
|
-
}
|
|
389
|
-
},
|
|
390
|
-
'core': {
|
|
391
|
-
'config': clickgo.core.config,
|
|
392
|
-
'global': clickgo.tool.clone(clickgo.core.global),
|
|
393
|
-
'AbstractApp': class extends core.AbstractApp {
|
|
394
|
-
async main() {
|
|
395
|
-
return;
|
|
396
|
-
}
|
|
397
|
-
get taskId() {
|
|
398
|
-
return taskId;
|
|
399
|
-
}
|
|
400
|
-
},
|
|
401
|
-
getCdn: function () {
|
|
402
|
-
return core.getCdn();
|
|
403
|
-
},
|
|
404
|
-
getModule: function (name) {
|
|
405
|
-
return core.getModule(name);
|
|
406
|
-
},
|
|
407
|
-
readApp: function (blob) {
|
|
408
|
-
return core.readApp(blob);
|
|
409
|
-
},
|
|
410
|
-
getAvailArea: function () {
|
|
411
|
-
return core.getAvailArea();
|
|
412
|
-
},
|
|
413
|
-
hash: function (hash) {
|
|
414
|
-
return core.hash(hash, taskId);
|
|
415
|
-
},
|
|
416
|
-
getHash: function () {
|
|
417
|
-
return core.getHash();
|
|
418
|
-
},
|
|
419
|
-
getHost: function () {
|
|
420
|
-
return core.getHost();
|
|
421
|
-
},
|
|
422
|
-
location: function (url) {
|
|
423
|
-
return core.location(url, taskId);
|
|
424
|
-
},
|
|
425
|
-
getLocation: function () {
|
|
426
|
-
return core.getLocation();
|
|
427
|
-
},
|
|
428
|
-
back: function () {
|
|
429
|
-
return core.back(taskId);
|
|
430
|
-
},
|
|
431
|
-
open: function (url) {
|
|
432
|
-
core.open(url);
|
|
433
|
-
}
|
|
434
|
-
},
|
|
435
|
-
'dom': {
|
|
436
|
-
inPage: function (el) {
|
|
437
|
-
return dom.inPage(el);
|
|
438
|
-
},
|
|
439
|
-
'dpi': dom.dpi,
|
|
440
|
-
setGlobalCursor: function (type) {
|
|
441
|
-
dom.setGlobalCursor(type);
|
|
442
|
-
},
|
|
443
|
-
hasTouchButMouse: function (e) {
|
|
444
|
-
return dom.hasTouchButMouse(e);
|
|
445
|
-
},
|
|
446
|
-
getStyleCount: function (taskId, type) {
|
|
447
|
-
return dom.getStyleCount(taskId, type);
|
|
448
|
-
},
|
|
449
|
-
watchPosition: function (el, cb, immediate = false) {
|
|
450
|
-
return dom.watchPosition(el, cb, immediate);
|
|
451
|
-
},
|
|
452
|
-
unwatchPosition: function (el) {
|
|
453
|
-
dom.unwatchPosition(el);
|
|
454
|
-
},
|
|
455
|
-
isWatchPosition: function (el) {
|
|
456
|
-
return dom.isWatchPosition(el);
|
|
457
|
-
},
|
|
458
|
-
getWatchSizeCount: function (taskId) {
|
|
459
|
-
return dom.getWatchSizeCount(taskId);
|
|
460
|
-
},
|
|
461
|
-
watchSize: function (el, cb, immediate = false) {
|
|
462
|
-
return dom.watchSize(el, cb, immediate, taskId);
|
|
463
|
-
},
|
|
464
|
-
unwatchSize: function (el) {
|
|
465
|
-
dom.unwatchSize(el, taskId);
|
|
466
|
-
},
|
|
467
|
-
isWatchSize: function (el) {
|
|
468
|
-
return dom.isWatchSize(el);
|
|
469
|
-
},
|
|
470
|
-
getWatchCount: function (taskId) {
|
|
471
|
-
return dom.getWatchCount(taskId);
|
|
472
|
-
},
|
|
473
|
-
watch: function (el, cb, mode = 'default', immediate = false) {
|
|
474
|
-
dom.watch(el, cb, mode, immediate, taskId);
|
|
475
|
-
},
|
|
476
|
-
unwatch: function (el) {
|
|
477
|
-
dom.unwatch(el, taskId);
|
|
478
|
-
},
|
|
479
|
-
isWatch(el) {
|
|
480
|
-
return dom.isWatch(el);
|
|
481
|
-
},
|
|
482
|
-
watchStyle: function (el, name, cb, immediate = false) {
|
|
483
|
-
dom.watchStyle(el, name, cb, immediate);
|
|
484
|
-
},
|
|
485
|
-
isWatchStyle: function (el) {
|
|
486
|
-
return dom.isWatchStyle(el);
|
|
487
|
-
},
|
|
488
|
-
watchProperty: function (el, name, cb, immediate = false) {
|
|
489
|
-
dom.watchProperty(el, name, cb, immediate);
|
|
490
|
-
},
|
|
491
|
-
isWatchProperty(el) {
|
|
492
|
-
return dom.isWatchProperty(el);
|
|
493
|
-
},
|
|
494
|
-
getWatchInfo: function () {
|
|
495
|
-
return dom.getWatchInfo();
|
|
496
|
-
},
|
|
497
|
-
bindClick: function (e, handler) {
|
|
498
|
-
dom.bindClick(e, handler);
|
|
499
|
-
},
|
|
500
|
-
bindDblClick: function (e, handler) {
|
|
501
|
-
dom.bindDblClick(e, handler);
|
|
502
|
-
},
|
|
503
|
-
bindDown: function (oe, opt) {
|
|
504
|
-
dom.bindDown(oe, opt);
|
|
505
|
-
},
|
|
506
|
-
bindScale: function (oe, handler) {
|
|
507
|
-
dom.bindScale(oe, handler);
|
|
508
|
-
},
|
|
509
|
-
bindGesture: function (oe, before, handler) {
|
|
510
|
-
dom.bindGesture(oe, before, handler);
|
|
511
|
-
},
|
|
512
|
-
bindLong: function (e, long) {
|
|
513
|
-
dom.bindLong(e, long);
|
|
514
|
-
},
|
|
515
|
-
setDragData(data) {
|
|
516
|
-
dom.setDragData(data);
|
|
517
|
-
},
|
|
518
|
-
bindDrag: function (e, opt) {
|
|
519
|
-
dom.bindDrag(e, opt);
|
|
520
|
-
},
|
|
521
|
-
'is': dom.is,
|
|
522
|
-
bindMove: function (e, opt) {
|
|
523
|
-
return dom.bindMove(e, opt);
|
|
524
|
-
},
|
|
525
|
-
bindResize: function (e, opt) {
|
|
526
|
-
dom.bindResize(e, opt);
|
|
527
|
-
},
|
|
528
|
-
findParentByData: function (el, name, value) {
|
|
529
|
-
return dom.findParentByData(el, name, value);
|
|
530
|
-
},
|
|
531
|
-
findParentByClass: function (el, name) {
|
|
532
|
-
return dom.findParentByClass(el, name);
|
|
533
|
-
},
|
|
534
|
-
findParentByTag: function (el, name) {
|
|
535
|
-
return dom.findParentByTag(el, name);
|
|
536
|
-
},
|
|
537
|
-
index: function (el) {
|
|
538
|
-
return dom.index(el);
|
|
539
|
-
},
|
|
540
|
-
siblings: function (el) {
|
|
541
|
-
return dom.siblings(el);
|
|
542
|
-
},
|
|
543
|
-
siblingsData: function (el, name) {
|
|
544
|
-
return dom.siblingsData(el, name);
|
|
545
|
-
},
|
|
546
|
-
fullscreen: function () {
|
|
547
|
-
return dom.fullscreen();
|
|
548
|
-
},
|
|
549
|
-
exitFullscreen: function () {
|
|
550
|
-
return dom.exitFullscreen();
|
|
551
|
-
},
|
|
552
|
-
createElement: function (tagName) {
|
|
553
|
-
return dom.createElement(tagName);
|
|
554
|
-
}
|
|
555
|
-
},
|
|
556
|
-
'form': {
|
|
557
|
-
'AbstractPanel': class extends form.AbstractPanel {
|
|
558
|
-
get taskId() {
|
|
559
|
-
return taskId;
|
|
560
|
-
}
|
|
561
|
-
},
|
|
562
|
-
'AbstractForm': class extends form.AbstractForm {
|
|
563
|
-
get taskId() {
|
|
564
|
-
return taskId;
|
|
565
|
-
}
|
|
566
|
-
},
|
|
567
|
-
min: function (fid) {
|
|
568
|
-
return form.min(fid);
|
|
569
|
-
},
|
|
570
|
-
max: function max(fid) {
|
|
571
|
-
return form.max(fid);
|
|
572
|
-
},
|
|
573
|
-
close: function (fid) {
|
|
574
|
-
return form.close(fid);
|
|
575
|
-
},
|
|
576
|
-
bindResize: function (e, border) {
|
|
577
|
-
form.bindResize(e, border);
|
|
578
|
-
},
|
|
579
|
-
bindDrag: function (e) {
|
|
580
|
-
form.bindDrag(e);
|
|
581
|
-
},
|
|
582
|
-
getTaskId: function (fid) {
|
|
583
|
-
return form.getTaskId(fid);
|
|
584
|
-
},
|
|
585
|
-
get: function (fid) {
|
|
586
|
-
return form.get(fid);
|
|
587
|
-
},
|
|
588
|
-
getList: function (tid) {
|
|
589
|
-
return form.getList(tid);
|
|
590
|
-
},
|
|
591
|
-
getFocus: function () {
|
|
592
|
-
return form.getFocus();
|
|
593
|
-
},
|
|
594
|
-
getActivePanel: function (formId) {
|
|
595
|
-
return form.getActivePanel(formId);
|
|
596
|
-
},
|
|
597
|
-
removeActivePanel: function (panelId, formId) {
|
|
598
|
-
return form.removeActivePanel(panelId, formId, taskId);
|
|
599
|
-
},
|
|
600
|
-
setActivePanel: function (panelId, formId) {
|
|
601
|
-
return form.setActivePanel(panelId, formId, taskId);
|
|
602
|
-
},
|
|
603
|
-
hash: function (hash, formId) {
|
|
604
|
-
return form.hash(hash, formId);
|
|
605
|
-
},
|
|
606
|
-
getHash: function (formId) {
|
|
607
|
-
return form.getHash(formId);
|
|
608
|
-
},
|
|
609
|
-
hashBack: function (formId) {
|
|
610
|
-
return form.hashBack(formId);
|
|
611
|
-
},
|
|
612
|
-
changeFocus: function (fid = 0) {
|
|
613
|
-
form.changeFocus(fid);
|
|
614
|
-
},
|
|
615
|
-
getMaxZIndexID: function (out) {
|
|
616
|
-
return form.getMaxZIndexID(out);
|
|
617
|
-
},
|
|
618
|
-
getRectByBorder: function (border) {
|
|
619
|
-
return form.getRectByBorder(border);
|
|
620
|
-
},
|
|
621
|
-
showCircular: function (x, y) {
|
|
622
|
-
form.showCircular(x, y);
|
|
623
|
-
},
|
|
624
|
-
moveRectangle: function (border) {
|
|
625
|
-
form.moveRectangle(border);
|
|
626
|
-
},
|
|
627
|
-
showRectangle: function (x, y, border) {
|
|
628
|
-
form.showRectangle(x, y, border);
|
|
629
|
-
},
|
|
630
|
-
hideRectangle: function () {
|
|
631
|
-
form.hideRectangle();
|
|
632
|
-
},
|
|
633
|
-
showDrag: function () {
|
|
634
|
-
form.showDrag();
|
|
635
|
-
},
|
|
636
|
-
moveDrag: function (opt) {
|
|
637
|
-
form.moveDrag(opt);
|
|
638
|
-
},
|
|
639
|
-
hideDrag: function () {
|
|
640
|
-
form.hideDrag();
|
|
641
|
-
},
|
|
642
|
-
alert: function (content, type) {
|
|
643
|
-
return form.alert(content, type);
|
|
644
|
-
},
|
|
645
|
-
notify: function (opt) {
|
|
646
|
-
return form.notify(opt);
|
|
647
|
-
},
|
|
648
|
-
notifyProgress: function (notifyId, per) {
|
|
649
|
-
form.notifyProgress(notifyId, per);
|
|
650
|
-
},
|
|
651
|
-
notifyContent: function (notifyId, opt) {
|
|
652
|
-
form.notifyContent(notifyId, opt);
|
|
653
|
-
},
|
|
654
|
-
hideNotify: function (notifyId) {
|
|
655
|
-
form.hideNotify(notifyId);
|
|
656
|
-
},
|
|
657
|
-
showPop: function (el, pop, direction, opt = {}) {
|
|
658
|
-
form.showPop(el, pop, direction, opt);
|
|
659
|
-
},
|
|
660
|
-
hidePop: function (pop) {
|
|
661
|
-
form.hidePop(pop);
|
|
662
|
-
},
|
|
663
|
-
isJustPop: function (el) {
|
|
664
|
-
return form.isJustPop(el);
|
|
665
|
-
},
|
|
666
|
-
doFocusAndPopEvent: function (e) {
|
|
667
|
-
form.doFocusAndPopEvent(e);
|
|
668
|
-
},
|
|
669
|
-
removePanel(id, vapp, el) {
|
|
670
|
-
return form.removePanel(id, vapp, el);
|
|
671
|
-
},
|
|
672
|
-
createPanel(rootPanel, cls, opt) {
|
|
673
|
-
return form.createPanel(rootPanel, cls, opt, taskId);
|
|
674
|
-
},
|
|
675
|
-
create: function (cls, data, opt) {
|
|
676
|
-
return form.create(cls, data, opt, taskId);
|
|
677
|
-
},
|
|
678
|
-
dialog: function (opt) {
|
|
679
|
-
if (typeof opt === 'string') {
|
|
680
|
-
opt = {
|
|
681
|
-
'content': opt
|
|
682
|
-
};
|
|
683
|
-
}
|
|
684
|
-
opt.taskId = taskId;
|
|
685
|
-
return form.dialog(opt);
|
|
686
|
-
},
|
|
687
|
-
confirm: function (opt) {
|
|
688
|
-
if (typeof opt === 'string') {
|
|
689
|
-
opt = {
|
|
690
|
-
'content': opt
|
|
691
|
-
};
|
|
692
|
-
}
|
|
693
|
-
opt.taskId = taskId;
|
|
694
|
-
return form.confirm(opt);
|
|
695
|
-
},
|
|
696
|
-
prompt: function (opt) {
|
|
697
|
-
if (typeof opt === 'string') {
|
|
698
|
-
opt = {
|
|
699
|
-
'content': opt
|
|
700
|
-
};
|
|
701
|
-
}
|
|
702
|
-
opt.taskId = taskId;
|
|
703
|
-
return form.prompt(opt);
|
|
704
|
-
},
|
|
705
|
-
flash: function (fid) {
|
|
706
|
-
form.flash(fid, taskId);
|
|
707
|
-
},
|
|
708
|
-
showLauncher: function () {
|
|
709
|
-
form.showLauncher();
|
|
710
|
-
},
|
|
711
|
-
hideLauncher: function () {
|
|
712
|
-
form.hideLauncher();
|
|
713
|
-
}
|
|
714
|
-
},
|
|
715
|
-
'fs': {
|
|
716
|
-
mount: function (name, handler) {
|
|
717
|
-
return clickgo.fs.mount(name, handler, taskId);
|
|
718
|
-
},
|
|
719
|
-
unmount: function (name) {
|
|
720
|
-
return clickgo.fs.unmount(name);
|
|
721
|
-
},
|
|
722
|
-
getContent: function (path, options = {}) {
|
|
723
|
-
return fs.getContent(path, options, taskId);
|
|
724
|
-
},
|
|
725
|
-
putContent: function (path, data, options = {}) {
|
|
726
|
-
return fs.putContent(path, data, options, taskId);
|
|
727
|
-
},
|
|
728
|
-
readLink: function (path, options = {}) {
|
|
729
|
-
return fs.readLink(path, options, taskId);
|
|
730
|
-
},
|
|
731
|
-
symlink: function (fPath, linkPath, options = {}) {
|
|
732
|
-
return fs.symlink(fPath, linkPath, options, taskId);
|
|
733
|
-
},
|
|
734
|
-
unlink: function (path) {
|
|
735
|
-
return fs.unlink(path, taskId);
|
|
736
|
-
},
|
|
737
|
-
stats: function (path) {
|
|
738
|
-
return fs.stats(path, taskId);
|
|
739
|
-
},
|
|
740
|
-
isDir: function (path) {
|
|
741
|
-
return fs.isDir(path, taskId);
|
|
742
|
-
},
|
|
743
|
-
isFile: function (path) {
|
|
744
|
-
return fs.isFile(path, taskId);
|
|
745
|
-
},
|
|
746
|
-
mkdir: function (path, mode) {
|
|
747
|
-
return fs.mkdir(path, mode, taskId);
|
|
748
|
-
},
|
|
749
|
-
rmdir: function (path) {
|
|
750
|
-
return fs.rmdir(path, taskId);
|
|
751
|
-
},
|
|
752
|
-
rmdirDeep: function (path) {
|
|
753
|
-
return fs.rmdirDeep(path, taskId);
|
|
754
|
-
},
|
|
755
|
-
chmod: function (path, mod) {
|
|
756
|
-
return fs.chmod(path, mod, taskId);
|
|
757
|
-
},
|
|
758
|
-
rename(oldPath, newPath) {
|
|
759
|
-
return fs.rename(oldPath, newPath, taskId);
|
|
760
|
-
},
|
|
761
|
-
readDir(path, encoding) {
|
|
762
|
-
return fs.readDir(path, encoding, taskId);
|
|
763
|
-
},
|
|
764
|
-
copyFolder(from, to, options = {}) {
|
|
765
|
-
return fs.copyFolder(from, to, options, taskId);
|
|
766
|
-
},
|
|
767
|
-
copyFile(src, dest) {
|
|
768
|
-
return fs.copyFile(src, dest, taskId);
|
|
769
|
-
}
|
|
770
|
-
},
|
|
771
|
-
'native': {
|
|
772
|
-
on(name, handler, once = false, formId) {
|
|
773
|
-
native.on(name, handler, once, formId, taskId);
|
|
774
|
-
},
|
|
775
|
-
once(name, handler, formId) {
|
|
776
|
-
native.once(name, handler, formId, taskId);
|
|
777
|
-
},
|
|
778
|
-
off(name, formId) {
|
|
779
|
-
native.off(name, formId, taskId);
|
|
780
|
-
},
|
|
781
|
-
clear(formId, taskId) {
|
|
782
|
-
native.clear(formId, taskId);
|
|
783
|
-
},
|
|
784
|
-
getListenerList(taskId) {
|
|
785
|
-
return native.getListenerList(taskId);
|
|
786
|
-
},
|
|
787
|
-
invoke: function (name, ...param) {
|
|
788
|
-
return native.invoke(name, ...param);
|
|
789
|
-
},
|
|
790
|
-
size: async function (width, height) {
|
|
791
|
-
const rtn = await checkPermission('native.form', false, undefined, taskId);
|
|
792
|
-
if (!rtn[0]) {
|
|
793
|
-
return;
|
|
794
|
-
}
|
|
795
|
-
await native.size(width, height);
|
|
796
|
-
},
|
|
797
|
-
max: async function () {
|
|
798
|
-
const rtn = await checkPermission('native.form', false, undefined, taskId);
|
|
799
|
-
if (!rtn[0]) {
|
|
800
|
-
return;
|
|
801
|
-
}
|
|
802
|
-
await native.max();
|
|
803
|
-
},
|
|
804
|
-
min: async function () {
|
|
805
|
-
const rtn = await checkPermission('native.form', false, undefined, taskId);
|
|
806
|
-
if (!rtn[0]) {
|
|
807
|
-
return;
|
|
808
|
-
}
|
|
809
|
-
await native.min();
|
|
810
|
-
},
|
|
811
|
-
restore: async function () {
|
|
812
|
-
const rtn = await checkPermission('native.form', false, undefined, taskId);
|
|
813
|
-
if (!rtn[0]) {
|
|
814
|
-
return;
|
|
815
|
-
}
|
|
816
|
-
await native.restore();
|
|
817
|
-
},
|
|
818
|
-
activate: async function () {
|
|
819
|
-
const rtn = await checkPermission('native.form', false, undefined, taskId);
|
|
820
|
-
if (!rtn[0]) {
|
|
821
|
-
return;
|
|
822
|
-
}
|
|
823
|
-
await native.activate();
|
|
824
|
-
},
|
|
825
|
-
maximizable: async function (val) {
|
|
826
|
-
const rtn = await checkPermission('native.form', false, undefined, taskId);
|
|
827
|
-
if (!rtn[0]) {
|
|
828
|
-
return;
|
|
829
|
-
}
|
|
830
|
-
await native.maximizable(val);
|
|
831
|
-
},
|
|
832
|
-
open: async function (options) {
|
|
833
|
-
const rtn = await checkPermission('native.form', false, undefined, taskId);
|
|
834
|
-
if (!rtn[0]) {
|
|
835
|
-
return null;
|
|
836
|
-
}
|
|
837
|
-
return native.open(options);
|
|
838
|
-
},
|
|
839
|
-
save: async function (options) {
|
|
840
|
-
const rtn = await checkPermission('native.form', false, undefined, taskId);
|
|
841
|
-
if (!rtn[0]) {
|
|
842
|
-
return null;
|
|
843
|
-
}
|
|
844
|
-
return native.save(options);
|
|
845
|
-
},
|
|
846
|
-
dialog: async function (options) {
|
|
847
|
-
const rtn = await checkPermission('native.form', false, undefined, taskId);
|
|
848
|
-
if (!rtn[0]) {
|
|
849
|
-
return -1;
|
|
850
|
-
}
|
|
851
|
-
return native.dialog(options);
|
|
852
|
-
},
|
|
853
|
-
ping: function (val) {
|
|
854
|
-
return native.ping(val);
|
|
855
|
-
},
|
|
856
|
-
isMax: function () {
|
|
857
|
-
return native.isMax();
|
|
858
|
-
},
|
|
859
|
-
},
|
|
860
|
-
'storage': {
|
|
861
|
-
get: function (key) {
|
|
862
|
-
return clickgo.storage.get(key, taskId);
|
|
863
|
-
},
|
|
864
|
-
set: function (key, val) {
|
|
865
|
-
return clickgo.storage.set(key, val, taskId);
|
|
866
|
-
},
|
|
867
|
-
remove: function (key) {
|
|
868
|
-
return clickgo.storage.remove(key, taskId);
|
|
869
|
-
},
|
|
870
|
-
list: function () {
|
|
871
|
-
return clickgo.storage.list(taskId);
|
|
872
|
-
},
|
|
873
|
-
all: function () {
|
|
874
|
-
return clickgo.storage.all();
|
|
875
|
-
},
|
|
876
|
-
clear: function (path) {
|
|
877
|
-
return clickgo.storage.clear(path);
|
|
878
|
-
}
|
|
879
|
-
},
|
|
880
|
-
'task': {
|
|
881
|
-
getFocus: function () {
|
|
882
|
-
return focusId;
|
|
883
|
-
},
|
|
884
|
-
onFrame: function (fun, opt = {}) {
|
|
885
|
-
opt.taskId = taskId;
|
|
886
|
-
return onFrame(fun, opt);
|
|
887
|
-
},
|
|
888
|
-
offFrame: function (ft, opt = {}) {
|
|
889
|
-
opt.taskId = taskId;
|
|
890
|
-
offFrame(ft, opt);
|
|
891
|
-
},
|
|
892
|
-
get: function (tid) {
|
|
893
|
-
return get(tid);
|
|
894
|
-
},
|
|
895
|
-
getPermissions: function (tid) {
|
|
896
|
-
return getPermissions(tid);
|
|
897
|
-
},
|
|
898
|
-
getList: function () {
|
|
899
|
-
return getList();
|
|
900
|
-
},
|
|
901
|
-
run: function (url, opt = {}) {
|
|
902
|
-
if (opt.permissions) {
|
|
903
|
-
if (!exports.list[taskId]?.runtime.permissions.includes('root')) {
|
|
904
|
-
opt.permissions = undefined;
|
|
905
|
-
}
|
|
906
|
-
}
|
|
907
|
-
return run(url, opt, taskId);
|
|
908
|
-
},
|
|
909
|
-
checkPermission: function (vals, apply = false, applyHandler) {
|
|
910
|
-
return checkPermission(vals, apply, applyHandler, taskId);
|
|
911
|
-
},
|
|
912
|
-
end: function (tid) {
|
|
913
|
-
return end(tid ?? taskId);
|
|
914
|
-
},
|
|
915
|
-
loadLocaleData: function (lang, data, pre = '') {
|
|
916
|
-
loadLocaleData(lang, data, pre, taskId);
|
|
917
|
-
},
|
|
918
|
-
loadLocale: function (lang, path) {
|
|
919
|
-
return loadLocale(lang, path, taskId);
|
|
920
|
-
},
|
|
921
|
-
clearLocale: function () {
|
|
922
|
-
clearLocale(taskId);
|
|
923
|
-
},
|
|
924
|
-
setLocale: function (lang, path) {
|
|
925
|
-
return setLocale(lang, path, taskId);
|
|
926
|
-
},
|
|
927
|
-
setLocaleLang: function (lang) {
|
|
928
|
-
setLocaleLang(lang, taskId);
|
|
929
|
-
},
|
|
930
|
-
clearLocaleLang: function () {
|
|
931
|
-
clearLocaleLang(taskId);
|
|
932
|
-
},
|
|
933
|
-
createTimer: function (fun, delay, opt = {}) {
|
|
934
|
-
opt.taskId = taskId;
|
|
935
|
-
return createTimer(fun, delay, opt);
|
|
936
|
-
},
|
|
937
|
-
removeTimer: function (timer) {
|
|
938
|
-
removeTimer(timer, taskId);
|
|
939
|
-
},
|
|
940
|
-
sleep: function (fun, delay) {
|
|
941
|
-
return sleep(fun, delay, taskId);
|
|
942
|
-
},
|
|
943
|
-
'systemTaskInfo': clickgo.task.systemTaskInfo,
|
|
944
|
-
setSystem: function (fid) {
|
|
945
|
-
return setSystem(fid, taskId);
|
|
946
|
-
},
|
|
947
|
-
clearSystem: function () {
|
|
948
|
-
return clearSystem(taskId);
|
|
949
|
-
}
|
|
950
|
-
},
|
|
951
|
-
'theme': {
|
|
952
|
-
read: function (blob) {
|
|
953
|
-
return clickgo.theme.read(blob);
|
|
954
|
-
},
|
|
955
|
-
load: async function (theme) {
|
|
956
|
-
if (!theme) {
|
|
957
|
-
return false;
|
|
958
|
-
}
|
|
959
|
-
return clickgo.theme.load(theme, taskId);
|
|
960
|
-
},
|
|
961
|
-
remove: function (name) {
|
|
962
|
-
return clickgo.theme.remove(name, taskId);
|
|
963
|
-
},
|
|
964
|
-
clear: function () {
|
|
965
|
-
return clickgo.theme.clear(taskId);
|
|
966
|
-
},
|
|
967
|
-
setGlobal: function (theme) {
|
|
968
|
-
return clickgo.theme.setGlobal(theme);
|
|
969
|
-
},
|
|
970
|
-
clearGlobal: function () {
|
|
971
|
-
clickgo.theme.clearGlobal();
|
|
972
|
-
}
|
|
973
|
-
},
|
|
974
|
-
'tool': {
|
|
975
|
-
compressor: function (file, options = {}) {
|
|
976
|
-
return tool.compressor(file, options);
|
|
977
|
-
},
|
|
978
|
-
blob2ArrayBuffer: function (blob) {
|
|
979
|
-
return tool.blob2ArrayBuffer(blob);
|
|
980
|
-
},
|
|
981
|
-
sizeFormat: function (size, spliter = ' ') {
|
|
982
|
-
return tool.sizeFormat(size, spliter);
|
|
983
|
-
},
|
|
984
|
-
weightFormat: function (weight, spliter = ' ') {
|
|
985
|
-
return tool.weightFormat(weight, spliter);
|
|
986
|
-
},
|
|
987
|
-
clone: function (obj) {
|
|
988
|
-
return tool.clone(obj);
|
|
989
|
-
},
|
|
990
|
-
sleep: function (ms = 0) {
|
|
991
|
-
return tool.sleep(ms);
|
|
992
|
-
},
|
|
993
|
-
nextFrame() {
|
|
994
|
-
return tool.nextFrame();
|
|
995
|
-
},
|
|
996
|
-
sleepFrame(count) {
|
|
997
|
-
return tool.sleepFrame(count);
|
|
998
|
-
},
|
|
999
|
-
purify: function (text) {
|
|
1000
|
-
return tool.purify(text);
|
|
1001
|
-
},
|
|
1002
|
-
match: function (str, regs) {
|
|
1003
|
-
return tool.match(str, regs);
|
|
1004
|
-
},
|
|
1005
|
-
layoutAddTagClassAndReTagName: function (layout, retagname) {
|
|
1006
|
-
return tool.layoutAddTagClassAndReTagName(layout, retagname);
|
|
1007
|
-
},
|
|
1008
|
-
layoutClassPrepend: function (layout, preps) {
|
|
1009
|
-
return tool.layoutClassPrepend(layout, preps);
|
|
1010
|
-
},
|
|
1011
|
-
stylePrepend: function (style, prep = '') {
|
|
1012
|
-
return tool.stylePrepend(style, prep);
|
|
1013
|
-
},
|
|
1014
|
-
rand: function (min, max) {
|
|
1015
|
-
return tool.rand(min, max);
|
|
1016
|
-
},
|
|
1017
|
-
'RANDOM_N': tool.RANDOM_N,
|
|
1018
|
-
'RANDOM_U': tool.RANDOM_U,
|
|
1019
|
-
'RANDOM_L': tool.RANDOM_L,
|
|
1020
|
-
'RANDOM_UN': tool.RANDOM_UN,
|
|
1021
|
-
'RANDOM_LN': tool.RANDOM_LN,
|
|
1022
|
-
'RANDOM_LU': tool.RANDOM_LU,
|
|
1023
|
-
'RANDOM_LUN': tool.RANDOM_LUN,
|
|
1024
|
-
'RANDOM_V': tool.RANDOM_V,
|
|
1025
|
-
'RANDOM_LUNS': tool.RANDOM_LUNS,
|
|
1026
|
-
random: function (length = 8, source = tool.RANDOM_LN, block = '') {
|
|
1027
|
-
return tool.random(length, source, block);
|
|
1028
|
-
},
|
|
1029
|
-
getBoolean: function (param) {
|
|
1030
|
-
return tool.getBoolean(param);
|
|
1031
|
-
},
|
|
1032
|
-
getNumber: function (param) {
|
|
1033
|
-
return tool.getNumber(param);
|
|
1034
|
-
},
|
|
1035
|
-
getArray(param) {
|
|
1036
|
-
return tool.getArray(param);
|
|
1037
|
-
},
|
|
1038
|
-
escapeHTML: function (html) {
|
|
1039
|
-
return tool.escapeHTML(html);
|
|
1040
|
-
},
|
|
1041
|
-
formatColor: function (color) {
|
|
1042
|
-
return tool.formatColor(color);
|
|
1043
|
-
},
|
|
1044
|
-
rgb2hex: function (r, g, b, a = 1) {
|
|
1045
|
-
return tool.rgb2hex(r, g, b, a);
|
|
1046
|
-
},
|
|
1047
|
-
hex2rgb: function (hex) {
|
|
1048
|
-
return tool.hex2rgb(hex);
|
|
1049
|
-
},
|
|
1050
|
-
rgb2hsl: function (r, g, b, a = 1, decimal = false) {
|
|
1051
|
-
return tool.rgb2hsl(r, g, b, a, decimal);
|
|
1052
|
-
},
|
|
1053
|
-
hsl2rgb: function (h, s, l, a = 1, decimal = false) {
|
|
1054
|
-
return tool.hsl2rgb(h, s, l, a, decimal);
|
|
1055
|
-
},
|
|
1056
|
-
request: function (url, opt) {
|
|
1057
|
-
return tool.request(url, opt);
|
|
1058
|
-
},
|
|
1059
|
-
fetch: function (url, init) {
|
|
1060
|
-
return tool.fetch(url, init);
|
|
1061
|
-
},
|
|
1062
|
-
get: function (url, opt) {
|
|
1063
|
-
return tool.get(url, opt);
|
|
1064
|
-
},
|
|
1065
|
-
post: function (url, data, opt) {
|
|
1066
|
-
return tool.post(url, data, opt);
|
|
1067
|
-
},
|
|
1068
|
-
getResponseJson: function (url, opt) {
|
|
1069
|
-
return tool.getResponseJson(url, opt);
|
|
1070
|
-
},
|
|
1071
|
-
postResponseJson: function (url, data, opt) {
|
|
1072
|
-
return tool.postResponseJson(url, data, opt);
|
|
1073
|
-
},
|
|
1074
|
-
parseUrl: function (url) {
|
|
1075
|
-
return tool.parseUrl(url);
|
|
1076
|
-
},
|
|
1077
|
-
urlResolve: function (from, to) {
|
|
1078
|
-
return tool.urlResolve(from, to);
|
|
1079
|
-
},
|
|
1080
|
-
urlAtom: function (url) {
|
|
1081
|
-
return tool.urlAtom(url);
|
|
1082
|
-
},
|
|
1083
|
-
blob2Text: function (blob) {
|
|
1084
|
-
return tool.blob2Text(blob);
|
|
1085
|
-
},
|
|
1086
|
-
blob2DataUrl: function (blob) {
|
|
1087
|
-
return tool.blob2DataUrl(blob);
|
|
1088
|
-
},
|
|
1089
|
-
execCommand: function (ac) {
|
|
1090
|
-
tool.execCommand(ac);
|
|
1091
|
-
},
|
|
1092
|
-
compar: function (before, after) {
|
|
1093
|
-
return tool.compar(before, after);
|
|
1094
|
-
},
|
|
1095
|
-
formatSecond: function (second) {
|
|
1096
|
-
return tool.formatSecond(second);
|
|
1097
|
-
},
|
|
1098
|
-
formatTime: function (ts, tz) {
|
|
1099
|
-
return tool.formatTime(ts, tz);
|
|
1100
|
-
},
|
|
1101
|
-
isMs: function (time) {
|
|
1102
|
-
return tool.isMs(time);
|
|
1103
|
-
},
|
|
1104
|
-
queryStringify: function (query) {
|
|
1105
|
-
return tool.queryStringify(query);
|
|
1106
|
-
},
|
|
1107
|
-
queryParse: function (query) {
|
|
1108
|
-
return tool.queryParse(query);
|
|
1109
|
-
}
|
|
1110
|
-
},
|
|
1111
|
-
'zip': {
|
|
1112
|
-
get: function (data) {
|
|
1113
|
-
return clickgo.zip.get(data);
|
|
1114
|
-
}
|
|
1115
|
-
}
|
|
1116
|
-
};
|
|
1117
|
-
const preprocess = function (code, path) {
|
|
1118
|
-
const exec = /eval\W/.exec(code);
|
|
1119
|
-
if (exec) {
|
|
1120
|
-
form.notify({
|
|
1121
|
-
'title': 'Error',
|
|
1122
|
-
'content': `The "eval" is prohibited.\nFile: "${path}".`,
|
|
1123
|
-
'type': 'danger'
|
|
1124
|
-
});
|
|
1125
|
-
return '';
|
|
1126
|
-
}
|
|
1127
|
-
code = code.replace(/extends[\s\S]+?\.\s*(AbstractApp|AbstractForm|AbstractPanel)\s*{/, (t) => {
|
|
1128
|
-
return t + 'get filename() {return __filename;}';
|
|
1129
|
-
});
|
|
1130
|
-
return code;
|
|
1131
|
-
};
|
|
1132
|
-
app.files['/invoke/clickgo.js'] = `module.exports = invokeClickgo;`;
|
|
1133
|
-
const path = opt.path ?? ((typeof url === 'string') ? url : '/runtime/' + tool.random(8, tool.RANDOM_LUN) + '.cga');
|
|
1134
|
-
const lio = path.endsWith('.cga') ? path.lastIndexOf('/') : path.slice(0, -1).lastIndexOf('/');
|
|
1135
|
-
const current = path.slice(0, lio);
|
|
1136
|
-
exports.list[taskId] = {
|
|
1137
|
-
'id': taskId,
|
|
1138
|
-
'app': app,
|
|
1139
|
-
'customTheme': false,
|
|
1140
|
-
'locale': clickgo.vue.reactive({
|
|
1141
|
-
'lang': '',
|
|
1142
|
-
'data': {}
|
|
1143
|
-
}),
|
|
1144
|
-
'path': path,
|
|
1145
|
-
'current': current,
|
|
1146
|
-
'runtime': clickgo.vue.reactive({
|
|
1147
|
-
'dialogFormIds': [],
|
|
1148
|
-
'permissions': opt.permissions ?? []
|
|
1149
|
-
}),
|
|
1150
|
-
'forms': {},
|
|
1151
|
-
'controls': {},
|
|
1152
|
-
'timers': {},
|
|
1153
|
-
'invoke': invoke
|
|
1154
|
-
};
|
|
1155
|
-
if (app.config.locales) {
|
|
1156
|
-
for (let path in app.config.locales) {
|
|
1157
|
-
const locale = app.config.locales[path];
|
|
1158
|
-
if (!path.endsWith('.json')) {
|
|
1159
|
-
path += '.json';
|
|
1160
|
-
}
|
|
1161
|
-
await opt.initProgress?.('Load local ' + path + ' ...');
|
|
1162
|
-
const lcontent = await fs.getContent(path, {
|
|
1163
|
-
'encoding': 'utf8'
|
|
1164
|
-
}, taskId);
|
|
1165
|
-
if (!lcontent) {
|
|
1166
|
-
continue;
|
|
1167
|
-
}
|
|
1168
|
-
try {
|
|
1169
|
-
const data = JSON.parse(lcontent);
|
|
1170
|
-
loadLocaleData(locale, data, '', taskId);
|
|
1171
|
-
}
|
|
1172
|
-
catch {
|
|
1173
|
-
}
|
|
1174
|
-
}
|
|
1175
|
-
}
|
|
1176
|
-
let expo = [];
|
|
1177
|
-
try {
|
|
1178
|
-
const map = {
|
|
1179
|
-
'clickgo': '/invoke/clickgo'
|
|
1180
|
-
};
|
|
1181
|
-
if (app.config.map) {
|
|
1182
|
-
Object.assign(map, app.config.map);
|
|
1183
|
-
}
|
|
1184
|
-
expo = loader.require('/app.js', app.files, {
|
|
1185
|
-
'dir': '/',
|
|
1186
|
-
'invoke': invoke,
|
|
1187
|
-
'preprocess': preprocess,
|
|
1188
|
-
'map': map
|
|
1189
|
-
})[0];
|
|
1190
|
-
}
|
|
1191
|
-
catch (e) {
|
|
1192
|
-
delete exports.list[taskId];
|
|
1193
|
-
core.trigger('error', taskId, 0, e, e.message + '(-1)');
|
|
1194
|
-
return -2;
|
|
1195
|
-
}
|
|
1196
|
-
if (!expo?.default) {
|
|
1197
|
-
delete exports.list[taskId];
|
|
1198
|
-
return -3;
|
|
1199
|
-
}
|
|
1200
|
-
dom.createToStyleList(taskId);
|
|
1201
|
-
await opt.initProgress?.('Control initialization ...');
|
|
1202
|
-
const r = await control.init(taskId, invoke, opt.cache);
|
|
1203
|
-
if (r < 0) {
|
|
1204
|
-
dom.removeFromStyleList(taskId);
|
|
1205
|
-
delete exports.list[taskId];
|
|
1206
|
-
return -400 + r;
|
|
1207
|
-
}
|
|
1208
|
-
if (app.config.themes?.length) {
|
|
1209
|
-
for (let path of app.config.themes) {
|
|
1210
|
-
path += '.cgt';
|
|
1211
|
-
path = tool.urlResolve('/', path);
|
|
1212
|
-
await opt.initProgress?.('Load theme ' + path + ' ...');
|
|
1213
|
-
const file = await fs.getContent(path, undefined, taskId);
|
|
1214
|
-
if (file && typeof file !== 'string') {
|
|
1215
|
-
const th = await theme.read(file);
|
|
1216
|
-
if (th) {
|
|
1217
|
-
await theme.load(th, taskId);
|
|
1218
|
-
}
|
|
1219
|
-
}
|
|
1220
|
-
}
|
|
1221
|
-
}
|
|
1222
|
-
else {
|
|
1223
|
-
if (theme.global) {
|
|
1224
|
-
await opt.initProgress?.('Load global theme ...');
|
|
1225
|
-
await theme.load(undefined, taskId);
|
|
1226
|
-
}
|
|
1227
|
-
}
|
|
1228
|
-
if (app.config.style) {
|
|
1229
|
-
const style = await fs.getContent(app.config.style + '.css', {
|
|
1230
|
-
'encoding': 'utf8'
|
|
1231
|
-
}, taskId);
|
|
1232
|
-
if (style) {
|
|
1233
|
-
const r = tool.stylePrepend(style, 'cg-task' + taskId.toString() + '_');
|
|
1234
|
-
await opt.initProgress?.('Style initialization ...');
|
|
1235
|
-
dom.pushStyle(taskId, await tool.styleUrl2DataUrl(app.config.style, r.style, app.files));
|
|
1236
|
-
}
|
|
1237
|
-
}
|
|
1238
|
-
core.trigger('taskStarted', taskId);
|
|
1239
|
-
if (app.config.permissions) {
|
|
1240
|
-
await opt.initProgress?.('Style initialization ...');
|
|
1241
|
-
await checkPermission(app.config.permissions, true, undefined, taskId);
|
|
1242
|
-
}
|
|
1243
|
-
const appCls = new expo.default();
|
|
1244
|
-
exports.list[taskId].class = appCls;
|
|
1245
|
-
await opt.initProgress?.('Starting ...');
|
|
1246
|
-
await appCls.main(opt.data ?? {});
|
|
1247
|
-
return taskId;
|
|
1248
|
-
}
|
|
1249
|
-
const locale = {
|
|
1250
|
-
'sc': {
|
|
1251
|
-
'unknown': '未知权限',
|
|
1252
|
-
'root': '<b>危险!</b>最高权限!请一定确认是否允许!',
|
|
1253
|
-
'apply-permission': '正在申请权限,请您仔细确认',
|
|
1254
|
-
'native.form': '实体窗体控制',
|
|
1255
|
-
'hash': '可修改地址栏 hash',
|
|
1256
|
-
'fs': '文件系统',
|
|
1257
|
-
'readonly': '只读',
|
|
1258
|
-
'read-write': '读写'
|
|
1259
|
-
},
|
|
1260
|
-
'tc': {
|
|
1261
|
-
'unknown': '未知許可權',
|
|
1262
|
-
'root': '<b>危險!</b>最高許可權!請一定確認是否允許!',
|
|
1263
|
-
'apply-permission': '正在申請許可權,請您仔細確認',
|
|
1264
|
-
'native.form': '實體視窗控制',
|
|
1265
|
-
'hash': '可修改位址列 hash',
|
|
1266
|
-
'fs': '檔案系統',
|
|
1267
|
-
'readonly': '唯讀',
|
|
1268
|
-
'read-write': '讀寫'
|
|
1269
|
-
},
|
|
1270
|
-
'en': {
|
|
1271
|
-
'unknown': 'Unknown',
|
|
1272
|
-
'root': '<b>Danger!</b> Highest permission! Please confirm if you want to allow!',
|
|
1273
|
-
'apply-permission': 'Applying permission, please confirm carefully',
|
|
1274
|
-
'native.form': 'Native window control',
|
|
1275
|
-
'hash': 'Can modify address bar "hash"',
|
|
1276
|
-
'fs': 'File system',
|
|
1277
|
-
'readonly': 'Read-only',
|
|
1278
|
-
'read-write': 'Read and write'
|
|
1279
|
-
},
|
|
1280
|
-
'ja': {
|
|
1281
|
-
'unknown': '不明な権限',
|
|
1282
|
-
'root': '<b>危険!</b>最高権限です!許可するかどうか必ず確認してください!',
|
|
1283
|
-
'apply-permission': '権限を申請中です。よくご確認ください',
|
|
1284
|
-
'native.form': 'ネイティブフォームコントロール',
|
|
1285
|
-
'hash': 'アドレスバーの "hash" を変更できます',
|
|
1286
|
-
'fs': 'ファイルシステム',
|
|
1287
|
-
'readonly': '読み取り専用',
|
|
1288
|
-
'read-write': '読み書き可能'
|
|
1289
|
-
},
|
|
1290
|
-
'ko': {
|
|
1291
|
-
'unknown': '알 수 없는 권한',
|
|
1292
|
-
'root': '<b>위험!</b> 최고 권한입니다! 반드시 허용할 것인지 확인하십시오!',
|
|
1293
|
-
'apply-permission': '권한을 신청 중입니다. 주의 깊게 확인하십시오',
|
|
1294
|
-
'native.form': '네이티브 폼 제어',
|
|
1295
|
-
'hash': '주소 표시 줄 "hash" 를 수정할 수 있습니다',
|
|
1296
|
-
'fs': '파일 시스템',
|
|
1297
|
-
'readonly': '읽기 전용',
|
|
1298
|
-
'read-write': '읽기 및 쓰기',
|
|
1299
|
-
},
|
|
1300
|
-
'th': {
|
|
1301
|
-
'unknown': 'สิทธิ์ที่ไม่รู้จัก',
|
|
1302
|
-
'root': '<b>อันตราย!</b> สิทธิ์สูงสุด! โปรดตรวจสอบว่าต้องการอนุญาตหรือไม่!',
|
|
1303
|
-
'apply-permission': 'กำลังขอสิทธิ์ โปรดตรวจสอบอย่างรอบคอบ',
|
|
1304
|
-
'native.form': 'การควบคุมแบบฟอร์มแบบ Native',
|
|
1305
|
-
'hash': 'สามารถแก้ไขแถบที่อยู่ "hash"',
|
|
1306
|
-
'fs': 'ระบบไฟล์',
|
|
1307
|
-
'readonly': 'อ่านได้อย่างเดียว',
|
|
1308
|
-
'read-write': 'อ่านและเขียนได้'
|
|
1309
|
-
},
|
|
1310
|
-
'es': {
|
|
1311
|
-
'unknown': 'Permiso desconocido',
|
|
1312
|
-
'root': '<b>¡Peligro!</b> ¡Permiso máximo! ¡Asegúrese de permitirlo!',
|
|
1313
|
-
'apply-permission': 'Solicitando permiso. Por favor, compruebe cuidadosamente',
|
|
1314
|
-
'native.form': 'Control de formulario nativo',
|
|
1315
|
-
'hash': 'Puede modificar el "hash" de la barra de direcciones',
|
|
1316
|
-
'fs': 'Sistema de archivos',
|
|
1317
|
-
'readonly': 'Solo lectura',
|
|
1318
|
-
'read-write': 'Lectura y escritura',
|
|
1319
|
-
},
|
|
1320
|
-
'de': {
|
|
1321
|
-
'unknown': 'Unbekannte Berechtigung',
|
|
1322
|
-
'root': '<b>Gefahr!</b> Höchste Berechtigung! Bitte stellen Sie unbedingt sicher, ob dies erlaubt ist!',
|
|
1323
|
-
'apply-permission': 'Bitte bestätigen Sie die Berechtigungsanfrage sorgfältig',
|
|
1324
|
-
'native.form': 'Natives Formularsteuerelement',
|
|
1325
|
-
'hash': 'Adressleisten "hash" bearbeiten',
|
|
1326
|
-
'fs': 'Dateisystem',
|
|
1327
|
-
'readonly': 'Schreibgeschützt',
|
|
1328
|
-
'read-write': 'Lesen/Schreiben'
|
|
1329
|
-
},
|
|
1330
|
-
'fr': {
|
|
1331
|
-
'unknown': 'Autorisation inconnue',
|
|
1332
|
-
'root': '<b>Danger !</b> Autorisation maximale ! Veuillez vous assurer que vous êtes autorisé à le faire !',
|
|
1333
|
-
'apply-permission': 'Demande d\'autorisation en cours, veuillez vérifier attentivement',
|
|
1334
|
-
'native.form': 'Contrôle de formulaire natif',
|
|
1335
|
-
'hash': 'Modifier le "hash" de la barre d\'adresse',
|
|
1336
|
-
'fs': 'Système de fichiers',
|
|
1337
|
-
'readonly': 'Lecture seule',
|
|
1338
|
-
'read-write': 'Lecture/écriture'
|
|
1339
|
-
},
|
|
1340
|
-
'pt': {
|
|
1341
|
-
'unknown': 'Permissão desconhecida',
|
|
1342
|
-
'root': '<b>Perigo!</b> Permissão máxima! Certifique-se de ter permissão para fazê-lo!',
|
|
1343
|
-
'apply-permission': 'Solicitando permissão, por favor confirme cuidadosamente',
|
|
1344
|
-
'native.form': 'Controle de formulário nativo',
|
|
1345
|
-
'hash': 'Editar "hash" da barra de endereço',
|
|
1346
|
-
'fs': 'Sistema de arquivos',
|
|
1347
|
-
'readonly': 'Somente leitura',
|
|
1348
|
-
'read-write': 'Leitura/escrita'
|
|
1349
|
-
},
|
|
1350
|
-
'ru': {
|
|
1351
|
-
'unknown': 'Неизвестное разрешение',
|
|
1352
|
-
'root': '<b>Опасность!</b> Максимальное разрешение! Пожалуйста, обязательно убедитесь, что это разрешено!',
|
|
1353
|
-
'apply-permission': 'Выполняется запрос на разрешение, пожалуйста, внимательно подтвердите',
|
|
1354
|
-
'native.form': 'Нативный элемент формы',
|
|
1355
|
-
'hash': 'Изменить "hash" адресной строки',
|
|
1356
|
-
'fs': 'Файловая система',
|
|
1357
|
-
'readonly': 'Только для чтения',
|
|
1358
|
-
'read-write': 'Чтение/запись'
|
|
1359
|
-
},
|
|
1360
|
-
'vi': {
|
|
1361
|
-
'unknown': 'Quyền không xác định',
|
|
1362
|
-
'root': '<b>Nguy hiểm!</b> Quyền hạn cao nhất! Hãy đảm bảo rằng bạn được phép làm điều này!',
|
|
1363
|
-
'apply-permission': 'Đang yêu cầu quyền truy cập, vui lòng xác nhận cẩn thận',
|
|
1364
|
-
'native.form': 'Thiết bị kiểm soát biểu mẫu gốc',
|
|
1365
|
-
'hash': 'Chỉnh sửa "hash" thanh địa chỉ',
|
|
1366
|
-
'fs': 'Hệ thống tập tin',
|
|
1367
|
-
'readonly': 'Chỉ đọc',
|
|
1368
|
-
'read-write': 'Đọc/ghi'
|
|
1369
|
-
}
|
|
1370
|
-
};
|
|
1371
|
-
async function checkPermission(vals, apply = false, applyHandler, taskId) {
|
|
1372
|
-
if (!taskId) {
|
|
1373
|
-
return [false];
|
|
1374
|
-
}
|
|
1375
|
-
const task = exports.list[taskId];
|
|
1376
|
-
if (!task) {
|
|
1377
|
-
return [false];
|
|
1378
|
-
}
|
|
1379
|
-
if (typeof vals === 'string') {
|
|
1380
|
-
vals = [vals];
|
|
1381
|
-
}
|
|
1382
|
-
const rtn = [];
|
|
1383
|
-
const applyList = [];
|
|
1384
|
-
for (const val of vals) {
|
|
1385
|
-
if (task.runtime.permissions.includes('root')) {
|
|
1386
|
-
rtn.push(true);
|
|
1387
|
-
continue;
|
|
1388
|
-
}
|
|
1389
|
-
if (val.startsWith('fs.')) {
|
|
1390
|
-
let yes = false;
|
|
1391
|
-
const path = val.slice(3, -1);
|
|
1392
|
-
for (const v of task.runtime.permissions) {
|
|
1393
|
-
if (!v.startsWith('fs.')) {
|
|
1394
|
-
continue;
|
|
1395
|
-
}
|
|
1396
|
-
const pa = v.slice(3, -1);
|
|
1397
|
-
if (pa.endsWith('/')) {
|
|
1398
|
-
if (!path.startsWith(pa)) {
|
|
1399
|
-
continue;
|
|
1400
|
-
}
|
|
1401
|
-
}
|
|
1402
|
-
else if (pa !== path) {
|
|
1403
|
-
continue;
|
|
1404
|
-
}
|
|
1405
|
-
if (val.endsWith('w')) {
|
|
1406
|
-
if (v.endsWith('r')) {
|
|
1407
|
-
continue;
|
|
1408
|
-
}
|
|
1409
|
-
}
|
|
1410
|
-
yes = true;
|
|
1411
|
-
break;
|
|
1412
|
-
}
|
|
1413
|
-
rtn.push(yes);
|
|
1414
|
-
if (!yes && apply) {
|
|
1415
|
-
applyList.push(val);
|
|
1416
|
-
}
|
|
1417
|
-
continue;
|
|
1418
|
-
}
|
|
1419
|
-
const result = task.runtime.permissions.includes(val);
|
|
1420
|
-
if (!result && apply) {
|
|
1421
|
-
applyList.push(val);
|
|
1422
|
-
}
|
|
1423
|
-
rtn.push(result);
|
|
1424
|
-
}
|
|
1425
|
-
if (applyList.length) {
|
|
1426
|
-
let html = '<div>"' + tool.escapeHTML(task.app.config.name) + '" ' + ((locale[core.config.locale]?.['apply-permission'] ?? locale['en']['apply-permission']) + ':') + '</div>';
|
|
1427
|
-
for (const item of applyList) {
|
|
1428
|
-
if (item.startsWith('fs.')) {
|
|
1429
|
-
const path = item.slice(3, -1);
|
|
1430
|
-
html += '<div style="margin-top: 10px;">' +
|
|
1431
|
-
(locale[core.config.locale]?.fs ?? locale['en'].fs) + ' ' + tool.escapeHTML(path) + ' ' + (item.endsWith('r') ? (locale[core.config.locale]?.readonly ?? locale['en'].readonly) : (locale[core.config.locale]?.['read-write'] ?? locale['en']['read-write'])) +
|
|
1432
|
-
'<div style="color: hsl(0,0%,60%);">' + tool.escapeHTML(item) + '</div>' +
|
|
1433
|
-
'</div>';
|
|
1434
|
-
continue;
|
|
1435
|
-
}
|
|
1436
|
-
const lang = locale[core.config.locale]?.[item] ?? locale['en'][item];
|
|
1437
|
-
html += '<div style="margin-top: 10px;">' +
|
|
1438
|
-
(lang ?? locale[core.config.locale]?.unknown ?? locale['en'].unknown) +
|
|
1439
|
-
'<div style="color: hsl(0,0%,60%);">' + tool.escapeHTML(item) + '</div>' +
|
|
1440
|
-
'</div>';
|
|
1441
|
-
}
|
|
1442
|
-
if (await form.superConfirm(html)) {
|
|
1443
|
-
for (let i = 0; i < rtn.length; ++i) {
|
|
1444
|
-
if (rtn[i]) {
|
|
1445
|
-
continue;
|
|
1446
|
-
}
|
|
1447
|
-
rtn[i] = true;
|
|
1448
|
-
}
|
|
1449
|
-
for (const item of applyList) {
|
|
1450
|
-
task.runtime.permissions.push(item);
|
|
1451
|
-
}
|
|
1452
|
-
try {
|
|
1453
|
-
applyHandler?.(applyList);
|
|
1454
|
-
}
|
|
1455
|
-
catch (e) {
|
|
1456
|
-
console.log('task.checkPermission', e);
|
|
1457
|
-
}
|
|
1458
|
-
}
|
|
1459
|
-
}
|
|
1460
|
-
return rtn;
|
|
1461
|
-
}
|
|
1462
|
-
function end(taskId) {
|
|
1463
|
-
if (typeof taskId === 'string') {
|
|
1464
|
-
taskId = parseInt(taskId);
|
|
1465
|
-
}
|
|
1466
|
-
const task = exports.list[taskId];
|
|
1467
|
-
if (!task) {
|
|
1468
|
-
return true;
|
|
1469
|
-
}
|
|
1470
|
-
if (clickgo.isNative() && (taskId === 1)) {
|
|
1471
|
-
native.invoke('cg-close', native.getToken());
|
|
1472
|
-
}
|
|
1473
|
-
const fid = form.getMaxZIndexID({
|
|
1474
|
-
'taskIds': [task.id]
|
|
1475
|
-
});
|
|
1476
|
-
if (fid) {
|
|
1477
|
-
form.changeFocus(fid);
|
|
1478
|
-
}
|
|
1479
|
-
else {
|
|
1480
|
-
form.changeFocus();
|
|
1481
|
-
}
|
|
1482
|
-
for (const fid in task.forms) {
|
|
1483
|
-
const f = task.forms[fid];
|
|
1484
|
-
core.trigger('formRemoved', taskId, f.id, f.vroot.$refs.form.title, f.vroot.$refs.form.iconDataUrl);
|
|
1485
|
-
try {
|
|
1486
|
-
f.vapp.unmount();
|
|
1487
|
-
}
|
|
1488
|
-
catch (err) {
|
|
1489
|
-
const msg = `Message: ${err.message}\nTask id: ${task.id}\nForm id: ${fid}\nFunction: task.end, unmount.`;
|
|
1490
|
-
form.notify({
|
|
1491
|
-
'title': 'Form Unmount Error',
|
|
1492
|
-
'content': msg,
|
|
1493
|
-
'type': 'danger'
|
|
1494
|
-
});
|
|
1495
|
-
console.log('Form Unmount Error', msg, err);
|
|
1496
|
-
}
|
|
1497
|
-
f.vapp._container.remove();
|
|
1498
|
-
form.elements.popList.querySelector('[data-form-id="' + f.id.toString() + '"]')?.remove();
|
|
1499
|
-
dom.clearWatchStyle(fid);
|
|
1500
|
-
dom.clearWatchProperty(fid);
|
|
1501
|
-
dom.clearWatchPosition(fid);
|
|
1502
|
-
delete form.activePanels[fid];
|
|
1503
|
-
}
|
|
1504
|
-
const flist = form.elements.list.querySelectorAll('.cg-form-wrap[data-task-id="' + taskId.toString() + '"]');
|
|
1505
|
-
for (const f of flist) {
|
|
1506
|
-
f.remove();
|
|
1507
|
-
}
|
|
1508
|
-
dom.removeFromStyleList(taskId);
|
|
1509
|
-
for (const timer in exports.list[taskId].timers) {
|
|
1510
|
-
if (timer.startsWith('1x')) {
|
|
1511
|
-
const ft = timer.slice(2);
|
|
1512
|
-
cancelAnimationFrame(frameMaps[ft]);
|
|
1513
|
-
delete frameMaps[ft];
|
|
1514
|
-
}
|
|
1515
|
-
else {
|
|
1516
|
-
clearTimeout(parseFloat(timer));
|
|
1517
|
-
}
|
|
1518
|
-
}
|
|
1519
|
-
dom.clearWatchSize(taskId);
|
|
1520
|
-
dom.clearWatch(taskId);
|
|
1521
|
-
native.clear(undefined, taskId);
|
|
1522
|
-
delete exports.list[taskId];
|
|
1523
|
-
core.trigger('taskEnded', taskId);
|
|
1524
|
-
clearSystem(taskId);
|
|
1525
|
-
return true;
|
|
1526
|
-
}
|
|
1527
|
-
function loadLocaleData(lang, data, pre = '', taskId) {
|
|
1528
|
-
if (!taskId) {
|
|
1529
|
-
return;
|
|
1530
|
-
}
|
|
1531
|
-
if (!exports.list[taskId].locale.data[lang]) {
|
|
1532
|
-
exports.list[taskId].locale.data[lang] = {};
|
|
1533
|
-
}
|
|
1534
|
-
for (const k in data) {
|
|
1535
|
-
const v = data[k];
|
|
1536
|
-
if (typeof v === 'object') {
|
|
1537
|
-
loadLocaleData(lang, v, pre + k + '.', taskId);
|
|
1538
|
-
}
|
|
1539
|
-
else {
|
|
1540
|
-
exports.list[taskId].locale.data[lang][pre + k] = v;
|
|
1541
|
-
}
|
|
1542
|
-
}
|
|
1543
|
-
}
|
|
1544
|
-
async function loadLocale(lang, path, taskId) {
|
|
1545
|
-
if (!taskId) {
|
|
1546
|
-
return false;
|
|
1547
|
-
}
|
|
1548
|
-
const task = exports.list[taskId];
|
|
1549
|
-
if (!task) {
|
|
1550
|
-
return false;
|
|
1551
|
-
}
|
|
1552
|
-
const fcontent = await fs.getContent(path + '.json', {
|
|
1553
|
-
'encoding': 'utf8'
|
|
1554
|
-
}, taskId);
|
|
1555
|
-
if (!fcontent) {
|
|
1556
|
-
return false;
|
|
1557
|
-
}
|
|
1558
|
-
try {
|
|
1559
|
-
const data = JSON.parse(fcontent);
|
|
1560
|
-
loadLocaleData(lang, data, '', task.id);
|
|
1561
|
-
return true;
|
|
1562
|
-
}
|
|
1563
|
-
catch {
|
|
1564
|
-
return false;
|
|
1565
|
-
}
|
|
1566
|
-
}
|
|
1567
|
-
function clearLocale(taskId) {
|
|
1568
|
-
if (!taskId) {
|
|
1569
|
-
return;
|
|
1570
|
-
}
|
|
1571
|
-
const task = exports.list[taskId];
|
|
1572
|
-
if (!task) {
|
|
1573
|
-
return;
|
|
1574
|
-
}
|
|
1575
|
-
task.locale.data = {};
|
|
1576
|
-
}
|
|
1577
|
-
function setLocale(lang, path, taskId) {
|
|
1578
|
-
clearLocale(taskId);
|
|
1579
|
-
return loadLocale(lang, path, taskId);
|
|
1580
|
-
}
|
|
1581
|
-
function setLocaleLang(lang, taskId) {
|
|
1582
|
-
if (!taskId) {
|
|
1583
|
-
return;
|
|
1584
|
-
}
|
|
1585
|
-
const task = exports.list[taskId];
|
|
1586
|
-
if (!task) {
|
|
1587
|
-
return;
|
|
1588
|
-
}
|
|
1589
|
-
task.locale.lang = lang;
|
|
1590
|
-
}
|
|
1591
|
-
function clearLocaleLang(taskId) {
|
|
1592
|
-
if (!taskId) {
|
|
1593
|
-
return;
|
|
1594
|
-
}
|
|
1595
|
-
const task = exports.list[taskId];
|
|
1596
|
-
if (!task) {
|
|
1597
|
-
return;
|
|
1598
|
-
}
|
|
1599
|
-
task.locale.lang = '';
|
|
1600
|
-
}
|
|
1601
|
-
function createTimer(fun, delay, opt = {}) {
|
|
1602
|
-
const taskId = opt.taskId;
|
|
1603
|
-
const formId = opt.formId;
|
|
1604
|
-
if (!taskId) {
|
|
1605
|
-
return 0;
|
|
1606
|
-
}
|
|
1607
|
-
const task = exports.list[taskId];
|
|
1608
|
-
if (!task) {
|
|
1609
|
-
return 0;
|
|
1610
|
-
}
|
|
1611
|
-
if (formId && !task.forms[formId]) {
|
|
1612
|
-
return 0;
|
|
1613
|
-
}
|
|
1614
|
-
const count = opt.count ?? 0;
|
|
1615
|
-
let c = 0;
|
|
1616
|
-
if (opt.immediate) {
|
|
1617
|
-
const r = fun();
|
|
1618
|
-
if (r instanceof Promise) {
|
|
1619
|
-
r.catch(function (e) {
|
|
1620
|
-
console.log(e);
|
|
1621
|
-
});
|
|
1622
|
-
}
|
|
1623
|
-
++c;
|
|
1624
|
-
if (count > 0 && c === count) {
|
|
1625
|
-
return 0;
|
|
1626
|
-
}
|
|
1627
|
-
}
|
|
1628
|
-
let timer;
|
|
1629
|
-
const timerHandler = () => {
|
|
1630
|
-
++c;
|
|
1631
|
-
if (formId && task.forms[formId] === undefined) {
|
|
1632
|
-
clearTimeout(timer);
|
|
1633
|
-
delete task.timers[timer];
|
|
1634
|
-
return;
|
|
1635
|
-
}
|
|
1636
|
-
const r = fun();
|
|
1637
|
-
if (r instanceof Promise) {
|
|
1638
|
-
r.catch(function (e) {
|
|
1639
|
-
console.log(e);
|
|
1640
|
-
});
|
|
1641
|
-
}
|
|
1642
|
-
if (count > 0 && c === count) {
|
|
1643
|
-
clearTimeout(timer);
|
|
1644
|
-
delete task.timers[timer];
|
|
1645
|
-
return;
|
|
1646
|
-
}
|
|
1647
|
-
};
|
|
1648
|
-
if (count === 1) {
|
|
1649
|
-
timer = window.setTimeout(timerHandler, delay);
|
|
1650
|
-
}
|
|
1651
|
-
else {
|
|
1652
|
-
timer = window.setInterval(timerHandler, delay);
|
|
1653
|
-
}
|
|
1654
|
-
task.timers[timer] = formId ?? 0;
|
|
1655
|
-
return timer;
|
|
1656
|
-
}
|
|
1657
|
-
function removeTimer(timer, taskId) {
|
|
1658
|
-
if (!taskId) {
|
|
1659
|
-
return;
|
|
1660
|
-
}
|
|
1661
|
-
if (exports.list[taskId] === undefined) {
|
|
1662
|
-
return;
|
|
1663
|
-
}
|
|
1664
|
-
const formId = exports.list[taskId].timers[timer];
|
|
1665
|
-
if (formId === undefined) {
|
|
1666
|
-
return;
|
|
1667
|
-
}
|
|
1668
|
-
clearTimeout(timer);
|
|
1669
|
-
delete exports.list[taskId].timers[timer];
|
|
1670
|
-
}
|
|
1671
|
-
function sleep(fun, delay, taskId) {
|
|
1672
|
-
return createTimer(fun, delay, {
|
|
1673
|
-
'taskId': taskId,
|
|
1674
|
-
'count': 1
|
|
1675
|
-
});
|
|
1676
|
-
}
|
|
1677
|
-
exports.systemTaskInfo = clickgo.vue.reactive({
|
|
1678
|
-
'taskId': 0,
|
|
1679
|
-
'formId': 0,
|
|
1680
|
-
'length': 0
|
|
1681
|
-
});
|
|
1682
|
-
clickgo.vue.watch(exports.systemTaskInfo, function (n, o) {
|
|
1683
|
-
const originKeys = ['taskId', 'formId', 'length'];
|
|
1684
|
-
for (const key of originKeys) {
|
|
1685
|
-
if (exports.systemTaskInfo[key] !== undefined) {
|
|
1686
|
-
continue;
|
|
1687
|
-
}
|
|
1688
|
-
form.notify({
|
|
1689
|
-
'title': 'Warning',
|
|
1690
|
-
'content': 'There is a software that maliciously removed the system task info item.\nKey: ' + key,
|
|
1691
|
-
'type': 'warning'
|
|
1692
|
-
});
|
|
1693
|
-
exports.systemTaskInfo[key] = o[key] ?? 0;
|
|
1694
|
-
}
|
|
1695
|
-
for (const key in exports.systemTaskInfo) {
|
|
1696
|
-
if (!['taskId', 'formId', 'length'].includes(key)) {
|
|
1697
|
-
form.notify({
|
|
1698
|
-
'title': 'Warning',
|
|
1699
|
-
'content': 'There is a software that maliciously modifies the system task info item.\nKey: ' + key,
|
|
1700
|
-
'type': 'warning'
|
|
1701
|
-
});
|
|
1702
|
-
delete exports.systemTaskInfo[key];
|
|
1703
|
-
continue;
|
|
1704
|
-
}
|
|
1705
|
-
if (typeof exports.systemTaskInfo[key] === 'number') {
|
|
1706
|
-
continue;
|
|
1707
|
-
}
|
|
1708
|
-
form.notify({
|
|
1709
|
-
'title': 'Warning',
|
|
1710
|
-
'content': 'There is a software that maliciously modifies the system task info item.\nKey: ' + key,
|
|
1711
|
-
'type': 'warning'
|
|
1712
|
-
});
|
|
1713
|
-
exports.systemTaskInfo[key] = o[key] ?? 0;
|
|
1714
|
-
}
|
|
1715
|
-
}, {
|
|
1716
|
-
'deep': true
|
|
1717
|
-
});
|
|
1718
|
-
function setSystem(formId, taskId) {
|
|
1719
|
-
if (!taskId) {
|
|
1720
|
-
return false;
|
|
1721
|
-
}
|
|
1722
|
-
const task = exports.list[taskId];
|
|
1723
|
-
if (!task) {
|
|
1724
|
-
return false;
|
|
1725
|
-
}
|
|
1726
|
-
const f = task.forms[formId];
|
|
1727
|
-
if (!f) {
|
|
1728
|
-
return false;
|
|
1729
|
-
}
|
|
1730
|
-
if (f.vroot.position === undefined) {
|
|
1731
|
-
form.notify({
|
|
1732
|
-
'title': 'Warning',
|
|
1733
|
-
'content': `Task id is "${taskId}" app is not an available task app, position not found.`,
|
|
1734
|
-
'type': 'warning'
|
|
1735
|
-
});
|
|
1736
|
-
return false;
|
|
1737
|
-
}
|
|
1738
|
-
if (exports.systemTaskInfo.taskId > 0) {
|
|
1739
|
-
form.notify({
|
|
1740
|
-
'title': 'Info',
|
|
1741
|
-
'content': 'More than 1 system-level task application is currently running.',
|
|
1742
|
-
'type': 'info'
|
|
1743
|
-
});
|
|
1744
|
-
}
|
|
1745
|
-
exports.systemTaskInfo.taskId = taskId;
|
|
1746
|
-
exports.systemTaskInfo.formId = formId;
|
|
1747
|
-
form.simpleSystemTaskRoot.forms = {};
|
|
1748
|
-
refreshSystemPosition();
|
|
1749
|
-
return true;
|
|
1750
|
-
}
|
|
1751
|
-
function clearSystem(taskId) {
|
|
1752
|
-
if (!taskId) {
|
|
1753
|
-
return false;
|
|
1754
|
-
}
|
|
1755
|
-
if (typeof taskId === 'string') {
|
|
1756
|
-
taskId = parseInt(taskId);
|
|
1757
|
-
}
|
|
1758
|
-
if (exports.systemTaskInfo.taskId !== taskId) {
|
|
1759
|
-
return false;
|
|
1760
|
-
}
|
|
1761
|
-
exports.systemTaskInfo.taskId = 0;
|
|
1762
|
-
exports.systemTaskInfo.formId = 0;
|
|
1763
|
-
exports.systemTaskInfo.length = 0;
|
|
1764
|
-
core.trigger('screenResize');
|
|
1765
|
-
const tasks = getList();
|
|
1766
|
-
for (const taskId in tasks) {
|
|
1767
|
-
const forms = form.getList(parseInt(taskId));
|
|
1768
|
-
for (const formId in forms) {
|
|
1769
|
-
const f = forms[formId];
|
|
1770
|
-
if (!f.stateMin) {
|
|
1771
|
-
continue;
|
|
1772
|
-
}
|
|
1773
|
-
form.simpleSystemTaskRoot.forms[formId] = {
|
|
1774
|
-
'title': f.title,
|
|
1775
|
-
'icon': f.icon
|
|
1776
|
-
};
|
|
1777
|
-
}
|
|
1778
|
-
}
|
|
1779
|
-
return true;
|
|
1780
|
-
}
|
|
1781
|
-
function refreshSystemPosition() {
|
|
1782
|
-
if (exports.systemTaskInfo.taskId > 0) {
|
|
1783
|
-
const form = exports.list[exports.systemTaskInfo.taskId].forms[exports.systemTaskInfo.formId];
|
|
1784
|
-
switch (core.config['task.position']) {
|
|
1785
|
-
case 'left':
|
|
1786
|
-
case 'right': {
|
|
1787
|
-
form.vroot.$refs.form.setPropData('width', 0);
|
|
1788
|
-
form.vroot.$refs.form.setPropData('height', window.innerHeight);
|
|
1789
|
-
break;
|
|
1790
|
-
}
|
|
1791
|
-
case 'top':
|
|
1792
|
-
case 'bottom': {
|
|
1793
|
-
form.vroot.$refs.form.setPropData('width', window.innerWidth);
|
|
1794
|
-
form.vroot.$refs.form.setPropData('height', 0);
|
|
1795
|
-
break;
|
|
1796
|
-
}
|
|
1797
|
-
}
|
|
1798
|
-
setTimeout(function () {
|
|
1799
|
-
switch (core.config['task.position']) {
|
|
1800
|
-
case 'left': {
|
|
1801
|
-
exports.systemTaskInfo.length = form.vroot.$el.offsetWidth;
|
|
1802
|
-
form.vroot.$refs.form.setPropData('left', 0);
|
|
1803
|
-
form.vroot.$refs.form.setPropData('top', 0);
|
|
1804
|
-
break;
|
|
1805
|
-
}
|
|
1806
|
-
case 'right': {
|
|
1807
|
-
exports.systemTaskInfo.length = form.vroot.$el.offsetWidth;
|
|
1808
|
-
form.vroot.$refs.form.setPropData('left', window.innerWidth - exports.systemTaskInfo.length);
|
|
1809
|
-
form.vroot.$refs.form.setPropData('top', 0);
|
|
1810
|
-
break;
|
|
1811
|
-
}
|
|
1812
|
-
case 'top': {
|
|
1813
|
-
exports.systemTaskInfo.length = form.vroot.$el.offsetHeight;
|
|
1814
|
-
form.vroot.$refs.form.setPropData('left', 0);
|
|
1815
|
-
form.vroot.$refs.form.setPropData('top', 0);
|
|
1816
|
-
break;
|
|
1817
|
-
}
|
|
1818
|
-
case 'bottom': {
|
|
1819
|
-
exports.systemTaskInfo.length = form.vroot.$el.offsetHeight;
|
|
1820
|
-
form.vroot.$refs.form.setPropData('left', 0);
|
|
1821
|
-
form.vroot.$refs.form.setPropData('top', window.innerHeight - exports.systemTaskInfo.length);
|
|
1822
|
-
break;
|
|
1823
|
-
}
|
|
1824
|
-
}
|
|
1825
|
-
core.trigger('screenResize');
|
|
1826
|
-
}, 50);
|
|
1827
|
-
}
|
|
1828
|
-
else {
|
|
1829
|
-
core.trigger('screenResize');
|
|
1830
|
-
}
|
|
1831
|
-
}
|