@deot/vc-components 1.0.58 → 1.0.59

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.
@@ -17,31 +17,38 @@
17
17
 
18
18
  const nil = void 0;
19
19
  const defaults$3 = {
20
- UploadPicker: {
21
- enhancer: nil
22
- },
23
20
  Editor: {
24
21
  options: nil,
25
22
  enhancer: nil
26
23
  },
27
- Theme: {
28
- variables: VARIABLES
29
- },
30
24
  Portal: {
31
25
  install: nil
32
26
  },
33
- Upload: {
34
- onRequest: nil,
35
- onResponse: nil,
36
- onMessage: nil
37
- },
38
- TableColumn: {
39
- line: nil
27
+ RecycleList: {
28
+ renderRefresh: nil,
29
+ renderPlaceholder: nil,
30
+ renderLoading: nil,
31
+ renderComplete: nil,
32
+ renderEmpty: nil
40
33
  },
41
34
  Snapshot: {
42
35
  options: nil,
43
36
  source: nil,
44
37
  download: nil
38
+ },
39
+ TableColumn: {
40
+ line: nil
41
+ },
42
+ Theme: {
43
+ variables: VARIABLES
44
+ },
45
+ Upload: {
46
+ onRequest: nil,
47
+ onResponse: nil,
48
+ onMessage: nil
49
+ },
50
+ UploadPicker: {
51
+ enhancer: nil
45
52
  }
46
53
  };
47
54
 
@@ -70,7 +77,7 @@
70
77
  }
71
78
  const VcInstance = new Instance();
72
79
 
73
- const props$1t = {
80
+ const props$1u = {
74
81
  tag: {
75
82
  type: String,
76
83
  default: "div"
@@ -79,10 +86,10 @@
79
86
 
80
87
  /** @jsxImportSource vue */
81
88
 
82
- const COMPONENT_NAME$29 = 'vc-action-sheet';
89
+ const COMPONENT_NAME$2a = 'vc-action-sheet';
83
90
  const ActionSheet = /* @__PURE__ */ vue.defineComponent({
84
- name: COMPONENT_NAME$29,
85
- props: props$1t,
91
+ name: COMPONENT_NAME$2a,
92
+ props: props$1u,
86
93
  setup(props, {
87
94
  slots
88
95
  }) {
@@ -96,7 +103,7 @@
96
103
 
97
104
  const MActionSheet = ActionSheet;
98
105
 
99
- const props$1s = {
106
+ const props$1t = {
100
107
  modelValue: {
101
108
  type: Boolean,
102
109
  default: false
@@ -374,11 +381,11 @@
374
381
 
375
382
  /** @jsxImportSource vue */
376
383
 
377
- const COMPONENT_NAME$28 = 'vc-affix';
384
+ const COMPONENT_NAME$29 = 'vc-affix';
378
385
  const Affix = /* @__PURE__ */ vue.defineComponent({
379
- name: COMPONENT_NAME$28,
386
+ name: COMPONENT_NAME$29,
380
387
  emits: ['update:modelValue'],
381
- props: props$1s,
388
+ props: props$1t,
382
389
  setup(props, {
383
390
  slots,
384
391
  expose,
@@ -544,7 +551,7 @@
544
551
 
545
552
  const MAffix = Affix;
546
553
 
547
- const props$1r = {
554
+ const props$1s = {
548
555
  modelValue: {
549
556
  type: Boolean,
550
557
  default: true
@@ -571,7 +578,7 @@
571
578
  }
572
579
  };
573
580
 
574
- const props$1q = {
581
+ const props$1r = {
575
582
  type: String,
576
583
  inherit: {
577
584
  type: Boolean,
@@ -708,10 +715,10 @@
708
715
 
709
716
  /** @jsxImportSource vue */
710
717
 
711
- const COMPONENT_NAME$27 = 'vc-icon';
718
+ const COMPONENT_NAME$28 = 'vc-icon';
712
719
  const Icon = /* @__PURE__ */ vue.defineComponent({
713
- name: COMPONENT_NAME$27,
714
- props: props$1q,
720
+ name: COMPONENT_NAME$28,
721
+ props: props$1r,
715
722
  setup(props) {
716
723
  const viewBox = vue.ref('0 0 1024 1024');
717
724
  const path = vue.ref([]);
@@ -744,7 +751,7 @@
744
751
  }
745
752
  });
746
753
 
747
- const props$1p = {
754
+ const props$1q = {
748
755
  /**
749
756
  * 进入/离开持续时间
750
757
  * {enter: 300, leave: 300}
@@ -909,10 +916,10 @@
909
916
  };
910
917
  };
911
918
 
912
- const COMPONENT_NAME$26 = "vc-transition";
919
+ const COMPONENT_NAME$27 = "vc-transition";
913
920
  const Transition = vue.defineComponent({
914
- name: COMPONENT_NAME$26,
915
- props: props$1p,
921
+ name: COMPONENT_NAME$27,
922
+ props: props$1q,
916
923
  // 当不声明emits的情况下,事件存在于attrs中
917
924
  inheritAttrs: false,
918
925
  setup(props, { slots, attrs }) {
@@ -932,10 +939,10 @@
932
939
  }
933
940
  });
934
941
 
935
- const COMPONENT_NAME$25 = "vc-transition-collapse";
942
+ const COMPONENT_NAME$26 = "vc-transition-collapse";
936
943
  const TransitionCollapse = vue.defineComponent({
937
- name: COMPONENT_NAME$25,
938
- props: props$1p,
944
+ name: COMPONENT_NAME$26,
945
+ props: props$1q,
939
946
  // 当不声明emits的情况下,事件存在于attrs中
940
947
  inheritAttrs: false,
941
948
  setup(props, { slots, attrs: _attrs }) {
@@ -1049,11 +1056,11 @@
1049
1056
  }
1050
1057
  });
1051
1058
 
1052
- const COMPONENT_NAME$24 = "vc-transition-fade";
1059
+ const COMPONENT_NAME$25 = "vc-transition-fade";
1053
1060
  const TransitionFade = vue.defineComponent({
1054
- name: COMPONENT_NAME$24,
1061
+ name: COMPONENT_NAME$25,
1055
1062
  props: {
1056
- ...props$1p,
1063
+ ...props$1q,
1057
1064
  // inheritAttrs必须是false
1058
1065
  style: {
1059
1066
  type: Object,
@@ -1086,11 +1093,11 @@
1086
1093
  }
1087
1094
  });
1088
1095
 
1089
- const COMPONENT_NAME$23 = "vc-transition-scale";
1096
+ const COMPONENT_NAME$24 = "vc-transition-scale";
1090
1097
  const TransitionScale = vue.defineComponent({
1091
- name: COMPONENT_NAME$23,
1098
+ name: COMPONENT_NAME$24,
1092
1099
  props: {
1093
- ...props$1p,
1100
+ ...props$1q,
1094
1101
  mode: {
1095
1102
  type: String,
1096
1103
  default: "both",
@@ -1128,11 +1135,11 @@
1128
1135
  }
1129
1136
  });
1130
1137
 
1131
- const COMPONENT_NAME$22 = "vc-transition-slide";
1138
+ const COMPONENT_NAME$23 = "vc-transition-slide";
1132
1139
  const TransitionSlide = vue.defineComponent({
1133
- name: COMPONENT_NAME$22,
1140
+ name: COMPONENT_NAME$23,
1134
1141
  props: {
1135
- ...props$1p,
1142
+ ...props$1q,
1136
1143
  mode: {
1137
1144
  type: String,
1138
1145
  default: "left",
@@ -1170,11 +1177,11 @@
1170
1177
  }
1171
1178
  });
1172
1179
 
1173
- const COMPONENT_NAME$21 = "vc-transition-zoom";
1180
+ const COMPONENT_NAME$22 = "vc-transition-zoom";
1174
1181
  const TransitionZoom = vue.defineComponent({
1175
- name: COMPONENT_NAME$21,
1182
+ name: COMPONENT_NAME$22,
1176
1183
  props: {
1177
- ...props$1p,
1184
+ ...props$1q,
1178
1185
  mode: {
1179
1186
  type: String,
1180
1187
  default: "x",
@@ -1214,7 +1221,7 @@
1214
1221
 
1215
1222
  /** @jsxImportSource vue */
1216
1223
 
1217
- const COMPONENT_NAME$20 = 'vc-alert';
1224
+ const COMPONENT_NAME$21 = 'vc-alert';
1218
1225
 
1219
1226
  // [color, borderColor, backgroundColor], -> CSS
1220
1227
  const THEME_MAP = {
@@ -1224,8 +1231,8 @@
1224
1231
  warning: ['#ffbf00', '#ffe58f', '#fffbe6']
1225
1232
  };
1226
1233
  const Alert = /* @__PURE__ */ vue.defineComponent({
1227
- name: COMPONENT_NAME$20,
1228
- props: props$1r,
1234
+ name: COMPONENT_NAME$21,
1235
+ props: props$1s,
1229
1236
  setup(props, {
1230
1237
  slots,
1231
1238
  emit
@@ -1440,7 +1447,7 @@
1440
1447
  return flatten$1(value, JSON.parse);
1441
1448
  };
1442
1449
 
1443
- const props$1o = {
1450
+ const props$1p = {
1444
1451
  // canvas配置参数
1445
1452
  options: Object,
1446
1453
  width: {
@@ -1456,10 +1463,10 @@
1456
1463
  /** @jsxImportSource vue */
1457
1464
 
1458
1465
  const isTouch = typeof document !== 'undefined' && 'ontouchend' in document;
1459
- const COMPONENT_NAME$1$ = 'vc-artboard';
1466
+ const COMPONENT_NAME$20 = 'vc-artboard';
1460
1467
  const Artboard = /* @__PURE__ */ vue.defineComponent({
1461
- name: COMPONENT_NAME$1$,
1462
- props: props$1o,
1468
+ name: COMPONENT_NAME$20,
1469
+ props: props$1p,
1463
1470
  setup(props, {
1464
1471
  emit,
1465
1472
  expose
@@ -1662,7 +1669,7 @@
1662
1669
 
1663
1670
  const MArtboard = Artboard;
1664
1671
 
1665
- const props$1n = {
1672
+ const props$1o = {
1666
1673
  size: {
1667
1674
  type: Number,
1668
1675
  default: 28
@@ -1686,10 +1693,10 @@
1686
1693
 
1687
1694
  /** @jsxImportSource vue */
1688
1695
 
1689
- const COMPONENT_NAME$1_ = 'vc-spin';
1696
+ const COMPONENT_NAME$1$ = 'vc-spin';
1690
1697
  const Spin = /* @__PURE__ */ vue.defineComponent({
1691
- name: COMPONENT_NAME$1_,
1692
- props: props$1n,
1698
+ name: COMPONENT_NAME$1$,
1699
+ props: props$1o,
1693
1700
  setup(props, {
1694
1701
  slots
1695
1702
  }) {
@@ -6761,7 +6768,7 @@
6761
6768
  });
6762
6769
  }
6763
6770
 
6764
- const props$1m = {
6771
+ const props$1n = {
6765
6772
  wait: {
6766
6773
  type: Number,
6767
6774
  default: 250
@@ -6777,10 +6784,10 @@
6777
6784
  exclude: RegExp
6778
6785
  };
6779
6786
 
6780
- const COMPONENT_NAME$1Z = "vc-debounce";
6787
+ const COMPONENT_NAME$1_ = "vc-debounce";
6781
6788
  const Debounce = vue.defineComponent({
6782
- name: COMPONENT_NAME$1Z,
6783
- props: props$1m,
6789
+ name: COMPONENT_NAME$1_,
6790
+ props: props$1n,
6784
6791
  /**
6785
6792
  * 不声明emits使得事件被透传放入attrs中, 这样可以让所有的事件透传
6786
6793
  * 如事件onClick
@@ -6820,7 +6827,7 @@
6820
6827
  }
6821
6828
  });
6822
6829
 
6823
- const props$1l = {
6830
+ const props$1m = {
6824
6831
  tag: {
6825
6832
  type: String,
6826
6833
  default: "button"
@@ -6852,11 +6859,11 @@
6852
6859
 
6853
6860
  /** @jsxImportSource vue */
6854
6861
 
6855
- const COMPONENT_NAME$1Y = 'vc-button';
6862
+ const COMPONENT_NAME$1Z = 'vc-button';
6856
6863
  const Button = /* @__PURE__ */ vue.defineComponent({
6857
- name: COMPONENT_NAME$1Y,
6864
+ name: COMPONENT_NAME$1Z,
6858
6865
  emits: ['click'],
6859
- props: props$1l,
6866
+ props: props$1m,
6860
6867
  setup(props, {
6861
6868
  slots
6862
6869
  }) {
@@ -6917,7 +6924,7 @@
6917
6924
  }
6918
6925
  });
6919
6926
 
6920
- const props$1k = {
6927
+ const props$1l = {
6921
6928
  vertical: {
6922
6929
  type: Boolean,
6923
6930
  default: false
@@ -6938,10 +6945,10 @@
6938
6945
 
6939
6946
  /** @jsxImportSource vue */
6940
6947
 
6941
- const COMPONENT_NAME$1X = 'vc-button-group';
6948
+ const COMPONENT_NAME$1Y = 'vc-button-group';
6942
6949
  const ButtonGroup = /* @__PURE__ */ vue.defineComponent({
6943
- name: COMPONENT_NAME$1X,
6944
- props: props$1k,
6950
+ name: COMPONENT_NAME$1Y,
6951
+ props: props$1l,
6945
6952
  setup(props, {
6946
6953
  slots
6947
6954
  }) {
@@ -6965,7 +6972,7 @@
6965
6972
  const MButton = Button;
6966
6973
  const MButtonGroup = ButtonGroup;
6967
6974
 
6968
- const props$1j = {
6975
+ const props$1k = {
6969
6976
  tag: {
6970
6977
  type: String,
6971
6978
  default: "div"
@@ -6974,10 +6981,10 @@
6974
6981
 
6975
6982
  /** @jsxImportSource vue */
6976
6983
 
6977
- const COMPONENT_NAME$1W = 'vc-calendar';
6984
+ const COMPONENT_NAME$1X = 'vc-calendar';
6978
6985
  const Calendar$1 = /* @__PURE__ */ vue.defineComponent({
6979
- name: COMPONENT_NAME$1W,
6980
- props: props$1j,
6986
+ name: COMPONENT_NAME$1X,
6987
+ props: props$1k,
6981
6988
  setup(props, {
6982
6989
  slots
6983
6990
  }) {
@@ -6991,7 +6998,7 @@
6991
6998
 
6992
6999
  const MCalendar = Calendar$1;
6993
7000
 
6994
- const props$1i = {
7001
+ const props$1j = {
6995
7002
  border: {
6996
7003
  type: Boolean,
6997
7004
  default: true
@@ -7014,10 +7021,10 @@
7014
7021
 
7015
7022
  /** @jsxImportSource vue */
7016
7023
 
7017
- const COMPONENT_NAME$1V = 'vc-card';
7024
+ const COMPONENT_NAME$1W = 'vc-card';
7018
7025
  const Card = /* @__PURE__ */ vue.defineComponent({
7019
- name: COMPONENT_NAME$1V,
7020
- props: props$1i,
7026
+ name: COMPONENT_NAME$1W,
7027
+ props: props$1j,
7021
7028
  setup(props, {
7022
7029
  slots
7023
7030
  }) {
@@ -7043,7 +7050,7 @@
7043
7050
 
7044
7051
  const MCard = Card;
7045
7052
 
7046
- const props$1h = {
7053
+ const props$1i = {
7047
7054
  tag: {
7048
7055
  type: String,
7049
7056
  default: "div"
@@ -7052,10 +7059,10 @@
7052
7059
 
7053
7060
  /** @jsxImportSource vue */
7054
7061
 
7055
- const COMPONENT_NAME$1U = 'vc-carousel';
7062
+ const COMPONENT_NAME$1V = 'vc-carousel';
7056
7063
  const Carousel = /* @__PURE__ */ vue.defineComponent({
7057
- name: COMPONENT_NAME$1U,
7058
- props: props$1h,
7064
+ name: COMPONENT_NAME$1V,
7065
+ props: props$1i,
7059
7066
  setup(props, {
7060
7067
  slots
7061
7068
  }) {
@@ -7159,7 +7166,7 @@
7159
7166
  });
7160
7167
  };
7161
7168
 
7162
- const props$1g = {
7169
+ const props$1h = {
7163
7170
  // Array, 作为select等数组存放临时值
7164
7171
  modelValue: [String, Number, Array],
7165
7172
  disabled: {
@@ -7411,12 +7418,12 @@
7411
7418
 
7412
7419
  /** @jsxImportSource vue */
7413
7420
 
7414
- const COMPONENT_NAME$1T = 'vc-input';
7421
+ const COMPONENT_NAME$1U = 'vc-input';
7415
7422
  const Input$1 = /* @__PURE__ */ vue.defineComponent({
7416
- name: COMPONENT_NAME$1T,
7423
+ name: COMPONENT_NAME$1U,
7417
7424
  inheritAttrs: false,
7418
7425
  props: {
7419
- ...props$1g,
7426
+ ...props$1h,
7420
7427
  indicator: {
7421
7428
  type: [Boolean, Object],
7422
7429
  default: false
@@ -7518,8 +7525,8 @@
7518
7525
  }
7519
7526
  });
7520
7527
 
7521
- const props$1f = {
7522
- ...props$1g,
7528
+ const props$1g = {
7529
+ ...props$1h,
7523
7530
  min: {
7524
7531
  type: Number,
7525
7532
  default: 0
@@ -7748,10 +7755,10 @@
7748
7755
 
7749
7756
  /** @jsxImportSource vue */
7750
7757
 
7751
- const COMPONENT_NAME$1S = 'vc-input-number';
7758
+ const COMPONENT_NAME$1T = 'vc-input-number';
7752
7759
  const InputNumber = /* @__PURE__ */ vue.defineComponent({
7753
- name: COMPONENT_NAME$1S,
7754
- props: props$1f,
7760
+ name: COMPONENT_NAME$1T,
7761
+ props: props$1g,
7755
7762
  inheritAttrs: false,
7756
7763
  setup(props, {
7757
7764
  slots,
@@ -7804,8 +7811,8 @@
7804
7811
  }
7805
7812
  });
7806
7813
 
7807
- const props$1e = {
7808
- ...props$1g,
7814
+ const props$1f = {
7815
+ ...props$1h,
7809
7816
  enterText: {
7810
7817
  type: [Boolean, String],
7811
7818
  default: true
@@ -7814,10 +7821,10 @@
7814
7821
 
7815
7822
  /** @jsxImportSource vue */
7816
7823
 
7817
- const COMPONENT_NAME$1R = 'vc-input-search';
7824
+ const COMPONENT_NAME$1S = 'vc-input-search';
7818
7825
  const InputSearch = /* @__PURE__ */ vue.defineComponent({
7819
- name: COMPONENT_NAME$1R,
7820
- props: props$1e,
7826
+ name: COMPONENT_NAME$1S,
7827
+ props: props$1f,
7821
7828
  inheritAttrs: false,
7822
7829
  setup(props, {
7823
7830
  emit,
@@ -7849,7 +7856,7 @@
7849
7856
  }
7850
7857
  });
7851
7858
 
7852
- const props$1d = {
7859
+ const props$1e = {
7853
7860
  modelValue: Boolean,
7854
7861
  animation: String,
7855
7862
  placement: {
@@ -7928,7 +7935,7 @@
7928
7935
  "autoWidth",
7929
7936
  "always"
7930
7937
  ];
7931
- const props$1c = {
7938
+ const props$1d = {
7932
7939
  trigger: {
7933
7940
  type: String,
7934
7941
  default: "hover",
@@ -7946,7 +7953,7 @@
7946
7953
  type: Boolean,
7947
7954
  default: true
7948
7955
  },
7949
- ...pick(props$1d, wrapperKeys)
7956
+ ...pick(props$1e, wrapperKeys)
7950
7957
  };
7951
7958
 
7952
7959
  class Resize {
@@ -8265,17 +8272,17 @@
8265
8272
  };
8266
8273
  };
8267
8274
 
8268
- const props$1b = {
8275
+ const props$1c = {
8269
8276
  render: {
8270
8277
  type: Function,
8271
8278
  default: () => null
8272
8279
  }
8273
8280
  };
8274
8281
 
8275
- const COMPONENT_NAME$1Q = "vc-customer";
8282
+ const COMPONENT_NAME$1R = "vc-customer";
8276
8283
  const Customer = vue.defineComponent({
8277
- name: COMPONENT_NAME$1Q,
8278
- props: props$1b,
8284
+ name: COMPONENT_NAME$1R,
8285
+ props: props$1c,
8279
8286
  setup(props, context) {
8280
8287
  return () => vue.h(() => {
8281
8288
  return props.render(context.attrs, context);
@@ -8409,7 +8416,7 @@
8409
8416
  }
8410
8417
  }
8411
8418
 
8412
- const COMPONENT_NAME$1P = "vc-portal";
8419
+ const COMPONENT_NAME$1Q = "vc-portal";
8413
8420
  class Portal {
8414
8421
  /**
8415
8422
  * 清理Portals类型组件
@@ -8459,7 +8466,7 @@
8459
8466
  this.wrapper = wrapper;
8460
8467
  this.globalOptions = {
8461
8468
  ...options,
8462
- name: options?.name || wrapper.name || getUid(COMPONENT_NAME$1P)
8469
+ name: options?.name || wrapper.name || getUid(COMPONENT_NAME$1Q)
8463
8470
  };
8464
8471
  }
8465
8472
  popup(propsData, options) {
@@ -8557,7 +8564,7 @@
8557
8564
  ...rest
8558
8565
  } = options;
8559
8566
  let useAllNodes = fragment;
8560
- const name = multiple ? `${name$}__${getUid(COMPONENT_NAME$1P)}` : name$;
8567
+ const name = multiple ? `${name$}__${getUid(COMPONENT_NAME$1Q)}` : name$;
8561
8568
  const container = document.createElement(tag);
8562
8569
  const root = typeof el === "object" ? el : document.querySelector(el || "body");
8563
8570
  !alive && Portal.leafs.get(name)?.destroy();
@@ -8591,7 +8598,7 @@
8591
8598
  } else {
8592
8599
  const wrapper = this.wrapper;
8593
8600
  const app = vue.createApp({
8594
- name: COMPONENT_NAME$1P,
8601
+ name: COMPONENT_NAME$1Q,
8595
8602
  parent,
8596
8603
  setup() {
8597
8604
  if (alive) {
@@ -8695,21 +8702,21 @@
8695
8702
  }
8696
8703
  }
8697
8704
 
8698
- const props$1a = {
8705
+ const props$1b = {
8699
8706
  tag: {
8700
8707
  type: String,
8701
8708
  default: "div"
8702
8709
  }
8703
8710
  };
8704
8711
 
8705
- const COMPONENT_NAME$1O = 'vc-portal-view';
8712
+ const COMPONENT_NAME$1P = 'vc-portal-view';
8706
8713
 
8707
8714
  /**
8708
8715
  * 写法不同,但与vue@2.x 保持一致
8709
8716
  */
8710
8717
  const PortalView = /* @__PURE__ */ vue.defineComponent({
8711
- name: COMPONENT_NAME$1O,
8712
- props: props$1a,
8718
+ name: COMPONENT_NAME$1P,
8719
+ props: props$1b,
8713
8720
  setup(props, {
8714
8721
  slots
8715
8722
  }) {
@@ -8728,10 +8735,10 @@
8728
8735
 
8729
8736
  /** @jsxImportSource vue */
8730
8737
 
8731
- const COMPONENT_NAME$1N = 'vc-popover-wrapper';
8738
+ const COMPONENT_NAME$1O = 'vc-popover-wrapper';
8732
8739
  const PopoverWrapper = /* @__PURE__ */ vue.defineComponent({
8733
- name: COMPONENT_NAME$1N,
8734
- props: props$1d,
8740
+ name: COMPONENT_NAME$1O,
8741
+ props: props$1e,
8735
8742
  emits: ['portal-fulfilled', 'close'],
8736
8743
  setup(props, {
8737
8744
  emit,
@@ -8988,10 +8995,10 @@
8988
8995
 
8989
8996
  /** @jsxImportSource vue */
8990
8997
 
8991
- const COMPONENT_NAME$1M = 'vc-popover';
8998
+ const COMPONENT_NAME$1N = 'vc-popover';
8992
8999
  const Popover$1 = /* @__PURE__ */ vue.defineComponent({
8993
- name: COMPONENT_NAME$1M,
8994
- props: props$1c,
9000
+ name: COMPONENT_NAME$1N,
9001
+ props: props$1d,
8995
9002
  emits: ['update:modelValue', 'visible-change', 'ready', 'close'],
8996
9003
  setup(props, {
8997
9004
  emit,
@@ -9134,9 +9141,9 @@
9134
9141
 
9135
9142
  /** @jsxImportSource vue */
9136
9143
 
9137
- const COMPONENT_NAME$1L = 'vc-cascader-column';
9144
+ const COMPONENT_NAME$1M = 'vc-cascader-column';
9138
9145
  const CascaderColumn = /* @__PURE__ */ vue.defineComponent({
9139
- name: COMPONENT_NAME$1L,
9146
+ name: COMPONENT_NAME$1M,
9140
9147
  emits: ['click', 'change'],
9141
9148
  props: {
9142
9149
  data: {
@@ -9254,9 +9261,9 @@
9254
9261
  "portal",
9255
9262
  "portalClass"
9256
9263
  ];
9257
- const props$19 = {
9258
- ...pick(props$1c, popoverKeys$1),
9259
- ...pick(props$1g, inputKeys$2),
9264
+ const props$1a = {
9265
+ ...pick(props$1d, popoverKeys$1),
9266
+ ...pick(props$1h, inputKeys$2),
9260
9267
  renderOption: [Function],
9261
9268
  renderOptionGroup: [Function],
9262
9269
  data: {
@@ -9322,8 +9329,8 @@
9322
9329
  label: String
9323
9330
  };
9324
9331
 
9325
- const props$18 = {
9326
- ...props$19,
9332
+ const props$19 = {
9333
+ ...props$1a,
9327
9334
  data: {
9328
9335
  type: Array,
9329
9336
  default: () => []
@@ -9344,11 +9351,11 @@
9344
9351
 
9345
9352
  /** @jsxImportSource vue */
9346
9353
 
9347
- const COMPONENT_NAME$1K = 'vc-cascader';
9354
+ const COMPONENT_NAME$1L = 'vc-cascader';
9348
9355
  const Cascader = /* @__PURE__ */ vue.defineComponent({
9349
- name: COMPONENT_NAME$1K,
9356
+ name: COMPONENT_NAME$1L,
9350
9357
  inheritAttrs: false,
9351
- props: props$18,
9358
+ props: props$19,
9352
9359
  emits: ['update:modelValue', 'visible-change', 'ready', 'change', 'close'],
9353
9360
  setup(props, {
9354
9361
  emit,
@@ -9684,7 +9691,7 @@
9684
9691
  "contextmenu"
9685
9692
  ];
9686
9693
 
9687
- const props$17 = {
9694
+ const props$18 = {
9688
9695
  options: Object,
9689
9696
  pluginOptions: Object,
9690
9697
  theme: [String, Object],
@@ -9699,10 +9706,10 @@
9699
9706
 
9700
9707
  /** @jsxImportSource vue */
9701
9708
 
9702
- const COMPONENT_NAME$1J = 'vc-chart';
9709
+ const COMPONENT_NAME$1K = 'vc-chart';
9703
9710
  const Chart = /* @__PURE__ */ vue.defineComponent({
9704
- name: COMPONENT_NAME$1J,
9705
- props: props$17,
9711
+ name: COMPONENT_NAME$1K,
9712
+ props: props$18,
9706
9713
  emits: [...EVENTS$1, 'ready'],
9707
9714
  setup(props, {
9708
9715
  emit,
@@ -9806,6 +9813,8 @@
9806
9813
  }
9807
9814
  });
9808
9815
  });
9816
+
9817
+ // 如果存在内存泄漏,chart.value.getOption() 获取配置项,查看series参数等情况
9809
9818
  expose({
9810
9819
  chart,
9811
9820
  refresh
@@ -9822,7 +9831,7 @@
9822
9831
 
9823
9832
  const MChart = Chart;
9824
9833
 
9825
- const props$16 = {
9834
+ const props$17 = {
9826
9835
  disabled: {
9827
9836
  type: Boolean,
9828
9837
  default: false
@@ -9938,10 +9947,10 @@
9938
9947
 
9939
9948
  /** @jsxImportSource vue */
9940
9949
 
9941
- const COMPONENT_NAME$1I = 'vc-checkbox';
9950
+ const COMPONENT_NAME$1J = 'vc-checkbox';
9942
9951
  const Checkbox = /* @__PURE__ */ vue.defineComponent({
9943
- name: COMPONENT_NAME$1I,
9944
- props: props$16,
9952
+ name: COMPONENT_NAME$1J,
9953
+ props: props$17,
9945
9954
  emits: ['update:modelValue', 'change'],
9946
9955
  setup(props, {
9947
9956
  slots
@@ -9978,7 +9987,7 @@
9978
9987
  }
9979
9988
  });
9980
9989
 
9981
- const props$15 = {
9990
+ const props$16 = {
9982
9991
  modelValue: {
9983
9992
  type: Array,
9984
9993
  default: () => []
@@ -10027,10 +10036,10 @@
10027
10036
 
10028
10037
  /** @jsxImportSource vue */
10029
10038
 
10030
- const COMPONENT_NAME$1H = 'vc-checkbox-group';
10039
+ const COMPONENT_NAME$1I = 'vc-checkbox-group';
10031
10040
  const CheckboxGroup = /* @__PURE__ */ vue.defineComponent({
10032
- name: COMPONENT_NAME$1H,
10033
- props: props$15,
10041
+ name: COMPONENT_NAME$1I,
10042
+ props: props$16,
10034
10043
  emits: ['update:modelValue', 'change'],
10035
10044
  setup(props, {
10036
10045
  slots
@@ -10047,10 +10056,10 @@
10047
10056
 
10048
10057
  /** @jsxImportSource vue */
10049
10058
 
10050
- const COMPONENT_NAME$1G = 'vcm-checkbox';
10059
+ const COMPONENT_NAME$1H = 'vcm-checkbox';
10051
10060
  const MCheckbox = /* @__PURE__ */ vue.defineComponent({
10052
- name: COMPONENT_NAME$1G,
10053
- props: props$16,
10061
+ name: COMPONENT_NAME$1H,
10062
+ props: props$17,
10054
10063
  emits: ['update:modelValue', 'change'],
10055
10064
  setup(props, {
10056
10065
  slots
@@ -10089,10 +10098,10 @@
10089
10098
 
10090
10099
  /** @jsxImportSource vue */
10091
10100
 
10092
- const COMPONENT_NAME$1F = 'vcm-checkbox-group';
10101
+ const COMPONENT_NAME$1G = 'vcm-checkbox-group';
10093
10102
  const MCheckboxGroup = /* @__PURE__ */ vue.defineComponent({
10094
- name: COMPONENT_NAME$1F,
10095
- props: props$15,
10103
+ name: COMPONENT_NAME$1G,
10104
+ props: props$16,
10096
10105
  emits: ['update:modelValue', 'change'],
10097
10106
  setup(props, {
10098
10107
  slots
@@ -10107,7 +10116,7 @@
10107
10116
  }
10108
10117
  });
10109
10118
 
10110
- const props$14 = {
10119
+ const props$15 = {
10111
10120
  content: [String, Function],
10112
10121
  mask: {
10113
10122
  type: Boolean,
@@ -10145,11 +10154,11 @@
10145
10154
 
10146
10155
  /** @jsxImportSource vue */
10147
10156
 
10148
- const COMPONENT_NAME$1E = 'vc-message';
10157
+ const COMPONENT_NAME$1F = 'vc-message';
10149
10158
  const MessageView = /* @__PURE__ */ vue.defineComponent({
10150
- name: COMPONENT_NAME$1E,
10159
+ name: COMPONENT_NAME$1F,
10151
10160
  emits: ['before-close', 'close', 'portal-fulfilled'],
10152
- props: props$14,
10161
+ props: props$15,
10153
10162
  setup(props, {
10154
10163
  emit,
10155
10164
  expose
@@ -10279,7 +10288,7 @@
10279
10288
  const error$3 = create$7({ mode: "error" });
10280
10289
  const Message = Object.assign(MessageView, { destroy: destroy$5, info: info$3, success: success$3, loading: loading$1, warning: warning$3, error: error$3 });
10281
10290
 
10282
- const props$13 = {
10291
+ const props$14 = {
10283
10292
  value: String,
10284
10293
  tag: {
10285
10294
  type: [String, Object, Function],
@@ -10396,10 +10405,10 @@
10396
10405
  return () => vue.h(props.tag, { onClick: handleClick, class: "vc-clipboard" }, slots?.default?.());
10397
10406
  };
10398
10407
 
10399
- const COMPONENT_NAME$1D = "vc-clipboard";
10408
+ const COMPONENT_NAME$1E = "vc-clipboard";
10400
10409
  const Clipboard$2 = vue.defineComponent({
10401
- name: COMPONENT_NAME$1D,
10402
- props: props$13,
10410
+ name: COMPONENT_NAME$1E,
10411
+ props: props$14,
10403
10412
  setup() {
10404
10413
  return useClipboard((content) => Message.success({ content }));
10405
10414
  }
@@ -10407,7 +10416,7 @@
10407
10416
 
10408
10417
  const Clipboard$1 = Object.assign(Clipboard$2, group);
10409
10418
 
10410
- const props$12 = {
10419
+ const props$13 = {
10411
10420
  content: [String, Function],
10412
10421
  maskClosable: {
10413
10422
  type: Boolean,
@@ -10438,11 +10447,11 @@
10438
10447
 
10439
10448
  /** @jsxImportSource vue */
10440
10449
 
10441
- const COMPONENT_NAME$1C = 'vcm-toast';
10450
+ const COMPONENT_NAME$1D = 'vcm-toast';
10442
10451
  const MToastView = /* @__PURE__ */ vue.defineComponent({
10443
- name: COMPONENT_NAME$1C,
10452
+ name: COMPONENT_NAME$1D,
10444
10453
  emits: ['close', 'portal-fulfilled'],
10445
- props: props$12,
10454
+ props: props$13,
10446
10455
  setup(props, {
10447
10456
  emit,
10448
10457
  expose
@@ -10542,10 +10551,10 @@
10542
10551
  const error$2 = create$6({ mode: "error" });
10543
10552
  const MToast = Object.assign(MToastView, { destroy: destroy$4, info: info$2, success: success$2, loading, warning: warning$2, error: error$2 });
10544
10553
 
10545
- const COMPONENT_NAME$1B = "vcm-clipboard";
10554
+ const COMPONENT_NAME$1C = "vcm-clipboard";
10546
10555
  const MClipboard$1 = vue.defineComponent({
10547
- name: COMPONENT_NAME$1B,
10548
- props: props$13,
10556
+ name: COMPONENT_NAME$1C,
10557
+ props: props$14,
10549
10558
  setup() {
10550
10559
  return useClipboard((content) => MToast.info({ content }));
10551
10560
  }
@@ -10553,7 +10562,7 @@
10553
10562
 
10554
10563
  const MClipboard = Object.assign(MClipboard$1, group);
10555
10564
 
10556
- const props$11 = {
10565
+ const props$12 = {
10557
10566
  tag: {
10558
10567
  type: String,
10559
10568
  default: "div"
@@ -10576,10 +10585,10 @@
10576
10585
  }
10577
10586
  };
10578
10587
 
10579
- const COMPONENT_NAME$1A = "vc-collapse";
10588
+ const COMPONENT_NAME$1B = "vc-collapse";
10580
10589
  const Collapse = vue.defineComponent({
10581
- name: COMPONENT_NAME$1A,
10582
- props: props$11,
10590
+ name: COMPONENT_NAME$1B,
10591
+ props: props$12,
10583
10592
  emits: ["update:moodelValue", "change"],
10584
10593
  setup(props, { slots, emit }) {
10585
10594
  const instance = vue.getCurrentInstance();
@@ -10664,7 +10673,7 @@
10664
10673
  }
10665
10674
  });
10666
10675
 
10667
- const props$10 = {
10676
+ const props$11 = {
10668
10677
  tag: {
10669
10678
  type: String,
10670
10679
  default: "div"
@@ -10674,7 +10683,7 @@
10674
10683
  }
10675
10684
  };
10676
10685
 
10677
- const props$$ = {
10686
+ const props$10 = {
10678
10687
  tag: {
10679
10688
  type: String,
10680
10689
  default: "div"
@@ -10692,13 +10701,13 @@
10692
10701
 
10693
10702
  /** @jsxImportSource vue */
10694
10703
 
10695
- function _isSlot$2(s) {
10704
+ function _isSlot$3(s) {
10696
10705
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
10697
10706
  }
10698
- const COMPONENT_NAME$1z = 'vc-expand';
10707
+ const COMPONENT_NAME$1A = 'vc-expand';
10699
10708
  const Expand$1 = /* @__PURE__ */ vue.defineComponent({
10700
- name: COMPONENT_NAME$1z,
10701
- props: props$$,
10709
+ name: COMPONENT_NAME$1A,
10710
+ props: props$10,
10702
10711
  setup(props, {
10703
10712
  slots
10704
10713
  }) {
@@ -10716,7 +10725,7 @@
10716
10725
  enter: 200,
10717
10726
  leave: 200
10718
10727
  }
10719
- }, _isSlot$2(_slot = vue.withDirectives(vue.createVNode(Content, null, {
10728
+ }, _isSlot$3(_slot = vue.withDirectives(vue.createVNode(Content, null, {
10720
10729
  default: () => [(props.alive || !props.alive && isActive.value) && slots.default?.()]
10721
10730
  }), [[vue.vShow, isActive.value]])) ? _slot : {
10722
10731
  default: () => [_slot]
@@ -10727,10 +10736,10 @@
10727
10736
 
10728
10737
  /** @jsxImportSource vue */
10729
10738
 
10730
- const COMPONENT_NAME$1y = 'vc-collapse-item';
10739
+ const COMPONENT_NAME$1z = 'vc-collapse-item';
10731
10740
  const CollapseItem = /* @__PURE__ */ vue.defineComponent({
10732
- name: COMPONENT_NAME$1y,
10733
- props: props$10,
10741
+ name: COMPONENT_NAME$1z,
10742
+ props: props$11,
10734
10743
  setup(props, {
10735
10744
  slots,
10736
10745
  expose
@@ -10795,7 +10804,7 @@
10795
10804
  const MCollapse = Collapse;
10796
10805
  const MCollapseItem = CollapseItem;
10797
10806
 
10798
- const props$_ = {
10807
+ const props$$ = {
10799
10808
  tag: {
10800
10809
  type: String,
10801
10810
  default: "div"
@@ -10804,10 +10813,10 @@
10804
10813
 
10805
10814
  /** @jsxImportSource vue */
10806
10815
 
10807
- const COMPONENT_NAME$1x = 'vc-color-picker';
10816
+ const COMPONENT_NAME$1y = 'vc-color-picker';
10808
10817
  const ColorPicker$1 = /* @__PURE__ */ vue.defineComponent({
10809
- name: COMPONENT_NAME$1x,
10810
- props: props$_,
10818
+ name: COMPONENT_NAME$1y,
10819
+ props: props$$,
10811
10820
  setup(props, {
10812
10821
  slots
10813
10822
  }) {
@@ -10821,7 +10830,7 @@
10821
10830
 
10822
10831
  const MColorPicker = ColorPicker$1;
10823
10832
 
10824
- const props$Z = {
10833
+ const props$_ = {
10825
10834
  tag: {
10826
10835
  type: String,
10827
10836
  default: "span"
@@ -10866,14 +10875,14 @@
10866
10875
 
10867
10876
  /** @jsxImportSource vue */
10868
10877
 
10869
- function _isSlot$1(s) {
10878
+ function _isSlot$2(s) {
10870
10879
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
10871
10880
  }
10872
- const COMPONENT_NAME$1w = 'vc-countdown';
10881
+ const COMPONENT_NAME$1x = 'vc-countdown';
10873
10882
  const Countdown = /* @__PURE__ */ vue.defineComponent({
10874
- name: COMPONENT_NAME$1w,
10875
- props: props$Z,
10876
- emits: ['change', 'finish', 'error'],
10883
+ name: COMPONENT_NAME$1x,
10884
+ props: props$_,
10885
+ emits: ['change', 'complete', 'error'],
10877
10886
  setup(props, {
10878
10887
  emit,
10879
10888
  slots
@@ -10963,7 +10972,7 @@
10963
10972
  second: '00',
10964
10973
  millisecond: '00'
10965
10974
  });
10966
- emit('finish');
10975
+ emit('complete');
10967
10976
  } else {
10968
10977
  emit('change', {
10969
10978
  timestamp,
@@ -11001,7 +11010,7 @@
11001
11010
  return (// @ts-ignore
11002
11011
  vue.createVNode(Content, {
11003
11012
  "class": "vc-countdown"
11004
- }, _isSlot$1(_slot = slots.default(binds.value)) ? _slot : {
11013
+ }, _isSlot$2(_slot = slots.default(binds.value)) ? _slot : {
11005
11014
  default: () => [_slot]
11006
11015
  })
11007
11016
  );
@@ -11024,6 +11033,345 @@
11024
11033
 
11025
11034
  const MCountdown = Countdown;
11026
11035
 
11036
+ const props$Z = {
11037
+ tag: {
11038
+ type: String,
11039
+ default: "span"
11040
+ },
11041
+ value: [Number, String],
11042
+ placeholder: String,
11043
+ precision: {
11044
+ type: Number,
11045
+ default: 0
11046
+ },
11047
+ duration: {
11048
+ type: Number,
11049
+ default: 500
11050
+ },
11051
+ decimal: {
11052
+ type: String,
11053
+ default: "."
11054
+ },
11055
+ separator: {
11056
+ type: String,
11057
+ default: ","
11058
+ },
11059
+ numerals: {
11060
+ type: Array,
11061
+ default: () => []
11062
+ },
11063
+ smartEasingThreshold: {
11064
+ type: Number,
11065
+ default: 999
11066
+ },
11067
+ smartEasingAmount: {
11068
+ type: Number,
11069
+ default: 333
11070
+ },
11071
+ easing: {
11072
+ type: [Function, Boolean],
11073
+ default: true
11074
+ },
11075
+ // 10.90 -> 10.9
11076
+ zeroless: {
11077
+ type: Boolean,
11078
+ default: false
11079
+ },
11080
+ // 为true时,自行管理start/update
11081
+ controllable: {
11082
+ type: Boolean,
11083
+ default: false
11084
+ },
11085
+ render: Function
11086
+ };
11087
+
11088
+ const separated2value = (value, options) => {
11089
+ if (typeof value === "number" || typeof value !== "string") return value;
11090
+ const escapeRegExp = (s) => s.replace(/([.,' ])/g, "\\$1");
11091
+ const sep = escapeRegExp(options.separator);
11092
+ const dec = escapeRegExp(options.decimal);
11093
+ const num = (value || "").replace(new RegExp(sep, "g"), "").replace(new RegExp(dec, "g"), ".");
11094
+ return parseFloat(num);
11095
+ };
11096
+ const value2separated = (value, options) => {
11097
+ const num = typeof value === "number" ? value : parseFloat(value);
11098
+ if (value === "" || Number.isNaN(num)) {
11099
+ return {
11100
+ negative: "",
11101
+ integer: "",
11102
+ decimal: "",
11103
+ separated: "",
11104
+ float: "",
11105
+ value: ""
11106
+ };
11107
+ }
11108
+ const negative = num < 0 ? "-" : "";
11109
+ let [integer, decimal = ""] = `${Math.abs(num)}`.split(".");
11110
+ let separated = integer;
11111
+ if (options.separator) {
11112
+ let v = "";
11113
+ let j = 0;
11114
+ const factor = 3;
11115
+ for (let i = 0, len = separated.length; i < len; ++i) {
11116
+ if (i !== 0 && j % factor === 0) {
11117
+ v = options.separator + v;
11118
+ }
11119
+ j++;
11120
+ v = separated[len - i - 1] + v;
11121
+ }
11122
+ separated = v;
11123
+ }
11124
+ const precision$ = options.zeroless ? Math.min(options.precision, decimal.length) : options.precision;
11125
+ if (precision$) {
11126
+ decimal = decimal.slice(0, precision$).padEnd(precision$, "0");
11127
+ } else {
11128
+ decimal = "";
11129
+ }
11130
+ if (options?.numerals?.length) {
11131
+ separated = separated.replace(/[0-9]/g, (w) => options.numerals[+w]);
11132
+ decimal = decimal.replace(/[0-9]/g, (w) => options.numerals[+w]);
11133
+ }
11134
+ const _decimal = decimal ? options.decimal + decimal : "";
11135
+ return {
11136
+ negative,
11137
+ integer,
11138
+ decimal,
11139
+ separated,
11140
+ float: `${negative}${integer}${_decimal}`,
11141
+ value: `${negative}${separated}${_decimal}`
11142
+ };
11143
+ };
11144
+
11145
+ /** @jsxImportSource vue */
11146
+
11147
+ function _isSlot$1(s) {
11148
+ return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
11149
+ }
11150
+ const COMPONENT_NAME$1w = 'vc-counter';
11151
+ const Counter = /* @__PURE__ */ vue.defineComponent({
11152
+ name: COMPONENT_NAME$1w,
11153
+ props: props$Z,
11154
+ emits: ['begin', 'complete', 'change'],
11155
+ setup(props, {
11156
+ emit,
11157
+ expose,
11158
+ slots
11159
+ }) {
11160
+ const startTime = vue.ref(null);
11161
+ const duration = vue.ref(props.duration);
11162
+ const remaining = vue.ref(duration.value);
11163
+ const startVal = vue.ref(0);
11164
+ const endVal = vue.ref(separated2value(props.value, props));
11165
+ const frameVal = vue.ref(startVal.value);
11166
+ const finalEndVal = vue.ref(null);
11167
+ const useEasing = vue.ref(!!props.easing);
11168
+ const isStart = vue.ref(false);
11169
+ const isPaused = vue.ref(false);
11170
+ const isComplete = vue.ref(false);
11171
+ const countdown = vue.ref(false);
11172
+ const rAF = vue.ref(null);
11173
+ const prints = vue.reactive({
11174
+ negative: '',
11175
+ integer: '',
11176
+ decimal: '',
11177
+ separated: '',
11178
+ float: '',
11179
+ value: ''
11180
+ });
11181
+
11182
+ // t: current time, b: beginning value, c: change in value, d: duration
11183
+ const easing = vue.computed(() => {
11184
+ return typeof props.easing === 'function' ? props.easing : (t, b, c, d) => c * (-Math.pow(2, -10 * t / d) + 1) * 1024 / 1023 + b;
11185
+ });
11186
+ const displayValue = vue.computed(() => {
11187
+ if (props.value === '' || typeof props.value !== 'string' && typeof props.value !== 'number') {
11188
+ return props.placeholder;
11189
+ }
11190
+ return prints.value;
11191
+ });
11192
+ const binds = vue.computed(() => {
11193
+ return {
11194
+ ...prints,
11195
+ value: displayValue.value
11196
+ };
11197
+ });
11198
+ const determineDirectionAndSmartEasing = () => {
11199
+ const v = finalEndVal.value !== null ? finalEndVal.value : endVal.value;
11200
+ countdown.value = startVal.value > v;
11201
+ const animateAmount = v - startVal.value;
11202
+ if (Math.abs(animateAmount) > props.smartEasingThreshold && props.easing) {
11203
+ finalEndVal.value = v;
11204
+ const up = countdown.value ? 1 : -1;
11205
+ endVal.value = v + up * props.smartEasingAmount;
11206
+ duration.value = duration.value / 2;
11207
+ } else {
11208
+ endVal.value = v;
11209
+ finalEndVal.value = null;
11210
+ }
11211
+ if (finalEndVal.value !== null) {
11212
+ useEasing.value = false;
11213
+ } else {
11214
+ useEasing.value = !!props.easing;
11215
+ }
11216
+ };
11217
+ const run = () => {
11218
+ const done = timestamp => {
11219
+ if (!startTime.value) {
11220
+ startTime.value = timestamp;
11221
+ }
11222
+ const progress = timestamp - startTime.value;
11223
+ remaining.value = duration.value - progress;
11224
+ if (useEasing.value) {
11225
+ if (countdown.value) {
11226
+ frameVal.value = startVal.value - easing.value(progress, 0, startVal.value - endVal.value, duration.value);
11227
+ } else {
11228
+ frameVal.value = easing.value(progress, startVal.value, endVal.value - startVal.value, duration.value);
11229
+ }
11230
+ } else {
11231
+ frameVal.value = startVal.value + (endVal.value - startVal.value) * (progress / duration.value);
11232
+ }
11233
+ const wentPast = countdown.value ? frameVal.value < endVal.value : frameVal.value > endVal.value;
11234
+ frameVal.value = wentPast ? endVal.value : frameVal.value;
11235
+ print(frameVal.value);
11236
+ if (progress < duration.value) {
11237
+ rAF.value = requestAnimationFrame(done);
11238
+ } else if (finalEndVal.value !== null) {
11239
+ update(finalEndVal.value);
11240
+ } else {
11241
+ emit('complete');
11242
+ isComplete.value = true;
11243
+ }
11244
+ };
11245
+ determineDirectionAndSmartEasing();
11246
+ rAF.value = requestAnimationFrame(done);
11247
+ };
11248
+ const print = num => {
11249
+ Object.assign(prints, value2separated(num, props));
11250
+ emit('change', prints);
11251
+ };
11252
+ const resetDuration = () => {
11253
+ startTime.value = null;
11254
+ duration.value = props.duration;
11255
+ remaining.value = duration.value;
11256
+ };
11257
+ const cancel = () => {
11258
+ if (rAF.value === null || typeof rAF.value === 'undefined') return;
11259
+ cancelAnimationFrame(rAF.value);
11260
+ };
11261
+ const start = () => {
11262
+ if (isComplete.value || isStart.value) return;
11263
+ cancel();
11264
+ resetDuration();
11265
+ isPaused.value = false;
11266
+ isComplete.value = false;
11267
+ startVal.value = 0;
11268
+ frameVal.value = 0;
11269
+ isStart.value = true;
11270
+ emit('begin');
11271
+ if (duration.value > 0) {
11272
+ run();
11273
+ } else {
11274
+ print(endVal.value);
11275
+ }
11276
+ };
11277
+ const pause = () => {
11278
+ if (isComplete.value) return;
11279
+ if (!isPaused.value) {
11280
+ cancel();
11281
+ }
11282
+ isPaused.value = true;
11283
+ };
11284
+ const resume = () => {
11285
+ if (isComplete.value) return;
11286
+ if (isPaused.value) {
11287
+ startTime.value = null;
11288
+ duration.value = remaining.value;
11289
+ startVal.value = frameVal.value;
11290
+ run();
11291
+ }
11292
+ isPaused.value = false;
11293
+ };
11294
+ const update = newEndVal => {
11295
+ if (!isStart.value) return;
11296
+ cancel();
11297
+ startTime.value = null;
11298
+ endVal.value = +newEndVal;
11299
+ if (endVal.value === frameVal.value) {
11300
+ return;
11301
+ }
11302
+ startVal.value = frameVal.value;
11303
+ if (finalEndVal.value === null) {
11304
+ resetDuration();
11305
+ }
11306
+ finalEndVal.value = null;
11307
+ run();
11308
+ };
11309
+ const end = () => {
11310
+ if (isComplete.value) return;
11311
+ cancel();
11312
+ resetDuration();
11313
+ startVal.value = +props.value;
11314
+ frameVal.value = startVal.value;
11315
+ print(frameVal.value);
11316
+ emit('complete');
11317
+ isComplete.value = true;
11318
+ };
11319
+ const restart = () => {
11320
+ isStart.value = false;
11321
+ isComplete.value = false;
11322
+ start();
11323
+ };
11324
+ vue.watch(() => props.value, () => {
11325
+ if (props.controllable || !isStart.value) return;
11326
+ update(props.value);
11327
+ });
11328
+ vue.watch(() => props.precision, () => {
11329
+ if (props.controllable || !isStart.value || !isComplete.value) return;
11330
+ print(+props.value);
11331
+ });
11332
+ expose({
11333
+ start,
11334
+ pause,
11335
+ resume,
11336
+ update,
11337
+ end,
11338
+ restart,
11339
+ cancel,
11340
+ print
11341
+ });
11342
+ vue.onMounted(() => !props.controllable && start());
11343
+ vue.onBeforeUnmount(cancel);
11344
+ const Content = props.tag;
11345
+ return () => {
11346
+ if (slots.default) {
11347
+ let _slot;
11348
+ return (// @ts-ignore
11349
+ vue.createVNode(Content, {
11350
+ "class": "vc-counter"
11351
+ }, _isSlot$1(_slot = slots.default(binds.value)) ? _slot : {
11352
+ default: () => [_slot]
11353
+ })
11354
+ );
11355
+ }
11356
+ if (props.render) {
11357
+ return vue.createVNode(Customer, vue.mergeProps({
11358
+ "class": "vc-counter",
11359
+ "render": props.render
11360
+ }, binds.value), null);
11361
+ }
11362
+ return (// @ts-ignore
11363
+ vue.createVNode(Content, {
11364
+ "class": "vc-counter"
11365
+ }, {
11366
+ default: () => [displayValue.value]
11367
+ })
11368
+ );
11369
+ };
11370
+ }
11371
+ });
11372
+
11373
+ const MCounter = Counter;
11374
+
11027
11375
  const props$Y = {
11028
11376
  type: {
11029
11377
  type: String,
@@ -11047,8 +11395,8 @@
11047
11395
  "portalClass"
11048
11396
  ];
11049
11397
  const props$X = {
11050
- ...pick(props$1c, popoverKeys),
11051
- ...pick(props$1g, inputKeys$1),
11398
+ ...pick(props$1d, popoverKeys),
11399
+ ...pick(props$1h, inputKeys$1),
11052
11400
  type: String,
11053
11401
  placeholder: String,
11054
11402
  clearable: {
@@ -21483,7 +21831,7 @@
21483
21831
  name: COMPONENT_NAME$V,
21484
21832
  inheritAttrs: false,
21485
21833
  props: {
21486
- ...props$1g,
21834
+ ...props$1h,
21487
21835
  right: {
21488
21836
  type: Boolean,
21489
21837
  default: false
@@ -21572,7 +21920,7 @@
21572
21920
  const COMPONENT_NAME$U = 'vcm-input-number';
21573
21921
  const MInputNumber = /* @__PURE__ */ vue.defineComponent({
21574
21922
  name: COMPONENT_NAME$U,
21575
- props: props$1f,
21923
+ props: props$1g,
21576
21924
  inheritAttrs: false,
21577
21925
  setup(props, {
21578
21926
  slots,
@@ -21624,7 +21972,7 @@
21624
21972
  const MInputSearch = /* @__PURE__ */ vue.defineComponent({
21625
21973
  name: COMPONENT_NAME$T,
21626
21974
  props: {
21627
- ...props$1e,
21975
+ ...props$1f,
21628
21976
  cancelText: {
21629
21977
  type: String,
21630
21978
  default: '取消'
@@ -23210,7 +23558,7 @@
23210
23558
  const COMPONENT_NAME$H = 'vc-select';
23211
23559
  const Select = /* @__PURE__ */ vue.defineComponent({
23212
23560
  name: COMPONENT_NAME$H,
23213
- props: props$19,
23561
+ props: props$1a,
23214
23562
  emits: ['ready', 'close', 'visible-change', 'clear', 'change', 'update:modelValue'],
23215
23563
  setup(props, {
23216
23564
  emit,
@@ -25035,7 +25383,7 @@
25035
25383
  },
25036
25384
  scrollerOptions: Object,
25037
25385
  renderEmpty: Function,
25038
- renderFinish: Function,
25386
+ renderComplete: Function,
25039
25387
  renderLoading: Function,
25040
25388
  renderPlaceholder: Function,
25041
25389
  renderRefresh: Function
@@ -25069,9 +25417,9 @@
25069
25417
  }, [vue.createVNode(Spin, {
25070
25418
  "size": 20
25071
25419
  }, null)]))]), owner.isEnd.value && (owner.data.length ? vue.createVNode("div", {
25072
- "class": "vc-recycle-list__finish"
25073
- }, [slots.finish?.() || owner.renderer.value.finish ? vue.createVNode(Customer, {
25074
- "render": owner.renderer.value.finish
25420
+ "class": "vc-recycle-list__complete"
25421
+ }, [slots.complete?.() || owner.renderer.value.complete ? vue.createVNode(Customer, {
25422
+ "render": owner.renderer.value.complete
25075
25423
  }, null) : vue.createVNode("div", {
25076
25424
  "class": "vc-recycle-list__center"
25077
25425
  }, [vue.createTextVNode("\u5DF2\u5168\u90E8\u52A0\u8F7D~")])]) : vue.createVNode("div", {
@@ -25367,7 +25715,7 @@
25367
25715
  refresh: props.renderRefresh || globalProps.renderRefresh,
25368
25716
  placeholder: props.renderPlaceholder || globalProps.renderPlaceholder,
25369
25717
  loading: props.renderLoading || globalProps.renderLoading,
25370
- finish: props.renderFinish || globalProps.renderFinish,
25718
+ complete: props.renderComplete || globalProps.renderComplete,
25371
25719
  empty: props.renderEmpty || globalProps.renderEmpty
25372
25720
  };
25373
25721
  });
@@ -30403,7 +30751,7 @@
30403
30751
  "controllable"
30404
30752
  ];
30405
30753
  const props$8 = {
30406
- ...pick(props$1g, inputKeys),
30754
+ ...pick(props$1h, inputKeys),
30407
30755
  wrap: {
30408
30756
  type: String,
30409
30757
  validator: (v) => /(soft|hard)/.test(v),
@@ -31996,7 +32344,7 @@
31996
32344
  "allowDispatch"
31997
32345
  ];
31998
32346
  const props$2 = {
31999
- ...pick(props$19, selectKeys),
32347
+ ...pick(props$1a, selectKeys),
32000
32348
  ...pick(props$3, treeNodeContentKeys),
32001
32349
  // 暂不支持,仅作为默认值
32002
32350
  max: {
@@ -32269,7 +32617,7 @@
32269
32617
  "renderNodeLabel"
32270
32618
  ];
32271
32619
  const props$1 = {
32272
- ...props$19,
32620
+ ...props$1a,
32273
32621
  ...pick(props$2, treeKeys)
32274
32622
  };
32275
32623
 
@@ -137441,6 +137789,7 @@ ${imported}
137441
137789
  exports.CollapseItem = CollapseItem;
137442
137790
  exports.ColorPicker = ColorPicker$1;
137443
137791
  exports.Countdown = Countdown;
137792
+ exports.Counter = Counter;
137444
137793
  exports.Customer = Customer;
137445
137794
  exports.DatePicker = DatePicker;
137446
137795
  exports.Debounce = Debounce;
@@ -137485,6 +137834,7 @@ ${imported}
137485
137834
  exports.MCollapseItem = MCollapseItem;
137486
137835
  exports.MColorPicker = MColorPicker;
137487
137836
  exports.MCountdown = MCountdown;
137837
+ exports.MCounter = MCounter;
137488
137838
  exports.MCustomer = MCustomer;
137489
137839
  exports.MDatePicker = MDatePicker;
137490
137840
  exports.MDebounce = Debounce;