clickgo 3.1.1-dev10 → 3.1.3-dev12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/app/demo/app.js +0 -72
  2. package/dist/app/demo/config.json +109 -0
  3. package/dist/app/demo/form/control/button/button.js +12 -11
  4. package/dist/app/demo/form/control/button/button.xml +6 -6
  5. package/dist/app/demo/form/control/check/check.js +14 -10
  6. package/dist/app/demo/form/control/file/file.js +15 -13
  7. package/dist/app/demo/form/control/{overflow/overflow.css → flow/flow.css} +0 -0
  8. package/dist/app/demo/form/control/flow/flow.js +64 -0
  9. package/dist/app/demo/form/control/{overflow/overflow.scss → flow/flow.scss} +0 -0
  10. package/dist/app/demo/form/control/flow/flow.xml +101 -0
  11. package/dist/app/demo/form/control/form/form.js +1 -1
  12. package/dist/app/demo/form/control/form/form.xml +3 -3
  13. package/dist/app/demo/form/control/img/img.xml +2 -2
  14. package/dist/app/demo/form/control/list/list.js +95 -75
  15. package/dist/app/demo/form/control/list/list.xml +15 -11
  16. package/dist/app/demo/form/control/marquee/marquee.js +12 -10
  17. package/dist/app/demo/form/control/menu/menu.js +10 -6
  18. package/dist/app/demo/form/control/monaco/monaco.js +50 -60
  19. package/dist/app/demo/form/control/monaco/monaco.xml +6 -5
  20. package/dist/app/demo/form/control/property/property.js +131 -127
  21. package/dist/app/demo/form/control/radio/radio.js +9 -5
  22. package/dist/app/demo/form/control/scroll/scroll.js +16 -12
  23. package/dist/app/demo/form/control/scroll/scroll.xml +10 -10
  24. package/dist/app/demo/form/control/select/select.js +132 -71
  25. package/dist/app/demo/form/control/select/select.xml +69 -67
  26. package/dist/app/demo/form/control/tab/tab.js +21 -20
  27. package/dist/app/demo/form/control/tab/tab.xml +2 -2
  28. package/dist/app/demo/form/control/text/text.js +53 -45
  29. package/dist/app/demo/form/control/text/text.xml +3 -3
  30. package/dist/app/demo/form/control/{greatview/greatview.css → vflow/vflow.css} +0 -0
  31. package/dist/app/demo/form/control/vflow/vflow.js +79 -0
  32. package/dist/app/demo/form/control/{greatview/greatview.scss → vflow/vflow.scss} +0 -0
  33. package/dist/app/demo/form/control/{greatview/greatview.xml → vflow/vflow.xml} +25 -25
  34. package/dist/app/demo/form/event/form/form.js +58 -56
  35. package/dist/app/demo/form/event/form/form.xml +3 -3
  36. package/dist/app/demo/form/event/screen/screen.js +30 -28
  37. package/dist/app/demo/form/event/screen/screen.xml +2 -2
  38. package/dist/app/demo/form/event/task/task.js +31 -31
  39. package/dist/app/demo/form/event/task/task.xml +3 -3
  40. package/dist/app/demo/form/main.js +166 -5
  41. package/dist/app/demo/form/main.xml +37 -35
  42. package/dist/app/demo/form/method/aform/aform.js +57 -0
  43. package/dist/app/demo/form/method/aform/aform.xml +35 -0
  44. package/dist/app/demo/form/method/aform/test.xml +6 -0
  45. package/dist/app/demo/form/method/core/core.js +11 -8
  46. package/dist/app/demo/form/method/core/core.xml +2 -1
  47. package/dist/app/demo/form/method/dom/dom.js +91 -99
  48. package/dist/app/demo/form/method/dom/dom.xml +6 -7
  49. package/dist/app/demo/form/method/form/form.js +10 -28
  50. package/dist/app/demo/form/method/form/form.xml +8 -15
  51. package/dist/app/demo/form/method/fs/fs.js +34 -33
  52. package/dist/app/demo/form/method/fs/fs.xml +1 -1
  53. package/dist/app/demo/form/method/fs/text.js +12 -12
  54. package/dist/app/demo/form/method/native/native.js +50 -0
  55. package/dist/app/demo/form/method/native/native.xml +12 -0
  56. package/dist/app/demo/form/method/system/system.js +50 -0
  57. package/dist/app/demo/form/method/system/system.xml +11 -0
  58. package/dist/app/demo/form/method/task/task.js +59 -61
  59. package/dist/app/demo/form/method/task/task.xml +4 -6
  60. package/dist/app/demo/form/method/theme/theme.js +14 -14
  61. package/dist/app/demo/form/method/tool/tool.js +29 -28
  62. package/dist/app/demo/form/method/tool/tool.xml +3 -3
  63. package/dist/app/demo/form/method/zip/zip.js +46 -41
  64. package/dist/app/demo/form/method/zip/zip.xml +1 -1
  65. package/dist/app/task/app.js +0 -25
  66. package/dist/app/task/config.json +29 -0
  67. package/dist/app/task/form/bar/bar.js +2 -2
  68. package/dist/app/task/form/bar/bar.xml +1 -1
  69. package/dist/clickgo.js +17 -5
  70. package/dist/clickgo.ts +22 -3
  71. package/dist/control/common.cgc +0 -0
  72. package/dist/control/form.cgc +0 -0
  73. package/dist/control/monaco.cgc +0 -0
  74. package/dist/control/property.cgc +0 -0
  75. package/dist/control/task.cgc +0 -0
  76. package/dist/global.css +1 -1
  77. package/dist/index.js +28 -8
  78. package/dist/index.ts +33 -7
  79. package/dist/lib/control.js +75 -105
  80. package/dist/lib/control.ts +102 -124
  81. package/dist/lib/core.js +108 -252
  82. package/dist/lib/core.ts +122 -268
  83. package/dist/lib/dom.js +564 -483
  84. package/dist/lib/dom.ts +703 -546
  85. package/dist/lib/form.js +170 -153
  86. package/dist/lib/form.ts +132 -99
  87. package/dist/lib/fs.js +1 -1
  88. package/dist/lib/fs.ts +1 -1
  89. package/dist/lib/native.js +135 -8
  90. package/dist/lib/native.ts +176 -12
  91. package/dist/lib/task.js +301 -175
  92. package/dist/lib/task.ts +330 -207
  93. package/dist/lib/tool.js +48 -1
  94. package/dist/lib/tool.ts +61 -0
  95. package/dist/lib/zip.ts +2 -0
  96. package/dist/theme/familiar.cgt +0 -0
  97. package/package.json +1 -1
  98. package/types/index.d.ts +26 -29
  99. package/dist/app/demo/form/control/greatview/greatview.js +0 -92
  100. package/dist/app/demo/form/control/overflow/overflow.js +0 -70
  101. package/dist/app/demo/form/control/overflow/overflow.xml +0 -98
  102. package/dist/app/demo/form/control/view/view.css +0 -1
  103. package/dist/app/demo/form/control/view/view.js +0 -73
  104. package/dist/app/demo/form/control/view/view.scss +0 -18
  105. package/dist/app/demo/form/control/view/view.xml +0 -94
  106. package/dist/app/demo/form/method/form/test.xml +0 -5
@@ -9,11 +9,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.methods = exports.data = void 0;
13
12
  const clickgo = require("clickgo");
14
- exports.data = {
15
- 'sleeping': false,
16
- 'purifyTxt': `<html>
13
+ class default_1 extends clickgo.form.AbstractForm {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.sleeping = false;
17
+ this.purifyTxt = `<html>
17
18
  <head>
18
19
  <title>Hello world!</title>
19
20
  </head>
@@ -23,17 +24,16 @@ exports.data = {
23
24
  <!-- content -->
24
25
  <div>content</div>
25
26
  </body>
26
- </html>`,
27
- 'min': '10',
28
- 'max': '30',
29
- 'length': '8',
30
- 'block': '',
31
- 'url': 'HtTp://uSer:pAss@sUBDom.TopdOm23.CoM:29819/Admxw2Ksiz/dszas?Mdi=KdiMs1&a=JDd#hehHe',
32
- 'url1': '/abc/def/hehe',
33
- 'url2': '../bb.index'
34
- };
35
- exports.methods = {
36
- sleep: function () {
27
+ </html>`;
28
+ this.min = '10';
29
+ this.max = '30';
30
+ this.length = '8';
31
+ this.block = '';
32
+ this.url = 'HtTp://uSer:pAss@sUBDom.TopdOm23.CoM:29819/Admxw2Ksiz/dszas?Mdi=KdiMs1&a=JDd#hehHe';
33
+ this.url1 = '/abc/def/hehe';
34
+ this.url2 = '../bb.index';
35
+ }
36
+ sleep() {
37
37
  return __awaiter(this, void 0, void 0, function* () {
38
38
  if (this.sleeping) {
39
39
  return;
@@ -42,23 +42,24 @@ exports.methods = {
42
42
  yield clickgo.tool.sleep(1000);
43
43
  this.sleeping = false;
44
44
  });
45
- },
46
- purify: function () {
45
+ }
46
+ purify() {
47
47
  this.purifyTxt = clickgo.tool.purify(this.purifyTxt);
48
- },
49
- rand: function () {
48
+ }
49
+ rand() {
50
50
  clickgo.form.dialog(clickgo.tool.rand(parseInt(this.min), parseInt(this.max)).toString()).catch((e) => { throw e; });
51
- },
52
- random: function () {
51
+ }
52
+ random() {
53
53
  clickgo.form.dialog(clickgo.tool.random(parseInt(this.length), clickgo.tool.RANDOM_LN, this.block)).catch((e) => { throw e; });
54
- },
55
- escapeHTML: function () {
54
+ }
55
+ escapeHTML() {
56
56
  clickgo.form.dialog(clickgo.tool.escapeHTML(this.purifyTxt)).catch((e) => { throw e; });
57
- },
58
- parseUrl: function () {
57
+ }
58
+ parseUrl() {
59
59
  clickgo.form.dialog(JSON.stringify(clickgo.tool.parseUrl(this.url))).catch((e) => { throw e; });
60
- },
61
- urlResolve: function () {
60
+ }
61
+ urlResolve() {
62
62
  clickgo.form.dialog(clickgo.tool.urlResolve(this.url1, this.url2)).catch((e) => { throw e; });
63
63
  }
64
- };
64
+ }
65
+ exports.default = default_1;
@@ -1,5 +1,5 @@
1
- <form width="350" height="400" title="Library tool" padding="10">
2
- <overflow direction="v" style="flex: 1;">
1
+ <form width="350" height="400" title="Library tool">
2
+ <flow direction="v" style="flex: 1; padding: 10px;">
3
3
  <layout direction="v" gutter="10">
4
4
  <button @click="sleep" style="height: 30px;">{{sleeping ? 'Waiting...' : 'sleep(1000)'}}</button>
5
5
  <text v-model="purifyTxt" multi style="height: 100px;"></text>
@@ -22,5 +22,5 @@
22
22
  <text v-model="url2" style="height: 30px;"></text>
23
23
  <button @click="urlResolve" style="height: 30px;">urlResolve('{{url1.slice(0, 5)}}...', '{{url2.slice(0, 5)}}...')</button>
24
24
  </layout>
25
- </overflow>
25
+ </flow>
26
26
  </form>
@@ -9,18 +9,22 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.methods = exports.data = void 0;
13
12
  const clickgo = require("clickgo");
14
- exports.data = {
15
- 'path': '/',
16
- 'list': [],
17
- 'val': ''
18
- };
19
- exports.methods = {
20
- select: function () {
21
- this.$refs.file.select();
22
- },
23
- change: function (files) {
13
+ const text_1 = require("../fs/text");
14
+ class default_1 extends clickgo.form.AbstractForm {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.ppath = '/';
18
+ this.list = [];
19
+ this.val = [];
20
+ this.access = {
21
+ 'zip': undefined
22
+ };
23
+ }
24
+ select() {
25
+ this.refs.file.select();
26
+ }
27
+ change(files) {
24
28
  return __awaiter(this, void 0, void 0, function* () {
25
29
  if (!files) {
26
30
  return;
@@ -30,51 +34,53 @@ exports.methods = {
30
34
  yield clickgo.form.dialog('File failed to open.');
31
35
  return;
32
36
  }
33
- this.zip = zip;
37
+ this.access.zip = zip;
34
38
  this.open('/');
35
39
  });
36
- },
37
- open: function (path) {
38
- const zip = this.zip;
40
+ }
41
+ open(path) {
42
+ if (!this.access.zip) {
43
+ return;
44
+ }
39
45
  if (!path.endsWith('/')) {
40
46
  path += '/';
41
47
  }
42
48
  this.list = [];
43
- const ls = zip.readDir(path);
49
+ const ls = this.access.zip.readDir(path);
44
50
  for (const item of ls) {
45
51
  this.list.push({
46
52
  'label': (item.isDirectory ? '[FOLD]' : '[FILE]') + ' ' + item.name,
47
53
  'value': path + item.name
48
54
  });
49
55
  }
50
- this.path = path;
51
- },
52
- dblclick: function () {
56
+ this.ppath = path;
57
+ }
58
+ dblclick() {
53
59
  return __awaiter(this, void 0, void 0, function* () {
54
- if (!this.zip) {
60
+ if (!this.access.zip) {
55
61
  return;
56
62
  }
57
- const zip = this.zip;
58
- const r = zip.isFile(this.val);
63
+ const r = this.access.zip.isFile(this.val[0]);
59
64
  if (r) {
60
- const extlio = this.val.lastIndexOf('.');
65
+ const extlio = this.val[0].lastIndexOf('.');
61
66
  if (extlio === -1) {
62
67
  yield clickgo.form.dialog('This extension is not supported.');
63
68
  return;
64
69
  }
65
- const ext = this.val.toLowerCase().slice(extlio + 1);
70
+ const ext = this.val[0].toLowerCase().slice(extlio + 1);
66
71
  if (['xml', 'js', 'ts', 'json', 'css', 'html', 'php'].includes(ext)) {
67
- const content = yield zip.getContent(this.val);
72
+ const content = yield this.access.zip.getContent(this.val[0]);
68
73
  if (!content) {
69
74
  yield clickgo.form.dialog('This file cannot be opened.');
70
75
  return;
71
76
  }
72
- const f = yield clickgo.form.create('../fs/text');
77
+ const f = yield text_1.default.create();
73
78
  if (typeof f === 'number') {
74
79
  return;
75
80
  }
76
- clickgo.form.send(f.id, {
77
- 'title': this.val.slice(this.val.lastIndexOf('/') + 1),
81
+ f.show();
82
+ this.send(f.formId, {
83
+ 'title': this.val[0].slice(this.val[0].lastIndexOf('/') + 1),
78
84
  'content': content
79
85
  });
80
86
  return;
@@ -82,18 +88,17 @@ exports.methods = {
82
88
  yield clickgo.form.dialog('This extension is not supported.');
83
89
  return;
84
90
  }
85
- this.open(this.val);
86
- });
87
- },
88
- up: function () {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- if (this.path === '/') {
91
- return;
92
- }
93
- const path = this.path.slice(0, -1);
94
- const lif = path.lastIndexOf('/');
95
- const npath = path.slice(0, lif + 1);
96
- yield this.open(npath);
91
+ this.open(this.val[0]);
97
92
  });
98
93
  }
99
- };
94
+ up() {
95
+ if (this.ppath === '/') {
96
+ return;
97
+ }
98
+ const path = this.ppath.slice(0, -1);
99
+ const lif = path.lastIndexOf('/');
100
+ const npath = path.slice(0, lif + 1);
101
+ this.open(npath);
102
+ }
103
+ }
104
+ exports.default = default_1;
@@ -5,7 +5,7 @@
5
5
  <file ref="file" @change="change" :accept="['zip', 'apk']"></file>
6
6
  </button>
7
7
  <label>Double click the item below:</label>
8
- <block style="background: #000; color: #FFF; padding: 5px;">{{path}}</block>
8
+ <block style="background: #000; color: #FFF; padding: 5px;">{{ppath}}</block>
9
9
  <list v-model="val" :data="list" @dblclick="dblclick" style="flex: 1; height: 0;"></list>
10
10
  <button style="height: 30px;" @click="up">Up</button>
11
11
  </layout>
@@ -14,31 +14,6 @@ const bar_1 = require("./form/bar/bar");
14
14
  class default_1 extends clickgo.core.AbstractApp {
15
15
  main() {
16
16
  return __awaiter(this, void 0, void 0, function* () {
17
- yield this.config({
18
- 'name': 'Clickgo Task',
19
- 'ver': 1,
20
- 'version': '0.1',
21
- 'author': 'clickgo',
22
- 'controls': [
23
- '/clickgo/control/common',
24
- '/clickgo/control/form',
25
- '/clickgo/control/task'
26
- ],
27
- 'locales': {
28
- '/package/locale/sc': 'sc',
29
- '/package/locale/tc': 'tc',
30
- '/package/locale/en': 'en',
31
- '/package/locale/ja': 'ja'
32
- },
33
- 'files': [
34
- '/form/bar/bar.xml',
35
- '/form/desktop/desktop.xml',
36
- '/locale/en.json',
37
- '/locale/ja.json',
38
- '/locale/sc.json',
39
- '/locale/tc.json'
40
- ]
41
- });
42
17
  this.run(yield bar_1.default.create());
43
18
  });
44
19
  }
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "Clickgo Task",
3
+ "ver": 1,
4
+ "version": "0.1",
5
+ "author": "clickgo",
6
+
7
+ "controls": [
8
+ "/clickgo/control/common",
9
+ "/clickgo/control/form",
10
+ "/clickgo/control/task"
11
+ ],
12
+ "locales": {
13
+ "/package/locale/sc": "sc",
14
+ "/package/locale/tc": "tc",
15
+ "/package/locale/en": "en",
16
+ "/package/locale/ja": "ja"
17
+ },
18
+
19
+ "files": [
20
+ "/form/bar/bar.js",
21
+ "/form/bar/bar.xml",
22
+ "/form/desktop/desktop.xml",
23
+ "/locale/en.json",
24
+ "/locale/ja.json",
25
+ "/locale/sc.json",
26
+ "/locale/tc.json",
27
+ "/app.js"
28
+ ]
29
+ }
@@ -75,13 +75,13 @@ class default_1 extends clickgo.form.AbstractForm {
75
75
  };
76
76
  }
77
77
  }
78
- close(index) {
78
+ cclose(index) {
79
79
  const app = this.apps[index];
80
80
  if (!app) {
81
81
  return;
82
82
  }
83
83
  for (const formId in app.forms) {
84
- clickgo.form.remove(parseInt(formId));
84
+ clickgo.form.close(parseInt(formId));
85
85
  }
86
86
  }
87
87
  changeFocus(formId) {
@@ -21,7 +21,7 @@
21
21
  <menulist-item @click="pin(appIndex)">
22
22
  <block style="width: 16px; height: 16px;"></block><label style="margin-left: 10px;">{{app.pin ? l('unpin from taskbar') : l('pin to taskbar')}}</label>
23
23
  </menulist-item>
24
- <menulist-item v-if="app.formCount > 0" @click="close(appIndex)">
24
+ <menulist-item v-if="app.formCount > 0" @click="cclose(appIndex)">
25
25
  <block style="width: 16px; height: 16px;"></block><label style="margin-left: 10px;">{{app.formCount > 1 ? l('close all windows') : l('close window')}}</label>
26
26
  </menulist-item>
27
27
  </menulist>
package/dist/clickgo.js CHANGED
@@ -1,27 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.zip = exports.tool = exports.theme = exports.task = exports.native = exports.fs = exports.form = exports.dom = exports.core = exports.control = exports.vue = exports.getPlatform = exports.getNative = exports.getVersion = void 0;
4
- const version = '3.0.0';
3
+ exports.zip = exports.tool = exports.theme = exports.task = exports.native = exports.fs = exports.form = exports.dom = exports.core = exports.control = exports.vue = exports.hasFrame = exports.isImmersion = exports.getPlatform = exports.isNative = exports.getVersion = void 0;
4
+ const version = '3.1.3';
5
5
  function getVersion() {
6
6
  return version;
7
7
  }
8
8
  exports.getVersion = getVersion;
9
9
  const native = navigator.userAgent.includes('electron') ? true : false;
10
- function getNative() {
10
+ function isNative() {
11
11
  return native;
12
12
  }
13
- exports.getNative = getNative;
13
+ exports.isNative = isNative;
14
14
  let platform = 'web';
15
+ let immersion = false;
16
+ let frame = false;
15
17
  if (native) {
16
- const reg = /electron\/(.+?) (.+?)\//.exec(navigator.userAgent);
18
+ const reg = /electron\/(.+?) (.+?)\/(.+?) immersion\/([0-9]) frame\/([0-9])/.exec(navigator.userAgent);
17
19
  if (reg) {
18
20
  platform = reg[2];
21
+ immersion = reg[4] === '0' ? false : true;
22
+ frame = reg[5] === '0' ? false : true;
19
23
  }
20
24
  }
21
25
  function getPlatform() {
22
26
  return platform;
23
27
  }
24
28
  exports.getPlatform = getPlatform;
29
+ function isImmersion() {
30
+ return immersion;
31
+ }
32
+ exports.isImmersion = isImmersion;
33
+ function hasFrame() {
34
+ return frame;
35
+ }
36
+ exports.hasFrame = hasFrame;
25
37
  exports.vue = window.Vue;
26
38
  exports.control = require("./lib/control");
27
39
  exports.core = require("./lib/core");
package/dist/clickgo.ts CHANGED
@@ -13,27 +13,46 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- const version = '3.0.0';
16
+ const version = '3.1.3';
17
17
  export function getVersion(): string {
18
18
  return version;
19
19
  }
20
20
 
21
21
  const native = navigator.userAgent.includes('electron') ? true : false;
22
- export function getNative(): boolean {
22
+ export function isNative(): boolean {
23
23
  return native;
24
24
  }
25
25
 
26
26
  let platform: NodeJS.Platform | 'web' = 'web';
27
+ let immersion: boolean = false;
28
+ let frame: boolean = false;
29
+
27
30
  if (native) {
28
- const reg = /electron\/(.+?) (.+?)\//.exec(navigator.userAgent);
31
+ const reg = /electron\/(.+?) (.+?)\/(.+?) immersion\/([0-9]) frame\/([0-9])/.exec(navigator.userAgent);
29
32
  if (reg) {
30
33
  platform = reg[2] as any;
34
+ immersion = reg[4] === '0' ? false : true;
35
+ frame = reg[5] === '0' ? false : true;
31
36
  }
32
37
  }
33
38
  export function getPlatform(): NodeJS.Platform | 'web' {
34
39
  return platform;
35
40
  }
36
41
 
42
+ /**
43
+ * --- 获取当前 native 是否是沉浸式 ---
44
+ */
45
+ export function isImmersion(): boolean {
46
+ return immersion;
47
+ }
48
+
49
+ /**
50
+ * --- 是否含有窗体外边框 ---
51
+ */
52
+ export function hasFrame(): boolean {
53
+ return frame;
54
+ }
55
+
37
56
  export const vue: import('../types/index').IVueObject = (window as any).Vue;
38
57
 
39
58
  export * as control from './lib/control';
Binary file
Binary file
Binary file
Binary file
Binary file
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);--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}
1
+ #cg-wrap{position:fixed;left:0;top:0;--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:absolute;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:absolute;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:absolute;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-gesture.ani{transition:all .1s ease-out;transition-property:left,top,transform}#cg-drag{z-index:20020003;box-sizing:border-box;position:absolute;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;appearance:none;padding:10px;height:38px;border:solid 1px var(--system-border-color);background:rgba(0,0,0,0);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;appearance:none;height:38px;font-size:28px !important;border:none;background:rgba(0,0,0,0);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:absolute;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;position:fixed}#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,19 +9,27 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
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;
12
+ exports.launcher = exports.AbstractBoot = exports.hasFrame = exports.isImmersion = exports.getPlatform = exports.isNative = 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
  }
16
16
  exports.getVersion = getVersion;
17
- function getNative() {
18
- return exports.clickgo.getNative();
17
+ function isNative() {
18
+ return exports.clickgo.isNative();
19
19
  }
20
- exports.getNative = getNative;
20
+ exports.isNative = isNative;
21
21
  function getPlatform() {
22
22
  return exports.clickgo.getPlatform();
23
23
  }
24
24
  exports.getPlatform = getPlatform;
25
+ function isImmersion() {
26
+ return exports.clickgo.isImmersion();
27
+ }
28
+ exports.isImmersion = isImmersion;
29
+ function hasFrame() {
30
+ return exports.clickgo.hasFrame();
31
+ }
32
+ exports.hasFrame = hasFrame;
25
33
  class AbstractBoot {
26
34
  onError() {
27
35
  return;
@@ -71,6 +79,12 @@ class AbstractBoot {
71
79
  onLauncherFolderNameChanged() {
72
80
  return;
73
81
  }
82
+ onRuntimeFileLoad() {
83
+ return;
84
+ }
85
+ onRuntimeFileLoaded() {
86
+ return;
87
+ }
74
88
  }
75
89
  exports.AbstractBoot = AbstractBoot;
76
90
  function launcher(boot) {
@@ -78,7 +92,7 @@ function launcher(boot) {
78
92
  var _a;
79
93
  return __awaiter(this, void 0, void 0, function* () {
80
94
  const paths = [
81
- loader.cdn + '/npm/vue@3.2.40/dist/vue.global.prod.min.js'
95
+ loader.cdn + '/npm/vue@3.2.41/dist/vue.global.prod.min.js'
82
96
  ];
83
97
  let ro = true;
84
98
  if (!(window.ResizeObserver)) {
@@ -98,7 +112,13 @@ function launcher(boot) {
98
112
  'dir': __dirname + '/',
99
113
  'after': after,
100
114
  'afterIgnore': new RegExp('^' + loader.cdn.replace(/\./g, '\\.')),
101
- 'map': map
115
+ 'map': map,
116
+ 'load': (url) => {
117
+ boot.onRuntimeFileLoad(url);
118
+ },
119
+ 'loaded': (url, state) => {
120
+ boot.onRuntimeFileLoaded(url, state);
121
+ }
102
122
  });
103
123
  const cg = loader.require('clickgo', files, {
104
124
  'dir': __dirname + '/',
@@ -125,8 +145,8 @@ function launcher(boot) {
125
145
  exports.core.boot = boot;
126
146
  yield boot.main();
127
147
  });
128
- })().catch(function () {
129
- return;
148
+ })().catch(function (e) {
149
+ console.log('launcher', e);
130
150
  });
131
151
  }
132
152
  exports.launcher = launcher;
package/dist/index.ts CHANGED
@@ -19,18 +19,26 @@ export function getVersion(): string {
19
19
  return clickgo.getVersion();
20
20
  }
21
21
 
22
- export function getNative(): boolean {
23
- return clickgo.getNative();
22
+ export function isNative(): boolean {
23
+ return clickgo.isNative();
24
24
  }
25
25
 
26
26
  export function getPlatform(): NodeJS.Platform | 'web' {
27
27
  return clickgo.getPlatform();
28
28
  }
29
29
 
30
+ export function isImmersion(): boolean {
31
+ return clickgo.isImmersion();
32
+ }
33
+
34
+ export function hasFrame(): boolean {
35
+ return clickgo.hasFrame();
36
+ }
37
+
30
38
  /** --- 全局类 --- */
31
39
  export abstract class AbstractBoot {
32
40
 
33
- /** --- 入口文件 --- */
41
+ /** --- 入口方法 --- */
34
42
  public abstract main(): void | Promise<void>;
35
43
 
36
44
  /** --- 全局错误事件 --- */
@@ -129,13 +137,25 @@ export abstract class AbstractBoot {
129
137
  return;
130
138
  }
131
139
 
140
+ /** --- 环境文件准备加载时的事件 --- */
141
+ public onRuntimeFileLoad(url: string): void | Promise<void>;
142
+ public onRuntimeFileLoad(): void {
143
+ return;
144
+ }
145
+
146
+ /** --- 环境文件加载完成的事件 --- */
147
+ public onRuntimeFileLoaded(url: string, state: number): void | Promise<void>;
148
+ public onRuntimeFileLoaded(): void {
149
+ return;
150
+ }
151
+
132
152
  }
133
153
 
134
154
  export function launcher(boot: AbstractBoot): void {
135
155
  (async function() {
136
156
  // --- 通过标签加载库 ---
137
157
  const paths: string[] = [
138
- loader.cdn + '/npm/vue@3.2.40/dist/vue.global.prod.min.js'
158
+ loader.cdn + '/npm/vue@3.2.41/dist/vue.global.prod.min.js'
139
159
  ];
140
160
  // --- 判断 ResizeObserver 是否存在 ---
141
161
  let ro = true;
@@ -161,7 +181,13 @@ export function launcher(boot: AbstractBoot): void {
161
181
  'dir': __dirname + '/',
162
182
  'after': after,
163
183
  'afterIgnore': new RegExp('^' + loader.cdn.replace(/\./g, '\\.')),
164
- 'map': map
184
+ 'map': map,
185
+ 'load': (url) => {
186
+ boot.onRuntimeFileLoad(url) as any;
187
+ },
188
+ 'loaded': (url, state) => {
189
+ boot.onRuntimeFileLoaded(url, state) as any;
190
+ }
165
191
  });
166
192
  const cg = loader.require('clickgo', files, {
167
193
  'dir': __dirname + '/',
@@ -190,7 +216,7 @@ export function launcher(boot: AbstractBoot): void {
190
216
  core.boot = boot;
191
217
  // --- 执行回调 ---
192
218
  await boot.main();
193
- })().catch(function() {
194
- return;
219
+ })().catch(function(e) {
220
+ console.log('launcher', e);
195
221
  });
196
222
  }