clickgo 3.12.1 → 3.13.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.
Files changed (52) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/dist/app/demo/form/control/check/check.xml +1 -0
  4. package/dist/app/demo/form/control/drawer/drawer.js +1 -0
  5. package/dist/app/demo/form/control/drawer/drawer.xml +2 -1
  6. package/dist/app/demo/form/control/group/group.xml +17 -17
  7. package/dist/app/demo/form/control/marquee/marquee.xml +4 -4
  8. package/dist/app/demo/form/control/select/select.xml +1 -1
  9. package/dist/app/demo/form/control/table/table.js +7 -2
  10. package/dist/app/demo/form/control/table/table.xml +32 -3
  11. package/dist/app/demo/form/control/text/text.js +1 -1
  12. package/dist/app/demo/form/control/text/text.xml +6 -0
  13. package/dist/app/demo/form/control/weditor/weditor.xml +1 -1
  14. package/dist/clickgo.js +1 -1
  15. package/dist/clickgo.ts +1 -1
  16. package/dist/control/arteditor.cgc +0 -0
  17. package/dist/control/box.cgc +0 -0
  18. package/dist/control/common.cgc +0 -0
  19. package/dist/control/desc.cgc +0 -0
  20. package/dist/control/drawer.cgc +0 -0
  21. package/dist/control/echarts.cgc +0 -0
  22. package/dist/control/form.cgc +0 -0
  23. package/dist/control/iconview.cgc +0 -0
  24. package/dist/control/map.cgc +0 -0
  25. package/dist/control/monaco.cgc +0 -0
  26. package/dist/control/nav.cgc +0 -0
  27. package/dist/control/page.cgc +0 -0
  28. package/dist/control/property.cgc +0 -0
  29. package/dist/control/table.cgc +0 -0
  30. package/dist/control/task.cgc +0 -0
  31. package/dist/control/tuieditor.cgc +0 -0
  32. package/dist/control/tuiviewer.cgc +0 -0
  33. package/dist/control/weditor.cgc +0 -0
  34. package/dist/control/xterm.cgc +0 -0
  35. package/dist/global.css +1 -1
  36. package/dist/lib/control.js +31 -1
  37. package/dist/lib/control.ts +36 -2
  38. package/dist/lib/core.ts +1 -1
  39. package/dist/lib/dom.ts +1 -1
  40. package/dist/lib/form.ts +1 -1
  41. package/dist/lib/native.ts +1 -1
  42. package/dist/lib/storage.ts +1 -1
  43. package/dist/lib/task.js +6 -0
  44. package/dist/lib/task.ts +13 -1
  45. package/dist/lib/theme.ts +1 -1
  46. package/dist/lib/tool.js +8 -2
  47. package/dist/lib/tool.ts +10 -2
  48. package/dist/theme/byterun.cgt +0 -0
  49. package/dist/theme/familiar.cgt +0 -0
  50. package/dist/theme/light.cgt +0 -0
  51. package/package.json +6 -6
  52. package/types/index.d.ts +16 -0
package/LICENSE CHANGED
@@ -186,7 +186,7 @@
186
186
  same "printed page" as the copyright notice for easier
187
187
  identification within third-party archives.
188
188
 
189
- Copyright 2023 MAIYUN.NET
189
+ Copyright 2024 MAIYUN.NET
190
190
 
191
191
  Licensed under the Apache License, Version 2.0 (the "License");
192
192
  you may not use this file except in compliance with the License.
package/README.md CHANGED
@@ -25,7 +25,7 @@ Load the module loader first, and then load it using the module loader.
25
25
  **index.html**
26
26
 
27
27
  ```html
28
- <script src="https://cdn.jsdelivr.net/npm/@litert/loader@3.5.2/dist/loader.min.js?path=index&npm={'clickgo':'3.12.1'}"></script>
28
+ <script src="https://cdn.jsdelivr.net/npm/@litert/loader@3.5.7/dist/loader.min.js?path=index&npm={'clickgo':'3.13.0'}"></script>
29
29
  ```
30
30
 
31
31
  **index.js**
@@ -12,5 +12,6 @@
12
12
  </layout>
13
13
  <button @click="indeterminate1=true;indeterminate2=true;indeterminate3=true;indeterminate4=true">Set indeterminate</button>
14
14
  <button @click="disabled = !disabled">{{disabled ? 'Remove' : 'Set'}} disabled</button>
15
+ <button @click="checked2 = true">Set checked2 = true</button>
15
16
  </layout>
16
17
  </form>
@@ -29,6 +29,7 @@ class default_1 extends clickgo.form.AbstractForm {
29
29
  super(...arguments);
30
30
  this.drawer = false;
31
31
  this.drawer2 = false;
32
+ this.tclose = false;
32
33
  }
33
34
  }
34
35
  exports.default = default_1;
@@ -2,8 +2,9 @@
2
2
  <layout direction="v" gutter="10">
3
3
  <label>drawer: {{drawer ? 'true' : 'false'}}</label>
4
4
  <button @click="drawer = true">Open</button>
5
+ <button @click="tclose = !tclose">{{tclose ? '' : '!'}}close</button>
5
6
  </layout>
6
- <drawer title="Drawer" gutter="10" v-model="drawer" direction="v" width="50%">
7
+ <drawer title="Drawer" gutter="10" v-model="drawer" direction="v" width="50%" :close="tclose">
7
8
  <label>123</label>
8
9
  <button @click="drawer2 = true">456</button>
9
10
  <tuieditor style="height: 200px;"></tuieditor>
@@ -1,13 +1,13 @@
1
- <form title="Group" width="450" height="550" padding="10" background="hsl(0, 0%, 90%)">
2
- <layout gutter="10" direction="v" style="flex: 1; width: 0;">
3
- <flow direction="v" style="flex: 1; height: 0;">
4
- <group :title="title" direction="v" gutter="10">
5
- <template v-if="slotTitle" v-slot:title>
6
- <layout align-v="center" style="flex: 1;">
7
- <label style="flex: 1;">slot title</label>
8
- <button>test</button>
9
- </layout>
10
- </template>
1
+ <form title="Group" width="450" height="550">
2
+ <layout gutter="10" direction="v" style="flex: 1; width: 0; padding: 10px;">
3
+ <group :title="title" style="flex: 1; height: 0;">
4
+ <template v-if="slotTitle" v-slot:title>
5
+ <layout align-v="center" style="flex: 1;">
6
+ <label style="flex: 1;">slot title</label>
7
+ <button>test</button>
8
+ </layout>
9
+ </template>
10
+ <flow direction="v" gutter="10" style="flex: 1;">
11
11
  <label>123</label>
12
12
  <button>abc</button>
13
13
  <title>Small title</title>
@@ -20,13 +20,13 @@
20
20
  <label>123</label>
21
21
  <title type="danger">Danger title</title>
22
22
  <label>123</label>
23
- <template v-if="slotFooter" v-slot:footer>
24
- <layout align-h="end" style="flex: 1;">
25
- <button>OK</button>
26
- </layout>
27
- </template>
28
- </group>
29
- </flow>
23
+ </flow>
24
+ <template v-if="slotFooter" v-slot:footer>
25
+ <layout align-h="end" style="flex: 1;">
26
+ <button>OK</button>
27
+ </layout>
28
+ </template>
29
+ </group>
30
30
  <layout gutter="10">
31
31
  <button style="flex: 1;" @click="title = title === 'The title' ? 'Changed title' : 'The title'">Change title</button>
32
32
  <button style="flex: 1;" @click="title = ''">Set empty</button>
@@ -1,9 +1,9 @@
1
- <form title="Marquee" width="300" height="300" padding="10">
1
+ <form title="Marquee" width="350" height="300" padding="10">
2
2
  <layout gutter="10" direction="v" style="flex: 1; width: 0;">
3
3
  <!-- 左右分 -->
4
4
  <layout gutter="10" style="flex: 1; height: 0;">
5
5
  <layout direction="v" style="flex: 1; width: 0;">
6
- <marquee direction="top" :scroll="scroll" style="border: 1px solid rgba(0, 0, 0, .1); background: #FFF;" :style="{'padding': style ? '10px' : undefined, 'line-height': style ? '1.5' : undefined}">
6
+ <marquee direction="top" style="border: 1px solid rgba(0, 0, 0, .1); background: #FFF;" :style="{'padding': style ? '10px' : undefined, 'line-height': style ? '1.5' : undefined}">
7
7
  <block v-for="(line, index) of lineCount">
8
8
  <button v-if="index > 0 && index % 10 === 0" style="height: 30px;">test</button>
9
9
  <block v-else>Line {{line}}, index: {{index}}.</block>
@@ -11,10 +11,10 @@
11
11
  </marquee>
12
12
  </layout>
13
13
  <layout direction="v" gutter="10" style="flex: 1; width: 0;">
14
- <marquee direction="left" :scroll="scroll" style="background: #000; color: #FFF;" :style="{'padding': style ? '10px' : undefined, 'line-height': style ? '1.5' : undefined}">
14
+ <marquee direction="left" style="background: #000; color: #FFF;" :style="{'padding': style ? '10px' : undefined, 'line-height': style ? '1.5' : undefined}">
15
15
  <block v-for="(line, index) of lineCount">Line {{line}}, index: {{index}}.</block>
16
16
  </marquee>
17
- <marquee :direction="direction" :scroll="scroll" style="flex: 1; height: 0; border: 1px solid rgba(0, 0, 0, .1); background: #FFF;" :style="{'padding': style ? '10px' : undefined, 'line-height': style ? '1.5' : undefined}">
17
+ <marquee :direction="direction" style="flex: 1; height: 0; border: 1px solid rgba(0, 0, 0, .1); background: #FFF;" :style="{'padding': style ? '10px' : undefined, 'line-height': style ? '1.5' : undefined}">
18
18
  <block v-for="(line, index) of lineCount">
19
19
  <button v-if="index > 0 && index % 10 === 0" style="height: 30px;">test</button>
20
20
  <block v-else>Line {{line}}, index: {{index}}.</block>
@@ -51,7 +51,7 @@
51
51
  <select :data="['1','2','3','4','5']" :disabled="disabled" :editable="editable" :multi="multi" :plain="plain" :tree="tree" :async="async" :search="search" :remote="remote" :remote-delay="remoteDelay[0]" :icon="icon" icon-default="../../../res/txt.svg" style="height: 60px;" @load="onLoad" @remote="onRemote" :style="{'font-size': fontSize ? '16px' : undefined, 'padding': padding ? '15px' : undefined, 'background': background ? 'red' : undefined, 'color': background ? '#FFF' : undefined}"></select>
52
52
  <label>Always editable: {{aemodel}}</label>
53
53
  <layout gutter="10">
54
- <select v-model="aemodel" :data="editableData ? ['1','2','3',{'label':'is gDa','value':'gDa'},'5'] : ['6','7','8','9','10']" :disabled="disabled" editable editablelabel :multi="multi" :plain="plain" :tree="tree" :async="async" :search="search" :remote="remote" :remote-delay="remoteDelay[0]" :icon="icon" icon-default="../../../res/txt.svg" placeholder="Please enter" @load="onLoad" @remote="onRemote" style="flex: 1;" :style="{'font-size': fontSize ? '16px' : undefined, 'padding': padding ? '15px' : undefined, 'background': background ? 'red' : undefined, 'color': background ? '#FFF' : undefined}"></select>
54
+ <select v-model="aemodel" :data="editableData ? ['1','2','3',{'label':'is gDa','value':'gDa'},'5'] : ['6','7','8','9','10',{'label':'But gDa','value':'gDa'}]" :disabled="disabled" editable editablelabel :multi="multi" :plain="plain" :tree="tree" :async="async" :search="search" :remote="remote" :remote-delay="remoteDelay[0]" :icon="icon" icon-default="../../../res/txt.svg" placeholder="Please enter" @load="onLoad" @remote="onRemote" style="flex: 1;" :style="{'font-size': fontSize ? '16px' : undefined, 'padding': padding ? '15px' : undefined, 'background': background ? 'red' : undefined, 'color': background ? '#FFF' : undefined}"></select>
55
55
  <button @click="aemodel.length=0">clear</button>
56
56
  <button @click="aemodel[0] = '4'">4</button>
57
57
  <button @click="aemodel[0] = '22'">22</button>
@@ -44,6 +44,7 @@ class default_1 extends clickgo.form.AbstractForm {
44
44
  this.must = true;
45
45
  this.multi = false;
46
46
  this.ctrl = true;
47
+ this.bottom = false;
47
48
  this.selection = false;
48
49
  this.gesture = false;
49
50
  this.selectionArea = {};
@@ -53,6 +54,7 @@ class default_1 extends clickgo.form.AbstractForm {
53
54
  this.split = false;
54
55
  this.virtual = false;
55
56
  this.slot = false;
57
+ this.fixed = ['undefined'];
56
58
  this.checkinfo = {
57
59
  'total': 0,
58
60
  'selected': 0
@@ -187,12 +189,14 @@ class default_1 extends clickgo.form.AbstractForm {
187
189
  {
188
190
  'check': false,
189
191
  'type': 0,
190
- 'name': 'Appraise'
192
+ 'name': 'Appraise',
193
+ 'bottom': false
191
194
  },
192
195
  {
193
196
  'check': false,
194
197
  'type': 0,
195
198
  'name': 'Card',
199
+ 'bottom': false
196
200
  },
197
201
  {
198
202
  'check': false,
@@ -205,7 +209,8 @@ class default_1 extends clickgo.form.AbstractForm {
205
209
  },
206
210
  {
207
211
  'check': false,
208
- 'type': 1
212
+ 'type': 1,
213
+ 'bottom': true
209
214
  }
210
215
  ];
211
216
  this.loadFirst = true;
@@ -1,16 +1,19 @@
1
1
  <form width="500" height="500" title="Table" padding="10">
2
2
  <layout direction="v" gutter="10" style="flex: 1; width: 0;">
3
3
  <label>Value: {{val}}</label>
4
- <table :data="data" :style="{'flex': adaptation ? undefined : '1'}" v-model="val" :disabled="disabled" :must="must" :multi="multi" :ctrl="ctrl" :selection="selection" :gesture="gesture ? ['top', 'bottom'] : []" :split="split" @gesture="onGesture" :scroll="scroll" :sizes="sizes" :sort="sort" :virtual="virtual" @select="onSelect" @sort="onSort">
4
+ <table :data="data" :style="{'flex': adaptation ? undefined : '1'}" v-model="val" :disabled="disabled" :must="must" :multi="multi" :ctrl="ctrl" :selection="selection" :gesture="gesture ? ['top', 'bottom'] : []" :split="split" @gesture="onGesture" :scroll="scroll" :sizes="sizes" :sort="sort" :virtual="virtual" :fixed="fixed[0]==='undefined'?undefined:fixed[0]" @select="onSelect" @sort="onSort">
5
5
  <template v-slot="d">
6
6
  <table-item v-if="index" width="100" sort="false" align-h="center" align-v="center">
7
7
  <check v-model="d.row.check" @changed="refreshCheckinfo">{{d.index}}</check>
8
8
  </table-item>
9
9
  <table-item label="name">{{d.row.name ?? 'name'}}</table-item>
10
10
  <table-item label="size" width="80" align-v="center" align-h="center">{{d.row.type ?? '0'}}</table-item>
11
- <table-item label="col" width="100" direction="v" gutter="5" sort="false">
11
+ <table-item label="col" width="120" direction="v" gutter="5" sort="false">
12
12
  <label>line1</label>
13
- <button>line2</button>
13
+ <layout gutter="5">
14
+ <button>line2</button>
15
+ <button v-if="bottom" @click="d.row.bottom = d.row.bottom ? false : true">{{d.row.bottom ? 'close' : 'open'}}</button>
16
+ </layout>
14
17
  </table-item>
15
18
  </template>
16
19
  <template v-slot:pop>
@@ -23,6 +26,27 @@
23
26
  <check :modelValue="checkinfo.selected > 0" @change="onHeaderCheck" :indeterminate="checkinfo.selected > 0 && checkinfo.selected < checkinfo.total">index</check>
24
27
  </layout>
25
28
  </template>
29
+ <!-- bottom -->
30
+ <template v-if="bottom" v-slot:bottom="d">
31
+ <desc v-if="d.row.bottom" style="flex: 1; margin: var(--g-padding); margin-top: 0;">
32
+ <desc-row>
33
+ <desc-head>HEAD1</desc-head>
34
+ <desc-head>HEAD2</desc-head>
35
+ <desc-head>HEAD3</desc-head>
36
+ <desc-head>HEAD4</desc-head>
37
+ </desc-row>
38
+ <desc-row>
39
+ <desc-head>HEAD5</desc-head>
40
+ <desc-cell>CELL1</desc-cell>
41
+ <desc-head>HEAD6</desc-head>
42
+ <desc-cell>CELL2</desc-cell>
43
+ </desc-row>
44
+ <desc-row>
45
+ <desc-head>HEAD7</desc-head>
46
+ <desc-cell colspan="3">CELL1</desc-cell>
47
+ </desc-row>
48
+ </desc>
49
+ </template>
26
50
  </table>
27
51
  <template v-if="loadFirst">
28
52
  <layout gutter="10">
@@ -41,6 +65,7 @@
41
65
  <button style="flex: 1;" @click="disabled = !disabled">{{disabled ? '' : '!'}}disabled</button>
42
66
  <button style="flex: 1;" @click="multi = !multi">{{multi ? '' : '!'}}multi</button>
43
67
  <button style="flex: 1;" @click="ctrl = !ctrl">{{ctrl ? '' : '!'}}ctrl</button>
68
+ <button style="flex: 1;" @click="bottom = !bottom">{{bottom ? '' : '!'}}bottom</button>
44
69
  </layout>
45
70
  <layout gutter="10">
46
71
  <button style="flex: 1;" @click="must = !must">{{must ? '' : '!'}}must</button>
@@ -48,6 +73,10 @@
48
73
  <button style="flex: 1;" @click="virtual = !virtual">{{virtual ? '' : '!'}}virtual</button>
49
74
  <button style="flex: 1;" @click="slot = !slot">{{slot ? '' : '!'}}slot</button>
50
75
  </layout>
76
+ <layout gutter="10" align-v="center">
77
+ <label>fixed</label>
78
+ <select v-model="fixed" :data="['undefined', 'left', 'right', 'both']" style="flex: 1;"></select>
79
+ </layout>
51
80
  </template>
52
81
  <button v-else @click="load">Load</button>
53
82
  </layout>
@@ -102,7 +102,7 @@ long`;
102
102
  return;
103
103
  }
104
104
  if (e.detail.value === '1346') {
105
- e.detail.change = '0000';
105
+ e.detail.change = '000000';
106
106
  }
107
107
  }
108
108
  }
@@ -39,6 +39,12 @@
39
39
  <select v-model="type" :data="['text', 'password', 'multi', 'number']" style="flex: 1;"></select>
40
40
  <button @click="maxlength = maxlength === 0 ? 10 : 0" style="flex: 1;">maxlength to {{maxlength === 0 ? 10 : 0}}</button>
41
41
  </layout>
42
+ <layout gutter="10">
43
+ <label>max:</label>
44
+ <label style="flex: 1;">{{max}}</label>
45
+ <label>min:</label>
46
+ <label style="flex: 1;">{{min}}</label>
47
+ </layout>
42
48
  <layout gutter="10">
43
49
  <button @click="max = '200'; min = '10'" style="flex: 1;">max 200 min 10</button>
44
50
  <button @click="max = '20'" style="flex: 1;">max 20</button>
@@ -5,7 +5,7 @@
5
5
  <weditor v-model="html" @text="text = $event" :disabled="disabled" :readonly="readonly" :theme="theme[0]" :visual="visual" @imgselect="imgselect" @videoselect="videoselect" style="flex: 2;" :style="{'font-size': size[0], 'font-family': family ? 'Consolas, \'Courier New\', monospace' : undefined}"></weditor>
6
6
  <layout gutter="10" direction="v" style="flex: 1;">
7
7
  <text style="flex: 1;" v-model="text" readonly type="multi"></text>
8
- <text style="flex: 1;" v-model="html" type="multi"></text>
8
+ <text style="flex: 1;" v-model="html" type="multi" readonly></text>
9
9
  </layout>
10
10
  </layout>
11
11
  <layout gutter="10">
package/dist/clickgo.js CHANGED
@@ -24,7 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.zip = exports.tool = exports.theme = exports.task = exports.storage = exports.native = exports.fs = exports.form = exports.dom = exports.core = exports.control = exports.vue = exports.hasFrame = exports.isImmersion = exports.getPlatform = exports.isNative = exports.getVersion = void 0;
27
- const version = '3.12.1';
27
+ const version = '3.13.0';
28
28
  function getVersion() {
29
29
  return version;
30
30
  }
package/dist/clickgo.ts CHANGED
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- const version = '3.12.1';
16
+ const version = '3.13.0';
17
17
  export function getVersion(): string {
18
18
  return version;
19
19
  }
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/dist/global.css CHANGED
@@ -1 +1 @@
1
- #cg-wrap{position:fixed;left:0;top:0;--g-padding:7px;--g-bpadding:18px;--g-margin:2px;--g-radius:0;--g-size:12px;--g-family:"Lucida Sans Unicode", "Helvetica Neue","Helvetica","PingFang SC","Hiragino Sans GB","Noto Sans CJK SC","Noto Sans CJK","Source Han Sans","WenQuanYi Micro Hei","Microsoft YaHei",sans-serif;--g-line:1;--g-cubic:cubic-bezier(0.39, 0.575, 0.565, 1);--cg:hsl(20, 100%, 65%);--success:hsl(150, 100%, 40%);--success-hover:hsl(150, 100%, 45%);--success-active:hsl(150, 100%, 30%);--success-focus:hsl(150, 100%, 35%);--success-disabled:hsl(150, 0%, 40%);--success-bg:hsl(150, 100%, 98%);--info:hsl(210, 100%, 50%);--info-hover:hsl(210, 100%, 60%);--info-active:hsl(210, 100%, 40%);--info-focus:hsl(210, 100%, 45%);--info-disabled:hsl(210, 0%, 50%);--success-bg:hsl(210, 100%, 98%);--warning:hsl(20, 100%, 70%);--warning-hover:hsl(20, 100%, 80%);--warning-active:hsl(20, 100%, 60%);--warning-focus:hsl(20, 100%, 65%);--warning-disabled:hsl(20, 0%, 70%);--warning-bg:hsl(20, 100%, 98%);--danger:hsl(350, 100%, 50%);--danger-hover:hsl(350, 100%, 70%);--danger-active:hsl(350, 100%, 40%);--danger-focus:hsl(350, 100%, 45%);--danger-disabled:hsl(350, 0%, 50%);--danger-bg:hsl(350, 100%, 98%);--system-color:hsl(0, 0%, 95%);--system-background:hsla(0, 0%, 0%, .35);--system-control-background:hsla(0, 0%, 100%, .03);--system-background-hover:hsla(0, 0%, 100%, .06);--system-background-active:hsla(0, 0%, 100%, .1);--system-border-color:hsla(0, 0%, 100%, .03);--system-border-color-hover:hsla(0, 0%, 100%, .06);--system-placeholder-color: hsla(0, 0%, 100%, .2);--face:hsl(0, 0%, 95%);--g-color:hsl(0, 0%, 20%);--g-color-hover:hsl(0, 0%, 30%);--g-color-active:hsl(0, 0%, 10%);--g-color-focus:hsl(0, 0%, 15%);--g-color-disabled:hsl(0, 0%, 60%);--g-background:hsl(0, 0%, 95%);--g-background-hover:hsl(0, 0%, 100%);--g-background-active:hsl(0, 0%, 85%);--g-background-kp:hsl(0, 0%, 80%);--g-background-opacity:hsl(0, 0%, 50%, .2);--g-background-focus:hsl(0, 0%, 97.5%);--g-background-disabled:hsl(0, 0%, 75%);--g-border-color:hsl(0, 0%, 40%);--g-border-color-hover:hsl(0, 0%, 50%);--g-border-color-active:hsl(0, 0%, 30%);--g-border-color-focus:hsl(0, 0%, 35%);--g-border-color-disabled:hsl(0, 0%, 60%);--g-focusbox-border-color:var(--g-plain-border-color);--g-plain-color:var(--g-color);--g-plain-color-hover:var(--g-color-hover);--g-plain-color-active:var(--g-color-active);--g-plain-color-focus:var(--g-color-focus);--g-plain-color-disabled:var(--g-color-disabled);--g-plain-background:hsl(0, 0%, 100%);--g-plain-background-hover:hsl(0, 0%, 98%);--g-plain-background-active:hsl(0, 0%, 95%);--g-plain-background-focus:var(--g-plain-background);--g-plain-background-disabled:hsl(0, 0%, 95%);--g-plain-border-color:hsl(0, 0%, 70%);--g-plain-border-color-hover:hsl(0, 0%, 80%);--g-plain-border-color-active:hsl(0, 0%, 60%);--g-plain-border-color-focus:hsl(0, 0%, 65%);--g-plain-border-color-disabled:hsl(0, 0%, 60%);--g-block-background:hsl(0, 0%, 85%);--g-block-background-hover:hsl(0, 0%, 75%)}[data-cg-disabled]{cursor:not-allowed}#cg-form-list{z-index:20020000}#cg-pop-list{z-index:20020001}#cg-simpletask{z-index:20020002}#cg-rectangle{z-index:20020003;box-sizing:border-box;position:absolute;border-radius:3px;box-shadow:0 0 10px rgba(0,0,0,.25);background:rgba(255,255,255,.05);pointer-events:none;opacity:0}#cg-circular{z-index:20020003;box-sizing:border-box;position:absolute;border:solid 3px var(--cg);border-radius:50%;filter:drop-shadow(0 0 3px var(--cg));pointer-events:none;opacity:0}#cg-gesture{z-index:20020003;box-sizing:border-box;position:absolute;border-radius:50%;pointer-events:none;opacity:0;background:var(--system-background);box-shadow:0 5px 20px rgba(0,0,0,.25);transform:scale(0);width:20px;height:20px}#cg-gesture.done{background:rgba(255,255,255,.3);border:solid 3px rgba(0,0,0,.3)}#cg-gesture.ani{transition:all .3s var(--g-cubic);transition-property:left,top,transform}#cg-drag{z-index:20020003;box-sizing:border-box;position:absolute;border-radius:3px;pointer-events:none;background:rgba(255,255,255,.1);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 3px 5px rgba(0,0,0,.1);opacity:0;display:flex;justify-content:center;align-items:center;border:solid 1px #fff;transition:all .3s var(--g-cubic);transition-property:transform,border;transform:initial}#cg-launcher{z-index:20020004;box-sizing:border-box;position:fixed;background:var(--system-background);-webkit-backdrop-filter:blur(30px) saturate(1.5);backdrop-filter:blur(30px) saturate(1.5);width:100%;height:100%;left:0;top:0;color:var(--system-color);display:none;flex-direction:column;transition:all .3s var(--g-cubic);transform:scale(1.2);opacity:0}#cg-launcher:not(.cg-show){pointer-events:none}#cg-launcher.cg-show{transform:scale(1);opacity:1}.cg-launcher-search{text-align:center;padding:50px}.cg-launcher-sinput{-webkit-appearance:none;appearance:none;padding:15px;border:solid 1px rgba(0,0,0,0);background:var(--system-control-background);width:60%;border-radius:5px;color:var(--system-color);transition:all .3s var(--g-cubic)}.cg-launcher-sinput::placeholder{color:var(--system-placeholder-color)}.cg-launcher-sinput::selection{background-color:var(--system-background-hover)}.cg-launcher-sinput:focus{outline:none;border-color:var(--system-border-color-hover)}.cg-launcher-foldername{-webkit-appearance:none;appearance:none;height:50px;font-size:28px !important;border:none;background:rgba(0,0,0,0);width:50%;color:var(--system-color);text-align:center}.cg-launcher-foldername::selection{background-color:var(--system-background-hover)}.cg-launcher-foldername:focus{outline:none}.cg-launcher-item{width:190px;display:inline-flex;vertical-align:middle;margin-bottom:50px}.cg-launcher-inner{flex:1;width:0}.cg-launcher-icon{background-position:center;background-size:80px;height:80px;background-repeat:no-repeat}.cg-launcher-icon:active{filter:brightness(0.6)}.cg-launcher-name{font-size:13px;font-weight:bold;text-shadow:0 0 3px rgba(0,0,0,.6);text-align:center;margin-top:20px}.cg-launcher-icon,.cg-launcher-name{transition:all .3s var(--g-cubic);transition-property:opacity}.cg-launcher-space{width:50px}.cg-launcher-folder{display:flex;justify-content:center;height:80px}.cg-launcher-folder>div{height:80px;width:80px;background:rgba(255,255,255,.3);border-radius:20px;padding:10px 4px 4px 10px;transition:all .3s var(--g-cubic);transition-property:left,top,width,height,opacity;overflow-y:auto}.cg-launcher-folder>div::-webkit-scrollbar{display:none}.cg-launcher-folder>div .cg-launcher-item,.cg-launcher-folder>div .cg-launcher-space{transition:all .3s var(--g-cubic)}.cg-launcher-folder>div.cg-show{padding:50px 0 0 50px}.cg-launcher-folder>div:not(.cg-show):active{filter:brightness(0.6)}.cg-launcher-folder>div:not(.cg-show) .cg-launcher-item{width:22px;margin-bottom:6px}.cg-launcher-folder>div:not(.cg-show) .cg-launcher-icon{background-size:16px;height:16px;pointer-events:none}.cg-launcher-folder>div:not(.cg-show) .cg-launcher-name{display:none}.cg-launcher-folder>div:not(.cg-show) .cg-launcher-space{width:6px}.cg-launcher-list{flex:1;height:0;overflow-y:auto;padding:0 0 0 50px}.cg-launcher-list::-webkit-scrollbar{display:none}.cg-launcher-list.cg-folder-open>.cg-launcher-item>.cg-launcher-inner>.cg-launcher-icon,.cg-launcher-list.cg-folder-open>.cg-launcher-item>.cg-launcher-inner>.cg-launcher-name{opacity:0}.cg-launcher-list.cg-folder-open>.cg-launcher-item>.cg-launcher-inner>.cg-launcher-folder>div:not(.cg-show){opacity:0}[data-cg-pop]{position:absolute;box-shadow:0px 5px 20px rgba(0,0,0,.25);transition:.3s var(--g-cubic);transition-property:transform,opacity;transform:translateY(-10px);opacity:0}[data-cg-pop]:not([data-cg-open]){pointer-events:none}[data-cg-pop][data-cg-open]{transform:translateY(0px);opacity:1}#cg-notify{z-index:20020005}.cg-notify-wrap{background:var(--system-background);position:fixed;padding:15px;border-radius:5px;right:0;top:0;width:280px;font-size:14px;display:flex;transition:.3s var(--g-cubic);transition-property:transform,opacity;overflow:hidden;color:var(--system-color);box-shadow:0 5px 20px rgba(0,0,0,.25);-webkit-backdrop-filter:blur(30px) saturate(1.5);backdrop-filter:blur(30px) saturate(1.5)}.cg-notify-wrap.cg-notify-only{align-items:center}.cg-notify-wrap.cg-notify-full .cg-notify-title{padding-bottom:10px}.cg-notify-icon{margin-right:10px;width:16px;height:16px;border-radius:50%}.cg-notify-icon.cg-primary{background:var(--success)}.cg-notify-icon.cg-info{background:var(--info)}.cg-notify-icon.cg-warning{background:var(--warning)}.cg-notify-icon.cg-danger{background:var(--danger)}.cg-notify-icon.cg-progress{background:var(--cg)}.cg-notify-title{font-size:16px;font-weight:bold}.cg-notify-content{line-height:1.5;word-break:break-word}.cg-notify-progress{position:absolute;bottom:0;left:0;border-radius:1px;background:var(--cg);transition:width 1s ease-out;width:0%;height:2px}#cg-simpletask{left:0;bottom:-46px;width:100%;height:46px;top:initial;background:var(--system-background);-webkit-backdrop-filter:blur(30px) saturate(1.5);backdrop-filter:blur(30px) saturate(1.5);padding:5px 0 5px 5px;display:flex;color:var(--system-color);transition:bottom .3s var(--g-cubic);overflow-x:auto;position:fixed}#cg-simpletask::-webkit-scrollbar{display:none}.cg-simpletask-item{background:rgba(0,0,0,.05);border-radius:3px;padding:10px;display:flex;align-items:center;margin-right:5px}.cg-simpletask-item:hover{background:rgba(0,0,0,.1)}.cg-simpletask-item:active{background:rgba(0,0,0,.2)}.cg-simpletask-icon{margin-right:5px;background-size:cover;width:16px;height:16px}#cg-confirm{z-index:20020006;position:fixed;left:0;top:0;width:100%;height:100%;background:var(--system-background);-webkit-backdrop-filter:blur(150px) saturate(1.5);backdrop-filter:blur(150px) saturate(1.5);justify-content:center;align-items:center}#cg-confirm .cg-confirm-box{background:var(--system-background);width:60%;box-shadow:0 5px 20px rgba(0,0,0,.25);font-size:14px;border-radius:3px;overflow:hidden;color:var(--system-color)}#cg-confirm .cg-confirm-box #cg-confirm-content{padding:25px;line-height:1.5}#cg-confirm .cg-confirm-box .cg-confirm-controls{border-top:solid .5px var(--system-border-color);display:flex}#cg-confirm .cg-confirm-box .cg-confirm-controls>div{padding:20px;flex:1;text-align:center}#cg-confirm .cg-confirm-box .cg-confirm-controls>div:last-child{border-left:solid .5px var(--system-border-color)}#cg-confirm .cg-confirm-box .cg-confirm-controls>div:hover{background:var(--system-background-hover)}#cg-confirm .cg-confirm-box .cg-confirm-controls>div:active{background:var(--system-background-active)}
1
+ #cg-wrap{position:fixed;left:0;top:0;--g-padding:7px;--g-bpadding:18px;--g-margin:2px;--g-radius:0;--g-size:12px;--g-family:"Lucida Sans Unicode","Helvetica Neue","Helvetica","PingFang SC","Hiragino Sans GB","Noto Sans CJK SC","Noto Sans CJK","Source Han Sans","WenQuanYi Micro Hei","Microsoft YaHei","sans-serif";--g-line:1;--g-cubic:cubic-bezier(0.39, 0.575, 0.565, 1);--g-transition:none;--cg:hsl(20, 100%, 65%);--success:hsl(150, 100%, 40%);--success-hover:hsl(150, 100%, 45%);--success-active:hsl(150, 100%, 30%);--success-focus:hsl(150, 100%, 35%);--success-disabled:hsl(150, 0%, 40%);--success-bg:hsl(150, 100%, 98%);--info:hsl(210, 100%, 50%);--info-hover:hsl(210, 100%, 60%);--info-active:hsl(210, 100%, 40%);--info-focus:hsl(210, 100%, 45%);--info-disabled:hsl(210, 0%, 50%);--success-bg:hsl(210, 100%, 98%);--warning:hsl(20, 100%, 70%);--warning-hover:hsl(20, 100%, 80%);--warning-active:hsl(20, 100%, 60%);--warning-focus:hsl(20, 100%, 65%);--warning-disabled:hsl(20, 0%, 70%);--warning-bg:hsl(20, 100%, 98%);--danger:hsl(350, 100%, 50%);--danger-hover:hsl(350, 100%, 70%);--danger-active:hsl(350, 100%, 40%);--danger-focus:hsl(350, 100%, 45%);--danger-disabled:hsl(350, 0%, 50%);--danger-bg:hsl(350, 100%, 98%);--system-color:hsl(0, 0%, 95%);--system-background:hsla(0, 0%, 0%, .35);--system-control-background:hsla(0, 0%, 100%, .03);--system-background-hover:hsla(0, 0%, 100%, .06);--system-background-active:hsla(0, 0%, 100%, .1);--system-border-color:hsla(0, 0%, 100%, .03);--system-border-color-hover:hsla(0, 0%, 100%, .06);--system-placeholder-color: hsla(0, 0%, 100%, .2);--face:hsl(0, 0%, 95%);--face-child:hsl(0, 0%, 90%);--face-hover:hsl(0, 0%, 88%);--face-selected:hsl(0, 0%, 85%);--g-pop-background:#FFF;--g-pop-backdrop:none;--g-pop-border:solid .5px var(--g-border-color);--g-shadow:none;--g-outline-shadow:none;--g-color:hsl(0, 0%, 20%);--g-color-hover:hsl(0, 0%, 30%);--g-color-active:hsl(0, 0%, 10%);--g-color-focus:hsl(0, 0%, 15%);--g-color-disabled:hsl(0, 0%, 60%);--g-background:hsl(0, 0%, 95%);--g-background-hover:hsl(0, 0%, 100%);--g-background-active:hsl(0, 0%, 85%);--g-background-opacity:hsl(0, 0%, 50%, .2);--g-background-focus:hsl(0, 0%, 97.5%);--g-background-disabled:hsl(0, 0%, 75%);--g-border-color:hsl(0, 0%, 40%);--g-border-color-hover:hsl(0, 0%, 50%);--g-border-color-active:hsl(0, 0%, 30%);--g-border-color-focus:hsl(0, 0%, 35%);--g-border-color-disabled:hsl(0, 0%, 60%);--g-focusbox-border-color:var(--g-plain-border-color);--g-plain-color:var(--g-color);--g-plain-color-hover:var(--g-color-hover);--g-plain-color-active:var(--g-color-active);--g-plain-color-focus:var(--g-color-focus);--g-plain-color-disabled:var(--g-color-disabled);--g-plain-background:hsl(0, 0%, 100%);--g-plain-background-hover:hsl(0, 0%, 98%);--g-plain-background-active:hsl(0, 0%, 95%);--g-plain-background-focus:var(--g-plain-background);--g-plain-background-disabled:hsl(0, 0%, 95%);--g-plain-background-selected:hsl(0, 0%, 95%);--g-plain-border-color:hsl(0, 0%, 70%);--g-plain-border-color-hover:hsl(0, 0%, 80%);--g-plain-border-color-active:hsl(0, 0%, 60%);--g-plain-border-color-focus:hsl(0, 0%, 65%);--g-plain-border-color-disabled:hsl(0, 0%, 60%);--g-block-background:hsl(0, 0%, 85%);--g-block-background-hover:hsl(0, 0%, 75%);--g-block-dark-background:hsl(0, 0%, 15%);--g-block-dark-background-hover:hsl(0, 0%, 25%)}[data-cg-disabled]{cursor:not-allowed}#cg-form-list{z-index:20020000}#cg-pop-list{z-index:20020001}#cg-simpletask{z-index:20020002}#cg-rectangle{z-index:20020003;box-sizing:border-box;position:absolute;border-radius:3px;box-shadow:0 0 10px rgba(0,0,0,.25);background:rgba(255,255,255,.05);pointer-events:none;opacity:0}#cg-circular{z-index:20020003;box-sizing:border-box;position:absolute;border:solid 3px var(--cg);border-radius:50%;filter:drop-shadow(0 0 3px var(--cg));pointer-events:none;opacity:0}#cg-gesture{z-index:20020003;box-sizing:border-box;position:absolute;border-radius:50%;pointer-events:none;opacity:0;background:var(--system-background);box-shadow:0px 15px 30px rgba(0,0,0,.07);transform:scale(0);width:20px;height:20px}#cg-gesture.done{background:rgba(255,255,255,.3);border:solid 3px rgba(0,0,0,.3)}#cg-gesture.ani{transition:all .3s var(--g-cubic);transition-property:left,top,transform}#cg-drag{z-index:20020003;box-sizing:border-box;position:absolute;border-radius:3px;pointer-events:none;background:rgba(255,255,255,.1);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 3px 5px rgba(0,0,0,.1);opacity:0;display:flex;justify-content:center;align-items:center;border:solid 1px #fff;transition:all .3s var(--g-cubic);transition-property:transform,border;transform:initial}#cg-launcher{z-index:20020004;box-sizing:border-box;position:fixed;background:var(--system-background);-webkit-backdrop-filter:blur(30px) saturate(1.5);backdrop-filter:blur(30px) saturate(1.5);width:100%;height:100%;left:0;top:0;color:var(--system-color);display:none;flex-direction:column;transition:all .3s var(--g-cubic);transform:scale(1.2);opacity:0}#cg-launcher:not(.cg-show){pointer-events:none}#cg-launcher.cg-show{transform:scale(1);opacity:1}.cg-launcher-search{text-align:center;padding:50px}.cg-launcher-sinput{-webkit-appearance:none;appearance:none;padding:15px;border:solid 1px rgba(0,0,0,0);background:var(--system-control-background);width:60%;border-radius:5px;color:var(--system-color);transition:all .3s var(--g-cubic)}.cg-launcher-sinput::placeholder{color:var(--system-placeholder-color)}.cg-launcher-sinput::selection{background-color:var(--system-background-hover)}.cg-launcher-sinput:focus{outline:none;border-color:var(--system-border-color-hover)}.cg-launcher-foldername{-webkit-appearance:none;appearance:none;height:50px;font-size:28px !important;border:none;background:rgba(0,0,0,0);width:50%;color:var(--system-color);text-align:center}.cg-launcher-foldername::selection{background-color:var(--system-background-hover)}.cg-launcher-foldername:focus{outline:none}.cg-launcher-item{width:190px;display:inline-flex;vertical-align:middle;margin-bottom:50px}.cg-launcher-inner{flex:1;width:0}.cg-launcher-icon{background-position:center;background-size:80px;height:80px;background-repeat:no-repeat}.cg-launcher-icon:active{filter:brightness(0.6)}.cg-launcher-name{font-size:13px;font-weight:bold;text-shadow:0 0 3px rgba(0,0,0,.6);text-align:center;margin-top:20px}.cg-launcher-icon,.cg-launcher-name{transition:all .3s var(--g-cubic);transition-property:opacity}.cg-launcher-space{width:50px}.cg-launcher-folder{display:flex;justify-content:center;height:80px}.cg-launcher-folder>div{height:80px;width:80px;background:rgba(255,255,255,.3);border-radius:20px;padding:10px 4px 4px 10px;transition:all .3s var(--g-cubic);transition-property:left,top,width,height,opacity;overflow-y:auto}.cg-launcher-folder>div::-webkit-scrollbar{display:none}.cg-launcher-folder>div .cg-launcher-item,.cg-launcher-folder>div .cg-launcher-space{transition:all .3s var(--g-cubic)}.cg-launcher-folder>div.cg-show{padding:50px 0 0 50px}.cg-launcher-folder>div:not(.cg-show):active{filter:brightness(0.6)}.cg-launcher-folder>div:not(.cg-show) .cg-launcher-item{width:22px;margin-bottom:6px}.cg-launcher-folder>div:not(.cg-show) .cg-launcher-icon{background-size:16px;height:16px;pointer-events:none}.cg-launcher-folder>div:not(.cg-show) .cg-launcher-name{display:none}.cg-launcher-folder>div:not(.cg-show) .cg-launcher-space{width:6px}.cg-launcher-list{flex:1;height:0;overflow-y:auto;padding:0 0 0 50px}.cg-launcher-list::-webkit-scrollbar{display:none}.cg-launcher-list.cg-folder-open>.cg-launcher-item>.cg-launcher-inner>.cg-launcher-icon,.cg-launcher-list.cg-folder-open>.cg-launcher-item>.cg-launcher-inner>.cg-launcher-name{opacity:0}.cg-launcher-list.cg-folder-open>.cg-launcher-item>.cg-launcher-inner>.cg-launcher-folder>div:not(.cg-show){opacity:0}[data-cg-pop]{position:absolute;box-shadow:0px 15px 30px rgba(0,0,0,.07);transition:.3s var(--g-cubic);transition-property:transform,opacity;transform:translateY(-10px);opacity:0;overflow:hidden}[data-cg-pop]:not([data-cg-open]){pointer-events:none}[data-cg-pop][data-cg-open]{transform:translateY(0px);opacity:1}#cg-notify{z-index:20020005}.cg-notify-wrap{background:var(--system-background);position:fixed;padding:15px;border-radius:5px;right:0;top:0;width:280px;font-size:14px;display:flex;transition:.3s var(--g-cubic);transition-property:transform,opacity;overflow:hidden;color:var(--system-color);box-shadow:0px 15px 30px rgba(0,0,0,.07);-webkit-backdrop-filter:blur(30px) saturate(1.5);backdrop-filter:blur(30px) saturate(1.5);pointer-events:none}.cg-notify-wrap.cg-notify-only{align-items:center}.cg-notify-wrap.cg-notify-full .cg-notify-title{padding-bottom:10px}.cg-notify-icon{margin-right:10px;width:16px;height:16px;border-radius:50%}.cg-notify-icon.cg-primary{background:var(--success)}.cg-notify-icon.cg-info{background:var(--info)}.cg-notify-icon.cg-warning{background:var(--warning)}.cg-notify-icon.cg-danger{background:var(--danger)}.cg-notify-icon.cg-progress{background:var(--cg)}.cg-notify-title{font-size:16px;font-weight:bold}.cg-notify-content{line-height:1.5;word-break:break-word}.cg-notify-progress{position:absolute;bottom:0;left:0;border-radius:1px;background:var(--cg);transition:width 1s ease-out;width:0%;height:2px}#cg-simpletask{left:0;bottom:-46px;width:100%;height:46px;top:initial;background:var(--system-background);-webkit-backdrop-filter:blur(30px) saturate(1.5);backdrop-filter:blur(30px) saturate(1.5);padding:5px 0 5px 5px;display:flex;color:var(--system-color);transition:bottom .3s var(--g-cubic);overflow-x:auto;position:fixed}#cg-simpletask::-webkit-scrollbar{display:none}.cg-simpletask-item{background:rgba(0,0,0,.05);border-radius:3px;padding:10px;display:flex;align-items:center;margin-right:5px}.cg-simpletask-item:hover{background:rgba(0,0,0,.1)}.cg-simpletask-item:active{background:rgba(0,0,0,.2)}.cg-simpletask-icon{margin-right:5px;background-size:cover;width:16px;height:16px}#cg-confirm{z-index:20020006;position:fixed;left:0;top:0;width:100%;height:100%;background:var(--system-background);-webkit-backdrop-filter:blur(150px) saturate(1.5);backdrop-filter:blur(150px) saturate(1.5);justify-content:center;align-items:center}#cg-confirm .cg-confirm-box{background:var(--system-background);width:60%;box-shadow:0px 15px 30px rgba(0,0,0,.07);font-size:14px;border-radius:3px;overflow:hidden;color:var(--system-color)}#cg-confirm .cg-confirm-box #cg-confirm-content{padding:25px;line-height:1.5}#cg-confirm .cg-confirm-box .cg-confirm-controls{border-top:solid .5px var(--system-border-color);display:flex}#cg-confirm .cg-confirm-box .cg-confirm-controls>div{padding:20px;flex:1;text-align:center}#cg-confirm .cg-confirm-box .cg-confirm-controls>div:last-child{border-left:solid .5px var(--system-border-color)}#cg-confirm .cg-confirm-box .cg-confirm-controls>div:hover{background:var(--system-background-hover)}#cg-confirm .cg-confirm-box .cg-confirm-controls>div:active{background:var(--system-background-active)}
@@ -115,6 +115,36 @@ class AbstractControl {
115
115
  return `cg-theme-task${this.taskId}-${this.controlName}_${cla}${this.prep ? (' ' + this.prep + cla) : ''}`;
116
116
  };
117
117
  }
118
+ get alignHComp() {
119
+ if (!this.props.alignH) {
120
+ return undefined;
121
+ }
122
+ switch (this.props.alignH) {
123
+ case 'center': {
124
+ return 'center';
125
+ }
126
+ case 'left':
127
+ case 'start': {
128
+ return 'flex-start';
129
+ }
130
+ }
131
+ return 'flex-end';
132
+ }
133
+ get alignVComp() {
134
+ if (!this.props.alignV) {
135
+ return undefined;
136
+ }
137
+ switch (this.props.alignV) {
138
+ case 'center': {
139
+ return 'center';
140
+ }
141
+ case 'top':
142
+ case 'start': {
143
+ return 'flex-start';
144
+ }
145
+ }
146
+ return 'flex-end';
147
+ }
118
148
  watch(name, cb, opt = {}) {
119
149
  return this.$watch(name, cb, opt);
120
150
  }
@@ -349,7 +379,7 @@ function init(taskId, invoke, cache) {
349
379
  if (t.controls[name].layout.includes('<teleport')) {
350
380
  t.controls[name].layout = tool.teleportGlue(t.controls[name].layout, '{{{formId}}}');
351
381
  }
352
- t.controls[name].access['cgPCMap'] = tool.random(8, tool.RANDOM_LUNS);
382
+ t.controls[name].access['cgPCMap'] = tool.random(8, tool.RANDOM_LUNS, '"<>$');
353
383
  t.controls[name].layout = t.controls[name].layout.replace(/(<cg-[a-zA-Z0-9-_]+)/g, `$1 data-cg-rootcontrol="${t.controls[name].access['cgPCMap']}"`);
354
384
  let cls;
355
385
  if (item.files[item.config.code + '.js']) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2022 Han Guoshuai <zohegs@gmail.com>
2
+ * Copyright 2024 Han Guoshuai <zohegs@gmail.com>
3
3
 
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -130,6 +130,40 @@ export abstract class AbstractControl {
130
130
  };
131
131
  }
132
132
 
133
+ /** --- 获取 alignH 的 css 属性模式,请确保 props.alignH 存在 --- */
134
+ public get alignHComp(): string | undefined {
135
+ if (!(this.props as any).alignH) {
136
+ return undefined;
137
+ }
138
+ switch ((this.props as any).alignH) {
139
+ case 'center': {
140
+ return 'center';
141
+ }
142
+ case 'left':
143
+ case 'start': {
144
+ return 'flex-start'
145
+ }
146
+ }
147
+ return 'flex-end';
148
+ }
149
+
150
+ /** --- 获取 alignH 的 css 属性模式,请确保 props.alignH 存在 --- */
151
+ public get alignVComp(): string | undefined {
152
+ if (!(this.props as any).alignV) {
153
+ return undefined;
154
+ }
155
+ switch ((this.props as any).alignV) {
156
+ case 'center': {
157
+ return 'center';
158
+ }
159
+ case 'top':
160
+ case 'start': {
161
+ return 'flex-start'
162
+ }
163
+ }
164
+ return 'flex-end';
165
+ }
166
+
133
167
  /**
134
168
  * --- 监视变动 ---
135
169
  * @param name 监视的属性或 prop 值
@@ -489,7 +523,7 @@ export async function init(
489
523
  t.controls[name].layout = tool.teleportGlue(t.controls[name].layout, '{{{formId}}}');
490
524
  }
491
525
  // --- 添加父子组件的映射关系 ---
492
- t.controls[name].access['cgPCMap'] = tool.random(8, tool.RANDOM_LUNS);
526
+ t.controls[name].access['cgPCMap'] = tool.random(8, tool.RANDOM_LUNS, '"<>$');
493
527
  t.controls[name].layout = t.controls[name].layout.replace(/(<cg-[a-zA-Z0-9-_]+)/g, `$1 data-cg-rootcontrol="${t.controls[name].access['cgPCMap']}"`);
494
528
  // --- 检测是否有 js ---
495
529
  let cls: any;
package/dist/lib/core.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2022 Han Guoshuai <zohegs@gmail.com>
2
+ * Copyright 2024 Han Guoshuai <zohegs@gmail.com>
3
3
 
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
package/dist/lib/dom.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2022 Han Guoshuai <zohegs@gmail.com>
2
+ * Copyright 2024 Han Guoshuai <zohegs@gmail.com>
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
package/dist/lib/form.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2022 Han Guoshuai <zohegs@gmail.com>
2
+ * Copyright 2024 Han Guoshuai <zohegs@gmail.com>
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2022 Han Guoshuai <zohegs@gmail.com>
2
+ * Copyright 2024 Han Guoshuai <zohegs@gmail.com>
3
3
 
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2023 Han Guoshuai <zohegs@gmail.com>
2
+ * Copyright 2024 Han Guoshuai <zohegs@gmail.com>
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
package/dist/lib/task.js CHANGED
@@ -1055,9 +1055,15 @@ function run(url_1) {
1055
1055
  fetch: function (url, init) {
1056
1056
  return tool.fetch(url, init);
1057
1057
  },
1058
+ get: function (url, opt) {
1059
+ return tool.get(url, opt);
1060
+ },
1058
1061
  post: function (url, data, opt) {
1059
1062
  return tool.post(url, data, opt);
1060
1063
  },
1064
+ getResponseJson: function (url, opt) {
1065
+ return tool.getResponseJson(url, opt);
1066
+ },
1061
1067
  postResponseJson: function (url, data, opt) {
1062
1068
  return tool.postResponseJson(url, data, opt);
1063
1069
  },
package/dist/lib/task.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2022 Han Guoshuai <zohegs@gmail.com>
2
+ * Copyright 2024 Han Guoshuai <zohegs@gmail.com>
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -1186,12 +1186,24 @@ export async function run(url: string | types.IApp, opt: types.ITaskRunOptions =
1186
1186
  fetch: function(url: string, init?: RequestInit): Promise<string | Blob | null> {
1187
1187
  return tool.fetch(url, init);
1188
1188
  },
1189
+ get: function(url: string, opt?: {
1190
+ 'credentials'?: 'include' | 'same-origin' | 'omit';
1191
+ 'headers'?: HeadersInit;
1192
+ }) {
1193
+ return tool.get(url, opt);
1194
+ },
1189
1195
  post: function(url: string, data: Record<string, any> | FormData, opt?: {
1190
1196
  'credentials'?: 'include' | 'same-origin' | 'omit';
1191
1197
  'headers'?: HeadersInit;
1192
1198
  }): Promise<Response | null> {
1193
1199
  return tool.post(url, data, opt);
1194
1200
  },
1201
+ getResponseJson: function(url: string, opt?: {
1202
+ 'credentials'?: 'include' | 'same-origin' | 'omit';
1203
+ 'headers'?: HeadersInit;
1204
+ }): Promise<any | null> {
1205
+ return tool.getResponseJson(url, opt);
1206
+ },
1195
1207
  postResponseJson: function(url: string, data: Record<string, any> | FormData, opt?: {
1196
1208
  'credentials'?: 'include' | 'same-origin' | 'omit';
1197
1209
  'headers'?: HeadersInit;
package/dist/lib/theme.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2022 Han Guoshuai <zohegs@gmail.com>
2
+ * Copyright 2024 Han Guoshuai <zohegs@gmail.com>
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
package/dist/lib/tool.js CHANGED
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.queryParse = exports.queryStringify = exports.formatSecond = exports.compar = exports.execCommand = exports.blob2DataUrl = exports.blob2Text = exports.urlAtom = exports.urlResolve = exports.parseUrl = exports.postResponseJson = exports.post = exports.get = exports.fetch = exports.request = exports.rgb2hsl = exports.escapeHTML = exports.getArray = exports.getNumber = exports.getBoolean = exports.random = exports.RANDOM_LUNS = exports.RANDOM_V = exports.RANDOM_LUN = exports.RANDOM_LU = exports.RANDOM_LN = exports.RANDOM_UN = exports.RANDOM_L = exports.RANDOM_U = exports.RANDOM_N = exports.rand = exports.getMimeByPath = exports.stylePrepend = exports.teleportGlue = exports.eventsAttrWrap = exports.layoutClassPrepend = exports.layoutInsertAttr = exports.layoutAddTagClassAndReTagName = exports.styleUrl2DataUrl = exports.match = exports.purify = exports.sleepFrame = exports.nextFrame = exports.sleep = exports.clone = exports.blob2ArrayBuffer = exports.getClassPrototype = void 0;
12
+ exports.queryParse = exports.queryStringify = exports.formatSecond = exports.compar = exports.execCommand = exports.blob2DataUrl = exports.blob2Text = exports.urlAtom = exports.urlResolve = exports.parseUrl = exports.postResponseJson = exports.getResponseJson = exports.post = exports.get = exports.fetch = exports.request = exports.rgb2hsl = exports.escapeHTML = exports.getArray = exports.getNumber = exports.getBoolean = exports.random = exports.RANDOM_LUNS = exports.RANDOM_V = exports.RANDOM_LUN = exports.RANDOM_LU = exports.RANDOM_LN = exports.RANDOM_UN = exports.RANDOM_L = exports.RANDOM_U = exports.RANDOM_N = exports.rand = exports.getMimeByPath = exports.stylePrepend = exports.teleportGlue = exports.eventsAttrWrap = exports.layoutClassPrepend = exports.layoutInsertAttr = exports.layoutAddTagClassAndReTagName = exports.styleUrl2DataUrl = exports.match = exports.purify = exports.sleepFrame = exports.nextFrame = exports.sleep = exports.clone = exports.blob2ArrayBuffer = exports.getClassPrototype = void 0;
13
13
  function getClassPrototype(obj, over = [], level = 0) {
14
14
  if (level === 0) {
15
15
  return getClassPrototype(Object.getPrototypeOf(obj), over, level + 1);
@@ -429,7 +429,7 @@ exports.RANDOM_LN = exports.RANDOM_L + exports.RANDOM_N;
429
429
  exports.RANDOM_LU = exports.RANDOM_L + exports.RANDOM_U;
430
430
  exports.RANDOM_LUN = exports.RANDOM_L + exports.RANDOM_U + exports.RANDOM_N;
431
431
  exports.RANDOM_V = 'ACEFGHJKLMNPRSTWXY34567';
432
- exports.RANDOM_LUNS = exports.RANDOM_LUN + '()`~!@#$%^&*-+=_|{}[]:;\'<>,.?/]';
432
+ exports.RANDOM_LUNS = exports.RANDOM_LUN + '()`~!@#$%^&*-+=_|{}[]:;\'<>,.?/]"';
433
433
  function random(length = 8, source = exports.RANDOM_LN, block = '') {
434
434
  let len = block.length;
435
435
  if (len > 0) {
@@ -643,6 +643,12 @@ function post(url, data, opt) {
643
643
  return loader.post(url, data, opt);
644
644
  }
645
645
  exports.post = post;
646
+ function getResponseJson(url, opt) {
647
+ return __awaiter(this, void 0, void 0, function* () {
648
+ return loader.getResponseJson(url, opt);
649
+ });
650
+ }
651
+ exports.getResponseJson = getResponseJson;
646
652
  function postResponseJson(url, data, opt) {
647
653
  return __awaiter(this, void 0, void 0, function* () {
648
654
  return loader.postResponseJson(url, data, opt);
package/dist/lib/tool.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2022 Han Guoshuai <zohegs@gmail.com>
2
+ * Copyright 2024 Han Guoshuai <zohegs@gmail.com>
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -580,7 +580,7 @@ export const RANDOM_LN = RANDOM_L + RANDOM_N;
580
580
  export const RANDOM_LU = RANDOM_L + RANDOM_U;
581
581
  export const RANDOM_LUN = RANDOM_L + RANDOM_U + RANDOM_N;
582
582
  export const RANDOM_V = 'ACEFGHJKLMNPRSTWXY34567';
583
- export const RANDOM_LUNS = RANDOM_LUN + '()`~!@#$%^&*-+=_|{}[]:;\'<>,.?/]';
583
+ export const RANDOM_LUNS = RANDOM_LUN + '()`~!@#$%^&*-+=_|{}[]:;\'<>,.?/]"';
584
584
  export function random(length: number = 8, source: string = RANDOM_LN, block: string = ''): string {
585
585
  // --- 剔除 block 字符 ---
586
586
  let len = block.length;
@@ -820,6 +820,14 @@ export function post(url: string, data: Record<string, any> | FormData, opt?: {
820
820
  return loader.post(url, data, opt);
821
821
  }
822
822
 
823
+ /** --- 发送 get 响应为 json 的网络数据,无需 try,失败返回 null */
824
+ export async function getResponseJson(url: string, opt?: {
825
+ 'credentials'?: 'include' | 'same-origin' | 'omit';
826
+ 'headers'?: HeadersInit;
827
+ }): Promise<any | null> {
828
+ return loader.getResponseJson(url, opt);
829
+ }
830
+
823
831
  /** --- 发送响应为 json 的网络数据,无需 try,失败返回 null --- */
824
832
  export async function postResponseJson(url: string, data: Record<string, any> | FormData, opt?: {
825
833
  'credentials'?: 'include' | 'same-origin' | 'omit';
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clickgo",
3
- "version": "3.12.1",
3
+ "version": "3.13.0",
4
4
  "description": "Background interface, software interface, mobile phone APP interface operation library.",
5
5
  "keywords": [
6
6
  "deskrt",
@@ -19,11 +19,11 @@
19
19
  },
20
20
  "devDependencies": {
21
21
  "@litert/eslint-plugin-rules": "^0.1.7",
22
- "@litert/loader": "^3.5.2",
23
- "@types/node": "^20.12.5",
24
- "electron": "^29.2.0",
22
+ "@litert/loader": "^3.5.7",
23
+ "@types/node": "^20.14.6",
24
+ "electron": "^31.0.2",
25
25
  "jszip": "^3.10.1",
26
- "terser": "^5.30.3",
27
- "typescript": "^5.4.4"
26
+ "terser": "^5.31.1",
27
+ "typescript": "^5.4.5"
28
28
  }
29
29
  }
package/types/index.d.ts CHANGED
@@ -776,6 +776,14 @@ export interface IGreatlistItemclickedEvent {
776
776
  };
777
777
  }
778
778
 
779
+ export interface IGreatlistItemdblclickedEvent {
780
+ 'detail': {
781
+ 'event': MouseEvent | TouchEvent;
782
+ 'value': number;
783
+ 'arrow': boolean;
784
+ };
785
+ }
786
+
779
787
  // --- Greatselect Control ---
780
788
 
781
789
  export interface IGreatselectChangeEvent extends ICustomEvent {
@@ -922,6 +930,14 @@ export interface IListItemclickedEvent {
922
930
  };
923
931
  }
924
932
 
933
+ export interface IListItemdblclickedEvent {
934
+ 'detail': {
935
+ 'event': MouseEvent | TouchEvent;
936
+ 'value': string;
937
+ 'arrow': boolean;
938
+ };
939
+ }
940
+
925
941
  // --- Nav Item ---
926
942
 
927
943
  export interface INavItemSelectEvent extends ICustomEvent {