snail.vue 1.0.17 → 1.0.18

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.
@@ -2,25 +2,25 @@
2
2
  .snail-button{align-items:center;border-radius:2px;cursor:pointer;display:inline-flex;font-size:14px;justify-content:center;white-space:nowrap}.snail-button.max{height:40px;width:120px}.snail-button.middle{height:32px;width:80px}.snail-button.normal{height:28px;width:54px}.snail-button.small{height:20px;width:30px}.snail-button.primary{background-color:#5ca3ff;color:#fff}.snail-button.default{background-color:#fff;border:1px solid #dddfed;color:#2e2f33}.snail-button.link{color:#4c9aff}
3
3
  /* src:base\footer.vue index:0 */
4
4
  .snail-footer{align-items:center;background-color:#fff;display:flex;height:72px;padding:0 40px;width:100%}.snail-footer.start-divider{border-top:1px solid #dddfed}.snail-footer.left{justify-content:left}.snail-footer.left>.snail-button{margin-left:20px}.snail-footer.center{justify-content:center}.snail-footer.center>.snail-button:nth-child(n+2){margin-left:20px}.snail-footer.right{justify-content:right}.snail-footer.right>.snail-button{margin-right:20px}
5
- /* src:base\header.vue index:0 */
6
- .snail-header{align-items:center;background-color:#fff;display:flex;flex-direction:row;position:relative;width:100%}.snail-header>.header-title{color:#2e3033;flex:1;line-height:48px;overflow:hidden;padding-left:24px;text-overflow:ellipsis;white-space:nowrap}.snail-header>.header-title.center{text-align:center}.snail-header>.header-title.right{text-align:right}.snail-header>.header-slot{flex:1}.snail-header.start-divider{border-bottom:1px solid #dddfed}.snail-header.page{height:48px}.snail-header.page>.header-title{font-size:16px;font-weight:700}.snail-header.page>.close-icon{margin-right:18px}.snail-header.dialog{height:64px;padding-top:16px}.snail-header.dialog>.header-title{font-size:20px}.snail-header.dialog>.close-icon{position:absolute;right:8px;top:8px}
7
- /* src:base\icon.vue index:0 */
8
- .snail-icon{cursor:pointer;opacity:1}
9
5
  /* src:container\dynamic.vue index:0 */
10
6
  .snail-dynamic-error{color:red}.snail-dynamic-error>span{color:gray}
7
+ /* src:base\header.vue index:0 */
8
+ .snail-header{align-items:center;background-color:#fff;display:flex;flex-direction:row;position:relative;width:100%}.snail-header>.header-title{color:#2e3033;flex:1;line-height:48px;overflow:hidden;padding-left:24px;text-overflow:ellipsis;white-space:nowrap}.snail-header>.header-title.center{text-align:center}.snail-header>.header-title.right{text-align:right}.snail-header>.header-slot{flex:1}.snail-header.start-divider{border-bottom:1px solid #dddfed}.snail-header.page{height:48px}.snail-header.page>.header-title{font-size:16px;font-weight:700}.snail-header.page>.close-icon{margin-right:18px}.snail-header.dialog{height:64px;padding-top:16px}.snail-header.dialog>.header-title{font-size:20px}.snail-header.dialog>.close-icon{position:absolute;right:8px;top:8px}
11
9
  /* src:container\scroll.vue index:0 */
12
10
  .snail-scroll{overflow:hidden}.snail-scroll.scroll-x{overflow-x:auto}.snail-scroll.scroll-y{overflow-y:auto}
13
- /* src:container\table.vue index:0 */
14
- .snail-table{display:flex;flex-direction:column}.snail-table>header.table-footer,.snail-table>header.table-header{align-items:center;display:flex;flex-shrink:0;width:100%}.snail-table>header.table-header{position:sticky!important;top:0}.snail-table>main.table-body{flex:1;width:100%}.snail-table>main.table-body>.table-row{align-items:center;display:flex}.snail-table>header.table-header>.table-col,.snail-table>main.table-body>.table-row>.table-col{align-items:center;display:inline-flex;height:100%;white-space:nowrap}.snail-table.start-border>header.table-header>.table-col:nth-child(n+2),.snail-table.start-border>main.table-body>.table-row>.table-col:nth-child(n+2),.snail-table.start-border>main.table-footer>.table-col:nth-child(n+2){border-left:none!important}.snail-table.start-border>main.table-body>.table-row>.table-col{border-top:none!important}
11
+ /* src:base\icon.vue index:0 */
12
+ .snail-icon{cursor:pointer;opacity:1}
15
13
  /* src:prompt\drag-verify.vue index:0 */
16
14
  .snail-drag-verify{background:#f8f9fa;border:1px solid #dddfed;border-radius:8px;height:40px;overflow:hidden;position:relative;width:100%}.snail-drag-verify>div{height:100%;width:100%}.snail-drag-verify>.drag-progress{background-color:#0c6;transition:width .5s ease-in-out}.snail-drag-verify>.drag-handle,.snail-drag-verify>.verify-message{left:0;position:absolute;top:0;transition:left .5s ease-in-out}.snail-drag-verify>.verify-message{align-items:center;background-image:-webkit-linear-gradient(left,#666,#666 45%,#fff 50%,#666 55%,#666);color:#7e848c;display:flex;font-size:12px;font-weight:400;justify-content:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-text-fill-color:transparent;animation:snail-drag-verify 2s linear infinite;-webkit-background-clip:text;background-clip:text;background-size:200% 100%}.snail-drag-verify>.drag-handle{align-items:center;background-color:#fff;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAnUExURQAAAGBQUGBaWmJZWWJYWGNYWGNZWWJYWGJZWWBYWGNYWGNZWWRYWIqwlb0AAAANdFJOUwAQMMDQoFBgcCCw4ECQ8pPMAAAAP0lEQVQI12NgwATTGBgawAwRBYZwMIPRiYErAcxSFmA0AjN4HBikBcCsUgYmQxQGE0wKphhIQrSzwAyEW4EOACHhB32zIad6AAAAAElFTkSuQmCC);background-position:50%;background-repeat:no-repeat;border-right:1px solid #dddfed;cursor:move;display:flex;justify-content:center;width:40px}.snail-drag-verify.dragging>.drag-handle,.snail-drag-verify.dragging>.drag-progress{transition:none!important}.snail-drag-verify.success>.verify-message{-webkit-text-fill-color:#fff;color:#fff}.snail-drag-verify.success>.drag-handle>svg{background:#76c61d;border-radius:50%;padding:4px}@keyframes snail-drag-verify{0%{background-position:0 0}to{background-position:-200% 0}}
17
- /* src:prompt\loading.vue index:0 */
18
- .snail-loading{bottom:0;left:0;position:absolute;right:0;top:0;z-index:10000}.snail-loading.show-mask{background-color:rgba(0,0,0,.15)}.snail-loading:after,.snail-loading:before{animation:snail-loading-stretch 1s ease-in-out infinite;border-radius:50%;content:"";display:block;display:inline-block;height:10px;left:50%;margin-left:-18px;margin-top:-6px;position:absolute;top:50%;width:10px}.snail-loading:before{background-color:#279bf1}.snail-loading:after{animation-delay:-.5s;background:#64d214;margin-left:0;margin-right:-18px}@keyframes snail-loading-stretch{0%,to{transform:scale(1)}50%{transform:scale(2)}}.snail-loading-enter-active,.snail-loading-leave-active{transition:opacity .5s ease-in-out}.snail-loading-enter-from,.snail-loading-leave-to{opacity:0}
15
+ /* src:container\table.vue index:0 */
16
+ .snail-table{display:flex;flex-direction:column}.snail-table>header.table-footer,.snail-table>header.table-header{align-items:center;display:flex;flex-shrink:0;width:100%}.snail-table>header.table-header{position:sticky!important;top:0}.snail-table>main.table-body{flex:1;width:100%}.snail-table>main.table-body>.table-row{align-items:center;display:flex}.snail-table>header.table-header>.table-col,.snail-table>main.table-body>.table-row>.table-col{align-items:center;display:inline-flex;height:100%;white-space:nowrap}.snail-table.start-border>header.table-header>.table-col:nth-child(n+2),.snail-table.start-border>main.table-body>.table-row>.table-col:nth-child(n+2),.snail-table.start-border>main.table-footer>.table-col:nth-child(n+2){border-left:none!important}.snail-table.start-border>main.table-body>.table-row>.table-col{border-top:none!important}
19
17
  /* src:prompt\no-data.vue index:0 */
20
18
  .snail-no-data{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.snail-no-data>img{height:60px;width:60px}.snail-no-data>div.hint-message{color:#babdc2;font-size:14px;font-weight:400;padding:0 10px 10px}
21
- /* src:container\components\dialog-wrapper.vue index:0 */
22
- .snail-dialog{align-items:center;bottom:0;display:flex;justify-content:center;left:0;overflow:hidden;position:fixed;right:0;top:0}.snail-dialog:before{background-color:rgba(24,27,33,.45);content:"";height:100%;position:absolute;width:100%}.snail-dialog>.dialog-body{background-color:#fff;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.3);box-sizing:border-box;position:relative}.snail-dialog.unactive:before{display:none!important}.snail-dialog.unactive>.dialog-body{box-shadow:0 0 4px rgba(0,0,0,.3)}.snail-dialog-enter-active,.snail-dialog-leave-active{transition:scale .1s ease-in-out,opacity .1s ease}.snail-dialog-enter-from{opacity:0;scale:.4}.snail-dialog-leave-to{opacity:0;scale:0}
19
+ /* src:prompt\loading.vue index:0 */
20
+ .snail-loading{bottom:0;left:0;position:absolute;right:0;top:0;z-index:10000}.snail-loading.show-mask{background-color:rgba(0,0,0,.15)}.snail-loading:after,.snail-loading:before{animation:snail-loading-stretch 1s ease-in-out infinite;border-radius:50%;content:"";display:block;display:inline-block;height:10px;left:50%;margin-left:-18px;margin-top:-6px;position:absolute;top:50%;width:10px}.snail-loading:before{background-color:#279bf1}.snail-loading:after{animation-delay:-.5s;background:#64d214;margin-left:0;margin-right:-18px}@keyframes snail-loading-stretch{0%,to{transform:scale(1)}50%{transform:scale(2)}}.snail-loading-enter-active,.snail-loading-leave-active{transition:opacity .5s ease-in-out}.snail-loading-enter-from,.snail-loading-leave-to{opacity:0}
21
+ /* src:prompt\components\toast.vue index:0 */
22
+ .snail-toast{background:rgba(0,0,0,.7);border-radius:5px;color:#fff;display:flex;max-height:200px;max-width:500px;min-width:200px;opacity:.2;overflow:hidden;padding:20px 30px 20px 20px;position:fixed;transition:opacity .2s ease;z-index:99999}.snail-toast.show-toast{opacity:1}.snail-toast>svg.close-icon{position:absolute;right:10px;top:12px}.snail-toast>div.icon{align-items:center;align-self:center;background:hsla(0,0%,100%,.15);border-radius:50%;display:flex;height:26px;justify-content:center;margin-right:6px;width:26px}.snail-toast>div.icon>svg{background:#fff;border-radius:50%;cursor:none!important}.snail-toast>div.message{flex:1;line-height:24px;overflow:hidden;word-break:break-all}
23
23
  /* src:prompt\components\confirm.vue index:0 */
24
24
  .snail-confirm{background-color:#fff;border-radius:4px;box-sizing:border-box;color:#2e2f33;display:flex;flex-direction:column;max-height:350px;max-width:548px;min-width:348px}.snail-confirm>main{flex:1;font-size:14px;margin:30px 44px;overflow:auto;word-wrap:break-word;box-sizing:border-box}
25
- /* src:prompt\components\toast.vue index:0 */
26
- .snail-toast{background:rgba(0,0,0,.7);border-radius:5px;color:#fff;display:flex;max-height:200px;max-width:500px;min-width:200px;opacity:.2;overflow:hidden;padding:20px 30px 20px 20px;position:fixed;transition:opacity .2s ease;z-index:99999}.snail-toast.show-toast{opacity:1}.snail-toast>svg.close-icon{position:absolute;right:10px;top:12px}.snail-toast>div.icon{align-items:center;align-self:center;background:hsla(0,0%,100%,.15);border-radius:50%;display:flex;height:26px;justify-content:center;margin-right:6px;width:26px}.snail-toast>div.icon>svg{background:#fff;border-radius:50%;cursor:none!important}.snail-toast>div.message{flex:1;line-height:24px;overflow:hidden;word-break:break-all}
25
+ /* src:container\components\dialog-wrapper.vue index:0 */
26
+ .snail-dialog{align-items:center;bottom:0;display:flex;justify-content:center;left:0;overflow:hidden;position:fixed;right:0;top:0}.snail-dialog:before{background-color:rgba(24,27,33,.45);content:"";height:100%;position:absolute;width:100%}.snail-dialog>.dialog-body{background-color:#fff;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.3);box-sizing:border-box;position:relative}.snail-dialog.unactive:before{display:none!important}.snail-dialog.unactive>.dialog-body{box-shadow:0 0 4px rgba(0,0,0,.3)}.snail-dialog-enter-active,.snail-dialog-leave-active{transition:scale .1s ease-in-out,opacity .1s ease}.snail-dialog-enter-from{opacity:0;scale:.4}.snail-dialog-leave-to{opacity:0;scale:0}
@@ -503,14 +503,15 @@ declare function onRerect(el: Element, fn: (rect: DOMRectReadOnly) => void): ISc
503
503
 
504
504
  /**
505
505
  * 作用域ref
506
- * - 在scope创建时,为响应式变量赋start值,destroy销毁时赋destroy
506
+ * - 在scope创建时,为rv变量赋 sv 值;scope销毁时赋 dv
507
507
  * - 可和 snail.core 中的awaitInScope方法联动实现:api请求开始时显示loading,api请求结束后隐藏loading
508
- * @param rv 响应式变量
509
- * @param start 起始值,scope创建时执行 rv.value = start
510
- * @param destroy 销毁值,scope销毁时执行 rv.value = destroy
508
+ * @param rv 响应式变量对象
509
+ * @param sv 起始值,scope创建时执行 rv.value = sv
510
+ * @param dv 销毁值,scope销毁时执行 rv.value = dv
511
+ * @param dealy 销毁时的延迟时间;单位 ms ;实现延迟设置 dv 值
511
512
  * @returns 新创建的作用域对象
512
513
  */
513
- declare function scopeRef<T>(rv: Ref<T> | ShallowRef<T>, start: T, destroy: T): IScope;
514
+ declare function scopeRef<T>(rv: Ref<T> | ShallowRef<T>, sv: T, dv: T, dealy?: number): IScope;
514
515
 
515
516
  /**
516
517
  * 模态弹窗显示的组件配置选项
package/dist/snail.vue.js CHANGED
@@ -1,6 +1,6 @@
1
1
  //@ sourceURL=/snail.vue.js
2
2
  import { defineComponent, createElementBlock, openBlock, normalizeClass, renderSlot, createTextVNode, createBlock, createCommentVNode, toDisplayString, createElementVNode, normalizeProps, guardReactiveProps, unref, computed, mergeProps, getCurrentScope, onScopeDispose, Transition, withCtx, ref, shallowRef, watch, onErrorCaptured, onActivated, onDeactivated, Fragment, resolveDynamicComponent, createSlots, renderList, normalizeStyle, TransitionGroup, withModifiers, createVNode, createApp, useTemplateRef, onMounted, onUnmounted } from 'vue';
3
- import { tidyString, throwError, mustString, style, mustFunction, throwIfFalse, isStringNotEmpty, isObject, script, delay, getMessage, hook, mustObject, defer, newId, isFunction } from 'snail.core';
3
+ import { style, tidyString, throwError, mustString, mustFunction, throwIfFalse, isStringNotEmpty, isObject, script, delay, getMessage, hook, mustObject, defer, newId, isFunction } from 'snail.core';
4
4
 
5
5
  var _sfc_main$e = defineComponent({
6
6
  ...{
@@ -22,6 +22,10 @@ var _sfc_main$e = defineComponent({
22
22
  }
23
23
  });
24
24
 
25
+ var addLink = href => setTimeout(style.register, 0, href);
26
+
27
+ addLink("/css/snail.vue.vue.css");
28
+
25
29
  var _sfc_main$d = defineComponent({
26
30
  ...{
27
31
  name: "Footer",
@@ -134,10 +138,6 @@ var _sfc_main$c = defineComponent({
134
138
  }
135
139
  });
136
140
 
137
- var addLink = href => setTimeout(style.register, 0, href);
138
-
139
- addLink("/css/snail.vue.vue.css");
140
-
141
141
  const _hoisted_1$6 = ["textContent"];
142
142
  var _sfc_main$b = defineComponent({
143
143
  ...{
@@ -306,10 +306,13 @@ function onRerect(el, fn) {
306
306
  };
307
307
  }
308
308
 
309
- function scopeRef(rv, start, destroy) {
310
- rv.value = start;
311
- return {
312
- destroy: () => rv.value = destroy
309
+ function scopeRef(rv, sv, dv, dealy) {
310
+ rv.value = sv;
311
+ const destroy = () => rv.value = dv;
312
+ return dealy > 0 ? {
313
+ destroy: () => setTimeout(destroy, dealy)
314
+ } : {
315
+ destroy
313
316
  };
314
317
  }
315
318
 
@@ -305,10 +305,13 @@
305
305
  };
306
306
  }
307
307
 
308
- function scopeRef(rv, start, destroy) {
309
- rv.value = start;
310
- return {
311
- destroy: () => rv.value = destroy
308
+ function scopeRef(rv, sv, dv, dealy) {
309
+ rv.value = sv;
310
+ const destroy = () => rv.value = dv;
311
+ return dealy > 0 ? {
312
+ destroy: () => setTimeout(destroy, dealy)
313
+ } : {
314
+ destroy
312
315
  };
313
316
  }
314
317
 
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "依赖【snail】,基于vue封装常用UI组件",
4
4
  "author": "snail_dev@163.com",
5
5
  "license": "MIT",
6
- "version": "1.0.17",
6
+ "version": "1.0.18",
7
7
  "type": "module",
8
8
  "main": "dist/snail.vue.js",
9
9
  "module": "dist/snail.vue.js",