clickgo 3.1.15-dev → 3.1.16-dev2

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.
@@ -12,7 +12,8 @@
12
12
  "/clickgo/control/property",
13
13
  "/clickgo/control/table",
14
14
  "/clickgo/control/nav",
15
- "/clickgo/control/desc"
15
+ "/clickgo/control/desc",
16
+ "/clickgo/control/html"
16
17
  ],
17
18
  "style": "/package/global",
18
19
 
@@ -38,6 +39,8 @@
38
39
  "/form/control/form/form.css",
39
40
  "/form/control/form/form.js",
40
41
  "/form/control/form/form.xml",
42
+ "/form/control/html/html.js",
43
+ "/form/control/html/html.xml",
41
44
  "/form/control/img/img.xml",
42
45
  "/form/control/label/label.xml",
43
46
  "/form/control/layout/layout.xml",
@@ -1 +1 @@
1
- .buttons button{flex:3;height:30px}.buttons select{flex:1;height:30px}.tbuttons{padding:5px;background-color:rgba(255,255,255,.5)}.tbuttons button{width:24px;height:24px;margin-right:2px}img{width:16px;height:16px}
1
+ .buttons button{flex:3;height:30px}.buttons select{flex:1;height:30px}.tbuttons{padding:5px;background-color:rgba(255,255,255,.1)}.tbuttons button{width:24px;height:24px;margin-right:2px}img{width:16px;height:16px}
@@ -7,7 +7,7 @@
7
7
  }
8
8
  }
9
9
  .tbuttons {
10
- padding: 5px; background-color: rgba(255, 255, 255, .5);
10
+ padding: 5px; background-color: rgba(255, 255, 255, .1);
11
11
  button {
12
12
  width: 24px; height: 24px; margin-right: 2px;
13
13
  }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const clickgo = __importStar(require("clickgo"));
27
+ class default_1 extends clickgo.form.AbstractForm {
28
+ constructor() {
29
+ super(...arguments);
30
+ this.html = `<h1>Hello world!</h1>
31
+ <button>Button</button>
32
+ <h2>H2 title</h2>
33
+ <div>div</div>
34
+ <h3>H3 title</h3>
35
+ <input onclick="alert('alert')">
36
+ <ul>
37
+ <li class="test">li</li>
38
+ <li>li</li>
39
+ </ul>
40
+ <span>span</span>
41
+ <ol>
42
+ <li>li</li>
43
+ <li id="li">li</li>
44
+ </ol>
45
+ <script>alert('b');</script>
46
+ <style>li{background:red;}div{background:blue;}#li{background:yellow;}</style>`;
47
+ this.css = `div{background:blue;}.test{background:red;}#li{background:yellow;}`;
48
+ this.lcss = '';
49
+ this.rcss = '';
50
+ }
51
+ }
52
+ exports.default = default_1;
@@ -0,0 +1,12 @@
1
+ <form title="Html" width="400" height="500" padding="10">
2
+ <layout gutter="10" direction="v" style="flex: 1; width: 0;">
3
+ <layout gutter="10" style="flex: 1; height: 0;">
4
+ <html :html="html" :css="lcss" style="background: var(--g-plain-background); border: solid 1px var(--g-color); padding: 10px; flex: 1; width: 0;"></html>
5
+ <html :html="html" :css="rcss" style="background: var(--g-plain-background); border: solid 1px var(--g-color); padding: 10px; flex: 1; width: 0;"></html>
6
+ </layout>
7
+ <layout gutter="10">
8
+ <button style="height: 30px; flex: 1;" @click="lcss = lcss ? '' : css">Left {{lcss ? 'remove' : 'add'}} css</button>
9
+ <button style="height: 30px; flex: 1;" @click="rcss = rcss ? '' : css">Right {{rcss ? 'remove' : 'add'}} css</button>
10
+ </layout>
11
+ </layout>
12
+ </form>
@@ -1,4 +1,4 @@
1
- <panel direction="v" gutter="10" style="padding: 10px; border: solid 2px #000; border-color: #777 #DDD #DDD #777; background: #FFF;">
1
+ <panel direction="v" gutter="10" style="padding: 10px; border: solid 2px #000; border-color: #777 #DDD #DDD #777; background: var(--g-plain-background);">
2
2
  <label>Hello, test2!</label>
3
3
  <label>Panel ID: {{panelId}}</label>
4
4
  </panel>
@@ -1,5 +1,5 @@
1
- <form title="Scroll" width="400" min-width="300" height="400" min-height="390" padding="10" background="#FFF">
2
- <layout gutter="10" direction="v" style="flex: 1; width: 0;">
1
+ <form title="Scroll" width="400" min-width="300" height="400" min-height="390" padding="10">
2
+ <layout gutter="10" direction="v" style="flex: 1; width: 0; background: var(--g-plain-background);">
3
3
  <layout gutter="10" style="flex: 1; height: 0;">
4
4
  <layout gutter="10" direction="v" style="flex: 1;">
5
5
  <label>Offset: {{so1}}</label>
@@ -17,7 +17,7 @@
17
17
  <scroll :disabled="disabled" style="width: 30px;"></scroll>
18
18
  </layout>
19
19
  <scroll direction="h" :disabled="disabled" style="height: 30px;"></scroll>
20
- <layout style="border: solid 1px rgba(0, 0, 0, .3); flex: 1; height: 0;">
20
+ <layout style="border: solid 1px var(--g-plain-border-color); flex: 1; height: 0;">
21
21
  <flow v-model:scroll-top="so2" direction="v" @clientheight="c2 = $event" @scrollheight="sh2 = $event" style="line-height: 1.5; flex: 1;">
22
22
  <block style="padding: 10px;">
23
23
  <block>Length: {{sh2}}, Client: {{c2}}.</block>
@@ -42,6 +42,7 @@ const check_1 = __importDefault(require("./control/check/check"));
42
42
  const dialog_1 = __importDefault(require("./control/dialog/dialog"));
43
43
  const file_1 = __importDefault(require("./control/file/file"));
44
44
  const form_1 = __importDefault(require("./control/form/form"));
45
+ const html_1 = __importDefault(require("./control/html/html"));
45
46
  const layout_1 = __importDefault(require("./control/layout/layout"));
46
47
  const list_1 = __importDefault(require("./control/list/list"));
47
48
  const marquee_1 = __importDefault(require("./control/marquee/marquee"));
@@ -118,6 +119,10 @@ class default_1 extends clickgo.form.AbstractForm {
118
119
  frm = yield clickgo.form.create(form_1.default);
119
120
  break;
120
121
  }
122
+ case 'chtml': {
123
+ frm = yield clickgo.form.create(html_1.default);
124
+ break;
125
+ }
121
126
  case 'cvflow': {
122
127
  frm = yield clickgo.form.create(vflow_1.default);
123
128
  break;
@@ -30,6 +30,7 @@
30
30
  <button @click="openForm('cbox')">Box</button>
31
31
  <button @click="openForm('cmonaco')">Monaco</button>
32
32
  <button @click="openForm('cdesc')">Desc</button>
33
+ <button @click="openForm('chtml')">Html</button>
33
34
  </layout>
34
35
  </flow>
35
36
  <flow v-else-if="ntab === 'method'" class="inner" direction="v">
@@ -34,9 +34,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
34
34
  Object.defineProperty(exports, "__esModule", { value: true });
35
35
  const clickgo = __importStar(require("clickgo"));
36
36
  class default_1 extends clickgo.form.AbstractForm {
37
- get() {
37
+ get(isByterun = false) {
38
38
  return __awaiter(this, void 0, void 0, function* () {
39
- const f = yield clickgo.fs.getContent('/clickgo/theme/familiar.cgt');
39
+ const f = yield clickgo.fs.getContent('/clickgo/theme/' + (isByterun ? 'byterun.cgt' : 'familiar.cgt'));
40
40
  if (!f) {
41
41
  return null;
42
42
  }
@@ -73,14 +73,14 @@ class default_1 extends clickgo.form.AbstractForm {
73
73
  clear() {
74
74
  clickgo.theme.clear().catch((e) => { throw e; });
75
75
  }
76
- setGlobal() {
76
+ setGlobal(isByterun = false) {
77
77
  return __awaiter(this, void 0, void 0, function* () {
78
78
  const n = clickgo.form.notify({
79
79
  'title': 'Info',
80
80
  'content': 'Theme loading...',
81
81
  'type': 'info'
82
82
  });
83
- const t = yield this.get();
83
+ const t = yield this.get(isByterun);
84
84
  if (!t) {
85
85
  clickgo.form.hideNotify(n);
86
86
  return;
@@ -3,7 +3,8 @@
3
3
  <button @click="load" style="height: 30px;">Load "/clickgo/theme/familiar.cgt"</button>
4
4
  <button @click="remove" style="height: 30px;">remove('familiar')</button>
5
5
  <button @click="clear" style="height: 30px;">clear()</button>
6
- <button @click="setGlobal" style="height: 30px;">setGlobal "/clickgo/theme/familiar.cgt"</button>
6
+ <button @click="setGlobal(false)" style="height: 30px;">setGlobal "/clickgo/theme/familiar.cgt"</button>
7
+ <button @click="setGlobal(true)" style="height: 30px;">setGlobal "/clickgo/theme/byterun.cgt"</button>
7
8
  <button @click="clearGlobal" style="height: 30px;">clearGlobal()</button>
8
9
  </layout>
9
10
  </form>
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/dist/index.js CHANGED
@@ -95,7 +95,7 @@ function launcher(boot) {
95
95
  var _a;
96
96
  return __awaiter(this, void 0, void 0, function* () {
97
97
  const paths = [
98
- loader.cdn + '/npm/vue@3.2.41/dist/vue.global.prod.min.js'
98
+ loader.cdn + '/npm/vue@3.2.47/dist/vue.global.prod.min.js'
99
99
  ];
100
100
  let ro = true;
101
101
  if (!(window.ResizeObserver)) {
@@ -127,7 +127,7 @@ function launcher(boot) {
127
127
  'map': map
128
128
  })[0];
129
129
  try {
130
- const style = yield (yield fetch(__dirname + '/global.css')).text();
130
+ const style = yield (yield fetch(__dirname + '/global.css' + (__dirname.startsWith(loader.cdn) ? '' : '?' + Math.random().toString()))).text();
131
131
  (_a = document.getElementById('cg-global')) === null || _a === void 0 ? void 0 : _a.insertAdjacentHTML('afterbegin', style);
132
132
  }
133
133
  catch (_b) {
package/dist/index.ts CHANGED
@@ -161,7 +161,7 @@ export function launcher(boot: AbstractBoot): void {
161
161
  (async function() {
162
162
  // --- 通过标签加载库 ---
163
163
  const paths: string[] = [
164
- loader.cdn + '/npm/vue@3.2.41/dist/vue.global.prod.min.js'
164
+ loader.cdn + '/npm/vue@3.2.47/dist/vue.global.prod.min.js'
165
165
  ];
166
166
  // --- 判断 ResizeObserver 是否存在 ---
167
167
  let ro = true;
@@ -200,7 +200,7 @@ export function launcher(boot: AbstractBoot): void {
200
200
  })[0] as typeof import('../dist/clickgo');
201
201
  // --- 加载 clickgo 的 global css ---
202
202
  try {
203
- const style = await (await fetch(__dirname + '/global.css')).text();
203
+ const style = await (await fetch(__dirname + '/global.css' + (__dirname.startsWith(loader.cdn) ? '' : '?' + Math.random().toString()))).text();
204
204
  document.getElementById('cg-global')?.insertAdjacentHTML('afterbegin', style);
205
205
  }
206
206
  catch {
package/dist/lib/fs.js CHANGED
@@ -38,7 +38,7 @@ const task = __importStar(require("./task"));
38
38
  const form = __importStar(require("./form"));
39
39
  const core = __importStar(require("./core"));
40
40
  const native = __importStar(require("./native"));
41
- const clickgoFiles = ['/app/', '/app/demo/', '/app/demo/app.js', '/app/demo/config.json', '/app/demo/form/', '/app/demo/form/control/', '/app/demo/form/control/block/', '/app/demo/form/control/block/block.css', '/app/demo/form/control/block/block.xml', '/app/demo/form/control/box/', '/app/demo/form/control/box/box.js', '/app/demo/form/control/box/box.xml', '/app/demo/form/control/button/', '/app/demo/form/control/button/button.css', '/app/demo/form/control/button/button.js', '/app/demo/form/control/button/button.xml', '/app/demo/form/control/check/', '/app/demo/form/control/check/check.js', '/app/demo/form/control/check/check.xml', '/app/demo/form/control/desc/', '/app/demo/form/control/desc/desc.js', '/app/demo/form/control/desc/desc.xml', '/app/demo/form/control/dialog/', '/app/demo/form/control/dialog/dialog.js', '/app/demo/form/control/dialog/dialog.xml', '/app/demo/form/control/file/', '/app/demo/form/control/file/file.js', '/app/demo/form/control/file/file.xml', '/app/demo/form/control/flow/', '/app/demo/form/control/flow/flow.css', '/app/demo/form/control/flow/flow.js', '/app/demo/form/control/flow/flow.xml', '/app/demo/form/control/form/', '/app/demo/form/control/form/form.css', '/app/demo/form/control/form/form.js', '/app/demo/form/control/form/form.xml', '/app/demo/form/control/img/', '/app/demo/form/control/img/img.xml', '/app/demo/form/control/label/', '/app/demo/form/control/label/label.xml', '/app/demo/form/control/layout/', '/app/demo/form/control/layout/layout.js', '/app/demo/form/control/layout/layout.xml', '/app/demo/form/control/list/', '/app/demo/form/control/list/list.css', '/app/demo/form/control/list/list.js', '/app/demo/form/control/list/list.xml', '/app/demo/form/control/loading/', '/app/demo/form/control/loading/loading.xml', '/app/demo/form/control/marquee/', '/app/demo/form/control/marquee/marquee.js', '/app/demo/form/control/marquee/marquee.xml', '/app/demo/form/control/menu/', '/app/demo/form/control/menu/menu.js', '/app/demo/form/control/menu/menu.xml', '/app/demo/form/control/monaco/', '/app/demo/form/control/monaco/monaco.js', '/app/demo/form/control/monaco/monaco.xml', '/app/demo/form/control/nav/', '/app/demo/form/control/nav/nav.js', '/app/demo/form/control/nav/nav.xml', '/app/demo/form/control/panel/', '/app/demo/form/control/panel/panel.js', '/app/demo/form/control/panel/panel.xml', '/app/demo/form/control/panel/test1.js', '/app/demo/form/control/panel/test1.xml', '/app/demo/form/control/panel/test2.xml', '/app/demo/form/control/property/', '/app/demo/form/control/property/property.js', '/app/demo/form/control/property/property.xml', '/app/demo/form/control/radio/', '/app/demo/form/control/radio/radio.js', '/app/demo/form/control/radio/radio.xml', '/app/demo/form/control/scroll/', '/app/demo/form/control/scroll/scroll.js', '/app/demo/form/control/scroll/scroll.xml', '/app/demo/form/control/select/', '/app/demo/form/control/select/select.js', '/app/demo/form/control/select/select.xml', '/app/demo/form/control/tab/', '/app/demo/form/control/tab/tab.js', '/app/demo/form/control/tab/tab.xml', '/app/demo/form/control/table/', '/app/demo/form/control/table/table.js', '/app/demo/form/control/table/table.xml', '/app/demo/form/control/text/', '/app/demo/form/control/text/text.js', '/app/demo/form/control/text/text.xml', '/app/demo/form/control/vflow/', '/app/demo/form/control/vflow/vflow.css', '/app/demo/form/control/vflow/vflow.js', '/app/demo/form/control/vflow/vflow.xml', '/app/demo/form/event/', '/app/demo/form/event/form/', '/app/demo/form/event/form/form.css', '/app/demo/form/event/form/form.js', '/app/demo/form/event/form/form.xml', '/app/demo/form/event/other/', '/app/demo/form/event/other/other.js', '/app/demo/form/event/other/other.xml', '/app/demo/form/event/screen/', '/app/demo/form/event/screen/screen.js', '/app/demo/form/event/screen/screen.xml', '/app/demo/form/event/task/', '/app/demo/form/event/task/task.js', '/app/demo/form/event/task/task.xml', '/app/demo/form/main.css', '/app/demo/form/main.js', '/app/demo/form/main.xml', '/app/demo/form/method/', '/app/demo/form/method/aform/', '/app/demo/form/method/aform/aform.js', '/app/demo/form/method/aform/aform.xml', '/app/demo/form/method/aform/sd.js', '/app/demo/form/method/aform/sd.xml', '/app/demo/form/method/core/', '/app/demo/form/method/core/core.js', '/app/demo/form/method/core/core.xml', '/app/demo/form/method/dom/', '/app/demo/form/method/dom/dom.css', '/app/demo/form/method/dom/dom.js', '/app/demo/form/method/dom/dom.xml', '/app/demo/form/method/form/', '/app/demo/form/method/form/form.css', '/app/demo/form/method/form/form.js', '/app/demo/form/method/form/form.xml', '/app/demo/form/method/form/test.xml', '/app/demo/form/method/fs/', '/app/demo/form/method/fs/fs.js', '/app/demo/form/method/fs/fs.xml', '/app/demo/form/method/fs/text.js', '/app/demo/form/method/fs/text.xml', '/app/demo/form/method/native/', '/app/demo/form/method/native/native.js', '/app/demo/form/method/native/native.xml', '/app/demo/form/method/system/', '/app/demo/form/method/system/system.js', '/app/demo/form/method/system/system.xml', '/app/demo/form/method/task/', '/app/demo/form/method/task/locale1.json', '/app/demo/form/method/task/locale2.json', '/app/demo/form/method/task/task.js', '/app/demo/form/method/task/task.xml', '/app/demo/form/method/theme/', '/app/demo/form/method/theme/theme.js', '/app/demo/form/method/theme/theme.xml', '/app/demo/form/method/tool/', '/app/demo/form/method/tool/tool.js', '/app/demo/form/method/tool/tool.xml', '/app/demo/form/method/zip/', '/app/demo/form/method/zip/zip.js', '/app/demo/form/method/zip/zip.xml', '/app/demo/global.css', '/app/demo/res/', '/app/demo/res/icon.svg', '/app/demo/res/img.jpg', '/app/demo/res/r-1.svg', '/app/demo/res/r-2.svg', '/app/demo/res/sql.svg', '/app/demo/res/txt.svg', '/app/demo/res/zip.svg', '/app/task/', '/app/task/app.js', '/app/task/config.json', '/app/task/form/', '/app/task/form/bar/', '/app/task/form/bar/bar.js', '/app/task/form/bar/bar.xml', '/app/task/form/desktop/', '/app/task/form/desktop/desktop.xml', '/app/task/locale/', '/app/task/locale/en.json', '/app/task/locale/ja.json', '/app/task/locale/sc.json', '/app/task/locale/tc.json', '/clickgo.js', '/clickgo.ts', '/compcga.js', '/compcga.ts', '/control/', '/control/box.cgc', '/control/common.cgc', '/control/desc.cgc', '/control/form.cgc', '/control/monaco.cgc', '/control/nav.cgc', '/control/property.cgc', '/control/table.cgc', '/control/task.cgc', '/global.css', '/icon.png', '/index.js', '/index.ts', '/lib/', '/lib/control.js', '/lib/control.ts', '/lib/core.js', '/lib/core.ts', '/lib/dom.js', '/lib/dom.ts', '/lib/form.js', '/lib/form.ts', '/lib/fs.js', '/lib/fs.ts', '/lib/native.js', '/lib/native.ts', '/lib/task.js', '/lib/task.ts', '/lib/theme.js', '/lib/theme.ts', '/lib/tool.js', '/lib/tool.ts', '/lib/zip.js', '/lib/zip.ts', '/theme/', '/theme/familiar.cgt'];
41
+ const clickgoFiles = ['/app/', '/app/demo/', '/app/demo/app.js', '/app/demo/config.json', '/app/demo/form/', '/app/demo/form/control/', '/app/demo/form/control/block/', '/app/demo/form/control/block/block.css', '/app/demo/form/control/block/block.xml', '/app/demo/form/control/box/', '/app/demo/form/control/box/box.js', '/app/demo/form/control/box/box.xml', '/app/demo/form/control/button/', '/app/demo/form/control/button/button.css', '/app/demo/form/control/button/button.js', '/app/demo/form/control/button/button.xml', '/app/demo/form/control/check/', '/app/demo/form/control/check/check.js', '/app/demo/form/control/check/check.xml', '/app/demo/form/control/desc/', '/app/demo/form/control/desc/desc.js', '/app/demo/form/control/desc/desc.xml', '/app/demo/form/control/dialog/', '/app/demo/form/control/dialog/dialog.js', '/app/demo/form/control/dialog/dialog.xml', '/app/demo/form/control/file/', '/app/demo/form/control/file/file.js', '/app/demo/form/control/file/file.xml', '/app/demo/form/control/flow/', '/app/demo/form/control/flow/flow.css', '/app/demo/form/control/flow/flow.js', '/app/demo/form/control/flow/flow.xml', '/app/demo/form/control/form/', '/app/demo/form/control/form/form.css', '/app/demo/form/control/form/form.js', '/app/demo/form/control/form/form.xml', '/app/demo/form/control/html/', '/app/demo/form/control/html/html.js', '/app/demo/form/control/html/html.xml', '/app/demo/form/control/img/', '/app/demo/form/control/img/img.xml', '/app/demo/form/control/label/', '/app/demo/form/control/label/label.xml', '/app/demo/form/control/layout/', '/app/demo/form/control/layout/layout.js', '/app/demo/form/control/layout/layout.xml', '/app/demo/form/control/list/', '/app/demo/form/control/list/list.css', '/app/demo/form/control/list/list.js', '/app/demo/form/control/list/list.xml', '/app/demo/form/control/loading/', '/app/demo/form/control/loading/loading.xml', '/app/demo/form/control/marquee/', '/app/demo/form/control/marquee/marquee.js', '/app/demo/form/control/marquee/marquee.xml', '/app/demo/form/control/menu/', '/app/demo/form/control/menu/menu.js', '/app/demo/form/control/menu/menu.xml', '/app/demo/form/control/monaco/', '/app/demo/form/control/monaco/monaco.js', '/app/demo/form/control/monaco/monaco.xml', '/app/demo/form/control/nav/', '/app/demo/form/control/nav/nav.js', '/app/demo/form/control/nav/nav.xml', '/app/demo/form/control/panel/', '/app/demo/form/control/panel/panel.js', '/app/demo/form/control/panel/panel.xml', '/app/demo/form/control/panel/test1.js', '/app/demo/form/control/panel/test1.xml', '/app/demo/form/control/panel/test2.xml', '/app/demo/form/control/property/', '/app/demo/form/control/property/property.js', '/app/demo/form/control/property/property.xml', '/app/demo/form/control/radio/', '/app/demo/form/control/radio/radio.js', '/app/demo/form/control/radio/radio.xml', '/app/demo/form/control/scroll/', '/app/demo/form/control/scroll/scroll.js', '/app/demo/form/control/scroll/scroll.xml', '/app/demo/form/control/select/', '/app/demo/form/control/select/select.js', '/app/demo/form/control/select/select.xml', '/app/demo/form/control/tab/', '/app/demo/form/control/tab/tab.js', '/app/demo/form/control/tab/tab.xml', '/app/demo/form/control/table/', '/app/demo/form/control/table/table.js', '/app/demo/form/control/table/table.xml', '/app/demo/form/control/text/', '/app/demo/form/control/text/text.js', '/app/demo/form/control/text/text.xml', '/app/demo/form/control/vflow/', '/app/demo/form/control/vflow/vflow.css', '/app/demo/form/control/vflow/vflow.js', '/app/demo/form/control/vflow/vflow.xml', '/app/demo/form/event/', '/app/demo/form/event/form/', '/app/demo/form/event/form/form.css', '/app/demo/form/event/form/form.js', '/app/demo/form/event/form/form.xml', '/app/demo/form/event/other/', '/app/demo/form/event/other/other.js', '/app/demo/form/event/other/other.xml', '/app/demo/form/event/screen/', '/app/demo/form/event/screen/screen.js', '/app/demo/form/event/screen/screen.xml', '/app/demo/form/event/task/', '/app/demo/form/event/task/task.js', '/app/demo/form/event/task/task.xml', '/app/demo/form/main.css', '/app/demo/form/main.js', '/app/demo/form/main.xml', '/app/demo/form/method/', '/app/demo/form/method/aform/', '/app/demo/form/method/aform/aform.js', '/app/demo/form/method/aform/aform.xml', '/app/demo/form/method/aform/sd.js', '/app/demo/form/method/aform/sd.xml', '/app/demo/form/method/core/', '/app/demo/form/method/core/core.js', '/app/demo/form/method/core/core.xml', '/app/demo/form/method/dom/', '/app/demo/form/method/dom/dom.css', '/app/demo/form/method/dom/dom.js', '/app/demo/form/method/dom/dom.xml', '/app/demo/form/method/form/', '/app/demo/form/method/form/form.css', '/app/demo/form/method/form/form.js', '/app/demo/form/method/form/form.xml', '/app/demo/form/method/form/test.xml', '/app/demo/form/method/fs/', '/app/demo/form/method/fs/fs.js', '/app/demo/form/method/fs/fs.xml', '/app/demo/form/method/fs/text.js', '/app/demo/form/method/fs/text.xml', '/app/demo/form/method/native/', '/app/demo/form/method/native/native.js', '/app/demo/form/method/native/native.xml', '/app/demo/form/method/system/', '/app/demo/form/method/system/system.js', '/app/demo/form/method/system/system.xml', '/app/demo/form/method/task/', '/app/demo/form/method/task/locale1.json', '/app/demo/form/method/task/locale2.json', '/app/demo/form/method/task/task.js', '/app/demo/form/method/task/task.xml', '/app/demo/form/method/theme/', '/app/demo/form/method/theme/theme.js', '/app/demo/form/method/theme/theme.xml', '/app/demo/form/method/tool/', '/app/demo/form/method/tool/tool.js', '/app/demo/form/method/tool/tool.xml', '/app/demo/form/method/zip/', '/app/demo/form/method/zip/zip.js', '/app/demo/form/method/zip/zip.xml', '/app/demo/global.css', '/app/demo/res/', '/app/demo/res/icon.svg', '/app/demo/res/img.jpg', '/app/demo/res/r-1.svg', '/app/demo/res/r-2.svg', '/app/demo/res/sql.svg', '/app/demo/res/txt.svg', '/app/demo/res/zip.svg', '/app/task/', '/app/task/app.js', '/app/task/config.json', '/app/task/form/', '/app/task/form/bar/', '/app/task/form/bar/bar.js', '/app/task/form/bar/bar.xml', '/app/task/form/desktop/', '/app/task/form/desktop/desktop.xml', '/app/task/locale/', '/app/task/locale/en.json', '/app/task/locale/ja.json', '/app/task/locale/sc.json', '/app/task/locale/tc.json', '/clickgo.js', '/clickgo.ts', '/compcga.js', '/compcga.ts', '/control/', '/control/box.cgc', '/control/common.cgc', '/control/desc.cgc', '/control/form.cgc', '/control/html.cgc', '/control/monaco.cgc', '/control/nav.cgc', '/control/property.cgc', '/control/table.cgc', '/control/task.cgc', '/global.css', '/icon.png', '/index.js', '/index.ts', '/lib/', '/lib/control.js', '/lib/control.ts', '/lib/core.js', '/lib/core.ts', '/lib/dom.js', '/lib/dom.ts', '/lib/form.js', '/lib/form.ts', '/lib/fs.js', '/lib/fs.ts', '/lib/native.js', '/lib/native.ts', '/lib/task.js', '/lib/task.ts', '/lib/theme.js', '/lib/theme.ts', '/lib/tool.js', '/lib/tool.ts', '/lib/zip.js', '/lib/zip.ts', '/theme/', '/theme/byterun.cgt', '/theme/familiar.cgt'];
42
42
  const localeData = {
43
43
  'en': {
44
44
  'apply-unmount': 'Are you sure to unmount the "?" mount point?',
package/dist/lib/fs.ts CHANGED
@@ -12,7 +12,7 @@ import * as form from './form';
12
12
  import * as core from './core';
13
13
  import * as native from './native';
14
14
 
15
- const clickgoFiles = ['/app/', '/app/demo/', '/app/demo/app.js', '/app/demo/config.json', '/app/demo/form/', '/app/demo/form/control/', '/app/demo/form/control/block/', '/app/demo/form/control/block/block.css', '/app/demo/form/control/block/block.xml', '/app/demo/form/control/box/', '/app/demo/form/control/box/box.js', '/app/demo/form/control/box/box.xml', '/app/demo/form/control/button/', '/app/demo/form/control/button/button.css', '/app/demo/form/control/button/button.js', '/app/demo/form/control/button/button.xml', '/app/demo/form/control/check/', '/app/demo/form/control/check/check.js', '/app/demo/form/control/check/check.xml', '/app/demo/form/control/desc/', '/app/demo/form/control/desc/desc.js', '/app/demo/form/control/desc/desc.xml', '/app/demo/form/control/dialog/', '/app/demo/form/control/dialog/dialog.js', '/app/demo/form/control/dialog/dialog.xml', '/app/demo/form/control/file/', '/app/demo/form/control/file/file.js', '/app/demo/form/control/file/file.xml', '/app/demo/form/control/flow/', '/app/demo/form/control/flow/flow.css', '/app/demo/form/control/flow/flow.js', '/app/demo/form/control/flow/flow.xml', '/app/demo/form/control/form/', '/app/demo/form/control/form/form.css', '/app/demo/form/control/form/form.js', '/app/demo/form/control/form/form.xml', '/app/demo/form/control/img/', '/app/demo/form/control/img/img.xml', '/app/demo/form/control/label/', '/app/demo/form/control/label/label.xml', '/app/demo/form/control/layout/', '/app/demo/form/control/layout/layout.js', '/app/demo/form/control/layout/layout.xml', '/app/demo/form/control/list/', '/app/demo/form/control/list/list.css', '/app/demo/form/control/list/list.js', '/app/demo/form/control/list/list.xml', '/app/demo/form/control/loading/', '/app/demo/form/control/loading/loading.xml', '/app/demo/form/control/marquee/', '/app/demo/form/control/marquee/marquee.js', '/app/demo/form/control/marquee/marquee.xml', '/app/demo/form/control/menu/', '/app/demo/form/control/menu/menu.js', '/app/demo/form/control/menu/menu.xml', '/app/demo/form/control/monaco/', '/app/demo/form/control/monaco/monaco.js', '/app/demo/form/control/monaco/monaco.xml', '/app/demo/form/control/nav/', '/app/demo/form/control/nav/nav.js', '/app/demo/form/control/nav/nav.xml', '/app/demo/form/control/panel/', '/app/demo/form/control/panel/panel.js', '/app/demo/form/control/panel/panel.xml', '/app/demo/form/control/panel/test1.js', '/app/demo/form/control/panel/test1.xml', '/app/demo/form/control/panel/test2.xml', '/app/demo/form/control/property/', '/app/demo/form/control/property/property.js', '/app/demo/form/control/property/property.xml', '/app/demo/form/control/radio/', '/app/demo/form/control/radio/radio.js', '/app/demo/form/control/radio/radio.xml', '/app/demo/form/control/scroll/', '/app/demo/form/control/scroll/scroll.js', '/app/demo/form/control/scroll/scroll.xml', '/app/demo/form/control/select/', '/app/demo/form/control/select/select.js', '/app/demo/form/control/select/select.xml', '/app/demo/form/control/tab/', '/app/demo/form/control/tab/tab.js', '/app/demo/form/control/tab/tab.xml', '/app/demo/form/control/table/', '/app/demo/form/control/table/table.js', '/app/demo/form/control/table/table.xml', '/app/demo/form/control/text/', '/app/demo/form/control/text/text.js', '/app/demo/form/control/text/text.xml', '/app/demo/form/control/vflow/', '/app/demo/form/control/vflow/vflow.css', '/app/demo/form/control/vflow/vflow.js', '/app/demo/form/control/vflow/vflow.xml', '/app/demo/form/event/', '/app/demo/form/event/form/', '/app/demo/form/event/form/form.css', '/app/demo/form/event/form/form.js', '/app/demo/form/event/form/form.xml', '/app/demo/form/event/other/', '/app/demo/form/event/other/other.js', '/app/demo/form/event/other/other.xml', '/app/demo/form/event/screen/', '/app/demo/form/event/screen/screen.js', '/app/demo/form/event/screen/screen.xml', '/app/demo/form/event/task/', '/app/demo/form/event/task/task.js', '/app/demo/form/event/task/task.xml', '/app/demo/form/main.css', '/app/demo/form/main.js', '/app/demo/form/main.xml', '/app/demo/form/method/', '/app/demo/form/method/aform/', '/app/demo/form/method/aform/aform.js', '/app/demo/form/method/aform/aform.xml', '/app/demo/form/method/aform/sd.js', '/app/demo/form/method/aform/sd.xml', '/app/demo/form/method/core/', '/app/demo/form/method/core/core.js', '/app/demo/form/method/core/core.xml', '/app/demo/form/method/dom/', '/app/demo/form/method/dom/dom.css', '/app/demo/form/method/dom/dom.js', '/app/demo/form/method/dom/dom.xml', '/app/demo/form/method/form/', '/app/demo/form/method/form/form.css', '/app/demo/form/method/form/form.js', '/app/demo/form/method/form/form.xml', '/app/demo/form/method/form/test.xml', '/app/demo/form/method/fs/', '/app/demo/form/method/fs/fs.js', '/app/demo/form/method/fs/fs.xml', '/app/demo/form/method/fs/text.js', '/app/demo/form/method/fs/text.xml', '/app/demo/form/method/native/', '/app/demo/form/method/native/native.js', '/app/demo/form/method/native/native.xml', '/app/demo/form/method/system/', '/app/demo/form/method/system/system.js', '/app/demo/form/method/system/system.xml', '/app/demo/form/method/task/', '/app/demo/form/method/task/locale1.json', '/app/demo/form/method/task/locale2.json', '/app/demo/form/method/task/task.js', '/app/demo/form/method/task/task.xml', '/app/demo/form/method/theme/', '/app/demo/form/method/theme/theme.js', '/app/demo/form/method/theme/theme.xml', '/app/demo/form/method/tool/', '/app/demo/form/method/tool/tool.js', '/app/demo/form/method/tool/tool.xml', '/app/demo/form/method/zip/', '/app/demo/form/method/zip/zip.js', '/app/demo/form/method/zip/zip.xml', '/app/demo/global.css', '/app/demo/res/', '/app/demo/res/icon.svg', '/app/demo/res/img.jpg', '/app/demo/res/r-1.svg', '/app/demo/res/r-2.svg', '/app/demo/res/sql.svg', '/app/demo/res/txt.svg', '/app/demo/res/zip.svg', '/app/task/', '/app/task/app.js', '/app/task/config.json', '/app/task/form/', '/app/task/form/bar/', '/app/task/form/bar/bar.js', '/app/task/form/bar/bar.xml', '/app/task/form/desktop/', '/app/task/form/desktop/desktop.xml', '/app/task/locale/', '/app/task/locale/en.json', '/app/task/locale/ja.json', '/app/task/locale/sc.json', '/app/task/locale/tc.json', '/clickgo.js', '/clickgo.ts', '/compcga.js', '/compcga.ts', '/control/', '/control/box.cgc', '/control/common.cgc', '/control/desc.cgc', '/control/form.cgc', '/control/monaco.cgc', '/control/nav.cgc', '/control/property.cgc', '/control/table.cgc', '/control/task.cgc', '/global.css', '/icon.png', '/index.js', '/index.ts', '/lib/', '/lib/control.js', '/lib/control.ts', '/lib/core.js', '/lib/core.ts', '/lib/dom.js', '/lib/dom.ts', '/lib/form.js', '/lib/form.ts', '/lib/fs.js', '/lib/fs.ts', '/lib/native.js', '/lib/native.ts', '/lib/task.js', '/lib/task.ts', '/lib/theme.js', '/lib/theme.ts', '/lib/tool.js', '/lib/tool.ts', '/lib/zip.js', '/lib/zip.ts', '/theme/', '/theme/familiar.cgt'];
15
+ const clickgoFiles = ['/app/', '/app/demo/', '/app/demo/app.js', '/app/demo/config.json', '/app/demo/form/', '/app/demo/form/control/', '/app/demo/form/control/block/', '/app/demo/form/control/block/block.css', '/app/demo/form/control/block/block.xml', '/app/demo/form/control/box/', '/app/demo/form/control/box/box.js', '/app/demo/form/control/box/box.xml', '/app/demo/form/control/button/', '/app/demo/form/control/button/button.css', '/app/demo/form/control/button/button.js', '/app/demo/form/control/button/button.xml', '/app/demo/form/control/check/', '/app/demo/form/control/check/check.js', '/app/demo/form/control/check/check.xml', '/app/demo/form/control/desc/', '/app/demo/form/control/desc/desc.js', '/app/demo/form/control/desc/desc.xml', '/app/demo/form/control/dialog/', '/app/demo/form/control/dialog/dialog.js', '/app/demo/form/control/dialog/dialog.xml', '/app/demo/form/control/file/', '/app/demo/form/control/file/file.js', '/app/demo/form/control/file/file.xml', '/app/demo/form/control/flow/', '/app/demo/form/control/flow/flow.css', '/app/demo/form/control/flow/flow.js', '/app/demo/form/control/flow/flow.xml', '/app/demo/form/control/form/', '/app/demo/form/control/form/form.css', '/app/demo/form/control/form/form.js', '/app/demo/form/control/form/form.xml', '/app/demo/form/control/html/', '/app/demo/form/control/html/html.js', '/app/demo/form/control/html/html.xml', '/app/demo/form/control/img/', '/app/demo/form/control/img/img.xml', '/app/demo/form/control/label/', '/app/demo/form/control/label/label.xml', '/app/demo/form/control/layout/', '/app/demo/form/control/layout/layout.js', '/app/demo/form/control/layout/layout.xml', '/app/demo/form/control/list/', '/app/demo/form/control/list/list.css', '/app/demo/form/control/list/list.js', '/app/demo/form/control/list/list.xml', '/app/demo/form/control/loading/', '/app/demo/form/control/loading/loading.xml', '/app/demo/form/control/marquee/', '/app/demo/form/control/marquee/marquee.js', '/app/demo/form/control/marquee/marquee.xml', '/app/demo/form/control/menu/', '/app/demo/form/control/menu/menu.js', '/app/demo/form/control/menu/menu.xml', '/app/demo/form/control/monaco/', '/app/demo/form/control/monaco/monaco.js', '/app/demo/form/control/monaco/monaco.xml', '/app/demo/form/control/nav/', '/app/demo/form/control/nav/nav.js', '/app/demo/form/control/nav/nav.xml', '/app/demo/form/control/panel/', '/app/demo/form/control/panel/panel.js', '/app/demo/form/control/panel/panel.xml', '/app/demo/form/control/panel/test1.js', '/app/demo/form/control/panel/test1.xml', '/app/demo/form/control/panel/test2.xml', '/app/demo/form/control/property/', '/app/demo/form/control/property/property.js', '/app/demo/form/control/property/property.xml', '/app/demo/form/control/radio/', '/app/demo/form/control/radio/radio.js', '/app/demo/form/control/radio/radio.xml', '/app/demo/form/control/scroll/', '/app/demo/form/control/scroll/scroll.js', '/app/demo/form/control/scroll/scroll.xml', '/app/demo/form/control/select/', '/app/demo/form/control/select/select.js', '/app/demo/form/control/select/select.xml', '/app/demo/form/control/tab/', '/app/demo/form/control/tab/tab.js', '/app/demo/form/control/tab/tab.xml', '/app/demo/form/control/table/', '/app/demo/form/control/table/table.js', '/app/demo/form/control/table/table.xml', '/app/demo/form/control/text/', '/app/demo/form/control/text/text.js', '/app/demo/form/control/text/text.xml', '/app/demo/form/control/vflow/', '/app/demo/form/control/vflow/vflow.css', '/app/demo/form/control/vflow/vflow.js', '/app/demo/form/control/vflow/vflow.xml', '/app/demo/form/event/', '/app/demo/form/event/form/', '/app/demo/form/event/form/form.css', '/app/demo/form/event/form/form.js', '/app/demo/form/event/form/form.xml', '/app/demo/form/event/other/', '/app/demo/form/event/other/other.js', '/app/demo/form/event/other/other.xml', '/app/demo/form/event/screen/', '/app/demo/form/event/screen/screen.js', '/app/demo/form/event/screen/screen.xml', '/app/demo/form/event/task/', '/app/demo/form/event/task/task.js', '/app/demo/form/event/task/task.xml', '/app/demo/form/main.css', '/app/demo/form/main.js', '/app/demo/form/main.xml', '/app/demo/form/method/', '/app/demo/form/method/aform/', '/app/demo/form/method/aform/aform.js', '/app/demo/form/method/aform/aform.xml', '/app/demo/form/method/aform/sd.js', '/app/demo/form/method/aform/sd.xml', '/app/demo/form/method/core/', '/app/demo/form/method/core/core.js', '/app/demo/form/method/core/core.xml', '/app/demo/form/method/dom/', '/app/demo/form/method/dom/dom.css', '/app/demo/form/method/dom/dom.js', '/app/demo/form/method/dom/dom.xml', '/app/demo/form/method/form/', '/app/demo/form/method/form/form.css', '/app/demo/form/method/form/form.js', '/app/demo/form/method/form/form.xml', '/app/demo/form/method/form/test.xml', '/app/demo/form/method/fs/', '/app/demo/form/method/fs/fs.js', '/app/demo/form/method/fs/fs.xml', '/app/demo/form/method/fs/text.js', '/app/demo/form/method/fs/text.xml', '/app/demo/form/method/native/', '/app/demo/form/method/native/native.js', '/app/demo/form/method/native/native.xml', '/app/demo/form/method/system/', '/app/demo/form/method/system/system.js', '/app/demo/form/method/system/system.xml', '/app/demo/form/method/task/', '/app/demo/form/method/task/locale1.json', '/app/demo/form/method/task/locale2.json', '/app/demo/form/method/task/task.js', '/app/demo/form/method/task/task.xml', '/app/demo/form/method/theme/', '/app/demo/form/method/theme/theme.js', '/app/demo/form/method/theme/theme.xml', '/app/demo/form/method/tool/', '/app/demo/form/method/tool/tool.js', '/app/demo/form/method/tool/tool.xml', '/app/demo/form/method/zip/', '/app/demo/form/method/zip/zip.js', '/app/demo/form/method/zip/zip.xml', '/app/demo/global.css', '/app/demo/res/', '/app/demo/res/icon.svg', '/app/demo/res/img.jpg', '/app/demo/res/r-1.svg', '/app/demo/res/r-2.svg', '/app/demo/res/sql.svg', '/app/demo/res/txt.svg', '/app/demo/res/zip.svg', '/app/task/', '/app/task/app.js', '/app/task/config.json', '/app/task/form/', '/app/task/form/bar/', '/app/task/form/bar/bar.js', '/app/task/form/bar/bar.xml', '/app/task/form/desktop/', '/app/task/form/desktop/desktop.xml', '/app/task/locale/', '/app/task/locale/en.json', '/app/task/locale/ja.json', '/app/task/locale/sc.json', '/app/task/locale/tc.json', '/clickgo.js', '/clickgo.ts', '/compcga.js', '/compcga.ts', '/control/', '/control/box.cgc', '/control/common.cgc', '/control/desc.cgc', '/control/form.cgc', '/control/html.cgc', '/control/monaco.cgc', '/control/nav.cgc', '/control/property.cgc', '/control/table.cgc', '/control/task.cgc', '/global.css', '/icon.png', '/index.js', '/index.ts', '/lib/', '/lib/control.js', '/lib/control.ts', '/lib/core.js', '/lib/core.ts', '/lib/dom.js', '/lib/dom.ts', '/lib/form.js', '/lib/form.ts', '/lib/fs.js', '/lib/fs.ts', '/lib/native.js', '/lib/native.ts', '/lib/task.js', '/lib/task.ts', '/lib/theme.js', '/lib/theme.ts', '/lib/tool.js', '/lib/tool.ts', '/lib/zip.js', '/lib/zip.ts', '/theme/', '/theme/byterun.cgt', '/theme/familiar.cgt'];
16
16
 
17
17
  /** --- fs lib 用到的语言包 --- */
18
18
  const localeData: Record<string, {
package/dist/lib/task.js CHANGED
@@ -898,6 +898,18 @@ function run(url, opt = {}, ntid) {
898
898
  purify: function (text) {
899
899
  return tool.purify(text);
900
900
  },
901
+ match: function (str, regs) {
902
+ return tool.match(str, regs);
903
+ },
904
+ layoutAddTagClassAndReTagName: function (layout, retagname) {
905
+ return tool.layoutAddTagClassAndReTagName(layout, retagname);
906
+ },
907
+ layoutClassPrepend: function (layout, preps) {
908
+ return tool.layoutClassPrepend(layout, preps);
909
+ },
910
+ stylePrepend: function (style, prep = '') {
911
+ return tool.stylePrepend(style, prep);
912
+ },
901
913
  rand: function (min, max) {
902
914
  return tool.rand(min, max);
903
915
  },
package/dist/lib/task.ts CHANGED
@@ -1001,6 +1001,18 @@ export async function run(url: string | types.IApp, opt: types.ITaskRunOptions =
1001
1001
  purify: function(text: string): string {
1002
1002
  return tool.purify(text);
1003
1003
  },
1004
+ match: function(str: string, regs: RegExp[]): boolean {
1005
+ return tool.match(str, regs);
1006
+ },
1007
+ layoutAddTagClassAndReTagName: function(layout: string, retagname: boolean): string {
1008
+ return tool.layoutAddTagClassAndReTagName(layout, retagname);
1009
+ },
1010
+ layoutClassPrepend: function(layout: string, preps: string[]): string {
1011
+ return tool.layoutClassPrepend(layout, preps);
1012
+ },
1013
+ stylePrepend: function(style: string, prep: string = ''): { 'style': string; 'prep': string; } {
1014
+ return tool.stylePrepend(style, prep);
1015
+ },
1004
1016
  rand: function(min: number, max: number): number {
1005
1017
  return tool.rand(min, max);
1006
1018
  },
package/dist/lib/theme.js CHANGED
@@ -50,21 +50,24 @@ function read(blob) {
50
50
  }
51
51
  const config = JSON.parse(configContent);
52
52
  const files = {};
53
- for (const file of config.files) {
54
- const mime = tool.getMimeByPath(file);
53
+ const list = z.readDir('/', {
54
+ 'hasChildren': true
55
+ });
56
+ for (const file of list) {
57
+ const mime = tool.getMimeByPath(file.name);
55
58
  if (['txt', 'json', 'js', 'css', 'xml', 'html'].includes(mime.ext)) {
56
- const fab = yield z.getContent(file, 'string');
59
+ const fab = yield z.getContent(file.path + file.name, 'string');
57
60
  if (!fab) {
58
61
  continue;
59
62
  }
60
- files[file] = fab.replace(/^\ufeff/, '');
63
+ files[file.path + file.name] = fab.replace(/^\ufeff/, '');
61
64
  }
62
65
  else {
63
- const fab = yield z.getContent(file, 'arraybuffer');
66
+ const fab = yield z.getContent(file.path + file.name, 'arraybuffer');
64
67
  if (!fab) {
65
68
  continue;
66
69
  }
67
- files[file] = new Blob([fab], {
70
+ files[file.path + file.name] = new Blob([fab], {
68
71
  'type': mime.mime
69
72
  });
70
73
  }
@@ -102,8 +105,8 @@ function load(theme, taskId) {
102
105
  }
103
106
  style = tool.stylePrepend(style, `cg-theme-task${taskId}-`).style;
104
107
  style = yield tool.styleUrl2DataUrl(theme.config.style, style, theme.files);
105
- style = style.replace(/\[CGTMP-GLOBAL\] +::selection/g, `#cg-form-list > [data-task-id="${taskId}"] ::selection, #cg-pop-list > [class^="cg-theme-task${taskId}-"] ::selection`);
106
- style = style.replace(/\[CGTMP-GLOBAL\]/g, `#cg-form-list > [data-task-id="${taskId}"], #cg-pop-list > [class^="cg-theme-task${taskId}-"]`);
108
+ style = style.replace(/\[CGTMP-GLOBAL\] +::selection/g, `#cg-form-list > [data-task-id="${taskId}"] ::selection, #cg-pop-list > [data-task-id="${taskId}"] ::selection`);
109
+ style = style.replace(/\[CGTMP-GLOBAL\]/g, `#cg-form-list > [data-task-id="${taskId}"], #cg-pop-list > [data-task-id="${taskId}"]`);
107
110
  if (!t.customTheme) {
108
111
  if (!isGlobal) {
109
112
  t.customTheme = true;
package/dist/lib/theme.ts CHANGED
@@ -36,23 +36,26 @@ export async function read(blob: Blob): Promise<types.ITheme | false> {
36
36
  return false;
37
37
  }
38
38
  const config: types.IThemeConfig = JSON.parse(configContent);
39
- // --- 开始读取文件 ---
40
39
  const files: Record<string, Blob | string> = {};
41
- for (const file of config.files) {
42
- const mime = tool.getMimeByPath(file);
40
+ // --- 读取包文件 ---
41
+ const list = z.readDir('/', {
42
+ 'hasChildren': true
43
+ });
44
+ for (const file of list) {
45
+ const mime = tool.getMimeByPath(file.name);
43
46
  if (['txt', 'json', 'js', 'css', 'xml', 'html'].includes(mime.ext)) {
44
- const fab = await z.getContent(file, 'string');
47
+ const fab = await z.getContent(file.path + file.name, 'string');
45
48
  if (!fab) {
46
49
  continue;
47
50
  }
48
- files[file] = fab.replace(/^\ufeff/, '');
51
+ files[file.path + file.name] = fab.replace(/^\ufeff/, '');
49
52
  }
50
53
  else {
51
- const fab = await z.getContent(file, 'arraybuffer');
54
+ const fab = await z.getContent(file.path + file.name, 'arraybuffer');
52
55
  if (!fab) {
53
56
  continue;
54
57
  }
55
- files[file] = new Blob([fab], {
58
+ files[file.path + file.name] = new Blob([fab], {
56
59
  'type': mime.mime
57
60
  });
58
61
  }
@@ -100,8 +103,8 @@ export async function load(theme?: types.ITheme, taskId?: number): Promise<boole
100
103
  style = tool.stylePrepend(style, `cg-theme-task${taskId}-`).style;
101
104
  style = await tool.styleUrl2DataUrl(theme.config.style, style, theme.files);
102
105
  // --- 替换 [CGTMP-GLOBAL] ---
103
- style = style.replace(/\[CGTMP-GLOBAL\] +::selection/g, `#cg-form-list > [data-task-id="${taskId}"] ::selection, #cg-pop-list > [class^="cg-theme-task${taskId}-"] ::selection`);
104
- style = style.replace(/\[CGTMP-GLOBAL\]/g, `#cg-form-list > [data-task-id="${taskId}"], #cg-pop-list > [class^="cg-theme-task${taskId}-"]`);
106
+ style = style.replace(/\[CGTMP-GLOBAL\] +::selection/g, `#cg-form-list > [data-task-id="${taskId}"] ::selection, #cg-pop-list > [data-task-id="${taskId}"] ::selection`);
107
+ style = style.replace(/\[CGTMP-GLOBAL\]/g, `#cg-form-list > [data-task-id="${taskId}"], #cg-pop-list > [data-task-id="${taskId}"]`);
105
108
  if (!t.customTheme) {
106
109
  // --- 如果当前 task 不是自定主题 ---
107
110
  if (!isGlobal) {
package/dist/lib/tool.js CHANGED
@@ -254,7 +254,7 @@ function layoutClassPrepend(layout, preps) {
254
254
  resultList.push(prep + item);
255
255
  }
256
256
  }
257
- return ` class='${resultList.join(' ')}'`;
257
+ return ` class="${resultList.join(' ')}"`;
258
258
  }).replace(/ :class=(["']).+?>/gi, function (t, sp) {
259
259
  return t.replace(new RegExp(` :class=${sp}(.+?)${sp}`, 'gi'), function (t, t1) {
260
260
  t1 = t1.trim();
@@ -277,7 +277,7 @@ function layoutClassPrepend(layout, preps) {
277
277
  }
278
278
  return ` :class="${t1}"`;
279
279
  });
280
- });
280
+ }).replace(/ id=(["'])/gi, ' id=$1' + preps[0]);
281
281
  }
282
282
  exports.layoutClassPrepend = layoutClassPrepend;
283
283
  function eventsAttrWrap(layout) {
package/dist/lib/tool.ts CHANGED
@@ -325,7 +325,7 @@ function layoutClassPrependObject(object: string): string {
325
325
  }) + '}';
326
326
  }
327
327
  /**
328
- * --- 给 class 增加 scope 的随机前缀 ---
328
+ * --- 给 class 增加 scope 的随机前缀,给 id 新增前缀 ---
329
329
  * @param layout layout
330
330
  * @param preps 前置标识符列表,特殊字符串 scope 会被替换为随机前缀
331
331
  */
@@ -340,7 +340,7 @@ export function layoutClassPrepend(layout: string, preps: string[]): string {
340
340
  resultList.push(prep + item);
341
341
  }
342
342
  }
343
- return ` class='${resultList.join(' ')}'`;
343
+ return ` class="${resultList.join(' ')}"`;
344
344
  }).replace(/ :class=(["']).+?>/gi, function(t, sp) {
345
345
  return t.replace(new RegExp(` :class=${sp}(.+?)${sp}`, 'gi'), function(t, t1: string) {
346
346
  // --- t1 为 [] 或 {} ---
@@ -366,7 +366,7 @@ export function layoutClassPrepend(layout: string, preps: string[]): string {
366
366
  }
367
367
  return ` :class="${t1}"`;
368
368
  });
369
- });
369
+ }).replace(/ id=(["'])/gi, ' id=$1' + preps[0]);
370
370
  }
371
371
 
372
372
  /**
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clickgo",
3
- "version": "3.1.15-dev",
3
+ "version": "3.1.16-dev2",
4
4
  "description": "Background interface, software interface, mobile phone APP interface operation library.",
5
5
  "keywords": [
6
6
  "deskrt",