@deot/vc 1.0.15 → 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.
@@ -24129,6 +24129,17 @@
24129
24129
  const defaults$1 = {
24130
24130
  Theme: {
24131
24131
  variables: VARIABLES
24132
+ },
24133
+ Portal: {
24134
+ install: void 0
24135
+ },
24136
+ Upload: {
24137
+ onRequest: void 0,
24138
+ onResponse: void 0,
24139
+ onMessage: void 0
24140
+ },
24141
+ TableColumn: {
24142
+ line: void 0
24132
24143
  }
24133
24144
  };
24134
24145
  class Instance {
@@ -24161,9 +24172,9 @@
24161
24172
  default: "div"
24162
24173
  }
24163
24174
  };
24164
- const COMPONENT_NAME$1_ = "vc-action-sheet";
24175
+ const COMPONENT_NAME$1$ = "vc-action-sheet";
24165
24176
  const ActionSheet = /* @__PURE__ */ vue.defineComponent({
24166
- name: COMPONENT_NAME$1_,
24177
+ name: COMPONENT_NAME$1$,
24167
24178
  props: props$1q,
24168
24179
  setup(props2, {
24169
24180
  slots
@@ -24343,9 +24354,9 @@
24343
24354
  }
24344
24355
  }
24345
24356
  const IconManager = new Manager();
24346
- const COMPONENT_NAME$1Z = "vc-icon";
24357
+ const COMPONENT_NAME$1_ = "vc-icon";
24347
24358
  const Icon = /* @__PURE__ */ vue.defineComponent({
24348
- name: COMPONENT_NAME$1Z,
24359
+ name: COMPONENT_NAME$1_,
24349
24360
  props: props$1o,
24350
24361
  setup(props2) {
24351
24362
  const viewBox = vue.ref("0 0 1024 1024");
@@ -24541,9 +24552,9 @@
24541
24552
  }
24542
24553
  };
24543
24554
  };
24544
- const COMPONENT_NAME$1Y = "vc-transition";
24555
+ const COMPONENT_NAME$1Z = "vc-transition";
24545
24556
  const Transition = vue.defineComponent({
24546
- name: COMPONENT_NAME$1Y,
24557
+ name: COMPONENT_NAME$1Z,
24547
24558
  props: props$1n,
24548
24559
  // 当不声明emits的情况下,事件存在于attrs中
24549
24560
  inheritAttrs: false,
@@ -24563,9 +24574,9 @@
24563
24574
  };
24564
24575
  }
24565
24576
  });
24566
- const COMPONENT_NAME$1X = "vc-transition-collapse";
24577
+ const COMPONENT_NAME$1Y = "vc-transition-collapse";
24567
24578
  const TransitionCollapse = vue.defineComponent({
24568
- name: COMPONENT_NAME$1X,
24579
+ name: COMPONENT_NAME$1Y,
24569
24580
  props: props$1n,
24570
24581
  // 当不声明emits的情况下,事件存在于attrs中
24571
24582
  inheritAttrs: false,
@@ -24683,9 +24694,9 @@
24683
24694
  };
24684
24695
  }
24685
24696
  });
24686
- const COMPONENT_NAME$1W = "vc-transition-fade";
24697
+ const COMPONENT_NAME$1X = "vc-transition-fade";
24687
24698
  const TransitionFade = vue.defineComponent({
24688
- name: COMPONENT_NAME$1W,
24699
+ name: COMPONENT_NAME$1X,
24689
24700
  props: {
24690
24701
  ...props$1n,
24691
24702
  // inheritAttrs必须是false
@@ -24719,9 +24730,9 @@
24719
24730
  };
24720
24731
  }
24721
24732
  });
24722
- const COMPONENT_NAME$1V = "vc-transition-scale";
24733
+ const COMPONENT_NAME$1W = "vc-transition-scale";
24723
24734
  const TransitionScale = vue.defineComponent({
24724
- name: COMPONENT_NAME$1V,
24735
+ name: COMPONENT_NAME$1W,
24725
24736
  props: {
24726
24737
  ...props$1n,
24727
24738
  mode: {
@@ -24760,9 +24771,9 @@
24760
24771
  };
24761
24772
  }
24762
24773
  });
24763
- const COMPONENT_NAME$1U = "vc-transition-slide";
24774
+ const COMPONENT_NAME$1V = "vc-transition-slide";
24764
24775
  const TransitionSlide = vue.defineComponent({
24765
- name: COMPONENT_NAME$1U,
24776
+ name: COMPONENT_NAME$1V,
24766
24777
  props: {
24767
24778
  ...props$1n,
24768
24779
  mode: {
@@ -24801,9 +24812,9 @@
24801
24812
  };
24802
24813
  }
24803
24814
  });
24804
- const COMPONENT_NAME$1T = "vc-transition-zoom";
24815
+ const COMPONENT_NAME$1U = "vc-transition-zoom";
24805
24816
  const TransitionZoom = vue.defineComponent({
24806
- name: COMPONENT_NAME$1T,
24817
+ name: COMPONENT_NAME$1U,
24807
24818
  props: {
24808
24819
  ...props$1n,
24809
24820
  mode: {
@@ -24842,7 +24853,7 @@
24842
24853
  };
24843
24854
  }
24844
24855
  });
24845
- const COMPONENT_NAME$1S = "vc-alert";
24856
+ const COMPONENT_NAME$1T = "vc-alert";
24846
24857
  const THEME_MAP = {
24847
24858
  info: ["#2B72FD", "#91d5ff", "#e6f7ff"],
24848
24859
  success: ["#52c41a", "#b7eb8f", "#f6ffed"],
@@ -24850,7 +24861,7 @@
24850
24861
  warning: ["#ffbf00", "#ffe58f", "#fffbe6"]
24851
24862
  };
24852
24863
  const Alert = /* @__PURE__ */ vue.defineComponent({
24853
- name: COMPONENT_NAME$1S,
24864
+ name: COMPONENT_NAME$1T,
24854
24865
  props: props$1p,
24855
24866
  setup(props2, {
24856
24867
  slots,
@@ -24943,9 +24954,9 @@
24943
24954
  default: "div"
24944
24955
  }
24945
24956
  };
24946
- const COMPONENT_NAME$1R = "vc-artboard";
24957
+ const COMPONENT_NAME$1S = "vc-artboard";
24947
24958
  const Artboard = /* @__PURE__ */ vue.defineComponent({
24948
- name: COMPONENT_NAME$1R,
24959
+ name: COMPONENT_NAME$1S,
24949
24960
  props: props$1m,
24950
24961
  setup(props2, {
24951
24962
  slots
@@ -24979,9 +24990,9 @@
24979
24990
  default: false
24980
24991
  }
24981
24992
  };
24982
- const COMPONENT_NAME$1Q = "vc-spin";
24993
+ const COMPONENT_NAME$1R = "vc-spin";
24983
24994
  const Spin = /* @__PURE__ */ vue.defineComponent({
24984
- name: COMPONENT_NAME$1Q,
24995
+ name: COMPONENT_NAME$1R,
24985
24996
  props: props$1l,
24986
24997
  setup(props2, {
24987
24998
  slots
@@ -25030,9 +25041,9 @@
25030
25041
  },
25031
25042
  exclude: RegExp
25032
25043
  };
25033
- const COMPONENT_NAME$1P = "vc-debounce";
25044
+ const COMPONENT_NAME$1Q = "vc-debounce";
25034
25045
  const Debounce = vue.defineComponent({
25035
- name: COMPONENT_NAME$1P,
25046
+ name: COMPONENT_NAME$1Q,
25036
25047
  props: props$1k,
25037
25048
  /**
25038
25049
  * 不声明emits使得事件被透传放入attrs中, 这样可以让所有的事件透传
@@ -25100,9 +25111,9 @@
25100
25111
  default: "button"
25101
25112
  }
25102
25113
  };
25103
- const COMPONENT_NAME$1O = "vc-button";
25114
+ const COMPONENT_NAME$1P = "vc-button";
25104
25115
  const Button = /* @__PURE__ */ vue.defineComponent({
25105
- name: COMPONENT_NAME$1O,
25116
+ name: COMPONENT_NAME$1P,
25106
25117
  emits: ["click"],
25107
25118
  props: props$1j,
25108
25119
  setup(props2, {
@@ -25178,9 +25189,9 @@
25178
25189
  default: false
25179
25190
  }
25180
25191
  };
25181
- const COMPONENT_NAME$1N = "vc-button-group";
25192
+ const COMPONENT_NAME$1O = "vc-button-group";
25182
25193
  const ButtonGroup = /* @__PURE__ */ vue.defineComponent({
25183
- name: COMPONENT_NAME$1N,
25194
+ name: COMPONENT_NAME$1O,
25184
25195
  props: props$1i,
25185
25196
  setup(props2, {
25186
25197
  slots
@@ -25209,9 +25220,9 @@
25209
25220
  default: "div"
25210
25221
  }
25211
25222
  };
25212
- const COMPONENT_NAME$1M = "vc-calendar";
25223
+ const COMPONENT_NAME$1N = "vc-calendar";
25213
25224
  const Calendar$1 = /* @__PURE__ */ vue.defineComponent({
25214
- name: COMPONENT_NAME$1M,
25225
+ name: COMPONENT_NAME$1N,
25215
25226
  props: props$1h,
25216
25227
  setup(props2, {
25217
25228
  slots
@@ -25244,9 +25255,9 @@
25244
25255
  type: String
25245
25256
  }
25246
25257
  };
25247
- const COMPONENT_NAME$1L = "vc-card";
25258
+ const COMPONENT_NAME$1M = "vc-card";
25248
25259
  const Card = /* @__PURE__ */ vue.defineComponent({
25249
- name: COMPONENT_NAME$1L,
25260
+ name: COMPONENT_NAME$1M,
25250
25261
  props: props$1g,
25251
25262
  setup(props2, {
25252
25263
  slots
@@ -25277,9 +25288,9 @@
25277
25288
  default: "div"
25278
25289
  }
25279
25290
  };
25280
- const COMPONENT_NAME$1K = "vc-carousel";
25291
+ const COMPONENT_NAME$1L = "vc-carousel";
25281
25292
  const Carousel = /* @__PURE__ */ vue.defineComponent({
25282
- name: COMPONENT_NAME$1K,
25293
+ name: COMPONENT_NAME$1L,
25283
25294
  props: props$1f,
25284
25295
  setup(props2, {
25285
25296
  slots
@@ -25298,9 +25309,9 @@
25298
25309
  default: "div"
25299
25310
  }
25300
25311
  };
25301
- const COMPONENT_NAME$1J = "vc-cascader";
25312
+ const COMPONENT_NAME$1K = "vc-cascader";
25302
25313
  const Cascader = /* @__PURE__ */ vue.defineComponent({
25303
- name: COMPONENT_NAME$1J,
25314
+ name: COMPONENT_NAME$1K,
25304
25315
  props: props$1e,
25305
25316
  setup(props2, {
25306
25317
  slots
@@ -25363,9 +25374,9 @@
25363
25374
  watchShallow: Boolean,
25364
25375
  manualUpdate: Boolean
25365
25376
  };
25366
- const COMPONENT_NAME$1I = "vc-chart";
25377
+ const COMPONENT_NAME$1J = "vc-chart";
25367
25378
  const Chart = /* @__PURE__ */ vue.defineComponent({
25368
- name: COMPONENT_NAME$1I,
25379
+ name: COMPONENT_NAME$1J,
25369
25380
  props: props$1d,
25370
25381
  emits: [...EVENTS, "ready"],
25371
25382
  setup(props2, {
@@ -25586,9 +25597,9 @@
25586
25597
  computedLabel
25587
25598
  };
25588
25599
  };
25589
- const COMPONENT_NAME$1H = "vc-checkbox";
25600
+ const COMPONENT_NAME$1I = "vc-checkbox";
25590
25601
  const Checkbox = /* @__PURE__ */ vue.defineComponent({
25591
- name: COMPONENT_NAME$1H,
25602
+ name: COMPONENT_NAME$1I,
25592
25603
  props: props$1c,
25593
25604
  emits: ["update:modelValue", "change"],
25594
25605
  setup(props2, {
@@ -25670,9 +25681,9 @@
25670
25681
  reset
25671
25682
  };
25672
25683
  };
25673
- const COMPONENT_NAME$1G = "vc-checkbox-group";
25684
+ const COMPONENT_NAME$1H = "vc-checkbox-group";
25674
25685
  const CheckboxGroup = /* @__PURE__ */ vue.defineComponent({
25675
- name: COMPONENT_NAME$1G,
25686
+ name: COMPONENT_NAME$1H,
25676
25687
  props: props$1b,
25677
25688
  emits: ["update:modelValue", "change"],
25678
25689
  setup(props2, {
@@ -25687,9 +25698,9 @@
25687
25698
  };
25688
25699
  }
25689
25700
  });
25690
- const COMPONENT_NAME$1F = "vcm-checkbox";
25701
+ const COMPONENT_NAME$1G = "vcm-checkbox";
25691
25702
  const MCheckbox = /* @__PURE__ */ vue.defineComponent({
25692
- name: COMPONENT_NAME$1F,
25703
+ name: COMPONENT_NAME$1G,
25693
25704
  props: props$1c,
25694
25705
  emits: ["update:modelValue", "change"],
25695
25706
  setup(props2, {
@@ -25726,9 +25737,9 @@
25726
25737
  };
25727
25738
  }
25728
25739
  });
25729
- const COMPONENT_NAME$1E = "vcm-checkbox-group";
25740
+ const COMPONENT_NAME$1F = "vcm-checkbox-group";
25730
25741
  const MCheckboxGroup = /* @__PURE__ */ vue.defineComponent({
25731
- name: COMPONENT_NAME$1E,
25742
+ name: COMPONENT_NAME$1F,
25732
25743
  props: props$1b,
25733
25744
  emits: ["update:modelValue", "change"],
25734
25745
  setup(props2, {
@@ -25784,9 +25795,9 @@
25784
25795
  default: () => null
25785
25796
  }
25786
25797
  };
25787
- const COMPONENT_NAME$1D = "vc-customer";
25798
+ const COMPONENT_NAME$1E = "vc-customer";
25788
25799
  const Customer = vue.defineComponent({
25789
- name: COMPONENT_NAME$1D,
25800
+ name: COMPONENT_NAME$1E,
25790
25801
  props: props$19,
25791
25802
  setup(props2, context) {
25792
25803
  return () => vue.h(() => {
@@ -25794,9 +25805,9 @@
25794
25805
  });
25795
25806
  }
25796
25807
  });
25797
- const COMPONENT_NAME$1C = "vc-message";
25808
+ const COMPONENT_NAME$1D = "vc-message";
25798
25809
  const MessageView = /* @__PURE__ */ vue.defineComponent({
25799
- name: COMPONENT_NAME$1C,
25810
+ name: COMPONENT_NAME$1D,
25800
25811
  emits: ["before-close", "close", "portal-fulfilled"],
25801
25812
  props: props$1a,
25802
25813
  setup(props2, {
@@ -25939,7 +25950,7 @@
25939
25950
  return this.target.finally(callback);
25940
25951
  }
25941
25952
  }
25942
- const COMPONENT_NAME$1B = "vc-portal";
25953
+ const COMPONENT_NAME$1C = "vc-portal";
25943
25954
  class Portal {
25944
25955
  /**
25945
25956
  * 清理Portals类型组件
@@ -25991,7 +26002,7 @@
25991
26002
  this.wrapper = wrapper;
25992
26003
  this.globalOptions = {
25993
26004
  ...options,
25994
- name: options?.name || wrapper.name || getUid(COMPONENT_NAME$1B)
26005
+ name: options?.name || wrapper.name || getUid(COMPONENT_NAME$1C)
25995
26006
  };
25996
26007
  }
25997
26008
  popup(propsData, options) {
@@ -26090,7 +26101,7 @@
26090
26101
  ...rest
26091
26102
  } = options;
26092
26103
  let useAllNodes = fragment;
26093
- const name = multiple ? `${name$}__${getUid(COMPONENT_NAME$1B)}` : name$;
26104
+ const name = multiple ? `${name$}__${getUid(COMPONENT_NAME$1C)}` : name$;
26094
26105
  const container = document.createElement(tag);
26095
26106
  const root = typeof el2 === "object" ? el2 : document.querySelector(el2 || "body");
26096
26107
  !alive && Portal.leafs.get(name)?.destroy();
@@ -26124,7 +26135,7 @@
26124
26135
  } else {
26125
26136
  const wrapper = this.wrapper;
26126
26137
  const app = vue.createApp({
26127
- name: COMPONENT_NAME$1B,
26138
+ name: COMPONENT_NAME$1C,
26128
26139
  parent,
26129
26140
  setup() {
26130
26141
  if (alive) {
@@ -26234,9 +26245,9 @@
26234
26245
  default: "div"
26235
26246
  }
26236
26247
  };
26237
- const COMPONENT_NAME$1A = "vc-portal-view";
26248
+ const COMPONENT_NAME$1B = "vc-portal-view";
26238
26249
  const PortalView = /* @__PURE__ */ vue.defineComponent({
26239
- name: COMPONENT_NAME$1A,
26250
+ name: COMPONENT_NAME$1B,
26240
26251
  props: props$18,
26241
26252
  setup(props2, {
26242
26253
  slots
@@ -26399,9 +26410,9 @@
26399
26410
  };
26400
26411
  return () => vue.h(props2.tag, { onClick: handleClick, class: "vc-clipboard" }, slots?.default?.());
26401
26412
  };
26402
- const COMPONENT_NAME$1z = "vc-clipboard";
26413
+ const COMPONENT_NAME$1A = "vc-clipboard";
26403
26414
  const Clipboard$1 = vue.defineComponent({
26404
- name: COMPONENT_NAME$1z,
26415
+ name: COMPONENT_NAME$1A,
26405
26416
  props: props$17,
26406
26417
  setup() {
26407
26418
  return useClipboard((content) => Message.success({ content }));
@@ -26433,9 +26444,9 @@
26433
26444
  const MTransitionScale = TransitionScale;
26434
26445
  const MTransitionSlide = TransitionSlide;
26435
26446
  const MTransitionZoom = TransitionZoom;
26436
- const COMPONENT_NAME$1y = "vcm-toast";
26447
+ const COMPONENT_NAME$1z = "vcm-toast";
26437
26448
  const MToastView = /* @__PURE__ */ vue.defineComponent({
26438
- name: COMPONENT_NAME$1y,
26449
+ name: COMPONENT_NAME$1z,
26439
26450
  emits: ["close", "portal-fulfilled"],
26440
26451
  props: props$16,
26441
26452
  setup(props2, {
@@ -26534,9 +26545,9 @@
26534
26545
  const warning$2 = create$3({ mode: "warning" });
26535
26546
  const error$2 = create$3({ mode: "error" });
26536
26547
  const MToast = Object.assign(MToastView, { destroy: destroy$4, info: info$2, success: success$2, loading, warning: warning$2, error: error$2 });
26537
- const COMPONENT_NAME$1x = "vcm-clipboard";
26548
+ const COMPONENT_NAME$1y = "vcm-clipboard";
26538
26549
  const MClipboard$1 = vue.defineComponent({
26539
- name: COMPONENT_NAME$1x,
26550
+ name: COMPONENT_NAME$1y,
26540
26551
  props: props$17,
26541
26552
  setup() {
26542
26553
  return useClipboard((content) => MToast.info({ content }));
@@ -26565,9 +26576,9 @@
26565
26576
  default: false
26566
26577
  }
26567
26578
  };
26568
- const COMPONENT_NAME$1w = "vc-collapse";
26579
+ const COMPONENT_NAME$1x = "vc-collapse";
26569
26580
  const Collapse = vue.defineComponent({
26570
- name: COMPONENT_NAME$1w,
26581
+ name: COMPONENT_NAME$1x,
26571
26582
  props: props$15,
26572
26583
  emits: ["update:moodelValue", "change"],
26573
26584
  setup(props2, { slots, emit }) {
@@ -26679,9 +26690,9 @@
26679
26690
  function _isSlot$3(s) {
26680
26691
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
26681
26692
  }
26682
- const COMPONENT_NAME$1v = "vc-expand";
26693
+ const COMPONENT_NAME$1w = "vc-expand";
26683
26694
  const Expand$1 = /* @__PURE__ */ vue.defineComponent({
26684
- name: COMPONENT_NAME$1v,
26695
+ name: COMPONENT_NAME$1w,
26685
26696
  props: props$13,
26686
26697
  setup(props2, {
26687
26698
  slots
@@ -26708,9 +26719,9 @@
26708
26719
  };
26709
26720
  }
26710
26721
  });
26711
- const COMPONENT_NAME$1u = "vc-collapse-item";
26722
+ const COMPONENT_NAME$1v = "vc-collapse-item";
26712
26723
  const CollapseItem = /* @__PURE__ */ vue.defineComponent({
26713
- name: COMPONENT_NAME$1u,
26724
+ name: COMPONENT_NAME$1v,
26714
26725
  props: props$14,
26715
26726
  setup(props2, {
26716
26727
  slots,
@@ -26780,9 +26791,9 @@
26780
26791
  default: "div"
26781
26792
  }
26782
26793
  };
26783
- const COMPONENT_NAME$1t = "vc-color-picker";
26794
+ const COMPONENT_NAME$1u = "vc-color-picker";
26784
26795
  const ColorPicker = /* @__PURE__ */ vue.defineComponent({
26785
- name: COMPONENT_NAME$1t,
26796
+ name: COMPONENT_NAME$1u,
26786
26797
  props: props$12,
26787
26798
  setup(props2, {
26788
26799
  slots
@@ -26801,9 +26812,9 @@
26801
26812
  default: "div"
26802
26813
  }
26803
26814
  };
26804
- const COMPONENT_NAME$1s = "vc-countdown";
26815
+ const COMPONENT_NAME$1t = "vc-countdown";
26805
26816
  const Countdown = /* @__PURE__ */ vue.defineComponent({
26806
- name: COMPONENT_NAME$1s,
26817
+ name: COMPONENT_NAME$1t,
26807
26818
  props: props$11,
26808
26819
  setup(props2, {
26809
26820
  slots
@@ -26952,7 +26963,7 @@
26952
26963
  hover: Boolean,
26953
26964
  always: Boolean,
26954
26965
  portalClass: [Object, String, Array],
26955
- portalStyle: Object
26966
+ portalStyle: [Object, String]
26956
26967
  };
26957
26968
  const wrapperKeys = [
26958
26969
  "modelValue",
@@ -26988,7 +26999,7 @@
26988
26999
  },
26989
27000
  ...pick(props$_, wrapperKeys)
26990
27001
  };
26991
- const inputKeys$1 = [
27002
+ const inputKeys$2 = [
26992
27003
  "id",
26993
27004
  "disabled"
26994
27005
  ];
@@ -26998,7 +27009,7 @@
26998
27009
  ];
26999
27010
  const props$Y = {
27000
27011
  ...pick(props$Z, popoverKeys$1),
27001
- ...pick(props$$, inputKeys$1),
27012
+ ...pick(props$$, inputKeys$2),
27002
27013
  type: String,
27003
27014
  placeholder: String,
27004
27015
  clearable: {
@@ -27240,9 +27251,9 @@
27240
27251
  expose?.(exposed);
27241
27252
  return exposed;
27242
27253
  };
27243
- const COMPONENT_NAME$1r = "vc-input";
27254
+ const COMPONENT_NAME$1s = "vc-input";
27244
27255
  const Input = /* @__PURE__ */ vue.defineComponent({
27245
- name: COMPONENT_NAME$1r,
27256
+ name: COMPONENT_NAME$1s,
27246
27257
  inheritAttrs: false,
27247
27258
  props: {
27248
27259
  ...props$$,
@@ -27572,9 +27583,9 @@
27572
27583
  handleStepper
27573
27584
  };
27574
27585
  };
27575
- const COMPONENT_NAME$1q = "vc-input-number";
27586
+ const COMPONENT_NAME$1r = "vc-input-number";
27576
27587
  const InputNumber = /* @__PURE__ */ vue.defineComponent({
27577
- name: COMPONENT_NAME$1q,
27588
+ name: COMPONENT_NAME$1r,
27578
27589
  props: props$X,
27579
27590
  inheritAttrs: false,
27580
27591
  setup(props2, {
@@ -27634,9 +27645,9 @@
27634
27645
  default: true
27635
27646
  }
27636
27647
  };
27637
- const COMPONENT_NAME$1p = "vc-input-search";
27648
+ const COMPONENT_NAME$1q = "vc-input-search";
27638
27649
  const InputSearch = /* @__PURE__ */ vue.defineComponent({
27639
- name: COMPONENT_NAME$1p,
27650
+ name: COMPONENT_NAME$1q,
27640
27651
  props: props$W,
27641
27652
  inheritAttrs: false,
27642
27653
  setup(props2, {
@@ -27923,9 +27934,9 @@
27923
27934
  function _isSlot$2(s) {
27924
27935
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
27925
27936
  }
27926
- const COMPONENT_NAME$1o = "vc-popover-wrapper";
27937
+ const COMPONENT_NAME$1p = "vc-popover-wrapper";
27927
27938
  const PopoverWrapper = /* @__PURE__ */ vue.defineComponent({
27928
- name: COMPONENT_NAME$1o,
27939
+ name: COMPONENT_NAME$1p,
27929
27940
  props: props$_,
27930
27941
  emits: ["portal-fulfilled", "close"],
27931
27942
  setup(props2, {
@@ -28143,9 +28154,9 @@
28143
28154
  }
28144
28155
  });
28145
28156
  const PopoverPortal = new Portal(PopoverWrapper);
28146
- const COMPONENT_NAME$1n = "vc-popover";
28157
+ const COMPONENT_NAME$1o = "vc-popover";
28147
28158
  const Popover$1 = /* @__PURE__ */ vue.defineComponent({
28148
- name: COMPONENT_NAME$1n,
28159
+ name: COMPONENT_NAME$1o,
28149
28160
  props: props$Z,
28150
28161
  emits: ["update:modelValue", "visible-change", "ready", "close"],
28151
28162
  setup(props2, {
@@ -29221,9 +29232,9 @@
29221
29232
  }
29222
29233
  return view;
29223
29234
  };
29224
- const COMPONENT_NAME$1m = "vc-date-confirm";
29235
+ const COMPONENT_NAME$1n = "vc-date-confirm";
29225
29236
  const Confirm = /* @__PURE__ */ vue.defineComponent({
29226
- name: COMPONENT_NAME$1m,
29237
+ name: COMPONENT_NAME$1n,
29227
29238
  props: {
29228
29239
  showTime: {
29229
29240
  type: Boolean,
@@ -29284,9 +29295,9 @@
29284
29295
  };
29285
29296
  }
29286
29297
  });
29287
- const COMPONENT_NAME$1l = "vc-date-header";
29298
+ const COMPONENT_NAME$1m = "vc-date-header";
29288
29299
  const DateHeader = /* @__PURE__ */ vue.defineComponent({
29289
- name: COMPONENT_NAME$1l,
29300
+ name: COMPONENT_NAME$1m,
29290
29301
  props: {
29291
29302
  panelDate: Date,
29292
29303
  showNext: {
@@ -29367,9 +29378,9 @@
29367
29378
  };
29368
29379
  }
29369
29380
  });
29370
- const COMPONENT_NAME$1k = "vc-date-table";
29381
+ const COMPONENT_NAME$1l = "vc-date-table";
29371
29382
  const DateTable = /* @__PURE__ */ vue.defineComponent({
29372
- name: COMPONENT_NAME$1k,
29383
+ name: COMPONENT_NAME$1l,
29373
29384
  props: {
29374
29385
  value: Array,
29375
29386
  firstDayOfWeek: {
@@ -29569,9 +29580,9 @@
29569
29580
  };
29570
29581
  }
29571
29582
  });
29572
- const COMPONENT_NAME$1j = "vc-month-table";
29583
+ const COMPONENT_NAME$1k = "vc-month-table";
29573
29584
  const MonthTable = /* @__PURE__ */ vue.defineComponent({
29574
- name: COMPONENT_NAME$1j,
29585
+ name: COMPONENT_NAME$1k,
29575
29586
  props: {
29576
29587
  value: Array,
29577
29588
  panelDate: Date,
@@ -29697,7 +29708,7 @@
29697
29708
  };
29698
29709
  }
29699
29710
  });
29700
- const COMPONENT_NAME$1i = "vc-quarter-table";
29711
+ const COMPONENT_NAME$1j = "vc-quarter-table";
29701
29712
  const getMonthRange = (panelDate, quarter) => {
29702
29713
  const year = panelDate.getFullYear();
29703
29714
  const [startMonth, endMonth] = [quarter * 3, quarter * 3 + 2];
@@ -29724,7 +29735,7 @@
29724
29735
  }
29725
29736
  };
29726
29737
  const QuarterTable = /* @__PURE__ */ vue.defineComponent({
29727
- name: COMPONENT_NAME$1i,
29738
+ name: COMPONENT_NAME$1j,
29728
29739
  props: {
29729
29740
  value: Array,
29730
29741
  panelDate: Date,
@@ -29842,9 +29853,9 @@
29842
29853
  };
29843
29854
  }
29844
29855
  });
29845
- const COMPONENT_NAME$1h = "vc-shortcuts-select";
29856
+ const COMPONENT_NAME$1i = "vc-shortcuts-select";
29846
29857
  const ShortcutsSelect = /* @__PURE__ */ vue.defineComponent({
29847
- name: COMPONENT_NAME$1h,
29858
+ name: COMPONENT_NAME$1i,
29848
29859
  props: {
29849
29860
  panelDate: Date,
29850
29861
  config: Array,
@@ -29881,9 +29892,9 @@
29881
29892
  };
29882
29893
  }
29883
29894
  });
29884
- const COMPONENT_NAME$1g = "vc-time-select";
29895
+ const COMPONENT_NAME$1h = "vc-time-select";
29885
29896
  const TimeSelect = /* @__PURE__ */ vue.defineComponent({
29886
- name: COMPONENT_NAME$1g,
29897
+ name: COMPONENT_NAME$1h,
29887
29898
  props: {
29888
29899
  hours: {
29889
29900
  type: [Number, String],
@@ -30158,9 +30169,9 @@
30158
30169
  };
30159
30170
  }
30160
30171
  });
30161
- const COMPONENT_NAME$1f = "vc-year-table";
30172
+ const COMPONENT_NAME$1g = "vc-year-table";
30162
30173
  const YearTable = /* @__PURE__ */ vue.defineComponent({
30163
- name: COMPONENT_NAME$1f,
30174
+ name: COMPONENT_NAME$1g,
30164
30175
  props: {
30165
30176
  value: Array,
30166
30177
  panelDate: Date,
@@ -30276,9 +30287,9 @@
30276
30287
  }
30277
30288
  return true;
30278
30289
  };
30279
- const COMPONENT_NAME$1e = "vc-date-range-panel";
30290
+ const COMPONENT_NAME$1f = "vc-date-range-panel";
30280
30291
  const DateRangePanel = /* @__PURE__ */ vue.defineComponent({
30281
- name: COMPONENT_NAME$1e,
30292
+ name: COMPONENT_NAME$1f,
30282
30293
  props: {
30283
30294
  ...props$V,
30284
30295
  confirm: {
@@ -30639,9 +30650,9 @@
30639
30650
  };
30640
30651
  }
30641
30652
  });
30642
- const COMPONENT_NAME$1d = "vc-date-panel";
30653
+ const COMPONENT_NAME$1e = "vc-date-panel";
30643
30654
  const DatePanel = /* @__PURE__ */ vue.defineComponent({
30644
- name: COMPONENT_NAME$1d,
30655
+ name: COMPONENT_NAME$1e,
30645
30656
  props: {
30646
30657
  ...props$V,
30647
30658
  type: String,
@@ -30840,9 +30851,9 @@
30840
30851
  const endYear = value[1].getFullYear();
30841
30852
  return startYear === endYear;
30842
30853
  };
30843
- const COMPONENT_NAME$1c = "vc-monthrange-panel";
30854
+ const COMPONENT_NAME$1d = "vc-monthrange-panel";
30844
30855
  const MonthRangePanel = /* @__PURE__ */ vue.defineComponent({
30845
- name: COMPONENT_NAME$1c,
30856
+ name: COMPONENT_NAME$1d,
30846
30857
  props: {
30847
30858
  ...props$V,
30848
30859
  confirm: {
@@ -31012,9 +31023,9 @@
31012
31023
  const endYear = value[1].getFullYear();
31013
31024
  return startYear === endYear;
31014
31025
  };
31015
- const COMPONENT_NAME$1b = "vc-quarterrange-panel";
31026
+ const COMPONENT_NAME$1c = "vc-quarterrange-panel";
31016
31027
  const QuarterRangePanel = /* @__PURE__ */ vue.defineComponent({
31017
- name: COMPONENT_NAME$1b,
31028
+ name: COMPONENT_NAME$1c,
31018
31029
  props: {
31019
31030
  ...props$V,
31020
31031
  confirm: {
@@ -31245,9 +31256,9 @@
31245
31256
  seconds
31246
31257
  };
31247
31258
  };
31248
- const COMPONENT_NAME$1a = "vc-timerange-panel";
31259
+ const COMPONENT_NAME$1b = "vc-timerange-panel";
31249
31260
  const TimeRangePanel = /* @__PURE__ */ vue.defineComponent({
31250
- name: COMPONENT_NAME$1a,
31261
+ name: COMPONENT_NAME$1b,
31251
31262
  props: props$U,
31252
31263
  emits: ["pick", "clear", "ok"],
31253
31264
  setup(props2, {
@@ -31343,9 +31354,9 @@
31343
31354
  };
31344
31355
  }
31345
31356
  });
31346
- const COMPONENT_NAME$19 = "vc-time-panel";
31357
+ const COMPONENT_NAME$1a = "vc-time-panel";
31347
31358
  const TimePanel = /* @__PURE__ */ vue.defineComponent({
31348
- name: COMPONENT_NAME$19,
31359
+ name: COMPONENT_NAME$1a,
31349
31360
  props: props$U,
31350
31361
  emits: ["pick", "clear", "ok"],
31351
31362
  setup(props2, {
@@ -31396,7 +31407,7 @@
31396
31407
  };
31397
31408
  }
31398
31409
  });
31399
- const COMPONENT_NAME$18 = "vc-date-picker";
31410
+ const COMPONENT_NAME$19 = "vc-date-picker";
31400
31411
  const getPanel$1 = (type) => {
31401
31412
  if (["daterange", "datetimerange"].includes(type)) {
31402
31413
  return DateRangePanel;
@@ -31407,7 +31418,7 @@
31407
31418
  }
31408
31419
  return DatePanel;
31409
31420
  };
31410
- const DatePicker = createPicker(COMPONENT_NAME$18, props$10, () => {
31421
+ const DatePicker = createPicker(COMPONENT_NAME$19, props$10, () => {
31411
31422
  const props2 = vue.getCurrentInstance().props;
31412
31423
  const icon = vue.ref("date");
31413
31424
  const panel = vue.shallowRef({});
@@ -31435,9 +31446,9 @@
31435
31446
  default: "div"
31436
31447
  }
31437
31448
  };
31438
- const COMPONENT_NAME$17 = "vc-divider";
31449
+ const COMPONENT_NAME$18 = "vc-divider";
31439
31450
  const Divider = /* @__PURE__ */ vue.defineComponent({
31440
- name: COMPONENT_NAME$17,
31451
+ name: COMPONENT_NAME$18,
31441
31452
  props: props$T,
31442
31453
  setup(props2, {
31443
31454
  slots
@@ -31584,7 +31595,7 @@
31584
31595
  barTo: props$R.to,
31585
31596
  ...pick(props$R, barKeys)
31586
31597
  };
31587
- const COMPONENT_NAME$16 = "vc-scroller-track";
31598
+ const COMPONENT_NAME$17 = "vc-scroller-track";
31588
31599
  const BAR_MAP = {
31589
31600
  vertical: {
31590
31601
  scroll: "scrollTop",
@@ -31604,7 +31615,7 @@
31604
31615
  }
31605
31616
  };
31606
31617
  const Track$1 = /* @__PURE__ */ vue.defineComponent({
31607
- name: COMPONENT_NAME$16,
31618
+ name: COMPONENT_NAME$17,
31608
31619
  props: props$S,
31609
31620
  emits: ["change"],
31610
31621
  inheritAttrs: false,
@@ -31766,9 +31777,9 @@
31766
31777
  };
31767
31778
  }
31768
31779
  });
31769
- const COMPONENT_NAME$15 = "vc-scroller-bar";
31780
+ const COMPONENT_NAME$16 = "vc-scroller-bar";
31770
31781
  const Bar = /* @__PURE__ */ vue.defineComponent({
31771
- name: COMPONENT_NAME$15,
31782
+ name: COMPONENT_NAME$16,
31772
31783
  props: props$R,
31773
31784
  emits: ["change"],
31774
31785
  setup(props2, {
@@ -31979,9 +31990,9 @@
31979
31990
  refreshPosition
31980
31991
  };
31981
31992
  };
31982
- const COMPONENT_NAME$14 = "vc-scroller";
31993
+ const COMPONENT_NAME$15 = "vc-scroller";
31983
31994
  const Scroller = /* @__PURE__ */ vue.defineComponent({
31984
- name: COMPONENT_NAME$14,
31995
+ name: COMPONENT_NAME$15,
31985
31996
  props: props$Q,
31986
31997
  emits: ["scroll"],
31987
31998
  setup(props2, {
@@ -32039,9 +32050,9 @@
32039
32050
  };
32040
32051
  }
32041
32052
  });
32042
- const COMPONENT_NAME$13 = "vc-scroller-wheel";
32053
+ const COMPONENT_NAME$14 = "vc-scroller-wheel";
32043
32054
  const ScrollerWheel = /* @__PURE__ */ vue.defineComponent({
32044
- name: COMPONENT_NAME$13,
32055
+ name: COMPONENT_NAME$14,
32045
32056
  props: Object.assign(props$Q, {
32046
32057
  stopPropagation: {
32047
32058
  type: Boolean,
@@ -32212,9 +32223,9 @@
32212
32223
  type: Function
32213
32224
  }
32214
32225
  };
32215
- const COMPONENT_NAME$12 = "vc-drawer";
32226
+ const COMPONENT_NAME$13 = "vc-drawer";
32216
32227
  const DrawerView = /* @__PURE__ */ vue.defineComponent({
32217
- name: COMPONENT_NAME$12,
32228
+ name: COMPONENT_NAME$13,
32218
32229
  props: props$P,
32219
32230
  emits: ["close", "update:modelValue", "visible-change"],
32220
32231
  setup(props2, {
@@ -32370,9 +32381,9 @@
32370
32381
  default: "div"
32371
32382
  }
32372
32383
  };
32373
- const COMPONENT_NAME$11 = "vc-dropdown";
32384
+ const COMPONENT_NAME$12 = "vc-dropdown";
32374
32385
  const Dropdown = /* @__PURE__ */ vue.defineComponent({
32375
- name: COMPONENT_NAME$11,
32386
+ name: COMPONENT_NAME$12,
32376
32387
  props: props$O,
32377
32388
  setup(props2, {
32378
32389
  slots
@@ -32391,9 +32402,9 @@
32391
32402
  default: "div"
32392
32403
  }
32393
32404
  };
32394
- const COMPONENT_NAME$10 = "vc-editor";
32405
+ const COMPONENT_NAME$11 = "vc-editor";
32395
32406
  const Editor = /* @__PURE__ */ vue.defineComponent({
32396
- name: COMPONENT_NAME$10,
32407
+ name: COMPONENT_NAME$11,
32397
32408
  props: props$N,
32398
32409
  setup(props2, {
32399
32410
  slots
@@ -32532,9 +32543,9 @@
32532
32543
  validateField
32533
32544
  });
32534
32545
  };
32535
- const COMPONENT_NAME$$ = "vc-form";
32546
+ const COMPONENT_NAME$10 = "vc-form";
32536
32547
  const Form = vue.defineComponent({
32537
- name: COMPONENT_NAME$$,
32548
+ name: COMPONENT_NAME$10,
32538
32549
  props: props$M,
32539
32550
  setup(props2, { slots, expose }) {
32540
32551
  useForm(expose);
@@ -32849,9 +32860,9 @@
32849
32860
  labelPosition
32850
32861
  };
32851
32862
  };
32852
- const COMPONENT_NAME$_ = "vc-form-item";
32863
+ const COMPONENT_NAME$$ = "vc-form-item";
32853
32864
  const FormItem = /* @__PURE__ */ vue.defineComponent({
32854
- name: COMPONENT_NAME$_,
32865
+ name: COMPONENT_NAME$$,
32855
32866
  props: props$L,
32856
32867
  setup(props2, {
32857
32868
  slots,
@@ -32914,9 +32925,9 @@
32914
32925
  default: false
32915
32926
  }
32916
32927
  };
32917
- const COMPONENT_NAME$Z = "vcm-form";
32928
+ const COMPONENT_NAME$_ = "vcm-form";
32918
32929
  const MForm = vue.defineComponent({
32919
- name: COMPONENT_NAME$Z,
32930
+ name: COMPONENT_NAME$_,
32920
32931
  props: props$K,
32921
32932
  setup(props2, { slots, expose }) {
32922
32933
  useForm(expose, {
@@ -32943,9 +32954,9 @@
32943
32954
  default: 12
32944
32955
  }
32945
32956
  };
32946
- const COMPONENT_NAME$Y = "vcm-form-item";
32957
+ const COMPONENT_NAME$Z = "vcm-form-item";
32947
32958
  const MFormItem = /* @__PURE__ */ vue.defineComponent({
32948
- name: COMPONENT_NAME$Y,
32959
+ name: COMPONENT_NAME$Z,
32949
32960
  props: props$J,
32950
32961
  setup(props2, {
32951
32962
  slots,
@@ -32998,9 +33009,9 @@
32998
33009
  };
32999
33010
  }
33000
33011
  });
33001
- const COMPONENT_NAME$X = "vc-fragment";
33012
+ const COMPONENT_NAME$Y = "vc-fragment";
33002
33013
  const Fragment = vue.defineComponent({
33003
- name: COMPONENT_NAME$X,
33014
+ name: COMPONENT_NAME$Y,
33004
33015
  setup(_, { slots }) {
33005
33016
  return () => vue.h(vue.Fragment, slots.default?.());
33006
33017
  }
@@ -33012,9 +33023,9 @@
33012
33023
  default: "div"
33013
33024
  }
33014
33025
  };
33015
- const COMPONENT_NAME$W = "vc-html-to-image";
33026
+ const COMPONENT_NAME$X = "vc-html-to-image";
33016
33027
  const HTMLToImage = /* @__PURE__ */ vue.defineComponent({
33017
- name: COMPONENT_NAME$W,
33028
+ name: COMPONENT_NAME$X,
33018
33029
  props: props$I,
33019
33030
  setup(props2, {
33020
33031
  slots
@@ -33083,7 +33094,7 @@
33083
33094
  }
33084
33095
  }
33085
33096
  const IMGStore$1 = new IMGStore();
33086
- const COMPONENT_NAME$V = "vc-image";
33097
+ const COMPONENT_NAME$W = "vc-image";
33087
33098
  let isSupportObjectFit = false;
33088
33099
  window.addEventListener("DOMContentLoaded", () => {
33089
33100
  isSupportObjectFit = !IS_SERVER$3 && document.documentElement.style.objectFit !== void 0;
@@ -33096,7 +33107,7 @@
33096
33107
  SCALE_DOWN: "scale-down"
33097
33108
  };
33098
33109
  const Image$1 = /* @__PURE__ */ vue.defineComponent({
33099
- name: COMPONENT_NAME$V,
33110
+ name: COMPONENT_NAME$W,
33100
33111
  inheritAttrs: false,
33101
33112
  props: props$H,
33102
33113
  setup(props2, {
@@ -33291,9 +33302,9 @@
33291
33302
  default: "div"
33292
33303
  }
33293
33304
  };
33294
- const COMPONENT_NAME$U = "vc-image-crop";
33305
+ const COMPONENT_NAME$V = "vc-image-crop";
33295
33306
  const ImageCrop = /* @__PURE__ */ vue.defineComponent({
33296
- name: COMPONENT_NAME$U,
33307
+ name: COMPONENT_NAME$V,
33297
33308
  props: props$G,
33298
33309
  setup(props2, {
33299
33310
  slots
@@ -33312,9 +33323,9 @@
33312
33323
  default: "div"
33313
33324
  }
33314
33325
  };
33315
- const COMPONENT_NAME$T = "vc-image-preview";
33326
+ const COMPONENT_NAME$U = "vc-image-preview";
33316
33327
  const ImagePreview = /* @__PURE__ */ vue.defineComponent({
33317
- name: COMPONENT_NAME$T,
33328
+ name: COMPONENT_NAME$U,
33318
33329
  props: props$F,
33319
33330
  setup(props2, {
33320
33331
  slots
@@ -33333,9 +33344,9 @@
33333
33344
  default: "div"
33334
33345
  }
33335
33346
  };
33336
- const COMPONENT_NAME$S = "vc-image-processing";
33347
+ const COMPONENT_NAME$T = "vc-image-processing";
33337
33348
  const ImageProcessing = /* @__PURE__ */ vue.defineComponent({
33338
- name: COMPONENT_NAME$S,
33349
+ name: COMPONENT_NAME$T,
33339
33350
  props: props$E,
33340
33351
  setup(props2, {
33341
33352
  slots
@@ -33348,9 +33359,9 @@
33348
33359
  }
33349
33360
  });
33350
33361
  const MImageProcessing = ImageProcessing;
33351
- const COMPONENT_NAME$R = "vcm-input";
33362
+ const COMPONENT_NAME$S = "vcm-input";
33352
33363
  const MInput = /* @__PURE__ */ vue.defineComponent({
33353
- name: COMPONENT_NAME$R,
33364
+ name: COMPONENT_NAME$S,
33354
33365
  inheritAttrs: false,
33355
33366
  props: {
33356
33367
  ...props$$,
@@ -33437,9 +33448,9 @@
33437
33448
  };
33438
33449
  }
33439
33450
  });
33440
- const COMPONENT_NAME$Q = "vcm-input-number";
33451
+ const COMPONENT_NAME$R = "vcm-input-number";
33441
33452
  const MInputNumber = /* @__PURE__ */ vue.defineComponent({
33442
- name: COMPONENT_NAME$Q,
33453
+ name: COMPONENT_NAME$R,
33443
33454
  props: props$X,
33444
33455
  inheritAttrs: false,
33445
33456
  setup(props2, {
@@ -33485,9 +33496,9 @@
33485
33496
  };
33486
33497
  }
33487
33498
  });
33488
- const COMPONENT_NAME$P = "vcm-input-search";
33499
+ const COMPONENT_NAME$Q = "vcm-input-search";
33489
33500
  const MInputSearch = /* @__PURE__ */ vue.defineComponent({
33490
- name: COMPONENT_NAME$P,
33501
+ name: COMPONENT_NAME$Q,
33491
33502
  props: {
33492
33503
  ...props$W,
33493
33504
  cancelText: {
@@ -33561,9 +33572,9 @@
33561
33572
  default: true
33562
33573
  }
33563
33574
  };
33564
- const COMPONENT_NAME$O = "vcm-list";
33575
+ const COMPONENT_NAME$P = "vcm-list";
33565
33576
  const MList = vue.defineComponent({
33566
- name: COMPONENT_NAME$O,
33577
+ name: COMPONENT_NAME$P,
33567
33578
  props: props$D,
33568
33579
  setup(props2, { slots }) {
33569
33580
  vue.provide("vc-list", { props: props2 });
@@ -33614,10 +33625,10 @@
33614
33625
  // MListItem是否独立存在
33615
33626
  alone: Boolean
33616
33627
  };
33617
- const COMPONENT_NAME$N = "vcm-list-item";
33628
+ const COMPONENT_NAME$O = "vcm-list-item";
33618
33629
  const HTTP_REGEX = /[a-zA-z]+:\/\/[^\s]*/;
33619
33630
  const MListItem = /* @__PURE__ */ vue.defineComponent({
33620
- name: COMPONENT_NAME$N,
33631
+ name: COMPONENT_NAME$O,
33621
33632
  props: props$C,
33622
33633
  emits: ["click"],
33623
33634
  setup(props2, {
@@ -33701,11 +33712,11 @@
33701
33712
  default: false
33702
33713
  }
33703
33714
  };
33704
- const COMPONENT_NAME$M = "vc-marquee";
33715
+ const COMPONENT_NAME$N = "vc-marquee";
33705
33716
  const ANIMATION = prefixStyle("animation").camel;
33706
33717
  const TRANSFORM_KEBAB = prefixStyle("transform").kebab;
33707
33718
  const Marquee = /* @__PURE__ */ vue.defineComponent({
33708
- name: COMPONENT_NAME$M,
33719
+ name: COMPONENT_NAME$N,
33709
33720
  props: props$B,
33710
33721
  setup(props2, {
33711
33722
  slots
@@ -33766,9 +33777,9 @@
33766
33777
  default: true
33767
33778
  }
33768
33779
  };
33769
- const COMPONENT_NAME$L = "vc-resizer";
33780
+ const COMPONENT_NAME$M = "vc-resizer";
33770
33781
  const Resizer = vue.defineComponent({
33771
- name: COMPONENT_NAME$L,
33782
+ name: COMPONENT_NAME$M,
33772
33783
  props: props$A,
33773
33784
  emit: ["resize", "change"],
33774
33785
  setup(props2, { emit, slots, expose }) {
@@ -33911,10 +33922,10 @@
33911
33922
  type: Function
33912
33923
  }
33913
33924
  };
33914
- const COMPONENT_NAME$K = "vc-modal";
33925
+ const COMPONENT_NAME$L = "vc-modal";
33915
33926
  let zIndexNumber = 1002;
33916
33927
  const ModalView = /* @__PURE__ */ vue.defineComponent({
33917
- name: COMPONENT_NAME$K,
33928
+ name: COMPONENT_NAME$L,
33918
33929
  emits: ["update:modelValue", "close", "portal-fulfilled", "visible-change", "ok", "cancel"],
33919
33930
  props: props$z,
33920
33931
  setup(props2, {
@@ -34294,9 +34305,9 @@
34294
34305
  type: Function
34295
34306
  }
34296
34307
  };
34297
- const COMPONENT_NAME$J = "vc-modal";
34308
+ const COMPONENT_NAME$K = "vc-modal";
34298
34309
  const MModalView = /* @__PURE__ */ vue.defineComponent({
34299
- name: COMPONENT_NAME$J,
34310
+ name: COMPONENT_NAME$K,
34300
34311
  emits: ["update:modelValue", "portal-fulfilled", "close", "ok", "cancel"],
34301
34312
  props: props$y,
34302
34313
  setup(props2, {
@@ -34491,9 +34502,9 @@
34491
34502
  // 这个相当于Modal中的onCancel,支持Promise
34492
34503
  onBeforeClose: Function
34493
34504
  };
34494
- const COMPONENT_NAME$I = "vc-notice";
34505
+ const COMPONENT_NAME$J = "vc-notice";
34495
34506
  const NoticeView = /* @__PURE__ */ vue.defineComponent({
34496
- name: COMPONENT_NAME$I,
34507
+ name: COMPONENT_NAME$J,
34497
34508
  props: props$x,
34498
34509
  emits: ["portal-fulfilled", "close", "before-close"],
34499
34510
  setup(props2, {
@@ -34659,9 +34670,9 @@
34659
34670
  default: "div"
34660
34671
  }
34661
34672
  };
34662
- const COMPONENT_NAME$H = "vc-option";
34673
+ const COMPONENT_NAME$I = "vc-option";
34663
34674
  const Option$1 = /* @__PURE__ */ vue.defineComponent({
34664
- name: COMPONENT_NAME$H,
34675
+ name: COMPONENT_NAME$I,
34665
34676
  props: props$w,
34666
34677
  setup(props2, {
34667
34678
  slots
@@ -34767,9 +34778,9 @@
34767
34778
  type: [String, Number]
34768
34779
  }
34769
34780
  };
34770
- const COMPONENT_NAME$G = "vc-tag";
34781
+ const COMPONENT_NAME$H = "vc-tag";
34771
34782
  const Tag = /* @__PURE__ */ vue.defineComponent({
34772
- name: COMPONENT_NAME$G,
34783
+ name: COMPONENT_NAME$H,
34773
34784
  props: props$u,
34774
34785
  emits: ["close", "change"],
34775
34786
  setup(props2, {
@@ -34834,9 +34845,9 @@
34834
34845
  default: true
34835
34846
  }
34836
34847
  };
34837
- const COMPONENT_NAME$F = "vc-select-option";
34848
+ const COMPONENT_NAME$G = "vc-select-option";
34838
34849
  const Option = /* @__PURE__ */ vue.defineComponent({
34839
- name: COMPONENT_NAME$F,
34850
+ name: COMPONENT_NAME$G,
34840
34851
  props: props$t,
34841
34852
  setup(props2, {
34842
34853
  slots
@@ -34903,9 +34914,9 @@
34903
34914
  type: [String, Number]
34904
34915
  }
34905
34916
  };
34906
- const COMPONENT_NAME$E = "vc-select-option-group";
34917
+ const COMPONENT_NAME$F = "vc-select-option-group";
34907
34918
  const OptionGroup = /* @__PURE__ */ vue.defineComponent({
34908
- name: COMPONENT_NAME$E,
34919
+ name: COMPONENT_NAME$F,
34909
34920
  props: props$s,
34910
34921
  setup(props2, {
34911
34922
  slots
@@ -34923,7 +34934,7 @@
34923
34934
  };
34924
34935
  }
34925
34936
  });
34926
- const inputKeys = [
34937
+ const inputKeys$1 = [
34927
34938
  "id",
34928
34939
  "disabled",
34929
34940
  "modelValue",
@@ -34935,7 +34946,7 @@
34935
34946
  ];
34936
34947
  const props$r = {
34937
34948
  ...pick(props$Z, popoverKeys),
34938
- ...pick(props$$, inputKeys),
34949
+ ...pick(props$$, inputKeys$1),
34939
34950
  data: {
34940
34951
  type: Array,
34941
34952
  default: () => []
@@ -34999,9 +35010,9 @@
34999
35010
  function _isSlot$1(s) {
35000
35011
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
35001
35012
  }
35002
- const COMPONENT_NAME$D = "vc-select";
35013
+ const COMPONENT_NAME$E = "vc-select";
35003
35014
  const Select = /* @__PURE__ */ vue.defineComponent({
35004
- name: COMPONENT_NAME$D,
35015
+ name: COMPONENT_NAME$E,
35005
35016
  props: props$r,
35006
35017
  emits: ["ready", "close", "visible-change", "clear", "change", "update:modelValue"],
35007
35018
  setup(props2, {
@@ -35231,9 +35242,9 @@
35231
35242
  };
35232
35243
  }
35233
35244
  });
35234
- const COMPONENT_NAME$C = "vc-pagination";
35245
+ const COMPONENT_NAME$D = "vc-pagination";
35235
35246
  const Pagination = /* @__PURE__ */ vue.defineComponent({
35236
- name: COMPONENT_NAME$C,
35247
+ name: COMPONENT_NAME$D,
35237
35248
  props: props$v,
35238
35249
  emits: ["update:current", "change", "page-size-change"],
35239
35250
  setup(props2, {
@@ -35424,9 +35435,9 @@
35424
35435
  default: "div"
35425
35436
  }
35426
35437
  };
35427
- const COMPONENT_NAME$B = "vc-picker";
35438
+ const COMPONENT_NAME$C = "vc-picker";
35428
35439
  const Picker = /* @__PURE__ */ vue.defineComponent({
35429
- name: COMPONENT_NAME$B,
35440
+ name: COMPONENT_NAME$C,
35430
35441
  props: props$q,
35431
35442
  setup(props2, {
35432
35443
  slots
@@ -35445,9 +35456,9 @@
35445
35456
  default: "div"
35446
35457
  }
35447
35458
  };
35448
- const COMPONENT_NAME$A = "vc-popconfirm";
35459
+ const COMPONENT_NAME$B = "vc-popconfirm";
35449
35460
  const Popconfirm = /* @__PURE__ */ vue.defineComponent({
35450
- name: COMPONENT_NAME$A,
35461
+ name: COMPONENT_NAME$B,
35451
35462
  props: props$p,
35452
35463
  setup(props2, {
35453
35464
  slots
@@ -35467,9 +35478,9 @@
35467
35478
  default: "div"
35468
35479
  }
35469
35480
  };
35470
- const COMPONENT_NAME$z = "vc-popup";
35481
+ const COMPONENT_NAME$A = "vc-popup";
35471
35482
  const Popup = /* @__PURE__ */ vue.defineComponent({
35472
- name: COMPONENT_NAME$z,
35483
+ name: COMPONENT_NAME$A,
35473
35484
  props: props$o,
35474
35485
  setup(props2, {
35475
35486
  slots
@@ -35490,9 +35501,9 @@
35490
35501
  default: "div"
35491
35502
  }
35492
35503
  };
35493
- const COMPONENT_NAME$y = "vc-print";
35504
+ const COMPONENT_NAME$z = "vc-print";
35494
35505
  const Print = /* @__PURE__ */ vue.defineComponent({
35495
- name: COMPONENT_NAME$y,
35506
+ name: COMPONENT_NAME$z,
35496
35507
  props: props$n,
35497
35508
  setup(props2, {
35498
35509
  expose,
@@ -35582,9 +35593,9 @@
35582
35593
  })
35583
35594
  }
35584
35595
  };
35585
- const COMPONENT_NAME$x = "vc-progress-circle";
35596
+ const COMPONENT_NAME$y = "vc-progress-circle";
35586
35597
  const Circle$1 = /* @__PURE__ */ vue.defineComponent({
35587
- name: COMPONENT_NAME$x,
35598
+ name: COMPONENT_NAME$y,
35588
35599
  props: props$m,
35589
35600
  setup(props2, {
35590
35601
  slots
@@ -35641,9 +35652,9 @@
35641
35652
  };
35642
35653
  }
35643
35654
  });
35644
- const COMPONENT_NAME$w = "vc-progress-line";
35655
+ const COMPONENT_NAME$x = "vc-progress-line";
35645
35656
  const Line$2 = /* @__PURE__ */ vue.defineComponent({
35646
- name: COMPONENT_NAME$w,
35657
+ name: COMPONENT_NAME$x,
35647
35658
  props: props$m,
35648
35659
  setup(props2) {
35649
35660
  const colorStyle = vue.computed(() => {
@@ -35687,9 +35698,9 @@
35687
35698
  function _isSlot(s) {
35688
35699
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
35689
35700
  }
35690
- const COMPONENT_NAME$v = "vc-progress";
35701
+ const COMPONENT_NAME$w = "vc-progress";
35691
35702
  const Progress = /* @__PURE__ */ vue.defineComponent({
35692
- name: COMPONENT_NAME$v,
35703
+ name: COMPONENT_NAME$w,
35693
35704
  props: props$m,
35694
35705
  setup(props2, {
35695
35706
  slots
@@ -35835,9 +35846,9 @@
35835
35846
  computedLabel
35836
35847
  };
35837
35848
  };
35838
- const COMPONENT_NAME$u = "vc-radio";
35849
+ const COMPONENT_NAME$v = "vc-radio";
35839
35850
  const Radio = /* @__PURE__ */ vue.defineComponent({
35840
- name: COMPONENT_NAME$u,
35851
+ name: COMPONENT_NAME$v,
35841
35852
  props: props$l,
35842
35853
  emits: ["update:modelValue", "change"],
35843
35854
  setup(props2, {
@@ -35943,9 +35954,9 @@
35943
35954
  reset
35944
35955
  };
35945
35956
  };
35946
- const COMPONENT_NAME$t = "vc-radio-group";
35957
+ const COMPONENT_NAME$u = "vc-radio-group";
35947
35958
  const RadioGroup = /* @__PURE__ */ vue.defineComponent({
35948
- name: COMPONENT_NAME$t,
35959
+ name: COMPONENT_NAME$u,
35949
35960
  props: props$k,
35950
35961
  emits: ["update:modelValue", "change"],
35951
35962
  setup(props2, {
@@ -35964,9 +35975,9 @@
35964
35975
  };
35965
35976
  }
35966
35977
  });
35967
- const COMPONENT_NAME$s = "vcm-radio";
35978
+ const COMPONENT_NAME$t = "vcm-radio";
35968
35979
  const MRadio = /* @__PURE__ */ vue.defineComponent({
35969
- name: COMPONENT_NAME$s,
35980
+ name: COMPONENT_NAME$t,
35970
35981
  props: props$l,
35971
35982
  emits: ["update:modelValue", "change"],
35972
35983
  setup(props2, {
@@ -36004,9 +36015,9 @@
36004
36015
  };
36005
36016
  }
36006
36017
  });
36007
- const COMPONENT_NAME$r = "vcm-radio-group";
36018
+ const COMPONENT_NAME$s = "vcm-radio-group";
36008
36019
  const MRadioGroup = /* @__PURE__ */ vue.defineComponent({
36009
- name: COMPONENT_NAME$r,
36020
+ name: COMPONENT_NAME$s,
36010
36021
  props: props$k,
36011
36022
  emits: ["update:modelValue", "change"],
36012
36023
  setup(props2, {
@@ -36031,9 +36042,9 @@
36031
36042
  default: "div"
36032
36043
  }
36033
36044
  };
36034
- const COMPONENT_NAME$q = "vc-rate";
36045
+ const COMPONENT_NAME$r = "vc-rate";
36035
36046
  const Rate = /* @__PURE__ */ vue.defineComponent({
36036
- name: COMPONENT_NAME$q,
36047
+ name: COMPONENT_NAME$r,
36037
36048
  props: props$j,
36038
36049
  setup(props2, {
36039
36050
  slots
@@ -36096,9 +36107,9 @@
36096
36107
  renderPlaceholder: Function,
36097
36108
  renderRefresh: Function
36098
36109
  };
36099
- const COMPONENT_NAME$p = "vc-recycle-list-scroll-state";
36110
+ const COMPONENT_NAME$q = "vc-recycle-list-scroll-state";
36100
36111
  const ScrollState = /* @__PURE__ */ vue.defineComponent({
36101
- name: COMPONENT_NAME$p,
36112
+ name: COMPONENT_NAME$q,
36102
36113
  setup(_, {
36103
36114
  slots
36104
36115
  }) {
@@ -36222,10 +36233,10 @@
36222
36233
  );
36223
36234
  return keys;
36224
36235
  };
36225
- const COMPONENT_NAME$o = "vc-recycle-list-container";
36236
+ const COMPONENT_NAME$p = "vc-recycle-list-container";
36226
36237
  const transformKey = prefixStyle("transform").camel;
36227
36238
  const Container = /* @__PURE__ */ vue.defineComponent({
36228
- name: COMPONENT_NAME$o,
36239
+ name: COMPONENT_NAME$p,
36229
36240
  props: props$h,
36230
36241
  emits: ["refresh"],
36231
36242
  setup(props2, {
@@ -36318,9 +36329,9 @@
36318
36329
  };
36319
36330
  }
36320
36331
  });
36321
- const COMPONENT_NAME$n = "vc-recycle-list";
36332
+ const COMPONENT_NAME$o = "vc-recycle-list";
36322
36333
  const RecycleList = /* @__PURE__ */ vue.defineComponent({
36323
- name: COMPONENT_NAME$n,
36334
+ name: COMPONENT_NAME$o,
36324
36335
  props: props$i,
36325
36336
  emits: ["scroll", "row-resize"],
36326
36337
  setup(props2, {
@@ -36451,19 +36462,12 @@
36451
36462
  const refreshItemSize = (index) => {
36452
36463
  const current = props2.inverted ? rebuildData.value[rebuildDataIndexMap.value[index]] : rebuildData.value[index];
36453
36464
  if (!current) return;
36454
- const oldSize = current.size;
36455
36465
  const dom = preloads.value[index] || curloads.value[props2.inverted ? index : index - firstItemIndex.value];
36456
36466
  if (dom) {
36457
36467
  current.size = dom[K.offsetSize] || placeholderSize.value;
36458
36468
  } else if (current) {
36459
36469
  current.size = placeholderSize.value;
36460
36470
  }
36461
- if (oldSize !== current.size) {
36462
- emit("row-resize", {
36463
- index: current.id,
36464
- size: current.size
36465
- });
36466
- }
36467
36471
  };
36468
36472
  const refreshItemPosition = () => {
36469
36473
  const sizes = Array.from({
@@ -36672,6 +36676,13 @@
36672
36676
  leading: false,
36673
36677
  trailing: true
36674
36678
  });
36679
+ const handleRowChange = (e, row) => {
36680
+ emit("row-resize", {
36681
+ index: row.id,
36682
+ height: e.height,
36683
+ width: e.width
36684
+ });
36685
+ };
36675
36686
  const setDataSource = async (v, oldV) => {
36676
36687
  if (!Array.isArray(v) || oldV === v) return;
36677
36688
  if (props2.data.length % props2.pageSize > 0) {
@@ -36798,7 +36809,8 @@
36798
36809
  "data-column": item.column,
36799
36810
  "data-size": item.size,
36800
36811
  "data-position": item.position,
36801
- "onResize": handleResize
36812
+ "onResize": handleResize,
36813
+ "onChange": (e) => handleRowChange(e, item)
36802
36814
  }, {
36803
36815
  default: () => [slots.default?.({
36804
36816
  row: item.data || {},
@@ -36841,9 +36853,9 @@
36841
36853
  default: "div"
36842
36854
  }
36843
36855
  };
36844
- const COMPONENT_NAME$m = "vc-slider";
36856
+ const COMPONENT_NAME$n = "vc-slider";
36845
36857
  const Slider = /* @__PURE__ */ vue.defineComponent({
36846
- name: COMPONENT_NAME$m,
36858
+ name: COMPONENT_NAME$n,
36847
36859
  props: props$g,
36848
36860
  setup(props2, {
36849
36861
  slots
@@ -36862,9 +36874,9 @@
36862
36874
  default: "div"
36863
36875
  }
36864
36876
  };
36865
- const COMPONENT_NAME$l = "vc-sort-list";
36877
+ const COMPONENT_NAME$m = "vc-sort-list";
36866
36878
  const SortList = /* @__PURE__ */ vue.defineComponent({
36867
- name: COMPONENT_NAME$l,
36879
+ name: COMPONENT_NAME$m,
36868
36880
  props: props$f,
36869
36881
  setup(props2, {
36870
36882
  slots
@@ -36883,9 +36895,9 @@
36883
36895
  default: "div"
36884
36896
  }
36885
36897
  };
36886
- const COMPONENT_NAME$k = "vc-steps";
36898
+ const COMPONENT_NAME$l = "vc-steps";
36887
36899
  const Steps = /* @__PURE__ */ vue.defineComponent({
36888
- name: COMPONENT_NAME$k,
36900
+ name: COMPONENT_NAME$l,
36889
36901
  props: props$e,
36890
36902
  setup(props2, {
36891
36903
  slots
@@ -36992,9 +37004,9 @@
36992
37004
  reset
36993
37005
  };
36994
37006
  };
36995
- const COMPONENT_NAME$j = "vc-switch";
37007
+ const COMPONENT_NAME$k = "vc-switch";
36996
37008
  const Switch = /* @__PURE__ */ vue.defineComponent({
36997
- name: COMPONENT_NAME$j,
37009
+ name: COMPONENT_NAME$k,
36998
37010
  props: props$d,
36999
37011
  // click -> onClick要被拦截,此处不能放置
37000
37012
  emits: ["update:modelValue", "change", "click"],
@@ -37028,9 +37040,9 @@
37028
37040
  };
37029
37041
  }
37030
37042
  });
37031
- const COMPONENT_NAME$i = "vcm-switch";
37043
+ const COMPONENT_NAME$j = "vcm-switch";
37032
37044
  const MSwitch = /* @__PURE__ */ vue.defineComponent({
37033
- name: COMPONENT_NAME$i,
37045
+ name: COMPONENT_NAME$j,
37034
37046
  props: props$d,
37035
37047
  // click -> onClick要被拦截,此处不能放置
37036
37048
  emits: ["update:modelValue", "change", "click"],
@@ -37794,6 +37806,7 @@
37794
37806
  });
37795
37807
  }
37796
37808
  setData(data) {
37809
+ const { primaryKey } = this.table.props;
37797
37810
  const dataInstanceChanged = this.states._data !== data;
37798
37811
  this.states._data = data;
37799
37812
  this.states.data = data;
@@ -37805,19 +37818,22 @@
37805
37818
  });
37806
37819
  this.states.list = data.reduce((pre, row, index) => {
37807
37820
  const cache = caches.get(row) || { heightMap: {} };
37808
- pre.push({
37809
- rows: [
37810
- {
37811
- index,
37812
- data: row,
37813
- height: cache.height || "",
37814
- heightMap: {
37815
- left: cache.heightMap.left || "",
37816
- main: cache.heightMap.main || "",
37817
- right: cache.heightMap.right || ""
37818
- }
37821
+ const rows = [
37822
+ {
37823
+ index,
37824
+ data: row,
37825
+ height: cache.height || "",
37826
+ heightMap: {
37827
+ left: cache.heightMap.left || "",
37828
+ main: cache.heightMap.main || "",
37829
+ right: cache.heightMap.right || ""
37819
37830
  }
37820
- ],
37831
+ }
37832
+ ];
37833
+ const id = primaryKey ? rows.map((rowData) => getRowValue(rowData.data, primaryKey)).join(",") : index;
37834
+ pre.push({
37835
+ id: typeof id === "undefined" ? index : id,
37836
+ rows,
37821
37837
  expand: false
37822
37838
  });
37823
37839
  return pre;
@@ -38127,9 +38143,9 @@
38127
38143
  });
38128
38144
  return states;
38129
38145
  };
38130
- const COMPONENT_NAME$h = "vc-table-normal-list";
38146
+ const COMPONENT_NAME$i = "vc-table-normal-list";
38131
38147
  const NormalList = /* @__PURE__ */ vue.defineComponent({
38132
- name: COMPONENT_NAME$h,
38148
+ name: COMPONENT_NAME$i,
38133
38149
  props: {
38134
38150
  data: {
38135
38151
  type: Array,
@@ -38144,17 +38160,19 @@
38144
38160
  const handleResize = (e, index) => {
38145
38161
  emit("row-resize", {
38146
38162
  index,
38147
- size: e.height
38163
+ height: e.height,
38164
+ width: e.width
38148
38165
  });
38149
38166
  };
38150
38167
  return () => {
38151
- return props2.data.map((row, index) => {
38168
+ return props2.data.map((mergeData, index) => {
38152
38169
  return vue.createVNode(Resizer, {
38170
+ "key": mergeData.id,
38153
38171
  "fill": false,
38154
38172
  "onChange": (e) => handleResize(e, index)
38155
38173
  }, {
38156
38174
  default: () => [slots.default?.({
38157
- row,
38175
+ row: mergeData,
38158
38176
  index
38159
38177
  })]
38160
38178
  });
@@ -38302,28 +38320,6 @@
38302
38320
  table.hoverState.value = hoverState;
38303
38321
  table.emit("cell-mouse-enter", hoverState.row, hoverState.column, hoverState.cell, e);
38304
38322
  }
38305
- const cellChild = e.target.querySelector(".vc-table__cell");
38306
- if (!(hasClass(cellChild, "vc-popover") && cellChild.childNodes.length)) {
38307
- return;
38308
- }
38309
- const range = document.createRange();
38310
- range.setStart(cellChild, 0);
38311
- range.setEnd(cellChild, cellChild.childNodes.length);
38312
- const rangeWidth = range.getBoundingClientRect().width;
38313
- const padding = (parseInt(cellChild.style.paddingLeft, 10) || 0) + (parseInt(cellChild.style.paddingRight, 10) || 0);
38314
- if (rangeWidth + padding > cellChild.offsetWidth || cellChild.scrollWidth > cellChild.offsetWidth) {
38315
- Popover.open({
38316
- el: document.body,
38317
- name: "vc-table-popover",
38318
- // 确保不重复创建
38319
- triggerEl: cell,
38320
- hover: true,
38321
- theme: "dark",
38322
- placement: "top",
38323
- content: cell.innerText || cell.textContent,
38324
- alone: true
38325
- });
38326
- }
38327
38323
  };
38328
38324
  const handleCellMouseLeave = (e) => {
38329
38325
  const cell = getCell(e);
@@ -38411,13 +38407,14 @@
38411
38407
  })]);
38412
38408
  })]);
38413
38409
  };
38414
- const renderMergeRow = (mergeData, mergeIndex) => {
38410
+ const renderMergeRow = (mergeData) => {
38415
38411
  const {
38416
- rows
38412
+ rows,
38413
+ id
38417
38414
  } = mergeData;
38418
38415
  return vue.createVNode("div", {
38419
38416
  "class": "vc-table__merge-row",
38420
- "key": mergeIndex
38417
+ "key": id
38421
38418
  }, [rows.map((row) => {
38422
38419
  return renderRow(row, row.index);
38423
38420
  })]);
@@ -38425,7 +38422,7 @@
38425
38422
  const handleMergeRowResize = (v) => {
38426
38423
  if (table.props.rowHeight) return;
38427
38424
  states.list[v.index].rows.forEach((row) => {
38428
- row.heightMap[props2.fixed || "main"] = v.size;
38425
+ row.heightMap[props2.fixed || "main"] = v.height;
38429
38426
  const heights = [row.heightMap.main];
38430
38427
  if (states.leftFixedCount) {
38431
38428
  heights.push(row.heightMap.left);
@@ -38481,17 +38478,15 @@
38481
38478
  "style": props2.heightStyle
38482
38479
  }, {
38483
38480
  default: ({
38484
- row,
38485
- index
38486
- }) => renderMergeRow(row, index)
38481
+ row
38482
+ }) => renderMergeRow(row)
38487
38483
  }) : vue.createVNode(NormalList, {
38488
38484
  "data": states.list,
38489
38485
  "onRowResize": handleMergeRowResize
38490
38486
  }, {
38491
38487
  default: ({
38492
- row,
38493
- index
38494
- }) => renderMergeRow(row, index)
38488
+ row
38489
+ }) => renderMergeRow(row)
38495
38490
  })]);
38496
38491
  };
38497
38492
  }
@@ -38978,9 +38973,9 @@
38978
38973
  // 用于延迟渲染,用于计算高度
38979
38974
  delay: Number
38980
38975
  };
38981
- const COMPONENT_NAME$g = "vc-table";
38976
+ const COMPONENT_NAME$h = "vc-table";
38982
38977
  const Table = /* @__PURE__ */ vue.defineComponent({
38983
- name: COMPONENT_NAME$g,
38978
+ name: COMPONENT_NAME$h,
38984
38979
  props: props$c,
38985
38980
  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"],
38986
38981
  setup(props2, {
@@ -39486,10 +39481,194 @@
39486
39481
  };
39487
39482
  }
39488
39483
  });
39489
- const cellStarts = {
39490
- default: {
39491
- order: ""
39492
- },
39484
+ const props$b = {
39485
+ tag: {
39486
+ type: String,
39487
+ default: "div"
39488
+ },
39489
+ value: {
39490
+ type: String,
39491
+ default: ""
39492
+ },
39493
+ line: {
39494
+ type: Number,
39495
+ default: 0
39496
+ },
39497
+ // TODO: 是否改为tail-indent来表示尾部缩进
39498
+ indent: {
39499
+ type: Number,
39500
+ default: 0
39501
+ },
39502
+ resize: {
39503
+ type: [Boolean, Number],
39504
+ default: 100
39505
+ },
39506
+ suffix: {
39507
+ type: String,
39508
+ default: "..."
39509
+ },
39510
+ placement: {
39511
+ type: String,
39512
+ default: "top"
39513
+ },
39514
+ portalClassName: [Object, String, Array],
39515
+ portalStyle: [Object, String, Array],
39516
+ renderRow: {
39517
+ type: Function,
39518
+ // 函数式可以用于高亮显示
39519
+ default: (props$) => {
39520
+ const { value } = props$;
39521
+ return vue.h("span", {}, value);
39522
+ }
39523
+ }
39524
+ };
39525
+ const HIDDEN_TEXT_STYLE = `
39526
+ position: absolute!important;
39527
+ word-break: break-all!important;
39528
+ overflow: auto!important;
39529
+ opacity: 0!important;
39530
+ z-index: -1000!important;
39531
+ top: 0!important;
39532
+ right: 0!important;
39533
+ `;
39534
+ const SIZING_STYLE$1 = [
39535
+ "letter-spacing",
39536
+ "line-height",
39537
+ "padding-top",
39538
+ "padding-bottom",
39539
+ "font-family",
39540
+ "font-weight",
39541
+ "font-size",
39542
+ "text-rendering",
39543
+ "text-transform",
39544
+ "width",
39545
+ // 'text-indent', // 需要额外计算
39546
+ "padding-left",
39547
+ "padding-right",
39548
+ "border-width",
39549
+ "box-sizing"
39550
+ ];
39551
+ let hiddenEl$1;
39552
+ const getFitIndex = (options = {}) => {
39553
+ const { el: el2, line, value, suffix, indent } = options;
39554
+ let lineHeight = parseInt(getStyle$1(el2, "line-height"), 10);
39555
+ if (!hiddenEl$1) {
39556
+ hiddenEl$1 = document.createElement("div");
39557
+ document.body.appendChild(hiddenEl$1);
39558
+ }
39559
+ el2.getAttribute("wrap") ? hiddenEl$1.setAttribute("wrap", el2.getAttribute("wrap")) : hiddenEl$1.removeAttribute("wrap");
39560
+ const {
39561
+ paddingSize,
39562
+ borderSize,
39563
+ boxSizing,
39564
+ sizingStyle
39565
+ } = utils.getComputedStyle(el2, SIZING_STYLE$1);
39566
+ const textIndent = `text-indent: ${parseInt(getStyle$1(el2, "text-indent"), 10) + indent}px;`;
39567
+ hiddenEl$1.setAttribute("style", `${sizingStyle};${textIndent};${HIDDEN_TEXT_STYLE}`);
39568
+ let sideHeight = paddingSize || 0;
39569
+ boxSizing === "border-box" && (sideHeight += borderSize);
39570
+ if (Number.isNaN(lineHeight)) {
39571
+ hiddenEl$1.innerText = ".";
39572
+ lineHeight = hiddenEl$1.clientHeight - sideHeight;
39573
+ }
39574
+ let endIndex = 0;
39575
+ hiddenEl$1.innerText = suffix;
39576
+ value.split("").forEach((item, i) => {
39577
+ let old = hiddenEl$1.innerText;
39578
+ old = old.substring(0, old.length - suffix.length);
39579
+ hiddenEl$1.innerText = old + item + suffix;
39580
+ if (hiddenEl$1.clientHeight - sideHeight > lineHeight * line && endIndex === 0) {
39581
+ endIndex = i;
39582
+ }
39583
+ });
39584
+ return endIndex;
39585
+ };
39586
+ const COMPONENT_NAME$g = "vc-text";
39587
+ const Text = /* @__PURE__ */ vue.defineComponent({
39588
+ name: COMPONENT_NAME$g,
39589
+ props: props$b,
39590
+ setup(props2, {
39591
+ emit
39592
+ }) {
39593
+ const instance = vue.getCurrentInstance();
39594
+ const isActive = vue.ref(false);
39595
+ const endIndex = vue.ref(0);
39596
+ const styles = vue.computed(() => {
39597
+ return {
39598
+ cursor: endIndex.value === 0 ? "unset" : "pointer"
39599
+ };
39600
+ });
39601
+ const calcPosition = () => {
39602
+ const {
39603
+ suffix,
39604
+ line,
39605
+ value,
39606
+ indent
39607
+ } = props2;
39608
+ if (line === 0) {
39609
+ endIndex.value = 0;
39610
+ isActive.value = true;
39611
+ } else {
39612
+ endIndex.value = getFitIndex({
39613
+ el: instance.vnode.el,
39614
+ line,
39615
+ value,
39616
+ suffix,
39617
+ indent
39618
+ });
39619
+ isActive.value = true;
39620
+ }
39621
+ emit("clip", endIndex.value);
39622
+ };
39623
+ const handleResize = props2.resize === true || props2.resize === 0 ? calcPosition : debounce$1(calcPosition, props2.resize || 0);
39624
+ const handleMouseOver = (e) => {
39625
+ if (endIndex.value > 0) {
39626
+ Popover.open({
39627
+ el: document.body,
39628
+ name: "vc-text-popover",
39629
+ // 确保不重复创建
39630
+ triggerEl: e.target,
39631
+ hover: true,
39632
+ theme: "dark",
39633
+ placement: props2.placement,
39634
+ portalClassName: props2.portalClassName,
39635
+ portalStyle: props2.portalStyle || `width: ${e.target.clientWidth}px`,
39636
+ content: props2.value
39637
+ });
39638
+ }
39639
+ };
39640
+ const handleMouseOut = () => {
39641
+ };
39642
+ ["value", "indent", "line"].forEach((key) => {
39643
+ vue.watch(() => props2[key], calcPosition);
39644
+ });
39645
+ vue.onMounted(() => {
39646
+ props2.resize !== false && Resize.on(instance.vnode.el, handleResize);
39647
+ });
39648
+ vue.onBeforeUnmount(() => {
39649
+ props2.resize !== false && Resize.off(instance.vnode.el, handleResize);
39650
+ });
39651
+ const Content = props2.tag;
39652
+ return () => {
39653
+ return vue.createVNode(Content, {
39654
+ "class": "vc-text",
39655
+ "style": styles.value,
39656
+ "onMouseover": handleMouseOver,
39657
+ "onMouseout": handleMouseOut
39658
+ }, {
39659
+ default: () => [isActive.value ? vue.createVNode(Customer, {
39660
+ "value": endIndex.value > 0 ? `${props2.value.slice(0, endIndex.value)}${props2.suffix}` : props2.value,
39661
+ "index": endIndex.value,
39662
+ "render": props2.renderRow
39663
+ }, null) : null]
39664
+ });
39665
+ };
39666
+ }
39667
+ });
39668
+ const cellStarts = {
39669
+ default: {
39670
+ order: ""
39671
+ },
39493
39672
  selection: {
39494
39673
  width: 60,
39495
39674
  minWidth: 60,
@@ -39591,26 +39770,29 @@
39591
39770
  className: "vc-table__expand-column"
39592
39771
  }
39593
39772
  };
39594
- const defaultRenderCell = ({
39595
- row,
39596
- column = {},
39597
- rowIndex
39598
- }) => {
39773
+ const defaultRenderCell = (rowData = {}) => {
39774
+ const column = rowData.column;
39599
39775
  const {
39600
39776
  prop,
39601
39777
  formatter
39602
39778
  } = column;
39603
39779
  let value;
39604
39780
  if (prop) {
39605
- value = getPropByPath(row, prop).v;
39781
+ value = getPropByPath(rowData.row, prop).v;
39606
39782
  }
39607
39783
  if (formatter) {
39608
- return column.formatter({
39609
- row,
39610
- column,
39611
- value,
39612
- rowIndex
39613
- });
39784
+ return column.formatter(rowData);
39785
+ }
39786
+ const line = column.line || VcInstance.options.TableColumn?.line;
39787
+ if (line) {
39788
+ const style2 = {
39789
+ width: (column.realWidth || column.width) - 20 + "px"
39790
+ };
39791
+ return vue.createVNode(Text, {
39792
+ "style": style2,
39793
+ "line": line,
39794
+ "value": value
39795
+ }, null);
39614
39796
  }
39615
39797
  return value;
39616
39798
  };
@@ -39660,6 +39842,11 @@
39660
39842
  type: String,
39661
39843
  default: "default"
39662
39844
  },
39845
+ // 默认只展示一行
39846
+ line: {
39847
+ type: Number,
39848
+ default: 0
39849
+ },
39663
39850
  label: String,
39664
39851
  customClass: String,
39665
39852
  labelClass: String,
@@ -39674,7 +39861,6 @@
39674
39861
  columnKey: String,
39675
39862
  align: String,
39676
39863
  headerAlign: String,
39677
- showPopover: Boolean,
39678
39864
  fixed: [Boolean, String],
39679
39865
  formatter: Function,
39680
39866
  selectable: Function,
@@ -39784,12 +39970,6 @@
39784
39970
  "class": "vc-table-un-expand__indent"
39785
39971
  }, null);
39786
39972
  }
39787
- if (data.column.showPopover) {
39788
- $props.class += " vc-popover";
39789
- $props.style = {
39790
- width: (data.column.realWidth || data.column.width) - 1 + "px"
39791
- };
39792
- }
39793
39973
  const {
39794
39974
  placeholder
39795
39975
  } = table.props;
@@ -39874,7 +40054,7 @@
39874
40054
  });
39875
40055
  const MTable = Table;
39876
40056
  const MTableColumn = TableColumn;
39877
- const props$b = {
40057
+ const props$a = {
39878
40058
  type: {
39879
40059
  type: String,
39880
40060
  validator: (v) => /^(line|card)$/.test(v),
@@ -40028,7 +40208,7 @@
40028
40208
  const COMPONENT_NAME$f = "vc-tabs";
40029
40209
  const Tabs = /* @__PURE__ */ vue.defineComponent({
40030
40210
  name: COMPONENT_NAME$f,
40031
- props: props$b,
40211
+ props: props$a,
40032
40212
  emits: ["update:modelValue", "change", "click"],
40033
40213
  setup(props2, {
40034
40214
  slots
@@ -40173,7 +40353,7 @@
40173
40353
  };
40174
40354
  }
40175
40355
  });
40176
- const props$a = {
40356
+ const props$9 = {
40177
40357
  value: {
40178
40358
  type: [String, Number]
40179
40359
  },
@@ -40254,7 +40434,7 @@
40254
40434
  const COMPONENT_NAME$e = "vc-tabs-pane";
40255
40435
  const TabsPane = /* @__PURE__ */ vue.defineComponent({
40256
40436
  name: COMPONENT_NAME$e,
40257
- props: props$a,
40437
+ props: props$9,
40258
40438
  setup(_, {
40259
40439
  slots
40260
40440
  }) {
@@ -40268,8 +40448,8 @@
40268
40448
  };
40269
40449
  }
40270
40450
  });
40271
- const props$9 = {
40272
- ...props$b,
40451
+ const props$8 = {
40452
+ ...props$a,
40273
40453
  theme: {
40274
40454
  type: String,
40275
40455
  default: "light",
@@ -40307,7 +40487,7 @@
40307
40487
  const COMPONENT_NAME$d = "vcm-tabs";
40308
40488
  const MTabs = /* @__PURE__ */ vue.defineComponent({
40309
40489
  name: COMPONENT_NAME$d,
40310
- props: props$9,
40490
+ props: props$8,
40311
40491
  emits: ["update:modelValue", "change", "click"],
40312
40492
  setup(props2, {
40313
40493
  slots
@@ -40537,7 +40717,7 @@
40537
40717
  const COMPONENT_NAME$c = "vcm-tabs-pane";
40538
40718
  const MTabsPane = /* @__PURE__ */ vue.defineComponent({
40539
40719
  name: COMPONENT_NAME$c,
40540
- props: props$a,
40720
+ props: props$9,
40541
40721
  setup(_, {
40542
40722
  slots
40543
40723
  }) {
@@ -40552,55 +40732,17 @@
40552
40732
  }
40553
40733
  });
40554
40734
  const MTag = Tag;
40555
- const props$8 = {
40556
- tag: {
40557
- type: String,
40558
- default: "div"
40559
- },
40560
- value: {
40561
- type: String,
40562
- default: ""
40563
- },
40564
- line: {
40565
- type: Number,
40566
- default: 0
40567
- },
40568
- // TODO: 是否改为tail-indent来表示尾部缩进
40569
- indent: {
40570
- type: Number,
40571
- default: 0
40572
- },
40573
- resize: {
40574
- type: [Boolean, Number],
40575
- default: 100
40576
- },
40577
- suffix: {
40578
- type: String,
40579
- default: "..."
40580
- },
40581
- placement: {
40582
- type: String,
40583
- default: "top"
40584
- },
40585
- portalClassName: [Object, String, Array],
40586
- portalStyle: [Object, String, Array],
40587
- renderRow: {
40588
- type: Function,
40589
- // 函数式可以用于高亮显示
40590
- default: (props$) => {
40591
- const { value } = props$;
40592
- return vue.h("span", {}, value);
40593
- }
40594
- }
40595
- };
40596
- const HIDDEN_TEXT_STYLE = `
40597
- position: absolute!important;
40598
- word-break: break-all!important;
40599
- overflow: auto!important;
40600
- opacity: 0!important;
40601
- z-index: -1000!important;
40602
- top: 0!important;
40603
- right: 0!important;
40735
+ const MText = Text;
40736
+ const HIDDEN_TEXTAREA_STYLE = `
40737
+ min-height:0 !important;
40738
+ max-height:none !important;
40739
+ height:0 !important;
40740
+ visibility:hidden !important;
40741
+ overflow:hidden !important;
40742
+ position:absolute !important;
40743
+ z-index:-1000 !important;
40744
+ top:0 !important;
40745
+ right:0 !important
40604
40746
  `;
40605
40747
  const SIZING_STYLE = [
40606
40748
  "letter-spacing",
@@ -40613,18 +40755,18 @@
40613
40755
  "text-rendering",
40614
40756
  "text-transform",
40615
40757
  "width",
40616
- // 'text-indent', // 需要额外计算
40758
+ "text-indent",
40617
40759
  "padding-left",
40618
40760
  "padding-right",
40619
40761
  "border-width",
40620
40762
  "box-sizing"
40621
40763
  ];
40622
40764
  let hiddenEl;
40623
- const getFitIndex = (options = {}) => {
40624
- const { el: el2, line, value, suffix, indent } = options;
40625
- let lineHeight = parseInt(getStyle$1(el2, "line-height"), 10);
40765
+ const getComputedHeight = (options = {}) => {
40766
+ if (IS_SERVER$3) return {};
40767
+ const { el: el2, minRows = null, maxRows = null } = options;
40626
40768
  if (!hiddenEl) {
40627
- hiddenEl = document.createElement("div");
40769
+ hiddenEl = document.createElement("textarea");
40628
40770
  document.body.appendChild(hiddenEl);
40629
40771
  }
40630
40772
  el2.getAttribute("wrap") ? hiddenEl.setAttribute("wrap", el2.getAttribute("wrap")) : hiddenEl.removeAttribute("wrap");
@@ -40634,130 +40776,334 @@
40634
40776
  boxSizing,
40635
40777
  sizingStyle
40636
40778
  } = utils.getComputedStyle(el2, SIZING_STYLE);
40637
- const textIndent = `text-indent: ${parseInt(getStyle$1(el2, "text-indent"), 10) + indent}px;`;
40638
- hiddenEl.setAttribute("style", `${sizingStyle};${textIndent};${HIDDEN_TEXT_STYLE}`);
40639
- let sideHeight = paddingSize || 0;
40640
- boxSizing === "border-box" && (sideHeight += borderSize);
40641
- if (Number.isNaN(lineHeight)) {
40642
- hiddenEl.innerText = ".";
40643
- lineHeight = hiddenEl.clientHeight - sideHeight;
40779
+ hiddenEl.setAttribute("style", `${sizingStyle};${HIDDEN_TEXTAREA_STYLE}`);
40780
+ hiddenEl.value = el2.value || el2.placeholder || "";
40781
+ let minHeight = Number.MIN_SAFE_INTEGER;
40782
+ let maxHeight = Number.MAX_SAFE_INTEGER;
40783
+ let height = hiddenEl.scrollHeight;
40784
+ let overflowY;
40785
+ if (boxSizing === "border-box") {
40786
+ height += borderSize;
40787
+ } else if (boxSizing === "content-box") {
40788
+ height -= paddingSize;
40789
+ }
40790
+ if (minRows !== null || maxRows !== null) {
40791
+ hiddenEl.value = " ";
40792
+ const singleRowHeight = hiddenEl.scrollHeight - paddingSize;
40793
+ if (minRows !== null) {
40794
+ minHeight = singleRowHeight * minRows;
40795
+ if (boxSizing === "border-box") {
40796
+ minHeight = minHeight + paddingSize + borderSize;
40797
+ }
40798
+ height = Math.max(minHeight, height);
40799
+ }
40800
+ if (maxRows !== null) {
40801
+ maxHeight = singleRowHeight * maxRows;
40802
+ if (boxSizing === "border-box") {
40803
+ maxHeight = maxHeight + paddingSize + borderSize;
40804
+ }
40805
+ overflowY = height > maxHeight ? "" : "hidden";
40806
+ height = Math.min(maxHeight, height);
40807
+ }
40808
+ }
40809
+ if (!maxRows) {
40810
+ overflowY = "hidden";
40644
40811
  }
40645
- let endIndex = 0;
40646
- hiddenEl.innerText = suffix;
40647
- value.split("").forEach((item, i) => {
40648
- let old = hiddenEl.innerText;
40649
- old = old.substring(0, old.length - suffix.length);
40650
- hiddenEl.innerText = old + item + suffix;
40651
- if (hiddenEl.clientHeight - sideHeight > lineHeight * line && endIndex === 0) {
40652
- endIndex = i;
40653
- }
40654
- });
40655
- return endIndex;
40812
+ return {
40813
+ height: `${height}px`,
40814
+ minHeight: `${minHeight}px`,
40815
+ maxHeight: `${maxHeight}px`,
40816
+ overflowY
40817
+ };
40656
40818
  };
40657
- const COMPONENT_NAME$b = "vc-text";
40658
- const Text = /* @__PURE__ */ vue.defineComponent({
40659
- name: COMPONENT_NAME$b,
40660
- props: props$8,
40661
- setup(props2, {
40662
- emit
40663
- }) {
40664
- const instance = vue.getCurrentInstance();
40665
- const isActive = vue.ref(false);
40666
- const endIndex = vue.ref(0);
40667
- const styles = vue.computed(() => {
40668
- return {
40669
- cursor: endIndex.value === 0 ? "unset" : "pointer"
40670
- };
40819
+ const useTextarea = (textarea, expose) => {
40820
+ const attrs = vue.useAttrs();
40821
+ const instance = vue.getCurrentInstance();
40822
+ const props2 = instance.props;
40823
+ const { emit } = instance;
40824
+ const formItem = vue.inject("vc-form-item", {});
40825
+ const currentValue = vue.ref(null);
40826
+ const isOnComposition = vue.ref(false);
40827
+ const isFocus = vue.ref(false);
40828
+ const calcTextareaStyle = vue.ref({});
40829
+ const contentStyle = vue.ref({});
40830
+ const currentMaxlength = vue.computed(() => {
40831
+ const value = currentValue.value;
40832
+ const { maxlength, bytes } = props2;
40833
+ return Array.isArray(value) || !maxlength || !bytes ? maxlength : getFitMaxLength(value, maxlength);
40834
+ });
40835
+ const sync = (v, e, force) => {
40836
+ if (!force && v === currentValue.value) return;
40837
+ if (!props2.controllable) {
40838
+ currentValue.value = v;
40839
+ }
40840
+ emit("update:modelValue", v, e);
40841
+ emit("input", v, e);
40842
+ emit("change", v, e);
40843
+ props2.allowDispatch && formItem?.change?.(v);
40844
+ };
40845
+ const forceUpdate = () => {
40846
+ instance.proxy?.$forceUpdate?.();
40847
+ };
40848
+ const refresh = () => {
40849
+ if (!props2.autosize) return;
40850
+ const { minRows, maxRows } = props2.autosize;
40851
+ vue.nextTick(() => {
40852
+ calcTextareaStyle.value = getComputedHeight({
40853
+ el: textarea.value,
40854
+ minRows,
40855
+ maxRows
40856
+ });
40671
40857
  });
40672
- const calcPosition = () => {
40673
- const {
40674
- suffix,
40675
- line,
40676
- value,
40677
- indent
40678
- } = props2;
40679
- if (line === 0) {
40680
- endIndex.value = 0;
40681
- isActive.value = true;
40682
- } else {
40683
- endIndex.value = getFitIndex({
40684
- el: instance.vnode.el,
40685
- line,
40686
- value,
40687
- suffix,
40688
- indent
40689
- });
40690
- isActive.value = true;
40858
+ };
40859
+ const handleKeydown = (e) => {
40860
+ emit("keydown", e);
40861
+ };
40862
+ const handleKeypress = (e) => {
40863
+ emit("keypress", e);
40864
+ };
40865
+ const handleKeyup = (e) => {
40866
+ if (e.keyCode == 13) {
40867
+ emit("enter", e);
40868
+ }
40869
+ emit("keyup", e);
40870
+ };
40871
+ const handleFocus = (e) => {
40872
+ isFocus.value = true;
40873
+ emit("focus", e);
40874
+ };
40875
+ const handleBlur = (e) => {
40876
+ isFocus.value = false;
40877
+ emit("blur", e);
40878
+ props2.allowDispatch && formItem?.blur?.(currentValue.value);
40879
+ };
40880
+ const handleChange = (e) => {
40881
+ emit("change", e);
40882
+ };
40883
+ const handleInput = (e) => {
40884
+ if (isOnComposition.value) return;
40885
+ let value = textarea.value.value;
40886
+ if (typeof props2.maxlength !== "undefined" && props2.bytes && e.inputType !== "deleteContentBackward") {
40887
+ const fitValue = getFitValue(value, props2.maxlength);
40888
+ if (value !== fitValue) {
40889
+ value = fitValue;
40691
40890
  }
40692
- emit("clip", endIndex.value);
40891
+ }
40892
+ sync(value, e, e.inputType === "insertFromPaste");
40893
+ forceUpdate();
40894
+ };
40895
+ const handleComposition = (e) => {
40896
+ if (e.type === "compositionstart") {
40897
+ isOnComposition.value = true;
40898
+ }
40899
+ if (e.type === "compositionend") {
40900
+ isOnComposition.value = false;
40901
+ handleInput(e);
40902
+ }
40903
+ };
40904
+ const handleResize = (e) => {
40905
+ contentStyle.value = {
40906
+ height: `${textarea.value ? textarea.value.offsetHeight : 0}px`
40693
40907
  };
40694
- const handleResize = props2.resize === true || props2.resize === 0 ? calcPosition : debounce$1(calcPosition, props2.resize || 0);
40695
- const handleMouseOver = (e) => {
40696
- if (endIndex.value > 0) {
40697
- Popover.open({
40698
- el: document.body,
40699
- name: "vc-text-popover",
40700
- // 确保不重复创建
40701
- triggerEl: e.target,
40702
- hover: true,
40703
- theme: "dark",
40704
- placement: props2.placement,
40705
- portalClassName: props2.portalClassName,
40706
- portalStyle: props2.portalStyle || `width: ${e.target.clientWidth}px`,
40707
- content: props2.value
40708
- });
40709
- }
40908
+ emit("resize", e);
40909
+ };
40910
+ const handlePaste = (e) => {
40911
+ emit("paste", e, e.clipboardData.getData("text"));
40912
+ };
40913
+ const classes = vue.computed(() => {
40914
+ return {
40915
+ "is-focus": isFocus.value,
40916
+ "is-disabled": props2.disabled
40710
40917
  };
40711
- const handleMouseOut = () => {
40918
+ });
40919
+ const listeners = vue.computed(() => {
40920
+ return {
40921
+ onKeyup: handleKeyup,
40922
+ onKeypress: handleKeypress,
40923
+ onKeydown: handleKeydown,
40924
+ onFocus: handleFocus,
40925
+ onBlur: handleBlur,
40926
+ onCompositionstart: handleComposition,
40927
+ onCompositionupdate: handleComposition,
40928
+ onCompositionend: handleComposition,
40929
+ onInput: handleInput,
40930
+ onChange: handleChange,
40931
+ onPaste: handlePaste
40712
40932
  };
40713
- ["value", "indent", "line"].forEach((key) => {
40714
- vue.watch(() => props2[key], calcPosition);
40715
- });
40716
- vue.onMounted(() => {
40717
- props2.resize !== false && Resize.on(instance.vnode.el, handleResize);
40718
- });
40719
- vue.onBeforeUnmount(() => {
40720
- props2.resize !== false && Resize.off(instance.vnode.el, handleResize);
40721
- });
40722
- const Content = props2.tag;
40723
- return () => {
40724
- return vue.createVNode(Content, {
40725
- "class": "vc-text",
40726
- "style": styles.value,
40727
- "onMouseover": handleMouseOver,
40728
- "onMouseout": handleMouseOut
40729
- }, {
40730
- default: () => [isActive.value ? vue.createVNode(Customer, {
40731
- "value": endIndex.value > 0 ? `${props2.value.slice(0, endIndex.value)}${props2.suffix}` : props2.value,
40732
- "index": endIndex.value,
40733
- "render": props2.renderRow
40734
- }, null) : null]
40735
- });
40933
+ });
40934
+ const binds = vue.computed(() => {
40935
+ return {
40936
+ id: props2.id,
40937
+ autocomplete: attrs.autocomplete,
40938
+ spellcheck: attrs.spellcheck,
40939
+ placeholder: attrs.placeholder,
40940
+ readonly: attrs.readonly,
40941
+ name: attrs.name,
40942
+ autofocus: attrs.autofocus,
40943
+ disabled: props2.disabled,
40944
+ maxlength: props2.maxlength,
40945
+ rows: props2.rows,
40946
+ wrap: props2.wrap
40736
40947
  };
40737
- }
40738
- });
40739
- const MText = Text;
40948
+ });
40949
+ vue.watch(
40950
+ () => props2.modelValue,
40951
+ (v) => {
40952
+ if (props2.controllable || v !== currentValue.value) {
40953
+ currentValue.value = v;
40954
+ refresh();
40955
+ }
40956
+ },
40957
+ { immediate: true }
40958
+ );
40959
+ vue.onMounted(() => {
40960
+ Resize.on(textarea.value, handleResize);
40961
+ refresh();
40962
+ });
40963
+ vue.onBeforeUnmount(() => {
40964
+ Resize.off(textarea.value, handleResize);
40965
+ });
40966
+ const exposed = useNativeEmitter(textarea);
40967
+ expose?.({
40968
+ ...exposed,
40969
+ refresh
40970
+ });
40971
+ return {
40972
+ currentValue,
40973
+ isOnComposition,
40974
+ isFocus,
40975
+ calcTextareaStyle,
40976
+ contentStyle,
40977
+ classes,
40978
+ listeners,
40979
+ binds,
40980
+ currentMaxlength
40981
+ };
40982
+ };
40983
+ const inputKeys = [
40984
+ "id",
40985
+ "disabled",
40986
+ "maxlength",
40987
+ "allowDispatch",
40988
+ "modelValue",
40989
+ "bytes",
40990
+ "controllable"
40991
+ ];
40740
40992
  const props$7 = {
40741
- tag: {
40993
+ ...pick(props$$, inputKeys),
40994
+ wrap: {
40742
40995
  type: String,
40743
- default: "div"
40996
+ validator: (v) => /(soft|hard)/.test(v),
40997
+ default: "soft"
40998
+ },
40999
+ rows: {
41000
+ type: Number,
41001
+ default: 2
41002
+ },
41003
+ autosize: {
41004
+ type: [Boolean, Object],
41005
+ default: false
41006
+ },
41007
+ textareaStyle: {
41008
+ type: [Object, Array]
40744
41009
  }
40745
41010
  };
40746
- const COMPONENT_NAME$a = "vc-textarea";
41011
+ const COMPONENT_NAME$b = "vc-textarea";
40747
41012
  const Textarea = /* @__PURE__ */ vue.defineComponent({
41013
+ name: COMPONENT_NAME$b,
41014
+ props: Object.assign(props$7, {
41015
+ indicator: {
41016
+ type: [Boolean, Object],
41017
+ default: false
41018
+ },
41019
+ indicateClass: String
41020
+ }),
41021
+ emits: ["update:modelValue", "input", "change", "focus", "blur", "clear", "paste", "keydown", "keypress", "keyup", "enter", "cancel", "resize"],
41022
+ setup(props2, {
41023
+ expose
41024
+ }) {
41025
+ const textarea = vue.ref();
41026
+ const {
41027
+ currentValue,
41028
+ classes,
41029
+ contentStyle,
41030
+ listeners,
41031
+ binds,
41032
+ calcTextareaStyle,
41033
+ currentMaxlength
41034
+ } = useTextarea(textarea, expose);
41035
+ const indicatorNum = vue.computed(() => {
41036
+ const currentLength = (String(props2.modelValue) || "").length;
41037
+ const extraLength = props2.bytes ? getBytesSize(props2.modelValue) || 0 : 0;
41038
+ const length = props2.indicator && props2.indicator.inverted ? props2.maxlength + extraLength - currentLength : currentLength - extraLength;
41039
+ return `${length}/${props2.maxlength}`;
41040
+ });
41041
+ const indicateInline = vue.computed(() => {
41042
+ return props2.indicator && props2.indicator.inline;
41043
+ });
41044
+ return () => {
41045
+ return vue.createVNode("div", {
41046
+ "class": [classes.value, "vc-textarea"]
41047
+ }, [vue.createVNode("div", {
41048
+ "class": "vc-textarea__wrapper"
41049
+ }, [vue.createVNode("div", {
41050
+ "style": contentStyle.value,
41051
+ "class": ["vc-textarea__content"]
41052
+ }, [vue.createVNode("textarea", vue.mergeProps({
41053
+ "ref": textarea
41054
+ }, binds.value, listeners.value, {
41055
+ "value": currentValue.value,
41056
+ "maxlength": currentMaxlength.value,
41057
+ "style": [props2.textareaStyle, calcTextareaStyle.value]
41058
+ }), null)]), props2.indicator && vue.createVNode("div", {
41059
+ "class": [props2.indicateClass, {
41060
+ "is-inline": indicateInline.value
41061
+ }, "vc-textarea__indicator"]
41062
+ }, [indicatorNum.value])])]);
41063
+ };
41064
+ }
41065
+ });
41066
+ const COMPONENT_NAME$a = "vcm-textarea";
41067
+ const MTextarea = /* @__PURE__ */ vue.defineComponent({
40748
41068
  name: COMPONENT_NAME$a,
40749
- props: props$7,
41069
+ props: Object.assign(props$7, {
41070
+ align: {
41071
+ type: String,
41072
+ default: "left"
41073
+ }
41074
+ }),
41075
+ emits: ["update:modelValue", "input", "change", "focus", "blur", "clear", "paste", "keydown", "keypress", "keyup", "enter", "cancel", "resize"],
40750
41076
  setup(props2, {
40751
- slots
41077
+ expose
40752
41078
  }) {
41079
+ const textarea = vue.ref();
41080
+ const {
41081
+ currentValue,
41082
+ classes,
41083
+ contentStyle,
41084
+ listeners,
41085
+ binds,
41086
+ calcTextareaStyle,
41087
+ currentMaxlength
41088
+ } = useTextarea(textarea, expose);
40753
41089
  return () => {
40754
41090
  return vue.createVNode("div", {
40755
- "class": "vc-textarea"
40756
- }, [slots?.default?.()]);
41091
+ "class": [classes.value, "vcm-textarea"]
41092
+ }, [vue.createVNode("div", {
41093
+ "class": "vcm-textarea__wrapper"
41094
+ }, [vue.createVNode("div", {
41095
+ "style": contentStyle.value,
41096
+ "class": ["vcm-textarea__content"]
41097
+ }, [vue.createVNode("textarea", vue.mergeProps({
41098
+ "ref": textarea
41099
+ }, binds.value, listeners.value, {
41100
+ "value": currentValue.value,
41101
+ "maxlength": currentMaxlength.value,
41102
+ "style": [props2.textareaStyle, calcTextareaStyle.value]
41103
+ }), null)])])]);
40757
41104
  };
40758
41105
  }
40759
41106
  });
40760
- const MTextarea = Textarea;
40761
41107
  const props$6 = {
40762
41108
  tag: {
40763
41109
  type: String,