clickgo 3.0.6-dev7 → 3.1.0-dev9
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 +1 -1
- package/dist/app/demo/app.js +93 -0
- package/dist/app/demo/form/control/form/form.js +21 -20
- package/dist/app/demo/form/control/form/form.xml +3 -3
- package/dist/app/demo/form/main.js +20 -10
- package/dist/app/demo/form/main.xml +1 -1
- package/dist/app/task/app.js +46 -0
- package/dist/app/task/form/bar/bar.js +85 -86
- package/dist/app/task/form/bar/bar.xml +5 -6
- package/dist/clickgo.js +1 -10
- package/dist/clickgo.ts +0 -8
- package/dist/control/common.cgc +0 -0
- package/dist/control/form.cgc +0 -0
- package/dist/control/monaco.cgc +0 -0
- package/dist/control/property.cgc +0 -0
- package/dist/control/task.cgc +0 -0
- package/dist/global.css +1 -1
- package/dist/index.js +105 -56
- package/dist/index.ts +164 -59
- package/dist/lib/control.js +363 -240
- package/dist/lib/control.ts +497 -284
- package/dist/lib/core.js +331 -217
- package/dist/lib/core.ts +418 -244
- package/dist/lib/dom.js +6 -3
- package/dist/lib/dom.ts +7 -6
- package/dist/lib/form.js +635 -980
- package/dist/lib/form.ts +817 -1072
- package/dist/lib/fs.js +42 -39
- package/dist/lib/fs.ts +45 -41
- package/dist/lib/native.js +8 -148
- package/dist/lib/native.ts +9 -211
- package/dist/lib/task.js +707 -191
- package/dist/lib/task.ts +778 -210
- package/dist/lib/theme.ts +2 -2
- package/dist/lib/tool.js +58 -48
- package/dist/lib/tool.ts +79 -64
- package/dist/theme/familiar.cgt +0 -0
- package/package.json +5 -7
- package/types/index.d.ts +286 -324
- package/dist/app/demo/config.json +0 -106
- package/dist/app/task/config.json +0 -32
package/dist/global.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
#cg-wrap{--cg:hsl(20, 100%, 65%);--success:hsl(150, 100%, 40%);--success-hover:hsl(150, 100%, 45%);--success-active:hsl(150, 100%, 30%);--success-focus:hsl(150, 100%, 35%);--success-disabled:hsl(150, 0%, 40%);--info:hsl(210, 100%, 50%);--info-hover:hsl(210, 100%, 60%);--info-active:hsl(210, 100%, 40%);--info-focus:hsl(210, 100%, 45%);--info-disabled:hsl(210, 0%, 50%);--warning:hsl(20, 100%, 70%);--warning-hover:hsl(20, 100%, 80%);--warning-active:hsl(20, 100%, 60%);--warning-focus:hsl(20, 100%, 65%);--warning-disabled:hsl(20, 0%, 70%);--danger:hsl(350, 100%, 50%);--danger-hover:hsl(350, 100%, 70%);--danger-active:hsl(350, 100%, 40%);--danger-focus:hsl(350, 100%, 45%);--danger-disabled:hsl(350, 0%, 50%);--system-color:hsl(0, 0%, 95%);--system-background:hsla(0, 0%, 0%, .5);--face:hsl(0, 0%, 95%);--g-color:hsl(0, 0%, 20%);--g-color-hover:hsl(0, 0%, 30%);--g-color-active:hsl(0, 0%, 10%);--g-color-focus:hsl(0, 0%, 15%);--g-color-disabled:hsl(0, 0%, 60%);--g-background:hsl(0, 0%, 95%);--g-background-hover:hsl(0, 0%, 100%);--g-background-active:hsl(0, 0%, 85%);--g-background-kp:hsl(0, 0%, 80%);--g-background-opacity:hsl(0, 0%, 50%, .2);--g-background-focus:hsl(0, 0%, 97.5%);--g-background-disabled:hsl(0, 0%, 75%);--g-border-color:hsl(0, 0%, 40%);--g-border-color-hover:hsl(0, 0%, 50%);--g-border-color-active:hsl(0, 0%, 30%);--g-border-color-focus:hsl(0, 0%, 35%);--g-border-color-disabled:hsl(0, 0%, 60%);--g-plain-color:var(--g-color);--g-plain-color-hover:var(--g-color-hover);--g-plain-color-active:var(--g-color-active);--g-plain-color-focus:var(--g-color-focus);--g-plain-color-disabled:var(--g-color-disabled);--g-plain-background:hsl(0, 0%, 100%);--g-plain-background-hover:hsl(0, 0%, 98%);--g-plain-background-active:hsl(0, 0%, 95%);--g-plain-background-focus:var(--g-plain-background);--g-plain-background-disabled:hsl(0, 0%, 95%);--g-plain-border-color:hsl(0, 0%, 70%);--g-plain-border-color-hover:hsl(0, 0%, 80%);--g-plain-border-color-active:hsl(0, 0%, 60%);--g-plain-border-color-focus:hsl(0, 0%, 65%);--g-plain-border-color-disabled:hsl(0, 0%, 60%)}#cg-form-list{z-index:20020000}#cg-pop-list{z-index:20020001}#cg-simpletask{z-index:20020002}#cg-
|
|
1
|
+
#cg-wrap{--cg:hsl(20, 100%, 65%);--success:hsl(150, 100%, 40%);--success-hover:hsl(150, 100%, 45%);--success-active:hsl(150, 100%, 30%);--success-focus:hsl(150, 100%, 35%);--success-disabled:hsl(150, 0%, 40%);--info:hsl(210, 100%, 50%);--info-hover:hsl(210, 100%, 60%);--info-active:hsl(210, 100%, 40%);--info-focus:hsl(210, 100%, 45%);--info-disabled:hsl(210, 0%, 50%);--warning:hsl(20, 100%, 70%);--warning-hover:hsl(20, 100%, 80%);--warning-active:hsl(20, 100%, 60%);--warning-focus:hsl(20, 100%, 65%);--warning-disabled:hsl(20, 0%, 70%);--danger:hsl(350, 100%, 50%);--danger-hover:hsl(350, 100%, 70%);--danger-active:hsl(350, 100%, 40%);--danger-focus:hsl(350, 100%, 45%);--danger-disabled:hsl(350, 0%, 50%);--system-color:hsl(0, 0%, 95%);--system-background:hsla(0, 0%, 0%, .5);--system-border-color:hsla(0, 0%, 100%, .2);--face:hsl(0, 0%, 95%);--g-color:hsl(0, 0%, 20%);--g-color-hover:hsl(0, 0%, 30%);--g-color-active:hsl(0, 0%, 10%);--g-color-focus:hsl(0, 0%, 15%);--g-color-disabled:hsl(0, 0%, 60%);--g-background:hsl(0, 0%, 95%);--g-background-hover:hsl(0, 0%, 100%);--g-background-active:hsl(0, 0%, 85%);--g-background-kp:hsl(0, 0%, 80%);--g-background-opacity:hsl(0, 0%, 50%, .2);--g-background-focus:hsl(0, 0%, 97.5%);--g-background-disabled:hsl(0, 0%, 75%);--g-border-color:hsl(0, 0%, 40%);--g-border-color-hover:hsl(0, 0%, 50%);--g-border-color-active:hsl(0, 0%, 30%);--g-border-color-focus:hsl(0, 0%, 35%);--g-border-color-disabled:hsl(0, 0%, 60%);--g-plain-color:var(--g-color);--g-plain-color-hover:var(--g-color-hover);--g-plain-color-active:var(--g-color-active);--g-plain-color-focus:var(--g-color-focus);--g-plain-color-disabled:var(--g-color-disabled);--g-plain-background:hsl(0, 0%, 100%);--g-plain-background-hover:hsl(0, 0%, 98%);--g-plain-background-active:hsl(0, 0%, 95%);--g-plain-background-focus:var(--g-plain-background);--g-plain-background-disabled:hsl(0, 0%, 95%);--g-plain-border-color:hsl(0, 0%, 70%);--g-plain-border-color-hover:hsl(0, 0%, 80%);--g-plain-border-color-active:hsl(0, 0%, 60%);--g-plain-border-color-focus:hsl(0, 0%, 65%);--g-plain-border-color-disabled:hsl(0, 0%, 60%)}#cg-form-list{z-index:20020000}#cg-pop-list{z-index:20020001}#cg-simpletask{z-index:20020002}#cg-rectangle{z-index:20020003;box-sizing:border-box;position:fixed;border-radius:3px;box-shadow:0 0 10px rgba(0,0,0,.25);background:rgba(255,255,255,.05);pointer-events:none;opacity:0}#cg-circular{z-index:20020003;box-sizing:border-box;position:fixed;border:solid 3px var(--cg);border-radius:50%;filter:drop-shadow(0 0 3px var(--cg));pointer-events:none;opacity:0}#cg-gesture{z-index:20020003;box-sizing:border-box;position:fixed;border-radius:50%;pointer-events:none;opacity:0;background:var(--system-background);box-shadow:0 5px 20px rgba(0,0,0,.25);transform:scale(0);width:20px;height:20px}#cg-gesture.done{background:rgba(255,255,255,.3);border:solid 3px rgba(0,0,0,.3)}#cg-drag{z-index:20020003;box-sizing:border-box;position:fixed;border-radius:3px;pointer-events:none;background:var(--system-background);box-shadow:0 5px 20px rgba(0,0,0,.25);opacity:0;display:flex;justify-content:center;align-items:center}#cg-launcher{z-index:20020004;box-sizing:border-box;position:fixed;background:var(--system-background);-webkit-backdrop-filter:blur(30px) brightness(1.2);backdrop-filter:blur(30px) brightness(1.2);width:100%;height:100%;left:0;top:0;color:var(--system-color);display:none;flex-direction:column;transition:all .1s linear;transform:scale(1.2);opacity:0}#cg-launcher:not(.cg-show){pointer-events:none}#cg-launcher.cg-show{transform:scale(1);opacity:1}.cg-launcher-search{text-align:center;padding:50px}.cg-launcher-sinput{-webkit-appearance:none;padding:10px;height:38px;border:solid 1px var(--system-border-color);background:transparent;width:50%;border-radius:3px;color:var(--system-color)}.cg-launcher-sinput::placeholder{color:var(--system-border-color)}.cg-launcher-sinput::selection{background-color:var(--system-color);color:var(--g-color)}.cg-launcher-sinput:focus{outline:none;border-color:var(--system-color)}.cg-launcher-foldername{-webkit-appearance:none;height:38px;font-size:28px !important;border:none;background:transparent;width:50%;color:var(--system-color);text-align:center}.cg-launcher-foldername::selection{background-color:var(--system-color);color:var(--g-color)}.cg-launcher-foldername:focus{outline:none}.cg-launcher-item{width:190px;display:inline-flex;vertical-align:middle;margin-bottom:50px}.cg-launcher-inner{flex:1;width:0}.cg-launcher-icon{background-position:center;background-size:80px;height:80px;background-repeat:no-repeat}.cg-launcher-icon:active{filter:brightness(0.6)}.cg-launcher-name{font-size:13px;font-weight:bold;text-shadow:0 0 3px rgba(0,0,0,.6);text-align:center;margin-top:20px}.cg-launcher-icon,.cg-launcher-name{transition:all .1s linear;transition-property:opacity}.cg-launcher-space{width:50px}.cg-launcher-folder{display:flex;justify-content:center;height:80px}.cg-launcher-folder>div{height:80px;width:80px;background:rgba(255,255,255,.3);border-radius:20px;padding:10px 4px 4px 10px;transition:all .1s linear;transition-property:left,top,width,height,opacity;overflow-y:auto}.cg-launcher-folder>div::-webkit-scrollbar{display:none}.cg-launcher-folder>div .cg-launcher-item,.cg-launcher-folder>div .cg-launcher-space{transition:all .1s linear}.cg-launcher-folder>div.cg-show{padding:50px 0 0 50px}.cg-launcher-folder>div:not(.cg-show):active{filter:brightness(0.6)}.cg-launcher-folder>div:not(.cg-show) .cg-launcher-item{width:22px;margin-bottom:6px}.cg-launcher-folder>div:not(.cg-show) .cg-launcher-icon{background-size:16px;height:16px;pointer-events:none}.cg-launcher-folder>div:not(.cg-show) .cg-launcher-name{display:none}.cg-launcher-folder>div:not(.cg-show) .cg-launcher-space{width:6px}.cg-launcher-list{flex:1;height:0;overflow-y:auto;padding:0 0 0 50px}.cg-launcher-list::-webkit-scrollbar{display:none}.cg-launcher-list.cg-folder-open>.cg-launcher-item>.cg-launcher-inner>.cg-launcher-icon,.cg-launcher-list.cg-folder-open>.cg-launcher-item>.cg-launcher-inner>.cg-launcher-name{opacity:0}.cg-launcher-list.cg-folder-open>.cg-launcher-item>.cg-launcher-inner>.cg-launcher-folder>div:not(.cg-show){opacity:0}[data-cg-pop]{position:fixed;box-shadow:0px 5px 20px rgba(0,0,0,.25);transition:.1s ease-out;transition-property:transform,opacity;transform:translateY(-10px);opacity:0}[data-cg-pop]:not([data-cg-open]){pointer-events:none}[data-cg-pop][data-cg-open]{transform:translateY(0px);opacity:1}#cg-system{z-index:20020005}.cg-system-notify{background:var(--system-background);position:fixed;padding:15px;border-radius:3px;right:0;top:0;width:280px;font-size:14px;display:flex;transition:.1s ease-out;transition-property:transform,opacity;overflow:hidden;color:var(--system-color);box-shadow:0 5px 20px rgba(0,0,0,.25);-webkit-backdrop-filter:blur(30px) brightness(1.2);backdrop-filter:blur(30px) brightness(1.2)}.cg-system-icon{margin-right:10px;width:16px;height:16px;border-radius:50%}.cg-system-icon.cg-primary{background:var(--success)}.cg-system-icon.cg-info{background:var(--info)}.cg-system-icon.cg-warning{background:var(--warning)}.cg-system-icon.cg-danger{background:var(--danger)}.cg-system-icon.cg-progress{background:var(--cg)}.cg-system-notify-title{font-size:16px;font-weight:bold;padding-bottom:10px}.cg-system-notify-content{line-height:1.5;word-break:break-word}.cg-system-notify-progress{position:absolute;bottom:0;left:0;border-radius:1px;background:var(--cg);transition:width 1s ease-out;width:0%;height:2px}#cg-simpletask{left:0;bottom:-46px;width:100%;height:46px;top:initial;background:var(--system-background);-webkit-backdrop-filter:blur(30px) brightness(1.2);backdrop-filter:blur(30px) brightness(1.2);padding:5px 0 5px 5px;display:flex;color:var(--system-color);transition:bottom .1s ease-out;overflow-x:auto}#cg-simpletask::-webkit-scrollbar{display:none}.cg-simpletask-item{background:rgba(0,0,0,.05);border-radius:3px;padding:10px;display:flex;align-items:center;margin-right:5px}.cg-simpletask-item:hover{background:rgba(0,0,0,.1)}.cg-simpletask-item:active{background:rgba(0,0,0,.2)}.cg-simpletask-icon{margin-right:5px;background-size:cover;width:16px;height:16px}
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.launcher = exports.AbstractBoot = exports.getPlatform = exports.getNative = exports.getVersion = exports.vue = exports.zip = exports.tool = exports.theme = exports.task = exports.native = exports.fs = exports.form = exports.dom = exports.core = exports.control = exports.clickgo = void 0;
|
|
13
13
|
function getVersion() {
|
|
14
14
|
return exports.clickgo.getVersion();
|
|
15
15
|
}
|
|
@@ -22,62 +22,111 @@ function getPlatform() {
|
|
|
22
22
|
return exports.clickgo.getPlatform();
|
|
23
23
|
}
|
|
24
24
|
exports.getPlatform = getPlatform;
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
class AbstractBoot {
|
|
26
|
+
onError() {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
onScreenResize() {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
onConfigChanged() {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
onFormCreated() {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
onFormRemoved() {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
onFormTitleChanged() {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
onFormIconChanged() {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
onFormStateMinChanged() {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
onFormStateMaxChanged() {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
onFormShowChanged() {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
onFormFocused() {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
onFormBlurred() {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
onFormFlash() {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
onTaskStarted() {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
onTaskEnded() {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
onLauncherFolderNameChanged() {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
27
74
|
}
|
|
28
|
-
exports.
|
|
29
|
-
function
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
75
|
+
exports.AbstractBoot = AbstractBoot;
|
|
76
|
+
function launcher(boot) {
|
|
77
|
+
(function () {
|
|
78
|
+
var _a;
|
|
79
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
+
const paths = [
|
|
81
|
+
loader.cdn + '/npm/vue@3.2.40/dist/vue.global.prod.min.js'
|
|
82
|
+
];
|
|
83
|
+
let ro = true;
|
|
84
|
+
if (!(window.ResizeObserver)) {
|
|
85
|
+
ro = false;
|
|
86
|
+
paths.push(loader.cdn + '/npm/@juggle/resize-observer@3.4.0/lib/exports/resize-observer.umd.min.js');
|
|
87
|
+
}
|
|
88
|
+
yield loader.loadScripts(paths);
|
|
89
|
+
if (!ro) {
|
|
90
|
+
window.ResizeObserverEntry = window.ResizeObserver.ResizeObserverEntry;
|
|
91
|
+
window.ResizeObserver = window.ResizeObserver.ResizeObserver;
|
|
92
|
+
}
|
|
93
|
+
const map = {
|
|
94
|
+
'jszip': loader.cdn + '/npm/jszip@3.10.0/dist/jszip.min'
|
|
95
|
+
};
|
|
96
|
+
const after = '?' + Math.random().toString();
|
|
97
|
+
const files = yield loader.sniffFiles('clickgo.js', {
|
|
98
|
+
'dir': __dirname + '/',
|
|
99
|
+
'after': after,
|
|
100
|
+
'afterIgnore': new RegExp('^' + loader.cdn.replace(/\./g, '\\.')),
|
|
101
|
+
'map': map
|
|
102
|
+
});
|
|
103
|
+
const cg = loader.require('clickgo', files, {
|
|
104
|
+
'dir': __dirname + '/',
|
|
105
|
+
'map': map
|
|
106
|
+
})[0];
|
|
107
|
+
try {
|
|
108
|
+
const style = yield (yield fetch(__dirname + '/global.css' + (!__dirname.startsWith(loader.cdn) ? after : ''))).text();
|
|
109
|
+
(_a = document.getElementById('cg-global')) === null || _a === void 0 ? void 0 : _a.insertAdjacentHTML('afterbegin', style);
|
|
110
|
+
}
|
|
111
|
+
catch (_b) {
|
|
112
|
+
alert(`ClickGo: "${__dirname}/global.css'" failed.`);
|
|
113
|
+
}
|
|
114
|
+
exports.clickgo = cg;
|
|
115
|
+
exports.control = cg.control;
|
|
116
|
+
exports.core = cg.core;
|
|
117
|
+
exports.dom = cg.dom;
|
|
118
|
+
exports.form = cg.form;
|
|
119
|
+
exports.fs = cg.fs;
|
|
120
|
+
exports.native = cg.native;
|
|
121
|
+
exports.task = cg.task;
|
|
122
|
+
exports.theme = cg.theme;
|
|
123
|
+
exports.tool = cg.tool;
|
|
124
|
+
exports.zip = cg.zip;
|
|
125
|
+
exports.core.boot = boot;
|
|
126
|
+
yield boot.main();
|
|
58
127
|
});
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
'map': map
|
|
62
|
-
})[0];
|
|
63
|
-
try {
|
|
64
|
-
const style = yield (yield fetch(__dirname + '/global.css' + (!__dirname.startsWith(loader.cdn) ? after : ''))).text();
|
|
65
|
-
(_a = document.getElementById('cg-global')) === null || _a === void 0 ? void 0 : _a.insertAdjacentHTML('afterbegin', style);
|
|
66
|
-
}
|
|
67
|
-
catch (_b) {
|
|
68
|
-
alert(`ClickGo: "${__dirname}/global.css'" failed.`);
|
|
69
|
-
}
|
|
70
|
-
exports.clickgo = cg;
|
|
71
|
-
exports.control = cg.control;
|
|
72
|
-
exports.core = cg.core;
|
|
73
|
-
exports.dom = cg.dom;
|
|
74
|
-
exports.form = cg.form;
|
|
75
|
-
exports.fs = cg.fs;
|
|
76
|
-
exports.native = cg.native;
|
|
77
|
-
exports.task = cg.task;
|
|
78
|
-
exports.theme = cg.theme;
|
|
79
|
-
exports.tool = cg.tool;
|
|
80
|
-
exports.zip = cg.zip;
|
|
128
|
+
})().catch(function () {
|
|
129
|
+
return;
|
|
81
130
|
});
|
|
82
131
|
}
|
|
83
|
-
exports.
|
|
132
|
+
exports.launcher = launcher;
|
package/dist/index.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// npm publish --tag dev --access public
|
|
2
|
+
import * as types from '~/types';
|
|
2
3
|
|
|
3
4
|
// --- 以下不会真正加载,最终会在底部进行赋值 ---
|
|
4
5
|
export let clickgo: typeof import('./clickgo');
|
|
@@ -26,66 +27,170 @@ export function getPlatform(): NodeJS.Platform | 'web' {
|
|
|
26
27
|
return clickgo.getPlatform();
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
/** --- 全局类 --- */
|
|
31
|
+
export abstract class AbstractBoot {
|
|
32
|
+
|
|
33
|
+
/** --- 入口文件 --- */
|
|
34
|
+
public abstract main(): void | Promise<void>;
|
|
35
|
+
|
|
36
|
+
/** --- 全局错误事件 --- */
|
|
37
|
+
public onError(taskId: number, formId: number, error: Error, info: string): void | Promise<void>;
|
|
38
|
+
public onError(): void {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/** --- 屏幕大小改变事件 --- */
|
|
43
|
+
public onScreenResize(): void | Promise<void>;
|
|
44
|
+
public onScreenResize(): void {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** --- 系统配置变更事件 --- */
|
|
49
|
+
public onConfigChanged<T extends types.IConfig, TK extends keyof T>(n: TK, v: T[TK]): void | Promise<void>;
|
|
50
|
+
public onConfigChanged(): void {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** --- 窗体创建事件 --- */
|
|
55
|
+
public onFormCreated(taskId: number, formId: number, title: string, icon: string): void | Promise<void>;
|
|
56
|
+
public onFormCreated(): void {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** --- 窗体销毁事件 */
|
|
61
|
+
public onFormRemoved(taskId: number, formId: number, title: string, icon: string): void | Promise<void>;
|
|
62
|
+
public onFormRemoved(): void {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/** --- 窗体标题改变事件 */
|
|
67
|
+
public onFormTitleChanged(taskId: number, formId: number, title: string): void | Promise<void>;
|
|
68
|
+
public onFormTitleChanged(): void | Promise<void> {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/** --- 窗体图标改变事件 --- */
|
|
73
|
+
public onFormIconChanged(taskId: number, formId: number, icon: string): void | Promise<void>;
|
|
74
|
+
public onFormIconChanged(): void | Promise<void> {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** --- 窗体最小化状态改变事件 --- */
|
|
79
|
+
public onFormStateMinChanged(taskId: number, formId: number, state: boolean): void | Promise<void>;
|
|
80
|
+
public onFormStateMinChanged(): void {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/** --- 窗体最大化状态改变事件 --- */
|
|
85
|
+
public onFormStateMaxChanged(taskId: number, formId: number, state: boolean): void | Promise<void>;
|
|
86
|
+
public onFormStateMaxChanged(): void {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/** --- 窗体显示状态改变事件 --- */
|
|
91
|
+
public onFormShowChanged(taskId: number, formId: number, state: boolean): void | Promise<void>;
|
|
92
|
+
public onFormShowChanged(): void {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/** --- 窗体获得焦点事件 --- */
|
|
97
|
+
public onFormFocused(taskId: number, formId: number): void | Promise<void>;
|
|
98
|
+
public onFormFocused(): void {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/** --- 窗体丢失焦点事件 --- */
|
|
103
|
+
public onFormBlurred(taskId: number, formId: number): void | Promise<void>;
|
|
104
|
+
public onFormBlurred(): void {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/** --- 窗体闪烁事件 --- */
|
|
109
|
+
public onFormFlash(taskId: number, formId: number): void | Promise<void>;
|
|
110
|
+
public onFormFlash(): void {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/** --- 任务开始事件 --- */
|
|
115
|
+
public onTaskStarted(taskId: number): void | Promise<void>;
|
|
116
|
+
public onTaskStarted(): void | Promise<void> {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/** --- 任务结束事件 --- */
|
|
121
|
+
public onTaskEnded(taskId: number): void | Promise<void>;
|
|
122
|
+
public onTaskEnded(): void | Promise<void> {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/** --- launcher 文件夹名称修改事件 --- */
|
|
127
|
+
public onLauncherFolderNameChanged(id: string, name: string): void | Promise<void>;
|
|
128
|
+
public onLauncherFolderNameChanged(): void {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
|
|
34
132
|
}
|
|
35
133
|
|
|
36
|
-
export
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
134
|
+
export function launcher(boot: AbstractBoot): void {
|
|
135
|
+
(async function() {
|
|
136
|
+
// --- 通过标签加载库 ---
|
|
137
|
+
const paths: string[] = [
|
|
138
|
+
loader.cdn + '/npm/vue@3.2.40/dist/vue.global.prod.min.js'
|
|
139
|
+
];
|
|
140
|
+
// --- 判断 ResizeObserver 是否存在 ---
|
|
141
|
+
let ro = true;
|
|
142
|
+
// ResizeObserver = undefined;
|
|
143
|
+
if (!((window as any).ResizeObserver)) {
|
|
144
|
+
ro = false;
|
|
145
|
+
paths.push(loader.cdn + '/npm/@juggle/resize-observer@3.4.0/lib/exports/resize-observer.umd.min.js');
|
|
146
|
+
}
|
|
147
|
+
// --- 加载 vue 以及必要库 ---
|
|
148
|
+
await loader.loadScripts(paths);
|
|
149
|
+
// --- 处理 ResizeObserver ---
|
|
150
|
+
if (!ro) {
|
|
151
|
+
(window as any).ResizeObserverEntry = (window as any).ResizeObserver.ResizeObserverEntry;
|
|
152
|
+
(window as any).ResizeObserver = (window as any).ResizeObserver.ResizeObserver;
|
|
153
|
+
}
|
|
154
|
+
// --- map 加载库 ---
|
|
155
|
+
const map: Record<string, string> = {
|
|
156
|
+
'jszip': loader.cdn + '/npm/jszip@3.10.0/dist/jszip.min'
|
|
157
|
+
};
|
|
158
|
+
// --- 加载 clickgo 主程序 ---
|
|
159
|
+
const after = '?' + Math.random().toString();
|
|
160
|
+
const files = await loader.sniffFiles('clickgo.js', {
|
|
161
|
+
'dir': __dirname + '/',
|
|
162
|
+
'after': after,
|
|
163
|
+
'afterIgnore': new RegExp('^' + loader.cdn.replace(/\./g, '\\.')),
|
|
164
|
+
'map': map
|
|
165
|
+
});
|
|
166
|
+
const cg = loader.require('clickgo', files, {
|
|
167
|
+
'dir': __dirname + '/',
|
|
168
|
+
'map': map
|
|
169
|
+
})[0] as typeof import('../dist/clickgo');
|
|
170
|
+
// --- 加载 clickgo 的 global css ---
|
|
171
|
+
try {
|
|
172
|
+
const style = await (await fetch(__dirname + '/global.css' + (!__dirname.startsWith(loader.cdn) ? after : ''))).text();
|
|
173
|
+
document.getElementById('cg-global')?.insertAdjacentHTML('afterbegin', style);
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
alert(`ClickGo: "${__dirname}/global.css'" failed.`);
|
|
177
|
+
}
|
|
178
|
+
// --- 设置一些项目 ---
|
|
179
|
+
clickgo = cg;
|
|
180
|
+
control = cg.control;
|
|
181
|
+
core = cg.core;
|
|
182
|
+
dom = cg.dom;
|
|
183
|
+
form = cg.form;
|
|
184
|
+
fs = cg.fs;
|
|
185
|
+
native = cg.native;
|
|
186
|
+
task = cg.task;
|
|
187
|
+
theme = cg.theme;
|
|
188
|
+
tool = cg.tool;
|
|
189
|
+
zip = cg.zip;
|
|
190
|
+
core.boot = boot;
|
|
191
|
+
// --- 执行回调 ---
|
|
192
|
+
await boot.main();
|
|
193
|
+
})().catch(function() {
|
|
194
|
+
return;
|
|
66
195
|
});
|
|
67
|
-
const cg = loader.require('clickgo', files, {
|
|
68
|
-
'dir': __dirname + '/',
|
|
69
|
-
'map': map
|
|
70
|
-
})[0] as typeof import('../dist/clickgo');
|
|
71
|
-
// --- 加载 clickgo 的 global css ---
|
|
72
|
-
try {
|
|
73
|
-
const style = await (await fetch(__dirname + '/global.css' + (!__dirname.startsWith(loader.cdn) ? after : ''))).text();
|
|
74
|
-
document.getElementById('cg-global')?.insertAdjacentHTML('afterbegin', style);
|
|
75
|
-
}
|
|
76
|
-
catch {
|
|
77
|
-
alert(`ClickGo: "${__dirname}/global.css'" failed.`);
|
|
78
|
-
}
|
|
79
|
-
// --- 设置一些项目 ---
|
|
80
|
-
clickgo = cg;
|
|
81
|
-
control = cg.control;
|
|
82
|
-
core = cg.core;
|
|
83
|
-
dom = cg.dom;
|
|
84
|
-
form = cg.form;
|
|
85
|
-
fs = cg.fs;
|
|
86
|
-
native = cg.native;
|
|
87
|
-
task = cg.task;
|
|
88
|
-
theme = cg.theme;
|
|
89
|
-
tool = cg.tool;
|
|
90
|
-
zip = cg.zip;
|
|
91
196
|
}
|