@deot/vc 1.0.61 → 1.0.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -10179,7 +10179,11 @@ export declare const Components: {
10179
10179
  default: () => {};
10180
10180
  };
10181
10181
  delay: NumberConstructor;
10182
- }>, () => JSX_2.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("select" | "select-all" | "selection-change" | "expand-change" | "current-change" | "cell-mouse-enter" | "cell-mouse-leave" | "header-click" | "header-contextmenu" | "update:sort" | "sort-change" | "cell-click" | "cell-dblclick" | "row-click" | "row-contextmenu" | "row-dblclick" | "header-dragend ")[], "select" | "select-all" | "selection-change" | "expand-change" | "current-change" | "cell-mouse-enter" | "cell-mouse-leave" | "header-click" | "header-contextmenu" | "update:sort" | "sort-change" | "cell-click" | "cell-dblclick" | "row-click" | "row-contextmenu" | "row-dblclick" | "header-dragend ", PublicProps, Readonly<ExtractPropTypes< {
10182
+ resizable: {
10183
+ type: BooleanConstructor;
10184
+ default: undefined;
10185
+ };
10186
+ }>, () => JSX_2.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("select" | "select-all" | "selection-change" | "expand-change" | "current-change" | "cell-mouse-enter" | "cell-mouse-leave" | "header-click" | "header-contextmenu" | "update:sort" | "sort-change" | "header-dragend" | "cell-click" | "cell-dblclick" | "row-click" | "row-contextmenu" | "row-dblclick")[], "select" | "select-all" | "selection-change" | "expand-change" | "current-change" | "cell-mouse-enter" | "cell-mouse-leave" | "header-click" | "header-contextmenu" | "update:sort" | "sort-change" | "header-dragend" | "cell-click" | "cell-dblclick" | "row-click" | "row-contextmenu" | "row-dblclick", PublicProps, Readonly<ExtractPropTypes< {
10183
10187
  data: {
10184
10188
  type: ArrayConstructor;
10185
10189
  default: () => never[];
@@ -10251,6 +10255,10 @@ export declare const Components: {
10251
10255
  default: () => {};
10252
10256
  };
10253
10257
  delay: NumberConstructor;
10258
+ resizable: {
10259
+ type: BooleanConstructor;
10260
+ default: undefined;
10261
+ };
10254
10262
  }>> & Readonly<{
10255
10263
  onSelect?: ((...args: any[]) => any) | undefined;
10256
10264
  "onSelect-all"?: ((...args: any[]) => any) | undefined;
@@ -10263,12 +10271,12 @@ export declare const Components: {
10263
10271
  "onHeader-contextmenu"?: ((...args: any[]) => any) | undefined;
10264
10272
  "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
10265
10273
  "onSort-change"?: ((...args: any[]) => any) | undefined;
10274
+ "onHeader-dragend"?: ((...args: any[]) => any) | undefined;
10266
10275
  "onCell-click"?: ((...args: any[]) => any) | undefined;
10267
10276
  "onCell-dblclick"?: ((...args: any[]) => any) | undefined;
10268
10277
  "onRow-click"?: ((...args: any[]) => any) | undefined;
10269
10278
  "onRow-contextmenu"?: ((...args: any[]) => any) | undefined;
10270
10279
  "onRow-dblclick"?: ((...args: any[]) => any) | undefined;
10271
- "onHeader-dragend "?: ((...args: any[]) => any) | undefined;
10272
10280
  }>, {
10273
10281
  sort: Record<string, any>;
10274
10282
  data: unknown[];
@@ -10282,6 +10290,7 @@ export declare const Components: {
10282
10290
  expandSelectable: boolean;
10283
10291
  showHeader: boolean;
10284
10292
  rows: number;
10293
+ resizable: boolean;
10285
10294
  stripe: boolean;
10286
10295
  divider: boolean;
10287
10296
  showSummary: boolean;
@@ -10360,7 +10369,11 @@ export declare const Components: {
10360
10369
  default: () => {};
10361
10370
  };
10362
10371
  delay: NumberConstructor;
10363
- }>, () => JSX_2.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("select" | "select-all" | "selection-change" | "expand-change" | "current-change" | "cell-mouse-enter" | "cell-mouse-leave" | "header-click" | "header-contextmenu" | "update:sort" | "sort-change" | "cell-click" | "cell-dblclick" | "row-click" | "row-contextmenu" | "row-dblclick" | "header-dragend ")[], "select" | "select-all" | "selection-change" | "expand-change" | "current-change" | "cell-mouse-enter" | "cell-mouse-leave" | "header-click" | "header-contextmenu" | "update:sort" | "sort-change" | "cell-click" | "cell-dblclick" | "row-click" | "row-contextmenu" | "row-dblclick" | "header-dragend ", PublicProps, Readonly<ExtractPropTypes< {
10372
+ resizable: {
10373
+ type: BooleanConstructor;
10374
+ default: undefined;
10375
+ };
10376
+ }>, () => JSX_2.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("select" | "select-all" | "selection-change" | "expand-change" | "current-change" | "cell-mouse-enter" | "cell-mouse-leave" | "header-click" | "header-contextmenu" | "update:sort" | "sort-change" | "header-dragend" | "cell-click" | "cell-dblclick" | "row-click" | "row-contextmenu" | "row-dblclick")[], "select" | "select-all" | "selection-change" | "expand-change" | "current-change" | "cell-mouse-enter" | "cell-mouse-leave" | "header-click" | "header-contextmenu" | "update:sort" | "sort-change" | "header-dragend" | "cell-click" | "cell-dblclick" | "row-click" | "row-contextmenu" | "row-dblclick", PublicProps, Readonly<ExtractPropTypes< {
10364
10377
  data: {
10365
10378
  type: ArrayConstructor;
10366
10379
  default: () => never[];
@@ -10432,6 +10445,10 @@ export declare const Components: {
10432
10445
  default: () => {};
10433
10446
  };
10434
10447
  delay: NumberConstructor;
10448
+ resizable: {
10449
+ type: BooleanConstructor;
10450
+ default: undefined;
10451
+ };
10435
10452
  }>> & Readonly<{
10436
10453
  onSelect?: ((...args: any[]) => any) | undefined;
10437
10454
  "onSelect-all"?: ((...args: any[]) => any) | undefined;
@@ -10444,12 +10461,12 @@ export declare const Components: {
10444
10461
  "onHeader-contextmenu"?: ((...args: any[]) => any) | undefined;
10445
10462
  "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
10446
10463
  "onSort-change"?: ((...args: any[]) => any) | undefined;
10464
+ "onHeader-dragend"?: ((...args: any[]) => any) | undefined;
10447
10465
  "onCell-click"?: ((...args: any[]) => any) | undefined;
10448
10466
  "onCell-dblclick"?: ((...args: any[]) => any) | undefined;
10449
10467
  "onRow-click"?: ((...args: any[]) => any) | undefined;
10450
10468
  "onRow-contextmenu"?: ((...args: any[]) => any) | undefined;
10451
10469
  "onRow-dblclick"?: ((...args: any[]) => any) | undefined;
10452
- "onHeader-dragend "?: ((...args: any[]) => any) | undefined;
10453
10470
  }>, {
10454
10471
  sort: Record<string, any>;
10455
10472
  data: unknown[];
@@ -10463,6 +10480,7 @@ export declare const Components: {
10463
10480
  expandSelectable: boolean;
10464
10481
  showHeader: boolean;
10465
10482
  rows: number;
10483
+ resizable: boolean;
10466
10484
  stripe: boolean;
10467
10485
  divider: boolean;
10468
10486
  showSummary: boolean;
@@ -10544,8 +10562,8 @@ export declare const Components: {
10544
10562
  }>> & Readonly<{}>, {
10545
10563
  type: string;
10546
10564
  reserveSelection: boolean;
10547
- sortable: boolean;
10548
10565
  resizable: boolean;
10566
+ sortable: boolean;
10549
10567
  filterMultiple: boolean;
10550
10568
  }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
10551
10569
  MTableColumn: DefineComponent<ExtractPropTypes< {
@@ -10623,8 +10641,8 @@ export declare const Components: {
10623
10641
  }>> & Readonly<{}>, {
10624
10642
  type: string;
10625
10643
  reserveSelection: boolean;
10626
- sortable: boolean;
10627
10644
  resizable: boolean;
10645
+ sortable: boolean;
10628
10646
  filterMultiple: boolean;
10629
10647
  }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
10630
10648
  Tabs: DefineComponent<ExtractPropTypes< {
@@ -12993,9 +12993,9 @@ var Vc = (function (exports, vue) {
12993
12993
  chart.value.group = props2.group;
12994
12994
  }
12995
12995
  chart.value.setOption(manualOptions.value || props2.options || {}, true);
12996
- EVENTS$1.forEach((event2) => {
12997
- chart.value.on(event2, (params) => {
12998
- emit(event2, params);
12996
+ EVENTS$1.forEach((event) => {
12997
+ chart.value.on(event, (params) => {
12998
+ emit(event, params);
12999
12999
  });
13000
13000
  });
13001
13001
  if (props2.resize !== false) {
@@ -15823,8 +15823,8 @@ var Vc = (function (exports, vue) {
15823
15823
  const offsetFromStart = row * 7 + column - offsetDay.value;
15824
15824
  return nextDate(startDate.value, offsetFromStart);
15825
15825
  };
15826
- const getCell2 = (event2) => {
15827
- let target = event2.target;
15826
+ const getCell2 = (event) => {
15827
+ let target = event.target;
15828
15828
  if (target.tagName === "SPAN") {
15829
15829
  target = target.parentNode.parentNode;
15830
15830
  }
@@ -15858,23 +15858,23 @@ var Vc = (function (exports, vue) {
15858
15858
  }
15859
15859
  return classes.join(" ");
15860
15860
  };
15861
- const handleClick = (event2) => {
15861
+ const handleClick = (event) => {
15862
15862
  const {
15863
15863
  cell,
15864
15864
  row,
15865
15865
  column
15866
- } = getCell2(event2);
15866
+ } = getCell2(event);
15867
15867
  if (!cell) return;
15868
15868
  if (cell.disabled || cell.type === "week") return;
15869
15869
  const newDate = getDateOfCell(row, column);
15870
15870
  emit("pick", newDate, cell);
15871
15871
  };
15872
- const handleMouseMove = (event2) => {
15872
+ const handleMouseMove = (event) => {
15873
15873
  const {
15874
15874
  cell,
15875
15875
  row,
15876
15876
  column
15877
- } = getCell2(event2);
15877
+ } = getCell2(event);
15878
15878
  if (!cell) return;
15879
15879
  if (!props2.rangeState.selecting || cell.disabled) return;
15880
15880
  const newDate = getDateOfCell(row, column);
@@ -15965,8 +15965,8 @@ var Vc = (function (exports, vue) {
15965
15965
  }
15966
15966
  return $rows;
15967
15967
  });
15968
- const getCell2 = (event2) => {
15969
- let target = event2.target;
15968
+ const getCell2 = (event) => {
15969
+ let target = event.target;
15970
15970
  if (target.tagName === "SPAN") {
15971
15971
  target = target.parentNode.parentNode;
15972
15972
  }
@@ -15998,18 +15998,18 @@ var Vc = (function (exports, vue) {
15998
15998
  }
15999
15999
  return classes.join(" ");
16000
16000
  };
16001
- const handleClick = (event2) => {
16001
+ const handleClick = (event) => {
16002
16002
  const {
16003
16003
  cell
16004
- } = getCell2(event2);
16004
+ } = getCell2(event);
16005
16005
  if (!cell) return;
16006
16006
  if (cell.disabled) return;
16007
16007
  emit("pick", cell.date);
16008
16008
  };
16009
- const handleMouseMove = (event2) => {
16009
+ const handleMouseMove = (event) => {
16010
16010
  const {
16011
16011
  cell
16012
- } = getCell2(event2);
16012
+ } = getCell2(event);
16013
16013
  if (!cell) return;
16014
16014
  if (!props2.rangeState.selecting || cell.disabled) return;
16015
16015
  emit("range-change", cell.date);
@@ -16126,8 +16126,8 @@ var Vc = (function (exports, vue) {
16126
16126
  }
16127
16127
  return classes.join(" ");
16128
16128
  };
16129
- const getCell2 = (event2) => {
16130
- let target = event2.target;
16129
+ const getCell2 = (event) => {
16130
+ let target = event.target;
16131
16131
  if (target.tagName === "SPAN") {
16132
16132
  target = target.parentNode.parentNode;
16133
16133
  }
@@ -16143,18 +16143,18 @@ var Vc = (function (exports, vue) {
16143
16143
  column
16144
16144
  };
16145
16145
  };
16146
- const handleClick = (event2) => {
16146
+ const handleClick = (event) => {
16147
16147
  const {
16148
16148
  cell
16149
- } = getCell2(event2);
16149
+ } = getCell2(event);
16150
16150
  if (!cell) return;
16151
16151
  if (cell.disabled) return;
16152
16152
  emit("pick", cell.dates);
16153
16153
  };
16154
- const handleMouseMove = (event2) => {
16154
+ const handleMouseMove = (event) => {
16155
16155
  const {
16156
16156
  cell
16157
- } = getCell2(event2);
16157
+ } = getCell2(event);
16158
16158
  if (!cell) return;
16159
16159
  if (!props2.rangeState.selecting || cell.disabled) return;
16160
16160
  emit("range-change", cell.dates);
@@ -18219,10 +18219,11 @@ var Vc = (function (exports, vue) {
18219
18219
  "vc-scroller__wrapper"
18220
18220
  ];
18221
18221
  });
18222
- const refreshSize = () => {
18222
+ const refreshSize = async () => {
18223
18223
  if (!wrapper.value) return;
18224
18224
  wrapperW.value = wrapper.value.clientWidth;
18225
18225
  wrapperH.value = wrapper.value.clientHeight;
18226
+ await vue.nextTick();
18226
18227
  contentH.value = wrapper.value.scrollHeight;
18227
18228
  contentW.value = wrapper.value.scrollWidth;
18228
18229
  };
@@ -22820,11 +22821,10 @@ var Vc = (function (exports, vue) {
22820
22821
  } = owner.exposed;
22821
22822
  return !multiple.value ? true : current.value.slice(-1)[0] === props2.value;
22822
22823
  });
22823
- const searchRegex = vue.computed(() => {
22824
- const v = owner.exposed.searchValue.value.trim().replace(/\s+/g, " ").split(/\s|,/);
22825
- return new RegExp(`(${v.join("|")})`, "i");
22826
- });
22827
22824
  const isActive = vue.computed(() => {
22825
+ const {
22826
+ searchRegex
22827
+ } = owner.exposed;
22828
22828
  return !!(searchRegex.value.test(formatterLabel.value) || !props2.filterable);
22829
22829
  });
22830
22830
  const customOptions = vue.computed(() => {
@@ -23025,6 +23025,10 @@ var Vc = (function (exports, vue) {
23025
23025
  const v = currentValue.value.length - props2.maxTags;
23026
23026
  return v < 0 ? 0 : v;
23027
23027
  });
23028
+ const searchRegex = vue.computed(() => {
23029
+ const v = searchValue.value.trim().replace(/\s+/g, " ").split(/\s|,/);
23030
+ return new RegExp(escapeString(`(${v.join("|")})`), "i");
23031
+ });
23028
23032
  const optionMap = vue.ref({});
23029
23033
  const options = vue.computed(() => {
23030
23034
  return Object.values(optionMap.value);
@@ -23111,7 +23115,7 @@ var Vc = (function (exports, vue) {
23111
23115
  add,
23112
23116
  remove,
23113
23117
  close,
23114
- searchValue,
23118
+ searchRegex,
23115
23119
  multiple,
23116
23120
  isActive,
23117
23121
  current: currentValue,
@@ -27198,6 +27202,10 @@ var Vc = (function (exports, vue) {
27198
27202
  sort: {
27199
27203
  type: Object,
27200
27204
  default: () => ({})
27205
+ },
27206
+ resizable: {
27207
+ type: Boolean,
27208
+ default: void 0
27201
27209
  }
27202
27210
  },
27203
27211
  setup(props2) {
@@ -27206,6 +27214,9 @@ var Vc = (function (exports, vue) {
27206
27214
  const draggingColumn = vue.ref(null);
27207
27215
  const dragging = vue.ref(false);
27208
27216
  const dragState = vue.ref({});
27217
+ const allowDrag = vue.computed(() => {
27218
+ return typeof props2.resizable === "boolean" ? props2.resizable : props2.border;
27219
+ });
27209
27220
  const states = useStates({
27210
27221
  columns: "columns",
27211
27222
  isAllSelected: "isAllSelected",
@@ -27308,10 +27319,10 @@ var Vc = (function (exports, vue) {
27308
27319
  const handleMouseDown = (e, column) => {
27309
27320
  if (IS_SERVER$3) return;
27310
27321
  if (column.children && column.children.length > 0) return;
27311
- if (draggingColumn.value && props2.border) {
27322
+ if (draggingColumn.value && allowDrag.value) {
27312
27323
  dragging.value = true;
27313
27324
  table.resizeProxyVisible.value = true;
27314
- const tableEl = table.vnode.el;
27325
+ const tableEl = table.tableWrapper.value;
27315
27326
  const tableLeft = tableEl.getBoundingClientRect().left;
27316
27327
  const columnEl = instance.vnode.el.querySelector(`.vc-table__th.${column.id}`);
27317
27328
  const columnRect = columnEl.getBoundingClientRect();
@@ -27340,15 +27351,14 @@ var Vc = (function (exports, vue) {
27340
27351
  } = dragState.value;
27341
27352
  const finalLeft = parseInt(resizeProxy.style.left, 10);
27342
27353
  const columnWidth = finalLeft - startColumnLeft;
27343
- column.width = columnWidth;
27344
- column.realWidth = column.width;
27345
- table.$emit("header-dragend", column.width, startLeft - startColumnLeft, column, event);
27354
+ column.width = column.minWidth = column.realWidth = columnWidth;
27355
+ table.emit("header-dragend", column.width, startLeft - startColumnLeft, column);
27346
27356
  table.store.scheduleLayout();
27347
27357
  document.body.style.cursor = "";
27348
27358
  dragging.value = false;
27349
27359
  draggingColumn.value = null;
27350
27360
  dragState.value = {};
27351
- table.resizeProxyVisible = false;
27361
+ table.resizeProxyVisible.value = false;
27352
27362
  }
27353
27363
  document.removeEventListener("mousemove", handleMouseMove2);
27354
27364
  document.removeEventListener("mouseup", handleMouseUp);
@@ -27362,17 +27372,17 @@ var Vc = (function (exports, vue) {
27362
27372
  document.addEventListener("mouseup", handleMouseUp);
27363
27373
  }
27364
27374
  };
27365
- const handleMouseMove = (event2, column) => {
27375
+ const handleMouseMove = (event, column) => {
27366
27376
  if (column.children && column.children.length > 0) return;
27367
- let target = event2.target;
27377
+ let target = event.target;
27368
27378
  while (target && !target.classList?.contains?.("vc-table__th")) {
27369
27379
  target = target.parentNode;
27370
27380
  }
27371
27381
  if (!column || !column.resizable) return;
27372
- if (!dragging.value && props2.border) {
27382
+ if (!dragging.value && allowDrag.value) {
27373
27383
  const rect = target.getBoundingClientRect();
27374
27384
  const bodyStyle = document.body.style;
27375
- if (rect.width > 12 && rect.right - event2.pageX < 8) {
27385
+ if (rect.width > 12 && rect.right - event.pageX < 8) {
27376
27386
  bodyStyle.cursor = "col-resize";
27377
27387
  if (hasClass(target, "is-sortable")) {
27378
27388
  target.style.cursor = "col-resize";
@@ -27677,13 +27687,17 @@ var Vc = (function (exports, vue) {
27677
27687
  default: () => ({})
27678
27688
  },
27679
27689
  // 用于延迟渲染,用于计算高度
27680
- delay: Number
27690
+ delay: Number,
27691
+ resizable: {
27692
+ type: Boolean,
27693
+ default: void 0
27694
+ }
27681
27695
  };
27682
27696
  const COMPONENT_NAME$j = "vc-table";
27683
27697
  const Table$1 = /* @__PURE__ */ vue.defineComponent({
27684
27698
  name: COMPONENT_NAME$j,
27685
27699
  props: props$d,
27686
- emits: ["select", "select-all", "selection-change", "cell-mouse-enter", "cell-mouse-leave", "cell-click", "cell-dblclick", "row-click", "row-contextmenu", "row-dblclick", "header-click", "header-contextmenu", "current-change", "header-dragend ", "expand-change", "sort-change", "update:sort"],
27700
+ emits: ["select", "select-all", "selection-change", "cell-mouse-enter", "cell-mouse-leave", "cell-click", "cell-dblclick", "row-click", "row-contextmenu", "row-dblclick", "header-click", "header-contextmenu", "current-change", "header-dragend", "expand-change", "sort-change", "update:sort"],
27687
27701
  setup(props2, {
27688
27702
  slots,
27689
27703
  expose,
@@ -27702,6 +27716,7 @@ var Vc = (function (exports, vue) {
27702
27716
  width: null,
27703
27717
  height: null
27704
27718
  });
27719
+ const tableWrapper = vue.ref(null);
27705
27720
  const hiddenColumns = vue.ref(null);
27706
27721
  const headerWrapper = vue.ref(null);
27707
27722
  const tableHeader = vue.ref(null);
@@ -28039,6 +28054,7 @@ var Vc = (function (exports, vue) {
28039
28054
  toggleRowExpansion,
28040
28055
  clearSelection,
28041
28056
  scroller,
28057
+ tableWrapper,
28042
28058
  headerWrapper,
28043
28059
  appendWrapper,
28044
28060
  footerWrapper,
@@ -28049,12 +28065,15 @@ var Vc = (function (exports, vue) {
28049
28065
  renderExpanded,
28050
28066
  hiddenColumns,
28051
28067
  props: props2,
28052
- emit
28068
+ emit,
28069
+ resizeProxy,
28070
+ resizeProxyVisible
28053
28071
  };
28054
28072
  expose(exposed);
28055
28073
  vue.provide("vc-table", exposed);
28056
28074
  return () => {
28057
28075
  return vue.createVNode("div", {
28076
+ "ref": tableWrapper,
28058
28077
  "class": [classes.value, tableId, "vc-table"],
28059
28078
  "onMouseleave": handleMouseLeave
28060
28079
  }, [vue.createVNode("div", {
@@ -28066,6 +28085,7 @@ var Vc = (function (exports, vue) {
28066
28085
  }, [vue.createVNode(TableHeader, {
28067
28086
  "ref": tableHeader,
28068
28087
  "border": props2.border,
28088
+ "resizable": props2.resizable,
28069
28089
  "sort": props2.sort,
28070
28090
  "style": bodyWidthStyle.value
28071
28091
  }, null)]), states.columns.length > 0 && vue.createVNode(ScrollerWheel, {
@@ -28083,15 +28103,10 @@ var Vc = (function (exports, vue) {
28083
28103
  "style": [bodyWidthStyle.value],
28084
28104
  "height-style": [bodyHeightStyle.value],
28085
28105
  "onScroll": handleScollY
28086
- }, null), props2.data.length === 0 && vue.createVNode("div", {
28087
- "ref": emptyBlock,
28088
- "style": bodyWidthStyle.value,
28089
- "class": [{
28090
- "is-absolute": !!props2.height
28091
- }, "vc-table__empty-wrapper"]
28092
- }, [vue.createVNode("span", {
28093
- "class": "vc-table__empty-text"
28094
- }, [slots.empty ? slots.empty() : props2.emptyText || "暂无数据"])]), slots.append && vue.createVNode("div", {
28106
+ }, null), props2.data.length === 0 && !props2.height && vue.createVNode("div", {
28107
+ "class": "vc-table__empty-placeholder",
28108
+ "style": [bodyWidthStyle.value]
28109
+ }, null), slots.append && vue.createVNode("div", {
28095
28110
  "ref": appendWrapper,
28096
28111
  "class": "vc-table__append-wrapper"
28097
28112
  }, [slots.append()])]
@@ -28115,6 +28130,7 @@ var Vc = (function (exports, vue) {
28115
28130
  }, [vue.createVNode(TableHeader, {
28116
28131
  "ref": leftFixedTableHeader,
28117
28132
  "border": props2.border,
28133
+ "resizable": props2.resizable,
28118
28134
  "sort": props2.sort,
28119
28135
  "style": bodyWidthStyle.value,
28120
28136
  "fixed": "left"
@@ -28154,6 +28170,7 @@ var Vc = (function (exports, vue) {
28154
28170
  }, [vue.createVNode(TableHeader, {
28155
28171
  "ref": rightFixedTableHeader,
28156
28172
  "border": props2.border,
28173
+ "resizable": props2.resizable,
28157
28174
  "sort": props2.sort,
28158
28175
  "style": bodyWidthStyle.value,
28159
28176
  "fixed": "right"
@@ -28181,7 +28198,14 @@ var Vc = (function (exports, vue) {
28181
28198
  "get-summary": props2.getSummary,
28182
28199
  "style": bodyWidthStyle.value,
28183
28200
  "fixed": "right"
28184
- }, null)]), [[vue.vShow, props2.data && props2.data.length > 0]])]), vue.withDirectives(vue.createVNode("div", {
28201
+ }, null)]), [[vue.vShow, props2.data && props2.data.length > 0]])]), props2.data.length === 0 && vue.createVNode("div", {
28202
+ "ref": emptyBlock,
28203
+ "class": [{
28204
+ "has-height": !!props2.height
28205
+ }, "vc-table__empty-wrapper"]
28206
+ }, [slots.empty ? slots.empty() : vue.createVNode("span", {
28207
+ "class": "vc-table__empty-text"
28208
+ }, [props2.emptyText || "暂无数据"])]), vue.withDirectives(vue.createVNode("div", {
28185
28209
  "ref": resizeProxy,
28186
28210
  "class": "vc-table__column-resize-proxy"
28187
28211
  }, null), [[vue.vShow, resizeProxyVisible.value]])]);
@@ -12996,9 +12996,9 @@
12996
12996
  chart.value.group = props2.group;
12997
12997
  }
12998
12998
  chart.value.setOption(manualOptions.value || props2.options || {}, true);
12999
- EVENTS$1.forEach((event2) => {
13000
- chart.value.on(event2, (params) => {
13001
- emit(event2, params);
12999
+ EVENTS$1.forEach((event) => {
13000
+ chart.value.on(event, (params) => {
13001
+ emit(event, params);
13002
13002
  });
13003
13003
  });
13004
13004
  if (props2.resize !== false) {
@@ -15826,8 +15826,8 @@
15826
15826
  const offsetFromStart = row * 7 + column - offsetDay.value;
15827
15827
  return nextDate(startDate.value, offsetFromStart);
15828
15828
  };
15829
- const getCell2 = (event2) => {
15830
- let target = event2.target;
15829
+ const getCell2 = (event) => {
15830
+ let target = event.target;
15831
15831
  if (target.tagName === "SPAN") {
15832
15832
  target = target.parentNode.parentNode;
15833
15833
  }
@@ -15861,23 +15861,23 @@
15861
15861
  }
15862
15862
  return classes.join(" ");
15863
15863
  };
15864
- const handleClick = (event2) => {
15864
+ const handleClick = (event) => {
15865
15865
  const {
15866
15866
  cell,
15867
15867
  row,
15868
15868
  column
15869
- } = getCell2(event2);
15869
+ } = getCell2(event);
15870
15870
  if (!cell) return;
15871
15871
  if (cell.disabled || cell.type === "week") return;
15872
15872
  const newDate = getDateOfCell(row, column);
15873
15873
  emit("pick", newDate, cell);
15874
15874
  };
15875
- const handleMouseMove = (event2) => {
15875
+ const handleMouseMove = (event) => {
15876
15876
  const {
15877
15877
  cell,
15878
15878
  row,
15879
15879
  column
15880
- } = getCell2(event2);
15880
+ } = getCell2(event);
15881
15881
  if (!cell) return;
15882
15882
  if (!props2.rangeState.selecting || cell.disabled) return;
15883
15883
  const newDate = getDateOfCell(row, column);
@@ -15968,8 +15968,8 @@
15968
15968
  }
15969
15969
  return $rows;
15970
15970
  });
15971
- const getCell2 = (event2) => {
15972
- let target = event2.target;
15971
+ const getCell2 = (event) => {
15972
+ let target = event.target;
15973
15973
  if (target.tagName === "SPAN") {
15974
15974
  target = target.parentNode.parentNode;
15975
15975
  }
@@ -16001,18 +16001,18 @@
16001
16001
  }
16002
16002
  return classes.join(" ");
16003
16003
  };
16004
- const handleClick = (event2) => {
16004
+ const handleClick = (event) => {
16005
16005
  const {
16006
16006
  cell
16007
- } = getCell2(event2);
16007
+ } = getCell2(event);
16008
16008
  if (!cell) return;
16009
16009
  if (cell.disabled) return;
16010
16010
  emit("pick", cell.date);
16011
16011
  };
16012
- const handleMouseMove = (event2) => {
16012
+ const handleMouseMove = (event) => {
16013
16013
  const {
16014
16014
  cell
16015
- } = getCell2(event2);
16015
+ } = getCell2(event);
16016
16016
  if (!cell) return;
16017
16017
  if (!props2.rangeState.selecting || cell.disabled) return;
16018
16018
  emit("range-change", cell.date);
@@ -16129,8 +16129,8 @@
16129
16129
  }
16130
16130
  return classes.join(" ");
16131
16131
  };
16132
- const getCell2 = (event2) => {
16133
- let target = event2.target;
16132
+ const getCell2 = (event) => {
16133
+ let target = event.target;
16134
16134
  if (target.tagName === "SPAN") {
16135
16135
  target = target.parentNode.parentNode;
16136
16136
  }
@@ -16146,18 +16146,18 @@
16146
16146
  column
16147
16147
  };
16148
16148
  };
16149
- const handleClick = (event2) => {
16149
+ const handleClick = (event) => {
16150
16150
  const {
16151
16151
  cell
16152
- } = getCell2(event2);
16152
+ } = getCell2(event);
16153
16153
  if (!cell) return;
16154
16154
  if (cell.disabled) return;
16155
16155
  emit("pick", cell.dates);
16156
16156
  };
16157
- const handleMouseMove = (event2) => {
16157
+ const handleMouseMove = (event) => {
16158
16158
  const {
16159
16159
  cell
16160
- } = getCell2(event2);
16160
+ } = getCell2(event);
16161
16161
  if (!cell) return;
16162
16162
  if (!props2.rangeState.selecting || cell.disabled) return;
16163
16163
  emit("range-change", cell.dates);
@@ -18222,10 +18222,11 @@
18222
18222
  "vc-scroller__wrapper"
18223
18223
  ];
18224
18224
  });
18225
- const refreshSize = () => {
18225
+ const refreshSize = async () => {
18226
18226
  if (!wrapper.value) return;
18227
18227
  wrapperW.value = wrapper.value.clientWidth;
18228
18228
  wrapperH.value = wrapper.value.clientHeight;
18229
+ await vue.nextTick();
18229
18230
  contentH.value = wrapper.value.scrollHeight;
18230
18231
  contentW.value = wrapper.value.scrollWidth;
18231
18232
  };
@@ -22823,11 +22824,10 @@
22823
22824
  } = owner.exposed;
22824
22825
  return !multiple.value ? true : current.value.slice(-1)[0] === props2.value;
22825
22826
  });
22826
- const searchRegex = vue.computed(() => {
22827
- const v = owner.exposed.searchValue.value.trim().replace(/\s+/g, " ").split(/\s|,/);
22828
- return new RegExp(`(${v.join("|")})`, "i");
22829
- });
22830
22827
  const isActive = vue.computed(() => {
22828
+ const {
22829
+ searchRegex
22830
+ } = owner.exposed;
22831
22831
  return !!(searchRegex.value.test(formatterLabel.value) || !props2.filterable);
22832
22832
  });
22833
22833
  const customOptions = vue.computed(() => {
@@ -23028,6 +23028,10 @@
23028
23028
  const v = currentValue.value.length - props2.maxTags;
23029
23029
  return v < 0 ? 0 : v;
23030
23030
  });
23031
+ const searchRegex = vue.computed(() => {
23032
+ const v = searchValue.value.trim().replace(/\s+/g, " ").split(/\s|,/);
23033
+ return new RegExp(escapeString(`(${v.join("|")})`), "i");
23034
+ });
23031
23035
  const optionMap = vue.ref({});
23032
23036
  const options = vue.computed(() => {
23033
23037
  return Object.values(optionMap.value);
@@ -23114,7 +23118,7 @@
23114
23118
  add,
23115
23119
  remove,
23116
23120
  close,
23117
- searchValue,
23121
+ searchRegex,
23118
23122
  multiple,
23119
23123
  isActive,
23120
23124
  current: currentValue,
@@ -27201,6 +27205,10 @@
27201
27205
  sort: {
27202
27206
  type: Object,
27203
27207
  default: () => ({})
27208
+ },
27209
+ resizable: {
27210
+ type: Boolean,
27211
+ default: void 0
27204
27212
  }
27205
27213
  },
27206
27214
  setup(props2) {
@@ -27209,6 +27217,9 @@
27209
27217
  const draggingColumn = vue.ref(null);
27210
27218
  const dragging = vue.ref(false);
27211
27219
  const dragState = vue.ref({});
27220
+ const allowDrag = vue.computed(() => {
27221
+ return typeof props2.resizable === "boolean" ? props2.resizable : props2.border;
27222
+ });
27212
27223
  const states = useStates({
27213
27224
  columns: "columns",
27214
27225
  isAllSelected: "isAllSelected",
@@ -27311,10 +27322,10 @@
27311
27322
  const handleMouseDown = (e, column) => {
27312
27323
  if (IS_SERVER$3) return;
27313
27324
  if (column.children && column.children.length > 0) return;
27314
- if (draggingColumn.value && props2.border) {
27325
+ if (draggingColumn.value && allowDrag.value) {
27315
27326
  dragging.value = true;
27316
27327
  table.resizeProxyVisible.value = true;
27317
- const tableEl = table.vnode.el;
27328
+ const tableEl = table.tableWrapper.value;
27318
27329
  const tableLeft = tableEl.getBoundingClientRect().left;
27319
27330
  const columnEl = instance.vnode.el.querySelector(`.vc-table__th.${column.id}`);
27320
27331
  const columnRect = columnEl.getBoundingClientRect();
@@ -27343,15 +27354,14 @@
27343
27354
  } = dragState.value;
27344
27355
  const finalLeft = parseInt(resizeProxy.style.left, 10);
27345
27356
  const columnWidth = finalLeft - startColumnLeft;
27346
- column.width = columnWidth;
27347
- column.realWidth = column.width;
27348
- table.$emit("header-dragend", column.width, startLeft - startColumnLeft, column, event);
27357
+ column.width = column.minWidth = column.realWidth = columnWidth;
27358
+ table.emit("header-dragend", column.width, startLeft - startColumnLeft, column);
27349
27359
  table.store.scheduleLayout();
27350
27360
  document.body.style.cursor = "";
27351
27361
  dragging.value = false;
27352
27362
  draggingColumn.value = null;
27353
27363
  dragState.value = {};
27354
- table.resizeProxyVisible = false;
27364
+ table.resizeProxyVisible.value = false;
27355
27365
  }
27356
27366
  document.removeEventListener("mousemove", handleMouseMove2);
27357
27367
  document.removeEventListener("mouseup", handleMouseUp);
@@ -27365,17 +27375,17 @@
27365
27375
  document.addEventListener("mouseup", handleMouseUp);
27366
27376
  }
27367
27377
  };
27368
- const handleMouseMove = (event2, column) => {
27378
+ const handleMouseMove = (event, column) => {
27369
27379
  if (column.children && column.children.length > 0) return;
27370
- let target = event2.target;
27380
+ let target = event.target;
27371
27381
  while (target && !target.classList?.contains?.("vc-table__th")) {
27372
27382
  target = target.parentNode;
27373
27383
  }
27374
27384
  if (!column || !column.resizable) return;
27375
- if (!dragging.value && props2.border) {
27385
+ if (!dragging.value && allowDrag.value) {
27376
27386
  const rect = target.getBoundingClientRect();
27377
27387
  const bodyStyle = document.body.style;
27378
- if (rect.width > 12 && rect.right - event2.pageX < 8) {
27388
+ if (rect.width > 12 && rect.right - event.pageX < 8) {
27379
27389
  bodyStyle.cursor = "col-resize";
27380
27390
  if (hasClass(target, "is-sortable")) {
27381
27391
  target.style.cursor = "col-resize";
@@ -27680,13 +27690,17 @@
27680
27690
  default: () => ({})
27681
27691
  },
27682
27692
  // 用于延迟渲染,用于计算高度
27683
- delay: Number
27693
+ delay: Number,
27694
+ resizable: {
27695
+ type: Boolean,
27696
+ default: void 0
27697
+ }
27684
27698
  };
27685
27699
  const COMPONENT_NAME$j = "vc-table";
27686
27700
  const Table$1 = /* @__PURE__ */ vue.defineComponent({
27687
27701
  name: COMPONENT_NAME$j,
27688
27702
  props: props$d,
27689
- emits: ["select", "select-all", "selection-change", "cell-mouse-enter", "cell-mouse-leave", "cell-click", "cell-dblclick", "row-click", "row-contextmenu", "row-dblclick", "header-click", "header-contextmenu", "current-change", "header-dragend ", "expand-change", "sort-change", "update:sort"],
27703
+ emits: ["select", "select-all", "selection-change", "cell-mouse-enter", "cell-mouse-leave", "cell-click", "cell-dblclick", "row-click", "row-contextmenu", "row-dblclick", "header-click", "header-contextmenu", "current-change", "header-dragend", "expand-change", "sort-change", "update:sort"],
27690
27704
  setup(props2, {
27691
27705
  slots,
27692
27706
  expose,
@@ -27705,6 +27719,7 @@
27705
27719
  width: null,
27706
27720
  height: null
27707
27721
  });
27722
+ const tableWrapper = vue.ref(null);
27708
27723
  const hiddenColumns = vue.ref(null);
27709
27724
  const headerWrapper = vue.ref(null);
27710
27725
  const tableHeader = vue.ref(null);
@@ -28042,6 +28057,7 @@
28042
28057
  toggleRowExpansion,
28043
28058
  clearSelection,
28044
28059
  scroller,
28060
+ tableWrapper,
28045
28061
  headerWrapper,
28046
28062
  appendWrapper,
28047
28063
  footerWrapper,
@@ -28052,12 +28068,15 @@
28052
28068
  renderExpanded,
28053
28069
  hiddenColumns,
28054
28070
  props: props2,
28055
- emit
28071
+ emit,
28072
+ resizeProxy,
28073
+ resizeProxyVisible
28056
28074
  };
28057
28075
  expose(exposed);
28058
28076
  vue.provide("vc-table", exposed);
28059
28077
  return () => {
28060
28078
  return vue.createVNode("div", {
28079
+ "ref": tableWrapper,
28061
28080
  "class": [classes.value, tableId, "vc-table"],
28062
28081
  "onMouseleave": handleMouseLeave
28063
28082
  }, [vue.createVNode("div", {
@@ -28069,6 +28088,7 @@
28069
28088
  }, [vue.createVNode(TableHeader, {
28070
28089
  "ref": tableHeader,
28071
28090
  "border": props2.border,
28091
+ "resizable": props2.resizable,
28072
28092
  "sort": props2.sort,
28073
28093
  "style": bodyWidthStyle.value
28074
28094
  }, null)]), states.columns.length > 0 && vue.createVNode(ScrollerWheel, {
@@ -28086,15 +28106,10 @@
28086
28106
  "style": [bodyWidthStyle.value],
28087
28107
  "height-style": [bodyHeightStyle.value],
28088
28108
  "onScroll": handleScollY
28089
- }, null), props2.data.length === 0 && vue.createVNode("div", {
28090
- "ref": emptyBlock,
28091
- "style": bodyWidthStyle.value,
28092
- "class": [{
28093
- "is-absolute": !!props2.height
28094
- }, "vc-table__empty-wrapper"]
28095
- }, [vue.createVNode("span", {
28096
- "class": "vc-table__empty-text"
28097
- }, [slots.empty ? slots.empty() : props2.emptyText || "暂无数据"])]), slots.append && vue.createVNode("div", {
28109
+ }, null), props2.data.length === 0 && !props2.height && vue.createVNode("div", {
28110
+ "class": "vc-table__empty-placeholder",
28111
+ "style": [bodyWidthStyle.value]
28112
+ }, null), slots.append && vue.createVNode("div", {
28098
28113
  "ref": appendWrapper,
28099
28114
  "class": "vc-table__append-wrapper"
28100
28115
  }, [slots.append()])]
@@ -28118,6 +28133,7 @@
28118
28133
  }, [vue.createVNode(TableHeader, {
28119
28134
  "ref": leftFixedTableHeader,
28120
28135
  "border": props2.border,
28136
+ "resizable": props2.resizable,
28121
28137
  "sort": props2.sort,
28122
28138
  "style": bodyWidthStyle.value,
28123
28139
  "fixed": "left"
@@ -28157,6 +28173,7 @@
28157
28173
  }, [vue.createVNode(TableHeader, {
28158
28174
  "ref": rightFixedTableHeader,
28159
28175
  "border": props2.border,
28176
+ "resizable": props2.resizable,
28160
28177
  "sort": props2.sort,
28161
28178
  "style": bodyWidthStyle.value,
28162
28179
  "fixed": "right"
@@ -28184,7 +28201,14 @@
28184
28201
  "get-summary": props2.getSummary,
28185
28202
  "style": bodyWidthStyle.value,
28186
28203
  "fixed": "right"
28187
- }, null)]), [[vue.vShow, props2.data && props2.data.length > 0]])]), vue.withDirectives(vue.createVNode("div", {
28204
+ }, null)]), [[vue.vShow, props2.data && props2.data.length > 0]])]), props2.data.length === 0 && vue.createVNode("div", {
28205
+ "ref": emptyBlock,
28206
+ "class": [{
28207
+ "has-height": !!props2.height
28208
+ }, "vc-table__empty-wrapper"]
28209
+ }, [slots.empty ? slots.empty() : vue.createVNode("span", {
28210
+ "class": "vc-table__empty-text"
28211
+ }, [props2.emptyText || "暂无数据"])]), vue.withDirectives(vue.createVNode("div", {
28188
28212
  "ref": resizeProxy,
28189
28213
  "class": "vc-table__column-resize-proxy"
28190
28214
  }, null), [[vue.vShow, resizeProxyVisible.value]])]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deot/vc",
3
- "version": "1.0.61",
3
+ "version": "1.0.62",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -19,9 +19,9 @@
19
19
  "access": "public"
20
20
  },
21
21
  "dependencies": {
22
- "@deot/vc-components": "^1.0.61",
23
- "@deot/vc-hooks": "^1.0.61",
24
- "@deot/vc-shared": "^1.0.61"
22
+ "@deot/vc-components": "^1.0.62",
23
+ "@deot/vc-hooks": "^1.0.62",
24
+ "@deot/vc-shared": "^1.0.62"
25
25
  },
26
26
  "peerDependencies": {
27
27
  "vue": "*"