@sheinx/hooks 3.5.4-beta.5 → 3.5.4-beta.7

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.
@@ -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;;;;;;;;;;;;;;;;;0BAoMe,gBAAgB;sCAiEJ,MAAM;iCA7BX,MAAM,SAAS,MAAM;yCArLrD,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;;+BA6CrC,IAAI,YAAY,OAAO,GAAG,KAAK,GAAG,SAAS,gBAAgB,MAAM;;CAoN3E,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 = inputArr.map(function (item, index) {
254
+ if (item) return item;
255
+ return stateDate[index];
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"}
@@ -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;;;;;;;;;;;;;;;;;0BAoMe,gBAAgB;sCAiEJ,MAAM;iCA7BX,MAAM,SAAS,MAAM;yCArLrD,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;;+BA6CrC,IAAI,YAAY,OAAO,GAAG,KAAK,GAAG,SAAS,gBAAgB,MAAM;;CAoN3E,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 = inputArr.map(function (item, index) {
247
+ if (item) return item;
248
+ return stateDate[index];
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sheinx/hooks",
3
- "version": "3.5.4-beta.5",
3
+ "version": "3.5.4-beta.7",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",