snail.vue 2.0.25 → 2.0.27

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.
@@ -1876,6 +1876,11 @@ type IconOptions = TitleOptions & {
1876
1876
  * - 通过:transform: rotate(1.06); 实现
1877
1877
  */
1878
1878
  rotate?: number;
1879
+ /**
1880
+ * 图标透明度
1881
+ * - 不传入,默认1
1882
+ */
1883
+ opacity?: number;
1879
1884
  /**
1880
1885
  * 图形伸展
1881
1886
  * - svg.viewBox 属性
@@ -1902,9 +1907,10 @@ type IconOptions = TitleOptions & {
1902
1907
  * - 其他类:
1903
1908
  * - - plus 加号
1904
1909
  * - - subtract 减号
1910
+ * - - more 更多,默认垂直三个点
1905
1911
  * - - grip 紧握图标,垂直方向,一般用于拖动句柄
1906
1912
  */
1907
- type IconType = "success" | "error" | "warn" | "close" | "trash" | "download" | "print" | "edit" | "arrow" | "datepicker" | "timepicker" | "plus" | "subtract" | "grip";
1913
+ type IconType = "success" | "error" | "warn" | "close" | "trash" | "download" | "print" | "edit" | "arrow" | "datepicker" | "timepicker" | "plus" | "subtract" | "more" | "grip";
1908
1914
 
1909
1915
  /**
1910
1916
  * 检查选项 数据结构
@@ -2007,10 +2013,11 @@ type ButtonOptions = TitleOptions & {
2007
2013
  type ActionOptions = DisabledOptions & {
2008
2014
  /**
2009
2015
  * 触发方式
2010
- * - hover:鼠标移入显示
2011
- * - long-press:长摁显示
2016
+ * - always :始终显示一个触发图标,点击图标弹出操作项
2017
+ * - hover:鼠标移入显示一个触发图标,点击图标弹出操作项
2018
+ * - long-press:长摁直接弹出操作项
2012
2019
  */
2013
- trigger: "hover" | "long-press";
2020
+ trigger: "always" | "hover" | "long-press";
2014
2021
  /**
2015
2022
  * 显示模式
2016
2023
  * - popup:弹出显示操作项
@@ -2063,6 +2070,19 @@ type ActionItem = {
2063
2070
  */
2064
2071
  icon?: Pick<IconOptions, "type" | "size" | "title">;
2065
2072
  };
2073
+ /**
2074
+ * 可操作向组件 插槽句柄
2075
+ */
2076
+ type ActionSlotHandle = {
2077
+ /**
2078
+ * 操作项是否激活显示
2079
+ */
2080
+ isActived(): boolean;
2081
+ /**
2082
+ * 触发操作项显示
2083
+ */
2084
+ trigger(): void;
2085
+ };
2066
2086
  /**
2067
2087
  * 可操作项组件 的事件
2068
2088
  */
@@ -2861,7 +2881,15 @@ declare const components: {
2861
2881
  trigger: (code: string) => any;
2862
2882
  }, string, {}, {}, string, {}, vue.GlobalComponents, vue.GlobalDirectives, string, vue.ComponentProvideOptions> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new () => {
2863
2883
  $slots: {
2864
- default?: (props: {}) => any;
2884
+ default?: (props: {
2885
+ isActived(): boolean;
2886
+ trigger(): void;
2887
+ }) => any;
2888
+ } & {
2889
+ trigger?: (props: {
2890
+ isActived(): boolean;
2891
+ trigger(): void;
2892
+ }) => any;
2865
2893
  };
2866
2894
  });
2867
2895
  Button: {
@@ -3126,24 +3154,24 @@ declare const components: {
3126
3154
  new (...args: any[]): vue.CreateComponentPublicInstanceWithMixins<Readonly<ElasticOptions> & Readonly<{
3127
3155
  onLeft?: () => any;
3128
3156
  onRight?: () => any;
3157
+ onMore?: (resolve: () => void) => any;
3129
3158
  onTop?: () => any;
3130
3159
  onBottom?: () => any;
3131
3160
  onXbar?: (show: boolean) => any;
3132
3161
  onYbar?: (show: boolean) => any;
3133
3162
  onRefresh?: (resolve: () => void) => any;
3134
- onMore?: (resolve: () => void) => any;
3135
3163
  }>, {
3136
3164
  loadRefresh(): Promise<void>;
3137
3165
  loadMore(): Promise<void>;
3138
3166
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
3139
3167
  left: () => any;
3140
3168
  right: () => any;
3169
+ more: (resolve: () => void) => any;
3141
3170
  top: () => any;
3142
3171
  bottom: () => any;
3143
3172
  xbar: (show: boolean) => any;
3144
3173
  ybar: (show: boolean) => any;
3145
3174
  refresh: (resolve: () => void) => any;
3146
- more: (resolve: () => void) => any;
3147
3175
  }, vue.PublicProps, {}, false, {}, {}, vue.GlobalComponents, vue.GlobalDirectives, string, {}, any, vue.ComponentProvideOptions, {
3148
3176
  P: {};
3149
3177
  B: {};
@@ -3154,12 +3182,12 @@ declare const components: {
3154
3182
  }, Readonly<ElasticOptions> & Readonly<{
3155
3183
  onLeft?: () => any;
3156
3184
  onRight?: () => any;
3185
+ onMore?: (resolve: () => void) => any;
3157
3186
  onTop?: () => any;
3158
3187
  onBottom?: () => any;
3159
3188
  onXbar?: (show: boolean) => any;
3160
3189
  onYbar?: (show: boolean) => any;
3161
3190
  onRefresh?: (resolve: () => void) => any;
3162
- onMore?: (resolve: () => void) => any;
3163
3191
  }>, {
3164
3192
  loadRefresh(): Promise<void>;
3165
3193
  loadMore(): Promise<void>;
@@ -3170,24 +3198,24 @@ declare const components: {
3170
3198
  } & vue.ComponentOptionsBase<Readonly<ElasticOptions> & Readonly<{
3171
3199
  onLeft?: () => any;
3172
3200
  onRight?: () => any;
3201
+ onMore?: (resolve: () => void) => any;
3173
3202
  onTop?: () => any;
3174
3203
  onBottom?: () => any;
3175
3204
  onXbar?: (show: boolean) => any;
3176
3205
  onYbar?: (show: boolean) => any;
3177
3206
  onRefresh?: (resolve: () => void) => any;
3178
- onMore?: (resolve: () => void) => any;
3179
3207
  }>, {
3180
3208
  loadRefresh(): Promise<void>;
3181
3209
  loadMore(): Promise<void>;
3182
3210
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
3183
3211
  left: () => any;
3184
3212
  right: () => any;
3213
+ more: (resolve: () => void) => any;
3185
3214
  top: () => any;
3186
3215
  bottom: () => any;
3187
3216
  xbar: (show: boolean) => any;
3188
3217
  ybar: (show: boolean) => any;
3189
3218
  refresh: (resolve: () => void) => any;
3190
- more: (resolve: () => void) => any;
3191
3219
  }, string, {}, {}, string, {}, vue.GlobalComponents, vue.GlobalDirectives, string, vue.ComponentProvideOptions> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new () => {
3192
3220
  $slots: {
3193
3221
  'down-refresh'?: (props: {}) => any;
@@ -3682,4 +3710,4 @@ declare const components: {
3682
3710
  };
3683
3711
 
3684
3712
  export { MOTION, components, getBuiltinIcon, mount, onAppCreated, triggerAppCreated, usePicker, usePopup, useReactive, useTreeContext };
3685
- export type { ActionEvents, ActionItem, ActionItemsOptions, ActionOptions, ButtonOptions, ChangeEvents, ChooseEvents, ChooseItem, ChooseOptions, ClickEvents, CloseEvents, ComponentBindOptions, ComponentOptions, ConfirmAreaOptions, ConfirmOptions, DatePickerDayItem, DatePickerMonthItem, DatePickerOptions, DatePickerYearItem, DatetimeDisabledOptions, DatetimePickerEvents, DeleteEvents, DialogHandle, DialogOptions, DialogWrapperHandle, DisabledOptions, DragVerifyInfo, DragVerifyOptions, ElasticEvents, ElasticExpose, ElasticOptions, ElasticSpringStatus, EmitterType, EmptyOptions, EventsType, FlexOptions, FoldEvents, FoldOptions, FoldSlotHandle, 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, ScrollExpose, ScrollOptions, 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 };
3713
+ export type { ActionEvents, ActionItem, ActionItemsOptions, ActionOptions, ActionSlotHandle, ButtonOptions, ChangeEvents, ChooseEvents, ChooseItem, ChooseOptions, ClickEvents, CloseEvents, ComponentBindOptions, ComponentOptions, ConfirmAreaOptions, ConfirmOptions, DatePickerDayItem, DatePickerMonthItem, DatePickerOptions, DatePickerYearItem, DatetimeDisabledOptions, DatetimePickerEvents, DeleteEvents, DialogHandle, DialogOptions, DialogWrapperHandle, DisabledOptions, DragVerifyInfo, DragVerifyOptions, ElasticEvents, ElasticExpose, ElasticOptions, ElasticSpringStatus, EmitterType, EmptyOptions, EventsType, FlexOptions, FoldEvents, FoldOptions, FoldSlotHandle, 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, ScrollExpose, ScrollOptions, 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,7 +1,7 @@
1
1
  //@ sourceURL=/snail.vue.js
2
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, vShow, onBeforeUnmount, onActivated, 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, isNullish, getTimeNumber, getDateValue, parseDate, formatDateValue, getDateByValue, parseTimeValue, getTimeValue, padStart, formatTimeValue, parseDateValue, correctDateFormat, isValidTime, getFromArray, onMountScope } from 'snail.core';
4
- import { link, css, useObserver, useScroll, useAnimation } from 'snail.view';
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, runAsync, defer, useAsyncScope, useHook, newId, throwIfTrue, isFunction, isNullish, getTimeNumber, getDateValue, parseDate, formatDateValue, getDateByValue, parseTimeValue, getTimeValue, padStart, formatTimeValue, parseDateValue, correctDateFormat, isValidTime, getFromArray, onMountScope } from 'snail.core';
4
+ import { css, link, useObserver, useScroll, useAnimation } from 'snail.view';
5
5
 
6
6
  const _hoisted_1$o = ["title"];
7
7
  var _sfc_main$F = defineComponent({
@@ -25,10 +25,6 @@ var _sfc_main$F = defineComponent({
25
25
  }
26
26
  });
27
27
 
28
- var addLink = href => setTimeout(link.register, 0, href);
29
-
30
- addLink("/styles/snail.vue.vue.css");
31
-
32
28
  function getBuiltinIcon(iconType) {
33
29
  switch (iconType) {
34
30
  case "success":
@@ -40,7 +36,7 @@ function getBuiltinIcon(iconType) {
40
36
  case "close":
41
37
  return ["M 571.733 512 l 187.733 -187.733 c 17.0667 -17.0667 17.0667 -42.6667 0 -59.7333 c -17.0667 -17.0667 -42.6667 -17.0667 -59.7333 0 L 512 452.267 L 324.267 268.8 c -17.0667 -17.0667 -42.6667 -17.0667 -59.7333 0 c -17.0667 17.0667 -17.0667 42.6667 0 59.7333 l 187.733 187.733 l -187.733 187.733 c -17.0667 17.0667 -17.0667 42.6667 0 59.7333 c 17.0667 17.0667 42.6667 17.0667 59.7333 0 l 187.733 -187.733 l 187.733 187.733 c 17.0667 17.0667 42.6667 17.0667 59.7333 0 c 17.0667 -17.0667 17.0667 -42.6667 0 -59.7333 L 571.733 512 Z"];
42
38
  case "trash":
43
- return ["M 597.333 213.333 V 170.667 h -170.667 v 42.6667 H 213.333 v 42.6667 h 597.333 V 213.333 Z M 298.667 298.667 H 256 v 469.333 h 512 V 298.667 H 298.667 Z m 170.667 341.333 h -42.6667 V 384 h 42.6667 v 256 Z m 128 0 h -42.6667 V 384 h 42.6667 v 256 Z"];
39
+ return ["M736 352.032L736.096 800h-0.128L288 799.968 288.032 352 736 352.032zM384 224h256v64h-256V224z m448 64h-128V202.624C704 182.048 687.232 160 640.16 160h-256.32C336.768 160 320 182.048 320 202.624V288H192a32 32 0 1 0 0 64h32V799.968C224 835.296 252.704 864 288.032 864h447.936A64.064 64.064 0 0 0 800 799.968V352h32a32 32 0 1 0 0-64z", "M608 690.56a32 32 0 0 0 32-32V448a32 32 0 1 0-64 0v210.56a32 32 0 0 0 32 32M416 690.56a32 32 0 0 0 32-32V448a32 32 0 1 0-64 0v210.56a32 32 0 0 0 32 32"];
44
40
  case "download":
45
41
  return ["M47.234 979.775v-210.45h102.303v70.151h724.874v-70.15h102.3v210.45H47.233zM149.54 359.948l242.595 0.175V44.451h242.6v309.827h242.6L517.821 734.253 149.539 359.948z"];
46
42
  case "print":
@@ -57,6 +53,8 @@ function getBuiltinIcon(iconType) {
57
53
  return ["M 768 469.333 h -213.333 V 256 c 0 -25.6 -17.0667 -42.6667 -42.6667 -42.6667 s -42.6667 17.0667 -42.6667 42.6667 v 213.333 H 256 c -25.6 0 -42.6667 17.0667 -42.6667 42.6667 s 17.0667 42.6667 42.6667 42.6667 h 213.333 v 213.333 c 0 25.6 17.0667 42.6667 42.6667 42.6667 s 42.6667 -17.0667 42.6667 -42.6667 v -213.333 h 213.333 c 25.6 0 42.6667 -17.0667 42.6667 -42.6667 s -17.0667 -42.6667 -42.6667 -42.6667 Z"];
58
54
  case "subtract":
59
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
+ case "more":
57
+ return ["M415.93 223.79c0-52.98 43.004-95.984 95.984-95.984s95.984 43.004 95.984 95.984-43.004 95.984-95.984 95.984-95.984-43.003-95.984-95.984zM415.93 511.742c0-52.98 43.004-95.984 95.984-95.984s95.984 43.004 95.984 95.984-43.004 95.984-95.984 95.984-95.984-43.004-95.984-95.984zM415.93 799.866c0-52.98 43.004-95.984 95.984-95.984s95.984 43.003 95.984 95.984-43.004 95.983-95.984 95.983-95.984-43.175-95.984-95.983z"];
60
58
  case "grip":
61
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"];
62
60
  default:
@@ -85,6 +83,7 @@ var _sfc_main$E = defineComponent({
85
83
  color: {},
86
84
  hoverColor: {},
87
85
  rotate: {},
86
+ opacity: {},
88
87
  viewBox: {}
89
88
  },
90
89
  setup(__props) {
@@ -111,6 +110,8 @@ var _sfc_main$E = defineComponent({
111
110
  fill && (style.fill = fill);
112
111
  const rotate = correctNumber(props.rotate, 0);
113
112
  rotate != 0 && (style.transform = `rotate(${rotate}deg)`);
113
+ const opacity = correctNumber(props.opacity, void 0);
114
+ opacity >= 0 && (style.opacity = opacity);
114
115
  return style;
115
116
  });
116
117
  return (_ctx, _cache) => {
@@ -240,6 +241,10 @@ var _sfc_main$D = defineComponent({
240
241
  }
241
242
  });
242
243
 
244
+ var addLink = href => setTimeout(link.register, 0, href);
245
+
246
+ addLink("/styles/snail.vue.vue.css");
247
+
243
248
  var _sfc_main$C = defineComponent({
244
249
  ...{
245
250
  name: "Footer",
@@ -1590,10 +1595,7 @@ var _sfc_main$r = defineComponent({
1590
1595
  };
1591
1596
  async function onWrapperConfirm() {
1592
1597
  if (fn_onBuildData != void 0) {
1593
- const rt = (await wait(fn_onBuildData())) || {
1594
- success: true,
1595
- data: void 0
1596
- };
1598
+ const rt = await runAsync(fn_onBuildData);
1597
1599
  console.log("onBuildData result:", rt);
1598
1600
  rt.success !== false && closePopup(rt.data);
1599
1601
  } else {
@@ -2635,14 +2637,12 @@ var _sfc_main$j = defineComponent({
2635
2637
  return openBlock(), createElementBlock("div", {
2636
2638
  class: normalizeClass(["snail-switch", [switchModel.value ? "on" : "off", __props.readonly ? "readonly" : ""], __props.type || "switch"]),
2637
2639
  onClick: onSwitchChange
2638
- }, [__props.type == "checkbox" || __props.type == "radio" ? (openBlock(), createElementBlock(Fragment, {
2639
- key: 0
2640
- }, [switchModel.value ? (openBlock(), createBlock(_sfc_main$E, {
2640
+ }, [__props.type == "checkbox" || __props.type == "radio" ? withDirectives((openBlock(), createBlock(_sfc_main$E, {
2641
2641
  key: 0,
2642
2642
  type: "success",
2643
2643
  color: "white",
2644
2644
  size: 16
2645
- })) : createCommentVNode("", true)], 64)) : (openBlock(), createElementBlock(Fragment, {
2645
+ }, null, 512)), [[vShow, switchModel.value]]) : (openBlock(), createElementBlock(Fragment, {
2646
2646
  key: 1
2647
2647
  }, [_cache[0] || (_cache[0] = createElementVNode("div", {
2648
2648
  class: "wh-fill on"
@@ -2806,15 +2806,17 @@ var _sfc_main$g = defineComponent({
2806
2806
  onEvent
2807
2807
  } = useObserver();
2808
2808
  const rootDom = useTemplateRef("snail-action");
2809
- let popupScope = void 0;
2809
+ const popupScopeRef = shallowRef(void 0);
2810
2810
  let pressStartDate = void 0;
2811
+ const slotHandle = Object.freeze({
2812
+ isActived: () => popupScopeRef.value != void 0,
2813
+ trigger: () => onFollowShow(props.trigger == "long-press")
2814
+ });
2811
2815
  async function onFollowShow(longPress) {
2812
- if (popupScope && popupScope.destroyed != true) {
2813
- popupScope.destroy();
2814
- return;
2815
- }
2816
- if (props.disabled != true) {
2817
- popupScope = follow(rootDom.value, {
2816
+ if (popupScopeRef.value && popupScopeRef.value.destroyed != true) {
2817
+ popupScopeRef.value.destroy();
2818
+ } else if (props.disabled != true) {
2819
+ popupScopeRef.value = follow(rootDom.value, {
2818
2820
  component: _sfc_main$h,
2819
2821
  closeOnEscape: true,
2820
2822
  closeOnMask: true,
@@ -2827,9 +2829,10 @@ var _sfc_main$g = defineComponent({
2827
2829
  actions: props.actions
2828
2830
  }
2829
2831
  });
2830
- const code = await popupScope;
2832
+ const code = await popupScopeRef.value;
2831
2833
  isStringNotEmpty(code) && emits("trigger", code);
2832
2834
  }
2835
+ popupScopeRef.value = void 0;
2833
2836
  }
2834
2837
  function onMouseDown() {
2835
2838
  if (props.trigger == "long-press" && pressStartDate == void 0) {
@@ -2863,19 +2866,17 @@ var _sfc_main$g = defineComponent({
2863
2866
  }
2864
2867
  });
2865
2868
  return (_ctx, _cache) => {
2866
- return openBlock(), createElementBlock("div", _hoisted_1$a, [createElementVNode("div", _hoisted_2$5, [renderSlot(_ctx.$slots, "default")]), __props.trigger == "hover" && __props.disabled != true ? (openBlock(), createBlock(_sfc_main$E, {
2869
+ return openBlock(), createElementBlock("div", _hoisted_1$a, [createElementVNode("div", _hoisted_2$5, [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(unref(slotHandle))))]), __props.disabled != true && (__props.trigger == "hover" || __props.trigger == "always") ? (openBlock(), createElementBlock("div", {
2867
2870
  key: 0,
2868
- class: "hover-tips",
2871
+ class: normalizeClass(["trigger-area", {
2872
+ hidden: __props.trigger == "hover"
2873
+ }])
2874
+ }, [renderSlot(_ctx.$slots, "trigger", normalizeProps(guardReactiveProps(unref(slotHandle))), () => [createVNode(_sfc_main$E, {
2869
2875
  button: "",
2870
- custom: "",
2876
+ type: "more",
2871
2877
  size: 16,
2872
2878
  onClick: _cache[0] || (_cache[0] = $event => onFollowShow(false))
2873
- }, {
2874
- default: withCtx(() => [...(_cache[1] || (_cache[1] = [createElementVNode("path", {
2875
- d: "M415.93 223.79c0-52.98 43.004-95.984 95.984-95.984s95.984 43.004 95.984 95.984-43.004 95.984-95.984 95.984-95.984-43.003-95.984-95.984zM415.93 511.742c0-52.98 43.004-95.984 95.984-95.984s95.984 43.004 95.984 95.984-43.004 95.984-95.984 95.984-95.984-43.004-95.984-95.984zM415.93 799.866c0-52.98 43.004-95.984 95.984-95.984s95.984 43.003 95.984 95.984-43.004 95.983-95.984 95.983-95.984-43.175-95.984-95.983z"
2876
- }, null, -1)]))]),
2877
- _: 1
2878
- })) : createCommentVNode("", true)], 512);
2879
+ })])], 2)) : createCommentVNode("", true)], 512);
2879
2880
  };
2880
2881
  }
2881
2882
  });
@@ -27,10 +27,6 @@
27
27
  }
28
28
  });
29
29
 
30
- var addLink = href => setTimeout(snail_view.link.register, 0, href);
31
-
32
- addLink("/styles/snail.vue.vue.css");
33
-
34
30
  function getBuiltinIcon(iconType) {
35
31
  switch (iconType) {
36
32
  case "success":
@@ -42,7 +38,7 @@
42
38
  case "close":
43
39
  return ["M 571.733 512 l 187.733 -187.733 c 17.0667 -17.0667 17.0667 -42.6667 0 -59.7333 c -17.0667 -17.0667 -42.6667 -17.0667 -59.7333 0 L 512 452.267 L 324.267 268.8 c -17.0667 -17.0667 -42.6667 -17.0667 -59.7333 0 c -17.0667 17.0667 -17.0667 42.6667 0 59.7333 l 187.733 187.733 l -187.733 187.733 c -17.0667 17.0667 -17.0667 42.6667 0 59.7333 c 17.0667 17.0667 42.6667 17.0667 59.7333 0 l 187.733 -187.733 l 187.733 187.733 c 17.0667 17.0667 42.6667 17.0667 59.7333 0 c 17.0667 -17.0667 17.0667 -42.6667 0 -59.7333 L 571.733 512 Z"];
44
40
  case "trash":
45
- return ["M 597.333 213.333 V 170.667 h -170.667 v 42.6667 H 213.333 v 42.6667 h 597.333 V 213.333 Z M 298.667 298.667 H 256 v 469.333 h 512 V 298.667 H 298.667 Z m 170.667 341.333 h -42.6667 V 384 h 42.6667 v 256 Z m 128 0 h -42.6667 V 384 h 42.6667 v 256 Z"];
41
+ return ["M736 352.032L736.096 800h-0.128L288 799.968 288.032 352 736 352.032zM384 224h256v64h-256V224z m448 64h-128V202.624C704 182.048 687.232 160 640.16 160h-256.32C336.768 160 320 182.048 320 202.624V288H192a32 32 0 1 0 0 64h32V799.968C224 835.296 252.704 864 288.032 864h447.936A64.064 64.064 0 0 0 800 799.968V352h32a32 32 0 1 0 0-64z", "M608 690.56a32 32 0 0 0 32-32V448a32 32 0 1 0-64 0v210.56a32 32 0 0 0 32 32M416 690.56a32 32 0 0 0 32-32V448a32 32 0 1 0-64 0v210.56a32 32 0 0 0 32 32"];
46
42
  case "download":
47
43
  return ["M47.234 979.775v-210.45h102.303v70.151h724.874v-70.15h102.3v210.45H47.233zM149.54 359.948l242.595 0.175V44.451h242.6v309.827h242.6L517.821 734.253 149.539 359.948z"];
48
44
  case "print":
@@ -59,6 +55,8 @@
59
55
  return ["M 768 469.333 h -213.333 V 256 c 0 -25.6 -17.0667 -42.6667 -42.6667 -42.6667 s -42.6667 17.0667 -42.6667 42.6667 v 213.333 H 256 c -25.6 0 -42.6667 17.0667 -42.6667 42.6667 s 17.0667 42.6667 42.6667 42.6667 h 213.333 v 213.333 c 0 25.6 17.0667 42.6667 42.6667 42.6667 s 42.6667 -17.0667 42.6667 -42.6667 v -213.333 h 213.333 c 25.6 0 42.6667 -17.0667 42.6667 -42.6667 s -17.0667 -42.6667 -42.6667 -42.6667 Z"];
60
56
  case "subtract":
61
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
+ case "more":
59
+ return ["M415.93 223.79c0-52.98 43.004-95.984 95.984-95.984s95.984 43.004 95.984 95.984-43.004 95.984-95.984 95.984-95.984-43.003-95.984-95.984zM415.93 511.742c0-52.98 43.004-95.984 95.984-95.984s95.984 43.004 95.984 95.984-43.004 95.984-95.984 95.984-95.984-43.004-95.984-95.984zM415.93 799.866c0-52.98 43.004-95.984 95.984-95.984s95.984 43.003 95.984 95.984-43.004 95.983-95.984 95.983-95.984-43.175-95.984-95.983z"];
62
60
  case "grip":
63
61
  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"];
64
62
  default:
@@ -87,6 +85,7 @@
87
85
  color: {},
88
86
  hoverColor: {},
89
87
  rotate: {},
88
+ opacity: {},
90
89
  viewBox: {}
91
90
  },
92
91
  setup(__props) {
@@ -113,6 +112,8 @@
113
112
  fill && (style.fill = fill);
114
113
  const rotate = snail_core.correctNumber(props.rotate, 0);
115
114
  rotate != 0 && (style.transform = `rotate(${rotate}deg)`);
115
+ const opacity = snail_core.correctNumber(props.opacity, void 0);
116
+ opacity >= 0 && (style.opacity = opacity);
116
117
  return style;
117
118
  });
118
119
  return (_ctx, _cache) => {
@@ -242,6 +243,10 @@
242
243
  }
243
244
  });
244
245
 
246
+ var addLink = href => setTimeout(snail_view.link.register, 0, href);
247
+
248
+ addLink("/styles/snail.vue.vue.css");
249
+
245
250
  var _sfc_main$C = vue.defineComponent({
246
251
  ...{
247
252
  name: "Footer",
@@ -1592,10 +1597,7 @@
1592
1597
  };
1593
1598
  async function onWrapperConfirm() {
1594
1599
  if (fn_onBuildData != void 0) {
1595
- const rt = (await snail_core.wait(fn_onBuildData())) || {
1596
- success: true,
1597
- data: void 0
1598
- };
1600
+ const rt = await snail_core.runAsync(fn_onBuildData);
1599
1601
  console.log("onBuildData result:", rt);
1600
1602
  rt.success !== false && closePopup(rt.data);
1601
1603
  } else {
@@ -2637,14 +2639,12 @@
2637
2639
  return vue.openBlock(), vue.createElementBlock("div", {
2638
2640
  class: vue.normalizeClass(["snail-switch", [switchModel.value ? "on" : "off", __props.readonly ? "readonly" : ""], __props.type || "switch"]),
2639
2641
  onClick: onSwitchChange
2640
- }, [__props.type == "checkbox" || __props.type == "radio" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
2641
- key: 0
2642
- }, [switchModel.value ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
2642
+ }, [__props.type == "checkbox" || __props.type == "radio" ? vue.withDirectives((vue.openBlock(), vue.createBlock(_sfc_main$E, {
2643
2643
  key: 0,
2644
2644
  type: "success",
2645
2645
  color: "white",
2646
2646
  size: 16
2647
- })) : vue.createCommentVNode("", true)], 64)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
2647
+ }, null, 512)), [[vue.vShow, switchModel.value]]) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
2648
2648
  key: 1
2649
2649
  }, [_cache[0] || (_cache[0] = vue.createElementVNode("div", {
2650
2650
  class: "wh-fill on"
@@ -2808,15 +2808,17 @@
2808
2808
  onEvent
2809
2809
  } = snail_view.useObserver();
2810
2810
  const rootDom = vue.useTemplateRef("snail-action");
2811
- let popupScope = void 0;
2811
+ const popupScopeRef = vue.shallowRef(void 0);
2812
2812
  let pressStartDate = void 0;
2813
+ const slotHandle = Object.freeze({
2814
+ isActived: () => popupScopeRef.value != void 0,
2815
+ trigger: () => onFollowShow(props.trigger == "long-press")
2816
+ });
2813
2817
  async function onFollowShow(longPress) {
2814
- if (popupScope && popupScope.destroyed != true) {
2815
- popupScope.destroy();
2816
- return;
2817
- }
2818
- if (props.disabled != true) {
2819
- popupScope = follow(rootDom.value, {
2818
+ if (popupScopeRef.value && popupScopeRef.value.destroyed != true) {
2819
+ popupScopeRef.value.destroy();
2820
+ } else if (props.disabled != true) {
2821
+ popupScopeRef.value = follow(rootDom.value, {
2820
2822
  component: _sfc_main$h,
2821
2823
  closeOnEscape: true,
2822
2824
  closeOnMask: true,
@@ -2829,9 +2831,10 @@
2829
2831
  actions: props.actions
2830
2832
  }
2831
2833
  });
2832
- const code = await popupScope;
2834
+ const code = await popupScopeRef.value;
2833
2835
  snail_core.isStringNotEmpty(code) && emits("trigger", code);
2834
2836
  }
2837
+ popupScopeRef.value = void 0;
2835
2838
  }
2836
2839
  function onMouseDown() {
2837
2840
  if (props.trigger == "long-press" && pressStartDate == void 0) {
@@ -2865,19 +2868,17 @@
2865
2868
  }
2866
2869
  });
2867
2870
  return (_ctx, _cache) => {
2868
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [vue.createElementVNode("div", _hoisted_2$5, [vue.renderSlot(_ctx.$slots, "default")]), __props.trigger == "hover" && __props.disabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
2871
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [vue.createElementVNode("div", _hoisted_2$5, [vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.guardReactiveProps(vue.unref(slotHandle))))]), __props.disabled != true && (__props.trigger == "hover" || __props.trigger == "always") ? (vue.openBlock(), vue.createElementBlock("div", {
2869
2872
  key: 0,
2870
- class: "hover-tips",
2873
+ class: vue.normalizeClass(["trigger-area", {
2874
+ hidden: __props.trigger == "hover"
2875
+ }])
2876
+ }, [vue.renderSlot(_ctx.$slots, "trigger", vue.normalizeProps(vue.guardReactiveProps(vue.unref(slotHandle))), () => [vue.createVNode(_sfc_main$E, {
2871
2877
  button: "",
2872
- custom: "",
2878
+ type: "more",
2873
2879
  size: 16,
2874
2880
  onClick: _cache[0] || (_cache[0] = $event => onFollowShow(false))
2875
- }, {
2876
- default: vue.withCtx(() => [...(_cache[1] || (_cache[1] = [vue.createElementVNode("path", {
2877
- d: "M415.93 223.79c0-52.98 43.004-95.984 95.984-95.984s95.984 43.004 95.984 95.984-43.004 95.984-95.984 95.984-95.984-43.003-95.984-95.984zM415.93 511.742c0-52.98 43.004-95.984 95.984-95.984s95.984 43.004 95.984 95.984-43.004 95.984-95.984 95.984-95.984-43.004-95.984-95.984zM415.93 799.866c0-52.98 43.004-95.984 95.984-95.984s95.984 43.003 95.984 95.984-43.004 95.983-95.984 95.983-95.984-43.175-95.984-95.983z"
2878
- }, null, -1)]))]),
2879
- _: 1
2880
- })) : vue.createCommentVNode("", true)], 512);
2881
+ })])], 2)) : vue.createCommentVNode("", true)], 512);
2881
2882
  };
2882
2883
  }
2883
2884
  });
@@ -19,21 +19,21 @@
19
19
  /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/base/switch.vue index:0 */
20
20
  .snail-switch{cursor:pointer;overflow:hidden;position:relative}.snail-switch.readonly{cursor:not-allowed}.snail-switch.switch{border-radius:10px 10px 10px 10px;height:20px!important;width:36px!important}.snail-switch.switch>div.on{background-color:#5ca3ff}.snail-switch.switch>div.off{background-color:#c4c8cc;position:absolute;transition:left .2s ease}.snail-switch.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.switch.on>div.off{left:100%;top:0}.snail-switch.switch.on>div.status{left:calc(100% - 18px)}.snail-switch.switch.off>div.off{left:0;top:0}.snail-switch.switch.off>div.status{left:2px}
21
21
  /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/base/switch.vue index:1 */
22
- .snail-switch.checkbox,.snail-switch.radio{align-items:center;display:flex;flex-shrink:0;height:20px;justify-content:center;width:20px}.snail-switch.checkbox.off,.snail-switch.radio.off{border:1px solid #dcdfe6}.snail-switch.checkbox.on,.snail-switch.radio.on{background-color:#4c9aff;border:1px solid #4c9aff}.snail-switch.radio{border-radius:50%}
22
+ .snail-switch.checkbox,.snail-switch.radio{align-items:center;display:flex;flex-shrink:0;height:18px;justify-content:center;width:18px}.snail-switch.checkbox.off,.snail-switch.radio.off{border:1px solid #dcdfe6}.snail-switch.checkbox.on,.snail-switch.radio.on{background-color:#4c9aff;border:1px solid #4c9aff}.snail-switch.radio{border-radius:50%}
23
23
  /* src:../../../../../01_snail/snail.js/packages/snail.vue/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:../../../../../01_snail/snail.js/packages/snail.vue/src/container/action.vue index:0 */
26
- .snail-action,.snail-action *{-webkit-user-select:none;-moz-user-select:none;user-select:none}.snail-action>.action-slot{flex:1;overflow:hidden;position:relative}.snail-action>.hover-tips{display:none;flex-shrink:0}.snail-action:hover>.hover-tips{display:block}
26
+ .snail-action,.snail-action *{-webkit-user-select:none;-moz-user-select:none;user-select:none}.snail-action>.action-slot{flex:1;overflow:hidden;position:relative}.snail-action>.trigger-area{align-items:center;flex-shrink:0;width:-moz-fit-content;width:fit-content}.snail-action>.trigger-area.hidden{display:none}.snail-action:hover>.trigger-area{display:flex}
27
27
  /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/container/dynamic.vue index:0 */
28
28
  .snail-dynamic-error{color:red}.snail-dynamic-error>span{color:gray}
29
29
  /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/container/elastic.vue index:0 */
30
30
  .snail-elastic{background-color:#f6f8ff;overflow:hidden;position:relative}.snail-elastic>div.main-body{background-color:#fff;overflow:auto;overflow-anchor:none;position:relative;scroll-behavior:smooth;transition:transform .4s ease-out;-webkit-user-select:none;-moz-user-select:none;user-select:none;will-change:transform;z-index:1}.snail-elastic>div.main-body.moving{transition-property:none!important}.snail-elastic>div.down-refresh,.snail-elastic>div.up-more{left:0;overflow:hidden;position:absolute;width:100%}.snail-elastic>div.down-refresh>div.default-loading,.snail-elastic>div.up-more>div.default-loading{gap:6px;height:40px}@keyframes snail-elastic-pull-down{0%{opacity:.2}to{opacity:.8}}.snail-elastic>div.down-refresh>div.default-loading>span,.snail-elastic>div.up-more>div.default-loading>span{animation-direction:alternate;animation-duration:.8s;animation-iteration-count:infinite;animation-timing-function:linear;background-color:#000;border-radius:8px;height:8px;opacity:.2;width:8px}.snail-elastic>div.down-refresh>div.default-loading>span:nth-child(2),.snail-elastic>div.up-more>div.default-loading>span:nth-child(2){animation-delay:.4s}.snail-elastic>div.down-refresh>div.default-loading>span:nth-child(3),.snail-elastic>div.up-more>div.default-loading>span:nth-child(3){animation-delay:.8s}.snail-elastic>div.down-refresh.running>div.default-loading>span,.snail-elastic>div.up-more.running>div.default-loading>span{animation-name:snail-elastic-pull-down}.snail-elastic>div.down-refresh{top:0}.snail-elastic>div.up-more{bottom:0}
31
31
  /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/container/flex.vue index:0 */
32
32
  .snail-flex{display:flex;--gap:0;gap:var(--gap)}.snail-flex.row{flex-direction:row}.snail-flex.row-reverse{flex-direction:row-reverse}.snail-flex.column{flex-direction:column}.snail-flex.column-reverse{flex-direction:column-reverse}.snail-flex.nowrap{flex-wrap:nowrap}.snail-flex.wrap{flex-wrap:wrap}.snail-flex.wrap-reverse{flex-wrap:wrap-reverse}.snail-flex.justify-start{justify-content:flex-start}.snail-flex.justify-center{justify-content:center}.snail-flex.justify-end{justify-content:flex-end}.snail-flex.justify-between{justify-content:space-between}.snail-flex.justify-around{justify-content:space-around}.snail-flex.justify-evenly{justify-content:space-evenly}.snail-flex.items-start{align-items:flex-start}.snail-flex.items-center{align-items:center}.snail-flex.items-end{align-items:flex-end}.snail-flex.items-stretch{align-items:stretch}.snail-flex.items-baseline{align-items:baseline}.snail-flex.content-start{align-content:flex-start}.snail-flex.content-center{align-content:center}.snail-flex.content-end{align-content:flex-end}.snail-flex.content-stretch{align-content:stretch}.snail-flex.content-between{align-content:space-between}.snail-flex.content-around{align-content:space-around}.snail-flex.content-evenly{align-content:space-evenly}.snail-flex.row-reverse>.repair-item,.snail-flex.row>.repair-item{height:0!important;padding-bottom:0!important;padding-top:0!important;visibility:hidden!important}.snail-flex.column-reverse,.snail-flex.column>.repair-item{padding-left:0!important;padding-right:0!important;visibility:hidden!important;width:0!important}
33
- /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/container/fold.vue index:0 */
34
- .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}
35
33
  /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/container/layout.vue index:0 */
36
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:../../../../../01_snail/snail.js/packages/snail.vue/src/container/fold.vue index:0 */
36
+ .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}
37
37
  /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/container/motion.vue index:0 */
38
38
 
39
39
  /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/container/scroll.vue index:0 */
@@ -62,6 +62,10 @@ textarea.snail-textarea{font-size:14px;line-height:1.5em;overflow-x:hidden;overf
62
62
  .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}
63
63
  /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/prompt/loading.vue index:0 */
64
64
  .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)}}
65
+ /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/picker/components/time-pc.vue index:0 */
66
+ .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%}
67
+ /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/picker/components/date-pc.vue index:0 */
68
+ .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}
65
69
  /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/popup/components/confirm-container.vue index:0 */
66
70
  .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}
67
71
  /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/popup/components/dialog-container.vue index:0 */
@@ -72,10 +76,6 @@ textarea.snail-textarea{font-size:14px;line-height:1.5em;overflow-x:hidden;overf
72
76
  .snail-popup{left:0;position:fixed;top:0}
73
77
  /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/popup/components/toast-container.vue index:0 */
74
78
  .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}
75
- /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/picker/components/time-pc.vue index:0 */
76
- .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%}
77
- /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/picker/components/date-pc.vue index:0 */
78
- .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}
79
79
  /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/base/components/select-popup.vue index:0 */
80
80
  .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}
81
81
  /* src:../../../../../01_snail/snail.js/packages/snail.vue/src/container/components/action-items.vue index:0 */
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.25",
6
+ "version": "2.0.27",
7
7
  "type": "module",
8
8
  "main": "dist/snail.vue.js",
9
9
  "module": "dist/snail.vue.js",