@deot/vc-components 1.0.59 → 1.0.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -99,9 +99,9 @@ const props$1u = {
99
99
 
100
100
  /** @jsxImportSource vue */
101
101
 
102
- const COMPONENT_NAME$2a = 'vc-action-sheet';
102
+ const COMPONENT_NAME$2b = 'vc-action-sheet';
103
103
  const ActionSheet = /* @__PURE__ */ defineComponent({
104
- name: COMPONENT_NAME$2a,
104
+ name: COMPONENT_NAME$2b,
105
105
  props: props$1u,
106
106
  setup(props, {
107
107
  slots
@@ -178,9 +178,9 @@ const isWheel = (el) => {
178
178
 
179
179
  /** @jsxImportSource vue */
180
180
 
181
- const COMPONENT_NAME$29 = 'vc-affix';
181
+ const COMPONENT_NAME$2a = 'vc-affix';
182
182
  const Affix = /* @__PURE__ */ defineComponent({
183
- name: COMPONENT_NAME$29,
183
+ name: COMPONENT_NAME$2a,
184
184
  emits: ['update:modelValue'],
185
185
  props: props$1t,
186
186
  setup(props, {
@@ -512,9 +512,9 @@ const IconManager = new Manager();
512
512
 
513
513
  /** @jsxImportSource vue */
514
514
 
515
- const COMPONENT_NAME$28 = 'vc-icon';
515
+ const COMPONENT_NAME$29 = 'vc-icon';
516
516
  const Icon = /* @__PURE__ */ defineComponent({
517
- name: COMPONENT_NAME$28,
517
+ name: COMPONENT_NAME$29,
518
518
  props: props$1r,
519
519
  setup(props) {
520
520
  const viewBox = ref('0 0 1024 1024');
@@ -713,9 +713,9 @@ const useTransition = () => {
713
713
  };
714
714
  };
715
715
 
716
- const COMPONENT_NAME$27 = "vc-transition";
716
+ const COMPONENT_NAME$28 = "vc-transition";
717
717
  const Transition = defineComponent({
718
- name: COMPONENT_NAME$27,
718
+ name: COMPONENT_NAME$28,
719
719
  props: props$1q,
720
720
  // 当不声明emits的情况下,事件存在于attrs中
721
721
  inheritAttrs: false,
@@ -736,9 +736,9 @@ const Transition = defineComponent({
736
736
  }
737
737
  });
738
738
 
739
- const COMPONENT_NAME$26 = "vc-transition-collapse";
739
+ const COMPONENT_NAME$27 = "vc-transition-collapse";
740
740
  const TransitionCollapse = defineComponent({
741
- name: COMPONENT_NAME$26,
741
+ name: COMPONENT_NAME$27,
742
742
  props: props$1q,
743
743
  // 当不声明emits的情况下,事件存在于attrs中
744
744
  inheritAttrs: false,
@@ -853,9 +853,9 @@ const TransitionCollapse = defineComponent({
853
853
  }
854
854
  });
855
855
 
856
- const COMPONENT_NAME$25 = "vc-transition-fade";
856
+ const COMPONENT_NAME$26 = "vc-transition-fade";
857
857
  const TransitionFade = defineComponent({
858
- name: COMPONENT_NAME$25,
858
+ name: COMPONENT_NAME$26,
859
859
  props: {
860
860
  ...props$1q,
861
861
  // inheritAttrs必须是false
@@ -890,9 +890,9 @@ const TransitionFade = defineComponent({
890
890
  }
891
891
  });
892
892
 
893
- const COMPONENT_NAME$24 = "vc-transition-scale";
893
+ const COMPONENT_NAME$25 = "vc-transition-scale";
894
894
  const TransitionScale = defineComponent({
895
- name: COMPONENT_NAME$24,
895
+ name: COMPONENT_NAME$25,
896
896
  props: {
897
897
  ...props$1q,
898
898
  mode: {
@@ -932,9 +932,9 @@ const TransitionScale = defineComponent({
932
932
  }
933
933
  });
934
934
 
935
- const COMPONENT_NAME$23 = "vc-transition-slide";
935
+ const COMPONENT_NAME$24 = "vc-transition-slide";
936
936
  const TransitionSlide = defineComponent({
937
- name: COMPONENT_NAME$23,
937
+ name: COMPONENT_NAME$24,
938
938
  props: {
939
939
  ...props$1q,
940
940
  mode: {
@@ -974,9 +974,9 @@ const TransitionSlide = defineComponent({
974
974
  }
975
975
  });
976
976
 
977
- const COMPONENT_NAME$22 = "vc-transition-zoom";
977
+ const COMPONENT_NAME$23 = "vc-transition-zoom";
978
978
  const TransitionZoom = defineComponent({
979
- name: COMPONENT_NAME$22,
979
+ name: COMPONENT_NAME$23,
980
980
  props: {
981
981
  ...props$1q,
982
982
  mode: {
@@ -1018,7 +1018,7 @@ const TransitionZoom = defineComponent({
1018
1018
 
1019
1019
  /** @jsxImportSource vue */
1020
1020
 
1021
- const COMPONENT_NAME$21 = 'vc-alert';
1021
+ const COMPONENT_NAME$22 = 'vc-alert';
1022
1022
 
1023
1023
  // [color, borderColor, backgroundColor], -> CSS
1024
1024
  const THEME_MAP = {
@@ -1028,7 +1028,7 @@ const THEME_MAP = {
1028
1028
  warning: ['#ffbf00', '#ffe58f', '#fffbe6']
1029
1029
  };
1030
1030
  const Alert = /* @__PURE__ */ defineComponent({
1031
- name: COMPONENT_NAME$21,
1031
+ name: COMPONENT_NAME$22,
1032
1032
  props: props$1s,
1033
1033
  setup(props, {
1034
1034
  slots,
@@ -1134,9 +1134,9 @@ const props$1p = {
1134
1134
  /** @jsxImportSource vue */
1135
1135
 
1136
1136
  const isTouch = typeof document !== 'undefined' && 'ontouchend' in document;
1137
- const COMPONENT_NAME$20 = 'vc-artboard';
1137
+ const COMPONENT_NAME$21 = 'vc-artboard';
1138
1138
  const Artboard = /* @__PURE__ */ defineComponent({
1139
- name: COMPONENT_NAME$20,
1139
+ name: COMPONENT_NAME$21,
1140
1140
  props: props$1p,
1141
1141
  setup(props, {
1142
1142
  emit,
@@ -1364,9 +1364,9 @@ const props$1o = {
1364
1364
 
1365
1365
  /** @jsxImportSource vue */
1366
1366
 
1367
- const COMPONENT_NAME$1$ = 'vc-spin';
1367
+ const COMPONENT_NAME$20 = 'vc-spin';
1368
1368
  const Spin = /* @__PURE__ */ defineComponent({
1369
- name: COMPONENT_NAME$1$,
1369
+ name: COMPONENT_NAME$20,
1370
1370
  props: props$1o,
1371
1371
  setup(props, {
1372
1372
  slots
@@ -1417,9 +1417,9 @@ const props$1n = {
1417
1417
  exclude: RegExp
1418
1418
  };
1419
1419
 
1420
- const COMPONENT_NAME$1_ = "vc-debounce";
1420
+ const COMPONENT_NAME$1$ = "vc-debounce";
1421
1421
  const Debounce = defineComponent({
1422
- name: COMPONENT_NAME$1_,
1422
+ name: COMPONENT_NAME$1$,
1423
1423
  props: props$1n,
1424
1424
  /**
1425
1425
  * 不声明emits使得事件被透传放入attrs中, 这样可以让所有的事件透传
@@ -1492,9 +1492,9 @@ const props$1m = {
1492
1492
 
1493
1493
  /** @jsxImportSource vue */
1494
1494
 
1495
- const COMPONENT_NAME$1Z = 'vc-button';
1495
+ const COMPONENT_NAME$1_ = 'vc-button';
1496
1496
  const Button = /* @__PURE__ */ defineComponent({
1497
- name: COMPONENT_NAME$1Z,
1497
+ name: COMPONENT_NAME$1_,
1498
1498
  emits: ['click'],
1499
1499
  props: props$1m,
1500
1500
  setup(props, {
@@ -1578,9 +1578,9 @@ const props$1l = {
1578
1578
 
1579
1579
  /** @jsxImportSource vue */
1580
1580
 
1581
- const COMPONENT_NAME$1Y = 'vc-button-group';
1581
+ const COMPONENT_NAME$1Z = 'vc-button-group';
1582
1582
  const ButtonGroup = /* @__PURE__ */ defineComponent({
1583
- name: COMPONENT_NAME$1Y,
1583
+ name: COMPONENT_NAME$1Z,
1584
1584
  props: props$1l,
1585
1585
  setup(props, {
1586
1586
  slots
@@ -1614,9 +1614,9 @@ const props$1k = {
1614
1614
 
1615
1615
  /** @jsxImportSource vue */
1616
1616
 
1617
- const COMPONENT_NAME$1X = 'vc-calendar';
1617
+ const COMPONENT_NAME$1Y = 'vc-calendar';
1618
1618
  const Calendar = /* @__PURE__ */ defineComponent({
1619
- name: COMPONENT_NAME$1X,
1619
+ name: COMPONENT_NAME$1Y,
1620
1620
  props: props$1k,
1621
1621
  setup(props, {
1622
1622
  slots
@@ -1654,9 +1654,9 @@ const props$1j = {
1654
1654
 
1655
1655
  /** @jsxImportSource vue */
1656
1656
 
1657
- const COMPONENT_NAME$1W = 'vc-card';
1657
+ const COMPONENT_NAME$1X = 'vc-card';
1658
1658
  const Card = /* @__PURE__ */ defineComponent({
1659
- name: COMPONENT_NAME$1W,
1659
+ name: COMPONENT_NAME$1X,
1660
1660
  props: props$1j,
1661
1661
  setup(props, {
1662
1662
  slots
@@ -1692,9 +1692,9 @@ const props$1i = {
1692
1692
 
1693
1693
  /** @jsxImportSource vue */
1694
1694
 
1695
- const COMPONENT_NAME$1V = 'vc-carousel';
1695
+ const COMPONENT_NAME$1W = 'vc-carousel';
1696
1696
  const Carousel = /* @__PURE__ */ defineComponent({
1697
- name: COMPONENT_NAME$1V,
1697
+ name: COMPONENT_NAME$1W,
1698
1698
  props: props$1i,
1699
1699
  setup(props, {
1700
1700
  slots
@@ -1988,9 +1988,9 @@ const useNativeEmitter = (input, expose) => {
1988
1988
 
1989
1989
  /** @jsxImportSource vue */
1990
1990
 
1991
- const COMPONENT_NAME$1U = 'vc-input';
1991
+ const COMPONENT_NAME$1V = 'vc-input';
1992
1992
  const Input = /* @__PURE__ */ defineComponent({
1993
- name: COMPONENT_NAME$1U,
1993
+ name: COMPONENT_NAME$1V,
1994
1994
  inheritAttrs: false,
1995
1995
  props: {
1996
1996
  ...props$1h,
@@ -2325,9 +2325,9 @@ const useInputNumber = () => {
2325
2325
 
2326
2326
  /** @jsxImportSource vue */
2327
2327
 
2328
- const COMPONENT_NAME$1T = 'vc-input-number';
2328
+ const COMPONENT_NAME$1U = 'vc-input-number';
2329
2329
  const InputNumber = /* @__PURE__ */ defineComponent({
2330
- name: COMPONENT_NAME$1T,
2330
+ name: COMPONENT_NAME$1U,
2331
2331
  props: props$1g,
2332
2332
  inheritAttrs: false,
2333
2333
  setup(props, {
@@ -2391,9 +2391,9 @@ const props$1f = {
2391
2391
 
2392
2392
  /** @jsxImportSource vue */
2393
2393
 
2394
- const COMPONENT_NAME$1S = 'vc-input-search';
2394
+ const COMPONENT_NAME$1T = 'vc-input-search';
2395
2395
  const InputSearch = /* @__PURE__ */ defineComponent({
2396
- name: COMPONENT_NAME$1S,
2396
+ name: COMPONENT_NAME$1T,
2397
2397
  props: props$1f,
2398
2398
  inheritAttrs: false,
2399
2399
  setup(props, {
@@ -2786,9 +2786,9 @@ const props$1c = {
2786
2786
  }
2787
2787
  };
2788
2788
 
2789
- const COMPONENT_NAME$1R = "vc-customer";
2789
+ const COMPONENT_NAME$1S = "vc-customer";
2790
2790
  const Customer = defineComponent({
2791
- name: COMPONENT_NAME$1R,
2791
+ name: COMPONENT_NAME$1S,
2792
2792
  props: props$1c,
2793
2793
  setup(props, context) {
2794
2794
  return () => h(() => {
@@ -2864,7 +2864,7 @@ class PortalLeaf {
2864
2864
  }
2865
2865
  }
2866
2866
 
2867
- const COMPONENT_NAME$1Q = "vc-portal";
2867
+ const COMPONENT_NAME$1R = "vc-portal";
2868
2868
  class Portal {
2869
2869
  /**
2870
2870
  * 清理Portals类型组件
@@ -2914,7 +2914,7 @@ class Portal {
2914
2914
  this.wrapper = wrapper;
2915
2915
  this.globalOptions = {
2916
2916
  ...options,
2917
- name: options?.name || wrapper.name || Utils.getUid(COMPONENT_NAME$1Q)
2917
+ name: options?.name || wrapper.name || Utils.getUid(COMPONENT_NAME$1R)
2918
2918
  };
2919
2919
  }
2920
2920
  popup(propsData, options) {
@@ -3012,7 +3012,7 @@ class Portal {
3012
3012
  ...rest
3013
3013
  } = options;
3014
3014
  let useAllNodes = fragment;
3015
- const name = multiple ? `${name$}__${Utils.getUid(COMPONENT_NAME$1Q)}` : name$;
3015
+ const name = multiple ? `${name$}__${Utils.getUid(COMPONENT_NAME$1R)}` : name$;
3016
3016
  const container = document.createElement(tag);
3017
3017
  const root = typeof el === "object" ? el : document.querySelector(el || "body");
3018
3018
  !alive && Portal.leafs.get(name)?.destroy();
@@ -3046,7 +3046,7 @@ class Portal {
3046
3046
  } else {
3047
3047
  const wrapper = this.wrapper;
3048
3048
  const app = createApp({
3049
- name: COMPONENT_NAME$1Q,
3049
+ name: COMPONENT_NAME$1R,
3050
3050
  parent,
3051
3051
  setup() {
3052
3052
  if (alive) {
@@ -3157,13 +3157,13 @@ const props$1b = {
3157
3157
  }
3158
3158
  };
3159
3159
 
3160
- const COMPONENT_NAME$1P = 'vc-portal-view';
3160
+ const COMPONENT_NAME$1Q = 'vc-portal-view';
3161
3161
 
3162
3162
  /**
3163
3163
  * 写法不同,但与vue@2.x 保持一致
3164
3164
  */
3165
3165
  const PortalView = /* @__PURE__ */ defineComponent({
3166
- name: COMPONENT_NAME$1P,
3166
+ name: COMPONENT_NAME$1Q,
3167
3167
  props: props$1b,
3168
3168
  setup(props, {
3169
3169
  slots
@@ -3183,9 +3183,9 @@ const PortalView = /* @__PURE__ */ defineComponent({
3183
3183
 
3184
3184
  /** @jsxImportSource vue */
3185
3185
 
3186
- const COMPONENT_NAME$1O = 'vc-popover-wrapper';
3186
+ const COMPONENT_NAME$1P = 'vc-popover-wrapper';
3187
3187
  const PopoverWrapper = /* @__PURE__ */ defineComponent({
3188
- name: COMPONENT_NAME$1O,
3188
+ name: COMPONENT_NAME$1P,
3189
3189
  props: props$1e,
3190
3190
  emits: ['portal-fulfilled', 'close'],
3191
3191
  setup(props, {
@@ -3362,7 +3362,7 @@ const PopoverWrapper = /* @__PURE__ */ defineComponent({
3362
3362
  * 同时close兼容portal设计
3363
3363
  */
3364
3364
  const handleRemove = () => {
3365
- !instance.isUnmounted && (emit('portal-fulfilled'), emit('close'));
3365
+ !instance.isUnmounted && (emit('close'), emit('portal-fulfilled'));
3366
3366
  };
3367
3367
 
3368
3368
  /**
@@ -3443,9 +3443,9 @@ const PopoverPortal = new Portal(PopoverWrapper, {
3443
3443
 
3444
3444
  /** @jsxImportSource vue */
3445
3445
 
3446
- const COMPONENT_NAME$1N = 'vc-popover';
3446
+ const COMPONENT_NAME$1O = 'vc-popover';
3447
3447
  const Popover$1 = /* @__PURE__ */ defineComponent({
3448
- name: COMPONENT_NAME$1N,
3448
+ name: COMPONENT_NAME$1O,
3449
3449
  props: props$1d,
3450
3450
  emits: ['update:modelValue', 'visible-change', 'ready', 'close'],
3451
3451
  setup(props, {
@@ -3589,9 +3589,9 @@ const Popover = Object.assign(Popover$1, {
3589
3589
 
3590
3590
  /** @jsxImportSource vue */
3591
3591
 
3592
- const COMPONENT_NAME$1M = 'vc-cascader-column';
3592
+ const COMPONENT_NAME$1N = 'vc-cascader-column';
3593
3593
  const CascaderColumn = /* @__PURE__ */ defineComponent({
3594
- name: COMPONENT_NAME$1M,
3594
+ name: COMPONENT_NAME$1N,
3595
3595
  emits: ['click', 'change'],
3596
3596
  props: {
3597
3597
  data: {
@@ -3799,9 +3799,9 @@ const props$19 = {
3799
3799
 
3800
3800
  /** @jsxImportSource vue */
3801
3801
 
3802
- const COMPONENT_NAME$1L = 'vc-cascader';
3802
+ const COMPONENT_NAME$1M = 'vc-cascader';
3803
3803
  const Cascader = /* @__PURE__ */ defineComponent({
3804
- name: COMPONENT_NAME$1L,
3804
+ name: COMPONENT_NAME$1M,
3805
3805
  inheritAttrs: false,
3806
3806
  props: props$19,
3807
3807
  emits: ['update:modelValue', 'visible-change', 'ready', 'change', 'close'],
@@ -4002,7 +4002,7 @@ const Cascader = /* @__PURE__ */ defineComponent({
4002
4002
  separator: props.separator
4003
4003
  });
4004
4004
  if (!isEqualWith(currentValue.value, v)) {
4005
- currentValue.value = v;
4005
+ currentValue.value = [...v];
4006
4006
  }
4007
4007
  emit('close');
4008
4008
  };
@@ -4019,9 +4019,8 @@ const Cascader = /* @__PURE__ */ defineComponent({
4019
4019
  numerable: props.numerable,
4020
4020
  separator: props.separator
4021
4021
  });
4022
- if (!isEqualWith(currentValue.value, v)) {
4023
- currentValue.value = v;
4024
- }
4022
+ // 不使用currentValue.value = v; 避免同步修改源数据,这里有取消操作
4023
+ currentValue.value = v && v.length > 0 ? [...v] : [];
4025
4024
  }, {
4026
4025
  immediate: true
4027
4026
  });
@@ -4154,9 +4153,9 @@ const props$18 = {
4154
4153
 
4155
4154
  /** @jsxImportSource vue */
4156
4155
 
4157
- const COMPONENT_NAME$1K = 'vc-chart';
4156
+ const COMPONENT_NAME$1L = 'vc-chart';
4158
4157
  const Chart = /* @__PURE__ */ defineComponent({
4159
- name: COMPONENT_NAME$1K,
4158
+ name: COMPONENT_NAME$1L,
4160
4159
  props: props$18,
4161
4160
  emits: [...EVENTS, 'ready'],
4162
4161
  setup(props, {
@@ -4395,9 +4394,9 @@ const useCheckbox = () => {
4395
4394
 
4396
4395
  /** @jsxImportSource vue */
4397
4396
 
4398
- const COMPONENT_NAME$1J = 'vc-checkbox';
4397
+ const COMPONENT_NAME$1K = 'vc-checkbox';
4399
4398
  const Checkbox = /* @__PURE__ */ defineComponent({
4400
- name: COMPONENT_NAME$1J,
4399
+ name: COMPONENT_NAME$1K,
4401
4400
  props: props$17,
4402
4401
  emits: ['update:modelValue', 'change'],
4403
4402
  setup(props, {
@@ -4484,9 +4483,9 @@ const useCheckboxGroup = () => {
4484
4483
 
4485
4484
  /** @jsxImportSource vue */
4486
4485
 
4487
- const COMPONENT_NAME$1I = 'vc-checkbox-group';
4486
+ const COMPONENT_NAME$1J = 'vc-checkbox-group';
4488
4487
  const CheckboxGroup = /* @__PURE__ */ defineComponent({
4489
- name: COMPONENT_NAME$1I,
4488
+ name: COMPONENT_NAME$1J,
4490
4489
  props: props$16,
4491
4490
  emits: ['update:modelValue', 'change'],
4492
4491
  setup(props, {
@@ -4504,9 +4503,9 @@ const CheckboxGroup = /* @__PURE__ */ defineComponent({
4504
4503
 
4505
4504
  /** @jsxImportSource vue */
4506
4505
 
4507
- const COMPONENT_NAME$1H = 'vcm-checkbox';
4506
+ const COMPONENT_NAME$1I = 'vcm-checkbox';
4508
4507
  const MCheckbox = /* @__PURE__ */ defineComponent({
4509
- name: COMPONENT_NAME$1H,
4508
+ name: COMPONENT_NAME$1I,
4510
4509
  props: props$17,
4511
4510
  emits: ['update:modelValue', 'change'],
4512
4511
  setup(props, {
@@ -4546,9 +4545,9 @@ const MCheckbox = /* @__PURE__ */ defineComponent({
4546
4545
 
4547
4546
  /** @jsxImportSource vue */
4548
4547
 
4549
- const COMPONENT_NAME$1G = 'vcm-checkbox-group';
4548
+ const COMPONENT_NAME$1H = 'vcm-checkbox-group';
4550
4549
  const MCheckboxGroup = /* @__PURE__ */ defineComponent({
4551
- name: COMPONENT_NAME$1G,
4550
+ name: COMPONENT_NAME$1H,
4552
4551
  props: props$16,
4553
4552
  emits: ['update:modelValue', 'change'],
4554
4553
  setup(props, {
@@ -4602,9 +4601,9 @@ const props$15 = {
4602
4601
 
4603
4602
  /** @jsxImportSource vue */
4604
4603
 
4605
- const COMPONENT_NAME$1F = 'vc-message';
4604
+ const COMPONENT_NAME$1G = 'vc-message';
4606
4605
  const MessageView = /* @__PURE__ */ defineComponent({
4607
- name: COMPONENT_NAME$1F,
4606
+ name: COMPONENT_NAME$1G,
4608
4607
  emits: ['before-close', 'close', 'portal-fulfilled'],
4609
4608
  props: props$15,
4610
4609
  setup(props, {
@@ -4853,9 +4852,9 @@ const useClipboard = (done) => {
4853
4852
  return () => h(props.tag, { onClick: handleClick, class: "vc-clipboard" }, slots?.default?.());
4854
4853
  };
4855
4854
 
4856
- const COMPONENT_NAME$1E = "vc-clipboard";
4855
+ const COMPONENT_NAME$1F = "vc-clipboard";
4857
4856
  const Clipboard$1 = defineComponent({
4858
- name: COMPONENT_NAME$1E,
4857
+ name: COMPONENT_NAME$1F,
4859
4858
  props: props$14,
4860
4859
  setup() {
4861
4860
  return useClipboard((content) => Message.success({ content }));
@@ -4895,9 +4894,9 @@ const MTransitionZoom = TransitionZoom;
4895
4894
 
4896
4895
  /** @jsxImportSource vue */
4897
4896
 
4898
- const COMPONENT_NAME$1D = 'vcm-toast';
4897
+ const COMPONENT_NAME$1E = 'vcm-toast';
4899
4898
  const MToastView = /* @__PURE__ */ defineComponent({
4900
- name: COMPONENT_NAME$1D,
4899
+ name: COMPONENT_NAME$1E,
4901
4900
  emits: ['close', 'portal-fulfilled'],
4902
4901
  props: props$13,
4903
4902
  setup(props, {
@@ -4999,9 +4998,9 @@ const warning$2 = create$3({ mode: "warning" });
4999
4998
  const error$2 = create$3({ mode: "error" });
5000
4999
  const MToast = Object.assign(MToastView, { destroy: destroy$4, info: info$2, success: success$2, loading, warning: warning$2, error: error$2 });
5001
5000
 
5002
- const COMPONENT_NAME$1C = "vcm-clipboard";
5001
+ const COMPONENT_NAME$1D = "vcm-clipboard";
5003
5002
  const MClipboard$1 = defineComponent({
5004
- name: COMPONENT_NAME$1C,
5003
+ name: COMPONENT_NAME$1D,
5005
5004
  props: props$14,
5006
5005
  setup() {
5007
5006
  return useClipboard((content) => MToast.info({ content }));
@@ -5033,9 +5032,9 @@ const props$12 = {
5033
5032
  }
5034
5033
  };
5035
5034
 
5036
- const COMPONENT_NAME$1B = "vc-collapse";
5035
+ const COMPONENT_NAME$1C = "vc-collapse";
5037
5036
  const Collapse = defineComponent({
5038
- name: COMPONENT_NAME$1B,
5037
+ name: COMPONENT_NAME$1C,
5039
5038
  props: props$12,
5040
5039
  emits: ["update:moodelValue", "change"],
5041
5040
  setup(props, { slots, emit }) {
@@ -5152,9 +5151,9 @@ const props$10 = {
5152
5151
  function _isSlot$3(s) {
5153
5152
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
5154
5153
  }
5155
- const COMPONENT_NAME$1A = 'vc-expand';
5154
+ const COMPONENT_NAME$1B = 'vc-expand';
5156
5155
  const Expand$1 = /* @__PURE__ */ defineComponent({
5157
- name: COMPONENT_NAME$1A,
5156
+ name: COMPONENT_NAME$1B,
5158
5157
  props: props$10,
5159
5158
  setup(props, {
5160
5159
  slots
@@ -5184,9 +5183,9 @@ const Expand$1 = /* @__PURE__ */ defineComponent({
5184
5183
 
5185
5184
  /** @jsxImportSource vue */
5186
5185
 
5187
- const COMPONENT_NAME$1z = 'vc-collapse-item';
5186
+ const COMPONENT_NAME$1A = 'vc-collapse-item';
5188
5187
  const CollapseItem = /* @__PURE__ */ defineComponent({
5189
- name: COMPONENT_NAME$1z,
5188
+ name: COMPONENT_NAME$1A,
5190
5189
  props: props$11,
5191
5190
  setup(props, {
5192
5191
  slots,
@@ -5261,9 +5260,9 @@ const props$$ = {
5261
5260
 
5262
5261
  /** @jsxImportSource vue */
5263
5262
 
5264
- const COMPONENT_NAME$1y = 'vc-color-picker';
5263
+ const COMPONENT_NAME$1z = 'vc-color-picker';
5265
5264
  const ColorPicker = /* @__PURE__ */ defineComponent({
5266
- name: COMPONENT_NAME$1y,
5265
+ name: COMPONENT_NAME$1z,
5267
5266
  props: props$$,
5268
5267
  setup(props, {
5269
5268
  slots
@@ -5326,9 +5325,9 @@ const formatter = (format, arr) => {
5326
5325
  function _isSlot$2(s) {
5327
5326
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
5328
5327
  }
5329
- const COMPONENT_NAME$1x = 'vc-countdown';
5328
+ const COMPONENT_NAME$1y = 'vc-countdown';
5330
5329
  const Countdown = /* @__PURE__ */ defineComponent({
5331
- name: COMPONENT_NAME$1x,
5330
+ name: COMPONENT_NAME$1y,
5332
5331
  props: props$_,
5333
5332
  emits: ['change', 'complete', 'error'],
5334
5333
  setup(props, {
@@ -5595,9 +5594,9 @@ const value2separated = (value, options) => {
5595
5594
  function _isSlot$1(s) {
5596
5595
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
5597
5596
  }
5598
- const COMPONENT_NAME$1w = 'vc-counter';
5597
+ const COMPONENT_NAME$1x = 'vc-counter';
5599
5598
  const Counter = /* @__PURE__ */ defineComponent({
5600
- name: COMPONENT_NAME$1w,
5599
+ name: COMPONENT_NAME$1x,
5601
5600
  props: props$Z,
5602
5601
  emits: ['begin', 'complete', 'change'],
5603
5602
  setup(props, {
@@ -5609,7 +5608,7 @@ const Counter = /* @__PURE__ */ defineComponent({
5609
5608
  const duration = ref(props.duration);
5610
5609
  const remaining = ref(duration.value);
5611
5610
  const startVal = ref(0);
5612
- const endVal = ref(separated2value(props.value, props));
5611
+ const endVal = ref(!props.value ? 0 : separated2value(props.value, props));
5613
5612
  const frameVal = ref(startVal.value);
5614
5613
  const finalEndVal = ref(null);
5615
5614
  const useEasing = ref(!!props.easing);
@@ -5632,7 +5631,7 @@ const Counter = /* @__PURE__ */ defineComponent({
5632
5631
  return typeof props.easing === 'function' ? props.easing : (t, b, c, d) => c * (-Math.pow(2, -10 * t / d) + 1) * 1024 / 1023 + b;
5633
5632
  });
5634
5633
  const displayValue = computed(() => {
5635
- if (props.value === '' || typeof props.value !== 'string' && typeof props.value !== 'number') {
5634
+ if (props.value === '' || typeof props.value !== 'string' && typeof props.value !== 'number' || typeof props.value === 'string' && Number.isNaN(parseFloat(props.value))) {
5636
5635
  return props.placeholder;
5637
5636
  }
5638
5637
  return prints.value;
@@ -6860,9 +6859,9 @@ const getTimeType = type => {
6860
6859
  }
6861
6860
  return view;
6862
6861
  };
6863
- const COMPONENT_NAME$1v = 'vc-date-confirm';
6862
+ const COMPONENT_NAME$1w = 'vc-date-confirm';
6864
6863
  const Confirm = /* @__PURE__ */ defineComponent({
6865
- name: COMPONENT_NAME$1v,
6864
+ name: COMPONENT_NAME$1w,
6866
6865
  props: {
6867
6866
  showTime: {
6868
6867
  type: Boolean,
@@ -6926,9 +6925,9 @@ const Confirm = /* @__PURE__ */ defineComponent({
6926
6925
 
6927
6926
  /** @jsxImportSource vue */
6928
6927
 
6929
- const COMPONENT_NAME$1u = 'vc-date-header';
6928
+ const COMPONENT_NAME$1v = 'vc-date-header';
6930
6929
  const DateHeader = /* @__PURE__ */ defineComponent({
6931
- name: COMPONENT_NAME$1u,
6930
+ name: COMPONENT_NAME$1v,
6932
6931
  props: {
6933
6932
  panelDate: Date,
6934
6933
  showNext: {
@@ -7012,9 +7011,9 @@ const DateHeader = /* @__PURE__ */ defineComponent({
7012
7011
 
7013
7012
  /** @jsxImportSource vue */
7014
7013
 
7015
- const COMPONENT_NAME$1t = 'vc-date-table';
7014
+ const COMPONENT_NAME$1u = 'vc-date-table';
7016
7015
  const DateTable = /* @__PURE__ */ defineComponent({
7017
- name: COMPONENT_NAME$1t,
7016
+ name: COMPONENT_NAME$1u,
7018
7017
  props: {
7019
7018
  value: Array,
7020
7019
  firstDayOfWeek: {
@@ -7223,9 +7222,9 @@ const DateTable = /* @__PURE__ */ defineComponent({
7223
7222
 
7224
7223
  /** @jsxImportSource vue */
7225
7224
 
7226
- const COMPONENT_NAME$1s = 'vc-month-table';
7225
+ const COMPONENT_NAME$1t = 'vc-month-table';
7227
7226
  const MonthTable = /* @__PURE__ */ defineComponent({
7228
- name: COMPONENT_NAME$1s,
7227
+ name: COMPONENT_NAME$1t,
7229
7228
  props: {
7230
7229
  value: Array,
7231
7230
  panelDate: Date,
@@ -7357,7 +7356,7 @@ const MonthTable = /* @__PURE__ */ defineComponent({
7357
7356
 
7358
7357
  /** @jsxImportSource vue */
7359
7358
 
7360
- const COMPONENT_NAME$1r = 'vc-quarter-table';
7359
+ const COMPONENT_NAME$1s = 'vc-quarter-table';
7361
7360
 
7362
7361
  /**
7363
7362
  * 获取季度对应的月份范围
@@ -7391,7 +7390,7 @@ const getQuarterRangeByMonth = value => {
7391
7390
  }
7392
7391
  };
7393
7392
  const QuarterTable = /* @__PURE__ */ defineComponent({
7394
- name: COMPONENT_NAME$1r,
7393
+ name: COMPONENT_NAME$1s,
7395
7394
  props: {
7396
7395
  value: Array,
7397
7396
  panelDate: Date,
@@ -7514,9 +7513,9 @@ const QuarterTable = /* @__PURE__ */ defineComponent({
7514
7513
 
7515
7514
  /** @jsxImportSource vue */
7516
7515
 
7517
- const COMPONENT_NAME$1q = 'vc-shortcuts-select';
7516
+ const COMPONENT_NAME$1r = 'vc-shortcuts-select';
7518
7517
  const ShortcutsSelect = /* @__PURE__ */ defineComponent({
7519
- name: COMPONENT_NAME$1q,
7518
+ name: COMPONENT_NAME$1r,
7520
7519
  props: {
7521
7520
  panelDate: Date,
7522
7521
  config: Array,
@@ -7556,9 +7555,9 @@ const ShortcutsSelect = /* @__PURE__ */ defineComponent({
7556
7555
 
7557
7556
  /** @jsxImportSource vue */
7558
7557
 
7559
- const COMPONENT_NAME$1p = 'vc-time-select';
7558
+ const COMPONENT_NAME$1q = 'vc-time-select';
7560
7559
  const TimeSelect = /* @__PURE__ */ defineComponent({
7561
- name: COMPONENT_NAME$1p,
7560
+ name: COMPONENT_NAME$1q,
7562
7561
  props: {
7563
7562
  hours: {
7564
7563
  type: [Number, String],
@@ -7838,9 +7837,9 @@ const TimeSelect = /* @__PURE__ */ defineComponent({
7838
7837
 
7839
7838
  /** @jsxImportSource vue */
7840
7839
 
7841
- const COMPONENT_NAME$1o = 'vc-year-table';
7840
+ const COMPONENT_NAME$1p = 'vc-year-table';
7842
7841
  const YearTable = /* @__PURE__ */ defineComponent({
7843
- name: COMPONENT_NAME$1o,
7842
+ name: COMPONENT_NAME$1p,
7844
7843
  props: {
7845
7844
  value: Array,
7846
7845
  panelDate: Date,
@@ -7963,9 +7962,9 @@ const getDateIsInRange = (value, type, leftPanelDate, rightPanelDate) => {
7963
7962
  }
7964
7963
  return true;
7965
7964
  };
7966
- const COMPONENT_NAME$1n = 'vc-date-range-panel';
7965
+ const COMPONENT_NAME$1o = 'vc-date-range-panel';
7967
7966
  const DateRangePanel = /* @__PURE__ */ defineComponent({
7968
- name: COMPONENT_NAME$1n,
7967
+ name: COMPONENT_NAME$1o,
7969
7968
  props: {
7970
7969
  ...props$W,
7971
7970
  confirm: {
@@ -8344,9 +8343,9 @@ const DateRangePanel = /* @__PURE__ */ defineComponent({
8344
8343
 
8345
8344
  /** @jsxImportSource vue */
8346
8345
 
8347
- const COMPONENT_NAME$1m = 'vc-date-panel';
8346
+ const COMPONENT_NAME$1n = 'vc-date-panel';
8348
8347
  const DatePanel = /* @__PURE__ */ defineComponent({
8349
- name: COMPONENT_NAME$1m,
8348
+ name: COMPONENT_NAME$1n,
8350
8349
  props: {
8351
8350
  ...props$W,
8352
8351
  type: String,
@@ -8554,9 +8553,9 @@ const isEqualYear$1 = value => {
8554
8553
  const endYear = value[1].getFullYear();
8555
8554
  return startYear === endYear;
8556
8555
  };
8557
- const COMPONENT_NAME$1l = 'vc-monthrange-panel';
8556
+ const COMPONENT_NAME$1m = 'vc-monthrange-panel';
8558
8557
  const MonthRangePanel = /* @__PURE__ */ defineComponent({
8559
- name: COMPONENT_NAME$1l,
8558
+ name: COMPONENT_NAME$1m,
8560
8559
  props: {
8561
8560
  ...props$W,
8562
8561
  confirm: {
@@ -8731,9 +8730,9 @@ const isEqualYear = value => {
8731
8730
  const endYear = value[1].getFullYear();
8732
8731
  return startYear === endYear;
8733
8732
  };
8734
- const COMPONENT_NAME$1k = 'vc-quarterrange-panel';
8733
+ const COMPONENT_NAME$1l = 'vc-quarterrange-panel';
8735
8734
  const QuarterRangePanel = /* @__PURE__ */ defineComponent({
8736
- name: COMPONENT_NAME$1k,
8735
+ name: COMPONENT_NAME$1l,
8737
8736
  props: {
8738
8737
  ...props$W,
8739
8738
  confirm: {
@@ -8972,9 +8971,9 @@ const getComparedDate = (leftDate, rightDate) => {
8972
8971
  seconds
8973
8972
  };
8974
8973
  };
8975
- const COMPONENT_NAME$1j = 'vc-timerange-panel';
8974
+ const COMPONENT_NAME$1k = 'vc-timerange-panel';
8976
8975
  const TimeRangePanel = /* @__PURE__ */ defineComponent({
8977
- name: COMPONENT_NAME$1j,
8976
+ name: COMPONENT_NAME$1k,
8978
8977
  props: props$V,
8979
8978
  emits: ['pick', 'clear', 'ok'],
8980
8979
  setup(props, {
@@ -9075,9 +9074,9 @@ const TimeRangePanel = /* @__PURE__ */ defineComponent({
9075
9074
 
9076
9075
  /** @jsxImportSource vue */
9077
9076
 
9078
- const COMPONENT_NAME$1i = 'vc-time-panel';
9077
+ const COMPONENT_NAME$1j = 'vc-time-panel';
9079
9078
  const TimePanel = /* @__PURE__ */ defineComponent({
9080
- name: COMPONENT_NAME$1i,
9079
+ name: COMPONENT_NAME$1j,
9081
9080
  props: props$V,
9082
9081
  emits: ['pick', 'clear', 'ok'],
9083
9082
  setup(props, {
@@ -9133,7 +9132,7 @@ const TimePanel = /* @__PURE__ */ defineComponent({
9133
9132
 
9134
9133
  /** @jsxImportSource vue */
9135
9134
 
9136
- const COMPONENT_NAME$1h = 'vc-date-picker';
9135
+ const COMPONENT_NAME$1i = 'vc-date-picker';
9137
9136
  const getPanel$1 = type => {
9138
9137
  if (['daterange', 'datetimerange'].includes(type)) {
9139
9138
  return DateRangePanel;
@@ -9144,7 +9143,7 @@ const getPanel$1 = type => {
9144
9143
  }
9145
9144
  return DatePanel;
9146
9145
  };
9147
- const DatePicker = createPicker(COMPONENT_NAME$1h, props$Y, () => {
9146
+ const DatePicker = createPicker(COMPONENT_NAME$1i, props$Y, () => {
9148
9147
  const props = getCurrentInstance().props;
9149
9148
  const icon = ref('date');
9150
9149
  const panel = shallowRef({});
@@ -9185,9 +9184,9 @@ const props$U = {
9185
9184
 
9186
9185
  /** @jsxImportSource vue */
9187
9186
 
9188
- const COMPONENT_NAME$1g = 'vc-divider';
9187
+ const COMPONENT_NAME$1h = 'vc-divider';
9189
9188
  const Divider = /* @__PURE__ */ defineComponent({
9190
- name: COMPONENT_NAME$1g,
9189
+ name: COMPONENT_NAME$1h,
9191
9190
  props: props$U,
9192
9191
  setup(props, {
9193
9192
  slots
@@ -9323,7 +9322,7 @@ const props$R = {
9323
9322
 
9324
9323
  /** @jsxImportSource vue */
9325
9324
 
9326
- const COMPONENT_NAME$1f = 'vc-scroller-track';
9325
+ const COMPONENT_NAME$1g = 'vc-scroller-track';
9327
9326
  const BAR_MAP = {
9328
9327
  vertical: {
9329
9328
  scroll: 'scrollTop',
@@ -9343,7 +9342,7 @@ const BAR_MAP = {
9343
9342
  }
9344
9343
  };
9345
9344
  const Track = /* @__PURE__ */ defineComponent({
9346
- name: COMPONENT_NAME$1f,
9345
+ name: COMPONENT_NAME$1g,
9347
9346
  props: props$T,
9348
9347
  emits: ['change'],
9349
9348
  inheritAttrs: false,
@@ -9533,9 +9532,9 @@ const Track = /* @__PURE__ */ defineComponent({
9533
9532
 
9534
9533
  /** @jsxImportSource vue */
9535
9534
 
9536
- const COMPONENT_NAME$1e = 'vc-scroller-bar';
9535
+ const COMPONENT_NAME$1f = 'vc-scroller-bar';
9537
9536
  const Bar = /* @__PURE__ */ defineComponent({
9538
- name: COMPONENT_NAME$1e,
9537
+ name: COMPONENT_NAME$1f,
9539
9538
  props: props$S,
9540
9539
  emits: ['change'],
9541
9540
  setup(props, {
@@ -9769,7 +9768,7 @@ const useScroller = (expose) => {
9769
9768
 
9770
9769
  /** @jsxImportSource vue */
9771
9770
 
9772
- const COMPONENT_NAME$1d = 'vc-scroller';
9771
+ const COMPONENT_NAME$1e = 'vc-scroller';
9773
9772
 
9774
9773
  /**
9775
9774
  * 作为备选方案,目前推荐使用ScrollerWheel
@@ -9780,7 +9779,7 @@ const COMPONENT_NAME$1d = 'vc-scroller';
9780
9779
  * 2. 增加了一层嵌套
9781
9780
  */
9782
9781
  const Scroller = /* @__PURE__ */ defineComponent({
9783
- name: COMPONENT_NAME$1d,
9782
+ name: COMPONENT_NAME$1e,
9784
9783
  props: props$R,
9785
9784
  emits: ['scroll'],
9786
9785
  setup(props, {
@@ -9841,7 +9840,7 @@ const Scroller = /* @__PURE__ */ defineComponent({
9841
9840
 
9842
9841
  /** @jsxImportSource vue */
9843
9842
 
9844
- const COMPONENT_NAME$1c = 'vc-scroller-wheel';
9843
+ const COMPONENT_NAME$1d = 'vc-scroller-wheel';
9845
9844
 
9846
9845
  /**
9847
9846
  * 为减少一层嵌套,为去除滚动bar的抖动,使用wheel模拟
@@ -9863,7 +9862,7 @@ const COMPONENT_NAME$1c = 'vc-scroller-wheel';
9863
9862
  * 设置scrollTop不会reflow和repaint,不需要考虑transfrom来改变content(transform也只在draw完成)
9864
9863
  */
9865
9864
  const ScrollerWheel = /* @__PURE__ */ defineComponent({
9866
- name: COMPONENT_NAME$1c,
9865
+ name: COMPONENT_NAME$1d,
9867
9866
  props: Object.assign({}, props$R, {
9868
9867
  stopPropagation: {
9869
9868
  type: Boolean,
@@ -10052,9 +10051,9 @@ const props$Q = {
10052
10051
 
10053
10052
  /** @jsxImportSource vue */
10054
10053
 
10055
- const COMPONENT_NAME$1b = 'vc-drawer';
10054
+ const COMPONENT_NAME$1c = 'vc-drawer';
10056
10055
  const DrawerView = /* @__PURE__ */ defineComponent({
10057
- name: COMPONENT_NAME$1b,
10056
+ name: COMPONENT_NAME$1c,
10058
10057
  props: props$Q,
10059
10058
  emits: ['close', 'update:modelValue', 'visible-change'],
10060
10059
  setup(props, {
@@ -10243,9 +10242,9 @@ const props$P = {
10243
10242
 
10244
10243
  /** @jsxImportSource vue */
10245
10244
 
10246
- const COMPONENT_NAME$1a = 'vc-dropdown';
10245
+ const COMPONENT_NAME$1b = 'vc-dropdown';
10247
10246
  const Dropdown = /* @__PURE__ */ defineComponent({
10248
- name: COMPONENT_NAME$1a,
10247
+ name: COMPONENT_NAME$1b,
10249
10248
  props: props$P,
10250
10249
  inheritAttrs: false,
10251
10250
  emits: ['update:modelValue', 'ready', 'close', 'visible-change', 'click'],
@@ -10315,9 +10314,9 @@ const Dropdown = /* @__PURE__ */ defineComponent({
10315
10314
 
10316
10315
  /** @jsxImportSource vue */
10317
10316
 
10318
- const COMPONENT_NAME$19 = 'vc-dropdown-menu';
10317
+ const COMPONENT_NAME$1a = 'vc-dropdown-menu';
10319
10318
  const DropdownMenu = /* @__PURE__ */ defineComponent({
10320
- name: COMPONENT_NAME$19,
10319
+ name: COMPONENT_NAME$1a,
10321
10320
  setup(_, {
10322
10321
  slots
10323
10322
  }) {
@@ -10331,9 +10330,10 @@ const DropdownMenu = /* @__PURE__ */ defineComponent({
10331
10330
 
10332
10331
  /** @jsxImportSource vue */
10333
10332
 
10334
- const COMPONENT_NAME$18 = 'vc-dropdown-item';
10333
+ const COMPONENT_NAME$19 = 'vc-dropdown-item';
10335
10334
  const DropdownItem = /* @__PURE__ */ defineComponent({
10336
- name: COMPONENT_NAME$18,
10335
+ name: COMPONENT_NAME$19,
10336
+ emits: ['click'],
10337
10337
  props: {
10338
10338
  value: {
10339
10339
  type: [String, Number],
@@ -10537,9 +10537,9 @@ const defaults = {
10537
10537
 
10538
10538
  /** @jsxImportSource vue */
10539
10539
 
10540
- const COMPONENT_NAME$17 = 'vc-editor-toolbar';
10540
+ const COMPONENT_NAME$18 = 'vc-editor-toolbar';
10541
10541
  const EditorToolbar = /* @__PURE__ */ defineComponent({
10542
- name: COMPONENT_NAME$17,
10542
+ name: COMPONENT_NAME$18,
10543
10543
  props: {
10544
10544
  options: [Array, Object],
10545
10545
  elementId: String
@@ -10747,9 +10747,9 @@ const props$O = {
10747
10747
 
10748
10748
  /** @jsxImportSource vue */
10749
10749
 
10750
- const COMPONENT_NAME$16 = 'vc-image-preview';
10750
+ const COMPONENT_NAME$17 = 'vc-image-preview';
10751
10751
  const ImagePreview$1 = /* @__PURE__ */ defineComponent({
10752
- name: COMPONENT_NAME$16,
10752
+ name: COMPONENT_NAME$17,
10753
10753
  props: props$O,
10754
10754
  setup(props, {
10755
10755
  slots
@@ -10793,8 +10793,9 @@ const getFitSize = (src) => {
10793
10793
  });
10794
10794
  };
10795
10795
  const open$2 = async (options) => {
10796
+ const { data: originalData, current, ...photoSwipeOptions } = options;
10796
10797
  const e = VcInstance.globalEvent;
10797
- const data = options.data.map((i) => {
10798
+ const data = originalData.map((i) => {
10798
10799
  if (typeof i === "string") {
10799
10800
  return {
10800
10801
  src: i
@@ -10821,11 +10822,18 @@ const open$2 = async (options) => {
10821
10822
  arrowNextTitle: "下一张",
10822
10823
  errorMsg: "网络异常 图片加载失败",
10823
10824
  indexIndicatorSep: " / ",
10824
- initialZoomLevel: "fit"
10825
+ wheelToZoom: true,
10826
+ // 默认fit展示
10827
+ initialZoomLevel: "fit",
10828
+ // 最大展示或按钮+最大展示(如果原图size 乘 secondaryZoomLevel 还在屏幕内,不展示+号)
10829
+ secondaryZoomLevel: 4,
10830
+ // 滚轮/手势最大展示
10831
+ maxZoomLevel: 10,
10832
+ ...photoSwipeOptions
10825
10833
  });
10826
10834
  lightbox.init();
10827
10835
  lightbox.loadAndOpen(
10828
- options.current || 0,
10836
+ current || 0,
10829
10837
  data,
10830
10838
  // 下面无效,需要给官方支持
10831
10839
  {
@@ -10936,9 +10944,9 @@ const props$N = {
10936
10944
  }
10937
10945
  };
10938
10946
 
10939
- const COMPONENT_NAME$15 = "vc-upload";
10947
+ const COMPONENT_NAME$16 = "vc-upload";
10940
10948
  const Upload$1 = defineComponent({
10941
- name: COMPONENT_NAME$15,
10949
+ name: COMPONENT_NAME$16,
10942
10950
  props: props$N,
10943
10951
  emits: [
10944
10952
  "message",
@@ -11472,9 +11480,9 @@ const props$M = {
11472
11480
 
11473
11481
  /** @jsxImportSource vue */
11474
11482
 
11475
- const COMPONENT_NAME$14 = 'vc-editor';
11483
+ const COMPONENT_NAME$15 = 'vc-editor';
11476
11484
  const Editor = /* @__PURE__ */ defineComponent({
11477
- name: COMPONENT_NAME$14,
11485
+ name: COMPONENT_NAME$15,
11478
11486
  props: props$M,
11479
11487
  defaults,
11480
11488
  emits: ['ready', 'blur', 'focus', 'input', 'update:modelValue', 'change'],
@@ -11663,7 +11671,7 @@ const Editor = /* @__PURE__ */ defineComponent({
11663
11671
 
11664
11672
  /** @jsxImportSource vue */
11665
11673
 
11666
- const COMPONENT_NAME$13 = 'vc-editor-view';
11674
+ const COMPONENT_NAME$14 = 'vc-editor-view';
11667
11675
  const setImages = v => {
11668
11676
  if (!v) return;
11669
11677
  const IMG_REGX = /<img.*?(?:>|\/>)/gi;
@@ -11681,7 +11689,7 @@ const setImages = v => {
11681
11689
  return;
11682
11690
  };
11683
11691
  const EditorView = /* @__PURE__ */ defineComponent({
11684
- name: COMPONENT_NAME$13,
11692
+ name: COMPONENT_NAME$14,
11685
11693
  props: {
11686
11694
  value: {
11687
11695
  type: String,
@@ -11896,9 +11904,9 @@ const useForm = (expose, options = {}) => {
11896
11904
  });
11897
11905
  };
11898
11906
 
11899
- const COMPONENT_NAME$12 = "vc-form";
11907
+ const COMPONENT_NAME$13 = "vc-form";
11900
11908
  const Form = defineComponent({
11901
- name: COMPONENT_NAME$12,
11909
+ name: COMPONENT_NAME$13,
11902
11910
  props: props$L,
11903
11911
  setup(props, { slots, expose }) {
11904
11912
  useForm(expose);
@@ -12246,9 +12254,9 @@ const useFormItem = (expose) => {
12246
12254
 
12247
12255
  /** @jsxImportSource vue */
12248
12256
 
12249
- const COMPONENT_NAME$11 = 'vc-form-item';
12257
+ const COMPONENT_NAME$12 = 'vc-form-item';
12250
12258
  const FormItem = /* @__PURE__ */ defineComponent({
12251
- name: COMPONENT_NAME$11,
12259
+ name: COMPONENT_NAME$12,
12252
12260
  props: props$K,
12253
12261
  setup(props, {
12254
12262
  slots,
@@ -12316,9 +12324,9 @@ const props$J = {
12316
12324
  }
12317
12325
  };
12318
12326
 
12319
- const COMPONENT_NAME$10 = "vcm-form";
12327
+ const COMPONENT_NAME$11 = "vcm-form";
12320
12328
  const MForm = defineComponent({
12321
- name: COMPONENT_NAME$10,
12329
+ name: COMPONENT_NAME$11,
12322
12330
  props: props$J,
12323
12331
  setup(props, { slots, expose }) {
12324
12332
  useForm(expose, {
@@ -12349,9 +12357,9 @@ const props$I = {
12349
12357
 
12350
12358
  /** @jsxImportSource vue */
12351
12359
 
12352
- const COMPONENT_NAME$$ = 'vcm-form-item';
12360
+ const COMPONENT_NAME$10 = 'vcm-form-item';
12353
12361
  const MFormItem = /* @__PURE__ */ defineComponent({
12354
- name: COMPONENT_NAME$$,
12362
+ name: COMPONENT_NAME$10,
12355
12363
  props: props$I,
12356
12364
  setup(props, {
12357
12365
  slots,
@@ -12406,9 +12414,9 @@ const MFormItem = /* @__PURE__ */ defineComponent({
12406
12414
  }
12407
12415
  });
12408
12416
 
12409
- const COMPONENT_NAME$_ = "vc-fragment";
12417
+ const COMPONENT_NAME$$ = "vc-fragment";
12410
12418
  const Fragment = defineComponent({
12411
- name: COMPONENT_NAME$_,
12419
+ name: COMPONENT_NAME$$,
12412
12420
  setup(_, { slots }) {
12413
12421
  return () => h(Fragment$1, slots.default?.());
12414
12422
  }
@@ -12447,9 +12455,9 @@ const props$H = {
12447
12455
 
12448
12456
  /** @jsxImportSource vue */
12449
12457
 
12450
- const COMPONENT_NAME$Z = 'vc-snapshot';
12458
+ const COMPONENT_NAME$_ = 'vc-snapshot';
12451
12459
  const Snapshot = /* @__PURE__ */ defineComponent({
12452
- name: COMPONENT_NAME$Z,
12460
+ name: COMPONENT_NAME$_,
12453
12461
  props: props$H,
12454
12462
  emits: ['ready'],
12455
12463
  setup(props, {
@@ -12608,7 +12616,7 @@ const IMGStore$1 = new IMGStore();
12608
12616
 
12609
12617
  /** @jsxImportSource vue */
12610
12618
 
12611
- const COMPONENT_NAME$Y = 'vc-image';
12619
+ const COMPONENT_NAME$Z = 'vc-image';
12612
12620
  let isSupportObjectFit = false;
12613
12621
  window.addEventListener('DOMContentLoaded', () => {
12614
12622
  isSupportObjectFit = !IS_SERVER$1 && document.documentElement.style.objectFit !== undefined;
@@ -12621,7 +12629,7 @@ const ObjectFit = {
12621
12629
  SCALE_DOWN: 'scale-down'
12622
12630
  };
12623
12631
  const Image$1 = /* @__PURE__ */ defineComponent({
12624
- name: COMPONENT_NAME$Y,
12632
+ name: COMPONENT_NAME$Z,
12625
12633
  inheritAttrs: false,
12626
12634
  props: props$G,
12627
12635
  setup(props, {
@@ -12838,9 +12846,9 @@ const props$F = {
12838
12846
 
12839
12847
  /** @jsxImportSource vue */
12840
12848
 
12841
- const COMPONENT_NAME$X = 'vc-image-crop';
12849
+ const COMPONENT_NAME$Y = 'vc-image-crop';
12842
12850
  const ImageCrop = /* @__PURE__ */ defineComponent({
12843
- name: COMPONENT_NAME$X,
12851
+ name: COMPONENT_NAME$Y,
12844
12852
  props: props$F,
12845
12853
  setup(props, {
12846
12854
  slots
@@ -12866,9 +12874,9 @@ const props$E = {
12866
12874
 
12867
12875
  /** @jsxImportSource vue */
12868
12876
 
12869
- const COMPONENT_NAME$W = 'vc-image-processing';
12877
+ const COMPONENT_NAME$X = 'vc-image-processing';
12870
12878
  const ImageProcessing = /* @__PURE__ */ defineComponent({
12871
- name: COMPONENT_NAME$W,
12879
+ name: COMPONENT_NAME$X,
12872
12880
  props: props$E,
12873
12881
  setup(props, {
12874
12882
  slots
@@ -12885,9 +12893,9 @@ const MImageProcessing = ImageProcessing;
12885
12893
 
12886
12894
  /** @jsxImportSource vue */
12887
12895
 
12888
- const COMPONENT_NAME$V = 'vcm-input';
12896
+ const COMPONENT_NAME$W = 'vcm-input';
12889
12897
  const MInput = /* @__PURE__ */ defineComponent({
12890
- name: COMPONENT_NAME$V,
12898
+ name: COMPONENT_NAME$W,
12891
12899
  inheritAttrs: false,
12892
12900
  props: {
12893
12901
  ...props$1h,
@@ -12976,9 +12984,9 @@ const MInput = /* @__PURE__ */ defineComponent({
12976
12984
 
12977
12985
  /** @jsxImportSource vue */
12978
12986
 
12979
- const COMPONENT_NAME$U = 'vcm-input-number';
12987
+ const COMPONENT_NAME$V = 'vcm-input-number';
12980
12988
  const MInputNumber = /* @__PURE__ */ defineComponent({
12981
- name: COMPONENT_NAME$U,
12989
+ name: COMPONENT_NAME$V,
12982
12990
  props: props$1g,
12983
12991
  inheritAttrs: false,
12984
12992
  setup(props, {
@@ -13027,9 +13035,9 @@ const MInputNumber = /* @__PURE__ */ defineComponent({
13027
13035
 
13028
13036
  /** @jsxImportSource vue */
13029
13037
 
13030
- const COMPONENT_NAME$T = 'vcm-input-search';
13038
+ const COMPONENT_NAME$U = 'vcm-input-search';
13031
13039
  const MInputSearch = /* @__PURE__ */ defineComponent({
13032
- name: COMPONENT_NAME$T,
13040
+ name: COMPONENT_NAME$U,
13033
13041
  props: {
13034
13042
  ...props$1f,
13035
13043
  cancelText: {
@@ -13106,9 +13114,9 @@ const props$D = {
13106
13114
  }
13107
13115
  };
13108
13116
 
13109
- const COMPONENT_NAME$S = "vcm-list";
13117
+ const COMPONENT_NAME$T = "vcm-list";
13110
13118
  const MList = defineComponent({
13111
- name: COMPONENT_NAME$S,
13119
+ name: COMPONENT_NAME$T,
13112
13120
  props: props$D,
13113
13121
  setup(props, { slots }) {
13114
13122
  provide("vc-list", { props });
@@ -13163,10 +13171,10 @@ const props$C = {
13163
13171
 
13164
13172
  /** @jsxImportSource vue */
13165
13173
 
13166
- const COMPONENT_NAME$R = 'vcm-list-item';
13174
+ const COMPONENT_NAME$S = 'vcm-list-item';
13167
13175
  const HTTP_REGEX = /[a-zA-z]+:\/\/[^\s]*/;
13168
13176
  const MListItem = /* @__PURE__ */ defineComponent({
13169
- name: COMPONENT_NAME$R,
13177
+ name: COMPONENT_NAME$S,
13170
13178
  props: props$C,
13171
13179
  emits: ['click'],
13172
13180
  setup(props, {
@@ -13260,11 +13268,11 @@ const props$B = {
13260
13268
 
13261
13269
  /** @jsxImportSource vue */
13262
13270
 
13263
- const COMPONENT_NAME$Q = 'vc-marquee';
13271
+ const COMPONENT_NAME$R = 'vc-marquee';
13264
13272
  const ANIMATION = prefixStyle('animation').camel;
13265
13273
  const TRANSFORM_KEBAB = prefixStyle('transform').kebab;
13266
13274
  const Marquee = /* @__PURE__ */ defineComponent({
13267
- name: COMPONENT_NAME$Q,
13275
+ name: COMPONENT_NAME$R,
13268
13276
  props: props$B,
13269
13277
  setup(props, {
13270
13278
  slots
@@ -13332,9 +13340,9 @@ const props$A = {
13332
13340
  }
13333
13341
  };
13334
13342
 
13335
- const COMPONENT_NAME$P = "vc-resizer";
13343
+ const COMPONENT_NAME$Q = "vc-resizer";
13336
13344
  const Resizer = defineComponent({
13337
- name: COMPONENT_NAME$P,
13345
+ name: COMPONENT_NAME$Q,
13338
13346
  props: props$A,
13339
13347
  emits: ["resize"],
13340
13348
  setup(props, { emit, slots, expose }) {
@@ -13504,10 +13512,10 @@ const props$z = {
13504
13512
 
13505
13513
  /** @jsxImportSource vue */
13506
13514
 
13507
- const COMPONENT_NAME$O = 'vc-modal';
13515
+ const COMPONENT_NAME$P = 'vc-modal';
13508
13516
  let zIndexNumber = 1002;
13509
13517
  const ModalView = /* @__PURE__ */ defineComponent({
13510
- name: COMPONENT_NAME$O,
13518
+ name: COMPONENT_NAME$P,
13511
13519
  emits: ['update:modelValue', 'close', 'portal-fulfilled', 'visible-change', 'ok', 'cancel'],
13512
13520
  props: props$z,
13513
13521
  setup(props, {
@@ -13946,9 +13954,9 @@ const props$y = {
13946
13954
 
13947
13955
  /** @jsxImportSource vue */
13948
13956
 
13949
- const COMPONENT_NAME$N = 'vc-modal';
13957
+ const COMPONENT_NAME$O = 'vc-modal';
13950
13958
  const MModalView = /* @__PURE__ */ defineComponent({
13951
- name: COMPONENT_NAME$N,
13959
+ name: COMPONENT_NAME$O,
13952
13960
  emits: ['update:modelValue', 'portal-fulfilled', 'close', 'ok', 'cancel'],
13953
13961
  props: props$y,
13954
13962
  setup(props, {
@@ -14160,9 +14168,9 @@ const props$x = {
14160
14168
 
14161
14169
  /** @jsxImportSource vue */
14162
14170
 
14163
- const COMPONENT_NAME$M = 'vc-notice';
14171
+ const COMPONENT_NAME$N = 'vc-notice';
14164
14172
  const NoticeView = /* @__PURE__ */ defineComponent({
14165
- name: COMPONENT_NAME$M,
14173
+ name: COMPONENT_NAME$N,
14166
14174
  props: props$x,
14167
14175
  emits: ['portal-fulfilled', 'close', 'before-close'],
14168
14176
  setup(props, {
@@ -14335,9 +14343,9 @@ const props$w = {
14335
14343
 
14336
14344
  /** @jsxImportSource vue */
14337
14345
 
14338
- const COMPONENT_NAME$L = 'vc-option';
14346
+ const COMPONENT_NAME$M = 'vc-option';
14339
14347
  const Option$1 = /* @__PURE__ */ defineComponent({
14340
- name: COMPONENT_NAME$L,
14348
+ name: COMPONENT_NAME$M,
14341
14349
  props: props$w,
14342
14350
  setup(props, {
14343
14351
  slots
@@ -14421,9 +14429,9 @@ const props$u = {
14421
14429
 
14422
14430
  /** @jsxImportSource vue */
14423
14431
 
14424
- const COMPONENT_NAME$K = 'vc-tag';
14432
+ const COMPONENT_NAME$L = 'vc-tag';
14425
14433
  const Tag = /* @__PURE__ */ defineComponent({
14426
- name: COMPONENT_NAME$K,
14434
+ name: COMPONENT_NAME$L,
14427
14435
  props: props$u,
14428
14436
  emits: ['close', 'change'],
14429
14437
  setup(props, {
@@ -14494,12 +14502,13 @@ const props$t = {
14494
14502
 
14495
14503
  /** @jsxImportSource vue */
14496
14504
 
14497
- const COMPONENT_NAME$J = 'vc-select-option';
14505
+ const COMPONENT_NAME$K = 'vc-select-option';
14498
14506
  const Option = /* @__PURE__ */ defineComponent({
14499
- name: COMPONENT_NAME$J,
14507
+ name: COMPONENT_NAME$K,
14500
14508
  props: props$t,
14501
14509
  setup(props, {
14502
- slots
14510
+ slots,
14511
+ expose
14503
14512
  }) {
14504
14513
  const owner = getInstance('select', 'selectId');
14505
14514
  const formatterLabel = computed(() => {
@@ -14519,9 +14528,12 @@ const Option = /* @__PURE__ */ defineComponent({
14519
14528
  } = owner.exposed;
14520
14529
  return !multiple.value ? true : current.value.slice(-1)[0] === props.value;
14521
14530
  });
14531
+ const searchRegex = computed(() => {
14532
+ const v = owner.exposed.searchValue.value.trim().replace(/\s+/g, ' ').split(/\s|,/);
14533
+ return new RegExp(`(${v.join('|')})`, 'i');
14534
+ });
14522
14535
  const isActive = computed(() => {
14523
- const regex = owner.exposed.searchRegex.value;
14524
- return regex.test(formatterLabel.value) || !props.filterable;
14536
+ return !!(searchRegex.value.test(formatterLabel.value) || !props.filterable);
14525
14537
  });
14526
14538
  const customOptions = computed(() => {
14527
14539
  return {
@@ -14549,6 +14561,12 @@ const Option = /* @__PURE__ */ defineComponent({
14549
14561
  const handlePrevent = e => {
14550
14562
  e.preventDefault();
14551
14563
  };
14564
+ expose({
14565
+ isActive,
14566
+ isChecked,
14567
+ formatterLabel,
14568
+ props
14569
+ });
14552
14570
  return () => {
14553
14571
  if (!isActive.value) return;
14554
14572
  return typeof props.render === 'function' ? createVNode(Customer, mergeProps({
@@ -14582,9 +14600,9 @@ const props$s = {
14582
14600
 
14583
14601
  /** @jsxImportSource vue */
14584
14602
 
14585
- const COMPONENT_NAME$I = 'vc-select-option-group';
14603
+ const COMPONENT_NAME$J = 'vc-select-option-group';
14586
14604
  const OptionGroup = /* @__PURE__ */ defineComponent({
14587
- name: COMPONENT_NAME$I,
14605
+ name: COMPONENT_NAME$J,
14588
14606
  props: props$s,
14589
14607
  setup(props, {
14590
14608
  slots
@@ -14614,6 +14632,78 @@ const OptionGroup = /* @__PURE__ */ defineComponent({
14614
14632
 
14615
14633
  /** @jsxImportSource vue */
14616
14634
 
14635
+ const COMPONENT_NAME$I = 'vc-select-all';
14636
+ const SelectAll = /* @__PURE__ */ defineComponent({
14637
+ name: COMPONENT_NAME$I,
14638
+ props: {
14639
+ data: {
14640
+ type: Array,
14641
+ default: () => []
14642
+ }
14643
+ },
14644
+ setup(props) {
14645
+ const owner = getInstance('select', 'selectId');
14646
+
14647
+ /**
14648
+ * 获取所有可选择的选项(排除disabled的)
14649
+ */
14650
+ const selectableOptions = computed(() => {
14651
+ return props.data.filter(option => {
14652
+ if (!option.isActive || option.props.disabled) return false;
14653
+ return true;
14654
+ });
14655
+ });
14656
+
14657
+ /**
14658
+ * 获取所有可选项的值
14659
+ */
14660
+ const selectableValues = computed(() => {
14661
+ return selectableOptions.value.map(option => option.props.value);
14662
+ });
14663
+
14664
+ /**
14665
+ * 判断是否所有可选项都已选中
14666
+ */
14667
+ const isAllSelected = computed(() => {
14668
+ if (!owner?.exposed || selectableValues.value.length === 0) {
14669
+ return false;
14670
+ }
14671
+ const current = owner.exposed.current.value || [];
14672
+ return selectableValues.value.every(value => current.includes(value));
14673
+ });
14674
+ const handleSelectAll = () => {
14675
+ if (!owner?.exposed) return;
14676
+ const current = owner.exposed.current.value || [];
14677
+ const {
14678
+ add,
14679
+ remove
14680
+ } = owner.exposed;
14681
+ const isSelected = isAllSelected.value;
14682
+ selectableValues.value.forEach(value => {
14683
+ if (isSelected && current.includes(value)) {
14684
+ remove(value);
14685
+ } else if (!isSelected && !current.includes(value)) {
14686
+ add(value);
14687
+ }
14688
+ });
14689
+ };
14690
+ return () => {
14691
+ // 如果没有可选项,不显示按钮
14692
+ if (selectableOptions.value.length === 0) {
14693
+ return null;
14694
+ }
14695
+ return createVNode("div", {
14696
+ "class": [{
14697
+ 'is-selected': isAllSelected.value
14698
+ }, 'vc-select-all'],
14699
+ "onClick": handleSelectAll
14700
+ }, [isAllSelected.value ? '取消全选' : '全选']);
14701
+ };
14702
+ }
14703
+ });
14704
+
14705
+ /** @jsxImportSource vue */
14706
+
14617
14707
  const COMPONENT_NAME$H = 'vc-select';
14618
14708
  const Select = /* @__PURE__ */ defineComponent({
14619
14709
  name: COMPONENT_NAME$H,
@@ -14634,7 +14724,6 @@ const Select = /* @__PURE__ */ defineComponent({
14634
14724
  const isActive = ref(false);
14635
14725
  const isLoading = ref(false);
14636
14726
  const searchValue = ref('');
14637
- const searchRegex = ref(new RegExp(''));
14638
14727
  const currentValue = ref([]);
14639
14728
  const source = computed(() => {
14640
14729
  return flattenData$1(props.data, {
@@ -14669,6 +14758,20 @@ const Select = /* @__PURE__ */ defineComponent({
14669
14758
  const v = currentValue.value.length - props.maxTags;
14670
14759
  return v < 0 ? 0 : v;
14671
14760
  });
14761
+ const optionMap = ref({});
14762
+ const options = computed(() => {
14763
+ return Object.values(optionMap.value);
14764
+ });
14765
+ const showSelectAll = computed(() => {
14766
+ return props.searchable && multiple.value && searchValue.value.trim().length > 0 && options.value.length > 0;
14767
+ });
14768
+ const setOption = (item, el) => {
14769
+ if (el) {
14770
+ optionMap.value[item.value] = el;
14771
+ } else {
14772
+ delete optionMap.value[item.value];
14773
+ }
14774
+ };
14672
14775
 
14673
14776
  /**
14674
14777
  * v-model 同步, 外部的数据改变时不会触发
@@ -14714,7 +14817,7 @@ const Select = /* @__PURE__ */ defineComponent({
14714
14817
  sync();
14715
14818
  };
14716
14819
  const remove = v => {
14717
- const index = currentValue.value.findIndex(i => i == v);
14820
+ const index = currentValue.value.findIndex(i => i === v);
14718
14821
  currentValue.value.splice(index, 1);
14719
14822
  sync();
14720
14823
  };
@@ -14734,7 +14837,6 @@ const Select = /* @__PURE__ */ defineComponent({
14734
14837
  };
14735
14838
  const handleSearch = v => {
14736
14839
  searchValue.value = v;
14737
- searchRegex.value = new RegExp(escapeString(v.trim()), 'i');
14738
14840
  props.loadData && _loadData();
14739
14841
  };
14740
14842
  watch(() => props.modelValue, v => {
@@ -14752,7 +14854,7 @@ const Select = /* @__PURE__ */ defineComponent({
14752
14854
  add,
14753
14855
  remove,
14754
14856
  close,
14755
- searchRegex,
14857
+ searchValue,
14756
14858
  multiple,
14757
14859
  isActive,
14758
14860
  current: currentValue,
@@ -14837,6 +14939,8 @@ const Select = /* @__PURE__ */ defineComponent({
14837
14939
  "modelValue": searchValue.value,
14838
14940
  "placeholder": props.searchPlaceholder,
14839
14941
  "onInput": handleSearch
14942
+ }, null), showSelectAll.value && createVNode(SelectAll, {
14943
+ "data": options.value
14840
14944
  }, null)]), isLoading.value && createVNode("div", {
14841
14945
  "class": "vc-select__loading"
14842
14946
  }, [createVNode(Spin, {
@@ -14857,6 +14961,7 @@ const Select = /* @__PURE__ */ defineComponent({
14857
14961
  default: () => {
14858
14962
  return item.children.map($item => {
14859
14963
  return createVNode(Option, {
14964
+ "ref": el => setOption($item, el),
14860
14965
  "key": $item.value,
14861
14966
  "row": $item,
14862
14967
  "value": $item.value,
@@ -14870,6 +14975,7 @@ const Select = /* @__PURE__ */ defineComponent({
14870
14975
  });
14871
14976
  }
14872
14977
  }) : createVNode(Option, {
14978
+ "ref": el => setOption(item, el),
14873
14979
  "key": item.value,
14874
14980
  "row": item,
14875
14981
  "value": item.value,