@deot/vc-components 1.0.63 → 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, {
@@ -5600,9 +6282,9 @@ const value2separated = (value, options) => {
5600
6282
  function _isSlot$1(s) {
5601
6283
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
5602
6284
  }
5603
- const COMPONENT_NAME$1x = 'vc-counter';
6285
+ const COMPONENT_NAME$1z = 'vc-counter';
5604
6286
  const Counter = /* @__PURE__ */ defineComponent({
5605
- name: COMPONENT_NAME$1x,
6287
+ name: COMPONENT_NAME$1z,
5606
6288
  props: props$Z,
5607
6289
  emits: ['begin', 'complete', 'change'],
5608
6290
  setup(props, {
@@ -6865,9 +7547,9 @@ const getTimeType = type => {
6865
7547
  }
6866
7548
  return view;
6867
7549
  };
6868
- const COMPONENT_NAME$1w = 'vc-date-confirm';
7550
+ const COMPONENT_NAME$1y = 'vc-date-confirm';
6869
7551
  const Confirm = /* @__PURE__ */ defineComponent({
6870
- name: COMPONENT_NAME$1w,
7552
+ name: COMPONENT_NAME$1y,
6871
7553
  props: {
6872
7554
  showTime: {
6873
7555
  type: Boolean,
@@ -6931,9 +7613,9 @@ const Confirm = /* @__PURE__ */ defineComponent({
6931
7613
 
6932
7614
  /** @jsxImportSource vue */
6933
7615
 
6934
- const COMPONENT_NAME$1v = 'vc-date-header';
7616
+ const COMPONENT_NAME$1x = 'vc-date-header';
6935
7617
  const DateHeader = /* @__PURE__ */ defineComponent({
6936
- name: COMPONENT_NAME$1v,
7618
+ name: COMPONENT_NAME$1x,
6937
7619
  props: {
6938
7620
  panelDate: Date,
6939
7621
  showNext: {
@@ -7017,9 +7699,9 @@ const DateHeader = /* @__PURE__ */ defineComponent({
7017
7699
 
7018
7700
  /** @jsxImportSource vue */
7019
7701
 
7020
- const COMPONENT_NAME$1u = 'vc-date-table';
7702
+ const COMPONENT_NAME$1w = 'vc-date-table';
7021
7703
  const DateTable = /* @__PURE__ */ defineComponent({
7022
- name: COMPONENT_NAME$1u,
7704
+ name: COMPONENT_NAME$1w,
7023
7705
  props: {
7024
7706
  value: Array,
7025
7707
  firstDayOfWeek: {
@@ -7228,9 +7910,9 @@ const DateTable = /* @__PURE__ */ defineComponent({
7228
7910
 
7229
7911
  /** @jsxImportSource vue */
7230
7912
 
7231
- const COMPONENT_NAME$1t = 'vc-month-table';
7913
+ const COMPONENT_NAME$1v = 'vc-month-table';
7232
7914
  const MonthTable = /* @__PURE__ */ defineComponent({
7233
- name: COMPONENT_NAME$1t,
7915
+ name: COMPONENT_NAME$1v,
7234
7916
  props: {
7235
7917
  value: Array,
7236
7918
  panelDate: Date,
@@ -7362,7 +8044,7 @@ const MonthTable = /* @__PURE__ */ defineComponent({
7362
8044
 
7363
8045
  /** @jsxImportSource vue */
7364
8046
 
7365
- const COMPONENT_NAME$1s = 'vc-quarter-table';
8047
+ const COMPONENT_NAME$1u = 'vc-quarter-table';
7366
8048
 
7367
8049
  /**
7368
8050
  * 获取季度对应的月份范围
@@ -7396,7 +8078,7 @@ const getQuarterRangeByMonth = value => {
7396
8078
  }
7397
8079
  };
7398
8080
  const QuarterTable = /* @__PURE__ */ defineComponent({
7399
- name: COMPONENT_NAME$1s,
8081
+ name: COMPONENT_NAME$1u,
7400
8082
  props: {
7401
8083
  value: Array,
7402
8084
  panelDate: Date,
@@ -7519,9 +8201,9 @@ const QuarterTable = /* @__PURE__ */ defineComponent({
7519
8201
 
7520
8202
  /** @jsxImportSource vue */
7521
8203
 
7522
- const COMPONENT_NAME$1r = 'vc-shortcuts-select';
8204
+ const COMPONENT_NAME$1t = 'vc-shortcuts-select';
7523
8205
  const ShortcutsSelect = /* @__PURE__ */ defineComponent({
7524
- name: COMPONENT_NAME$1r,
8206
+ name: COMPONENT_NAME$1t,
7525
8207
  props: {
7526
8208
  panelDate: Date,
7527
8209
  config: Array,
@@ -7561,9 +8243,9 @@ const ShortcutsSelect = /* @__PURE__ */ defineComponent({
7561
8243
 
7562
8244
  /** @jsxImportSource vue */
7563
8245
 
7564
- const COMPONENT_NAME$1q = 'vc-time-select';
8246
+ const COMPONENT_NAME$1s = 'vc-time-select';
7565
8247
  const TimeSelect = /* @__PURE__ */ defineComponent({
7566
- name: COMPONENT_NAME$1q,
8248
+ name: COMPONENT_NAME$1s,
7567
8249
  props: {
7568
8250
  hours: {
7569
8251
  type: [Number, String],
@@ -7843,9 +8525,9 @@ const TimeSelect = /* @__PURE__ */ defineComponent({
7843
8525
 
7844
8526
  /** @jsxImportSource vue */
7845
8527
 
7846
- const COMPONENT_NAME$1p = 'vc-year-table';
8528
+ const COMPONENT_NAME$1r = 'vc-year-table';
7847
8529
  const YearTable = /* @__PURE__ */ defineComponent({
7848
- name: COMPONENT_NAME$1p,
8530
+ name: COMPONENT_NAME$1r,
7849
8531
  props: {
7850
8532
  value: Array,
7851
8533
  panelDate: Date,
@@ -7968,9 +8650,9 @@ const getDateIsInRange = (value, type, leftPanelDate, rightPanelDate) => {
7968
8650
  }
7969
8651
  return true;
7970
8652
  };
7971
- const COMPONENT_NAME$1o = 'vc-date-range-panel';
8653
+ const COMPONENT_NAME$1q = 'vc-date-range-panel';
7972
8654
  const DateRangePanel = /* @__PURE__ */ defineComponent({
7973
- name: COMPONENT_NAME$1o,
8655
+ name: COMPONENT_NAME$1q,
7974
8656
  props: {
7975
8657
  ...props$W,
7976
8658
  confirm: {
@@ -8349,9 +9031,9 @@ const DateRangePanel = /* @__PURE__ */ defineComponent({
8349
9031
 
8350
9032
  /** @jsxImportSource vue */
8351
9033
 
8352
- const COMPONENT_NAME$1n = 'vc-date-panel';
9034
+ const COMPONENT_NAME$1p = 'vc-date-panel';
8353
9035
  const DatePanel = /* @__PURE__ */ defineComponent({
8354
- name: COMPONENT_NAME$1n,
9036
+ name: COMPONENT_NAME$1p,
8355
9037
  props: {
8356
9038
  ...props$W,
8357
9039
  type: String,
@@ -8559,9 +9241,9 @@ const isEqualYear$1 = value => {
8559
9241
  const endYear = value[1].getFullYear();
8560
9242
  return startYear === endYear;
8561
9243
  };
8562
- const COMPONENT_NAME$1m = 'vc-monthrange-panel';
9244
+ const COMPONENT_NAME$1o = 'vc-monthrange-panel';
8563
9245
  const MonthRangePanel = /* @__PURE__ */ defineComponent({
8564
- name: COMPONENT_NAME$1m,
9246
+ name: COMPONENT_NAME$1o,
8565
9247
  props: {
8566
9248
  ...props$W,
8567
9249
  confirm: {
@@ -8736,9 +9418,9 @@ const isEqualYear = value => {
8736
9418
  const endYear = value[1].getFullYear();
8737
9419
  return startYear === endYear;
8738
9420
  };
8739
- const COMPONENT_NAME$1l = 'vc-quarterrange-panel';
9421
+ const COMPONENT_NAME$1n = 'vc-quarterrange-panel';
8740
9422
  const QuarterRangePanel = /* @__PURE__ */ defineComponent({
8741
- name: COMPONENT_NAME$1l,
9423
+ name: COMPONENT_NAME$1n,
8742
9424
  props: {
8743
9425
  ...props$W,
8744
9426
  confirm: {
@@ -8977,9 +9659,9 @@ const getComparedDate = (leftDate, rightDate) => {
8977
9659
  seconds
8978
9660
  };
8979
9661
  };
8980
- const COMPONENT_NAME$1k = 'vc-timerange-panel';
9662
+ const COMPONENT_NAME$1m = 'vc-timerange-panel';
8981
9663
  const TimeRangePanel = /* @__PURE__ */ defineComponent({
8982
- name: COMPONENT_NAME$1k,
9664
+ name: COMPONENT_NAME$1m,
8983
9665
  props: props$V,
8984
9666
  emits: ['pick', 'clear', 'ok'],
8985
9667
  setup(props, {
@@ -9080,9 +9762,9 @@ const TimeRangePanel = /* @__PURE__ */ defineComponent({
9080
9762
 
9081
9763
  /** @jsxImportSource vue */
9082
9764
 
9083
- const COMPONENT_NAME$1j = 'vc-time-panel';
9765
+ const COMPONENT_NAME$1l = 'vc-time-panel';
9084
9766
  const TimePanel = /* @__PURE__ */ defineComponent({
9085
- name: COMPONENT_NAME$1j,
9767
+ name: COMPONENT_NAME$1l,
9086
9768
  props: props$V,
9087
9769
  emits: ['pick', 'clear', 'ok'],
9088
9770
  setup(props, {
@@ -9138,7 +9820,7 @@ const TimePanel = /* @__PURE__ */ defineComponent({
9138
9820
 
9139
9821
  /** @jsxImportSource vue */
9140
9822
 
9141
- const COMPONENT_NAME$1i = 'vc-date-picker';
9823
+ const COMPONENT_NAME$1k = 'vc-date-picker';
9142
9824
  const getPanel$1 = type => {
9143
9825
  if (['daterange', 'datetimerange'].includes(type)) {
9144
9826
  return DateRangePanel;
@@ -9149,7 +9831,7 @@ const getPanel$1 = type => {
9149
9831
  }
9150
9832
  return DatePanel;
9151
9833
  };
9152
- const DatePicker = createPicker(COMPONENT_NAME$1i, props$Y, () => {
9834
+ const DatePicker = createPicker(COMPONENT_NAME$1k, props$Y, () => {
9153
9835
  const props = getCurrentInstance().props;
9154
9836
  const icon = ref('date');
9155
9837
  const panel = shallowRef({});
@@ -9190,9 +9872,9 @@ const props$U = {
9190
9872
 
9191
9873
  /** @jsxImportSource vue */
9192
9874
 
9193
- const COMPONENT_NAME$1h = 'vc-divider';
9875
+ const COMPONENT_NAME$1j = 'vc-divider';
9194
9876
  const Divider = /* @__PURE__ */ defineComponent({
9195
- name: COMPONENT_NAME$1h,
9877
+ name: COMPONENT_NAME$1j,
9196
9878
  props: props$U,
9197
9879
  setup(props, {
9198
9880
  slots
@@ -9328,7 +10010,7 @@ const props$R = {
9328
10010
 
9329
10011
  /** @jsxImportSource vue */
9330
10012
 
9331
- const COMPONENT_NAME$1g = 'vc-scroller-track';
10013
+ const COMPONENT_NAME$1i = 'vc-scroller-track';
9332
10014
  const BAR_MAP = {
9333
10015
  vertical: {
9334
10016
  scroll: 'scrollTop',
@@ -9348,7 +10030,7 @@ const BAR_MAP = {
9348
10030
  }
9349
10031
  };
9350
10032
  const Track = /* @__PURE__ */ defineComponent({
9351
- name: COMPONENT_NAME$1g,
10033
+ name: COMPONENT_NAME$1i,
9352
10034
  props: props$T,
9353
10035
  emits: ['change'],
9354
10036
  inheritAttrs: false,
@@ -9538,9 +10220,9 @@ const Track = /* @__PURE__ */ defineComponent({
9538
10220
 
9539
10221
  /** @jsxImportSource vue */
9540
10222
 
9541
- const COMPONENT_NAME$1f = 'vc-scroller-bar';
10223
+ const COMPONENT_NAME$1h = 'vc-scroller-bar';
9542
10224
  const Bar = /* @__PURE__ */ defineComponent({
9543
- name: COMPONENT_NAME$1f,
10225
+ name: COMPONENT_NAME$1h,
9544
10226
  props: props$S,
9545
10227
  emits: ['change'],
9546
10228
  setup(props, {
@@ -9775,7 +10457,7 @@ const useScroller = (expose) => {
9775
10457
 
9776
10458
  /** @jsxImportSource vue */
9777
10459
 
9778
- const COMPONENT_NAME$1e = 'vc-scroller';
10460
+ const COMPONENT_NAME$1g = 'vc-scroller';
9779
10461
 
9780
10462
  /**
9781
10463
  * 作为备选方案,目前推荐使用ScrollerWheel
@@ -9786,7 +10468,7 @@ const COMPONENT_NAME$1e = 'vc-scroller';
9786
10468
  * 2. 增加了一层嵌套
9787
10469
  */
9788
10470
  const Scroller = /* @__PURE__ */ defineComponent({
9789
- name: COMPONENT_NAME$1e,
10471
+ name: COMPONENT_NAME$1g,
9790
10472
  props: props$R,
9791
10473
  emits: ['scroll'],
9792
10474
  setup(props, {
@@ -9847,7 +10529,7 @@ const Scroller = /* @__PURE__ */ defineComponent({
9847
10529
 
9848
10530
  /** @jsxImportSource vue */
9849
10531
 
9850
- const COMPONENT_NAME$1d = 'vc-scroller-wheel';
10532
+ const COMPONENT_NAME$1f = 'vc-scroller-wheel';
9851
10533
 
9852
10534
  /**
9853
10535
  * 为减少一层嵌套,为去除滚动bar的抖动,使用wheel模拟
@@ -9869,7 +10551,7 @@ const COMPONENT_NAME$1d = 'vc-scroller-wheel';
9869
10551
  * 设置scrollTop不会reflow和repaint,不需要考虑transfrom来改变content(transform也只在draw完成)
9870
10552
  */
9871
10553
  const ScrollerWheel = /* @__PURE__ */ defineComponent({
9872
- name: COMPONENT_NAME$1d,
10554
+ name: COMPONENT_NAME$1f,
9873
10555
  props: Object.assign({}, props$R, {
9874
10556
  stopPropagation: {
9875
10557
  type: Boolean,
@@ -10058,9 +10740,9 @@ const props$Q = {
10058
10740
 
10059
10741
  /** @jsxImportSource vue */
10060
10742
 
10061
- const COMPONENT_NAME$1c = 'vc-drawer';
10743
+ const COMPONENT_NAME$1e = 'vc-drawer';
10062
10744
  const DrawerView = /* @__PURE__ */ defineComponent({
10063
- name: COMPONENT_NAME$1c,
10745
+ name: COMPONENT_NAME$1e,
10064
10746
  props: props$Q,
10065
10747
  emits: ['close', 'update:modelValue', 'visible-change'],
10066
10748
  setup(props, {
@@ -10249,9 +10931,9 @@ const props$P = {
10249
10931
 
10250
10932
  /** @jsxImportSource vue */
10251
10933
 
10252
- const COMPONENT_NAME$1b = 'vc-dropdown';
10934
+ const COMPONENT_NAME$1d = 'vc-dropdown';
10253
10935
  const Dropdown = /* @__PURE__ */ defineComponent({
10254
- name: COMPONENT_NAME$1b,
10936
+ name: COMPONENT_NAME$1d,
10255
10937
  props: props$P,
10256
10938
  inheritAttrs: false,
10257
10939
  emits: ['update:modelValue', 'ready', 'close', 'visible-change', 'click'],
@@ -10321,9 +11003,9 @@ const Dropdown = /* @__PURE__ */ defineComponent({
10321
11003
 
10322
11004
  /** @jsxImportSource vue */
10323
11005
 
10324
- const COMPONENT_NAME$1a = 'vc-dropdown-menu';
11006
+ const COMPONENT_NAME$1c = 'vc-dropdown-menu';
10325
11007
  const DropdownMenu = /* @__PURE__ */ defineComponent({
10326
- name: COMPONENT_NAME$1a,
11008
+ name: COMPONENT_NAME$1c,
10327
11009
  setup(_, {
10328
11010
  slots
10329
11011
  }) {
@@ -10337,9 +11019,9 @@ const DropdownMenu = /* @__PURE__ */ defineComponent({
10337
11019
 
10338
11020
  /** @jsxImportSource vue */
10339
11021
 
10340
- const COMPONENT_NAME$19 = 'vc-dropdown-item';
11022
+ const COMPONENT_NAME$1b = 'vc-dropdown-item';
10341
11023
  const DropdownItem = /* @__PURE__ */ defineComponent({
10342
- name: COMPONENT_NAME$19,
11024
+ name: COMPONENT_NAME$1b,
10343
11025
  emits: ['click'],
10344
11026
  props: {
10345
11027
  value: {
@@ -10544,9 +11226,9 @@ const defaults = {
10544
11226
 
10545
11227
  /** @jsxImportSource vue */
10546
11228
 
10547
- const COMPONENT_NAME$18 = 'vc-editor-toolbar';
11229
+ const COMPONENT_NAME$1a = 'vc-editor-toolbar';
10548
11230
  const EditorToolbar = /* @__PURE__ */ defineComponent({
10549
- name: COMPONENT_NAME$18,
11231
+ name: COMPONENT_NAME$1a,
10550
11232
  props: {
10551
11233
  options: [Array, Object],
10552
11234
  elementId: String
@@ -10754,9 +11436,9 @@ const props$O = {
10754
11436
 
10755
11437
  /** @jsxImportSource vue */
10756
11438
 
10757
- const COMPONENT_NAME$17 = 'vc-image-preview';
11439
+ const COMPONENT_NAME$19 = 'vc-image-preview';
10758
11440
  const ImagePreview$1 = /* @__PURE__ */ defineComponent({
10759
- name: COMPONENT_NAME$17,
11441
+ name: COMPONENT_NAME$19,
10760
11442
  props: props$O,
10761
11443
  setup(props, {
10762
11444
  slots
@@ -10951,9 +11633,9 @@ const props$N = {
10951
11633
  }
10952
11634
  };
10953
11635
 
10954
- const COMPONENT_NAME$16 = "vc-upload";
11636
+ const COMPONENT_NAME$18 = "vc-upload";
10955
11637
  const Upload$1 = defineComponent({
10956
- name: COMPONENT_NAME$16,
11638
+ name: COMPONENT_NAME$18,
10957
11639
  props: props$N,
10958
11640
  emits: [
10959
11641
  "message",
@@ -11487,9 +12169,9 @@ const props$M = {
11487
12169
 
11488
12170
  /** @jsxImportSource vue */
11489
12171
 
11490
- const COMPONENT_NAME$15 = 'vc-editor';
12172
+ const COMPONENT_NAME$17 = 'vc-editor';
11491
12173
  const Editor = /* @__PURE__ */ defineComponent({
11492
- name: COMPONENT_NAME$15,
12174
+ name: COMPONENT_NAME$17,
11493
12175
  props: props$M,
11494
12176
  defaults,
11495
12177
  emits: ['ready', 'blur', 'focus', 'input', 'update:modelValue', 'change'],
@@ -11678,7 +12360,7 @@ const Editor = /* @__PURE__ */ defineComponent({
11678
12360
 
11679
12361
  /** @jsxImportSource vue */
11680
12362
 
11681
- const COMPONENT_NAME$14 = 'vc-editor-view';
12363
+ const COMPONENT_NAME$16 = 'vc-editor-view';
11682
12364
  const setImages = v => {
11683
12365
  if (!v) return;
11684
12366
  const IMG_REGX = /<img.*?(?:>|\/>)/gi;
@@ -11696,7 +12378,7 @@ const setImages = v => {
11696
12378
  return;
11697
12379
  };
11698
12380
  const EditorView = /* @__PURE__ */ defineComponent({
11699
- name: COMPONENT_NAME$14,
12381
+ name: COMPONENT_NAME$16,
11700
12382
  props: {
11701
12383
  value: {
11702
12384
  type: String,
@@ -11911,9 +12593,9 @@ const useForm = (expose, options = {}) => {
11911
12593
  });
11912
12594
  };
11913
12595
 
11914
- const COMPONENT_NAME$13 = "vc-form";
12596
+ const COMPONENT_NAME$15 = "vc-form";
11915
12597
  const Form = defineComponent({
11916
- name: COMPONENT_NAME$13,
12598
+ name: COMPONENT_NAME$15,
11917
12599
  props: props$L,
11918
12600
  setup(props, { slots, expose }) {
11919
12601
  useForm(expose);
@@ -12261,9 +12943,9 @@ const useFormItem = (expose) => {
12261
12943
 
12262
12944
  /** @jsxImportSource vue */
12263
12945
 
12264
- const COMPONENT_NAME$12 = 'vc-form-item';
12946
+ const COMPONENT_NAME$14 = 'vc-form-item';
12265
12947
  const FormItem = /* @__PURE__ */ defineComponent({
12266
- name: COMPONENT_NAME$12,
12948
+ name: COMPONENT_NAME$14,
12267
12949
  props: props$K,
12268
12950
  setup(props, {
12269
12951
  slots,
@@ -12331,9 +13013,9 @@ const props$J = {
12331
13013
  }
12332
13014
  };
12333
13015
 
12334
- const COMPONENT_NAME$11 = "vcm-form";
13016
+ const COMPONENT_NAME$13 = "vcm-form";
12335
13017
  const MForm = defineComponent({
12336
- name: COMPONENT_NAME$11,
13018
+ name: COMPONENT_NAME$13,
12337
13019
  props: props$J,
12338
13020
  setup(props, { slots, expose }) {
12339
13021
  useForm(expose, {
@@ -12364,9 +13046,9 @@ const props$I = {
12364
13046
 
12365
13047
  /** @jsxImportSource vue */
12366
13048
 
12367
- const COMPONENT_NAME$10 = 'vcm-form-item';
13049
+ const COMPONENT_NAME$12 = 'vcm-form-item';
12368
13050
  const MFormItem = /* @__PURE__ */ defineComponent({
12369
- name: COMPONENT_NAME$10,
13051
+ name: COMPONENT_NAME$12,
12370
13052
  props: props$I,
12371
13053
  setup(props, {
12372
13054
  slots,
@@ -12421,9 +13103,9 @@ const MFormItem = /* @__PURE__ */ defineComponent({
12421
13103
  }
12422
13104
  });
12423
13105
 
12424
- const COMPONENT_NAME$$ = "vc-fragment";
13106
+ const COMPONENT_NAME$11 = "vc-fragment";
12425
13107
  const Fragment = defineComponent({
12426
- name: COMPONENT_NAME$$,
13108
+ name: COMPONENT_NAME$11,
12427
13109
  setup(_, { slots }) {
12428
13110
  return () => h(Fragment$1, slots.default?.());
12429
13111
  }
@@ -12462,9 +13144,9 @@ const props$H = {
12462
13144
 
12463
13145
  /** @jsxImportSource vue */
12464
13146
 
12465
- const COMPONENT_NAME$_ = 'vc-snapshot';
13147
+ const COMPONENT_NAME$10 = 'vc-snapshot';
12466
13148
  const Snapshot = /* @__PURE__ */ defineComponent({
12467
- name: COMPONENT_NAME$_,
13149
+ name: COMPONENT_NAME$10,
12468
13150
  props: props$H,
12469
13151
  emits: ['ready'],
12470
13152
  setup(props, {
@@ -12623,7 +13305,7 @@ const IMGStore$1 = new IMGStore();
12623
13305
 
12624
13306
  /** @jsxImportSource vue */
12625
13307
 
12626
- const COMPONENT_NAME$Z = 'vc-image';
13308
+ const COMPONENT_NAME$$ = 'vc-image';
12627
13309
  let isSupportObjectFit = false;
12628
13310
  window.addEventListener('DOMContentLoaded', () => {
12629
13311
  isSupportObjectFit = !IS_SERVER$1 && document.documentElement.style.objectFit !== undefined;
@@ -12636,7 +13318,7 @@ const ObjectFit = {
12636
13318
  SCALE_DOWN: 'scale-down'
12637
13319
  };
12638
13320
  const Image$1 = /* @__PURE__ */ defineComponent({
12639
- name: COMPONENT_NAME$Z,
13321
+ name: COMPONENT_NAME$$,
12640
13322
  inheritAttrs: false,
12641
13323
  props: props$G,
12642
13324
  setup(props, {
@@ -12853,9 +13535,9 @@ const props$F = {
12853
13535
 
12854
13536
  /** @jsxImportSource vue */
12855
13537
 
12856
- const COMPONENT_NAME$Y = 'vc-image-crop';
13538
+ const COMPONENT_NAME$_ = 'vc-image-crop';
12857
13539
  const ImageCrop = /* @__PURE__ */ defineComponent({
12858
- name: COMPONENT_NAME$Y,
13540
+ name: COMPONENT_NAME$_,
12859
13541
  props: props$F,
12860
13542
  setup(props, {
12861
13543
  slots
@@ -12881,9 +13563,9 @@ const props$E = {
12881
13563
 
12882
13564
  /** @jsxImportSource vue */
12883
13565
 
12884
- const COMPONENT_NAME$X = 'vc-image-processing';
13566
+ const COMPONENT_NAME$Z = 'vc-image-processing';
12885
13567
  const ImageProcessing = /* @__PURE__ */ defineComponent({
12886
- name: COMPONENT_NAME$X,
13568
+ name: COMPONENT_NAME$Z,
12887
13569
  props: props$E,
12888
13570
  setup(props, {
12889
13571
  slots
@@ -12900,9 +13582,9 @@ const MImageProcessing = ImageProcessing;
12900
13582
 
12901
13583
  /** @jsxImportSource vue */
12902
13584
 
12903
- const COMPONENT_NAME$W = 'vcm-input';
13585
+ const COMPONENT_NAME$Y = 'vcm-input';
12904
13586
  const MInput = /* @__PURE__ */ defineComponent({
12905
- name: COMPONENT_NAME$W,
13587
+ name: COMPONENT_NAME$Y,
12906
13588
  inheritAttrs: false,
12907
13589
  props: {
12908
13590
  ...props$1h,
@@ -12991,9 +13673,9 @@ const MInput = /* @__PURE__ */ defineComponent({
12991
13673
 
12992
13674
  /** @jsxImportSource vue */
12993
13675
 
12994
- const COMPONENT_NAME$V = 'vcm-input-number';
13676
+ const COMPONENT_NAME$X = 'vcm-input-number';
12995
13677
  const MInputNumber = /* @__PURE__ */ defineComponent({
12996
- name: COMPONENT_NAME$V,
13678
+ name: COMPONENT_NAME$X,
12997
13679
  props: props$1g,
12998
13680
  inheritAttrs: false,
12999
13681
  setup(props, {
@@ -13042,9 +13724,9 @@ const MInputNumber = /* @__PURE__ */ defineComponent({
13042
13724
 
13043
13725
  /** @jsxImportSource vue */
13044
13726
 
13045
- const COMPONENT_NAME$U = 'vcm-input-search';
13727
+ const COMPONENT_NAME$W = 'vcm-input-search';
13046
13728
  const MInputSearch = /* @__PURE__ */ defineComponent({
13047
- name: COMPONENT_NAME$U,
13729
+ name: COMPONENT_NAME$W,
13048
13730
  props: {
13049
13731
  ...props$1f,
13050
13732
  cancelText: {
@@ -13121,9 +13803,9 @@ const props$D = {
13121
13803
  }
13122
13804
  };
13123
13805
 
13124
- const COMPONENT_NAME$T = "vcm-list";
13806
+ const COMPONENT_NAME$V = "vcm-list";
13125
13807
  const MList = defineComponent({
13126
- name: COMPONENT_NAME$T,
13808
+ name: COMPONENT_NAME$V,
13127
13809
  props: props$D,
13128
13810
  setup(props, { slots }) {
13129
13811
  provide("vc-list", { props });
@@ -13178,10 +13860,10 @@ const props$C = {
13178
13860
 
13179
13861
  /** @jsxImportSource vue */
13180
13862
 
13181
- const COMPONENT_NAME$S = 'vcm-list-item';
13863
+ const COMPONENT_NAME$U = 'vcm-list-item';
13182
13864
  const HTTP_REGEX = /[a-zA-z]+:\/\/[^\s]*/;
13183
13865
  const MListItem = /* @__PURE__ */ defineComponent({
13184
- name: COMPONENT_NAME$S,
13866
+ name: COMPONENT_NAME$U,
13185
13867
  props: props$C,
13186
13868
  emits: ['click'],
13187
13869
  setup(props, {
@@ -13275,11 +13957,11 @@ const props$B = {
13275
13957
 
13276
13958
  /** @jsxImportSource vue */
13277
13959
 
13278
- const COMPONENT_NAME$R = 'vc-marquee';
13960
+ const COMPONENT_NAME$T = 'vc-marquee';
13279
13961
  const ANIMATION = prefixStyle('animation').camel;
13280
13962
  const TRANSFORM_KEBAB = prefixStyle('transform').kebab;
13281
13963
  const Marquee = /* @__PURE__ */ defineComponent({
13282
- name: COMPONENT_NAME$R,
13964
+ name: COMPONENT_NAME$T,
13283
13965
  props: props$B,
13284
13966
  setup(props, {
13285
13967
  slots
@@ -13347,9 +14029,9 @@ const props$A = {
13347
14029
  }
13348
14030
  };
13349
14031
 
13350
- const COMPONENT_NAME$Q = "vc-resizer";
14032
+ const COMPONENT_NAME$S = "vc-resizer";
13351
14033
  const Resizer = defineComponent({
13352
- name: COMPONENT_NAME$Q,
14034
+ name: COMPONENT_NAME$S,
13353
14035
  props: props$A,
13354
14036
  emits: ["resize"],
13355
14037
  setup(props, { emit, slots, expose }) {
@@ -13519,10 +14201,10 @@ const props$z = {
13519
14201
 
13520
14202
  /** @jsxImportSource vue */
13521
14203
 
13522
- const COMPONENT_NAME$P = 'vc-modal';
14204
+ const COMPONENT_NAME$R = 'vc-modal';
13523
14205
  let zIndexNumber = 1002;
13524
14206
  const ModalView = /* @__PURE__ */ defineComponent({
13525
- name: COMPONENT_NAME$P,
14207
+ name: COMPONENT_NAME$R,
13526
14208
  emits: ['update:modelValue', 'close', 'portal-fulfilled', 'visible-change', 'ok', 'cancel'],
13527
14209
  props: props$z,
13528
14210
  setup(props, {
@@ -13961,9 +14643,9 @@ const props$y = {
13961
14643
 
13962
14644
  /** @jsxImportSource vue */
13963
14645
 
13964
- const COMPONENT_NAME$O = 'vc-modal';
14646
+ const COMPONENT_NAME$Q = 'vc-modal';
13965
14647
  const MModalView = /* @__PURE__ */ defineComponent({
13966
- name: COMPONENT_NAME$O,
14648
+ name: COMPONENT_NAME$Q,
13967
14649
  emits: ['update:modelValue', 'portal-fulfilled', 'close', 'ok', 'cancel'],
13968
14650
  props: props$y,
13969
14651
  setup(props, {
@@ -14175,9 +14857,9 @@ const props$x = {
14175
14857
 
14176
14858
  /** @jsxImportSource vue */
14177
14859
 
14178
- const COMPONENT_NAME$N = 'vc-notice';
14860
+ const COMPONENT_NAME$P = 'vc-notice';
14179
14861
  const NoticeView = /* @__PURE__ */ defineComponent({
14180
- name: COMPONENT_NAME$N,
14862
+ name: COMPONENT_NAME$P,
14181
14863
  props: props$x,
14182
14864
  emits: ['portal-fulfilled', 'close', 'before-close'],
14183
14865
  setup(props, {
@@ -14350,9 +15032,9 @@ const props$w = {
14350
15032
 
14351
15033
  /** @jsxImportSource vue */
14352
15034
 
14353
- const COMPONENT_NAME$M = 'vc-option';
15035
+ const COMPONENT_NAME$O = 'vc-option';
14354
15036
  const Option$1 = /* @__PURE__ */ defineComponent({
14355
- name: COMPONENT_NAME$M,
15037
+ name: COMPONENT_NAME$O,
14356
15038
  props: props$w,
14357
15039
  setup(props, {
14358
15040
  slots
@@ -14436,9 +15118,9 @@ const props$u = {
14436
15118
 
14437
15119
  /** @jsxImportSource vue */
14438
15120
 
14439
- const COMPONENT_NAME$L = 'vc-tag';
15121
+ const COMPONENT_NAME$N = 'vc-tag';
14440
15122
  const Tag = /* @__PURE__ */ defineComponent({
14441
- name: COMPONENT_NAME$L,
15123
+ name: COMPONENT_NAME$N,
14442
15124
  props: props$u,
14443
15125
  emits: ['close', 'change'],
14444
15126
  setup(props, {
@@ -14509,9 +15191,9 @@ const props$t = {
14509
15191
 
14510
15192
  /** @jsxImportSource vue */
14511
15193
 
14512
- const COMPONENT_NAME$K = 'vc-select-option';
15194
+ const COMPONENT_NAME$M = 'vc-select-option';
14513
15195
  const Option = /* @__PURE__ */ defineComponent({
14514
- name: COMPONENT_NAME$K,
15196
+ name: COMPONENT_NAME$M,
14515
15197
  props: props$t,
14516
15198
  setup(props, {
14517
15199
  slots,
@@ -14606,9 +15288,9 @@ const props$s = {
14606
15288
 
14607
15289
  /** @jsxImportSource vue */
14608
15290
 
14609
- const COMPONENT_NAME$J = 'vc-select-option-group';
15291
+ const COMPONENT_NAME$L = 'vc-select-option-group';
14610
15292
  const OptionGroup = /* @__PURE__ */ defineComponent({
14611
- name: COMPONENT_NAME$J,
15293
+ name: COMPONENT_NAME$L,
14612
15294
  props: props$s,
14613
15295
  setup(props, {
14614
15296
  slots
@@ -14638,9 +15320,9 @@ const OptionGroup = /* @__PURE__ */ defineComponent({
14638
15320
 
14639
15321
  /** @jsxImportSource vue */
14640
15322
 
14641
- const COMPONENT_NAME$I = 'vc-select-all';
15323
+ const COMPONENT_NAME$K = 'vc-select-all';
14642
15324
  const SelectAll = /* @__PURE__ */ defineComponent({
14643
- name: COMPONENT_NAME$I,
15325
+ name: COMPONENT_NAME$K,
14644
15326
  props: {
14645
15327
  data: {
14646
15328
  type: Array,
@@ -14710,9 +15392,9 @@ const SelectAll = /* @__PURE__ */ defineComponent({
14710
15392
 
14711
15393
  /** @jsxImportSource vue */
14712
15394
 
14713
- const COMPONENT_NAME$H = 'vc-select';
15395
+ const COMPONENT_NAME$J = 'vc-select';
14714
15396
  const Select = /* @__PURE__ */ defineComponent({
14715
- name: COMPONENT_NAME$H,
15397
+ name: COMPONENT_NAME$J,
14716
15398
  props: props$1a,
14717
15399
  emits: ['ready', 'close', 'visible-change', 'clear', 'change', 'update:modelValue'],
14718
15400
  setup(props, {
@@ -15006,9 +15688,9 @@ const Select = /* @__PURE__ */ defineComponent({
15006
15688
 
15007
15689
  /** @jsxImportSource vue */
15008
15690
 
15009
- const COMPONENT_NAME$G = 'vc-pagination';
15691
+ const COMPONENT_NAME$I = 'vc-pagination';
15010
15692
  const Pagination = /* @__PURE__ */ defineComponent({
15011
- name: COMPONENT_NAME$G,
15693
+ name: COMPONENT_NAME$I,
15012
15694
  props: props$v,
15013
15695
  emits: ['update:current', 'change', 'page-size-change'],
15014
15696
  setup(props, {
@@ -15206,9 +15888,9 @@ const props$r = {
15206
15888
 
15207
15889
  /** @jsxImportSource vue */
15208
15890
 
15209
- const COMPONENT_NAME$F = 'vc-picker';
15891
+ const COMPONENT_NAME$H = 'vc-picker';
15210
15892
  const Picker = /* @__PURE__ */ defineComponent({
15211
- name: COMPONENT_NAME$F,
15893
+ name: COMPONENT_NAME$H,
15212
15894
  props: props$r,
15213
15895
  setup(props, {
15214
15896
  slots
@@ -15271,9 +15953,9 @@ const props$q = {
15271
15953
 
15272
15954
  /** @jsxImportSource vue */
15273
15955
 
15274
- const COMPONENT_NAME$E = 'vc-popconfirm';
15956
+ const COMPONENT_NAME$G = 'vc-popconfirm';
15275
15957
  const Popconfirm = /* @__PURE__ */ defineComponent({
15276
- name: COMPONENT_NAME$E,
15958
+ name: COMPONENT_NAME$G,
15277
15959
  props: props$q,
15278
15960
  inheritAttrs: false,
15279
15961
  emits: ['update:modelValue', 'visible-change', 'ready', 'close', 'cancel', 'ok'],
@@ -15441,9 +16123,9 @@ const props$p = {
15441
16123
 
15442
16124
  /** @jsxImportSource vue */
15443
16125
 
15444
- const COMPONENT_NAME$D = 'vc-popup';
16126
+ const COMPONENT_NAME$F = 'vc-popup';
15445
16127
  const MPopup = /* @__PURE__ */ defineComponent({
15446
- name: COMPONENT_NAME$D,
16128
+ name: COMPONENT_NAME$F,
15447
16129
  props: props$p,
15448
16130
  emits: ['update:modelValue', 'close', 'portal-fulfilled', 'visible-change'],
15449
16131
  setup(props, {
@@ -15570,9 +16252,9 @@ const props$o = {
15570
16252
 
15571
16253
  /** @jsxImportSource vue */
15572
16254
 
15573
- const COMPONENT_NAME$C = 'vc-print';
16255
+ const COMPONENT_NAME$E = 'vc-print';
15574
16256
  const Print = /* @__PURE__ */ defineComponent({
15575
- name: COMPONENT_NAME$C,
16257
+ name: COMPONENT_NAME$E,
15576
16258
  props: props$o,
15577
16259
  setup(props, {
15578
16260
  expose,
@@ -15652,7 +16334,7 @@ const props$n = {
15652
16334
  },
15653
16335
  strokeColor: {
15654
16336
  type: String,
15655
- default: "#2d8cf0"
16337
+ default: "#456CF6"
15656
16338
  },
15657
16339
  trackColor: {
15658
16340
  type: String,
@@ -15674,9 +16356,9 @@ const props$n = {
15674
16356
 
15675
16357
  /** @jsxImportSource vue */
15676
16358
 
15677
- const COMPONENT_NAME$B = 'vc-progress-circle';
16359
+ const COMPONENT_NAME$D = 'vc-progress-circle';
15678
16360
  const Circle = /* @__PURE__ */ defineComponent({
15679
- name: COMPONENT_NAME$B,
16361
+ name: COMPONENT_NAME$D,
15680
16362
  props: props$n,
15681
16363
  setup(props, {
15682
16364
  slots
@@ -15736,9 +16418,9 @@ const Circle = /* @__PURE__ */ defineComponent({
15736
16418
 
15737
16419
  /** @jsxImportSource vue */
15738
16420
 
15739
- const COMPONENT_NAME$A = 'vc-progress-line';
16421
+ const COMPONENT_NAME$C = 'vc-progress-line';
15740
16422
  const Line = /* @__PURE__ */ defineComponent({
15741
- name: COMPONENT_NAME$A,
16423
+ name: COMPONENT_NAME$C,
15742
16424
  props: props$n,
15743
16425
  setup(props) {
15744
16426
  const colorStyle = computed(() => {
@@ -15785,9 +16467,9 @@ const Line = /* @__PURE__ */ defineComponent({
15785
16467
  function _isSlot(s) {
15786
16468
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
15787
16469
  }
15788
- const COMPONENT_NAME$z = 'vc-progress';
16470
+ const COMPONENT_NAME$B = 'vc-progress';
15789
16471
  const Progress = /* @__PURE__ */ defineComponent({
15790
- name: COMPONENT_NAME$z,
16472
+ name: COMPONENT_NAME$B,
15791
16473
  props: props$n,
15792
16474
  setup(props, {
15793
16475
  slots
@@ -15949,9 +16631,9 @@ const useRadio = () => {
15949
16631
 
15950
16632
  /** @jsxImportSource vue */
15951
16633
 
15952
- const COMPONENT_NAME$y = 'vc-radio';
16634
+ const COMPONENT_NAME$A = 'vc-radio';
15953
16635
  const Radio = /* @__PURE__ */ defineComponent({
15954
- name: COMPONENT_NAME$y,
16636
+ name: COMPONENT_NAME$A,
15955
16637
  props: props$m,
15956
16638
  emits: ['update:modelValue', 'change'],
15957
16639
  setup(props, {
@@ -15995,9 +16677,9 @@ const Radio = /* @__PURE__ */ defineComponent({
15995
16677
 
15996
16678
  /** @jsxImportSource vue */
15997
16679
 
15998
- const COMPONENT_NAME$x = 'vc-radio-button';
16680
+ const COMPONENT_NAME$z = 'vc-radio-button';
15999
16681
  const RadioButton = /* @__PURE__ */ defineComponent({
16000
- name: COMPONENT_NAME$x,
16682
+ name: COMPONENT_NAME$z,
16001
16683
  props: {
16002
16684
  ...props$m,
16003
16685
  labelStyle: [String, Object],
@@ -16110,9 +16792,9 @@ const useRadioGroup = () => {
16110
16792
 
16111
16793
  /** @jsxImportSource vue */
16112
16794
 
16113
- const COMPONENT_NAME$w = 'vc-radio-group';
16795
+ const COMPONENT_NAME$y = 'vc-radio-group';
16114
16796
  const RadioGroup = /* @__PURE__ */ defineComponent({
16115
- name: COMPONENT_NAME$w,
16797
+ name: COMPONENT_NAME$y,
16116
16798
  props: props$l,
16117
16799
  emits: ['update:modelValue', 'change'],
16118
16800
  setup(props, {
@@ -16133,9 +16815,9 @@ const RadioGroup = /* @__PURE__ */ defineComponent({
16133
16815
 
16134
16816
  /** @jsxImportSource vue */
16135
16817
 
16136
- const COMPONENT_NAME$v = 'vcm-radio';
16818
+ const COMPONENT_NAME$x = 'vcm-radio';
16137
16819
  const MRadio = /* @__PURE__ */ defineComponent({
16138
- name: COMPONENT_NAME$v,
16820
+ name: COMPONENT_NAME$x,
16139
16821
  props: props$m,
16140
16822
  emits: ['update:modelValue', 'change'],
16141
16823
  setup(props, {
@@ -16179,9 +16861,9 @@ const MRadio = /* @__PURE__ */ defineComponent({
16179
16861
 
16180
16862
  /** @jsxImportSource vue */
16181
16863
 
16182
- const COMPONENT_NAME$u = 'vcm-radio-group';
16864
+ const COMPONENT_NAME$w = 'vcm-radio-group';
16183
16865
  const MRadioGroup = /* @__PURE__ */ defineComponent({
16184
- name: COMPONENT_NAME$u,
16866
+ name: COMPONENT_NAME$w,
16185
16867
  props: props$l,
16186
16868
  emits: ['update:modelValue', 'change'],
16187
16869
  setup(props, {
@@ -16248,9 +16930,9 @@ const props$k = {
16248
16930
 
16249
16931
  /** @jsxImportSource vue */
16250
16932
 
16251
- const COMPONENT_NAME$t = 'vc-rate';
16933
+ const COMPONENT_NAME$v = 'vc-rate';
16252
16934
  const Rate = /* @__PURE__ */ defineComponent({
16253
- name: COMPONENT_NAME$t,
16935
+ name: COMPONENT_NAME$v,
16254
16936
  props: props$k,
16255
16937
  emits: ['update:modelValue', 'change'],
16256
16938
  setup(props, {
@@ -16452,9 +17134,9 @@ const props$j = {
16452
17134
 
16453
17135
  /** @jsxImportSource vue */
16454
17136
 
16455
- const COMPONENT_NAME$s = 'vc-recycle-list-scroll-state';
17137
+ const COMPONENT_NAME$u = 'vc-recycle-list-scroll-state';
16456
17138
  const ScrollState = /* @__PURE__ */ defineComponent({
16457
- name: COMPONENT_NAME$s,
17139
+ name: COMPONENT_NAME$u,
16458
17140
  setup(_, {
16459
17141
  slots
16460
17142
  }) {
@@ -16584,12 +17266,12 @@ const useDirectionKeys = () => {
16584
17266
 
16585
17267
  /** @jsxImportSource vue */
16586
17268
 
16587
- const COMPONENT_NAME$r = 'vc-recycle-list-container';
17269
+ const COMPONENT_NAME$t = 'vc-recycle-list-container';
16588
17270
 
16589
17271
  // TODO: 抽离
16590
17272
  const transformKey = $.prefixStyle('transform').camel;
16591
17273
  const Container = /* @__PURE__ */ defineComponent({
16592
- name: COMPONENT_NAME$r,
17274
+ name: COMPONENT_NAME$t,
16593
17275
  props: props$i,
16594
17276
  emits: ['refresh'],
16595
17277
  setup(props, {
@@ -16687,9 +17369,9 @@ const Container = /* @__PURE__ */ defineComponent({
16687
17369
 
16688
17370
  /** @jsxImportSource vue */
16689
17371
 
16690
- const COMPONENT_NAME$q = 'vc-recycle-list';
17372
+ const COMPONENT_NAME$s = 'vc-recycle-list';
16691
17373
  const RecycleList = /* @__PURE__ */ defineComponent({
16692
- name: COMPONENT_NAME$q,
17374
+ name: COMPONENT_NAME$s,
16693
17375
  props: props$j,
16694
17376
  emits: ['scroll', 'row-resize'],
16695
17377
  setup(props, {
@@ -17263,9 +17945,9 @@ const props$h = {
17263
17945
 
17264
17946
  /** @jsxImportSource vue */
17265
17947
 
17266
- const COMPONENT_NAME$p = 'vc-slider';
17948
+ const COMPONENT_NAME$r = 'vc-slider';
17267
17949
  const Slider = /* @__PURE__ */ defineComponent({
17268
- name: COMPONENT_NAME$p,
17950
+ name: COMPONENT_NAME$r,
17269
17951
  props: props$h,
17270
17952
  setup(props, {
17271
17953
  slots
@@ -17289,9 +17971,9 @@ const props$g = {
17289
17971
 
17290
17972
  /** @jsxImportSource vue */
17291
17973
 
17292
- const COMPONENT_NAME$o = 'vc-sort-list';
17974
+ const COMPONENT_NAME$q = 'vc-sort-list';
17293
17975
  const SortList = /* @__PURE__ */ defineComponent({
17294
- name: COMPONENT_NAME$o,
17976
+ name: COMPONENT_NAME$q,
17295
17977
  props: props$g,
17296
17978
  setup(props, {
17297
17979
  slots
@@ -17315,9 +17997,9 @@ const props$f = {
17315
17997
 
17316
17998
  /** @jsxImportSource vue */
17317
17999
 
17318
- const COMPONENT_NAME$n = 'vc-steps';
18000
+ const COMPONENT_NAME$p = 'vc-steps';
17319
18001
  const Steps = /* @__PURE__ */ defineComponent({
17320
- name: COMPONENT_NAME$n,
18002
+ name: COMPONENT_NAME$p,
17321
18003
  props: props$f,
17322
18004
  setup(props, {
17323
18005
  slots
@@ -17443,9 +18125,9 @@ const useSwitch = (expose) => {
17443
18125
 
17444
18126
  /** @jsxImportSource vue */
17445
18127
 
17446
- const COMPONENT_NAME$m = 'vc-switch';
18128
+ const COMPONENT_NAME$o = 'vc-switch';
17447
18129
  const Switch = /* @__PURE__ */ defineComponent({
17448
- name: COMPONENT_NAME$m,
18130
+ name: COMPONENT_NAME$o,
17449
18131
  props: props$e,
17450
18132
  // click -> onClick要被拦截,此处不能放置
17451
18133
  emits: ['update:modelValue', 'change', 'click'],
@@ -17519,9 +18201,9 @@ const Switch = /* @__PURE__ */ defineComponent({
17519
18201
 
17520
18202
  /** @jsxImportSource vue */
17521
18203
 
17522
- const COMPONENT_NAME$l = 'vcm-switch';
18204
+ const COMPONENT_NAME$n = 'vcm-switch';
17523
18205
  const MSwitch = /* @__PURE__ */ defineComponent({
17524
- name: COMPONENT_NAME$l,
18206
+ name: COMPONENT_NAME$n,
17525
18207
  props: props$e,
17526
18208
  // click -> onClick要被拦截,此处不能放置
17527
18209
  emits: ['update:modelValue', 'change', 'click'],
@@ -18634,9 +19316,9 @@ const useStates = (mapper, $store) => {
18634
19316
 
18635
19317
  /** @jsxImportSource vue */
18636
19318
 
18637
- const COMPONENT_NAME$k = 'vc-table-normal-list';
19319
+ const COMPONENT_NAME$m = 'vc-table-normal-list';
18638
19320
  const NormalList = /* @__PURE__ */ defineComponent({
18639
- name: COMPONENT_NAME$k,
19321
+ name: COMPONENT_NAME$m,
18640
19322
  props: {
18641
19323
  data: {
18642
19324
  type: Array,
@@ -19637,9 +20319,9 @@ const props$d = {
19637
20319
 
19638
20320
  /** @jsxImportSource vue */
19639
20321
 
19640
- const COMPONENT_NAME$j = 'vc-table';
20322
+ const COMPONENT_NAME$l = 'vc-table';
19641
20323
  const Table = /* @__PURE__ */ defineComponent({
19642
- name: COMPONENT_NAME$j,
20324
+ name: COMPONENT_NAME$l,
19643
20325
  props: props$d,
19644
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'],
19645
20327
  setup(props, {
@@ -20842,9 +21524,9 @@ const useTabs = (options = {}) => {
20842
21524
 
20843
21525
  /** @jsxImportSource vue */
20844
21526
 
20845
- const COMPONENT_NAME$i = 'vc-tabs';
21527
+ const COMPONENT_NAME$k = 'vc-tabs';
20846
21528
  const Tabs = /* @__PURE__ */ defineComponent({
20847
- name: COMPONENT_NAME$i,
21529
+ name: COMPONENT_NAME$k,
20848
21530
  props: props$c,
20849
21531
  emits: ['update:modelValue', 'change', 'click'],
20850
21532
  setup(props, {
@@ -21097,9 +21779,9 @@ const useTabsPane = () => {
21097
21779
 
21098
21780
  /** @jsxImportSource vue */
21099
21781
 
21100
- const COMPONENT_NAME$h = 'vc-tabs-pane';
21782
+ const COMPONENT_NAME$j = 'vc-tabs-pane';
21101
21783
  const TabsPane = /* @__PURE__ */ defineComponent({
21102
- name: COMPONENT_NAME$h,
21784
+ name: COMPONENT_NAME$j,
21103
21785
  props: props$b,
21104
21786
  setup(_, {
21105
21787
  slots
@@ -21154,9 +21836,9 @@ const props$a = {
21154
21836
 
21155
21837
  /** @jsxImportSource vue */
21156
21838
 
21157
- const COMPONENT_NAME$g = 'vcm-tabs';
21839
+ const COMPONENT_NAME$i = 'vcm-tabs';
21158
21840
  const MTabs = /* @__PURE__ */ defineComponent({
21159
- name: COMPONENT_NAME$g,
21841
+ name: COMPONENT_NAME$i,
21160
21842
  props: props$a,
21161
21843
  emits: ['update:modelValue', 'change', 'click'],
21162
21844
  setup(props, {
@@ -21421,9 +22103,9 @@ const MTabs = /* @__PURE__ */ defineComponent({
21421
22103
 
21422
22104
  /** @jsxImportSource vue */
21423
22105
 
21424
- const COMPONENT_NAME$f = 'vcm-tabs-pane';
22106
+ const COMPONENT_NAME$h = 'vcm-tabs-pane';
21425
22107
  const MTabsPane = /* @__PURE__ */ defineComponent({
21426
- name: COMPONENT_NAME$f,
22108
+ name: COMPONENT_NAME$h,
21427
22109
  props: props$b,
21428
22110
  setup(_, {
21429
22111
  slots
@@ -21487,9 +22169,9 @@ const props$9 = {
21487
22169
 
21488
22170
  /** @jsxImportSource vue */
21489
22171
 
21490
- const COMPONENT_NAME$e = 'vc-text';
22172
+ const COMPONENT_NAME$g = 'vc-text';
21491
22173
  const Text = /* @__PURE__ */ defineComponent({
21492
- name: COMPONENT_NAME$e,
22174
+ name: COMPONENT_NAME$g,
21493
22175
  props: props$9,
21494
22176
  setup(props, {
21495
22177
  emit
@@ -21856,9 +22538,9 @@ const props$8 = {
21856
22538
 
21857
22539
  /** @jsxImportSource vue */
21858
22540
 
21859
- const COMPONENT_NAME$d = 'vc-textarea';
22541
+ const COMPONENT_NAME$f = 'vc-textarea';
21860
22542
  const Textarea = /* @__PURE__ */ defineComponent({
21861
- name: COMPONENT_NAME$d,
22543
+ name: COMPONENT_NAME$f,
21862
22544
  props: Object.assign({}, props$8, {
21863
22545
  indicator: {
21864
22546
  type: [Boolean, Object],
@@ -21914,9 +22596,9 @@ const Textarea = /* @__PURE__ */ defineComponent({
21914
22596
 
21915
22597
  /** @jsxImportSource vue */
21916
22598
 
21917
- const COMPONENT_NAME$c = 'vcm-textarea';
22599
+ const COMPONENT_NAME$e = 'vcm-textarea';
21918
22600
  const MTextarea = /* @__PURE__ */ defineComponent({
21919
- name: COMPONENT_NAME$c,
22601
+ name: COMPONENT_NAME$e,
21920
22602
  props: Object.assign({}, props$8, {
21921
22603
  align: {
21922
22604
  type: String,
@@ -21999,9 +22681,9 @@ const props$7 = {
21999
22681
  }
22000
22682
  };
22001
22683
 
22002
- const COMPONENT_NAME$b = "vc-theme";
22684
+ const COMPONENT_NAME$d = "vc-theme";
22003
22685
  const Theme = defineComponent({
22004
- name: COMPONENT_NAME$b,
22686
+ name: COMPONENT_NAME$d,
22005
22687
  props: props$7,
22006
22688
  setup(props, { slots }) {
22007
22689
  const themeId = Utils.getUid("vc-theme");
@@ -22084,9 +22766,9 @@ const Theme = defineComponent({
22084
22766
  }
22085
22767
  });
22086
22768
 
22087
- const COMPONENT_NAME$a = "vc-theme-view";
22769
+ const COMPONENT_NAME$c = "vc-theme-view";
22088
22770
  const ThemeView = defineComponent({
22089
- name: COMPONENT_NAME$a,
22771
+ name: COMPONENT_NAME$c,
22090
22772
  props: props$7,
22091
22773
  setup(props, { slots }) {
22092
22774
  return () => {
@@ -22102,9 +22784,9 @@ const ThemeView = defineComponent({
22102
22784
  }
22103
22785
  });
22104
22786
 
22105
- const COMPONENT_NAME$9 = "vc-theme-text";
22787
+ const COMPONENT_NAME$b = "vc-theme-text";
22106
22788
  const ThemeText = defineComponent({
22107
- name: COMPONENT_NAME$9,
22789
+ name: COMPONENT_NAME$b,
22108
22790
  props: props$7,
22109
22791
  setup(props, { slots }) {
22110
22792
  return () => {
@@ -22120,9 +22802,9 @@ const ThemeText = defineComponent({
22120
22802
  }
22121
22803
  });
22122
22804
 
22123
- const COMPONENT_NAME$8 = "vc-theme-image";
22805
+ const COMPONENT_NAME$a = "vc-theme-image";
22124
22806
  const ThemeImage = defineComponent({
22125
- name: COMPONENT_NAME$8,
22807
+ name: COMPONENT_NAME$a,
22126
22808
  props: props$7,
22127
22809
  setup(props, { slots }) {
22128
22810
  return () => {
@@ -22174,12 +22856,12 @@ const props$6 = {
22174
22856
 
22175
22857
  /** @jsxImportSource vue */
22176
22858
 
22177
- const COMPONENT_NAME$7 = 'vc-time-picker';
22859
+ const COMPONENT_NAME$9 = 'vc-time-picker';
22178
22860
  const getPanel = type => {
22179
22861
  const isRange = type === 'timerange';
22180
22862
  return isRange ? TimeRangePanel : TimePanel;
22181
22863
  };
22182
- const TimePicker = createPicker(COMPONENT_NAME$7, props$6, () => {
22864
+ const TimePicker = createPicker(COMPONENT_NAME$9, props$6, () => {
22183
22865
  const props = getCurrentInstance().props;
22184
22866
  const icon = ref('icon');
22185
22867
  const panel = shallowRef({});
@@ -22215,9 +22897,9 @@ const props$5 = {
22215
22897
 
22216
22898
  /** @jsxImportSource vue */
22217
22899
 
22218
- const COMPONENT_NAME$6 = 'vc-timeline';
22900
+ const COMPONENT_NAME$8 = 'vc-timeline';
22219
22901
  const Timeline = /* @__PURE__ */ defineComponent({
22220
- name: COMPONENT_NAME$6,
22902
+ name: COMPONENT_NAME$8,
22221
22903
  props: props$5,
22222
22904
  setup(props, {
22223
22905
  slots
@@ -22244,9 +22926,9 @@ const props$4 = {
22244
22926
 
22245
22927
  /** @jsxImportSource vue */
22246
22928
 
22247
- const COMPONENT_NAME$5 = 'vc-touch';
22929
+ const COMPONENT_NAME$7 = 'vc-touch';
22248
22930
  const Touch = /* @__PURE__ */ defineComponent({
22249
- name: COMPONENT_NAME$5,
22931
+ name: COMPONENT_NAME$7,
22250
22932
  props: props$4,
22251
22933
  setup(props, {
22252
22934
  slots
@@ -22754,21 +23436,68 @@ class TreeStore {
22754
23436
  parentNode.insertChild({ data });
22755
23437
  }
22756
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
+ }
22757
23467
  _initDefaultCheckedNodes() {
22758
23468
  const checkedValues = this.checkedValues || [];
22759
23469
  const nodesMap = this.nodesMap;
22760
- 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) => {
22761
23481
  const node = nodesMap[id];
22762
23482
  if (node) {
22763
- node.setChecked(true, !this.checkStrictly);
23483
+ node.setChecked(true, true);
22764
23484
  }
22765
23485
  });
22766
23486
  }
22767
23487
  _initDefaultCheckedNode(node) {
22768
23488
  const checkedValues = this.checkedValues || [];
22769
23489
  const nodeValue = node.getter.value;
22770
- if (checkedValues.indexOf(nodeValue) !== -1) {
22771
- 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);
22772
23501
  }
22773
23502
  }
22774
23503
  setCheckedValues(newVal) {
@@ -22996,9 +23725,9 @@ const props$3 = {
22996
23725
 
22997
23726
  /** @jsxImportSource vue */
22998
23727
 
22999
- const COMPONENT_NAME$4 = 'vc-tree-node';
23728
+ const COMPONENT_NAME$6 = 'vc-tree-node';
23000
23729
  const TreeNodeContent = /* @__PURE__ */ defineComponent({
23001
- name: COMPONENT_NAME$4,
23730
+ name: COMPONENT_NAME$6,
23002
23731
  props: props$3,
23003
23732
  emits: ['node-expand'],
23004
23733
  setup(props, {
@@ -23497,9 +24226,9 @@ const props$2 = {
23497
24226
 
23498
24227
  /** @jsxImportSource vue */
23499
24228
 
23500
- const COMPONENT_NAME$3 = 'vc-tree';
24229
+ const COMPONENT_NAME$5 = 'vc-tree';
23501
24230
  const Tree = /* @__PURE__ */ defineComponent({
23502
- name: COMPONENT_NAME$3,
24231
+ name: COMPONENT_NAME$5,
23503
24232
  props: props$2,
23504
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'],
23505
24234
  setup(props, {
@@ -23694,6 +24423,225 @@ const Tree = /* @__PURE__ */ defineComponent({
23694
24423
  }
23695
24424
  });
23696
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
+
23697
24645
  const treeKeys = [
23698
24646
  "checkStrictly",
23699
24647
  "data",
@@ -23702,7 +24650,18 @@ const treeKeys = [
23702
24650
  ];
23703
24651
  const props$1 = {
23704
24652
  ...props$1a,
23705
- ...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
+ }
23706
24665
  };
23707
24666
 
23708
24667
  /** @jsxImportSource vue */
@@ -23728,12 +24687,37 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
23728
24687
  const searchValue = ref('');
23729
24688
  const searchRegex = ref(new RegExp(''));
23730
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
+ });
23731
24709
  const source = computed(() => {
23732
24710
  return flattenData$1(props.data, {
23733
24711
  parent: true,
23734
24712
  cascader: true
23735
24713
  });
23736
24714
  });
24715
+ const labelMap = computed(() => {
24716
+ return source.value.reduce((pre, cur) => {
24717
+ pre[cur.value] = cur.label || '';
24718
+ return pre;
24719
+ }, {});
24720
+ });
23737
24721
  const icon = computed(() => {
23738
24722
  return isActive.value ? 'up' : 'down';
23739
24723
  });
@@ -23750,17 +24734,34 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
23750
24734
  'is-disabled': props.disabled
23751
24735
  };
23752
24736
  });
23753
- const currentLabel = computed(() => {
24737
+ const displayTags = computed(() => {
23754
24738
  if (!props.data.length) {
23755
24739
  return [];
23756
24740
  }
23757
- 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
+ });
23758
24756
  });
23759
24757
  const collapseTagCount = computed(() => {
23760
24758
  if (!props.maxTags) return 0;
23761
- const v = currentValue.value.length - props.maxTags;
24759
+ const v = displayTags.value.length - props.maxTags;
23762
24760
  return v < 0 ? 0 : v;
23763
24761
  });
24762
+ const autoWidth = computed(() => {
24763
+ return typeof props.autoWidth === 'boolean' ? props.autoWidth : !!props.cascader;
24764
+ });
23764
24765
 
23765
24766
  /**
23766
24767
  * v-model 同步, 外部的数据改变时不会触发
@@ -23773,8 +24774,9 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
23773
24774
  separator: props.separator,
23774
24775
  nullValue: props.nullValue
23775
24776
  });
23776
- emit('update:modelValue', v, currentLabel.value);
23777
- 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);
23778
24780
 
23779
24781
  // form表单
23780
24782
  formItem?.change?.(currentValue.value);
@@ -23799,8 +24801,15 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
23799
24801
  const close = () => {
23800
24802
  isActive.value = false;
23801
24803
  };
23802
- const handleClose = index => {
23803
- 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
+ }
23804
24813
  sync();
23805
24814
  };
23806
24815
  const handleClear = e => {
@@ -23837,6 +24846,7 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
23837
24846
  multiple,
23838
24847
  isActive,
23839
24848
  current: currentValue,
24849
+ currentValueGroups,
23840
24850
  // for portal
23841
24851
  toggle(v) {
23842
24852
  v = typeof v === 'boolean' ? v : !isActive.value;
@@ -23851,7 +24861,7 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
23851
24861
  "trigger": props.trigger,
23852
24862
  "tag": props.tag,
23853
24863
  "placement": props.placement,
23854
- "auto-width": props.autoWidth,
24864
+ "autoWidth": autoWidth.value,
23855
24865
  "disabled": props.disabled,
23856
24866
  "portalClass": [['is-padding-none', props.portalClass]],
23857
24867
  "class": [classes.value, its.value.class, 'vc-tree-select'],
@@ -23868,22 +24878,22 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
23868
24878
  return createVNode(Input, {
23869
24879
  "id": props.id,
23870
24880
  "disabled": props.disabled,
23871
- "modelValue": currentLabel.value[0] || props.extra,
24881
+ "modelValue": displayTags.value[0]?.label || props.extra,
23872
24882
  "allow-dispatch": false,
23873
24883
  "class": "vc-tree-select__input",
23874
24884
  "readonly": true,
23875
24885
  "placeholder": its.value.attrs?.placeholder || '请选择'
23876
24886
  }, {
23877
- content: multiple.value && currentValue.value && currentValue.value.length > 0 ? () => {
24887
+ content: multiple.value && displayTags.value.length > 0 ? () => {
23878
24888
  return createVNode("div", {
23879
24889
  "class": [classes.value, 'vc-tree-select__tags']
23880
- }, [currentValue.value.slice(0, props.maxTags).map((item, index) => {
24890
+ }, [displayTags.value.slice(0, props.maxTags).map(item => {
23881
24891
  return createVNode(Tag, {
23882
- "key": item,
24892
+ "key": item.path ? item.path.join('-') : item.value,
23883
24893
  "closable": !props.disabled,
23884
- "onClose": () => handleClose(index)
24894
+ "onClose": () => handleClose(item)
23885
24895
  }, {
23886
- default: () => [currentLabel.value[index] || '']
24896
+ default: () => [item.label]
23887
24897
  });
23888
24898
  }), collapseTagCount.value ? createVNode(Tag, null, {
23889
24899
  default: () => [`+${collapseTagCount.value}...`]
@@ -23916,16 +24926,23 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
23916
24926
  }, [createVNode(Spin, {
23917
24927
  "size": 16
23918
24928
  }, null)]), createVNode(Scroller, {
23919
- "class": "vc-tree-select__options",
24929
+ "class": ['vc-tree-select__options', props.cascader && 'is-cascader'],
23920
24930
  "max-height": "200px"
23921
24931
  }, {
23922
- default: () => [createVNode(Tree, {
23923
- "model-value": currentValue.value,
23924
- "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,
23925
24944
  "data": props.data,
23926
24945
  "checkStrictly": props.checkStrictly,
23927
- "allowDispatch": false,
23928
- "showCheckbox": true,
23929
24946
  "renderNodeLabel": props.renderNodeLabel,
23930
24947
  "onChange": handleChange
23931
24948
  }, null)]
@@ -24492,4 +25509,4 @@ const UploadPicker = /* @__PURE__ */ defineComponent({
24492
25509
 
24493
25510
  const MUploadPicker = UploadPicker;
24494
25511
 
24495
- 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 };