snail.vue 2.0.15 → 2.0.16

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.
@@ -1677,16 +1677,32 @@ type NumberEvents = ChangeEvents<number> & {
1677
1677
  */
1678
1678
  type IconOptions = TitleOptions & {
1679
1679
  /**
1680
- * 图标类型
1680
+ * 是否为自定义图标
1681
+ * - 为true时,外部通过插槽自己绘制图标
1682
+ * - 为false时,使用`type`值绘制对应的内置图标
1683
+ * - 默认false
1681
1684
  */
1682
- type: IconType;
1685
+ custom?: boolean;
1683
1686
  /**
1684
- * 图形伸展
1685
- * - svg.viewBox 属性
1686
- * - 为空则默认“0 0 1024 1024”
1687
+ * 内置的图标类型
1688
+ * - `custom`为false时生效
1687
1689
  */
1688
- viewBox?: string;
1690
+ type?: IconType;
1689
1691
  /**
1692
+ * 是否是按钮图标
1693
+ * - true时,鼠标移入时 cursor:pointer;
1694
+ */
1695
+ button?: boolean;
1696
+ /**
1697
+ * 图标大小
1698
+ * - 可指定对象,如 { width: 24, height: 24 },则图标大小为 24 * 24
1699
+ * - 可指定数字,如 24,则图标大小为 24 * 24
1700
+ * - 默认 24
1701
+ */
1702
+ size?: number | {
1703
+ width?: number;
1704
+ height?: number;
1705
+ }; /**
1690
1706
  * 图标颜色
1691
1707
  */
1692
1708
  color?: string;
@@ -1694,35 +1710,18 @@ type IconOptions = TitleOptions & {
1694
1710
  * 鼠标移入时的图标颜色
1695
1711
  */
1696
1712
  hoverColor?: string;
1697
- /**
1698
- * 图标大小:默认24
1699
- */
1700
- size?: number;
1701
- /**
1702
- * 轮廓描边颜色
1703
- * - 配合 strokeWidth 使用,完成图标加粗效果等
1704
- * @see https://developer.mozilla.org/zh-CN/docs/Web/SVG/Reference/Attribute/stroke
1705
- */
1706
- stroke?: string;
1707
- /**
1708
- * 轮廓宽度
1709
- * - 配合 stroke 使用,完成图标加粗效果等
1710
- * @see https://developer.mozilla.org/zh-CN/docs/Web/SVG/Reference/Attribute/stroke-width
1711
- */
1712
- strokeWidth?: number;
1713
- /**
1714
- * 图标绘制路径
1715
- * - 等效 svg-path的d属性
1716
- * - 仅在type为 custom 时生效
1717
- * - 若为数组,则表示多条绘制路径
1718
- */
1719
- draw?: string | string[];
1720
1713
  /**
1721
1714
  * 旋转角度
1722
1715
  * - 默认0
1723
1716
  * - 通过:transform: rotate(1.06); 实现
1724
1717
  */
1725
1718
  rotate?: number;
1719
+ /**
1720
+ * 图形伸展
1721
+ * - svg.viewBox 属性
1722
+ * - 为空则默认“0 0 1024 1024”
1723
+ */
1724
+ viewBox?: string;
1726
1725
  };
1727
1726
  /**
1728
1727
  * 图标类型
@@ -1744,9 +1743,8 @@ type IconOptions = TitleOptions & {
1744
1743
  * - - plus 加号
1745
1744
  * - - subtract 减号
1746
1745
  * - - grip 紧握图标,垂直方向,一般用于拖动句柄
1747
- * - - custom 自定义图标:此时IconOptions.draw属性传入绘制路径
1748
1746
  */
1749
- type IconType = "success" | "error" | "warn" | "close" | "trash" | "download" | "print" | "edit" | "arrow" | "datepicker" | "timepicker" | "plus" | "subtract" | "grip" | "custom";
1747
+ type IconType = "success" | "error" | "warn" | "close" | "trash" | "download" | "print" | "edit" | "arrow" | "datepicker" | "timepicker" | "plus" | "subtract" | "grip";
1750
1748
 
1751
1749
  /**
1752
1750
  * 检查选项 数据结构
@@ -2042,12 +2040,11 @@ declare function triggerAppCreated(app: App, type?: AppType): App;
2042
2040
  */
2043
2041
 
2044
2042
  /**
2045
- * 基于类型获取Svg图标绘制路径
2043
+ * 获取内置图标绘制路径
2046
2044
  * @param iconType 图标类型
2047
- * @param draw 绘制路径;自定义时生效
2048
2045
  * @returns 图标路径
2049
2046
  */
2050
- declare function getSvgDraw(iconType: IconType, draw: string[] | string): string[];
2047
+ declare function getBuiltinIcon(iconType: IconType): string[];
2051
2048
 
2052
2049
  /**
2053
2050
  * 动态加载组件 组件配置选项
@@ -2682,7 +2679,23 @@ declare const components: {
2682
2679
  default?: (props: {}) => any;
2683
2680
  };
2684
2681
  });
2685
- Icon: vue.DefineComponent<IconOptions, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<IconOptions> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
2682
+ Icon: {
2683
+ new (...args: any[]): vue.CreateComponentPublicInstanceWithMixins<Readonly<IconOptions> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, vue.PublicProps, {}, true, {}, {}, vue.GlobalComponents, vue.GlobalDirectives, string, {}, any, vue.ComponentProvideOptions, {
2684
+ P: {};
2685
+ B: {};
2686
+ D: {};
2687
+ C: {};
2688
+ M: {};
2689
+ Defaults: {};
2690
+ }, Readonly<IconOptions> & Readonly<{}>, {}, {}, {}, {}, {}>;
2691
+ __isFragment?: never;
2692
+ __isTeleport?: never;
2693
+ __isSuspense?: never;
2694
+ } & vue.ComponentOptionsBase<Readonly<IconOptions> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {}, {}, string, {}, vue.GlobalComponents, vue.GlobalDirectives, string, vue.ComponentProvideOptions> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new () => {
2695
+ $slots: {
2696
+ default?: (props: {}) => any;
2697
+ };
2698
+ });
2686
2699
  Input: vue.DefineComponent<ReadonlyOptions & PlaceholderOptions & TitleOptions & {
2687
2700
  type?: "text" | "number" | "password";
2688
2701
  required?: boolean;
@@ -3264,5 +3277,5 @@ declare const components: {
3264
3277
  });
3265
3278
  };
3266
3279
 
3267
- export { MOTION, components, getSvgDraw, mount, onAppCreated, triggerAppCreated, usePicker, usePopup, useReactive, useTreeContext };
3280
+ export { MOTION, components, getBuiltinIcon, mount, onAppCreated, triggerAppCreated, usePicker, usePopup, useReactive, useTreeContext };
3268
3281
  export type { ButtonOptions, ChangeEvents, ChooseEvents, ChooseItem, ChooseOptions, ClickEvents, CloseEvents, ComponentBindOptions, ComponentOptions, ConfirmAreaOptions, ConfirmOptions, DatePickerDayItem, DatePickerMonthItem, DatePickerOptions, DatePickerYearItem, DatetimeDisabledOptions, DatetimePickerEvents, DeleteEvents, DialogHandle, DialogOptions, DisabledOptions, DragVerifyInfo, DragVerifyOptions, EmitterType, EmptyOptions, EventsType, FoldEvents, FoldOptions, FoldStatus, FollowElectResult, FollowExtend, FollowHandle, FollowOptions, FollowPositionOptions, FollowStrategy, FollowStrategyOptions, FooterEvents, FooterOptions, HeaderEvents, HeaderOptions, INumberFormatter, IPickerManager, IPopupManager, IReactiveManager, ISelectContext, ITreeBaseContext, IconOptions, IconType, InputEvents, InputOptions, LayoutAraeOptions, LayoutAreaItem, LayoutOptions, LoadingOptions, MessageOptions, MotionEffectOptions, MotionOptions, MoveEvents, NumberBaseOptions, NumberEvents, NumberFormatResult, NumberOptions, PickerExtend, PickerPopupOptions, PlaceholderOptions, PopupDescriptor, PopupHandle, PopupOptions, PopupStatus, PopupStatusOptions, PropsType, ReactiveVar, ReadonlyOptions, ScrollEvents, ScrollOptions, ScrollStatus, SearchEvents, SearchOptions, SelectBaseEvents, SelectBaseOptions, SelectEvents, SelectItem, SelectNodeEvents, SelectNodeOptions, SelectOptions, SelectPopupEvents, SelectPopupExtend, SelectPopupOptions, SelectSlotOptions, SlotsType, SortEvent, SortEvents, SortGroupHook, SortGroupOptions, SortOptions, SwitchEvents, SwitchOptions, TableColOptions, TableOptions, TableRowOptions, TextareaEvents, TextareaOptions, TimePickerHourItem, TimePickerMinuteItem, TimePickerOptions, TimePickerSecondItem, TitleOptions, ToastOptions, TreeEvents, TreeNode, TreeNodeEvents, TreeNodeExtend, TreeNodeModel, TreeNodeOptions, TreeNodeRenderOptions, TreeNodeSlotOptions, TreeOptions, TreeSearchResult, ValueOptions, WrapperEvents, WrapperOptions };
package/dist/snail.vue.js CHANGED
@@ -1,6 +1,6 @@
1
1
  //@ sourceURL=/snail.vue.js
2
- import { defineComponent, createElementBlock, openBlock, normalizeClass, renderSlot, createTextVNode, shallowRef, normalizeStyle, unref, createElementVNode, toDisplayString, Fragment, renderList, mergeModels, useModel, computed, createCommentVNode, createBlock, nextTick, useTemplateRef, createVNode, watch, withDirectives, isRef, vModelText, createApp, resolveDynamicComponent, TransitionGroup, Transition, mergeProps, withCtx, normalizeProps, guardReactiveProps, ref, onErrorCaptured, createSlots, onMounted, withModifiers, getCurrentInstance, resolveComponent, onBeforeUnmount, getCurrentScope, onScopeDispose } from 'vue';
3
- import { throwError, isArrayNotEmpty, isStringNotEmpty, correctString, useKey, isArray, mountScope, useScopes, throwIfFalse, isPromise, wait, isObject, isNumberNotNaN, hasAny, mustFunction, useScope, removeFromArray, mustObject, hasOwnProperty, correctNumber, isString, script, delay, useTimer, defer, useAsyncScope, useHook, newId, throwIfTrue, isFunction, getTimeNumber, getDateValue, parseDate, formatDateValue, getDateByValue, parseTimeValue, getTimeValue, padStart, formatTimeValue, parseDateValue, correctDateFormat, isValidTime, getFromArray, onMountScope } from 'snail.core';
2
+ import { defineComponent, createElementBlock, openBlock, normalizeClass, renderSlot, createTextVNode, shallowRef, computed, mergeProps, unref, createElementVNode, toDisplayString, Fragment, renderList, mergeModels, useModel, normalizeStyle, createCommentVNode, createBlock, nextTick, useTemplateRef, createVNode, watch, withDirectives, isRef, vModelText, withCtx, createApp, resolveDynamicComponent, TransitionGroup, Transition, normalizeProps, guardReactiveProps, ref, onErrorCaptured, createSlots, onMounted, withModifiers, getCurrentInstance, resolveComponent, onBeforeUnmount, onActivated, vShow, getCurrentScope, onScopeDispose } from 'vue';
3
+ import { throwError, isObject, correctNumber, correctString, useKey, isArray, mountScope, useScopes, throwIfFalse, isPromise, wait, isNumberNotNaN, isStringNotEmpty, hasAny, mustFunction, useScope, removeFromArray, mustObject, isArrayNotEmpty, hasOwnProperty, isString, script, delay, useTimer, defer, useAsyncScope, useHook, newId, throwIfTrue, isFunction, getTimeNumber, getDateValue, parseDate, formatDateValue, getDateByValue, parseTimeValue, getTimeValue, padStart, formatTimeValue, parseDateValue, correctDateFormat, isValidTime, getFromArray, onMountScope } from 'snail.core';
4
4
  import { css, link, useObserver, useAnimation } from 'snail.view';
5
5
 
6
6
  const _hoisted_1$l = ["title"];
@@ -25,7 +25,7 @@ var _sfc_main$A = defineComponent({
25
25
  }
26
26
  });
27
27
 
28
- function getSvgDraw(iconType, draw) {
28
+ function getBuiltinIcon(iconType) {
29
29
  switch (iconType) {
30
30
  case "success":
31
31
  return ["M 102.272 613.285 a 48.9258 48.9258 0 0 1 -1.34967 -62.8444 l 26.0656 -31.2113 a 50.6129 50.6129 0 0 1 62.6756 -11.2192 l 199.583 121.218 c 19.4859 11.8097 49.0102 8.26677 65.9655 -8.01371 l 540.714 -519.625 a 40.3216 40.3216 0 0 1 57.9518 1.6871 l 37.9597 43.3583 a 47.5762 47.5762 0 0 1 -0.843545 62.4226 L 452.766 920.675 a 38.4658 38.4658 0 0 1 -56.8553 1.18097 L 102.272 613.285 Z"];
@@ -55,8 +55,6 @@ function getSvgDraw(iconType, draw) {
55
55
  return ["M768 554.666667H256c-25.6 0-42.666667-17.066667-42.666667-42.666667s17.066667-42.666667 42.666667-42.666667h512c25.6 0 42.666667 17.066667 42.666667 42.666667s-17.066667 42.666667-42.666667 42.666667z"];
56
56
  case "grip":
57
57
  return ["M 384 256 m -42.6667 0 a 42.6667 42.6667 0 1 0 85.3333 0 a 42.6667 42.6667 0 1 0 -85.3333 0 Z", "M 384 426.667 m -42.6667 0 a 42.6667 42.6667 0 1 0 85.3333 0 a 42.6667 42.6667 0 1 0 -85.3333 0 Z", "M 384 597.333 m -42.6667 0 a 42.6667 42.6667 0 1 0 85.3333 0 a 42.6667 42.6667 0 1 0 -85.3333 0 Z", "M 384 768 m -42.6667 0 a 42.6667 42.6667 0 1 0 85.3333 0 a 42.6667 42.6667 0 1 0 -85.3333 0 Z", "M 640 256 m -42.6667 0 a 42.6667 42.6667 0 1 0 85.3333 0 a 42.6667 42.6667 0 1 0 -85.3333 0 Z", "M 640 426.667 m -42.6667 0 a 42.6667 42.6667 0 1 0 85.3333 0 a 42.6667 42.6667 0 1 0 -85.3333 0 Z", "M 640 597.333 m -42.6667 0 a 42.6667 42.6667 0 1 0 85.3333 0 a 42.6667 42.6667 0 1 0 -85.3333 0 Z", "M 640 768 m -42.6667 0 a 42.6667 42.6667 0 1 0 85.3333 0 a 42.6667 42.6667 0 1 0 -85.3333 0 Z"];
58
- case "custom":
59
- return isArrayNotEmpty(draw) ? draw : isStringNotEmpty(draw) ? [draw] : throwError("options.draw must be a non-empty string or string array");
60
58
  default:
61
59
  {
62
60
  throwError(`not support icon type: ${iconType}.`);
@@ -65,48 +63,73 @@ function getSvgDraw(iconType, draw) {
65
63
  }
66
64
  }
67
65
 
68
- const _hoisted_1$k = ["viewBox", "width", "height"];
66
+ const _hoisted_1$k = ["viewBox"];
69
67
  const _hoisted_2$c = ["textContent"];
70
- const _hoisted_3$a = ["fill", "stroke", "stroke-width", "d"];
68
+ const _hoisted_3$a = ["d"];
71
69
  var _sfc_main$z = defineComponent({
72
- ...{
73
- name: "Icon",
74
- inheritAttrs: true
75
- },
76
70
  __name: "icon",
77
71
  props: {
78
72
  title: {},
73
+ custom: {
74
+ type: Boolean
75
+ },
79
76
  type: {},
80
- viewBox: {},
77
+ button: {
78
+ type: Boolean
79
+ },
80
+ size: {},
81
81
  color: {},
82
82
  hoverColor: {},
83
- size: {},
84
- stroke: {},
85
- strokeWidth: {},
86
- draw: {},
87
- rotate: {}
83
+ rotate: {},
84
+ viewBox: {}
88
85
  },
89
86
  setup(__props) {
87
+ const props = __props;
90
88
  const isMouseEnterRef = shallowRef(false);
89
+ const sizeRef = computed(() => {
90
+ if (isObject(props.size) == true) {
91
+ return {
92
+ width: correctNumber(props.size.width, 24),
93
+ height: correctNumber(props.size.height, 24)
94
+ };
95
+ } else {
96
+ const number = correctNumber(props.size, 24);
97
+ return {
98
+ width: number,
99
+ height: number
100
+ };
101
+ }
102
+ });
103
+ const styleRef = computed(() => {
104
+ const style = Object.create(null);
105
+ let fill = isMouseEnterRef.value ? correctString(props.hoverColor, props.color, true) : void 0;
106
+ fill == void 0 && (fill = correctString(props.color, void 0, true));
107
+ fill && (style.fill = fill);
108
+ const rotate = correctNumber(props.rotate, 0);
109
+ rotate != 0 && (style.transform = `rotate(${rotate}deg)`);
110
+ return style;
111
+ });
91
112
  return (_ctx, _cache) => {
92
- return openBlock(), createElementBlock("svg", {
93
- class: normalizeClass(["snail-icon", __props.type]),
94
- viewBox: unref(correctString)(__props.viewBox, "0 0 1024 1024", false),
95
- style: normalizeStyle(__props.rotate ? `transform: rotate(${__props.rotate}deg);` : ""),
96
- width: __props.size || 24,
97
- height: __props.size || 24,
113
+ return openBlock(), createElementBlock("svg", mergeProps({
114
+ class: ["snail-icon", __props.type, {
115
+ button: __props.button
116
+ }],
117
+ viewBox: unref(correctString)(__props.viewBox, "0 0 1024 1024", false)
118
+ }, sizeRef.value, {
119
+ style: styleRef.value,
98
120
  onMouseenter: _cache[0] || (_cache[0] = $event => isMouseEnterRef.value = true),
99
121
  onMouseleave: _cache[1] || (_cache[1] = $event => isMouseEnterRef.value = false)
100
- }, [createElementVNode("title", {
122
+ }), [createElementVNode("title", {
101
123
  textContent: toDisplayString(__props.title || "")
102
- }, null, 8, _hoisted_2$c), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(getSvgDraw)(__props.type, __props.draw), d => {
124
+ }, null, 8, _hoisted_2$c), __props.custom == true ? renderSlot(_ctx.$slots, "default", {
125
+ key: 0
126
+ }) : (openBlock(true), createElementBlock(Fragment, {
127
+ key: 1
128
+ }, renderList(unref(getBuiltinIcon)(__props.type), d => {
103
129
  return openBlock(), createElementBlock("path", {
104
- fill: isMouseEnterRef.value ? __props.hoverColor || __props.color : __props.color,
105
- stroke: __props.stroke,
106
- "stroke-width": __props.strokeWidth,
107
130
  d
108
131
  }, null, 8, _hoisted_3$a);
109
- }), 256))], 46, _hoisted_1$k);
132
+ }), 256))], 16, _hoisted_1$k);
110
133
  };
111
134
  }
112
135
  });
@@ -307,10 +330,11 @@ var _sfc_main$w = defineComponent({
307
330
  class: normalizeClass(["header-title", __props.titleAlign])
308
331
  }, null, 10, _hoisted_1$i)) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default"), __props.closeDisabled != true ? (openBlock(), createBlock(_sfc_main$z, {
309
332
  key: 1,
333
+ class: "close-icon",
310
334
  type: "close",
335
+ button: "",
311
336
  size: 22,
312
337
  color: __props.useTo == "page" ? "#2e3033" : "#464953",
313
- class: "close-icon",
314
338
  onClick: _cache[0] || (_cache[0] = $event => emits("close"))
315
339
  }, null, 8, ["color"])) : createCommentVNode("", true)], 2);
316
340
  };
@@ -395,6 +419,7 @@ var _sfc_main$v = defineComponent({
395
419
  title: validateRef.value
396
420
  }, [createVNode(_sfc_main$z, {
397
421
  type: "error",
422
+ button: "",
398
423
  size: 16,
399
424
  color: "red"
400
425
  })], 8, _hoisted_5$4)) : createCommentVNode("", true)])], 2);
@@ -784,12 +809,14 @@ var _sfc_main$u = defineComponent({
784
809
  onClick: _cache[4] || (_cache[4] = $event => onStepClick(false))
785
810
  }, [createVNode(_sfc_main$z, {
786
811
  type: "subtract",
812
+ button: "",
787
813
  size: 20
788
814
  })]), createElementVNode("div", {
789
815
  class: "controls default plus",
790
816
  onClick: _cache[5] || (_cache[5] = $event => onStepClick(true))
791
817
  }, [createVNode(_sfc_main$z, {
792
818
  type: "plus",
819
+ button: "",
793
820
  size: 20
794
821
  })])], 64)) : unref(controls) == "right" ? (openBlock(), createElementBlock(Fragment, {
795
822
  key: 1
@@ -798,6 +825,7 @@ var _sfc_main$u = defineComponent({
798
825
  onClick: _cache[6] || (_cache[6] = $event => onStepClick(true))
799
826
  }, [createVNode(_sfc_main$z, {
800
827
  type: "arrow",
828
+ button: "",
801
829
  size: 20,
802
830
  rotate: 270
803
831
  })]), createElementVNode("div", {
@@ -805,6 +833,7 @@ var _sfc_main$u = defineComponent({
805
833
  onClick: _cache[7] || (_cache[7] = $event => onStepClick(false))
806
834
  }, [createVNode(_sfc_main$z, {
807
835
  type: "arrow",
836
+ button: "",
808
837
  size: 20,
809
838
  rotate: 90
810
839
  })])], 64)) : createCommentVNode("", true)], 2), unref(hasSuffix) ? (openBlock(), createElementBlock("div", _hoisted_4$5, [createElementVNode("span", {
@@ -826,7 +855,6 @@ var _sfc_main$u = defineComponent({
826
855
  });
827
856
 
828
857
  const _hoisted_1$f = ["placeholder", "readonly"];
829
- const searchIon = "M 860.16 824.32 l -163.84 -163.84 c 102.4 -120.32 97.28 -302.08 -17.92 -414.72 c -120.32 -120.32 -314.88 -120.32 -435.2 0 c -120.32 120.32 -120.32 314.88 0 435.2 c 112.64 112.64 294.4 120.32 414.72 17.92 l 163.84 163.84 c 10.24 10.24 25.6 10.24 35.84 0 c 12.8 -12.8 12.8 -28.16 2.56 -38.4 Z M 281.6 642.56 C 181.76 542.72 181.76 381.44 281.6 281.6 c 99.84 -99.84 261.12 -99.84 360.96 0 c 99.84 99.84 99.84 261.12 0 360.96 c -99.84 102.4 -261.12 102.4 -360.96 0 Z";
830
858
  var _sfc_main$t = defineComponent({
831
859
  ...{
832
860
  name: "Search",
@@ -876,11 +904,15 @@ var _sfc_main$t = defineComponent({
876
904
  trim: true
877
905
  }]]), createElementVNode("div", null, [createVNode(_sfc_main$z, {
878
906
  class: "search-button",
879
- type: "custom",
880
- draw: searchIon,
881
- size: 24,
907
+ custom: "",
908
+ button: "",
882
909
  color: "#707070",
883
910
  onClick: _cache[2] || (_cache[2] = $event => onSearch(void 0))
911
+ }, {
912
+ default: withCtx(() => [...(_cache[3] || (_cache[3] = [createElementVNode("path", {
913
+ d: "M 860.16 824.32 l -163.84 -163.84 c 102.4 -120.32 97.28 -302.08 -17.92 -414.72 c -120.32 -120.32 -314.88 -120.32 -435.2 0 c -120.32 120.32 -120.32 314.88 0 435.2 c 112.64 112.64 294.4 120.32 414.72 17.92 l 163.84 163.84 c 10.24 10.24 25.6 10.24 35.84 0 c 12.8 -12.8 12.8 -28.16 2.56 -38.4 Z M 281.6 642.56 C 181.76 542.72 181.76 381.44 281.6 281.6 c 99.84 -99.84 261.12 -99.84 360.96 0 c 99.84 99.84 99.84 261.12 0 360.96 c -99.84 102.4 -261.12 102.4 -360.96 0 Z"
914
+ }, null, -1)]))]),
915
+ _: 1
884
916
  })])], 2);
885
917
  };
886
918
  }
@@ -1638,7 +1670,6 @@ var _sfc_main$l = defineComponent({
1638
1670
  closePopup
1639
1671
  } = __props.extOptions;
1640
1672
  const duration = props.duration > 0 ? props.duration : 1500;
1641
- const closeFillRef = ref("#707070");
1642
1673
  var destroyTimer;
1643
1674
  function onMouseEvent(isLeave) {
1644
1675
  destroyTimer && destroyTimer.destroy();
@@ -1651,22 +1682,22 @@ var _sfc_main$l = defineComponent({
1651
1682
  style: normalizeStyle({
1652
1683
  "z-index": __props.zIndex
1653
1684
  }),
1654
- onMouseenter: _cache[3] || (_cache[3] = $event => onMouseEvent(false)),
1655
- onMouseleave: _cache[4] || (_cache[4] = $event => onMouseEvent(true))
1685
+ onMouseenter: _cache[1] || (_cache[1] = $event => onMouseEvent(false)),
1686
+ onMouseleave: _cache[2] || (_cache[2] = $event => onMouseEvent(true))
1656
1687
  }, [unref(props).closeDisabled != true ? (openBlock(), createBlock(_sfc_main$z, {
1657
1688
  key: 0,
1658
1689
  class: "close-icon",
1659
1690
  type: "close",
1660
- fill: closeFillRef.value,
1691
+ button: "",
1661
1692
  size: 20,
1662
- onMouseenter: _cache[0] || (_cache[0] = $event => closeFillRef.value = "red"),
1663
- onMouseleave: _cache[1] || (_cache[1] = $event => closeFillRef.value = "#707070"),
1664
- onClick: _cache[2] || (_cache[2] = $event => {
1693
+ color: "#707070",
1694
+ "hover-color": "red",
1695
+ onClick: _cache[0] || (_cache[0] = $event => {
1665
1696
  unref(closePopup)();
1666
1697
  })
1667
- }, null, 8, ["fill"])) : createCommentVNode("", true), unref(props).type ? (openBlock(), createElementBlock("div", _hoisted_1$d, [createVNode(_sfc_main$z, {
1698
+ })) : createCommentVNode("", true), unref(props).type ? (openBlock(), createElementBlock("div", _hoisted_1$d, [createVNode(_sfc_main$z, {
1668
1699
  type: unref(props).type,
1669
- fill: "#707070",
1700
+ color: "#707070",
1670
1701
  size: 20
1671
1702
  }, null, 8, ["type"])])) : createCommentVNode("", true), createElementVNode("div", {
1672
1703
  class: "message",
@@ -1910,9 +1941,6 @@ function useSelectContext(items, selectsRef, separator) {
1910
1941
  return Object.freeze(context);
1911
1942
  }
1912
1943
 
1913
- function getTwoArrowIconDraw() {
1914
- return "M759.467 533.333L469.333 243.2l29.867-29.867 320 320-320 320-29.867-29.866 290.134-290.134z m-298.667 0L170.667 243.2l29.866-29.867 320 320-320 320-29.866-29.866L460.8 533.333z";
1915
- }
1916
1944
  function getNoDataBase64Image() {
1917
1945
  return "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyREREODhFQ0M5M0UxMUU5ODlFREVENzc4Njk0RjQ2MiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyREREODhFREM5M0UxMUU5ODlFREVENzc4Njk0RjQ2MiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJEREQ4OEVBQzkzRTExRTk4OUVERUQ3Nzg2OTRGNDYyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJEREQ4OEVCQzkzRTExRTk4OUVERUQ3Nzg2OTRGNDYyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8++keGxAAAA5lJREFUeNrsmktoE0EYx3eSTdpsk2abvnwcFBVp8QFqVPDgQaGgIogIoictelKKVhARBA8q+KAVrFqooh4qXgRfiHpTEHqw9iCKXqQHSVstpqlt0yabrP9p52K1yW72GTMf/JhZMrM7/3l+37REVVWhlMwjlJhxwVwwF8wFc8FcMBfsnIlGKg98TxRa9RbYAFYXUnl+XbjoRpiKXVXMU9qns3xK76CC/YC4QfA1MAg26aiTZGlQQ9la8AZ0g3VuENwLqsArsFVnXW+e30PgKVgGnoA+Nwi+Cw6DAHgGdmqoMwJoXJrJUcYPHoGN4C3Yl6e8rWv4Nmhma/kh2J6n/HW2JsdylLkKtoAPYAeYcPxYmmX32AjcAVHwPEfZFxreR2fAJ9Z5CbMaSYzceMxxDtN198vKo8Vt57ClYh0d4f/OtTTgOjpquaa8WEhldISM5DRYWYCXZdTS4DVoR9tSegdI9y6Nl1KBL5k/7JRto99HW/ZAtGralJ7DTtCPEUKUmqqKPlH0rtXgMZk2utms2jk0PEqPqt3gEOiybJdGjy5BcobmI7LUC7HrbRQ7HaR4PORoOBRoY+f0RbSp3spjqQNIPtEb8/vEqFMnixTwH0T6gPnwbZYIRk/uZWtHqApLQzaP7GyL1kSCPUinqIuKtjWZKhgvpFt1O82X+cXPXq9njdNHD2ZZC/aRTvZ4A20sN3OEz7IgXJDDkls8laV11aEBpHGaB62mCEbPNSA5QvNYO+88hDS6xcHABtbq9XiusMdTYJ4ZI3yBORdKZTBQ6zKnqq62OiQh7WdByzmjgqlzsWs6BAqW9xAiLHJdMECEY36f9zJ7pLt3oxHH4/j0O4kwWREoW8BuKvSYxG4utFoWjOoVHZErlg/+GP2I7ApwkgnXHy1h/VLntNJA76sROfgFI9CgoXh8OD72OJ3OHDA46Am4m3KhU7rSyJfRl2QiOaXVE3oPsU0mzPKw3RcAf5iiZEPaOkf9KsxcyVq7s1vu7SsZEQ5/LO81ydhk3I5Q05Y/tcQTExKLY/+9U2XV++PJVLMtZ7cdH0mlFfnnyPgIpm3s758y3Qj3NiNfY8sxlmeXNt2NhC/ej0grllXVdHIyVY/RbTD7G9iliZkXAIZsKqUspjjmjgolZlwwF1xigr8VoaYBI4I7ilBwl5Hw8JIwcx3aAha6XCj9t4ub4HzBjgfftLhgLpgL5oK5YC6YC+aCuWDt9luAAQC2EPxjL8cUkwAAAABJRU5ErkJggg==";
1918
1946
  }
@@ -1998,12 +2026,12 @@ var _sfc_main$j = defineComponent({
1998
2026
  textContent: toDisplayString(__props.item.text)
1999
2027
  }, null, 8, _hoisted_2$5), __props.item.type == "group" ? (openBlock(), createBlock(_sfc_main$z, {
2000
2028
  key: 0,
2001
- type: "arrow",
2002
- color: "#8a9099"
2029
+ type: "arrow"
2003
2030
  })) : __props.multiple == true ? (openBlock(), createElementBlock("div", _hoisted_3$5, [createVNode(_sfc_main$z, {
2004
2031
  type: "success",
2005
- color: "white",
2006
- size: 12
2032
+ button: "",
2033
+ size: 12,
2034
+ color: "white"
2007
2035
  })])) : createCommentVNode("", true)], 42, _hoisted_1$b)) : createCommentVNode("", true), showRef.value ? (openBlock(true), createElementBlock(Fragment, {
2008
2036
  key: 1
2009
2037
  }, renderList(unref(showChildrenRef), child => {
@@ -2376,11 +2404,9 @@ var _sfc_main$h = defineComponent({
2376
2404
  }, null, 8, _hoisted_3$4)), __props.readonly != true ? (openBlock(), createBlock(_sfc_main$z, {
2377
2405
  key: 2,
2378
2406
  type: "arrow",
2407
+ button: "",
2379
2408
  size: 24,
2380
- color: "#8a9099",
2381
- style: {
2382
- "transform": "rotate(90deg)"
2383
- }
2409
+ rotate: 90
2384
2410
  })) : createCommentVNode("", true)], 64)) : (openBlock(), createElementBlock("div", _hoisted_4$4, "暂无可选项"))], 2);
2385
2411
  };
2386
2412
  }
@@ -2592,10 +2618,13 @@ var _sfc_main$e = defineComponent({
2592
2618
  class: "subtitle ellipsis",
2593
2619
  textContent: toDisplayString(__props.subtitle)
2594
2620
  }, null, 8, _hoisted_3$3)) : createCommentVNode("", true), __props.disabled != true ? (openBlock(), createElementBlock("div", _hoisted_4$3, [createVNode(_sfc_main$z, {
2621
+ custom: false,
2595
2622
  type: "arrow",
2623
+ button: "",
2596
2624
  title: statusModel.value == "expand" ? "收起" : "展开",
2625
+ rotate: statusModel.value == "expand" ? -90 : 90,
2597
2626
  onClick: onStatusClick
2598
- }, null, 8, ["title"])])) : createCommentVNode("", true)])]), createElementVNode("div", _hoisted_5$2, [renderSlot(_ctx.$slots, "default")], 512)], 2);
2627
+ }, null, 8, ["title", "rotate"])])) : createCommentVNode("", true)])]), createElementVNode("div", _hoisted_5$2, [renderSlot(_ctx.$slots, "default")], 512)], 2);
2599
2628
  };
2600
2629
  }
2601
2630
  });
@@ -3042,8 +3071,7 @@ const _hoisted_3$2 = {
3042
3071
  class: "node-slot ellipsis"
3043
3072
  };
3044
3073
  const _hoisted_4$2 = {
3045
- key: 1,
3046
- class: "snail-tree-children hidden",
3074
+ class: "snail-tree-children",
3047
3075
  ref: "children"
3048
3076
  };
3049
3077
  var _sfc_main$7 = defineComponent({
@@ -3071,10 +3099,6 @@ var _sfc_main$7 = defineComponent({
3071
3099
  const {
3072
3100
  transition
3073
3101
  } = useAnimation();
3074
- const {
3075
- watcher
3076
- } = useReactive();
3077
- const treeNodeDom = useTemplateRef("tree-node");
3078
3102
  const isHoveredRef = shallowRef(false);
3079
3103
  const showRef = computed(() => __props.context.isShow(__props.node, true));
3080
3104
  const showChildrenRef = computed(() => __props.context.isShowChildren(__props.node, true));
@@ -3131,28 +3155,22 @@ var _sfc_main$7 = defineComponent({
3131
3155
  parents = __props.parent ? [__props.parent, ...parents] : parents;
3132
3156
  emits("click", child, parents);
3133
3157
  }
3134
- watcher(isHoveredRef, newValue => {
3135
- treeNodeDom.value.classList.remove("hovered");
3136
- newValue && treeNodeDom.value.classList.add("hovered");
3137
- });
3138
- watcher(() => __props.context.isActived(__props.node), newValue => {
3139
- if (treeNodeDom.value) {
3140
- treeNodeDom.value.classList.remove("actived");
3141
- newValue && treeNodeDom.value.classList.add("actived");
3142
- }
3143
- });
3144
- onMounted(() => {
3158
+ onMounted(async () => {
3159
+ await nextTick();
3145
3160
  if (childrenDom.value) {
3146
3161
  __props.options.expandLevel != void 0 && __props.options.expandLevel < nextLevel && toggleFold();
3147
- childrenDom.value && childrenDom.value.classList.remove("hidden");
3148
3162
  nodeEmitsDisabled = false;
3149
3163
  }
3150
3164
  });
3165
+ onActivated(() => {});
3151
3166
  return (_ctx, _cache) => {
3152
3167
  const _component_TreeNode = resolveComponent("TreeNode", true);
3153
- return openBlock(), createElementBlock(Fragment, null, [showRef.value ? (openBlock(), createElementBlock("div", {
3154
- key: 0,
3155
- class: normalizeClass(["snail-tree-node", __props.node.clickable ? "clickable" : "", `level-${__props.level}`]),
3168
+ return openBlock(), createElementBlock(Fragment, null, [withDirectives(createElementVNode("div", {
3169
+ class: normalizeClass(["snail-tree-node", `level-${__props.level}`, {
3170
+ clickable: __props.node.clickable,
3171
+ hovered: isHoveredRef.value,
3172
+ actived: __props.context.isActived(__props.node)
3173
+ }]),
3156
3174
  ref: "tree-node",
3157
3175
  onMouseenter: _cache[0] || (_cache[0] = $event => isHoveredRef.value = true),
3158
3176
  onMouseleave: _cache[1] || (_cache[1] = $event => isHoveredRef.value = false),
@@ -3162,21 +3180,24 @@ var _sfc_main$7 = defineComponent({
3162
3180
  key: 0
3163
3181
  }, unref(slotOptions)))) : (openBlock(), createElementBlock(Fragment, {
3164
3182
  key: 1
3165
- }, [_cache[4] || (_cache[4] = createElementVNode("div", {
3183
+ }, [_cache[5] || (_cache[5] = createElementVNode("div", {
3166
3184
  class: "indent"
3167
3185
  }, null, -1)), __props.options.foldDisabled != true ? (openBlock(), createElementBlock("div", _hoisted_1$6, [showChildrenRef.value ? (openBlock(), createBlock(_sfc_main$z, {
3168
3186
  key: 0,
3169
3187
  class: normalizeClass(statusRef.value),
3170
- type: "custom",
3171
- size: 24,
3172
- color: "#8a8099",
3173
- draw: "M 298.667 426.667 l 213.333 256 l 213.333 -256 Z",
3188
+ custom: "",
3189
+ button: "",
3174
3190
  onClick: toggleFold
3175
- }, null, 8, ["class"])) : createCommentVNode("", true)])) : createCommentVNode("", true), createElementVNode("div", {
3191
+ }, {
3192
+ default: withCtx(() => [...(_cache[4] || (_cache[4] = [createElementVNode("path", {
3193
+ d: "M 298.667 426.667 l 213.333 256 l 213.333 -256 Z"
3194
+ }, null, -1)]))]),
3195
+ _: 1
3196
+ }, 8, ["class"])) : createCommentVNode("", true)])) : createCommentVNode("", true), createElementVNode("div", {
3176
3197
  class: "node-text ellipsis",
3177
3198
  title: __props.node.text,
3178
3199
  textContent: toDisplayString(__props.node.text)
3179
- }, null, 8, _hoisted_2$2), createElementVNode("div", _hoisted_3$2, [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(unref(slotOptions))))])], 64))], 34)) : createCommentVNode("", true), showRef.value && showChildrenRef.value ? (openBlock(), createElementBlock("div", _hoisted_4$2, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.node.children, child => {
3200
+ }, null, 8, _hoisted_2$2), createElementVNode("div", _hoisted_3$2, [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(unref(slotOptions))))])], 64))], 34), [[vShow, showRef.value]]), withDirectives(createElementVNode("div", _hoisted_4$2, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.node.children, child => {
3180
3201
  return openBlock(), createBlock(_component_TreeNode, {
3181
3202
  key: __props.context.getKey(child),
3182
3203
  node: child,
@@ -3191,7 +3212,7 @@ var _sfc_main$7 = defineComponent({
3191
3212
  }, slotProps))]),
3192
3213
  _: 3
3193
3214
  }, 8, ["node", "parent", "options", "context"]);
3194
- }), 128))], 512)) : createCommentVNode("", true)], 64);
3215
+ }), 128))], 512), [[vShow, showRef.value && showChildrenRef.value]])], 64);
3195
3216
  };
3196
3217
  }
3197
3218
  });
@@ -3870,6 +3891,7 @@ var _sfc_main$3 = defineComponent({
3870
3891
  }, createSlots({
3871
3892
  top: withCtx(() => [createVNode(_sfc_main$z, {
3872
3893
  type: "arrow",
3894
+ button: "",
3873
3895
  rotate: 180,
3874
3896
  size: 26,
3875
3897
  onClick: _cache[0] || (_cache[0] = $event => buildPickerItems(stepRef.value, -1))
@@ -3889,6 +3911,7 @@ var _sfc_main$3 = defineComponent({
3889
3911
  onClick: _cache[2] || (_cache[2] = $event => onSwitchStepClick("month"))
3890
3912
  }, null, 8, _hoisted_3)) : createCommentVNode("", true)], 64))], 2), createVNode(_sfc_main$z, {
3891
3913
  type: "arrow",
3914
+ button: "",
3892
3915
  size: 26,
3893
3916
  onClick: _cache[3] || (_cache[3] = $event => buildPickerItems(stepRef.value, 1))
3894
3917
  })]),
@@ -4101,9 +4124,10 @@ var _sfc_main$2 = defineComponent({
4101
4124
  }, null, 512), [[vModelText, valueRef.value]]), __props.readonly != true ? (openBlock(), createBlock(_sfc_main$z, {
4102
4125
  key: 0,
4103
4126
  type: "datepicker",
4127
+ button: "",
4128
+ size: 16,
4104
4129
  color: "#aeb6c2",
4105
- "hover-color": "#279bf1",
4106
- size: 16
4130
+ "hover-color": "#279bf1"
4107
4131
  })) : createCommentVNode("", true)], 10, _hoisted_1$2);
4108
4132
  };
4109
4133
  }
@@ -4186,9 +4210,10 @@ var _sfc_main$1 = defineComponent({
4186
4210
  }, null, 512), [[vModelText, valueRef.value]]), __props.readonly != true ? (openBlock(), createBlock(_sfc_main$z, {
4187
4211
  key: 0,
4188
4212
  type: "timepicker",
4213
+ button: "",
4214
+ size: 20,
4189
4215
  color: "#aeb6c2",
4190
- "hover-color": "#279bf1",
4191
- size: 20
4216
+ "hover-color": "#279bf1"
4192
4217
  })) : createCommentVNode("", true)], 10, _hoisted_1$1);
4193
4218
  };
4194
4219
  }
@@ -4223,7 +4248,6 @@ var _sfc_main = defineComponent({
4223
4248
  endX: 0,
4224
4249
  distance: 0
4225
4250
  });
4226
- const towArrowIcon = getTwoArrowIconDraw();
4227
4251
  function getMaxDistance() {
4228
4252
  return dragHandleDom.value.parentElement.getBoundingClientRect().width - dragHandleDom.value.getBoundingClientRect().width;
4229
4253
  }
@@ -4286,11 +4310,18 @@ var _sfc_main = defineComponent({
4286
4310
  color: "white"
4287
4311
  })) : (openBlock(), createBlock(_sfc_main$z, {
4288
4312
  key: 1,
4289
- type: "custom",
4313
+ custom: "",
4290
4314
  size: 20,
4291
- color: "#948D8D",
4292
- draw: unref(towArrowIcon)
4293
- }, null, 8, ["draw"]))], 36)], 2);
4315
+ color: "#948d8d",
4316
+ style: {
4317
+ "cursor": "move"
4318
+ }
4319
+ }, {
4320
+ default: withCtx(() => [...(_cache[0] || (_cache[0] = [createElementVNode("path", {
4321
+ d: "M759.467 533.333L469.333 243.2l29.867-29.867 320 320-320 320-29.867-29.866 290.134-290.134z m-298.667 0L170.667 243.2l29.866-29.867 320 320-320 320-29.866-29.866L460.8 533.333z"
4322
+ }, null, -1)]))]),
4323
+ _: 1
4324
+ }))], 36)], 2);
4294
4325
  };
4295
4326
  }
4296
4327
  });
@@ -4329,4 +4360,4 @@ onMountScope(scope => {
4329
4360
  getCurrentScope() && onScopeDispose(scope.destroy);
4330
4361
  });
4331
4362
 
4332
- export { MOTION, components, getSvgDraw, mount, onAppCreated, triggerAppCreated, usePicker, usePopup, useReactive, useTreeContext };
4363
+ export { MOTION, components, getBuiltinIcon, mount, onAppCreated, triggerAppCreated, usePicker, usePopup, useReactive, useTreeContext };
@@ -27,7 +27,7 @@
27
27
  }
28
28
  });
29
29
 
30
- function getSvgDraw(iconType, draw) {
30
+ function getBuiltinIcon(iconType) {
31
31
  switch (iconType) {
32
32
  case "success":
33
33
  return ["M 102.272 613.285 a 48.9258 48.9258 0 0 1 -1.34967 -62.8444 l 26.0656 -31.2113 a 50.6129 50.6129 0 0 1 62.6756 -11.2192 l 199.583 121.218 c 19.4859 11.8097 49.0102 8.26677 65.9655 -8.01371 l 540.714 -519.625 a 40.3216 40.3216 0 0 1 57.9518 1.6871 l 37.9597 43.3583 a 47.5762 47.5762 0 0 1 -0.843545 62.4226 L 452.766 920.675 a 38.4658 38.4658 0 0 1 -56.8553 1.18097 L 102.272 613.285 Z"];
@@ -57,8 +57,6 @@
57
57
  return ["M768 554.666667H256c-25.6 0-42.666667-17.066667-42.666667-42.666667s17.066667-42.666667 42.666667-42.666667h512c25.6 0 42.666667 17.066667 42.666667 42.666667s-17.066667 42.666667-42.666667 42.666667z"];
58
58
  case "grip":
59
59
  return ["M 384 256 m -42.6667 0 a 42.6667 42.6667 0 1 0 85.3333 0 a 42.6667 42.6667 0 1 0 -85.3333 0 Z", "M 384 426.667 m -42.6667 0 a 42.6667 42.6667 0 1 0 85.3333 0 a 42.6667 42.6667 0 1 0 -85.3333 0 Z", "M 384 597.333 m -42.6667 0 a 42.6667 42.6667 0 1 0 85.3333 0 a 42.6667 42.6667 0 1 0 -85.3333 0 Z", "M 384 768 m -42.6667 0 a 42.6667 42.6667 0 1 0 85.3333 0 a 42.6667 42.6667 0 1 0 -85.3333 0 Z", "M 640 256 m -42.6667 0 a 42.6667 42.6667 0 1 0 85.3333 0 a 42.6667 42.6667 0 1 0 -85.3333 0 Z", "M 640 426.667 m -42.6667 0 a 42.6667 42.6667 0 1 0 85.3333 0 a 42.6667 42.6667 0 1 0 -85.3333 0 Z", "M 640 597.333 m -42.6667 0 a 42.6667 42.6667 0 1 0 85.3333 0 a 42.6667 42.6667 0 1 0 -85.3333 0 Z", "M 640 768 m -42.6667 0 a 42.6667 42.6667 0 1 0 85.3333 0 a 42.6667 42.6667 0 1 0 -85.3333 0 Z"];
60
- case "custom":
61
- return snail_core.isArrayNotEmpty(draw) ? draw : snail_core.isStringNotEmpty(draw) ? [draw] : snail_core.throwError("options.draw must be a non-empty string or string array");
62
60
  default:
63
61
  {
64
62
  snail_core.throwError(`not support icon type: ${iconType}.`);
@@ -67,48 +65,73 @@
67
65
  }
68
66
  }
69
67
 
70
- const _hoisted_1$k = ["viewBox", "width", "height"];
68
+ const _hoisted_1$k = ["viewBox"];
71
69
  const _hoisted_2$c = ["textContent"];
72
- const _hoisted_3$a = ["fill", "stroke", "stroke-width", "d"];
70
+ const _hoisted_3$a = ["d"];
73
71
  var _sfc_main$z = vue.defineComponent({
74
- ...{
75
- name: "Icon",
76
- inheritAttrs: true
77
- },
78
72
  __name: "icon",
79
73
  props: {
80
74
  title: {},
75
+ custom: {
76
+ type: Boolean
77
+ },
81
78
  type: {},
82
- viewBox: {},
79
+ button: {
80
+ type: Boolean
81
+ },
82
+ size: {},
83
83
  color: {},
84
84
  hoverColor: {},
85
- size: {},
86
- stroke: {},
87
- strokeWidth: {},
88
- draw: {},
89
- rotate: {}
85
+ rotate: {},
86
+ viewBox: {}
90
87
  },
91
88
  setup(__props) {
89
+ const props = __props;
92
90
  const isMouseEnterRef = vue.shallowRef(false);
91
+ const sizeRef = vue.computed(() => {
92
+ if (snail_core.isObject(props.size) == true) {
93
+ return {
94
+ width: snail_core.correctNumber(props.size.width, 24),
95
+ height: snail_core.correctNumber(props.size.height, 24)
96
+ };
97
+ } else {
98
+ const number = snail_core.correctNumber(props.size, 24);
99
+ return {
100
+ width: number,
101
+ height: number
102
+ };
103
+ }
104
+ });
105
+ const styleRef = vue.computed(() => {
106
+ const style = Object.create(null);
107
+ let fill = isMouseEnterRef.value ? snail_core.correctString(props.hoverColor, props.color, true) : void 0;
108
+ fill == void 0 && (fill = snail_core.correctString(props.color, void 0, true));
109
+ fill && (style.fill = fill);
110
+ const rotate = snail_core.correctNumber(props.rotate, 0);
111
+ rotate != 0 && (style.transform = `rotate(${rotate}deg)`);
112
+ return style;
113
+ });
93
114
  return (_ctx, _cache) => {
94
- return vue.openBlock(), vue.createElementBlock("svg", {
95
- class: vue.normalizeClass(["snail-icon", __props.type]),
96
- viewBox: vue.unref(snail_core.correctString)(__props.viewBox, "0 0 1024 1024", false),
97
- style: vue.normalizeStyle(__props.rotate ? `transform: rotate(${__props.rotate}deg);` : ""),
98
- width: __props.size || 24,
99
- height: __props.size || 24,
115
+ return vue.openBlock(), vue.createElementBlock("svg", vue.mergeProps({
116
+ class: ["snail-icon", __props.type, {
117
+ button: __props.button
118
+ }],
119
+ viewBox: vue.unref(snail_core.correctString)(__props.viewBox, "0 0 1024 1024", false)
120
+ }, sizeRef.value, {
121
+ style: styleRef.value,
100
122
  onMouseenter: _cache[0] || (_cache[0] = $event => isMouseEnterRef.value = true),
101
123
  onMouseleave: _cache[1] || (_cache[1] = $event => isMouseEnterRef.value = false)
102
- }, [vue.createElementVNode("title", {
124
+ }), [vue.createElementVNode("title", {
103
125
  textContent: vue.toDisplayString(__props.title || "")
104
- }, null, 8, _hoisted_2$c), (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(getSvgDraw)(__props.type, __props.draw), d => {
126
+ }, null, 8, _hoisted_2$c), __props.custom == true ? vue.renderSlot(_ctx.$slots, "default", {
127
+ key: 0
128
+ }) : (vue.openBlock(true), vue.createElementBlock(vue.Fragment, {
129
+ key: 1
130
+ }, vue.renderList(vue.unref(getBuiltinIcon)(__props.type), d => {
105
131
  return vue.openBlock(), vue.createElementBlock("path", {
106
- fill: isMouseEnterRef.value ? __props.hoverColor || __props.color : __props.color,
107
- stroke: __props.stroke,
108
- "stroke-width": __props.strokeWidth,
109
132
  d
110
133
  }, null, 8, _hoisted_3$a);
111
- }), 256))], 46, _hoisted_1$k);
134
+ }), 256))], 16, _hoisted_1$k);
112
135
  };
113
136
  }
114
137
  });
@@ -309,10 +332,11 @@
309
332
  class: vue.normalizeClass(["header-title", __props.titleAlign])
310
333
  }, null, 10, _hoisted_1$i)) : vue.createCommentVNode("", true), vue.renderSlot(_ctx.$slots, "default"), __props.closeDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
311
334
  key: 1,
335
+ class: "close-icon",
312
336
  type: "close",
337
+ button: "",
313
338
  size: 22,
314
339
  color: __props.useTo == "page" ? "#2e3033" : "#464953",
315
- class: "close-icon",
316
340
  onClick: _cache[0] || (_cache[0] = $event => emits("close"))
317
341
  }, null, 8, ["color"])) : vue.createCommentVNode("", true)], 2);
318
342
  };
@@ -397,6 +421,7 @@
397
421
  title: validateRef.value
398
422
  }, [vue.createVNode(_sfc_main$z, {
399
423
  type: "error",
424
+ button: "",
400
425
  size: 16,
401
426
  color: "red"
402
427
  })], 8, _hoisted_5$4)) : vue.createCommentVNode("", true)])], 2);
@@ -786,12 +811,14 @@
786
811
  onClick: _cache[4] || (_cache[4] = $event => onStepClick(false))
787
812
  }, [vue.createVNode(_sfc_main$z, {
788
813
  type: "subtract",
814
+ button: "",
789
815
  size: 20
790
816
  })]), vue.createElementVNode("div", {
791
817
  class: "controls default plus",
792
818
  onClick: _cache[5] || (_cache[5] = $event => onStepClick(true))
793
819
  }, [vue.createVNode(_sfc_main$z, {
794
820
  type: "plus",
821
+ button: "",
795
822
  size: 20
796
823
  })])], 64)) : vue.unref(controls) == "right" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
797
824
  key: 1
@@ -800,6 +827,7 @@
800
827
  onClick: _cache[6] || (_cache[6] = $event => onStepClick(true))
801
828
  }, [vue.createVNode(_sfc_main$z, {
802
829
  type: "arrow",
830
+ button: "",
803
831
  size: 20,
804
832
  rotate: 270
805
833
  })]), vue.createElementVNode("div", {
@@ -807,6 +835,7 @@
807
835
  onClick: _cache[7] || (_cache[7] = $event => onStepClick(false))
808
836
  }, [vue.createVNode(_sfc_main$z, {
809
837
  type: "arrow",
838
+ button: "",
810
839
  size: 20,
811
840
  rotate: 90
812
841
  })])], 64)) : vue.createCommentVNode("", true)], 2), vue.unref(hasSuffix) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$5, [vue.createElementVNode("span", {
@@ -828,7 +857,6 @@
828
857
  });
829
858
 
830
859
  const _hoisted_1$f = ["placeholder", "readonly"];
831
- const searchIon = "M 860.16 824.32 l -163.84 -163.84 c 102.4 -120.32 97.28 -302.08 -17.92 -414.72 c -120.32 -120.32 -314.88 -120.32 -435.2 0 c -120.32 120.32 -120.32 314.88 0 435.2 c 112.64 112.64 294.4 120.32 414.72 17.92 l 163.84 163.84 c 10.24 10.24 25.6 10.24 35.84 0 c 12.8 -12.8 12.8 -28.16 2.56 -38.4 Z M 281.6 642.56 C 181.76 542.72 181.76 381.44 281.6 281.6 c 99.84 -99.84 261.12 -99.84 360.96 0 c 99.84 99.84 99.84 261.12 0 360.96 c -99.84 102.4 -261.12 102.4 -360.96 0 Z";
832
860
  var _sfc_main$t = vue.defineComponent({
833
861
  ...{
834
862
  name: "Search",
@@ -878,11 +906,15 @@
878
906
  trim: true
879
907
  }]]), vue.createElementVNode("div", null, [vue.createVNode(_sfc_main$z, {
880
908
  class: "search-button",
881
- type: "custom",
882
- draw: searchIon,
883
- size: 24,
909
+ custom: "",
910
+ button: "",
884
911
  color: "#707070",
885
912
  onClick: _cache[2] || (_cache[2] = $event => onSearch(void 0))
913
+ }, {
914
+ default: vue.withCtx(() => [...(_cache[3] || (_cache[3] = [vue.createElementVNode("path", {
915
+ d: "M 860.16 824.32 l -163.84 -163.84 c 102.4 -120.32 97.28 -302.08 -17.92 -414.72 c -120.32 -120.32 -314.88 -120.32 -435.2 0 c -120.32 120.32 -120.32 314.88 0 435.2 c 112.64 112.64 294.4 120.32 414.72 17.92 l 163.84 163.84 c 10.24 10.24 25.6 10.24 35.84 0 c 12.8 -12.8 12.8 -28.16 2.56 -38.4 Z M 281.6 642.56 C 181.76 542.72 181.76 381.44 281.6 281.6 c 99.84 -99.84 261.12 -99.84 360.96 0 c 99.84 99.84 99.84 261.12 0 360.96 c -99.84 102.4 -261.12 102.4 -360.96 0 Z"
916
+ }, null, -1)]))]),
917
+ _: 1
886
918
  })])], 2);
887
919
  };
888
920
  }
@@ -1640,7 +1672,6 @@
1640
1672
  closePopup
1641
1673
  } = __props.extOptions;
1642
1674
  const duration = props.duration > 0 ? props.duration : 1500;
1643
- const closeFillRef = vue.ref("#707070");
1644
1675
  var destroyTimer;
1645
1676
  function onMouseEvent(isLeave) {
1646
1677
  destroyTimer && destroyTimer.destroy();
@@ -1653,22 +1684,22 @@
1653
1684
  style: vue.normalizeStyle({
1654
1685
  "z-index": __props.zIndex
1655
1686
  }),
1656
- onMouseenter: _cache[3] || (_cache[3] = $event => onMouseEvent(false)),
1657
- onMouseleave: _cache[4] || (_cache[4] = $event => onMouseEvent(true))
1687
+ onMouseenter: _cache[1] || (_cache[1] = $event => onMouseEvent(false)),
1688
+ onMouseleave: _cache[2] || (_cache[2] = $event => onMouseEvent(true))
1658
1689
  }, [vue.unref(props).closeDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
1659
1690
  key: 0,
1660
1691
  class: "close-icon",
1661
1692
  type: "close",
1662
- fill: closeFillRef.value,
1693
+ button: "",
1663
1694
  size: 20,
1664
- onMouseenter: _cache[0] || (_cache[0] = $event => closeFillRef.value = "red"),
1665
- onMouseleave: _cache[1] || (_cache[1] = $event => closeFillRef.value = "#707070"),
1666
- onClick: _cache[2] || (_cache[2] = $event => {
1695
+ color: "#707070",
1696
+ "hover-color": "red",
1697
+ onClick: _cache[0] || (_cache[0] = $event => {
1667
1698
  vue.unref(closePopup)();
1668
1699
  })
1669
- }, null, 8, ["fill"])) : vue.createCommentVNode("", true), vue.unref(props).type ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$d, [vue.createVNode(_sfc_main$z, {
1700
+ })) : vue.createCommentVNode("", true), vue.unref(props).type ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$d, [vue.createVNode(_sfc_main$z, {
1670
1701
  type: vue.unref(props).type,
1671
- fill: "#707070",
1702
+ color: "#707070",
1672
1703
  size: 20
1673
1704
  }, null, 8, ["type"])])) : vue.createCommentVNode("", true), vue.createElementVNode("div", {
1674
1705
  class: "message",
@@ -1912,9 +1943,6 @@
1912
1943
  return Object.freeze(context);
1913
1944
  }
1914
1945
 
1915
- function getTwoArrowIconDraw() {
1916
- return "M759.467 533.333L469.333 243.2l29.867-29.867 320 320-320 320-29.867-29.866 290.134-290.134z m-298.667 0L170.667 243.2l29.866-29.867 320 320-320 320-29.866-29.866L460.8 533.333z";
1917
- }
1918
1946
  function getNoDataBase64Image() {
1919
1947
  return "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyREREODhFQ0M5M0UxMUU5ODlFREVENzc4Njk0RjQ2MiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyREREODhFREM5M0UxMUU5ODlFREVENzc4Njk0RjQ2MiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJEREQ4OEVBQzkzRTExRTk4OUVERUQ3Nzg2OTRGNDYyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJEREQ4OEVCQzkzRTExRTk4OUVERUQ3Nzg2OTRGNDYyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8++keGxAAAA5lJREFUeNrsmktoE0EYx3eSTdpsk2abvnwcFBVp8QFqVPDgQaGgIogIoictelKKVhARBA8q+KAVrFqooh4qXgRfiHpTEHqw9iCKXqQHSVstpqlt0yabrP9p52K1yW72GTMf/JhZMrM7/3l+37REVVWhlMwjlJhxwVwwF8wFc8FcMBfsnIlGKg98TxRa9RbYAFYXUnl+XbjoRpiKXVXMU9qns3xK76CC/YC4QfA1MAg26aiTZGlQQ9la8AZ0g3VuENwLqsArsFVnXW+e30PgKVgGnoA+Nwi+Cw6DAHgGdmqoMwJoXJrJUcYPHoGN4C3Yl6e8rWv4Nmhma/kh2J6n/HW2JsdylLkKtoAPYAeYcPxYmmX32AjcAVHwPEfZFxreR2fAJ9Z5CbMaSYzceMxxDtN198vKo8Vt57ClYh0d4f/OtTTgOjpquaa8WEhldISM5DRYWYCXZdTS4DVoR9tSegdI9y6Nl1KBL5k/7JRto99HW/ZAtGralJ7DTtCPEUKUmqqKPlH0rtXgMZk2utms2jk0PEqPqt3gEOiybJdGjy5BcobmI7LUC7HrbRQ7HaR4PORoOBRoY+f0RbSp3spjqQNIPtEb8/vEqFMnixTwH0T6gPnwbZYIRk/uZWtHqApLQzaP7GyL1kSCPUinqIuKtjWZKhgvpFt1O82X+cXPXq9njdNHD2ZZC/aRTvZ4A20sN3OEz7IgXJDDkls8laV11aEBpHGaB62mCEbPNSA5QvNYO+88hDS6xcHABtbq9XiusMdTYJ4ZI3yBORdKZTBQ6zKnqq62OiQh7WdByzmjgqlzsWs6BAqW9xAiLHJdMECEY36f9zJ7pLt3oxHH4/j0O4kwWREoW8BuKvSYxG4utFoWjOoVHZErlg/+GP2I7ApwkgnXHy1h/VLntNJA76sROfgFI9CgoXh8OD72OJ3OHDA46Am4m3KhU7rSyJfRl2QiOaXVE3oPsU0mzPKw3RcAf5iiZEPaOkf9KsxcyVq7s1vu7SsZEQ5/LO81ydhk3I5Q05Y/tcQTExKLY/+9U2XV++PJVLMtZ7cdH0mlFfnnyPgIpm3s758y3Qj3NiNfY8sxlmeXNt2NhC/ej0grllXVdHIyVY/RbTD7G9iliZkXAIZsKqUspjjmjgolZlwwF1xigr8VoaYBI4I7ilBwl5Hw8JIwcx3aAha6XCj9t4ub4HzBjgfftLhgLpgL5oK5YC6YC+aCuWDt9luAAQC2EPxjL8cUkwAAAABJRU5ErkJggg==";
1920
1948
  }
@@ -2000,12 +2028,12 @@
2000
2028
  textContent: vue.toDisplayString(__props.item.text)
2001
2029
  }, null, 8, _hoisted_2$5), __props.item.type == "group" ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
2002
2030
  key: 0,
2003
- type: "arrow",
2004
- color: "#8a9099"
2031
+ type: "arrow"
2005
2032
  })) : __props.multiple == true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$5, [vue.createVNode(_sfc_main$z, {
2006
2033
  type: "success",
2007
- color: "white",
2008
- size: 12
2034
+ button: "",
2035
+ size: 12,
2036
+ color: "white"
2009
2037
  })])) : vue.createCommentVNode("", true)], 42, _hoisted_1$b)) : vue.createCommentVNode("", true), showRef.value ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, {
2010
2038
  key: 1
2011
2039
  }, vue.renderList(vue.unref(showChildrenRef), child => {
@@ -2378,11 +2406,9 @@
2378
2406
  }, null, 8, _hoisted_3$4)), __props.readonly != true ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
2379
2407
  key: 2,
2380
2408
  type: "arrow",
2409
+ button: "",
2381
2410
  size: 24,
2382
- color: "#8a9099",
2383
- style: {
2384
- "transform": "rotate(90deg)"
2385
- }
2411
+ rotate: 90
2386
2412
  })) : vue.createCommentVNode("", true)], 64)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$4, "暂无可选项"))], 2);
2387
2413
  };
2388
2414
  }
@@ -2594,10 +2620,13 @@
2594
2620
  class: "subtitle ellipsis",
2595
2621
  textContent: vue.toDisplayString(__props.subtitle)
2596
2622
  }, null, 8, _hoisted_3$3)) : vue.createCommentVNode("", true), __props.disabled != true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$3, [vue.createVNode(_sfc_main$z, {
2623
+ custom: false,
2597
2624
  type: "arrow",
2625
+ button: "",
2598
2626
  title: statusModel.value == "expand" ? "收起" : "展开",
2627
+ rotate: statusModel.value == "expand" ? -90 : 90,
2599
2628
  onClick: onStatusClick
2600
- }, null, 8, ["title"])])) : vue.createCommentVNode("", true)])]), vue.createElementVNode("div", _hoisted_5$2, [vue.renderSlot(_ctx.$slots, "default")], 512)], 2);
2629
+ }, null, 8, ["title", "rotate"])])) : vue.createCommentVNode("", true)])]), vue.createElementVNode("div", _hoisted_5$2, [vue.renderSlot(_ctx.$slots, "default")], 512)], 2);
2601
2630
  };
2602
2631
  }
2603
2632
  });
@@ -3044,8 +3073,7 @@
3044
3073
  class: "node-slot ellipsis"
3045
3074
  };
3046
3075
  const _hoisted_4$2 = {
3047
- key: 1,
3048
- class: "snail-tree-children hidden",
3076
+ class: "snail-tree-children",
3049
3077
  ref: "children"
3050
3078
  };
3051
3079
  var _sfc_main$7 = vue.defineComponent({
@@ -3073,10 +3101,6 @@
3073
3101
  const {
3074
3102
  transition
3075
3103
  } = snail_view.useAnimation();
3076
- const {
3077
- watcher
3078
- } = useReactive();
3079
- const treeNodeDom = vue.useTemplateRef("tree-node");
3080
3104
  const isHoveredRef = vue.shallowRef(false);
3081
3105
  const showRef = vue.computed(() => __props.context.isShow(__props.node, true));
3082
3106
  const showChildrenRef = vue.computed(() => __props.context.isShowChildren(__props.node, true));
@@ -3133,28 +3157,22 @@
3133
3157
  parents = __props.parent ? [__props.parent, ...parents] : parents;
3134
3158
  emits("click", child, parents);
3135
3159
  }
3136
- watcher(isHoveredRef, newValue => {
3137
- treeNodeDom.value.classList.remove("hovered");
3138
- newValue && treeNodeDom.value.classList.add("hovered");
3139
- });
3140
- watcher(() => __props.context.isActived(__props.node), newValue => {
3141
- if (treeNodeDom.value) {
3142
- treeNodeDom.value.classList.remove("actived");
3143
- newValue && treeNodeDom.value.classList.add("actived");
3144
- }
3145
- });
3146
- vue.onMounted(() => {
3160
+ vue.onMounted(async () => {
3161
+ await vue.nextTick();
3147
3162
  if (childrenDom.value) {
3148
3163
  __props.options.expandLevel != void 0 && __props.options.expandLevel < nextLevel && toggleFold();
3149
- childrenDom.value && childrenDom.value.classList.remove("hidden");
3150
3164
  nodeEmitsDisabled = false;
3151
3165
  }
3152
3166
  });
3167
+ vue.onActivated(() => {});
3153
3168
  return (_ctx, _cache) => {
3154
3169
  const _component_TreeNode = vue.resolveComponent("TreeNode", true);
3155
- return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [showRef.value ? (vue.openBlock(), vue.createElementBlock("div", {
3156
- key: 0,
3157
- class: vue.normalizeClass(["snail-tree-node", __props.node.clickable ? "clickable" : "", `level-${__props.level}`]),
3170
+ return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [vue.withDirectives(vue.createElementVNode("div", {
3171
+ class: vue.normalizeClass(["snail-tree-node", `level-${__props.level}`, {
3172
+ clickable: __props.node.clickable,
3173
+ hovered: isHoveredRef.value,
3174
+ actived: __props.context.isActived(__props.node)
3175
+ }]),
3158
3176
  ref: "tree-node",
3159
3177
  onMouseenter: _cache[0] || (_cache[0] = $event => isHoveredRef.value = true),
3160
3178
  onMouseleave: _cache[1] || (_cache[1] = $event => isHoveredRef.value = false),
@@ -3164,21 +3182,24 @@
3164
3182
  key: 0
3165
3183
  }, vue.unref(slotOptions)))) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
3166
3184
  key: 1
3167
- }, [_cache[4] || (_cache[4] = vue.createElementVNode("div", {
3185
+ }, [_cache[5] || (_cache[5] = vue.createElementVNode("div", {
3168
3186
  class: "indent"
3169
3187
  }, null, -1)), __props.options.foldDisabled != true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6, [showChildrenRef.value ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
3170
3188
  key: 0,
3171
3189
  class: vue.normalizeClass(statusRef.value),
3172
- type: "custom",
3173
- size: 24,
3174
- color: "#8a8099",
3175
- draw: "M 298.667 426.667 l 213.333 256 l 213.333 -256 Z",
3190
+ custom: "",
3191
+ button: "",
3176
3192
  onClick: toggleFold
3177
- }, null, 8, ["class"])) : vue.createCommentVNode("", true)])) : vue.createCommentVNode("", true), vue.createElementVNode("div", {
3193
+ }, {
3194
+ default: vue.withCtx(() => [...(_cache[4] || (_cache[4] = [vue.createElementVNode("path", {
3195
+ d: "M 298.667 426.667 l 213.333 256 l 213.333 -256 Z"
3196
+ }, null, -1)]))]),
3197
+ _: 1
3198
+ }, 8, ["class"])) : vue.createCommentVNode("", true)])) : vue.createCommentVNode("", true), vue.createElementVNode("div", {
3178
3199
  class: "node-text ellipsis",
3179
3200
  title: __props.node.text,
3180
3201
  textContent: vue.toDisplayString(__props.node.text)
3181
- }, null, 8, _hoisted_2$2), vue.createElementVNode("div", _hoisted_3$2, [vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.guardReactiveProps(vue.unref(slotOptions))))])], 64))], 34)) : vue.createCommentVNode("", true), showRef.value && showChildrenRef.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$2, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.node.children, child => {
3202
+ }, null, 8, _hoisted_2$2), vue.createElementVNode("div", _hoisted_3$2, [vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.guardReactiveProps(vue.unref(slotOptions))))])], 64))], 34), [[vue.vShow, showRef.value]]), vue.withDirectives(vue.createElementVNode("div", _hoisted_4$2, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.node.children, child => {
3182
3203
  return vue.openBlock(), vue.createBlock(_component_TreeNode, {
3183
3204
  key: __props.context.getKey(child),
3184
3205
  node: child,
@@ -3193,7 +3214,7 @@
3193
3214
  }, slotProps))]),
3194
3215
  _: 3
3195
3216
  }, 8, ["node", "parent", "options", "context"]);
3196
- }), 128))], 512)) : vue.createCommentVNode("", true)], 64);
3217
+ }), 128))], 512), [[vue.vShow, showRef.value && showChildrenRef.value]])], 64);
3197
3218
  };
3198
3219
  }
3199
3220
  });
@@ -3872,6 +3893,7 @@
3872
3893
  }, vue.createSlots({
3873
3894
  top: vue.withCtx(() => [vue.createVNode(_sfc_main$z, {
3874
3895
  type: "arrow",
3896
+ button: "",
3875
3897
  rotate: 180,
3876
3898
  size: 26,
3877
3899
  onClick: _cache[0] || (_cache[0] = $event => buildPickerItems(stepRef.value, -1))
@@ -3891,6 +3913,7 @@
3891
3913
  onClick: _cache[2] || (_cache[2] = $event => onSwitchStepClick("month"))
3892
3914
  }, null, 8, _hoisted_3)) : vue.createCommentVNode("", true)], 64))], 2), vue.createVNode(_sfc_main$z, {
3893
3915
  type: "arrow",
3916
+ button: "",
3894
3917
  size: 26,
3895
3918
  onClick: _cache[3] || (_cache[3] = $event => buildPickerItems(stepRef.value, 1))
3896
3919
  })]),
@@ -4103,9 +4126,10 @@
4103
4126
  }, null, 512), [[vue.vModelText, valueRef.value]]), __props.readonly != true ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
4104
4127
  key: 0,
4105
4128
  type: "datepicker",
4129
+ button: "",
4130
+ size: 16,
4106
4131
  color: "#aeb6c2",
4107
- "hover-color": "#279bf1",
4108
- size: 16
4132
+ "hover-color": "#279bf1"
4109
4133
  })) : vue.createCommentVNode("", true)], 10, _hoisted_1$2);
4110
4134
  };
4111
4135
  }
@@ -4188,9 +4212,10 @@
4188
4212
  }, null, 512), [[vue.vModelText, valueRef.value]]), __props.readonly != true ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
4189
4213
  key: 0,
4190
4214
  type: "timepicker",
4215
+ button: "",
4216
+ size: 20,
4191
4217
  color: "#aeb6c2",
4192
- "hover-color": "#279bf1",
4193
- size: 20
4218
+ "hover-color": "#279bf1"
4194
4219
  })) : vue.createCommentVNode("", true)], 10, _hoisted_1$1);
4195
4220
  };
4196
4221
  }
@@ -4225,7 +4250,6 @@
4225
4250
  endX: 0,
4226
4251
  distance: 0
4227
4252
  });
4228
- const towArrowIcon = getTwoArrowIconDraw();
4229
4253
  function getMaxDistance() {
4230
4254
  return dragHandleDom.value.parentElement.getBoundingClientRect().width - dragHandleDom.value.getBoundingClientRect().width;
4231
4255
  }
@@ -4288,11 +4312,18 @@
4288
4312
  color: "white"
4289
4313
  })) : (vue.openBlock(), vue.createBlock(_sfc_main$z, {
4290
4314
  key: 1,
4291
- type: "custom",
4315
+ custom: "",
4292
4316
  size: 20,
4293
- color: "#948D8D",
4294
- draw: vue.unref(towArrowIcon)
4295
- }, null, 8, ["draw"]))], 36)], 2);
4317
+ color: "#948d8d",
4318
+ style: {
4319
+ "cursor": "move"
4320
+ }
4321
+ }, {
4322
+ default: vue.withCtx(() => [...(_cache[0] || (_cache[0] = [vue.createElementVNode("path", {
4323
+ d: "M759.467 533.333L469.333 243.2l29.867-29.867 320 320-320 320-29.867-29.866 290.134-290.134z m-298.667 0L170.667 243.2l29.866-29.867 320 320-320 320-29.866-29.866L460.8 533.333z"
4324
+ }, null, -1)]))]),
4325
+ _: 1
4326
+ }))], 36)], 2);
4296
4327
  };
4297
4328
  }
4298
4329
  });
@@ -4333,7 +4364,7 @@
4333
4364
 
4334
4365
  exports.MOTION = MOTION;
4335
4366
  exports.components = components;
4336
- exports.getSvgDraw = getSvgDraw;
4367
+ exports.getBuiltinIcon = getBuiltinIcon;
4337
4368
  exports.mount = mount;
4338
4369
  exports.onAppCreated = onAppCreated;
4339
4370
  exports.triggerAppCreated = triggerAppCreated;
@@ -7,68 +7,68 @@
7
7
  /* src:base\header.vue index:0 */
8
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}.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}
9
9
  /* src:base\icon.vue index:0 */
10
- .snail-icon{cursor:pointer;opacity:1}
10
+ .snail-icon{fill:#8a8099;opacity:1;transition:all .2s linear}.snail-icon.button{cursor:pointer}
11
11
  /* src:base\input.vue index:0 */
12
12
  .snail-input{display:inline-flex;min-height:34px}.snail-input>.input-title{flex-shrink:0;padding-top:6px}.snail-input>.input-title>span.text{color:#2e3033}.snail-input>.input-title>span.required{color:#f74b4b;margin-left:2px}.snail-input>.input-body{align-self:start;display:flex;flex:1;height:32px}.snail-input>.input-body>input{flex:1}.snail-input>.input-body>span{background-color:red;flex-shrink:0}
13
- /* src:base\select.vue index:0 */
14
- .snail-select{align-items:center;border:1px solid #dddfed;border-radius:4px;color:#2e3033;display:flex;height:32px;width:100%}.snail-select:not(.readonly){background-color:#fff}.snail-select:not(.readonly,.empty){cursor:pointer}.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.placeholder{flex:1;padding:0 10px 0 6px}.snail-select>svg.snail-icon{flex-shrink:0;margin-right:4px}.snail-select>div.no-items{flex:1;padding:0 8px}
15
13
  /* src:base\search.vue index:0 */
16
14
  .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}
15
+ /* src:base\number.vue index:0 */
16
+ .snail-number{align-content:baseline;display:flex;flex-wrap:wrap;min-height:32px;overflow-x:hidden;position:relative;width:100%}.snail-number>.number-prefix,.snail-number>.number-suffix{align-items:center;background-color:#f5f7fa;border:1px solid #dddfed;color:#555;display:flex;flex-shrink:0;max-width:100px;padding:0 10px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.snail-number>.number-prefix{border-bottom-left-radius:4px;border-right:none;border-top-left-radius:4px}.snail-number>.number-suffix{border-bottom-right-radius:4px;border-left:none;border-top-right-radius:4px}.snail-number>.input-panel{flex:1;min-width:10px;overflow:hidden;position:relative}.snail-number>.input-panel>input{height:32px;width:100%}.snail-number>.input-panel>.controls{align-items:center;background-color:#f5f7fa;cursor:pointer;display:flex;justify-content:center;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:30px}.snail-number>.input-panel>.controls>svg.snail-icon:hover{fill:#3292ea}.snail-number>.input-panel>.controls.default{height:calc(100% - 2px);top:1px}.snail-number>.input-panel>.controls.default.subtract{border-bottom-left-radius:4px;border-right:1px solid #dddfed;border-top-left-radius:4px;left:1px}.snail-number>.input-panel>.controls.default.plus{border-bottom-right-radius:4px;border-left:1px solid #dddfed;border-top-right-radius:4px;right:1px}.snail-number>.input-panel>.controls.right{border-left:1px solid #dddfed;height:calc(50% - 1px);right:1px}.snail-number>.input-panel>.controls.right.plus{border-top-right-radius:4px;top:1px}.snail-number>.input-panel>.controls.right.subtract{border-bottom-right-radius:4px;border-top:1px solid #dddfed;top:50%}.snail-number>.input-panel.default>input{padding-left:40px;padding-right:40px}.snail-number>.input-panel.right>input{padding-right:40px}.snail-number.has-prefix>.input-panel>input{border-bottom-left-radius:0;border-top-left-radius:0}.snail-number.has-suffix>.input-panel>input{border-bottom-right-radius:0;border-top-right-radius:0}.snail-number>.number-util{color:#aaa;flex-shrink:0;font-size:12px;line-height:20px;width:100%}
17
+ /* src:base\select.vue index:0 */
18
+ .snail-select{align-items:center;border:1px solid #dddfed;border-radius:4px;color:#2e3033;display:flex;height:32px;width:100%}.snail-select:not(.readonly){background-color:#fff}.snail-select:not(.readonly,.empty){cursor:pointer}.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.placeholder{flex:1;padding:0 10px 0 6px}.snail-select>svg.snail-icon{flex-shrink:0;margin-right:4px}.snail-select>div.no-items{flex:1;padding:0 8px}
17
19
  /* src:base\switch.vue index:0 */
18
20
  .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}
19
21
  /* src:container\dynamic.vue index:0 */
20
22
  .snail-dynamic-error{color:red}.snail-dynamic-error>span{color:gray}
21
- /* src:base\number.vue index:0 */
22
- .snail-number{align-content:baseline;display:flex;flex-wrap:wrap;min-height:32px;overflow-x:hidden;position:relative;width:100%}.snail-number>.number-prefix,.snail-number>.number-suffix{align-items:center;background-color:#f5f7fa;border:1px solid #dddfed;color:#555;display:flex;flex-shrink:0;max-width:100px;padding:0 10px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.snail-number>.number-prefix{border-bottom-left-radius:4px;border-right:none;border-top-left-radius:4px}.snail-number>.number-suffix{border-bottom-right-radius:4px;border-left:none;border-top-right-radius:4px}.snail-number>.input-panel{flex:1;min-width:10px;overflow:hidden;position:relative}.snail-number>.input-panel>input{height:32px;width:100%}.snail-number>.input-panel>.controls{align-items:center;background-color:#f5f7fa;cursor:pointer;display:flex;justify-content:center;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:30px}.snail-number>.input-panel>.controls>svg.snail-icon{fill:#8a9099}.snail-number>.input-panel>.controls>svg.snail-icon:hover{fill:#3292ea}.snail-number>.input-panel>.controls.default{height:calc(100% - 2px);top:1px}.snail-number>.input-panel>.controls.default.subtract{border-bottom-left-radius:4px;border-right:1px solid #dddfed;border-top-left-radius:4px;left:1px}.snail-number>.input-panel>.controls.default.plus{border-bottom-right-radius:4px;border-left:1px solid #dddfed;border-top-right-radius:4px;right:1px}.snail-number>.input-panel>.controls.right{border-left:1px solid #dddfed;height:calc(50% - 1px);right:1px}.snail-number>.input-panel>.controls.right.plus{border-top-right-radius:4px;top:1px}.snail-number>.input-panel>.controls.right.subtract{border-bottom-right-radius:4px;border-top:1px solid #dddfed;top:50%}.snail-number>.input-panel.default>input{padding-left:40px;padding-right:40px}.snail-number>.input-panel.right>input{padding-right:40px}.snail-number.has-prefix>.input-panel>input{border-bottom-left-radius:0;border-top-left-radius:0}.snail-number.has-suffix>.input-panel>input{border-bottom-right-radius:0;border-top-right-radius:0}.snail-number>.number-util{color:#aaa;flex-shrink:0;font-size:12px;line-height:20px;width:100%}
23
23
  /* src:base\textarea.vue index:0 */
24
24
  textarea.snail-textarea{font-size:14px;line-height:1.5em;overflow-x:hidden;overflow-y:auto;resize:none;width:100%}
25
25
  /* src:container\fold.vue index:0 */
26
- .snail-fold{flex-shrink:0}.snail-fold>div.fold-header{align-items:center;display:flex;height:32px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.snail-fold>div.fold-header:before{background-color:#2c97fb;content:"";height:18px;left:0;position:absolute;top:7px;width:4px}.snail-fold>div.fold-header>.title{color:#2e3033;font-weight:bold;padding-left:20px}.snail-fold>div.fold-header>.subtitle{color:#8a9099;font-size:13px}.snail-fold>div.fold-header>div.status{align-items:flex-end;display:flex;flex:1;justify-content:flex-end}.snail-fold>div.fold-header>div.status>svg.snail-icon{transition:transform .2s ease}.snail-fold>div.fold-body{padding-left:20px}.snail-fold.expand>div.fold-header>div.status>svg.snail-icon{transform:rotate(-90deg)}.snail-fold.fold>div.fold-header>div.status>svg.snail-icon{transform:rotate(90deg)}
26
+ .snail-fold{flex-shrink:0}.snail-fold>div.fold-header{align-items:center;display:flex;height:32px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.snail-fold>div.fold-header:before{background-color:#2c97fb;content:"";height:18px;left:0;position:absolute;top:7px;width:4px}.snail-fold>div.fold-header>.title{color:#2e3033;font-weight:bold;padding-left:20px}.snail-fold>div.fold-header>.subtitle{color:#8a9099;font-size:13px}.snail-fold>div.fold-header>div.status{align-items:flex-end;display:flex;flex:1;justify-content:flex-end}.snail-fold>div.fold-body{padding-left:20px}
27
+ /* src:container\layout.vue index:0 */
28
+ .snail-layout{display:flex;flex-wrap:nowrap}.snail-layout,.snail-layout>div:not(.snail-scroll){overflow:hidden}.snail-layout>div.main-area{flex:1}.snail-layout.horizontal>div.left-area,.snail-layout.horizontal>div.right-area{flex-shrink:0;width:-moz-fit-content;width:fit-content}.snail-layout.vertical{flex-direction:column}.snail-layout.vertical>div.bottom-area,.snail-layout.vertical>div.top-area{flex-shrink:0;height:-moz-fit-content;height:fit-content}
27
29
  /* src:container\motion.vue index:0 */
28
30
 
29
31
  /* src:container\scroll.vue index:0 */
30
32
  .snail-scroll{--scroll-overflow:hidden;overflow:var(--scroll-overflow,hidden)}.snail-scroll::-webkit-scrollbar{height:var(--scroll-bar-size,10px);width:var(--scroll-bar-size,10px)}
31
33
  /* src:container\sort.vue index:0 */
32
34
  .snail-sort-drag{background:#fff;border:1px solid #4c9aff;border-radius:4px;cursor:move}.snail-sort-ghost{border:1px dashed #4c9aff;border-radius:4px}
33
- /* src:container\layout.vue index:0 */
34
- .snail-layout{display:flex;flex-wrap:nowrap}.snail-layout,.snail-layout>div:not(.snail-scroll){overflow:hidden}.snail-layout>div.main-area{flex:1}.snail-layout.horizontal>div.left-area,.snail-layout.horizontal>div.right-area{flex-shrink:0;width:-moz-fit-content;width:fit-content}.snail-layout.vertical{flex-direction:column}.snail-layout.vertical>div.bottom-area,.snail-layout.vertical>div.top-area{flex-shrink:0;height:-moz-fit-content;height:fit-content}
35
- /* src:container\components\table-col.vue index:0 */
36
- .table-col{align-items:center;display:flex;height:100%;white-space:nowrap}.table-col.left{justify-content:flex-start}.table-col.center{justify-content:center}.table-col.right{justify-content:flex-end}
37
35
  /* src:container\table.vue index:0 */
38
36
  .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}
39
37
  /* src:container\components\table-row.vue index:0 */
40
38
  .table-row{align-items:center;display:flex}
41
- /* src:container\tree.vue index:0 */
42
- .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}
39
+ /* src:container\components\table-col.vue index:0 */
40
+ .table-col{align-items:center;display:flex;height:100%;white-space:nowrap}.table-col.left{justify-content:flex-start}.table-col.center{justify-content:center}.table-col.right{justify-content:flex-end}
43
41
  /* src:container\wrapper.vue index:0 */
44
42
  .snail-wrapper{background-color:#fff;display:flex;flex-direction:column}.snail-wrapper>.snail-scroll{flex:1}.snail-wrapper.in-normal{flex:1;height:100%;overflow:hidden;width:100%}.snail-wrapper.in-popup{height:80%;min-width:800px;overflow:hidden;width:60%}
43
+ /* src:container\tree.vue index:0 */
44
+ .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}
45
+ /* src:picker\date-picker.vue index:0 */
46
+ .snail-datepicker{height:32px;position:relative}.snail-datepicker>input:not(.readonly){cursor:pointer;padding-right:30px!important}.snail-datepicker>svg{position:absolute;right:8px;top:50%;transform:translateY(-50%)}
45
47
  /* src:picker\time-picker.vue index:0 */
46
48
  .snail-timepicker{height:32px;position:relative}.snail-timepicker>input:not(.readonly){cursor:pointer;padding-right:34px!important}.snail-timepicker>svg{position:absolute;right:8px;top:50%;transform:translateY(-50%)}
47
49
  /* src:prompt\drag-verify.vue index:0 */
48
- .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{background-image:-webkit-linear-gradient(left,#666,#666 45%,#fff 50%,#666 55%,#666);-webkit-text-fill-color:transparent;align-items:center;animation:snail-drag-verify 2s linear infinite;-webkit-background-clip:text;background-clip:text;background-size:200% 100%;color:#7e848c;display:flex;font-size:12px;font-weight:400;justify-content:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.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}}
49
- /* src:prompt\loading.vue index:0 */
50
- .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)}}
50
+ .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{background-image:-webkit-linear-gradient(left,#666,#666 45%,#fff 50%,#666 55%,#666);-webkit-text-fill-color:transparent;align-items:center;animation:snail-drag-verify 2s linear infinite;-webkit-background-clip:text;background-clip:text;background-size:200% 100%;color:#7e848c;display:flex;font-size:12px;font-weight:400;justify-content:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.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;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}}
51
51
  /* src:prompt\empty.vue index:0 */
52
52
  .snail-empty{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;min-height:150px;width:100%}.snail-empty>img{height:60px;width:60px}.snail-empty>div.message{color:#babdc2;font-weight:400;padding:0 10px 10px}
53
- /* src:picker\date-picker.vue index:0 */
54
- .snail-datepicker{height:32px;position:relative}.snail-datepicker>input:not(.readonly){cursor:pointer;padding-right:30px!important}.snail-datepicker>svg{position:absolute;right:8px;top:50%;transform:translateY(-50%)}
53
+ /* src:prompt\loading.vue index:0 */
54
+ .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)}}
55
55
  /* src:picker\components\time-pc.vue index:0 */
56
56
  .snail-layout.time-picker.pc{background-color:#fff;border:1px solid rgba(0,0,0,.12);border-radius:4px;box-shadow:0 0 3px rgba(0,0,0,.12);height:240px!important;overflow:hidden!important;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:210px!important}.snail-layout.time-picker.pc>.main-area{display:flex;flex-wrap:nowrap;justify-content:space-between;margin:10px;overflow:hidden}.snail-layout.time-picker.pc>.main-area>.tz-item{border:1px solid #eee;border-left:none;flex-shrink:0;overflow:hidden auto;width:30%}.snail-layout.time-picker.pc>.main-area>.tz-item>.tzi-number{align-items:center;border-left:1px solid #eee;cursor:pointer;display:flex;height:24px;justify-content:center}.snail-layout.time-picker.pc>.main-area>.tz-item>.tzi-number:hover{background-color:#f4f4f4}.snail-layout.time-picker.pc>.main-area>.tz-item>.tzi-number.active{background-color:#58a4fd;border-color:#58a4fd;color:#fff!important}.snail-layout.time-picker.pc>.main-area>.tz-item>.tzi-number.active.disabled{opacity:.6}.snail-layout.time-picker.pc>.main-area>.tz-item>.tzi-number.disabled{color:#ddd;cursor:not-allowed}.snail-layout.time-picker.pc>.main-area>.tz-item::-webkit-scrollbar{width:4px}.snail-layout.time-picker.pc>.main-area>.tz-item::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.6);border:none;border-radius:0}.snail-layout.time-picker.pc>.main-area>.tz-item::-webkit-scrollbar-track{background:rgba(0,0,0,.1);border-radius:0}.snail-layout.time-picker.pc>.bottom-area{align-items:center;border-top:1px solid #eee;display:flex;height:30px;justify-content:flex-end;padding-right:10px}.snail-layout.time-picker.pc>.bottom-area>.snail-button{color:#999;font-size:12px;margin-left:4px}.snail-layout.time-picker.pc>.bottom-area>.snail-button:hover,.snail-layout.time-picker.pc>.bottom-area>.snail-button:last-child{color:#58a4fd}.snail-layout.time-picker.pc>.bottom-area>.snail-button.disabled{cursor:not-allowed;opacity:.6}.snail-layout.time-picker.pc.second-disabled{width:180px}.snail-layout.time-picker.pc.second-disabled>.main-area>.tz-item{width:46%}
57
57
  /* src:picker\components\date-pc.vue index:0 */
58
58
  .snail-layout.date-picker.pc{background-color:#fff;border:1px solid rgba(0,0,0,.12);border-radius:4px;box-shadow:0 0 3px rgba(0,0,0,.12);height:300px!important;overflow:hidden!important;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:280px!important}.snail-layout.date-picker.pc.time-now:after{background-color:gray;content:"";height:100%;left:0;opacity:.6;position:absolute;top:0;width:100%}.snail-layout.date-picker.pc>.top-area{align-items:center;border-bottom:1px solid #eee;display:flex;flex-wrap:nowrap;padding:0 4px}.snail-layout.date-picker.pc>.top-area>svg{fill:#8a9099;flex-shrink:0}.snail-layout.date-picker.pc>.top-area>svg:hover{fill:#58a4fd}.snail-layout.date-picker.pc>.top-area>div.header-content{align-items:center;display:flex;flex:1;justify-content:center}.snail-layout.date-picker.pc>.top-area>div.header-content>div{align-items:center;display:flex;font-size:16px;height:100%}.snail-layout.date-picker.pc>.top-area>div.header-content>div:nth-child(2){margin-left:8px}.snail-layout.date-picker.pc>.top-area>div.header-content:not(.year)>div:hover{color:#58a4fd;cursor:pointer}.snail-layout.date-picker.pc>.main-area{display:flex;flex-wrap:wrap;justify-content:space-between}.snail-layout.date-picker.pc>.main-area>div{align-items:center;display:flex;flex-shrink:0;font-size:13px;justify-content:center;position:relative}.snail-layout.date-picker.pc>.main-area>div>span{align-items:center;display:flex;height:28px;justify-content:center}.snail-layout.date-picker.pc>.main-area>div>span:hover{background:#f4f4f4;cursor:pointer}.snail-layout.date-picker.pc>.main-area>div.active>span{background-color:#58a4fd;color:#fff!important}.snail-layout.date-picker.pc>.main-area>div.active.disabled{opacity:.6}.snail-layout.date-picker.pc>.main-area>div.disabled>span{color:#aaa;cursor:not-allowed}.snail-layout.date-picker.pc>.main-area>div.day-item{height:30px;width:36px}.snail-layout.date-picker.pc>.main-area>div.day-item.week{font-weight:bold}.snail-layout.date-picker.pc>.main-area>div.day-item.active>span,.snail-layout.date-picker.pc>.main-area>div.day-item:hover>span{border-radius:100%;width:28px}.snail-layout.date-picker.pc>.main-area>div.day-item:not(.now-month)>span{color:#aaa}.snail-layout.date-picker.pc>.main-area>div.month-item,.snail-layout.date-picker.pc>.main-area>div.year-item{width:30%}.snail-layout.date-picker.pc>.main-area>div.month-item.active>span,.snail-layout.date-picker.pc>.main-area>div.month-item:hover>span,.snail-layout.date-picker.pc>.main-area>div.year-item.active>span,.snail-layout.date-picker.pc>.main-area>div.year-item:hover>span{border-radius:15px;padding:0 8px;width:-moz-fit-content;width:fit-content}.snail-layout.date-picker.pc>.bottom-area{align-items:center;border-top:1px solid #eee;display:flex;height:30px;justify-content:flex-end;padding-right:10px}.snail-layout.date-picker.pc>.bottom-area>.time-area{color:#58a4fd;cursor:pointer;font-size:12px;margin-left:10px;margin-right:auto}.snail-layout.date-picker.pc>.bottom-area>.snail-button{color:#999;font-size:12px;margin-left:4px}.snail-layout.date-picker.pc>.bottom-area>.snail-button:hover,.snail-layout.date-picker.pc>.bottom-area>.snail-button:last-child{color:#58a4fd}.snail-layout.date-picker.pc>.bottom-area>.snail-button.disabled{cursor:not-allowed;opacity:.6}
59
59
  /* src:popup\components\confirm-container.vue index:0 */
60
60
  .snail-confirm{background-color:#fff;border-radius:4px;color:#2e2f33;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}
61
- /* src:popup\components\follow-container.vue index:0 */
62
- .snail-follow{background-color:#fff;max-height:100%;max-width:100%;position:fixed;transition-duration:.1s;transition-property:left,top;transition-timing-function:ease}.snail-follow.initial{top:100%;transition:none}
63
61
  /* src:popup\components\dialog-container.vue index:0 */
64
62
  .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)}
65
63
  /* src:popup\components\popup-container.vue index:0 */
66
64
  .snail-popup{left:0;position:fixed;top:0}
65
+ /* src:popup\components\follow-container.vue index:0 */
66
+ .snail-follow{background-color:#fff;max-height:100%;max-width:100%;position:fixed;transition-duration:.1s;transition-property:left,top;transition-timing-function:ease}.snail-follow.initial{top:100%;transition:none}
67
67
  /* src:popup\components\toast-container.vue index:0 */
68
68
  .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;padding:2px}.snail-toast>div.message{flex:1;line-height:24px;overflow:hidden;word-break:break-all}
69
- /* src:base\components\select-popup.vue index:0 */
70
- .snail-select-popup{background:#fff;border:1px solid #dddfed;border-radius:4px;box-shadow:0 1px 5px 1px #dddfed;display:flex;flex-direction:column;max-height:90%;min-height:32px;overflow:auto}.snail-select-popup>div.snail-search{margin:12px}.snail-select-popup>div.clear-all{align-items:center;background-color:#fff;border-top:1px solid #dddfed;bottom:0;color:#8a9099;cursor:pointer;display:flex;flex-shrink:0;height:32px;padding:0 12px;position:sticky!important;z-index:1}.snail-select-popup>div.clear-all:hover{color:#ff4c4c}.snail-select-popup.child-popup{max-width:250px;min-width:200px;padding-bottom:6px;padding-top:6px}.snail-select-popup.child-popup.placeholder{justify-content:center;padding:0 12px;width:100px!important}
71
69
  /* src:container\components\tree-node.vue index:0 */
72
70
  .snail-tree-node{align-items:center;display:flex;flex-wrap:nowrap;height:40px;width:100%}.snail-tree-node:hover{background-color:#f8f9fa}.snail-tree-node>.indent,.snail-tree-node>.node-slot,.snail-tree-node>.snail-icon{flex-shrink:0}.snail-tree-node>.node-fold{align-items:center;display:flex;height:100%;justify-content:center;width:24px}.snail-tree-node>.node-fold>.snail-icon{transition:transform .1s ease-in}.snail-tree-node>.node-fold>.snail-icon.fold{transform:rotate(-90deg)}.snail-tree-node>.node-text{color:#2e3033;flex:1;min-width:30px}.snail-tree-node.clickable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.snail-tree-children{width:100%}.snail-tree-children.hidden{display:none;height:0;overflow:hidden}.snail-tree-node.level-1>.indent{padding-left:4px}.snail-tree-node.level-2>.indent{padding-left:24px}.snail-tree-node.level-3>.indent{padding-left:48px}.snail-tree-node.level-4>.indent{padding-left:72px}.snail-tree-node.level-5>.indent{padding-left:96px}.snail-tree-node.level-6>.indent{padding-left:120px}.snail-tree-node.level-7>.indent{padding-left:144px}.snail-tree-node.level-8>.indent{padding-left:168px}.snail-tree-node.level-9>.indent{padding-left:192px}.snail-tree-node.level-10>.indent{padding-left:216px}
71
+ /* src:base\components\select-popup.vue index:0 */
72
+ .snail-select-popup{background:#fff;border:1px solid #dddfed;border-radius:4px;box-shadow:0 1px 5px 1px #dddfed;display:flex;flex-direction:column;max-height:90%;min-height:32px;overflow:auto}.snail-select-popup>div.snail-search{margin:12px}.snail-select-popup>div.clear-all{align-items:center;background-color:#fff;border-top:1px solid #dddfed;bottom:0;color:#8a9099;cursor:pointer;display:flex;flex-shrink:0;height:32px;padding:0 12px;position:sticky!important;z-index:1}.snail-select-popup>div.clear-all:hover{color:#ff4c4c}.snail-select-popup.child-popup{max-width:250px;min-width:200px;padding-bottom:6px;padding-top:6px}.snail-select-popup.child-popup.placeholder{justify-content:center;padding:0 12px;width:100px!important}
73
73
  /* src:base\components\select-node.vue index:0 */
74
- .snail-select-popup>div.select-node{align-items:center;display:flex;flex-shrink:0;flex-wrap:nowrap;height:32px;padding-left:12px}.snail-select-popup>div.select-node:hover{background:#f8f9fa}.snail-select-popup>div.select-node.clickable{cursor:pointer}.snail-select-popup>div.select-node.group{color:#8a9099}.snail-select-popup>div.select-node.item{color:#2e3033;padding-right:10px}.snail-select-popup>div.select-node.selected{color:#4c9aff!important}.snail-select-popup>div.select-node>div.item-text{flex:1}.snail-select-popup>div.select-node>svg.snail-icon{cursor:default;display:none}.snail-select-popup>div.select-node>div.select-status{background:#fff;border:1px solid #8a9099;flex-shrink:0;height:14px;margin-left:4px;width:14px}.snail-select-popup>div.select-node>div.select-status>svg{display:none}.snail-select-popup>div.select-node.selected>div.select-status{background-color:#5ca3ff;border:1px solid #5ca3ff}.snail-select-popup>div.select-node.selected>div.select-status>svg{display:block}.snail-select-popup>div.select-node.child{color:#2e3033;padding-left:24px}.snail-select-popup>div.select-node.child>svg.snail-icon{display:initial}
74
+ .snail-select-popup>div.select-node{align-items:center;display:flex;flex-shrink:0;flex-wrap:nowrap;height:32px;padding-left:12px}.snail-select-popup>div.select-node:hover{background:#f8f9fa}.snail-select-popup>div.select-node.clickable{cursor:pointer}.snail-select-popup>div.select-node.group{color:#8a9099}.snail-select-popup>div.select-node.item{color:#2e3033;padding-right:10px}.snail-select-popup>div.select-node.selected{color:#4c9aff!important}.snail-select-popup>div.select-node>div.item-text{flex:1}.snail-select-popup>div.select-node>svg.snail-icon{display:none}.snail-select-popup>div.select-node>div.select-status{background:#fff;border:1px solid #8a9099;flex-shrink:0;height:14px;margin-left:4px;width:14px}.snail-select-popup>div.select-node>div.select-status>svg{display:none}.snail-select-popup>div.select-node.selected>div.select-status{background-color:#5ca3ff;border:1px solid #5ca3ff}.snail-select-popup>div.select-node.selected>div.select-status>svg{display:block}.snail-select-popup>div.select-node.child{color:#2e3033;padding-left:24px}.snail-select-popup>div.select-node.child>svg.snail-icon{display:initial}
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": "2.0.15",
6
+ "version": "2.0.16",
7
7
  "type": "module",
8
8
  "main": "dist/snail.vue.js",
9
9
  "module": "dist/snail.vue.js",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "vue": "^3.5.14",
17
- "snail.core": ">=2.0.26",
17
+ "snail.core": ">=2.0.28",
18
18
  "snail.view": ">=2.0.4",
19
19
  "sortablejs": ">=1.15.6"
20
20
  },