@deot/vc-components 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.cjs CHANGED
@@ -9674,10 +9674,11 @@ const useScroller = (expose) => {
9674
9674
  "vc-scroller__wrapper"
9675
9675
  ];
9676
9676
  });
9677
- const refreshSize = () => {
9677
+ const refreshSize = async () => {
9678
9678
  if (!wrapper.value) return;
9679
9679
  wrapperW.value = wrapper.value.clientWidth;
9680
9680
  wrapperH.value = wrapper.value.clientHeight;
9681
+ await vue.nextTick();
9681
9682
  contentH.value = wrapper.value.scrollHeight;
9682
9683
  contentW.value = wrapper.value.scrollWidth;
9683
9684
  };
@@ -14550,11 +14551,10 @@ const Option = /* @__PURE__ */ vue.defineComponent({
14550
14551
  } = owner.exposed;
14551
14552
  return !multiple.value ? true : current.value.slice(-1)[0] === props.value;
14552
14553
  });
14553
- const searchRegex = vue.computed(() => {
14554
- const v = owner.exposed.searchValue.value.trim().replace(/\s+/g, ' ').split(/\s|,/);
14555
- return new RegExp(`(${v.join('|')})`, 'i');
14556
- });
14557
14554
  const isActive = vue.computed(() => {
14555
+ const {
14556
+ searchRegex
14557
+ } = owner.exposed;
14558
14558
  return !!(searchRegex.value.test(formatterLabel.value) || !props.filterable);
14559
14559
  });
14560
14560
  const customOptions = vue.computed(() => {
@@ -14780,6 +14780,10 @@ const Select = /* @__PURE__ */ vue.defineComponent({
14780
14780
  const v = currentValue.value.length - props.maxTags;
14781
14781
  return v < 0 ? 0 : v;
14782
14782
  });
14783
+ const searchRegex = vue.computed(() => {
14784
+ const v = searchValue.value.trim().replace(/\s+/g, ' ').split(/\s|,/);
14785
+ return new RegExp(escapeString(`(${v.join('|')})`), 'i');
14786
+ });
14783
14787
  const optionMap = vue.ref({});
14784
14788
  const options = vue.computed(() => {
14785
14789
  return Object.values(optionMap.value);
@@ -14876,7 +14880,7 @@ const Select = /* @__PURE__ */ vue.defineComponent({
14876
14880
  add,
14877
14881
  remove,
14878
14882
  close,
14879
- searchValue,
14883
+ searchRegex,
14880
14884
  multiple,
14881
14885
  isActive,
14882
14886
  current: currentValue,
@@ -19151,6 +19155,10 @@ const TableHeader = /* @__PURE__ */ vue.defineComponent({
19151
19155
  sort: {
19152
19156
  type: Object,
19153
19157
  default: () => ({})
19158
+ },
19159
+ resizable: {
19160
+ type: Boolean,
19161
+ default: void 0
19154
19162
  }
19155
19163
  },
19156
19164
  setup(props) {
@@ -19159,6 +19167,9 @@ const TableHeader = /* @__PURE__ */ vue.defineComponent({
19159
19167
  const draggingColumn = vue.ref(null);
19160
19168
  const dragging = vue.ref(false);
19161
19169
  const dragState = vue.ref({});
19170
+ const allowDrag = vue.computed(() => {
19171
+ return typeof props.resizable === 'boolean' ? props.resizable : props.border;
19172
+ });
19162
19173
  const states = useStates({
19163
19174
  columns: 'columns',
19164
19175
  isAllSelected: 'isAllSelected',
@@ -19262,10 +19273,10 @@ const TableHeader = /* @__PURE__ */ vue.defineComponent({
19262
19273
  if (vcShared.IS_SERVER) return;
19263
19274
  if (column.children && column.children.length > 0) return;
19264
19275
  /* istanbul ignore if */
19265
- if (draggingColumn.value && props.border) {
19276
+ if (draggingColumn.value && allowDrag.value) {
19266
19277
  dragging.value = true;
19267
19278
  table.resizeProxyVisible.value = true;
19268
- const tableEl = table.vnode.el;
19279
+ const tableEl = table.tableWrapper.value;
19269
19280
  const tableLeft = tableEl.getBoundingClientRect().left;
19270
19281
  const columnEl = instance.vnode.el.querySelector(`.vc-table__th.${column.id}`);
19271
19282
  const columnRect = columnEl.getBoundingClientRect();
@@ -19294,15 +19305,14 @@ const TableHeader = /* @__PURE__ */ vue.defineComponent({
19294
19305
  } = dragState.value;
19295
19306
  const finalLeft = parseInt(resizeProxy.style.left, 10);
19296
19307
  const columnWidth = finalLeft - startColumnLeft;
19297
- column.width = columnWidth;
19298
- column.realWidth = column.width;
19299
- table.$emit('header-dragend', column.width, startLeft - startColumnLeft, column, event);
19308
+ column.width = column.minWidth = column.realWidth = columnWidth;
19309
+ table.emit('header-dragend', column.width, startLeft - startColumnLeft, column);
19300
19310
  table.store.scheduleLayout();
19301
19311
  document.body.style.cursor = '';
19302
19312
  dragging.value = false;
19303
19313
  draggingColumn.value = null;
19304
19314
  dragState.value = {};
19305
- table.resizeProxyVisible = false;
19315
+ table.resizeProxyVisible.value = false;
19306
19316
  }
19307
19317
  document.removeEventListener('mousemove', handleMouseMove);
19308
19318
  document.removeEventListener('mouseup', handleMouseUp);
@@ -19323,7 +19333,7 @@ const TableHeader = /* @__PURE__ */ vue.defineComponent({
19323
19333
  target = target.parentNode;
19324
19334
  }
19325
19335
  if (!column || !column.resizable) return;
19326
- if (!dragging.value && props.border) {
19336
+ if (!dragging.value && allowDrag.value) {
19327
19337
  const rect = target.getBoundingClientRect();
19328
19338
  const bodyStyle = document.body.style;
19329
19339
  if (rect.width > 12 && rect.right - event.pageX < 8) {
@@ -19630,7 +19640,11 @@ const props$d = {
19630
19640
  default: () => ({})
19631
19641
  },
19632
19642
  // 用于延迟渲染,用于计算高度
19633
- delay: Number
19643
+ delay: Number,
19644
+ resizable: {
19645
+ type: Boolean,
19646
+ default: void 0
19647
+ }
19634
19648
  };
19635
19649
 
19636
19650
  /** @jsxImportSource vue */
@@ -19639,7 +19653,7 @@ const COMPONENT_NAME$j = 'vc-table';
19639
19653
  const Table = /* @__PURE__ */ vue.defineComponent({
19640
19654
  name: COMPONENT_NAME$j,
19641
19655
  props: props$d,
19642
- 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'],
19656
+ 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'],
19643
19657
  setup(props, {
19644
19658
  slots,
19645
19659
  expose,
@@ -19660,7 +19674,7 @@ const Table = /* @__PURE__ */ vue.defineComponent({
19660
19674
  width: null,
19661
19675
  height: null
19662
19676
  });
19663
-
19677
+ const tableWrapper = vue.ref(null);
19664
19678
  // refs
19665
19679
  const hiddenColumns = vue.ref(null);
19666
19680
  const headerWrapper = vue.ref(null);
@@ -20018,6 +20032,7 @@ const Table = /* @__PURE__ */ vue.defineComponent({
20018
20032
  toggleRowExpansion,
20019
20033
  clearSelection,
20020
20034
  scroller,
20035
+ tableWrapper,
20021
20036
  headerWrapper,
20022
20037
  appendWrapper,
20023
20038
  footerWrapper,
@@ -20028,12 +20043,15 @@ const Table = /* @__PURE__ */ vue.defineComponent({
20028
20043
  renderExpanded,
20029
20044
  hiddenColumns,
20030
20045
  props,
20031
- emit
20046
+ emit,
20047
+ resizeProxy,
20048
+ resizeProxyVisible
20032
20049
  };
20033
20050
  expose(exposed);
20034
20051
  vue.provide('vc-table', exposed);
20035
20052
  return () => {
20036
20053
  return vue.createVNode("div", {
20054
+ "ref": tableWrapper,
20037
20055
  "class": [classes.value, tableId, 'vc-table'],
20038
20056
  "onMouseleave": handleMouseLeave
20039
20057
  }, [vue.createVNode("div", {
@@ -20045,6 +20063,7 @@ const Table = /* @__PURE__ */ vue.defineComponent({
20045
20063
  }, [vue.createVNode(TableHeader, {
20046
20064
  "ref": tableHeader,
20047
20065
  "border": props.border,
20066
+ "resizable": props.resizable,
20048
20067
  "sort": props.sort,
20049
20068
  "style": bodyWidthStyle.value
20050
20069
  }, null)]), states.columns.length > 0 && vue.createVNode(ScrollerWheel, {
@@ -20062,15 +20081,10 @@ const Table = /* @__PURE__ */ vue.defineComponent({
20062
20081
  "style": [bodyWidthStyle.value],
20063
20082
  "height-style": [bodyHeightStyle.value],
20064
20083
  "onScroll": handleScollY
20065
- }, null), props.data.length === 0 && vue.createVNode("div", {
20066
- "ref": emptyBlock,
20067
- "style": bodyWidthStyle.value,
20068
- "class": [{
20069
- 'is-absolute': !!props.height
20070
- }, 'vc-table__empty-wrapper']
20071
- }, [vue.createVNode("span", {
20072
- "class": "vc-table__empty-text"
20073
- }, [slots.empty ? slots.empty() : props.emptyText || '暂无数据'])]), slots.append && vue.createVNode("div", {
20084
+ }, null), props.data.length === 0 && !props.height && vue.createVNode("div", {
20085
+ "class": "vc-table__empty-placeholder",
20086
+ "style": [bodyWidthStyle.value]
20087
+ }, null), slots.append && vue.createVNode("div", {
20074
20088
  "ref": appendWrapper,
20075
20089
  "class": "vc-table__append-wrapper"
20076
20090
  }, [slots.append()])]
@@ -20094,6 +20108,7 @@ const Table = /* @__PURE__ */ vue.defineComponent({
20094
20108
  }, [vue.createVNode(TableHeader, {
20095
20109
  "ref": leftFixedTableHeader,
20096
20110
  "border": props.border,
20111
+ "resizable": props.resizable,
20097
20112
  "sort": props.sort,
20098
20113
  "style": bodyWidthStyle.value,
20099
20114
  "fixed": "left"
@@ -20133,6 +20148,7 @@ const Table = /* @__PURE__ */ vue.defineComponent({
20133
20148
  }, [vue.createVNode(TableHeader, {
20134
20149
  "ref": rightFixedTableHeader,
20135
20150
  "border": props.border,
20151
+ "resizable": props.resizable,
20136
20152
  "sort": props.sort,
20137
20153
  "style": bodyWidthStyle.value,
20138
20154
  "fixed": "right"
@@ -20160,7 +20176,14 @@ const Table = /* @__PURE__ */ vue.defineComponent({
20160
20176
  "get-summary": props.getSummary,
20161
20177
  "style": bodyWidthStyle.value,
20162
20178
  "fixed": "right"
20163
- }, null)]), [[vue.vShow, props.data && props.data.length > 0]])]), vue.withDirectives(vue.createVNode("div", {
20179
+ }, null)]), [[vue.vShow, props.data && props.data.length > 0]])]), props.data.length === 0 && vue.createVNode("div", {
20180
+ "ref": emptyBlock,
20181
+ "class": [{
20182
+ 'has-height': !!props.height
20183
+ }, 'vc-table__empty-wrapper']
20184
+ }, [slots.empty ? slots.empty() : vue.createVNode("span", {
20185
+ "class": "vc-table__empty-text"
20186
+ }, [props.emptyText || '暂无数据'])]), vue.withDirectives(vue.createVNode("div", {
20164
20187
  "ref": resizeProxy,
20165
20188
  "class": "vc-table__column-resize-proxy"
20166
20189
  }, null), [[vue.vShow, resizeProxyVisible.value]])]);
package/dist/index.d.ts CHANGED
@@ -8946,7 +8946,11 @@ type: ObjectConstructor;
8946
8946
  default: () => {};
8947
8947
  };
8948
8948
  delay: NumberConstructor;
8949
- }>, () => 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< {
8949
+ resizable: {
8950
+ type: BooleanConstructor;
8951
+ default: undefined;
8952
+ };
8953
+ }>, () => 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< {
8950
8954
  data: {
8951
8955
  type: ArrayConstructor;
8952
8956
  default: () => never[];
@@ -9018,6 +9022,10 @@ type: ObjectConstructor;
9018
9022
  default: () => {};
9019
9023
  };
9020
9024
  delay: NumberConstructor;
9025
+ resizable: {
9026
+ type: BooleanConstructor;
9027
+ default: undefined;
9028
+ };
9021
9029
  }>> & Readonly<{
9022
9030
  onSelect?: ((...args: any[]) => any) | undefined;
9023
9031
  "onSelect-all"?: ((...args: any[]) => any) | undefined;
@@ -9030,12 +9038,12 @@ onSelect?: ((...args: any[]) => any) | undefined;
9030
9038
  "onHeader-contextmenu"?: ((...args: any[]) => any) | undefined;
9031
9039
  "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
9032
9040
  "onSort-change"?: ((...args: any[]) => any) | undefined;
9041
+ "onHeader-dragend"?: ((...args: any[]) => any) | undefined;
9033
9042
  "onCell-click"?: ((...args: any[]) => any) | undefined;
9034
9043
  "onCell-dblclick"?: ((...args: any[]) => any) | undefined;
9035
9044
  "onRow-click"?: ((...args: any[]) => any) | undefined;
9036
9045
  "onRow-contextmenu"?: ((...args: any[]) => any) | undefined;
9037
9046
  "onRow-dblclick"?: ((...args: any[]) => any) | undefined;
9038
- "onHeader-dragend "?: ((...args: any[]) => any) | undefined;
9039
9047
  }>, {
9040
9048
  sort: Record<string, any>;
9041
9049
  data: unknown[];
@@ -9049,6 +9057,7 @@ defaultExpandAll: boolean;
9049
9057
  expandSelectable: boolean;
9050
9058
  showHeader: boolean;
9051
9059
  rows: number;
9060
+ resizable: boolean;
9052
9061
  stripe: boolean;
9053
9062
  divider: boolean;
9054
9063
  showSummary: boolean;
@@ -9131,8 +9140,8 @@ tooltip: (StringConstructor | FunctionConstructor)[];
9131
9140
  }>> & Readonly<{}>, {
9132
9141
  type: string;
9133
9142
  reserveSelection: boolean;
9134
- sortable: boolean;
9135
9143
  resizable: boolean;
9144
+ sortable: boolean;
9136
9145
  filterMultiple: boolean;
9137
9146
  }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
9138
9147
 
@@ -13847,7 +13856,11 @@ type: ObjectConstructor;
13847
13856
  default: () => {};
13848
13857
  };
13849
13858
  delay: NumberConstructor;
13850
- }>, () => 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< {
13859
+ resizable: {
13860
+ type: BooleanConstructor;
13861
+ default: undefined;
13862
+ };
13863
+ }>, () => 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< {
13851
13864
  data: {
13852
13865
  type: ArrayConstructor;
13853
13866
  default: () => never[];
@@ -13919,6 +13932,10 @@ type: ObjectConstructor;
13919
13932
  default: () => {};
13920
13933
  };
13921
13934
  delay: NumberConstructor;
13935
+ resizable: {
13936
+ type: BooleanConstructor;
13937
+ default: undefined;
13938
+ };
13922
13939
  }>> & Readonly<{
13923
13940
  onSelect?: ((...args: any[]) => any) | undefined;
13924
13941
  "onSelect-all"?: ((...args: any[]) => any) | undefined;
@@ -13931,12 +13948,12 @@ onSelect?: ((...args: any[]) => any) | undefined;
13931
13948
  "onHeader-contextmenu"?: ((...args: any[]) => any) | undefined;
13932
13949
  "onUpdate:sort"?: ((...args: any[]) => any) | undefined;
13933
13950
  "onSort-change"?: ((...args: any[]) => any) | undefined;
13951
+ "onHeader-dragend"?: ((...args: any[]) => any) | undefined;
13934
13952
  "onCell-click"?: ((...args: any[]) => any) | undefined;
13935
13953
  "onCell-dblclick"?: ((...args: any[]) => any) | undefined;
13936
13954
  "onRow-click"?: ((...args: any[]) => any) | undefined;
13937
13955
  "onRow-contextmenu"?: ((...args: any[]) => any) | undefined;
13938
13956
  "onRow-dblclick"?: ((...args: any[]) => any) | undefined;
13939
- "onHeader-dragend "?: ((...args: any[]) => any) | undefined;
13940
13957
  }>, {
13941
13958
  sort: Record<string, any>;
13942
13959
  data: unknown[];
@@ -13950,6 +13967,7 @@ defaultExpandAll: boolean;
13950
13967
  expandSelectable: boolean;
13951
13968
  showHeader: boolean;
13952
13969
  rows: number;
13970
+ resizable: boolean;
13953
13971
  stripe: boolean;
13954
13972
  divider: boolean;
13955
13973
  showSummary: boolean;
@@ -14032,8 +14050,8 @@ tooltip: (StringConstructor | FunctionConstructor)[];
14032
14050
  }>> & Readonly<{}>, {
14033
14051
  type: string;
14034
14052
  reserveSelection: boolean;
14035
- sortable: boolean;
14036
14053
  resizable: boolean;
14054
+ sortable: boolean;
14037
14055
  filterMultiple: boolean;
14038
14056
  }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
14039
14057
 
@@ -15201,10 +15201,11 @@ var VcComponents = (function (exports, vue) {
15201
15201
  "vc-scroller__wrapper"
15202
15202
  ];
15203
15203
  });
15204
- const refreshSize = () => {
15204
+ const refreshSize = async () => {
15205
15205
  if (!wrapper.value) return;
15206
15206
  wrapperW.value = wrapper.value.clientWidth;
15207
15207
  wrapperH.value = wrapper.value.clientHeight;
15208
+ await vue.nextTick();
15208
15209
  contentH.value = wrapper.value.scrollHeight;
15209
15210
  contentW.value = wrapper.value.scrollWidth;
15210
15211
  };
@@ -23466,11 +23467,10 @@ var VcComponents = (function (exports, vue) {
23466
23467
  } = owner.exposed;
23467
23468
  return !multiple.value ? true : current.value.slice(-1)[0] === props.value;
23468
23469
  });
23469
- const searchRegex = vue.computed(() => {
23470
- const v = owner.exposed.searchValue.value.trim().replace(/\s+/g, ' ').split(/\s|,/);
23471
- return new RegExp(`(${v.join('|')})`, 'i');
23472
- });
23473
23470
  const isActive = vue.computed(() => {
23471
+ const {
23472
+ searchRegex
23473
+ } = owner.exposed;
23474
23474
  return !!(searchRegex.value.test(formatterLabel.value) || !props.filterable);
23475
23475
  });
23476
23476
  const customOptions = vue.computed(() => {
@@ -23696,6 +23696,10 @@ var VcComponents = (function (exports, vue) {
23696
23696
  const v = currentValue.value.length - props.maxTags;
23697
23697
  return v < 0 ? 0 : v;
23698
23698
  });
23699
+ const searchRegex = vue.computed(() => {
23700
+ const v = searchValue.value.trim().replace(/\s+/g, ' ').split(/\s|,/);
23701
+ return new RegExp(escapeString(`(${v.join('|')})`), 'i');
23702
+ });
23699
23703
  const optionMap = vue.ref({});
23700
23704
  const options = vue.computed(() => {
23701
23705
  return Object.values(optionMap.value);
@@ -23792,7 +23796,7 @@ var VcComponents = (function (exports, vue) {
23792
23796
  add,
23793
23797
  remove,
23794
23798
  close,
23795
- searchValue,
23799
+ searchRegex,
23796
23800
  multiple,
23797
23801
  isActive,
23798
23802
  current: currentValue,
@@ -28181,6 +28185,10 @@ var VcComponents = (function (exports, vue) {
28181
28185
  sort: {
28182
28186
  type: Object,
28183
28187
  default: () => ({})
28188
+ },
28189
+ resizable: {
28190
+ type: Boolean,
28191
+ default: void 0
28184
28192
  }
28185
28193
  },
28186
28194
  setup(props) {
@@ -28189,6 +28197,9 @@ var VcComponents = (function (exports, vue) {
28189
28197
  const draggingColumn = vue.ref(null);
28190
28198
  const dragging = vue.ref(false);
28191
28199
  const dragState = vue.ref({});
28200
+ const allowDrag = vue.computed(() => {
28201
+ return typeof props.resizable === 'boolean' ? props.resizable : props.border;
28202
+ });
28192
28203
  const states = useStates({
28193
28204
  columns: 'columns',
28194
28205
  isAllSelected: 'isAllSelected',
@@ -28292,10 +28303,10 @@ var VcComponents = (function (exports, vue) {
28292
28303
  if (IS_SERVER$1) return;
28293
28304
  if (column.children && column.children.length > 0) return;
28294
28305
  /* istanbul ignore if */
28295
- if (draggingColumn.value && props.border) {
28306
+ if (draggingColumn.value && allowDrag.value) {
28296
28307
  dragging.value = true;
28297
28308
  table.resizeProxyVisible.value = true;
28298
- const tableEl = table.vnode.el;
28309
+ const tableEl = table.tableWrapper.value;
28299
28310
  const tableLeft = tableEl.getBoundingClientRect().left;
28300
28311
  const columnEl = instance.vnode.el.querySelector(`.vc-table__th.${column.id}`);
28301
28312
  const columnRect = columnEl.getBoundingClientRect();
@@ -28324,15 +28335,14 @@ var VcComponents = (function (exports, vue) {
28324
28335
  } = dragState.value;
28325
28336
  const finalLeft = parseInt(resizeProxy.style.left, 10);
28326
28337
  const columnWidth = finalLeft - startColumnLeft;
28327
- column.width = columnWidth;
28328
- column.realWidth = column.width;
28329
- table.$emit('header-dragend', column.width, startLeft - startColumnLeft, column, event);
28338
+ column.width = column.minWidth = column.realWidth = columnWidth;
28339
+ table.emit('header-dragend', column.width, startLeft - startColumnLeft, column);
28330
28340
  table.store.scheduleLayout();
28331
28341
  document.body.style.cursor = '';
28332
28342
  dragging.value = false;
28333
28343
  draggingColumn.value = null;
28334
28344
  dragState.value = {};
28335
- table.resizeProxyVisible = false;
28345
+ table.resizeProxyVisible.value = false;
28336
28346
  }
28337
28347
  document.removeEventListener('mousemove', handleMouseMove);
28338
28348
  document.removeEventListener('mouseup', handleMouseUp);
@@ -28353,7 +28363,7 @@ var VcComponents = (function (exports, vue) {
28353
28363
  target = target.parentNode;
28354
28364
  }
28355
28365
  if (!column || !column.resizable) return;
28356
- if (!dragging.value && props.border) {
28366
+ if (!dragging.value && allowDrag.value) {
28357
28367
  const rect = target.getBoundingClientRect();
28358
28368
  const bodyStyle = document.body.style;
28359
28369
  if (rect.width > 12 && rect.right - event.pageX < 8) {
@@ -28660,7 +28670,11 @@ var VcComponents = (function (exports, vue) {
28660
28670
  default: () => ({})
28661
28671
  },
28662
28672
  // 用于延迟渲染,用于计算高度
28663
- delay: Number
28673
+ delay: Number,
28674
+ resizable: {
28675
+ type: Boolean,
28676
+ default: void 0
28677
+ }
28664
28678
  };
28665
28679
 
28666
28680
  /** @jsxImportSource vue */
@@ -28669,7 +28683,7 @@ var VcComponents = (function (exports, vue) {
28669
28683
  const Table$1 = /* @__PURE__ */ vue.defineComponent({
28670
28684
  name: COMPONENT_NAME$j,
28671
28685
  props: props$d,
28672
- 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'],
28686
+ 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'],
28673
28687
  setup(props, {
28674
28688
  slots,
28675
28689
  expose,
@@ -28690,7 +28704,7 @@ var VcComponents = (function (exports, vue) {
28690
28704
  width: null,
28691
28705
  height: null
28692
28706
  });
28693
-
28707
+ const tableWrapper = vue.ref(null);
28694
28708
  // refs
28695
28709
  const hiddenColumns = vue.ref(null);
28696
28710
  const headerWrapper = vue.ref(null);
@@ -29048,6 +29062,7 @@ var VcComponents = (function (exports, vue) {
29048
29062
  toggleRowExpansion,
29049
29063
  clearSelection,
29050
29064
  scroller,
29065
+ tableWrapper,
29051
29066
  headerWrapper,
29052
29067
  appendWrapper,
29053
29068
  footerWrapper,
@@ -29058,12 +29073,15 @@ var VcComponents = (function (exports, vue) {
29058
29073
  renderExpanded,
29059
29074
  hiddenColumns,
29060
29075
  props,
29061
- emit
29076
+ emit,
29077
+ resizeProxy,
29078
+ resizeProxyVisible
29062
29079
  };
29063
29080
  expose(exposed);
29064
29081
  vue.provide('vc-table', exposed);
29065
29082
  return () => {
29066
29083
  return vue.createVNode("div", {
29084
+ "ref": tableWrapper,
29067
29085
  "class": [classes.value, tableId, 'vc-table'],
29068
29086
  "onMouseleave": handleMouseLeave
29069
29087
  }, [vue.createVNode("div", {
@@ -29075,6 +29093,7 @@ var VcComponents = (function (exports, vue) {
29075
29093
  }, [vue.createVNode(TableHeader, {
29076
29094
  "ref": tableHeader,
29077
29095
  "border": props.border,
29096
+ "resizable": props.resizable,
29078
29097
  "sort": props.sort,
29079
29098
  "style": bodyWidthStyle.value
29080
29099
  }, null)]), states.columns.length > 0 && vue.createVNode(ScrollerWheel, {
@@ -29092,15 +29111,10 @@ var VcComponents = (function (exports, vue) {
29092
29111
  "style": [bodyWidthStyle.value],
29093
29112
  "height-style": [bodyHeightStyle.value],
29094
29113
  "onScroll": handleScollY
29095
- }, null), props.data.length === 0 && vue.createVNode("div", {
29096
- "ref": emptyBlock,
29097
- "style": bodyWidthStyle.value,
29098
- "class": [{
29099
- 'is-absolute': !!props.height
29100
- }, 'vc-table__empty-wrapper']
29101
- }, [vue.createVNode("span", {
29102
- "class": "vc-table__empty-text"
29103
- }, [slots.empty ? slots.empty() : props.emptyText || '暂无数据'])]), slots.append && vue.createVNode("div", {
29114
+ }, null), props.data.length === 0 && !props.height && vue.createVNode("div", {
29115
+ "class": "vc-table__empty-placeholder",
29116
+ "style": [bodyWidthStyle.value]
29117
+ }, null), slots.append && vue.createVNode("div", {
29104
29118
  "ref": appendWrapper,
29105
29119
  "class": "vc-table__append-wrapper"
29106
29120
  }, [slots.append()])]
@@ -29124,6 +29138,7 @@ var VcComponents = (function (exports, vue) {
29124
29138
  }, [vue.createVNode(TableHeader, {
29125
29139
  "ref": leftFixedTableHeader,
29126
29140
  "border": props.border,
29141
+ "resizable": props.resizable,
29127
29142
  "sort": props.sort,
29128
29143
  "style": bodyWidthStyle.value,
29129
29144
  "fixed": "left"
@@ -29163,6 +29178,7 @@ var VcComponents = (function (exports, vue) {
29163
29178
  }, [vue.createVNode(TableHeader, {
29164
29179
  "ref": rightFixedTableHeader,
29165
29180
  "border": props.border,
29181
+ "resizable": props.resizable,
29166
29182
  "sort": props.sort,
29167
29183
  "style": bodyWidthStyle.value,
29168
29184
  "fixed": "right"
@@ -29190,7 +29206,14 @@ var VcComponents = (function (exports, vue) {
29190
29206
  "get-summary": props.getSummary,
29191
29207
  "style": bodyWidthStyle.value,
29192
29208
  "fixed": "right"
29193
- }, null)]), [[vue.vShow, props.data && props.data.length > 0]])]), vue.withDirectives(vue.createVNode("div", {
29209
+ }, null)]), [[vue.vShow, props.data && props.data.length > 0]])]), props.data.length === 0 && vue.createVNode("div", {
29210
+ "ref": emptyBlock,
29211
+ "class": [{
29212
+ 'has-height': !!props.height
29213
+ }, 'vc-table__empty-wrapper']
29214
+ }, [slots.empty ? slots.empty() : vue.createVNode("span", {
29215
+ "class": "vc-table__empty-text"
29216
+ }, [props.emptyText || '暂无数据'])]), vue.withDirectives(vue.createVNode("div", {
29194
29217
  "ref": resizeProxy,
29195
29218
  "class": "vc-table__column-resize-proxy"
29196
29219
  }, null), [[vue.vShow, resizeProxyVisible.value]])]);