@sheinx/hooks 3.5.3 → 3.5.4-beta.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. package/cjs/components/use-datepicker/use-date.d.ts.map +1 -1
  2. package/cjs/components/use-datepicker/use-date.js +2 -0
  3. package/cjs/components/use-datepicker/use-date.type.d.ts +3 -0
  4. package/cjs/components/use-datepicker/use-date.type.d.ts.map +1 -1
  5. package/cjs/components/use-datepicker/use-datepicker-format.d.ts +2 -0
  6. package/cjs/components/use-datepicker/use-datepicker-format.d.ts.map +1 -1
  7. package/cjs/components/use-datepicker/use-datepicker-format.js +81 -11
  8. package/cjs/components/use-datepicker/use-datepicker-range.type.d.ts +1 -0
  9. package/cjs/components/use-datepicker/use-datepicker-range.type.d.ts.map +1 -1
  10. package/cjs/components/use-form/use-form-context.d.ts +1 -1
  11. package/cjs/components/use-form/use-form-context.js +2 -2
  12. package/cjs/components/use-table/use-table-tree.d.ts.map +1 -1
  13. package/cjs/components/use-table/use-table-tree.js +4 -0
  14. package/cjs/components/use-table/use-table-virtual.d.ts.map +1 -1
  15. package/cjs/components/use-table/use-table-virtual.js +19 -18
  16. package/esm/components/use-datepicker/use-date.d.ts.map +1 -1
  17. package/esm/components/use-datepicker/use-date.js +2 -0
  18. package/esm/components/use-datepicker/use-date.type.d.ts +3 -0
  19. package/esm/components/use-datepicker/use-date.type.d.ts.map +1 -1
  20. package/esm/components/use-datepicker/use-datepicker-format.d.ts +2 -0
  21. package/esm/components/use-datepicker/use-datepicker-format.d.ts.map +1 -1
  22. package/esm/components/use-datepicker/use-datepicker-format.js +81 -11
  23. package/esm/components/use-datepicker/use-datepicker-range.type.d.ts +1 -0
  24. package/esm/components/use-datepicker/use-datepicker-range.type.d.ts.map +1 -1
  25. package/esm/components/use-form/use-form-context.d.ts +1 -1
  26. package/esm/components/use-form/use-form-context.js +1 -1
  27. package/esm/components/use-table/use-table-tree.d.ts.map +1 -1
  28. package/esm/components/use-table/use-table-tree.js +4 -0
  29. package/esm/components/use-table/use-table-virtual.d.ts.map +1 -1
  30. package/esm/components/use-table/use-table-virtual.js +19 -18
  31. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"use-date.d.ts","sourceRoot":"","sources":["use-date.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAU/C,QAAA,MAAM,OAAO,UAAW,YAAY;;;;;;;;;;wBAmBX,IAAI;2BAkDD,IAAI;yBAgBN,IAAI;0BAiDH,IAAI;+BArEC,IAAI;+BA+CJ,IAAI,YAAY,OAAO;0BAnB5B,IAAI;2BAIH,IAAI;;gCAIC,IAAI;;CAgFpC,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"use-date.d.ts","sourceRoot":"","sources":["use-date.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAU/C,QAAA,MAAM,OAAO,UAAW,YAAY;;;;;;;;;;wBAmBX,IAAI;2BAkDD,IAAI;yBAkBN,IAAI;0BAkDH,IAAI;+BAxEC,IAAI;+BAiDJ,IAAI,YAAY,OAAO;0BAnB5B,IAAI;2BAIH,IAAI;;gCAIC,IAAI;;CAiFpC,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -17,6 +17,7 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
17
17
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18
18
  var useDate = function useDate(props) {
19
19
  var options = props.options,
20
+ position = props.position,
20
21
  type = props.type;
21
22
  var _useState = (0, _react.useState)(props.defaultCurrent || new Date()),
22
23
  _useState2 = _slicedToArray(_useState, 2),
@@ -109,6 +110,7 @@ var useDate = function useDate(props) {
109
110
  var _props$onChange;
110
111
  if (isDisabled(date)) return;
111
112
  var newDate = getDateWithTime(date);
113
+ props === null || props === void 0 || props.onClearInputArr(position === 'start' ? 0 : 1);
112
114
  (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, newDate, noClose);
113
115
  setCurrent(newDate);
114
116
  };
@@ -1,12 +1,15 @@
1
1
  export interface UseDateProps {
2
2
  current?: Date;
3
+ range?: boolean | number;
3
4
  rangeDate?: Array<Date | undefined>;
4
5
  defaultCurrent?: Date;
5
6
  onCurrentChange?: (date: Date) => void;
7
+ onClearInputArr: (index?: number | undefined) => void;
6
8
  value?: Date;
7
9
  onChange?: (date: Date, noClose?: boolean) => void;
8
10
  min?: Date;
9
11
  max?: Date;
12
+ position?: 'start' | 'end';
10
13
  type?: 'date' | 'week' | 'datetime';
11
14
  format?: string;
12
15
  disabled?: boolean | ((date: Date) => boolean);
@@ -1 +1 @@
1
- {"version":3,"file":"use-date.type.d.ts","sourceRoot":"","sources":["use-date.type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH"}
1
+ {"version":3,"file":"use-date.type.d.ts","sourceRoot":"","sources":["use-date.type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACvC,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACtD,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH"}
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { DatePickerModeType, DatePickerValueType, UseDatePickerFormatProps } from './use-datepicker-format.type';
3
3
  declare const useDatePickerFormat: <Value extends DatePickerValueType>(props: UseDatePickerFormatProps<Value>) => {
4
+ inputArr: (Date | undefined)[];
4
5
  resultArr: (string | undefined)[];
5
6
  targetResultArr: (string | undefined)[];
6
7
  dateArr: (Date | undefined)[];
@@ -17,6 +18,7 @@ declare const useDatePickerFormat: <Value extends DatePickerValueType>(props: Us
17
18
  setCurrentArr: React.Dispatch<React.SetStateAction<Date[]>>;
18
19
  setTargetArr: React.Dispatch<React.SetStateAction<(Date | undefined)[]>>;
19
20
  handleClear: (e?: React.MouseEvent) => void;
21
+ handleClearInputArr: (index?: number) => void;
20
22
  handleInputChange: (str: string, index: number) => void;
21
23
  registerModeDisabled: (position: 'start' | 'end' | undefined, mode: string, fn: (d: Date) => boolean) => void;
22
24
  setCurrentArrWithParams: (arg: React.SetStateAction<Date[]>, type: string, quick: {
@@ -1 +1 @@
1
- {"version":3,"file":"use-datepicker-format.d.ts","sourceRoot":"","sources":["use-datepicker-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AAkEtC,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;0BAmJe,gBAAgB;iCAgCT,MAAM,SAAS,MAAM;yCAjIrD,OAAO,GAAG,KAAK,GAAG,SAAS,QAAQ,MAAM,UAAU,IAAI,KAAK,OAAO;uCAWvE,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,QAC3B,MAAM;kBACG,MAAM,SAAS;mBAAS,GAAG;;+BASrC,IAAI,YAAY,OAAO,GAAG,KAAK,GAAG,SAAS,gBAAgB,MAAM;;CA+K3E,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"use-datepicker-format.d.ts","sourceRoot":"","sources":["use-datepicker-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AAkEtC,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;0BAqMe,gBAAgB;sCAiEJ,MAAM;iCA7BX,MAAM,SAAS,MAAM;yCAtLrD,OAAO,GAAG,KAAK,GAAG,SAAS,QAAQ,MAAM,UAAU,IAAI,KAAK,OAAO;uCAWvE,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,QAC3B,MAAM;kBACG,MAAM,SAAS;mBAAS,GAAG;;+BA4CrC,IAAI,YAAY,OAAO,GAAG,KAAK,GAAG,SAAS,gBAAgB,MAAM;;CAsN3E,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -115,13 +115,17 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
115
115
  _useState8 = _slicedToArray(_useState7, 2),
116
116
  targetArr = _useState8[0],
117
117
  setTargetArr = _useState8[1];
118
- var _useState9 = (0, _react.useState)({
118
+ var _useState9 = (0, _react.useState)([]),
119
+ _useState10 = _slicedToArray(_useState9, 2),
120
+ inputArr = _useState10[0],
121
+ setInputArr = _useState10[1];
122
+ var _useState11 = (0, _react.useState)({
119
123
  type: undefined,
120
124
  quick: undefined
121
125
  }),
122
- _useState10 = _slicedToArray(_useState9, 2),
123
- params = _useState10[0],
124
- setParams = _useState10[1];
126
+ _useState12 = _slicedToArray(_useState11, 2),
127
+ params = _useState12[0],
128
+ setParams = _useState12[1];
125
129
  var _useRef = (0, _react.useRef)({
126
130
  cachedDateArr: convertValueToDateArr(value, format, options),
127
131
  modeDisabledStart: {},
@@ -129,14 +133,14 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
129
133
  }),
130
134
  context = _useRef.current;
131
135
  // 当edit 为true时,stateDate 否则返回 props date
132
- var _useState11 = (0, _react.useState)(context.cachedDateArr),
133
- _useState12 = _slicedToArray(_useState11, 2),
134
- stateDate = _useState12[0],
135
- setStateDate = _useState12[1];
136
- var _useState13 = (0, _react.useState)(false),
136
+ var _useState13 = (0, _react.useState)(context.cachedDateArr),
137
137
  _useState14 = _slicedToArray(_useState13, 2),
138
- edit = _useState14[0],
139
- setEdit = _useState14[1];
138
+ stateDate = _useState14[0],
139
+ setStateDate = _useState14[1];
140
+ var _useState15 = (0, _react.useState)(false),
141
+ _useState16 = _slicedToArray(_useState15, 2),
142
+ edit = _useState16[0],
143
+ setEdit = _useState16[1];
140
144
 
141
145
  // 收集所有的disabled
142
146
  var registerModeDisabled = (0, _usePersistFn.usePersistFn)(function (position, mode, fn) {
@@ -154,6 +158,39 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
154
158
  quick: quick
155
159
  });
156
160
  });
161
+ var isDisabledInputDate = function isDisabledInputDate(rangeData) {
162
+ var start = rangeData[0];
163
+ var end = rangeData[1];
164
+ var isDis = false;
165
+ if (disabled && typeof disabled === 'function') {
166
+ if (start && disabled(start)) isDis = true;
167
+ if (end && disabled(end)) isDis = true;
168
+ if (isDis) return isDis;
169
+ }
170
+ if (start && end) {
171
+ if (_util.default.compareAsc(start, end) > 0) {
172
+ isDis = true;
173
+ return isDis;
174
+ }
175
+ }
176
+ if (range && typeof range === 'number') {
177
+ if (start) {
178
+ if (!end) return isDis;
179
+ var rangeDate = _util.default.addSeconds(start, range, options);
180
+ if (_util.default.compareAsc(end, rangeDate) > 0) {
181
+ isDis = true;
182
+ }
183
+ }
184
+ if (end) {
185
+ if (!start) return isDis;
186
+ var _rangeDate = _util.default.addSeconds(end, -range, options);
187
+ if (_util.default.compareAsc(start, _rangeDate) < 0) {
188
+ isDis = true;
189
+ }
190
+ }
191
+ }
192
+ return isDis;
193
+ };
157
194
  var isDisabledDate = (0, _usePersistFn.usePersistFn)(function (date, position, triggerType) {
158
195
  var mode = getTypeMode(type);
159
196
  var disabled = position === 'end' ? context.modeDisabledEnd[mode] : context.modeDisabledStart[mode];
@@ -210,6 +247,19 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
210
247
  var finishEdit = function finishEdit() {
211
248
  setEdit(false);
212
249
  var formatValue = getFormatValueArr(stateDate);
250
+ if (inputArr.length && inputArr.some(function (i) {
251
+ return i;
252
+ })) {
253
+ var inputValue = stateDate.map(function (item, index) {
254
+ if (inputArr[index]) return inputArr[index];
255
+ return item;
256
+ });
257
+ var isDis = isDisabledInputDate(inputValue);
258
+ if (!isDis) {
259
+ formatValue = getFormatValueArr(inputValue);
260
+ }
261
+ }
262
+ // const formatValue = getFormatValueArr(stateDate);
213
263
  var v = range ? formatValue : formatValue[0];
214
264
  if (range && (!stateDate[0] || !stateDate[1]) && !props.allowSingle) {
215
265
  return;
@@ -224,6 +274,7 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
224
274
  if (!clearable) return;
225
275
  e === null || e === void 0 || e.stopPropagation();
226
276
  if (disabledStatus === 'all') return;
277
+ setInputArr([]);
227
278
  if (edit) {
228
279
  if (range) {
229
280
  if (disabledStatus === 'left') setStateDate(function (arr) {
@@ -259,6 +310,12 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
259
310
  var isValid = _util.default.isValidString(str, format);
260
311
  if (!isValid) return;
261
312
  var date = _util.default.toDateWithFormat(str, format, undefined, options);
313
+ setInputArr(function (prev) {
314
+ var arr = _toConsumableArray(prev);
315
+ arr[index] = date;
316
+ return arr;
317
+ });
318
+
262
319
  // 此次校验是由输入触发的
263
320
  if (date && isDisabledDate(date, index === 1 ? 'end' : 'start', 'input')) {
264
321
  return;
@@ -274,6 +331,17 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
274
331
  return arr;
275
332
  });
276
333
  });
334
+ var handleClearInputArr = (0, _usePersistFn.usePersistFn)(function (index) {
335
+ if (index !== undefined) {
336
+ setInputArr(function (prev) {
337
+ var arr = _toConsumableArray(prev);
338
+ arr[index] = undefined;
339
+ return arr;
340
+ });
341
+ return;
342
+ }
343
+ setInputArr([]);
344
+ });
277
345
  (0, _react.useEffect)(function () {
278
346
  handlePropsValueChange(value);
279
347
  }, [value]);
@@ -304,12 +372,14 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
304
372
  setCurrentArr: setCurrentArr,
305
373
  setTargetArr: setTargetArr,
306
374
  handleClear: handleClear,
375
+ handleClearInputArr: handleClearInputArr,
307
376
  handleInputChange: handleInputChange,
308
377
  registerModeDisabled: registerModeDisabled,
309
378
  setCurrentArrWithParams: setCurrentArrWithParams,
310
379
  isDisabledDate: isDisabledDate
311
380
  });
312
381
  return {
382
+ inputArr: inputArr,
313
383
  resultArr: resultArr,
314
384
  targetResultArr: targetResultArr,
315
385
  dateArr: dateArr,
@@ -8,6 +8,7 @@ export interface useRangeProps {
8
8
  min: DateType;
9
9
  max: DateType;
10
10
  dateArr: Array<Date | undefined>;
11
+ inputArr: (Date | undefined)[];
11
12
  setTargetArr: Dispatch<SetStateAction<Array<Date | undefined>>>;
12
13
  setDateArr: Dispatch<SetStateAction<Array<Date | undefined>>>;
13
14
  currentArr: Date[];
@@ -1 +1 @@
1
- {"version":3,"file":"use-datepicker-range.type.d.ts","sourceRoot":"","sources":["use-datepicker-range.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AACnD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,EAAE,QAAQ,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IACjC,YAAY,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAChE,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9D,UAAU,EAAE,IAAI,EAAE,CAAC;IACnB,aAAa,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACrE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACxD,QAAQ,EACJ,OAAO,GACP,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,GACvF,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,GAC1C,SAAS,CAAC;IACd,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB"}
1
+ {"version":3,"file":"use-datepicker-range.type.d.ts","sourceRoot":"","sources":["use-datepicker-range.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AACnD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,EAAE,QAAQ,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IACjC,QAAQ,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;IAC/B,YAAY,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAChE,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9D,UAAU,EAAE,IAAI,EAAE,CAAC;IACnB,aAAa,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACrE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACxD,QAAQ,EACJ,OAAO,GACP,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,GACvF,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,GAC1C,SAAS,CAAC;IACd,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB"}
@@ -2,5 +2,5 @@ import React from 'react';
2
2
  import { FormRef } from './use-form-context.type';
3
3
  export declare const FormContext: React.Context<any>;
4
4
  export declare function useFormRef<V>(): [FormRef<V>, ((formRef: FormRef<V>) => void)];
5
- export declare function useFromInstance<V>(): FormRef<V>;
5
+ export declare function useFormInstance<V>(): FormRef<V>;
6
6
  //# sourceMappingURL=use-form-context.d.ts.map
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.FormContext = void 0;
7
+ exports.useFormInstance = useFormInstance;
7
8
  exports.useFormRef = useFormRef;
8
- exports.useFromInstance = useFromInstance;
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
11
  var FormContext = exports.FormContext = /*#__PURE__*/_react.default.createContext({});
@@ -16,7 +16,7 @@ function useFormRef() {
16
16
  };
17
17
  return [ref.current, setFormRef];
18
18
  }
19
- function useFromInstance() {
19
+ function useFormInstance() {
20
20
  var formCtx = _react.default.useContext(FormContext);
21
21
  return formCtx;
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-tree.d.ts","sourceRoot":"","sources":["use-table-tree.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AA8CvD,MAAM,WAAW,iBACf,SAAQ,IAAI,CACV,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EACvC,cAAc,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,QAAQ,CACvE;IACD,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAED,eAAO,MAAM,YAAY,UAAW,iBAAiB;;;;;;+BA6BR,GAAG,SAAS,MAAM;iCAjBhB,GAAG,SAAS,MAAM;;CAuDhE,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"use-table-tree.d.ts","sourceRoot":"","sources":["use-table-tree.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AA+CvD,MAAM,WAAW,iBACf,SAAQ,IAAI,CACV,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EACvC,cAAc,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,QAAQ,CACvE;IACD,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAED,eAAO,MAAM,YAAY,UAAW,iBAAiB;;;;;;+BA6BR,GAAG,SAAS,MAAM;iCAjBhB,GAAG,SAAS,MAAM;;CA4DhE,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -9,6 +9,7 @@ var _usePersistFn = require("../../common/use-persist-fn");
9
9
  var _render = require("../../utils/render");
10
10
  var _is = require("../../utils/is");
11
11
  var _useLatestObj = require("../../common/use-latest-obj");
12
+ var _ = require("../..");
12
13
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
13
14
  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."); }
14
15
  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; } }
@@ -119,6 +120,9 @@ var useTableTree = exports.useTableTree = function useTableTree(props) {
119
120
  var newExpandKeys = expandKeysState.filter(function (key) {
120
121
  return !unmatchExpandKeys.includes(key);
121
122
  });
123
+ if (_.util.shallowEqual(newExpandKeys, expandKeysState)) {
124
+ return;
125
+ }
122
126
  setExpandKeysState(newExpandKeys);
123
127
  }, [unmatchExpandKeys, expandKeysState]);
124
128
  return {
@@ -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;AAYrD,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;CAC3C;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;;oBAkMpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BA/FuB,MAAM,UAAU,MAAM;0BAxBtB,MAAM,QAAQ,MAAM;2BA2JnB,MAAM,aAAa,MAAM,IAAI;qCAoBnB,MAAM;mCAWR,MAAM,GAAG,MAAM;CAyFnE,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,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;CAC3C;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;;oBA+LpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BA3FuB,MAAM,UAAU,MAAM;0BAxBtB,MAAM,QAAQ,MAAM;2BAuJnB,MAAM,aAAa,MAAM,IAAI;qCAoBnB,MAAM;mCAWR,MAAM,GAAG,MAAM;CAyFnE,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -34,7 +34,6 @@ function getMaxRowSpanLength(input) {
34
34
  }
35
35
  return Math.max.apply(Math, _toConsumableArray(Array.from(map.values())));
36
36
  }
37
- var MAX_ROW_SPAN = 200;
38
37
  var useTableVirtual = function useTableVirtual(props) {
39
38
  var _useState = (0, _react.useState)(0),
40
39
  _useState2 = _slicedToArray(_useState, 2),
@@ -67,7 +66,7 @@ var useTableVirtual = function useTableVirtual(props) {
67
66
  var totalLength = props.data.length;
68
67
  var _loop = function _loop(i) {
69
68
  var startIndex = i;
70
- var rowSpanInfo = rowSpanColumns.map(function (col) {
69
+ var _rowSpanInfo = rowSpanColumns.map(function (col) {
71
70
  var rowSpan = col.rowSpan;
72
71
  function getRowSpanCount(index, _count) {
73
72
  var count = _count;
@@ -83,7 +82,7 @@ var useTableVirtual = function useTableVirtual(props) {
83
82
  var count = getRowSpanCount(i, 1);
84
83
  return [startIndex, startIndex + count - 1];
85
84
  });
86
- _rowSpanInfos.push(rowSpanInfo);
85
+ _rowSpanInfos.push(_rowSpanInfo);
87
86
  };
88
87
  for (var i = 0; i < totalLength; i++) {
89
88
  _loop(i);
@@ -109,10 +108,12 @@ var useTableVirtual = function useTableVirtual(props) {
109
108
  });
110
109
  return Math.min.apply(Math, _toConsumableArray(startIndexs));
111
110
  });
112
- var maxRowSpan = getMaxRowSpanLength(resultArr);
113
- return maxRowSpan > 1 ? {
111
+
112
+ // 根据data计算出实际需要的最大合并行数
113
+ var _maxRowSpan = getMaxRowSpanLength(resultArr);
114
+ return _maxRowSpan > 1 ? {
114
115
  rowSpanIndexArray: resultArr,
115
- maxRowSpan: maxRowSpan
116
+ maxRowSpan: _maxRowSpan
116
117
  } : null;
117
118
  }, [props.data, props.columns]);
118
119
  var _useRef = (0, _react.useRef)({
@@ -169,32 +170,32 @@ var useTableVirtual = function useTableVirtual(props) {
169
170
  }
170
171
  });
171
172
  var updateIndexAndTopFromTop = function updateIndexAndTopFromTop(scrollTop) {
173
+ var _props$scrollRef$curr;
172
174
  if (props.disabled) return;
173
175
  var sum = 0;
174
176
  var currentIndex = 0;
175
177
  var top = 0;
176
178
  var maxIndex = Math.max(props.data.length - rowsInView, 0);
177
- var maxRowSpanLenth = 0;
178
- if (rowSpanInfo) {
179
- maxRowSpanLenth = Math.min(rowSpanInfo.rowSpanIndexArray.length,
180
- // 根据data计算出实际需要的最大合并行数(rowSpanInfo.maxRowSpan),当rowSpanInfo.maxRowSpan大于外部传的rowsInView时,使用rowSpanInfo.maxRowSpan
181
- Math.max(rowSpanInfo.maxRowSpan, props.rowsInView > MAX_ROW_SPAN ? props.rowsInView : props.rowsInView || MAX_ROW_SPAN));
182
- }
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);
183
180
  for (var i = 0; i <= maxIndex; i++) {
184
181
  context.rowSpanRows = 0;
185
- sum += context.cachedHeight[i] || props.rowHeight;
186
- var rowSpanHeight = 0;
182
+ var currentRowHeight = context.cachedHeight[i] || props.rowHeight;
183
+ sum += currentRowHeight;
184
+ var rowSpanHeight = currentRowHeight;
187
185
  if (rowSpanInfo) {
188
186
  var siblingsIndexs = [];
189
- for (var k = i; k < maxRowSpanLenth + i; k++) {
187
+ for (var k = i; k < rowSpanInfo.maxRowSpan + i; k++) {
190
188
  if (rowSpanInfo.rowSpanIndexArray[k] <= i && k > i) {
191
189
  siblingsIndexs.push(k);
192
190
  }
193
191
  }
194
192
  for (var j = 0; j < siblingsIndexs.length; j++) {
195
- var index = siblingsIndexs[j];
196
- context.rowSpanRows += 1;
197
- rowSpanHeight += context.cachedHeight[index] || props.rowHeight;
193
+ // 在当前滚动容器滚动一屏上方销毁tr,不在可见区域内销毁重建,避免引起可见的单元格(合并的)内容闪烁
194
+ if (rowSpanHeight < scrollContainerHeight) {
195
+ var index = siblingsIndexs[j];
196
+ context.rowSpanRows += 1;
197
+ rowSpanHeight += context.cachedHeight[index] || props.rowHeight;
198
+ }
198
199
  }
199
200
  }
200
201
  if (scrollTop < sum + rowSpanHeight || i === maxIndex) {
@@ -1 +1 @@
1
- {"version":3,"file":"use-date.d.ts","sourceRoot":"","sources":["use-date.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAU/C,QAAA,MAAM,OAAO,UAAW,YAAY;;;;;;;;;;wBAmBX,IAAI;2BAkDD,IAAI;yBAgBN,IAAI;0BAiDH,IAAI;+BArEC,IAAI;+BA+CJ,IAAI,YAAY,OAAO;0BAnB5B,IAAI;2BAIH,IAAI;;gCAIC,IAAI;;CAgFpC,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"use-date.d.ts","sourceRoot":"","sources":["use-date.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAU/C,QAAA,MAAM,OAAO,UAAW,YAAY;;;;;;;;;;wBAmBX,IAAI;2BAkDD,IAAI;yBAkBN,IAAI;0BAkDH,IAAI;+BAxEC,IAAI;+BAiDJ,IAAI,YAAY,OAAO;0BAnB5B,IAAI;2BAIH,IAAI;;gCAIC,IAAI;;CAiFpC,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -11,6 +11,7 @@ import dateUtil from "./util";
11
11
  import usePersistFn from "../../common/use-persist-fn";
12
12
  var useDate = function useDate(props) {
13
13
  var options = props.options,
14
+ position = props.position,
14
15
  type = props.type;
15
16
  var _useState = useState(props.defaultCurrent || new Date()),
16
17
  _useState2 = _slicedToArray(_useState, 2),
@@ -103,6 +104,7 @@ var useDate = function useDate(props) {
103
104
  var _props$onChange;
104
105
  if (isDisabled(date)) return;
105
106
  var newDate = getDateWithTime(date);
107
+ props === null || props === void 0 || props.onClearInputArr(position === 'start' ? 0 : 1);
106
108
  (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, newDate, noClose);
107
109
  setCurrent(newDate);
108
110
  };
@@ -1,12 +1,15 @@
1
1
  export interface UseDateProps {
2
2
  current?: Date;
3
+ range?: boolean | number;
3
4
  rangeDate?: Array<Date | undefined>;
4
5
  defaultCurrent?: Date;
5
6
  onCurrentChange?: (date: Date) => void;
7
+ onClearInputArr: (index?: number | undefined) => void;
6
8
  value?: Date;
7
9
  onChange?: (date: Date, noClose?: boolean) => void;
8
10
  min?: Date;
9
11
  max?: Date;
12
+ position?: 'start' | 'end';
10
13
  type?: 'date' | 'week' | 'datetime';
11
14
  format?: string;
12
15
  disabled?: boolean | ((date: Date) => boolean);
@@ -1 +1 @@
1
- {"version":3,"file":"use-date.type.d.ts","sourceRoot":"","sources":["use-date.type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH"}
1
+ {"version":3,"file":"use-date.type.d.ts","sourceRoot":"","sources":["use-date.type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACvC,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACtD,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH"}
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { DatePickerModeType, DatePickerValueType, UseDatePickerFormatProps } from './use-datepicker-format.type';
3
3
  declare const useDatePickerFormat: <Value extends DatePickerValueType>(props: UseDatePickerFormatProps<Value>) => {
4
+ inputArr: (Date | undefined)[];
4
5
  resultArr: (string | undefined)[];
5
6
  targetResultArr: (string | undefined)[];
6
7
  dateArr: (Date | undefined)[];
@@ -17,6 +18,7 @@ declare const useDatePickerFormat: <Value extends DatePickerValueType>(props: Us
17
18
  setCurrentArr: React.Dispatch<React.SetStateAction<Date[]>>;
18
19
  setTargetArr: React.Dispatch<React.SetStateAction<(Date | undefined)[]>>;
19
20
  handleClear: (e?: React.MouseEvent) => void;
21
+ handleClearInputArr: (index?: number) => void;
20
22
  handleInputChange: (str: string, index: number) => void;
21
23
  registerModeDisabled: (position: 'start' | 'end' | undefined, mode: string, fn: (d: Date) => boolean) => void;
22
24
  setCurrentArrWithParams: (arg: React.SetStateAction<Date[]>, type: string, quick: {
@@ -1 +1 @@
1
- {"version":3,"file":"use-datepicker-format.d.ts","sourceRoot":"","sources":["use-datepicker-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AAkEtC,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;0BAmJe,gBAAgB;iCAgCT,MAAM,SAAS,MAAM;yCAjIrD,OAAO,GAAG,KAAK,GAAG,SAAS,QAAQ,MAAM,UAAU,IAAI,KAAK,OAAO;uCAWvE,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,QAC3B,MAAM;kBACG,MAAM,SAAS;mBAAS,GAAG;;+BASrC,IAAI,YAAY,OAAO,GAAG,KAAK,GAAG,SAAS,gBAAgB,MAAM;;CA+K3E,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"use-datepicker-format.d.ts","sourceRoot":"","sources":["use-datepicker-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AAkEtC,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;0BAqMe,gBAAgB;sCAiEJ,MAAM;iCA7BX,MAAM,SAAS,MAAM;yCAtLrD,OAAO,GAAG,KAAK,GAAG,SAAS,QAAQ,MAAM,UAAU,IAAI,KAAK,OAAO;uCAWvE,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,QAC3B,MAAM;kBACG,MAAM,SAAS;mBAAS,GAAG;;+BA4CrC,IAAI,YAAY,OAAO,GAAG,KAAK,GAAG,SAAS,gBAAgB,MAAM;;CAsN3E,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -108,13 +108,17 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
108
108
  _useState8 = _slicedToArray(_useState7, 2),
109
109
  targetArr = _useState8[0],
110
110
  setTargetArr = _useState8[1];
111
- var _useState9 = useState({
111
+ var _useState9 = useState([]),
112
+ _useState10 = _slicedToArray(_useState9, 2),
113
+ inputArr = _useState10[0],
114
+ setInputArr = _useState10[1];
115
+ var _useState11 = useState({
112
116
  type: undefined,
113
117
  quick: undefined
114
118
  }),
115
- _useState10 = _slicedToArray(_useState9, 2),
116
- params = _useState10[0],
117
- setParams = _useState10[1];
119
+ _useState12 = _slicedToArray(_useState11, 2),
120
+ params = _useState12[0],
121
+ setParams = _useState12[1];
118
122
  var _useRef = useRef({
119
123
  cachedDateArr: convertValueToDateArr(value, format, options),
120
124
  modeDisabledStart: {},
@@ -122,14 +126,14 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
122
126
  }),
123
127
  context = _useRef.current;
124
128
  // 当edit 为true时,stateDate 否则返回 props date
125
- var _useState11 = useState(context.cachedDateArr),
126
- _useState12 = _slicedToArray(_useState11, 2),
127
- stateDate = _useState12[0],
128
- setStateDate = _useState12[1];
129
- var _useState13 = useState(false),
129
+ var _useState13 = useState(context.cachedDateArr),
130
130
  _useState14 = _slicedToArray(_useState13, 2),
131
- edit = _useState14[0],
132
- setEdit = _useState14[1];
131
+ stateDate = _useState14[0],
132
+ setStateDate = _useState14[1];
133
+ var _useState15 = useState(false),
134
+ _useState16 = _slicedToArray(_useState15, 2),
135
+ edit = _useState16[0],
136
+ setEdit = _useState16[1];
133
137
 
134
138
  // 收集所有的disabled
135
139
  var registerModeDisabled = usePersistFn(function (position, mode, fn) {
@@ -147,6 +151,39 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
147
151
  quick: quick
148
152
  });
149
153
  });
154
+ var isDisabledInputDate = function isDisabledInputDate(rangeData) {
155
+ var start = rangeData[0];
156
+ var end = rangeData[1];
157
+ var isDis = false;
158
+ if (disabled && typeof disabled === 'function') {
159
+ if (start && disabled(start)) isDis = true;
160
+ if (end && disabled(end)) isDis = true;
161
+ if (isDis) return isDis;
162
+ }
163
+ if (start && end) {
164
+ if (dateUtil.compareAsc(start, end) > 0) {
165
+ isDis = true;
166
+ return isDis;
167
+ }
168
+ }
169
+ if (range && typeof range === 'number') {
170
+ if (start) {
171
+ if (!end) return isDis;
172
+ var rangeDate = dateUtil.addSeconds(start, range, options);
173
+ if (dateUtil.compareAsc(end, rangeDate) > 0) {
174
+ isDis = true;
175
+ }
176
+ }
177
+ if (end) {
178
+ if (!start) return isDis;
179
+ var _rangeDate = dateUtil.addSeconds(end, -range, options);
180
+ if (dateUtil.compareAsc(start, _rangeDate) < 0) {
181
+ isDis = true;
182
+ }
183
+ }
184
+ }
185
+ return isDis;
186
+ };
150
187
  var isDisabledDate = usePersistFn(function (date, position, triggerType) {
151
188
  var mode = getTypeMode(type);
152
189
  var disabled = position === 'end' ? context.modeDisabledEnd[mode] : context.modeDisabledStart[mode];
@@ -203,6 +240,19 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
203
240
  var finishEdit = function finishEdit() {
204
241
  setEdit(false);
205
242
  var formatValue = getFormatValueArr(stateDate);
243
+ if (inputArr.length && inputArr.some(function (i) {
244
+ return i;
245
+ })) {
246
+ var inputValue = stateDate.map(function (item, index) {
247
+ if (inputArr[index]) return inputArr[index];
248
+ return item;
249
+ });
250
+ var isDis = isDisabledInputDate(inputValue);
251
+ if (!isDis) {
252
+ formatValue = getFormatValueArr(inputValue);
253
+ }
254
+ }
255
+ // const formatValue = getFormatValueArr(stateDate);
206
256
  var v = range ? formatValue : formatValue[0];
207
257
  if (range && (!stateDate[0] || !stateDate[1]) && !props.allowSingle) {
208
258
  return;
@@ -217,6 +267,7 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
217
267
  if (!clearable) return;
218
268
  e === null || e === void 0 || e.stopPropagation();
219
269
  if (disabledStatus === 'all') return;
270
+ setInputArr([]);
220
271
  if (edit) {
221
272
  if (range) {
222
273
  if (disabledStatus === 'left') setStateDate(function (arr) {
@@ -252,6 +303,12 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
252
303
  var isValid = dateUtil.isValidString(str, format);
253
304
  if (!isValid) return;
254
305
  var date = dateUtil.toDateWithFormat(str, format, undefined, options);
306
+ setInputArr(function (prev) {
307
+ var arr = _toConsumableArray(prev);
308
+ arr[index] = date;
309
+ return arr;
310
+ });
311
+
255
312
  // 此次校验是由输入触发的
256
313
  if (date && isDisabledDate(date, index === 1 ? 'end' : 'start', 'input')) {
257
314
  return;
@@ -267,6 +324,17 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
267
324
  return arr;
268
325
  });
269
326
  });
327
+ var handleClearInputArr = usePersistFn(function (index) {
328
+ if (index !== undefined) {
329
+ setInputArr(function (prev) {
330
+ var arr = _toConsumableArray(prev);
331
+ arr[index] = undefined;
332
+ return arr;
333
+ });
334
+ return;
335
+ }
336
+ setInputArr([]);
337
+ });
270
338
  useEffect(function () {
271
339
  handlePropsValueChange(value);
272
340
  }, [value]);
@@ -297,12 +365,14 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
297
365
  setCurrentArr: setCurrentArr,
298
366
  setTargetArr: setTargetArr,
299
367
  handleClear: handleClear,
368
+ handleClearInputArr: handleClearInputArr,
300
369
  handleInputChange: handleInputChange,
301
370
  registerModeDisabled: registerModeDisabled,
302
371
  setCurrentArrWithParams: setCurrentArrWithParams,
303
372
  isDisabledDate: isDisabledDate
304
373
  });
305
374
  return {
375
+ inputArr: inputArr,
306
376
  resultArr: resultArr,
307
377
  targetResultArr: targetResultArr,
308
378
  dateArr: dateArr,
@@ -8,6 +8,7 @@ export interface useRangeProps {
8
8
  min: DateType;
9
9
  max: DateType;
10
10
  dateArr: Array<Date | undefined>;
11
+ inputArr: (Date | undefined)[];
11
12
  setTargetArr: Dispatch<SetStateAction<Array<Date | undefined>>>;
12
13
  setDateArr: Dispatch<SetStateAction<Array<Date | undefined>>>;
13
14
  currentArr: Date[];
@@ -1 +1 @@
1
- {"version":3,"file":"use-datepicker-range.type.d.ts","sourceRoot":"","sources":["use-datepicker-range.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AACnD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,EAAE,QAAQ,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IACjC,YAAY,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAChE,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9D,UAAU,EAAE,IAAI,EAAE,CAAC;IACnB,aAAa,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACrE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACxD,QAAQ,EACJ,OAAO,GACP,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,GACvF,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,GAC1C,SAAS,CAAC;IACd,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB"}
1
+ {"version":3,"file":"use-datepicker-range.type.d.ts","sourceRoot":"","sources":["use-datepicker-range.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AACnD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,EAAE,QAAQ,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IACjC,QAAQ,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;IAC/B,YAAY,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAChE,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9D,UAAU,EAAE,IAAI,EAAE,CAAC;IACnB,aAAa,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACrE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACxD,QAAQ,EACJ,OAAO,GACP,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,GACvF,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,GAC1C,SAAS,CAAC;IACd,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB"}
@@ -2,5 +2,5 @@ import React from 'react';
2
2
  import { FormRef } from './use-form-context.type';
3
3
  export declare const FormContext: React.Context<any>;
4
4
  export declare function useFormRef<V>(): [FormRef<V>, ((formRef: FormRef<V>) => void)];
5
- export declare function useFromInstance<V>(): FormRef<V>;
5
+ export declare function useFormInstance<V>(): FormRef<V>;
6
6
  //# sourceMappingURL=use-form-context.d.ts.map
@@ -7,7 +7,7 @@ export function useFormRef() {
7
7
  };
8
8
  return [ref.current, setFormRef];
9
9
  }
10
- export function useFromInstance() {
10
+ export function useFormInstance() {
11
11
  var formCtx = React.useContext(FormContext);
12
12
  return formCtx;
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-tree.d.ts","sourceRoot":"","sources":["use-table-tree.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AA8CvD,MAAM,WAAW,iBACf,SAAQ,IAAI,CACV,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EACvC,cAAc,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,QAAQ,CACvE;IACD,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAED,eAAO,MAAM,YAAY,UAAW,iBAAiB;;;;;;+BA6BR,GAAG,SAAS,MAAM;iCAjBhB,GAAG,SAAS,MAAM;;CAuDhE,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"use-table-tree.d.ts","sourceRoot":"","sources":["use-table-tree.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AA+CvD,MAAM,WAAW,iBACf,SAAQ,IAAI,CACV,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EACvC,cAAc,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,QAAQ,CACvE;IACD,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAED,eAAO,MAAM,YAAY,UAAW,iBAAiB;;;;;;+BA6BR,GAAG,SAAS,MAAM;iCAjBhB,GAAG,SAAS,MAAM;;CA4DhE,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -13,6 +13,7 @@ import { usePersistFn } from "../../common/use-persist-fn";
13
13
  import { getKey } from "../../utils/render";
14
14
  import { isObject } from "../../utils/is";
15
15
  import { useLatestObj } from "../../common/use-latest-obj";
16
+ import { util } from "../..";
16
17
  var getExpandData = function getExpandData(_treeData, keys, keygen, treeColumnsName) {
17
18
  var expandKeys = keys;
18
19
  var expandSet = new Set(expandKeys);
@@ -113,6 +114,9 @@ export var useTableTree = function useTableTree(props) {
113
114
  var newExpandKeys = expandKeysState.filter(function (key) {
114
115
  return !unmatchExpandKeys.includes(key);
115
116
  });
117
+ if (util.shallowEqual(newExpandKeys, expandKeysState)) {
118
+ return;
119
+ }
116
120
  setExpandKeysState(newExpandKeys);
117
121
  }, [unmatchExpandKeys, expandKeysState]);
118
122
  return {
@@ -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;AAYrD,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;CAC3C;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;;oBAkMpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BA/FuB,MAAM,UAAU,MAAM;0BAxBtB,MAAM,QAAQ,MAAM;2BA2JnB,MAAM,aAAa,MAAM,IAAI;qCAoBnB,MAAM;mCAWR,MAAM,GAAG,MAAM;CAyFnE,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,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;CAC3C;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;;oBA+LpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BA3FuB,MAAM,UAAU,MAAM;0BAxBtB,MAAM,QAAQ,MAAM;2BAuJnB,MAAM,aAAa,MAAM,IAAI;qCAoBnB,MAAM;mCAWR,MAAM,GAAG,MAAM;CAyFnE,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -28,7 +28,6 @@ function getMaxRowSpanLength(input) {
28
28
  }
29
29
  return Math.max.apply(Math, _toConsumableArray(Array.from(map.values())));
30
30
  }
31
- var MAX_ROW_SPAN = 200;
32
31
  var useTableVirtual = function useTableVirtual(props) {
33
32
  var _useState = useState(0),
34
33
  _useState2 = _slicedToArray(_useState, 2),
@@ -61,7 +60,7 @@ var useTableVirtual = function useTableVirtual(props) {
61
60
  var totalLength = props.data.length;
62
61
  var _loop = function _loop(i) {
63
62
  var startIndex = i;
64
- var rowSpanInfo = rowSpanColumns.map(function (col) {
63
+ var _rowSpanInfo = rowSpanColumns.map(function (col) {
65
64
  var rowSpan = col.rowSpan;
66
65
  function getRowSpanCount(index, _count) {
67
66
  var count = _count;
@@ -77,7 +76,7 @@ var useTableVirtual = function useTableVirtual(props) {
77
76
  var count = getRowSpanCount(i, 1);
78
77
  return [startIndex, startIndex + count - 1];
79
78
  });
80
- _rowSpanInfos.push(rowSpanInfo);
79
+ _rowSpanInfos.push(_rowSpanInfo);
81
80
  };
82
81
  for (var i = 0; i < totalLength; i++) {
83
82
  _loop(i);
@@ -103,10 +102,12 @@ var useTableVirtual = function useTableVirtual(props) {
103
102
  });
104
103
  return Math.min.apply(Math, _toConsumableArray(startIndexs));
105
104
  });
106
- var maxRowSpan = getMaxRowSpanLength(resultArr);
107
- return maxRowSpan > 1 ? {
105
+
106
+ // 根据data计算出实际需要的最大合并行数
107
+ var _maxRowSpan = getMaxRowSpanLength(resultArr);
108
+ return _maxRowSpan > 1 ? {
108
109
  rowSpanIndexArray: resultArr,
109
- maxRowSpan: maxRowSpan
110
+ maxRowSpan: _maxRowSpan
110
111
  } : null;
111
112
  }, [props.data, props.columns]);
112
113
  var _useRef = useRef({
@@ -163,32 +164,32 @@ var useTableVirtual = function useTableVirtual(props) {
163
164
  }
164
165
  });
165
166
  var updateIndexAndTopFromTop = function updateIndexAndTopFromTop(scrollTop) {
167
+ var _props$scrollRef$curr;
166
168
  if (props.disabled) return;
167
169
  var sum = 0;
168
170
  var currentIndex = 0;
169
171
  var top = 0;
170
172
  var maxIndex = Math.max(props.data.length - rowsInView, 0);
171
- var maxRowSpanLenth = 0;
172
- if (rowSpanInfo) {
173
- maxRowSpanLenth = Math.min(rowSpanInfo.rowSpanIndexArray.length,
174
- // 根据data计算出实际需要的最大合并行数(rowSpanInfo.maxRowSpan),当rowSpanInfo.maxRowSpan大于外部传的rowsInView时,使用rowSpanInfo.maxRowSpan
175
- Math.max(rowSpanInfo.maxRowSpan, props.rowsInView > MAX_ROW_SPAN ? props.rowsInView : props.rowsInView || MAX_ROW_SPAN));
176
- }
173
+ var scrollContainerHeight = Math.max(((_props$scrollRef$curr = props.scrollRef.current) === null || _props$scrollRef$curr === void 0 ? void 0 : _props$scrollRef$curr.clientHeight) || 0, 200);
177
174
  for (var i = 0; i <= maxIndex; i++) {
178
175
  context.rowSpanRows = 0;
179
- sum += context.cachedHeight[i] || props.rowHeight;
180
- var rowSpanHeight = 0;
176
+ var currentRowHeight = context.cachedHeight[i] || props.rowHeight;
177
+ sum += currentRowHeight;
178
+ var rowSpanHeight = currentRowHeight;
181
179
  if (rowSpanInfo) {
182
180
  var siblingsIndexs = [];
183
- for (var k = i; k < maxRowSpanLenth + i; k++) {
181
+ for (var k = i; k < rowSpanInfo.maxRowSpan + i; k++) {
184
182
  if (rowSpanInfo.rowSpanIndexArray[k] <= i && k > i) {
185
183
  siblingsIndexs.push(k);
186
184
  }
187
185
  }
188
186
  for (var j = 0; j < siblingsIndexs.length; j++) {
189
- var index = siblingsIndexs[j];
190
- context.rowSpanRows += 1;
191
- rowSpanHeight += context.cachedHeight[index] || props.rowHeight;
187
+ // 在当前滚动容器滚动一屏上方销毁tr,不在可见区域内销毁重建,避免引起可见的单元格(合并的)内容闪烁
188
+ if (rowSpanHeight < scrollContainerHeight) {
189
+ var index = siblingsIndexs[j];
190
+ context.rowSpanRows += 1;
191
+ rowSpanHeight += context.cachedHeight[index] || props.rowHeight;
192
+ }
192
193
  }
193
194
  }
194
195
  if (scrollTop < sum + rowSpanHeight || i === maxIndex) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sheinx/hooks",
3
- "version": "3.5.3",
3
+ "version": "3.5.4-beta.10",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",