bkui-vue 1.0.3-beta.4 → 1.0.3-beta.8

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.
@@ -25,6 +25,8 @@ import "../button/button.less";
25
25
  import * as __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_icon__3efece53__ from "../icon/";
26
26
  import * as __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_popover_9b03f19d__ from "../popover";
27
27
  import "../popover/popover.less";
28
+ import * as __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_input_d525237e__ from "../input";
29
+ import "../input/input.less";
28
30
  /******/ // The require scope
29
31
  /******/ var __webpack_require__ = {};
30
32
  /******/
@@ -120,7 +122,7 @@ function defineProperty_defineProperty(obj, key, value) {
120
122
  ;// CONCATENATED MODULE: external "vue"
121
123
  var external_vue_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
122
124
  var external_vue_y = x => () => x
123
- const external_vue_namespaceObject = external_vue_x({ ["Fragment"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.Fragment, ["computed"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.computed, ["createTextVNode"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode, ["createVNode"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.createVNode, ["defineComponent"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent, ["inject"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.inject, ["isVNode"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.isVNode, ["mergeProps"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps, ["nextTick"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.nextTick, ["onBeforeUnmount"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.onBeforeUnmount, ["onMounted"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.onMounted, ["provide"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.provide, ["reactive"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.reactive, ["ref"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.ref, ["resolveComponent"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent, ["toRef"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.toRef, ["toRefs"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.toRefs, ["unref"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.unref, ["watch"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.watch });
125
+ const external_vue_namespaceObject = external_vue_x({ ["Fragment"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.Fragment, ["computed"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.computed, ["createTextVNode"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode, ["createVNode"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.createVNode, ["defineComponent"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent, ["inject"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.inject, ["isProxy"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.isProxy, ["isVNode"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.isVNode, ["mergeProps"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps, ["nextTick"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.nextTick, ["onBeforeUnmount"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.onBeforeUnmount, ["onMounted"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.onMounted, ["provide"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.provide, ["reactive"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.reactive, ["ref"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.ref, ["toRaw"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.toRaw, ["toRef"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.toRef, ["toRefs"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.toRefs, ["unref"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.unref, ["watch"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.watch });
124
126
  ;// CONCATENATED MODULE: ../../packages/table/src/const.ts
125
127
 
126
128
  /*
@@ -452,6 +454,13 @@ var tableProps = {
452
454
  * 是否显示Head
453
455
  */
454
456
  showHead: shared_namespaceObject.PropTypes.bool.def(true),
457
+ /**
458
+ * 排序时对需要排序的字符串数值进行格式化
459
+ * 这里需要配置为正则或者回调函数,(str) => string | number | boolean
460
+ * 如果配置为正则,程序会提取匹配到的第一个结果尝试转换为数值
461
+ * 如果为多个,程序会顺序执行所有正则表达式,直到转换成功
462
+ */
463
+ sortValFormat: shared_namespaceObject.PropTypes.arrayOf(shared_namespaceObject.PropTypes.any).def(['']),
455
464
  /**
456
465
  * table header config
457
466
  */
@@ -707,6 +716,9 @@ var TableColumnProp = {
707
716
  mounted: function mounted() {
708
717
  this.updateColumnDefine();
709
718
  },
719
+ updated: function updated() {
720
+ this.updateColumnDefineByParent();
721
+ },
710
722
  methods: {
711
723
  updateColumnDefine: function updateColumnDefine() {
712
724
  var unmounted = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
@@ -1600,195 +1612,6 @@ function v4(options, buf, offset) {
1600
1612
  }
1601
1613
 
1602
1614
  /* harmony default export */ const esm_browser_v4 = (v4);
1603
- ;// CONCATENATED MODULE: ../../packages/table/src/plugins/use-pagination.tsx
1604
-
1605
-
1606
-
1607
- function use_pagination_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1608
- function use_pagination_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? use_pagination_ownKeys(Object(t), !0).forEach(function (r) { defineProperty_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : use_pagination_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1609
- /*
1610
- * Tencent is pleased to support the open source community by making
1611
- * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
1612
- *
1613
- * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.
1614
- *
1615
- * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) is licensed under the MIT License.
1616
- *
1617
- * License for 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition):
1618
- *
1619
- * ---------------------------------------------------
1620
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
1621
- * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
1622
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
1623
- * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
1624
- *
1625
- * The above copyright notice and this permission notice shall be included in all copies or substantial portions of
1626
- * the Software.
1627
- *
1628
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
1629
- * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1630
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
1631
- * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
1632
- * IN THE SOFTWARE.
1633
- */
1634
-
1635
-
1636
- /**
1637
- * 处理 Prop中的分页配置
1638
- * prop中的配置会覆盖本地的配置
1639
- * @param propPagination 用户传入的配置
1640
- * @param defVal 默认配置
1641
- * @returns 返回值
1642
- */
1643
- var resolvePaginationOption = function resolvePaginationOption(propPagination, defVal) {
1644
- if (!!propPagination) {
1645
- if (typeof_typeof(propPagination) === 'object') {
1646
- var current = Object.prototype.hasOwnProperty.call(propPagination, 'current') ? propPagination.current : propPagination.value;
1647
- if (!/\d+/.test(current)) {
1648
- current = 1;
1649
- }
1650
- return use_pagination_objectSpread(use_pagination_objectSpread(use_pagination_objectSpread({}, defVal), propPagination), {}, {
1651
- current: current
1652
- });
1653
- }
1654
- return defVal;
1655
- }
1656
- return {};
1657
- };
1658
- /* harmony default export */ const use_pagination = (function (props) {
1659
- var startIndex = (0,external_vue_namespaceObject.ref)(0);
1660
- var endIndex = (0,external_vue_namespaceObject.ref)(0);
1661
- /**
1662
- * 分页配置
1663
- * 用于配置分页组件
1664
- * pagination 为Prop传入配置
1665
- * 方便兼容内置分页功能,此处需要单独处理count
1666
- */
1667
- var propsData = (0,external_vue_namespaceObject.computed)(function () {
1668
- return props.data;
1669
- });
1670
- var localPagination = (0,external_vue_namespaceObject.ref)(null);
1671
- var indexData = (0,external_vue_namespaceObject.reactive)([]);
1672
- // 当前分页缓存,用于支持内置前端分页,用户无需接收change事件来自行处理数据分割
1673
- var pagination = (0,external_vue_namespaceObject.reactive)({
1674
- count: 0,
1675
- limit: 10,
1676
- current: 1,
1677
- align: 'right',
1678
- layout: ['total', 'limit', 'list']
1679
- });
1680
- var resolveLocalPagination = function resolveLocalPagination() {
1681
- if (!props.pagination) {
1682
- return;
1683
- }
1684
- localPagination.value = props.remotePagination ? pagination : use_pagination_objectSpread(use_pagination_objectSpread({}, pagination), {}, {
1685
- count: indexData.length
1686
- });
1687
- };
1688
- /**
1689
- * 重置当前分页开始位置 & 结束位置
1690
- * 如果未启用分页,则开始位置为0,结束位置为 data.length
1691
- * @returns
1692
- */
1693
- var resetStartEndIndex = function resetStartEndIndex() {
1694
- if (!props.pagination || props.remotePagination) {
1695
- startIndex.value = 0;
1696
- endIndex.value = indexData.length;
1697
- return;
1698
- }
1699
- // 如果是前端分页
1700
- startIndex.value = (pagination.current - 1) * pagination.limit;
1701
- endIndex.value = pagination.current * pagination.limit;
1702
- };
1703
- /**
1704
- * 当前页分页数据
1705
- */
1706
- var pageData = (0,external_vue_namespaceObject.reactive)([]);
1707
- var sort = function sort(sourceData, sortFn, column, type, sortScope) {
1708
- if (typeof sortFn === 'function') {
1709
- sourceData.sort(function (a, b) {
1710
- return sortFn(a, b, type, column, sortScope);
1711
- });
1712
- }
1713
- };
1714
- /**
1715
- * 初始化排序动作
1716
- * @param data
1717
- * @param sortColumns
1718
- */
1719
- var multiSort = function multiSort(data, sortColumns) {
1720
- sortColumns.forEach(function (item) {
1721
- sort(data, item.schema[COLUMN_ATTRIBUTE.COL_SORT_FN], item.column, item.schema[COLUMN_ATTRIBUTE.COL_SORT_TYPE], item.schema[COLUMN_ATTRIBUTE.COL_SORT_SCOPE]);
1722
- });
1723
- };
1724
- var filter = function filter(sourceData, filterFn) {
1725
- if (typeof filterFn === 'function') {
1726
- var filterVals = sourceData.filter(function (row, index) {
1727
- return filterFn(row, index, indexData);
1728
- });
1729
- sourceData.length = 0;
1730
- sourceData.push.apply(sourceData, _toConsumableArray(filterVals));
1731
- }
1732
- return sourceData;
1733
- };
1734
- var resolveIndexData = function resolveIndexData() {
1735
- return new Promise(function (resolve) {
1736
- (0,external_vue_namespaceObject.nextTick)(function () {
1737
- var target = propsData.value.slice();
1738
- indexData.length = 0;
1739
- indexData.push.apply(indexData, _toConsumableArray(target));
1740
- resolve();
1741
- });
1742
- });
1743
- };
1744
- var resolvePageData = function resolvePageData(filterFn, sortFn, column, type, sortScope, multiCol) {
1745
- var sourceData = indexData.slice();
1746
- if (multiCol !== null && multiCol !== void 0 && multiCol.length) {
1747
- multiSort(sourceData, multiCol);
1748
- }
1749
- pageData.length = 0;
1750
- pageData.push.apply(pageData, _toConsumableArray(sourceData.slice(startIndex.value, endIndex.value)));
1751
- filter(pageData, filterFn);
1752
- sort(pageData, sortFn, column, type, sortScope);
1753
- resolveLocalPagination();
1754
- };
1755
- var resolvePageDataBySortList = function resolvePageDataBySortList(multiCol) {
1756
- resolvePageData(null, null, null, null, null, multiCol);
1757
- };
1758
- var multiFilter = function multiFilter(filterFnList) {
1759
- var sourceData = indexData.slice();
1760
- var target = filterFnList.reduce(function (result, fn) {
1761
- return filter(result, fn);
1762
- }, sourceData);
1763
- pageData.length = 0;
1764
- pageData.push.apply(pageData, _toConsumableArray(target));
1765
- };
1766
- var handlePaginationChange = function handlePaginationChange() {
1767
- pagination = resolvePaginationOption(props.pagination, pagination);
1768
- resolveLocalPagination();
1769
- resetStartEndIndex();
1770
- resolvePageData();
1771
- };
1772
- handlePaginationChange();
1773
- (0,external_vue_namespaceObject.watch)(function () {
1774
- return [props.pagination];
1775
- }, function () {
1776
- handlePaginationChange();
1777
- }, {
1778
- deep: true
1779
- });
1780
- return {
1781
- pageData: pageData,
1782
- indexData: indexData,
1783
- localPagination: localPagination,
1784
- resolvePageData: resolvePageData,
1785
- resolveIndexData: resolveIndexData,
1786
- resolvePageDataBySortList: resolvePageDataBySortList,
1787
- resetStartEndIndex: resetStartEndIndex,
1788
- multiFilter: multiFilter,
1789
- sort: sort
1790
- };
1791
- });
1792
1615
  ;// CONCATENATED MODULE: external "lodash/debounce"
1793
1616
  var debounce_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
1794
1617
  var debounce_y = x => () => x
@@ -2765,6 +2588,7 @@ function utils_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { va
2765
2588
 
2766
2589
 
2767
2590
 
2591
+
2768
2592
  /**
2769
2593
  * 解析Prop值 | 可能为多种类型 & 函数返回的场景
2770
2594
  * @param prop 当前Prop
@@ -2945,6 +2769,10 @@ var resolveHeadConfig = function resolveHeadConfig(props) {
2945
2769
  height: headHeight
2946
2770
  }, thead);
2947
2771
  };
2772
+ var getRegExp = function getRegExp(val) {
2773
+ var flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'ig';
2774
+ return new RegExp("".concat(val).replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'), flags);
2775
+ };
2948
2776
  /**
2949
2777
  * 获取当前行指定列的内容
2950
2778
  * @param row 当前行
@@ -2953,11 +2781,29 @@ var resolveHeadConfig = function resolveHeadConfig(props) {
2953
2781
  * @param index 当前行Index
2954
2782
  * @returns
2955
2783
  */
2956
- var getRowText = function getRowText(row, key) {
2784
+ var getRowText = function getRowText(row, key, format) {
2785
+ var result;
2957
2786
  if (typeof row === 'string' || typeof row === 'number' || typeof row === 'boolean') {
2958
- return row;
2787
+ result = row;
2959
2788
  }
2960
- return (0,get_namespaceObject["default"])(row, key);
2789
+ if (typeof_typeof(row) === 'object') {
2790
+ result = (0,get_namespaceObject["default"])(row, key);
2791
+ }
2792
+ if (format !== null && format !== void 0 && format.length) {
2793
+ format.forEach(function (reg) {
2794
+ if (typeof reg === 'function') {
2795
+ result = reg(result, row, key);
2796
+ } else if (typeof result === 'string') {
2797
+ var _matches$;
2798
+ var matches = result.match(typeof reg === 'string' ? getRegExp(reg) : reg);
2799
+ result = (_matches$ = matches === null || matches === void 0 ? void 0 : matches[1]) !== null && _matches$ !== void 0 ? _matches$ : result;
2800
+ }
2801
+ });
2802
+ if (/^-?\d+.?\d*$/.test(result)) {
2803
+ result = Number(result);
2804
+ }
2805
+ }
2806
+ return result;
2961
2807
  };
2962
2808
  /**
2963
2809
  * 获取当前行指定列的值
@@ -3098,7 +2944,7 @@ var skipThisColumn = function skipThisColumn(columns, colIndex, row, rowIndex) {
3098
2944
  for (var i = colIndex; i > 0; i--) {
3099
2945
  var colspan = resolveColumnSpan(columns[i], i, row, rowIndex, 'colspan');
3100
2946
  if (colspan > 1) {
3101
- skip = colspan - 1 + i >= colIndex;
2947
+ skip = colspan - 1;
3102
2948
  break;
3103
2949
  }
3104
2950
  }
@@ -3106,9 +2952,10 @@ var skipThisColumn = function skipThisColumn(columns, colIndex, row, rowIndex) {
3106
2952
  };
3107
2953
  var getSortFn = function getSortFn(column, sortType) {
3108
2954
  var _column$sort, _column$sort2;
2955
+ var format = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
3109
2956
  var fieldName = column.field;
3110
2957
  var getVal = function getVal(row) {
3111
- return getRowText(row, fieldName);
2958
+ return getRowText(row, fieldName, format);
3112
2959
  };
3113
2960
  var sortFn0 = function sortFn0(a, b) {
3114
2961
  var _getVal, _getVal2;
@@ -3134,6 +2981,7 @@ var getNextSortType = function getNextSortType(sortType) {
3134
2981
  return Object.keys(steps)[(steps[sortType] + 1) % 3];
3135
2982
  };
3136
2983
  var resolveSort = function resolveSort(sort, column) {
2984
+ var format = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
3137
2985
  if (typeof sort === 'string') {
3138
2986
  return {
3139
2987
  value: sort
@@ -3152,7 +3000,7 @@ var resolveSort = function resolveSort(sort, column) {
3152
3000
  }, sort);
3153
3001
  }
3154
3002
  return Object.assign({}, {
3155
- sortFn: getSortFn(column, (_sort$value = sort.value) !== null && _sort$value !== void 0 ? _sort$value : SORT_OPTION.NULL)
3003
+ sortFn: getSortFn(column, (_sort$value = sort.value) !== null && _sort$value !== void 0 ? _sort$value : SORT_OPTION.NULL, format)
3156
3004
  }, sort);
3157
3005
  }
3158
3006
  return null;
@@ -3193,6 +3041,202 @@ var resolveColumnSortProp = function resolveColumnSortProp(col, props) {
3193
3041
  active: !!col.sort
3194
3042
  };
3195
3043
  };
3044
+ var getRawData = function getRawData(data) {
3045
+ if ((0,external_vue_namespaceObject.isProxy)(data)) {
3046
+ return (0,external_vue_namespaceObject.toRaw)(data);
3047
+ }
3048
+ return data;
3049
+ };
3050
+ ;// CONCATENATED MODULE: ../../packages/table/src/plugins/use-pagination.tsx
3051
+
3052
+
3053
+
3054
+ function use_pagination_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3055
+ function use_pagination_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? use_pagination_ownKeys(Object(t), !0).forEach(function (r) { defineProperty_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : use_pagination_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3056
+ /*
3057
+ * Tencent is pleased to support the open source community by making
3058
+ * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
3059
+ *
3060
+ * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.
3061
+ *
3062
+ * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) is licensed under the MIT License.
3063
+ *
3064
+ * License for 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition):
3065
+ *
3066
+ * ---------------------------------------------------
3067
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
3068
+ * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
3069
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
3070
+ * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
3071
+ *
3072
+ * The above copyright notice and this permission notice shall be included in all copies or substantial portions of
3073
+ * the Software.
3074
+ *
3075
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
3076
+ * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
3077
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
3078
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
3079
+ * IN THE SOFTWARE.
3080
+ */
3081
+
3082
+
3083
+
3084
+ /**
3085
+ * 处理 Prop中的分页配置
3086
+ * prop中的配置会覆盖本地的配置
3087
+ * @param propPagination 用户传入的配置
3088
+ * @param defVal 默认配置
3089
+ * @returns 返回值
3090
+ */
3091
+ var resolvePaginationOption = function resolvePaginationOption(propPagination, defVal) {
3092
+ if (!!propPagination) {
3093
+ if (typeof_typeof(propPagination) === 'object') {
3094
+ var current = Object.prototype.hasOwnProperty.call(propPagination, 'current') ? propPagination.current : propPagination.value;
3095
+ if (!/\d+/.test(current)) {
3096
+ current = 1;
3097
+ }
3098
+ return use_pagination_objectSpread(use_pagination_objectSpread(use_pagination_objectSpread({}, defVal), propPagination), {}, {
3099
+ current: current
3100
+ });
3101
+ }
3102
+ return defVal;
3103
+ }
3104
+ return {};
3105
+ };
3106
+ /* harmony default export */ const use_pagination = (function (props) {
3107
+ var startIndex = (0,external_vue_namespaceObject.ref)(0);
3108
+ var endIndex = (0,external_vue_namespaceObject.ref)(0);
3109
+ /**
3110
+ * 分页配置
3111
+ * 用于配置分页组件
3112
+ * pagination 为Prop传入配置
3113
+ * 方便兼容内置分页功能,此处需要单独处理count
3114
+ */
3115
+ var propsData = (0,external_vue_namespaceObject.computed)(function () {
3116
+ return props.data;
3117
+ });
3118
+ var localPagination = (0,external_vue_namespaceObject.ref)(null);
3119
+ var indexData = (0,external_vue_namespaceObject.reactive)([]);
3120
+ // 当前分页缓存,用于支持内置前端分页,用户无需接收change事件来自行处理数据分割
3121
+ var pagination = (0,external_vue_namespaceObject.reactive)({
3122
+ count: 0,
3123
+ limit: 10,
3124
+ current: 1,
3125
+ align: 'right',
3126
+ layout: ['total', 'limit', 'list']
3127
+ });
3128
+ var resolveLocalPagination = function resolveLocalPagination() {
3129
+ if (!props.pagination) {
3130
+ return;
3131
+ }
3132
+ localPagination.value = props.remotePagination ? pagination : use_pagination_objectSpread(use_pagination_objectSpread({}, pagination), {}, {
3133
+ count: indexData.length
3134
+ });
3135
+ };
3136
+ /**
3137
+ * 重置当前分页开始位置 & 结束位置
3138
+ * 如果未启用分页,则开始位置为0,结束位置为 data.length
3139
+ * @returns
3140
+ */
3141
+ var resetStartEndIndex = function resetStartEndIndex() {
3142
+ if (!props.pagination || props.remotePagination) {
3143
+ startIndex.value = 0;
3144
+ endIndex.value = indexData.length;
3145
+ return;
3146
+ }
3147
+ // 如果是前端分页
3148
+ startIndex.value = (pagination.current - 1) * pagination.limit;
3149
+ endIndex.value = pagination.current * pagination.limit;
3150
+ };
3151
+ /**
3152
+ * 当前页分页数据
3153
+ */
3154
+ var pageData = (0,external_vue_namespaceObject.reactive)([]);
3155
+ var sort = function sort(sourceData, sortFn, column, type, sortScope) {
3156
+ if (typeof sortFn === 'function') {
3157
+ sourceData.sort(function (a, b) {
3158
+ return sortFn(a, b, type, column, sortScope);
3159
+ });
3160
+ }
3161
+ };
3162
+ /**
3163
+ * 初始化排序动作
3164
+ * @param data
3165
+ * @param sortColumns
3166
+ */
3167
+ var multiSort = function multiSort(data, sortColumns) {
3168
+ sortColumns.forEach(function (item) {
3169
+ sort(data, item.schema[COLUMN_ATTRIBUTE.COL_SORT_FN], item.column, item.schema[COLUMN_ATTRIBUTE.COL_SORT_TYPE], item.schema[COLUMN_ATTRIBUTE.COL_SORT_SCOPE]);
3170
+ });
3171
+ };
3172
+ var filter = function filter(sourceData, filterFn) {
3173
+ if (typeof filterFn === 'function') {
3174
+ var filterVals = sourceData.filter(function (row, index) {
3175
+ return filterFn(row, index, indexData);
3176
+ });
3177
+ sourceData.length = 0;
3178
+ sourceData.push.apply(sourceData, _toConsumableArray(filterVals));
3179
+ }
3180
+ return sourceData;
3181
+ };
3182
+ var resolveIndexData = function resolveIndexData() {
3183
+ return new Promise(function (resolve) {
3184
+ (0,external_vue_namespaceObject.nextTick)(function () {
3185
+ var target = propsData.value.slice();
3186
+ indexData.length = 0;
3187
+ indexData.push.apply(indexData, _toConsumableArray(getRawData(target)));
3188
+ resolve();
3189
+ });
3190
+ });
3191
+ };
3192
+ var resolvePageData = function resolvePageData(filterFn, sortFn, column, type, sortScope, multiCol) {
3193
+ var sourceData = indexData.slice();
3194
+ if (multiCol !== null && multiCol !== void 0 && multiCol.length) {
3195
+ multiSort(sourceData, multiCol);
3196
+ }
3197
+ pageData.length = 0;
3198
+ pageData.push.apply(pageData, _toConsumableArray(sourceData.slice(startIndex.value, endIndex.value)));
3199
+ filter(pageData, filterFn);
3200
+ sort(pageData, sortFn, column, type, sortScope);
3201
+ resolveLocalPagination();
3202
+ };
3203
+ var resolvePageDataBySortList = function resolvePageDataBySortList(multiCol) {
3204
+ resolvePageData(null, null, null, null, null, multiCol);
3205
+ };
3206
+ var multiFilter = function multiFilter(filterFnList) {
3207
+ var sourceData = indexData.slice();
3208
+ var target = filterFnList.reduce(function (result, fn) {
3209
+ return filter(result, fn);
3210
+ }, sourceData);
3211
+ pageData.length = 0;
3212
+ pageData.push.apply(pageData, _toConsumableArray(getRawData(target)));
3213
+ };
3214
+ var handlePaginationChange = function handlePaginationChange() {
3215
+ pagination = resolvePaginationOption(props.pagination, pagination);
3216
+ resolveLocalPagination();
3217
+ resetStartEndIndex();
3218
+ resolvePageData();
3219
+ };
3220
+ handlePaginationChange();
3221
+ (0,external_vue_namespaceObject.watch)(function () {
3222
+ return [props.pagination];
3223
+ }, function () {
3224
+ handlePaginationChange();
3225
+ }, {
3226
+ deep: true
3227
+ });
3228
+ return {
3229
+ pageData: pageData,
3230
+ indexData: indexData,
3231
+ localPagination: localPagination,
3232
+ resolvePageData: resolvePageData,
3233
+ resolveIndexData: resolveIndexData,
3234
+ resolvePageDataBySortList: resolvePageDataBySortList,
3235
+ resetStartEndIndex: resetStartEndIndex,
3236
+ multiFilter: multiFilter,
3237
+ sort: sort
3238
+ };
3239
+ });
3196
3240
  ;// CONCATENATED MODULE: ../../packages/table/src/use-attributes.ts
3197
3241
 
3198
3242
 
@@ -3580,7 +3624,7 @@ function use_attributes_objectSpread(e) { for (var r = 1; r < arguments.length;
3580
3624
  if (typeof item === 'string') {
3581
3625
  return getRowValue(row, item) === item;
3582
3626
  }
3583
- return item === row;
3627
+ return getRawData(item) === getRawData(row);
3584
3628
  });
3585
3629
  }
3586
3630
  return false;
@@ -3606,7 +3650,8 @@ function use_attributes_objectSpread(e) { for (var r = 1; r < arguments.length;
3606
3650
  (_formatData$data = formatData.data).push.apply(_formatData$data, _toConsumableArray(data));
3607
3651
  var hasSelectedRow = false;
3608
3652
  var hasUnSelectedRow = false;
3609
- (data || []).forEach(function (row, index) {
3653
+ (data || []).forEach(function (item, index) {
3654
+ var row = getRawData(item);
3610
3655
  var rowId = getRowId(row, esm_browser_v4(), props);
3611
3656
  var isSelected = isRowSelected(row);
3612
3657
  if (isSelected) {
@@ -3647,7 +3692,8 @@ function use_attributes_objectSpread(e) { for (var r = 1; r < arguments.length;
3647
3692
  * @param attrName
3648
3693
  * @param attrValue
3649
3694
  */
3650
- var setRowAttribute = function setRowAttribute(row, attrName, attrValue) {
3695
+ var setRowAttribute = function setRowAttribute(item, attrName, attrValue) {
3696
+ var row = getRawData(item);
3651
3697
  var target = formatData.dataSchema.get(row);
3652
3698
  if (target && Object.prototype.hasOwnProperty.call(target, attrName)) {
3653
3699
  target[attrName] = attrValue;
@@ -3688,8 +3734,9 @@ function use_attributes_objectSpread(e) { for (var r = 1; r < arguments.length;
3688
3734
  var setRowExpand = function setRowExpand(row, isExpand) {
3689
3735
  setRowAttribute(row, TABLE_ROW_ATTRIBUTE.ROW_EXPAND, isExpand);
3690
3736
  };
3691
- var getRowAttribute = function getRowAttribute(row, attrName) {
3737
+ var getRowAttribute = function getRowAttribute(item, attrName) {
3692
3738
  var _formatData$dataSchem6;
3739
+ var row = getRawData(item);
3693
3740
  return (_formatData$dataSchem6 = formatData.dataSchema.get(row)) === null || _formatData$dataSchem6 === void 0 ? void 0 : _formatData$dataSchem6[attrName];
3694
3741
  };
3695
3742
  var toggleRowSelection = function toggleRowSelection(row) {
@@ -4435,6 +4482,18 @@ const directives_namespaceObject = directives_x({ ["bkEllipsisInstance"]: () =>
4435
4482
  if (typeof disabled === 'function') {
4436
4483
  disabled = Reflect.apply(disabled, _this, [props.column, props.row]);
4437
4484
  }
4485
+ /**
4486
+ * 当表格中的字段或数据需要做解释说明时,可增加 [下划线] 提示,hover 可查看解释说明的 tooltips
4487
+ */
4488
+ if (props.column.explain) {
4489
+ disabled = false;
4490
+ mode = 'static';
4491
+ if (typeof_typeof(props.column.explain) === 'object') {
4492
+ content = function content() {
4493
+ return resolvePropVal(props.column.explain, 'content', [props.column, props.row]);
4494
+ };
4495
+ }
4496
+ }
4438
4497
  if (props.isHead) {
4439
4498
  var _props$column$showOve, _props$column;
4440
4499
  disabled = !((_props$column$showOve = (_props$column = props.column) === null || _props$column === void 0 || (_props$column = _props$column.showOverflowTooltip) === null || _props$column === void 0 ? void 0 : _props$column.showHead) !== null && _props$column$showOve !== void 0 ? _props$column$showOve : true);
@@ -4450,18 +4509,6 @@ const directives_namespaceObject = directives_x({ ["bkEllipsisInstance"]: () =>
4450
4509
  };
4451
4510
  }
4452
4511
  }
4453
- /**
4454
- * 当表格中的字段或数据需要做解释说明时,可增加 [下划线] 提示,hover 可查看解释说明的 tooltips
4455
- */
4456
- if (props.column.explain) {
4457
- disabled = false;
4458
- mode = 'static';
4459
- if (typeof_typeof(props.column.explain) === 'object') {
4460
- content = function content() {
4461
- return resolvePropVal(props.column.explain, 'content', [props.column, props.row]);
4462
- };
4463
- }
4464
- }
4465
4512
  return {
4466
4513
  disabled: disabled,
4467
4514
  content: content,
@@ -5083,6 +5130,14 @@ function _isSlot(s) {
5083
5130
  onDrop: onDrop
5084
5131
  };
5085
5132
  });
5133
+ ;// CONCATENATED MODULE: external "../input"
5134
+ var input_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
5135
+ var input_y = x => () => x
5136
+ const input_namespaceObject = input_x({ ["default"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_input_d525237e__["default"] });
5137
+ ;// CONCATENATED MODULE: external "../input/input.less"
5138
+ var input_less_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
5139
+ var input_less_y = x => () => x
5140
+ const input_less_namespaceObject = input_less_x({ });
5086
5141
  ;// CONCATENATED MODULE: ../../packages/table/src/plugins/head-filter.tsx
5087
5142
 
5088
5143
 
@@ -5128,6 +5183,8 @@ function _isSlot(s) {
5128
5183
 
5129
5184
 
5130
5185
 
5186
+
5187
+
5131
5188
  function head_filter_isSlot(s) {
5132
5189
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !(0,external_vue_namespaceObject.isVNode)(s);
5133
5190
  }
@@ -5368,7 +5425,7 @@ function head_filter_isSlot(s) {
5368
5425
  "class": headFilterContentClass
5369
5426
  }, [(0,external_vue_namespaceObject.createVNode)("div", {
5370
5427
  "style": "padding: 4px 10px;"
5371
- }, [(0,external_vue_namespaceObject.createVNode)((0,external_vue_namespaceObject.resolveComponent)("bk-input"), {
5428
+ }, [(0,external_vue_namespaceObject.createVNode)(input_namespaceObject["default"], {
5372
5429
  "modelValue": searchValue.value,
5373
5430
  "onUpdate:modelValue": function onUpdateModelValue($event) {
5374
5431
  return searchValue.value = $event;
@@ -5482,7 +5539,8 @@ function _slicedToArray(arr, i) {
5482
5539
  props: {
5483
5540
  column: IColumnType,
5484
5541
  defaultSort: shared_namespaceObject.PropTypes.oneOf(SORT_OPTIONS).def(SORT_OPTION.NULL),
5485
- active: shared_namespaceObject.PropTypes.bool
5542
+ active: shared_namespaceObject.PropTypes.bool,
5543
+ sortValFormat: shared_namespaceObject.PropTypes.arrayOf(shared_namespaceObject.PropTypes.any).def([''])
5486
5544
  },
5487
5545
  emits: ['change'],
5488
5546
  setup: function setup(props, _ref) {
@@ -5520,8 +5578,8 @@ function _slicedToArray(arr, i) {
5520
5578
  if (sortType.value === type) {
5521
5579
  currentSort = SORT_OPTION.NULL;
5522
5580
  }
5523
- var execFn = getSortFn(props.column, currentSort);
5524
- var sort = resolveSort(props.column.sort, props.column);
5581
+ var execFn = getSortFn(props.column, currentSort, props.sortValFormat);
5582
+ var sort = resolveSort(props.column.sort, props.column, props.sortValFormat);
5525
5583
  if ((sort === null || sort === void 0 ? void 0 : sort.value) === 'custom') {
5526
5584
  var _sort$sortFn;
5527
5585
  emit('change', (_sort$sortFn = sort === null || sort === void 0 ? void 0 : sort.sortFn) !== null && _sort$sortFn !== void 0 ? _sort$sortFn : execFn, currentSort);
@@ -5632,7 +5690,7 @@ function use_head_cell_isSlot(s) {
5632
5690
  var type = tableResp.getColumnAttribute(column, COLUMN_ATTRIBUTE.COL_SORT_TYPE);
5633
5691
  nextSort.value = getNextSortType(type);
5634
5692
  var sortFn = function sortFn(a, b) {
5635
- return getSortFnByColumn(column, getSortFn(column, nextSort.value), a, b);
5693
+ return getSortFnByColumn(column, getSortFn(column, nextSort.value, props.sortValFormat), a, b);
5636
5694
  };
5637
5695
  tableResp.setColumnAttribute(column, COLUMN_ATTRIBUTE.COL_SORT_TYPE, nextSort.value);
5638
5696
  tableResp.setColumnAttribute(column, COLUMN_ATTRIBUTE.COL_SORT_FN, sortFn);
@@ -5718,7 +5776,8 @@ function use_head_cell_isSlot(s) {
5718
5776
  "column": column,
5719
5777
  "defaultSort": active.value ? nextSort.value : SORT_OPTION.NULL,
5720
5778
  "onChange": handleSortClick,
5721
- "active": active.value
5779
+ "active": active.value,
5780
+ "sortValFormat": props.sortValFormat
5722
5781
  }, null);
5723
5782
  };
5724
5783
  var getFilterCell = function getFilterCell(column, index) {
@@ -6044,7 +6103,7 @@ function use_render_isSlot(s) {
6044
6103
  }
6045
6104
  return '';
6046
6105
  };
6047
- var getRowSpanConfig = function getRowSpanConfig(row, index, preRow, col, store) {
6106
+ var getRowSpanConfig = function getRowSpanConfig(row, rowIndex, preRow, col, store) {
6048
6107
  var _store$get$get, _store$get;
6049
6108
  if (!store.has(row)) {
6050
6109
  store.set(row, new WeakMap());
@@ -6059,7 +6118,7 @@ function use_render_isSlot(s) {
6059
6118
  _ref$skipRowLen = _ref.skipRowLen,
6060
6119
  skipRowLen = _ref$skipRowLen === void 0 ? 0 : _ref$skipRowLen;
6061
6120
  var skipRow = false;
6062
- var rowspan = resolveColumnSpan(col, null, row, index, 'rowspan');
6121
+ var rowspan = resolveColumnSpan(col, null, row, rowIndex, 'rowspan');
6063
6122
  if (skipRowLen > 1) {
6064
6123
  skipRowLen = skipRowLen - 1;
6065
6124
  skipRow = true;
@@ -6132,7 +6191,7 @@ function use_render_isSlot(s) {
6132
6191
  rowspan = _resolveCellSpan.rowspan;
6133
6192
  var _tableResp$getColumnA = tableResp.getColumnAttribute(column, COLUMN_ATTRIBUTE.COL_SPAN),
6134
6193
  skipCol = _tableResp$getColumnA.skipCol;
6135
- var _ref2 = needRowSpan && !isChild ? getRowSpanConfig(row, index, preRow, column, rowSpanMap) : {
6194
+ var _ref2 = needRowSpan && !isChild ? getRowSpanConfig(row, rowIndex, preRow, column, rowSpanMap) : {
6136
6195
  skipRow: false
6137
6196
  },
6138
6197
  skipRow = _ref2.skipRow;