snail.vue 2.0.10 → 2.0.12

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.
@@ -6,7 +6,7 @@
6
6
  })(this, (function (exports, vue, snail_core, snail_view) { 'use strict';
7
7
 
8
8
  const _hoisted_1$k = ["title"];
9
- var _sfc_main$y = vue.defineComponent({
9
+ var _sfc_main$z = vue.defineComponent({
10
10
  ...{
11
11
  name: "Button",
12
12
  inheritAttrs: true
@@ -67,8 +67,8 @@
67
67
 
68
68
  const _hoisted_1$j = ["width", "height"];
69
69
  const _hoisted_2$c = ["textContent"];
70
- const _hoisted_3$9 = ["fill", "stroke", "stroke-width", "d"];
71
- var _sfc_main$x = vue.defineComponent({
70
+ const _hoisted_3$a = ["fill", "stroke", "stroke-width", "d"];
71
+ var _sfc_main$y = vue.defineComponent({
72
72
  ...{
73
73
  name: "Icon",
74
74
  inheritAttrs: true
@@ -104,7 +104,7 @@
104
104
  stroke: __props.stroke,
105
105
  "stroke-width": __props.strokeWidth,
106
106
  d
107
- }, null, 8, _hoisted_3$9);
107
+ }, null, 8, _hoisted_3$a);
108
108
  }), 256))], 46, _hoisted_1$j);
109
109
  };
110
110
  }
@@ -112,9 +112,9 @@
112
112
 
113
113
  const _hoisted_1$i = ["title", "onClick"];
114
114
  const _hoisted_2$b = ["type", "checked"];
115
- const _hoisted_3$8 = ["textContent"];
116
- const _hoisted_4$6 = ["textContent"];
117
- var _sfc_main$w = vue.defineComponent({
115
+ const _hoisted_3$9 = ["textContent"];
116
+ const _hoisted_4$7 = ["textContent"];
117
+ var _sfc_main$x = vue.defineComponent({
118
118
  ...{
119
119
  name: "Choose",
120
120
  inheritAttrs: true
@@ -193,7 +193,7 @@
193
193
  }, null, 8, _hoisted_2$b)) : vue.unref(mode) == "beautiful" ? (vue.openBlock(), vue.createElementBlock("div", {
194
194
  key: 1,
195
195
  class: vue.normalizeClass(["status", [node.selected ? "selected" : ""]])
196
- }, [node.selected ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
196
+ }, [node.selected ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
197
197
  key: 0,
198
198
  type: "success",
199
199
  size: 12,
@@ -202,18 +202,22 @@
202
202
  key: 2,
203
203
  class: "item-text",
204
204
  textContent: vue.toDisplayString(node.item.text)
205
- }, null, 8, _hoisted_3$8)) : vue.createCommentVNode("", true), node.item.description ? (vue.openBlock(), vue.createElementBlock("span", {
205
+ }, null, 8, _hoisted_3$9)) : vue.createCommentVNode("", true), node.item.description ? (vue.openBlock(), vue.createElementBlock("span", {
206
206
  key: 3,
207
207
  class: "item-des",
208
208
  textContent: vue.toDisplayString(node.item.description)
209
- }, null, 8, _hoisted_4$6)) : vue.createCommentVNode("", true)], 14, _hoisted_1$i);
209
+ }, null, 8, _hoisted_4$7)) : vue.createCommentVNode("", true)], 14, _hoisted_1$i);
210
210
  }), 128))], 2);
211
211
  };
212
212
  }
213
213
  });
214
214
 
215
+ var addLink = href => setTimeout(snail_view.link.register, 0, href);
216
+
217
+ addLink("/styles/snail.vue.vue.css");
218
+
215
219
  const _hoisted_1$h = ["id"];
216
- var _sfc_main$v = vue.defineComponent({
220
+ var _sfc_main$w = vue.defineComponent({
217
221
  __name: "datepicker",
218
222
  props: {
219
223
  type: {},
@@ -369,11 +373,7 @@
369
373
  }
370
374
  });
371
375
 
372
- var addLink = href => setTimeout(snail_view.link.register, 0, href);
373
-
374
- addLink("/styles/snail.vue.vue.css");
375
-
376
- var _sfc_main$u = vue.defineComponent({
376
+ var _sfc_main$v = vue.defineComponent({
377
377
  ...{
378
378
  name: "Footer",
379
379
  inheritAttrs: true
@@ -404,13 +404,13 @@
404
404
  class: vue.normalizeClass(["snail-footer", {
405
405
  "start-divider": __props.divider
406
406
  }, __props.align || "right"])
407
- }, [vue.renderSlot(_ctx.$slots, "default", {}, () => [__props.cancelDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
407
+ }, [vue.renderSlot(_ctx.$slots, "default", {}, () => [__props.cancelDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
408
408
  key: 0,
409
409
  size: "max",
410
410
  type: "default",
411
411
  onClick: _cache[0] || (_cache[0] = $event => emits("cancel")),
412
412
  textContent: vue.toDisplayString(__props.cancelName || "取消")
413
- }, null, 8, ["textContent"])) : vue.createCommentVNode("", true), __props.confirmDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
413
+ }, null, 8, ["textContent"])) : vue.createCommentVNode("", true), __props.confirmDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
414
414
  key: 1,
415
415
  size: "max",
416
416
  type: "primary",
@@ -422,7 +422,7 @@
422
422
  });
423
423
 
424
424
  const _hoisted_1$g = ["textContent"];
425
- var _sfc_main$t = vue.defineComponent({
425
+ var _sfc_main$u = vue.defineComponent({
426
426
  ...{
427
427
  name: "Header",
428
428
  inheritAttrs: true
@@ -461,7 +461,7 @@
461
461
  key: 0,
462
462
  textContent: vue.toDisplayString(__props.title),
463
463
  class: vue.normalizeClass(["header-title", __props.titleAlign])
464
- }, null, 10, _hoisted_1$g)) : vue.createCommentVNode("", true), vue.renderSlot(_ctx.$slots, "default"), __props.closeDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
464
+ }, null, 10, _hoisted_1$g)) : vue.createCommentVNode("", true), vue.renderSlot(_ctx.$slots, "default"), __props.closeDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
465
465
  key: 1,
466
466
  type: "close",
467
467
  size: 22,
@@ -479,12 +479,12 @@
479
479
  class: "required",
480
480
  textContent: "*"
481
481
  };
482
- const _hoisted_3$7 = {
482
+ const _hoisted_3$8 = {
483
483
  class: "input-body"
484
484
  };
485
- const _hoisted_4$5 = ["type", "value", "readonly", "placeholder", "title"];
486
- const _hoisted_5$3 = ["title"];
487
- var _sfc_main$s = vue.defineComponent({
485
+ const _hoisted_4$6 = ["type", "value", "readonly", "placeholder", "title"];
486
+ const _hoisted_5$4 = ["title"];
487
+ var _sfc_main$t = vue.defineComponent({
488
488
  ...{
489
489
  name: "Input",
490
490
  inheritAttrs: true
@@ -536,7 +536,7 @@
536
536
  }, [vue.createElementVNode("span", {
537
537
  class: "text",
538
538
  textContent: vue.toDisplayString(__props.title)
539
- }, null, 8, _hoisted_1$f), __props.readonly != true && __props.required == true ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$a)) : vue.createCommentVNode("", true)], 4)) : vue.createCommentVNode("", true), vue.createElementVNode("div", _hoisted_3$7, [vue.createElementVNode("input", {
539
+ }, null, 8, _hoisted_1$f), __props.readonly != true && __props.required == true ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$a)) : vue.createCommentVNode("", true)], 4)) : vue.createCommentVNode("", true), vue.createElementVNode("div", _hoisted_3$8, [vue.createElementVNode("input", {
540
540
  ref: "input-el",
541
541
  type: __props.type || "text",
542
542
  value: inputModel.value,
@@ -545,15 +545,15 @@
545
545
  title: inputModel.value,
546
546
  onChange: onValueChange,
547
547
  onClick: _cache[0] || (_cache[0] = $event => emits("click"))
548
- }, null, 40, _hoisted_4$5), !!validateRef.value ? (vue.openBlock(), vue.createElementBlock("span", {
548
+ }, null, 40, _hoisted_4$6), !!validateRef.value ? (vue.openBlock(), vue.createElementBlock("span", {
549
549
  key: 0,
550
550
  class: "validate",
551
551
  title: validateRef.value
552
- }, [vue.createVNode(_sfc_main$x, {
552
+ }, [vue.createVNode(_sfc_main$y, {
553
553
  type: "error",
554
554
  size: 16,
555
555
  color: "red"
556
- })], 8, _hoisted_5$3)) : vue.createCommentVNode("", true)])], 2);
556
+ })], 8, _hoisted_5$4)) : vue.createCommentVNode("", true)])], 2);
557
557
  };
558
558
  }
559
559
  });
@@ -763,15 +763,15 @@
763
763
  class: "number-prefix"
764
764
  };
765
765
  const _hoisted_2$9 = ["textContent"];
766
- const _hoisted_3$6 = ["inputmode", "placeholder", "title"];
767
- const _hoisted_4$4 = {
766
+ const _hoisted_3$7 = ["inputmode", "placeholder", "title"];
767
+ const _hoisted_4$5 = {
768
768
  key: 1,
769
769
  class: "number-suffix"
770
770
  };
771
- const _hoisted_5$2 = ["textContent"];
772
- const _hoisted_6$1 = ["title", "textContent"];
771
+ const _hoisted_5$3 = ["textContent"];
772
+ const _hoisted_6$2 = ["title", "textContent"];
773
773
  const _hoisted_7$1 = ["title", "textContent"];
774
- var _sfc_main$r = vue.defineComponent({
774
+ var _sfc_main$s = vue.defineComponent({
775
775
  __name: "number",
776
776
  props: vue.mergeModels({
777
777
  placeholder: {},
@@ -933,18 +933,18 @@
933
933
  onFocus: _cache[1] || (_cache[1] = $event => vue.isRef(needBackSection) ? needBackSection.value = true : needBackSection = true),
934
934
  onPaste: _cache[2] || (_cache[2] = $event => vue.isRef(needBackSection) ? needBackSection.value = false : needBackSection = false),
935
935
  onBlur: _cache[3] || (_cache[3] = $event => formatOnEnd(true))
936
- }, null, 40, _hoisted_3$6), [[vue.vModelText, displayValueRef.value]]), vue.unref(controls) == "default" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
936
+ }, null, 40, _hoisted_3$7), [[vue.vModelText, displayValueRef.value]]), vue.unref(controls) == "default" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
937
937
  key: 0
938
938
  }, [vue.createElementVNode("div", {
939
939
  class: "controls default subtract",
940
940
  onClick: _cache[4] || (_cache[4] = $event => onStepClick(false))
941
- }, [vue.createVNode(_sfc_main$x, {
941
+ }, [vue.createVNode(_sfc_main$y, {
942
942
  type: "subtract",
943
943
  size: 20
944
944
  })]), vue.createElementVNode("div", {
945
945
  class: "controls default plus",
946
946
  onClick: _cache[5] || (_cache[5] = $event => onStepClick(true))
947
- }, [vue.createVNode(_sfc_main$x, {
947
+ }, [vue.createVNode(_sfc_main$y, {
948
948
  type: "plus",
949
949
  size: 20
950
950
  })])], 64)) : vue.unref(controls) == "right" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
@@ -952,26 +952,26 @@
952
952
  }, [vue.createElementVNode("div", {
953
953
  class: "controls right plus",
954
954
  onClick: _cache[6] || (_cache[6] = $event => onStepClick(true))
955
- }, [vue.createVNode(_sfc_main$x, {
955
+ }, [vue.createVNode(_sfc_main$y, {
956
956
  type: "arrow",
957
957
  size: 20,
958
958
  rotate: 270
959
959
  })]), vue.createElementVNode("div", {
960
960
  class: "controls right subtract",
961
961
  onClick: _cache[7] || (_cache[7] = $event => onStepClick(false))
962
- }, [vue.createVNode(_sfc_main$x, {
962
+ }, [vue.createVNode(_sfc_main$y, {
963
963
  type: "arrow",
964
964
  size: 20,
965
965
  rotate: 90
966
- })])], 64)) : vue.createCommentVNode("", true)], 2), vue.unref(hasSuffix) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$4, [vue.createElementVNode("span", {
966
+ })])], 64)) : vue.createCommentVNode("", true)], 2), vue.unref(hasSuffix) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$5, [vue.createElementVNode("span", {
967
967
  class: "ellipsis",
968
968
  textContent: vue.toDisplayString(vue.unref(suffix))
969
- }, null, 8, _hoisted_5$2)])) : vue.createCommentVNode("", true), vue.unref(upper) ? (vue.openBlock(), vue.createElementBlock("div", {
969
+ }, null, 8, _hoisted_5$3)])) : vue.createCommentVNode("", true), vue.unref(upper) ? (vue.openBlock(), vue.createElementBlock("div", {
970
970
  key: 2,
971
971
  class: "number-util ellipsis",
972
972
  title: upperTextRef.value,
973
973
  textContent: vue.toDisplayString(`大写:${upperTextRef.value || ""}`)
974
- }, null, 8, _hoisted_6$1)) : vue.createCommentVNode("", true), vue.unref(thousands) == "below" ? (vue.openBlock(), vue.createElementBlock("div", {
974
+ }, null, 8, _hoisted_6$2)) : vue.createCommentVNode("", true), vue.unref(thousands) == "below" ? (vue.openBlock(), vue.createElementBlock("div", {
975
975
  key: 3,
976
976
  class: "number-util ellipsis",
977
977
  title: thousandsTextRef.value,
@@ -983,7 +983,7 @@
983
983
 
984
984
  const _hoisted_1$d = ["placeholder", "readonly"];
985
985
  const searchIon = "M 860.16 824.32 l -163.84 -163.84 c 102.4 -120.32 97.28 -302.08 -17.92 -414.72 c -120.32 -120.32 -314.88 -120.32 -435.2 0 c -120.32 120.32 -120.32 314.88 0 435.2 c 112.64 112.64 294.4 120.32 414.72 17.92 l 163.84 163.84 c 10.24 10.24 25.6 10.24 35.84 0 c 12.8 -12.8 12.8 -28.16 2.56 -38.4 Z M 281.6 642.56 C 181.76 542.72 181.76 381.44 281.6 281.6 c 99.84 -99.84 261.12 -99.84 360.96 0 c 99.84 99.84 99.84 261.12 0 360.96 c -99.84 102.4 -261.12 102.4 -360.96 0 Z";
986
- var _sfc_main$q = vue.defineComponent({
986
+ var _sfc_main$r = vue.defineComponent({
987
987
  ...{
988
988
  name: "Search",
989
989
  inheritAttrs: true
@@ -1030,7 +1030,7 @@
1030
1030
  onKeyup: _cache[1] || (_cache[1] = $event => onSearch($event))
1031
1031
  }, null, 40, _hoisted_1$d), [[vue.vModelText, textModel.value, void 0, {
1032
1032
  trim: true
1033
- }]]), vue.createElementVNode("div", null, [vue.createVNode(_sfc_main$x, {
1033
+ }]]), vue.createElementVNode("div", null, [vue.createVNode(_sfc_main$y, {
1034
1034
  class: "search-button",
1035
1035
  type: "custom",
1036
1036
  draw: searchIon,
@@ -1255,7 +1255,7 @@
1255
1255
  class: "snail-confirm flex-column"
1256
1256
  };
1257
1257
  const _hoisted_2$8 = ["innerHTML"];
1258
- var _sfc_main$p = vue.defineComponent({
1258
+ var _sfc_main$q = vue.defineComponent({
1259
1259
  ...{
1260
1260
  name: "ConfirmContainer",
1261
1261
  inheritAttrs: true
@@ -1283,14 +1283,14 @@
1283
1283
  },
1284
1284
  setup(__props) {
1285
1285
  return (_ctx, _cache) => {
1286
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$c, [vue.createVNode(_sfc_main$t, {
1286
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$c, [vue.createVNode(_sfc_main$u, {
1287
1287
  "use-to": "dialog",
1288
1288
  title: __props.title || "提示",
1289
1289
  onClose: _cache[0] || (_cache[0] = $event => __props.closePopup(false))
1290
1290
  }, null, 8, ["title"]), vue.createElementVNode("div", {
1291
1291
  class: "confirm-body",
1292
1292
  innerHTML: __props.message || "请确认?"
1293
- }, null, 8, _hoisted_2$8), vue.createVNode(_sfc_main$u, {
1293
+ }, null, 8, _hoisted_2$8), vue.createVNode(_sfc_main$v, {
1294
1294
  align: "right",
1295
1295
  "cancel-name": __props.cancelName,
1296
1296
  "cancel-disabled": __props.cancelDisabled,
@@ -1303,7 +1303,7 @@
1303
1303
  }
1304
1304
  });
1305
1305
 
1306
- var _sfc_main$o = vue.defineComponent({
1306
+ var _sfc_main$p = vue.defineComponent({
1307
1307
  ...{
1308
1308
  name: "Loading",
1309
1309
  inheritAttrs: true
@@ -1342,7 +1342,7 @@
1342
1342
  }
1343
1343
  });
1344
1344
 
1345
- var _sfc_main$n = vue.defineComponent({
1345
+ var _sfc_main$o = vue.defineComponent({
1346
1346
  ...{
1347
1347
  name: "Dynamic",
1348
1348
  inheritAttrs: false
@@ -1366,7 +1366,7 @@
1366
1366
  const loadingComponent = vue.defineComponent({
1367
1367
  inheritAttrs: false,
1368
1368
  components: {
1369
- Loading: _sfc_main$o
1369
+ Loading: _sfc_main$p
1370
1370
  },
1371
1371
  template: "<Loading :mask-disabled='true' />"
1372
1372
  });
@@ -1433,7 +1433,7 @@
1433
1433
  }
1434
1434
  });
1435
1435
 
1436
- var _sfc_main$m = vue.defineComponent({
1436
+ var _sfc_main$n = vue.defineComponent({
1437
1437
  ...{
1438
1438
  name: "DialogContainer",
1439
1439
  inheritAttrs: true
@@ -1478,7 +1478,7 @@
1478
1478
  onClick: _cache[1] || (_cache[1] = vue.withModifiers($event => {
1479
1479
  __props.options.closeOnMask && vue.unref(closePopup)();
1480
1480
  }, ["self"]))
1481
- }, [vue.createVNode(_sfc_main$n, vue.mergeProps({
1481
+ }, [vue.createVNode(_sfc_main$o, vue.mergeProps({
1482
1482
  class: "dialog-body",
1483
1483
  name: __props.options.name,
1484
1484
  component: __props.options.component,
@@ -1493,7 +1493,7 @@
1493
1493
  }
1494
1494
  });
1495
1495
 
1496
- var _sfc_main$l = vue.defineComponent({
1496
+ var _sfc_main$m = vue.defineComponent({
1497
1497
  ...{
1498
1498
  name: "FollowContainer",
1499
1499
  inheritAttrs: true
@@ -1614,7 +1614,7 @@
1614
1614
  });
1615
1615
  });
1616
1616
  return (_ctx, _cache) => {
1617
- return vue.openBlock(), vue.createBlock(_sfc_main$n, vue.mergeProps({
1617
+ return vue.openBlock(), vue.createBlock(_sfc_main$o, vue.mergeProps({
1618
1618
  class: ["snail-follow initial", [__props.popupStatus.value, __props.popupTransition.value]],
1619
1619
  style: {
1620
1620
  "z-index": __props.zIndex
@@ -1631,7 +1631,7 @@
1631
1631
  }
1632
1632
  });
1633
1633
 
1634
- var _sfc_main$k = vue.defineComponent({
1634
+ var _sfc_main$l = vue.defineComponent({
1635
1635
  ...{
1636
1636
  name: "PopupContainer",
1637
1637
  inheritAttrs: true
@@ -1651,7 +1651,7 @@
1651
1651
  model = vue.shallowRef(void 0)
1652
1652
  } = __props.options;
1653
1653
  return (_ctx, _cache) => {
1654
- return vue.openBlock(), vue.createBlock(_sfc_main$n, vue.mergeProps({
1654
+ return vue.openBlock(), vue.createBlock(_sfc_main$o, vue.mergeProps({
1655
1655
  class: ["snail-popup", [__props.popupStatus.value, __props.popupTransition.value]],
1656
1656
  style: {
1657
1657
  "z-index": __props.zIndex
@@ -1674,7 +1674,7 @@
1674
1674
  class: "icon"
1675
1675
  };
1676
1676
  const _hoisted_2$7 = ["innerHTML"];
1677
- var _sfc_main$j = vue.defineComponent({
1677
+ var _sfc_main$k = vue.defineComponent({
1678
1678
  ...{
1679
1679
  name: "ToastContainer",
1680
1680
  inheritAttrs: true
@@ -1712,7 +1712,7 @@
1712
1712
  }),
1713
1713
  onMouseenter: _cache[3] || (_cache[3] = $event => onMouseEvent(false)),
1714
1714
  onMouseleave: _cache[4] || (_cache[4] = $event => onMouseEvent(true))
1715
- }, [vue.unref(props).closeDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
1715
+ }, [vue.unref(props).closeDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
1716
1716
  key: 0,
1717
1717
  class: "close-icon",
1718
1718
  type: "close",
@@ -1723,7 +1723,7 @@
1723
1723
  onClick: _cache[2] || (_cache[2] = $event => {
1724
1724
  vue.unref(closePopup)();
1725
1725
  })
1726
- }, null, 8, ["fill"])) : vue.createCommentVNode("", true), vue.unref(props).type ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [vue.createVNode(_sfc_main$x, {
1726
+ }, null, 8, ["fill"])) : vue.createCommentVNode("", true), vue.unref(props).type ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [vue.createVNode(_sfc_main$y, {
1727
1727
  type: vue.unref(props).type,
1728
1728
  fill: "#707070",
1729
1729
  size: 20
@@ -1737,7 +1737,7 @@
1737
1737
 
1738
1738
  function usePopup() {
1739
1739
  function popup(options) {
1740
- const scope = checkOptions(options, checkPopup) || popupInCustomContainer(_sfc_main$k, options);
1740
+ const scope = checkOptions(options, checkPopup) || popupInCustomContainer(_sfc_main$l, options);
1741
1741
  return addScope2Scopes(scope);
1742
1742
  }
1743
1743
  function dialog(options) {
@@ -1770,7 +1770,7 @@
1770
1770
  },
1771
1771
  onBeforeClose: fn => hook.register("onBeforeClose", fn)
1772
1772
  });
1773
- const descriptor = openPopup(_sfc_main$m, options, extOptions);
1773
+ const descriptor = openPopup(_sfc_main$n, options, extOptions);
1774
1774
  scope = snail_core.useAsyncScope(deferred.promise);
1775
1775
  monitorDialog(descriptor, scope, deferred);
1776
1776
  }
@@ -1788,14 +1788,14 @@
1788
1788
  inPopup: "follow",
1789
1789
  target
1790
1790
  };
1791
- scope = checkOptions(options, checkFollow) || popupInCustomContainer(_sfc_main$l, options, extOptions);
1791
+ scope = checkOptions(options, checkFollow) || popupInCustomContainer(_sfc_main$m, options, extOptions);
1792
1792
  }
1793
1793
  return addScope2Scopes(scope);
1794
1794
  }
1795
1795
  function confirm(title, message, options) {
1796
1796
  options = options || Object.create(null);
1797
1797
  return dialog({
1798
- component: _sfc_main$p,
1798
+ component: _sfc_main$q,
1799
1799
  closeOnEscape: true,
1800
1800
  props: {
1801
1801
  ...options,
@@ -1805,7 +1805,7 @@
1805
1805
  });
1806
1806
  }
1807
1807
  function toast(type, message, options) {
1808
- return popupInCustomContainer(_sfc_main$j, {
1808
+ return popupInCustomContainer(_sfc_main$k, {
1809
1809
  url: "#ToastContainer",
1810
1810
  props: {
1811
1811
  ...(options || Object.create(null)),
@@ -1838,7 +1838,7 @@
1838
1838
  },
1839
1839
  ...extOptions
1840
1840
  });
1841
- const descriptor = openPopup(container || _sfc_main$k, options, extOptions);
1841
+ const descriptor = openPopup(container || _sfc_main$l, options, extOptions);
1842
1842
  const scope = snail_core.useAsyncScope(deferred.promise);
1843
1843
  scope.onDestroy(() => destroyPopup(descriptor, deferred));
1844
1844
  return scope;
@@ -1980,8 +1980,8 @@
1980
1980
  class: "snail-empty"
1981
1981
  };
1982
1982
  const _hoisted_2$6 = ["src"];
1983
- const _hoisted_3$5 = ["textContent"];
1984
- var _sfc_main$i = vue.defineComponent({
1983
+ const _hoisted_3$6 = ["textContent"];
1984
+ var _sfc_main$j = vue.defineComponent({
1985
1985
  ...{
1986
1986
  name: "Empty",
1987
1987
  inheritAttrs: true
@@ -1999,18 +1999,18 @@
1999
1999
  }, null, 8, _hoisted_2$6), vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createElementVNode("div", {
2000
2000
  class: "message",
2001
2001
  textContent: vue.toDisplayString(__props.message || "无数据")
2002
- }, null, 8, _hoisted_3$5)])]);
2002
+ }, null, 8, _hoisted_3$6)])]);
2003
2003
  };
2004
2004
  }
2005
2005
  });
2006
2006
 
2007
2007
  const _hoisted_1$9 = ["title"];
2008
2008
  const _hoisted_2$5 = ["textContent"];
2009
- const _hoisted_3$4 = {
2009
+ const _hoisted_3$5 = {
2010
2010
  key: 1,
2011
2011
  class: "select-status"
2012
2012
  };
2013
- var _sfc_main$h = vue.defineComponent({
2013
+ var _sfc_main$i = vue.defineComponent({
2014
2014
  ...{
2015
2015
  name: "SelectNode",
2016
2016
  inheritAttrs: true
@@ -2055,11 +2055,11 @@
2055
2055
  }, [vue.createElementVNode("div", {
2056
2056
  class: "item-text ellipsis",
2057
2057
  textContent: vue.toDisplayString(__props.item.text)
2058
- }, null, 8, _hoisted_2$5), __props.item.type == "group" ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
2058
+ }, null, 8, _hoisted_2$5), __props.item.type == "group" ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
2059
2059
  key: 0,
2060
2060
  type: "arrow",
2061
2061
  color: "#8a9099"
2062
- })) : __props.multiple == true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$4, [vue.createVNode(_sfc_main$x, {
2062
+ })) : __props.multiple == true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$5, [vue.createVNode(_sfc_main$y, {
2063
2063
  type: "success",
2064
2064
  color: "white",
2065
2065
  size: 12
@@ -2080,7 +2080,7 @@
2080
2080
  }
2081
2081
  });
2082
2082
 
2083
- var _sfc_main$g = vue.defineComponent({
2083
+ var _sfc_main$h = vue.defineComponent({
2084
2084
  ...{
2085
2085
  name: "Select2Popup",
2086
2086
  inheritAttrs: true
@@ -2252,13 +2252,13 @@
2252
2252
  key: 0
2253
2253
  }, [vue.createTextVNode(" 暂无选项 ")], 64)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
2254
2254
  key: 1
2255
- }, [__props.search ? (vue.openBlock(), vue.createBlock(_sfc_main$q, vue.mergeProps({
2255
+ }, [__props.search ? (vue.openBlock(), vue.createBlock(_sfc_main$r, vue.mergeProps({
2256
2256
  key: 0
2257
2257
  }, __props.search, {
2258
2258
  onSearch,
2259
2259
  key: "select-search"
2260
2260
  }), null, 16)) : vue.createCommentVNode("", true), (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(itemsRef.value, item => {
2261
- return vue.openBlock(), vue.createBlock(_sfc_main$h, {
2261
+ return vue.openBlock(), vue.createBlock(_sfc_main$i, {
2262
2262
  key: vue.unref(context).getKey(item),
2263
2263
  multiple: __props.multiple,
2264
2264
  item,
@@ -2267,7 +2267,7 @@
2267
2267
  onEnter: onEnterSelectNode,
2268
2268
  onClick: onClickSelectNode
2269
2269
  }, null, 8, ["multiple", "item", "context"]);
2270
- }), 128)), itemsRef.value.length == 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$i, {
2270
+ }), 128)), itemsRef.value.length == 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$j, {
2271
2271
  key: 1,
2272
2272
  message: "无结果"
2273
2273
  })) : vue.createCommentVNode("", true), showClearButtonRef.value ? (vue.openBlock(), vue.createElementBlock("div", {
@@ -2284,15 +2284,15 @@
2284
2284
  class: "select-result"
2285
2285
  };
2286
2286
  const _hoisted_2$4 = ["title", "textContent"];
2287
- const _hoisted_3$3 = ["textContent"];
2288
- const _hoisted_4$3 = {
2287
+ const _hoisted_3$4 = ["textContent"];
2288
+ const _hoisted_4$4 = {
2289
2289
  key: 1,
2290
2290
  class: "placeholder"
2291
2291
  };
2292
2292
  onAppCreated((app, type) => {
2293
- type == "popup" && app.component("SelectPopup", _sfc_main$g);
2293
+ type == "popup" && app.component("SelectPopup", _sfc_main$h);
2294
2294
  });
2295
- var _sfc_main$f = vue.defineComponent({
2295
+ var _sfc_main$g = vue.defineComponent({
2296
2296
  ...{
2297
2297
  name: "Select",
2298
2298
  inheritAttrs: true
@@ -2432,7 +2432,7 @@
2432
2432
  key: 1,
2433
2433
  class: "placeholder",
2434
2434
  textContent: vue.toDisplayString(__props.readonly ? "" : __props.placeholder || "请选择")
2435
- }, null, 8, _hoisted_3$3)), __props.readonly != true ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
2435
+ }, null, 8, _hoisted_3$4)), __props.readonly != true ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
2436
2436
  key: 2,
2437
2437
  type: "arrow",
2438
2438
  size: 24,
@@ -2440,12 +2440,12 @@
2440
2440
  style: {
2441
2441
  "transform": "rotate(90deg)"
2442
2442
  }
2443
- })) : vue.createCommentVNode("", true)], 64)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$3, "暂无可选项"))], 2);
2443
+ })) : vue.createCommentVNode("", true)], 64)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$4, "暂无可选项"))], 2);
2444
2444
  };
2445
2445
  }
2446
2446
  });
2447
2447
 
2448
- var _sfc_main$e = vue.defineComponent({
2448
+ var _sfc_main$f = vue.defineComponent({
2449
2449
  ...{
2450
2450
  name: "Switch",
2451
2451
  inheritAttrs: true
@@ -2495,7 +2495,7 @@
2495
2495
  });
2496
2496
 
2497
2497
  const _hoisted_1$7 = ["readonly", "placeholder", "rows"];
2498
- var _sfc_main$d = vue.defineComponent({
2498
+ var _sfc_main$e = vue.defineComponent({
2499
2499
  ...{
2500
2500
  name: "Textarea"
2501
2501
  },
@@ -2564,16 +2564,16 @@
2564
2564
  class: "fold-header"
2565
2565
  };
2566
2566
  const _hoisted_2$3 = ["textContent"];
2567
- const _hoisted_3$2 = ["textContent"];
2568
- const _hoisted_4$2 = {
2567
+ const _hoisted_3$3 = ["textContent"];
2568
+ const _hoisted_4$3 = {
2569
2569
  key: 1,
2570
2570
  class: "status"
2571
2571
  };
2572
- const _hoisted_5$1 = {
2572
+ const _hoisted_5$2 = {
2573
2573
  class: "fold-body",
2574
2574
  ref: "foldBody"
2575
2575
  };
2576
- var _sfc_main$c = vue.defineComponent({
2576
+ var _sfc_main$d = vue.defineComponent({
2577
2577
  ...{
2578
2578
  name: "Fold",
2579
2579
  inheritAttrs: true
@@ -2650,16 +2650,16 @@
2650
2650
  key: 0,
2651
2651
  class: "subtitle ellipsis",
2652
2652
  textContent: vue.toDisplayString(__props.subtitle)
2653
- }, null, 8, _hoisted_3$2)) : vue.createCommentVNode("", true), __props.disabled != true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$2, [vue.createVNode(_sfc_main$x, {
2653
+ }, null, 8, _hoisted_3$3)) : vue.createCommentVNode("", true), __props.disabled != true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$3, [vue.createVNode(_sfc_main$y, {
2654
2654
  type: "arrow",
2655
2655
  title: statusModel.value == "expand" ? "收起" : "展开",
2656
2656
  onClick: onStatusClick
2657
- }, null, 8, ["title"])])) : vue.createCommentVNode("", true)])]), vue.createElementVNode("div", _hoisted_5$1, [vue.renderSlot(_ctx.$slots, "default")], 512)], 2);
2657
+ }, null, 8, ["title"])])) : vue.createCommentVNode("", true)])]), vue.createElementVNode("div", _hoisted_5$2, [vue.renderSlot(_ctx.$slots, "default")], 512)], 2);
2658
2658
  };
2659
2659
  }
2660
2660
  });
2661
2661
 
2662
- var _sfc_main$b = vue.defineComponent({
2662
+ var _sfc_main$c = vue.defineComponent({
2663
2663
  ...{
2664
2664
  name: "Scroll",
2665
2665
  inheritAttrs: true
@@ -2672,11 +2672,7 @@
2672
2672
  scrollY: {
2673
2673
  type: Boolean
2674
2674
  },
2675
- barSize: {},
2676
- barMode: {},
2677
- debounce: {
2678
- type: Boolean
2679
- }
2675
+ barSize: {}
2680
2676
  },
2681
2677
  emits: ["xbar", "left", "right", "ybar", "top", "bottom"],
2682
2678
  setup(__props, _ref) {
@@ -2693,13 +2689,9 @@
2693
2689
  const {
2694
2690
  onInterval
2695
2691
  } = snail_core.useTimer();
2696
- const classRef = vue.computed(() => ({
2697
- "debounce": props.scrollY == true && props.debounce == true,
2698
- "hover-show": props.barMode == "hover"
2699
- }));
2700
2692
  const styleRef = vue.computed(() => {
2701
2693
  const style = Object.create(null);
2702
- (props.scrollX || props.scrollY) && (style["--scroll-overflow"] = `${props.scrollX ? "auto" : "hidden"} ${props.scrollY ? "auto" : "hidden"}`);
2694
+ (props.scrollX || props.scrollY) && (style["--scroll-overflow"] = `${props.scrollX == true ? "auto" : "hidden"} ${props.scrollY == true ? "auto" : "hidden"}`);
2703
2695
  if (props.barSize) {
2704
2696
  switch (props.barSize) {
2705
2697
  case "normal":
@@ -2773,15 +2765,9 @@
2773
2765
  events.top && emits("top");
2774
2766
  events.bottom && emits("bottom");
2775
2767
  if (rootDom.value) {
2776
- rootDom.value.classList.remove("x-bar", "y-bar", "left", "right", "top", "bottom");
2777
- const classes = [];
2778
- status.xbar && classes.push("x-bar");
2779
- status.ybar && classes.push("y-bar");
2780
- status.left && classes.push("left");
2781
- status.right && classes.push("right");
2782
- status.top && classes.push("top");
2783
- status.bottom && classes.push("bottom");
2784
- classes.length && rootDom.value.classList.add(...classes);
2768
+ rootDom.value.classList.remove("x-bar", "y-bar");
2769
+ status.xbar && rootDom.value.classList.add("x-bar");
2770
+ status.ybar && rootDom.value.classList.add("y-bar");
2785
2771
  }
2786
2772
  }
2787
2773
  vue.onMounted(() => {
@@ -2794,44 +2780,101 @@
2794
2780
  });
2795
2781
  return (_ctx, _cache) => {
2796
2782
  return vue.openBlock(), vue.createElementBlock("div", {
2797
- class: vue.normalizeClass(["snail-scroll", classRef.value]),
2783
+ class: "snail-scroll",
2798
2784
  ref: "scroll-root",
2799
2785
  style: vue.normalizeStyle(styleRef.value),
2800
2786
  onScroll: refreshScrollInfo
2801
- }, [vue.renderSlot(_ctx.$slots, "default")], 38);
2787
+ }, [vue.renderSlot(_ctx.$slots, "default")], 36);
2802
2788
  };
2803
2789
  }
2804
2790
  });
2805
2791
 
2806
- const _hoisted_1$5 = {
2807
- key: 0,
2808
- class: "layout-start"
2809
- };
2810
- const _hoisted_2$2 = {
2811
- key: 1,
2812
- class: "layout-end"
2813
- };
2814
- var _sfc_main$a = vue.defineComponent({
2792
+ var _sfc_main$b = vue.defineComponent({
2815
2793
  __name: "layout",
2816
2794
  props: {
2817
2795
  mode: {},
2818
- scroll: {}
2796
+ main: {},
2797
+ left: {},
2798
+ right: {},
2799
+ top: {},
2800
+ bottom: {}
2819
2801
  },
2820
2802
  setup(__props) {
2803
+ const props = __props;
2804
+ const areaMap = vue.computed(() => {
2805
+ const map = Object.create(null);
2806
+ map.main = {
2807
+ scrollable: props.main && props.main.scroll != void 0,
2808
+ class: "main-area",
2809
+ style: void 0
2810
+ };
2811
+ if (props.mode == "vertical") {
2812
+ map.top = {
2813
+ scrollable: props.top && props.top.scroll != void 0,
2814
+ class: "top-area",
2815
+ style: buildHeightStyle(props.top)
2816
+ };
2817
+ map.bottom = {
2818
+ scrollable: props.bottom && props.bottom.scroll != void 0,
2819
+ class: "bottom-area",
2820
+ style: buildHeightStyle(props.bottom)
2821
+ };
2822
+ } else {
2823
+ map.left = {
2824
+ scrollable: props.left && props.left.scroll != void 0,
2825
+ class: "left-area",
2826
+ style: buildWidthStyle(props.left)
2827
+ };
2828
+ map.right = {
2829
+ scrollable: props.right && props.right.scroll != void 0,
2830
+ class: "right-area",
2831
+ style: buildWidthStyle(props.right)
2832
+ };
2833
+ }
2834
+ return map;
2835
+ });
2836
+ function buildWidthStyle(style) {
2837
+ return style ? snail_view.css.buildStyle({
2838
+ minWidth: style.minWidth,
2839
+ width: style.width,
2840
+ maxWidth: style.maxWidth
2841
+ }) : void 0;
2842
+ }
2843
+ function buildHeightStyle(style) {
2844
+ return style ? snail_view.css.buildStyle({
2845
+ minHeight: style.minHeight,
2846
+ height: style.height,
2847
+ maxHeight: style.maxHeight
2848
+ }) : void 0;
2849
+ }
2821
2850
  return (_ctx, _cache) => {
2822
2851
  return vue.openBlock(), vue.createElementBlock("div", {
2823
2852
  class: vue.normalizeClass(["snail-layout", __props.mode])
2824
- }, [_ctx.$slots.start ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [vue.renderSlot(_ctx.$slots, "start")])) : vue.createCommentVNode("", true), vue.createVNode(_sfc_main$b, vue.mergeProps({
2825
- class: "layout-body"
2826
- }, __props.scroll), {
2827
- default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default")]),
2828
- _: 3
2829
- }, 16), _ctx.$slots.end ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$2, [vue.renderSlot(_ctx.$slots, "end")])) : vue.createCommentVNode("", true)], 2);
2853
+ }, [(vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(["top", "left", "main", "right", "bottom"], item => {
2854
+ return vue.openBlock(), vue.createElementBlock(vue.Fragment, {
2855
+ key: item
2856
+ }, [areaMap.value[item] && _ctx.$slots[item] ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
2857
+ key: 0
2858
+ }, [areaMap.value[item].scrollable ? (vue.openBlock(), vue.createBlock(_sfc_main$c, vue.mergeProps({
2859
+ key: 0,
2860
+ class: areaMap.value[item].class,
2861
+ style: areaMap.value[item].style
2862
+ }, {
2863
+ ref_for: true
2864
+ }, props[item].scroll), {
2865
+ default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, item)]),
2866
+ _: 2
2867
+ }, 1040, ["class", "style"])) : (vue.openBlock(), vue.createElementBlock("div", {
2868
+ key: 1,
2869
+ class: vue.normalizeClass(areaMap.value[item].class),
2870
+ style: vue.normalizeStyle(areaMap.value[item].style)
2871
+ }, [vue.renderSlot(_ctx.$slots, item)], 6))], 64)) : vue.createCommentVNode("", true)], 64);
2872
+ }), 64))], 2);
2830
2873
  };
2831
2874
  }
2832
2875
  });
2833
2876
 
2834
- var _sfc_main$9 = vue.defineComponent({
2877
+ var _sfc_main$a = vue.defineComponent({
2835
2878
  ...{
2836
2879
  name: "Sort",
2837
2880
  inheritAttrs: true
@@ -2932,10 +2975,10 @@
2932
2975
  }
2933
2976
  });
2934
2977
 
2935
- const _hoisted_1$4 = {
2978
+ const _hoisted_1$5 = {
2936
2979
  class: "table-body"
2937
2980
  };
2938
- var _sfc_main$8 = vue.defineComponent({
2981
+ var _sfc_main$9 = vue.defineComponent({
2939
2982
  ...{
2940
2983
  name: "Table",
2941
2984
  inheritAttrs: true
@@ -2949,10 +2992,6 @@
2949
2992
  type: Boolean
2950
2993
  },
2951
2994
  barSize: {},
2952
- barMode: {},
2953
- debounce: {
2954
- type: Boolean
2955
- },
2956
2995
  border: {
2957
2996
  type: Boolean
2958
2997
  },
@@ -2964,7 +3003,7 @@
2964
3003
  const hStyleRef = vue.computed(() => snail_view.css.buildStyle(props.headerStyle));
2965
3004
  const fStyleRef = vue.computed(() => snail_view.css.buildStyle(props.footerStyle));
2966
3005
  return (_ctx, _cache) => {
2967
- return vue.openBlock(), vue.createBlock(_sfc_main$b, {
3006
+ return vue.openBlock(), vue.createBlock(_sfc_main$c, {
2968
3007
  class: vue.normalizeClass(["snail-table", {
2969
3008
  "start-border": __props.border == true
2970
3009
  }]),
@@ -2974,7 +3013,7 @@
2974
3013
  default: vue.withCtx(() => [vue.createElementVNode("div", {
2975
3014
  class: "table-header",
2976
3015
  style: vue.normalizeStyle(hStyleRef.value)
2977
- }, [vue.renderSlot(_ctx.$slots, "header")], 4), vue.createElementVNode("div", _hoisted_1$4, [vue.renderSlot(_ctx.$slots, "default")]), vue.createElementVNode("div", {
3016
+ }, [vue.renderSlot(_ctx.$slots, "header")], 4), vue.createElementVNode("div", _hoisted_1$5, [vue.renderSlot(_ctx.$slots, "default")]), vue.createElementVNode("div", {
2978
3017
  class: "table-footer",
2979
3018
  style: vue.normalizeStyle(fStyleRef.value)
2980
3019
  }, [vue.renderSlot(_ctx.$slots, "footer")], 4)]),
@@ -2984,7 +3023,7 @@
2984
3023
  }
2985
3024
  });
2986
3025
 
2987
- var _sfc_main$7 = vue.defineComponent({
3026
+ var _sfc_main$8 = vue.defineComponent({
2988
3027
  ...{
2989
3028
  name: "TableRow",
2990
3029
  inheritAttrs: true
@@ -3007,7 +3046,7 @@
3007
3046
  }
3008
3047
  });
3009
3048
 
3010
- var _sfc_main$6 = vue.defineComponent({
3049
+ var _sfc_main$7 = vue.defineComponent({
3011
3050
  ...{
3012
3051
  name: "TableCol",
3013
3052
  inheritAttrs: true
@@ -3053,7 +3092,7 @@
3053
3092
  }
3054
3093
  });
3055
3094
 
3056
- var _sfc_main$5 = vue.defineComponent({
3095
+ var _sfc_main$6 = vue.defineComponent({
3057
3096
  __name: "transitions",
3058
3097
  props: {
3059
3098
  group: {
@@ -3093,20 +3132,20 @@
3093
3132
  }
3094
3133
  });
3095
3134
 
3096
- const _hoisted_1$3 = {
3135
+ const _hoisted_1$4 = {
3097
3136
  key: 0,
3098
3137
  class: "node-fold"
3099
3138
  };
3100
- const _hoisted_2$1 = ["title", "textContent"];
3101
- const _hoisted_3$1 = {
3139
+ const _hoisted_2$2 = ["title", "textContent"];
3140
+ const _hoisted_3$2 = {
3102
3141
  class: "node-slot ellipsis"
3103
3142
  };
3104
- const _hoisted_4$1 = {
3143
+ const _hoisted_4$2 = {
3105
3144
  key: 1,
3106
3145
  class: "snail-tree-children hidden",
3107
3146
  ref: "children"
3108
3147
  };
3109
- var _sfc_main$4 = vue.defineComponent({
3148
+ var _sfc_main$5 = vue.defineComponent({
3110
3149
  ...{
3111
3150
  name: "TreeNode",
3112
3151
  inheritAttrs: true
@@ -3224,7 +3263,7 @@
3224
3263
  key: 1
3225
3264
  }, [_cache[4] || (_cache[4] = vue.createElementVNode("div", {
3226
3265
  class: "indent"
3227
- }, null, -1)), __props.options.foldDisabled != true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [showChildrenRef.value ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
3266
+ }, null, -1)), __props.options.foldDisabled != true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [showChildrenRef.value ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
3228
3267
  key: 0,
3229
3268
  class: vue.normalizeClass(statusRef.value),
3230
3269
  type: "custom",
@@ -3236,7 +3275,7 @@
3236
3275
  class: "node-text ellipsis",
3237
3276
  title: __props.node.text,
3238
3277
  textContent: vue.toDisplayString(__props.node.text)
3239
- }, 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(__props.node.children, child => {
3278
+ }, null, 8, _hoisted_2$2), vue.createElementVNode("div", _hoisted_3$2, [vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.guardReactiveProps(vue.unref(slotOptions))))])], 64))], 34)) : vue.createCommentVNode("", true), showRef.value && showChildrenRef.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$2, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.node.children, child => {
3240
3279
  return vue.openBlock(), vue.createBlock(_component_TreeNode, {
3241
3280
  key: __props.context.getKey(child),
3242
3281
  node: child,
@@ -3256,10 +3295,10 @@
3256
3295
  }
3257
3296
  });
3258
3297
 
3259
- const _hoisted_1$2 = {
3298
+ const _hoisted_1$3 = {
3260
3299
  class: "snail-tree"
3261
3300
  };
3262
- var _sfc_main$3 = vue.defineComponent({
3301
+ var _sfc_main$4 = vue.defineComponent({
3263
3302
  ...{
3264
3303
  name: "Tree",
3265
3304
  inheritAttrs: true
@@ -3293,15 +3332,15 @@
3293
3332
  emits("click", node, parents);
3294
3333
  }
3295
3334
  return (_ctx, _cache) => {
3296
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$2, [__props.search ? (vue.openBlock(), vue.createBlock(_sfc_main$q, vue.mergeProps({
3335
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [__props.search ? (vue.openBlock(), vue.createBlock(_sfc_main$r, vue.mergeProps({
3297
3336
  key: 0
3298
3337
  }, __props.search, {
3299
3338
  onSearch
3300
- }), null, 16)) : vue.createCommentVNode("", true), vue.createVNode(_sfc_main$b, {
3339
+ }), null, 16)) : vue.createCommentVNode("", true), vue.createVNode(_sfc_main$c, {
3301
3340
  "scroll-y": true
3302
3341
  }, {
3303
3342
  default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.nodes || [], node => {
3304
- return vue.openBlock(), vue.createBlock(_sfc_main$4, {
3343
+ return vue.openBlock(), vue.createBlock(_sfc_main$5, {
3305
3344
  key: vue.unref(context).getKey(node),
3306
3345
  node,
3307
3346
  parent: void 0,
@@ -3322,7 +3361,7 @@
3322
3361
  }
3323
3362
  });
3324
3363
 
3325
- var _sfc_main$2 = vue.defineComponent({
3364
+ var _sfc_main$3 = vue.defineComponent({
3326
3365
  __name: "wrapper",
3327
3366
  props: {
3328
3367
  readonly: {
@@ -3344,14 +3383,14 @@
3344
3383
  return (_ctx, _cache) => {
3345
3384
  return vue.openBlock(), vue.createElementBlock("div", {
3346
3385
  class: vue.normalizeClass(["snail-wrapper", __props.inPopup ? "in-popup" : "in-normal"])
3347
- }, [__props.header && __props.header.disabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$t, vue.mergeProps({
3386
+ }, [__props.header && __props.header.disabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$u, vue.mergeProps({
3348
3387
  key: 0
3349
3388
  }, __props.header || {
3350
3389
  useTo: "dialog",
3351
3390
  title: "对话框"
3352
3391
  }, {
3353
3392
  onClose: _cache[0] || (_cache[0] = $event => emits("cancel"))
3354
- }), null, 16)) : vue.createCommentVNode("", true), vue.createVNode(_sfc_main$b, vue.mergeProps({
3393
+ }), null, 16)) : vue.createCommentVNode("", true), vue.createVNode(_sfc_main$c, vue.mergeProps({
3355
3394
  class: "wrapper-body"
3356
3395
  }, __props.content || {
3357
3396
  scrollX: false,
@@ -3359,7 +3398,7 @@
3359
3398
  }), {
3360
3399
  default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default")]),
3361
3400
  _: 3
3362
- }, 16), __props.footer && __props.readonly != true && __props.footer.disabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$u, vue.mergeProps({
3401
+ }, 16), __props.footer && __props.readonly != true && __props.footer.disabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$v, vue.mergeProps({
3363
3402
  key: 1
3364
3403
  }, __props.footer || {}, {
3365
3404
  onCancel: _cache[1] || (_cache[1] = $event => emits("cancel")),
@@ -3373,7 +3412,7 @@
3373
3412
  snail_core.mustObject(options, "options");
3374
3413
  target instanceof HTMLElement || snail_core.throwError("target must be a HTMLElement");
3375
3414
  target.classList.add("snail-app");
3376
- const app = vue.createApp(_sfc_main$n, options);
3415
+ const app = vue.createApp(_sfc_main$o, options);
3377
3416
  triggerAppCreated(app);
3378
3417
  app.mount(target);
3379
3418
  const scope = snail_core.useScope().onDestroy(() => app.unmount());
@@ -3381,42 +3420,182 @@
3381
3420
  return scope;
3382
3421
  }
3383
3422
 
3384
- const _hoisted_1$1 = {
3385
- class: "time-zone"
3386
- };
3387
- const _hoisted_2 = {
3423
+ function initStepByFormat(format) {
3424
+ switch (format) {
3425
+ case "yyyy":
3426
+ return "year";
3427
+ case "yyyy-MM":
3428
+ return "month";
3429
+ default:
3430
+ return "day";
3431
+ }
3432
+ }
3433
+ function electDateValue(min, max) {
3434
+ return snail_core.getDateValue(new Date());
3435
+ }
3436
+ function buildYearItems(year, min, max) {
3437
+ year = year - 10;
3438
+ const items = new Array(18);
3439
+ for (var index = 0; index < items.length; index++) {
3440
+ year += 1;
3441
+ items[index] = Object.freeze({
3442
+ year,
3443
+ disabled: min && min.year != void 0 && year < min.year || max && max.year != void 0 && year > max.year
3444
+ });
3445
+ }
3446
+ return items;
3447
+ }
3448
+ function buildMonthItems(yearItem, min, max) {
3449
+ const minDate = new Date(snail_core.formatDateValue(min, "yyyy-MM"));
3450
+ const maxDate = new Date(snail_core.formatDateValue(max, "yyyy-MM"));
3451
+ const items = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"];
3452
+ return items.map((item, index) => {
3453
+ const mi = {
3454
+ text: item,
3455
+ month: index + 1,
3456
+ year: yearItem.year,
3457
+ disabled: yearItem.disabled
3458
+ };
3459
+ if (mi.disabled != true) {
3460
+ const date = new Date(snail_core.formatDateValue(mi, "yyyy-MM"));
3461
+ mi.disabled = minDate != void 0 && date < minDate || maxDate != void 0 && date > maxDate;
3462
+ }
3463
+ return Object.freeze(mi);
3464
+ });
3465
+ }
3466
+ function buildDayItems(monthItem, min, max) {
3467
+ const minDate = new Date(snail_core.formatDateValue(min, "yyyy-MM-dd"));
3468
+ const maxDate = new Date(snail_core.formatDateValue(max, "yyyy-MM-dd"));
3469
+ const date = new Date(monthItem.year, monthItem.month - 1);
3470
+ date.setDate(date.getDate() - (date.getDay() || 7) - 1);
3471
+ const items = new Array(42);
3472
+ for (var index = 0; index < items.length; index++) {
3473
+ date.setDate(date.getDate() + 1);
3474
+ const item = {
3475
+ day: date.getDate(),
3476
+ month: date.getMonth() + 1,
3477
+ year: date.getFullYear(),
3478
+ disabled: monthItem.disabled
3479
+ };
3480
+ if (item.disabled != true) {
3481
+ const date2 = new Date(snail_core.formatDateValue(item, "yyyy-MM-dd"));
3482
+ item.disabled = minDate != void 0 && date2 < minDate || maxDate != void 0 && date2 > maxDate;
3483
+ }
3484
+ items[index] = Object.freeze(item);
3485
+ }
3486
+ return items;
3487
+ }
3488
+ function buildHourItems(min, max) {
3489
+ const items = new Array(24);
3490
+ for (var index = 0; index < items.length; index++) {
3491
+ items[index] = Object.freeze({
3492
+ hour: index,
3493
+ disabled: min && min.hour != void 0 && index < min.hour || max && max.hour != void 0 && index > max.hour
3494
+ });
3495
+ }
3496
+ return items;
3497
+ }
3498
+ function buildMinuteItems(hourItem, min, max) {
3499
+ const items = new Array(60);
3500
+ const minNumber = min && min.minute != void 0 ? getTimeNumber(min.hour, min.minute, 0) : void 0;
3501
+ const maxNumber = max && max.minute != void 0 ? getTimeNumber(max.hour, max.minute, 0) : void 0;
3502
+ for (let index = 0; index < items.length; index++) {
3503
+ const item = {
3504
+ minute: index,
3505
+ hour: hourItem.hour,
3506
+ disabled: hourItem.disabled
3507
+ };
3508
+ if (item.disabled != true) {
3509
+ const number = getTimeNumber(item.hour, item.minute, 0);
3510
+ item.disabled = minNumber != void 0 && number < minNumber || maxNumber != void 0 && number > maxNumber;
3511
+ }
3512
+ items[index] = Object.freeze(item);
3513
+ }
3514
+ return items;
3515
+ }
3516
+ function buildSecondItems(minuteItem, min, max) {
3517
+ const items = new Array(60);
3518
+ const minNumber = min && min.minute != void 0 ? getTimeNumber(min.hour, min.minute, min.second) : void 0;
3519
+ const maxNumber = max && max.minute != void 0 ? getTimeNumber(max.hour, max.minute, max.second) : void 0;
3520
+ for (let index = 0; index < items.length; index++) {
3521
+ const item = {
3522
+ second: index,
3523
+ minute: minuteItem.minute,
3524
+ hour: minuteItem.hour,
3525
+ disabled: minuteItem.disabled
3526
+ };
3527
+ if (item.disabled != true) {
3528
+ const number = getTimeNumber(item.hour, item.minute, item.second);
3529
+ item.disabled = minNumber != void 0 && number < minNumber || maxNumber != void 0 && number > maxNumber;
3530
+ }
3531
+ items[index] = Object.freeze(item);
3532
+ }
3533
+ return items;
3534
+ }
3535
+ function getTimeNumber(hour, minute, second) {
3536
+ return (hour || 0) * 1e4 + (minute || 0) * 100 + (second || 0);
3537
+ }
3538
+ function isValidTime(format, time, min, max) {
3539
+ time = snail_core.correctTimeValue(time);
3540
+ if (time) {
3541
+ min = snail_core.correctTimeValue({
3542
+ ...min
3543
+ });
3544
+ const timeNumber = getTimeNumber(time.hour, time.minute, format == "HH:mm" ? 0 : time.second);
3545
+ if (min != void 0) {
3546
+ const minNumber = getTimeNumber(min.hour, min.minute, format == "HH:mm" ? 0 : max.second);
3547
+ if (timeNumber < minNumber) {
3548
+ return false;
3549
+ }
3550
+ }
3551
+ max = snail_core.correctTimeValue({
3552
+ ...max
3553
+ });
3554
+ if (max != void 0) {
3555
+ const maxNumber = getTimeNumber(max.hour, max.minute, format == "HH:mm" ? 0 : max.second);
3556
+ if (timeNumber > maxNumber) {
3557
+ return false;
3558
+ }
3559
+ }
3560
+ return true;
3561
+ }
3562
+ return false;
3563
+ }
3564
+
3565
+ const _hoisted_1$2 = {
3388
3566
  class: "tz-item",
3389
3567
  ref: "hour-items"
3390
3568
  };
3391
- const _hoisted_3 = ["textContent", "onClick"];
3392
- const _hoisted_4 = {
3569
+ const _hoisted_2$1 = ["textContent", "onClick"];
3570
+ const _hoisted_3$1 = {
3393
3571
  class: "tz-item",
3394
3572
  ref: "minute-items"
3395
3573
  };
3396
- const _hoisted_5 = ["textContent", "onClick"];
3397
- const _hoisted_6 = {
3574
+ const _hoisted_4$1 = ["textContent", "onClick"];
3575
+ const _hoisted_5$1 = {
3398
3576
  key: 0,
3399
3577
  class: "tz-item",
3400
3578
  ref: "second-items"
3401
3579
  };
3402
- const _hoisted_7 = ["textContent", "onClick"];
3403
- const _hoisted_8 = {
3404
- class: "time-operation"
3405
- };
3406
- var _sfc_main$1 = vue.defineComponent({
3580
+ const _hoisted_6$1 = ["textContent", "onClick"];
3581
+ var _sfc_main$2 = vue.defineComponent({
3407
3582
  __name: "time-pc",
3408
3583
  props: {
3409
3584
  value: {},
3410
- initialDisabled: {
3585
+ format: {},
3586
+ min: {},
3587
+ max: {},
3588
+ toolbarDisabled: {
3411
3589
  type: Boolean
3412
3590
  },
3413
3591
  nowDisabled: {
3414
3592
  type: Boolean
3415
3593
  },
3416
- manager: {},
3417
- format: {},
3418
- min: {},
3419
- max: {},
3594
+ clearDisabled: {
3595
+ type: Boolean
3596
+ },
3597
+ popup: {},
3598
+ picker: {},
3420
3599
  inPopup: {},
3421
3600
  closePopup: {
3422
3601
  type: Function
@@ -3434,198 +3613,543 @@
3434
3613
  } = _ref;
3435
3614
  const props = __props;
3436
3615
  const emits = __emit;
3437
- const tm = props.manager || snail_core.useTime({
3438
- format: props.format == "HH:mm" ? "HH:mm" : "HH:mm:ss",
3439
- min: snail_core.parseTime(props.min),
3440
- max: snail_core.parseTime(props.max)
3441
- });
3442
- const {
3443
- toast
3444
- } = usePopup();
3445
- const {
3446
- inPopup,
3447
- closePopup
3448
- } = props;
3449
- const secondDisabled = tm.format == "HH:mm";
3450
- const tvRef = vue.ref();
3616
+ const format = props.format == "HH:mm" ? "HH:mm" : "HH:mm:ss";
3617
+ const min = snail_core.parseTimeValue(props.min);
3618
+ const max = snail_core.parseTimeValue(props.max);
3619
+ const timeRef = vue.ref(snail_core.parseTimeValue(props.value) || snail_core.getTimeValue(new Date()));
3620
+ const isValidTimeRef = vue.computed(() => format == "HH:mm" ? minuteItems.value && minuteItems.value[timeRef.value.minute].disabled != true : secondItems.value && secondItems.value[timeRef.value.second].disabled != true);
3621
+ const hourItems = vue.shallowRef(buildHourItems(min, max));
3622
+ const minuteItems = vue.shallowRef();
3623
+ const secondItems = vue.shallowRef();
3451
3624
  const hItemsDom = vue.useTemplateRef("hour-items");
3452
3625
  const mItemsDom = vue.useTemplateRef("minute-items");
3453
3626
  const sItemsDom = vue.useTemplateRef("second-items");
3454
- function getTimeClass(type, value) {
3455
- switch (type) {
3456
- case "hour":
3457
- return {
3458
- active: tvRef.value.hour == value,
3459
- disabled: tm.validateHH(value) == false
3460
- };
3461
- case "minute":
3462
- return {
3463
- active: tvRef.value.minute == value,
3464
- disabled: tm.validateHHmm(tvRef.value.hour, value) == false
3465
- };
3466
- case "second":
3467
- return {
3468
- active: tvRef.value.second == value,
3469
- disabled: tm.validateHHmmss(tvRef.value.hour, tvRef.value.minute, value) == false
3470
- };
3471
- }
3627
+ async function rebuildItems(time) {
3628
+ time != void 0 && (timeRef.value = time);
3629
+ minuteItems.value = buildMinuteItems(hourItems.value[timeRef.value.hour], min, max);
3630
+ secondItems.value = buildSecondItems(minuteItems.value[timeRef.value.minute], min, max);
3631
+ await vue.nextTick();
3632
+ scrollIntoView(hItemsDom.value);
3633
+ scrollIntoView(mItemsDom.value);
3634
+ scrollIntoView(sItemsDom.value);
3472
3635
  }
3473
3636
  function scrollIntoView(items) {
3474
- let activeIndex = void 0,
3475
- firstValidIndex;
3637
+ let activeIndex = void 0;
3476
3638
  for (var index = 0; index < (items ? items.children.length : 0); index++) {
3477
3639
  const ele = items.children[index];
3478
- if (ele.classList.contains("disabled") == true) {
3479
- continue;
3480
- }
3481
- if (firstValidIndex == void 0) {
3482
- firstValidIndex = index;
3483
- }
3484
3640
  if (ele.classList.contains("active") == true) {
3485
3641
  activeIndex = index;
3486
3642
  break;
3487
3643
  }
3488
3644
  }
3489
- let showIndex = activeIndex;
3490
- if (activeIndex == void 0) {
3491
- if (firstValidIndex != void 0) {
3492
- showIndex = firstValidIndex;
3493
- }
3494
- }
3495
- showIndex != void 0 && items.children[showIndex].scrollIntoView({
3645
+ activeIndex != void 0 && items.children[activeIndex].scrollIntoView({
3496
3646
  behavior: "smooth",
3497
3647
  block: "center"
3498
3648
  });
3499
3649
  }
3500
- async function onTimeClick(type, value) {
3501
- switch (type) {
3502
- case "hour":
3503
- if (tm.validateHH(value)) {
3504
- tvRef.value.hour = value;
3505
- await vue.nextTick();
3506
- scrollIntoView(mItemsDom.value);
3650
+ function onHourClick(item) {
3651
+ if (item.disabled != true && timeRef.value.hour != item.hour) {
3652
+ timeRef.value.hour = item.hour;
3653
+ minuteItems.value = buildMinuteItems(item, min, max);
3654
+ secondItems.value = buildSecondItems(minuteItems.value[timeRef.value.minute], min, max);
3655
+ }
3656
+ }
3657
+ function onMinuteClick(item) {
3658
+ if (item.disabled != true) {
3659
+ if (format == "HH:mm") {
3660
+ const value = snail_core.formatTimeValue(item, "HH:mm");
3661
+ emits("confirm", value);
3662
+ props.inPopup && props.closePopup(value);
3663
+ } else if (timeRef.value.minute != item.minute) {
3664
+ timeRef.value.minute = item.minute;
3665
+ secondItems.value = buildSecondItems(item, min, max);
3666
+ }
3667
+ }
3668
+ }
3669
+ function onSecondClick(item) {
3670
+ if (item.disabled != true) {
3671
+ timeRef.value.second = item.second;
3672
+ onConfirm();
3673
+ }
3674
+ }
3675
+ function onConfirm() {
3676
+ if (isValidTimeRef.value == true) {
3677
+ const value = snail_core.formatTimeValue(timeRef.value, format);
3678
+ emits("confirm", value);
3679
+ props.inPopup && props.closePopup(value);
3680
+ }
3681
+ }
3682
+ vue.onMounted(rebuildItems);
3683
+ return (_ctx, _cache) => {
3684
+ return vue.openBlock(), vue.createBlock(_sfc_main$b, {
3685
+ class: vue.normalizeClass(["time-picker pc", {
3686
+ "second-disabled": vue.unref(format) != "HH:mm:ss"
3687
+ }]),
3688
+ mode: "vertical"
3689
+ }, vue.createSlots({
3690
+ main: vue.withCtx(() => [vue.createVNode(_sfc_main$6, {
3691
+ group: true,
3692
+ effect: "down-up"
3693
+ }, {
3694
+ default: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_1$2, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(hourItems.value, item => {
3695
+ return vue.openBlock(), vue.createElementBlock("div", {
3696
+ class: vue.normalizeClass(["tzi-number", {
3697
+ active: item.hour == timeRef.value.hour,
3698
+ disabled: item.disabled
3699
+ }]),
3700
+ key: item.hour,
3701
+ textContent: vue.toDisplayString(vue.unref(snail_core.padStart)(item.hour, 2, "0")),
3702
+ onClick: $event => onHourClick(item)
3703
+ }, null, 10, _hoisted_2$1);
3704
+ }), 128))], 512), vue.createElementVNode("div", _hoisted_3$1, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(minuteItems.value, item => {
3705
+ return vue.openBlock(), vue.createElementBlock("div", {
3706
+ class: vue.normalizeClass(["tzi-number", {
3707
+ active: item.minute == timeRef.value.minute,
3708
+ disabled: item.disabled
3709
+ }]),
3710
+ key: `${item.hour}:${item.minute}`,
3711
+ textContent: vue.toDisplayString(vue.unref(snail_core.padStart)(item.minute, 2, "0")),
3712
+ onClick: $event => onMinuteClick(item)
3713
+ }, null, 10, _hoisted_4$1);
3714
+ }), 128))], 512), vue.unref(format) == "HH:mm:ss" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$1, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(secondItems.value, item => {
3715
+ return vue.openBlock(), vue.createElementBlock("div", {
3716
+ class: vue.normalizeClass(["tzi-number", {
3717
+ active: item.second == timeRef.value.second,
3718
+ disabled: item.disabled
3719
+ }]),
3720
+ key: `${item.hour}:${item.minute}:${item.second}`,
3721
+ textContent: vue.toDisplayString(vue.unref(snail_core.padStart)(item.second, 2, "0")),
3722
+ onClick: $event => onSecondClick(item)
3723
+ }, null, 10, _hoisted_6$1);
3724
+ }), 128))], 512)) : vue.createCommentVNode("", true)]),
3725
+ _: 1
3726
+ })]),
3727
+ _: 2
3728
+ }, [__props.toolbarDisabled != true ? {
3729
+ name: "bottom",
3730
+ fn: vue.withCtx(() => [__props.clearDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
3731
+ key: 0,
3732
+ type: "link",
3733
+ size: "small",
3734
+ textContent: "清空",
3735
+ onClick: _cache[0] || (_cache[0] = $event => (emits("clear"), __props.inPopup && __props.closePopup("")))
3736
+ })) : vue.createCommentVNode("", true), __props.nowDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
3737
+ key: 1,
3738
+ type: "link",
3739
+ size: "small",
3740
+ textContent: "现在",
3741
+ onClick: _cache[1] || (_cache[1] = $event => rebuildItems(vue.unref(snail_core.getTimeValue)(new Date())))
3742
+ })) : vue.createCommentVNode("", true), vue.createVNode(_sfc_main$z, {
3743
+ type: "link",
3744
+ size: "small",
3745
+ textContent: "确定",
3746
+ class: vue.normalizeClass({
3747
+ disabled: isValidTimeRef.value != true
3748
+ }),
3749
+ onClick: onConfirm
3750
+ }, null, 8, ["class"])]),
3751
+ key: "0"
3752
+ } : void 0]), 1032, ["class"]);
3753
+ };
3754
+ }
3755
+ });
3756
+
3757
+ const _hoisted_1$1 = ["textContent"];
3758
+ const _hoisted_2 = ["textContent"];
3759
+ const _hoisted_3 = ["textContent"];
3760
+ const _hoisted_4 = ["textContent", "onClick"];
3761
+ const _hoisted_5 = ["textContent", "onClick"];
3762
+ const _hoisted_6 = ["textContent"];
3763
+ const _hoisted_7 = ["textContent", "onClick"];
3764
+ const _hoisted_8 = ["textContent"];
3765
+ var _sfc_main$1 = vue.defineComponent({
3766
+ __name: "date-pc",
3767
+ props: {
3768
+ value: {},
3769
+ format: {},
3770
+ min: {},
3771
+ max: {},
3772
+ minPickTime: {},
3773
+ maxPickTime: {},
3774
+ toolbarDisabled: {
3775
+ type: Boolean
3776
+ },
3777
+ nowDisabled: {
3778
+ type: Boolean
3779
+ },
3780
+ clearDisabled: {
3781
+ type: Boolean
3782
+ },
3783
+ popup: {},
3784
+ picker: {},
3785
+ popupStatus: {},
3786
+ target: {},
3787
+ followX: {},
3788
+ followY: {},
3789
+ pinned: {},
3790
+ inPopup: {},
3791
+ closePopup: {
3792
+ type: Function
3793
+ }
3794
+ },
3795
+ emits: ["clear", "confirm"],
3796
+ setup(__props, _ref) {
3797
+ let {
3798
+ emit: __emit
3799
+ } = _ref;
3800
+ const props = __props;
3801
+ const emits = __emit;
3802
+ const {
3803
+ inPopup
3804
+ } = props;
3805
+ const dateRef = vue.ref(snail_core.parseDateValue(props.value));
3806
+ const format = snail_core.correctDateFormat(props.format, "yyyy-MM-dd");
3807
+ const min = Object.freeze(snail_core.parseDateValue(props.min));
3808
+ const max = Object.freeze(snail_core.parseDateValue(props.max));
3809
+ const endStep = initStepByFormat(format);
3810
+ const stepRef = vue.shallowRef(endStep);
3811
+ const yearItems = vue.shallowRef();
3812
+ const monthItems = vue.shallowRef();
3813
+ const dayItemsRef = vue.shallowRef([]);
3814
+ const isValidDateRef = vue.computed(validateDate);
3815
+ const minPickTime = Object.freeze(snail_core.parseTimeValue(props.minPickTime));
3816
+ const maxPickTime = Object.freeze(snail_core.parseTimeValue(props.maxPickTime));
3817
+ const timeFormat = format == "yyyy-MM-dd HH:mm" ? "HH:mm" : format == "yyyy-MM-dd HH:mm:ss" ? "HH:mm:ss" : void 0;
3818
+ const timeAreaDom = timeFormat ? vue.useTemplateRef("time-area") : void 0;
3819
+ function validateDate() {
3820
+ switch (format) {
3821
+ case "yyyy":
3822
+ {
3823
+ const item = yearItems.value.find(item2 => item2.year == dateRef.value.year);
3824
+ return item && item.disabled != true;
3507
3825
  }
3508
- break;
3509
- case "minute":
3510
- if (tm.validateHHmm(tvRef.value.hour, value)) {
3511
- tvRef.value.minute = value;
3512
- await vue.nextTick();
3513
- scrollIntoView(sItemsDom.value);
3826
+ case "yyyy-MM":
3827
+ {
3828
+ const item = monthItems.value.find(item2 => item2.year == dateRef.value.year && item2.month == dateRef.value.month);
3829
+ return item && item.disabled != true;
3514
3830
  }
3515
- break;
3516
- case "second":
3517
- if (tm.validateHHmmss(tvRef.value.hour, tvRef.value.minute, value)) {
3518
- tvRef.value.second = value;
3831
+ case "yyyy-MM-dd":
3832
+ {
3833
+ const item = dayItemsRef.value.find(item2 => item2.year == dateRef.value.year && item2.month == dateRef.value.month && item2.day == dateRef.value.day);
3834
+ return item ? item.disabled != true : false;
3519
3835
  }
3520
- break;
3836
+ case "yyyy-MM-dd HH:mm":
3837
+ case "yyyy-MM-dd HH:mm:ss":
3838
+ {
3839
+ if (isValidTime(timeFormat, dateRef.value, minPickTime, maxPickTime) == true) {
3840
+ const date = snail_core.getDateByValue(dateRef.value);
3841
+ const disabled = min && date < snail_core.getDateByValue(min) || max && date > snail_core.getDateByValue(max);
3842
+ return disabled != true;
3843
+ }
3844
+ return false;
3845
+ }
3846
+ default:
3847
+ return false;
3521
3848
  }
3522
3849
  }
3523
- async function onNow() {
3524
- tvRef.value = snail_core.getTimeNow();
3525
- if (tm.validate(tvRef.value)) {
3526
- await vue.nextTick();
3527
- scrollIntoView(hItemsDom.value);
3528
- scrollIntoView(mItemsDom.value);
3529
- scrollIntoView(sItemsDom.value);
3850
+ function buildPickerItems(step, basis) {
3851
+ switch (step) {
3852
+ case "year":
3853
+ {
3854
+ dateRef.value.year += basis * 18;
3855
+ yearItems.value = buildYearItems(dateRef.value.year, min, max);
3856
+ if (basis != 0) {
3857
+ dateRef.value.month = 1;
3858
+ dateRef.value.day = 1;
3859
+ }
3860
+ break;
3861
+ }
3862
+ case "month":
3863
+ {
3864
+ dateRef.value.year += basis;
3865
+ let yearItem = (yearItems.value || []).find(item => item.year == dateRef.value.year);
3866
+ if (yearItem == void 0) {
3867
+ buildPickerItems("year", 0);
3868
+ yearItem = yearItems.value[9];
3869
+ }
3870
+ monthItems.value = buildMonthItems(yearItem, min, max);
3871
+ basis != 0 && (dateRef.value.day = 1);
3872
+ break;
3873
+ }
3874
+ case "day":
3875
+ {
3876
+ const date = new Date(dateRef.value.year, dateRef.value.month - 1, 1);
3877
+ date.setMonth(date.getMonth() + basis);
3878
+ dateRef.value.year = date.getFullYear();
3879
+ dateRef.value.month = date.getMonth() + 1;
3880
+ let monthItem = (monthItems.value || []).find(item => item.year == dateRef.value.year && item.month == dateRef.value.month);
3881
+ if (monthItem == void 0) {
3882
+ buildPickerItems("month", 0);
3883
+ monthItem = monthItems.value[dateRef.value.month - 1];
3884
+ }
3885
+ dayItemsRef.value = buildDayItems(monthItem, min, max);
3886
+ basis != 0 && (dateRef.value.day = 1);
3887
+ break;
3888
+ }
3530
3889
  }
3531
3890
  }
3532
- function onConfirm() {
3533
- tvRef.value = tm.correct(tvRef.value) || Object.create(null);
3534
- if (tvRef.value == void 0 || tvRef.value.hour == void 0) {
3535
- return toast("error", "请选选择时间");
3891
+ function onSwitchStepClick(newValue) {
3892
+ setTimeout(() => stepRef.value = newValue);
3893
+ }
3894
+ function onYearItemClick(item) {
3895
+ if (item.disabled != true) {
3896
+ dateRef.value.year = item.year;
3897
+ if (format == "yyyy") {
3898
+ const value = String(dateRef.value.year).padStart(4, "0");
3899
+ emits("confirm", value);
3900
+ props.inPopup && props.closePopup(value);
3901
+ } else {
3902
+ dateRef.value.month = 1;
3903
+ monthItems.value = buildMonthItems(item, min, max);
3904
+ onSwitchStepClick("month");
3905
+ }
3536
3906
  }
3537
- if (secondDisabled != true && tvRef.value.minute == void 0) {
3538
- return toast("error", "请选选择时间");
3907
+ }
3908
+ function onMonthItemClick(item) {
3909
+ if (item.disabled != true) {
3910
+ dateRef.value.year = item.year;
3911
+ dateRef.value.month = item.month;
3912
+ if (format == "yyyy-MM") {
3913
+ const value = snail_core.formatDateValue(dateRef.value, "yyyy-MM");
3914
+ emits("confirm", value);
3915
+ props.inPopup && props.closePopup(value);
3916
+ } else {
3917
+ dateRef.value.day = 1;
3918
+ dayItemsRef.value = buildDayItems(item, min, max);
3919
+ onSwitchStepClick("day");
3920
+ }
3539
3921
  }
3540
- const value = tm.toString(tvRef.value);
3541
- emits("confirm", value);
3542
- inPopup && closePopup(value);
3543
3922
  }
3544
- {
3545
- props.value && (tvRef.value = tm.parse(props.value));
3546
- tvRef.value || props.initialDisabled || (tvRef.value = tm.correct(snail_core.getTimeNow()));
3547
- tvRef.value || (tvRef.value = Object.create(null));
3923
+ function onDayItemClick(item) {
3924
+ if (item.disabled != true) {
3925
+ const isNowMonth = item.year == dateRef.value.year && item.month == dateRef.value.month;
3926
+ Object.assign(dateRef.value, {
3927
+ year: item.year,
3928
+ month: item.month,
3929
+ day: item.day
3930
+ });
3931
+ if (format == "yyyy-MM-dd") {
3932
+ const value = snail_core.formatDateValue(dateRef.value, "yyyy-MM-dd");
3933
+ emits("confirm", value);
3934
+ props.inPopup && props.closePopup(value);
3935
+ } else {
3936
+ isNowMonth || buildPickerItems("day", 0);
3937
+ }
3938
+ }
3548
3939
  }
3549
- vue.onMounted(async () => {
3550
- await vue.nextTick();
3551
- scrollIntoView(hItemsDom.value);
3552
- scrollIntoView(mItemsDom.value);
3553
- scrollIntoView(sItemsDom.value);
3554
- });
3940
+ async function onSelectTime() {
3941
+ if (props.picker == void 0 || timeAreaDom.value == void 0 || props.pinned.value == true) {
3942
+ return;
3943
+ }
3944
+ props.pinned.value = true;
3945
+ const task = props.picker.showTime(timeAreaDom.value, {
3946
+ format: timeFormat,
3947
+ value: snail_core.formatTimeValue(dateRef.value, timeFormat),
3948
+ min: props.minPickTime,
3949
+ max: props.minPickTime,
3950
+ followX: "start",
3951
+ followY: "before",
3952
+ spaceX: -2,
3953
+ spaceY: 4
3954
+ });
3955
+ task.finally(() => setTimeout(() => props.pinned.value = false)).then(text => {
3956
+ if (text != void 0) {
3957
+ const time = snail_core.parseTimeValue(text) || Object.create(null);
3958
+ dateRef.value.hour = time.hour;
3959
+ dateRef.value.minute = time.minute;
3960
+ dateRef.value.second = time.second;
3961
+ }
3962
+ }, reason => {
3963
+ console.error(reason);
3964
+ });
3965
+ }
3966
+ function onNow() {
3967
+ stepRef.value = initStepByFormat(format);
3968
+ dateRef.value = snail_core.getDateValue(new Date());
3969
+ buildPickerItems(stepRef.value, 0);
3970
+ }
3971
+ function onConfirm() {
3972
+ if (isValidDateRef.value == true) {
3973
+ const value = snail_core.formatDateValue(dateRef.value, format);
3974
+ emits("confirm", value);
3975
+ props.inPopup && props.closePopup(value);
3976
+ }
3977
+ }
3978
+ dateRef.value == void 0 && (dateRef.value = electDateValue());
3979
+ buildPickerItems(stepRef.value, 0);
3555
3980
  return (_ctx, _cache) => {
3556
- return vue.openBlock(), vue.createElementBlock("div", {
3557
- class: vue.normalizeClass(["snail-time-picker pc", {
3558
- "second-disabled": secondDisabled
3559
- }])
3560
- }, [vue.createVNode(_sfc_main$5, {
3561
- group: true,
3562
- effect: ["down-up"]
3563
- }, {
3564
- default: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_1$1, [vue.createElementVNode("div", _hoisted_2, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(Array(24).fill(void 0), (_, index) => {
3981
+ return vue.openBlock(), vue.createBlock(_sfc_main$b, {
3982
+ class: vue.normalizeClass(["date-picker pc", {
3983
+ "time-now": __props.pinned && __props.pinned.value == true
3984
+ }]),
3985
+ mode: "vertical",
3986
+ top: {
3987
+ height: "40px"
3988
+ },
3989
+ bottom: {
3990
+ height: "30px"
3991
+ }
3992
+ }, vue.createSlots({
3993
+ top: vue.withCtx(() => [vue.createVNode(_sfc_main$y, {
3994
+ type: "arrow",
3995
+ rotate: 180,
3996
+ size: 26,
3997
+ onClick: _cache[0] || (_cache[0] = $event => buildPickerItems(stepRef.value, -1))
3998
+ }), vue.createElementVNode("div", {
3999
+ class: vue.normalizeClass(["header-content", stepRef.value])
4000
+ }, [stepRef.value == "year" ? (vue.openBlock(), vue.createElementBlock("div", {
4001
+ key: 0,
4002
+ textContent: vue.toDisplayString(`${yearItems.value[0].year}年 - ${vue.unref(snail_core.getFromArray)(yearItems.value, -1).year}年`)
4003
+ }, null, 8, _hoisted_1$1)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
4004
+ key: 1
4005
+ }, [vue.createElementVNode("div", {
4006
+ textContent: vue.toDisplayString(`${dateRef.value.year}年`),
4007
+ onClick: _cache[1] || (_cache[1] = $event => onSwitchStepClick("year"))
4008
+ }, null, 8, _hoisted_2), stepRef.value == "day" ? (vue.openBlock(), vue.createElementBlock("div", {
4009
+ key: 0,
4010
+ textContent: vue.toDisplayString(`${dateRef.value.month}月`),
4011
+ onClick: _cache[2] || (_cache[2] = $event => onSwitchStepClick("month"))
4012
+ }, null, 8, _hoisted_3)) : vue.createCommentVNode("", true)], 64))], 2), vue.createVNode(_sfc_main$y, {
4013
+ type: "arrow",
4014
+ size: 26,
4015
+ onClick: _cache[3] || (_cache[3] = $event => buildPickerItems(stepRef.value, 1))
4016
+ })]),
4017
+ main: vue.withCtx(() => [stepRef.value == "year" ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, {
4018
+ key: 0
4019
+ }, vue.renderList(yearItems.value, item => {
3565
4020
  return vue.openBlock(), vue.createElementBlock("div", {
3566
- class: vue.normalizeClass(["tzi-number", getTimeClass("hour", index)]),
3567
- textContent: vue.toDisplayString(String(index).padStart(2, "0")),
3568
- onClick: $event => onTimeClick("hour", index)
3569
- }, null, 10, _hoisted_3);
3570
- }), 256))], 512), vue.createElementVNode("div", _hoisted_4, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(Array(60).fill(void 0), (_, index) => {
4021
+ class: vue.normalizeClass(["year-item", {
4022
+ "active": dateRef.value.year == item.year,
4023
+ "disabled": item.disabled
4024
+ }]),
4025
+ key: item.year
4026
+ }, [vue.createElementVNode("span", {
4027
+ textContent: vue.toDisplayString(item.year),
4028
+ onClick: $event => onYearItemClick(item)
4029
+ }, null, 8, _hoisted_4)], 2);
4030
+ }), 128)) : stepRef.value == "month" ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, {
4031
+ key: 1
4032
+ }, vue.renderList(monthItems.value, item => {
3571
4033
  return vue.openBlock(), vue.createElementBlock("div", {
3572
- class: vue.normalizeClass(["tzi-number", getTimeClass("minute", index)]),
3573
- textContent: vue.toDisplayString(String(index).padStart(2, "0")),
3574
- onClick: $event => onTimeClick("minute", index)
3575
- }, null, 10, _hoisted_5);
3576
- }), 256))], 512), secondDisabled != true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(Array(60).fill(void 0), (_, index) => {
4034
+ class: vue.normalizeClass(["month-item", {
4035
+ "active": dateRef.value.month == item.month,
4036
+ "disabled": item.disabled
4037
+ }]),
4038
+ key: `${item.year}-${item.month}`
4039
+ }, [vue.createElementVNode("span", {
4040
+ textContent: vue.toDisplayString(item.text),
4041
+ onClick: $event => onMonthItemClick(item)
4042
+ }, null, 8, _hoisted_5)], 2);
4043
+ }), 128)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
4044
+ key: 2
4045
+ }, [(vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(["日", "一", "二", "三", "四", "五", "六"], item => {
4046
+ return vue.createElementVNode("div", {
4047
+ class: "day-item week",
4048
+ key: item,
4049
+ textContent: vue.toDisplayString(item)
4050
+ }, null, 8, _hoisted_6);
4051
+ }), 64)), (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(dayItemsRef.value, item => {
3577
4052
  return vue.openBlock(), vue.createElementBlock("div", {
3578
- class: vue.normalizeClass(["tzi-number", getTimeClass("second", index)]),
3579
- textContent: vue.toDisplayString(String(index).padStart(2, "0")),
3580
- onClick: $event => onTimeClick("second", index)
3581
- }, null, 10, _hoisted_7);
3582
- }), 256))], 512)) : vue.createCommentVNode("", true)]), vue.createElementVNode("div", _hoisted_8, [vue.createVNode(_sfc_main$y, {
4053
+ class: vue.normalizeClass(["day-item", {
4054
+ "active": dateRef.value.year == item.year && dateRef.value.month == item.month && dateRef.value.day == item.day,
4055
+ "now-month": dateRef.value.year == item.year && dateRef.value.month == item.month,
4056
+ "disabled": item.disabled
4057
+ }]),
4058
+ key: `${item.year}-${item.month}-${item.day}`
4059
+ }, [vue.createElementVNode("span", {
4060
+ textContent: vue.toDisplayString(item.day),
4061
+ onClick: $event => onDayItemClick(item)
4062
+ }, null, 8, _hoisted_7)], 2);
4063
+ }), 128))], 64))]),
4064
+ _: 2
4065
+ }, [vue.unref(endStep) == stepRef.value && (__props.toolbarDisabled != true || vue.unref(timeFormat) != void 0) ? {
4066
+ name: "bottom",
4067
+ fn: vue.withCtx(() => [vue.unref(timeFormat) != void 0 ? (vue.openBlock(), vue.createElementBlock("div", {
4068
+ key: 0,
4069
+ class: vue.normalizeClass(["time-area", {
4070
+ placeholder: dateRef.value.hour == void 0
4071
+ }]),
4072
+ ref: "time-area",
4073
+ textContent: vue.toDisplayString(vue.unref(snail_core.formatTimeValue)(dateRef.value, vue.unref(timeFormat)) || "选择时间"),
4074
+ onClick: onSelectTime
4075
+ }, null, 10, _hoisted_8)) : vue.createCommentVNode("", true), __props.toolbarDisabled != true ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
4076
+ key: 1
4077
+ }, [__props.clearDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
4078
+ key: 0,
3583
4079
  type: "link",
3584
4080
  size: "small",
3585
4081
  textContent: "清空",
3586
- onClick: _cache[0] || (_cache[0] = $event => (emits("clear"), vue.unref(inPopup) && vue.unref(closePopup)("")))
3587
- }), vue.unref(tm).validate(vue.unref(snail_core.getTimeNow)()) ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
3588
- key: 0,
4082
+ onClick: _cache[4] || (_cache[4] = $event => (emits("clear"), vue.unref(inPopup) && __props.closePopup("")))
4083
+ })) : vue.createCommentVNode("", true), __props.nowDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
4084
+ key: 1,
3589
4085
  type: "link",
3590
4086
  size: "small",
3591
4087
  textContent: "现在",
3592
4088
  onClick: onNow
3593
- })) : vue.createCommentVNode("", true), vue.createVNode(_sfc_main$y, {
4089
+ })) : vue.createCommentVNode("", true)], 64)) : vue.createCommentVNode("", true), vue.createVNode(_sfc_main$z, {
3594
4090
  type: "link",
3595
4091
  size: "small",
3596
4092
  textContent: "确定",
4093
+ class: vue.normalizeClass({
4094
+ "disabled": isValidDateRef.value != true
4095
+ }),
3597
4096
  onClick: onConfirm
3598
- })])]),
3599
- _: 1
3600
- })], 2);
4097
+ }, null, 8, ["class"])]),
4098
+ key: "0"
4099
+ } : void 0]), 1032, ["class"]);
3601
4100
  };
3602
4101
  }
3603
4102
  });
3604
4103
 
3605
4104
  function usePicker() {
3606
4105
  const popup = usePopup();
4106
+ function showDate(target, options) {
4107
+ options = {
4108
+ ...options
4109
+ };
4110
+ return showPicker(target, _sfc_main$1, options);
4111
+ }
3607
4112
  function showTime(target, options) {
3608
4113
  options = {
3609
4114
  ...options
3610
4115
  };
3611
- delete options["manager"];
4116
+ return showPicker(target, _sfc_main$2, options);
4117
+ }
4118
+ function showPicker(target, component, options) {
4119
+ let popupOptions = Object.create(null);
4120
+ if (options != void 0) {
4121
+ popupOptions.followX = options.followX;
4122
+ popupOptions.followY = options.followY;
4123
+ popupOptions.spaceX = options.spaceX;
4124
+ popupOptions.spaceY = options.spaceY;
4125
+ popupOptions.spaceClient = options.spaceClien;
4126
+ delete options.followX;
4127
+ delete options.followY;
4128
+ delete options.spaceX;
4129
+ delete options.spaceY;
4130
+ delete options.spaceClient;
4131
+ }
3612
4132
  return popup.follow(target, {
3613
- component: _sfc_main$1,
3614
- followX: ["center"],
3615
- spaceClient: 10,
3616
- spaceY: 2,
3617
- spaceX: 2,
4133
+ component,
4134
+ followX: popupOptions.followX || "center",
4135
+ followY: popupOptions.followY,
4136
+ spaceX: snail_core.correctNumber(popupOptions.spaceX, 2),
4137
+ spaceY: snail_core.correctNumber(popupOptions.spaceY, 2),
4138
+ spaceClient: snail_core.correctNumber(popupOptions.spaceClient, 10),
3618
4139
  closeOnMask: true,
3619
- props: options
4140
+ props: {
4141
+ ...options,
4142
+ picker: manager,
4143
+ popup
4144
+ }
3620
4145
  });
3621
4146
  }
3622
- {
3623
- const manager = Object.freeze(snail_core.mountScope({
3624
- showTime
3625
- }, "IPickerManager"));
3626
- manager.onDestroy(popup.destroy);
3627
- return manager;
3628
- }
4147
+ const manager = Object.freeze(snail_core.mountScope({
4148
+ showDate,
4149
+ showTime
4150
+ }, "IPickerManager"));
4151
+ manager.onDestroy(popup.destroy);
4152
+ return manager;
3629
4153
  }
3630
4154
 
3631
4155
  const _hoisted_1 = ["textContent"];
@@ -3713,12 +4237,12 @@
3713
4237
  onTouchstart: onStartDrag,
3714
4238
  onTouchmove: onDragMove,
3715
4239
  onTouchend: onDragEnd
3716
- }, [dragInfoRef.value.status == "success" ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
4240
+ }, [dragInfoRef.value.status == "success" ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
3717
4241
  key: 0,
3718
4242
  type: "success",
3719
4243
  size: 20,
3720
4244
  color: "white"
3721
- })) : (vue.openBlock(), vue.createBlock(_sfc_main$x, {
4245
+ })) : (vue.openBlock(), vue.createBlock(_sfc_main$y, {
3722
4246
  key: 1,
3723
4247
  type: "custom",
3724
4248
  size: 20,
@@ -3730,32 +4254,32 @@
3730
4254
  });
3731
4255
 
3732
4256
  const components = {
3733
- Button: _sfc_main$y,
3734
- Choose: _sfc_main$w,
3735
- DatePicker: _sfc_main$v,
3736
- Footer: _sfc_main$u,
3737
- Header: _sfc_main$t,
3738
- Icon: _sfc_main$x,
3739
- Input: _sfc_main$s,
3740
- Number: _sfc_main$r,
3741
- Search: _sfc_main$q,
3742
- Select: _sfc_main$f,
3743
- Switch: _sfc_main$e,
3744
- Textarea: _sfc_main$d,
3745
- Dynamic: _sfc_main$n,
3746
- Fold: _sfc_main$c,
3747
- Layout: _sfc_main$a,
3748
- Scroll: _sfc_main$b,
3749
- Sort: _sfc_main$9,
3750
- Table: _sfc_main$8,
3751
- TableRow: _sfc_main$7,
3752
- TableCol: _sfc_main$6,
3753
- Transitions: _sfc_main$5,
3754
- Tree: _sfc_main$3,
3755
- Wrapper: _sfc_main$2,
4257
+ Button: _sfc_main$z,
4258
+ Choose: _sfc_main$x,
4259
+ DatePicker: _sfc_main$w,
4260
+ Footer: _sfc_main$v,
4261
+ Header: _sfc_main$u,
4262
+ Icon: _sfc_main$y,
4263
+ Input: _sfc_main$t,
4264
+ Number: _sfc_main$s,
4265
+ Search: _sfc_main$r,
4266
+ Select: _sfc_main$g,
4267
+ Switch: _sfc_main$f,
4268
+ Textarea: _sfc_main$e,
4269
+ Dynamic: _sfc_main$o,
4270
+ Fold: _sfc_main$d,
4271
+ Layout: _sfc_main$b,
4272
+ Scroll: _sfc_main$c,
4273
+ Sort: _sfc_main$a,
4274
+ Table: _sfc_main$9,
4275
+ TableRow: _sfc_main$8,
4276
+ TableCol: _sfc_main$7,
4277
+ Transitions: _sfc_main$6,
4278
+ Tree: _sfc_main$4,
4279
+ Wrapper: _sfc_main$3,
3756
4280
  DragVerify: _sfc_main,
3757
- Empty: _sfc_main$i,
3758
- Loading: _sfc_main$o
4281
+ Empty: _sfc_main$j,
4282
+ Loading: _sfc_main$p
3759
4283
  };
3760
4284
 
3761
4285
  snail_core.onMountScope(scope => {