@deot/vc-components 1.0.62 → 1.0.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
- import { reactive, defineComponent, createVNode, inject, shallowRef, ref, computed, onMounted, onBeforeUnmount, provide, nextTick, watch, getCurrentInstance, TransitionGroup, Transition as Transition$1, h, mergeProps, withModifiers, createApp, Fragment as Fragment$1, Teleport, onUnmounted, withDirectives, vShow, isVNode, onBeforeMount, createTextVNode, toRaw, onUpdated, resolveComponent, useAttrs as useAttrs$1 } from 'vue';
1
+ import { reactive, defineComponent, createVNode, inject, shallowRef, ref, computed, onMounted, onBeforeUnmount, provide, nextTick, watch, getCurrentInstance, TransitionGroup, Transition as Transition$1, h, withModifiers, withDirectives, vShow, onBeforeMount, createTextVNode, mergeProps, createApp, Fragment as Fragment$1, Teleport, onUnmounted, isVNode, toRaw, onUpdated, resolveComponent, useAttrs as useAttrs$1 } from 'vue';
2
2
  import * as $ from '@deot/helper-dom';
3
- import { getScroller as getScroller$1, composedPath, scrollIntoView, prefixStyle, getStyle, removeClass, addClass, hasClass } from '@deot/helper-dom';
3
+ import { getScroller as getScroller$1, prefixStyle, composedPath, scrollIntoView, getStyle, removeClass, addClass, hasClass } from '@deot/helper-dom';
4
4
  import * as Utils from '@deot/helper-utils';
5
5
  import { raf, getUid, preZero, getPropByPath, throttle as throttle$1, hasOwn } from '@deot/helper-utils';
6
- import { debounce, cloneDeep, pick, isEqualWith, startCase, throttle, concat, max, merge, isEmpty as isEmpty$1, kebabCase, difference } from 'lodash-es';
7
- import { useAttrs, useScrollbar, getInstance } from '@deot/vc-hooks';
6
+ import { debounce, throttle, cloneDeep, pick, isEqualWith, startCase, concat, max, merge, isEmpty as isEmpty$1, kebabCase, difference } from 'lodash-es';
8
7
  import { Resize } from '@deot/helper-resize';
8
+ import { useAttrs, useScrollbar, getInstance } from '@deot/vc-hooks';
9
9
  import { Utils as Utils$1, IS_SERVER as IS_SERVER$1 } from '@deot/vc-shared';
10
10
  import { Wheel } from '@deot/helper-wheel';
11
11
  import * as Load from '@deot/helper-load';
@@ -90,7 +90,7 @@ class Instance {
90
90
  }
91
91
  const VcInstance = new Instance();
92
92
 
93
- const props$1u = {
93
+ const props$1v = {
94
94
  tag: {
95
95
  type: String,
96
96
  default: "div"
@@ -99,10 +99,10 @@ const props$1u = {
99
99
 
100
100
  /** @jsxImportSource vue */
101
101
 
102
- const COMPONENT_NAME$2b = 'vc-action-sheet';
102
+ const COMPONENT_NAME$2g = 'vc-action-sheet';
103
103
  const ActionSheet = /* @__PURE__ */ defineComponent({
104
- name: COMPONENT_NAME$2b,
105
- props: props$1u,
104
+ name: COMPONENT_NAME$2g,
105
+ props: props$1v,
106
106
  setup(props, {
107
107
  slots
108
108
  }) {
@@ -116,7 +116,7 @@ const ActionSheet = /* @__PURE__ */ defineComponent({
116
116
 
117
117
  const MActionSheet = ActionSheet;
118
118
 
119
- const props$1t = {
119
+ const props$1u = {
120
120
  modelValue: {
121
121
  type: Boolean,
122
122
  default: false
@@ -178,11 +178,11 @@ const isWheel = (el) => {
178
178
 
179
179
  /** @jsxImportSource vue */
180
180
 
181
- const COMPONENT_NAME$2a = 'vc-affix';
181
+ const COMPONENT_NAME$2f = 'vc-affix';
182
182
  const Affix = /* @__PURE__ */ defineComponent({
183
- name: COMPONENT_NAME$2a,
183
+ name: COMPONENT_NAME$2f,
184
184
  emits: ['update:modelValue'],
185
- props: props$1t,
185
+ props: props$1u,
186
186
  setup(props, {
187
187
  slots,
188
188
  expose,
@@ -348,7 +348,7 @@ const Affix = /* @__PURE__ */ defineComponent({
348
348
 
349
349
  const MAffix = Affix;
350
350
 
351
- const props$1s = {
351
+ const props$1t = {
352
352
  modelValue: {
353
353
  type: Boolean,
354
354
  default: true
@@ -375,7 +375,7 @@ const props$1s = {
375
375
  }
376
376
  };
377
377
 
378
- const props$1r = {
378
+ const props$1s = {
379
379
  type: String,
380
380
  inherit: {
381
381
  type: Boolean,
@@ -512,10 +512,10 @@ const IconManager = new Manager();
512
512
 
513
513
  /** @jsxImportSource vue */
514
514
 
515
- const COMPONENT_NAME$29 = 'vc-icon';
515
+ const COMPONENT_NAME$2e = 'vc-icon';
516
516
  const Icon = /* @__PURE__ */ defineComponent({
517
- name: COMPONENT_NAME$29,
518
- props: props$1r,
517
+ name: COMPONENT_NAME$2e,
518
+ props: props$1s,
519
519
  setup(props) {
520
520
  const viewBox = ref('0 0 1024 1024');
521
521
  const path = ref([]);
@@ -548,7 +548,7 @@ const Icon = /* @__PURE__ */ defineComponent({
548
548
  }
549
549
  });
550
550
 
551
- const props$1q = {
551
+ const props$1r = {
552
552
  /**
553
553
  * 进入/离开持续时间
554
554
  * {enter: 300, leave: 300}
@@ -713,10 +713,10 @@ const useTransition = () => {
713
713
  };
714
714
  };
715
715
 
716
- const COMPONENT_NAME$28 = "vc-transition";
716
+ const COMPONENT_NAME$2d = "vc-transition";
717
717
  const Transition = defineComponent({
718
- name: COMPONENT_NAME$28,
719
- props: props$1q,
718
+ name: COMPONENT_NAME$2d,
719
+ props: props$1r,
720
720
  // 当不声明emits的情况下,事件存在于attrs中
721
721
  inheritAttrs: false,
722
722
  setup(props, { slots, attrs }) {
@@ -736,10 +736,10 @@ const Transition = defineComponent({
736
736
  }
737
737
  });
738
738
 
739
- const COMPONENT_NAME$27 = "vc-transition-collapse";
739
+ const COMPONENT_NAME$2c = "vc-transition-collapse";
740
740
  const TransitionCollapse = defineComponent({
741
- name: COMPONENT_NAME$27,
742
- props: props$1q,
741
+ name: COMPONENT_NAME$2c,
742
+ props: props$1r,
743
743
  // 当不声明emits的情况下,事件存在于attrs中
744
744
  inheritAttrs: false,
745
745
  setup(props, { slots, attrs: _attrs }) {
@@ -853,11 +853,11 @@ const TransitionCollapse = defineComponent({
853
853
  }
854
854
  });
855
855
 
856
- const COMPONENT_NAME$26 = "vc-transition-fade";
856
+ const COMPONENT_NAME$2b = "vc-transition-fade";
857
857
  const TransitionFade = defineComponent({
858
- name: COMPONENT_NAME$26,
858
+ name: COMPONENT_NAME$2b,
859
859
  props: {
860
- ...props$1q,
860
+ ...props$1r,
861
861
  // inheritAttrs必须是false
862
862
  style: {
863
863
  type: Object,
@@ -890,11 +890,11 @@ const TransitionFade = defineComponent({
890
890
  }
891
891
  });
892
892
 
893
- const COMPONENT_NAME$25 = "vc-transition-scale";
893
+ const COMPONENT_NAME$2a = "vc-transition-scale";
894
894
  const TransitionScale = defineComponent({
895
- name: COMPONENT_NAME$25,
895
+ name: COMPONENT_NAME$2a,
896
896
  props: {
897
- ...props$1q,
897
+ ...props$1r,
898
898
  mode: {
899
899
  type: String,
900
900
  default: "both",
@@ -932,11 +932,11 @@ const TransitionScale = defineComponent({
932
932
  }
933
933
  });
934
934
 
935
- const COMPONENT_NAME$24 = "vc-transition-slide";
935
+ const COMPONENT_NAME$29 = "vc-transition-slide";
936
936
  const TransitionSlide = defineComponent({
937
- name: COMPONENT_NAME$24,
937
+ name: COMPONENT_NAME$29,
938
938
  props: {
939
- ...props$1q,
939
+ ...props$1r,
940
940
  mode: {
941
941
  type: String,
942
942
  default: "left",
@@ -974,11 +974,11 @@ const TransitionSlide = defineComponent({
974
974
  }
975
975
  });
976
976
 
977
- const COMPONENT_NAME$23 = "vc-transition-zoom";
977
+ const COMPONENT_NAME$28 = "vc-transition-zoom";
978
978
  const TransitionZoom = defineComponent({
979
- name: COMPONENT_NAME$23,
979
+ name: COMPONENT_NAME$28,
980
980
  props: {
981
- ...props$1q,
981
+ ...props$1r,
982
982
  mode: {
983
983
  type: String,
984
984
  default: "x",
@@ -1018,7 +1018,7 @@ const TransitionZoom = defineComponent({
1018
1018
 
1019
1019
  /** @jsxImportSource vue */
1020
1020
 
1021
- const COMPONENT_NAME$22 = 'vc-alert';
1021
+ const COMPONENT_NAME$27 = 'vc-alert';
1022
1022
 
1023
1023
  // [color, borderColor, backgroundColor], -> CSS
1024
1024
  const THEME_MAP = {
@@ -1028,8 +1028,8 @@ const THEME_MAP = {
1028
1028
  warning: ['#ffbf00', '#ffe58f', '#fffbe6']
1029
1029
  };
1030
1030
  const Alert = /* @__PURE__ */ defineComponent({
1031
- name: COMPONENT_NAME$22,
1032
- props: props$1s,
1031
+ name: COMPONENT_NAME$27,
1032
+ props: props$1t,
1033
1033
  setup(props, {
1034
1034
  slots,
1035
1035
  emit
@@ -1118,7 +1118,7 @@ const Alert = /* @__PURE__ */ defineComponent({
1118
1118
 
1119
1119
  const MAlert = Alert;
1120
1120
 
1121
- const props$1p = {
1121
+ const props$1q = {
1122
1122
  // canvas配置参数
1123
1123
  options: Object,
1124
1124
  width: {
@@ -1134,10 +1134,10 @@ const props$1p = {
1134
1134
  /** @jsxImportSource vue */
1135
1135
 
1136
1136
  const isTouch = typeof document !== 'undefined' && 'ontouchend' in document;
1137
- const COMPONENT_NAME$21 = 'vc-artboard';
1137
+ const COMPONENT_NAME$26 = 'vc-artboard';
1138
1138
  const Artboard = /* @__PURE__ */ defineComponent({
1139
- name: COMPONENT_NAME$21,
1140
- props: props$1p,
1139
+ name: COMPONENT_NAME$26,
1140
+ props: props$1q,
1141
1141
  setup(props, {
1142
1142
  emit,
1143
1143
  expose
@@ -1340,7 +1340,7 @@ const Artboard = /* @__PURE__ */ defineComponent({
1340
1340
 
1341
1341
  const MArtboard = Artboard;
1342
1342
 
1343
- const props$1o = {
1343
+ const props$1p = {
1344
1344
  size: {
1345
1345
  type: Number,
1346
1346
  default: 28
@@ -1364,10 +1364,10 @@ const props$1o = {
1364
1364
 
1365
1365
  /** @jsxImportSource vue */
1366
1366
 
1367
- const COMPONENT_NAME$20 = 'vc-spin';
1367
+ const COMPONENT_NAME$25 = 'vc-spin';
1368
1368
  const Spin = /* @__PURE__ */ defineComponent({
1369
- name: COMPONENT_NAME$20,
1370
- props: props$1o,
1369
+ name: COMPONENT_NAME$25,
1370
+ props: props$1p,
1371
1371
  setup(props, {
1372
1372
  slots
1373
1373
  }) {
@@ -1401,7 +1401,7 @@ const Spin = /* @__PURE__ */ defineComponent({
1401
1401
  }
1402
1402
  });
1403
1403
 
1404
- const props$1n = {
1404
+ const props$1o = {
1405
1405
  wait: {
1406
1406
  type: Number,
1407
1407
  default: 250
@@ -1417,10 +1417,10 @@ const props$1n = {
1417
1417
  exclude: RegExp
1418
1418
  };
1419
1419
 
1420
- const COMPONENT_NAME$1$ = "vc-debounce";
1420
+ const COMPONENT_NAME$24 = "vc-debounce";
1421
1421
  const Debounce = defineComponent({
1422
- name: COMPONENT_NAME$1$,
1423
- props: props$1n,
1422
+ name: COMPONENT_NAME$24,
1423
+ props: props$1o,
1424
1424
  /**
1425
1425
  * 不声明emits使得事件被透传放入attrs中, 这样可以让所有的事件透传
1426
1426
  * 如事件onClick
@@ -1460,7 +1460,7 @@ const Debounce = defineComponent({
1460
1460
  }
1461
1461
  });
1462
1462
 
1463
- const props$1m = {
1463
+ const props$1n = {
1464
1464
  tag: {
1465
1465
  type: String,
1466
1466
  default: "button"
@@ -1492,11 +1492,11 @@ const props$1m = {
1492
1492
 
1493
1493
  /** @jsxImportSource vue */
1494
1494
 
1495
- const COMPONENT_NAME$1_ = 'vc-button';
1495
+ const COMPONENT_NAME$23 = 'vc-button';
1496
1496
  const Button = /* @__PURE__ */ defineComponent({
1497
- name: COMPONENT_NAME$1_,
1497
+ name: COMPONENT_NAME$23,
1498
1498
  emits: ['click'],
1499
- props: props$1m,
1499
+ props: props$1n,
1500
1500
  setup(props, {
1501
1501
  slots
1502
1502
  }) {
@@ -1557,7 +1557,7 @@ const Button = /* @__PURE__ */ defineComponent({
1557
1557
  }
1558
1558
  });
1559
1559
 
1560
- const props$1l = {
1560
+ const props$1m = {
1561
1561
  vertical: {
1562
1562
  type: Boolean,
1563
1563
  default: false
@@ -1578,10 +1578,10 @@ const props$1l = {
1578
1578
 
1579
1579
  /** @jsxImportSource vue */
1580
1580
 
1581
- const COMPONENT_NAME$1Z = 'vc-button-group';
1581
+ const COMPONENT_NAME$22 = 'vc-button-group';
1582
1582
  const ButtonGroup = /* @__PURE__ */ defineComponent({
1583
- name: COMPONENT_NAME$1Z,
1584
- props: props$1l,
1583
+ name: COMPONENT_NAME$22,
1584
+ props: props$1m,
1585
1585
  setup(props, {
1586
1586
  slots
1587
1587
  }) {
@@ -1605,7 +1605,7 @@ const ButtonGroup = /* @__PURE__ */ defineComponent({
1605
1605
  const MButton = Button;
1606
1606
  const MButtonGroup = ButtonGroup;
1607
1607
 
1608
- const props$1k = {
1608
+ const props$1l = {
1609
1609
  tag: {
1610
1610
  type: String,
1611
1611
  default: "div"
@@ -1614,10 +1614,10 @@ const props$1k = {
1614
1614
 
1615
1615
  /** @jsxImportSource vue */
1616
1616
 
1617
- const COMPONENT_NAME$1Y = 'vc-calendar';
1617
+ const COMPONENT_NAME$21 = 'vc-calendar';
1618
1618
  const Calendar = /* @__PURE__ */ defineComponent({
1619
- name: COMPONENT_NAME$1Y,
1620
- props: props$1k,
1619
+ name: COMPONENT_NAME$21,
1620
+ props: props$1l,
1621
1621
  setup(props, {
1622
1622
  slots
1623
1623
  }) {
@@ -1631,7 +1631,7 @@ const Calendar = /* @__PURE__ */ defineComponent({
1631
1631
 
1632
1632
  const MCalendar = Calendar;
1633
1633
 
1634
- const props$1j = {
1634
+ const props$1k = {
1635
1635
  border: {
1636
1636
  type: Boolean,
1637
1637
  default: true
@@ -1654,10 +1654,10 @@ const props$1j = {
1654
1654
 
1655
1655
  /** @jsxImportSource vue */
1656
1656
 
1657
- const COMPONENT_NAME$1X = 'vc-card';
1657
+ const COMPONENT_NAME$20 = 'vc-card';
1658
1658
  const Card = /* @__PURE__ */ defineComponent({
1659
- name: COMPONENT_NAME$1X,
1660
- props: props$1j,
1659
+ name: COMPONENT_NAME$20,
1660
+ props: props$1k,
1661
1661
  setup(props, {
1662
1662
  slots
1663
1663
  }) {
@@ -1683,31 +1683,713 @@ const Card = /* @__PURE__ */ defineComponent({
1683
1683
 
1684
1684
  const MCard = Card;
1685
1685
 
1686
- const props$1i = {
1687
- tag: {
1686
+ const useCarousel = (wrapper, content, expose) => {
1687
+ const instance = getCurrentInstance();
1688
+ const props = instance.props;
1689
+ const { emit } = instance;
1690
+ const items = ref([]);
1691
+ const activeIndex = ref(-1);
1692
+ const timer = ref(null);
1693
+ const offset = ref(0);
1694
+ const carouselId = ref(getUid("carousel"));
1695
+ const start = ref();
1696
+ const startX = ref();
1697
+ const startY = ref();
1698
+ const allowTransition = ref(false);
1699
+ const direction = computed(() => {
1700
+ return props.vertical ? "vertical" : "horizontal";
1701
+ });
1702
+ const hasLabel = computed(() => {
1703
+ return items.value.some((item) => item.props.label.toString().length > 0);
1704
+ });
1705
+ const dotsClasses = computed(() => {
1706
+ const classes = ["is-" + direction.value];
1707
+ if (hasLabel.value) {
1708
+ classes.push("is-labels");
1709
+ }
1710
+ if (props.dots === "outside" || props.card) {
1711
+ classes.push("is-outside");
1712
+ }
1713
+ return classes;
1714
+ });
1715
+ const resetItems = (oldIndex) => {
1716
+ items.value.forEach((item, index) => {
1717
+ item.exposed?.reset?.(index, activeIndex.value, oldIndex);
1718
+ });
1719
+ };
1720
+ const playSlides = () => {
1721
+ allowTransition.value = true;
1722
+ if (activeIndex.value < items.value.length - 1) {
1723
+ activeIndex.value++;
1724
+ } else if (props.loop) {
1725
+ activeIndex.value = 0;
1726
+ }
1727
+ };
1728
+ const pauseTimer = () => {
1729
+ if (timer.value) {
1730
+ clearInterval(timer.value);
1731
+ timer.value = null;
1732
+ }
1733
+ };
1734
+ const startTimer = () => {
1735
+ if (props.t <= 0 || !props.autoplay || timer.value) return;
1736
+ timer.value = setInterval(playSlides, props.t);
1737
+ };
1738
+ const setActiveItem = (index) => {
1739
+ if (typeof index === "string") {
1740
+ const filteredItems = items.value.filter((item) => item.props.name === index);
1741
+ if (filteredItems.length > 0) {
1742
+ index = items.value.indexOf(filteredItems[0]);
1743
+ }
1744
+ }
1745
+ index = Number(index);
1746
+ if (isNaN(index) || index !== Math.floor(index)) {
1747
+ throw new VcError("carousel", "索引必须是整数");
1748
+ }
1749
+ const length = items.value.length;
1750
+ const oldIndex = activeIndex.value;
1751
+ if (index < 0) {
1752
+ activeIndex.value = props.loop ? length - 1 : 0;
1753
+ } else if (index >= length) {
1754
+ activeIndex.value = props.loop ? 0 : length - 1;
1755
+ } else {
1756
+ activeIndex.value = index;
1757
+ }
1758
+ if (oldIndex === activeIndex.value) {
1759
+ resetItems(oldIndex);
1760
+ }
1761
+ };
1762
+ const prev = () => {
1763
+ setActiveItem(activeIndex.value - 1);
1764
+ };
1765
+ const next = () => {
1766
+ setActiveItem(activeIndex.value + 1);
1767
+ };
1768
+ const handleDotClick = (index) => {
1769
+ activeIndex.value = index;
1770
+ };
1771
+ const handleStart = (e) => {
1772
+ allowTransition.value = true;
1773
+ if (!props.draggable) return;
1774
+ pauseTimer();
1775
+ start.value = true;
1776
+ startX.value = e.screenX;
1777
+ startY.value = e.screenY;
1778
+ };
1779
+ const handleMove = (e) => {
1780
+ if (!start.value || !props.draggable) return;
1781
+ offset.value = !props.vertical ? e.screenX - startX.value : e.screenY - startY.value;
1782
+ resetItems();
1783
+ };
1784
+ const handleEnd = () => {
1785
+ if (!props.draggable) return;
1786
+ start.value = false;
1787
+ startTimer();
1788
+ const $offset = Math.abs(offset.value);
1789
+ const $direction = offset.value > 0;
1790
+ offset.value = 0;
1791
+ if ($offset > 5) {
1792
+ $direction && prev();
1793
+ !$direction && next();
1794
+ } else {
1795
+ resetItems();
1796
+ }
1797
+ };
1798
+ watch(
1799
+ () => items.value,
1800
+ (v) => {
1801
+ if (v.length > 0) setActiveItem(props.initialIndex);
1802
+ }
1803
+ );
1804
+ watch(
1805
+ () => activeIndex.value,
1806
+ (v, oldV) => {
1807
+ resetItems(oldV);
1808
+ emit("change", v, oldV);
1809
+ }
1810
+ );
1811
+ watch(
1812
+ () => props.autoplay,
1813
+ (v) => {
1814
+ v ? startTimer() : pauseTimer();
1815
+ }
1816
+ );
1817
+ watch(
1818
+ () => props.loop,
1819
+ () => {
1820
+ setActiveItem(activeIndex.value);
1821
+ }
1822
+ );
1823
+ watch(
1824
+ () => props.t,
1825
+ () => {
1826
+ pauseTimer();
1827
+ startTimer();
1828
+ }
1829
+ );
1830
+ onMounted(() => {
1831
+ nextTick(() => {
1832
+ if (wrapper.value) Resize.on(wrapper.value, resetItems);
1833
+ if (props.initialIndex < items.value.length && props.initialIndex >= 0) {
1834
+ activeIndex.value = props.initialIndex;
1835
+ }
1836
+ startTimer();
1837
+ });
1838
+ });
1839
+ onBeforeUnmount(() => {
1840
+ if (wrapper.value) Resize.off(wrapper.value, resetItems);
1841
+ pauseTimer();
1842
+ startTimer();
1843
+ });
1844
+ const add = (item) => {
1845
+ if (!item) return;
1846
+ nextTick(() => {
1847
+ if (content.value) {
1848
+ const index = Array.from(content.value.children).filter((i) => /vcm?-carousel-item/.test(i.className)).indexOf(item.vnode.el);
1849
+ items.value.splice(index, 0, item);
1850
+ return;
1851
+ }
1852
+ items.value.push(item);
1853
+ });
1854
+ };
1855
+ const remove = (item) => {
1856
+ if (!item) return;
1857
+ items.value.splice(items.value.indexOf(item), 1);
1858
+ };
1859
+ provide("vc-carousel", {
1860
+ props,
1861
+ items,
1862
+ offset,
1863
+ allowTransition,
1864
+ setActiveItem,
1865
+ wrapper,
1866
+ content,
1867
+ add,
1868
+ remove
1869
+ });
1870
+ expose({
1871
+ setActiveItem,
1872
+ prev,
1873
+ next
1874
+ });
1875
+ return {
1876
+ carouselId,
1877
+ allowTransition,
1878
+ items,
1879
+ activeIndex,
1880
+ offset,
1881
+ direction,
1882
+ hasLabel,
1883
+ dotsClasses,
1884
+ start,
1885
+ startX,
1886
+ startY,
1887
+ handleStart,
1888
+ handleMove,
1889
+ handleEnd,
1890
+ handleDotClick,
1891
+ prev,
1892
+ next,
1893
+ setActiveItem,
1894
+ pauseTimer,
1895
+ startTimer
1896
+ };
1897
+ };
1898
+
1899
+ const props$1j = {
1900
+ t: {
1901
+ type: Number,
1902
+ default: 3e3
1903
+ },
1904
+ card: Boolean,
1905
+ gutter: {
1906
+ type: Number,
1907
+ default: 0
1908
+ },
1909
+ height: [String, Number],
1910
+ initialIndex: {
1911
+ type: Number,
1912
+ default: 0
1913
+ },
1914
+ trigger: {
1688
1915
  type: String,
1689
- default: "div"
1916
+ default: "hover"
1917
+ },
1918
+ autoplay: {
1919
+ type: Boolean,
1920
+ default: true
1921
+ },
1922
+ dots: {
1923
+ type: [String, Boolean],
1924
+ default: "bottom"
1925
+ // bottom/outside | false
1926
+ },
1927
+ arrow: {
1928
+ type: [String, Boolean],
1929
+ default: "hover"
1930
+ // hover/always | false
1931
+ },
1932
+ loop: {
1933
+ type: Boolean,
1934
+ default: true
1935
+ },
1936
+ vertical: {
1937
+ type: Boolean,
1938
+ default: false
1939
+ },
1940
+ draggable: {
1941
+ type: Boolean,
1942
+ default: true
1690
1943
  }
1691
1944
  };
1692
1945
 
1693
1946
  /** @jsxImportSource vue */
1694
1947
 
1695
- const COMPONENT_NAME$1W = 'vc-carousel';
1948
+ const COMPONENT_NAME$1$ = 'vc-carousel';
1696
1949
  const Carousel = /* @__PURE__ */ defineComponent({
1697
- name: COMPONENT_NAME$1W,
1950
+ name: COMPONENT_NAME$1$,
1951
+ props: props$1j,
1952
+ setup(props, {
1953
+ slots,
1954
+ expose
1955
+ }) {
1956
+ const isHover = ref(false);
1957
+ const wrapper = ref(null);
1958
+ const content = ref(null);
1959
+ const arrowDisplay = computed(() => {
1960
+ return props.arrow && !props.vertical;
1961
+ });
1962
+ const carousel = useCarousel(wrapper, content, expose);
1963
+ const itemInStage = (item, index, items) => {
1964
+ const length = items.length;
1965
+ const isInStage = item.exposed.isInStage.value;
1966
+ if (index === length - 1 && isInStage && items[0].exposed.isActive.value || isInStage && items[index + 1] && items[index + 1].exposed.isActive.value) {
1967
+ return 'left';
1968
+ } else if (index === 0 && isInStage && items[length - 1].exposed.isActive.value || isInStage && items[index - 1] && items[index - 1].exposed.isActive.value) {
1969
+ return 'right';
1970
+ }
1971
+ return false;
1972
+ };
1973
+ const handleButtonEnter = arrow => {
1974
+ if (props.vertical) return;
1975
+ carousel.items.value.forEach((item, index, items) => {
1976
+ if (arrow === itemInStage(item, index, items)) {
1977
+ item.exposed.isHover.value = true;
1978
+ }
1979
+ });
1980
+ };
1981
+ const handleButtonLeave = () => {
1982
+ if (props.vertical) return;
1983
+ carousel.items.value.forEach(item => {
1984
+ item.exposed.isHover.value = false;
1985
+ });
1986
+ };
1987
+ const handleDotHover = index => {
1988
+ if (props.trigger === 'hover' && index !== carousel.activeIndex.value) {
1989
+ carousel.activeIndex.value = index;
1990
+ }
1991
+ };
1992
+ const handleMouseEnter = () => {
1993
+ isHover.value = true;
1994
+ carousel.pauseTimer();
1995
+ };
1996
+ const handleMouseLeave = () => {
1997
+ isHover.value = false;
1998
+ carousel.startTimer();
1999
+ };
2000
+ const throttledArrowClick = throttle(carousel.setActiveItem);
2001
+ const throttledDotHover = throttle(handleDotHover);
2002
+ return () => {
2003
+ return createVNode("div", {
2004
+ "ref": wrapper,
2005
+ "class": ['vc-carousel', `is-${carousel.direction.value}`],
2006
+ "onMousedown": withModifiers(carousel.handleStart, ['stop', 'prevent']),
2007
+ "onMousemove": withModifiers(carousel.handleMove, ['stop', 'prevent']),
2008
+ "onMouseup": withModifiers(carousel.handleEnd, ['stop', 'prevent']),
2009
+ "onMouseenter": withModifiers(handleMouseEnter, ['stop']),
2010
+ "onMouseleave": withModifiers(handleMouseLeave, ['stop'])
2011
+ }, [createVNode("div", {
2012
+ "ref": content,
2013
+ "class": "vc-carousel__wrapper",
2014
+ "style": {
2015
+ height: props.height ? `${props.height}px` : 'auto'
2016
+ }
2017
+ }, [arrowDisplay.value && createVNode(TransitionSlide, {
2018
+ "mode": "left-part"
2019
+ }, {
2020
+ default: () => [withDirectives(createVNode("button", {
2021
+ "type": "button",
2022
+ "class": "vc-carousel__arrow is-left-arrow",
2023
+ "onMouseenter": () => handleButtonEnter('left'),
2024
+ "onMouseleave": handleButtonLeave,
2025
+ "onClick": withModifiers(() => throttledArrowClick(carousel.activeIndex.value - 1), ['stop'])
2026
+ }, [createVNode(Icon, {
2027
+ "type": "left"
2028
+ }, null)]), [[vShow, (props.arrow === 'always' || isHover.value) && (props.loop || carousel.activeIndex.value > 0)]])]
2029
+ }), arrowDisplay.value && createVNode(TransitionSlide, {
2030
+ "mode": "right-part"
2031
+ }, {
2032
+ default: () => [withDirectives(createVNode("button", {
2033
+ "type": "button",
2034
+ "class": "vc-carousel__arrow is-right-arrow",
2035
+ "onMouseenter": () => handleButtonEnter('right'),
2036
+ "onMouseleave": handleButtonLeave,
2037
+ "onClick": withModifiers(() => throttledArrowClick(carousel.activeIndex.value + 1), ['stop'])
2038
+ }, [createVNode(Icon, {
2039
+ "type": "right"
2040
+ }, null)]), [[vShow, (props.arrow === 'always' || isHover.value) && (props.loop || carousel.activeIndex.value < carousel.items.value.length - 1)]])]
2041
+ }), slots.default?.()]), props.dots && createVNode("ul", {
2042
+ "class": ['vc-carousel__dots', ...carousel.dotsClasses.value]
2043
+ }, [carousel.items.value.map((item, index) => createVNode("li", {
2044
+ "key": index,
2045
+ "class": ['vc-carousel__dot', `is-${carousel.direction.value}`, {
2046
+ 'is-active': index === carousel.activeIndex.value
2047
+ }],
2048
+ "onMouseenter": () => throttledDotHover(index),
2049
+ "onClick": () => carousel.handleDotClick(index)
2050
+ }, [createVNode("button", {
2051
+ "class": "vc-carousel__button"
2052
+ }, [carousel.hasLabel.value && createVNode("span", null, [item.props.label])])]))])]);
2053
+ };
2054
+ }
2055
+ });
2056
+
2057
+ const props$1i = {
2058
+ name: String,
2059
+ label: {
2060
+ type: [String, Number],
2061
+ default: ""
2062
+ },
2063
+ // card大小
2064
+ width: {
2065
+ type: [Number, String],
2066
+ default: "70%"
2067
+ },
2068
+ // card之间间距, 或者滑动时候的间距
2069
+ gutter: {
2070
+ type: Number,
2071
+ default: 0
2072
+ },
2073
+ scale: {
2074
+ type: Number,
2075
+ default: 0.83
2076
+ }
2077
+ };
2078
+
2079
+ const TRANSFORM = prefixStyle("transform").camel;
2080
+ const useCarouselItem = (expose) => {
2081
+ const instance = getCurrentInstance();
2082
+ const carousel = inject("vc-carousel", {});
2083
+ const props = instance.props;
2084
+ const translate = ref(0);
2085
+ const currentScale = ref(1);
2086
+ const isHover = ref(false);
2087
+ const isActive = ref(false);
2088
+ const isReady = ref(false);
2089
+ const isInStage = ref(false);
2090
+ const isAnimating = ref(false);
2091
+ const isVertical = computed(() => {
2092
+ return carousel.props.vertical;
2093
+ });
2094
+ const isCard = computed(() => {
2095
+ return carousel.props.card;
2096
+ });
2097
+ const isMove = computed(() => {
2098
+ return carousel.offset.value !== 0;
2099
+ });
2100
+ const itemGutter = computed(() => {
2101
+ return props.gutter || carousel.props.gutter || 0;
2102
+ });
2103
+ const itemStyle = computed(() => {
2104
+ const translateType = isVertical.value ? "translateY" : "translateX";
2105
+ if (carousel.props.card) {
2106
+ return {
2107
+ [TRANSFORM]: `${translateType}(${translate.value}px) scale(${currentScale.value})`,
2108
+ width: props.width
2109
+ };
2110
+ } else {
2111
+ return {
2112
+ [TRANSFORM]: `${translateType}(${translate.value}px) scale(${currentScale.value})`,
2113
+ width: itemGutter.value ? props.width : "100%"
2114
+ };
2115
+ }
2116
+ });
2117
+ onBeforeMount(() => {
2118
+ carousel.add?.(instance);
2119
+ if (!isCard.value && itemGutter.value && carousel.props.loop) {
2120
+ throw new VcError("carousel", "slide模式下loop不能为true");
2121
+ }
2122
+ });
2123
+ onBeforeUnmount(() => {
2124
+ carousel.remove?.(instance);
2125
+ });
2126
+ const processIndex = (index, activeIndex, length) => {
2127
+ if (activeIndex === 0 && index === length - 1) {
2128
+ return -1;
2129
+ } else if (activeIndex === length - 1 && index === 0) {
2130
+ return length;
2131
+ } else if (index < activeIndex - 1 && activeIndex - index >= length / 2) {
2132
+ return length + 1;
2133
+ } else if (index > activeIndex + 1 && index - activeIndex >= length / 2) {
2134
+ return -2;
2135
+ }
2136
+ return index;
2137
+ };
2138
+ const calcCardTranslate = (index, activeIndex) => {
2139
+ let value;
2140
+ const widthNumber = +props.width / 100;
2141
+ const parentW = carousel.wrapper.value.offsetWidth;
2142
+ if (isInStage.value) {
2143
+ if (index === activeIndex) {
2144
+ value = parentW * (1 - widthNumber) / 2;
2145
+ } else if (index > activeIndex) {
2146
+ value = parentW * (1 + widthNumber * props.scale) / 2 + itemGutter.value;
2147
+ } else {
2148
+ value = -(parentW * ((widthNumber * props.scale - 1) / 2 + widthNumber)) - itemGutter.value;
2149
+ }
2150
+ } else if (index < activeIndex) {
2151
+ value = parentW * (1 - widthNumber) / 2;
2152
+ } else {
2153
+ value = parentW * (1 - widthNumber) / 2;
2154
+ }
2155
+ return value;
2156
+ };
2157
+ const calcSlideOffset = (index, activeIndex, wrapperWidth) => {
2158
+ const { length } = carousel.items.value;
2159
+ const offset = wrapperWidth - (instance.vnode?.el?.offsetWidth || 0);
2160
+ const gutter = itemGutter.value;
2161
+ if (!gutter || isVertical.value) return 0;
2162
+ let slideOffset = 0;
2163
+ if (length === 1) {
2164
+ return offset / 2;
2165
+ }
2166
+ if (activeIndex == 0) {
2167
+ if (index - activeIndex === 0) {
2168
+ slideOffset = gutter;
2169
+ } else if (index - activeIndex === 1) {
2170
+ slideOffset = -offset + gutter * 2;
2171
+ }
2172
+ }
2173
+ if (activeIndex !== 0 && activeIndex != length - 1) {
2174
+ if (index - activeIndex === 0) {
2175
+ slideOffset = offset / 2;
2176
+ } else if (index - activeIndex === 1) {
2177
+ slideOffset = -offset / 2 + gutter;
2178
+ } else if (index - activeIndex === -1) {
2179
+ slideOffset = offset * 3 / 2 - gutter;
2180
+ }
2181
+ }
2182
+ if (activeIndex == length - 1) {
2183
+ if (index - activeIndex === 0) {
2184
+ slideOffset = offset - gutter;
2185
+ } else if (index - activeIndex === -1) {
2186
+ slideOffset = offset * 2 - gutter * 2;
2187
+ }
2188
+ }
2189
+ return slideOffset;
2190
+ };
2191
+ const calcTranslate = (index, activeIndex) => {
2192
+ const distance = carousel.vnode.el[isVertical.value ? "offsetHeight" : "offsetWidth"];
2193
+ const slideOffset = calcSlideOffset(index, activeIndex, distance);
2194
+ return distance * (index - activeIndex) + carousel.offset.value + slideOffset;
2195
+ };
2196
+ const reset = (index, activeIndex, oldIndex) => {
2197
+ const { length } = carousel.items.value;
2198
+ if (carousel.allowTransition.value && !isCard.value && oldIndex !== void 0) {
2199
+ isAnimating.value = index === activeIndex || index === oldIndex;
2200
+ if (!isVertical.value && !isAnimating.value && itemGutter.value && (index - activeIndex === 1 || index - activeIndex === -1)) {
2201
+ isAnimating.value = true;
2202
+ }
2203
+ }
2204
+ if (index !== activeIndex && length > 2 && carousel.props.loop) {
2205
+ index = processIndex(index, activeIndex, length);
2206
+ }
2207
+ if (isCard.value) {
2208
+ if (isVertical.value) {
2209
+ throw new VcError("carousel", "卡片模式不支持垂直方向");
2210
+ }
2211
+ isInStage.value = Math.round(Math.abs(index - activeIndex)) <= 1;
2212
+ isActive.value = index === activeIndex;
2213
+ translate.value = calcCardTranslate(index, activeIndex);
2214
+ currentScale.value = isActive.value ? 1 : props.scale;
2215
+ } else {
2216
+ isActive.value = index === activeIndex;
2217
+ translate.value = calcTranslate(index, activeIndex);
2218
+ }
2219
+ isReady.value = true;
2220
+ };
2221
+ const handleItemClick = () => {
2222
+ if (parent && isCard.value) {
2223
+ const index = carousel.items.value.indexOf(instance);
2224
+ carousel.setActiveItem(index);
2225
+ }
2226
+ };
2227
+ expose({
2228
+ reset,
2229
+ isInStage,
2230
+ isHover,
2231
+ isActive
2232
+ });
2233
+ return {
2234
+ translate,
2235
+ currentScale,
2236
+ isHover,
2237
+ isActive,
2238
+ isReady,
2239
+ isInStage,
2240
+ isAnimating,
2241
+ isVertical,
2242
+ isCard,
2243
+ isMove,
2244
+ itemGutter,
2245
+ itemStyle,
2246
+ reset,
2247
+ handleItemClick
2248
+ };
2249
+ };
2250
+
2251
+ /** @jsxImportSource vue */
2252
+
2253
+ const COMPONENT_NAME$1_ = 'vc-carousel-item';
2254
+ const CarouselItem = /* @__PURE__ */ defineComponent({
2255
+ name: COMPONENT_NAME$1_,
1698
2256
  props: props$1i,
2257
+ setup(_, {
2258
+ slots,
2259
+ expose
2260
+ }) {
2261
+ const it = useCarouselItem(expose);
2262
+ return () => {
2263
+ return withDirectives(createVNode("div", {
2264
+ "class": ['vc-carousel-item', {
2265
+ 'is-active': it.isActive.value,
2266
+ 'is-card': it.isCard.value,
2267
+ 'is-in-stage': it.isInStage.value,
2268
+ 'is-hover': it.isHover.value,
2269
+ 'is-animating': it.isAnimating.value && !it.isMove.value
2270
+ }],
2271
+ "style": it.itemStyle.value,
2272
+ "onClick": it.handleItemClick
2273
+ }, [it.isCard.value && withDirectives(createVNode("div", {
2274
+ "class": "vc-carousel-item__mask"
2275
+ }, null), [[vShow, !it.isActive.value]]), slots.default?.()]), [[vShow, it.isReady.value]]);
2276
+ };
2277
+ }
2278
+ });
2279
+
2280
+ /** @jsxImportSource vue */
2281
+
2282
+ const COMPONENT_NAME$1Z = 'vcm-carousel';
2283
+ const MCarousel = /* @__PURE__ */ defineComponent({
2284
+ name: COMPONENT_NAME$1Z,
2285
+ props: {
2286
+ ...props$1j,
2287
+ dots: {
2288
+ type: [String, Boolean],
2289
+ default: false
2290
+ },
2291
+ indicator: {
2292
+ type: Boolean,
2293
+ default: true
2294
+ }
2295
+ },
1699
2296
  setup(props, {
1700
- slots
2297
+ slots,
2298
+ expose
1701
2299
  }) {
2300
+ const wrapper = ref(null);
2301
+ const content = ref(null);
2302
+ const carousel = useCarousel(wrapper, content, expose);
2303
+ let scrollStatus = 0;
2304
+ const handleTouchStart = e => {
2305
+ carousel.handleStart(e.touches[0]);
2306
+ scrollStatus = 0;
2307
+ };
2308
+ const handleTouchMove = e => {
2309
+ const absX = Math.abs(e.touches[0].screenX - carousel.startX.value);
2310
+ const absY = Math.abs(e.touches[0].screenY - carousel.startY.value);
2311
+ if (!props.vertical && absX > absY && scrollStatus !== 1) {
2312
+ e.preventDefault();
2313
+ carousel.handleMove(e.touches[0]);
2314
+ scrollStatus = 2;
2315
+ return;
2316
+ }
2317
+ if (props.vertical && absY > absX) {
2318
+ e.preventDefault();
2319
+ carousel.handleMove(e.touches[0]);
2320
+ return;
2321
+ }
2322
+ if (scrollStatus === 0) {
2323
+ scrollStatus = 1;
2324
+ }
2325
+ };
2326
+
2327
+ // e.changedTouches[0]
2328
+ const handleTouchEnd = () => {
2329
+ carousel.handleEnd();
2330
+ scrollStatus = 0;
2331
+ };
1702
2332
  return () => {
1703
2333
  return createVNode("div", {
1704
- "class": "vc-carousel"
1705
- }, [slots?.default?.()]);
2334
+ "ref": wrapper,
2335
+ "class": ['vcm-carousel', `is-${carousel.direction.value}`],
2336
+ "onTouchstart": withModifiers(handleTouchStart, ['stop']),
2337
+ "onTouchmove": withModifiers(handleTouchMove, ['stop']),
2338
+ "onTouchend": withModifiers(handleTouchEnd, ['stop'])
2339
+ }, [createVNode("div", {
2340
+ "ref": content,
2341
+ "style": {
2342
+ height: props.height ? `${props.height}px` : 'auto'
2343
+ },
2344
+ "class": "vcm-carousel__wrapper"
2345
+ }, [slots.default?.()]), props.dots && createVNode("ul", {
2346
+ "class": ['vcm-carousel__dots', ...carousel.dotsClasses.value]
2347
+ }, [carousel.items.value.map((_, index) => createVNode("li", {
2348
+ "key": index,
2349
+ "class": ['vcm-carousel__dot', 'is-' + carousel.direction.value, {
2350
+ 'is-active': index === carousel.activeIndex.value
2351
+ }],
2352
+ "onClick": e => {
2353
+ e.stopPropagation();
2354
+ carousel.handleDotClick(index);
2355
+ }
2356
+ }, [createVNode("button", {
2357
+ "class": "vcm-carousel__button"
2358
+ }, [carousel.hasLabel.value && createVNode("span", null, [carousel.items.value[index].props.label])])]))]), !props.card && props.indicator && createVNode("div", {
2359
+ "class": "vcm-carousel__indicator"
2360
+ }, [createVNode("span", null, [carousel.activeIndex.value + 1]), createVNode("span", null, [createTextVNode(" / ")]), createVNode("span", null, [carousel.items.value.length])])]);
1706
2361
  };
1707
2362
  }
1708
2363
  });
1709
2364
 
1710
- const MCarousel = Carousel;
2365
+ /** @jsxImportSource vue */
2366
+
2367
+ const COMPONENT_NAME$1Y = 'vcm-carousel-item';
2368
+ const MCarouselItem = /* @__PURE__ */ defineComponent({
2369
+ name: COMPONENT_NAME$1Y,
2370
+ props: props$1i,
2371
+ setup(_, {
2372
+ slots,
2373
+ expose
2374
+ }) {
2375
+ const it = useCarouselItem(expose);
2376
+ return () => {
2377
+ return withDirectives(createVNode("div", {
2378
+ "style": it.itemStyle.value,
2379
+ "class": {
2380
+ 'vcm-carousel-item': true,
2381
+ 'is-active': it.isActive.value,
2382
+ 'is-card': it.isCard.value,
2383
+ 'is-animating': it.isAnimating.value && !it.isMove.value,
2384
+ 'is-in-stage': it.isInStage.value
2385
+ },
2386
+ "onClick": it.handleItemClick
2387
+ }, [it.isCard.value && !it.isActive.value && createVNode("div", {
2388
+ "class": "vcm-carousel-item__mask"
2389
+ }, null), slots.default?.()]), [[vShow, it.isReady.value]]);
2390
+ };
2391
+ }
2392
+ });
1711
2393
 
1712
2394
  const getSelectedData = (value = [], source = []) => {
1713
2395
  const label = [];
@@ -1988,9 +2670,9 @@ const useNativeEmitter = (input, expose) => {
1988
2670
 
1989
2671
  /** @jsxImportSource vue */
1990
2672
 
1991
- const COMPONENT_NAME$1V = 'vc-input';
2673
+ const COMPONENT_NAME$1X = 'vc-input';
1992
2674
  const Input = /* @__PURE__ */ defineComponent({
1993
- name: COMPONENT_NAME$1V,
2675
+ name: COMPONENT_NAME$1X,
1994
2676
  inheritAttrs: false,
1995
2677
  props: {
1996
2678
  ...props$1h,
@@ -2325,9 +3007,9 @@ const useInputNumber = () => {
2325
3007
 
2326
3008
  /** @jsxImportSource vue */
2327
3009
 
2328
- const COMPONENT_NAME$1U = 'vc-input-number';
3010
+ const COMPONENT_NAME$1W = 'vc-input-number';
2329
3011
  const InputNumber = /* @__PURE__ */ defineComponent({
2330
- name: COMPONENT_NAME$1U,
3012
+ name: COMPONENT_NAME$1W,
2331
3013
  props: props$1g,
2332
3014
  inheritAttrs: false,
2333
3015
  setup(props, {
@@ -2391,9 +3073,9 @@ const props$1f = {
2391
3073
 
2392
3074
  /** @jsxImportSource vue */
2393
3075
 
2394
- const COMPONENT_NAME$1T = 'vc-input-search';
3076
+ const COMPONENT_NAME$1V = 'vc-input-search';
2395
3077
  const InputSearch = /* @__PURE__ */ defineComponent({
2396
- name: COMPONENT_NAME$1T,
3078
+ name: COMPONENT_NAME$1V,
2397
3079
  props: props$1f,
2398
3080
  inheritAttrs: false,
2399
3081
  setup(props, {
@@ -2786,9 +3468,9 @@ const props$1c = {
2786
3468
  }
2787
3469
  };
2788
3470
 
2789
- const COMPONENT_NAME$1S = "vc-customer";
3471
+ const COMPONENT_NAME$1U = "vc-customer";
2790
3472
  const Customer = defineComponent({
2791
- name: COMPONENT_NAME$1S,
3473
+ name: COMPONENT_NAME$1U,
2792
3474
  props: props$1c,
2793
3475
  setup(props, context) {
2794
3476
  return () => h(() => {
@@ -2864,7 +3546,7 @@ class PortalLeaf {
2864
3546
  }
2865
3547
  }
2866
3548
 
2867
- const COMPONENT_NAME$1R = "vc-portal";
3549
+ const COMPONENT_NAME$1T = "vc-portal";
2868
3550
  class Portal {
2869
3551
  /**
2870
3552
  * 清理Portals类型组件
@@ -2914,7 +3596,7 @@ class Portal {
2914
3596
  this.wrapper = wrapper;
2915
3597
  this.globalOptions = {
2916
3598
  ...options,
2917
- name: options?.name || wrapper.name || Utils.getUid(COMPONENT_NAME$1R)
3599
+ name: options?.name || wrapper.name || Utils.getUid(COMPONENT_NAME$1T)
2918
3600
  };
2919
3601
  }
2920
3602
  popup(propsData, options) {
@@ -3012,7 +3694,7 @@ class Portal {
3012
3694
  ...rest
3013
3695
  } = options;
3014
3696
  let useAllNodes = fragment;
3015
- const name = multiple ? `${name$}__${Utils.getUid(COMPONENT_NAME$1R)}` : name$;
3697
+ const name = multiple ? `${name$}__${Utils.getUid(COMPONENT_NAME$1T)}` : name$;
3016
3698
  const container = document.createElement(tag);
3017
3699
  const root = typeof el === "object" ? el : document.querySelector(el || "body");
3018
3700
  !alive && Portal.leafs.get(name)?.destroy();
@@ -3046,7 +3728,7 @@ class Portal {
3046
3728
  } else {
3047
3729
  const wrapper = this.wrapper;
3048
3730
  const app = createApp({
3049
- name: COMPONENT_NAME$1R,
3731
+ name: COMPONENT_NAME$1T,
3050
3732
  parent,
3051
3733
  setup() {
3052
3734
  if (alive) {
@@ -3157,13 +3839,13 @@ const props$1b = {
3157
3839
  }
3158
3840
  };
3159
3841
 
3160
- const COMPONENT_NAME$1Q = 'vc-portal-view';
3842
+ const COMPONENT_NAME$1S = 'vc-portal-view';
3161
3843
 
3162
3844
  /**
3163
3845
  * 写法不同,但与vue@2.x 保持一致
3164
3846
  */
3165
3847
  const PortalView = /* @__PURE__ */ defineComponent({
3166
- name: COMPONENT_NAME$1Q,
3848
+ name: COMPONENT_NAME$1S,
3167
3849
  props: props$1b,
3168
3850
  setup(props, {
3169
3851
  slots
@@ -3183,9 +3865,9 @@ const PortalView = /* @__PURE__ */ defineComponent({
3183
3865
 
3184
3866
  /** @jsxImportSource vue */
3185
3867
 
3186
- const COMPONENT_NAME$1P = 'vc-popover-wrapper';
3868
+ const COMPONENT_NAME$1R = 'vc-popover-wrapper';
3187
3869
  const PopoverWrapper = /* @__PURE__ */ defineComponent({
3188
- name: COMPONENT_NAME$1P,
3870
+ name: COMPONENT_NAME$1R,
3189
3871
  props: props$1e,
3190
3872
  emits: ['portal-fulfilled', 'close'],
3191
3873
  setup(props, {
@@ -3443,9 +4125,9 @@ const PopoverPortal = new Portal(PopoverWrapper, {
3443
4125
 
3444
4126
  /** @jsxImportSource vue */
3445
4127
 
3446
- const COMPONENT_NAME$1O = 'vc-popover';
4128
+ const COMPONENT_NAME$1Q = 'vc-popover';
3447
4129
  const Popover$1 = /* @__PURE__ */ defineComponent({
3448
- name: COMPONENT_NAME$1O,
4130
+ name: COMPONENT_NAME$1Q,
3449
4131
  props: props$1d,
3450
4132
  emits: ['update:modelValue', 'visible-change', 'ready', 'close'],
3451
4133
  setup(props, {
@@ -3589,9 +4271,9 @@ const Popover = Object.assign(Popover$1, {
3589
4271
 
3590
4272
  /** @jsxImportSource vue */
3591
4273
 
3592
- const COMPONENT_NAME$1N = 'vc-cascader-column';
4274
+ const COMPONENT_NAME$1P = 'vc-cascader-column';
3593
4275
  const CascaderColumn = /* @__PURE__ */ defineComponent({
3594
- name: COMPONENT_NAME$1N,
4276
+ name: COMPONENT_NAME$1P,
3595
4277
  emits: ['click', 'change'],
3596
4278
  props: {
3597
4279
  data: {
@@ -3799,9 +4481,9 @@ const props$19 = {
3799
4481
 
3800
4482
  /** @jsxImportSource vue */
3801
4483
 
3802
- const COMPONENT_NAME$1M = 'vc-cascader';
4484
+ const COMPONENT_NAME$1O = 'vc-cascader';
3803
4485
  const Cascader = /* @__PURE__ */ defineComponent({
3804
- name: COMPONENT_NAME$1M,
4486
+ name: COMPONENT_NAME$1O,
3805
4487
  inheritAttrs: false,
3806
4488
  props: props$19,
3807
4489
  emits: ['update:modelValue', 'visible-change', 'ready', 'change', 'close'],
@@ -4153,9 +4835,9 @@ const props$18 = {
4153
4835
 
4154
4836
  /** @jsxImportSource vue */
4155
4837
 
4156
- const COMPONENT_NAME$1L = 'vc-chart';
4838
+ const COMPONENT_NAME$1N = 'vc-chart';
4157
4839
  const Chart = /* @__PURE__ */ defineComponent({
4158
- name: COMPONENT_NAME$1L,
4840
+ name: COMPONENT_NAME$1N,
4159
4841
  props: props$18,
4160
4842
  emits: [...EVENTS, 'ready'],
4161
4843
  setup(props, {
@@ -4394,9 +5076,9 @@ const useCheckbox = () => {
4394
5076
 
4395
5077
  /** @jsxImportSource vue */
4396
5078
 
4397
- const COMPONENT_NAME$1K = 'vc-checkbox';
5079
+ const COMPONENT_NAME$1M = 'vc-checkbox';
4398
5080
  const Checkbox = /* @__PURE__ */ defineComponent({
4399
- name: COMPONENT_NAME$1K,
5081
+ name: COMPONENT_NAME$1M,
4400
5082
  props: props$17,
4401
5083
  emits: ['update:modelValue', 'change'],
4402
5084
  setup(props, {
@@ -4483,9 +5165,9 @@ const useCheckboxGroup = () => {
4483
5165
 
4484
5166
  /** @jsxImportSource vue */
4485
5167
 
4486
- const COMPONENT_NAME$1J = 'vc-checkbox-group';
5168
+ const COMPONENT_NAME$1L = 'vc-checkbox-group';
4487
5169
  const CheckboxGroup = /* @__PURE__ */ defineComponent({
4488
- name: COMPONENT_NAME$1J,
5170
+ name: COMPONENT_NAME$1L,
4489
5171
  props: props$16,
4490
5172
  emits: ['update:modelValue', 'change'],
4491
5173
  setup(props, {
@@ -4503,9 +5185,9 @@ const CheckboxGroup = /* @__PURE__ */ defineComponent({
4503
5185
 
4504
5186
  /** @jsxImportSource vue */
4505
5187
 
4506
- const COMPONENT_NAME$1I = 'vcm-checkbox';
5188
+ const COMPONENT_NAME$1K = 'vcm-checkbox';
4507
5189
  const MCheckbox = /* @__PURE__ */ defineComponent({
4508
- name: COMPONENT_NAME$1I,
5190
+ name: COMPONENT_NAME$1K,
4509
5191
  props: props$17,
4510
5192
  emits: ['update:modelValue', 'change'],
4511
5193
  setup(props, {
@@ -4545,9 +5227,9 @@ const MCheckbox = /* @__PURE__ */ defineComponent({
4545
5227
 
4546
5228
  /** @jsxImportSource vue */
4547
5229
 
4548
- const COMPONENT_NAME$1H = 'vcm-checkbox-group';
5230
+ const COMPONENT_NAME$1J = 'vcm-checkbox-group';
4549
5231
  const MCheckboxGroup = /* @__PURE__ */ defineComponent({
4550
- name: COMPONENT_NAME$1H,
5232
+ name: COMPONENT_NAME$1J,
4551
5233
  props: props$16,
4552
5234
  emits: ['update:modelValue', 'change'],
4553
5235
  setup(props, {
@@ -4601,9 +5283,9 @@ const props$15 = {
4601
5283
 
4602
5284
  /** @jsxImportSource vue */
4603
5285
 
4604
- const COMPONENT_NAME$1G = 'vc-message';
5286
+ const COMPONENT_NAME$1I = 'vc-message';
4605
5287
  const MessageView = /* @__PURE__ */ defineComponent({
4606
- name: COMPONENT_NAME$1G,
5288
+ name: COMPONENT_NAME$1I,
4607
5289
  emits: ['before-close', 'close', 'portal-fulfilled'],
4608
5290
  props: props$15,
4609
5291
  setup(props, {
@@ -4852,9 +5534,9 @@ const useClipboard = (done) => {
4852
5534
  return () => h(props.tag, { onClick: handleClick, class: "vc-clipboard" }, slots?.default?.());
4853
5535
  };
4854
5536
 
4855
- const COMPONENT_NAME$1F = "vc-clipboard";
5537
+ const COMPONENT_NAME$1H = "vc-clipboard";
4856
5538
  const Clipboard$1 = defineComponent({
4857
- name: COMPONENT_NAME$1F,
5539
+ name: COMPONENT_NAME$1H,
4858
5540
  props: props$14,
4859
5541
  setup() {
4860
5542
  return useClipboard((content) => Message.success({ content }));
@@ -4894,9 +5576,9 @@ const MTransitionZoom = TransitionZoom;
4894
5576
 
4895
5577
  /** @jsxImportSource vue */
4896
5578
 
4897
- const COMPONENT_NAME$1E = 'vcm-toast';
5579
+ const COMPONENT_NAME$1G = 'vcm-toast';
4898
5580
  const MToastView = /* @__PURE__ */ defineComponent({
4899
- name: COMPONENT_NAME$1E,
5581
+ name: COMPONENT_NAME$1G,
4900
5582
  emits: ['close', 'portal-fulfilled'],
4901
5583
  props: props$13,
4902
5584
  setup(props, {
@@ -4998,9 +5680,9 @@ const warning$2 = create$3({ mode: "warning" });
4998
5680
  const error$2 = create$3({ mode: "error" });
4999
5681
  const MToast = Object.assign(MToastView, { destroy: destroy$4, info: info$2, success: success$2, loading, warning: warning$2, error: error$2 });
5000
5682
 
5001
- const COMPONENT_NAME$1D = "vcm-clipboard";
5683
+ const COMPONENT_NAME$1F = "vcm-clipboard";
5002
5684
  const MClipboard$1 = defineComponent({
5003
- name: COMPONENT_NAME$1D,
5685
+ name: COMPONENT_NAME$1F,
5004
5686
  props: props$14,
5005
5687
  setup() {
5006
5688
  return useClipboard((content) => MToast.info({ content }));
@@ -5032,9 +5714,9 @@ const props$12 = {
5032
5714
  }
5033
5715
  };
5034
5716
 
5035
- const COMPONENT_NAME$1C = "vc-collapse";
5717
+ const COMPONENT_NAME$1E = "vc-collapse";
5036
5718
  const Collapse = defineComponent({
5037
- name: COMPONENT_NAME$1C,
5719
+ name: COMPONENT_NAME$1E,
5038
5720
  props: props$12,
5039
5721
  emits: ["update:moodelValue", "change"],
5040
5722
  setup(props, { slots, emit }) {
@@ -5151,9 +5833,9 @@ const props$10 = {
5151
5833
  function _isSlot$3(s) {
5152
5834
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
5153
5835
  }
5154
- const COMPONENT_NAME$1B = 'vc-expand';
5836
+ const COMPONENT_NAME$1D = 'vc-expand';
5155
5837
  const Expand$1 = /* @__PURE__ */ defineComponent({
5156
- name: COMPONENT_NAME$1B,
5838
+ name: COMPONENT_NAME$1D,
5157
5839
  props: props$10,
5158
5840
  setup(props, {
5159
5841
  slots
@@ -5183,9 +5865,9 @@ const Expand$1 = /* @__PURE__ */ defineComponent({
5183
5865
 
5184
5866
  /** @jsxImportSource vue */
5185
5867
 
5186
- const COMPONENT_NAME$1A = 'vc-collapse-item';
5868
+ const COMPONENT_NAME$1C = 'vc-collapse-item';
5187
5869
  const CollapseItem = /* @__PURE__ */ defineComponent({
5188
- name: COMPONENT_NAME$1A,
5870
+ name: COMPONENT_NAME$1C,
5189
5871
  props: props$11,
5190
5872
  setup(props, {
5191
5873
  slots,
@@ -5260,9 +5942,9 @@ const props$$ = {
5260
5942
 
5261
5943
  /** @jsxImportSource vue */
5262
5944
 
5263
- const COMPONENT_NAME$1z = 'vc-color-picker';
5945
+ const COMPONENT_NAME$1B = 'vc-color-picker';
5264
5946
  const ColorPicker = /* @__PURE__ */ defineComponent({
5265
- name: COMPONENT_NAME$1z,
5947
+ name: COMPONENT_NAME$1B,
5266
5948
  props: props$$,
5267
5949
  setup(props, {
5268
5950
  slots
@@ -5325,9 +6007,9 @@ const formatter = (format, arr) => {
5325
6007
  function _isSlot$2(s) {
5326
6008
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
5327
6009
  }
5328
- const COMPONENT_NAME$1y = 'vc-countdown';
6010
+ const COMPONENT_NAME$1A = 'vc-countdown';
5329
6011
  const Countdown = /* @__PURE__ */ defineComponent({
5330
- name: COMPONENT_NAME$1y,
6012
+ name: COMPONENT_NAME$1A,
5331
6013
  props: props$_,
5332
6014
  emits: ['change', 'complete', 'error'],
5333
6015
  setup(props, {
@@ -5339,6 +6021,7 @@ const Countdown = /* @__PURE__ */ defineComponent({
5339
6021
  const minute = ref('');
5340
6022
  const second = ref('');
5341
6023
  const millisecond = ref('');
6024
+ const isComplete = ref(false);
5342
6025
  const showResult = computed(() => {
5343
6026
  return !props.render && !slots.default;
5344
6027
  });
@@ -5411,15 +6094,18 @@ const Countdown = /* @__PURE__ */ defineComponent({
5411
6094
 
5412
6095
  if (timestamp <= 0) {
5413
6096
  stop();
5414
- emit('change', {
5415
- timestamp: 0,
5416
- day: '00',
5417
- hour: '00',
5418
- minute: '00',
5419
- second: '00',
5420
- millisecond: '00'
5421
- });
5422
- emit('complete');
6097
+ if (!isComplete.value) {
6098
+ isComplete.value = true;
6099
+ emit('change', {
6100
+ timestamp: 0,
6101
+ day: '00',
6102
+ hour: '00',
6103
+ minute: '00',
6104
+ second: '00',
6105
+ millisecond: '00'
6106
+ });
6107
+ emit('complete');
6108
+ }
5423
6109
  } else {
5424
6110
  emit('change', {
5425
6111
  timestamp,
@@ -5434,6 +6120,8 @@ const Countdown = /* @__PURE__ */ defineComponent({
5434
6120
  const start = () => {
5435
6121
  if (targetTimestamp.value) {
5436
6122
  timer && clearInterval(timer);
6123
+ isComplete.value = false;
6124
+ run(); // 立即执行一次,界面马上展示当前数值
5437
6125
  timer = setInterval(run, T.value);
5438
6126
  }
5439
6127
  };
@@ -5594,9 +6282,9 @@ const value2separated = (value, options) => {
5594
6282
  function _isSlot$1(s) {
5595
6283
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
5596
6284
  }
5597
- const COMPONENT_NAME$1x = 'vc-counter';
6285
+ const COMPONENT_NAME$1z = 'vc-counter';
5598
6286
  const Counter = /* @__PURE__ */ defineComponent({
5599
- name: COMPONENT_NAME$1x,
6287
+ name: COMPONENT_NAME$1z,
5600
6288
  props: props$Z,
5601
6289
  emits: ['begin', 'complete', 'change'],
5602
6290
  setup(props, {
@@ -6859,9 +7547,9 @@ const getTimeType = type => {
6859
7547
  }
6860
7548
  return view;
6861
7549
  };
6862
- const COMPONENT_NAME$1w = 'vc-date-confirm';
7550
+ const COMPONENT_NAME$1y = 'vc-date-confirm';
6863
7551
  const Confirm = /* @__PURE__ */ defineComponent({
6864
- name: COMPONENT_NAME$1w,
7552
+ name: COMPONENT_NAME$1y,
6865
7553
  props: {
6866
7554
  showTime: {
6867
7555
  type: Boolean,
@@ -6925,9 +7613,9 @@ const Confirm = /* @__PURE__ */ defineComponent({
6925
7613
 
6926
7614
  /** @jsxImportSource vue */
6927
7615
 
6928
- const COMPONENT_NAME$1v = 'vc-date-header';
7616
+ const COMPONENT_NAME$1x = 'vc-date-header';
6929
7617
  const DateHeader = /* @__PURE__ */ defineComponent({
6930
- name: COMPONENT_NAME$1v,
7618
+ name: COMPONENT_NAME$1x,
6931
7619
  props: {
6932
7620
  panelDate: Date,
6933
7621
  showNext: {
@@ -7011,9 +7699,9 @@ const DateHeader = /* @__PURE__ */ defineComponent({
7011
7699
 
7012
7700
  /** @jsxImportSource vue */
7013
7701
 
7014
- const COMPONENT_NAME$1u = 'vc-date-table';
7702
+ const COMPONENT_NAME$1w = 'vc-date-table';
7015
7703
  const DateTable = /* @__PURE__ */ defineComponent({
7016
- name: COMPONENT_NAME$1u,
7704
+ name: COMPONENT_NAME$1w,
7017
7705
  props: {
7018
7706
  value: Array,
7019
7707
  firstDayOfWeek: {
@@ -7222,9 +7910,9 @@ const DateTable = /* @__PURE__ */ defineComponent({
7222
7910
 
7223
7911
  /** @jsxImportSource vue */
7224
7912
 
7225
- const COMPONENT_NAME$1t = 'vc-month-table';
7913
+ const COMPONENT_NAME$1v = 'vc-month-table';
7226
7914
  const MonthTable = /* @__PURE__ */ defineComponent({
7227
- name: COMPONENT_NAME$1t,
7915
+ name: COMPONENT_NAME$1v,
7228
7916
  props: {
7229
7917
  value: Array,
7230
7918
  panelDate: Date,
@@ -7356,7 +8044,7 @@ const MonthTable = /* @__PURE__ */ defineComponent({
7356
8044
 
7357
8045
  /** @jsxImportSource vue */
7358
8046
 
7359
- const COMPONENT_NAME$1s = 'vc-quarter-table';
8047
+ const COMPONENT_NAME$1u = 'vc-quarter-table';
7360
8048
 
7361
8049
  /**
7362
8050
  * 获取季度对应的月份范围
@@ -7390,7 +8078,7 @@ const getQuarterRangeByMonth = value => {
7390
8078
  }
7391
8079
  };
7392
8080
  const QuarterTable = /* @__PURE__ */ defineComponent({
7393
- name: COMPONENT_NAME$1s,
8081
+ name: COMPONENT_NAME$1u,
7394
8082
  props: {
7395
8083
  value: Array,
7396
8084
  panelDate: Date,
@@ -7513,9 +8201,9 @@ const QuarterTable = /* @__PURE__ */ defineComponent({
7513
8201
 
7514
8202
  /** @jsxImportSource vue */
7515
8203
 
7516
- const COMPONENT_NAME$1r = 'vc-shortcuts-select';
8204
+ const COMPONENT_NAME$1t = 'vc-shortcuts-select';
7517
8205
  const ShortcutsSelect = /* @__PURE__ */ defineComponent({
7518
- name: COMPONENT_NAME$1r,
8206
+ name: COMPONENT_NAME$1t,
7519
8207
  props: {
7520
8208
  panelDate: Date,
7521
8209
  config: Array,
@@ -7555,9 +8243,9 @@ const ShortcutsSelect = /* @__PURE__ */ defineComponent({
7555
8243
 
7556
8244
  /** @jsxImportSource vue */
7557
8245
 
7558
- const COMPONENT_NAME$1q = 'vc-time-select';
8246
+ const COMPONENT_NAME$1s = 'vc-time-select';
7559
8247
  const TimeSelect = /* @__PURE__ */ defineComponent({
7560
- name: COMPONENT_NAME$1q,
8248
+ name: COMPONENT_NAME$1s,
7561
8249
  props: {
7562
8250
  hours: {
7563
8251
  type: [Number, String],
@@ -7837,9 +8525,9 @@ const TimeSelect = /* @__PURE__ */ defineComponent({
7837
8525
 
7838
8526
  /** @jsxImportSource vue */
7839
8527
 
7840
- const COMPONENT_NAME$1p = 'vc-year-table';
8528
+ const COMPONENT_NAME$1r = 'vc-year-table';
7841
8529
  const YearTable = /* @__PURE__ */ defineComponent({
7842
- name: COMPONENT_NAME$1p,
8530
+ name: COMPONENT_NAME$1r,
7843
8531
  props: {
7844
8532
  value: Array,
7845
8533
  panelDate: Date,
@@ -7962,9 +8650,9 @@ const getDateIsInRange = (value, type, leftPanelDate, rightPanelDate) => {
7962
8650
  }
7963
8651
  return true;
7964
8652
  };
7965
- const COMPONENT_NAME$1o = 'vc-date-range-panel';
8653
+ const COMPONENT_NAME$1q = 'vc-date-range-panel';
7966
8654
  const DateRangePanel = /* @__PURE__ */ defineComponent({
7967
- name: COMPONENT_NAME$1o,
8655
+ name: COMPONENT_NAME$1q,
7968
8656
  props: {
7969
8657
  ...props$W,
7970
8658
  confirm: {
@@ -8343,9 +9031,9 @@ const DateRangePanel = /* @__PURE__ */ defineComponent({
8343
9031
 
8344
9032
  /** @jsxImportSource vue */
8345
9033
 
8346
- const COMPONENT_NAME$1n = 'vc-date-panel';
9034
+ const COMPONENT_NAME$1p = 'vc-date-panel';
8347
9035
  const DatePanel = /* @__PURE__ */ defineComponent({
8348
- name: COMPONENT_NAME$1n,
9036
+ name: COMPONENT_NAME$1p,
8349
9037
  props: {
8350
9038
  ...props$W,
8351
9039
  type: String,
@@ -8553,9 +9241,9 @@ const isEqualYear$1 = value => {
8553
9241
  const endYear = value[1].getFullYear();
8554
9242
  return startYear === endYear;
8555
9243
  };
8556
- const COMPONENT_NAME$1m = 'vc-monthrange-panel';
9244
+ const COMPONENT_NAME$1o = 'vc-monthrange-panel';
8557
9245
  const MonthRangePanel = /* @__PURE__ */ defineComponent({
8558
- name: COMPONENT_NAME$1m,
9246
+ name: COMPONENT_NAME$1o,
8559
9247
  props: {
8560
9248
  ...props$W,
8561
9249
  confirm: {
@@ -8730,9 +9418,9 @@ const isEqualYear = value => {
8730
9418
  const endYear = value[1].getFullYear();
8731
9419
  return startYear === endYear;
8732
9420
  };
8733
- const COMPONENT_NAME$1l = 'vc-quarterrange-panel';
9421
+ const COMPONENT_NAME$1n = 'vc-quarterrange-panel';
8734
9422
  const QuarterRangePanel = /* @__PURE__ */ defineComponent({
8735
- name: COMPONENT_NAME$1l,
9423
+ name: COMPONENT_NAME$1n,
8736
9424
  props: {
8737
9425
  ...props$W,
8738
9426
  confirm: {
@@ -8971,9 +9659,9 @@ const getComparedDate = (leftDate, rightDate) => {
8971
9659
  seconds
8972
9660
  };
8973
9661
  };
8974
- const COMPONENT_NAME$1k = 'vc-timerange-panel';
9662
+ const COMPONENT_NAME$1m = 'vc-timerange-panel';
8975
9663
  const TimeRangePanel = /* @__PURE__ */ defineComponent({
8976
- name: COMPONENT_NAME$1k,
9664
+ name: COMPONENT_NAME$1m,
8977
9665
  props: props$V,
8978
9666
  emits: ['pick', 'clear', 'ok'],
8979
9667
  setup(props, {
@@ -9074,9 +9762,9 @@ const TimeRangePanel = /* @__PURE__ */ defineComponent({
9074
9762
 
9075
9763
  /** @jsxImportSource vue */
9076
9764
 
9077
- const COMPONENT_NAME$1j = 'vc-time-panel';
9765
+ const COMPONENT_NAME$1l = 'vc-time-panel';
9078
9766
  const TimePanel = /* @__PURE__ */ defineComponent({
9079
- name: COMPONENT_NAME$1j,
9767
+ name: COMPONENT_NAME$1l,
9080
9768
  props: props$V,
9081
9769
  emits: ['pick', 'clear', 'ok'],
9082
9770
  setup(props, {
@@ -9132,7 +9820,7 @@ const TimePanel = /* @__PURE__ */ defineComponent({
9132
9820
 
9133
9821
  /** @jsxImportSource vue */
9134
9822
 
9135
- const COMPONENT_NAME$1i = 'vc-date-picker';
9823
+ const COMPONENT_NAME$1k = 'vc-date-picker';
9136
9824
  const getPanel$1 = type => {
9137
9825
  if (['daterange', 'datetimerange'].includes(type)) {
9138
9826
  return DateRangePanel;
@@ -9143,7 +9831,7 @@ const getPanel$1 = type => {
9143
9831
  }
9144
9832
  return DatePanel;
9145
9833
  };
9146
- const DatePicker = createPicker(COMPONENT_NAME$1i, props$Y, () => {
9834
+ const DatePicker = createPicker(COMPONENT_NAME$1k, props$Y, () => {
9147
9835
  const props = getCurrentInstance().props;
9148
9836
  const icon = ref('date');
9149
9837
  const panel = shallowRef({});
@@ -9184,9 +9872,9 @@ const props$U = {
9184
9872
 
9185
9873
  /** @jsxImportSource vue */
9186
9874
 
9187
- const COMPONENT_NAME$1h = 'vc-divider';
9875
+ const COMPONENT_NAME$1j = 'vc-divider';
9188
9876
  const Divider = /* @__PURE__ */ defineComponent({
9189
- name: COMPONENT_NAME$1h,
9877
+ name: COMPONENT_NAME$1j,
9190
9878
  props: props$U,
9191
9879
  setup(props, {
9192
9880
  slots
@@ -9322,7 +10010,7 @@ const props$R = {
9322
10010
 
9323
10011
  /** @jsxImportSource vue */
9324
10012
 
9325
- const COMPONENT_NAME$1g = 'vc-scroller-track';
10013
+ const COMPONENT_NAME$1i = 'vc-scroller-track';
9326
10014
  const BAR_MAP = {
9327
10015
  vertical: {
9328
10016
  scroll: 'scrollTop',
@@ -9342,7 +10030,7 @@ const BAR_MAP = {
9342
10030
  }
9343
10031
  };
9344
10032
  const Track = /* @__PURE__ */ defineComponent({
9345
- name: COMPONENT_NAME$1g,
10033
+ name: COMPONENT_NAME$1i,
9346
10034
  props: props$T,
9347
10035
  emits: ['change'],
9348
10036
  inheritAttrs: false,
@@ -9532,9 +10220,9 @@ const Track = /* @__PURE__ */ defineComponent({
9532
10220
 
9533
10221
  /** @jsxImportSource vue */
9534
10222
 
9535
- const COMPONENT_NAME$1f = 'vc-scroller-bar';
10223
+ const COMPONENT_NAME$1h = 'vc-scroller-bar';
9536
10224
  const Bar = /* @__PURE__ */ defineComponent({
9537
- name: COMPONENT_NAME$1f,
10225
+ name: COMPONENT_NAME$1h,
9538
10226
  props: props$S,
9539
10227
  emits: ['change'],
9540
10228
  setup(props, {
@@ -9769,7 +10457,7 @@ const useScroller = (expose) => {
9769
10457
 
9770
10458
  /** @jsxImportSource vue */
9771
10459
 
9772
- const COMPONENT_NAME$1e = 'vc-scroller';
10460
+ const COMPONENT_NAME$1g = 'vc-scroller';
9773
10461
 
9774
10462
  /**
9775
10463
  * 作为备选方案,目前推荐使用ScrollerWheel
@@ -9780,7 +10468,7 @@ const COMPONENT_NAME$1e = 'vc-scroller';
9780
10468
  * 2. 增加了一层嵌套
9781
10469
  */
9782
10470
  const Scroller = /* @__PURE__ */ defineComponent({
9783
- name: COMPONENT_NAME$1e,
10471
+ name: COMPONENT_NAME$1g,
9784
10472
  props: props$R,
9785
10473
  emits: ['scroll'],
9786
10474
  setup(props, {
@@ -9841,7 +10529,7 @@ const Scroller = /* @__PURE__ */ defineComponent({
9841
10529
 
9842
10530
  /** @jsxImportSource vue */
9843
10531
 
9844
- const COMPONENT_NAME$1d = 'vc-scroller-wheel';
10532
+ const COMPONENT_NAME$1f = 'vc-scroller-wheel';
9845
10533
 
9846
10534
  /**
9847
10535
  * 为减少一层嵌套,为去除滚动bar的抖动,使用wheel模拟
@@ -9863,7 +10551,7 @@ const COMPONENT_NAME$1d = 'vc-scroller-wheel';
9863
10551
  * 设置scrollTop不会reflow和repaint,不需要考虑transfrom来改变content(transform也只在draw完成)
9864
10552
  */
9865
10553
  const ScrollerWheel = /* @__PURE__ */ defineComponent({
9866
- name: COMPONENT_NAME$1d,
10554
+ name: COMPONENT_NAME$1f,
9867
10555
  props: Object.assign({}, props$R, {
9868
10556
  stopPropagation: {
9869
10557
  type: Boolean,
@@ -10052,9 +10740,9 @@ const props$Q = {
10052
10740
 
10053
10741
  /** @jsxImportSource vue */
10054
10742
 
10055
- const COMPONENT_NAME$1c = 'vc-drawer';
10743
+ const COMPONENT_NAME$1e = 'vc-drawer';
10056
10744
  const DrawerView = /* @__PURE__ */ defineComponent({
10057
- name: COMPONENT_NAME$1c,
10745
+ name: COMPONENT_NAME$1e,
10058
10746
  props: props$Q,
10059
10747
  emits: ['close', 'update:modelValue', 'visible-change'],
10060
10748
  setup(props, {
@@ -10243,9 +10931,9 @@ const props$P = {
10243
10931
 
10244
10932
  /** @jsxImportSource vue */
10245
10933
 
10246
- const COMPONENT_NAME$1b = 'vc-dropdown';
10934
+ const COMPONENT_NAME$1d = 'vc-dropdown';
10247
10935
  const Dropdown = /* @__PURE__ */ defineComponent({
10248
- name: COMPONENT_NAME$1b,
10936
+ name: COMPONENT_NAME$1d,
10249
10937
  props: props$P,
10250
10938
  inheritAttrs: false,
10251
10939
  emits: ['update:modelValue', 'ready', 'close', 'visible-change', 'click'],
@@ -10315,9 +11003,9 @@ const Dropdown = /* @__PURE__ */ defineComponent({
10315
11003
 
10316
11004
  /** @jsxImportSource vue */
10317
11005
 
10318
- const COMPONENT_NAME$1a = 'vc-dropdown-menu';
11006
+ const COMPONENT_NAME$1c = 'vc-dropdown-menu';
10319
11007
  const DropdownMenu = /* @__PURE__ */ defineComponent({
10320
- name: COMPONENT_NAME$1a,
11008
+ name: COMPONENT_NAME$1c,
10321
11009
  setup(_, {
10322
11010
  slots
10323
11011
  }) {
@@ -10331,9 +11019,9 @@ const DropdownMenu = /* @__PURE__ */ defineComponent({
10331
11019
 
10332
11020
  /** @jsxImportSource vue */
10333
11021
 
10334
- const COMPONENT_NAME$19 = 'vc-dropdown-item';
11022
+ const COMPONENT_NAME$1b = 'vc-dropdown-item';
10335
11023
  const DropdownItem = /* @__PURE__ */ defineComponent({
10336
- name: COMPONENT_NAME$19,
11024
+ name: COMPONENT_NAME$1b,
10337
11025
  emits: ['click'],
10338
11026
  props: {
10339
11027
  value: {
@@ -10538,9 +11226,9 @@ const defaults = {
10538
11226
 
10539
11227
  /** @jsxImportSource vue */
10540
11228
 
10541
- const COMPONENT_NAME$18 = 'vc-editor-toolbar';
11229
+ const COMPONENT_NAME$1a = 'vc-editor-toolbar';
10542
11230
  const EditorToolbar = /* @__PURE__ */ defineComponent({
10543
- name: COMPONENT_NAME$18,
11231
+ name: COMPONENT_NAME$1a,
10544
11232
  props: {
10545
11233
  options: [Array, Object],
10546
11234
  elementId: String
@@ -10748,9 +11436,9 @@ const props$O = {
10748
11436
 
10749
11437
  /** @jsxImportSource vue */
10750
11438
 
10751
- const COMPONENT_NAME$17 = 'vc-image-preview';
11439
+ const COMPONENT_NAME$19 = 'vc-image-preview';
10752
11440
  const ImagePreview$1 = /* @__PURE__ */ defineComponent({
10753
- name: COMPONENT_NAME$17,
11441
+ name: COMPONENT_NAME$19,
10754
11442
  props: props$O,
10755
11443
  setup(props, {
10756
11444
  slots
@@ -10945,9 +11633,9 @@ const props$N = {
10945
11633
  }
10946
11634
  };
10947
11635
 
10948
- const COMPONENT_NAME$16 = "vc-upload";
11636
+ const COMPONENT_NAME$18 = "vc-upload";
10949
11637
  const Upload$1 = defineComponent({
10950
- name: COMPONENT_NAME$16,
11638
+ name: COMPONENT_NAME$18,
10951
11639
  props: props$N,
10952
11640
  emits: [
10953
11641
  "message",
@@ -11481,9 +12169,9 @@ const props$M = {
11481
12169
 
11482
12170
  /** @jsxImportSource vue */
11483
12171
 
11484
- const COMPONENT_NAME$15 = 'vc-editor';
12172
+ const COMPONENT_NAME$17 = 'vc-editor';
11485
12173
  const Editor = /* @__PURE__ */ defineComponent({
11486
- name: COMPONENT_NAME$15,
12174
+ name: COMPONENT_NAME$17,
11487
12175
  props: props$M,
11488
12176
  defaults,
11489
12177
  emits: ['ready', 'blur', 'focus', 'input', 'update:modelValue', 'change'],
@@ -11672,7 +12360,7 @@ const Editor = /* @__PURE__ */ defineComponent({
11672
12360
 
11673
12361
  /** @jsxImportSource vue */
11674
12362
 
11675
- const COMPONENT_NAME$14 = 'vc-editor-view';
12363
+ const COMPONENT_NAME$16 = 'vc-editor-view';
11676
12364
  const setImages = v => {
11677
12365
  if (!v) return;
11678
12366
  const IMG_REGX = /<img.*?(?:>|\/>)/gi;
@@ -11690,7 +12378,7 @@ const setImages = v => {
11690
12378
  return;
11691
12379
  };
11692
12380
  const EditorView = /* @__PURE__ */ defineComponent({
11693
- name: COMPONENT_NAME$14,
12381
+ name: COMPONENT_NAME$16,
11694
12382
  props: {
11695
12383
  value: {
11696
12384
  type: String,
@@ -11905,9 +12593,9 @@ const useForm = (expose, options = {}) => {
11905
12593
  });
11906
12594
  };
11907
12595
 
11908
- const COMPONENT_NAME$13 = "vc-form";
12596
+ const COMPONENT_NAME$15 = "vc-form";
11909
12597
  const Form = defineComponent({
11910
- name: COMPONENT_NAME$13,
12598
+ name: COMPONENT_NAME$15,
11911
12599
  props: props$L,
11912
12600
  setup(props, { slots, expose }) {
11913
12601
  useForm(expose);
@@ -12255,9 +12943,9 @@ const useFormItem = (expose) => {
12255
12943
 
12256
12944
  /** @jsxImportSource vue */
12257
12945
 
12258
- const COMPONENT_NAME$12 = 'vc-form-item';
12946
+ const COMPONENT_NAME$14 = 'vc-form-item';
12259
12947
  const FormItem = /* @__PURE__ */ defineComponent({
12260
- name: COMPONENT_NAME$12,
12948
+ name: COMPONENT_NAME$14,
12261
12949
  props: props$K,
12262
12950
  setup(props, {
12263
12951
  slots,
@@ -12325,9 +13013,9 @@ const props$J = {
12325
13013
  }
12326
13014
  };
12327
13015
 
12328
- const COMPONENT_NAME$11 = "vcm-form";
13016
+ const COMPONENT_NAME$13 = "vcm-form";
12329
13017
  const MForm = defineComponent({
12330
- name: COMPONENT_NAME$11,
13018
+ name: COMPONENT_NAME$13,
12331
13019
  props: props$J,
12332
13020
  setup(props, { slots, expose }) {
12333
13021
  useForm(expose, {
@@ -12358,9 +13046,9 @@ const props$I = {
12358
13046
 
12359
13047
  /** @jsxImportSource vue */
12360
13048
 
12361
- const COMPONENT_NAME$10 = 'vcm-form-item';
13049
+ const COMPONENT_NAME$12 = 'vcm-form-item';
12362
13050
  const MFormItem = /* @__PURE__ */ defineComponent({
12363
- name: COMPONENT_NAME$10,
13051
+ name: COMPONENT_NAME$12,
12364
13052
  props: props$I,
12365
13053
  setup(props, {
12366
13054
  slots,
@@ -12415,9 +13103,9 @@ const MFormItem = /* @__PURE__ */ defineComponent({
12415
13103
  }
12416
13104
  });
12417
13105
 
12418
- const COMPONENT_NAME$$ = "vc-fragment";
13106
+ const COMPONENT_NAME$11 = "vc-fragment";
12419
13107
  const Fragment = defineComponent({
12420
- name: COMPONENT_NAME$$,
13108
+ name: COMPONENT_NAME$11,
12421
13109
  setup(_, { slots }) {
12422
13110
  return () => h(Fragment$1, slots.default?.());
12423
13111
  }
@@ -12456,9 +13144,9 @@ const props$H = {
12456
13144
 
12457
13145
  /** @jsxImportSource vue */
12458
13146
 
12459
- const COMPONENT_NAME$_ = 'vc-snapshot';
13147
+ const COMPONENT_NAME$10 = 'vc-snapshot';
12460
13148
  const Snapshot = /* @__PURE__ */ defineComponent({
12461
- name: COMPONENT_NAME$_,
13149
+ name: COMPONENT_NAME$10,
12462
13150
  props: props$H,
12463
13151
  emits: ['ready'],
12464
13152
  setup(props, {
@@ -12617,7 +13305,7 @@ const IMGStore$1 = new IMGStore();
12617
13305
 
12618
13306
  /** @jsxImportSource vue */
12619
13307
 
12620
- const COMPONENT_NAME$Z = 'vc-image';
13308
+ const COMPONENT_NAME$$ = 'vc-image';
12621
13309
  let isSupportObjectFit = false;
12622
13310
  window.addEventListener('DOMContentLoaded', () => {
12623
13311
  isSupportObjectFit = !IS_SERVER$1 && document.documentElement.style.objectFit !== undefined;
@@ -12630,7 +13318,7 @@ const ObjectFit = {
12630
13318
  SCALE_DOWN: 'scale-down'
12631
13319
  };
12632
13320
  const Image$1 = /* @__PURE__ */ defineComponent({
12633
- name: COMPONENT_NAME$Z,
13321
+ name: COMPONENT_NAME$$,
12634
13322
  inheritAttrs: false,
12635
13323
  props: props$G,
12636
13324
  setup(props, {
@@ -12847,9 +13535,9 @@ const props$F = {
12847
13535
 
12848
13536
  /** @jsxImportSource vue */
12849
13537
 
12850
- const COMPONENT_NAME$Y = 'vc-image-crop';
13538
+ const COMPONENT_NAME$_ = 'vc-image-crop';
12851
13539
  const ImageCrop = /* @__PURE__ */ defineComponent({
12852
- name: COMPONENT_NAME$Y,
13540
+ name: COMPONENT_NAME$_,
12853
13541
  props: props$F,
12854
13542
  setup(props, {
12855
13543
  slots
@@ -12875,9 +13563,9 @@ const props$E = {
12875
13563
 
12876
13564
  /** @jsxImportSource vue */
12877
13565
 
12878
- const COMPONENT_NAME$X = 'vc-image-processing';
13566
+ const COMPONENT_NAME$Z = 'vc-image-processing';
12879
13567
  const ImageProcessing = /* @__PURE__ */ defineComponent({
12880
- name: COMPONENT_NAME$X,
13568
+ name: COMPONENT_NAME$Z,
12881
13569
  props: props$E,
12882
13570
  setup(props, {
12883
13571
  slots
@@ -12894,9 +13582,9 @@ const MImageProcessing = ImageProcessing;
12894
13582
 
12895
13583
  /** @jsxImportSource vue */
12896
13584
 
12897
- const COMPONENT_NAME$W = 'vcm-input';
13585
+ const COMPONENT_NAME$Y = 'vcm-input';
12898
13586
  const MInput = /* @__PURE__ */ defineComponent({
12899
- name: COMPONENT_NAME$W,
13587
+ name: COMPONENT_NAME$Y,
12900
13588
  inheritAttrs: false,
12901
13589
  props: {
12902
13590
  ...props$1h,
@@ -12985,9 +13673,9 @@ const MInput = /* @__PURE__ */ defineComponent({
12985
13673
 
12986
13674
  /** @jsxImportSource vue */
12987
13675
 
12988
- const COMPONENT_NAME$V = 'vcm-input-number';
13676
+ const COMPONENT_NAME$X = 'vcm-input-number';
12989
13677
  const MInputNumber = /* @__PURE__ */ defineComponent({
12990
- name: COMPONENT_NAME$V,
13678
+ name: COMPONENT_NAME$X,
12991
13679
  props: props$1g,
12992
13680
  inheritAttrs: false,
12993
13681
  setup(props, {
@@ -13036,9 +13724,9 @@ const MInputNumber = /* @__PURE__ */ defineComponent({
13036
13724
 
13037
13725
  /** @jsxImportSource vue */
13038
13726
 
13039
- const COMPONENT_NAME$U = 'vcm-input-search';
13727
+ const COMPONENT_NAME$W = 'vcm-input-search';
13040
13728
  const MInputSearch = /* @__PURE__ */ defineComponent({
13041
- name: COMPONENT_NAME$U,
13729
+ name: COMPONENT_NAME$W,
13042
13730
  props: {
13043
13731
  ...props$1f,
13044
13732
  cancelText: {
@@ -13115,9 +13803,9 @@ const props$D = {
13115
13803
  }
13116
13804
  };
13117
13805
 
13118
- const COMPONENT_NAME$T = "vcm-list";
13806
+ const COMPONENT_NAME$V = "vcm-list";
13119
13807
  const MList = defineComponent({
13120
- name: COMPONENT_NAME$T,
13808
+ name: COMPONENT_NAME$V,
13121
13809
  props: props$D,
13122
13810
  setup(props, { slots }) {
13123
13811
  provide("vc-list", { props });
@@ -13172,10 +13860,10 @@ const props$C = {
13172
13860
 
13173
13861
  /** @jsxImportSource vue */
13174
13862
 
13175
- const COMPONENT_NAME$S = 'vcm-list-item';
13863
+ const COMPONENT_NAME$U = 'vcm-list-item';
13176
13864
  const HTTP_REGEX = /[a-zA-z]+:\/\/[^\s]*/;
13177
13865
  const MListItem = /* @__PURE__ */ defineComponent({
13178
- name: COMPONENT_NAME$S,
13866
+ name: COMPONENT_NAME$U,
13179
13867
  props: props$C,
13180
13868
  emits: ['click'],
13181
13869
  setup(props, {
@@ -13269,11 +13957,11 @@ const props$B = {
13269
13957
 
13270
13958
  /** @jsxImportSource vue */
13271
13959
 
13272
- const COMPONENT_NAME$R = 'vc-marquee';
13960
+ const COMPONENT_NAME$T = 'vc-marquee';
13273
13961
  const ANIMATION = prefixStyle('animation').camel;
13274
13962
  const TRANSFORM_KEBAB = prefixStyle('transform').kebab;
13275
13963
  const Marquee = /* @__PURE__ */ defineComponent({
13276
- name: COMPONENT_NAME$R,
13964
+ name: COMPONENT_NAME$T,
13277
13965
  props: props$B,
13278
13966
  setup(props, {
13279
13967
  slots
@@ -13341,9 +14029,9 @@ const props$A = {
13341
14029
  }
13342
14030
  };
13343
14031
 
13344
- const COMPONENT_NAME$Q = "vc-resizer";
14032
+ const COMPONENT_NAME$S = "vc-resizer";
13345
14033
  const Resizer = defineComponent({
13346
- name: COMPONENT_NAME$Q,
14034
+ name: COMPONENT_NAME$S,
13347
14035
  props: props$A,
13348
14036
  emits: ["resize"],
13349
14037
  setup(props, { emit, slots, expose }) {
@@ -13513,10 +14201,10 @@ const props$z = {
13513
14201
 
13514
14202
  /** @jsxImportSource vue */
13515
14203
 
13516
- const COMPONENT_NAME$P = 'vc-modal';
14204
+ const COMPONENT_NAME$R = 'vc-modal';
13517
14205
  let zIndexNumber = 1002;
13518
14206
  const ModalView = /* @__PURE__ */ defineComponent({
13519
- name: COMPONENT_NAME$P,
14207
+ name: COMPONENT_NAME$R,
13520
14208
  emits: ['update:modelValue', 'close', 'portal-fulfilled', 'visible-change', 'ok', 'cancel'],
13521
14209
  props: props$z,
13522
14210
  setup(props, {
@@ -13955,9 +14643,9 @@ const props$y = {
13955
14643
 
13956
14644
  /** @jsxImportSource vue */
13957
14645
 
13958
- const COMPONENT_NAME$O = 'vc-modal';
14646
+ const COMPONENT_NAME$Q = 'vc-modal';
13959
14647
  const MModalView = /* @__PURE__ */ defineComponent({
13960
- name: COMPONENT_NAME$O,
14648
+ name: COMPONENT_NAME$Q,
13961
14649
  emits: ['update:modelValue', 'portal-fulfilled', 'close', 'ok', 'cancel'],
13962
14650
  props: props$y,
13963
14651
  setup(props, {
@@ -14169,9 +14857,9 @@ const props$x = {
14169
14857
 
14170
14858
  /** @jsxImportSource vue */
14171
14859
 
14172
- const COMPONENT_NAME$N = 'vc-notice';
14860
+ const COMPONENT_NAME$P = 'vc-notice';
14173
14861
  const NoticeView = /* @__PURE__ */ defineComponent({
14174
- name: COMPONENT_NAME$N,
14862
+ name: COMPONENT_NAME$P,
14175
14863
  props: props$x,
14176
14864
  emits: ['portal-fulfilled', 'close', 'before-close'],
14177
14865
  setup(props, {
@@ -14344,9 +15032,9 @@ const props$w = {
14344
15032
 
14345
15033
  /** @jsxImportSource vue */
14346
15034
 
14347
- const COMPONENT_NAME$M = 'vc-option';
15035
+ const COMPONENT_NAME$O = 'vc-option';
14348
15036
  const Option$1 = /* @__PURE__ */ defineComponent({
14349
- name: COMPONENT_NAME$M,
15037
+ name: COMPONENT_NAME$O,
14350
15038
  props: props$w,
14351
15039
  setup(props, {
14352
15040
  slots
@@ -14430,9 +15118,9 @@ const props$u = {
14430
15118
 
14431
15119
  /** @jsxImportSource vue */
14432
15120
 
14433
- const COMPONENT_NAME$L = 'vc-tag';
15121
+ const COMPONENT_NAME$N = 'vc-tag';
14434
15122
  const Tag = /* @__PURE__ */ defineComponent({
14435
- name: COMPONENT_NAME$L,
15123
+ name: COMPONENT_NAME$N,
14436
15124
  props: props$u,
14437
15125
  emits: ['close', 'change'],
14438
15126
  setup(props, {
@@ -14503,9 +15191,9 @@ const props$t = {
14503
15191
 
14504
15192
  /** @jsxImportSource vue */
14505
15193
 
14506
- const COMPONENT_NAME$K = 'vc-select-option';
15194
+ const COMPONENT_NAME$M = 'vc-select-option';
14507
15195
  const Option = /* @__PURE__ */ defineComponent({
14508
- name: COMPONENT_NAME$K,
15196
+ name: COMPONENT_NAME$M,
14509
15197
  props: props$t,
14510
15198
  setup(props, {
14511
15199
  slots,
@@ -14600,9 +15288,9 @@ const props$s = {
14600
15288
 
14601
15289
  /** @jsxImportSource vue */
14602
15290
 
14603
- const COMPONENT_NAME$J = 'vc-select-option-group';
15291
+ const COMPONENT_NAME$L = 'vc-select-option-group';
14604
15292
  const OptionGroup = /* @__PURE__ */ defineComponent({
14605
- name: COMPONENT_NAME$J,
15293
+ name: COMPONENT_NAME$L,
14606
15294
  props: props$s,
14607
15295
  setup(props, {
14608
15296
  slots
@@ -14632,9 +15320,9 @@ const OptionGroup = /* @__PURE__ */ defineComponent({
14632
15320
 
14633
15321
  /** @jsxImportSource vue */
14634
15322
 
14635
- const COMPONENT_NAME$I = 'vc-select-all';
15323
+ const COMPONENT_NAME$K = 'vc-select-all';
14636
15324
  const SelectAll = /* @__PURE__ */ defineComponent({
14637
- name: COMPONENT_NAME$I,
15325
+ name: COMPONENT_NAME$K,
14638
15326
  props: {
14639
15327
  data: {
14640
15328
  type: Array,
@@ -14704,9 +15392,9 @@ const SelectAll = /* @__PURE__ */ defineComponent({
14704
15392
 
14705
15393
  /** @jsxImportSource vue */
14706
15394
 
14707
- const COMPONENT_NAME$H = 'vc-select';
15395
+ const COMPONENT_NAME$J = 'vc-select';
14708
15396
  const Select = /* @__PURE__ */ defineComponent({
14709
- name: COMPONENT_NAME$H,
15397
+ name: COMPONENT_NAME$J,
14710
15398
  props: props$1a,
14711
15399
  emits: ['ready', 'close', 'visible-change', 'clear', 'change', 'update:modelValue'],
14712
15400
  setup(props, {
@@ -15000,9 +15688,9 @@ const Select = /* @__PURE__ */ defineComponent({
15000
15688
 
15001
15689
  /** @jsxImportSource vue */
15002
15690
 
15003
- const COMPONENT_NAME$G = 'vc-pagination';
15691
+ const COMPONENT_NAME$I = 'vc-pagination';
15004
15692
  const Pagination = /* @__PURE__ */ defineComponent({
15005
- name: COMPONENT_NAME$G,
15693
+ name: COMPONENT_NAME$I,
15006
15694
  props: props$v,
15007
15695
  emits: ['update:current', 'change', 'page-size-change'],
15008
15696
  setup(props, {
@@ -15200,9 +15888,9 @@ const props$r = {
15200
15888
 
15201
15889
  /** @jsxImportSource vue */
15202
15890
 
15203
- const COMPONENT_NAME$F = 'vc-picker';
15891
+ const COMPONENT_NAME$H = 'vc-picker';
15204
15892
  const Picker = /* @__PURE__ */ defineComponent({
15205
- name: COMPONENT_NAME$F,
15893
+ name: COMPONENT_NAME$H,
15206
15894
  props: props$r,
15207
15895
  setup(props, {
15208
15896
  slots
@@ -15265,9 +15953,9 @@ const props$q = {
15265
15953
 
15266
15954
  /** @jsxImportSource vue */
15267
15955
 
15268
- const COMPONENT_NAME$E = 'vc-popconfirm';
15956
+ const COMPONENT_NAME$G = 'vc-popconfirm';
15269
15957
  const Popconfirm = /* @__PURE__ */ defineComponent({
15270
- name: COMPONENT_NAME$E,
15958
+ name: COMPONENT_NAME$G,
15271
15959
  props: props$q,
15272
15960
  inheritAttrs: false,
15273
15961
  emits: ['update:modelValue', 'visible-change', 'ready', 'close', 'cancel', 'ok'],
@@ -15435,9 +16123,9 @@ const props$p = {
15435
16123
 
15436
16124
  /** @jsxImportSource vue */
15437
16125
 
15438
- const COMPONENT_NAME$D = 'vc-popup';
16126
+ const COMPONENT_NAME$F = 'vc-popup';
15439
16127
  const MPopup = /* @__PURE__ */ defineComponent({
15440
- name: COMPONENT_NAME$D,
16128
+ name: COMPONENT_NAME$F,
15441
16129
  props: props$p,
15442
16130
  emits: ['update:modelValue', 'close', 'portal-fulfilled', 'visible-change'],
15443
16131
  setup(props, {
@@ -15564,9 +16252,9 @@ const props$o = {
15564
16252
 
15565
16253
  /** @jsxImportSource vue */
15566
16254
 
15567
- const COMPONENT_NAME$C = 'vc-print';
16255
+ const COMPONENT_NAME$E = 'vc-print';
15568
16256
  const Print = /* @__PURE__ */ defineComponent({
15569
- name: COMPONENT_NAME$C,
16257
+ name: COMPONENT_NAME$E,
15570
16258
  props: props$o,
15571
16259
  setup(props, {
15572
16260
  expose,
@@ -15646,7 +16334,7 @@ const props$n = {
15646
16334
  },
15647
16335
  strokeColor: {
15648
16336
  type: String,
15649
- default: "#2d8cf0"
16337
+ default: "#456CF6"
15650
16338
  },
15651
16339
  trackColor: {
15652
16340
  type: String,
@@ -15668,9 +16356,9 @@ const props$n = {
15668
16356
 
15669
16357
  /** @jsxImportSource vue */
15670
16358
 
15671
- const COMPONENT_NAME$B = 'vc-progress-circle';
16359
+ const COMPONENT_NAME$D = 'vc-progress-circle';
15672
16360
  const Circle = /* @__PURE__ */ defineComponent({
15673
- name: COMPONENT_NAME$B,
16361
+ name: COMPONENT_NAME$D,
15674
16362
  props: props$n,
15675
16363
  setup(props, {
15676
16364
  slots
@@ -15730,9 +16418,9 @@ const Circle = /* @__PURE__ */ defineComponent({
15730
16418
 
15731
16419
  /** @jsxImportSource vue */
15732
16420
 
15733
- const COMPONENT_NAME$A = 'vc-progress-line';
16421
+ const COMPONENT_NAME$C = 'vc-progress-line';
15734
16422
  const Line = /* @__PURE__ */ defineComponent({
15735
- name: COMPONENT_NAME$A,
16423
+ name: COMPONENT_NAME$C,
15736
16424
  props: props$n,
15737
16425
  setup(props) {
15738
16426
  const colorStyle = computed(() => {
@@ -15779,9 +16467,9 @@ const Line = /* @__PURE__ */ defineComponent({
15779
16467
  function _isSlot(s) {
15780
16468
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
15781
16469
  }
15782
- const COMPONENT_NAME$z = 'vc-progress';
16470
+ const COMPONENT_NAME$B = 'vc-progress';
15783
16471
  const Progress = /* @__PURE__ */ defineComponent({
15784
- name: COMPONENT_NAME$z,
16472
+ name: COMPONENT_NAME$B,
15785
16473
  props: props$n,
15786
16474
  setup(props, {
15787
16475
  slots
@@ -15943,9 +16631,9 @@ const useRadio = () => {
15943
16631
 
15944
16632
  /** @jsxImportSource vue */
15945
16633
 
15946
- const COMPONENT_NAME$y = 'vc-radio';
16634
+ const COMPONENT_NAME$A = 'vc-radio';
15947
16635
  const Radio = /* @__PURE__ */ defineComponent({
15948
- name: COMPONENT_NAME$y,
16636
+ name: COMPONENT_NAME$A,
15949
16637
  props: props$m,
15950
16638
  emits: ['update:modelValue', 'change'],
15951
16639
  setup(props, {
@@ -15989,9 +16677,9 @@ const Radio = /* @__PURE__ */ defineComponent({
15989
16677
 
15990
16678
  /** @jsxImportSource vue */
15991
16679
 
15992
- const COMPONENT_NAME$x = 'vc-radio-button';
16680
+ const COMPONENT_NAME$z = 'vc-radio-button';
15993
16681
  const RadioButton = /* @__PURE__ */ defineComponent({
15994
- name: COMPONENT_NAME$x,
16682
+ name: COMPONENT_NAME$z,
15995
16683
  props: {
15996
16684
  ...props$m,
15997
16685
  labelStyle: [String, Object],
@@ -16104,9 +16792,9 @@ const useRadioGroup = () => {
16104
16792
 
16105
16793
  /** @jsxImportSource vue */
16106
16794
 
16107
- const COMPONENT_NAME$w = 'vc-radio-group';
16795
+ const COMPONENT_NAME$y = 'vc-radio-group';
16108
16796
  const RadioGroup = /* @__PURE__ */ defineComponent({
16109
- name: COMPONENT_NAME$w,
16797
+ name: COMPONENT_NAME$y,
16110
16798
  props: props$l,
16111
16799
  emits: ['update:modelValue', 'change'],
16112
16800
  setup(props, {
@@ -16127,9 +16815,9 @@ const RadioGroup = /* @__PURE__ */ defineComponent({
16127
16815
 
16128
16816
  /** @jsxImportSource vue */
16129
16817
 
16130
- const COMPONENT_NAME$v = 'vcm-radio';
16818
+ const COMPONENT_NAME$x = 'vcm-radio';
16131
16819
  const MRadio = /* @__PURE__ */ defineComponent({
16132
- name: COMPONENT_NAME$v,
16820
+ name: COMPONENT_NAME$x,
16133
16821
  props: props$m,
16134
16822
  emits: ['update:modelValue', 'change'],
16135
16823
  setup(props, {
@@ -16173,9 +16861,9 @@ const MRadio = /* @__PURE__ */ defineComponent({
16173
16861
 
16174
16862
  /** @jsxImportSource vue */
16175
16863
 
16176
- const COMPONENT_NAME$u = 'vcm-radio-group';
16864
+ const COMPONENT_NAME$w = 'vcm-radio-group';
16177
16865
  const MRadioGroup = /* @__PURE__ */ defineComponent({
16178
- name: COMPONENT_NAME$u,
16866
+ name: COMPONENT_NAME$w,
16179
16867
  props: props$l,
16180
16868
  emits: ['update:modelValue', 'change'],
16181
16869
  setup(props, {
@@ -16242,9 +16930,9 @@ const props$k = {
16242
16930
 
16243
16931
  /** @jsxImportSource vue */
16244
16932
 
16245
- const COMPONENT_NAME$t = 'vc-rate';
16933
+ const COMPONENT_NAME$v = 'vc-rate';
16246
16934
  const Rate = /* @__PURE__ */ defineComponent({
16247
- name: COMPONENT_NAME$t,
16935
+ name: COMPONENT_NAME$v,
16248
16936
  props: props$k,
16249
16937
  emits: ['update:modelValue', 'change'],
16250
16938
  setup(props, {
@@ -16446,9 +17134,9 @@ const props$j = {
16446
17134
 
16447
17135
  /** @jsxImportSource vue */
16448
17136
 
16449
- const COMPONENT_NAME$s = 'vc-recycle-list-scroll-state';
17137
+ const COMPONENT_NAME$u = 'vc-recycle-list-scroll-state';
16450
17138
  const ScrollState = /* @__PURE__ */ defineComponent({
16451
- name: COMPONENT_NAME$s,
17139
+ name: COMPONENT_NAME$u,
16452
17140
  setup(_, {
16453
17141
  slots
16454
17142
  }) {
@@ -16578,12 +17266,12 @@ const useDirectionKeys = () => {
16578
17266
 
16579
17267
  /** @jsxImportSource vue */
16580
17268
 
16581
- const COMPONENT_NAME$r = 'vc-recycle-list-container';
17269
+ const COMPONENT_NAME$t = 'vc-recycle-list-container';
16582
17270
 
16583
17271
  // TODO: 抽离
16584
17272
  const transformKey = $.prefixStyle('transform').camel;
16585
17273
  const Container = /* @__PURE__ */ defineComponent({
16586
- name: COMPONENT_NAME$r,
17274
+ name: COMPONENT_NAME$t,
16587
17275
  props: props$i,
16588
17276
  emits: ['refresh'],
16589
17277
  setup(props, {
@@ -16681,9 +17369,9 @@ const Container = /* @__PURE__ */ defineComponent({
16681
17369
 
16682
17370
  /** @jsxImportSource vue */
16683
17371
 
16684
- const COMPONENT_NAME$q = 'vc-recycle-list';
17372
+ const COMPONENT_NAME$s = 'vc-recycle-list';
16685
17373
  const RecycleList = /* @__PURE__ */ defineComponent({
16686
- name: COMPONENT_NAME$q,
17374
+ name: COMPONENT_NAME$s,
16687
17375
  props: props$j,
16688
17376
  emits: ['scroll', 'row-resize'],
16689
17377
  setup(props, {
@@ -17257,9 +17945,9 @@ const props$h = {
17257
17945
 
17258
17946
  /** @jsxImportSource vue */
17259
17947
 
17260
- const COMPONENT_NAME$p = 'vc-slider';
17948
+ const COMPONENT_NAME$r = 'vc-slider';
17261
17949
  const Slider = /* @__PURE__ */ defineComponent({
17262
- name: COMPONENT_NAME$p,
17950
+ name: COMPONENT_NAME$r,
17263
17951
  props: props$h,
17264
17952
  setup(props, {
17265
17953
  slots
@@ -17283,9 +17971,9 @@ const props$g = {
17283
17971
 
17284
17972
  /** @jsxImportSource vue */
17285
17973
 
17286
- const COMPONENT_NAME$o = 'vc-sort-list';
17974
+ const COMPONENT_NAME$q = 'vc-sort-list';
17287
17975
  const SortList = /* @__PURE__ */ defineComponent({
17288
- name: COMPONENT_NAME$o,
17976
+ name: COMPONENT_NAME$q,
17289
17977
  props: props$g,
17290
17978
  setup(props, {
17291
17979
  slots
@@ -17309,9 +17997,9 @@ const props$f = {
17309
17997
 
17310
17998
  /** @jsxImportSource vue */
17311
17999
 
17312
- const COMPONENT_NAME$n = 'vc-steps';
18000
+ const COMPONENT_NAME$p = 'vc-steps';
17313
18001
  const Steps = /* @__PURE__ */ defineComponent({
17314
- name: COMPONENT_NAME$n,
18002
+ name: COMPONENT_NAME$p,
17315
18003
  props: props$f,
17316
18004
  setup(props, {
17317
18005
  slots
@@ -17437,9 +18125,9 @@ const useSwitch = (expose) => {
17437
18125
 
17438
18126
  /** @jsxImportSource vue */
17439
18127
 
17440
- const COMPONENT_NAME$m = 'vc-switch';
18128
+ const COMPONENT_NAME$o = 'vc-switch';
17441
18129
  const Switch = /* @__PURE__ */ defineComponent({
17442
- name: COMPONENT_NAME$m,
18130
+ name: COMPONENT_NAME$o,
17443
18131
  props: props$e,
17444
18132
  // click -> onClick要被拦截,此处不能放置
17445
18133
  emits: ['update:modelValue', 'change', 'click'],
@@ -17513,9 +18201,9 @@ const Switch = /* @__PURE__ */ defineComponent({
17513
18201
 
17514
18202
  /** @jsxImportSource vue */
17515
18203
 
17516
- const COMPONENT_NAME$l = 'vcm-switch';
18204
+ const COMPONENT_NAME$n = 'vcm-switch';
17517
18205
  const MSwitch = /* @__PURE__ */ defineComponent({
17518
- name: COMPONENT_NAME$l,
18206
+ name: COMPONENT_NAME$n,
17519
18207
  props: props$e,
17520
18208
  // click -> onClick要被拦截,此处不能放置
17521
18209
  emits: ['update:modelValue', 'change', 'click'],
@@ -18628,9 +19316,9 @@ const useStates = (mapper, $store) => {
18628
19316
 
18629
19317
  /** @jsxImportSource vue */
18630
19318
 
18631
- const COMPONENT_NAME$k = 'vc-table-normal-list';
19319
+ const COMPONENT_NAME$m = 'vc-table-normal-list';
18632
19320
  const NormalList = /* @__PURE__ */ defineComponent({
18633
- name: COMPONENT_NAME$k,
19321
+ name: COMPONENT_NAME$m,
18634
19322
  props: {
18635
19323
  data: {
18636
19324
  type: Array,
@@ -19148,6 +19836,10 @@ const TableHeader = /* @__PURE__ */ defineComponent({
19148
19836
  const allowDrag = computed(() => {
19149
19837
  return typeof props.resizable === 'boolean' ? props.resizable : props.border;
19150
19838
  });
19839
+ const dragLineClass = computed(() => {
19840
+ if (props.border || !props.resizable) return;
19841
+ return 'has-drag-line';
19842
+ });
19151
19843
  const states = useStates({
19152
19844
  columns: 'columns',
19153
19845
  isAllSelected: 'isAllSelected',
@@ -19381,7 +20073,7 @@ const TableHeader = /* @__PURE__ */ defineComponent({
19381
20073
  "style": [getHeaderCellStyle(rowIndex, columnIndex, columns, column), {
19382
20074
  width: `${column.realWidth}px`
19383
20075
  }],
19384
- "class": [getHeaderCellClass(rowIndex, columnIndex, columns, column), 'vc-table__th'],
20076
+ "class": [getHeaderCellClass(rowIndex, columnIndex, columns, column), column.resizable && dragLineClass.value, 'vc-table__th'],
19385
20077
  "key": column.id
19386
20078
  }, [createVNode("div", {
19387
20079
  "class": ['vc-table__cell',
@@ -19627,9 +20319,9 @@ const props$d = {
19627
20319
 
19628
20320
  /** @jsxImportSource vue */
19629
20321
 
19630
- const COMPONENT_NAME$j = 'vc-table';
20322
+ const COMPONENT_NAME$l = 'vc-table';
19631
20323
  const Table = /* @__PURE__ */ defineComponent({
19632
- name: COMPONENT_NAME$j,
20324
+ name: COMPONENT_NAME$l,
19633
20325
  props: props$d,
19634
20326
  emits: ['select', 'select-all', 'selection-change', 'cell-mouse-enter', 'cell-mouse-leave', 'cell-click', 'cell-dblclick', 'row-click', 'row-contextmenu', 'row-dblclick', 'header-click', 'header-contextmenu', 'current-change', 'header-dragend', 'expand-change', 'sort-change', 'update:sort'],
19635
20327
  setup(props, {
@@ -20832,9 +21524,9 @@ const useTabs = (options = {}) => {
20832
21524
 
20833
21525
  /** @jsxImportSource vue */
20834
21526
 
20835
- const COMPONENT_NAME$i = 'vc-tabs';
21527
+ const COMPONENT_NAME$k = 'vc-tabs';
20836
21528
  const Tabs = /* @__PURE__ */ defineComponent({
20837
- name: COMPONENT_NAME$i,
21529
+ name: COMPONENT_NAME$k,
20838
21530
  props: props$c,
20839
21531
  emits: ['update:modelValue', 'change', 'click'],
20840
21532
  setup(props, {
@@ -21087,9 +21779,9 @@ const useTabsPane = () => {
21087
21779
 
21088
21780
  /** @jsxImportSource vue */
21089
21781
 
21090
- const COMPONENT_NAME$h = 'vc-tabs-pane';
21782
+ const COMPONENT_NAME$j = 'vc-tabs-pane';
21091
21783
  const TabsPane = /* @__PURE__ */ defineComponent({
21092
- name: COMPONENT_NAME$h,
21784
+ name: COMPONENT_NAME$j,
21093
21785
  props: props$b,
21094
21786
  setup(_, {
21095
21787
  slots
@@ -21144,9 +21836,9 @@ const props$a = {
21144
21836
 
21145
21837
  /** @jsxImportSource vue */
21146
21838
 
21147
- const COMPONENT_NAME$g = 'vcm-tabs';
21839
+ const COMPONENT_NAME$i = 'vcm-tabs';
21148
21840
  const MTabs = /* @__PURE__ */ defineComponent({
21149
- name: COMPONENT_NAME$g,
21841
+ name: COMPONENT_NAME$i,
21150
21842
  props: props$a,
21151
21843
  emits: ['update:modelValue', 'change', 'click'],
21152
21844
  setup(props, {
@@ -21411,9 +22103,9 @@ const MTabs = /* @__PURE__ */ defineComponent({
21411
22103
 
21412
22104
  /** @jsxImportSource vue */
21413
22105
 
21414
- const COMPONENT_NAME$f = 'vcm-tabs-pane';
22106
+ const COMPONENT_NAME$h = 'vcm-tabs-pane';
21415
22107
  const MTabsPane = /* @__PURE__ */ defineComponent({
21416
- name: COMPONENT_NAME$f,
22108
+ name: COMPONENT_NAME$h,
21417
22109
  props: props$b,
21418
22110
  setup(_, {
21419
22111
  slots
@@ -21477,9 +22169,9 @@ const props$9 = {
21477
22169
 
21478
22170
  /** @jsxImportSource vue */
21479
22171
 
21480
- const COMPONENT_NAME$e = 'vc-text';
22172
+ const COMPONENT_NAME$g = 'vc-text';
21481
22173
  const Text = /* @__PURE__ */ defineComponent({
21482
- name: COMPONENT_NAME$e,
22174
+ name: COMPONENT_NAME$g,
21483
22175
  props: props$9,
21484
22176
  setup(props, {
21485
22177
  emit
@@ -21846,9 +22538,9 @@ const props$8 = {
21846
22538
 
21847
22539
  /** @jsxImportSource vue */
21848
22540
 
21849
- const COMPONENT_NAME$d = 'vc-textarea';
22541
+ const COMPONENT_NAME$f = 'vc-textarea';
21850
22542
  const Textarea = /* @__PURE__ */ defineComponent({
21851
- name: COMPONENT_NAME$d,
22543
+ name: COMPONENT_NAME$f,
21852
22544
  props: Object.assign({}, props$8, {
21853
22545
  indicator: {
21854
22546
  type: [Boolean, Object],
@@ -21904,9 +22596,9 @@ const Textarea = /* @__PURE__ */ defineComponent({
21904
22596
 
21905
22597
  /** @jsxImportSource vue */
21906
22598
 
21907
- const COMPONENT_NAME$c = 'vcm-textarea';
22599
+ const COMPONENT_NAME$e = 'vcm-textarea';
21908
22600
  const MTextarea = /* @__PURE__ */ defineComponent({
21909
- name: COMPONENT_NAME$c,
22601
+ name: COMPONENT_NAME$e,
21910
22602
  props: Object.assign({}, props$8, {
21911
22603
  align: {
21912
22604
  type: String,
@@ -21989,9 +22681,9 @@ const props$7 = {
21989
22681
  }
21990
22682
  };
21991
22683
 
21992
- const COMPONENT_NAME$b = "vc-theme";
22684
+ const COMPONENT_NAME$d = "vc-theme";
21993
22685
  const Theme = defineComponent({
21994
- name: COMPONENT_NAME$b,
22686
+ name: COMPONENT_NAME$d,
21995
22687
  props: props$7,
21996
22688
  setup(props, { slots }) {
21997
22689
  const themeId = Utils.getUid("vc-theme");
@@ -22074,9 +22766,9 @@ const Theme = defineComponent({
22074
22766
  }
22075
22767
  });
22076
22768
 
22077
- const COMPONENT_NAME$a = "vc-theme-view";
22769
+ const COMPONENT_NAME$c = "vc-theme-view";
22078
22770
  const ThemeView = defineComponent({
22079
- name: COMPONENT_NAME$a,
22771
+ name: COMPONENT_NAME$c,
22080
22772
  props: props$7,
22081
22773
  setup(props, { slots }) {
22082
22774
  return () => {
@@ -22092,9 +22784,9 @@ const ThemeView = defineComponent({
22092
22784
  }
22093
22785
  });
22094
22786
 
22095
- const COMPONENT_NAME$9 = "vc-theme-text";
22787
+ const COMPONENT_NAME$b = "vc-theme-text";
22096
22788
  const ThemeText = defineComponent({
22097
- name: COMPONENT_NAME$9,
22789
+ name: COMPONENT_NAME$b,
22098
22790
  props: props$7,
22099
22791
  setup(props, { slots }) {
22100
22792
  return () => {
@@ -22110,9 +22802,9 @@ const ThemeText = defineComponent({
22110
22802
  }
22111
22803
  });
22112
22804
 
22113
- const COMPONENT_NAME$8 = "vc-theme-image";
22805
+ const COMPONENT_NAME$a = "vc-theme-image";
22114
22806
  const ThemeImage = defineComponent({
22115
- name: COMPONENT_NAME$8,
22807
+ name: COMPONENT_NAME$a,
22116
22808
  props: props$7,
22117
22809
  setup(props, { slots }) {
22118
22810
  return () => {
@@ -22164,12 +22856,12 @@ const props$6 = {
22164
22856
 
22165
22857
  /** @jsxImportSource vue */
22166
22858
 
22167
- const COMPONENT_NAME$7 = 'vc-time-picker';
22859
+ const COMPONENT_NAME$9 = 'vc-time-picker';
22168
22860
  const getPanel = type => {
22169
22861
  const isRange = type === 'timerange';
22170
22862
  return isRange ? TimeRangePanel : TimePanel;
22171
22863
  };
22172
- const TimePicker = createPicker(COMPONENT_NAME$7, props$6, () => {
22864
+ const TimePicker = createPicker(COMPONENT_NAME$9, props$6, () => {
22173
22865
  const props = getCurrentInstance().props;
22174
22866
  const icon = ref('icon');
22175
22867
  const panel = shallowRef({});
@@ -22205,9 +22897,9 @@ const props$5 = {
22205
22897
 
22206
22898
  /** @jsxImportSource vue */
22207
22899
 
22208
- const COMPONENT_NAME$6 = 'vc-timeline';
22900
+ const COMPONENT_NAME$8 = 'vc-timeline';
22209
22901
  const Timeline = /* @__PURE__ */ defineComponent({
22210
- name: COMPONENT_NAME$6,
22902
+ name: COMPONENT_NAME$8,
22211
22903
  props: props$5,
22212
22904
  setup(props, {
22213
22905
  slots
@@ -22234,9 +22926,9 @@ const props$4 = {
22234
22926
 
22235
22927
  /** @jsxImportSource vue */
22236
22928
 
22237
- const COMPONENT_NAME$5 = 'vc-touch';
22929
+ const COMPONENT_NAME$7 = 'vc-touch';
22238
22930
  const Touch = /* @__PURE__ */ defineComponent({
22239
- name: COMPONENT_NAME$5,
22931
+ name: COMPONENT_NAME$7,
22240
22932
  props: props$4,
22241
22933
  setup(props, {
22242
22934
  slots
@@ -22744,21 +23436,68 @@ class TreeStore {
22744
23436
  parentNode.insertChild({ data });
22745
23437
  }
22746
23438
  }
23439
+ /**
23440
+ * 级联非 strict:仅对「选中集合里的最深节点」做 setChecked(true, deep),
23441
+ * 避免对祖先逐个 deep 勾选把未出现在 checkedValues 里的兄弟子树再次全选。
23442
+ * @param checkedValues ~
23443
+ * @returns ~
23444
+ */
23445
+ _getCascadeCheckedAnchorIds(checkedValues) {
23446
+ const checkedSet = new Set(checkedValues);
23447
+ const nodesMap = this.nodesMap;
23448
+ const anchors = [];
23449
+ for (const id of checkedValues) {
23450
+ const node = nodesMap[id];
23451
+ if (!node) continue;
23452
+ const hasSelectedChildInSet = node.childNodes.some(
23453
+ (child) => checkedSet.has(child.getter.value)
23454
+ );
23455
+ if (!hasSelectedChildInSet) {
23456
+ anchors.push(id);
23457
+ }
23458
+ }
23459
+ anchors.sort((a, b) => {
23460
+ const na = nodesMap[a];
23461
+ const nb = nodesMap[b];
23462
+ if (!na || !nb) return 0;
23463
+ return nb.states.level - na.states.level;
23464
+ });
23465
+ return anchors;
23466
+ }
22747
23467
  _initDefaultCheckedNodes() {
22748
23468
  const checkedValues = this.checkedValues || [];
22749
23469
  const nodesMap = this.nodesMap;
22750
- checkedValues.forEach((id) => {
23470
+ if (this.checkStrictly) {
23471
+ checkedValues.forEach((id) => {
23472
+ const node = nodesMap[id];
23473
+ if (node) {
23474
+ node.setChecked(true, false);
23475
+ }
23476
+ });
23477
+ return;
23478
+ }
23479
+ const anchorIds = this._getCascadeCheckedAnchorIds(checkedValues);
23480
+ anchorIds.forEach((id) => {
22751
23481
  const node = nodesMap[id];
22752
23482
  if (node) {
22753
- node.setChecked(true, !this.checkStrictly);
23483
+ node.setChecked(true, true);
22754
23484
  }
22755
23485
  });
22756
23486
  }
22757
23487
  _initDefaultCheckedNode(node) {
22758
23488
  const checkedValues = this.checkedValues || [];
22759
23489
  const nodeValue = node.getter.value;
22760
- if (checkedValues.indexOf(nodeValue) !== -1) {
22761
- node.setChecked(true, !this.checkStrictly);
23490
+ if (checkedValues.indexOf(nodeValue) === -1) return;
23491
+ if (this.checkStrictly) {
23492
+ node.setChecked(true, false);
23493
+ return;
23494
+ }
23495
+ const checkedSet = new Set(checkedValues);
23496
+ const hasSelectedChildInSet = node.childNodes.some(
23497
+ (child) => checkedSet.has(child.getter.value)
23498
+ );
23499
+ if (!hasSelectedChildInSet) {
23500
+ node.setChecked(true, true);
22762
23501
  }
22763
23502
  }
22764
23503
  setCheckedValues(newVal) {
@@ -22986,9 +23725,9 @@ const props$3 = {
22986
23725
 
22987
23726
  /** @jsxImportSource vue */
22988
23727
 
22989
- const COMPONENT_NAME$4 = 'vc-tree-node';
23728
+ const COMPONENT_NAME$6 = 'vc-tree-node';
22990
23729
  const TreeNodeContent = /* @__PURE__ */ defineComponent({
22991
- name: COMPONENT_NAME$4,
23730
+ name: COMPONENT_NAME$6,
22992
23731
  props: props$3,
22993
23732
  emits: ['node-expand'],
22994
23733
  setup(props, {
@@ -23487,9 +24226,9 @@ const props$2 = {
23487
24226
 
23488
24227
  /** @jsxImportSource vue */
23489
24228
 
23490
- const COMPONENT_NAME$3 = 'vc-tree';
24229
+ const COMPONENT_NAME$5 = 'vc-tree';
23491
24230
  const Tree = /* @__PURE__ */ defineComponent({
23492
- name: COMPONENT_NAME$3,
24231
+ name: COMPONENT_NAME$5,
23493
24232
  props: props$2,
23494
24233
  emits: ['update:modelValue', 'change', 'check-change', 'current-change', 'node-click', 'node-contextmenu', 'node-collapse', 'node-expand', 'check', 'node-drag-start', 'node-drag-end', 'node-drop', 'node-drag-leave', 'node-drag-enter', 'node-drag-over'],
23495
24234
  setup(props, {
@@ -23684,6 +24423,225 @@ const Tree = /* @__PURE__ */ defineComponent({
23684
24423
  }
23685
24424
  });
23686
24425
 
24426
+ /** @jsxImportSource vue */
24427
+
24428
+ const COMPONENT_NAME$4 = 'vc-tree-select-content';
24429
+ const TreeSelectContent = /* @__PURE__ */ defineComponent({
24430
+ name: COMPONENT_NAME$4,
24431
+ props: {
24432
+ value: {
24433
+ type: Array,
24434
+ required: true
24435
+ },
24436
+ data: {
24437
+ type: Array,
24438
+ default: () => []
24439
+ },
24440
+ checkStrictly: {
24441
+ type: Boolean,
24442
+ default: false
24443
+ },
24444
+ renderNodeLabel: Function
24445
+ },
24446
+ emits: ['change'],
24447
+ setup(props, {
24448
+ emit
24449
+ }) {
24450
+ return () => {
24451
+ return createVNode(Scroller, {
24452
+ "class": "vc-tree-select__options",
24453
+ "max-height": "200px"
24454
+ }, {
24455
+ default: () => [createVNode(Tree, {
24456
+ "model-value": props.value,
24457
+ "expanded-values": props.value,
24458
+ "data": props.data,
24459
+ "checkStrictly": props.checkStrictly,
24460
+ "allowDispatch": false,
24461
+ "showCheckbox": true,
24462
+ "renderNodeLabel": props.renderNodeLabel,
24463
+ "onChange": (_, data) => emit('change', _, data)
24464
+ }, null)]
24465
+ });
24466
+ };
24467
+ }
24468
+ });
24469
+
24470
+ /** @jsxImportSource vue */
24471
+
24472
+ const COMPONENT_NAME$3 = 'vc-tree-select-content-cascader';
24473
+ const TreeSelectContentCascader = /* @__PURE__ */ defineComponent({
24474
+ name: COMPONENT_NAME$3,
24475
+ props: {
24476
+ value: {
24477
+ type: Array,
24478
+ required: true
24479
+ },
24480
+ data: {
24481
+ type: Array,
24482
+ default: () => []
24483
+ },
24484
+ checkStrictly: {
24485
+ type: Boolean,
24486
+ default: false
24487
+ },
24488
+ renderNodeLabel: Function,
24489
+ numerable: {
24490
+ type: Boolean,
24491
+ default: false
24492
+ },
24493
+ separator: {
24494
+ type: String,
24495
+ default: ','
24496
+ },
24497
+ max: {
24498
+ type: Number,
24499
+ default: 1
24500
+ },
24501
+ nullValue: {
24502
+ type: [Number, String, Object],
24503
+ default: void 0
24504
+ }
24505
+ },
24506
+ emits: ['change'],
24507
+ setup(props, {
24508
+ emit
24509
+ }) {
24510
+ const treeRef = ref(null);
24511
+ /** hover 展开路径,与 Cascader 一致 */
24512
+ const currentValue = ref([]);
24513
+ const rebuildData = computed(() => {
24514
+ if (!props.data.length) return [];
24515
+ let temp = props.data;
24516
+ const data = [];
24517
+ currentValue.value.forEach(cur => {
24518
+ const col = temp;
24519
+ data.push(col);
24520
+ const next = (temp.find(i => i.value == cur) || {}).children || [];
24521
+ temp = next;
24522
+ });
24523
+ data.push(temp);
24524
+ return data;
24525
+ });
24526
+ /** 驱动列区在 TreeStore 更新后重绘 */
24527
+ const panelTick = ref(0);
24528
+ const columns = computed(() => Array.from({
24529
+ length: currentValue.value.length + 1
24530
+ }).map((_, index) => index));
24531
+ const handleHover = (value, columnIndex) => {
24532
+ const len = currentValue.value.length - columnIndex;
24533
+ currentValue.value.splice(columnIndex, len, value);
24534
+ };
24535
+ const sync = async () => {
24536
+ await nextTick();
24537
+ const tree = treeRef.value;
24538
+ if (!tree) return;
24539
+ const data = {
24540
+ checkedNodes: tree.getCheckedNodes(),
24541
+ checkedValues: tree.getCheckedValues(),
24542
+ halfCheckedNodes: tree.getHalfCheckedNodes(),
24543
+ halfCheckedValues: tree.getHalfCheckedValues()
24544
+ };
24545
+ panelTick.value++;
24546
+ emit('change', null, data);
24547
+ };
24548
+ const getNodeState = item => {
24549
+ const tree = treeRef.value;
24550
+ if (!tree) {
24551
+ return {
24552
+ checked: false,
24553
+ indeterminate: false
24554
+ };
24555
+ }
24556
+ const node = tree.getNode(item);
24557
+ if (!node) {
24558
+ return {
24559
+ checked: false,
24560
+ indeterminate: false
24561
+ };
24562
+ }
24563
+ return {
24564
+ checked: !!node.states.checked,
24565
+ indeterminate: !!node.states.indeterminate
24566
+ };
24567
+ };
24568
+ const hasChildren = item => {
24569
+ return !!(item.children && item.children.length > 0);
24570
+ };
24571
+ const handleCheckboxChange = async (v, item) => {
24572
+ const tree = treeRef.value;
24573
+ if (!tree) return;
24574
+ tree.setChecked(item, v, !props.checkStrictly);
24575
+ sync();
24576
+ };
24577
+ const handleLabelClick = (v, item) => {
24578
+ const tree = treeRef.value;
24579
+ if (!tree) return;
24580
+ tree.setChecked(item, v, !props.checkStrictly);
24581
+ sync();
24582
+ };
24583
+ return () => {
24584
+ return createVNode("div", {
24585
+ "class": "vc-tree-select__cascader"
24586
+ }, [createVNode(Tree, {
24587
+ "ref": treeRef,
24588
+ "class": "vc-tree-select__cascader-tree-hidden",
24589
+ "model-value": props.value,
24590
+ "expanded-values": props.value,
24591
+ "data": props.data,
24592
+ "checkStrictly": props.checkStrictly,
24593
+ "allowDispatch": false,
24594
+ "showCheckbox": true,
24595
+ "renderNodeLabel": props.renderNodeLabel,
24596
+ "numerable": props.numerable,
24597
+ "separator": props.separator,
24598
+ "max": props.max,
24599
+ "nullValue": props.nullValue
24600
+ }, null), createVNode("div", {
24601
+ "class": "vc-tree-select__cascader-columns"
24602
+ }, [columns.value.map(columnIndex => {
24603
+ const col = rebuildData.value[columnIndex];
24604
+ if (!col || !col.length) return null;
24605
+ return createVNode("div", {
24606
+ "class": "vc-tree-select__cascader-column",
24607
+ "key": columnIndex
24608
+ }, [createVNode("div", {
24609
+ "class": "vc-tree-select__cascader-column-wrapper"
24610
+ }, [col.map(item => {
24611
+ const state = getNodeState(item);
24612
+ const isSelect = currentValue.value[columnIndex] === item.value;
24613
+ const child = hasChildren(item);
24614
+ return createVNode("div", {
24615
+ "key": item.value,
24616
+ "class": ['vc-tree-select__cascader-item', {
24617
+ 'is-select': isSelect
24618
+ }],
24619
+ "onMouseenter": () => handleHover(item.value, columnIndex),
24620
+ "onClick": () => handleLabelClick(!state.checked, item)
24621
+ }, [createVNode("span", {
24622
+ "class": "vc-tree-select__cascader-checkbox",
24623
+ "onClick": e => e.stopPropagation()
24624
+ }, [createVNode(Checkbox, {
24625
+ "modelValue": state.checked,
24626
+ "indeterminate": state.indeterminate,
24627
+ "disabled": !!item.disabled,
24628
+ "onChange": v => handleCheckboxChange(v, item)
24629
+ }, null)]), createVNode("span", {
24630
+ "class": "vc-tree-select__cascader-label"
24631
+ }, [props.renderNodeLabel && treeRef.value?.getNode?.(item) ? createVNode(Customer, {
24632
+ "render": props.renderNodeLabel,
24633
+ "store": treeRef.value.getNode(item),
24634
+ "row": item
24635
+ }, null) : createVNode("span", null, [item.label])]), child ? createVNode(Icon, {
24636
+ "type": "right",
24637
+ "class": "vc-tree-select__cascader-icon"
24638
+ }, null) : null]);
24639
+ })])]);
24640
+ })])]);
24641
+ };
24642
+ }
24643
+ });
24644
+
23687
24645
  const treeKeys = [
23688
24646
  "checkStrictly",
23689
24647
  "data",
@@ -23692,7 +24650,18 @@ const treeKeys = [
23692
24650
  ];
23693
24651
  const props$1 = {
23694
24652
  ...props$1a,
23695
- ...pick(props$2, treeKeys)
24653
+ ...pick(props$2, treeKeys),
24654
+ autoWidth: {
24655
+ type: Boolean,
24656
+ default: void 0
24657
+ },
24658
+ /**
24659
+ * 级联列模式:与 Cascader 相同的 hover 展开下一级,勾选逻辑与树形模式一致
24660
+ */
24661
+ cascader: {
24662
+ type: Boolean,
24663
+ default: false
24664
+ }
23696
24665
  };
23697
24666
 
23698
24667
  /** @jsxImportSource vue */
@@ -23718,12 +24687,37 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
23718
24687
  const searchValue = ref('');
23719
24688
  const searchRegex = ref(new RegExp(''));
23720
24689
  const currentValue = ref([]);
24690
+ const currentValueGroups = computed(() => {
24691
+ if (props.checkStrictly) return;
24692
+ if (!props.data?.length || !Array.isArray(currentValue.value) || !currentValue.value.length) {
24693
+ return [];
24694
+ }
24695
+ const pathMap = new Map();
24696
+ const traverse = (data, path = []) => {
24697
+ data.forEach(item => {
24698
+ const v = item.value;
24699
+ if (v == null) return;
24700
+ const fullPath = [...path, v];
24701
+ pathMap.set(v, fullPath);
24702
+ if (item.children?.length) traverse(item.children, fullPath);
24703
+ });
24704
+ };
24705
+ traverse(props.data);
24706
+ const allPaths = currentValue.value.map(v => pathMap.get(v)).filter(Boolean);
24707
+ return allPaths.filter(path => !allPaths.some(other => other !== path && other.length > path.length && path.every((v, i) => v === other[i])));
24708
+ });
23721
24709
  const source = computed(() => {
23722
24710
  return flattenData$1(props.data, {
23723
24711
  parent: true,
23724
24712
  cascader: true
23725
24713
  });
23726
24714
  });
24715
+ const labelMap = computed(() => {
24716
+ return source.value.reduce((pre, cur) => {
24717
+ pre[cur.value] = cur.label || '';
24718
+ return pre;
24719
+ }, {});
24720
+ });
23727
24721
  const icon = computed(() => {
23728
24722
  return isActive.value ? 'up' : 'down';
23729
24723
  });
@@ -23740,17 +24734,34 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
23740
24734
  'is-disabled': props.disabled
23741
24735
  };
23742
24736
  });
23743
- const currentLabel = computed(() => {
24737
+ const displayTags = computed(() => {
23744
24738
  if (!props.data.length) {
23745
24739
  return [];
23746
24740
  }
23747
- return currentValue.value.map(getLabel.bind(null, source.value));
24741
+ if (props.checkStrictly) {
24742
+ return currentValue.value.map(v => ({
24743
+ value: v,
24744
+ label: labelMap.value[v] || ''
24745
+ }));
24746
+ }
24747
+ return (currentValueGroups.value || []).map(path => {
24748
+ const value = path[path.length - 1];
24749
+ const label = path.map(v => labelMap.value[v] || '').filter(Boolean).join(' / ');
24750
+ return {
24751
+ path,
24752
+ value,
24753
+ label
24754
+ };
24755
+ });
23748
24756
  });
23749
24757
  const collapseTagCount = computed(() => {
23750
24758
  if (!props.maxTags) return 0;
23751
- const v = currentValue.value.length - props.maxTags;
24759
+ const v = displayTags.value.length - props.maxTags;
23752
24760
  return v < 0 ? 0 : v;
23753
24761
  });
24762
+ const autoWidth = computed(() => {
24763
+ return typeof props.autoWidth === 'boolean' ? props.autoWidth : !!props.cascader;
24764
+ });
23754
24765
 
23755
24766
  /**
23756
24767
  * v-model 同步, 外部的数据改变时不会触发
@@ -23763,8 +24774,9 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
23763
24774
  separator: props.separator,
23764
24775
  nullValue: props.nullValue
23765
24776
  });
23766
- emit('update:modelValue', v, currentLabel.value);
23767
- emit('change', v, currentLabel.value);
24777
+ const labels = displayTags.value.map(item => item.label);
24778
+ emit('update:modelValue', v, labels);
24779
+ emit('change', v, labels);
23768
24780
 
23769
24781
  // form表单
23770
24782
  formItem?.change?.(currentValue.value);
@@ -23789,8 +24801,15 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
23789
24801
  const close = () => {
23790
24802
  isActive.value = false;
23791
24803
  };
23792
- const handleClose = index => {
23793
- currentValue.value.splice(index, 1);
24804
+ const handleClose = item => {
24805
+ if (props.checkStrictly) {
24806
+ const index = currentValue.value.findIndex(v => v === item.value);
24807
+ if (index === -1) return;
24808
+ currentValue.value = currentValue.value.filter((_, i) => i !== index);
24809
+ } else if (item.path) {
24810
+ const remaining = (currentValueGroups.value || []).filter(p => !(p.length === item.path.length && p.every((v, i) => v === item.path[i])));
24811
+ currentValue.value = [...new Set(remaining.flat())];
24812
+ }
23794
24813
  sync();
23795
24814
  };
23796
24815
  const handleClear = e => {
@@ -23827,6 +24846,7 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
23827
24846
  multiple,
23828
24847
  isActive,
23829
24848
  current: currentValue,
24849
+ currentValueGroups,
23830
24850
  // for portal
23831
24851
  toggle(v) {
23832
24852
  v = typeof v === 'boolean' ? v : !isActive.value;
@@ -23841,7 +24861,7 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
23841
24861
  "trigger": props.trigger,
23842
24862
  "tag": props.tag,
23843
24863
  "placement": props.placement,
23844
- "auto-width": props.autoWidth,
24864
+ "autoWidth": autoWidth.value,
23845
24865
  "disabled": props.disabled,
23846
24866
  "portalClass": [['is-padding-none', props.portalClass]],
23847
24867
  "class": [classes.value, its.value.class, 'vc-tree-select'],
@@ -23858,22 +24878,22 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
23858
24878
  return createVNode(Input, {
23859
24879
  "id": props.id,
23860
24880
  "disabled": props.disabled,
23861
- "modelValue": currentLabel.value[0] || props.extra,
24881
+ "modelValue": displayTags.value[0]?.label || props.extra,
23862
24882
  "allow-dispatch": false,
23863
24883
  "class": "vc-tree-select__input",
23864
24884
  "readonly": true,
23865
24885
  "placeholder": its.value.attrs?.placeholder || '请选择'
23866
24886
  }, {
23867
- content: multiple.value && currentValue.value && currentValue.value.length > 0 ? () => {
24887
+ content: multiple.value && displayTags.value.length > 0 ? () => {
23868
24888
  return createVNode("div", {
23869
24889
  "class": [classes.value, 'vc-tree-select__tags']
23870
- }, [currentValue.value.slice(0, props.maxTags).map((item, index) => {
24890
+ }, [displayTags.value.slice(0, props.maxTags).map(item => {
23871
24891
  return createVNode(Tag, {
23872
- "key": item,
24892
+ "key": item.path ? item.path.join('-') : item.value,
23873
24893
  "closable": !props.disabled,
23874
- "onClose": () => handleClose(index)
24894
+ "onClose": () => handleClose(item)
23875
24895
  }, {
23876
- default: () => [currentLabel.value[index] || '']
24896
+ default: () => [item.label]
23877
24897
  });
23878
24898
  }), collapseTagCount.value ? createVNode(Tag, null, {
23879
24899
  default: () => [`+${collapseTagCount.value}...`]
@@ -23906,16 +24926,23 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
23906
24926
  }, [createVNode(Spin, {
23907
24927
  "size": 16
23908
24928
  }, null)]), createVNode(Scroller, {
23909
- "class": "vc-tree-select__options",
24929
+ "class": ['vc-tree-select__options', props.cascader && 'is-cascader'],
23910
24930
  "max-height": "200px"
23911
24931
  }, {
23912
- default: () => [createVNode(Tree, {
23913
- "model-value": currentValue.value,
23914
- "expanded-values": currentValue.value,
24932
+ default: () => [props.cascader ? createVNode(TreeSelectContentCascader, {
24933
+ "value": currentValue.value,
24934
+ "data": props.data,
24935
+ "checkStrictly": props.checkStrictly,
24936
+ "renderNodeLabel": props.renderNodeLabel,
24937
+ "numerable": props.numerable,
24938
+ "separator": props.separator,
24939
+ "max": props.max,
24940
+ "nullValue": props.nullValue,
24941
+ "onChange": handleChange
24942
+ }, null) : createVNode(TreeSelectContent, {
24943
+ "value": currentValue.value,
23915
24944
  "data": props.data,
23916
24945
  "checkStrictly": props.checkStrictly,
23917
- "allowDispatch": false,
23918
- "showCheckbox": true,
23919
24946
  "renderNodeLabel": props.renderNodeLabel,
23920
24947
  "onChange": handleChange
23921
24948
  }, null)]
@@ -24482,4 +25509,4 @@ const UploadPicker = /* @__PURE__ */ defineComponent({
24482
25509
 
24483
25510
  const MUploadPicker = UploadPicker;
24484
25511
 
24485
- export { ActionSheet, Affix, Alert, Artboard, Button, ButtonGroup, Calendar, Card, Carousel, Cascader, Chart, Checkbox, CheckboxGroup, Clipboard, Collapse, CollapseItem, ColorPicker, Countdown, Counter, Customer, DatePicker, Debounce, Divider, Drawer, DrawerView, Dropdown, DropdownItem, DropdownMenu, Editor, EditorView, Expand$1 as Expand, Form, FormItem, Fragment, Icon, IconManager, Image$1 as Image, ImageCrop, ImagePreview, ImageProcessing, Input, InputNumber, InputSearch, MList as List, MListItem as ListItem, MActionSheet, MAffix, MAlert, MArtboard, MButton, MButtonGroup, MCalendar, MCard, MCarousel, MCascader, MChart, MCheckbox, MCheckboxGroup, MClipboard, MCollapse, MCollapseItem, MColorPicker, MCountdown, MCounter, MCustomer, MDatePicker, Debounce as MDebounce, MDivider, MDrawer, MDrawerView, MDropdown, MDropdownItem, MDropdownMenu, MEditor, MEditorView, MExpand, MForm, MFormItem, MFragment, MIcon, MImage, MImageCrop, MImagePreview, MImageProcessing, MInput, MInputNumber, MInputSearch, MList, MListItem, MMarquee, MMessage, modal as MModal, MModalView, MNotice, MOption, MPagination, MPicker, MPopconfirm, MPopover, MPopup, MPortal, MPrint, MProgress, MRadio, MRadioButton, MRadioGroup, MRate, MRecycleList, MResizer, MScroller, MSelect, MSlider, MSnapshot, MSortList, MSpin, MSteps, MSwitch, MTable, MTableColumn, MTabs, MTabsPane, MTag, MText, MTextarea, MTimePicker, MTimeline, MToast, MToastView, MTouch, MTransition, MTransitionCollapse, MTransitionFade, MTransitionScale, MTransitionSlide, MTransitionZoom, MTree, MTreeSelect, MUpload, MUploadPicker, Marquee, Message, MessageView, Modal, ModalView, Notice, NoticeView, Option$1 as Option, Pagination, Picker, Popconfirm, Popover, Popup, Portal, PortalView, Print, Progress, Radio, RadioButton, RadioGroup, Rate, RecycleList, Resizer, Scroller, ScrollerWheel, Select, Slider, Snapshot, SortList, Spin, Steps, Switch, Table, TableColumn, Tabs, TabsPane, Tag, Text, Textarea, Theme, ThemeImage, ThemeText, ThemeView, TimePicker, Timeline, Toast, ToastView, Touch, Transition, TransitionCollapse, TransitionFade, TransitionScale, TransitionSlide, TransitionZoom, Tree, TreeSelect, Upload, UploadPicker, VcError, VcInstance };
25512
+ export { ActionSheet, Affix, Alert, Artboard, Button, ButtonGroup, Calendar, Card, Carousel, CarouselItem, Cascader, Chart, Checkbox, CheckboxGroup, Clipboard, Collapse, CollapseItem, ColorPicker, Countdown, Counter, Customer, DatePicker, Debounce, Divider, Drawer, DrawerView, Dropdown, DropdownItem, DropdownMenu, Editor, EditorView, Expand$1 as Expand, Form, FormItem, Fragment, Icon, IconManager, Image$1 as Image, ImageCrop, ImagePreview, ImageProcessing, Input, InputNumber, InputSearch, MList as List, MListItem as ListItem, MActionSheet, MAffix, MAlert, MArtboard, MButton, MButtonGroup, MCalendar, MCard, MCarousel, MCarouselItem, MCascader, MChart, MCheckbox, MCheckboxGroup, MClipboard, MCollapse, MCollapseItem, MColorPicker, MCountdown, MCounter, MCustomer, MDatePicker, Debounce as MDebounce, MDivider, MDrawer, MDrawerView, MDropdown, MDropdownItem, MDropdownMenu, MEditor, MEditorView, MExpand, MForm, MFormItem, MFragment, MIcon, MImage, MImageCrop, MImagePreview, MImageProcessing, MInput, MInputNumber, MInputSearch, MList, MListItem, MMarquee, MMessage, modal as MModal, MModalView, MNotice, MOption, MPagination, MPicker, MPopconfirm, MPopover, MPopup, MPortal, MPrint, MProgress, MRadio, MRadioButton, MRadioGroup, MRate, MRecycleList, MResizer, MScroller, MSelect, MSlider, MSnapshot, MSortList, MSpin, MSteps, MSwitch, MTable, MTableColumn, MTabs, MTabsPane, MTag, MText, MTextarea, MTimePicker, MTimeline, MToast, MToastView, MTouch, MTransition, MTransitionCollapse, MTransitionFade, MTransitionScale, MTransitionSlide, MTransitionZoom, MTree, MTreeSelect, MUpload, MUploadPicker, Marquee, Message, MessageView, Modal, ModalView, Notice, NoticeView, Option$1 as Option, Pagination, Picker, Popconfirm, Popover, Popup, Portal, PortalView, Print, Progress, Radio, RadioButton, RadioGroup, Rate, RecycleList, Resizer, Scroller, ScrollerWheel, Select, Slider, Snapshot, SortList, Spin, Steps, Switch, Table, TableColumn, Tabs, TabsPane, Tag, Text, Textarea, Theme, ThemeImage, ThemeText, ThemeView, TimePicker, Timeline, Toast, ToastView, Touch, Transition, TransitionCollapse, TransitionFade, TransitionScale, TransitionSlide, TransitionZoom, Tree, TreeSelect, Upload, UploadPicker, VcError, VcInstance };