@deot/vc 1.0.16 → 1.0.17

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.
@@ -24126,6 +24126,17 @@ var Vc = (function (exports, vue) {
24126
24126
  const defaults$1 = {
24127
24127
  Theme: {
24128
24128
  variables: VARIABLES
24129
+ },
24130
+ Portal: {
24131
+ install: void 0
24132
+ },
24133
+ Upload: {
24134
+ onRequest: void 0,
24135
+ onResponse: void 0,
24136
+ onMessage: void 0
24137
+ },
24138
+ TableColumn: {
24139
+ line: void 0
24129
24140
  }
24130
24141
  };
24131
24142
  class Instance {
@@ -24158,9 +24169,9 @@ var Vc = (function (exports, vue) {
24158
24169
  default: "div"
24159
24170
  }
24160
24171
  };
24161
- const COMPONENT_NAME$1_ = "vc-action-sheet";
24172
+ const COMPONENT_NAME$1$ = "vc-action-sheet";
24162
24173
  const ActionSheet = /* @__PURE__ */ vue.defineComponent({
24163
- name: COMPONENT_NAME$1_,
24174
+ name: COMPONENT_NAME$1$,
24164
24175
  props: props$1q,
24165
24176
  setup(props2, {
24166
24177
  slots
@@ -24340,9 +24351,9 @@ var Vc = (function (exports, vue) {
24340
24351
  }
24341
24352
  }
24342
24353
  const IconManager = new Manager();
24343
- const COMPONENT_NAME$1Z = "vc-icon";
24354
+ const COMPONENT_NAME$1_ = "vc-icon";
24344
24355
  const Icon = /* @__PURE__ */ vue.defineComponent({
24345
- name: COMPONENT_NAME$1Z,
24356
+ name: COMPONENT_NAME$1_,
24346
24357
  props: props$1o,
24347
24358
  setup(props2) {
24348
24359
  const viewBox = vue.ref("0 0 1024 1024");
@@ -24538,9 +24549,9 @@ var Vc = (function (exports, vue) {
24538
24549
  }
24539
24550
  };
24540
24551
  };
24541
- const COMPONENT_NAME$1Y = "vc-transition";
24552
+ const COMPONENT_NAME$1Z = "vc-transition";
24542
24553
  const Transition = vue.defineComponent({
24543
- name: COMPONENT_NAME$1Y,
24554
+ name: COMPONENT_NAME$1Z,
24544
24555
  props: props$1n,
24545
24556
  // 当不声明emits的情况下,事件存在于attrs中
24546
24557
  inheritAttrs: false,
@@ -24560,9 +24571,9 @@ var Vc = (function (exports, vue) {
24560
24571
  };
24561
24572
  }
24562
24573
  });
24563
- const COMPONENT_NAME$1X = "vc-transition-collapse";
24574
+ const COMPONENT_NAME$1Y = "vc-transition-collapse";
24564
24575
  const TransitionCollapse = vue.defineComponent({
24565
- name: COMPONENT_NAME$1X,
24576
+ name: COMPONENT_NAME$1Y,
24566
24577
  props: props$1n,
24567
24578
  // 当不声明emits的情况下,事件存在于attrs中
24568
24579
  inheritAttrs: false,
@@ -24680,9 +24691,9 @@ var Vc = (function (exports, vue) {
24680
24691
  };
24681
24692
  }
24682
24693
  });
24683
- const COMPONENT_NAME$1W = "vc-transition-fade";
24694
+ const COMPONENT_NAME$1X = "vc-transition-fade";
24684
24695
  const TransitionFade = vue.defineComponent({
24685
- name: COMPONENT_NAME$1W,
24696
+ name: COMPONENT_NAME$1X,
24686
24697
  props: {
24687
24698
  ...props$1n,
24688
24699
  // inheritAttrs必须是false
@@ -24716,9 +24727,9 @@ var Vc = (function (exports, vue) {
24716
24727
  };
24717
24728
  }
24718
24729
  });
24719
- const COMPONENT_NAME$1V = "vc-transition-scale";
24730
+ const COMPONENT_NAME$1W = "vc-transition-scale";
24720
24731
  const TransitionScale = vue.defineComponent({
24721
- name: COMPONENT_NAME$1V,
24732
+ name: COMPONENT_NAME$1W,
24722
24733
  props: {
24723
24734
  ...props$1n,
24724
24735
  mode: {
@@ -24757,9 +24768,9 @@ var Vc = (function (exports, vue) {
24757
24768
  };
24758
24769
  }
24759
24770
  });
24760
- const COMPONENT_NAME$1U = "vc-transition-slide";
24771
+ const COMPONENT_NAME$1V = "vc-transition-slide";
24761
24772
  const TransitionSlide = vue.defineComponent({
24762
- name: COMPONENT_NAME$1U,
24773
+ name: COMPONENT_NAME$1V,
24763
24774
  props: {
24764
24775
  ...props$1n,
24765
24776
  mode: {
@@ -24798,9 +24809,9 @@ var Vc = (function (exports, vue) {
24798
24809
  };
24799
24810
  }
24800
24811
  });
24801
- const COMPONENT_NAME$1T = "vc-transition-zoom";
24812
+ const COMPONENT_NAME$1U = "vc-transition-zoom";
24802
24813
  const TransitionZoom = vue.defineComponent({
24803
- name: COMPONENT_NAME$1T,
24814
+ name: COMPONENT_NAME$1U,
24804
24815
  props: {
24805
24816
  ...props$1n,
24806
24817
  mode: {
@@ -24839,7 +24850,7 @@ var Vc = (function (exports, vue) {
24839
24850
  };
24840
24851
  }
24841
24852
  });
24842
- const COMPONENT_NAME$1S = "vc-alert";
24853
+ const COMPONENT_NAME$1T = "vc-alert";
24843
24854
  const THEME_MAP = {
24844
24855
  info: ["#2B72FD", "#91d5ff", "#e6f7ff"],
24845
24856
  success: ["#52c41a", "#b7eb8f", "#f6ffed"],
@@ -24847,7 +24858,7 @@ var Vc = (function (exports, vue) {
24847
24858
  warning: ["#ffbf00", "#ffe58f", "#fffbe6"]
24848
24859
  };
24849
24860
  const Alert = /* @__PURE__ */ vue.defineComponent({
24850
- name: COMPONENT_NAME$1S,
24861
+ name: COMPONENT_NAME$1T,
24851
24862
  props: props$1p,
24852
24863
  setup(props2, {
24853
24864
  slots,
@@ -24940,9 +24951,9 @@ var Vc = (function (exports, vue) {
24940
24951
  default: "div"
24941
24952
  }
24942
24953
  };
24943
- const COMPONENT_NAME$1R = "vc-artboard";
24954
+ const COMPONENT_NAME$1S = "vc-artboard";
24944
24955
  const Artboard = /* @__PURE__ */ vue.defineComponent({
24945
- name: COMPONENT_NAME$1R,
24956
+ name: COMPONENT_NAME$1S,
24946
24957
  props: props$1m,
24947
24958
  setup(props2, {
24948
24959
  slots
@@ -24976,9 +24987,9 @@ var Vc = (function (exports, vue) {
24976
24987
  default: false
24977
24988
  }
24978
24989
  };
24979
- const COMPONENT_NAME$1Q = "vc-spin";
24990
+ const COMPONENT_NAME$1R = "vc-spin";
24980
24991
  const Spin = /* @__PURE__ */ vue.defineComponent({
24981
- name: COMPONENT_NAME$1Q,
24992
+ name: COMPONENT_NAME$1R,
24982
24993
  props: props$1l,
24983
24994
  setup(props2, {
24984
24995
  slots
@@ -25027,9 +25038,9 @@ var Vc = (function (exports, vue) {
25027
25038
  },
25028
25039
  exclude: RegExp
25029
25040
  };
25030
- const COMPONENT_NAME$1P = "vc-debounce";
25041
+ const COMPONENT_NAME$1Q = "vc-debounce";
25031
25042
  const Debounce = vue.defineComponent({
25032
- name: COMPONENT_NAME$1P,
25043
+ name: COMPONENT_NAME$1Q,
25033
25044
  props: props$1k,
25034
25045
  /**
25035
25046
  * 不声明emits使得事件被透传放入attrs中, 这样可以让所有的事件透传
@@ -25097,9 +25108,9 @@ var Vc = (function (exports, vue) {
25097
25108
  default: "button"
25098
25109
  }
25099
25110
  };
25100
- const COMPONENT_NAME$1O = "vc-button";
25111
+ const COMPONENT_NAME$1P = "vc-button";
25101
25112
  const Button = /* @__PURE__ */ vue.defineComponent({
25102
- name: COMPONENT_NAME$1O,
25113
+ name: COMPONENT_NAME$1P,
25103
25114
  emits: ["click"],
25104
25115
  props: props$1j,
25105
25116
  setup(props2, {
@@ -25175,9 +25186,9 @@ var Vc = (function (exports, vue) {
25175
25186
  default: false
25176
25187
  }
25177
25188
  };
25178
- const COMPONENT_NAME$1N = "vc-button-group";
25189
+ const COMPONENT_NAME$1O = "vc-button-group";
25179
25190
  const ButtonGroup = /* @__PURE__ */ vue.defineComponent({
25180
- name: COMPONENT_NAME$1N,
25191
+ name: COMPONENT_NAME$1O,
25181
25192
  props: props$1i,
25182
25193
  setup(props2, {
25183
25194
  slots
@@ -25206,9 +25217,9 @@ var Vc = (function (exports, vue) {
25206
25217
  default: "div"
25207
25218
  }
25208
25219
  };
25209
- const COMPONENT_NAME$1M = "vc-calendar";
25220
+ const COMPONENT_NAME$1N = "vc-calendar";
25210
25221
  const Calendar$1 = /* @__PURE__ */ vue.defineComponent({
25211
- name: COMPONENT_NAME$1M,
25222
+ name: COMPONENT_NAME$1N,
25212
25223
  props: props$1h,
25213
25224
  setup(props2, {
25214
25225
  slots
@@ -25241,9 +25252,9 @@ var Vc = (function (exports, vue) {
25241
25252
  type: String
25242
25253
  }
25243
25254
  };
25244
- const COMPONENT_NAME$1L = "vc-card";
25255
+ const COMPONENT_NAME$1M = "vc-card";
25245
25256
  const Card = /* @__PURE__ */ vue.defineComponent({
25246
- name: COMPONENT_NAME$1L,
25257
+ name: COMPONENT_NAME$1M,
25247
25258
  props: props$1g,
25248
25259
  setup(props2, {
25249
25260
  slots
@@ -25274,9 +25285,9 @@ var Vc = (function (exports, vue) {
25274
25285
  default: "div"
25275
25286
  }
25276
25287
  };
25277
- const COMPONENT_NAME$1K = "vc-carousel";
25288
+ const COMPONENT_NAME$1L = "vc-carousel";
25278
25289
  const Carousel = /* @__PURE__ */ vue.defineComponent({
25279
- name: COMPONENT_NAME$1K,
25290
+ name: COMPONENT_NAME$1L,
25280
25291
  props: props$1f,
25281
25292
  setup(props2, {
25282
25293
  slots
@@ -25295,9 +25306,9 @@ var Vc = (function (exports, vue) {
25295
25306
  default: "div"
25296
25307
  }
25297
25308
  };
25298
- const COMPONENT_NAME$1J = "vc-cascader";
25309
+ const COMPONENT_NAME$1K = "vc-cascader";
25299
25310
  const Cascader = /* @__PURE__ */ vue.defineComponent({
25300
- name: COMPONENT_NAME$1J,
25311
+ name: COMPONENT_NAME$1K,
25301
25312
  props: props$1e,
25302
25313
  setup(props2, {
25303
25314
  slots
@@ -25360,9 +25371,9 @@ var Vc = (function (exports, vue) {
25360
25371
  watchShallow: Boolean,
25361
25372
  manualUpdate: Boolean
25362
25373
  };
25363
- const COMPONENT_NAME$1I = "vc-chart";
25374
+ const COMPONENT_NAME$1J = "vc-chart";
25364
25375
  const Chart = /* @__PURE__ */ vue.defineComponent({
25365
- name: COMPONENT_NAME$1I,
25376
+ name: COMPONENT_NAME$1J,
25366
25377
  props: props$1d,
25367
25378
  emits: [...EVENTS, "ready"],
25368
25379
  setup(props2, {
@@ -25583,9 +25594,9 @@ var Vc = (function (exports, vue) {
25583
25594
  computedLabel
25584
25595
  };
25585
25596
  };
25586
- const COMPONENT_NAME$1H = "vc-checkbox";
25597
+ const COMPONENT_NAME$1I = "vc-checkbox";
25587
25598
  const Checkbox = /* @__PURE__ */ vue.defineComponent({
25588
- name: COMPONENT_NAME$1H,
25599
+ name: COMPONENT_NAME$1I,
25589
25600
  props: props$1c,
25590
25601
  emits: ["update:modelValue", "change"],
25591
25602
  setup(props2, {
@@ -25667,9 +25678,9 @@ var Vc = (function (exports, vue) {
25667
25678
  reset
25668
25679
  };
25669
25680
  };
25670
- const COMPONENT_NAME$1G = "vc-checkbox-group";
25681
+ const COMPONENT_NAME$1H = "vc-checkbox-group";
25671
25682
  const CheckboxGroup = /* @__PURE__ */ vue.defineComponent({
25672
- name: COMPONENT_NAME$1G,
25683
+ name: COMPONENT_NAME$1H,
25673
25684
  props: props$1b,
25674
25685
  emits: ["update:modelValue", "change"],
25675
25686
  setup(props2, {
@@ -25684,9 +25695,9 @@ var Vc = (function (exports, vue) {
25684
25695
  };
25685
25696
  }
25686
25697
  });
25687
- const COMPONENT_NAME$1F = "vcm-checkbox";
25698
+ const COMPONENT_NAME$1G = "vcm-checkbox";
25688
25699
  const MCheckbox = /* @__PURE__ */ vue.defineComponent({
25689
- name: COMPONENT_NAME$1F,
25700
+ name: COMPONENT_NAME$1G,
25690
25701
  props: props$1c,
25691
25702
  emits: ["update:modelValue", "change"],
25692
25703
  setup(props2, {
@@ -25723,9 +25734,9 @@ var Vc = (function (exports, vue) {
25723
25734
  };
25724
25735
  }
25725
25736
  });
25726
- const COMPONENT_NAME$1E = "vcm-checkbox-group";
25737
+ const COMPONENT_NAME$1F = "vcm-checkbox-group";
25727
25738
  const MCheckboxGroup = /* @__PURE__ */ vue.defineComponent({
25728
- name: COMPONENT_NAME$1E,
25739
+ name: COMPONENT_NAME$1F,
25729
25740
  props: props$1b,
25730
25741
  emits: ["update:modelValue", "change"],
25731
25742
  setup(props2, {
@@ -25781,9 +25792,9 @@ var Vc = (function (exports, vue) {
25781
25792
  default: () => null
25782
25793
  }
25783
25794
  };
25784
- const COMPONENT_NAME$1D = "vc-customer";
25795
+ const COMPONENT_NAME$1E = "vc-customer";
25785
25796
  const Customer = vue.defineComponent({
25786
- name: COMPONENT_NAME$1D,
25797
+ name: COMPONENT_NAME$1E,
25787
25798
  props: props$19,
25788
25799
  setup(props2, context) {
25789
25800
  return () => vue.h(() => {
@@ -25791,9 +25802,9 @@ var Vc = (function (exports, vue) {
25791
25802
  });
25792
25803
  }
25793
25804
  });
25794
- const COMPONENT_NAME$1C = "vc-message";
25805
+ const COMPONENT_NAME$1D = "vc-message";
25795
25806
  const MessageView = /* @__PURE__ */ vue.defineComponent({
25796
- name: COMPONENT_NAME$1C,
25807
+ name: COMPONENT_NAME$1D,
25797
25808
  emits: ["before-close", "close", "portal-fulfilled"],
25798
25809
  props: props$1a,
25799
25810
  setup(props2, {
@@ -25936,7 +25947,7 @@ var Vc = (function (exports, vue) {
25936
25947
  return this.target.finally(callback);
25937
25948
  }
25938
25949
  }
25939
- const COMPONENT_NAME$1B = "vc-portal";
25950
+ const COMPONENT_NAME$1C = "vc-portal";
25940
25951
  class Portal {
25941
25952
  /**
25942
25953
  * 清理Portals类型组件
@@ -25988,7 +25999,7 @@ var Vc = (function (exports, vue) {
25988
25999
  this.wrapper = wrapper;
25989
26000
  this.globalOptions = {
25990
26001
  ...options,
25991
- name: options?.name || wrapper.name || getUid(COMPONENT_NAME$1B)
26002
+ name: options?.name || wrapper.name || getUid(COMPONENT_NAME$1C)
25992
26003
  };
25993
26004
  }
25994
26005
  popup(propsData, options) {
@@ -26087,7 +26098,7 @@ var Vc = (function (exports, vue) {
26087
26098
  ...rest
26088
26099
  } = options;
26089
26100
  let useAllNodes = fragment;
26090
- const name = multiple ? `${name$}__${getUid(COMPONENT_NAME$1B)}` : name$;
26101
+ const name = multiple ? `${name$}__${getUid(COMPONENT_NAME$1C)}` : name$;
26091
26102
  const container = document.createElement(tag);
26092
26103
  const root = typeof el2 === "object" ? el2 : document.querySelector(el2 || "body");
26093
26104
  !alive && Portal.leafs.get(name)?.destroy();
@@ -26121,7 +26132,7 @@ var Vc = (function (exports, vue) {
26121
26132
  } else {
26122
26133
  const wrapper = this.wrapper;
26123
26134
  const app = vue.createApp({
26124
- name: COMPONENT_NAME$1B,
26135
+ name: COMPONENT_NAME$1C,
26125
26136
  parent,
26126
26137
  setup() {
26127
26138
  if (alive) {
@@ -26231,9 +26242,9 @@ var Vc = (function (exports, vue) {
26231
26242
  default: "div"
26232
26243
  }
26233
26244
  };
26234
- const COMPONENT_NAME$1A = "vc-portal-view";
26245
+ const COMPONENT_NAME$1B = "vc-portal-view";
26235
26246
  const PortalView = /* @__PURE__ */ vue.defineComponent({
26236
- name: COMPONENT_NAME$1A,
26247
+ name: COMPONENT_NAME$1B,
26237
26248
  props: props$18,
26238
26249
  setup(props2, {
26239
26250
  slots
@@ -26396,9 +26407,9 @@ var Vc = (function (exports, vue) {
26396
26407
  };
26397
26408
  return () => vue.h(props2.tag, { onClick: handleClick, class: "vc-clipboard" }, slots?.default?.());
26398
26409
  };
26399
- const COMPONENT_NAME$1z = "vc-clipboard";
26410
+ const COMPONENT_NAME$1A = "vc-clipboard";
26400
26411
  const Clipboard$1 = vue.defineComponent({
26401
- name: COMPONENT_NAME$1z,
26412
+ name: COMPONENT_NAME$1A,
26402
26413
  props: props$17,
26403
26414
  setup() {
26404
26415
  return useClipboard((content) => Message.success({ content }));
@@ -26430,9 +26441,9 @@ var Vc = (function (exports, vue) {
26430
26441
  const MTransitionScale = TransitionScale;
26431
26442
  const MTransitionSlide = TransitionSlide;
26432
26443
  const MTransitionZoom = TransitionZoom;
26433
- const COMPONENT_NAME$1y = "vcm-toast";
26444
+ const COMPONENT_NAME$1z = "vcm-toast";
26434
26445
  const MToastView = /* @__PURE__ */ vue.defineComponent({
26435
- name: COMPONENT_NAME$1y,
26446
+ name: COMPONENT_NAME$1z,
26436
26447
  emits: ["close", "portal-fulfilled"],
26437
26448
  props: props$16,
26438
26449
  setup(props2, {
@@ -26531,9 +26542,9 @@ var Vc = (function (exports, vue) {
26531
26542
  const warning$2 = create$3({ mode: "warning" });
26532
26543
  const error$2 = create$3({ mode: "error" });
26533
26544
  const MToast = Object.assign(MToastView, { destroy: destroy$4, info: info$2, success: success$2, loading, warning: warning$2, error: error$2 });
26534
- const COMPONENT_NAME$1x = "vcm-clipboard";
26545
+ const COMPONENT_NAME$1y = "vcm-clipboard";
26535
26546
  const MClipboard$1 = vue.defineComponent({
26536
- name: COMPONENT_NAME$1x,
26547
+ name: COMPONENT_NAME$1y,
26537
26548
  props: props$17,
26538
26549
  setup() {
26539
26550
  return useClipboard((content) => MToast.info({ content }));
@@ -26562,9 +26573,9 @@ var Vc = (function (exports, vue) {
26562
26573
  default: false
26563
26574
  }
26564
26575
  };
26565
- const COMPONENT_NAME$1w = "vc-collapse";
26576
+ const COMPONENT_NAME$1x = "vc-collapse";
26566
26577
  const Collapse = vue.defineComponent({
26567
- name: COMPONENT_NAME$1w,
26578
+ name: COMPONENT_NAME$1x,
26568
26579
  props: props$15,
26569
26580
  emits: ["update:moodelValue", "change"],
26570
26581
  setup(props2, { slots, emit }) {
@@ -26676,9 +26687,9 @@ var Vc = (function (exports, vue) {
26676
26687
  function _isSlot$3(s) {
26677
26688
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
26678
26689
  }
26679
- const COMPONENT_NAME$1v = "vc-expand";
26690
+ const COMPONENT_NAME$1w = "vc-expand";
26680
26691
  const Expand$1 = /* @__PURE__ */ vue.defineComponent({
26681
- name: COMPONENT_NAME$1v,
26692
+ name: COMPONENT_NAME$1w,
26682
26693
  props: props$13,
26683
26694
  setup(props2, {
26684
26695
  slots
@@ -26705,9 +26716,9 @@ var Vc = (function (exports, vue) {
26705
26716
  };
26706
26717
  }
26707
26718
  });
26708
- const COMPONENT_NAME$1u = "vc-collapse-item";
26719
+ const COMPONENT_NAME$1v = "vc-collapse-item";
26709
26720
  const CollapseItem = /* @__PURE__ */ vue.defineComponent({
26710
- name: COMPONENT_NAME$1u,
26721
+ name: COMPONENT_NAME$1v,
26711
26722
  props: props$14,
26712
26723
  setup(props2, {
26713
26724
  slots,
@@ -26777,9 +26788,9 @@ var Vc = (function (exports, vue) {
26777
26788
  default: "div"
26778
26789
  }
26779
26790
  };
26780
- const COMPONENT_NAME$1t = "vc-color-picker";
26791
+ const COMPONENT_NAME$1u = "vc-color-picker";
26781
26792
  const ColorPicker = /* @__PURE__ */ vue.defineComponent({
26782
- name: COMPONENT_NAME$1t,
26793
+ name: COMPONENT_NAME$1u,
26783
26794
  props: props$12,
26784
26795
  setup(props2, {
26785
26796
  slots
@@ -26798,9 +26809,9 @@ var Vc = (function (exports, vue) {
26798
26809
  default: "div"
26799
26810
  }
26800
26811
  };
26801
- const COMPONENT_NAME$1s = "vc-countdown";
26812
+ const COMPONENT_NAME$1t = "vc-countdown";
26802
26813
  const Countdown = /* @__PURE__ */ vue.defineComponent({
26803
- name: COMPONENT_NAME$1s,
26814
+ name: COMPONENT_NAME$1t,
26804
26815
  props: props$11,
26805
26816
  setup(props2, {
26806
26817
  slots
@@ -26949,7 +26960,7 @@ var Vc = (function (exports, vue) {
26949
26960
  hover: Boolean,
26950
26961
  always: Boolean,
26951
26962
  portalClass: [Object, String, Array],
26952
- portalStyle: Object
26963
+ portalStyle: [Object, String]
26953
26964
  };
26954
26965
  const wrapperKeys = [
26955
26966
  "modelValue",
@@ -26985,7 +26996,7 @@ var Vc = (function (exports, vue) {
26985
26996
  },
26986
26997
  ...pick(props$_, wrapperKeys)
26987
26998
  };
26988
- const inputKeys$1 = [
26999
+ const inputKeys$2 = [
26989
27000
  "id",
26990
27001
  "disabled"
26991
27002
  ];
@@ -26995,7 +27006,7 @@ var Vc = (function (exports, vue) {
26995
27006
  ];
26996
27007
  const props$Y = {
26997
27008
  ...pick(props$Z, popoverKeys$1),
26998
- ...pick(props$$, inputKeys$1),
27009
+ ...pick(props$$, inputKeys$2),
26999
27010
  type: String,
27000
27011
  placeholder: String,
27001
27012
  clearable: {
@@ -27237,9 +27248,9 @@ var Vc = (function (exports, vue) {
27237
27248
  expose?.(exposed);
27238
27249
  return exposed;
27239
27250
  };
27240
- const COMPONENT_NAME$1r = "vc-input";
27251
+ const COMPONENT_NAME$1s = "vc-input";
27241
27252
  const Input = /* @__PURE__ */ vue.defineComponent({
27242
- name: COMPONENT_NAME$1r,
27253
+ name: COMPONENT_NAME$1s,
27243
27254
  inheritAttrs: false,
27244
27255
  props: {
27245
27256
  ...props$$,
@@ -27569,9 +27580,9 @@ var Vc = (function (exports, vue) {
27569
27580
  handleStepper
27570
27581
  };
27571
27582
  };
27572
- const COMPONENT_NAME$1q = "vc-input-number";
27583
+ const COMPONENT_NAME$1r = "vc-input-number";
27573
27584
  const InputNumber = /* @__PURE__ */ vue.defineComponent({
27574
- name: COMPONENT_NAME$1q,
27585
+ name: COMPONENT_NAME$1r,
27575
27586
  props: props$X,
27576
27587
  inheritAttrs: false,
27577
27588
  setup(props2, {
@@ -27631,9 +27642,9 @@ var Vc = (function (exports, vue) {
27631
27642
  default: true
27632
27643
  }
27633
27644
  };
27634
- const COMPONENT_NAME$1p = "vc-input-search";
27645
+ const COMPONENT_NAME$1q = "vc-input-search";
27635
27646
  const InputSearch = /* @__PURE__ */ vue.defineComponent({
27636
- name: COMPONENT_NAME$1p,
27647
+ name: COMPONENT_NAME$1q,
27637
27648
  props: props$W,
27638
27649
  inheritAttrs: false,
27639
27650
  setup(props2, {
@@ -27920,9 +27931,9 @@ var Vc = (function (exports, vue) {
27920
27931
  function _isSlot$2(s) {
27921
27932
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
27922
27933
  }
27923
- const COMPONENT_NAME$1o = "vc-popover-wrapper";
27934
+ const COMPONENT_NAME$1p = "vc-popover-wrapper";
27924
27935
  const PopoverWrapper = /* @__PURE__ */ vue.defineComponent({
27925
- name: COMPONENT_NAME$1o,
27936
+ name: COMPONENT_NAME$1p,
27926
27937
  props: props$_,
27927
27938
  emits: ["portal-fulfilled", "close"],
27928
27939
  setup(props2, {
@@ -28140,9 +28151,9 @@ var Vc = (function (exports, vue) {
28140
28151
  }
28141
28152
  });
28142
28153
  const PopoverPortal = new Portal(PopoverWrapper);
28143
- const COMPONENT_NAME$1n = "vc-popover";
28154
+ const COMPONENT_NAME$1o = "vc-popover";
28144
28155
  const Popover$1 = /* @__PURE__ */ vue.defineComponent({
28145
- name: COMPONENT_NAME$1n,
28156
+ name: COMPONENT_NAME$1o,
28146
28157
  props: props$Z,
28147
28158
  emits: ["update:modelValue", "visible-change", "ready", "close"],
28148
28159
  setup(props2, {
@@ -29218,9 +29229,9 @@ var Vc = (function (exports, vue) {
29218
29229
  }
29219
29230
  return view;
29220
29231
  };
29221
- const COMPONENT_NAME$1m = "vc-date-confirm";
29232
+ const COMPONENT_NAME$1n = "vc-date-confirm";
29222
29233
  const Confirm = /* @__PURE__ */ vue.defineComponent({
29223
- name: COMPONENT_NAME$1m,
29234
+ name: COMPONENT_NAME$1n,
29224
29235
  props: {
29225
29236
  showTime: {
29226
29237
  type: Boolean,
@@ -29281,9 +29292,9 @@ var Vc = (function (exports, vue) {
29281
29292
  };
29282
29293
  }
29283
29294
  });
29284
- const COMPONENT_NAME$1l = "vc-date-header";
29295
+ const COMPONENT_NAME$1m = "vc-date-header";
29285
29296
  const DateHeader = /* @__PURE__ */ vue.defineComponent({
29286
- name: COMPONENT_NAME$1l,
29297
+ name: COMPONENT_NAME$1m,
29287
29298
  props: {
29288
29299
  panelDate: Date,
29289
29300
  showNext: {
@@ -29364,9 +29375,9 @@ var Vc = (function (exports, vue) {
29364
29375
  };
29365
29376
  }
29366
29377
  });
29367
- const COMPONENT_NAME$1k = "vc-date-table";
29378
+ const COMPONENT_NAME$1l = "vc-date-table";
29368
29379
  const DateTable = /* @__PURE__ */ vue.defineComponent({
29369
- name: COMPONENT_NAME$1k,
29380
+ name: COMPONENT_NAME$1l,
29370
29381
  props: {
29371
29382
  value: Array,
29372
29383
  firstDayOfWeek: {
@@ -29566,9 +29577,9 @@ var Vc = (function (exports, vue) {
29566
29577
  };
29567
29578
  }
29568
29579
  });
29569
- const COMPONENT_NAME$1j = "vc-month-table";
29580
+ const COMPONENT_NAME$1k = "vc-month-table";
29570
29581
  const MonthTable = /* @__PURE__ */ vue.defineComponent({
29571
- name: COMPONENT_NAME$1j,
29582
+ name: COMPONENT_NAME$1k,
29572
29583
  props: {
29573
29584
  value: Array,
29574
29585
  panelDate: Date,
@@ -29694,7 +29705,7 @@ var Vc = (function (exports, vue) {
29694
29705
  };
29695
29706
  }
29696
29707
  });
29697
- const COMPONENT_NAME$1i = "vc-quarter-table";
29708
+ const COMPONENT_NAME$1j = "vc-quarter-table";
29698
29709
  const getMonthRange = (panelDate, quarter) => {
29699
29710
  const year = panelDate.getFullYear();
29700
29711
  const [startMonth, endMonth] = [quarter * 3, quarter * 3 + 2];
@@ -29721,7 +29732,7 @@ var Vc = (function (exports, vue) {
29721
29732
  }
29722
29733
  };
29723
29734
  const QuarterTable = /* @__PURE__ */ vue.defineComponent({
29724
- name: COMPONENT_NAME$1i,
29735
+ name: COMPONENT_NAME$1j,
29725
29736
  props: {
29726
29737
  value: Array,
29727
29738
  panelDate: Date,
@@ -29839,9 +29850,9 @@ var Vc = (function (exports, vue) {
29839
29850
  };
29840
29851
  }
29841
29852
  });
29842
- const COMPONENT_NAME$1h = "vc-shortcuts-select";
29853
+ const COMPONENT_NAME$1i = "vc-shortcuts-select";
29843
29854
  const ShortcutsSelect = /* @__PURE__ */ vue.defineComponent({
29844
- name: COMPONENT_NAME$1h,
29855
+ name: COMPONENT_NAME$1i,
29845
29856
  props: {
29846
29857
  panelDate: Date,
29847
29858
  config: Array,
@@ -29878,9 +29889,9 @@ var Vc = (function (exports, vue) {
29878
29889
  };
29879
29890
  }
29880
29891
  });
29881
- const COMPONENT_NAME$1g = "vc-time-select";
29892
+ const COMPONENT_NAME$1h = "vc-time-select";
29882
29893
  const TimeSelect = /* @__PURE__ */ vue.defineComponent({
29883
- name: COMPONENT_NAME$1g,
29894
+ name: COMPONENT_NAME$1h,
29884
29895
  props: {
29885
29896
  hours: {
29886
29897
  type: [Number, String],
@@ -30155,9 +30166,9 @@ var Vc = (function (exports, vue) {
30155
30166
  };
30156
30167
  }
30157
30168
  });
30158
- const COMPONENT_NAME$1f = "vc-year-table";
30169
+ const COMPONENT_NAME$1g = "vc-year-table";
30159
30170
  const YearTable = /* @__PURE__ */ vue.defineComponent({
30160
- name: COMPONENT_NAME$1f,
30171
+ name: COMPONENT_NAME$1g,
30161
30172
  props: {
30162
30173
  value: Array,
30163
30174
  panelDate: Date,
@@ -30273,9 +30284,9 @@ var Vc = (function (exports, vue) {
30273
30284
  }
30274
30285
  return true;
30275
30286
  };
30276
- const COMPONENT_NAME$1e = "vc-date-range-panel";
30287
+ const COMPONENT_NAME$1f = "vc-date-range-panel";
30277
30288
  const DateRangePanel = /* @__PURE__ */ vue.defineComponent({
30278
- name: COMPONENT_NAME$1e,
30289
+ name: COMPONENT_NAME$1f,
30279
30290
  props: {
30280
30291
  ...props$V,
30281
30292
  confirm: {
@@ -30636,9 +30647,9 @@ var Vc = (function (exports, vue) {
30636
30647
  };
30637
30648
  }
30638
30649
  });
30639
- const COMPONENT_NAME$1d = "vc-date-panel";
30650
+ const COMPONENT_NAME$1e = "vc-date-panel";
30640
30651
  const DatePanel = /* @__PURE__ */ vue.defineComponent({
30641
- name: COMPONENT_NAME$1d,
30652
+ name: COMPONENT_NAME$1e,
30642
30653
  props: {
30643
30654
  ...props$V,
30644
30655
  type: String,
@@ -30837,9 +30848,9 @@ var Vc = (function (exports, vue) {
30837
30848
  const endYear = value[1].getFullYear();
30838
30849
  return startYear === endYear;
30839
30850
  };
30840
- const COMPONENT_NAME$1c = "vc-monthrange-panel";
30851
+ const COMPONENT_NAME$1d = "vc-monthrange-panel";
30841
30852
  const MonthRangePanel = /* @__PURE__ */ vue.defineComponent({
30842
- name: COMPONENT_NAME$1c,
30853
+ name: COMPONENT_NAME$1d,
30843
30854
  props: {
30844
30855
  ...props$V,
30845
30856
  confirm: {
@@ -31009,9 +31020,9 @@ var Vc = (function (exports, vue) {
31009
31020
  const endYear = value[1].getFullYear();
31010
31021
  return startYear === endYear;
31011
31022
  };
31012
- const COMPONENT_NAME$1b = "vc-quarterrange-panel";
31023
+ const COMPONENT_NAME$1c = "vc-quarterrange-panel";
31013
31024
  const QuarterRangePanel = /* @__PURE__ */ vue.defineComponent({
31014
- name: COMPONENT_NAME$1b,
31025
+ name: COMPONENT_NAME$1c,
31015
31026
  props: {
31016
31027
  ...props$V,
31017
31028
  confirm: {
@@ -31242,9 +31253,9 @@ var Vc = (function (exports, vue) {
31242
31253
  seconds
31243
31254
  };
31244
31255
  };
31245
- const COMPONENT_NAME$1a = "vc-timerange-panel";
31256
+ const COMPONENT_NAME$1b = "vc-timerange-panel";
31246
31257
  const TimeRangePanel = /* @__PURE__ */ vue.defineComponent({
31247
- name: COMPONENT_NAME$1a,
31258
+ name: COMPONENT_NAME$1b,
31248
31259
  props: props$U,
31249
31260
  emits: ["pick", "clear", "ok"],
31250
31261
  setup(props2, {
@@ -31340,9 +31351,9 @@ var Vc = (function (exports, vue) {
31340
31351
  };
31341
31352
  }
31342
31353
  });
31343
- const COMPONENT_NAME$19 = "vc-time-panel";
31354
+ const COMPONENT_NAME$1a = "vc-time-panel";
31344
31355
  const TimePanel = /* @__PURE__ */ vue.defineComponent({
31345
- name: COMPONENT_NAME$19,
31356
+ name: COMPONENT_NAME$1a,
31346
31357
  props: props$U,
31347
31358
  emits: ["pick", "clear", "ok"],
31348
31359
  setup(props2, {
@@ -31393,7 +31404,7 @@ var Vc = (function (exports, vue) {
31393
31404
  };
31394
31405
  }
31395
31406
  });
31396
- const COMPONENT_NAME$18 = "vc-date-picker";
31407
+ const COMPONENT_NAME$19 = "vc-date-picker";
31397
31408
  const getPanel$1 = (type) => {
31398
31409
  if (["daterange", "datetimerange"].includes(type)) {
31399
31410
  return DateRangePanel;
@@ -31404,7 +31415,7 @@ var Vc = (function (exports, vue) {
31404
31415
  }
31405
31416
  return DatePanel;
31406
31417
  };
31407
- const DatePicker = createPicker(COMPONENT_NAME$18, props$10, () => {
31418
+ const DatePicker = createPicker(COMPONENT_NAME$19, props$10, () => {
31408
31419
  const props2 = vue.getCurrentInstance().props;
31409
31420
  const icon = vue.ref("date");
31410
31421
  const panel = vue.shallowRef({});
@@ -31432,9 +31443,9 @@ var Vc = (function (exports, vue) {
31432
31443
  default: "div"
31433
31444
  }
31434
31445
  };
31435
- const COMPONENT_NAME$17 = "vc-divider";
31446
+ const COMPONENT_NAME$18 = "vc-divider";
31436
31447
  const Divider = /* @__PURE__ */ vue.defineComponent({
31437
- name: COMPONENT_NAME$17,
31448
+ name: COMPONENT_NAME$18,
31438
31449
  props: props$T,
31439
31450
  setup(props2, {
31440
31451
  slots
@@ -31581,7 +31592,7 @@ var Vc = (function (exports, vue) {
31581
31592
  barTo: props$R.to,
31582
31593
  ...pick(props$R, barKeys)
31583
31594
  };
31584
- const COMPONENT_NAME$16 = "vc-scroller-track";
31595
+ const COMPONENT_NAME$17 = "vc-scroller-track";
31585
31596
  const BAR_MAP = {
31586
31597
  vertical: {
31587
31598
  scroll: "scrollTop",
@@ -31601,7 +31612,7 @@ var Vc = (function (exports, vue) {
31601
31612
  }
31602
31613
  };
31603
31614
  const Track$1 = /* @__PURE__ */ vue.defineComponent({
31604
- name: COMPONENT_NAME$16,
31615
+ name: COMPONENT_NAME$17,
31605
31616
  props: props$S,
31606
31617
  emits: ["change"],
31607
31618
  inheritAttrs: false,
@@ -31763,9 +31774,9 @@ var Vc = (function (exports, vue) {
31763
31774
  };
31764
31775
  }
31765
31776
  });
31766
- const COMPONENT_NAME$15 = "vc-scroller-bar";
31777
+ const COMPONENT_NAME$16 = "vc-scroller-bar";
31767
31778
  const Bar = /* @__PURE__ */ vue.defineComponent({
31768
- name: COMPONENT_NAME$15,
31779
+ name: COMPONENT_NAME$16,
31769
31780
  props: props$R,
31770
31781
  emits: ["change"],
31771
31782
  setup(props2, {
@@ -31976,9 +31987,9 @@ var Vc = (function (exports, vue) {
31976
31987
  refreshPosition
31977
31988
  };
31978
31989
  };
31979
- const COMPONENT_NAME$14 = "vc-scroller";
31990
+ const COMPONENT_NAME$15 = "vc-scroller";
31980
31991
  const Scroller = /* @__PURE__ */ vue.defineComponent({
31981
- name: COMPONENT_NAME$14,
31992
+ name: COMPONENT_NAME$15,
31982
31993
  props: props$Q,
31983
31994
  emits: ["scroll"],
31984
31995
  setup(props2, {
@@ -32036,9 +32047,9 @@ var Vc = (function (exports, vue) {
32036
32047
  };
32037
32048
  }
32038
32049
  });
32039
- const COMPONENT_NAME$13 = "vc-scroller-wheel";
32050
+ const COMPONENT_NAME$14 = "vc-scroller-wheel";
32040
32051
  const ScrollerWheel = /* @__PURE__ */ vue.defineComponent({
32041
- name: COMPONENT_NAME$13,
32052
+ name: COMPONENT_NAME$14,
32042
32053
  props: Object.assign(props$Q, {
32043
32054
  stopPropagation: {
32044
32055
  type: Boolean,
@@ -32209,9 +32220,9 @@ var Vc = (function (exports, vue) {
32209
32220
  type: Function
32210
32221
  }
32211
32222
  };
32212
- const COMPONENT_NAME$12 = "vc-drawer";
32223
+ const COMPONENT_NAME$13 = "vc-drawer";
32213
32224
  const DrawerView = /* @__PURE__ */ vue.defineComponent({
32214
- name: COMPONENT_NAME$12,
32225
+ name: COMPONENT_NAME$13,
32215
32226
  props: props$P,
32216
32227
  emits: ["close", "update:modelValue", "visible-change"],
32217
32228
  setup(props2, {
@@ -32367,9 +32378,9 @@ var Vc = (function (exports, vue) {
32367
32378
  default: "div"
32368
32379
  }
32369
32380
  };
32370
- const COMPONENT_NAME$11 = "vc-dropdown";
32381
+ const COMPONENT_NAME$12 = "vc-dropdown";
32371
32382
  const Dropdown = /* @__PURE__ */ vue.defineComponent({
32372
- name: COMPONENT_NAME$11,
32383
+ name: COMPONENT_NAME$12,
32373
32384
  props: props$O,
32374
32385
  setup(props2, {
32375
32386
  slots
@@ -32388,9 +32399,9 @@ var Vc = (function (exports, vue) {
32388
32399
  default: "div"
32389
32400
  }
32390
32401
  };
32391
- const COMPONENT_NAME$10 = "vc-editor";
32402
+ const COMPONENT_NAME$11 = "vc-editor";
32392
32403
  const Editor = /* @__PURE__ */ vue.defineComponent({
32393
- name: COMPONENT_NAME$10,
32404
+ name: COMPONENT_NAME$11,
32394
32405
  props: props$N,
32395
32406
  setup(props2, {
32396
32407
  slots
@@ -32529,9 +32540,9 @@ var Vc = (function (exports, vue) {
32529
32540
  validateField
32530
32541
  });
32531
32542
  };
32532
- const COMPONENT_NAME$$ = "vc-form";
32543
+ const COMPONENT_NAME$10 = "vc-form";
32533
32544
  const Form = vue.defineComponent({
32534
- name: COMPONENT_NAME$$,
32545
+ name: COMPONENT_NAME$10,
32535
32546
  props: props$M,
32536
32547
  setup(props2, { slots, expose }) {
32537
32548
  useForm(expose);
@@ -32846,9 +32857,9 @@ var Vc = (function (exports, vue) {
32846
32857
  labelPosition
32847
32858
  };
32848
32859
  };
32849
- const COMPONENT_NAME$_ = "vc-form-item";
32860
+ const COMPONENT_NAME$$ = "vc-form-item";
32850
32861
  const FormItem = /* @__PURE__ */ vue.defineComponent({
32851
- name: COMPONENT_NAME$_,
32862
+ name: COMPONENT_NAME$$,
32852
32863
  props: props$L,
32853
32864
  setup(props2, {
32854
32865
  slots,
@@ -32911,9 +32922,9 @@ var Vc = (function (exports, vue) {
32911
32922
  default: false
32912
32923
  }
32913
32924
  };
32914
- const COMPONENT_NAME$Z = "vcm-form";
32925
+ const COMPONENT_NAME$_ = "vcm-form";
32915
32926
  const MForm = vue.defineComponent({
32916
- name: COMPONENT_NAME$Z,
32927
+ name: COMPONENT_NAME$_,
32917
32928
  props: props$K,
32918
32929
  setup(props2, { slots, expose }) {
32919
32930
  useForm(expose, {
@@ -32940,9 +32951,9 @@ var Vc = (function (exports, vue) {
32940
32951
  default: 12
32941
32952
  }
32942
32953
  };
32943
- const COMPONENT_NAME$Y = "vcm-form-item";
32954
+ const COMPONENT_NAME$Z = "vcm-form-item";
32944
32955
  const MFormItem = /* @__PURE__ */ vue.defineComponent({
32945
- name: COMPONENT_NAME$Y,
32956
+ name: COMPONENT_NAME$Z,
32946
32957
  props: props$J,
32947
32958
  setup(props2, {
32948
32959
  slots,
@@ -32995,9 +33006,9 @@ var Vc = (function (exports, vue) {
32995
33006
  };
32996
33007
  }
32997
33008
  });
32998
- const COMPONENT_NAME$X = "vc-fragment";
33009
+ const COMPONENT_NAME$Y = "vc-fragment";
32999
33010
  const Fragment = vue.defineComponent({
33000
- name: COMPONENT_NAME$X,
33011
+ name: COMPONENT_NAME$Y,
33001
33012
  setup(_, { slots }) {
33002
33013
  return () => vue.h(vue.Fragment, slots.default?.());
33003
33014
  }
@@ -33009,9 +33020,9 @@ var Vc = (function (exports, vue) {
33009
33020
  default: "div"
33010
33021
  }
33011
33022
  };
33012
- const COMPONENT_NAME$W = "vc-html-to-image";
33023
+ const COMPONENT_NAME$X = "vc-html-to-image";
33013
33024
  const HTMLToImage = /* @__PURE__ */ vue.defineComponent({
33014
- name: COMPONENT_NAME$W,
33025
+ name: COMPONENT_NAME$X,
33015
33026
  props: props$I,
33016
33027
  setup(props2, {
33017
33028
  slots
@@ -33080,7 +33091,7 @@ var Vc = (function (exports, vue) {
33080
33091
  }
33081
33092
  }
33082
33093
  const IMGStore$1 = new IMGStore();
33083
- const COMPONENT_NAME$V = "vc-image";
33094
+ const COMPONENT_NAME$W = "vc-image";
33084
33095
  let isSupportObjectFit = false;
33085
33096
  window.addEventListener("DOMContentLoaded", () => {
33086
33097
  isSupportObjectFit = !IS_SERVER$3 && document.documentElement.style.objectFit !== void 0;
@@ -33093,7 +33104,7 @@ var Vc = (function (exports, vue) {
33093
33104
  SCALE_DOWN: "scale-down"
33094
33105
  };
33095
33106
  const Image$1 = /* @__PURE__ */ vue.defineComponent({
33096
- name: COMPONENT_NAME$V,
33107
+ name: COMPONENT_NAME$W,
33097
33108
  inheritAttrs: false,
33098
33109
  props: props$H,
33099
33110
  setup(props2, {
@@ -33288,9 +33299,9 @@ var Vc = (function (exports, vue) {
33288
33299
  default: "div"
33289
33300
  }
33290
33301
  };
33291
- const COMPONENT_NAME$U = "vc-image-crop";
33302
+ const COMPONENT_NAME$V = "vc-image-crop";
33292
33303
  const ImageCrop = /* @__PURE__ */ vue.defineComponent({
33293
- name: COMPONENT_NAME$U,
33304
+ name: COMPONENT_NAME$V,
33294
33305
  props: props$G,
33295
33306
  setup(props2, {
33296
33307
  slots
@@ -33309,9 +33320,9 @@ var Vc = (function (exports, vue) {
33309
33320
  default: "div"
33310
33321
  }
33311
33322
  };
33312
- const COMPONENT_NAME$T = "vc-image-preview";
33323
+ const COMPONENT_NAME$U = "vc-image-preview";
33313
33324
  const ImagePreview = /* @__PURE__ */ vue.defineComponent({
33314
- name: COMPONENT_NAME$T,
33325
+ name: COMPONENT_NAME$U,
33315
33326
  props: props$F,
33316
33327
  setup(props2, {
33317
33328
  slots
@@ -33330,9 +33341,9 @@ var Vc = (function (exports, vue) {
33330
33341
  default: "div"
33331
33342
  }
33332
33343
  };
33333
- const COMPONENT_NAME$S = "vc-image-processing";
33344
+ const COMPONENT_NAME$T = "vc-image-processing";
33334
33345
  const ImageProcessing = /* @__PURE__ */ vue.defineComponent({
33335
- name: COMPONENT_NAME$S,
33346
+ name: COMPONENT_NAME$T,
33336
33347
  props: props$E,
33337
33348
  setup(props2, {
33338
33349
  slots
@@ -33345,9 +33356,9 @@ var Vc = (function (exports, vue) {
33345
33356
  }
33346
33357
  });
33347
33358
  const MImageProcessing = ImageProcessing;
33348
- const COMPONENT_NAME$R = "vcm-input";
33359
+ const COMPONENT_NAME$S = "vcm-input";
33349
33360
  const MInput = /* @__PURE__ */ vue.defineComponent({
33350
- name: COMPONENT_NAME$R,
33361
+ name: COMPONENT_NAME$S,
33351
33362
  inheritAttrs: false,
33352
33363
  props: {
33353
33364
  ...props$$,
@@ -33434,9 +33445,9 @@ var Vc = (function (exports, vue) {
33434
33445
  };
33435
33446
  }
33436
33447
  });
33437
- const COMPONENT_NAME$Q = "vcm-input-number";
33448
+ const COMPONENT_NAME$R = "vcm-input-number";
33438
33449
  const MInputNumber = /* @__PURE__ */ vue.defineComponent({
33439
- name: COMPONENT_NAME$Q,
33450
+ name: COMPONENT_NAME$R,
33440
33451
  props: props$X,
33441
33452
  inheritAttrs: false,
33442
33453
  setup(props2, {
@@ -33482,9 +33493,9 @@ var Vc = (function (exports, vue) {
33482
33493
  };
33483
33494
  }
33484
33495
  });
33485
- const COMPONENT_NAME$P = "vcm-input-search";
33496
+ const COMPONENT_NAME$Q = "vcm-input-search";
33486
33497
  const MInputSearch = /* @__PURE__ */ vue.defineComponent({
33487
- name: COMPONENT_NAME$P,
33498
+ name: COMPONENT_NAME$Q,
33488
33499
  props: {
33489
33500
  ...props$W,
33490
33501
  cancelText: {
@@ -33558,9 +33569,9 @@ var Vc = (function (exports, vue) {
33558
33569
  default: true
33559
33570
  }
33560
33571
  };
33561
- const COMPONENT_NAME$O = "vcm-list";
33572
+ const COMPONENT_NAME$P = "vcm-list";
33562
33573
  const MList = vue.defineComponent({
33563
- name: COMPONENT_NAME$O,
33574
+ name: COMPONENT_NAME$P,
33564
33575
  props: props$D,
33565
33576
  setup(props2, { slots }) {
33566
33577
  vue.provide("vc-list", { props: props2 });
@@ -33611,10 +33622,10 @@ var Vc = (function (exports, vue) {
33611
33622
  // MListItem是否独立存在
33612
33623
  alone: Boolean
33613
33624
  };
33614
- const COMPONENT_NAME$N = "vcm-list-item";
33625
+ const COMPONENT_NAME$O = "vcm-list-item";
33615
33626
  const HTTP_REGEX = /[a-zA-z]+:\/\/[^\s]*/;
33616
33627
  const MListItem = /* @__PURE__ */ vue.defineComponent({
33617
- name: COMPONENT_NAME$N,
33628
+ name: COMPONENT_NAME$O,
33618
33629
  props: props$C,
33619
33630
  emits: ["click"],
33620
33631
  setup(props2, {
@@ -33698,11 +33709,11 @@ var Vc = (function (exports, vue) {
33698
33709
  default: false
33699
33710
  }
33700
33711
  };
33701
- const COMPONENT_NAME$M = "vc-marquee";
33712
+ const COMPONENT_NAME$N = "vc-marquee";
33702
33713
  const ANIMATION = prefixStyle("animation").camel;
33703
33714
  const TRANSFORM_KEBAB = prefixStyle("transform").kebab;
33704
33715
  const Marquee = /* @__PURE__ */ vue.defineComponent({
33705
- name: COMPONENT_NAME$M,
33716
+ name: COMPONENT_NAME$N,
33706
33717
  props: props$B,
33707
33718
  setup(props2, {
33708
33719
  slots
@@ -33763,9 +33774,9 @@ var Vc = (function (exports, vue) {
33763
33774
  default: true
33764
33775
  }
33765
33776
  };
33766
- const COMPONENT_NAME$L = "vc-resizer";
33777
+ const COMPONENT_NAME$M = "vc-resizer";
33767
33778
  const Resizer = vue.defineComponent({
33768
- name: COMPONENT_NAME$L,
33779
+ name: COMPONENT_NAME$M,
33769
33780
  props: props$A,
33770
33781
  emit: ["resize", "change"],
33771
33782
  setup(props2, { emit, slots, expose }) {
@@ -33908,10 +33919,10 @@ var Vc = (function (exports, vue) {
33908
33919
  type: Function
33909
33920
  }
33910
33921
  };
33911
- const COMPONENT_NAME$K = "vc-modal";
33922
+ const COMPONENT_NAME$L = "vc-modal";
33912
33923
  let zIndexNumber = 1002;
33913
33924
  const ModalView = /* @__PURE__ */ vue.defineComponent({
33914
- name: COMPONENT_NAME$K,
33925
+ name: COMPONENT_NAME$L,
33915
33926
  emits: ["update:modelValue", "close", "portal-fulfilled", "visible-change", "ok", "cancel"],
33916
33927
  props: props$z,
33917
33928
  setup(props2, {
@@ -34291,9 +34302,9 @@ var Vc = (function (exports, vue) {
34291
34302
  type: Function
34292
34303
  }
34293
34304
  };
34294
- const COMPONENT_NAME$J = "vc-modal";
34305
+ const COMPONENT_NAME$K = "vc-modal";
34295
34306
  const MModalView = /* @__PURE__ */ vue.defineComponent({
34296
- name: COMPONENT_NAME$J,
34307
+ name: COMPONENT_NAME$K,
34297
34308
  emits: ["update:modelValue", "portal-fulfilled", "close", "ok", "cancel"],
34298
34309
  props: props$y,
34299
34310
  setup(props2, {
@@ -34488,9 +34499,9 @@ var Vc = (function (exports, vue) {
34488
34499
  // 这个相当于Modal中的onCancel,支持Promise
34489
34500
  onBeforeClose: Function
34490
34501
  };
34491
- const COMPONENT_NAME$I = "vc-notice";
34502
+ const COMPONENT_NAME$J = "vc-notice";
34492
34503
  const NoticeView = /* @__PURE__ */ vue.defineComponent({
34493
- name: COMPONENT_NAME$I,
34504
+ name: COMPONENT_NAME$J,
34494
34505
  props: props$x,
34495
34506
  emits: ["portal-fulfilled", "close", "before-close"],
34496
34507
  setup(props2, {
@@ -34656,9 +34667,9 @@ var Vc = (function (exports, vue) {
34656
34667
  default: "div"
34657
34668
  }
34658
34669
  };
34659
- const COMPONENT_NAME$H = "vc-option";
34670
+ const COMPONENT_NAME$I = "vc-option";
34660
34671
  const Option$1 = /* @__PURE__ */ vue.defineComponent({
34661
- name: COMPONENT_NAME$H,
34672
+ name: COMPONENT_NAME$I,
34662
34673
  props: props$w,
34663
34674
  setup(props2, {
34664
34675
  slots
@@ -34764,9 +34775,9 @@ var Vc = (function (exports, vue) {
34764
34775
  type: [String, Number]
34765
34776
  }
34766
34777
  };
34767
- const COMPONENT_NAME$G = "vc-tag";
34778
+ const COMPONENT_NAME$H = "vc-tag";
34768
34779
  const Tag = /* @__PURE__ */ vue.defineComponent({
34769
- name: COMPONENT_NAME$G,
34780
+ name: COMPONENT_NAME$H,
34770
34781
  props: props$u,
34771
34782
  emits: ["close", "change"],
34772
34783
  setup(props2, {
@@ -34831,9 +34842,9 @@ var Vc = (function (exports, vue) {
34831
34842
  default: true
34832
34843
  }
34833
34844
  };
34834
- const COMPONENT_NAME$F = "vc-select-option";
34845
+ const COMPONENT_NAME$G = "vc-select-option";
34835
34846
  const Option = /* @__PURE__ */ vue.defineComponent({
34836
- name: COMPONENT_NAME$F,
34847
+ name: COMPONENT_NAME$G,
34837
34848
  props: props$t,
34838
34849
  setup(props2, {
34839
34850
  slots
@@ -34900,9 +34911,9 @@ var Vc = (function (exports, vue) {
34900
34911
  type: [String, Number]
34901
34912
  }
34902
34913
  };
34903
- const COMPONENT_NAME$E = "vc-select-option-group";
34914
+ const COMPONENT_NAME$F = "vc-select-option-group";
34904
34915
  const OptionGroup = /* @__PURE__ */ vue.defineComponent({
34905
- name: COMPONENT_NAME$E,
34916
+ name: COMPONENT_NAME$F,
34906
34917
  props: props$s,
34907
34918
  setup(props2, {
34908
34919
  slots
@@ -34920,7 +34931,7 @@ var Vc = (function (exports, vue) {
34920
34931
  };
34921
34932
  }
34922
34933
  });
34923
- const inputKeys = [
34934
+ const inputKeys$1 = [
34924
34935
  "id",
34925
34936
  "disabled",
34926
34937
  "modelValue",
@@ -34932,7 +34943,7 @@ var Vc = (function (exports, vue) {
34932
34943
  ];
34933
34944
  const props$r = {
34934
34945
  ...pick(props$Z, popoverKeys),
34935
- ...pick(props$$, inputKeys),
34946
+ ...pick(props$$, inputKeys$1),
34936
34947
  data: {
34937
34948
  type: Array,
34938
34949
  default: () => []
@@ -34996,9 +35007,9 @@ var Vc = (function (exports, vue) {
34996
35007
  function _isSlot$1(s) {
34997
35008
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
34998
35009
  }
34999
- const COMPONENT_NAME$D = "vc-select";
35010
+ const COMPONENT_NAME$E = "vc-select";
35000
35011
  const Select = /* @__PURE__ */ vue.defineComponent({
35001
- name: COMPONENT_NAME$D,
35012
+ name: COMPONENT_NAME$E,
35002
35013
  props: props$r,
35003
35014
  emits: ["ready", "close", "visible-change", "clear", "change", "update:modelValue"],
35004
35015
  setup(props2, {
@@ -35228,9 +35239,9 @@ var Vc = (function (exports, vue) {
35228
35239
  };
35229
35240
  }
35230
35241
  });
35231
- const COMPONENT_NAME$C = "vc-pagination";
35242
+ const COMPONENT_NAME$D = "vc-pagination";
35232
35243
  const Pagination = /* @__PURE__ */ vue.defineComponent({
35233
- name: COMPONENT_NAME$C,
35244
+ name: COMPONENT_NAME$D,
35234
35245
  props: props$v,
35235
35246
  emits: ["update:current", "change", "page-size-change"],
35236
35247
  setup(props2, {
@@ -35421,9 +35432,9 @@ var Vc = (function (exports, vue) {
35421
35432
  default: "div"
35422
35433
  }
35423
35434
  };
35424
- const COMPONENT_NAME$B = "vc-picker";
35435
+ const COMPONENT_NAME$C = "vc-picker";
35425
35436
  const Picker = /* @__PURE__ */ vue.defineComponent({
35426
- name: COMPONENT_NAME$B,
35437
+ name: COMPONENT_NAME$C,
35427
35438
  props: props$q,
35428
35439
  setup(props2, {
35429
35440
  slots
@@ -35442,9 +35453,9 @@ var Vc = (function (exports, vue) {
35442
35453
  default: "div"
35443
35454
  }
35444
35455
  };
35445
- const COMPONENT_NAME$A = "vc-popconfirm";
35456
+ const COMPONENT_NAME$B = "vc-popconfirm";
35446
35457
  const Popconfirm = /* @__PURE__ */ vue.defineComponent({
35447
- name: COMPONENT_NAME$A,
35458
+ name: COMPONENT_NAME$B,
35448
35459
  props: props$p,
35449
35460
  setup(props2, {
35450
35461
  slots
@@ -35464,9 +35475,9 @@ var Vc = (function (exports, vue) {
35464
35475
  default: "div"
35465
35476
  }
35466
35477
  };
35467
- const COMPONENT_NAME$z = "vc-popup";
35478
+ const COMPONENT_NAME$A = "vc-popup";
35468
35479
  const Popup = /* @__PURE__ */ vue.defineComponent({
35469
- name: COMPONENT_NAME$z,
35480
+ name: COMPONENT_NAME$A,
35470
35481
  props: props$o,
35471
35482
  setup(props2, {
35472
35483
  slots
@@ -35487,9 +35498,9 @@ var Vc = (function (exports, vue) {
35487
35498
  default: "div"
35488
35499
  }
35489
35500
  };
35490
- const COMPONENT_NAME$y = "vc-print";
35501
+ const COMPONENT_NAME$z = "vc-print";
35491
35502
  const Print = /* @__PURE__ */ vue.defineComponent({
35492
- name: COMPONENT_NAME$y,
35503
+ name: COMPONENT_NAME$z,
35493
35504
  props: props$n,
35494
35505
  setup(props2, {
35495
35506
  expose,
@@ -35579,9 +35590,9 @@ var Vc = (function (exports, vue) {
35579
35590
  })
35580
35591
  }
35581
35592
  };
35582
- const COMPONENT_NAME$x = "vc-progress-circle";
35593
+ const COMPONENT_NAME$y = "vc-progress-circle";
35583
35594
  const Circle$1 = /* @__PURE__ */ vue.defineComponent({
35584
- name: COMPONENT_NAME$x,
35595
+ name: COMPONENT_NAME$y,
35585
35596
  props: props$m,
35586
35597
  setup(props2, {
35587
35598
  slots
@@ -35638,9 +35649,9 @@ var Vc = (function (exports, vue) {
35638
35649
  };
35639
35650
  }
35640
35651
  });
35641
- const COMPONENT_NAME$w = "vc-progress-line";
35652
+ const COMPONENT_NAME$x = "vc-progress-line";
35642
35653
  const Line$2 = /* @__PURE__ */ vue.defineComponent({
35643
- name: COMPONENT_NAME$w,
35654
+ name: COMPONENT_NAME$x,
35644
35655
  props: props$m,
35645
35656
  setup(props2) {
35646
35657
  const colorStyle = vue.computed(() => {
@@ -35684,9 +35695,9 @@ var Vc = (function (exports, vue) {
35684
35695
  function _isSlot(s) {
35685
35696
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
35686
35697
  }
35687
- const COMPONENT_NAME$v = "vc-progress";
35698
+ const COMPONENT_NAME$w = "vc-progress";
35688
35699
  const Progress = /* @__PURE__ */ vue.defineComponent({
35689
- name: COMPONENT_NAME$v,
35700
+ name: COMPONENT_NAME$w,
35690
35701
  props: props$m,
35691
35702
  setup(props2, {
35692
35703
  slots
@@ -35832,9 +35843,9 @@ var Vc = (function (exports, vue) {
35832
35843
  computedLabel
35833
35844
  };
35834
35845
  };
35835
- const COMPONENT_NAME$u = "vc-radio";
35846
+ const COMPONENT_NAME$v = "vc-radio";
35836
35847
  const Radio = /* @__PURE__ */ vue.defineComponent({
35837
- name: COMPONENT_NAME$u,
35848
+ name: COMPONENT_NAME$v,
35838
35849
  props: props$l,
35839
35850
  emits: ["update:modelValue", "change"],
35840
35851
  setup(props2, {
@@ -35940,9 +35951,9 @@ var Vc = (function (exports, vue) {
35940
35951
  reset
35941
35952
  };
35942
35953
  };
35943
- const COMPONENT_NAME$t = "vc-radio-group";
35954
+ const COMPONENT_NAME$u = "vc-radio-group";
35944
35955
  const RadioGroup = /* @__PURE__ */ vue.defineComponent({
35945
- name: COMPONENT_NAME$t,
35956
+ name: COMPONENT_NAME$u,
35946
35957
  props: props$k,
35947
35958
  emits: ["update:modelValue", "change"],
35948
35959
  setup(props2, {
@@ -35961,9 +35972,9 @@ var Vc = (function (exports, vue) {
35961
35972
  };
35962
35973
  }
35963
35974
  });
35964
- const COMPONENT_NAME$s = "vcm-radio";
35975
+ const COMPONENT_NAME$t = "vcm-radio";
35965
35976
  const MRadio = /* @__PURE__ */ vue.defineComponent({
35966
- name: COMPONENT_NAME$s,
35977
+ name: COMPONENT_NAME$t,
35967
35978
  props: props$l,
35968
35979
  emits: ["update:modelValue", "change"],
35969
35980
  setup(props2, {
@@ -36001,9 +36012,9 @@ var Vc = (function (exports, vue) {
36001
36012
  };
36002
36013
  }
36003
36014
  });
36004
- const COMPONENT_NAME$r = "vcm-radio-group";
36015
+ const COMPONENT_NAME$s = "vcm-radio-group";
36005
36016
  const MRadioGroup = /* @__PURE__ */ vue.defineComponent({
36006
- name: COMPONENT_NAME$r,
36017
+ name: COMPONENT_NAME$s,
36007
36018
  props: props$k,
36008
36019
  emits: ["update:modelValue", "change"],
36009
36020
  setup(props2, {
@@ -36028,9 +36039,9 @@ var Vc = (function (exports, vue) {
36028
36039
  default: "div"
36029
36040
  }
36030
36041
  };
36031
- const COMPONENT_NAME$q = "vc-rate";
36042
+ const COMPONENT_NAME$r = "vc-rate";
36032
36043
  const Rate = /* @__PURE__ */ vue.defineComponent({
36033
- name: COMPONENT_NAME$q,
36044
+ name: COMPONENT_NAME$r,
36034
36045
  props: props$j,
36035
36046
  setup(props2, {
36036
36047
  slots
@@ -36093,9 +36104,9 @@ var Vc = (function (exports, vue) {
36093
36104
  renderPlaceholder: Function,
36094
36105
  renderRefresh: Function
36095
36106
  };
36096
- const COMPONENT_NAME$p = "vc-recycle-list-scroll-state";
36107
+ const COMPONENT_NAME$q = "vc-recycle-list-scroll-state";
36097
36108
  const ScrollState = /* @__PURE__ */ vue.defineComponent({
36098
- name: COMPONENT_NAME$p,
36109
+ name: COMPONENT_NAME$q,
36099
36110
  setup(_, {
36100
36111
  slots
36101
36112
  }) {
@@ -36219,10 +36230,10 @@ var Vc = (function (exports, vue) {
36219
36230
  );
36220
36231
  return keys;
36221
36232
  };
36222
- const COMPONENT_NAME$o = "vc-recycle-list-container";
36233
+ const COMPONENT_NAME$p = "vc-recycle-list-container";
36223
36234
  const transformKey = prefixStyle("transform").camel;
36224
36235
  const Container = /* @__PURE__ */ vue.defineComponent({
36225
- name: COMPONENT_NAME$o,
36236
+ name: COMPONENT_NAME$p,
36226
36237
  props: props$h,
36227
36238
  emits: ["refresh"],
36228
36239
  setup(props2, {
@@ -36315,9 +36326,9 @@ var Vc = (function (exports, vue) {
36315
36326
  };
36316
36327
  }
36317
36328
  });
36318
- const COMPONENT_NAME$n = "vc-recycle-list";
36329
+ const COMPONENT_NAME$o = "vc-recycle-list";
36319
36330
  const RecycleList = /* @__PURE__ */ vue.defineComponent({
36320
- name: COMPONENT_NAME$n,
36331
+ name: COMPONENT_NAME$o,
36321
36332
  props: props$i,
36322
36333
  emits: ["scroll", "row-resize"],
36323
36334
  setup(props2, {
@@ -36448,19 +36459,12 @@ var Vc = (function (exports, vue) {
36448
36459
  const refreshItemSize = (index) => {
36449
36460
  const current = props2.inverted ? rebuildData.value[rebuildDataIndexMap.value[index]] : rebuildData.value[index];
36450
36461
  if (!current) return;
36451
- const oldSize = current.size;
36452
36462
  const dom = preloads.value[index] || curloads.value[props2.inverted ? index : index - firstItemIndex.value];
36453
36463
  if (dom) {
36454
36464
  current.size = dom[K.offsetSize] || placeholderSize.value;
36455
36465
  } else if (current) {
36456
36466
  current.size = placeholderSize.value;
36457
36467
  }
36458
- if (oldSize !== current.size) {
36459
- emit("row-resize", {
36460
- index: current.id,
36461
- size: current.size
36462
- });
36463
- }
36464
36468
  };
36465
36469
  const refreshItemPosition = () => {
36466
36470
  const sizes = Array.from({
@@ -36669,6 +36673,13 @@ var Vc = (function (exports, vue) {
36669
36673
  leading: false,
36670
36674
  trailing: true
36671
36675
  });
36676
+ const handleRowChange = (e, row) => {
36677
+ emit("row-resize", {
36678
+ index: row.id,
36679
+ height: e.height,
36680
+ width: e.width
36681
+ });
36682
+ };
36672
36683
  const setDataSource = async (v, oldV) => {
36673
36684
  if (!Array.isArray(v) || oldV === v) return;
36674
36685
  if (props2.data.length % props2.pageSize > 0) {
@@ -36795,7 +36806,8 @@ var Vc = (function (exports, vue) {
36795
36806
  "data-column": item.column,
36796
36807
  "data-size": item.size,
36797
36808
  "data-position": item.position,
36798
- "onResize": handleResize
36809
+ "onResize": handleResize,
36810
+ "onChange": (e) => handleRowChange(e, item)
36799
36811
  }, {
36800
36812
  default: () => [slots.default?.({
36801
36813
  row: item.data || {},
@@ -36838,9 +36850,9 @@ var Vc = (function (exports, vue) {
36838
36850
  default: "div"
36839
36851
  }
36840
36852
  };
36841
- const COMPONENT_NAME$m = "vc-slider";
36853
+ const COMPONENT_NAME$n = "vc-slider";
36842
36854
  const Slider = /* @__PURE__ */ vue.defineComponent({
36843
- name: COMPONENT_NAME$m,
36855
+ name: COMPONENT_NAME$n,
36844
36856
  props: props$g,
36845
36857
  setup(props2, {
36846
36858
  slots
@@ -36859,9 +36871,9 @@ var Vc = (function (exports, vue) {
36859
36871
  default: "div"
36860
36872
  }
36861
36873
  };
36862
- const COMPONENT_NAME$l = "vc-sort-list";
36874
+ const COMPONENT_NAME$m = "vc-sort-list";
36863
36875
  const SortList = /* @__PURE__ */ vue.defineComponent({
36864
- name: COMPONENT_NAME$l,
36876
+ name: COMPONENT_NAME$m,
36865
36877
  props: props$f,
36866
36878
  setup(props2, {
36867
36879
  slots
@@ -36880,9 +36892,9 @@ var Vc = (function (exports, vue) {
36880
36892
  default: "div"
36881
36893
  }
36882
36894
  };
36883
- const COMPONENT_NAME$k = "vc-steps";
36895
+ const COMPONENT_NAME$l = "vc-steps";
36884
36896
  const Steps = /* @__PURE__ */ vue.defineComponent({
36885
- name: COMPONENT_NAME$k,
36897
+ name: COMPONENT_NAME$l,
36886
36898
  props: props$e,
36887
36899
  setup(props2, {
36888
36900
  slots
@@ -36989,9 +37001,9 @@ var Vc = (function (exports, vue) {
36989
37001
  reset
36990
37002
  };
36991
37003
  };
36992
- const COMPONENT_NAME$j = "vc-switch";
37004
+ const COMPONENT_NAME$k = "vc-switch";
36993
37005
  const Switch = /* @__PURE__ */ vue.defineComponent({
36994
- name: COMPONENT_NAME$j,
37006
+ name: COMPONENT_NAME$k,
36995
37007
  props: props$d,
36996
37008
  // click -> onClick要被拦截,此处不能放置
36997
37009
  emits: ["update:modelValue", "change", "click"],
@@ -37025,9 +37037,9 @@ var Vc = (function (exports, vue) {
37025
37037
  };
37026
37038
  }
37027
37039
  });
37028
- const COMPONENT_NAME$i = "vcm-switch";
37040
+ const COMPONENT_NAME$j = "vcm-switch";
37029
37041
  const MSwitch = /* @__PURE__ */ vue.defineComponent({
37030
- name: COMPONENT_NAME$i,
37042
+ name: COMPONENT_NAME$j,
37031
37043
  props: props$d,
37032
37044
  // click -> onClick要被拦截,此处不能放置
37033
37045
  emits: ["update:modelValue", "change", "click"],
@@ -37791,6 +37803,7 @@ var Vc = (function (exports, vue) {
37791
37803
  });
37792
37804
  }
37793
37805
  setData(data) {
37806
+ const { primaryKey } = this.table.props;
37794
37807
  const dataInstanceChanged = this.states._data !== data;
37795
37808
  this.states._data = data;
37796
37809
  this.states.data = data;
@@ -37802,19 +37815,22 @@ var Vc = (function (exports, vue) {
37802
37815
  });
37803
37816
  this.states.list = data.reduce((pre, row, index) => {
37804
37817
  const cache = caches.get(row) || { heightMap: {} };
37805
- pre.push({
37806
- rows: [
37807
- {
37808
- index,
37809
- data: row,
37810
- height: cache.height || "",
37811
- heightMap: {
37812
- left: cache.heightMap.left || "",
37813
- main: cache.heightMap.main || "",
37814
- right: cache.heightMap.right || ""
37815
- }
37818
+ const rows = [
37819
+ {
37820
+ index,
37821
+ data: row,
37822
+ height: cache.height || "",
37823
+ heightMap: {
37824
+ left: cache.heightMap.left || "",
37825
+ main: cache.heightMap.main || "",
37826
+ right: cache.heightMap.right || ""
37816
37827
  }
37817
- ],
37828
+ }
37829
+ ];
37830
+ const id = primaryKey ? rows.map((rowData) => getRowValue(rowData.data, primaryKey)).join(",") : index;
37831
+ pre.push({
37832
+ id: typeof id === "undefined" ? index : id,
37833
+ rows,
37818
37834
  expand: false
37819
37835
  });
37820
37836
  return pre;
@@ -38124,9 +38140,9 @@ var Vc = (function (exports, vue) {
38124
38140
  });
38125
38141
  return states;
38126
38142
  };
38127
- const COMPONENT_NAME$h = "vc-table-normal-list";
38143
+ const COMPONENT_NAME$i = "vc-table-normal-list";
38128
38144
  const NormalList = /* @__PURE__ */ vue.defineComponent({
38129
- name: COMPONENT_NAME$h,
38145
+ name: COMPONENT_NAME$i,
38130
38146
  props: {
38131
38147
  data: {
38132
38148
  type: Array,
@@ -38141,17 +38157,19 @@ var Vc = (function (exports, vue) {
38141
38157
  const handleResize = (e, index) => {
38142
38158
  emit("row-resize", {
38143
38159
  index,
38144
- size: e.height
38160
+ height: e.height,
38161
+ width: e.width
38145
38162
  });
38146
38163
  };
38147
38164
  return () => {
38148
- return props2.data.map((row, index) => {
38165
+ return props2.data.map((mergeData, index) => {
38149
38166
  return vue.createVNode(Resizer, {
38167
+ "key": mergeData.id,
38150
38168
  "fill": false,
38151
38169
  "onChange": (e) => handleResize(e, index)
38152
38170
  }, {
38153
38171
  default: () => [slots.default?.({
38154
- row,
38172
+ row: mergeData,
38155
38173
  index
38156
38174
  })]
38157
38175
  });
@@ -38299,28 +38317,6 @@ var Vc = (function (exports, vue) {
38299
38317
  table.hoverState.value = hoverState;
38300
38318
  table.emit("cell-mouse-enter", hoverState.row, hoverState.column, hoverState.cell, e);
38301
38319
  }
38302
- const cellChild = e.target.querySelector(".vc-table__cell");
38303
- if (!(hasClass(cellChild, "vc-popover") && cellChild.childNodes.length)) {
38304
- return;
38305
- }
38306
- const range = document.createRange();
38307
- range.setStart(cellChild, 0);
38308
- range.setEnd(cellChild, cellChild.childNodes.length);
38309
- const rangeWidth = range.getBoundingClientRect().width;
38310
- const padding = (parseInt(cellChild.style.paddingLeft, 10) || 0) + (parseInt(cellChild.style.paddingRight, 10) || 0);
38311
- if (rangeWidth + padding > cellChild.offsetWidth || cellChild.scrollWidth > cellChild.offsetWidth) {
38312
- Popover.open({
38313
- el: document.body,
38314
- name: "vc-table-popover",
38315
- // 确保不重复创建
38316
- triggerEl: cell,
38317
- hover: true,
38318
- theme: "dark",
38319
- placement: "top",
38320
- content: cell.innerText || cell.textContent,
38321
- alone: true
38322
- });
38323
- }
38324
38320
  };
38325
38321
  const handleCellMouseLeave = (e) => {
38326
38322
  const cell = getCell(e);
@@ -38408,13 +38404,14 @@ var Vc = (function (exports, vue) {
38408
38404
  })]);
38409
38405
  })]);
38410
38406
  };
38411
- const renderMergeRow = (mergeData, mergeIndex) => {
38407
+ const renderMergeRow = (mergeData) => {
38412
38408
  const {
38413
- rows
38409
+ rows,
38410
+ id
38414
38411
  } = mergeData;
38415
38412
  return vue.createVNode("div", {
38416
38413
  "class": "vc-table__merge-row",
38417
- "key": mergeIndex
38414
+ "key": id
38418
38415
  }, [rows.map((row) => {
38419
38416
  return renderRow(row, row.index);
38420
38417
  })]);
@@ -38422,7 +38419,7 @@ var Vc = (function (exports, vue) {
38422
38419
  const handleMergeRowResize = (v) => {
38423
38420
  if (table.props.rowHeight) return;
38424
38421
  states.list[v.index].rows.forEach((row) => {
38425
- row.heightMap[props2.fixed || "main"] = v.size;
38422
+ row.heightMap[props2.fixed || "main"] = v.height;
38426
38423
  const heights = [row.heightMap.main];
38427
38424
  if (states.leftFixedCount) {
38428
38425
  heights.push(row.heightMap.left);
@@ -38478,17 +38475,15 @@ var Vc = (function (exports, vue) {
38478
38475
  "style": props2.heightStyle
38479
38476
  }, {
38480
38477
  default: ({
38481
- row,
38482
- index
38483
- }) => renderMergeRow(row, index)
38478
+ row
38479
+ }) => renderMergeRow(row)
38484
38480
  }) : vue.createVNode(NormalList, {
38485
38481
  "data": states.list,
38486
38482
  "onRowResize": handleMergeRowResize
38487
38483
  }, {
38488
38484
  default: ({
38489
- row,
38490
- index
38491
- }) => renderMergeRow(row, index)
38485
+ row
38486
+ }) => renderMergeRow(row)
38492
38487
  })]);
38493
38488
  };
38494
38489
  }
@@ -38975,9 +38970,9 @@ var Vc = (function (exports, vue) {
38975
38970
  // 用于延迟渲染,用于计算高度
38976
38971
  delay: Number
38977
38972
  };
38978
- const COMPONENT_NAME$g = "vc-table";
38973
+ const COMPONENT_NAME$h = "vc-table";
38979
38974
  const Table = /* @__PURE__ */ vue.defineComponent({
38980
- name: COMPONENT_NAME$g,
38975
+ name: COMPONENT_NAME$h,
38981
38976
  props: props$c,
38982
38977
  emits: ["select", "select-all", "selection-change", "cell-mouse-enter", "cell-mouse-leave", "cell-click", "cell-dblclick", "row-click", "row-contextmenu", "row-dblclick", "header-click", "header-contextmenu", "current-change", "header-dragend ", "expand-change", "sort-change"],
38983
38978
  setup(props2, {
@@ -39483,10 +39478,194 @@ var Vc = (function (exports, vue) {
39483
39478
  };
39484
39479
  }
39485
39480
  });
39486
- const cellStarts = {
39487
- default: {
39488
- order: ""
39489
- },
39481
+ const props$b = {
39482
+ tag: {
39483
+ type: String,
39484
+ default: "div"
39485
+ },
39486
+ value: {
39487
+ type: String,
39488
+ default: ""
39489
+ },
39490
+ line: {
39491
+ type: Number,
39492
+ default: 0
39493
+ },
39494
+ // TODO: 是否改为tail-indent来表示尾部缩进
39495
+ indent: {
39496
+ type: Number,
39497
+ default: 0
39498
+ },
39499
+ resize: {
39500
+ type: [Boolean, Number],
39501
+ default: 100
39502
+ },
39503
+ suffix: {
39504
+ type: String,
39505
+ default: "..."
39506
+ },
39507
+ placement: {
39508
+ type: String,
39509
+ default: "top"
39510
+ },
39511
+ portalClassName: [Object, String, Array],
39512
+ portalStyle: [Object, String, Array],
39513
+ renderRow: {
39514
+ type: Function,
39515
+ // 函数式可以用于高亮显示
39516
+ default: (props$) => {
39517
+ const { value } = props$;
39518
+ return vue.h("span", {}, value);
39519
+ }
39520
+ }
39521
+ };
39522
+ const HIDDEN_TEXT_STYLE = `
39523
+ position: absolute!important;
39524
+ word-break: break-all!important;
39525
+ overflow: auto!important;
39526
+ opacity: 0!important;
39527
+ z-index: -1000!important;
39528
+ top: 0!important;
39529
+ right: 0!important;
39530
+ `;
39531
+ const SIZING_STYLE$1 = [
39532
+ "letter-spacing",
39533
+ "line-height",
39534
+ "padding-top",
39535
+ "padding-bottom",
39536
+ "font-family",
39537
+ "font-weight",
39538
+ "font-size",
39539
+ "text-rendering",
39540
+ "text-transform",
39541
+ "width",
39542
+ // 'text-indent', // 需要额外计算
39543
+ "padding-left",
39544
+ "padding-right",
39545
+ "border-width",
39546
+ "box-sizing"
39547
+ ];
39548
+ let hiddenEl$1;
39549
+ const getFitIndex = (options = {}) => {
39550
+ const { el: el2, line, value, suffix, indent } = options;
39551
+ let lineHeight = parseInt(getStyle$1(el2, "line-height"), 10);
39552
+ if (!hiddenEl$1) {
39553
+ hiddenEl$1 = document.createElement("div");
39554
+ document.body.appendChild(hiddenEl$1);
39555
+ }
39556
+ el2.getAttribute("wrap") ? hiddenEl$1.setAttribute("wrap", el2.getAttribute("wrap")) : hiddenEl$1.removeAttribute("wrap");
39557
+ const {
39558
+ paddingSize,
39559
+ borderSize,
39560
+ boxSizing,
39561
+ sizingStyle
39562
+ } = utils.getComputedStyle(el2, SIZING_STYLE$1);
39563
+ const textIndent = `text-indent: ${parseInt(getStyle$1(el2, "text-indent"), 10) + indent}px;`;
39564
+ hiddenEl$1.setAttribute("style", `${sizingStyle};${textIndent};${HIDDEN_TEXT_STYLE}`);
39565
+ let sideHeight = paddingSize || 0;
39566
+ boxSizing === "border-box" && (sideHeight += borderSize);
39567
+ if (Number.isNaN(lineHeight)) {
39568
+ hiddenEl$1.innerText = ".";
39569
+ lineHeight = hiddenEl$1.clientHeight - sideHeight;
39570
+ }
39571
+ let endIndex = 0;
39572
+ hiddenEl$1.innerText = suffix;
39573
+ value.split("").forEach((item, i) => {
39574
+ let old = hiddenEl$1.innerText;
39575
+ old = old.substring(0, old.length - suffix.length);
39576
+ hiddenEl$1.innerText = old + item + suffix;
39577
+ if (hiddenEl$1.clientHeight - sideHeight > lineHeight * line && endIndex === 0) {
39578
+ endIndex = i;
39579
+ }
39580
+ });
39581
+ return endIndex;
39582
+ };
39583
+ const COMPONENT_NAME$g = "vc-text";
39584
+ const Text = /* @__PURE__ */ vue.defineComponent({
39585
+ name: COMPONENT_NAME$g,
39586
+ props: props$b,
39587
+ setup(props2, {
39588
+ emit
39589
+ }) {
39590
+ const instance = vue.getCurrentInstance();
39591
+ const isActive = vue.ref(false);
39592
+ const endIndex = vue.ref(0);
39593
+ const styles = vue.computed(() => {
39594
+ return {
39595
+ cursor: endIndex.value === 0 ? "unset" : "pointer"
39596
+ };
39597
+ });
39598
+ const calcPosition = () => {
39599
+ const {
39600
+ suffix,
39601
+ line,
39602
+ value,
39603
+ indent
39604
+ } = props2;
39605
+ if (line === 0) {
39606
+ endIndex.value = 0;
39607
+ isActive.value = true;
39608
+ } else {
39609
+ endIndex.value = getFitIndex({
39610
+ el: instance.vnode.el,
39611
+ line,
39612
+ value,
39613
+ suffix,
39614
+ indent
39615
+ });
39616
+ isActive.value = true;
39617
+ }
39618
+ emit("clip", endIndex.value);
39619
+ };
39620
+ const handleResize = props2.resize === true || props2.resize === 0 ? calcPosition : debounce$1(calcPosition, props2.resize || 0);
39621
+ const handleMouseOver = (e) => {
39622
+ if (endIndex.value > 0) {
39623
+ Popover.open({
39624
+ el: document.body,
39625
+ name: "vc-text-popover",
39626
+ // 确保不重复创建
39627
+ triggerEl: e.target,
39628
+ hover: true,
39629
+ theme: "dark",
39630
+ placement: props2.placement,
39631
+ portalClassName: props2.portalClassName,
39632
+ portalStyle: props2.portalStyle || `width: ${e.target.clientWidth}px`,
39633
+ content: props2.value
39634
+ });
39635
+ }
39636
+ };
39637
+ const handleMouseOut = () => {
39638
+ };
39639
+ ["value", "indent", "line"].forEach((key) => {
39640
+ vue.watch(() => props2[key], calcPosition);
39641
+ });
39642
+ vue.onMounted(() => {
39643
+ props2.resize !== false && Resize.on(instance.vnode.el, handleResize);
39644
+ });
39645
+ vue.onBeforeUnmount(() => {
39646
+ props2.resize !== false && Resize.off(instance.vnode.el, handleResize);
39647
+ });
39648
+ const Content = props2.tag;
39649
+ return () => {
39650
+ return vue.createVNode(Content, {
39651
+ "class": "vc-text",
39652
+ "style": styles.value,
39653
+ "onMouseover": handleMouseOver,
39654
+ "onMouseout": handleMouseOut
39655
+ }, {
39656
+ default: () => [isActive.value ? vue.createVNode(Customer, {
39657
+ "value": endIndex.value > 0 ? `${props2.value.slice(0, endIndex.value)}${props2.suffix}` : props2.value,
39658
+ "index": endIndex.value,
39659
+ "render": props2.renderRow
39660
+ }, null) : null]
39661
+ });
39662
+ };
39663
+ }
39664
+ });
39665
+ const cellStarts = {
39666
+ default: {
39667
+ order: ""
39668
+ },
39490
39669
  selection: {
39491
39670
  width: 60,
39492
39671
  minWidth: 60,
@@ -39588,26 +39767,29 @@ var Vc = (function (exports, vue) {
39588
39767
  className: "vc-table__expand-column"
39589
39768
  }
39590
39769
  };
39591
- const defaultRenderCell = ({
39592
- row,
39593
- column = {},
39594
- rowIndex
39595
- }) => {
39770
+ const defaultRenderCell = (rowData = {}) => {
39771
+ const column = rowData.column;
39596
39772
  const {
39597
39773
  prop,
39598
39774
  formatter
39599
39775
  } = column;
39600
39776
  let value;
39601
39777
  if (prop) {
39602
- value = getPropByPath(row, prop).v;
39778
+ value = getPropByPath(rowData.row, prop).v;
39603
39779
  }
39604
39780
  if (formatter) {
39605
- return column.formatter({
39606
- row,
39607
- column,
39608
- value,
39609
- rowIndex
39610
- });
39781
+ return column.formatter(rowData);
39782
+ }
39783
+ const line = column.line || VcInstance.options.TableColumn?.line;
39784
+ if (line) {
39785
+ const style2 = {
39786
+ width: (column.realWidth || column.width) - 20 + "px"
39787
+ };
39788
+ return vue.createVNode(Text, {
39789
+ "style": style2,
39790
+ "line": line,
39791
+ "value": value
39792
+ }, null);
39611
39793
  }
39612
39794
  return value;
39613
39795
  };
@@ -39657,6 +39839,11 @@ var Vc = (function (exports, vue) {
39657
39839
  type: String,
39658
39840
  default: "default"
39659
39841
  },
39842
+ // 默认只展示一行
39843
+ line: {
39844
+ type: Number,
39845
+ default: 0
39846
+ },
39660
39847
  label: String,
39661
39848
  customClass: String,
39662
39849
  labelClass: String,
@@ -39671,7 +39858,6 @@ var Vc = (function (exports, vue) {
39671
39858
  columnKey: String,
39672
39859
  align: String,
39673
39860
  headerAlign: String,
39674
- showPopover: Boolean,
39675
39861
  fixed: [Boolean, String],
39676
39862
  formatter: Function,
39677
39863
  selectable: Function,
@@ -39781,12 +39967,6 @@ var Vc = (function (exports, vue) {
39781
39967
  "class": "vc-table-un-expand__indent"
39782
39968
  }, null);
39783
39969
  }
39784
- if (data.column.showPopover) {
39785
- $props.class += " vc-popover";
39786
- $props.style = {
39787
- width: (data.column.realWidth || data.column.width) - 1 + "px"
39788
- };
39789
- }
39790
39970
  const {
39791
39971
  placeholder
39792
39972
  } = table.props;
@@ -39871,7 +40051,7 @@ var Vc = (function (exports, vue) {
39871
40051
  });
39872
40052
  const MTable = Table;
39873
40053
  const MTableColumn = TableColumn;
39874
- const props$b = {
40054
+ const props$a = {
39875
40055
  type: {
39876
40056
  type: String,
39877
40057
  validator: (v) => /^(line|card)$/.test(v),
@@ -40025,7 +40205,7 @@ var Vc = (function (exports, vue) {
40025
40205
  const COMPONENT_NAME$f = "vc-tabs";
40026
40206
  const Tabs = /* @__PURE__ */ vue.defineComponent({
40027
40207
  name: COMPONENT_NAME$f,
40028
- props: props$b,
40208
+ props: props$a,
40029
40209
  emits: ["update:modelValue", "change", "click"],
40030
40210
  setup(props2, {
40031
40211
  slots
@@ -40170,7 +40350,7 @@ var Vc = (function (exports, vue) {
40170
40350
  };
40171
40351
  }
40172
40352
  });
40173
- const props$a = {
40353
+ const props$9 = {
40174
40354
  value: {
40175
40355
  type: [String, Number]
40176
40356
  },
@@ -40251,7 +40431,7 @@ var Vc = (function (exports, vue) {
40251
40431
  const COMPONENT_NAME$e = "vc-tabs-pane";
40252
40432
  const TabsPane = /* @__PURE__ */ vue.defineComponent({
40253
40433
  name: COMPONENT_NAME$e,
40254
- props: props$a,
40434
+ props: props$9,
40255
40435
  setup(_, {
40256
40436
  slots
40257
40437
  }) {
@@ -40265,8 +40445,8 @@ var Vc = (function (exports, vue) {
40265
40445
  };
40266
40446
  }
40267
40447
  });
40268
- const props$9 = {
40269
- ...props$b,
40448
+ const props$8 = {
40449
+ ...props$a,
40270
40450
  theme: {
40271
40451
  type: String,
40272
40452
  default: "light",
@@ -40304,7 +40484,7 @@ var Vc = (function (exports, vue) {
40304
40484
  const COMPONENT_NAME$d = "vcm-tabs";
40305
40485
  const MTabs = /* @__PURE__ */ vue.defineComponent({
40306
40486
  name: COMPONENT_NAME$d,
40307
- props: props$9,
40487
+ props: props$8,
40308
40488
  emits: ["update:modelValue", "change", "click"],
40309
40489
  setup(props2, {
40310
40490
  slots
@@ -40534,7 +40714,7 @@ var Vc = (function (exports, vue) {
40534
40714
  const COMPONENT_NAME$c = "vcm-tabs-pane";
40535
40715
  const MTabsPane = /* @__PURE__ */ vue.defineComponent({
40536
40716
  name: COMPONENT_NAME$c,
40537
- props: props$a,
40717
+ props: props$9,
40538
40718
  setup(_, {
40539
40719
  slots
40540
40720
  }) {
@@ -40549,55 +40729,17 @@ var Vc = (function (exports, vue) {
40549
40729
  }
40550
40730
  });
40551
40731
  const MTag = Tag;
40552
- const props$8 = {
40553
- tag: {
40554
- type: String,
40555
- default: "div"
40556
- },
40557
- value: {
40558
- type: String,
40559
- default: ""
40560
- },
40561
- line: {
40562
- type: Number,
40563
- default: 0
40564
- },
40565
- // TODO: 是否改为tail-indent来表示尾部缩进
40566
- indent: {
40567
- type: Number,
40568
- default: 0
40569
- },
40570
- resize: {
40571
- type: [Boolean, Number],
40572
- default: 100
40573
- },
40574
- suffix: {
40575
- type: String,
40576
- default: "..."
40577
- },
40578
- placement: {
40579
- type: String,
40580
- default: "top"
40581
- },
40582
- portalClassName: [Object, String, Array],
40583
- portalStyle: [Object, String, Array],
40584
- renderRow: {
40585
- type: Function,
40586
- // 函数式可以用于高亮显示
40587
- default: (props$) => {
40588
- const { value } = props$;
40589
- return vue.h("span", {}, value);
40590
- }
40591
- }
40592
- };
40593
- const HIDDEN_TEXT_STYLE = `
40594
- position: absolute!important;
40595
- word-break: break-all!important;
40596
- overflow: auto!important;
40597
- opacity: 0!important;
40598
- z-index: -1000!important;
40599
- top: 0!important;
40600
- right: 0!important;
40732
+ const MText = Text;
40733
+ const HIDDEN_TEXTAREA_STYLE = `
40734
+ min-height:0 !important;
40735
+ max-height:none !important;
40736
+ height:0 !important;
40737
+ visibility:hidden !important;
40738
+ overflow:hidden !important;
40739
+ position:absolute !important;
40740
+ z-index:-1000 !important;
40741
+ top:0 !important;
40742
+ right:0 !important
40601
40743
  `;
40602
40744
  const SIZING_STYLE = [
40603
40745
  "letter-spacing",
@@ -40610,18 +40752,18 @@ var Vc = (function (exports, vue) {
40610
40752
  "text-rendering",
40611
40753
  "text-transform",
40612
40754
  "width",
40613
- // 'text-indent', // 需要额外计算
40755
+ "text-indent",
40614
40756
  "padding-left",
40615
40757
  "padding-right",
40616
40758
  "border-width",
40617
40759
  "box-sizing"
40618
40760
  ];
40619
40761
  let hiddenEl;
40620
- const getFitIndex = (options = {}) => {
40621
- const { el: el2, line, value, suffix, indent } = options;
40622
- let lineHeight = parseInt(getStyle$1(el2, "line-height"), 10);
40762
+ const getComputedHeight = (options = {}) => {
40763
+ if (IS_SERVER$3) return {};
40764
+ const { el: el2, minRows = null, maxRows = null } = options;
40623
40765
  if (!hiddenEl) {
40624
- hiddenEl = document.createElement("div");
40766
+ hiddenEl = document.createElement("textarea");
40625
40767
  document.body.appendChild(hiddenEl);
40626
40768
  }
40627
40769
  el2.getAttribute("wrap") ? hiddenEl.setAttribute("wrap", el2.getAttribute("wrap")) : hiddenEl.removeAttribute("wrap");
@@ -40631,130 +40773,334 @@ var Vc = (function (exports, vue) {
40631
40773
  boxSizing,
40632
40774
  sizingStyle
40633
40775
  } = utils.getComputedStyle(el2, SIZING_STYLE);
40634
- const textIndent = `text-indent: ${parseInt(getStyle$1(el2, "text-indent"), 10) + indent}px;`;
40635
- hiddenEl.setAttribute("style", `${sizingStyle};${textIndent};${HIDDEN_TEXT_STYLE}`);
40636
- let sideHeight = paddingSize || 0;
40637
- boxSizing === "border-box" && (sideHeight += borderSize);
40638
- if (Number.isNaN(lineHeight)) {
40639
- hiddenEl.innerText = ".";
40640
- lineHeight = hiddenEl.clientHeight - sideHeight;
40776
+ hiddenEl.setAttribute("style", `${sizingStyle};${HIDDEN_TEXTAREA_STYLE}`);
40777
+ hiddenEl.value = el2.value || el2.placeholder || "";
40778
+ let minHeight = Number.MIN_SAFE_INTEGER;
40779
+ let maxHeight = Number.MAX_SAFE_INTEGER;
40780
+ let height = hiddenEl.scrollHeight;
40781
+ let overflowY;
40782
+ if (boxSizing === "border-box") {
40783
+ height += borderSize;
40784
+ } else if (boxSizing === "content-box") {
40785
+ height -= paddingSize;
40786
+ }
40787
+ if (minRows !== null || maxRows !== null) {
40788
+ hiddenEl.value = " ";
40789
+ const singleRowHeight = hiddenEl.scrollHeight - paddingSize;
40790
+ if (minRows !== null) {
40791
+ minHeight = singleRowHeight * minRows;
40792
+ if (boxSizing === "border-box") {
40793
+ minHeight = minHeight + paddingSize + borderSize;
40794
+ }
40795
+ height = Math.max(minHeight, height);
40796
+ }
40797
+ if (maxRows !== null) {
40798
+ maxHeight = singleRowHeight * maxRows;
40799
+ if (boxSizing === "border-box") {
40800
+ maxHeight = maxHeight + paddingSize + borderSize;
40801
+ }
40802
+ overflowY = height > maxHeight ? "" : "hidden";
40803
+ height = Math.min(maxHeight, height);
40804
+ }
40805
+ }
40806
+ if (!maxRows) {
40807
+ overflowY = "hidden";
40641
40808
  }
40642
- let endIndex = 0;
40643
- hiddenEl.innerText = suffix;
40644
- value.split("").forEach((item, i) => {
40645
- let old = hiddenEl.innerText;
40646
- old = old.substring(0, old.length - suffix.length);
40647
- hiddenEl.innerText = old + item + suffix;
40648
- if (hiddenEl.clientHeight - sideHeight > lineHeight * line && endIndex === 0) {
40649
- endIndex = i;
40650
- }
40651
- });
40652
- return endIndex;
40809
+ return {
40810
+ height: `${height}px`,
40811
+ minHeight: `${minHeight}px`,
40812
+ maxHeight: `${maxHeight}px`,
40813
+ overflowY
40814
+ };
40653
40815
  };
40654
- const COMPONENT_NAME$b = "vc-text";
40655
- const Text = /* @__PURE__ */ vue.defineComponent({
40656
- name: COMPONENT_NAME$b,
40657
- props: props$8,
40658
- setup(props2, {
40659
- emit
40660
- }) {
40661
- const instance = vue.getCurrentInstance();
40662
- const isActive = vue.ref(false);
40663
- const endIndex = vue.ref(0);
40664
- const styles = vue.computed(() => {
40665
- return {
40666
- cursor: endIndex.value === 0 ? "unset" : "pointer"
40667
- };
40816
+ const useTextarea = (textarea, expose) => {
40817
+ const attrs = vue.useAttrs();
40818
+ const instance = vue.getCurrentInstance();
40819
+ const props2 = instance.props;
40820
+ const { emit } = instance;
40821
+ const formItem = vue.inject("vc-form-item", {});
40822
+ const currentValue = vue.ref(null);
40823
+ const isOnComposition = vue.ref(false);
40824
+ const isFocus = vue.ref(false);
40825
+ const calcTextareaStyle = vue.ref({});
40826
+ const contentStyle = vue.ref({});
40827
+ const currentMaxlength = vue.computed(() => {
40828
+ const value = currentValue.value;
40829
+ const { maxlength, bytes } = props2;
40830
+ return Array.isArray(value) || !maxlength || !bytes ? maxlength : getFitMaxLength(value, maxlength);
40831
+ });
40832
+ const sync = (v, e, force) => {
40833
+ if (!force && v === currentValue.value) return;
40834
+ if (!props2.controllable) {
40835
+ currentValue.value = v;
40836
+ }
40837
+ emit("update:modelValue", v, e);
40838
+ emit("input", v, e);
40839
+ emit("change", v, e);
40840
+ props2.allowDispatch && formItem?.change?.(v);
40841
+ };
40842
+ const forceUpdate = () => {
40843
+ instance.proxy?.$forceUpdate?.();
40844
+ };
40845
+ const refresh = () => {
40846
+ if (!props2.autosize) return;
40847
+ const { minRows, maxRows } = props2.autosize;
40848
+ vue.nextTick(() => {
40849
+ calcTextareaStyle.value = getComputedHeight({
40850
+ el: textarea.value,
40851
+ minRows,
40852
+ maxRows
40853
+ });
40668
40854
  });
40669
- const calcPosition = () => {
40670
- const {
40671
- suffix,
40672
- line,
40673
- value,
40674
- indent
40675
- } = props2;
40676
- if (line === 0) {
40677
- endIndex.value = 0;
40678
- isActive.value = true;
40679
- } else {
40680
- endIndex.value = getFitIndex({
40681
- el: instance.vnode.el,
40682
- line,
40683
- value,
40684
- suffix,
40685
- indent
40686
- });
40687
- isActive.value = true;
40855
+ };
40856
+ const handleKeydown = (e) => {
40857
+ emit("keydown", e);
40858
+ };
40859
+ const handleKeypress = (e) => {
40860
+ emit("keypress", e);
40861
+ };
40862
+ const handleKeyup = (e) => {
40863
+ if (e.keyCode == 13) {
40864
+ emit("enter", e);
40865
+ }
40866
+ emit("keyup", e);
40867
+ };
40868
+ const handleFocus = (e) => {
40869
+ isFocus.value = true;
40870
+ emit("focus", e);
40871
+ };
40872
+ const handleBlur = (e) => {
40873
+ isFocus.value = false;
40874
+ emit("blur", e);
40875
+ props2.allowDispatch && formItem?.blur?.(currentValue.value);
40876
+ };
40877
+ const handleChange = (e) => {
40878
+ emit("change", e);
40879
+ };
40880
+ const handleInput = (e) => {
40881
+ if (isOnComposition.value) return;
40882
+ let value = textarea.value.value;
40883
+ if (typeof props2.maxlength !== "undefined" && props2.bytes && e.inputType !== "deleteContentBackward") {
40884
+ const fitValue = getFitValue(value, props2.maxlength);
40885
+ if (value !== fitValue) {
40886
+ value = fitValue;
40688
40887
  }
40689
- emit("clip", endIndex.value);
40888
+ }
40889
+ sync(value, e, e.inputType === "insertFromPaste");
40890
+ forceUpdate();
40891
+ };
40892
+ const handleComposition = (e) => {
40893
+ if (e.type === "compositionstart") {
40894
+ isOnComposition.value = true;
40895
+ }
40896
+ if (e.type === "compositionend") {
40897
+ isOnComposition.value = false;
40898
+ handleInput(e);
40899
+ }
40900
+ };
40901
+ const handleResize = (e) => {
40902
+ contentStyle.value = {
40903
+ height: `${textarea.value ? textarea.value.offsetHeight : 0}px`
40690
40904
  };
40691
- const handleResize = props2.resize === true || props2.resize === 0 ? calcPosition : debounce$1(calcPosition, props2.resize || 0);
40692
- const handleMouseOver = (e) => {
40693
- if (endIndex.value > 0) {
40694
- Popover.open({
40695
- el: document.body,
40696
- name: "vc-text-popover",
40697
- // 确保不重复创建
40698
- triggerEl: e.target,
40699
- hover: true,
40700
- theme: "dark",
40701
- placement: props2.placement,
40702
- portalClassName: props2.portalClassName,
40703
- portalStyle: props2.portalStyle || `width: ${e.target.clientWidth}px`,
40704
- content: props2.value
40705
- });
40706
- }
40905
+ emit("resize", e);
40906
+ };
40907
+ const handlePaste = (e) => {
40908
+ emit("paste", e, e.clipboardData.getData("text"));
40909
+ };
40910
+ const classes = vue.computed(() => {
40911
+ return {
40912
+ "is-focus": isFocus.value,
40913
+ "is-disabled": props2.disabled
40707
40914
  };
40708
- const handleMouseOut = () => {
40915
+ });
40916
+ const listeners = vue.computed(() => {
40917
+ return {
40918
+ onKeyup: handleKeyup,
40919
+ onKeypress: handleKeypress,
40920
+ onKeydown: handleKeydown,
40921
+ onFocus: handleFocus,
40922
+ onBlur: handleBlur,
40923
+ onCompositionstart: handleComposition,
40924
+ onCompositionupdate: handleComposition,
40925
+ onCompositionend: handleComposition,
40926
+ onInput: handleInput,
40927
+ onChange: handleChange,
40928
+ onPaste: handlePaste
40709
40929
  };
40710
- ["value", "indent", "line"].forEach((key) => {
40711
- vue.watch(() => props2[key], calcPosition);
40712
- });
40713
- vue.onMounted(() => {
40714
- props2.resize !== false && Resize.on(instance.vnode.el, handleResize);
40715
- });
40716
- vue.onBeforeUnmount(() => {
40717
- props2.resize !== false && Resize.off(instance.vnode.el, handleResize);
40718
- });
40719
- const Content = props2.tag;
40720
- return () => {
40721
- return vue.createVNode(Content, {
40722
- "class": "vc-text",
40723
- "style": styles.value,
40724
- "onMouseover": handleMouseOver,
40725
- "onMouseout": handleMouseOut
40726
- }, {
40727
- default: () => [isActive.value ? vue.createVNode(Customer, {
40728
- "value": endIndex.value > 0 ? `${props2.value.slice(0, endIndex.value)}${props2.suffix}` : props2.value,
40729
- "index": endIndex.value,
40730
- "render": props2.renderRow
40731
- }, null) : null]
40732
- });
40930
+ });
40931
+ const binds = vue.computed(() => {
40932
+ return {
40933
+ id: props2.id,
40934
+ autocomplete: attrs.autocomplete,
40935
+ spellcheck: attrs.spellcheck,
40936
+ placeholder: attrs.placeholder,
40937
+ readonly: attrs.readonly,
40938
+ name: attrs.name,
40939
+ autofocus: attrs.autofocus,
40940
+ disabled: props2.disabled,
40941
+ maxlength: props2.maxlength,
40942
+ rows: props2.rows,
40943
+ wrap: props2.wrap
40733
40944
  };
40734
- }
40735
- });
40736
- const MText = Text;
40945
+ });
40946
+ vue.watch(
40947
+ () => props2.modelValue,
40948
+ (v) => {
40949
+ if (props2.controllable || v !== currentValue.value) {
40950
+ currentValue.value = v;
40951
+ refresh();
40952
+ }
40953
+ },
40954
+ { immediate: true }
40955
+ );
40956
+ vue.onMounted(() => {
40957
+ Resize.on(textarea.value, handleResize);
40958
+ refresh();
40959
+ });
40960
+ vue.onBeforeUnmount(() => {
40961
+ Resize.off(textarea.value, handleResize);
40962
+ });
40963
+ const exposed = useNativeEmitter(textarea);
40964
+ expose?.({
40965
+ ...exposed,
40966
+ refresh
40967
+ });
40968
+ return {
40969
+ currentValue,
40970
+ isOnComposition,
40971
+ isFocus,
40972
+ calcTextareaStyle,
40973
+ contentStyle,
40974
+ classes,
40975
+ listeners,
40976
+ binds,
40977
+ currentMaxlength
40978
+ };
40979
+ };
40980
+ const inputKeys = [
40981
+ "id",
40982
+ "disabled",
40983
+ "maxlength",
40984
+ "allowDispatch",
40985
+ "modelValue",
40986
+ "bytes",
40987
+ "controllable"
40988
+ ];
40737
40989
  const props$7 = {
40738
- tag: {
40990
+ ...pick(props$$, inputKeys),
40991
+ wrap: {
40739
40992
  type: String,
40740
- default: "div"
40993
+ validator: (v) => /(soft|hard)/.test(v),
40994
+ default: "soft"
40995
+ },
40996
+ rows: {
40997
+ type: Number,
40998
+ default: 2
40999
+ },
41000
+ autosize: {
41001
+ type: [Boolean, Object],
41002
+ default: false
41003
+ },
41004
+ textareaStyle: {
41005
+ type: [Object, Array]
40741
41006
  }
40742
41007
  };
40743
- const COMPONENT_NAME$a = "vc-textarea";
41008
+ const COMPONENT_NAME$b = "vc-textarea";
40744
41009
  const Textarea = /* @__PURE__ */ vue.defineComponent({
41010
+ name: COMPONENT_NAME$b,
41011
+ props: Object.assign(props$7, {
41012
+ indicator: {
41013
+ type: [Boolean, Object],
41014
+ default: false
41015
+ },
41016
+ indicateClass: String
41017
+ }),
41018
+ emits: ["update:modelValue", "input", "change", "focus", "blur", "clear", "paste", "keydown", "keypress", "keyup", "enter", "cancel", "resize"],
41019
+ setup(props2, {
41020
+ expose
41021
+ }) {
41022
+ const textarea = vue.ref();
41023
+ const {
41024
+ currentValue,
41025
+ classes,
41026
+ contentStyle,
41027
+ listeners,
41028
+ binds,
41029
+ calcTextareaStyle,
41030
+ currentMaxlength
41031
+ } = useTextarea(textarea, expose);
41032
+ const indicatorNum = vue.computed(() => {
41033
+ const currentLength = (String(props2.modelValue) || "").length;
41034
+ const extraLength = props2.bytes ? getBytesSize(props2.modelValue) || 0 : 0;
41035
+ const length = props2.indicator && props2.indicator.inverted ? props2.maxlength + extraLength - currentLength : currentLength - extraLength;
41036
+ return `${length}/${props2.maxlength}`;
41037
+ });
41038
+ const indicateInline = vue.computed(() => {
41039
+ return props2.indicator && props2.indicator.inline;
41040
+ });
41041
+ return () => {
41042
+ return vue.createVNode("div", {
41043
+ "class": [classes.value, "vc-textarea"]
41044
+ }, [vue.createVNode("div", {
41045
+ "class": "vc-textarea__wrapper"
41046
+ }, [vue.createVNode("div", {
41047
+ "style": contentStyle.value,
41048
+ "class": ["vc-textarea__content"]
41049
+ }, [vue.createVNode("textarea", vue.mergeProps({
41050
+ "ref": textarea
41051
+ }, binds.value, listeners.value, {
41052
+ "value": currentValue.value,
41053
+ "maxlength": currentMaxlength.value,
41054
+ "style": [props2.textareaStyle, calcTextareaStyle.value]
41055
+ }), null)]), props2.indicator && vue.createVNode("div", {
41056
+ "class": [props2.indicateClass, {
41057
+ "is-inline": indicateInline.value
41058
+ }, "vc-textarea__indicator"]
41059
+ }, [indicatorNum.value])])]);
41060
+ };
41061
+ }
41062
+ });
41063
+ const COMPONENT_NAME$a = "vcm-textarea";
41064
+ const MTextarea = /* @__PURE__ */ vue.defineComponent({
40745
41065
  name: COMPONENT_NAME$a,
40746
- props: props$7,
41066
+ props: Object.assign(props$7, {
41067
+ align: {
41068
+ type: String,
41069
+ default: "left"
41070
+ }
41071
+ }),
41072
+ emits: ["update:modelValue", "input", "change", "focus", "blur", "clear", "paste", "keydown", "keypress", "keyup", "enter", "cancel", "resize"],
40747
41073
  setup(props2, {
40748
- slots
41074
+ expose
40749
41075
  }) {
41076
+ const textarea = vue.ref();
41077
+ const {
41078
+ currentValue,
41079
+ classes,
41080
+ contentStyle,
41081
+ listeners,
41082
+ binds,
41083
+ calcTextareaStyle,
41084
+ currentMaxlength
41085
+ } = useTextarea(textarea, expose);
40750
41086
  return () => {
40751
41087
  return vue.createVNode("div", {
40752
- "class": "vc-textarea"
40753
- }, [slots?.default?.()]);
41088
+ "class": [classes.value, "vcm-textarea"]
41089
+ }, [vue.createVNode("div", {
41090
+ "class": "vcm-textarea__wrapper"
41091
+ }, [vue.createVNode("div", {
41092
+ "style": contentStyle.value,
41093
+ "class": ["vcm-textarea__content"]
41094
+ }, [vue.createVNode("textarea", vue.mergeProps({
41095
+ "ref": textarea
41096
+ }, binds.value, listeners.value, {
41097
+ "value": currentValue.value,
41098
+ "maxlength": currentMaxlength.value,
41099
+ "style": [props2.textareaStyle, calcTextareaStyle.value]
41100
+ }), null)])])]);
40754
41101
  };
40755
41102
  }
40756
41103
  });
40757
- const MTextarea = Textarea;
40758
41104
  const props$6 = {
40759
41105
  tag: {
40760
41106
  type: String,