clickgo 3.6.6 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/lib/form.js CHANGED
@@ -32,7 +32,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
32
32
  });
33
33
  };
34
34
  Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.hideLauncher = exports.showLauncher = exports.flash = exports.confirm = exports.dialog = exports.create = exports.createPanel = exports.removePanel = exports.remove = exports.doFocusAndPopEvent = exports.hidePop = exports.showPop = exports.removeFromPop = exports.appendToPop = exports.hideNotify = exports.notifyProgress = exports.notify = exports.hideDrag = exports.moveDrag = exports.showDrag = exports.hideRectangle = exports.showRectangle = exports.moveRectangle = exports.showCircular = exports.getRectByBorder = exports.getMaxZIndexID = exports.changeFocus = exports.setActivePanel = exports.removeActivePanel = exports.getActivePanel = exports.activePanels = exports.getFocus = exports.getList = exports.send = exports.get = exports.getTaskId = exports.refreshMaxPosition = exports.bindDrag = exports.bindResize = exports.close = exports.max = exports.min = exports.superConfirm = exports.elements = exports.launcherRoot = exports.simpleSystemTaskRoot = exports.AbstractForm = exports.AbstractPanel = void 0;
35
+ exports.showLauncher = exports.flash = exports.confirm = exports.dialog = exports.create = exports.createPanel = exports.removePanel = exports.remove = exports.doFocusAndPopEvent = exports.hidePop = exports.showPop = exports.removeFromPop = exports.appendToPop = exports.hideNotify = exports.notifyProgress = exports.notify = exports.hideDrag = exports.moveDrag = exports.showDrag = exports.hideRectangle = exports.showRectangle = exports.moveRectangle = exports.showCircular = exports.getRectByBorder = exports.getMaxZIndexID = exports.changeFocus = exports.hashBack = exports.getHash = exports.hash = exports.setActivePanel = exports.removeActivePanel = exports.getActivePanel = exports.activePanels = exports.getFocus = exports.getList = exports.send = exports.get = exports.getTaskId = exports.refreshMaxPosition = exports.bindDrag = exports.bindResize = exports.close = exports.max = exports.min = exports.superConfirm = exports.elements = exports.launcherRoot = exports.simpleSystemTaskRoot = exports.AbstractForm = exports.AbstractPanel = void 0;
36
+ exports.hideLauncher = void 0;
36
37
  const clickgo = __importStar(require("../clickgo"));
37
38
  const core = __importStar(require("./core"));
38
39
  const task = __importStar(require("./task"));
@@ -274,6 +275,11 @@ class AbstractForm extends AbstractCommon {
274
275
  this._firstShow = true;
275
276
  this.dialogResult = '';
276
277
  }
278
+ get formHash() {
279
+ return '';
280
+ }
281
+ set formHash(v) {
282
+ }
277
283
  get topMost() {
278
284
  return false;
279
285
  }
@@ -297,6 +303,21 @@ class AbstractForm extends AbstractCommon {
297
303
  }
298
304
  set showInSystemTask(v) {
299
305
  }
306
+ formHashBack() {
307
+ const v = this;
308
+ if (!v.$data._historyHash.length) {
309
+ if (v.$data._formHash) {
310
+ v.$data._formHash = '';
311
+ core.trigger('formHashChange', this.taskId, this.formId, '');
312
+ return;
313
+ }
314
+ return;
315
+ }
316
+ const parent = v.$data._historyHash[v.$data._historyHash.length - 1];
317
+ v.$data._formHash = parent;
318
+ v.$data._historyHash.splice(-1);
319
+ core.trigger('formHashChange', this.taskId, this.formId, parent);
320
+ }
300
321
  show() {
301
322
  const v = this;
302
323
  if (this._firstShow) {
@@ -381,6 +402,9 @@ class AbstractForm extends AbstractCommon {
381
402
  onFormShowInSystemTaskChange() {
382
403
  return;
383
404
  }
405
+ onFormHashChange() {
406
+ return;
407
+ }
384
408
  onTaskStarted() {
385
409
  return;
386
410
  }
@@ -925,6 +949,56 @@ function setActivePanel(panelId, formId, taskId) {
925
949
  return true;
926
950
  }
927
951
  exports.setActivePanel = setActivePanel;
952
+ function hash(hash, formId) {
953
+ const taskId = getTaskId(formId);
954
+ if (taskId === 0) {
955
+ return false;
956
+ }
957
+ const t = task.list[taskId];
958
+ if (!t) {
959
+ return false;
960
+ }
961
+ const item = task.list[taskId].forms[formId];
962
+ if (!item) {
963
+ return false;
964
+ }
965
+ item.vroot.formHash = hash;
966
+ return true;
967
+ }
968
+ exports.hash = hash;
969
+ function getHash(formId) {
970
+ const taskId = getTaskId(formId);
971
+ if (taskId === 0) {
972
+ return '';
973
+ }
974
+ const t = task.list[taskId];
975
+ if (!t) {
976
+ return '';
977
+ }
978
+ const item = task.list[taskId].forms[formId];
979
+ if (!item) {
980
+ return '';
981
+ }
982
+ return item.vroot.$data._formHash;
983
+ }
984
+ exports.getHash = getHash;
985
+ function hashBack(formId) {
986
+ const taskId = getTaskId(formId);
987
+ if (taskId === 0) {
988
+ return false;
989
+ }
990
+ const t = task.list[taskId];
991
+ if (!t) {
992
+ return false;
993
+ }
994
+ const item = task.list[taskId].forms[formId];
995
+ if (!item) {
996
+ return false;
997
+ }
998
+ item.vroot.formHashBack();
999
+ return true;
1000
+ }
1001
+ exports.hashBack = hashBack;
928
1002
  function changeFocus(formId = 0) {
929
1003
  var _a;
930
1004
  if (typeof formId === 'string') {
@@ -2046,24 +2120,19 @@ function create(cls, data, opt = {}, taskId) {
2046
2120
  return this._bottomMost;
2047
2121
  },
2048
2122
  set: function (v) {
2049
- const form = t.forms[formId];
2050
- if (!form) {
2051
- return;
2052
- }
2053
2123
  if (v) {
2054
- form.vroot.$data._bottomMost = true;
2055
- form.vroot.$el.dataset.cgBottomMost = '';
2056
- if (form.vroot.$data._topMost) {
2057
- form.vroot.$data._topMost = false;
2124
+ this._bottomMost = true;
2125
+ this.$el.dataset.cgBottomMost = '';
2126
+ if (this._topMost) {
2127
+ this._topMost = false;
2058
2128
  }
2059
- form.vroot.$refs.form.$data.zIndex = ++info.bottomLastZIndex;
2129
+ this.$refs.form.$data.zIndex = ++info.bottomLastZIndex;
2060
2130
  }
2061
2131
  else {
2062
- form.vroot.$data._bottomMost = false;
2063
- form.vroot.$el.removeAttribute('data-cg-bottom-most');
2064
- form.vroot.$refs.form.$data.zIndex = ++info.lastZIndex;
2132
+ this._bottomMost = false;
2133
+ this.$el.removeAttribute('data-cg-bottom-most');
2134
+ this.$refs.form.$data.zIndex = ++info.lastZIndex;
2065
2135
  }
2066
- return;
2067
2136
  }
2068
2137
  };
2069
2138
  idata._topMost = false;
@@ -2072,28 +2141,40 @@ function create(cls, data, opt = {}, taskId) {
2072
2141
  return this._topMost;
2073
2142
  },
2074
2143
  set: function (v) {
2075
- const form = t.forms[formId];
2076
- if (!form) {
2077
- return;
2078
- }
2079
2144
  if (v) {
2080
- form.vroot.$data._topMost = true;
2081
- if (form.vroot.$data._bottomMost) {
2082
- form.vroot.$data._bottomMost = false;
2083
- form.vroot.$el.removeAttribute('data-cg-bottom-most');
2145
+ this._topMost = true;
2146
+ if (this._bottomMost) {
2147
+ this._bottomMost = false;
2148
+ this.$el.removeAttribute('data-cg-bottom-most');
2084
2149
  }
2085
- if (!form.vroot._formFocus) {
2086
- changeFocus(form.id);
2150
+ if (!this._formFocus) {
2151
+ changeFocus(this.formId);
2087
2152
  }
2088
2153
  else {
2089
- form.vroot.$refs.form.$data.zIndex = ++info.topLastZIndex;
2154
+ this.$refs.form.$data.zIndex = ++info.topLastZIndex;
2090
2155
  }
2091
2156
  }
2092
2157
  else {
2093
- form.vroot.$data._topMost = false;
2094
- form.vroot.$refs.form.$data.zIndex = ++info.lastZIndex;
2158
+ this._topMost = false;
2159
+ this.$refs.form.$data.zIndex = ++info.lastZIndex;
2095
2160
  }
2096
- return;
2161
+ }
2162
+ };
2163
+ idata._historyHash = [];
2164
+ idata._formHash = '';
2165
+ computed.formHash = {
2166
+ get: function () {
2167
+ return this._formHash;
2168
+ },
2169
+ set: function (v) {
2170
+ if (v === this._formHash) {
2171
+ return;
2172
+ }
2173
+ if (this._formHash) {
2174
+ this._historyHash.push(this._formHash);
2175
+ }
2176
+ this._formHash = v;
2177
+ core.trigger('formHashChange', t.id, formId, v);
2097
2178
  }
2098
2179
  };
2099
2180
  idata._showInSystemTask = true;
@@ -2102,11 +2183,7 @@ function create(cls, data, opt = {}, taskId) {
2102
2183
  return this._showInSystemTask;
2103
2184
  },
2104
2185
  set: function (v) {
2105
- const form = t.forms[formId];
2106
- if (!form) {
2107
- return;
2108
- }
2109
- form.vroot.$data._showInSystemTask = v;
2186
+ this._showInSystemTask = v;
2110
2187
  core.trigger('formShowInSystemTaskChange', t.id, formId, v);
2111
2188
  }
2112
2189
  };
package/dist/lib/form.ts CHANGED
@@ -376,6 +376,15 @@ export abstract class AbstractForm extends AbstractCommon {
376
376
 
377
377
  // --- 以下为窗体有,但 control 没有 ---
378
378
 
379
+ /** --- 获取 form 的 hash 值,不是浏览器的 hash --- */
380
+ public get formHash(): string {
381
+ return '';
382
+ }
383
+
384
+ public set formHash(v: string) {
385
+ // --- 会进行重写 ---
386
+ }
387
+
379
388
  /** --- 是否是置顶 --- */
380
389
  public get topMost(): boolean {
381
390
  // --- 将在初始化时系统自动重写本函数 ---
@@ -421,6 +430,23 @@ export abstract class AbstractForm extends AbstractCommon {
421
430
  // --- 会进行重写 ---
422
431
  }
423
432
 
433
+ /** --- form hash 回退 --- */
434
+ public formHashBack(): void {
435
+ const v = this as any;
436
+ if (!v.$data._historyHash.length) {
437
+ if (v.$data._formHash) {
438
+ v.$data._formHash = '';
439
+ core.trigger('formHashChange', this.taskId, this.formId, '');
440
+ return;
441
+ }
442
+ return;
443
+ }
444
+ const parent = v.$data._historyHash[v.$data._historyHash.length - 1];
445
+ v.$data._formHash = parent;
446
+ v.$data._historyHash.splice(-1);
447
+ core.trigger('formHashChange', this.taskId, this.formId, parent);
448
+ }
449
+
424
450
  /** --- 当前是不是初次显示 --- */
425
451
  private _firstShow: boolean = true;
426
452
 
@@ -577,6 +603,12 @@ export abstract class AbstractForm extends AbstractCommon {
577
603
  return;
578
604
  }
579
605
 
606
+ /** --- 窗体的 formHash 改变事件 --- */
607
+ public onFormHashChange(taskId: number, formId: number, value: string): void | Promise<void>;
608
+ public onFormHashChange(): void {
609
+ return;
610
+ }
611
+
580
612
  /** --- 任务开始事件 --- */
581
613
  public onTaskStarted(taskId: number): void | Promise<void>;
582
614
  public onTaskStarted(): void {
@@ -1266,6 +1298,67 @@ export function setActivePanel(panelId: number, formId: number, taskId?: number)
1266
1298
  return true;
1267
1299
  }
1268
1300
 
1301
+ /**
1302
+ * --- 修改窗体 hash ---
1303
+ * @param hash 修改的值,不含 #
1304
+ * @param formId 要修改的窗体 ID
1305
+ */
1306
+ export function hash(hash: string, formId: number): boolean {
1307
+ const taskId = getTaskId(formId);
1308
+ if (taskId === 0) {
1309
+ return false;
1310
+ }
1311
+ const t = task.list[taskId];
1312
+ if (!t) {
1313
+ return false;
1314
+ }
1315
+ const item = task.list[taskId].forms[formId];
1316
+ if (!item) {
1317
+ return false;
1318
+ }
1319
+ item.vroot.formHash = hash;
1320
+ return true;
1321
+ }
1322
+
1323
+ /**
1324
+ * --- 获取窗体的 hash ---
1325
+ */
1326
+ export function getHash(formId: number): string {
1327
+ const taskId = getTaskId(formId);
1328
+ if (taskId === 0) {
1329
+ return '';
1330
+ }
1331
+ const t = task.list[taskId];
1332
+ if (!t) {
1333
+ return '';
1334
+ }
1335
+ const item = task.list[taskId].forms[formId];
1336
+ if (!item) {
1337
+ return '';
1338
+ }
1339
+ return item.vroot.$data._formHash;
1340
+ }
1341
+
1342
+ /**
1343
+ * --- 将窗体的 hash 退回上一个 ---
1344
+ */
1345
+ export function hashBack(formId: number): boolean {
1346
+ const taskId = getTaskId(formId);
1347
+ if (taskId === 0) {
1348
+ return false;
1349
+ }
1350
+ const t = task.list[taskId];
1351
+ if (!t) {
1352
+ return false;
1353
+ }
1354
+ const item = task.list[taskId].forms[formId];
1355
+ if (!item) {
1356
+ return false;
1357
+ }
1358
+ item.vroot.formHashBack();
1359
+ return true;
1360
+ }
1361
+
1269
1362
  /**
1270
1363
  * --- 改变 form 的焦点 class ---
1271
1364
  * @param formId 变更后的 form id
@@ -2628,63 +2721,71 @@ export async function create<T extends AbstractForm>(
2628
2721
  // --- 是否在底层的窗体 ---
2629
2722
  idata._bottomMost = false;
2630
2723
  computed.bottomMost = {
2631
- get: function(this: types.IVue): number {
2724
+ get: function(this: types.IVue): boolean {
2632
2725
  return this._bottomMost;
2633
2726
  },
2634
- set: function(v: boolean): void {
2635
- const form = t.forms[formId];
2636
- if (!form) {
2637
- return;
2638
- }
2727
+ set: function(this: types.IVue, v: boolean): void {
2639
2728
  if (v) {
2640
2729
  // --- 置底 ---
2641
- form.vroot.$data._bottomMost = true;
2642
- form.vroot.$el.dataset.cgBottomMost = '';
2643
- if (form.vroot.$data._topMost) {
2644
- form.vroot.$data._topMost = false;
2730
+ this._bottomMost = true;
2731
+ this.$el.dataset.cgBottomMost = '';
2732
+ if (this._topMost) {
2733
+ this._topMost = false;
2645
2734
  }
2646
- form.vroot.$refs.form.$data.zIndex = ++info.bottomLastZIndex;
2735
+ this.$refs.form.$data.zIndex = ++info.bottomLastZIndex;
2647
2736
  }
2648
2737
  else {
2649
2738
  // --- 取消置底 ---
2650
- form.vroot.$data._bottomMost = false;
2651
- form.vroot.$el.removeAttribute('data-cg-bottom-most');
2652
- form.vroot.$refs.form.$data.zIndex = ++info.lastZIndex;
2739
+ this._bottomMost = false;
2740
+ this.$el.removeAttribute('data-cg-bottom-most');
2741
+ this.$refs.form.$data.zIndex = ++info.lastZIndex;
2653
2742
  }
2654
- return;
2655
2743
  }
2656
2744
  };
2657
2745
  // --- 是否在顶层的窗体 ---
2658
2746
  idata._topMost = false;
2659
2747
  computed.topMost = {
2660
- get: function(this: types.IVue): number {
2748
+ get: function(this: types.IVue): boolean {
2661
2749
  return this._topMost;
2662
2750
  },
2663
- set: function(v: boolean): void {
2664
- const form = t.forms[formId];
2665
- if (!form) {
2666
- return;
2667
- }
2751
+ set: function(this: types.IVue, v: boolean): void {
2668
2752
  if (v) {
2669
2753
  // --- 置顶 ---
2670
- form.vroot.$data._topMost = true;
2671
- if (form.vroot.$data._bottomMost) {
2672
- form.vroot.$data._bottomMost = false;
2673
- form.vroot.$el.removeAttribute('data-cg-bottom-most');
2754
+ this._topMost = true;
2755
+ if (this._bottomMost) {
2756
+ this._bottomMost = false;
2757
+ this.$el.removeAttribute('data-cg-bottom-most');
2674
2758
  }
2675
- if (!form.vroot._formFocus) {
2676
- changeFocus(form.id);
2759
+ if (!this._formFocus) {
2760
+ changeFocus(this.formId);
2677
2761
  }
2678
2762
  else {
2679
- form.vroot.$refs.form.$data.zIndex = ++info.topLastZIndex;
2763
+ this.$refs.form.$data.zIndex = ++info.topLastZIndex;
2680
2764
  }
2681
2765
  }
2682
2766
  else {
2683
2767
  // --- 取消置顶 ---
2684
- form.vroot.$data._topMost = false;
2685
- form.vroot.$refs.form.$data.zIndex = ++info.lastZIndex;
2768
+ this._topMost = false;
2769
+ this.$refs.form.$data.zIndex = ++info.lastZIndex;
2686
2770
  }
2687
- return;
2771
+ }
2772
+ };
2773
+ // --- 获取和设置 form hash ---
2774
+ idata._historyHash = [];
2775
+ idata._formHash = '';
2776
+ computed.formHash = {
2777
+ get: function(this: types.IVue): string {
2778
+ return this._formHash;
2779
+ },
2780
+ set: function(this: types.IVue, v: string): void {
2781
+ if (v === this._formHash) {
2782
+ return;
2783
+ }
2784
+ if (this._formHash) {
2785
+ this._historyHash.push(this._formHash);
2786
+ }
2787
+ this._formHash = v;
2788
+ core.trigger('formHashChange', t.id, formId, v);
2688
2789
  }
2689
2790
  };
2690
2791
  // --- 当前窗体是否显示在任务栏 ---
@@ -2693,12 +2794,8 @@ export async function create<T extends AbstractForm>(
2693
2794
  get: function(this: types.IVue): number {
2694
2795
  return this._showInSystemTask;
2695
2796
  },
2696
- set: function(v: boolean): void {
2697
- const form = t.forms[formId];
2698
- if (!form) {
2699
- return;
2700
- }
2701
- form.vroot.$data._showInSystemTask = v;
2797
+ set: function(this: types.IVue, v: boolean): void {
2798
+ this._showInSystemTask = v;
2702
2799
  core.trigger('formShowInSystemTaskChange', t.id, formId, v);
2703
2800
  }
2704
2801
  };
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/alayout/', '/app/demo/form/control/alayout/alayout.css', '/app/demo/form/control/alayout/alayout.js', '/app/demo/form/control/alayout/alayout.xml', '/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/date/', '/app/demo/form/control/date/date.js', '/app/demo/form/control/date/date.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/echarts/', '/app/demo/form/control/echarts/echarts.js', '/app/demo/form/control/echarts/echarts.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/iconview/', '/app/demo/form/control/iconview/iconview.js', '/app/demo/form/control/iconview/iconview.xml', '/app/demo/form/control/img/', '/app/demo/form/control/img/img.xml', '/app/demo/form/control/label/', '/app/demo/form/control/label/label.js', '/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/link/', '/app/demo/form/control/link/link.js', '/app/demo/form/control/link/link.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/map/', '/app/demo/form/control/map/map.js', '/app/demo/form/control/map/map.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/page/', '/app/demo/form/control/page/page.js', '/app/demo/form/control/page/page.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/svg/', '/app/demo/form/control/svg/svg.js', '/app/demo/form/control/svg/svg.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/control/xterm/', '/app/demo/form/control/xterm/xterm.js', '/app/demo/form/control/xterm/xterm.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.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/marker.svg', '/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', '/control/', '/control/box.cgc', '/control/common.cgc', '/control/desc.cgc', '/control/echarts.cgc', '/control/form.cgc', '/control/html.cgc', '/control/iconview.cgc', '/control/map.cgc', '/control/monaco.cgc', '/control/nav.cgc', '/control/page.cgc', '/control/property.cgc', '/control/table.cgc', '/control/task.cgc', '/control/xterm.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', '/theme/light.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/alayout/', '/app/demo/form/control/alayout/alayout.css', '/app/demo/form/control/alayout/alayout.js', '/app/demo/form/control/alayout/alayout.xml', '/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/date/', '/app/demo/form/control/date/date.js', '/app/demo/form/control/date/date.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/echarts/', '/app/demo/form/control/echarts/echarts.js', '/app/demo/form/control/echarts/echarts.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/iconview/', '/app/demo/form/control/iconview/iconview.js', '/app/demo/form/control/iconview/iconview.xml', '/app/demo/form/control/img/', '/app/demo/form/control/img/img.xml', '/app/demo/form/control/label/', '/app/demo/form/control/label/label.js', '/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/link/', '/app/demo/form/control/link/link.js', '/app/demo/form/control/link/link.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/map/', '/app/demo/form/control/map/map.js', '/app/demo/form/control/map/map.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/page/', '/app/demo/form/control/page/page.js', '/app/demo/form/control/page/page.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/svg/', '/app/demo/form/control/svg/svg.js', '/app/demo/form/control/svg/svg.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/control/xterm/', '/app/demo/form/control/xterm/xterm.js', '/app/demo/form/control/xterm/xterm.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.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/storage/', '/app/demo/form/method/storage/storage.js', '/app/demo/form/method/storage/storage.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/marker.svg', '/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', '/control/', '/control/box.cgc', '/control/common.cgc', '/control/desc.cgc', '/control/echarts.cgc', '/control/form.cgc', '/control/html.cgc', '/control/iconview.cgc', '/control/map.cgc', '/control/monaco.cgc', '/control/nav.cgc', '/control/page.cgc', '/control/property.cgc', '/control/table.cgc', '/control/task.cgc', '/control/xterm.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/storage.js', '/lib/storage.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', '/theme/light.cgt'];
42
42
  const localeData = {
43
43
  'en': {
44
44
  'apply-unmount': 'Are you sure to unmount the "?" mount point?',
@@ -110,7 +110,7 @@ function unmount(name) {
110
110
  return true;
111
111
  }
112
112
  const loc = (_b = (_a = localeData[core.config.locale]) === null || _a === void 0 ? void 0 : _a['apply-unmount']) !== null && _b !== void 0 ? _b : localeData['en']['apply-unmount'];
113
- if (!(yield form.superConfirm(loc.replace('?', '/mount/' + name + '/')))) {
113
+ if (!(yield form.superConfirm(loc.replace('?', '/mount/' + tool.escapeHTML(name) + '/')))) {
114
114
  return false;
115
115
  }
116
116
  delete mounts[name];
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/alayout/', '/app/demo/form/control/alayout/alayout.css', '/app/demo/form/control/alayout/alayout.js', '/app/demo/form/control/alayout/alayout.xml', '/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/date/', '/app/demo/form/control/date/date.js', '/app/demo/form/control/date/date.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/echarts/', '/app/demo/form/control/echarts/echarts.js', '/app/demo/form/control/echarts/echarts.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/iconview/', '/app/demo/form/control/iconview/iconview.js', '/app/demo/form/control/iconview/iconview.xml', '/app/demo/form/control/img/', '/app/demo/form/control/img/img.xml', '/app/demo/form/control/label/', '/app/demo/form/control/label/label.js', '/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/link/', '/app/demo/form/control/link/link.js', '/app/demo/form/control/link/link.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/map/', '/app/demo/form/control/map/map.js', '/app/demo/form/control/map/map.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/page/', '/app/demo/form/control/page/page.js', '/app/demo/form/control/page/page.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/svg/', '/app/demo/form/control/svg/svg.js', '/app/demo/form/control/svg/svg.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/control/xterm/', '/app/demo/form/control/xterm/xterm.js', '/app/demo/form/control/xterm/xterm.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.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/marker.svg', '/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', '/control/', '/control/box.cgc', '/control/common.cgc', '/control/desc.cgc', '/control/echarts.cgc', '/control/form.cgc', '/control/html.cgc', '/control/iconview.cgc', '/control/map.cgc', '/control/monaco.cgc', '/control/nav.cgc', '/control/page.cgc', '/control/property.cgc', '/control/table.cgc', '/control/task.cgc', '/control/xterm.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', '/theme/light.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/alayout/', '/app/demo/form/control/alayout/alayout.css', '/app/demo/form/control/alayout/alayout.js', '/app/demo/form/control/alayout/alayout.xml', '/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/date/', '/app/demo/form/control/date/date.js', '/app/demo/form/control/date/date.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/echarts/', '/app/demo/form/control/echarts/echarts.js', '/app/demo/form/control/echarts/echarts.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/iconview/', '/app/demo/form/control/iconview/iconview.js', '/app/demo/form/control/iconview/iconview.xml', '/app/demo/form/control/img/', '/app/demo/form/control/img/img.xml', '/app/demo/form/control/label/', '/app/demo/form/control/label/label.js', '/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/link/', '/app/demo/form/control/link/link.js', '/app/demo/form/control/link/link.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/map/', '/app/demo/form/control/map/map.js', '/app/demo/form/control/map/map.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/page/', '/app/demo/form/control/page/page.js', '/app/demo/form/control/page/page.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/svg/', '/app/demo/form/control/svg/svg.js', '/app/demo/form/control/svg/svg.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/control/xterm/', '/app/demo/form/control/xterm/xterm.js', '/app/demo/form/control/xterm/xterm.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.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/storage/', '/app/demo/form/method/storage/storage.js', '/app/demo/form/method/storage/storage.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/marker.svg', '/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', '/control/', '/control/box.cgc', '/control/common.cgc', '/control/desc.cgc', '/control/echarts.cgc', '/control/form.cgc', '/control/html.cgc', '/control/iconview.cgc', '/control/map.cgc', '/control/monaco.cgc', '/control/nav.cgc', '/control/page.cgc', '/control/property.cgc', '/control/table.cgc', '/control/task.cgc', '/control/xterm.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/storage.js', '/lib/storage.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', '/theme/light.cgt'];
16
16
 
17
17
  /** --- fs lib 用到的语言包 --- */
18
18
  const localeData: Record<string, {
@@ -102,7 +102,7 @@ export async function unmount(name: string): Promise<boolean> {
102
102
  return true;
103
103
  }
104
104
  const loc = localeData[core.config.locale]?.['apply-unmount'] ?? localeData['en']['apply-unmount'];
105
- if (!await form.superConfirm(loc.replace('?', '/mount/' + name + '/'))) {
105
+ if (!await form.superConfirm(loc.replace('?', '/mount/' + tool.escapeHTML(name) + '/'))) {
106
106
  return false;
107
107
  }
108
108
  delete mounts[name];