snail.vue 1.0.53 → 2.0.0

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.
@@ -5,8 +5,8 @@
5
5
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.SnailVue = global.SnailVue || {}, global.Vue, global.Snail, global.SnailView));
6
6
  })(this, (function (exports, vue, snail_core, snail_view) { 'use strict';
7
7
 
8
- const _hoisted_1$g = ["title"];
9
- var _sfc_main$t = vue.defineComponent({
8
+ const _hoisted_1$h = ["title"];
9
+ var _sfc_main$u = vue.defineComponent({
10
10
  ...{
11
11
  name: "Button",
12
12
  inheritAttrs: true
@@ -22,11 +22,15 @@
22
22
  return vue.openBlock(), vue.createElementBlock("div", {
23
23
  class: vue.normalizeClass(["snail-button", [_ctx.size, _ctx.type]]),
24
24
  title: _ctx.title
25
- }, [vue.renderSlot(_ctx.$slots, "default", {}, () => [_cache[0] || (_cache[0] = vue.createTextVNode("按钮"))])], 10, _hoisted_1$g);
25
+ }, [vue.renderSlot(_ctx.$slots, "default", {}, () => [_cache[0] || (_cache[0] = vue.createTextVNode("按钮"))])], 10, _hoisted_1$h);
26
26
  };
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
+
30
34
  function getSvgDraw(iconType, draw) {
31
35
  switch (iconType) {
32
36
  case "success":
@@ -61,10 +65,10 @@
61
65
  }
62
66
  }
63
67
 
64
- const _hoisted_1$f = ["width", "height"];
68
+ const _hoisted_1$g = ["width", "height"];
65
69
  const _hoisted_2$a = ["textContent"];
66
70
  const _hoisted_3$7 = ["fill", "stroke", "stroke-width", "d"];
67
- var _sfc_main$s = vue.defineComponent({
71
+ var _sfc_main$t = vue.defineComponent({
68
72
  ...{
69
73
  name: "Icon",
70
74
  inheritAttrs: true
@@ -101,16 +105,16 @@
101
105
  "stroke-width": _ctx.strokeWidth,
102
106
  d: draw
103
107
  }, null, 8, _hoisted_3$7);
104
- }), 256))], 46, _hoisted_1$f);
108
+ }), 256))], 46, _hoisted_1$g);
105
109
  };
106
110
  }
107
111
  });
108
112
 
109
- const _hoisted_1$e = ["onClick"];
113
+ const _hoisted_1$f = ["onClick"];
110
114
  const _hoisted_2$9 = ["type", "checked"];
111
115
  const _hoisted_3$6 = ["textContent"];
112
116
  const _hoisted_4$4 = ["textContent"];
113
- var _sfc_main$r = vue.defineComponent({
117
+ var _sfc_main$s = vue.defineComponent({
114
118
  ...{
115
119
  name: "Choose",
116
120
  inheritAttrs: true
@@ -183,7 +187,7 @@
183
187
  }, null, 8, _hoisted_2$9)) : vue.unref(mode) == "beautiful" ? (vue.openBlock(), vue.createElementBlock("div", {
184
188
  key: 1,
185
189
  class: vue.normalizeClass(["item-beautiful", [_ctx.type, node.checked ? "item-checked" : "item-unchecked"]])
186
- }, [node.checked ? (vue.openBlock(), vue.createBlock(_sfc_main$s, {
190
+ }, [node.checked ? (vue.openBlock(), vue.createBlock(_sfc_main$t, {
187
191
  key: 0,
188
192
  type: "success",
189
193
  size: 12,
@@ -196,15 +200,168 @@
196
200
  key: 3,
197
201
  class: "item-des",
198
202
  textContent: vue.toDisplayString(node.item.description)
199
- }, null, 8, _hoisted_4$4)) : vue.createCommentVNode("", true)], 14, _hoisted_1$e);
203
+ }, null, 8, _hoisted_4$4)) : vue.createCommentVNode("", true)], 14, _hoisted_1$f);
200
204
  }), 128))], 2);
201
205
  };
202
206
  }
203
207
  });
204
208
 
205
- var addLink = href => setTimeout(snail_view.link.register, 0, href);
206
-
207
- addLink("/styles/snail.vue.vue.css");
209
+ const _hoisted_1$e = ["id"];
210
+ var _sfc_main$r = vue.defineComponent({
211
+ __name: "datepicker",
212
+ props: {
213
+ type: {},
214
+ range: {
215
+ type: Boolean
216
+ },
217
+ format: {},
218
+ begin: {},
219
+ end: {},
220
+ min: {},
221
+ max: {},
222
+ zIndex: {},
223
+ timeDisabled: {
224
+ type: Boolean
225
+ },
226
+ secondDisabled: {
227
+ type: Boolean
228
+ },
229
+ cleanDisabled: {
230
+ type: Boolean
231
+ },
232
+ nowDisabled: {
233
+ type: Boolean
234
+ },
235
+ submitDisabled: {
236
+ type: Boolean
237
+ },
238
+ width: {},
239
+ height: {},
240
+ behindTop: {}
241
+ },
242
+ emits: ["change", "picker-focus", "picker-blur"],
243
+ setup(__props, _ref) {
244
+ let {
245
+ expose: __expose,
246
+ emit: __emit
247
+ } = _ref;
248
+ const props = __props;
249
+ const emits = __emit;
250
+ const {
251
+ onInterval,
252
+ onTimeout
253
+ } = snail_core.useTimer();
254
+ const {
255
+ range
256
+ } = props;
257
+ const format = props.format || "yyyy-MM-dd";
258
+ const id = `DP${snail_core.newId()}`.toUpperCase();
259
+ var pickerInitialTimer = void 0;
260
+ var pickerLastStatus = void 0;
261
+ var pickerStatusTimer = void 0;
262
+ const pickerStatusArray = [];
263
+ __expose({
264
+ showPicker
265
+ });
266
+ function initZanePopup(flag) {
267
+ const obj = window[flag] ? window[flag].$obj : void 0;
268
+ if (obj) {
269
+ obj.removeEventListener("mouseenter", onZanePopupFocus);
270
+ obj.removeEventListener("mouseleave", onZanePopupFocus);
271
+ obj.addEventListener("mouseenter", onZanePopupFocus);
272
+ obj.addEventListener("mouseleave", onZanePopupFocus);
273
+ return true;
274
+ }
275
+ }
276
+ function destroyZanePopup(flag) {
277
+ if (window[flag]) {
278
+ window[flag].removeCalendar && window[flag].removeCalendar();
279
+ delete window[flag];
280
+ }
281
+ }
282
+ function showPicker(delay) {
283
+ const div = document.getElementById(id);
284
+ div && (delay > 0 ? onTimeout(() => div.click(), delay) : div.click());
285
+ }
286
+ function onClick() {
287
+ if (pickerInitialTimer && pickerInitialTimer.destroyed != true) {
288
+ return;
289
+ }
290
+ pickerInitialTimer = onInterval(() => {
291
+ let counter = 0;
292
+ initZanePopup(id) && counter++;
293
+ range && initZanePopup(`${id}DOUBLE`) && counter++;
294
+ counter == (range ? 2 : 1) && pickerInitialTimer.destroy();
295
+ }, 10);
296
+ const timeoutScope = onTimeout(() => pickerInitialTimer.destroyed || pickerInitialTimer.destroy(), 5e3);
297
+ pickerInitialTimer.onDestroy(() => timeoutScope.destroyed || timeoutScope.destroy());
298
+ }
299
+ function onZaneMounted() {}
300
+ function onZanePopupFocus(e) {
301
+ const type = e.type == "mouseenter" ? "focus" : "blur";
302
+ pickerStatusArray.push(type);
303
+ pickerStatusTimer && pickerStatusTimer.destroy();
304
+ pickerStatusTimer = onTimeout(() => {
305
+ const lastStatus = snail_core.getFromArray(pickerStatusArray, -1);
306
+ lastStatus && pickerLastStatus != lastStatus && emits(`picker-${lastStatus}`);
307
+ pickerLastStatus = lastStatus;
308
+ pickerStatusTimer = void 0;
309
+ pickerStatusArray.splice(0);
310
+ }, 0);
311
+ }
312
+ function onZaneDone(full, begin, end) {
313
+ if (format.includes("-") == true) {
314
+ begin && (begin = begin.replaceAll("/", "-"));
315
+ end && (end = end.replaceAll("/", "-"));
316
+ }
317
+ emits("change", begin, end);
318
+ }
319
+ snail_view.link.register("/styles/zane-calendar.css");
320
+ vue.onMounted(() => {
321
+ snail_core.script.has("zane-calendar") || snail_core.throwError(`zane-calendar module unregistered.`);
322
+ const zaneOptions = {
323
+ elem: `#${id}`,
324
+ type: `${range ? "double" : ""}${props.type || "day"}`,
325
+ format,
326
+ begintime: props.begin || "",
327
+ endtime: props.end || "",
328
+ min: props.min || "1900-10-01",
329
+ max: props.max || "",
330
+ zindex: props.zIndex || 1e4,
331
+ showtime: props.timeDisabled != true,
332
+ showsecond: props.secondDisabled != true,
333
+ showclean: props.cleanDisabled != true,
334
+ shownow: props.nowDisabled != true,
335
+ showsubmit: props.submitDisabled != true,
336
+ width: props.width || 280,
337
+ height: props.height || 300,
338
+ behindTop: props.behindTop || 4,
339
+ lang: "cn",
340
+ event: "click",
341
+ position: "fixed",
342
+ haveBotBtns: true,
343
+ mounted: onZaneMounted,
344
+ done: onZaneDone
345
+ };
346
+ snail_core.script.load("zane-calendar").then(calendar => {
347
+ console.log(zaneOptions);
348
+ snail_core.isFunction(calendar) || snail_core.throwError("load zane-calendar failed: value is not a function.");
349
+ calendar(zaneOptions);
350
+ }, reason => snail_core.throwError(reason));
351
+ });
352
+ vue.onUnmounted(() => {
353
+ destroyZanePopup(id);
354
+ range && destroyZanePopup(`${id}DOUBLE`);
355
+ });
356
+ return (_ctx, _cache) => {
357
+ return vue.openBlock(), vue.createElementBlock("div", {
358
+ class: "snail-datepicker",
359
+ id: vue.unref(id),
360
+ onClick
361
+ }, null, 8, _hoisted_1$e);
362
+ };
363
+ }
364
+ });
208
365
 
209
366
  var _sfc_main$q = vue.defineComponent({
210
367
  ...{
@@ -237,13 +394,13 @@
237
394
  class: vue.normalizeClass(["snail-footer", {
238
395
  "start-divider": _ctx.divider
239
396
  }, _ctx.align || "right"])
240
- }, [vue.renderSlot(_ctx.$slots, "default", {}, () => [_ctx.cancelDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$t, {
397
+ }, [vue.renderSlot(_ctx.$slots, "default", {}, () => [_ctx.cancelDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$u, {
241
398
  key: 0,
242
399
  size: "max",
243
400
  type: "default",
244
401
  onClick: _cache[0] || (_cache[0] = $event => emits("cancel")),
245
402
  textContent: vue.toDisplayString(_ctx.cancelName || "取消")
246
- }, null, 8, ["textContent"])) : vue.createCommentVNode("", true), _ctx.confirmDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$t, {
403
+ }, null, 8, ["textContent"])) : vue.createCommentVNode("", true), _ctx.confirmDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$u, {
247
404
  key: 1,
248
405
  size: "max",
249
406
  type: "primary",
@@ -294,7 +451,7 @@
294
451
  key: 0,
295
452
  textContent: vue.toDisplayString(_ctx.title),
296
453
  class: vue.normalizeClass(["header-title", _ctx.titleAlign])
297
- }, null, 10, _hoisted_1$d)) : vue.createCommentVNode("", true), vue.renderSlot(_ctx.$slots, "default"), _ctx.closeDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$s, {
454
+ }, null, 10, _hoisted_1$d)) : vue.createCommentVNode("", true), vue.renderSlot(_ctx.$slots, "default"), _ctx.closeDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$t, {
298
455
  key: 1,
299
456
  type: "close",
300
457
  size: 22,
@@ -355,7 +512,7 @@
355
512
  onKeyup: _cache[1] || (_cache[1] = $event => onSearch($event))
356
513
  }, null, 40, _hoisted_1$c), [[vue.vModelText, textModel.value, void 0, {
357
514
  trim: true
358
- }]]), vue.createElementVNode("div", null, [vue.createVNode(_sfc_main$s, {
515
+ }]]), vue.createElementVNode("div", null, [vue.createVNode(_sfc_main$t, {
359
516
  class: "search-button",
360
517
  type: "custom",
361
518
  draw: searchIon,
@@ -396,7 +553,7 @@
396
553
  options,
397
554
  extOptions,
398
555
  zIndex: options.zIndex || DEFAULT_ZINDEX,
399
- popupTransition: vue.shallowRef(`${options.transition || "snail-fade"}-in`)
556
+ popupTransition: vue.shallowRef(`${options.transition || "fade"}-in`)
400
557
  });
401
558
  {
402
559
  const app = vue.createApp(container, descriptor);
@@ -419,7 +576,7 @@
419
576
  popupStatus.value = "closed";
420
577
  task.resolve(void 0);
421
578
  }
422
- popupTransition.value = `${options.transition || "snail-fade"}-out`;
579
+ popupTransition.value = `${options.transition || "fade"}-out`;
423
580
  const app = POPUPMAPS.get(popupId);
424
581
  if (app != void 0) {
425
582
  POPUPMAPS.delete(popupId);
@@ -577,7 +734,7 @@
577
734
  }
578
735
 
579
736
  const _hoisted_1$b = {
580
- class: "snail-confirm"
737
+ class: "snail-confirm flex-column"
581
738
  };
582
739
  const _hoisted_2$8 = ["innerHTML"];
583
740
  var _sfc_main$n = vue.defineComponent({
@@ -1052,7 +1209,7 @@
1052
1209
  }),
1053
1210
  onMouseenter: _cache[3] || (_cache[3] = $event => onMouseEvent(false)),
1054
1211
  onMouseleave: _cache[4] || (_cache[4] = $event => onMouseEvent(true))
1055
- }, [vue.createVNode(_sfc_main$s, {
1212
+ }, [vue.createVNode(_sfc_main$t, {
1056
1213
  type: "close",
1057
1214
  class: "close-icon",
1058
1215
  fill: closeFillRef.value,
@@ -1062,7 +1219,7 @@
1062
1219
  onClick: _cache[2] || (_cache[2] = $event => {
1063
1220
  vue.unref(closePopup)();
1064
1221
  })
1065
- }, null, 8, ["fill"]), vue.unref(props).type ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [vue.createVNode(_sfc_main$s, {
1222
+ }, null, 8, ["fill"]), vue.unref(props).type ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [vue.createVNode(_sfc_main$t, {
1066
1223
  type: vue.unref(props).type,
1067
1224
  fill: "#707070",
1068
1225
  size: 20
@@ -1392,13 +1549,13 @@
1392
1549
  onMouseenter: _cache[0] || (_cache[0] = $event => emits("enter", rootDom.value, _ctx.item)),
1393
1550
  onClick: _cache[1] || (_cache[1] = () => emits("click", _ctx.item))
1394
1551
  }, [vue.createElementVNode("div", {
1395
- class: "item-text",
1552
+ class: "item-text ellipsis",
1396
1553
  textContent: vue.toDisplayString(_ctx.item.text)
1397
- }, null, 8, _hoisted_2$5), _ctx.item.type == "group" ? (vue.openBlock(), vue.createBlock(_sfc_main$s, {
1554
+ }, null, 8, _hoisted_2$5), _ctx.item.type == "group" ? (vue.openBlock(), vue.createBlock(_sfc_main$t, {
1398
1555
  key: 0,
1399
1556
  type: "arrow",
1400
1557
  color: "#8a9099"
1401
- })) : _ctx.multiple == true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$4, [vue.createVNode(_sfc_main$s, {
1558
+ })) : _ctx.multiple == true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$4, [vue.createVNode(_sfc_main$t, {
1402
1559
  type: "success",
1403
1560
  color: "white",
1404
1561
  size: 12
@@ -1476,9 +1633,8 @@
1476
1633
  } = props;
1477
1634
  const itemsRef = vue.computed(() => (props.items || []).filter(item => context.isShow(item, true)));
1478
1635
  const classRef = vue.computed(() => ({
1479
- "snail-select-popup": true,
1480
1636
  "child-popup": props.level > 1,
1481
- "text-tips": itemsRef.value.length == 0,
1637
+ "placeholder": itemsRef.value.length == 0,
1482
1638
  "has-group": itemsRef.value.find(node => node.type == "group") != void 0
1483
1639
  }));
1484
1640
  var mouseStatus = "Leave";
@@ -1584,11 +1740,11 @@
1584
1740
  watcher(popupStatus, newValue => newValue == "closed" && childFollowScope && childFollowScope.destroy());
1585
1741
  return (_ctx, _cache) => {
1586
1742
  return vue.openBlock(), vue.createElementBlock("div", {
1587
- class: vue.normalizeClass(classRef.value),
1743
+ class: vue.normalizeClass(["snail-select-popup", classRef.value]),
1588
1744
  style: vue.normalizeStyle(_ctx.popupStyle),
1589
1745
  onMouseenter: onEnterPopup,
1590
1746
  onMouseleave: onLeavePopup
1591
- }, [classRef.value["child-popup"] && classRef.value["text-tips"] ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
1747
+ }, [classRef.value["child-popup"] && classRef.value["placeholder"] ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
1592
1748
  key: 0
1593
1749
  }, [vue.createTextVNode(" 暂无选项 ")], 64)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
1594
1750
  key: 1
@@ -1627,7 +1783,7 @@
1627
1783
  const _hoisted_3$3 = ["textContent"];
1628
1784
  const _hoisted_4$3 = {
1629
1785
  key: 1,
1630
- class: "no-items text-tips"
1786
+ class: "placeholder"
1631
1787
  };
1632
1788
  onAppCreated((app, type) => {
1633
1789
  type == "popup" && app.component("SelectPopup", _sfc_main$e);
@@ -1757,28 +1913,30 @@
1757
1913
  return (_ctx, _cache) => {
1758
1914
  return vue.openBlock(), vue.createElementBlock("div", {
1759
1915
  class: vue.normalizeClass(["snail-select", {
1760
- "readonly": _ctx.readonly
1916
+ "readonly": _ctx.readonly,
1917
+ "empty": !(_ctx.items && _ctx.items.length)
1761
1918
  }]),
1762
1919
  onClick: _cache[0] || (_cache[0] = $event => onClick()),
1763
1920
  ref: "select"
1764
- }, [_ctx.items && _ctx.items.length > 0 ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
1921
+ }, [_ctx.items && _ctx.items.length ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
1765
1922
  key: 0
1766
- }, [selectedItemsRef.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.guardReactiveProps(vue.unref(slotOptions))), () => [vue.createElementVNode("div", {
1767
- class: "select-text",
1923
+ }, [selectedItemsRef.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.guardReactiveProps(vue.unref(slotOptions))), () => [vue.createElementVNode("div", {
1924
+ class: "select-text ellipsis",
1768
1925
  title: selectedTextRef.value,
1769
1926
  textContent: vue.toDisplayString(selectedTextRef.value)
1770
1927
  }, null, 8, _hoisted_2$4)])])) : (vue.openBlock(), vue.createElementBlock("div", {
1771
1928
  key: 1,
1772
- class: "select-result text-tips",
1929
+ class: "placeholder",
1773
1930
  textContent: vue.toDisplayString(_ctx.readonly ? "" : _ctx.placeholder || "请选择")
1774
- }, null, 8, _hoisted_3$3)), vue.createVNode(_sfc_main$s, {
1931
+ }, null, 8, _hoisted_3$3)), _ctx.readonly != true ? (vue.openBlock(), vue.createBlock(_sfc_main$t, {
1932
+ key: 2,
1775
1933
  type: "arrow",
1776
1934
  size: 24,
1777
1935
  color: "#8a9099",
1778
1936
  style: {
1779
1937
  "transform": "rotate(90deg)"
1780
1938
  }
1781
- })], 64)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$3, "暂无可选项"))], 2);
1939
+ })) : vue.createCommentVNode("", true)], 64)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$3, "暂无可选项"))], 2);
1782
1940
  };
1783
1941
  }
1784
1942
  });
@@ -1916,13 +2074,13 @@
1916
2074
  return vue.openBlock(), vue.createElementBlock("div", {
1917
2075
  class: vue.normalizeClass(["snail-fold", statusModel.value])
1918
2076
  }, [vue.createElementVNode("div", _hoisted_1$6, [vue.renderSlot(_ctx.$slots, "header", {}, () => [vue.createElementVNode("div", {
1919
- class: "title",
2077
+ class: "title ellipsis",
1920
2078
  textContent: vue.toDisplayString(_ctx.title)
1921
2079
  }, null, 8, _hoisted_2$3), !!_ctx.subtitle ? (vue.openBlock(), vue.createElementBlock("div", {
1922
2080
  key: 0,
1923
- class: "subtitle",
2081
+ class: "subtitle ellipsis",
1924
2082
  textContent: vue.toDisplayString(_ctx.subtitle)
1925
- }, null, 8, _hoisted_3$2)) : vue.createCommentVNode("", true), _ctx.disabled != true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$2, [vue.createVNode(_sfc_main$s, {
2083
+ }, null, 8, _hoisted_3$2)) : vue.createCommentVNode("", true), _ctx.disabled != true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$2, [vue.createVNode(_sfc_main$t, {
1926
2084
  type: "arrow",
1927
2085
  title: statusModel.value == "expand" ? "收起" : "展开",
1928
2086
  onClick: onStatusClick
@@ -2277,7 +2435,7 @@
2277
2435
  };
2278
2436
  const _hoisted_2$1 = ["title", "textContent"];
2279
2437
  const _hoisted_3$1 = {
2280
- class: "node-slot"
2438
+ class: "node-slot ellipsis"
2281
2439
  };
2282
2440
  const _hoisted_4$1 = {
2283
2441
  key: 1,
@@ -2400,7 +2558,7 @@
2400
2558
  key: 1
2401
2559
  }, [_cache[4] || (_cache[4] = vue.createElementVNode("div", {
2402
2560
  class: "indent"
2403
- }, null, -1)), _ctx.options.foldDisabled != true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [showChildrenRef.value ? (vue.openBlock(), vue.createBlock(_sfc_main$s, {
2561
+ }, null, -1)), _ctx.options.foldDisabled != true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [showChildrenRef.value ? (vue.openBlock(), vue.createBlock(_sfc_main$t, {
2404
2562
  key: 0,
2405
2563
  class: vue.normalizeClass(statusRef.value),
2406
2564
  type: "custom",
@@ -2409,7 +2567,7 @@
2409
2567
  draw: "M 298.667 426.667 l 213.333 256 l 213.333 -256 Z",
2410
2568
  onClick: toggleFold
2411
2569
  }, null, 8, ["class"])) : vue.createCommentVNode("", true)])) : vue.createCommentVNode("", true), vue.createElementVNode("div", {
2412
- class: "node-text",
2570
+ class: "node-text ellipsis",
2413
2571
  title: _ctx.node.text,
2414
2572
  textContent: vue.toDisplayString(_ctx.node.text)
2415
2573
  }, null, 8, _hoisted_2$1), vue.createElementVNode("div", _hoisted_3$1, [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$1, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.node.children, child => {
@@ -2633,7 +2791,7 @@
2633
2791
  key: 0,
2634
2792
  class: "validate",
2635
2793
  title: validateRef.value
2636
- }, [vue.createVNode(_sfc_main$s, {
2794
+ }, [vue.createVNode(_sfc_main$t, {
2637
2795
  type: "error",
2638
2796
  size: 16,
2639
2797
  color: "red"
@@ -2727,12 +2885,12 @@
2727
2885
  onTouchstart: onStartDrag,
2728
2886
  onTouchmove: onDragMove,
2729
2887
  onTouchend: onDragEnd
2730
- }, [dragInfoRef.value.status == "success" ? (vue.openBlock(), vue.createBlock(_sfc_main$s, {
2888
+ }, [dragInfoRef.value.status == "success" ? (vue.openBlock(), vue.createBlock(_sfc_main$t, {
2731
2889
  key: 0,
2732
2890
  type: "success",
2733
2891
  size: 20,
2734
2892
  color: "white"
2735
- })) : (vue.openBlock(), vue.createBlock(_sfc_main$s, {
2893
+ })) : (vue.openBlock(), vue.createBlock(_sfc_main$t, {
2736
2894
  key: 1,
2737
2895
  type: "custom",
2738
2896
  size: 20,
@@ -2744,11 +2902,12 @@
2744
2902
  });
2745
2903
 
2746
2904
  const components = {
2747
- Button: _sfc_main$t,
2748
- Choose: _sfc_main$r,
2905
+ Button: _sfc_main$u,
2906
+ Choose: _sfc_main$s,
2907
+ DatePicker: _sfc_main$r,
2749
2908
  Footer: _sfc_main$q,
2750
2909
  Header: _sfc_main$p,
2751
- Icon: _sfc_main$s,
2910
+ Icon: _sfc_main$t,
2752
2911
  Search: _sfc_main$o,
2753
2912
  Select: _sfc_main$d,
2754
2913
  Switch: _sfc_main$c,
@@ -1,60 +1,62 @@
1
- /* src:base\choose.vue index:0 */
2
- .snail-choose{align-items:center;display:flex;flex-wrap:wrap;overflow-x:hidden}.snail-choose>div.choose-item{align-items:center;cursor:pointer;display:flex;flex-shrink:0;margin:0 8px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.snail-choose>div.choose-item:first-child{margin-left:0}.snail-choose>div.choose-item:after{content:"";height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%}.snail-choose>div.choose-item>input::checkmark{background-color:#2196f3;border-color:#2196f3}.snail-choose>div.choose-item>div.item-beautiful{align-items:center;display:flex;flex-shrink:0;justify-content:center;overflow:hidden}.snail-choose>div.choose-item>div.item-beautiful.radio{border-radius:50%;height:16px;width:16px}.snail-choose>div.choose-item>div.item-beautiful.checkbox{height:14px;width:14px}.snail-choose>div.choose-item>div.item-beautiful.item-unchecked{border:1px solid #8a9099}.snail-choose>div.choose-item>div.item-beautiful.item-checked{background-color:#4c9aff;border:1px solid #4c9aff}.snail-choose>div.choose-item>span{margin-left:4px}.snail-choose>div.choose-item>span.item-des{color:#8a9099}.snail-choose.readonly>div.choose-item{cursor:auto}.snail-choose.readonly>div.choose-item>div.item-beautiful.item-unchecked{opacity:.5}.snail-choose.readonly>div.choose-item>div.item-beautiful.item-checked{background-color:#d5d7db;border-color:#d5d7db}
3
1
  /* src:base\button.vue index:0 */
4
2
  .snail-button{align-items:center;border-radius:2px;cursor:pointer;display:flex;display:inline-flex;justify-content:center;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.snail-button.max{height:40px;width:120px}.snail-button.middle{height:32px;width:90px}.snail-button.normal{height:28px;width:54px}.snail-button.small{height:20px;width:30px}.snail-button.primary{background-color:#5ca3ff;color:#fff}.snail-button.default{background-color:#fff;border:1px solid #dddfed;color:#2e2f33}.snail-button.link{color:#4c9aff}
3
+ /* src:base\choose.vue index:0 */
4
+ .snail-choose{align-items:center;display:flex;flex-wrap:wrap;overflow-x:hidden}.snail-choose>div.choose-item{align-items:center;cursor:pointer;display:flex;flex-shrink:0;margin:0 8px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.snail-choose>div.choose-item:first-child{margin-left:0}.snail-choose>div.choose-item:after{content:"";height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%}.snail-choose>div.choose-item>input::checkmark{background-color:#2196f3;border-color:#2196f3}.snail-choose>div.choose-item>div.item-beautiful{align-items:center;display:flex;flex-shrink:0;justify-content:center;overflow:hidden}.snail-choose>div.choose-item>div.item-beautiful.radio{border-radius:50%;height:16px;width:16px}.snail-choose>div.choose-item>div.item-beautiful.checkbox{height:14px;width:14px}.snail-choose>div.choose-item>div.item-beautiful.item-unchecked{border:1px solid #8a9099}.snail-choose>div.choose-item>div.item-beautiful.item-checked{background-color:#4c9aff;border:1px solid #4c9aff}.snail-choose>div.choose-item>span{margin-left:4px}.snail-choose>div.choose-item>span.item-des{color:#8a9099}.snail-choose.readonly>div.choose-item{cursor:auto}.snail-choose.readonly>div.choose-item>div.item-beautiful.item-unchecked{opacity:.5}.snail-choose.readonly>div.choose-item>div.item-beautiful.item-checked{background-color:#d5d7db;border-color:#d5d7db}
5
+ /* src:base\datepicker.vue index:0 */
6
+ .snail-datepicker{height:100%;left:0;opacity:0;overflow:hidden;position:absolute;top:0;width:100%}
5
7
  /* src:base\footer.vue index:0 */
6
8
  .snail-footer{align-items:center;background-color:#fff;display:flex;flex-shrink:0;height:72px;padding:0 40px;width:100%}.snail-footer>.snail-button:nth-child(n+2){margin-left:20px}.snail-footer.start-divider{border-top:1px solid #dddfed}.snail-footer.left{justify-content:flex-start}.snail-footer.center{justify-content:center}.snail-footer.right{justify-content:flex-end}
7
- /* src:base\icon.vue index:0 */
8
- .snail-icon{cursor:pointer;opacity:1}
9
9
  /* src:base\header.vue index:0 */
10
- .snail-header{align-items:center;background-color:#fff;display:flex;flex-shrink:0;position:relative;width:100%}.snail-header>.header-title{color:#2e3033;flex:1;line-height:48px;overflow:hidden;padding:0 30px;text-overflow:ellipsis;white-space:nowrap;width:100%}.snail-header>.header-title.left{text-align:left}.snail-header>.header-title.center{text-align:center}.snail-header>.header-title.right{text-align:right}.snail-header.start-divider{border-bottom:1px solid #dddfed}.snail-header.page{height:48px}.snail-header.page>.header-title{font-size:16px;font-weight:bold}.snail-header.page>.close-icon{margin-right:18px}.snail-header.dialog{height:64px;padding-top:16px}.snail-header.dialog>.header-title{font-size:20px}.snail-header.dialog>.close-icon{position:absolute;right:8px;top:8px}
10
+ .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}
11
11
  /* src:base\search.vue index:0 */
12
12
  .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}
13
+ /* src:base\icon.vue index:0 */
14
+ .snail-icon{cursor:pointer;opacity:1}
13
15
  /* src:base\select.vue index:0 */
14
- .snail-select{align-items:center;background-color:#fff;border:1px solid #dddfed;border-radius:4px;color:#2e3033;cursor:pointer;display:flex;height:32px;width:100%}.snail-select>div.select-result{align-items:center;display:flex;flex:1;flex-wrap:nowrap;height:30px;overflow:hidden;padding:0 10px 0 6px}.snail-select>div.select-result>div.select-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.snail-select>svg.snail-icon{flex-shrink:0;margin-right:4px}.snail-select>div.no-items{align-items:center;cursor:text;display:flex;height:100%;padding:0 8px;width:100%}.snail-select.readonly{cursor:auto}.snail-select.readonly>svg.snail-icon{display:none}
15
- /* src:base\switch.vue index:0 */
16
- .snail-switch{border-radius:10px 10px 10px 10px;cursor:pointer;height:20px!important;overflow:hidden;position:relative;width:36px!important}.snail-switch>div{height:100%;width:100%}.snail-switch>div.on{background-color:#5ca3ff}.snail-switch>div.off{background-color:#c4c8cc;position:absolute;transition:left .2s ease}.snail-switch>div.status{background:#fff;border-radius:10px 10px 10px 10px;height:16px;position:absolute;top:2px;transition:left .2s ease;width:16px}.snail-switch.on>div.off{left:100%;top:0}.snail-switch.on>div.status{left:calc(100% - 18px)}.snail-switch.off>div.off{left:0;top:0}.snail-switch.off>div.status{left:2px}.snail-switch.readonly{cursor:not-allowed}
16
+ .snail-select{align-items:center;background-color:#fff;border:1px solid #dddfed;border-radius:4px;color:#2e3033;display:flex;height:32px;width:100%}.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
17
  /* src:container\dynamic.vue index:0 */
18
18
  .snail-dynamic-error{color:red}.snail-dynamic-error>span{color:gray}
19
+ /* src:base\switch.vue index:0 */
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\fold.vue index:0 */
20
- .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>.subtitle,.snail-fold>div.fold-header>.title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.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)}
22
+ .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)}
21
23
  /* src:container\layout.vue index:0 */
22
24
  .snail-layout{display:flex;height:100%;overflow:hidden;width:100%}.snail-layout>.layout-end,.snail-layout>.layout-start{flex-shrink:0}.snail-layout>.layout-body{flex:1}.snail-layout.horizontal{flex-direction:row}.snail-layout.horizontal>div{height:100%}.snail-layout.horizontal>.layout-end,.snail-layout.horizontal>.layout-start{width:-moz-fit-content;width:fit-content}.snail-layout.vertical{flex-direction:column}.snail-layout.vertical>div{width:100%}.snail-layout.vertical>.layout-end,.snail-layout.vertical>.layout-start{height:-moz-fit-content;height:fit-content}
23
25
  /* src:container\scroll.vue index:0 */
24
26
  .snail-scroll{overflow:hidden}.snail-scroll.scroll-x{overflow-x:auto}.snail-scroll.scroll-y{overflow-y:auto}
25
- /* src:container\sort.vue index:0 */
26
- .snail-sort-drag{background:#fff;border:1px solid #4c9aff;border-radius:4px;cursor:move}.snail-sort-ghost{border:1px dashed #4c9aff;border-radius:4px}
27
- /* src:container\table.vue index:0 */
28
- .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}
29
27
  /* src:container\components\table-row.vue index:0 */
30
28
  .table-row{align-items:center;display:flex}
29
+ /* src:container\sort.vue index:0 */
30
+ .snail-sort-drag{background:#fff;border:1px solid #4c9aff;border-radius:4px;cursor:move}.snail-sort-ghost{border:1px dashed #4c9aff;border-radius:4px}
31
31
  /* src:container\components\table-col.vue index:0 */
32
32
  .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}
33
- /* src:container\wrapper.vue index:0 */
34
- .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%}
35
- /* src:prompt\drag-verify.vue index:0 */
36
- .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}}
33
+ /* src:container\table.vue index:0 */
34
+ .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}
37
35
  /* src:container\tree.vue index:0 */
38
36
  .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}
37
+ /* src:container\wrapper.vue index:0 */
38
+ .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%}
39
39
  /* src:form\input.vue index:0 */
40
40
  .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}
41
+ /* src:prompt\drag-verify.vue index:0 */
42
+ .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}}
41
43
  /* src:prompt\empty.vue index:0 */
42
44
  .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}
43
45
  /* src:prompt\loading.vue index:0 */
44
46
  .snail-loading{height:100%;left:0;position:absolute;top:0;width:100%;z-index:10000}.snail-loading.show-mask{background-color:rgba(0,0,0,.15)}.snail-loading:after,.snail-loading:before{animation:snail-loading-stretch 1s ease-in-out infinite;border-radius:50%;content:"";display:block;display:inline-block;height:10px;left:50%;margin-left:-18px;margin-top:-6px;position:absolute;top:50%;width:10px}.snail-loading:before{background-color:#279bf1}.snail-loading:after{animation-delay:-.5s;background:#64d214;margin-left:0;margin-right:-18px}@keyframes snail-loading-stretch{0%,to{transform:scale(1)}50%{transform:scale(2)}}.snail-loading-enter-active,.snail-loading-leave-active{transition:opacity .3s ease-in-out}.snail-loading-enter-from,.snail-loading-leave-to{opacity:0}
45
47
  /* src:popup\components\confirm-container.vue index:0 */
46
- .snail-confirm{background-color:#fff;border-radius:4px;color:#2e2f33;display:flex;flex-direction:column;max-height:350px;max-width:548px;min-width:348px}.snail-confirm>div.confirm-body{flex:1;margin:20px 40px;overflow:auto;word-wrap:break-word}
48
+ .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}
47
49
  /* src:popup\components\dialog-container.vue index:0 */
48
50
  .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)}
49
- /* src:popup\components\toast-container.vue index:0 */
50
- .snail-toast{background:rgba(0,0,0,.7);border-radius:10px;color:#fff;display:flex;left:50%;max-height:200px;max-width:400px;min-width:200px;overflow:hidden;padding:20px 35px 20px 15px;position:fixed;top:50%;transform:translate(-50%,-50%)}.snail-toast>svg.close-icon{position:absolute;right:10px;top:12px}.snail-toast>div.icon{align-items:center;align-self:center;background:hsla(0,0%,100%,.15);border-radius:50%;display:flex;height:26px;justify-content:center;margin-right:6px;width:26px}.snail-toast>div.icon>svg{background:#fff;border-radius:50%;cursor:none!important;padding:2px}.snail-toast>div.message{flex:1;line-height:24px;overflow:hidden;word-break:break-all}
51
51
  /* src:popup\components\popup-container.vue index:0 */
52
52
  .snail-popup{left:0;position:fixed;top:0}
53
53
  /* src:popup\components\follow-container.vue index:0 */
54
54
  .snail-follow{background-color:#fff;display:inline-block;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}
55
+ /* src:popup\components\toast-container.vue index:0 */
56
+ .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}
55
57
  /* src:container\components\tree-node.vue index:0 */
56
- .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-slot,.snail-tree-node>.node-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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}
58
+ .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}
57
59
  /* src:base\components\select-popup.vue index:0 */
58
- .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.text-tips{justify-content:center;padding:0 12px;width:100px!important}
60
+ .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}
59
61
  /* src:base\components\select-node.vue index:0 */
60
- .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;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.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}
62
+ .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}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "依赖【snail】,基于vue封装常用UI组件",
4
4
  "author": "snail_dev@163.com",
5
5
  "license": "MIT",
6
- "version": "1.0.53",
6
+ "version": "2.0.0",
7
7
  "type": "module",
8
8
  "main": "dist/snail.vue.js",
9
9
  "module": "dist/snail.vue.js",
@@ -14,9 +14,10 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "vue": "^3.5.14",
17
- "snail.core": ">=2.0.15",
17
+ "snail.core": ">=2.0.16",
18
18
  "snail.view": ">=1.0.24",
19
- "sortablejs": ">=1.15.6"
19
+ "sortablejs": ">=1.15.6",
20
+ "zane-calendar": "2.2.8"
20
21
  },
21
22
  "devDependencies": {
22
23
  "vue-tsc": "^2.2.10",