@sheinx/hooks 3.9.0-beta.3 → 3.9.0-beta.30

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 (103) hide show
  1. package/cjs/common/use-filter/use-filter.type.d.ts +1 -1
  2. package/cjs/common/use-filter/use-filter.type.d.ts.map +1 -1
  3. package/cjs/common/use-input-able/use-Input-able.d.ts.map +1 -1
  4. package/cjs/common/use-input-able/use-Input-able.js +6 -7
  5. package/cjs/components/use-button/use-button.d.ts +2 -2
  6. package/cjs/components/use-carousel/use-carousel.d.ts +12 -0
  7. package/cjs/components/use-carousel/use-carousel.d.ts.map +1 -1
  8. package/cjs/components/use-carousel/use-carousel.js +67 -17
  9. package/cjs/components/use-datepicker/use-date.d.ts.map +1 -1
  10. package/cjs/components/use-datepicker/use-date.js +7 -7
  11. package/cjs/components/use-datepicker/use-date.type.d.ts +2 -1
  12. package/cjs/components/use-datepicker/use-date.type.d.ts.map +1 -1
  13. package/cjs/components/use-datepicker/use-datepicker-range.d.ts +2 -2
  14. package/cjs/components/use-datepicker/use-datepicker-range.d.ts.map +1 -1
  15. package/cjs/components/use-datepicker/use-datepicker-range.js +7 -16
  16. package/cjs/components/use-datepicker/use-month.d.ts.map +1 -1
  17. package/cjs/components/use-datepicker/use-month.js +5 -5
  18. package/cjs/components/use-datepicker/use-month.type.d.ts +2 -1
  19. package/cjs/components/use-datepicker/use-month.type.d.ts.map +1 -1
  20. package/cjs/components/use-datepicker/use-quarter.d.ts.map +1 -1
  21. package/cjs/components/use-datepicker/use-quarter.js +5 -5
  22. package/cjs/components/use-datepicker/use-year.d.ts.map +1 -1
  23. package/cjs/components/use-datepicker/use-year.js +5 -5
  24. package/cjs/components/use-datepicker/use-year.type.d.ts +2 -1
  25. package/cjs/components/use-datepicker/use-year.type.d.ts.map +1 -1
  26. package/cjs/components/use-form/use-form.type.d.ts +1 -1
  27. package/cjs/components/use-form/use-form.type.d.ts.map +1 -1
  28. package/cjs/components/use-input/use-input-format.d.ts +1 -1
  29. package/cjs/components/use-input/use-input-number.d.ts +1 -1
  30. package/cjs/components/use-table/use-table-columns.d.ts +8 -1
  31. package/cjs/components/use-table/use-table-columns.d.ts.map +1 -1
  32. package/cjs/components/use-table/use-table-columns.js +90 -1
  33. package/cjs/components/use-table/use-table-filter.d.ts +2 -2
  34. package/cjs/components/use-table/use-table-filter.d.ts.map +1 -1
  35. package/cjs/components/use-table/use-table-filter.js +11 -5
  36. package/cjs/components/use-table/use-table-layout.js +1 -1
  37. package/cjs/components/use-table/use-table-virtual.d.ts +2 -0
  38. package/cjs/components/use-table/use-table-virtual.d.ts.map +1 -1
  39. package/cjs/components/use-table/use-table-virtual.js +44 -10
  40. package/cjs/utils/dom/element.d.ts.map +1 -1
  41. package/cjs/utils/dom/element.js +3 -0
  42. package/cjs/utils/dom/get-dataset.d.ts +4 -0
  43. package/cjs/utils/dom/get-dataset.d.ts.map +1 -0
  44. package/cjs/utils/dom/get-dataset.js +18 -0
  45. package/cjs/utils/dom/index.d.ts +1 -0
  46. package/cjs/utils/dom/index.d.ts.map +1 -1
  47. package/cjs/utils/dom/index.js +12 -0
  48. package/cjs/utils/rule/regexp.d.ts +1 -1
  49. package/cjs/utils/rule/required.d.ts.map +1 -1
  50. package/cjs/utils/rule/required.js +3 -1
  51. package/cjs/utils/validate/get-rule.js +1 -1
  52. package/esm/common/use-filter/use-filter.type.d.ts +1 -1
  53. package/esm/common/use-filter/use-filter.type.d.ts.map +1 -1
  54. package/esm/common/use-input-able/use-Input-able.d.ts.map +1 -1
  55. package/esm/common/use-input-able/use-Input-able.js +7 -8
  56. package/esm/components/use-button/use-button.d.ts +2 -2
  57. package/esm/components/use-carousel/use-carousel.d.ts +12 -0
  58. package/esm/components/use-carousel/use-carousel.d.ts.map +1 -1
  59. package/esm/components/use-carousel/use-carousel.js +67 -17
  60. package/esm/components/use-datepicker/use-date.d.ts.map +1 -1
  61. package/esm/components/use-datepicker/use-date.js +7 -7
  62. package/esm/components/use-datepicker/use-date.type.d.ts +2 -1
  63. package/esm/components/use-datepicker/use-date.type.d.ts.map +1 -1
  64. package/esm/components/use-datepicker/use-datepicker-range.d.ts +2 -2
  65. package/esm/components/use-datepicker/use-datepicker-range.d.ts.map +1 -1
  66. package/esm/components/use-datepicker/use-datepicker-range.js +7 -16
  67. package/esm/components/use-datepicker/use-month.d.ts.map +1 -1
  68. package/esm/components/use-datepicker/use-month.js +5 -5
  69. package/esm/components/use-datepicker/use-month.type.d.ts +2 -1
  70. package/esm/components/use-datepicker/use-month.type.d.ts.map +1 -1
  71. package/esm/components/use-datepicker/use-quarter.d.ts.map +1 -1
  72. package/esm/components/use-datepicker/use-quarter.js +5 -5
  73. package/esm/components/use-datepicker/use-year.d.ts.map +1 -1
  74. package/esm/components/use-datepicker/use-year.js +5 -5
  75. package/esm/components/use-datepicker/use-year.type.d.ts +2 -1
  76. package/esm/components/use-datepicker/use-year.type.d.ts.map +1 -1
  77. package/esm/components/use-form/use-form.type.d.ts +1 -1
  78. package/esm/components/use-form/use-form.type.d.ts.map +1 -1
  79. package/esm/components/use-input/use-input-format.d.ts +1 -1
  80. package/esm/components/use-input/use-input-number.d.ts +1 -1
  81. package/esm/components/use-table/use-table-columns.d.ts +8 -1
  82. package/esm/components/use-table/use-table-columns.d.ts.map +1 -1
  83. package/esm/components/use-table/use-table-columns.js +91 -2
  84. package/esm/components/use-table/use-table-filter.d.ts +2 -2
  85. package/esm/components/use-table/use-table-filter.d.ts.map +1 -1
  86. package/esm/components/use-table/use-table-filter.js +11 -5
  87. package/esm/components/use-table/use-table-layout.js +1 -1
  88. package/esm/components/use-table/use-table-virtual.d.ts +2 -0
  89. package/esm/components/use-table/use-table-virtual.d.ts.map +1 -1
  90. package/esm/components/use-table/use-table-virtual.js +44 -10
  91. package/esm/utils/dom/element.d.ts.map +1 -1
  92. package/esm/utils/dom/element.js +3 -0
  93. package/esm/utils/dom/get-dataset.d.ts +4 -0
  94. package/esm/utils/dom/get-dataset.d.ts.map +1 -0
  95. package/esm/utils/dom/get-dataset.js +12 -0
  96. package/esm/utils/dom/index.d.ts +1 -0
  97. package/esm/utils/dom/index.d.ts.map +1 -1
  98. package/esm/utils/dom/index.js +1 -0
  99. package/esm/utils/rule/regexp.d.ts +1 -1
  100. package/esm/utils/rule/required.d.ts.map +1 -1
  101. package/esm/utils/rule/required.js +3 -1
  102. package/esm/utils/validate/get-rule.js +1 -1
  103. package/package.json +2 -2
@@ -8,7 +8,18 @@ var _immer = require("../../utils/immer");
8
8
  var _react = require("react");
9
9
  var _usePersistFn = _interopRequireDefault(require("../../common/use-persist-fn"));
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function 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; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
15
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
11
16
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
17
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
18
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
20
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
21
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
22
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
23
  var getHideExpandCol = function getHideExpandCol() {
13
24
  var cols = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
14
25
  var expandCol = cols.find(function (col) {
@@ -19,7 +30,17 @@ var getHideExpandCol = function getHideExpandCol() {
19
30
  }
20
31
  return null;
21
32
  };
33
+ // 缓冲区列数:左右各2列
34
+ var BUFFER_COUNT = 2;
22
35
  var useColumns = function useColumns(props) {
36
+ var _useState = (0, _react.useState)(0),
37
+ _useState2 = _slicedToArray(_useState, 2),
38
+ startIndex = _useState2[0],
39
+ setStartIndex = _useState2[1];
40
+ var _useState3 = (0, _react.useState)(20),
41
+ _useState4 = _slicedToArray(_useState3, 2),
42
+ renderedCount = _useState4[0],
43
+ setRenderedCount = _useState4[1];
23
44
  var _props$columns = props.columns,
24
45
  propsColumns = _props$columns === void 0 ? [] : _props$columns;
25
46
  var _useRef = (0, _react.useRef)({
@@ -74,8 +95,76 @@ var useColumns = function useColumns(props) {
74
95
  return context.cachedColumns;
75
96
  });
76
97
  var columns = getColumns(propsColumns) || [];
98
+ var leftFixedColumns = columns.filter(function (col) {
99
+ return col.fixed === 'left';
100
+ });
101
+ var middleColumns = columns.filter(function (col) {
102
+ return !col.fixed;
103
+ });
104
+ var handleScroll = function handleScroll(scrollInfo) {
105
+ var scrollLeft = scrollInfo.scrollLeft;
106
+ var sum = 0;
107
+ var currentIndex = 0;
108
+ for (var i = 0, len = middleColumns.length - 1; i < len; i++) {
109
+ var curCol = middleColumns[i];
110
+ sum += curCol.width || 100;
111
+ if (scrollLeft < sum) {
112
+ // 计算可视区域内需要渲染的列数
113
+ for (var j = i + 1; j < len; j++) {
114
+ var _props$scrollRef$curr;
115
+ var nextCol = middleColumns[j];
116
+ sum += nextCol.width || 100;
117
+ if (props.scrollRef.current && sum - scrollLeft >= ((_props$scrollRef$curr = props.scrollRef.current) === null || _props$scrollRef$curr === void 0 ? void 0 : _props$scrollRef$curr.clientWidth)) {
118
+ // 在原有基础上,右侧增加缓冲列
119
+ var visibleCount = j - i;
120
+ setRenderedCount(Math.min(visibleCount + BUFFER_COUNT * 2, len));
121
+ break;
122
+ }
123
+ }
124
+
125
+ // 左侧也增加缓冲列,但不能小于0
126
+ var bufferedStartIndex = Math.max(0, i - BUFFER_COUNT);
127
+ currentIndex = bufferedStartIndex + leftFixedColumns.length;
128
+ break;
129
+ }
130
+ }
131
+ setStartIndex(currentIndex);
132
+ };
133
+ (0, _react.useEffect)(function () {
134
+ if (!props.virtualColumn) return;
135
+ handleScroll({
136
+ scrollLeft: 0
137
+ });
138
+ }, []);
77
139
  return {
78
- columns: columns,
140
+ columns: props.virtualColumn ? columns.map(function (col, index) {
141
+ if (col.fixed) {
142
+ return col;
143
+ }
144
+ if (index < startIndex || index > startIndex + renderedCount) {
145
+ var colSpan;
146
+ if (index > startIndex + renderedCount && index === startIndex + renderedCount + 1) {
147
+ colSpan = function colSpan() {
148
+ return middleColumns.length - (startIndex + renderedCount) + 1;
149
+ };
150
+ } else if (index < startIndex && index === leftFixedColumns.length && startIndex > 0) {
151
+ colSpan = function colSpan() {
152
+ return startIndex;
153
+ };
154
+ }
155
+ return _objectSpread(_objectSpread({}, col), {}, {
156
+ colSpan: colSpan,
157
+ render: function render() {
158
+ return null;
159
+ },
160
+ title: null
161
+ });
162
+ }
163
+ return col;
164
+ }) : columns,
165
+ columnInfo: {
166
+ handleScroll: handleScroll
167
+ },
79
168
  expandHideCol: context.expandHideCol
80
169
  };
81
170
  };
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { TableColumnItem, BaseTableProps } from './use-table.type';
3
3
  import { KeygenResult } from '../../common/type';
4
- export interface UseTableFilterProps<Item = any> extends Pick<BaseTableProps<Item>, 'onSortCancel' | 'sorter' | 'data'> {
4
+ export interface UseTableFilterProps<Item = any> extends Pick<BaseTableProps<Item>, 'onSortCancel' | 'sorter' | 'data' | 'keygen'> {
5
5
  columns?: TableColumnItem<Item>[];
6
6
  }
7
7
  export interface FilterInfo<T> {
@@ -12,7 +12,7 @@ export type FilterMap<T> = Map<KeygenResult, FilterInfo<T>>;
12
12
  declare const useTableFilter: <Item = any>(props: UseTableFilterProps<Item>) => {
13
13
  filterInfo: FilterMap<Item>;
14
14
  setFilterInfo: import("react").Dispatch<import("react").SetStateAction<FilterMap<Item>>>;
15
- filteredData: Item[] | undefined;
15
+ filteredData: Item[];
16
16
  onFilterChange: (columnKey: KeygenResult, value: any) => void;
17
17
  };
18
18
  export default useTableFilter;
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-filter.d.ts","sourceRoot":"","sources":["use-table-filter.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,mBAAmB,CAAC,IAAI,GAAG,GAAG,CAC7C,SAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtE,OAAO,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;CACnC;AACD,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;CAC5C;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5D,QAAA,MAAM,cAAc;;;;gCA8BH,YAAY,SAAS,GAAG;CAyDxC,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"use-table-filter.d.ts","sourceRoot":"","sources":["use-table-filter.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGnE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,mBAAmB,CAAC,IAAI,GAAG,GAAG,CAC7C,SAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IACjF,OAAO,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;CACnC;AACD,MAAM,WAAW,UAAU,CAAC,CAAC;IAE3B,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;CAC5C;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5D,QAAA,MAAM,cAAc;;;;gCA+BH,YAAY,SAAS,GAAG;CAyDxC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -8,6 +8,7 @@ exports.default = void 0;
8
8
  var _react = require("react");
9
9
  var _usePersistFn = _interopRequireDefault(require("../../common/use-persist-fn"));
10
10
  var _is = require("../../utils/is");
11
+ var _utils = require("../../utils");
11
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
13
  function 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; }
13
14
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -32,10 +33,13 @@ var useTableFilter = function useTableFilter(props) {
32
33
  });
33
34
  }, [filterInfo]);
34
35
  var filteredData = (0, _react.useMemo)(function () {
35
- var _props$data;
36
+ var _props$columns;
36
37
  // why use slice: props.data引用不改变会导致后续的useMemo无法重新计算
37
38
  if (activeFilters.length === 0) return (props.data || []).slice();
38
- return (_props$data = props.data) === null || _props$data === void 0 ? void 0 : _props$data.filter(function (item) {
39
+ var columnHasChildren = (_props$columns = props.columns) === null || _props$columns === void 0 ? void 0 : _props$columns.find(function (col) {
40
+ return col.treeColumnsName;
41
+ });
42
+ return (0, _utils.getFilterTree)(props.data, function (item) {
39
43
  return activeFilters.every(function (key) {
40
44
  var filter = filterInfo.get(key);
41
45
  if ((filter === null || filter === void 0 ? void 0 : filter.value) === undefined) return true;
@@ -45,7 +49,9 @@ var useTableFilter = function useTableFilter(props) {
45
49
  }
46
50
  return true;
47
51
  });
48
- });
52
+ }, undefined, function (node) {
53
+ return (0, _utils.getKey)(props.keygen, node);
54
+ }, columnHasChildren === null || columnHasChildren === void 0 ? void 0 : columnHasChildren.treeColumnsName, false);
49
55
  }, [activeFilters, props.data]);
50
56
  var onFilterChange = (0, _usePersistFn.default)(function (columnKey, value) {
51
57
  // TODO: 暂未开放reset全部筛选条件
@@ -75,8 +81,8 @@ var useTableFilter = function useTableFilter(props) {
75
81
  // 根据columns生成filterInfo
76
82
  (0, _react.useEffect)(function () {
77
83
  setFilterInfo(function (prev) {
78
- var _props$columns;
79
- var _filterInfo = props === null || props === void 0 || (_props$columns = props.columns) === null || _props$columns === void 0 ? void 0 : _props$columns.reduce(function (acc, column, index) {
84
+ var _props$columns2;
85
+ var _filterInfo = props === null || props === void 0 || (_props$columns2 = props.columns) === null || _props$columns2 === void 0 ? void 0 : _props$columns2.reduce(function (acc, column, index) {
80
86
  var _prev$get2, _column$filter;
81
87
  if (!column.filter) return acc;
82
88
  var columnKey = typeof column.render === 'string' ? column.render : String(index);
@@ -298,7 +298,7 @@ var useTableLayout = function useTableLayout(props) {
298
298
  });
299
299
  var checkFloat = (0, _usePersistFn.default)(function () {
300
300
  var scrollEl = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current;
301
- if (!scrollEl) return;
301
+ if (!scrollEl || !(scrollEl !== null && scrollEl !== void 0 && scrollEl.offsetParent)) return;
302
302
  var max = scrollEl.scrollWidth - scrollEl.clientWidth;
303
303
  var min = 0;
304
304
  var left = scrollEl.scrollLeft;
@@ -1,9 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import { TableFormatColumn } from './use-table.type';
3
3
  interface UseTableVirtualProps {
4
+ virtual?: boolean | 'lazy';
4
5
  data: any[];
5
6
  rowsInView: number;
6
7
  rowHeight: number;
8
+ strictRowHeight?: number;
7
9
  scrollRef: React.RefObject<HTMLDivElement>;
8
10
  innerRef: React.RefObject<HTMLDivElement>;
9
11
  scrollLeft?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-virtual.d.ts","sourceRoot":"","sources":["use-table-virtual.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAWrD,UAAU,oBAAoB;IAC5B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;oBAqLpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BAnGuB,MAAM,UAAU,MAAM;2BAsIrB,MAAM,aAAa,MAAM,IAAI;qCAoBnB,MAAM;mCAUR,MAAM,GAAG,MAAM;;;;;CA2GnE,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"use-table-virtual.d.ts","sourceRoot":"","sources":["use-table-virtual.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAWrD,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;oBAoNpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BArHuB,MAAM,UAAU,MAAM;2BAwJrB,MAAM,aAAa,MAAM,IAAI;qCAoBnB,MAAM;mCAUR,MAAM,GAAG,MAAM;;;;;CA4GnE,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -35,11 +35,14 @@ function getMaxRowSpanLength(input) {
35
35
  return Math.max.apply(Math, _toConsumableArray(Array.from(map.values())));
36
36
  }
37
37
  var useTableVirtual = function useTableVirtual(props) {
38
+ var _props$scrollRef$curr;
38
39
  var _useState = (0, _react.useState)(0),
39
40
  _useState2 = _slicedToArray(_useState, 2),
40
41
  innerTop = _useState2[0],
41
42
  setTop = _useState2[1];
42
- var _useState3 = (0, _react.useState)(props.data.length * props.rowHeight),
43
+ var strictRowHeight = props.strictRowHeight ? props.strictRowHeight : 0;
44
+ var defaultScrollHeight = strictRowHeight ? props.data.length * strictRowHeight : props.data.length * props.rowHeight;
45
+ var _useState3 = (0, _react.useState)(defaultScrollHeight),
43
46
  _useState4 = _slicedToArray(_useState3, 2),
44
47
  scrollHeight = _useState4[0],
45
48
  setHeight = _useState4[1];
@@ -51,6 +54,15 @@ var useTableVirtual = function useTableVirtual(props) {
51
54
  _useState8 = _slicedToArray(_useState7, 2),
52
55
  offsetY = _useState8[0],
53
56
  setOffsetY = _useState8[1];
57
+
58
+ // TODO: 尝试垂直滚动采用延迟销毁 + 操作dom transform方案提升性能?
59
+ // const setTop = (v: number) => {
60
+ // if (props.virtual === 'lazy') {
61
+ // props.innerRef.current && (props.innerRef.current.style.transform = `translate3d(0, ${-v}px, 0)`);
62
+ // } else {
63
+ // }
64
+ // _setTop(v);
65
+ // }
54
66
  var rowsInView = props.rowsInView === 0 ? props.data.length : props.rowsInView;
55
67
  var rowSpanInfo = (0, _react.useMemo)(function () {
56
68
  var rowSpanColumns = props.columns.filter(function (col) {
@@ -125,6 +137,9 @@ var useTableVirtual = function useTableVirtual(props) {
125
137
  context = _useRef.current;
126
138
  var getContentHeight = function getContentHeight(index) {
127
139
  if (props.disabled) return 0;
140
+ if (strictRowHeight) {
141
+ return strictRowHeight * (index + 1) + props.theadHeight + props.tfootHeight;
142
+ }
128
143
  var sum = 0;
129
144
  for (var i = 0; i <= index; i++) {
130
145
  sum += context.cachedHeight[i] || props.rowHeight;
@@ -150,17 +165,26 @@ var useTableVirtual = function useTableVirtual(props) {
150
165
  });
151
166
  }
152
167
  });
168
+
169
+ // const setStartIndex2 = (index:number) => {
170
+ // let sum = 0;
171
+ // for (let i = 0; i < index; i++) {
172
+ // sum += context.cachedHeight[i] || props.rowHeight;
173
+ // }
174
+ // props.innerRef.current && (props.innerRef.current.style.transform = `translate3d(0, ${-innerTop + sum}px, 0)`);
175
+ // setStartIndex(index);
176
+ // }
177
+
178
+ var maxIndex = Math.max(props.data.length - rowsInView, 0);
179
+ var scrollContainerHeight = Math.max(((_props$scrollRef$curr = props.scrollRef.current) === null || _props$scrollRef$curr === void 0 ? void 0 : _props$scrollRef$curr.clientHeight) || 0, 200);
153
180
  var updateIndexAndTopFromTop = function updateIndexAndTopFromTop(scrollTop, fromDrag) {
154
- var _props$scrollRef$curr;
155
181
  if (props.disabled) return;
156
182
  var sum = 0;
157
183
  var currentIndex = 0;
158
184
  var top = 0;
159
- var maxIndex = Math.max(props.data.length - rowsInView, 0);
160
- var scrollContainerHeight = Math.max(((_props$scrollRef$curr = props.scrollRef.current) === null || _props$scrollRef$curr === void 0 ? void 0 : _props$scrollRef$curr.clientHeight) || 0, 200);
161
185
  for (var i = 0; i <= maxIndex; i++) {
162
186
  context.rowSpanRows = 0;
163
- var currentRowHeight = context.cachedHeight[i] || props.rowHeight;
187
+ var currentRowHeight = strictRowHeight || context.cachedHeight[i] || props.rowHeight;
164
188
  sum += currentRowHeight;
165
189
  var rowSpanHeight = 0;
166
190
  if (rowSpanInfo) {
@@ -175,17 +199,26 @@ var useTableVirtual = function useTableVirtual(props) {
175
199
  if (rowSpanHeight < scrollContainerHeight) {
176
200
  var index = siblingsIndexs[j];
177
201
  context.rowSpanRows += 1;
178
- rowSpanHeight += context.cachedHeight[index] || props.rowHeight;
202
+ rowSpanHeight += strictRowHeight || context.cachedHeight[index] || props.rowHeight;
179
203
  }
180
204
  }
181
205
  }
182
206
  if (scrollTop < sum + rowSpanHeight || i === maxIndex) {
183
207
  currentIndex = i;
184
- var beforeHeight = i === 0 ? 0 : sum - (context.cachedHeight[i] || props.rowHeight);
208
+ var beforeHeight = i === 0 ? 0 : sum - (strictRowHeight || context.cachedHeight[i] || props.rowHeight);
185
209
  top = scrollTop - beforeHeight;
186
210
  break;
187
211
  }
188
212
  }
213
+ // if (props.virtual === 'lazy') {
214
+ // setTop(scrollTop);
215
+ // context.autoAddRows = currentIndex
216
+ // setTimeout(() => {
217
+ // setStartIndex2(currentIndex);
218
+ // context.autoAddRows = 0
219
+ // }, 300);
220
+ // return;
221
+ // }
189
222
  if (currentIndex !== startIndex) {
190
223
  setStartIndex(currentIndex);
191
224
 
@@ -314,16 +347,16 @@ var useTableVirtual = function useTableVirtual(props) {
314
347
  var addonHeight = 0;
315
348
  var addonCount = 0;
316
349
  for (var i = startIndex + rowsInView; i < props.data.length; i++) {
317
- var height = context.cachedHeight[i] || props.rowHeight;
350
+ var height = strictRowHeight || context.cachedHeight[i] || props.rowHeight;
318
351
  addonHeight += height;
319
352
  addonCount += 1;
320
- if (addonHeight >= remainHeight + context.cachedHeight[0]) break;
353
+ if (addonHeight >= remainHeight + (strictRowHeight || context.cachedHeight[0])) break;
321
354
  }
322
355
  if (addonCount > 0) {
323
356
  context.autoAddRows = addonCount;
324
357
  }
325
358
  }
326
- }, []);
359
+ }, [props.data.length]);
327
360
  (0, _react.useEffect)(function () {
328
361
  // 记录preIndex
329
362
  context.preIndex = startIndex;
@@ -366,6 +399,7 @@ var useTableVirtual = function useTableVirtual(props) {
366
399
  return _toConsumableArray(props.data).slice(startIndex, startIndex + finalRowsInView);
367
400
  }, [props.data, props.disabled, startIndex, finalRowsInView]);
368
401
  var translateStyle = (0, _react.useMemo)(function () {
402
+ // if (props.virtual === 'lazy') return 'translate3d(0, 0, 0)';
369
403
  var t = innerTop + offsetY;
370
404
  if (t < 0) {
371
405
  t = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["element.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,EACzB,WAAW,UAAQ,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,KAAK,CAAC,SAAS,CASjB;AAGD,eAAO,MAAM,iBAAiB,OACxB,WAAW,WACN,GAAG;;;gBA4Cb,CAAC;AAEF,wBAAgB,SAAS,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,kBAmBxF;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,WAAW,WAW3C;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,CAqBzF;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,EACrC,SAAS,GAAE,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,EAA0B,sBAuBrE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,mBAAmB,EAAE,KAAK,EAAE,MAAM,WAYxE;AAED,eAAO,MAAM,eAAe,QAAS,MAAM,WAAwC,CAAC;AAEpF,eAAO,MAAM,UAAU,UAAW,MAAM,aAAa,MAAM,uBAG1D,CAAC;AAEF,eAAO,MAAM,cAAc,UAAW,MAAM,aAAa,MAAM,WAG9D,CAAC"}
1
+ {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["element.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,EACzB,WAAW,UAAQ,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,KAAK,CAAC,SAAS,CASjB;AAGD,eAAO,MAAM,iBAAiB,OACxB,WAAW,WACN,GAAG;;;gBA+Cb,CAAC;AAEF,wBAAgB,SAAS,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,kBAmBxF;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,WAAW,WAW3C;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,CAqBzF;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,EACrC,SAAS,GAAE,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,EAA0B,sBAuBrE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,mBAAmB,EAAE,KAAK,EAAE,MAAM,WAYxE;AAED,eAAO,MAAM,eAAe,QAAS,MAAM,WAAwC,CAAC;AAEpF,eAAO,MAAM,UAAU,UAAW,MAAM,aAAa,MAAM,uBAG1D,CAAC;AAEF,eAAO,MAAM,cAAc,UAAW,MAAM,aAAa,MAAM,WAG9D,CAAC"}
@@ -75,6 +75,9 @@ var addResizeObserver = exports.addResizeObserver = function addResizeObserver(e
75
75
  lastWidth = el.clientWidth;
76
76
  lastHeight = el.clientHeight;
77
77
  h = function h(entry) {
78
+ if ((el === null || el === void 0 ? void 0 : el.offsetParent) === null) {
79
+ return;
80
+ }
78
81
  var _entry$0$contentRect = entry[0].contentRect,
79
82
  width = _entry$0$contentRect.width,
80
83
  height = _entry$0$contentRect.height;
@@ -0,0 +1,4 @@
1
+ export declare const getDataset: <T extends {}>(props?: T | undefined) => {
2
+ [key: string]: T[keyof T];
3
+ };
4
+ //# sourceMappingURL=get-dataset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-dataset.d.ts","sourceRoot":"","sources":["get-dataset.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;CAWtB,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getDataset = void 0;
7
+ var getDataset = exports.getDataset = function getDataset(props) {
8
+ if (!props) return {};
9
+ var dataset = {};
10
+ var keys = Object.keys(props);
11
+ for (var i = 0; i < keys.length; i++) {
12
+ var _key = keys[i];
13
+ if (_key.startsWith('data-')) {
14
+ dataset[_key] = props[keys[i]];
15
+ }
16
+ }
17
+ return dataset;
18
+ };
@@ -4,6 +4,7 @@ export type { OldWheelEvent } from './normalize-wheel.type';
4
4
  export * from './ready';
5
5
  export * from './element';
6
6
  export * from './document';
7
+ export * from './get-dataset';
7
8
  export { default as ResponsiveObserve } from './responsiveObserve';
8
9
  export type { Breakpoint, ScreenMap } from './responsiveObserve.type';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC"}
@@ -76,5 +76,17 @@ Object.keys(_document).forEach(function (key) {
76
76
  }
77
77
  });
78
78
  });
79
+ var _getDataset = require("./get-dataset");
80
+ Object.keys(_getDataset).forEach(function (key) {
81
+ if (key === "default" || key === "__esModule") return;
82
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
83
+ if (key in exports && exports[key] === _getDataset[key]) return;
84
+ Object.defineProperty(exports, key, {
85
+ enumerable: true,
86
+ get: function get() {
87
+ return _getDataset[key];
88
+ }
89
+ });
90
+ });
79
91
  var _responsiveObserve = _interopRequireDefault(require("./responsiveObserve"));
80
92
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -1,6 +1,6 @@
1
1
  import { MessageType } from './rule.type';
2
2
  declare const _default: ({ message }?: {
3
3
  message?: MessageType | undefined;
4
- }) => (regExp: string | RegExp, msg?: MessageType) => import("../..").ObjectType | null;
4
+ }) => (regExp: string | RegExp, msg?: MessageType) => import("@sheinx/base").ObjectType | null;
5
5
  export default _default;
6
6
  //# sourceMappingURL=regexp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"required.d.ts","sourceRoot":"","sources":["required.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,eAAO,MAAM,eAAe,UAAW,UAAU,WAGhD,CAAC;;;YAEM,WAAW;AADnB,wBASM"}
1
+ {"version":3,"file":"required.d.ts","sourceRoot":"","sources":["required.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK1C,eAAO,MAAM,eAAe,UAAW,UAAU,WAGhD,CAAC;;;YAEM,WAAW;AADnB,wBASM"}
@@ -4,13 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.requiredMessage = exports.default = void 0;
7
+ var _base = require("@sheinx/base");
7
8
  var _object = require("../object");
9
+ var _string = require("../string");
8
10
  var options = {
9
11
  skipUndefined: true
10
12
  };
11
13
  var requiredMessage = exports.requiredMessage = function requiredMessage(props) {
12
14
  var type = props.type === 'array' ? 'array' : 'string';
13
- return "$rules.required.".concat(type);
15
+ return (0, _string.substitute)((0, _base.getLocale)(_base.config.locale, "rules.required.".concat(type)), props);
14
16
  };
15
17
  var _default = exports.default = function _default() {
16
18
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
@@ -61,7 +61,7 @@ function getRule(rule, props) {
61
61
  return;
62
62
  }
63
63
  if (reg.global) reg.lastIndex = 0;
64
- if (typeof value === 'string' && reg.test(value)) {
64
+ if (reg.test(value)) {
65
65
  callback(true);
66
66
  } else {
67
67
  callback(new _error.FormError(po.message, po));
@@ -13,7 +13,7 @@ export interface UseFilterProps<DataItem> {
13
13
  firstMatch?: boolean;
14
14
  onFilter?: (text: string, from?: string) => void | ((data: DataItem) => boolean);
15
15
  onFilterWidthCreate?: (data: DataItem, createdData: DataItem, key: string | number) => boolean;
16
- onCreate?: ((input: string | DataItem) => DataItem | string) | boolean;
16
+ onCreate?: ((input: string) => DataItem | string) | boolean;
17
17
  filterDelay?: number;
18
18
  }
19
19
  //# sourceMappingURL=use-filter.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-filter.type.d.ts","sourceRoot":"","sources":["use-filter.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,cAAc,CAAC,QAAQ;IACtC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAE1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IACjF,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC;IAC/F,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,KAAK,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"use-filter.type.d.ts","sourceRoot":"","sources":["use-filter.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,cAAc,CAAC,QAAQ;IACtC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAE1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IACjF,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC;IAC/F,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-Input-able.d.ts","sourceRoot":"","sources":["use-Input-able.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;;;;EA2E3F"}
1
+ {"version":3,"file":"use-Input-able.d.ts","sourceRoot":"","sources":["use-Input-able.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;;;;EA6E3F"}
@@ -4,7 +4,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
4
4
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
5
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
6
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
- import { useEffect, useRef, useState } from 'react';
7
+ import { useLayoutEffect, useRef, useState } from 'react';
8
8
  import { isFunc } from "../../utils/is";
9
9
  import { shallowEqual } from "../../utils/shallow-equal";
10
10
  import usePersistFn from "../use-persist-fn";
@@ -39,19 +39,18 @@ export default function useInputAble(props) {
39
39
  var render = useRender(syncValue);
40
40
  var shouldUseState = delay || !control;
41
41
  var value = shouldUseState ? stateValue : valuePo;
42
- useEffect(function () {
43
- if (context.timer) {
44
- clearTimeout(context.timer);
45
- context.timer = null;
46
- }
42
+ useLayoutEffect(function () {
47
43
  if (delay && control && props.value !== stateValue) {
48
44
  changeStateValue(props.value);
45
+ } else if (context.timer) {
46
+ clearTimeout(context.timer);
47
+ context.timer = null;
49
48
  }
50
49
  }, [props.value, delay, control]);
51
50
  var forceDelayChange = usePersistFn(function () {
52
- if (context.timer && context.delayChange) {
51
+ if (context.delayChange) context.delayChange();
52
+ if (context.timer) {
53
53
  clearTimeout(context.timer);
54
- context.delayChange();
55
54
  context.timer = null;
56
55
  context.delayChange = null;
57
56
  }
@@ -8,7 +8,7 @@ declare const useButton: (props?: BaseButtonProps) => {
8
8
  text?: boolean | undefined;
9
9
  outline?: boolean | undefined;
10
10
  type?: import("./use-button.type").ButtonType | undefined;
11
- size?: "small" | "default" | "large" | undefined;
11
+ size?: "small" | "large" | "default" | undefined;
12
12
  space?: boolean | undefined;
13
13
  shape?: import("./use-button.type").ButtonShape | undefined;
14
14
  buttonRef?: React.Ref<HTMLButtonElement> | undefined;
@@ -22,7 +22,7 @@ declare const useButton: (props?: BaseButtonProps) => {
22
22
  text?: boolean | undefined;
23
23
  outline?: boolean | undefined;
24
24
  type?: import("./use-button.type").ButtonType | undefined;
25
- size?: "small" | "default" | "large" | undefined;
25
+ size?: "small" | "large" | "default" | undefined;
26
26
  space?: boolean | undefined;
27
27
  shape?: import("./use-button.type").ButtonShape | undefined;
28
28
  buttonRef?: React.Ref<HTMLButtonElement> | undefined;
@@ -4,6 +4,18 @@ export interface UseCarouselProps {
4
4
  * 自动播放间隔时间, 等于0 不自动播放
5
5
  */
6
6
  interval?: number;
7
+ /**
8
+ * 默认当前索引(非受控模式)
9
+ */
10
+ defaultValue?: number;
11
+ /**
12
+ * 当前索引(受控模式)
13
+ */
14
+ value?: number;
15
+ /**
16
+ * 当前索引变化回调
17
+ */
18
+ onChange?: (current: number) => void;
7
19
  onMove?: (current: number, extra: {
8
20
  prev: number;
9
21
  direction: 'forward' | 'backward';
@@ -1 +1 @@
1
- {"version":3,"file":"use-carousel.d.ts","sourceRoot":"","sources":["use-carousel.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CACP,OAAO,EAAE,MAAM,EACf,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;QAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,KACtF,IAAI,CAAC;CACX;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAE5D,QAAA,MAAM,WAAW,UAAW,gBAAgB;;;;;;;;;oBAcV,MAAM;;CAmEvC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"use-carousel.d.ts","sourceRoot":"","sources":["use-carousel.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,CACP,OAAO,EAAE,MAAM,EACf,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;QAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,KACtF,IAAI,CAAC;CACX;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAE5D,QAAA,MAAM,WAAW,UAAW,gBAAgB;;;;;;;;;oBAyCV,MAAM;;CA4FvC,CAAC;AAEF,eAAe,WAAW,CAAC"}