clickgo 3.11.30 → 3.11.32

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/README.md CHANGED
@@ -28,7 +28,7 @@ Load the module loader first, and then load it using the module loader.
28
28
  **index.html**
29
29
 
30
30
  ```html
31
- <script src="https://cdn.jsdelivr.net/npm/@litert/loader@3.5.1/dist/loader.min.js?path=index&npm={'clickgo':'3.11.30'}"></script>
31
+ <script src="https://cdn.jsdelivr.net/npm/@litert/loader@3.5.1/dist/loader.min.js?path=index&npm={'clickgo':'3.11.32'}"></script>
32
32
  ```
33
33
 
34
34
  **index.js**
@@ -68,6 +68,23 @@ class default_1 extends clickgo.form.AbstractForm {
68
68
  this.select = [];
69
69
  this.select2 = ['Appraise'];
70
70
  this.label2 = [''];
71
+ this.listData5 = [
72
+ {
73
+ 'name': 'hi',
74
+ 'id': '1'
75
+ },
76
+ {
77
+ 'name': 'hi2',
78
+ 'id': '2',
79
+ 'sub': [
80
+ {
81
+ 'name': 'hi3',
82
+ 'id': '3'
83
+ }
84
+ ]
85
+ }
86
+ ];
87
+ this.listMap5 = undefined;
71
88
  this.selectObject = ['test'];
72
89
  this.listDataObject = {
73
90
  'test': 'This is test',
@@ -64,6 +64,10 @@
64
64
  </layout>
65
65
  </template>
66
66
  </list>
67
+ <layout direction="v" gutter="10" style="flex: 1; width: 0;">
68
+ <list :disabled="disabled" :must="must" :multi="multi" :ctrl="ctrl" :selection="selection" :gesture="gesture ? ['top', 'bottom'] : []" @gesture="onGesture" :scroll="scroll" :virtual="virtual":data="listData5" :check="check" :map="listMap5" style="flex: 1;"></list>
69
+ <button v-if="listMap5===undefined" @click="listMap5={'label':'name','value':'id','children':'sub'}">Set map</button>
70
+ </layout>
67
71
  </layout>
68
72
  <label class="tip">Right-click (computer) or press and hold (phone) to open the universal menu.</label>
69
73
  </layout>
@@ -1,5 +1,5 @@
1
1
  <form width="300" height="300" title="Loading" padding="10">
2
- <layout direction="v" gutter="10">
2
+ <layout direction="v" gutter="20">
3
3
  <loading style="width: 50px; height: 50px;"></loading>
4
4
  <loading style="width: 40px; height: 40px;"></loading>
5
5
  <loading style="width: 30px; height: 30px;"></loading>
@@ -39,6 +39,7 @@ class default_1 extends clickgo.form.AbstractForm {
39
39
  this.checked1 = false;
40
40
  this.checked2 = false;
41
41
  this.checked3 = false;
42
+ this.checked4 = 0;
42
43
  this.disabled = false;
43
44
  }
44
45
  onChange(e) {
@@ -13,6 +13,10 @@
13
13
  <switch :disabled="disabled" @change="onChange" />
14
14
  <label style="flex: 1;">not</label>
15
15
  </layout>
16
+ <layout gutter="10" align-v="center">
17
+ <switch v-model="checked4" :disabled="disabled" :map="{'true':0,'false':1}"></switch>
18
+ <label style="flex: 1;">{{checked4}}</label>
19
+ </layout>
16
20
  <button @click="disabled = !disabled">{{disabled ? 'Remove' : 'Set'}} disabled</button>
17
21
  </layout>
18
22
  </form>
@@ -67,6 +67,7 @@ class default_1 extends clickgo.form.AbstractForm {
67
67
  this.phcolor = undefined;
68
68
  this.max = undefined;
69
69
  this.min = undefined;
70
+ this.beforechange = false;
70
71
  }
71
72
  get textBorder() {
72
73
  switch (this.border) {
@@ -92,5 +93,17 @@ long`;
92
93
  yield clickgo.form.dialog('onGesture: ' + dir);
93
94
  });
94
95
  }
96
+ onBeforechange(e) {
97
+ if (!this.beforechange) {
98
+ return;
99
+ }
100
+ if (e.detail.value === '1345') {
101
+ e.preventDefault();
102
+ return;
103
+ }
104
+ if (e.detail.value === '1346') {
105
+ e.detail.change = '0000';
106
+ }
107
+ }
95
108
  }
96
109
  exports.default = default_1;
@@ -2,7 +2,7 @@
2
2
  <layout direction="v" gutter="10" style="padding: 10px; flex: 1; width: 0;">
3
3
  <label>Text Length: {{value.length}}, Selection Start: {{selectionStart}}, Selection End: {{selectionEnd}}, Focus: {{isFocus}}</label>
4
4
  <label>Scroll Left: {{scrollLeft}}, Scroll Top: {{scrollTop}}, Scroll Height: {{scrollHeight}}, Scroll Width: {{scrollWidth}}, Client Height: {{clientHeight}}, Client Width: {{clientWidth}}</label>
5
- <text v-model="value" placeholder="placeholder" :type="type[0]" :gesture="gesture ? ['top', 'bottom'] : []" @gesture="onGesture" :disabled="disabled" :readonly="readonly" :adaption="adaption" :scroll="scroll" :maxlength="maxlength" :wrap="wrap" :max="max" :min="min" v-model:scroll-left="scrollLeft" v-model:scroll-top="scrollTop" v-model:selection-start="selectionStart" v-model:selection-end="selectionEnd" @clientheight="clientHeight = $event" @clientwidth="clientWidth = $event" @scrollheight="scrollHeight = $event" @scrollwidth="scrollWidth = $event" @focus="isFocus = true" @blur="isFocus = false" :style="{'flex': (type[0] === 'multi') && (!adaption || scroll || !wrap) ? '1' : undefined, 'line-height': lineHeight, 'font-size': fontSize + 'px', 'background': background, 'color': background ? '#FFF' : undefined, 'height': (type[0] === 'multi') && (!adaption || scroll || !wrap) ? '0' : undefined, 'border-width': textBorder}" :class="[phcolor && ('ph-' + phcolor)]">
5
+ <text v-model="value" placeholder="placeholder" :type="type[0]" :gesture="gesture ? ['top', 'bottom'] : []" @gesture="onGesture" :disabled="disabled" :readonly="readonly" :adaption="adaption" :scroll="scroll" :maxlength="maxlength" :wrap="wrap" :max="max" :min="min" v-model:scroll-left="scrollLeft" v-model:scroll-top="scrollTop" v-model:selection-start="selectionStart" v-model:selection-end="selectionEnd" @clientheight="clientHeight = $event" @clientwidth="clientWidth = $event" @scrollheight="scrollHeight = $event" @scrollwidth="scrollWidth = $event" @focus="isFocus = true" @blur="isFocus = false" @beforechange="onBeforechange" :style="{'flex': (type[0] === 'multi') && (!adaption || scroll || !wrap) ? '1' : undefined, 'line-height': lineHeight, 'font-size': fontSize + 'px', 'background': background, 'color': background ? '#FFF' : undefined, 'height': (type[0] === 'multi') && (!adaption || scroll || !wrap) ? '0' : undefined, 'border-width': textBorder}" :class="[phcolor && ('ph-' + phcolor)]">
6
6
  <menulist v-if="menu">
7
7
  <menulist-item>Custom</menulist-item>
8
8
  </menulist>
@@ -21,6 +21,7 @@
21
21
  <button @click="wrap = !wrap" style="flex: 1;">{{wrap ? '' : '!'}}wrap</button>
22
22
  <button @click="menu = !menu" style="flex: 1;">{{menu ? '' : '!'}}menu</button>
23
23
  <button @click="gesture = !gesture" style="flex: 1;">{{gesture ? '' : '!'}}gesture</button>
24
+ <button @click="beforechange = !beforechange" style="flex: 1;">{{beforechange ? '' : '!'}}beforechange</button>
24
25
  </layout>
25
26
  <layout gutter="10">
26
27
  <button @click="prepend = !prepend" style="flex: 1;">{{prepend ? '' : '!'}}prepend</button>
@@ -142,8 +142,8 @@ class default_1 extends clickgo.form.AbstractForm {
142
142
  icon = yield clickgo.tool.blob2DataUrl(icon);
143
143
  }
144
144
  const nid = clickgo.form.notify({
145
- 'title': 'Notify',
146
- 'content': 'Content',
145
+ 'title': this.progress[0] === 'only content' ? undefined : 'Notify',
146
+ 'content': this.progress[0] === 'only title' ? undefined : 'Content',
147
147
  'type': this.type[0],
148
148
  'progress': (this.progress[0] === 'progress + icon') ? true : false,
149
149
  'icon': icon
@@ -39,7 +39,7 @@
39
39
  <button @click="showDrag" ref="showDrag">showDrag()</button>
40
40
  <layout gutter="10">
41
41
  <select v-model="type" :data="['primary', 'info', 'warning', 'danger']"></select>
42
- <select v-model="progress" :data="['normal', 'progress + icon']" style="flex: 1; width: 0;"></select>
42
+ <select v-model="progress" :data="['normal', 'progress + icon', 'only title', 'only content']" style="flex: 1; width: 0;"></select>
43
43
  <button @click="notify" style="padding: 0 10px;">notify({ ... })</button>
44
44
  </layout>
45
45
  <button @click="showPop">showPop(e.currentTarget, this.refs.pop)</button>
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.11.30';
27
+ const version = '3.11.32';
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.11.30';
16
+ const version = '3.11.32';
17
17
  export function getVersion(): string {
18
18
  return version;
19
19
  }
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-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;padding-bottom:10px}.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);--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)}
@@ -92,16 +92,19 @@ class AbstractControl {
92
92
  }
93
93
  get l() {
94
94
  return (key, data) => {
95
- var _a, _b, _c, _d, _e, _f;
96
- if (data) {
97
- return (_c = (_b = (_a = data[this.locale]) === null || _a === void 0 ? void 0 : _a[key]) !== null && _b !== void 0 ? _b : data['en'][key]) !== null && _c !== void 0 ? _c : '[LocaleError]' + key;
98
- }
99
- else if (this.localeData) {
100
- return (_f = (_e = (_d = this.localeData[this.locale]) === null || _d === void 0 ? void 0 : _d[key]) !== null && _e !== void 0 ? _e : this.localeData['en'][key]) !== null && _f !== void 0 ? _f : '[LocaleError]' + key;
101
- }
102
- else {
103
- return '[LocaleError]' + key;
95
+ var _a, _b;
96
+ const loc = (_b = (_a = this.localeData) === null || _a === void 0 ? void 0 : _a[this.locale][key]) !== null && _b !== void 0 ? _b : '[LocaleError]' + key;
97
+ if (!data) {
98
+ return loc;
104
99
  }
100
+ let i = -1;
101
+ return loc.replace(/\?/g, function () {
102
+ ++i;
103
+ if (!data[i]) {
104
+ return '';
105
+ }
106
+ return data[i];
107
+ });
105
108
  };
106
109
  }
107
110
  get classPrepend() {
@@ -102,20 +102,20 @@ export abstract class AbstractControl {
102
102
  /**
103
103
  * --- 获取语言内容 ---
104
104
  */
105
- public get l(): (
106
- key: string,
107
- data?: Record<string, Record<string, string>>
108
- ) => string {
109
- return (key: string, data?: Record<string, Record<string, string>>): string => {
110
- if (data) {
111
- return data[this.locale]?.[key] ?? data['en'][key] ?? '[LocaleError]' + key;
112
- }
113
- else if ((this as any).localeData) {
114
- return (this as any).localeData[this.locale]?.[key] ?? (this as any).localeData['en'][key] ?? '[LocaleError]' + key;
115
- }
116
- else {
117
- return '[LocaleError]' + key;
105
+ public get l(): (key: string, data?: string[]) => string {
106
+ return (key: string, data?: string[]): string => {
107
+ const loc = (this as any).localeData?.[this.locale][key] ?? '[LocaleError]' + key;
108
+ if (!data) {
109
+ return loc;
118
110
  }
111
+ let i: number = -1;
112
+ return loc.replace(/\?/g, function() {
113
+ ++i;
114
+ if (!data[i]) {
115
+ return '';
116
+ }
117
+ return data[i];
118
+ });
119
119
  };
120
120
  }
121
121
 
@@ -219,36 +219,28 @@ export abstract class AbstractControl {
219
219
  };
220
220
  }
221
221
 
222
- /**
223
- * --- 获取 props 中的 boolean 类型的值 ----
224
- */
222
+ /** --- 获取 props 中的 boolean 类型的值 --- */
225
223
  public get propBoolean() {
226
224
  return (name: keyof this['props']): boolean => {
227
225
  return tool.getBoolean((this.props as any)[name]);
228
226
  };
229
227
  }
230
228
 
231
- /**
232
- * --- 获取 props 中的 number 类型的值 ----
233
- */
229
+ /** --- 获取 props 中的 number 类型的值 --- */
234
230
  public get propNumber() {
235
231
  return (name: keyof this['props']): number => {
236
232
  return tool.getNumber((this.props as any)[name]);
237
233
  };
238
234
  }
239
235
 
240
- /**
241
- * --- 获取 props 中的 int 类型的值 ----
242
- */
236
+ /** --- 获取 props 中的 int 类型的值 --- */
243
237
  public get propInt() {
244
238
  return (name: keyof this['props']): number => {
245
239
  return Math.round(this.propNumber(name));
246
240
  };
247
241
  }
248
242
 
249
- /**
250
- * --- 获取 props 中的 array 类型的值 ----
251
- */
243
+ /** --- 获取 props 中的 array 类型的值 --- */
252
244
  public get propArray() {
253
245
  return (name: keyof this['props']): any[] => {
254
246
  return tool.getArray((this.props as any)[name]);
package/dist/lib/form.js CHANGED
@@ -1479,12 +1479,13 @@ function notify(opt) {
1479
1479
  el.setAttribute('data-notifyid', nid.toString());
1480
1480
  el.style.transform = `translateY(${y}px) translateX(280px)`;
1481
1481
  el.style.opacity = '1';
1482
- el.innerHTML = `<div class="cg-notify-icon cg-${tool.escapeHTML((_a = opt.type) !== null && _a !== void 0 ? _a : 'primary')}"></div>
1483
- <div style="flex: 1;">
1484
- <div class="cg-notify-title">${tool.escapeHTML(opt.title)}</div>
1485
- <div class="cg-notify-content">${tool.escapeHTML(opt.content).replace(/\r\n/g, '\n').replace(/\r/g, '\n').replace(/\n/g, '<br>')}</div>
1486
- ${opt.progress ? '<div class="cg-notify-progress"></div>' : ''}
1487
- </div>`;
1482
+ el.classList.add((opt.title && opt.content) ? 'cg-notify-full' : 'cg-notify-only');
1483
+ el.innerHTML = `<div class="cg-notify-icon cg-${tool.escapeHTML((_a = opt.type) !== null && _a !== void 0 ? _a : 'primary')}"></div>` +
1484
+ '<div style="flex: 1;">' +
1485
+ (opt.title ? `<div class="cg-notify-title">${tool.escapeHTML(opt.title)}</div>` : '') +
1486
+ (opt.content ? `<div class="cg-notify-content">${tool.escapeHTML(opt.content).replace(/\r\n/g, '\n').replace(/\r/g, '\n').replace(/\n/g, '<br>')}</div>` +
1487
+ `${opt.progress ? '<div class="cg-notify-progress"></div>' : ''}` : '') +
1488
+ '</div>';
1488
1489
  if (opt.icon) {
1489
1490
  el.childNodes.item(0).style.background = 'url(' + opt.icon + ')';
1490
1491
  el.childNodes.item(0).style.backgroundSize = '16px';
package/dist/lib/form.ts CHANGED
@@ -1957,12 +1957,13 @@ export function notify(opt: types.INotifyOptions): number {
1957
1957
  el.setAttribute('data-notifyid', nid.toString());
1958
1958
  el.style.transform = `translateY(${y}px) translateX(280px)`;
1959
1959
  el.style.opacity = '1';
1960
- el.innerHTML = `<div class="cg-notify-icon cg-${tool.escapeHTML(opt.type ?? 'primary')}"></div>
1961
- <div style="flex: 1;">
1962
- <div class="cg-notify-title">${tool.escapeHTML(opt.title)}</div>
1963
- <div class="cg-notify-content">${tool.escapeHTML(opt.content).replace(/\r\n/g, '\n').replace(/\r/g, '\n').replace(/\n/g, '<br>')}</div>
1964
- ${opt.progress ? '<div class="cg-notify-progress"></div>' : ''}
1965
- </div>`;
1960
+ el.classList.add((opt.title && opt.content) ? 'cg-notify-full' : 'cg-notify-only');
1961
+ el.innerHTML = `<div class="cg-notify-icon cg-${tool.escapeHTML(opt.type ?? 'primary')}"></div>` +
1962
+ '<div style="flex: 1;">' +
1963
+ (opt.title ? `<div class="cg-notify-title">${tool.escapeHTML(opt.title)}</div>` : '') +
1964
+ (opt.content ? `<div class="cg-notify-content">${tool.escapeHTML(opt.content).replace(/\r\n/g, '\n').replace(/\r/g, '\n').replace(/\n/g, '<br>')}</div>` +
1965
+ `${opt.progress ? '<div class="cg-notify-progress"></div>' : ''}` : '') +
1966
+ '</div>';
1966
1967
  if (opt.icon) {
1967
1968
  (el.childNodes.item(0) as HTMLElement).style.background = 'url(' + opt.icon + ')';
1968
1969
  (el.childNodes.item(0) as HTMLElement).style.backgroundSize = '16px';
package/dist/lib/task.js CHANGED
@@ -391,10 +391,6 @@ function run(url_1) {
391
391
  }
392
392
  };
393
393
  }
394
- invoke.navigator = {};
395
- if (navigator.clipboard) {
396
- invoke.navigator.clipboard = navigator.clipboard;
397
- }
398
394
  invoke.invokeClickgo = {
399
395
  getVersion: function () {
400
396
  return clickgo.getVersion();
package/dist/lib/task.ts CHANGED
@@ -448,10 +448,6 @@ export async function run(url: string | types.IApp, opt: types.ITaskRunOptions =
448
448
  }
449
449
  };
450
450
  }
451
- invoke.navigator = {};
452
- if (navigator.clipboard) {
453
- invoke.navigator.clipboard = navigator.clipboard;
454
- }
455
451
  // --- ClickGo 相关 ---
456
452
  invoke.invokeClickgo = {
457
453
  getVersion: function(): string {
package/dist/lib/tool.js CHANGED
@@ -378,7 +378,11 @@ function stylePrepend(style, prep = '') {
378
378
  return t1 + prep + t2 + t3;
379
379
  });
380
380
  for (const keyframe of keyframeList) {
381
- const reg = new RegExp(`(animation[ :\\r\\n]+)(${keyframe})([ ;}\\r\\n])`, 'gi');
381
+ let reg = new RegExp(`(animation[ :\\r\\n]+)(${keyframe})([ ;}\\r\\n])`, 'gi');
382
+ style = style.replace(reg, function (t, t1, t2, t3) {
383
+ return t1 + prep + t2 + t3;
384
+ });
385
+ reg = new RegExp(`(animation-name[ :\\r\\n]+)(${keyframe})([ ;}\\r\\n])`, 'gi');
382
386
  style = style.replace(reg, function (t, t1, t2, t3) {
383
387
  return t1 + prep + t2 + t3;
384
388
  });
@@ -466,9 +470,15 @@ function getArray(param) {
466
470
  if (typeof param !== 'string') {
467
471
  return param;
468
472
  }
473
+ param = param.trim();
469
474
  let rtn = [];
470
475
  if (param.startsWith('[')) {
471
- rtn = JSON.parse(param);
476
+ try {
477
+ rtn = JSON.parse(param);
478
+ }
479
+ catch (_a) {
480
+ return [];
481
+ }
472
482
  }
473
483
  else {
474
484
  param = param.replace(/ /g, '');
package/dist/lib/tool.ts CHANGED
@@ -519,10 +519,15 @@ export function stylePrepend(style: string, prep: string = ''): { 'style': strin
519
519
  );
520
520
  // --- 对自定义 keyframe 进行更名 ---
521
521
  for (const keyframe of keyframeList) {
522
- const reg = new RegExp(`(animation[ :\\r\\n]+)(${keyframe})([ ;}\\r\\n])`, 'gi');
522
+ let reg = new RegExp(`(animation[ :\\r\\n]+)(${keyframe})([ ;}\\r\\n])`, 'gi');
523
523
  style = style.replace(reg, function(t, t1: string, t2: string, t3: string) {
524
524
  return t1 + prep + t2 + t3;
525
525
  });
526
+ reg = new RegExp(`(animation-name[ :\\r\\n]+)(${keyframe})([ ;}\\r\\n])`, 'gi');
527
+ style = style.replace(reg, function(t, t1: string, t2: string, t3: string) {
528
+ return t1 + prep + t2 + t3;
529
+ });
530
+ // --- 为什么分两个呢?一个加 (-name)? 也行,但是后面的 tx 不好合并 ---
526
531
  }
527
532
  return {
528
533
  'prep': prep,
@@ -622,16 +627,22 @@ export function getNumber(param: string | number): number {
622
627
  }
623
628
 
624
629
  /**
625
- * --- 根据参数获取最终的数组型 ---
630
+ * --- 根据参数获取最终的数组型,可传入类似 [1,2,3] 或 1,2,3 ---
626
631
  * @param param 参数
627
632
  */
628
633
  export function getArray(param: string | any[]): any[] {
629
634
  if (typeof param !== 'string') {
630
635
  return param;
631
636
  }
637
+ param = param.trim();
632
638
  let rtn: any[] = [];
633
639
  if (param.startsWith('[')) {
634
- rtn = JSON.parse(param);
640
+ try {
641
+ rtn = JSON.parse(param);
642
+ }
643
+ catch {
644
+ return [];
645
+ }
635
646
  }
636
647
  else {
637
648
  param = param.replace(/ /g, '');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clickgo",
3
- "version": "3.11.30",
3
+ "version": "3.11.32",
4
4
  "description": "Background interface, software interface, mobile phone APP interface operation library.",
5
5
  "keywords": [
6
6
  "deskrt",
package/types/index.d.ts CHANGED
@@ -628,8 +628,8 @@ export interface IMoveDragOptions {
628
628
  }
629
629
 
630
630
  export interface INotifyOptions {
631
- 'title': string;
632
- 'content': string;
631
+ 'title'?: string;
632
+ 'content'?: string;
633
633
  'icon'?: string | null;
634
634
  'timeout'?: number;
635
635
  'type'?: 'primary' | 'info' | 'warning' | 'danger' | 'progress';
@@ -675,6 +675,15 @@ export interface ICheckChangedEvent {
675
675
  };
676
676
  }
677
677
 
678
+ // --- Text Control ---
679
+
680
+ export interface ITextBeforechangeEvent extends ICustomEvent {
681
+ 'detail': {
682
+ 'value': string;
683
+ 'change'?: string;
684
+ }
685
+ }
686
+
678
687
  // --- Form Control ---
679
688
 
680
689
  export interface IFormCloseEvent extends ICustomEvent {