@sheinx/hooks 3.5.3 → 3.5.4-beta.10

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 (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",