snail.vue 1.0.40 → 1.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/snail.vue.d.ts +11 -18
- package/dist/snail.vue.js +25 -23
- package/dist/snail.vue.umd.js +24 -22
- package/dist/styles/snail.vue.vue.css +7 -7
- package/package.json +1 -1
package/dist/snail.vue.d.ts
CHANGED
|
@@ -399,15 +399,15 @@ type TreeNodeRenderOptions = {
|
|
|
399
399
|
/**
|
|
400
400
|
* 树节点 插槽配置选项
|
|
401
401
|
*/
|
|
402
|
-
type TreeNodeSlotOptions<
|
|
402
|
+
type TreeNodeSlotOptions<Node> = {
|
|
403
403
|
/**
|
|
404
404
|
* 当前节点
|
|
405
405
|
*/
|
|
406
|
-
node:
|
|
406
|
+
node: Node;
|
|
407
407
|
/**
|
|
408
408
|
* 父节点
|
|
409
409
|
*/
|
|
410
|
-
parent?:
|
|
410
|
+
parent?: Node;
|
|
411
411
|
/**
|
|
412
412
|
* 所处层级
|
|
413
413
|
*/
|
|
@@ -623,19 +623,13 @@ type SelectEvents<T> = SelectBaseEvents<T> & {};
|
|
|
623
623
|
/**
|
|
624
624
|
* 选项菜单 组件的Slot配置选项
|
|
625
625
|
*/
|
|
626
|
-
type SelectSlotOptions
|
|
627
|
-
/**
|
|
628
|
-
* 关闭Follow弹窗
|
|
629
|
-
* - 将隐藏已弹出的选项 follow 弹窗
|
|
630
|
-
* @returns 已弹出则销毁成功返回true;未弹出则销毁失败返回false
|
|
631
|
-
*/
|
|
632
|
-
closeFollow(): boolean;
|
|
626
|
+
type SelectSlotOptions = {
|
|
633
627
|
/**
|
|
634
|
-
*
|
|
635
|
-
*
|
|
636
|
-
* @param
|
|
628
|
+
* 清空已选【选择项】
|
|
629
|
+
* @param closeFollow 是否关闭【选择项】Follow弹窗
|
|
630
|
+
* @param stopPropagation 是否停止事件冒泡
|
|
637
631
|
*/
|
|
638
|
-
|
|
632
|
+
clear(closeFollow: boolean, stopPropagation: boolean): void;
|
|
639
633
|
};
|
|
640
634
|
/**
|
|
641
635
|
* 【选项菜单】 组件上下文
|
|
@@ -1676,8 +1670,7 @@ declare const components: {
|
|
|
1676
1670
|
}, string, {}, {}, string, {}, vue.GlobalComponents, vue.GlobalDirectives, string, vue.ComponentProvideOptions> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new () => {
|
|
1677
1671
|
$slots: {
|
|
1678
1672
|
default?: (props: {
|
|
1679
|
-
closeFollow:
|
|
1680
|
-
stopPropagation: (delay: number) => any;
|
|
1673
|
+
clear: (closeFollow: boolean, stopPropagation: boolean) => void;
|
|
1681
1674
|
}) => any;
|
|
1682
1675
|
};
|
|
1683
1676
|
});
|
|
@@ -1927,8 +1920,8 @@ declare const components: {
|
|
|
1927
1920
|
}, string, {}, {}, string, {}, vue.GlobalComponents, vue.GlobalDirectives, string, vue.ComponentProvideOptions> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new () => {
|
|
1928
1921
|
$slots: {
|
|
1929
1922
|
default?: (props: {
|
|
1930
|
-
node:
|
|
1931
|
-
parent?:
|
|
1923
|
+
node: any;
|
|
1924
|
+
parent?: any;
|
|
1932
1925
|
level: number;
|
|
1933
1926
|
click(): void;
|
|
1934
1927
|
toggle(): void;
|
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, mergeModels, useModel, computed, Fragment, renderList, normalizeStyle, unref, createElementVNode, createCommentVNode, toDisplayString, createBlock, shallowRef, withDirectives, vModelText, createVNode, createApp, Transition, withCtx, normalizeProps, guardReactiveProps, watch, ref, onErrorCaptured, resolveDynamicComponent, mergeProps, createSlots, onMounted, withModifiers, getCurrentInstance, nextTick, useTemplateRef, resolveComponent, onActivated, onDeactivated, onBeforeUnmount, getCurrentScope, onScopeDispose } from 'vue';
|
|
3
|
-
import { isArray, newId, throwError, isArrayNotEmpty, isStringNotEmpty, mustFunction, useScope, removeFromArray, mustObject, throwIfFalse, isObject, isNumberNotNaN, mountScope, useScopes, isPromise, wait, script, delay, useTimer, defer, useAsyncScope, useHook, hasAny, throwIfTrue, isFunction, onMountScope
|
|
3
|
+
import { isArray, newId, throwError, isArrayNotEmpty, isStringNotEmpty, mustFunction, useScope, removeFromArray, mustObject, throwIfFalse, isObject, isNumberNotNaN, mountScope, useScopes, isPromise, wait, script, delay, useTimer, defer, useAsyncScope, useHook, hasAny, throwIfTrue, isFunction, onMountScope } from 'snail.core';
|
|
4
4
|
import { css, link, useObserver, useAnimation } from 'snail.view';
|
|
5
5
|
|
|
6
6
|
var _sfc_main$r = defineComponent({
|
|
@@ -751,7 +751,7 @@ var _sfc_main$j = defineComponent({
|
|
|
751
751
|
}, _ctx.$attrs), [_cache[0] || (_cache[0] = createTextVNode(" load component error:")), createElementVNode("span", null, toDisplayString(dynamicErrorRef.value), 1)], 16)) : dynamicComponentRef.value == void 0 ? (openBlock(), createBlock(_sfc_main$k, {
|
|
752
752
|
key: 1,
|
|
753
753
|
show: true,
|
|
754
|
-
"disabled
|
|
754
|
+
"mask-disabled": true
|
|
755
755
|
})) : createCommentVNode("", true)], 64);
|
|
756
756
|
};
|
|
757
757
|
}
|
|
@@ -1495,7 +1495,6 @@ function searchPath(nodes, target) {
|
|
|
1495
1495
|
}
|
|
1496
1496
|
|
|
1497
1497
|
function useSelectContext(items, selectsRef) {
|
|
1498
|
-
const treeContxt = useTreeContext(items);
|
|
1499
1498
|
function selected(multiple, item) {
|
|
1500
1499
|
if (selectsRef.value) {
|
|
1501
1500
|
return multiple == true ? selectsRef.value.includes(item) : selectsRef.value[selectsRef.value.length - 1] == item;
|
|
@@ -1508,11 +1507,18 @@ function useSelectContext(items, selectsRef) {
|
|
|
1508
1507
|
}
|
|
1509
1508
|
return "";
|
|
1510
1509
|
}
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1510
|
+
const context = Object.create(null);
|
|
1511
|
+
{
|
|
1512
|
+
const treeContxt = useTreeContext(items);
|
|
1513
|
+
Object.assign(context, treeContxt, {
|
|
1514
|
+
selected,
|
|
1515
|
+
selectedText
|
|
1516
|
+
});
|
|
1517
|
+
mountScope(context, "ISelectContext");
|
|
1518
|
+
treeContxt.onDestroy(() => context.destroyed || context.destroy());
|
|
1519
|
+
context.onDestroy(() => treeContxt.destroyed || treeContxt.destroy());
|
|
1520
|
+
}
|
|
1521
|
+
return Object.freeze(context);
|
|
1516
1522
|
}
|
|
1517
1523
|
|
|
1518
1524
|
const _hoisted_1$6 = {
|
|
@@ -1572,12 +1578,11 @@ var _sfc_main$b = defineComponent({
|
|
|
1572
1578
|
const context = useSelectContext(props.items, valuesModel);
|
|
1573
1579
|
const selectTextRef = computed(() => context.selectedText(props.multiple, props.showPath));
|
|
1574
1580
|
const slotOptions = Object.freeze({
|
|
1575
|
-
|
|
1576
|
-
stopPropagation
|
|
1581
|
+
clear
|
|
1577
1582
|
});
|
|
1578
1583
|
var followScope = void 0;
|
|
1579
1584
|
var stopPropagationScope = void 0;
|
|
1580
|
-
function
|
|
1585
|
+
function destroyFollow() {
|
|
1581
1586
|
if (followScope != void 0) {
|
|
1582
1587
|
followScope.destroy();
|
|
1583
1588
|
followScope = void 0;
|
|
@@ -1585,15 +1590,17 @@ var _sfc_main$b = defineComponent({
|
|
|
1585
1590
|
}
|
|
1586
1591
|
return false;
|
|
1587
1592
|
}
|
|
1588
|
-
function stopPropagation
|
|
1593
|
+
function clear(closeFollow, stopPropagation) {
|
|
1594
|
+
valuesModel.value = [];
|
|
1595
|
+
closeFollow && destroyFollow();
|
|
1589
1596
|
stopPropagationScope && stopPropagationScope.destroy();
|
|
1590
|
-
stopPropagationScope = onTimeout(() => stopPropagationScope = void 0,
|
|
1597
|
+
stopPropagationScope = stopPropagation ? onTimeout(() => stopPropagationScope = void 0, 200) : void 0;
|
|
1591
1598
|
}
|
|
1592
1599
|
async function onClick() {
|
|
1593
1600
|
if (props.readonly == true || rootDom.value == void 0) {
|
|
1594
1601
|
return;
|
|
1595
1602
|
}
|
|
1596
|
-
if (
|
|
1603
|
+
if (destroyFollow() == true || stopPropagationScope != void 0) {
|
|
1597
1604
|
return;
|
|
1598
1605
|
}
|
|
1599
1606
|
const values = valuesModel.value && valuesModel.value.length > 0 ? [...valuesModel.value] : [];
|
|
@@ -1634,16 +1641,16 @@ var _sfc_main$b = defineComponent({
|
|
|
1634
1641
|
}]),
|
|
1635
1642
|
onClick: _cache[0] || (_cache[0] = $event => onClick()),
|
|
1636
1643
|
ref: "select"
|
|
1637
|
-
}, [
|
|
1644
|
+
}, [props.items && props.items.length > 0 ? (openBlock(), createElementBlock(Fragment, {
|
|
1638
1645
|
key: 0
|
|
1639
|
-
}, [
|
|
1646
|
+
}, [valuesModel.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$6, [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(unref(slotOptions))), () => [createElementVNode("div", {
|
|
1640
1647
|
class: "select-text",
|
|
1641
1648
|
title: selectTextRef.value,
|
|
1642
1649
|
textContent: toDisplayString(selectTextRef.value)
|
|
1643
1650
|
}, null, 8, _hoisted_2$3)])])) : (openBlock(), createElementBlock("div", {
|
|
1644
1651
|
key: 1,
|
|
1645
1652
|
class: "select-result text-tips",
|
|
1646
|
-
textContent: toDisplayString(props.placeholder || "请选择")
|
|
1653
|
+
textContent: toDisplayString(props.readonly ? "" : props.placeholder || "请选择")
|
|
1647
1654
|
}, null, 8, _hoisted_3$3)), createVNode(_sfc_main$o, {
|
|
1648
1655
|
type: "arrow",
|
|
1649
1656
|
size: 24,
|
|
@@ -2441,12 +2448,7 @@ const components = {
|
|
|
2441
2448
|
};
|
|
2442
2449
|
|
|
2443
2450
|
onMountScope(scope => {
|
|
2444
|
-
|
|
2445
|
-
console.log(`%c${type}:`, "color:green", "scope mounted");
|
|
2446
|
-
getCurrentScope() && onScopeDispose(() => {
|
|
2447
|
-
console.log(`%c${type}:`, "color:blue", "scope auto destroyed");
|
|
2448
|
-
scope.destroy();
|
|
2449
|
-
});
|
|
2451
|
+
getCurrentScope() && onScopeDispose(scope.destroy);
|
|
2450
2452
|
});
|
|
2451
2453
|
|
|
2452
2454
|
export { components, getSvgDraw, mount, onAppCreated, triggerAppCreated, usePopup, useReactive, useTreeContext };
|
package/dist/snail.vue.umd.js
CHANGED
|
@@ -753,7 +753,7 @@
|
|
|
753
753
|
}, _ctx.$attrs), [_cache[0] || (_cache[0] = vue.createTextVNode(" load component error:")), vue.createElementVNode("span", null, vue.toDisplayString(dynamicErrorRef.value), 1)], 16)) : dynamicComponentRef.value == void 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$k, {
|
|
754
754
|
key: 1,
|
|
755
755
|
show: true,
|
|
756
|
-
"disabled
|
|
756
|
+
"mask-disabled": true
|
|
757
757
|
})) : vue.createCommentVNode("", true)], 64);
|
|
758
758
|
};
|
|
759
759
|
}
|
|
@@ -1497,7 +1497,6 @@
|
|
|
1497
1497
|
}
|
|
1498
1498
|
|
|
1499
1499
|
function useSelectContext(items, selectsRef) {
|
|
1500
|
-
const treeContxt = useTreeContext(items);
|
|
1501
1500
|
function selected(multiple, item) {
|
|
1502
1501
|
if (selectsRef.value) {
|
|
1503
1502
|
return multiple == true ? selectsRef.value.includes(item) : selectsRef.value[selectsRef.value.length - 1] == item;
|
|
@@ -1510,11 +1509,18 @@
|
|
|
1510
1509
|
}
|
|
1511
1510
|
return "";
|
|
1512
1511
|
}
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1512
|
+
const context = Object.create(null);
|
|
1513
|
+
{
|
|
1514
|
+
const treeContxt = useTreeContext(items);
|
|
1515
|
+
Object.assign(context, treeContxt, {
|
|
1516
|
+
selected,
|
|
1517
|
+
selectedText
|
|
1518
|
+
});
|
|
1519
|
+
snail_core.mountScope(context, "ISelectContext");
|
|
1520
|
+
treeContxt.onDestroy(() => context.destroyed || context.destroy());
|
|
1521
|
+
context.onDestroy(() => treeContxt.destroyed || treeContxt.destroy());
|
|
1522
|
+
}
|
|
1523
|
+
return Object.freeze(context);
|
|
1518
1524
|
}
|
|
1519
1525
|
|
|
1520
1526
|
const _hoisted_1$6 = {
|
|
@@ -1574,12 +1580,11 @@
|
|
|
1574
1580
|
const context = useSelectContext(props.items, valuesModel);
|
|
1575
1581
|
const selectTextRef = vue.computed(() => context.selectedText(props.multiple, props.showPath));
|
|
1576
1582
|
const slotOptions = Object.freeze({
|
|
1577
|
-
|
|
1578
|
-
stopPropagation
|
|
1583
|
+
clear
|
|
1579
1584
|
});
|
|
1580
1585
|
var followScope = void 0;
|
|
1581
1586
|
var stopPropagationScope = void 0;
|
|
1582
|
-
function
|
|
1587
|
+
function destroyFollow() {
|
|
1583
1588
|
if (followScope != void 0) {
|
|
1584
1589
|
followScope.destroy();
|
|
1585
1590
|
followScope = void 0;
|
|
@@ -1587,15 +1592,17 @@
|
|
|
1587
1592
|
}
|
|
1588
1593
|
return false;
|
|
1589
1594
|
}
|
|
1590
|
-
function stopPropagation
|
|
1595
|
+
function clear(closeFollow, stopPropagation) {
|
|
1596
|
+
valuesModel.value = [];
|
|
1597
|
+
closeFollow && destroyFollow();
|
|
1591
1598
|
stopPropagationScope && stopPropagationScope.destroy();
|
|
1592
|
-
stopPropagationScope = onTimeout(() => stopPropagationScope = void 0,
|
|
1599
|
+
stopPropagationScope = stopPropagation ? onTimeout(() => stopPropagationScope = void 0, 200) : void 0;
|
|
1593
1600
|
}
|
|
1594
1601
|
async function onClick() {
|
|
1595
1602
|
if (props.readonly == true || rootDom.value == void 0) {
|
|
1596
1603
|
return;
|
|
1597
1604
|
}
|
|
1598
|
-
if (
|
|
1605
|
+
if (destroyFollow() == true || stopPropagationScope != void 0) {
|
|
1599
1606
|
return;
|
|
1600
1607
|
}
|
|
1601
1608
|
const values = valuesModel.value && valuesModel.value.length > 0 ? [...valuesModel.value] : [];
|
|
@@ -1636,16 +1643,16 @@
|
|
|
1636
1643
|
}]),
|
|
1637
1644
|
onClick: _cache[0] || (_cache[0] = $event => onClick()),
|
|
1638
1645
|
ref: "select"
|
|
1639
|
-
}, [
|
|
1646
|
+
}, [props.items && props.items.length > 0 ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
1640
1647
|
key: 0
|
|
1641
|
-
}, [
|
|
1648
|
+
}, [valuesModel.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6, [vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.guardReactiveProps(vue.unref(slotOptions))), () => [vue.createElementVNode("div", {
|
|
1642
1649
|
class: "select-text",
|
|
1643
1650
|
title: selectTextRef.value,
|
|
1644
1651
|
textContent: vue.toDisplayString(selectTextRef.value)
|
|
1645
1652
|
}, null, 8, _hoisted_2$3)])])) : (vue.openBlock(), vue.createElementBlock("div", {
|
|
1646
1653
|
key: 1,
|
|
1647
1654
|
class: "select-result text-tips",
|
|
1648
|
-
textContent: vue.toDisplayString(props.placeholder || "请选择")
|
|
1655
|
+
textContent: vue.toDisplayString(props.readonly ? "" : props.placeholder || "请选择")
|
|
1649
1656
|
}, null, 8, _hoisted_3$3)), vue.createVNode(_sfc_main$o, {
|
|
1650
1657
|
type: "arrow",
|
|
1651
1658
|
size: 24,
|
|
@@ -2443,12 +2450,7 @@
|
|
|
2443
2450
|
};
|
|
2444
2451
|
|
|
2445
2452
|
snail_core.onMountScope(scope => {
|
|
2446
|
-
|
|
2447
|
-
console.log(`%c${type}:`, "color:green", "scope mounted");
|
|
2448
|
-
vue.getCurrentScope() && vue.onScopeDispose(() => {
|
|
2449
|
-
console.log(`%c${type}:`, "color:blue", "scope auto destroyed");
|
|
2450
|
-
scope.destroy();
|
|
2451
|
-
});
|
|
2453
|
+
vue.getCurrentScope() && vue.onScopeDispose(scope.destroy);
|
|
2452
2454
|
});
|
|
2453
2455
|
|
|
2454
2456
|
exports.components = components;
|
|
@@ -4,16 +4,16 @@
|
|
|
4
4
|
.snail-button{align-items:center;border-radius:2px;cursor:pointer;display:flex;display:inline-flex;justify-content:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.snail-button.max{height:40px;width:120px}.snail-button.middle{height:32px;width:90px}.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}
|
|
5
5
|
/* src:base\footer.vue index:0 */
|
|
6
6
|
.snail-footer{align-items:center;background-color:#fff;display:flex;flex-shrink:0;height:72px;padding:0 40px;width:100%}.snail-footer>.snail-button:nth-child(n+2){margin-left:20px}.snail-footer.start-divider{border-top:1px solid #dddfed}.snail-footer.left{justify-content:left}.snail-footer.center{justify-content:center}.snail-footer.right{justify-content:right}
|
|
7
|
-
/* src:base\icon.vue index:0 */
|
|
8
|
-
.snail-icon{cursor:pointer;opacity:1}
|
|
9
7
|
/* src:base\header.vue index:0 */
|
|
10
8
|
.snail-header{align-items:center;background-color:#fff;display:flex;flex-shrink:0;position:relative;width:100%}.snail-header>.header-title{color:#2e3033;flex:1;line-height:48px;overflow:hidden;padding:0 30px;text-overflow:ellipsis;white-space:nowrap;width:100%}.snail-header>.header-title.left{text-align:left}.snail-header>.header-title.center{text-align:center}.snail-header>.header-title.right{text-align:right}.snail-header.start-divider{border-bottom:1px solid #dddfed}.snail-header.page{height:48px}.snail-header.page>.header-title{font-size:16px;font-weight:bold}.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:base\search.vue index:0 */
|
|
12
10
|
.snail-search{align-items:center;background:#fff;display:flex;flex-shrink:0;height:34px}.snail-search>input{border-radius:0!important;flex:1;height:100%}.snail-search>div{align-items:center;border:1px solid #dddfed;border-left:none;display:flex;flex-shrink:0;height:100%;justify-content:center;width:34px}
|
|
11
|
+
/* src:base\icon.vue index:0 */
|
|
12
|
+
.snail-icon{cursor:pointer;opacity:1}
|
|
13
13
|
/* src:base\select.vue index:0 */
|
|
14
14
|
.snail-select{align-items:center;background-color:#fff;border:1px solid #dddfed;border-radius:4px;color:#2e3033;cursor:pointer;display:flex;height:32px;width:100%}.snail-select>div.select-result{align-items:center;display:flex;flex:1;flex-wrap:nowrap;height:30px;overflow:hidden;padding:0 10px 0 6px}.snail-select>div.select-result>div.select-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.snail-select>svg.snail-icon{flex-shrink:0;margin-right:4px}.snail-select>div.no-items{cursor:text;padding:0 8px}.snail-select.readonly{cursor:auto}.snail-select.readonly>svg.snail-icon{display:none}
|
|
15
15
|
/* src:base\switch.vue index:0 */
|
|
16
|
-
.snail-switch{border-radius:10px 10px 10px 10px;cursor:pointer;height:20px!important;overflow:hidden;position:relative;width:36px!important}.snail-switch>div{height:100%;width:100%}.snail-switch>div.on{background-color:#5ca3ff}.snail-switch>div.off{background-color:#c4c8cc;position:absolute;transition:left .2s ease}.snail-switch>div.status{background:#fff;border-radius:10px 10px 10px 10px;height:16px;position:absolute;top:2px;transition:left .2s ease;width:16px}.snail-switch.on>div.off{left:100%;top:0}.snail-switch.on>div.status{left:calc(100% - 18px)}.snail-switch.off>div.off{left:0;top:0}.snail-switch.off>div.status{left:2px}.snail-switch.readonly{cursor:
|
|
16
|
+
.snail-switch{border-radius:10px 10px 10px 10px;cursor:pointer;height:20px!important;overflow:hidden;position:relative;width:36px!important}.snail-switch>div{height:100%;width:100%}.snail-switch>div.on{background-color:#5ca3ff}.snail-switch>div.off{background-color:#c4c8cc;position:absolute;transition:left .2s ease}.snail-switch>div.status{background:#fff;border-radius:10px 10px 10px 10px;height:16px;position:absolute;top:2px;transition:left .2s ease;width:16px}.snail-switch.on>div.off{left:100%;top:0}.snail-switch.on>div.status{left:calc(100% - 18px)}.snail-switch.off>div.off{left:0;top:0}.snail-switch.off>div.status{left:2px}.snail-switch.readonly{cursor:not-allowed}
|
|
17
17
|
/* src:container\dynamic.vue index:0 */
|
|
18
18
|
.snail-dynamic-error{color:red}.snail-dynamic-error>span{color:gray}
|
|
19
19
|
/* src:container\fold.vue index:0 */
|
|
@@ -24,10 +24,10 @@
|
|
|
24
24
|
.snail-sort-drag{background:#fff;border:1px solid #4c9aff;border-radius:4px;cursor:move}.snail-sort-ghost{border:1px dashed #4c9aff;border-radius:4px}
|
|
25
25
|
/* src:container\table.vue index:0 */
|
|
26
26
|
.snail-table{display:flex;flex-direction:column}.snail-table>div.table-footer,.snail-table>div.table-header{align-items:center;display:flex;flex-shrink:0;width:100%}.snail-table>div.table-header{background-color:#fff;position:sticky!important;top:0;z-index:1}.snail-table>div.table-body{flex:1;width:100%}.snail-table.start-border>div.table-body>.table-row>.table-col:nth-child(n+2),.snail-table.start-border>div.table-footer>.table-col:nth-child(n+2),.snail-table.start-border>div.table-header>.table-col:nth-child(n+2){border-left:none!important}.snail-table.start-border>div.table-body>.table-row>.table-col,.snail-table.start-border>div.table-footer>.table-col{border-top:none!important}
|
|
27
|
-
/* src:container\components\table-row.vue index:0 */
|
|
28
|
-
.table-row{align-items:center;display:flex}
|
|
29
27
|
/* src:container\components\table-col.vue index:0 */
|
|
30
28
|
.table-col{align-items:center;display:flex;height:100%;white-space:nowrap}.table-col.left{justify-content:left}.table-col.center{justify-content:center}.table-col.right{justify-content:right}
|
|
29
|
+
/* src:container\components\table-row.vue index:0 */
|
|
30
|
+
.table-row{align-items:center;display:flex}
|
|
31
31
|
/* src:container\tree.vue index:0 */
|
|
32
32
|
.snail-tree{background-color:#fff;display:flex;flex-direction:column}.snail-tree .snail-search{flex-shrink:0;margin:12px}.snail-tree .snail-scroll{flex:1}
|
|
33
33
|
/* src:form\input.vue index:0 */
|
|
@@ -40,12 +40,12 @@
|
|
|
40
40
|
.snail-loading{height:100%;left:0;position:absolute;top:0;width:100%;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}
|
|
41
41
|
/* src:popup\components\confirm-container.vue index:0 */
|
|
42
42
|
.snail-confirm{background-color:#fff;border-radius:4px;color:#2e2f33;display:flex;flex-direction:column;max-height:350px;max-width:548px;min-width:348px}.snail-confirm>div.confirm-body{flex:1;margin:20px 40px;overflow:auto;word-wrap:break-word}
|
|
43
|
-
/* src:popup\components\follow-container.vue index:0 */
|
|
44
|
-
.snail-follow{background-color:#fff;display:inline-block;max-height:100%;max-width:100%;position:fixed;transition-duration:.5s;transition-property:left,top;transition-timing-function:ease}
|
|
45
43
|
/* src:popup\components\dialog-container.vue index:0 */
|
|
46
44
|
.snail-dialog{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%}.snail-dialog:before{background-color:rgba(24,27,33,.45);content:"";height:100%;opacity:1;position:absolute;transition:opacity .4s ease-in-out;width:100%}.snail-dialog>.dialog-body{background-color:#fff;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.3);position:relative}.snail-dialog.unactive:before{opacity:0}.snail-dialog.unactive>.dialog-body{box-shadow:0 0 4px rgba(0,0,0,.3)}
|
|
47
45
|
/* src:popup\components\popup-container.vue index:0 */
|
|
48
46
|
.snail-popup{left:0;position:fixed;top:0}
|
|
47
|
+
/* src:popup\components\follow-container.vue index:0 */
|
|
48
|
+
.snail-follow{background-color:#fff;display:inline-block;max-height:100%;max-width:100%;position:fixed;transition-duration:.5s;transition-property:left,top;transition-timing-function:ease}
|
|
49
49
|
/* src:popup\components\toast-container.vue index:0 */
|
|
50
50
|
.snail-toast{background:rgba(0,0,0,.7);border-radius:10px;color:#fff;display:flex;left:50%;max-height:200px;max-width:400px;min-width:200px;overflow:hidden;padding:20px 35px 20px 15px;position:fixed;top:50%;transform:translate(-50%,-50%)}.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}
|
|
51
51
|
/* src:container\components\tree-node.vue index:0 */
|