bkui-vue 0.0.3-beta.1 → 0.0.3-beta.3

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.
Files changed (57) hide show
  1. package/dist/index.cjs.js +166 -140
  2. package/dist/index.esm.js +20024 -16244
  3. package/dist/index.umd.js +166 -140
  4. package/dist/locale/en.esm.js +1 -1
  5. package/dist/locale/en.esm.js.map +1 -1
  6. package/dist/locale/en.umd.js +1 -1
  7. package/dist/locale/en.umd.js.map +1 -1
  8. package/dist/locale/zh-cn.esm.js +1 -1
  9. package/dist/locale/zh-cn.esm.js.map +1 -1
  10. package/dist/locale/zh-cn.umd.js +1 -1
  11. package/dist/locale/zh-cn.umd.js.map +1 -1
  12. package/dist/style.css +1 -1
  13. package/dist/style.variable.css +1 -1
  14. package/lib/collapse/index.js +9 -9
  15. package/lib/config-provider/config-provider.d.ts +3 -0
  16. package/lib/config-provider/index.d.ts +4 -0
  17. package/lib/config-provider/token.d.ts +1 -0
  18. package/lib/dialog/dialog.d.ts +2 -2
  19. package/lib/dialog/index.d.ts +4 -4
  20. package/lib/dialog/props.d.ts +1 -1
  21. package/lib/icon/grag-fill.d.ts +4 -0
  22. package/lib/icon/grag-fill.js +191 -0
  23. package/lib/icon/index.d.ts +1 -0
  24. package/lib/icon/index.js +21 -1
  25. package/lib/info-box/index.d.ts +0 -1
  26. package/lib/info-box/index.js +17270 -43
  27. package/lib/info-box/info-box.d.ts +3 -4
  28. package/lib/locale/index.js +2 -0
  29. package/lib/locale/lang/en.d.ts +1 -0
  30. package/lib/modal/index.d.ts +5 -5
  31. package/lib/modal/index.js +1 -1
  32. package/lib/modal/modal.d.ts +2 -2
  33. package/lib/modal/props.mixin.d.ts +1 -1
  34. package/lib/preset.d.ts +2 -0
  35. package/lib/shared/index.js +13 -0
  36. package/lib/shared/vue-types.d.ts +1 -0
  37. package/lib/sideslider/index.d.ts +4 -4
  38. package/lib/sideslider/sideslider.d.ts +2 -2
  39. package/lib/tab/index.js +1 -1
  40. package/lib/table/events.d.ts +10 -1
  41. package/lib/table/index.d.ts +39 -0
  42. package/lib/table/index.js +168 -23
  43. package/lib/table/plugins/use-draggable.d.ts +17 -0
  44. package/lib/table/props.d.ts +13 -0
  45. package/lib/table/table.css +24 -0
  46. package/lib/table/table.d.ts +15 -0
  47. package/lib/table/table.less +24 -0
  48. package/lib/table/table.variable.css +24 -0
  49. package/lib/table/use-attributes.d.ts +1 -0
  50. package/lib/table-column/index.js +5 -1
  51. package/lib/tag-input/index.js +17287 -15
  52. package/lib/tag-input/tag-render.d.ts +7 -0
  53. package/lib/tree/index.d.ts +6 -24
  54. package/lib/tree/index.js +1 -1
  55. package/lib/tree/props.d.ts +1 -5
  56. package/lib/tree/tree.d.ts +2 -13
  57. package/package.json +1 -1
@@ -614,7 +614,11 @@ var tableProps = {
614
614
  /**
615
615
  * 是否采用flex布局表格
616
616
  */
617
- isFlex: external_shared_namespaceObject.PropTypes.bool.def(true)
617
+ isFlex: external_shared_namespaceObject.PropTypes.bool.def(true),
618
+ /**
619
+ * 是否支持行拖拽排序
620
+ */
621
+ rowDraggable: external_shared_namespaceObject.PropTypes.oneOfType([external_shared_namespaceObject.PropTypes.func, external_shared_namespaceObject.PropTypes.bool, external_shared_namespaceObject.PropTypes.object]).def(false)
618
622
  };
619
623
  ;// CONCATENATED MODULE: ../../packages/table/src/components/table-column.tsx
620
624
 
@@ -916,6 +920,7 @@ var EMIT_EVENTS;
916
920
  EMIT_EVENTS["CELL_DBL_CLICK"] = "cellDblclick";
917
921
  EMIT_EVENTS["NATIVE_CLICK"] = "click";
918
922
  EMIT_EVENTS["NATIVE_DBL_CLICK"] = "dblclick";
923
+ EMIT_EVENTS["DRAG_END"] = "dragend";
919
924
  })(EMIT_EVENTS || (EMIT_EVENTS = {}));
920
925
  var EVENT_COL_PICK = function EVENT_COL_PICK(_cols) {
921
926
  return true;
@@ -956,7 +961,10 @@ var EVENT_CELL_FN = function EVENT_CELL_FN(_args) {
956
961
  var EVENT_SCROLL_FN = function EVENT_SCROLL_FN(_args) {
957
962
  return true;
958
963
  };
959
- var EMIT_EVENT_TYPES = (_EMIT_EVENT_TYPES = {}, defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.COLUMN_PICK, EVENT_COL_PICK), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.COLUMN_FILTER, EVENT_COL_FILTER), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.COLUMN_SORT, EVENT_COL_SORT), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.COLUMN_FILTER_SAVE, EVENT_COL_FILTER_SAVE), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.ROW_CLICK, EVENT_MOUSE_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.ROW_DBL_CLICK, EVENT_MOUSE_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.ROW_EXPAND_CLICK, EVENT_EXPAND_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.ROW_SELECT, EVENT_ROW_SELECT_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.ROW_SELECT_ALL, EVENT_ROW_SELECT_ALL_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.ROW_SELECT_CHANGE, EVENT_ROW_SELECT_CHANGE_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.PAGE_LIMIT_CHANGE, EVENT_PAGE_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.PAGE_VALUE_CHANGE, EVENT_PAGE_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.SETTING_CHANGE, EVENT_SETTING_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.SCROLL_BOTTOM, EVENT_SCROLL_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.CELL_CLICK, EVENT_CELL_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.CELL_DBL_CLICK, EVENT_CELL_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.ROW_MOUSE_ENTER, EVENT_MOUSE_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.ROW_MOUSE_LEAVE, EVENT_MOUSE_FN), _EMIT_EVENT_TYPES);
964
+ var EVENT_DRAGEND_FN = function EVENT_DRAGEND_FN(_args) {
965
+ return true;
966
+ };
967
+ var EMIT_EVENT_TYPES = (_EMIT_EVENT_TYPES = {}, defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.COLUMN_PICK, EVENT_COL_PICK), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.COLUMN_FILTER, EVENT_COL_FILTER), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.COLUMN_SORT, EVENT_COL_SORT), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.COLUMN_FILTER_SAVE, EVENT_COL_FILTER_SAVE), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.ROW_CLICK, EVENT_MOUSE_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.ROW_DBL_CLICK, EVENT_MOUSE_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.ROW_EXPAND_CLICK, EVENT_EXPAND_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.ROW_SELECT, EVENT_ROW_SELECT_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.ROW_SELECT_ALL, EVENT_ROW_SELECT_ALL_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.ROW_SELECT_CHANGE, EVENT_ROW_SELECT_CHANGE_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.PAGE_LIMIT_CHANGE, EVENT_PAGE_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.PAGE_VALUE_CHANGE, EVENT_PAGE_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.SETTING_CHANGE, EVENT_SETTING_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.SCROLL_BOTTOM, EVENT_SCROLL_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.CELL_CLICK, EVENT_CELL_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.CELL_DBL_CLICK, EVENT_CELL_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.ROW_MOUSE_ENTER, EVENT_MOUSE_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.ROW_MOUSE_LEAVE, EVENT_MOUSE_FN), defineProperty_defineProperty(_EMIT_EVENT_TYPES, EMIT_EVENTS.DRAG_END, EVENT_DRAGEND_FN), _EMIT_EVENT_TYPES);
960
968
  var CELL_EVENT_TYPES = (_CELL_EVENT_TYPES = {}, defineProperty_defineProperty(_CELL_EVENT_TYPES, EMIT_EVENTS.NATIVE_CLICK, EVENT_MOUSE_FN), defineProperty_defineProperty(_CELL_EVENT_TYPES, EMIT_EVENTS.NATIVE_DBL_CLICK, EVENT_MOUSE_FN), _CELL_EVENT_TYPES);
961
969
  ;// CONCATENATED MODULE: external "lodash/isElement"
962
970
  var isElement_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
@@ -3193,7 +3201,9 @@ function use_attributes_objectSpread(target) { for (var i = 1; i < arguments.len
3193
3201
 
3194
3202
 
3195
3203
 
3204
+
3196
3205
  /* harmony default export */ const use_attributes = (function (props) {
3206
+ var t = (0,external_config_provider_namespaceObject.useLocale)('table');
3197
3207
  var getDefaultSettings = function getDefaultSettings() {
3198
3208
  var _ref, _SETTING_SIZE$size;
3199
3209
  var _props$settings = props.settings,
@@ -3265,6 +3275,17 @@ function use_attributes_objectSpread(target) { for (var i = 1; i < arguments.len
3265
3275
  }
3266
3276
  return minWidth;
3267
3277
  };
3278
+ var resolveDraggableColumn = function resolveDraggableColumn() {
3279
+ if (props.rowDraggable) {
3280
+ var _props$rowDraggable$w, _props$rowDraggable, _props$rowDraggable$l, _props$rowDraggable2;
3281
+ formatData.columns.unshift({
3282
+ minWidth: 50,
3283
+ width: (_props$rowDraggable$w = (_props$rowDraggable = props.rowDraggable) === null || _props$rowDraggable === void 0 ? void 0 : _props$rowDraggable.width) !== null && _props$rowDraggable$w !== void 0 ? _props$rowDraggable$w : 60,
3284
+ label: (_props$rowDraggable$l = (_props$rowDraggable2 = props.rowDraggable) === null || _props$rowDraggable2 === void 0 ? void 0 : _props$rowDraggable2.label) !== null && _props$rowDraggable$l !== void 0 ? _props$rowDraggable$l : t.value.sort,
3285
+ type: 'drag'
3286
+ });
3287
+ }
3288
+ };
3268
3289
  /**
3269
3290
  * Format columns
3270
3291
  * @param columns
@@ -3273,9 +3294,10 @@ function use_attributes_objectSpread(target) { for (var i = 1; i < arguments.len
3273
3294
  var _formatData$columns;
3274
3295
  formatData.columns.length = 0;
3275
3296
  (_formatData$columns = formatData.columns).push.apply(_formatData$columns, _toConsumableArray(columns));
3297
+ resolveDraggableColumn();
3276
3298
  var skipColNum = 0;
3277
3299
  var needColSpan = neepColspanOrRowspan(['colspan']);
3278
- (columns || []).forEach(function (col, index) {
3300
+ (formatData.columns || []).forEach(function (col, index) {
3279
3301
  var _Object$assign;
3280
3302
  var _ref4 = needColSpan ? getColumnSpanConfig(col, index, skipColNum) : {
3281
3303
  skipCol: false,
@@ -3788,6 +3810,12 @@ function use_attributes_objectSpread(target) { for (var i = 1; i < arguments.len
3788
3810
  });
3789
3811
  resolvePageDataBySortList(multiSortColumns);
3790
3812
  };
3813
+ var changePageRowIndex = function changePageRowIndex(sourceIndex, targetIndex) {
3814
+ var copy = pageData[sourceIndex];
3815
+ pageData.splice(targetIndex, 0, copy);
3816
+ var resolvedIndex = sourceIndex < targetIndex ? sourceIndex : sourceIndex + 1;
3817
+ pageData.splice(resolvedIndex, 1);
3818
+ };
3791
3819
  return {
3792
3820
  formatColumns: formatColumns,
3793
3821
  formatDataSchema: formatDataSchema,
@@ -3821,6 +3849,7 @@ function use_attributes_objectSpread(target) { for (var i = 1; i < arguments.len
3821
3849
  isCheckedAll: isCheckedAll,
3822
3850
  hasCheckedRow: hasCheckedRow,
3823
3851
  updateSettings: updateSettings,
3852
+ changePageRowIndex: changePageRowIndex,
3824
3853
  pageData: pageData,
3825
3854
  localPagination: localPagination,
3826
3855
  formatData: formatData
@@ -4235,7 +4264,7 @@ const external_checkbox_namespaceObject = external_checkbox_x({ ["BkCheckboxGrou
4235
4264
  ;// CONCATENATED MODULE: external "../icon"
4236
4265
  var external_icon_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
4237
4266
  var external_icon_y = x => () => x
4238
- const external_icon_namespaceObject = external_icon_x({ ["DownShape"]: () => __WEBPACK_EXTERNAL_MODULE__icon_85385c3e__.DownShape, ["Funnel"]: () => __WEBPACK_EXTERNAL_MODULE__icon_85385c3e__.Funnel, ["RightShape"]: () => __WEBPACK_EXTERNAL_MODULE__icon_85385c3e__.RightShape });
4267
+ const external_icon_namespaceObject = external_icon_x({ ["DownShape"]: () => __WEBPACK_EXTERNAL_MODULE__icon_85385c3e__.DownShape, ["Funnel"]: () => __WEBPACK_EXTERNAL_MODULE__icon_85385c3e__.Funnel, ["GragFill"]: () => __WEBPACK_EXTERNAL_MODULE__icon_85385c3e__.GragFill, ["RightShape"]: () => __WEBPACK_EXTERNAL_MODULE__icon_85385c3e__.RightShape });
4239
4268
  ;// CONCATENATED MODULE: external "../pagination"
4240
4269
  var external_pagination_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
4241
4270
  var external_pagination_y = x => () => x
@@ -4885,6 +4914,115 @@ function _isSlot(s) {
4885
4914
  };
4886
4915
  }
4887
4916
  }));
4917
+ ;// CONCATENATED MODULE: ../../packages/table/src/plugins/use-draggable.tsx
4918
+ /*
4919
+ * Tencent is pleased to support the open source community by making
4920
+ * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
4921
+ *
4922
+ * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.
4923
+ *
4924
+ * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) is licensed under the MIT License.
4925
+ *
4926
+ * License for 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition):
4927
+ *
4928
+ * ---------------------------------------------------
4929
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
4930
+ * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
4931
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
4932
+ * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4933
+ *
4934
+ * The above copyright notice and this permission notice shall be included in all copies or substantial portions of
4935
+ * the Software.
4936
+ *
4937
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
4938
+ * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
4939
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
4940
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
4941
+ * IN THE SOFTWARE.
4942
+ */
4943
+
4944
+ /* harmony default export */ const use_draggable = (function (props, resp, ctx) {
4945
+ if (!props.rowDraggable) {
4946
+ return {};
4947
+ }
4948
+ var beforeEventFire = function beforeEventFire(fn) {
4949
+ if (props.rowDraggable) {
4950
+ fn === null || fn === void 0 ? void 0 : fn();
4951
+ }
4952
+ };
4953
+ var getTargetRow = function getTargetRow(event) {
4954
+ return event.target.closest('tr');
4955
+ };
4956
+ var setTargetRowPlacement = function setTargetRowPlacement(target, event) {
4957
+ var y = event.y;
4958
+ var _target$getBoundingCl = target.getBoundingClientRect(),
4959
+ top = _target$getBoundingCl.top,
4960
+ bottom = _target$getBoundingCl.bottom;
4961
+ var position = y - top > bottom - y ? '--bottom' : '--top';
4962
+ removeDragClass(target);
4963
+ target.classList.add(position);
4964
+ };
4965
+ var removeDragClass = function removeDragClass(target) {
4966
+ var classList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['--bottom', '--top'];
4967
+ classList.forEach(function (pos) {
4968
+ return target.classList.remove(pos);
4969
+ });
4970
+ };
4971
+ var onDragstart = function onDragstart(event) {
4972
+ beforeEventFire(function () {
4973
+ var target = getTargetRow(event);
4974
+ target.classList.add('--drag-start');
4975
+ event.dataTransfer.setData('text/plain', null);
4976
+ event.dataTransfer.dropEffect = 'copy';
4977
+ var rowIndex = event.target.dataset.rowIndex;
4978
+ event.dataTransfer.setData('data-row-index', rowIndex);
4979
+ });
4980
+ };
4981
+ var onDragenter = function onDragenter(event) {
4982
+ beforeEventFire(function () {
4983
+ event.dataTransfer.dropEffect = 'move';
4984
+ var target = getTargetRow(event);
4985
+ target.classList.add('--drag-enter');
4986
+ setTargetRowPlacement(target, event);
4987
+ });
4988
+ };
4989
+ var onDragleave = function onDragleave(event) {
4990
+ beforeEventFire(function () {
4991
+ var target = getTargetRow(event);
4992
+ removeDragClass(target, ['--drag-enter', '--bottom', '--top']);
4993
+ });
4994
+ };
4995
+ var onDragover = function onDragover(event) {
4996
+ event.preventDefault();
4997
+ event.dataTransfer.dropEffect = 'move';
4998
+ var target = getTargetRow(event);
4999
+ setTargetRowPlacement(target, event);
5000
+ };
5001
+ var onDrop = function onDrop(event) {
5002
+ event.preventDefault();
5003
+ event.stopPropagation();
5004
+ var target = getTargetRow(event);
5005
+ var rowIndex = target.dataset.rowIndex;
5006
+ var targetIndex = Number(rowIndex);
5007
+ var sourceIndex = event.dataTransfer.getData('data-row-index');
5008
+ if (target.classList.contains('--bottom')) {
5009
+ targetIndex = targetIndex + 1;
5010
+ }
5011
+ resp.changePageRowIndex(Number(sourceIndex), targetIndex);
5012
+ removeDragClass(target, ['--drag-enter', '--bottom', '--top']);
5013
+ ctx.emit(EMIT_EVENTS.DRAG_END, {
5014
+ sourceEvent: event,
5015
+ data: resp.pageData
5016
+ });
5017
+ };
5018
+ return {
5019
+ onDragenter: onDragenter,
5020
+ onDragleave: onDragleave,
5021
+ onDragstart: onDragstart,
5022
+ onDragover: onDragover,
5023
+ onDrop: onDrop
5024
+ };
5025
+ });
4888
5026
  ;// CONCATENATED MODULE: ../../packages/table/src/plugins/head-filter.tsx
4889
5027
 
4890
5028
 
@@ -5645,6 +5783,7 @@ function use_render_objectSpread(target) { for (var i = 1; i < arguments.length;
5645
5783
 
5646
5784
 
5647
5785
 
5786
+
5648
5787
  function use_render_isSlot(s) {
5649
5788
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !(0,external_vue_namespaceObject.isVNode)(s);
5650
5789
  }
@@ -5788,20 +5927,6 @@ function use_render_isSlot(s) {
5788
5927
  };
5789
5928
  var _useFixedColumn = use_fixed_column(props, tableResp, head),
5790
5929
  resolveFixedColumnStyle = _useFixedColumn.resolveFixedColumnStyle;
5791
- // const getScrollFix = () => {
5792
- // if (styleRef.value.hasScrollY) {
5793
- // const fixStyle = {
5794
- // width: `${SCROLLY_WIDTH + 2}px`,
5795
- // right: '-1px',
5796
- // };
5797
- // return (
5798
- // <th
5799
- // style={fixStyle}
5800
- // class='column_fixed'
5801
- // ></th>
5802
- // );
5803
- // }
5804
- // };
5805
5930
  return (0,external_vue_namespaceObject.createVNode)(external_vue_namespaceObject.Fragment, null, [(0,external_vue_namespaceObject.createVNode)("thead", {
5806
5931
  "style": rowStyle
5807
5932
  }, [(0,external_vue_namespaceObject.createVNode)(table_row, null, {
@@ -5871,6 +5996,7 @@ function use_render_isSlot(s) {
5871
5996
  skipRow: skipRow
5872
5997
  };
5873
5998
  };
5999
+ var dragEvents = use_draggable(props, tableResp, context);
5874
6000
  /**
5875
6001
  * 渲染Table Body
5876
6002
  * @returns
@@ -5894,12 +6020,16 @@ function use_render_isSlot(s) {
5894
6020
  '--row-height': "".concat(getRowHeight(row, rowIndex), "px")
5895
6021
  }]);
5896
6022
  var rowClass = [].concat(_toConsumableArray(formatPropAsArray(props.rowClass, [row, rowIndex])), ["hover-".concat(props.rowHover), rowIndex % 2 === 1 && props.stripe ? 'stripe-row' : '']);
5897
- return [(0,external_vue_namespaceObject.createVNode)(table_row, null, {
6023
+ var rowId = tableResp.getRowAttribute(row, TABLE_ROW_ATTRIBUTE.ROW_UID);
6024
+ return [(0,external_vue_namespaceObject.createVNode)(table_row, {
6025
+ "key": rowId
6026
+ }, {
5898
6027
  "default": function _default() {
5899
- return [(0,external_vue_namespaceObject.createVNode)("tr", {
6028
+ return [(0,external_vue_namespaceObject.createVNode)("tr", (0,external_vue_namespaceObject.mergeProps)({
5900
6029
  "style": rowStyle,
5901
6030
  "class": rowClass,
5902
6031
  "key": getRowKeyNull(row, props, rowIndex),
6032
+ "data-row-index": rowIndex,
5903
6033
  "onClick": function onClick(e) {
5904
6034
  return handleRowClick(e, row, rowIndex, rows);
5905
6035
  },
@@ -5911,8 +6041,9 @@ function use_render_isSlot(s) {
5911
6041
  },
5912
6042
  "onMouseleave": function onMouseleave(e) {
5913
6043
  return handleRowLeave(e, row, rowIndex, rows);
5914
- }
5915
- }, [filterColGroups.value.map(function (column, index) {
6044
+ },
6045
+ "draggable": !!props.rowDraggable
6046
+ }, dragEvents), [filterColGroups.value.map(function (column, index) {
5916
6047
  var cellStyle = [resolveFixedColumnStyle(column)].concat(_toConsumableArray(formatPropAsArray(props.cellStyle, [column, index, row, rowIndex])));
5917
6048
  var _resolveCellSpan = resolveCellSpan(column, index, row, rowIndex),
5918
6049
  colspan = _resolveCellSpan.colspan,
@@ -6125,6 +6256,19 @@ function use_render_isSlot(s) {
6125
6256
  }
6126
6257
  }, [renderExpandSlot()]);
6127
6258
  };
6259
+ var renderDraggableCell = function renderDraggableCell(row, column, index, rows) {
6260
+ var _props$rowDraggable$r, _props$rowDraggable, _props$rowDraggable$f, _props$rowDraggable2, _props$rowDraggable$i, _props$rowDraggable3;
6261
+ var renderFn = (_props$rowDraggable$r = (_props$rowDraggable = props.rowDraggable) === null || _props$rowDraggable === void 0 ? void 0 : _props$rowDraggable.render) !== null && _props$rowDraggable$r !== void 0 ? _props$rowDraggable$r : props.rowDraggable;
6262
+ if (typeof renderFn === 'function') {
6263
+ return renderFn(row, column, index, rows);
6264
+ }
6265
+ var fontSize = (_props$rowDraggable$f = (_props$rowDraggable2 = props.rowDraggable) === null || _props$rowDraggable2 === void 0 ? void 0 : _props$rowDraggable2.fontSize) !== null && _props$rowDraggable$f !== void 0 ? _props$rowDraggable$f : '14px';
6266
+ var fontIcon = (_props$rowDraggable$i = (_props$rowDraggable3 = props.rowDraggable) === null || _props$rowDraggable3 === void 0 ? void 0 : _props$rowDraggable3.icon) !== null && _props$rowDraggable$i !== void 0 ? _props$rowDraggable$i : (0,external_vue_namespaceObject.createVNode)(external_icon_namespaceObject.GragFill, {
6267
+ "class": "drag-cell",
6268
+ "style": "'--font-size: ".concat(fontSize, ";'")
6269
+ }, null);
6270
+ return fontIcon;
6271
+ };
6128
6272
  /**
6129
6273
  * 渲染表格Cell内容
6130
6274
  * @param row 当前行
@@ -6169,7 +6313,8 @@ function use_render_isSlot(s) {
6169
6313
  },
6170
6314
  selection: function selection(row, _column, index, _rows) {
6171
6315
  return renderCheckboxColumn(row, index);
6172
- }
6316
+ },
6317
+ drag: renderDraggableCell
6173
6318
  };
6174
6319
  return (_renderFn$column$type = (_renderFn$column$type2 = renderFn[column.type]) === null || _renderFn$column$type2 === void 0 ? void 0 : _renderFn$column$type2.call(renderFn, row, column, index, rows)) !== null && _renderFn$column$type !== void 0 ? _renderFn$column$type : defaultFn();
6175
6320
  };
@@ -0,0 +1,17 @@
1
+ import { SetupContext } from 'vue';
2
+ import { TablePropTypes } from '../props';
3
+ import { ITableResponse } from '../use-attributes';
4
+ declare const _default: (props: TablePropTypes, resp: ITableResponse, ctx: SetupContext<any>) => {
5
+ onDragenter?: undefined;
6
+ onDragleave?: undefined;
7
+ onDragstart?: undefined;
8
+ onDragover?: undefined;
9
+ onDrop?: undefined;
10
+ } | {
11
+ onDragenter: (event: DragEvent) => void;
12
+ onDragleave: (event: DragEvent) => void;
13
+ onDragstart: (event: DragEvent) => void;
14
+ onDragover: (event: DragEvent) => void;
15
+ onDrop: (event: DragEvent) => void;
16
+ };
17
+ export default _default;
@@ -147,6 +147,13 @@ export type IColumnExplain = {
147
147
  content: LabelFunctionString;
148
148
  head: LabelFunctionString | boolean;
149
149
  } | boolean;
150
+ export type IDraggableRowOption = {
151
+ label: (() => string) | string;
152
+ render?: () => HTMLElement | JSX.Element;
153
+ fontSize?: number;
154
+ icon?: JSX.Element;
155
+ width?: number;
156
+ };
150
157
  export type Column = {
151
158
  label: LabelFunctionString;
152
159
  field?: LabelFunctionString;
@@ -535,5 +542,11 @@ export declare const tableProps: {
535
542
  } & {
536
543
  default: boolean;
537
544
  };
545
+ /**
546
+ * 是否支持行拖拽排序
547
+ */
548
+ rowDraggable: import("vue-types").VueTypeDef<any> & {
549
+ default: any;
550
+ };
538
551
  };
539
552
  export {};
@@ -1109,6 +1109,13 @@
1109
1109
  text-overflow: ellipsis;
1110
1110
  white-space: nowrap;
1111
1111
  }
1112
+ .bk-table .bk-table-head table th .cell .drag-cell,
1113
+ .bk-table .bk-table-body table th .cell .drag-cell,
1114
+ .bk-table .bk-table-head table td .cell .drag-cell,
1115
+ .bk-table .bk-table-body table td .cell .drag-cell {
1116
+ font-size: 14px;
1117
+ height: 100%;
1118
+ }
1112
1119
  .bk-table .bk-table-head table th .cell.has-sort,
1113
1120
  .bk-table .bk-table-body table th .cell.has-sort,
1114
1121
  .bk-table .bk-table-head table td .cell.has-sort,
@@ -1267,10 +1274,27 @@
1267
1274
  box-sizing: border-box;
1268
1275
  align-items: center;
1269
1276
  }
1277
+ .bk-table .bk-table-head table tbody tr td .cell.drag,
1278
+ .bk-table .bk-table-body table tbody tr td .cell.drag {
1279
+ cursor: move;
1280
+ text-align: center;
1281
+ }
1270
1282
  .bk-table .bk-table-head table tbody tr:hover.hover-highlight td:not(.empty-cell),
1271
1283
  .bk-table .bk-table-body table tbody tr:hover.hover-highlight td:not(.empty-cell) {
1272
1284
  background: #f5f7fa;
1273
1285
  }
1286
+ .bk-table .bk-table-head table tbody tr.--drag-enter.--bottom,
1287
+ .bk-table .bk-table-body table tbody tr.--drag-enter.--bottom {
1288
+ border-bottom: solid 1px #3785ff;
1289
+ }
1290
+ .bk-table .bk-table-head table tbody tr.--drag-enter.--top,
1291
+ .bk-table .bk-table-body table tbody tr.--drag-enter.--top {
1292
+ border-top: solid 1px #3785ff;
1293
+ }
1294
+ .bk-table .bk-table-head table tbody tr.--drag-start,
1295
+ .bk-table .bk-table-body table tbody tr.--drag-start {
1296
+ background: #fff;
1297
+ }
1274
1298
  .bk-table .bk-table-head {
1275
1299
  position: relative;
1276
1300
  z-index: 2;
@@ -151,6 +151,9 @@ declare const _default: import("vue").DefineComponent<{
151
151
  } & {
152
152
  default: boolean;
153
153
  };
154
+ rowDraggable: import("vue-types").VueTypeDef<any> & {
155
+ default: any;
156
+ };
154
157
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
155
158
  columnPick: (_cols: import("./props").IColumnActive[]) => boolean;
156
159
  columnFilter: (_args: {
@@ -230,6 +233,10 @@ declare const _default: import("vue").DefineComponent<{
230
233
  }) => boolean;
231
234
  rowMouseEnter: (_e: MouseEvent, _row: any, _index: number, _rows: any[], _this: any) => boolean;
232
235
  rowMouseLeave: (_e: MouseEvent, _row: any, _index: number, _rows: any[], _this: any) => boolean;
236
+ dragend: (_args: {
237
+ sourceEvent: DragEvent;
238
+ data: any[];
239
+ }) => boolean;
233
240
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
234
241
  data: import("vue-types").VueTypeDef<any[]> & {
235
242
  default: () => any[];
@@ -382,7 +389,14 @@ declare const _default: import("vue").DefineComponent<{
382
389
  } & {
383
390
  default: boolean;
384
391
  };
392
+ rowDraggable: import("vue-types").VueTypeDef<any> & {
393
+ default: any;
394
+ };
385
395
  }>> & {
396
+ onDragend?: (_args: {
397
+ sourceEvent: DragEvent;
398
+ data: any[];
399
+ }) => any;
386
400
  onSelect?: (_args: {
387
401
  row: any;
388
402
  index: Number;
@@ -502,5 +516,6 @@ declare const _default: import("vue").DefineComponent<{
502
516
  observerResize: boolean;
503
517
  prependStyle: import("vue").CSSProperties;
504
518
  isFlex: boolean;
519
+ rowDraggable: any;
505
520
  }, {}>;
506
521
  export default _default;
@@ -145,6 +145,11 @@
145
145
  text-overflow: ellipsis;
146
146
  white-space: nowrap;
147
147
 
148
+ .drag-cell {
149
+ font-size: 14px;
150
+ height: 100%;
151
+ }
152
+
148
153
  &.has-sort {
149
154
  cursor: pointer;
150
155
  }
@@ -288,6 +293,11 @@
288
293
  line-height: calc(var(--row-height) - 1px);
289
294
  box-sizing: border-box;
290
295
  align-items: center;
296
+
297
+ &.drag {
298
+ cursor: move;
299
+ text-align: center;
300
+ }
291
301
  }
292
302
  }
293
303
 
@@ -300,6 +310,20 @@
300
310
  }
301
311
  }
302
312
  }
313
+
314
+ &.--drag-enter {
315
+ &.--bottom {
316
+ border-bottom: solid 1px #3785ff;
317
+ }
318
+
319
+ &.--top {
320
+ border-top: solid 1px #3785ff;
321
+ }
322
+ }
323
+
324
+ &.--drag-start {
325
+ background: #fff;
326
+ }
303
327
  }
304
328
  }
305
329
  }
@@ -1235,6 +1235,13 @@
1235
1235
  text-overflow: ellipsis;
1236
1236
  white-space: nowrap;
1237
1237
  }
1238
+ .bk-table .bk-table-head table th .cell .drag-cell,
1239
+ .bk-table .bk-table-body table th .cell .drag-cell,
1240
+ .bk-table .bk-table-head table td .cell .drag-cell,
1241
+ .bk-table .bk-table-body table td .cell .drag-cell {
1242
+ font-size: 14px;
1243
+ height: 100%;
1244
+ }
1238
1245
  .bk-table .bk-table-head table th .cell.has-sort,
1239
1246
  .bk-table .bk-table-body table th .cell.has-sort,
1240
1247
  .bk-table .bk-table-head table td .cell.has-sort,
@@ -1393,10 +1400,27 @@
1393
1400
  box-sizing: border-box;
1394
1401
  align-items: center;
1395
1402
  }
1403
+ .bk-table .bk-table-head table tbody tr td .cell.drag,
1404
+ .bk-table .bk-table-body table tbody tr td .cell.drag {
1405
+ cursor: move;
1406
+ text-align: center;
1407
+ }
1396
1408
  .bk-table .bk-table-head table tbody tr:hover.hover-highlight td:not(.empty-cell),
1397
1409
  .bk-table .bk-table-body table tbody tr:hover.hover-highlight td:not(.empty-cell) {
1398
1410
  background: #f5f7fa;
1399
1411
  }
1412
+ .bk-table .bk-table-head table tbody tr.--drag-enter.--bottom,
1413
+ .bk-table .bk-table-body table tbody tr.--drag-enter.--bottom {
1414
+ border-bottom: solid 1px #3785ff;
1415
+ }
1416
+ .bk-table .bk-table-head table tbody tr.--drag-enter.--top,
1417
+ .bk-table .bk-table-body table tbody tr.--drag-enter.--top {
1418
+ border-top: solid 1px #3785ff;
1419
+ }
1420
+ .bk-table .bk-table-head table tbody tr.--drag-start,
1421
+ .bk-table .bk-table-body table tbody tr.--drag-start {
1422
+ background: #fff;
1423
+ }
1400
1424
  .bk-table .bk-table-head {
1401
1425
  position: relative;
1402
1426
  z-index: 2;
@@ -51,6 +51,7 @@ export type ITableResponse = {
51
51
  setRowSelectionAll: (val: boolean) => void;
52
52
  setRowIndeterminate: () => void;
53
53
  updateSettings: (settings?: Settings, rowHeight?: number) => void;
54
+ changePageRowIndex: (sourceIndex: number, targetIndex: number) => void;
54
55
  pageData: any[];
55
56
  localPagination: any;
56
57
  formatData: ITableFormatData;
@@ -585,7 +585,11 @@ var tableProps = {
585
585
  /**
586
586
  * 是否采用flex布局表格
587
587
  */
588
- isFlex: external_shared_namespaceObject.PropTypes.bool.def(true)
588
+ isFlex: external_shared_namespaceObject.PropTypes.bool.def(true),
589
+ /**
590
+ * 是否支持行拖拽排序
591
+ */
592
+ rowDraggable: external_shared_namespaceObject.PropTypes.oneOfType([external_shared_namespaceObject.PropTypes.func, external_shared_namespaceObject.PropTypes.bool, external_shared_namespaceObject.PropTypes.object]).def(false)
589
593
  };
590
594
  ;// CONCATENATED MODULE: ../../packages/table/src/components/table-column.tsx
591
595