@deot/vc-components 1.0.62 → 1.0.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1378 -349
- package/dist/index.d.ts +386 -101
- package/dist/index.iife.js +1440 -411
- package/dist/index.js +1380 -353
- package/dist/index.style.css +2 -2
- package/dist/index.umd.cjs +1440 -411
- package/package.json +1 -1
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,
|
|
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,
|
|
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,
|
|
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$
|
|
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$
|
|
102
|
+
const COMPONENT_NAME$2g = 'vc-action-sheet';
|
|
103
103
|
const ActionSheet = /* @__PURE__ */ defineComponent({
|
|
104
|
-
name: COMPONENT_NAME$
|
|
105
|
-
props: props$
|
|
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$
|
|
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$
|
|
181
|
+
const COMPONENT_NAME$2f = 'vc-affix';
|
|
182
182
|
const Affix = /* @__PURE__ */ defineComponent({
|
|
183
|
-
name: COMPONENT_NAME$
|
|
183
|
+
name: COMPONENT_NAME$2f,
|
|
184
184
|
emits: ['update:modelValue'],
|
|
185
|
-
props: props$
|
|
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$
|
|
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$
|
|
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$
|
|
515
|
+
const COMPONENT_NAME$2e = 'vc-icon';
|
|
516
516
|
const Icon = /* @__PURE__ */ defineComponent({
|
|
517
|
-
name: COMPONENT_NAME$
|
|
518
|
-
props: props$
|
|
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$
|
|
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$
|
|
716
|
+
const COMPONENT_NAME$2d = "vc-transition";
|
|
717
717
|
const Transition = defineComponent({
|
|
718
|
-
name: COMPONENT_NAME$
|
|
719
|
-
props: props$
|
|
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$
|
|
739
|
+
const COMPONENT_NAME$2c = "vc-transition-collapse";
|
|
740
740
|
const TransitionCollapse = defineComponent({
|
|
741
|
-
name: COMPONENT_NAME$
|
|
742
|
-
props: props$
|
|
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$
|
|
856
|
+
const COMPONENT_NAME$2b = "vc-transition-fade";
|
|
857
857
|
const TransitionFade = defineComponent({
|
|
858
|
-
name: COMPONENT_NAME$
|
|
858
|
+
name: COMPONENT_NAME$2b,
|
|
859
859
|
props: {
|
|
860
|
-
...props$
|
|
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$
|
|
893
|
+
const COMPONENT_NAME$2a = "vc-transition-scale";
|
|
894
894
|
const TransitionScale = defineComponent({
|
|
895
|
-
name: COMPONENT_NAME$
|
|
895
|
+
name: COMPONENT_NAME$2a,
|
|
896
896
|
props: {
|
|
897
|
-
...props$
|
|
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$
|
|
935
|
+
const COMPONENT_NAME$29 = "vc-transition-slide";
|
|
936
936
|
const TransitionSlide = defineComponent({
|
|
937
|
-
name: COMPONENT_NAME$
|
|
937
|
+
name: COMPONENT_NAME$29,
|
|
938
938
|
props: {
|
|
939
|
-
...props$
|
|
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$
|
|
977
|
+
const COMPONENT_NAME$28 = "vc-transition-zoom";
|
|
978
978
|
const TransitionZoom = defineComponent({
|
|
979
|
-
name: COMPONENT_NAME$
|
|
979
|
+
name: COMPONENT_NAME$28,
|
|
980
980
|
props: {
|
|
981
|
-
...props$
|
|
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$
|
|
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$
|
|
1032
|
-
props: props$
|
|
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$
|
|
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$
|
|
1137
|
+
const COMPONENT_NAME$26 = 'vc-artboard';
|
|
1138
1138
|
const Artboard = /* @__PURE__ */ defineComponent({
|
|
1139
|
-
name: COMPONENT_NAME$
|
|
1140
|
-
props: props$
|
|
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$
|
|
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$
|
|
1367
|
+
const COMPONENT_NAME$25 = 'vc-spin';
|
|
1368
1368
|
const Spin = /* @__PURE__ */ defineComponent({
|
|
1369
|
-
name: COMPONENT_NAME$
|
|
1370
|
-
props: props$
|
|
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$
|
|
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$
|
|
1420
|
+
const COMPONENT_NAME$24 = "vc-debounce";
|
|
1421
1421
|
const Debounce = defineComponent({
|
|
1422
|
-
name: COMPONENT_NAME$
|
|
1423
|
-
props: props$
|
|
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$
|
|
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$
|
|
1495
|
+
const COMPONENT_NAME$23 = 'vc-button';
|
|
1496
1496
|
const Button = /* @__PURE__ */ defineComponent({
|
|
1497
|
-
name: COMPONENT_NAME$
|
|
1497
|
+
name: COMPONENT_NAME$23,
|
|
1498
1498
|
emits: ['click'],
|
|
1499
|
-
props: props$
|
|
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$
|
|
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$
|
|
1581
|
+
const COMPONENT_NAME$22 = 'vc-button-group';
|
|
1582
1582
|
const ButtonGroup = /* @__PURE__ */ defineComponent({
|
|
1583
|
-
name: COMPONENT_NAME$
|
|
1584
|
-
props: props$
|
|
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$
|
|
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$
|
|
1617
|
+
const COMPONENT_NAME$21 = 'vc-calendar';
|
|
1618
1618
|
const Calendar = /* @__PURE__ */ defineComponent({
|
|
1619
|
-
name: COMPONENT_NAME$
|
|
1620
|
-
props: props$
|
|
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$
|
|
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$
|
|
1657
|
+
const COMPONENT_NAME$20 = 'vc-card';
|
|
1658
1658
|
const Card = /* @__PURE__ */ defineComponent({
|
|
1659
|
-
name: COMPONENT_NAME$
|
|
1660
|
-
props: props$
|
|
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
|
|
1687
|
-
|
|
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: "
|
|
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$
|
|
1948
|
+
const COMPONENT_NAME$1$ = 'vc-carousel';
|
|
1696
1949
|
const Carousel = /* @__PURE__ */ defineComponent({
|
|
1697
|
-
name: COMPONENT_NAME$
|
|
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
|
-
"
|
|
1705
|
-
|
|
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
|
-
|
|
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$
|
|
2673
|
+
const COMPONENT_NAME$1X = 'vc-input';
|
|
1992
2674
|
const Input = /* @__PURE__ */ defineComponent({
|
|
1993
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
3010
|
+
const COMPONENT_NAME$1W = 'vc-input-number';
|
|
2329
3011
|
const InputNumber = /* @__PURE__ */ defineComponent({
|
|
2330
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
3076
|
+
const COMPONENT_NAME$1V = 'vc-input-search';
|
|
2395
3077
|
const InputSearch = /* @__PURE__ */ defineComponent({
|
|
2396
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
3471
|
+
const COMPONENT_NAME$1U = "vc-customer";
|
|
2790
3472
|
const Customer = defineComponent({
|
|
2791
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
3868
|
+
const COMPONENT_NAME$1R = 'vc-popover-wrapper';
|
|
3187
3869
|
const PopoverWrapper = /* @__PURE__ */ defineComponent({
|
|
3188
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
4128
|
+
const COMPONENT_NAME$1Q = 'vc-popover';
|
|
3447
4129
|
const Popover$1 = /* @__PURE__ */ defineComponent({
|
|
3448
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
4274
|
+
const COMPONENT_NAME$1P = 'vc-cascader-column';
|
|
3593
4275
|
const CascaderColumn = /* @__PURE__ */ defineComponent({
|
|
3594
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
4484
|
+
const COMPONENT_NAME$1O = 'vc-cascader';
|
|
3803
4485
|
const Cascader = /* @__PURE__ */ defineComponent({
|
|
3804
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
4838
|
+
const COMPONENT_NAME$1N = 'vc-chart';
|
|
4157
4839
|
const Chart = /* @__PURE__ */ defineComponent({
|
|
4158
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
5079
|
+
const COMPONENT_NAME$1M = 'vc-checkbox';
|
|
4398
5080
|
const Checkbox = /* @__PURE__ */ defineComponent({
|
|
4399
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
5168
|
+
const COMPONENT_NAME$1L = 'vc-checkbox-group';
|
|
4487
5169
|
const CheckboxGroup = /* @__PURE__ */ defineComponent({
|
|
4488
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
5188
|
+
const COMPONENT_NAME$1K = 'vcm-checkbox';
|
|
4507
5189
|
const MCheckbox = /* @__PURE__ */ defineComponent({
|
|
4508
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
5230
|
+
const COMPONENT_NAME$1J = 'vcm-checkbox-group';
|
|
4549
5231
|
const MCheckboxGroup = /* @__PURE__ */ defineComponent({
|
|
4550
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
5286
|
+
const COMPONENT_NAME$1I = 'vc-message';
|
|
4605
5287
|
const MessageView = /* @__PURE__ */ defineComponent({
|
|
4606
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
5537
|
+
const COMPONENT_NAME$1H = "vc-clipboard";
|
|
4856
5538
|
const Clipboard$1 = defineComponent({
|
|
4857
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
5579
|
+
const COMPONENT_NAME$1G = 'vcm-toast';
|
|
4898
5580
|
const MToastView = /* @__PURE__ */ defineComponent({
|
|
4899
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
5683
|
+
const COMPONENT_NAME$1F = "vcm-clipboard";
|
|
5002
5684
|
const MClipboard$1 = defineComponent({
|
|
5003
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
5717
|
+
const COMPONENT_NAME$1E = "vc-collapse";
|
|
5036
5718
|
const Collapse = defineComponent({
|
|
5037
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
5836
|
+
const COMPONENT_NAME$1D = 'vc-expand';
|
|
5155
5837
|
const Expand$1 = /* @__PURE__ */ defineComponent({
|
|
5156
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
5868
|
+
const COMPONENT_NAME$1C = 'vc-collapse-item';
|
|
5187
5869
|
const CollapseItem = /* @__PURE__ */ defineComponent({
|
|
5188
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
5945
|
+
const COMPONENT_NAME$1B = 'vc-color-picker';
|
|
5264
5946
|
const ColorPicker = /* @__PURE__ */ defineComponent({
|
|
5265
|
-
name: COMPONENT_NAME$
|
|
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$
|
|
6010
|
+
const COMPONENT_NAME$1A = 'vc-countdown';
|
|
5329
6011
|
const Countdown = /* @__PURE__ */ defineComponent({
|
|
5330
|
-
name: COMPONENT_NAME$
|
|
6012
|
+
name: COMPONENT_NAME$1A,
|
|
5331
6013
|
props: props$_,
|
|
5332
6014
|
emits: ['change', 'complete', 'error'],
|
|
5333
6015
|
setup(props, {
|
|
@@ -5339,6 +6021,7 @@ const Countdown = /* @__PURE__ */ defineComponent({
|
|
|
5339
6021
|
const minute = ref('');
|
|
5340
6022
|
const second = ref('');
|
|
5341
6023
|
const millisecond = ref('');
|
|
6024
|
+
const isComplete = ref(false);
|
|
5342
6025
|
const showResult = computed(() => {
|
|
5343
6026
|
return !props.render && !slots.default;
|
|
5344
6027
|
});
|
|
@@ -5411,15 +6094,18 @@ const Countdown = /* @__PURE__ */ defineComponent({
|
|
|
5411
6094
|
|
|
5412
6095
|
if (timestamp <= 0) {
|
|
5413
6096
|
stop();
|
|
5414
|
-
|
|
5415
|
-
|
|
5416
|
-
|
|
5417
|
-
|
|
5418
|
-
|
|
5419
|
-
|
|
5420
|
-
|
|
5421
|
-
|
|
5422
|
-
|
|
6097
|
+
if (!isComplete.value) {
|
|
6098
|
+
isComplete.value = true;
|
|
6099
|
+
emit('change', {
|
|
6100
|
+
timestamp: 0,
|
|
6101
|
+
day: '00',
|
|
6102
|
+
hour: '00',
|
|
6103
|
+
minute: '00',
|
|
6104
|
+
second: '00',
|
|
6105
|
+
millisecond: '00'
|
|
6106
|
+
});
|
|
6107
|
+
emit('complete');
|
|
6108
|
+
}
|
|
5423
6109
|
} else {
|
|
5424
6110
|
emit('change', {
|
|
5425
6111
|
timestamp,
|
|
@@ -5434,6 +6120,8 @@ const Countdown = /* @__PURE__ */ defineComponent({
|
|
|
5434
6120
|
const start = () => {
|
|
5435
6121
|
if (targetTimestamp.value) {
|
|
5436
6122
|
timer && clearInterval(timer);
|
|
6123
|
+
isComplete.value = false;
|
|
6124
|
+
run(); // 立即执行一次,界面马上展示当前数值
|
|
5437
6125
|
timer = setInterval(run, T.value);
|
|
5438
6126
|
}
|
|
5439
6127
|
};
|
|
@@ -5594,9 +6282,9 @@ const value2separated = (value, options) => {
|
|
|
5594
6282
|
function _isSlot$1(s) {
|
|
5595
6283
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
|
|
5596
6284
|
}
|
|
5597
|
-
const COMPONENT_NAME$
|
|
6285
|
+
const COMPONENT_NAME$1z = 'vc-counter';
|
|
5598
6286
|
const Counter = /* @__PURE__ */ defineComponent({
|
|
5599
|
-
name: COMPONENT_NAME$
|
|
6287
|
+
name: COMPONENT_NAME$1z,
|
|
5600
6288
|
props: props$Z,
|
|
5601
6289
|
emits: ['begin', 'complete', 'change'],
|
|
5602
6290
|
setup(props, {
|
|
@@ -6859,9 +7547,9 @@ const getTimeType = type => {
|
|
|
6859
7547
|
}
|
|
6860
7548
|
return view;
|
|
6861
7549
|
};
|
|
6862
|
-
const COMPONENT_NAME$
|
|
7550
|
+
const COMPONENT_NAME$1y = 'vc-date-confirm';
|
|
6863
7551
|
const Confirm = /* @__PURE__ */ defineComponent({
|
|
6864
|
-
name: COMPONENT_NAME$
|
|
7552
|
+
name: COMPONENT_NAME$1y,
|
|
6865
7553
|
props: {
|
|
6866
7554
|
showTime: {
|
|
6867
7555
|
type: Boolean,
|
|
@@ -6925,9 +7613,9 @@ const Confirm = /* @__PURE__ */ defineComponent({
|
|
|
6925
7613
|
|
|
6926
7614
|
/** @jsxImportSource vue */
|
|
6927
7615
|
|
|
6928
|
-
const COMPONENT_NAME$
|
|
7616
|
+
const COMPONENT_NAME$1x = 'vc-date-header';
|
|
6929
7617
|
const DateHeader = /* @__PURE__ */ defineComponent({
|
|
6930
|
-
name: COMPONENT_NAME$
|
|
7618
|
+
name: COMPONENT_NAME$1x,
|
|
6931
7619
|
props: {
|
|
6932
7620
|
panelDate: Date,
|
|
6933
7621
|
showNext: {
|
|
@@ -7011,9 +7699,9 @@ const DateHeader = /* @__PURE__ */ defineComponent({
|
|
|
7011
7699
|
|
|
7012
7700
|
/** @jsxImportSource vue */
|
|
7013
7701
|
|
|
7014
|
-
const COMPONENT_NAME$
|
|
7702
|
+
const COMPONENT_NAME$1w = 'vc-date-table';
|
|
7015
7703
|
const DateTable = /* @__PURE__ */ defineComponent({
|
|
7016
|
-
name: COMPONENT_NAME$
|
|
7704
|
+
name: COMPONENT_NAME$1w,
|
|
7017
7705
|
props: {
|
|
7018
7706
|
value: Array,
|
|
7019
7707
|
firstDayOfWeek: {
|
|
@@ -7222,9 +7910,9 @@ const DateTable = /* @__PURE__ */ defineComponent({
|
|
|
7222
7910
|
|
|
7223
7911
|
/** @jsxImportSource vue */
|
|
7224
7912
|
|
|
7225
|
-
const COMPONENT_NAME$
|
|
7913
|
+
const COMPONENT_NAME$1v = 'vc-month-table';
|
|
7226
7914
|
const MonthTable = /* @__PURE__ */ defineComponent({
|
|
7227
|
-
name: COMPONENT_NAME$
|
|
7915
|
+
name: COMPONENT_NAME$1v,
|
|
7228
7916
|
props: {
|
|
7229
7917
|
value: Array,
|
|
7230
7918
|
panelDate: Date,
|
|
@@ -7356,7 +8044,7 @@ const MonthTable = /* @__PURE__ */ defineComponent({
|
|
|
7356
8044
|
|
|
7357
8045
|
/** @jsxImportSource vue */
|
|
7358
8046
|
|
|
7359
|
-
const COMPONENT_NAME$
|
|
8047
|
+
const COMPONENT_NAME$1u = 'vc-quarter-table';
|
|
7360
8048
|
|
|
7361
8049
|
/**
|
|
7362
8050
|
* 获取季度对应的月份范围
|
|
@@ -7390,7 +8078,7 @@ const getQuarterRangeByMonth = value => {
|
|
|
7390
8078
|
}
|
|
7391
8079
|
};
|
|
7392
8080
|
const QuarterTable = /* @__PURE__ */ defineComponent({
|
|
7393
|
-
name: COMPONENT_NAME$
|
|
8081
|
+
name: COMPONENT_NAME$1u,
|
|
7394
8082
|
props: {
|
|
7395
8083
|
value: Array,
|
|
7396
8084
|
panelDate: Date,
|
|
@@ -7513,9 +8201,9 @@ const QuarterTable = /* @__PURE__ */ defineComponent({
|
|
|
7513
8201
|
|
|
7514
8202
|
/** @jsxImportSource vue */
|
|
7515
8203
|
|
|
7516
|
-
const COMPONENT_NAME$
|
|
8204
|
+
const COMPONENT_NAME$1t = 'vc-shortcuts-select';
|
|
7517
8205
|
const ShortcutsSelect = /* @__PURE__ */ defineComponent({
|
|
7518
|
-
name: COMPONENT_NAME$
|
|
8206
|
+
name: COMPONENT_NAME$1t,
|
|
7519
8207
|
props: {
|
|
7520
8208
|
panelDate: Date,
|
|
7521
8209
|
config: Array,
|
|
@@ -7555,9 +8243,9 @@ const ShortcutsSelect = /* @__PURE__ */ defineComponent({
|
|
|
7555
8243
|
|
|
7556
8244
|
/** @jsxImportSource vue */
|
|
7557
8245
|
|
|
7558
|
-
const COMPONENT_NAME$
|
|
8246
|
+
const COMPONENT_NAME$1s = 'vc-time-select';
|
|
7559
8247
|
const TimeSelect = /* @__PURE__ */ defineComponent({
|
|
7560
|
-
name: COMPONENT_NAME$
|
|
8248
|
+
name: COMPONENT_NAME$1s,
|
|
7561
8249
|
props: {
|
|
7562
8250
|
hours: {
|
|
7563
8251
|
type: [Number, String],
|
|
@@ -7837,9 +8525,9 @@ const TimeSelect = /* @__PURE__ */ defineComponent({
|
|
|
7837
8525
|
|
|
7838
8526
|
/** @jsxImportSource vue */
|
|
7839
8527
|
|
|
7840
|
-
const COMPONENT_NAME$
|
|
8528
|
+
const COMPONENT_NAME$1r = 'vc-year-table';
|
|
7841
8529
|
const YearTable = /* @__PURE__ */ defineComponent({
|
|
7842
|
-
name: COMPONENT_NAME$
|
|
8530
|
+
name: COMPONENT_NAME$1r,
|
|
7843
8531
|
props: {
|
|
7844
8532
|
value: Array,
|
|
7845
8533
|
panelDate: Date,
|
|
@@ -7962,9 +8650,9 @@ const getDateIsInRange = (value, type, leftPanelDate, rightPanelDate) => {
|
|
|
7962
8650
|
}
|
|
7963
8651
|
return true;
|
|
7964
8652
|
};
|
|
7965
|
-
const COMPONENT_NAME$
|
|
8653
|
+
const COMPONENT_NAME$1q = 'vc-date-range-panel';
|
|
7966
8654
|
const DateRangePanel = /* @__PURE__ */ defineComponent({
|
|
7967
|
-
name: COMPONENT_NAME$
|
|
8655
|
+
name: COMPONENT_NAME$1q,
|
|
7968
8656
|
props: {
|
|
7969
8657
|
...props$W,
|
|
7970
8658
|
confirm: {
|
|
@@ -8343,9 +9031,9 @@ const DateRangePanel = /* @__PURE__ */ defineComponent({
|
|
|
8343
9031
|
|
|
8344
9032
|
/** @jsxImportSource vue */
|
|
8345
9033
|
|
|
8346
|
-
const COMPONENT_NAME$
|
|
9034
|
+
const COMPONENT_NAME$1p = 'vc-date-panel';
|
|
8347
9035
|
const DatePanel = /* @__PURE__ */ defineComponent({
|
|
8348
|
-
name: COMPONENT_NAME$
|
|
9036
|
+
name: COMPONENT_NAME$1p,
|
|
8349
9037
|
props: {
|
|
8350
9038
|
...props$W,
|
|
8351
9039
|
type: String,
|
|
@@ -8553,9 +9241,9 @@ const isEqualYear$1 = value => {
|
|
|
8553
9241
|
const endYear = value[1].getFullYear();
|
|
8554
9242
|
return startYear === endYear;
|
|
8555
9243
|
};
|
|
8556
|
-
const COMPONENT_NAME$
|
|
9244
|
+
const COMPONENT_NAME$1o = 'vc-monthrange-panel';
|
|
8557
9245
|
const MonthRangePanel = /* @__PURE__ */ defineComponent({
|
|
8558
|
-
name: COMPONENT_NAME$
|
|
9246
|
+
name: COMPONENT_NAME$1o,
|
|
8559
9247
|
props: {
|
|
8560
9248
|
...props$W,
|
|
8561
9249
|
confirm: {
|
|
@@ -8730,9 +9418,9 @@ const isEqualYear = value => {
|
|
|
8730
9418
|
const endYear = value[1].getFullYear();
|
|
8731
9419
|
return startYear === endYear;
|
|
8732
9420
|
};
|
|
8733
|
-
const COMPONENT_NAME$
|
|
9421
|
+
const COMPONENT_NAME$1n = 'vc-quarterrange-panel';
|
|
8734
9422
|
const QuarterRangePanel = /* @__PURE__ */ defineComponent({
|
|
8735
|
-
name: COMPONENT_NAME$
|
|
9423
|
+
name: COMPONENT_NAME$1n,
|
|
8736
9424
|
props: {
|
|
8737
9425
|
...props$W,
|
|
8738
9426
|
confirm: {
|
|
@@ -8971,9 +9659,9 @@ const getComparedDate = (leftDate, rightDate) => {
|
|
|
8971
9659
|
seconds
|
|
8972
9660
|
};
|
|
8973
9661
|
};
|
|
8974
|
-
const COMPONENT_NAME$
|
|
9662
|
+
const COMPONENT_NAME$1m = 'vc-timerange-panel';
|
|
8975
9663
|
const TimeRangePanel = /* @__PURE__ */ defineComponent({
|
|
8976
|
-
name: COMPONENT_NAME$
|
|
9664
|
+
name: COMPONENT_NAME$1m,
|
|
8977
9665
|
props: props$V,
|
|
8978
9666
|
emits: ['pick', 'clear', 'ok'],
|
|
8979
9667
|
setup(props, {
|
|
@@ -9074,9 +9762,9 @@ const TimeRangePanel = /* @__PURE__ */ defineComponent({
|
|
|
9074
9762
|
|
|
9075
9763
|
/** @jsxImportSource vue */
|
|
9076
9764
|
|
|
9077
|
-
const COMPONENT_NAME$
|
|
9765
|
+
const COMPONENT_NAME$1l = 'vc-time-panel';
|
|
9078
9766
|
const TimePanel = /* @__PURE__ */ defineComponent({
|
|
9079
|
-
name: COMPONENT_NAME$
|
|
9767
|
+
name: COMPONENT_NAME$1l,
|
|
9080
9768
|
props: props$V,
|
|
9081
9769
|
emits: ['pick', 'clear', 'ok'],
|
|
9082
9770
|
setup(props, {
|
|
@@ -9132,7 +9820,7 @@ const TimePanel = /* @__PURE__ */ defineComponent({
|
|
|
9132
9820
|
|
|
9133
9821
|
/** @jsxImportSource vue */
|
|
9134
9822
|
|
|
9135
|
-
const COMPONENT_NAME$
|
|
9823
|
+
const COMPONENT_NAME$1k = 'vc-date-picker';
|
|
9136
9824
|
const getPanel$1 = type => {
|
|
9137
9825
|
if (['daterange', 'datetimerange'].includes(type)) {
|
|
9138
9826
|
return DateRangePanel;
|
|
@@ -9143,7 +9831,7 @@ const getPanel$1 = type => {
|
|
|
9143
9831
|
}
|
|
9144
9832
|
return DatePanel;
|
|
9145
9833
|
};
|
|
9146
|
-
const DatePicker = createPicker(COMPONENT_NAME$
|
|
9834
|
+
const DatePicker = createPicker(COMPONENT_NAME$1k, props$Y, () => {
|
|
9147
9835
|
const props = getCurrentInstance().props;
|
|
9148
9836
|
const icon = ref('date');
|
|
9149
9837
|
const panel = shallowRef({});
|
|
@@ -9184,9 +9872,9 @@ const props$U = {
|
|
|
9184
9872
|
|
|
9185
9873
|
/** @jsxImportSource vue */
|
|
9186
9874
|
|
|
9187
|
-
const COMPONENT_NAME$
|
|
9875
|
+
const COMPONENT_NAME$1j = 'vc-divider';
|
|
9188
9876
|
const Divider = /* @__PURE__ */ defineComponent({
|
|
9189
|
-
name: COMPONENT_NAME$
|
|
9877
|
+
name: COMPONENT_NAME$1j,
|
|
9190
9878
|
props: props$U,
|
|
9191
9879
|
setup(props, {
|
|
9192
9880
|
slots
|
|
@@ -9322,7 +10010,7 @@ const props$R = {
|
|
|
9322
10010
|
|
|
9323
10011
|
/** @jsxImportSource vue */
|
|
9324
10012
|
|
|
9325
|
-
const COMPONENT_NAME$
|
|
10013
|
+
const COMPONENT_NAME$1i = 'vc-scroller-track';
|
|
9326
10014
|
const BAR_MAP = {
|
|
9327
10015
|
vertical: {
|
|
9328
10016
|
scroll: 'scrollTop',
|
|
@@ -9342,7 +10030,7 @@ const BAR_MAP = {
|
|
|
9342
10030
|
}
|
|
9343
10031
|
};
|
|
9344
10032
|
const Track = /* @__PURE__ */ defineComponent({
|
|
9345
|
-
name: COMPONENT_NAME$
|
|
10033
|
+
name: COMPONENT_NAME$1i,
|
|
9346
10034
|
props: props$T,
|
|
9347
10035
|
emits: ['change'],
|
|
9348
10036
|
inheritAttrs: false,
|
|
@@ -9532,9 +10220,9 @@ const Track = /* @__PURE__ */ defineComponent({
|
|
|
9532
10220
|
|
|
9533
10221
|
/** @jsxImportSource vue */
|
|
9534
10222
|
|
|
9535
|
-
const COMPONENT_NAME$
|
|
10223
|
+
const COMPONENT_NAME$1h = 'vc-scroller-bar';
|
|
9536
10224
|
const Bar = /* @__PURE__ */ defineComponent({
|
|
9537
|
-
name: COMPONENT_NAME$
|
|
10225
|
+
name: COMPONENT_NAME$1h,
|
|
9538
10226
|
props: props$S,
|
|
9539
10227
|
emits: ['change'],
|
|
9540
10228
|
setup(props, {
|
|
@@ -9769,7 +10457,7 @@ const useScroller = (expose) => {
|
|
|
9769
10457
|
|
|
9770
10458
|
/** @jsxImportSource vue */
|
|
9771
10459
|
|
|
9772
|
-
const COMPONENT_NAME$
|
|
10460
|
+
const COMPONENT_NAME$1g = 'vc-scroller';
|
|
9773
10461
|
|
|
9774
10462
|
/**
|
|
9775
10463
|
* 作为备选方案,目前推荐使用ScrollerWheel
|
|
@@ -9780,7 +10468,7 @@ const COMPONENT_NAME$1e = 'vc-scroller';
|
|
|
9780
10468
|
* 2. 增加了一层嵌套
|
|
9781
10469
|
*/
|
|
9782
10470
|
const Scroller = /* @__PURE__ */ defineComponent({
|
|
9783
|
-
name: COMPONENT_NAME$
|
|
10471
|
+
name: COMPONENT_NAME$1g,
|
|
9784
10472
|
props: props$R,
|
|
9785
10473
|
emits: ['scroll'],
|
|
9786
10474
|
setup(props, {
|
|
@@ -9841,7 +10529,7 @@ const Scroller = /* @__PURE__ */ defineComponent({
|
|
|
9841
10529
|
|
|
9842
10530
|
/** @jsxImportSource vue */
|
|
9843
10531
|
|
|
9844
|
-
const COMPONENT_NAME$
|
|
10532
|
+
const COMPONENT_NAME$1f = 'vc-scroller-wheel';
|
|
9845
10533
|
|
|
9846
10534
|
/**
|
|
9847
10535
|
* 为减少一层嵌套,为去除滚动bar的抖动,使用wheel模拟
|
|
@@ -9863,7 +10551,7 @@ const COMPONENT_NAME$1d = 'vc-scroller-wheel';
|
|
|
9863
10551
|
* 设置scrollTop不会reflow和repaint,不需要考虑transfrom来改变content(transform也只在draw完成)
|
|
9864
10552
|
*/
|
|
9865
10553
|
const ScrollerWheel = /* @__PURE__ */ defineComponent({
|
|
9866
|
-
name: COMPONENT_NAME$
|
|
10554
|
+
name: COMPONENT_NAME$1f,
|
|
9867
10555
|
props: Object.assign({}, props$R, {
|
|
9868
10556
|
stopPropagation: {
|
|
9869
10557
|
type: Boolean,
|
|
@@ -10052,9 +10740,9 @@ const props$Q = {
|
|
|
10052
10740
|
|
|
10053
10741
|
/** @jsxImportSource vue */
|
|
10054
10742
|
|
|
10055
|
-
const COMPONENT_NAME$
|
|
10743
|
+
const COMPONENT_NAME$1e = 'vc-drawer';
|
|
10056
10744
|
const DrawerView = /* @__PURE__ */ defineComponent({
|
|
10057
|
-
name: COMPONENT_NAME$
|
|
10745
|
+
name: COMPONENT_NAME$1e,
|
|
10058
10746
|
props: props$Q,
|
|
10059
10747
|
emits: ['close', 'update:modelValue', 'visible-change'],
|
|
10060
10748
|
setup(props, {
|
|
@@ -10243,9 +10931,9 @@ const props$P = {
|
|
|
10243
10931
|
|
|
10244
10932
|
/** @jsxImportSource vue */
|
|
10245
10933
|
|
|
10246
|
-
const COMPONENT_NAME$
|
|
10934
|
+
const COMPONENT_NAME$1d = 'vc-dropdown';
|
|
10247
10935
|
const Dropdown = /* @__PURE__ */ defineComponent({
|
|
10248
|
-
name: COMPONENT_NAME$
|
|
10936
|
+
name: COMPONENT_NAME$1d,
|
|
10249
10937
|
props: props$P,
|
|
10250
10938
|
inheritAttrs: false,
|
|
10251
10939
|
emits: ['update:modelValue', 'ready', 'close', 'visible-change', 'click'],
|
|
@@ -10315,9 +11003,9 @@ const Dropdown = /* @__PURE__ */ defineComponent({
|
|
|
10315
11003
|
|
|
10316
11004
|
/** @jsxImportSource vue */
|
|
10317
11005
|
|
|
10318
|
-
const COMPONENT_NAME$
|
|
11006
|
+
const COMPONENT_NAME$1c = 'vc-dropdown-menu';
|
|
10319
11007
|
const DropdownMenu = /* @__PURE__ */ defineComponent({
|
|
10320
|
-
name: COMPONENT_NAME$
|
|
11008
|
+
name: COMPONENT_NAME$1c,
|
|
10321
11009
|
setup(_, {
|
|
10322
11010
|
slots
|
|
10323
11011
|
}) {
|
|
@@ -10331,9 +11019,9 @@ const DropdownMenu = /* @__PURE__ */ defineComponent({
|
|
|
10331
11019
|
|
|
10332
11020
|
/** @jsxImportSource vue */
|
|
10333
11021
|
|
|
10334
|
-
const COMPONENT_NAME$
|
|
11022
|
+
const COMPONENT_NAME$1b = 'vc-dropdown-item';
|
|
10335
11023
|
const DropdownItem = /* @__PURE__ */ defineComponent({
|
|
10336
|
-
name: COMPONENT_NAME$
|
|
11024
|
+
name: COMPONENT_NAME$1b,
|
|
10337
11025
|
emits: ['click'],
|
|
10338
11026
|
props: {
|
|
10339
11027
|
value: {
|
|
@@ -10538,9 +11226,9 @@ const defaults = {
|
|
|
10538
11226
|
|
|
10539
11227
|
/** @jsxImportSource vue */
|
|
10540
11228
|
|
|
10541
|
-
const COMPONENT_NAME$
|
|
11229
|
+
const COMPONENT_NAME$1a = 'vc-editor-toolbar';
|
|
10542
11230
|
const EditorToolbar = /* @__PURE__ */ defineComponent({
|
|
10543
|
-
name: COMPONENT_NAME$
|
|
11231
|
+
name: COMPONENT_NAME$1a,
|
|
10544
11232
|
props: {
|
|
10545
11233
|
options: [Array, Object],
|
|
10546
11234
|
elementId: String
|
|
@@ -10748,9 +11436,9 @@ const props$O = {
|
|
|
10748
11436
|
|
|
10749
11437
|
/** @jsxImportSource vue */
|
|
10750
11438
|
|
|
10751
|
-
const COMPONENT_NAME$
|
|
11439
|
+
const COMPONENT_NAME$19 = 'vc-image-preview';
|
|
10752
11440
|
const ImagePreview$1 = /* @__PURE__ */ defineComponent({
|
|
10753
|
-
name: COMPONENT_NAME$
|
|
11441
|
+
name: COMPONENT_NAME$19,
|
|
10754
11442
|
props: props$O,
|
|
10755
11443
|
setup(props, {
|
|
10756
11444
|
slots
|
|
@@ -10945,9 +11633,9 @@ const props$N = {
|
|
|
10945
11633
|
}
|
|
10946
11634
|
};
|
|
10947
11635
|
|
|
10948
|
-
const COMPONENT_NAME$
|
|
11636
|
+
const COMPONENT_NAME$18 = "vc-upload";
|
|
10949
11637
|
const Upload$1 = defineComponent({
|
|
10950
|
-
name: COMPONENT_NAME$
|
|
11638
|
+
name: COMPONENT_NAME$18,
|
|
10951
11639
|
props: props$N,
|
|
10952
11640
|
emits: [
|
|
10953
11641
|
"message",
|
|
@@ -11481,9 +12169,9 @@ const props$M = {
|
|
|
11481
12169
|
|
|
11482
12170
|
/** @jsxImportSource vue */
|
|
11483
12171
|
|
|
11484
|
-
const COMPONENT_NAME$
|
|
12172
|
+
const COMPONENT_NAME$17 = 'vc-editor';
|
|
11485
12173
|
const Editor = /* @__PURE__ */ defineComponent({
|
|
11486
|
-
name: COMPONENT_NAME$
|
|
12174
|
+
name: COMPONENT_NAME$17,
|
|
11487
12175
|
props: props$M,
|
|
11488
12176
|
defaults,
|
|
11489
12177
|
emits: ['ready', 'blur', 'focus', 'input', 'update:modelValue', 'change'],
|
|
@@ -11672,7 +12360,7 @@ const Editor = /* @__PURE__ */ defineComponent({
|
|
|
11672
12360
|
|
|
11673
12361
|
/** @jsxImportSource vue */
|
|
11674
12362
|
|
|
11675
|
-
const COMPONENT_NAME$
|
|
12363
|
+
const COMPONENT_NAME$16 = 'vc-editor-view';
|
|
11676
12364
|
const setImages = v => {
|
|
11677
12365
|
if (!v) return;
|
|
11678
12366
|
const IMG_REGX = /<img.*?(?:>|\/>)/gi;
|
|
@@ -11690,7 +12378,7 @@ const setImages = v => {
|
|
|
11690
12378
|
return;
|
|
11691
12379
|
};
|
|
11692
12380
|
const EditorView = /* @__PURE__ */ defineComponent({
|
|
11693
|
-
name: COMPONENT_NAME$
|
|
12381
|
+
name: COMPONENT_NAME$16,
|
|
11694
12382
|
props: {
|
|
11695
12383
|
value: {
|
|
11696
12384
|
type: String,
|
|
@@ -11905,9 +12593,9 @@ const useForm = (expose, options = {}) => {
|
|
|
11905
12593
|
});
|
|
11906
12594
|
};
|
|
11907
12595
|
|
|
11908
|
-
const COMPONENT_NAME$
|
|
12596
|
+
const COMPONENT_NAME$15 = "vc-form";
|
|
11909
12597
|
const Form = defineComponent({
|
|
11910
|
-
name: COMPONENT_NAME$
|
|
12598
|
+
name: COMPONENT_NAME$15,
|
|
11911
12599
|
props: props$L,
|
|
11912
12600
|
setup(props, { slots, expose }) {
|
|
11913
12601
|
useForm(expose);
|
|
@@ -12255,9 +12943,9 @@ const useFormItem = (expose) => {
|
|
|
12255
12943
|
|
|
12256
12944
|
/** @jsxImportSource vue */
|
|
12257
12945
|
|
|
12258
|
-
const COMPONENT_NAME$
|
|
12946
|
+
const COMPONENT_NAME$14 = 'vc-form-item';
|
|
12259
12947
|
const FormItem = /* @__PURE__ */ defineComponent({
|
|
12260
|
-
name: COMPONENT_NAME$
|
|
12948
|
+
name: COMPONENT_NAME$14,
|
|
12261
12949
|
props: props$K,
|
|
12262
12950
|
setup(props, {
|
|
12263
12951
|
slots,
|
|
@@ -12325,9 +13013,9 @@ const props$J = {
|
|
|
12325
13013
|
}
|
|
12326
13014
|
};
|
|
12327
13015
|
|
|
12328
|
-
const COMPONENT_NAME$
|
|
13016
|
+
const COMPONENT_NAME$13 = "vcm-form";
|
|
12329
13017
|
const MForm = defineComponent({
|
|
12330
|
-
name: COMPONENT_NAME$
|
|
13018
|
+
name: COMPONENT_NAME$13,
|
|
12331
13019
|
props: props$J,
|
|
12332
13020
|
setup(props, { slots, expose }) {
|
|
12333
13021
|
useForm(expose, {
|
|
@@ -12358,9 +13046,9 @@ const props$I = {
|
|
|
12358
13046
|
|
|
12359
13047
|
/** @jsxImportSource vue */
|
|
12360
13048
|
|
|
12361
|
-
const COMPONENT_NAME$
|
|
13049
|
+
const COMPONENT_NAME$12 = 'vcm-form-item';
|
|
12362
13050
|
const MFormItem = /* @__PURE__ */ defineComponent({
|
|
12363
|
-
name: COMPONENT_NAME$
|
|
13051
|
+
name: COMPONENT_NAME$12,
|
|
12364
13052
|
props: props$I,
|
|
12365
13053
|
setup(props, {
|
|
12366
13054
|
slots,
|
|
@@ -12415,9 +13103,9 @@ const MFormItem = /* @__PURE__ */ defineComponent({
|
|
|
12415
13103
|
}
|
|
12416
13104
|
});
|
|
12417
13105
|
|
|
12418
|
-
const COMPONENT_NAME
|
|
13106
|
+
const COMPONENT_NAME$11 = "vc-fragment";
|
|
12419
13107
|
const Fragment = defineComponent({
|
|
12420
|
-
name: COMPONENT_NAME
|
|
13108
|
+
name: COMPONENT_NAME$11,
|
|
12421
13109
|
setup(_, { slots }) {
|
|
12422
13110
|
return () => h(Fragment$1, slots.default?.());
|
|
12423
13111
|
}
|
|
@@ -12456,9 +13144,9 @@ const props$H = {
|
|
|
12456
13144
|
|
|
12457
13145
|
/** @jsxImportSource vue */
|
|
12458
13146
|
|
|
12459
|
-
const COMPONENT_NAME$
|
|
13147
|
+
const COMPONENT_NAME$10 = 'vc-snapshot';
|
|
12460
13148
|
const Snapshot = /* @__PURE__ */ defineComponent({
|
|
12461
|
-
name: COMPONENT_NAME$
|
|
13149
|
+
name: COMPONENT_NAME$10,
|
|
12462
13150
|
props: props$H,
|
|
12463
13151
|
emits: ['ready'],
|
|
12464
13152
|
setup(props, {
|
|
@@ -12617,7 +13305,7 @@ const IMGStore$1 = new IMGStore();
|
|
|
12617
13305
|
|
|
12618
13306
|
/** @jsxImportSource vue */
|
|
12619
13307
|
|
|
12620
|
-
const COMPONENT_NAME
|
|
13308
|
+
const COMPONENT_NAME$$ = 'vc-image';
|
|
12621
13309
|
let isSupportObjectFit = false;
|
|
12622
13310
|
window.addEventListener('DOMContentLoaded', () => {
|
|
12623
13311
|
isSupportObjectFit = !IS_SERVER$1 && document.documentElement.style.objectFit !== undefined;
|
|
@@ -12630,7 +13318,7 @@ const ObjectFit = {
|
|
|
12630
13318
|
SCALE_DOWN: 'scale-down'
|
|
12631
13319
|
};
|
|
12632
13320
|
const Image$1 = /* @__PURE__ */ defineComponent({
|
|
12633
|
-
name: COMPONENT_NAME
|
|
13321
|
+
name: COMPONENT_NAME$$,
|
|
12634
13322
|
inheritAttrs: false,
|
|
12635
13323
|
props: props$G,
|
|
12636
13324
|
setup(props, {
|
|
@@ -12847,9 +13535,9 @@ const props$F = {
|
|
|
12847
13535
|
|
|
12848
13536
|
/** @jsxImportSource vue */
|
|
12849
13537
|
|
|
12850
|
-
const COMPONENT_NAME$
|
|
13538
|
+
const COMPONENT_NAME$_ = 'vc-image-crop';
|
|
12851
13539
|
const ImageCrop = /* @__PURE__ */ defineComponent({
|
|
12852
|
-
name: COMPONENT_NAME$
|
|
13540
|
+
name: COMPONENT_NAME$_,
|
|
12853
13541
|
props: props$F,
|
|
12854
13542
|
setup(props, {
|
|
12855
13543
|
slots
|
|
@@ -12875,9 +13563,9 @@ const props$E = {
|
|
|
12875
13563
|
|
|
12876
13564
|
/** @jsxImportSource vue */
|
|
12877
13565
|
|
|
12878
|
-
const COMPONENT_NAME$
|
|
13566
|
+
const COMPONENT_NAME$Z = 'vc-image-processing';
|
|
12879
13567
|
const ImageProcessing = /* @__PURE__ */ defineComponent({
|
|
12880
|
-
name: COMPONENT_NAME$
|
|
13568
|
+
name: COMPONENT_NAME$Z,
|
|
12881
13569
|
props: props$E,
|
|
12882
13570
|
setup(props, {
|
|
12883
13571
|
slots
|
|
@@ -12894,9 +13582,9 @@ const MImageProcessing = ImageProcessing;
|
|
|
12894
13582
|
|
|
12895
13583
|
/** @jsxImportSource vue */
|
|
12896
13584
|
|
|
12897
|
-
const COMPONENT_NAME$
|
|
13585
|
+
const COMPONENT_NAME$Y = 'vcm-input';
|
|
12898
13586
|
const MInput = /* @__PURE__ */ defineComponent({
|
|
12899
|
-
name: COMPONENT_NAME$
|
|
13587
|
+
name: COMPONENT_NAME$Y,
|
|
12900
13588
|
inheritAttrs: false,
|
|
12901
13589
|
props: {
|
|
12902
13590
|
...props$1h,
|
|
@@ -12985,9 +13673,9 @@ const MInput = /* @__PURE__ */ defineComponent({
|
|
|
12985
13673
|
|
|
12986
13674
|
/** @jsxImportSource vue */
|
|
12987
13675
|
|
|
12988
|
-
const COMPONENT_NAME$
|
|
13676
|
+
const COMPONENT_NAME$X = 'vcm-input-number';
|
|
12989
13677
|
const MInputNumber = /* @__PURE__ */ defineComponent({
|
|
12990
|
-
name: COMPONENT_NAME$
|
|
13678
|
+
name: COMPONENT_NAME$X,
|
|
12991
13679
|
props: props$1g,
|
|
12992
13680
|
inheritAttrs: false,
|
|
12993
13681
|
setup(props, {
|
|
@@ -13036,9 +13724,9 @@ const MInputNumber = /* @__PURE__ */ defineComponent({
|
|
|
13036
13724
|
|
|
13037
13725
|
/** @jsxImportSource vue */
|
|
13038
13726
|
|
|
13039
|
-
const COMPONENT_NAME$
|
|
13727
|
+
const COMPONENT_NAME$W = 'vcm-input-search';
|
|
13040
13728
|
const MInputSearch = /* @__PURE__ */ defineComponent({
|
|
13041
|
-
name: COMPONENT_NAME$
|
|
13729
|
+
name: COMPONENT_NAME$W,
|
|
13042
13730
|
props: {
|
|
13043
13731
|
...props$1f,
|
|
13044
13732
|
cancelText: {
|
|
@@ -13115,9 +13803,9 @@ const props$D = {
|
|
|
13115
13803
|
}
|
|
13116
13804
|
};
|
|
13117
13805
|
|
|
13118
|
-
const COMPONENT_NAME$
|
|
13806
|
+
const COMPONENT_NAME$V = "vcm-list";
|
|
13119
13807
|
const MList = defineComponent({
|
|
13120
|
-
name: COMPONENT_NAME$
|
|
13808
|
+
name: COMPONENT_NAME$V,
|
|
13121
13809
|
props: props$D,
|
|
13122
13810
|
setup(props, { slots }) {
|
|
13123
13811
|
provide("vc-list", { props });
|
|
@@ -13172,10 +13860,10 @@ const props$C = {
|
|
|
13172
13860
|
|
|
13173
13861
|
/** @jsxImportSource vue */
|
|
13174
13862
|
|
|
13175
|
-
const COMPONENT_NAME$
|
|
13863
|
+
const COMPONENT_NAME$U = 'vcm-list-item';
|
|
13176
13864
|
const HTTP_REGEX = /[a-zA-z]+:\/\/[^\s]*/;
|
|
13177
13865
|
const MListItem = /* @__PURE__ */ defineComponent({
|
|
13178
|
-
name: COMPONENT_NAME$
|
|
13866
|
+
name: COMPONENT_NAME$U,
|
|
13179
13867
|
props: props$C,
|
|
13180
13868
|
emits: ['click'],
|
|
13181
13869
|
setup(props, {
|
|
@@ -13269,11 +13957,11 @@ const props$B = {
|
|
|
13269
13957
|
|
|
13270
13958
|
/** @jsxImportSource vue */
|
|
13271
13959
|
|
|
13272
|
-
const COMPONENT_NAME$
|
|
13960
|
+
const COMPONENT_NAME$T = 'vc-marquee';
|
|
13273
13961
|
const ANIMATION = prefixStyle('animation').camel;
|
|
13274
13962
|
const TRANSFORM_KEBAB = prefixStyle('transform').kebab;
|
|
13275
13963
|
const Marquee = /* @__PURE__ */ defineComponent({
|
|
13276
|
-
name: COMPONENT_NAME$
|
|
13964
|
+
name: COMPONENT_NAME$T,
|
|
13277
13965
|
props: props$B,
|
|
13278
13966
|
setup(props, {
|
|
13279
13967
|
slots
|
|
@@ -13341,9 +14029,9 @@ const props$A = {
|
|
|
13341
14029
|
}
|
|
13342
14030
|
};
|
|
13343
14031
|
|
|
13344
|
-
const COMPONENT_NAME$
|
|
14032
|
+
const COMPONENT_NAME$S = "vc-resizer";
|
|
13345
14033
|
const Resizer = defineComponent({
|
|
13346
|
-
name: COMPONENT_NAME$
|
|
14034
|
+
name: COMPONENT_NAME$S,
|
|
13347
14035
|
props: props$A,
|
|
13348
14036
|
emits: ["resize"],
|
|
13349
14037
|
setup(props, { emit, slots, expose }) {
|
|
@@ -13513,10 +14201,10 @@ const props$z = {
|
|
|
13513
14201
|
|
|
13514
14202
|
/** @jsxImportSource vue */
|
|
13515
14203
|
|
|
13516
|
-
const COMPONENT_NAME$
|
|
14204
|
+
const COMPONENT_NAME$R = 'vc-modal';
|
|
13517
14205
|
let zIndexNumber = 1002;
|
|
13518
14206
|
const ModalView = /* @__PURE__ */ defineComponent({
|
|
13519
|
-
name: COMPONENT_NAME$
|
|
14207
|
+
name: COMPONENT_NAME$R,
|
|
13520
14208
|
emits: ['update:modelValue', 'close', 'portal-fulfilled', 'visible-change', 'ok', 'cancel'],
|
|
13521
14209
|
props: props$z,
|
|
13522
14210
|
setup(props, {
|
|
@@ -13955,9 +14643,9 @@ const props$y = {
|
|
|
13955
14643
|
|
|
13956
14644
|
/** @jsxImportSource vue */
|
|
13957
14645
|
|
|
13958
|
-
const COMPONENT_NAME$
|
|
14646
|
+
const COMPONENT_NAME$Q = 'vc-modal';
|
|
13959
14647
|
const MModalView = /* @__PURE__ */ defineComponent({
|
|
13960
|
-
name: COMPONENT_NAME$
|
|
14648
|
+
name: COMPONENT_NAME$Q,
|
|
13961
14649
|
emits: ['update:modelValue', 'portal-fulfilled', 'close', 'ok', 'cancel'],
|
|
13962
14650
|
props: props$y,
|
|
13963
14651
|
setup(props, {
|
|
@@ -14169,9 +14857,9 @@ const props$x = {
|
|
|
14169
14857
|
|
|
14170
14858
|
/** @jsxImportSource vue */
|
|
14171
14859
|
|
|
14172
|
-
const COMPONENT_NAME$
|
|
14860
|
+
const COMPONENT_NAME$P = 'vc-notice';
|
|
14173
14861
|
const NoticeView = /* @__PURE__ */ defineComponent({
|
|
14174
|
-
name: COMPONENT_NAME$
|
|
14862
|
+
name: COMPONENT_NAME$P,
|
|
14175
14863
|
props: props$x,
|
|
14176
14864
|
emits: ['portal-fulfilled', 'close', 'before-close'],
|
|
14177
14865
|
setup(props, {
|
|
@@ -14344,9 +15032,9 @@ const props$w = {
|
|
|
14344
15032
|
|
|
14345
15033
|
/** @jsxImportSource vue */
|
|
14346
15034
|
|
|
14347
|
-
const COMPONENT_NAME$
|
|
15035
|
+
const COMPONENT_NAME$O = 'vc-option';
|
|
14348
15036
|
const Option$1 = /* @__PURE__ */ defineComponent({
|
|
14349
|
-
name: COMPONENT_NAME$
|
|
15037
|
+
name: COMPONENT_NAME$O,
|
|
14350
15038
|
props: props$w,
|
|
14351
15039
|
setup(props, {
|
|
14352
15040
|
slots
|
|
@@ -14430,9 +15118,9 @@ const props$u = {
|
|
|
14430
15118
|
|
|
14431
15119
|
/** @jsxImportSource vue */
|
|
14432
15120
|
|
|
14433
|
-
const COMPONENT_NAME$
|
|
15121
|
+
const COMPONENT_NAME$N = 'vc-tag';
|
|
14434
15122
|
const Tag = /* @__PURE__ */ defineComponent({
|
|
14435
|
-
name: COMPONENT_NAME$
|
|
15123
|
+
name: COMPONENT_NAME$N,
|
|
14436
15124
|
props: props$u,
|
|
14437
15125
|
emits: ['close', 'change'],
|
|
14438
15126
|
setup(props, {
|
|
@@ -14503,9 +15191,9 @@ const props$t = {
|
|
|
14503
15191
|
|
|
14504
15192
|
/** @jsxImportSource vue */
|
|
14505
15193
|
|
|
14506
|
-
const COMPONENT_NAME$
|
|
15194
|
+
const COMPONENT_NAME$M = 'vc-select-option';
|
|
14507
15195
|
const Option = /* @__PURE__ */ defineComponent({
|
|
14508
|
-
name: COMPONENT_NAME$
|
|
15196
|
+
name: COMPONENT_NAME$M,
|
|
14509
15197
|
props: props$t,
|
|
14510
15198
|
setup(props, {
|
|
14511
15199
|
slots,
|
|
@@ -14600,9 +15288,9 @@ const props$s = {
|
|
|
14600
15288
|
|
|
14601
15289
|
/** @jsxImportSource vue */
|
|
14602
15290
|
|
|
14603
|
-
const COMPONENT_NAME$
|
|
15291
|
+
const COMPONENT_NAME$L = 'vc-select-option-group';
|
|
14604
15292
|
const OptionGroup = /* @__PURE__ */ defineComponent({
|
|
14605
|
-
name: COMPONENT_NAME$
|
|
15293
|
+
name: COMPONENT_NAME$L,
|
|
14606
15294
|
props: props$s,
|
|
14607
15295
|
setup(props, {
|
|
14608
15296
|
slots
|
|
@@ -14632,9 +15320,9 @@ const OptionGroup = /* @__PURE__ */ defineComponent({
|
|
|
14632
15320
|
|
|
14633
15321
|
/** @jsxImportSource vue */
|
|
14634
15322
|
|
|
14635
|
-
const COMPONENT_NAME$
|
|
15323
|
+
const COMPONENT_NAME$K = 'vc-select-all';
|
|
14636
15324
|
const SelectAll = /* @__PURE__ */ defineComponent({
|
|
14637
|
-
name: COMPONENT_NAME$
|
|
15325
|
+
name: COMPONENT_NAME$K,
|
|
14638
15326
|
props: {
|
|
14639
15327
|
data: {
|
|
14640
15328
|
type: Array,
|
|
@@ -14704,9 +15392,9 @@ const SelectAll = /* @__PURE__ */ defineComponent({
|
|
|
14704
15392
|
|
|
14705
15393
|
/** @jsxImportSource vue */
|
|
14706
15394
|
|
|
14707
|
-
const COMPONENT_NAME$
|
|
15395
|
+
const COMPONENT_NAME$J = 'vc-select';
|
|
14708
15396
|
const Select = /* @__PURE__ */ defineComponent({
|
|
14709
|
-
name: COMPONENT_NAME$
|
|
15397
|
+
name: COMPONENT_NAME$J,
|
|
14710
15398
|
props: props$1a,
|
|
14711
15399
|
emits: ['ready', 'close', 'visible-change', 'clear', 'change', 'update:modelValue'],
|
|
14712
15400
|
setup(props, {
|
|
@@ -15000,9 +15688,9 @@ const Select = /* @__PURE__ */ defineComponent({
|
|
|
15000
15688
|
|
|
15001
15689
|
/** @jsxImportSource vue */
|
|
15002
15690
|
|
|
15003
|
-
const COMPONENT_NAME$
|
|
15691
|
+
const COMPONENT_NAME$I = 'vc-pagination';
|
|
15004
15692
|
const Pagination = /* @__PURE__ */ defineComponent({
|
|
15005
|
-
name: COMPONENT_NAME$
|
|
15693
|
+
name: COMPONENT_NAME$I,
|
|
15006
15694
|
props: props$v,
|
|
15007
15695
|
emits: ['update:current', 'change', 'page-size-change'],
|
|
15008
15696
|
setup(props, {
|
|
@@ -15200,9 +15888,9 @@ const props$r = {
|
|
|
15200
15888
|
|
|
15201
15889
|
/** @jsxImportSource vue */
|
|
15202
15890
|
|
|
15203
|
-
const COMPONENT_NAME$
|
|
15891
|
+
const COMPONENT_NAME$H = 'vc-picker';
|
|
15204
15892
|
const Picker = /* @__PURE__ */ defineComponent({
|
|
15205
|
-
name: COMPONENT_NAME$
|
|
15893
|
+
name: COMPONENT_NAME$H,
|
|
15206
15894
|
props: props$r,
|
|
15207
15895
|
setup(props, {
|
|
15208
15896
|
slots
|
|
@@ -15265,9 +15953,9 @@ const props$q = {
|
|
|
15265
15953
|
|
|
15266
15954
|
/** @jsxImportSource vue */
|
|
15267
15955
|
|
|
15268
|
-
const COMPONENT_NAME$
|
|
15956
|
+
const COMPONENT_NAME$G = 'vc-popconfirm';
|
|
15269
15957
|
const Popconfirm = /* @__PURE__ */ defineComponent({
|
|
15270
|
-
name: COMPONENT_NAME$
|
|
15958
|
+
name: COMPONENT_NAME$G,
|
|
15271
15959
|
props: props$q,
|
|
15272
15960
|
inheritAttrs: false,
|
|
15273
15961
|
emits: ['update:modelValue', 'visible-change', 'ready', 'close', 'cancel', 'ok'],
|
|
@@ -15435,9 +16123,9 @@ const props$p = {
|
|
|
15435
16123
|
|
|
15436
16124
|
/** @jsxImportSource vue */
|
|
15437
16125
|
|
|
15438
|
-
const COMPONENT_NAME$
|
|
16126
|
+
const COMPONENT_NAME$F = 'vc-popup';
|
|
15439
16127
|
const MPopup = /* @__PURE__ */ defineComponent({
|
|
15440
|
-
name: COMPONENT_NAME$
|
|
16128
|
+
name: COMPONENT_NAME$F,
|
|
15441
16129
|
props: props$p,
|
|
15442
16130
|
emits: ['update:modelValue', 'close', 'portal-fulfilled', 'visible-change'],
|
|
15443
16131
|
setup(props, {
|
|
@@ -15564,9 +16252,9 @@ const props$o = {
|
|
|
15564
16252
|
|
|
15565
16253
|
/** @jsxImportSource vue */
|
|
15566
16254
|
|
|
15567
|
-
const COMPONENT_NAME$
|
|
16255
|
+
const COMPONENT_NAME$E = 'vc-print';
|
|
15568
16256
|
const Print = /* @__PURE__ */ defineComponent({
|
|
15569
|
-
name: COMPONENT_NAME$
|
|
16257
|
+
name: COMPONENT_NAME$E,
|
|
15570
16258
|
props: props$o,
|
|
15571
16259
|
setup(props, {
|
|
15572
16260
|
expose,
|
|
@@ -15646,7 +16334,7 @@ const props$n = {
|
|
|
15646
16334
|
},
|
|
15647
16335
|
strokeColor: {
|
|
15648
16336
|
type: String,
|
|
15649
|
-
default: "#
|
|
16337
|
+
default: "#456CF6"
|
|
15650
16338
|
},
|
|
15651
16339
|
trackColor: {
|
|
15652
16340
|
type: String,
|
|
@@ -15668,9 +16356,9 @@ const props$n = {
|
|
|
15668
16356
|
|
|
15669
16357
|
/** @jsxImportSource vue */
|
|
15670
16358
|
|
|
15671
|
-
const COMPONENT_NAME$
|
|
16359
|
+
const COMPONENT_NAME$D = 'vc-progress-circle';
|
|
15672
16360
|
const Circle = /* @__PURE__ */ defineComponent({
|
|
15673
|
-
name: COMPONENT_NAME$
|
|
16361
|
+
name: COMPONENT_NAME$D,
|
|
15674
16362
|
props: props$n,
|
|
15675
16363
|
setup(props, {
|
|
15676
16364
|
slots
|
|
@@ -15730,9 +16418,9 @@ const Circle = /* @__PURE__ */ defineComponent({
|
|
|
15730
16418
|
|
|
15731
16419
|
/** @jsxImportSource vue */
|
|
15732
16420
|
|
|
15733
|
-
const COMPONENT_NAME$
|
|
16421
|
+
const COMPONENT_NAME$C = 'vc-progress-line';
|
|
15734
16422
|
const Line = /* @__PURE__ */ defineComponent({
|
|
15735
|
-
name: COMPONENT_NAME$
|
|
16423
|
+
name: COMPONENT_NAME$C,
|
|
15736
16424
|
props: props$n,
|
|
15737
16425
|
setup(props) {
|
|
15738
16426
|
const colorStyle = computed(() => {
|
|
@@ -15779,9 +16467,9 @@ const Line = /* @__PURE__ */ defineComponent({
|
|
|
15779
16467
|
function _isSlot(s) {
|
|
15780
16468
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
|
|
15781
16469
|
}
|
|
15782
|
-
const COMPONENT_NAME$
|
|
16470
|
+
const COMPONENT_NAME$B = 'vc-progress';
|
|
15783
16471
|
const Progress = /* @__PURE__ */ defineComponent({
|
|
15784
|
-
name: COMPONENT_NAME$
|
|
16472
|
+
name: COMPONENT_NAME$B,
|
|
15785
16473
|
props: props$n,
|
|
15786
16474
|
setup(props, {
|
|
15787
16475
|
slots
|
|
@@ -15943,9 +16631,9 @@ const useRadio = () => {
|
|
|
15943
16631
|
|
|
15944
16632
|
/** @jsxImportSource vue */
|
|
15945
16633
|
|
|
15946
|
-
const COMPONENT_NAME$
|
|
16634
|
+
const COMPONENT_NAME$A = 'vc-radio';
|
|
15947
16635
|
const Radio = /* @__PURE__ */ defineComponent({
|
|
15948
|
-
name: COMPONENT_NAME$
|
|
16636
|
+
name: COMPONENT_NAME$A,
|
|
15949
16637
|
props: props$m,
|
|
15950
16638
|
emits: ['update:modelValue', 'change'],
|
|
15951
16639
|
setup(props, {
|
|
@@ -15989,9 +16677,9 @@ const Radio = /* @__PURE__ */ defineComponent({
|
|
|
15989
16677
|
|
|
15990
16678
|
/** @jsxImportSource vue */
|
|
15991
16679
|
|
|
15992
|
-
const COMPONENT_NAME$
|
|
16680
|
+
const COMPONENT_NAME$z = 'vc-radio-button';
|
|
15993
16681
|
const RadioButton = /* @__PURE__ */ defineComponent({
|
|
15994
|
-
name: COMPONENT_NAME$
|
|
16682
|
+
name: COMPONENT_NAME$z,
|
|
15995
16683
|
props: {
|
|
15996
16684
|
...props$m,
|
|
15997
16685
|
labelStyle: [String, Object],
|
|
@@ -16104,9 +16792,9 @@ const useRadioGroup = () => {
|
|
|
16104
16792
|
|
|
16105
16793
|
/** @jsxImportSource vue */
|
|
16106
16794
|
|
|
16107
|
-
const COMPONENT_NAME$
|
|
16795
|
+
const COMPONENT_NAME$y = 'vc-radio-group';
|
|
16108
16796
|
const RadioGroup = /* @__PURE__ */ defineComponent({
|
|
16109
|
-
name: COMPONENT_NAME$
|
|
16797
|
+
name: COMPONENT_NAME$y,
|
|
16110
16798
|
props: props$l,
|
|
16111
16799
|
emits: ['update:modelValue', 'change'],
|
|
16112
16800
|
setup(props, {
|
|
@@ -16127,9 +16815,9 @@ const RadioGroup = /* @__PURE__ */ defineComponent({
|
|
|
16127
16815
|
|
|
16128
16816
|
/** @jsxImportSource vue */
|
|
16129
16817
|
|
|
16130
|
-
const COMPONENT_NAME$
|
|
16818
|
+
const COMPONENT_NAME$x = 'vcm-radio';
|
|
16131
16819
|
const MRadio = /* @__PURE__ */ defineComponent({
|
|
16132
|
-
name: COMPONENT_NAME$
|
|
16820
|
+
name: COMPONENT_NAME$x,
|
|
16133
16821
|
props: props$m,
|
|
16134
16822
|
emits: ['update:modelValue', 'change'],
|
|
16135
16823
|
setup(props, {
|
|
@@ -16173,9 +16861,9 @@ const MRadio = /* @__PURE__ */ defineComponent({
|
|
|
16173
16861
|
|
|
16174
16862
|
/** @jsxImportSource vue */
|
|
16175
16863
|
|
|
16176
|
-
const COMPONENT_NAME$
|
|
16864
|
+
const COMPONENT_NAME$w = 'vcm-radio-group';
|
|
16177
16865
|
const MRadioGroup = /* @__PURE__ */ defineComponent({
|
|
16178
|
-
name: COMPONENT_NAME$
|
|
16866
|
+
name: COMPONENT_NAME$w,
|
|
16179
16867
|
props: props$l,
|
|
16180
16868
|
emits: ['update:modelValue', 'change'],
|
|
16181
16869
|
setup(props, {
|
|
@@ -16242,9 +16930,9 @@ const props$k = {
|
|
|
16242
16930
|
|
|
16243
16931
|
/** @jsxImportSource vue */
|
|
16244
16932
|
|
|
16245
|
-
const COMPONENT_NAME$
|
|
16933
|
+
const COMPONENT_NAME$v = 'vc-rate';
|
|
16246
16934
|
const Rate = /* @__PURE__ */ defineComponent({
|
|
16247
|
-
name: COMPONENT_NAME$
|
|
16935
|
+
name: COMPONENT_NAME$v,
|
|
16248
16936
|
props: props$k,
|
|
16249
16937
|
emits: ['update:modelValue', 'change'],
|
|
16250
16938
|
setup(props, {
|
|
@@ -16446,9 +17134,9 @@ const props$j = {
|
|
|
16446
17134
|
|
|
16447
17135
|
/** @jsxImportSource vue */
|
|
16448
17136
|
|
|
16449
|
-
const COMPONENT_NAME$
|
|
17137
|
+
const COMPONENT_NAME$u = 'vc-recycle-list-scroll-state';
|
|
16450
17138
|
const ScrollState = /* @__PURE__ */ defineComponent({
|
|
16451
|
-
name: COMPONENT_NAME$
|
|
17139
|
+
name: COMPONENT_NAME$u,
|
|
16452
17140
|
setup(_, {
|
|
16453
17141
|
slots
|
|
16454
17142
|
}) {
|
|
@@ -16578,12 +17266,12 @@ const useDirectionKeys = () => {
|
|
|
16578
17266
|
|
|
16579
17267
|
/** @jsxImportSource vue */
|
|
16580
17268
|
|
|
16581
|
-
const COMPONENT_NAME$
|
|
17269
|
+
const COMPONENT_NAME$t = 'vc-recycle-list-container';
|
|
16582
17270
|
|
|
16583
17271
|
// TODO: 抽离
|
|
16584
17272
|
const transformKey = $.prefixStyle('transform').camel;
|
|
16585
17273
|
const Container = /* @__PURE__ */ defineComponent({
|
|
16586
|
-
name: COMPONENT_NAME$
|
|
17274
|
+
name: COMPONENT_NAME$t,
|
|
16587
17275
|
props: props$i,
|
|
16588
17276
|
emits: ['refresh'],
|
|
16589
17277
|
setup(props, {
|
|
@@ -16681,9 +17369,9 @@ const Container = /* @__PURE__ */ defineComponent({
|
|
|
16681
17369
|
|
|
16682
17370
|
/** @jsxImportSource vue */
|
|
16683
17371
|
|
|
16684
|
-
const COMPONENT_NAME$
|
|
17372
|
+
const COMPONENT_NAME$s = 'vc-recycle-list';
|
|
16685
17373
|
const RecycleList = /* @__PURE__ */ defineComponent({
|
|
16686
|
-
name: COMPONENT_NAME$
|
|
17374
|
+
name: COMPONENT_NAME$s,
|
|
16687
17375
|
props: props$j,
|
|
16688
17376
|
emits: ['scroll', 'row-resize'],
|
|
16689
17377
|
setup(props, {
|
|
@@ -17257,9 +17945,9 @@ const props$h = {
|
|
|
17257
17945
|
|
|
17258
17946
|
/** @jsxImportSource vue */
|
|
17259
17947
|
|
|
17260
|
-
const COMPONENT_NAME$
|
|
17948
|
+
const COMPONENT_NAME$r = 'vc-slider';
|
|
17261
17949
|
const Slider = /* @__PURE__ */ defineComponent({
|
|
17262
|
-
name: COMPONENT_NAME$
|
|
17950
|
+
name: COMPONENT_NAME$r,
|
|
17263
17951
|
props: props$h,
|
|
17264
17952
|
setup(props, {
|
|
17265
17953
|
slots
|
|
@@ -17283,9 +17971,9 @@ const props$g = {
|
|
|
17283
17971
|
|
|
17284
17972
|
/** @jsxImportSource vue */
|
|
17285
17973
|
|
|
17286
|
-
const COMPONENT_NAME$
|
|
17974
|
+
const COMPONENT_NAME$q = 'vc-sort-list';
|
|
17287
17975
|
const SortList = /* @__PURE__ */ defineComponent({
|
|
17288
|
-
name: COMPONENT_NAME$
|
|
17976
|
+
name: COMPONENT_NAME$q,
|
|
17289
17977
|
props: props$g,
|
|
17290
17978
|
setup(props, {
|
|
17291
17979
|
slots
|
|
@@ -17309,9 +17997,9 @@ const props$f = {
|
|
|
17309
17997
|
|
|
17310
17998
|
/** @jsxImportSource vue */
|
|
17311
17999
|
|
|
17312
|
-
const COMPONENT_NAME$
|
|
18000
|
+
const COMPONENT_NAME$p = 'vc-steps';
|
|
17313
18001
|
const Steps = /* @__PURE__ */ defineComponent({
|
|
17314
|
-
name: COMPONENT_NAME$
|
|
18002
|
+
name: COMPONENT_NAME$p,
|
|
17315
18003
|
props: props$f,
|
|
17316
18004
|
setup(props, {
|
|
17317
18005
|
slots
|
|
@@ -17437,9 +18125,9 @@ const useSwitch = (expose) => {
|
|
|
17437
18125
|
|
|
17438
18126
|
/** @jsxImportSource vue */
|
|
17439
18127
|
|
|
17440
|
-
const COMPONENT_NAME$
|
|
18128
|
+
const COMPONENT_NAME$o = 'vc-switch';
|
|
17441
18129
|
const Switch = /* @__PURE__ */ defineComponent({
|
|
17442
|
-
name: COMPONENT_NAME$
|
|
18130
|
+
name: COMPONENT_NAME$o,
|
|
17443
18131
|
props: props$e,
|
|
17444
18132
|
// click -> onClick要被拦截,此处不能放置
|
|
17445
18133
|
emits: ['update:modelValue', 'change', 'click'],
|
|
@@ -17513,9 +18201,9 @@ const Switch = /* @__PURE__ */ defineComponent({
|
|
|
17513
18201
|
|
|
17514
18202
|
/** @jsxImportSource vue */
|
|
17515
18203
|
|
|
17516
|
-
const COMPONENT_NAME$
|
|
18204
|
+
const COMPONENT_NAME$n = 'vcm-switch';
|
|
17517
18205
|
const MSwitch = /* @__PURE__ */ defineComponent({
|
|
17518
|
-
name: COMPONENT_NAME$
|
|
18206
|
+
name: COMPONENT_NAME$n,
|
|
17519
18207
|
props: props$e,
|
|
17520
18208
|
// click -> onClick要被拦截,此处不能放置
|
|
17521
18209
|
emits: ['update:modelValue', 'change', 'click'],
|
|
@@ -18628,9 +19316,9 @@ const useStates = (mapper, $store) => {
|
|
|
18628
19316
|
|
|
18629
19317
|
/** @jsxImportSource vue */
|
|
18630
19318
|
|
|
18631
|
-
const COMPONENT_NAME$
|
|
19319
|
+
const COMPONENT_NAME$m = 'vc-table-normal-list';
|
|
18632
19320
|
const NormalList = /* @__PURE__ */ defineComponent({
|
|
18633
|
-
name: COMPONENT_NAME$
|
|
19321
|
+
name: COMPONENT_NAME$m,
|
|
18634
19322
|
props: {
|
|
18635
19323
|
data: {
|
|
18636
19324
|
type: Array,
|
|
@@ -19148,6 +19836,10 @@ const TableHeader = /* @__PURE__ */ defineComponent({
|
|
|
19148
19836
|
const allowDrag = computed(() => {
|
|
19149
19837
|
return typeof props.resizable === 'boolean' ? props.resizable : props.border;
|
|
19150
19838
|
});
|
|
19839
|
+
const dragLineClass = computed(() => {
|
|
19840
|
+
if (props.border || !props.resizable) return;
|
|
19841
|
+
return 'has-drag-line';
|
|
19842
|
+
});
|
|
19151
19843
|
const states = useStates({
|
|
19152
19844
|
columns: 'columns',
|
|
19153
19845
|
isAllSelected: 'isAllSelected',
|
|
@@ -19381,7 +20073,7 @@ const TableHeader = /* @__PURE__ */ defineComponent({
|
|
|
19381
20073
|
"style": [getHeaderCellStyle(rowIndex, columnIndex, columns, column), {
|
|
19382
20074
|
width: `${column.realWidth}px`
|
|
19383
20075
|
}],
|
|
19384
|
-
"class": [getHeaderCellClass(rowIndex, columnIndex, columns, column), 'vc-table__th'],
|
|
20076
|
+
"class": [getHeaderCellClass(rowIndex, columnIndex, columns, column), column.resizable && dragLineClass.value, 'vc-table__th'],
|
|
19385
20077
|
"key": column.id
|
|
19386
20078
|
}, [createVNode("div", {
|
|
19387
20079
|
"class": ['vc-table__cell',
|
|
@@ -19627,9 +20319,9 @@ const props$d = {
|
|
|
19627
20319
|
|
|
19628
20320
|
/** @jsxImportSource vue */
|
|
19629
20321
|
|
|
19630
|
-
const COMPONENT_NAME$
|
|
20322
|
+
const COMPONENT_NAME$l = 'vc-table';
|
|
19631
20323
|
const Table = /* @__PURE__ */ defineComponent({
|
|
19632
|
-
name: COMPONENT_NAME$
|
|
20324
|
+
name: COMPONENT_NAME$l,
|
|
19633
20325
|
props: props$d,
|
|
19634
20326
|
emits: ['select', 'select-all', 'selection-change', 'cell-mouse-enter', 'cell-mouse-leave', 'cell-click', 'cell-dblclick', 'row-click', 'row-contextmenu', 'row-dblclick', 'header-click', 'header-contextmenu', 'current-change', 'header-dragend', 'expand-change', 'sort-change', 'update:sort'],
|
|
19635
20327
|
setup(props, {
|
|
@@ -20832,9 +21524,9 @@ const useTabs = (options = {}) => {
|
|
|
20832
21524
|
|
|
20833
21525
|
/** @jsxImportSource vue */
|
|
20834
21526
|
|
|
20835
|
-
const COMPONENT_NAME$
|
|
21527
|
+
const COMPONENT_NAME$k = 'vc-tabs';
|
|
20836
21528
|
const Tabs = /* @__PURE__ */ defineComponent({
|
|
20837
|
-
name: COMPONENT_NAME$
|
|
21529
|
+
name: COMPONENT_NAME$k,
|
|
20838
21530
|
props: props$c,
|
|
20839
21531
|
emits: ['update:modelValue', 'change', 'click'],
|
|
20840
21532
|
setup(props, {
|
|
@@ -21087,9 +21779,9 @@ const useTabsPane = () => {
|
|
|
21087
21779
|
|
|
21088
21780
|
/** @jsxImportSource vue */
|
|
21089
21781
|
|
|
21090
|
-
const COMPONENT_NAME$
|
|
21782
|
+
const COMPONENT_NAME$j = 'vc-tabs-pane';
|
|
21091
21783
|
const TabsPane = /* @__PURE__ */ defineComponent({
|
|
21092
|
-
name: COMPONENT_NAME$
|
|
21784
|
+
name: COMPONENT_NAME$j,
|
|
21093
21785
|
props: props$b,
|
|
21094
21786
|
setup(_, {
|
|
21095
21787
|
slots
|
|
@@ -21144,9 +21836,9 @@ const props$a = {
|
|
|
21144
21836
|
|
|
21145
21837
|
/** @jsxImportSource vue */
|
|
21146
21838
|
|
|
21147
|
-
const COMPONENT_NAME$
|
|
21839
|
+
const COMPONENT_NAME$i = 'vcm-tabs';
|
|
21148
21840
|
const MTabs = /* @__PURE__ */ defineComponent({
|
|
21149
|
-
name: COMPONENT_NAME$
|
|
21841
|
+
name: COMPONENT_NAME$i,
|
|
21150
21842
|
props: props$a,
|
|
21151
21843
|
emits: ['update:modelValue', 'change', 'click'],
|
|
21152
21844
|
setup(props, {
|
|
@@ -21411,9 +22103,9 @@ const MTabs = /* @__PURE__ */ defineComponent({
|
|
|
21411
22103
|
|
|
21412
22104
|
/** @jsxImportSource vue */
|
|
21413
22105
|
|
|
21414
|
-
const COMPONENT_NAME$
|
|
22106
|
+
const COMPONENT_NAME$h = 'vcm-tabs-pane';
|
|
21415
22107
|
const MTabsPane = /* @__PURE__ */ defineComponent({
|
|
21416
|
-
name: COMPONENT_NAME$
|
|
22108
|
+
name: COMPONENT_NAME$h,
|
|
21417
22109
|
props: props$b,
|
|
21418
22110
|
setup(_, {
|
|
21419
22111
|
slots
|
|
@@ -21477,9 +22169,9 @@ const props$9 = {
|
|
|
21477
22169
|
|
|
21478
22170
|
/** @jsxImportSource vue */
|
|
21479
22171
|
|
|
21480
|
-
const COMPONENT_NAME$
|
|
22172
|
+
const COMPONENT_NAME$g = 'vc-text';
|
|
21481
22173
|
const Text = /* @__PURE__ */ defineComponent({
|
|
21482
|
-
name: COMPONENT_NAME$
|
|
22174
|
+
name: COMPONENT_NAME$g,
|
|
21483
22175
|
props: props$9,
|
|
21484
22176
|
setup(props, {
|
|
21485
22177
|
emit
|
|
@@ -21846,9 +22538,9 @@ const props$8 = {
|
|
|
21846
22538
|
|
|
21847
22539
|
/** @jsxImportSource vue */
|
|
21848
22540
|
|
|
21849
|
-
const COMPONENT_NAME$
|
|
22541
|
+
const COMPONENT_NAME$f = 'vc-textarea';
|
|
21850
22542
|
const Textarea = /* @__PURE__ */ defineComponent({
|
|
21851
|
-
name: COMPONENT_NAME$
|
|
22543
|
+
name: COMPONENT_NAME$f,
|
|
21852
22544
|
props: Object.assign({}, props$8, {
|
|
21853
22545
|
indicator: {
|
|
21854
22546
|
type: [Boolean, Object],
|
|
@@ -21904,9 +22596,9 @@ const Textarea = /* @__PURE__ */ defineComponent({
|
|
|
21904
22596
|
|
|
21905
22597
|
/** @jsxImportSource vue */
|
|
21906
22598
|
|
|
21907
|
-
const COMPONENT_NAME$
|
|
22599
|
+
const COMPONENT_NAME$e = 'vcm-textarea';
|
|
21908
22600
|
const MTextarea = /* @__PURE__ */ defineComponent({
|
|
21909
|
-
name: COMPONENT_NAME$
|
|
22601
|
+
name: COMPONENT_NAME$e,
|
|
21910
22602
|
props: Object.assign({}, props$8, {
|
|
21911
22603
|
align: {
|
|
21912
22604
|
type: String,
|
|
@@ -21989,9 +22681,9 @@ const props$7 = {
|
|
|
21989
22681
|
}
|
|
21990
22682
|
};
|
|
21991
22683
|
|
|
21992
|
-
const COMPONENT_NAME$
|
|
22684
|
+
const COMPONENT_NAME$d = "vc-theme";
|
|
21993
22685
|
const Theme = defineComponent({
|
|
21994
|
-
name: COMPONENT_NAME$
|
|
22686
|
+
name: COMPONENT_NAME$d,
|
|
21995
22687
|
props: props$7,
|
|
21996
22688
|
setup(props, { slots }) {
|
|
21997
22689
|
const themeId = Utils.getUid("vc-theme");
|
|
@@ -22074,9 +22766,9 @@ const Theme = defineComponent({
|
|
|
22074
22766
|
}
|
|
22075
22767
|
});
|
|
22076
22768
|
|
|
22077
|
-
const COMPONENT_NAME$
|
|
22769
|
+
const COMPONENT_NAME$c = "vc-theme-view";
|
|
22078
22770
|
const ThemeView = defineComponent({
|
|
22079
|
-
name: COMPONENT_NAME$
|
|
22771
|
+
name: COMPONENT_NAME$c,
|
|
22080
22772
|
props: props$7,
|
|
22081
22773
|
setup(props, { slots }) {
|
|
22082
22774
|
return () => {
|
|
@@ -22092,9 +22784,9 @@ const ThemeView = defineComponent({
|
|
|
22092
22784
|
}
|
|
22093
22785
|
});
|
|
22094
22786
|
|
|
22095
|
-
const COMPONENT_NAME$
|
|
22787
|
+
const COMPONENT_NAME$b = "vc-theme-text";
|
|
22096
22788
|
const ThemeText = defineComponent({
|
|
22097
|
-
name: COMPONENT_NAME$
|
|
22789
|
+
name: COMPONENT_NAME$b,
|
|
22098
22790
|
props: props$7,
|
|
22099
22791
|
setup(props, { slots }) {
|
|
22100
22792
|
return () => {
|
|
@@ -22110,9 +22802,9 @@ const ThemeText = defineComponent({
|
|
|
22110
22802
|
}
|
|
22111
22803
|
});
|
|
22112
22804
|
|
|
22113
|
-
const COMPONENT_NAME$
|
|
22805
|
+
const COMPONENT_NAME$a = "vc-theme-image";
|
|
22114
22806
|
const ThemeImage = defineComponent({
|
|
22115
|
-
name: COMPONENT_NAME$
|
|
22807
|
+
name: COMPONENT_NAME$a,
|
|
22116
22808
|
props: props$7,
|
|
22117
22809
|
setup(props, { slots }) {
|
|
22118
22810
|
return () => {
|
|
@@ -22164,12 +22856,12 @@ const props$6 = {
|
|
|
22164
22856
|
|
|
22165
22857
|
/** @jsxImportSource vue */
|
|
22166
22858
|
|
|
22167
|
-
const COMPONENT_NAME$
|
|
22859
|
+
const COMPONENT_NAME$9 = 'vc-time-picker';
|
|
22168
22860
|
const getPanel = type => {
|
|
22169
22861
|
const isRange = type === 'timerange';
|
|
22170
22862
|
return isRange ? TimeRangePanel : TimePanel;
|
|
22171
22863
|
};
|
|
22172
|
-
const TimePicker = createPicker(COMPONENT_NAME$
|
|
22864
|
+
const TimePicker = createPicker(COMPONENT_NAME$9, props$6, () => {
|
|
22173
22865
|
const props = getCurrentInstance().props;
|
|
22174
22866
|
const icon = ref('icon');
|
|
22175
22867
|
const panel = shallowRef({});
|
|
@@ -22205,9 +22897,9 @@ const props$5 = {
|
|
|
22205
22897
|
|
|
22206
22898
|
/** @jsxImportSource vue */
|
|
22207
22899
|
|
|
22208
|
-
const COMPONENT_NAME$
|
|
22900
|
+
const COMPONENT_NAME$8 = 'vc-timeline';
|
|
22209
22901
|
const Timeline = /* @__PURE__ */ defineComponent({
|
|
22210
|
-
name: COMPONENT_NAME$
|
|
22902
|
+
name: COMPONENT_NAME$8,
|
|
22211
22903
|
props: props$5,
|
|
22212
22904
|
setup(props, {
|
|
22213
22905
|
slots
|
|
@@ -22234,9 +22926,9 @@ const props$4 = {
|
|
|
22234
22926
|
|
|
22235
22927
|
/** @jsxImportSource vue */
|
|
22236
22928
|
|
|
22237
|
-
const COMPONENT_NAME$
|
|
22929
|
+
const COMPONENT_NAME$7 = 'vc-touch';
|
|
22238
22930
|
const Touch = /* @__PURE__ */ defineComponent({
|
|
22239
|
-
name: COMPONENT_NAME$
|
|
22931
|
+
name: COMPONENT_NAME$7,
|
|
22240
22932
|
props: props$4,
|
|
22241
22933
|
setup(props, {
|
|
22242
22934
|
slots
|
|
@@ -22744,21 +23436,68 @@ class TreeStore {
|
|
|
22744
23436
|
parentNode.insertChild({ data });
|
|
22745
23437
|
}
|
|
22746
23438
|
}
|
|
23439
|
+
/**
|
|
23440
|
+
* 级联非 strict:仅对「选中集合里的最深节点」做 setChecked(true, deep),
|
|
23441
|
+
* 避免对祖先逐个 deep 勾选把未出现在 checkedValues 里的兄弟子树再次全选。
|
|
23442
|
+
* @param checkedValues ~
|
|
23443
|
+
* @returns ~
|
|
23444
|
+
*/
|
|
23445
|
+
_getCascadeCheckedAnchorIds(checkedValues) {
|
|
23446
|
+
const checkedSet = new Set(checkedValues);
|
|
23447
|
+
const nodesMap = this.nodesMap;
|
|
23448
|
+
const anchors = [];
|
|
23449
|
+
for (const id of checkedValues) {
|
|
23450
|
+
const node = nodesMap[id];
|
|
23451
|
+
if (!node) continue;
|
|
23452
|
+
const hasSelectedChildInSet = node.childNodes.some(
|
|
23453
|
+
(child) => checkedSet.has(child.getter.value)
|
|
23454
|
+
);
|
|
23455
|
+
if (!hasSelectedChildInSet) {
|
|
23456
|
+
anchors.push(id);
|
|
23457
|
+
}
|
|
23458
|
+
}
|
|
23459
|
+
anchors.sort((a, b) => {
|
|
23460
|
+
const na = nodesMap[a];
|
|
23461
|
+
const nb = nodesMap[b];
|
|
23462
|
+
if (!na || !nb) return 0;
|
|
23463
|
+
return nb.states.level - na.states.level;
|
|
23464
|
+
});
|
|
23465
|
+
return anchors;
|
|
23466
|
+
}
|
|
22747
23467
|
_initDefaultCheckedNodes() {
|
|
22748
23468
|
const checkedValues = this.checkedValues || [];
|
|
22749
23469
|
const nodesMap = this.nodesMap;
|
|
22750
|
-
|
|
23470
|
+
if (this.checkStrictly) {
|
|
23471
|
+
checkedValues.forEach((id) => {
|
|
23472
|
+
const node = nodesMap[id];
|
|
23473
|
+
if (node) {
|
|
23474
|
+
node.setChecked(true, false);
|
|
23475
|
+
}
|
|
23476
|
+
});
|
|
23477
|
+
return;
|
|
23478
|
+
}
|
|
23479
|
+
const anchorIds = this._getCascadeCheckedAnchorIds(checkedValues);
|
|
23480
|
+
anchorIds.forEach((id) => {
|
|
22751
23481
|
const node = nodesMap[id];
|
|
22752
23482
|
if (node) {
|
|
22753
|
-
node.setChecked(true,
|
|
23483
|
+
node.setChecked(true, true);
|
|
22754
23484
|
}
|
|
22755
23485
|
});
|
|
22756
23486
|
}
|
|
22757
23487
|
_initDefaultCheckedNode(node) {
|
|
22758
23488
|
const checkedValues = this.checkedValues || [];
|
|
22759
23489
|
const nodeValue = node.getter.value;
|
|
22760
|
-
if (checkedValues.indexOf(nodeValue)
|
|
22761
|
-
|
|
23490
|
+
if (checkedValues.indexOf(nodeValue) === -1) return;
|
|
23491
|
+
if (this.checkStrictly) {
|
|
23492
|
+
node.setChecked(true, false);
|
|
23493
|
+
return;
|
|
23494
|
+
}
|
|
23495
|
+
const checkedSet = new Set(checkedValues);
|
|
23496
|
+
const hasSelectedChildInSet = node.childNodes.some(
|
|
23497
|
+
(child) => checkedSet.has(child.getter.value)
|
|
23498
|
+
);
|
|
23499
|
+
if (!hasSelectedChildInSet) {
|
|
23500
|
+
node.setChecked(true, true);
|
|
22762
23501
|
}
|
|
22763
23502
|
}
|
|
22764
23503
|
setCheckedValues(newVal) {
|
|
@@ -22986,9 +23725,9 @@ const props$3 = {
|
|
|
22986
23725
|
|
|
22987
23726
|
/** @jsxImportSource vue */
|
|
22988
23727
|
|
|
22989
|
-
const COMPONENT_NAME$
|
|
23728
|
+
const COMPONENT_NAME$6 = 'vc-tree-node';
|
|
22990
23729
|
const TreeNodeContent = /* @__PURE__ */ defineComponent({
|
|
22991
|
-
name: COMPONENT_NAME$
|
|
23730
|
+
name: COMPONENT_NAME$6,
|
|
22992
23731
|
props: props$3,
|
|
22993
23732
|
emits: ['node-expand'],
|
|
22994
23733
|
setup(props, {
|
|
@@ -23487,9 +24226,9 @@ const props$2 = {
|
|
|
23487
24226
|
|
|
23488
24227
|
/** @jsxImportSource vue */
|
|
23489
24228
|
|
|
23490
|
-
const COMPONENT_NAME$
|
|
24229
|
+
const COMPONENT_NAME$5 = 'vc-tree';
|
|
23491
24230
|
const Tree = /* @__PURE__ */ defineComponent({
|
|
23492
|
-
name: COMPONENT_NAME$
|
|
24231
|
+
name: COMPONENT_NAME$5,
|
|
23493
24232
|
props: props$2,
|
|
23494
24233
|
emits: ['update:modelValue', 'change', 'check-change', 'current-change', 'node-click', 'node-contextmenu', 'node-collapse', 'node-expand', 'check', 'node-drag-start', 'node-drag-end', 'node-drop', 'node-drag-leave', 'node-drag-enter', 'node-drag-over'],
|
|
23495
24234
|
setup(props, {
|
|
@@ -23684,6 +24423,225 @@ const Tree = /* @__PURE__ */ defineComponent({
|
|
|
23684
24423
|
}
|
|
23685
24424
|
});
|
|
23686
24425
|
|
|
24426
|
+
/** @jsxImportSource vue */
|
|
24427
|
+
|
|
24428
|
+
const COMPONENT_NAME$4 = 'vc-tree-select-content';
|
|
24429
|
+
const TreeSelectContent = /* @__PURE__ */ defineComponent({
|
|
24430
|
+
name: COMPONENT_NAME$4,
|
|
24431
|
+
props: {
|
|
24432
|
+
value: {
|
|
24433
|
+
type: Array,
|
|
24434
|
+
required: true
|
|
24435
|
+
},
|
|
24436
|
+
data: {
|
|
24437
|
+
type: Array,
|
|
24438
|
+
default: () => []
|
|
24439
|
+
},
|
|
24440
|
+
checkStrictly: {
|
|
24441
|
+
type: Boolean,
|
|
24442
|
+
default: false
|
|
24443
|
+
},
|
|
24444
|
+
renderNodeLabel: Function
|
|
24445
|
+
},
|
|
24446
|
+
emits: ['change'],
|
|
24447
|
+
setup(props, {
|
|
24448
|
+
emit
|
|
24449
|
+
}) {
|
|
24450
|
+
return () => {
|
|
24451
|
+
return createVNode(Scroller, {
|
|
24452
|
+
"class": "vc-tree-select__options",
|
|
24453
|
+
"max-height": "200px"
|
|
24454
|
+
}, {
|
|
24455
|
+
default: () => [createVNode(Tree, {
|
|
24456
|
+
"model-value": props.value,
|
|
24457
|
+
"expanded-values": props.value,
|
|
24458
|
+
"data": props.data,
|
|
24459
|
+
"checkStrictly": props.checkStrictly,
|
|
24460
|
+
"allowDispatch": false,
|
|
24461
|
+
"showCheckbox": true,
|
|
24462
|
+
"renderNodeLabel": props.renderNodeLabel,
|
|
24463
|
+
"onChange": (_, data) => emit('change', _, data)
|
|
24464
|
+
}, null)]
|
|
24465
|
+
});
|
|
24466
|
+
};
|
|
24467
|
+
}
|
|
24468
|
+
});
|
|
24469
|
+
|
|
24470
|
+
/** @jsxImportSource vue */
|
|
24471
|
+
|
|
24472
|
+
const COMPONENT_NAME$3 = 'vc-tree-select-content-cascader';
|
|
24473
|
+
const TreeSelectContentCascader = /* @__PURE__ */ defineComponent({
|
|
24474
|
+
name: COMPONENT_NAME$3,
|
|
24475
|
+
props: {
|
|
24476
|
+
value: {
|
|
24477
|
+
type: Array,
|
|
24478
|
+
required: true
|
|
24479
|
+
},
|
|
24480
|
+
data: {
|
|
24481
|
+
type: Array,
|
|
24482
|
+
default: () => []
|
|
24483
|
+
},
|
|
24484
|
+
checkStrictly: {
|
|
24485
|
+
type: Boolean,
|
|
24486
|
+
default: false
|
|
24487
|
+
},
|
|
24488
|
+
renderNodeLabel: Function,
|
|
24489
|
+
numerable: {
|
|
24490
|
+
type: Boolean,
|
|
24491
|
+
default: false
|
|
24492
|
+
},
|
|
24493
|
+
separator: {
|
|
24494
|
+
type: String,
|
|
24495
|
+
default: ','
|
|
24496
|
+
},
|
|
24497
|
+
max: {
|
|
24498
|
+
type: Number,
|
|
24499
|
+
default: 1
|
|
24500
|
+
},
|
|
24501
|
+
nullValue: {
|
|
24502
|
+
type: [Number, String, Object],
|
|
24503
|
+
default: void 0
|
|
24504
|
+
}
|
|
24505
|
+
},
|
|
24506
|
+
emits: ['change'],
|
|
24507
|
+
setup(props, {
|
|
24508
|
+
emit
|
|
24509
|
+
}) {
|
|
24510
|
+
const treeRef = ref(null);
|
|
24511
|
+
/** hover 展开路径,与 Cascader 一致 */
|
|
24512
|
+
const currentValue = ref([]);
|
|
24513
|
+
const rebuildData = computed(() => {
|
|
24514
|
+
if (!props.data.length) return [];
|
|
24515
|
+
let temp = props.data;
|
|
24516
|
+
const data = [];
|
|
24517
|
+
currentValue.value.forEach(cur => {
|
|
24518
|
+
const col = temp;
|
|
24519
|
+
data.push(col);
|
|
24520
|
+
const next = (temp.find(i => i.value == cur) || {}).children || [];
|
|
24521
|
+
temp = next;
|
|
24522
|
+
});
|
|
24523
|
+
data.push(temp);
|
|
24524
|
+
return data;
|
|
24525
|
+
});
|
|
24526
|
+
/** 驱动列区在 TreeStore 更新后重绘 */
|
|
24527
|
+
const panelTick = ref(0);
|
|
24528
|
+
const columns = computed(() => Array.from({
|
|
24529
|
+
length: currentValue.value.length + 1
|
|
24530
|
+
}).map((_, index) => index));
|
|
24531
|
+
const handleHover = (value, columnIndex) => {
|
|
24532
|
+
const len = currentValue.value.length - columnIndex;
|
|
24533
|
+
currentValue.value.splice(columnIndex, len, value);
|
|
24534
|
+
};
|
|
24535
|
+
const sync = async () => {
|
|
24536
|
+
await nextTick();
|
|
24537
|
+
const tree = treeRef.value;
|
|
24538
|
+
if (!tree) return;
|
|
24539
|
+
const data = {
|
|
24540
|
+
checkedNodes: tree.getCheckedNodes(),
|
|
24541
|
+
checkedValues: tree.getCheckedValues(),
|
|
24542
|
+
halfCheckedNodes: tree.getHalfCheckedNodes(),
|
|
24543
|
+
halfCheckedValues: tree.getHalfCheckedValues()
|
|
24544
|
+
};
|
|
24545
|
+
panelTick.value++;
|
|
24546
|
+
emit('change', null, data);
|
|
24547
|
+
};
|
|
24548
|
+
const getNodeState = item => {
|
|
24549
|
+
const tree = treeRef.value;
|
|
24550
|
+
if (!tree) {
|
|
24551
|
+
return {
|
|
24552
|
+
checked: false,
|
|
24553
|
+
indeterminate: false
|
|
24554
|
+
};
|
|
24555
|
+
}
|
|
24556
|
+
const node = tree.getNode(item);
|
|
24557
|
+
if (!node) {
|
|
24558
|
+
return {
|
|
24559
|
+
checked: false,
|
|
24560
|
+
indeterminate: false
|
|
24561
|
+
};
|
|
24562
|
+
}
|
|
24563
|
+
return {
|
|
24564
|
+
checked: !!node.states.checked,
|
|
24565
|
+
indeterminate: !!node.states.indeterminate
|
|
24566
|
+
};
|
|
24567
|
+
};
|
|
24568
|
+
const hasChildren = item => {
|
|
24569
|
+
return !!(item.children && item.children.length > 0);
|
|
24570
|
+
};
|
|
24571
|
+
const handleCheckboxChange = async (v, item) => {
|
|
24572
|
+
const tree = treeRef.value;
|
|
24573
|
+
if (!tree) return;
|
|
24574
|
+
tree.setChecked(item, v, !props.checkStrictly);
|
|
24575
|
+
sync();
|
|
24576
|
+
};
|
|
24577
|
+
const handleLabelClick = (v, item) => {
|
|
24578
|
+
const tree = treeRef.value;
|
|
24579
|
+
if (!tree) return;
|
|
24580
|
+
tree.setChecked(item, v, !props.checkStrictly);
|
|
24581
|
+
sync();
|
|
24582
|
+
};
|
|
24583
|
+
return () => {
|
|
24584
|
+
return createVNode("div", {
|
|
24585
|
+
"class": "vc-tree-select__cascader"
|
|
24586
|
+
}, [createVNode(Tree, {
|
|
24587
|
+
"ref": treeRef,
|
|
24588
|
+
"class": "vc-tree-select__cascader-tree-hidden",
|
|
24589
|
+
"model-value": props.value,
|
|
24590
|
+
"expanded-values": props.value,
|
|
24591
|
+
"data": props.data,
|
|
24592
|
+
"checkStrictly": props.checkStrictly,
|
|
24593
|
+
"allowDispatch": false,
|
|
24594
|
+
"showCheckbox": true,
|
|
24595
|
+
"renderNodeLabel": props.renderNodeLabel,
|
|
24596
|
+
"numerable": props.numerable,
|
|
24597
|
+
"separator": props.separator,
|
|
24598
|
+
"max": props.max,
|
|
24599
|
+
"nullValue": props.nullValue
|
|
24600
|
+
}, null), createVNode("div", {
|
|
24601
|
+
"class": "vc-tree-select__cascader-columns"
|
|
24602
|
+
}, [columns.value.map(columnIndex => {
|
|
24603
|
+
const col = rebuildData.value[columnIndex];
|
|
24604
|
+
if (!col || !col.length) return null;
|
|
24605
|
+
return createVNode("div", {
|
|
24606
|
+
"class": "vc-tree-select__cascader-column",
|
|
24607
|
+
"key": columnIndex
|
|
24608
|
+
}, [createVNode("div", {
|
|
24609
|
+
"class": "vc-tree-select__cascader-column-wrapper"
|
|
24610
|
+
}, [col.map(item => {
|
|
24611
|
+
const state = getNodeState(item);
|
|
24612
|
+
const isSelect = currentValue.value[columnIndex] === item.value;
|
|
24613
|
+
const child = hasChildren(item);
|
|
24614
|
+
return createVNode("div", {
|
|
24615
|
+
"key": item.value,
|
|
24616
|
+
"class": ['vc-tree-select__cascader-item', {
|
|
24617
|
+
'is-select': isSelect
|
|
24618
|
+
}],
|
|
24619
|
+
"onMouseenter": () => handleHover(item.value, columnIndex),
|
|
24620
|
+
"onClick": () => handleLabelClick(!state.checked, item)
|
|
24621
|
+
}, [createVNode("span", {
|
|
24622
|
+
"class": "vc-tree-select__cascader-checkbox",
|
|
24623
|
+
"onClick": e => e.stopPropagation()
|
|
24624
|
+
}, [createVNode(Checkbox, {
|
|
24625
|
+
"modelValue": state.checked,
|
|
24626
|
+
"indeterminate": state.indeterminate,
|
|
24627
|
+
"disabled": !!item.disabled,
|
|
24628
|
+
"onChange": v => handleCheckboxChange(v, item)
|
|
24629
|
+
}, null)]), createVNode("span", {
|
|
24630
|
+
"class": "vc-tree-select__cascader-label"
|
|
24631
|
+
}, [props.renderNodeLabel && treeRef.value?.getNode?.(item) ? createVNode(Customer, {
|
|
24632
|
+
"render": props.renderNodeLabel,
|
|
24633
|
+
"store": treeRef.value.getNode(item),
|
|
24634
|
+
"row": item
|
|
24635
|
+
}, null) : createVNode("span", null, [item.label])]), child ? createVNode(Icon, {
|
|
24636
|
+
"type": "right",
|
|
24637
|
+
"class": "vc-tree-select__cascader-icon"
|
|
24638
|
+
}, null) : null]);
|
|
24639
|
+
})])]);
|
|
24640
|
+
})])]);
|
|
24641
|
+
};
|
|
24642
|
+
}
|
|
24643
|
+
});
|
|
24644
|
+
|
|
23687
24645
|
const treeKeys = [
|
|
23688
24646
|
"checkStrictly",
|
|
23689
24647
|
"data",
|
|
@@ -23692,7 +24650,18 @@ const treeKeys = [
|
|
|
23692
24650
|
];
|
|
23693
24651
|
const props$1 = {
|
|
23694
24652
|
...props$1a,
|
|
23695
|
-
...pick(props$2, treeKeys)
|
|
24653
|
+
...pick(props$2, treeKeys),
|
|
24654
|
+
autoWidth: {
|
|
24655
|
+
type: Boolean,
|
|
24656
|
+
default: void 0
|
|
24657
|
+
},
|
|
24658
|
+
/**
|
|
24659
|
+
* 级联列模式:与 Cascader 相同的 hover 展开下一级,勾选逻辑与树形模式一致
|
|
24660
|
+
*/
|
|
24661
|
+
cascader: {
|
|
24662
|
+
type: Boolean,
|
|
24663
|
+
default: false
|
|
24664
|
+
}
|
|
23696
24665
|
};
|
|
23697
24666
|
|
|
23698
24667
|
/** @jsxImportSource vue */
|
|
@@ -23718,12 +24687,37 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
|
|
|
23718
24687
|
const searchValue = ref('');
|
|
23719
24688
|
const searchRegex = ref(new RegExp(''));
|
|
23720
24689
|
const currentValue = ref([]);
|
|
24690
|
+
const currentValueGroups = computed(() => {
|
|
24691
|
+
if (props.checkStrictly) return;
|
|
24692
|
+
if (!props.data?.length || !Array.isArray(currentValue.value) || !currentValue.value.length) {
|
|
24693
|
+
return [];
|
|
24694
|
+
}
|
|
24695
|
+
const pathMap = new Map();
|
|
24696
|
+
const traverse = (data, path = []) => {
|
|
24697
|
+
data.forEach(item => {
|
|
24698
|
+
const v = item.value;
|
|
24699
|
+
if (v == null) return;
|
|
24700
|
+
const fullPath = [...path, v];
|
|
24701
|
+
pathMap.set(v, fullPath);
|
|
24702
|
+
if (item.children?.length) traverse(item.children, fullPath);
|
|
24703
|
+
});
|
|
24704
|
+
};
|
|
24705
|
+
traverse(props.data);
|
|
24706
|
+
const allPaths = currentValue.value.map(v => pathMap.get(v)).filter(Boolean);
|
|
24707
|
+
return allPaths.filter(path => !allPaths.some(other => other !== path && other.length > path.length && path.every((v, i) => v === other[i])));
|
|
24708
|
+
});
|
|
23721
24709
|
const source = computed(() => {
|
|
23722
24710
|
return flattenData$1(props.data, {
|
|
23723
24711
|
parent: true,
|
|
23724
24712
|
cascader: true
|
|
23725
24713
|
});
|
|
23726
24714
|
});
|
|
24715
|
+
const labelMap = computed(() => {
|
|
24716
|
+
return source.value.reduce((pre, cur) => {
|
|
24717
|
+
pre[cur.value] = cur.label || '';
|
|
24718
|
+
return pre;
|
|
24719
|
+
}, {});
|
|
24720
|
+
});
|
|
23727
24721
|
const icon = computed(() => {
|
|
23728
24722
|
return isActive.value ? 'up' : 'down';
|
|
23729
24723
|
});
|
|
@@ -23740,17 +24734,34 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
|
|
|
23740
24734
|
'is-disabled': props.disabled
|
|
23741
24735
|
};
|
|
23742
24736
|
});
|
|
23743
|
-
const
|
|
24737
|
+
const displayTags = computed(() => {
|
|
23744
24738
|
if (!props.data.length) {
|
|
23745
24739
|
return [];
|
|
23746
24740
|
}
|
|
23747
|
-
|
|
24741
|
+
if (props.checkStrictly) {
|
|
24742
|
+
return currentValue.value.map(v => ({
|
|
24743
|
+
value: v,
|
|
24744
|
+
label: labelMap.value[v] || ''
|
|
24745
|
+
}));
|
|
24746
|
+
}
|
|
24747
|
+
return (currentValueGroups.value || []).map(path => {
|
|
24748
|
+
const value = path[path.length - 1];
|
|
24749
|
+
const label = path.map(v => labelMap.value[v] || '').filter(Boolean).join(' / ');
|
|
24750
|
+
return {
|
|
24751
|
+
path,
|
|
24752
|
+
value,
|
|
24753
|
+
label
|
|
24754
|
+
};
|
|
24755
|
+
});
|
|
23748
24756
|
});
|
|
23749
24757
|
const collapseTagCount = computed(() => {
|
|
23750
24758
|
if (!props.maxTags) return 0;
|
|
23751
|
-
const v =
|
|
24759
|
+
const v = displayTags.value.length - props.maxTags;
|
|
23752
24760
|
return v < 0 ? 0 : v;
|
|
23753
24761
|
});
|
|
24762
|
+
const autoWidth = computed(() => {
|
|
24763
|
+
return typeof props.autoWidth === 'boolean' ? props.autoWidth : !!props.cascader;
|
|
24764
|
+
});
|
|
23754
24765
|
|
|
23755
24766
|
/**
|
|
23756
24767
|
* v-model 同步, 外部的数据改变时不会触发
|
|
@@ -23763,8 +24774,9 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
|
|
|
23763
24774
|
separator: props.separator,
|
|
23764
24775
|
nullValue: props.nullValue
|
|
23765
24776
|
});
|
|
23766
|
-
|
|
23767
|
-
emit('
|
|
24777
|
+
const labels = displayTags.value.map(item => item.label);
|
|
24778
|
+
emit('update:modelValue', v, labels);
|
|
24779
|
+
emit('change', v, labels);
|
|
23768
24780
|
|
|
23769
24781
|
// form表单
|
|
23770
24782
|
formItem?.change?.(currentValue.value);
|
|
@@ -23789,8 +24801,15 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
|
|
|
23789
24801
|
const close = () => {
|
|
23790
24802
|
isActive.value = false;
|
|
23791
24803
|
};
|
|
23792
|
-
const handleClose =
|
|
23793
|
-
|
|
24804
|
+
const handleClose = item => {
|
|
24805
|
+
if (props.checkStrictly) {
|
|
24806
|
+
const index = currentValue.value.findIndex(v => v === item.value);
|
|
24807
|
+
if (index === -1) return;
|
|
24808
|
+
currentValue.value = currentValue.value.filter((_, i) => i !== index);
|
|
24809
|
+
} else if (item.path) {
|
|
24810
|
+
const remaining = (currentValueGroups.value || []).filter(p => !(p.length === item.path.length && p.every((v, i) => v === item.path[i])));
|
|
24811
|
+
currentValue.value = [...new Set(remaining.flat())];
|
|
24812
|
+
}
|
|
23794
24813
|
sync();
|
|
23795
24814
|
};
|
|
23796
24815
|
const handleClear = e => {
|
|
@@ -23827,6 +24846,7 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
|
|
|
23827
24846
|
multiple,
|
|
23828
24847
|
isActive,
|
|
23829
24848
|
current: currentValue,
|
|
24849
|
+
currentValueGroups,
|
|
23830
24850
|
// for portal
|
|
23831
24851
|
toggle(v) {
|
|
23832
24852
|
v = typeof v === 'boolean' ? v : !isActive.value;
|
|
@@ -23841,7 +24861,7 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
|
|
|
23841
24861
|
"trigger": props.trigger,
|
|
23842
24862
|
"tag": props.tag,
|
|
23843
24863
|
"placement": props.placement,
|
|
23844
|
-
"
|
|
24864
|
+
"autoWidth": autoWidth.value,
|
|
23845
24865
|
"disabled": props.disabled,
|
|
23846
24866
|
"portalClass": [['is-padding-none', props.portalClass]],
|
|
23847
24867
|
"class": [classes.value, its.value.class, 'vc-tree-select'],
|
|
@@ -23858,22 +24878,22 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
|
|
|
23858
24878
|
return createVNode(Input, {
|
|
23859
24879
|
"id": props.id,
|
|
23860
24880
|
"disabled": props.disabled,
|
|
23861
|
-
"modelValue":
|
|
24881
|
+
"modelValue": displayTags.value[0]?.label || props.extra,
|
|
23862
24882
|
"allow-dispatch": false,
|
|
23863
24883
|
"class": "vc-tree-select__input",
|
|
23864
24884
|
"readonly": true,
|
|
23865
24885
|
"placeholder": its.value.attrs?.placeholder || '请选择'
|
|
23866
24886
|
}, {
|
|
23867
|
-
content: multiple.value &&
|
|
24887
|
+
content: multiple.value && displayTags.value.length > 0 ? () => {
|
|
23868
24888
|
return createVNode("div", {
|
|
23869
24889
|
"class": [classes.value, 'vc-tree-select__tags']
|
|
23870
|
-
}, [
|
|
24890
|
+
}, [displayTags.value.slice(0, props.maxTags).map(item => {
|
|
23871
24891
|
return createVNode(Tag, {
|
|
23872
|
-
"key": item,
|
|
24892
|
+
"key": item.path ? item.path.join('-') : item.value,
|
|
23873
24893
|
"closable": !props.disabled,
|
|
23874
|
-
"onClose": () => handleClose(
|
|
24894
|
+
"onClose": () => handleClose(item)
|
|
23875
24895
|
}, {
|
|
23876
|
-
default: () => [
|
|
24896
|
+
default: () => [item.label]
|
|
23877
24897
|
});
|
|
23878
24898
|
}), collapseTagCount.value ? createVNode(Tag, null, {
|
|
23879
24899
|
default: () => [`+${collapseTagCount.value}...`]
|
|
@@ -23906,16 +24926,23 @@ const TreeSelect = /* @__PURE__ */ defineComponent({
|
|
|
23906
24926
|
}, [createVNode(Spin, {
|
|
23907
24927
|
"size": 16
|
|
23908
24928
|
}, null)]), createVNode(Scroller, {
|
|
23909
|
-
"class":
|
|
24929
|
+
"class": ['vc-tree-select__options', props.cascader && 'is-cascader'],
|
|
23910
24930
|
"max-height": "200px"
|
|
23911
24931
|
}, {
|
|
23912
|
-
default: () => [createVNode(
|
|
23913
|
-
"
|
|
23914
|
-
"
|
|
24932
|
+
default: () => [props.cascader ? createVNode(TreeSelectContentCascader, {
|
|
24933
|
+
"value": currentValue.value,
|
|
24934
|
+
"data": props.data,
|
|
24935
|
+
"checkStrictly": props.checkStrictly,
|
|
24936
|
+
"renderNodeLabel": props.renderNodeLabel,
|
|
24937
|
+
"numerable": props.numerable,
|
|
24938
|
+
"separator": props.separator,
|
|
24939
|
+
"max": props.max,
|
|
24940
|
+
"nullValue": props.nullValue,
|
|
24941
|
+
"onChange": handleChange
|
|
24942
|
+
}, null) : createVNode(TreeSelectContent, {
|
|
24943
|
+
"value": currentValue.value,
|
|
23915
24944
|
"data": props.data,
|
|
23916
24945
|
"checkStrictly": props.checkStrictly,
|
|
23917
|
-
"allowDispatch": false,
|
|
23918
|
-
"showCheckbox": true,
|
|
23919
24946
|
"renderNodeLabel": props.renderNodeLabel,
|
|
23920
24947
|
"onChange": handleChange
|
|
23921
24948
|
}, null)]
|
|
@@ -24482,4 +25509,4 @@ const UploadPicker = /* @__PURE__ */ defineComponent({
|
|
|
24482
25509
|
|
|
24483
25510
|
const MUploadPicker = UploadPicker;
|
|
24484
25511
|
|
|
24485
|
-
export { ActionSheet, Affix, Alert, Artboard, Button, ButtonGroup, Calendar, Card, Carousel, Cascader, Chart, Checkbox, CheckboxGroup, Clipboard, Collapse, CollapseItem, ColorPicker, Countdown, Counter, Customer, DatePicker, Debounce, Divider, Drawer, DrawerView, Dropdown, DropdownItem, DropdownMenu, Editor, EditorView, Expand$1 as Expand, Form, FormItem, Fragment, Icon, IconManager, Image$1 as Image, ImageCrop, ImagePreview, ImageProcessing, Input, InputNumber, InputSearch, MList as List, MListItem as ListItem, MActionSheet, MAffix, MAlert, MArtboard, MButton, MButtonGroup, MCalendar, MCard, MCarousel, MCascader, MChart, MCheckbox, MCheckboxGroup, MClipboard, MCollapse, MCollapseItem, MColorPicker, MCountdown, MCounter, MCustomer, MDatePicker, Debounce as MDebounce, MDivider, MDrawer, MDrawerView, MDropdown, MDropdownItem, MDropdownMenu, MEditor, MEditorView, MExpand, MForm, MFormItem, MFragment, MIcon, MImage, MImageCrop, MImagePreview, MImageProcessing, MInput, MInputNumber, MInputSearch, MList, MListItem, MMarquee, MMessage, modal as MModal, MModalView, MNotice, MOption, MPagination, MPicker, MPopconfirm, MPopover, MPopup, MPortal, MPrint, MProgress, MRadio, MRadioButton, MRadioGroup, MRate, MRecycleList, MResizer, MScroller, MSelect, MSlider, MSnapshot, MSortList, MSpin, MSteps, MSwitch, MTable, MTableColumn, MTabs, MTabsPane, MTag, MText, MTextarea, MTimePicker, MTimeline, MToast, MToastView, MTouch, MTransition, MTransitionCollapse, MTransitionFade, MTransitionScale, MTransitionSlide, MTransitionZoom, MTree, MTreeSelect, MUpload, MUploadPicker, Marquee, Message, MessageView, Modal, ModalView, Notice, NoticeView, Option$1 as Option, Pagination, Picker, Popconfirm, Popover, Popup, Portal, PortalView, Print, Progress, Radio, RadioButton, RadioGroup, Rate, RecycleList, Resizer, Scroller, ScrollerWheel, Select, Slider, Snapshot, SortList, Spin, Steps, Switch, Table, TableColumn, Tabs, TabsPane, Tag, Text, Textarea, Theme, ThemeImage, ThemeText, ThemeView, TimePicker, Timeline, Toast, ToastView, Touch, Transition, TransitionCollapse, TransitionFade, TransitionScale, TransitionSlide, TransitionZoom, Tree, TreeSelect, Upload, UploadPicker, VcError, VcInstance };
|
|
25512
|
+
export { ActionSheet, Affix, Alert, Artboard, Button, ButtonGroup, Calendar, Card, Carousel, CarouselItem, Cascader, Chart, Checkbox, CheckboxGroup, Clipboard, Collapse, CollapseItem, ColorPicker, Countdown, Counter, Customer, DatePicker, Debounce, Divider, Drawer, DrawerView, Dropdown, DropdownItem, DropdownMenu, Editor, EditorView, Expand$1 as Expand, Form, FormItem, Fragment, Icon, IconManager, Image$1 as Image, ImageCrop, ImagePreview, ImageProcessing, Input, InputNumber, InputSearch, MList as List, MListItem as ListItem, MActionSheet, MAffix, MAlert, MArtboard, MButton, MButtonGroup, MCalendar, MCard, MCarousel, MCarouselItem, MCascader, MChart, MCheckbox, MCheckboxGroup, MClipboard, MCollapse, MCollapseItem, MColorPicker, MCountdown, MCounter, MCustomer, MDatePicker, Debounce as MDebounce, MDivider, MDrawer, MDrawerView, MDropdown, MDropdownItem, MDropdownMenu, MEditor, MEditorView, MExpand, MForm, MFormItem, MFragment, MIcon, MImage, MImageCrop, MImagePreview, MImageProcessing, MInput, MInputNumber, MInputSearch, MList, MListItem, MMarquee, MMessage, modal as MModal, MModalView, MNotice, MOption, MPagination, MPicker, MPopconfirm, MPopover, MPopup, MPortal, MPrint, MProgress, MRadio, MRadioButton, MRadioGroup, MRate, MRecycleList, MResizer, MScroller, MSelect, MSlider, MSnapshot, MSortList, MSpin, MSteps, MSwitch, MTable, MTableColumn, MTabs, MTabsPane, MTag, MText, MTextarea, MTimePicker, MTimeline, MToast, MToastView, MTouch, MTransition, MTransitionCollapse, MTransitionFade, MTransitionScale, MTransitionSlide, MTransitionZoom, MTree, MTreeSelect, MUpload, MUploadPicker, Marquee, Message, MessageView, Modal, ModalView, Notice, NoticeView, Option$1 as Option, Pagination, Picker, Popconfirm, Popover, Popup, Portal, PortalView, Print, Progress, Radio, RadioButton, RadioGroup, Rate, RecycleList, Resizer, Scroller, ScrollerWheel, Select, Slider, Snapshot, SortList, Spin, Steps, Switch, Table, TableColumn, Tabs, TabsPane, Tag, Text, Textarea, Theme, ThemeImage, ThemeText, ThemeView, TimePicker, Timeline, Toast, ToastView, Touch, Transition, TransitionCollapse, TransitionFade, TransitionScale, TransitionSlide, TransitionZoom, Tree, TreeSelect, Upload, UploadPicker, VcError, VcInstance };
|