clickgo 3.1.2-dev11 → 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 (103) hide show
  1. package/dist/app/demo/app.js +0 -73
  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 +161 -5
  41. package/dist/app/demo/form/main.xml +36 -35
  42. package/dist/app/demo/form/method/aform/aform.xml +3 -2
  43. package/dist/app/demo/form/method/core/core.js +11 -8
  44. package/dist/app/demo/form/method/core/core.xml +2 -1
  45. package/dist/app/demo/form/method/dom/dom.js +91 -99
  46. package/dist/app/demo/form/method/dom/dom.xml +6 -7
  47. package/dist/app/demo/form/method/form/form.js +8 -8
  48. package/dist/app/demo/form/method/form/form.xml +4 -4
  49. package/dist/app/demo/form/method/fs/fs.js +34 -33
  50. package/dist/app/demo/form/method/fs/fs.xml +1 -1
  51. package/dist/app/demo/form/method/fs/text.js +12 -12
  52. package/dist/app/demo/form/method/native/native.js +50 -0
  53. package/dist/app/demo/form/method/native/native.xml +12 -0
  54. package/dist/app/demo/form/method/system/system.js +50 -0
  55. package/dist/app/demo/form/method/system/system.xml +11 -0
  56. package/dist/app/demo/form/method/task/task.js +59 -61
  57. package/dist/app/demo/form/method/task/task.xml +4 -6
  58. package/dist/app/demo/form/method/theme/theme.js +14 -14
  59. package/dist/app/demo/form/method/tool/tool.js +29 -28
  60. package/dist/app/demo/form/method/tool/tool.xml +3 -3
  61. package/dist/app/demo/form/method/zip/zip.js +46 -41
  62. package/dist/app/demo/form/method/zip/zip.xml +1 -1
  63. package/dist/app/task/app.js +0 -25
  64. package/dist/app/task/config.json +29 -0
  65. package/dist/app/task/form/bar/bar.js +1 -1
  66. package/dist/app/task/form/bar/bar.xml +1 -1
  67. package/dist/clickgo.js +1 -1
  68. package/dist/clickgo.ts +1 -1
  69. package/dist/control/common.cgc +0 -0
  70. package/dist/control/form.cgc +0 -0
  71. package/dist/control/monaco.cgc +0 -0
  72. package/dist/control/property.cgc +0 -0
  73. package/dist/control/task.cgc +0 -0
  74. package/dist/global.css +1 -1
  75. package/dist/index.js +3 -3
  76. package/dist/index.ts +3 -3
  77. package/dist/lib/control.js +70 -104
  78. package/dist/lib/control.ts +97 -123
  79. package/dist/lib/core.js +108 -252
  80. package/dist/lib/core.ts +122 -268
  81. package/dist/lib/dom.js +564 -483
  82. package/dist/lib/dom.ts +703 -546
  83. package/dist/lib/form.js +146 -138
  84. package/dist/lib/form.ts +108 -86
  85. package/dist/lib/fs.js +1 -1
  86. package/dist/lib/fs.ts +1 -1
  87. package/dist/lib/native.js +135 -8
  88. package/dist/lib/native.ts +175 -11
  89. package/dist/lib/task.js +294 -158
  90. package/dist/lib/task.ts +326 -172
  91. package/dist/lib/tool.js +48 -1
  92. package/dist/lib/tool.ts +61 -0
  93. package/dist/lib/zip.ts +2 -0
  94. package/dist/theme/familiar.cgt +0 -0
  95. package/package.json +1 -1
  96. package/types/index.d.ts +23 -24
  97. package/dist/app/demo/form/control/greatview/greatview.js +0 -92
  98. package/dist/app/demo/form/control/overflow/overflow.js +0 -70
  99. package/dist/app/demo/form/control/overflow/overflow.xml +0 -98
  100. package/dist/app/demo/form/control/view/view.css +0 -1
  101. package/dist/app/demo/form/control/view/view.js +0 -73
  102. package/dist/app/demo/form/control/view/view.scss +0 -18
  103. package/dist/app/demo/form/control/view/view.xml +0 -94
@@ -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,7 +75,7 @@ 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;
@@ -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,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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.0.0';
4
+ const version = '3.1.3';
5
5
  function getVersion() {
6
6
  return version;
7
7
  }
package/dist/clickgo.ts CHANGED
@@ -13,7 +13,7 @@
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
  }
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;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: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
@@ -92,7 +92,7 @@ function launcher(boot) {
92
92
  var _a;
93
93
  return __awaiter(this, void 0, void 0, function* () {
94
94
  const paths = [
95
- 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'
96
96
  ];
97
97
  let ro = true;
98
98
  if (!(window.ResizeObserver)) {
@@ -145,8 +145,8 @@ function launcher(boot) {
145
145
  exports.core.boot = boot;
146
146
  yield boot.main();
147
147
  });
148
- })().catch(function () {
149
- return;
148
+ })().catch(function (e) {
149
+ console.log('launcher', e);
150
150
  });
151
151
  }
152
152
  exports.launcher = launcher;
package/dist/index.ts CHANGED
@@ -155,7 +155,7 @@ export function launcher(boot: AbstractBoot): void {
155
155
  (async function() {
156
156
  // --- 通过标签加载库 ---
157
157
  const paths: string[] = [
158
- 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'
159
159
  ];
160
160
  // --- 判断 ResizeObserver 是否存在 ---
161
161
  let ro = true;
@@ -216,7 +216,7 @@ export function launcher(boot: AbstractBoot): void {
216
216
  core.boot = boot;
217
217
  // --- 执行回调 ---
218
218
  await boot.main();
219
- })().catch(function() {
220
- return;
219
+ })().catch(function(e) {
220
+ console.log('launcher', e);
221
221
  });
222
222
  }
@@ -20,6 +20,7 @@ const fs = require("./fs");
20
20
  class AbstractControl {
21
21
  constructor() {
22
22
  this.props = {};
23
+ this.slots = {};
23
24
  }
24
25
  get filename() {
25
26
  return '';
@@ -85,33 +86,32 @@ class AbstractControl {
85
86
  }
86
87
  core.trigger(name, this.taskId, this.formId, param1, param2);
87
88
  }
89
+ get propBoolean() {
90
+ return (name) => {
91
+ return tool.getBoolean(this.props[name]);
92
+ };
93
+ }
94
+ get propNumber() {
95
+ return (name) => {
96
+ return tool.getNumber(this.props[name]);
97
+ };
98
+ }
99
+ get propInt() {
100
+ return (name) => {
101
+ return Math.round(this.propNumber(name));
102
+ };
103
+ }
104
+ get propArray() {
105
+ return (name) => {
106
+ return tool.getArray(this.props[name]);
107
+ };
108
+ }
88
109
  get element() {
89
110
  return this.$el;
90
111
  }
91
112
  emit(name, ...v) {
92
113
  this.$emit(name, ...v);
93
114
  }
94
- get slots() {
95
- return (name = 'default') => {
96
- const d = this.$slots[name];
97
- if (!d) {
98
- return [];
99
- }
100
- const slots = [];
101
- const list = d();
102
- for (const item of list) {
103
- if (typeof item.type === 'symbol') {
104
- for (const item2 of item.children) {
105
- slots.push(item2);
106
- }
107
- }
108
- else {
109
- slots.push(item);
110
- }
111
- }
112
- return slots;
113
- };
114
- }
115
115
  get parent() {
116
116
  return this.$parent;
117
117
  }
@@ -162,92 +162,56 @@ function read(blob) {
162
162
  return false;
163
163
  }
164
164
  const controlPkg = {};
165
- let controlProcessed = 0;
166
- const controls = z.readDir();
167
- yield new Promise(function (resolve) {
168
- const controlCb = function () {
169
- ++controlProcessed;
170
- if (controlProcessed < controls.length) {
171
- return;
172
- }
173
- resolve();
165
+ const list = z.readDir('/');
166
+ for (const sub of list) {
167
+ if (sub.isFile) {
168
+ continue;
169
+ }
170
+ const configContent = yield z.getContent('/' + sub.name + '/config.json');
171
+ if (!configContent) {
172
+ continue;
173
+ }
174
+ const config = JSON.parse(configContent);
175
+ controlPkg[config.name] = {
176
+ 'type': 'control',
177
+ 'config': config,
178
+ 'files': {}
174
179
  };
175
- for (const control of controls) {
176
- if (control.isFile) {
177
- controlCb();
178
- continue;
180
+ const list = z.readDir('/' + sub.name + '/', {
181
+ 'hasChildren': true
182
+ });
183
+ for (const file of list) {
184
+ const pre = file.path.slice(config.name.length + 1);
185
+ const mime = tool.getMimeByPath(file.name);
186
+ if (['txt', 'json', 'js', 'css', 'xml', 'html'].includes(mime.ext)) {
187
+ const fab = yield z.getContent(file.path + file.name, 'string');
188
+ if (!fab) {
189
+ continue;
190
+ }
191
+ controlPkg[config.name].files[pre + file.name] = fab.replace(/^\ufeff/, '');
179
192
  }
180
- z.getContent('/' + control.name + '/config.json').then(function (configContent) {
181
- return __awaiter(this, void 0, void 0, function* () {
182
- if (!configContent) {
183
- controlCb();
184
- return;
185
- }
186
- const config = JSON.parse(configContent);
187
- const files = {};
188
- const filesLength = Object.keys(config.files).length;
189
- let fileLoadedLength = 0;
190
- yield new Promise(function (resolve) {
191
- const loadedCb = function () {
192
- ++fileLoadedLength;
193
- if (fileLoadedLength < filesLength) {
194
- return;
195
- }
196
- resolve();
197
- };
198
- for (const file of config.files) {
199
- const mime = tool.getMimeByPath(file);
200
- if (['txt', 'json', 'js', 'css', 'xml', 'html'].includes(mime.ext)) {
201
- z.getContent('/' + control.name + file, 'string').then(function (fab) {
202
- if (!fab) {
203
- loadedCb();
204
- return;
205
- }
206
- files[file] = fab.replace(/^\ufeff/, '');
207
- loadedCb();
208
- }).catch(function () {
209
- loadedCb();
210
- });
211
- }
212
- else {
213
- z.getContent('/' + control.name + file, 'arraybuffer').then(function (fab) {
214
- if (!fab) {
215
- loadedCb();
216
- return;
217
- }
218
- files[file] = new Blob([fab], {
219
- 'type': mime.mime
220
- });
221
- loadedCb();
222
- }).catch(function () {
223
- loadedCb();
224
- });
225
- }
226
- }
227
- });
228
- controlPkg[control.name] = {
229
- 'type': 'control',
230
- 'config': config,
231
- 'files': files
232
- };
233
- controlCb();
193
+ else {
194
+ const fab = yield z.getContent(file.path + file.name, 'arraybuffer');
195
+ if (!fab) {
196
+ continue;
197
+ }
198
+ controlPkg[config.name].files[pre + file.name] = new Blob([fab], {
199
+ 'type': mime.mime
234
200
  });
235
- }).catch(function () {
236
- controlCb();
237
- });
201
+ }
238
202
  }
239
- });
203
+ }
240
204
  return controlPkg;
241
205
  });
242
206
  }
243
207
  exports.read = read;
244
- function init(taskId) {
208
+ function init(taskId, invoke) {
245
209
  return __awaiter(this, void 0, void 0, function* () {
246
210
  const t = task.list[taskId];
247
211
  if (!t) {
248
- return false;
212
+ return -1;
249
213
  }
250
- for (let path of t.config.controls) {
214
+ for (let path of t.app.config.controls) {
251
215
  if (!path.endsWith('.cgc')) {
252
216
  path += '.cgc';
253
217
  }
@@ -276,7 +240,7 @@ function init(taskId) {
276
240
  };
277
241
  t.controls[name].layout = item.files[item.config.layout + '.html'];
278
242
  if (t.controls[name].layout === undefined) {
279
- return false;
243
+ return -2;
280
244
  }
281
245
  t.controls[name].layout = t.controls[name].layout.replace(/^(<[a-zA-Z0-9-]+)( |>)/, '$1 data-cg-control-' + name + '$2');
282
246
  const style = item.files[item.config.style + '.css'];
@@ -299,6 +263,9 @@ function init(taskId) {
299
263
  });
300
264
  }
301
265
  t.controls[name].layout = tool.eventsAttrWrap(t.controls[name].layout);
266
+ if (t.controls[name].layout.includes('<teleport')) {
267
+ t.controls[name].layout = tool.teleportGlue(t.controls[name].layout, '{{{formId}}}');
268
+ }
302
269
  let cls;
303
270
  if (item.files[item.config.code + '.js']) {
304
271
  item.files['/invoke/clickgo.js'] = `module.exports = invokeClickgo;`;
@@ -306,7 +273,7 @@ function init(taskId) {
306
273
  try {
307
274
  expo = loader.require(item.config.code, item.files, {
308
275
  'dir': '/',
309
- 'invoke': t.invoke,
276
+ 'invoke': invoke,
310
277
  'preprocess': function (code, path) {
311
278
  const exec = /eval\W/.exec(code);
312
279
  if (exec) {
@@ -329,12 +296,12 @@ function init(taskId) {
329
296
  }
330
297
  catch (e) {
331
298
  core.trigger('error', taskId, 0, e, e.message + '(-4)');
332
- return false;
299
+ return -3;
333
300
  }
334
301
  if (!(expo === null || expo === void 0 ? void 0 : expo.default)) {
335
302
  const msg = '"default" not found on "' + item.config.code + '" of "' + name + '" control.';
336
303
  core.trigger('error', taskId, 0, new Error(msg), msg);
337
- return false;
304
+ return -4;
338
305
  }
339
306
  cls = new expo.default();
340
307
  }
@@ -397,13 +364,11 @@ function init(taskId) {
397
364
  'content': 'Control failed to load.\nTask id: ' + t.id.toString() + '\nPath: ' + path,
398
365
  'type': 'danger'
399
366
  });
400
- return false;
367
+ return -5;
401
368
  }
402
369
  }
403
370
  }
404
- t.invoke = undefined;
405
- delete t.invoke;
406
- return true;
371
+ return 1;
407
372
  });
408
373
  }
409
374
  exports.init = init;
@@ -441,7 +406,7 @@ function buildComponents(taskId, formId, path) {
441
406
  }
442
407
  };
443
408
  components['cg-' + name] = {
444
- 'template': control.layout,
409
+ 'template': control.layout.replace(/{{{formId}}}/g, formId.toString()),
445
410
  'props': control.props,
446
411
  'data': function () {
447
412
  const data = tool.clone(control.data);
@@ -455,6 +420,7 @@ function buildComponents(taskId, formId, path) {
455
420
  beforeCreate: control.methods.onBeforeCreate,
456
421
  created: function () {
457
422
  this.props = this.$props;
423
+ this.slots = this.$slots;
458
424
  this.access = tool.clone(control.access);
459
425
  this.onCreated();
460
426
  },