@basic-ui/dates 0.0.29 → 0.0.32
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.
- package/build/cjs/index.js +0 -0
- package/build/cjs/index.js.map +1 -1
- package/build/esm/DatePicker/DatePicker.d.ts +2 -2
- package/build/esm/DatePicker/DatePicker.js +43 -34
- package/build/esm/DatePicker/DatePicker.js.map +1 -1
- package/build/esm/DatePicker/DatePickerSelect.d.ts +0 -0
- package/build/esm/DatePicker/DatePickerSelect.js +69 -67
- package/build/esm/DatePicker/DatePickerSelect.js.map +1 -1
- package/build/esm/DatePicker/RangeDatePicker.d.ts +1 -1
- package/build/esm/DatePicker/RangeDatePicker.js +62 -51
- package/build/esm/DatePicker/RangeDatePicker.js.map +1 -1
- package/build/esm/DatePicker/adjustDates.d.ts +0 -0
- package/build/esm/DatePicker/adjustDates.js +2 -2
- package/build/esm/DatePicker/adjustDates.js.map +1 -1
- package/build/esm/DatePicker/contexts.d.ts +2 -2
- package/build/esm/DatePicker/contexts.js +12 -10
- package/build/esm/DatePicker/contexts.js.map +1 -1
- package/build/esm/DatePicker/dateTypes.d.ts +0 -0
- package/build/esm/DatePicker/dateTypes.js +0 -0
- package/build/esm/DatePicker/dateTypes.js.map +0 -0
- package/build/esm/DatePicker/hooks.d.ts +0 -0
- package/build/esm/DatePicker/hooks.js +21 -22
- package/build/esm/DatePicker/hooks.js.map +1 -1
- package/build/esm/DatePicker/index.d.ts +0 -0
- package/build/esm/DatePicker/index.js +0 -0
- package/build/esm/DatePicker/index.js.map +0 -0
- package/build/esm/index.d.ts +0 -0
- package/build/esm/index.js +0 -0
- package/build/esm/index.js.map +0 -0
- package/build/tsconfig.tsbuildinfo +1 -7883
- package/package.json +13 -13
|
@@ -1,44 +1,54 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
4
|
import React, { forwardRef, useRef, useState } from 'react';
|
|
4
5
|
import { assignMultipleRefs } from '@basic-ui/core';
|
|
5
6
|
import { adjustDates } from './adjustDates';
|
|
6
7
|
import { RangeDatePickerProvider } from './contexts';
|
|
7
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
9
|
+
export var RangeDatePicker = /*#__PURE__*/forwardRef(function RangeDatePicker(_ref, ref) {
|
|
10
|
+
var _ref$as = _ref.as,
|
|
11
|
+
Comp = _ref$as === void 0 ? 'div' : _ref$as,
|
|
12
|
+
_ref$minDate = _ref.minDate,
|
|
13
|
+
propMinDate = _ref$minDate === void 0 ? new Date(0) : _ref$minDate,
|
|
14
|
+
_ref$maxDate = _ref.maxDate,
|
|
15
|
+
propMaxDate = _ref$maxDate === void 0 ? new Date() : _ref$maxDate,
|
|
16
|
+
dayNames = _ref.dayNames,
|
|
17
|
+
monthNames = _ref.monthNames,
|
|
18
|
+
onChange = _ref.onChange,
|
|
19
|
+
controlledFrom = _ref.from,
|
|
20
|
+
controlledTo = _ref.to,
|
|
21
|
+
defaultFrom = _ref.defaultFrom,
|
|
22
|
+
defaultTo = _ref.defaultTo,
|
|
23
|
+
rest = _objectWithoutProperties(_ref, ["as", "minDate", "maxDate", "dayNames", "monthNames", "onChange", "from", "to", "defaultFrom", "defaultTo"]);
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
to: stateTo
|
|
30
|
-
}, setDates] = useState({
|
|
25
|
+
var isControlled = controlledFrom !== undefined && controlledTo !== undefined;
|
|
26
|
+
var minDate = propMinDate,
|
|
27
|
+
maxDate = propMaxDate;
|
|
28
|
+
var rangeDatePickerRef = useRef(null);
|
|
29
|
+
|
|
30
|
+
var _useState = useState({
|
|
31
31
|
from: defaultFrom || null,
|
|
32
32
|
to: defaultTo || null
|
|
33
|
-
})
|
|
34
|
-
|
|
33
|
+
}),
|
|
34
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
35
|
+
_useState2$ = _useState2[0],
|
|
36
|
+
stateFrom = _useState2$.from,
|
|
37
|
+
stateTo = _useState2$.to,
|
|
38
|
+
setDates = _useState2[1];
|
|
39
|
+
|
|
40
|
+
var _useState3 = useState(false),
|
|
41
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
42
|
+
innerHasFocus = _useState4[0],
|
|
43
|
+
setInnerHasFocus = _useState4[1];
|
|
44
|
+
|
|
45
|
+
var onChangeFrom = function onChangeFrom(from) {
|
|
46
|
+
var to = stateTo;
|
|
47
|
+
|
|
48
|
+
var _adjustDates = adjustDates(from, to, 'from'),
|
|
49
|
+
nextFrom = _adjustDates.from,
|
|
50
|
+
nextTo = _adjustDates.to;
|
|
35
51
|
|
|
36
|
-
const onChangeFrom = from => {
|
|
37
|
-
const to = stateTo;
|
|
38
|
-
const {
|
|
39
|
-
from: nextFrom,
|
|
40
|
-
to: nextTo
|
|
41
|
-
} = adjustDates(from, to, 'from');
|
|
42
52
|
onChange && onChange(nextFrom, nextTo);
|
|
43
53
|
setDates({
|
|
44
54
|
from: nextFrom,
|
|
@@ -46,12 +56,13 @@ export const RangeDatePicker = /*#__PURE__*/forwardRef(function RangeDatePicker(
|
|
|
46
56
|
});
|
|
47
57
|
};
|
|
48
58
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
59
|
+
var onChangeTo = function onChangeTo(to) {
|
|
60
|
+
var from = stateFrom;
|
|
61
|
+
|
|
62
|
+
var _adjustDates2 = adjustDates(from, to, 'to'),
|
|
63
|
+
nextFrom = _adjustDates2.from,
|
|
64
|
+
nextTo = _adjustDates2.to;
|
|
65
|
+
|
|
55
66
|
onChange && onChange(nextFrom, nextTo);
|
|
56
67
|
setDates({
|
|
57
68
|
from: nextFrom,
|
|
@@ -59,20 +70,20 @@ export const RangeDatePicker = /*#__PURE__*/forwardRef(function RangeDatePicker(
|
|
|
59
70
|
});
|
|
60
71
|
};
|
|
61
72
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
rangeDatePickerRef,
|
|
66
|
-
innerHasFocus,
|
|
67
|
-
setInnerHasFocus,
|
|
68
|
-
minDate,
|
|
69
|
-
maxDate,
|
|
70
|
-
from,
|
|
71
|
-
to,
|
|
72
|
-
dayNames,
|
|
73
|
-
monthNames,
|
|
74
|
-
onChangeFrom,
|
|
75
|
-
onChangeTo
|
|
73
|
+
var from = isControlled ? controlledFrom : stateFrom;
|
|
74
|
+
var to = isControlled ? controlledTo : stateTo;
|
|
75
|
+
var contextValue = {
|
|
76
|
+
rangeDatePickerRef: rangeDatePickerRef,
|
|
77
|
+
innerHasFocus: innerHasFocus,
|
|
78
|
+
setInnerHasFocus: setInnerHasFocus,
|
|
79
|
+
minDate: minDate,
|
|
80
|
+
maxDate: maxDate,
|
|
81
|
+
from: from,
|
|
82
|
+
to: to,
|
|
83
|
+
dayNames: dayNames,
|
|
84
|
+
monthNames: monthNames,
|
|
85
|
+
onChangeFrom: onChangeFrom,
|
|
86
|
+
onChangeTo: onChangeTo
|
|
76
87
|
};
|
|
77
88
|
return /*#__PURE__*/_jsx(RangeDatePickerProvider, {
|
|
78
89
|
value: contextValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/DatePicker/RangeDatePicker.tsx"],"names":["React","forwardRef","useRef","useState","assignMultipleRefs","adjustDates","RangeDatePickerProvider","RangeDatePicker","ref","as","Comp","minDate","propMinDate","Date","maxDate","propMaxDate","dayNames","monthNames","onChange","
|
|
1
|
+
{"version":3,"sources":["../../../src/DatePicker/RangeDatePicker.tsx"],"names":["React","forwardRef","useRef","useState","assignMultipleRefs","adjustDates","RangeDatePickerProvider","RangeDatePicker","ref","as","Comp","minDate","propMinDate","Date","maxDate","propMaxDate","dayNames","monthNames","onChange","controlledFrom","from","controlledTo","to","defaultFrom","defaultTo","rest","isControlled","undefined","rangeDatePickerRef","stateFrom","stateTo","setDates","innerHasFocus","setInnerHasFocus","onChangeFrom","nextFrom","nextTo","onChangeTo","contextValue"],"mappings":"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","sourcesContent":["import React, { forwardRef, useRef, useState } from 'react';\nimport { assignMultipleRefs } from '@basic-ui/core';\n\nimport type { MonthNames, DayNames } from './dateTypes';\nimport { adjustDates } from './adjustDates';\nimport type { RangeDatePickerContextProps } from './contexts';\nimport { RangeDatePickerProvider } from './contexts';\n\nexport type RangeDatePickerProps = Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'onChange'\n> & {\n as?: React.ElementType<any>;\n minDate?: Date;\n maxDate?: Date;\n dayNames: DayNames;\n monthNames: MonthNames;\n children?: React.ReactNode[];\n onChange?: (from: Date | null, to: Date | null) => void;\n from?: Date | null;\n to?: Date | null;\n defaultFrom?: Date | null;\n defaultTo?: Date | null;\n};\n\nexport const RangeDatePicker = forwardRef<HTMLDivElement, RangeDatePickerProps>(\n function RangeDatePicker(\n {\n as: Comp = 'div',\n minDate: propMinDate = new Date(0),\n maxDate: propMaxDate = new Date(),\n dayNames,\n monthNames,\n onChange,\n from: controlledFrom,\n to: controlledTo,\n defaultFrom,\n defaultTo,\n ...rest\n },\n ref\n ) {\n const isControlled =\n controlledFrom !== undefined && controlledTo !== undefined;\n\n const minDate = propMinDate,\n maxDate = propMaxDate;\n\n const rangeDatePickerRef = useRef<HTMLDivElement | null>(null);\n const [{ from: stateFrom, to: stateTo }, setDates] = useState({\n from: (defaultFrom || null) as Date | null,\n to: (defaultTo || null) as Date | null,\n });\n const [innerHasFocus, setInnerHasFocus] = useState(false);\n\n const onChangeFrom = (from: Date | null) => {\n const to = stateTo;\n const { from: nextFrom, to: nextTo } = adjustDates(from, to, 'from');\n\n onChange && onChange(nextFrom, nextTo);\n setDates({ from: nextFrom, to: nextTo });\n };\n\n const onChangeTo = (to: Date | null) => {\n const from = stateFrom;\n const { from: nextFrom, to: nextTo } = adjustDates(from, to, 'to');\n\n onChange && onChange(nextFrom, nextTo);\n setDates({ from: nextFrom, to: nextTo });\n };\n\n const from = isControlled ? controlledFrom : stateFrom;\n const to = isControlled ? controlledTo : stateTo;\n\n const contextValue: RangeDatePickerContextProps = {\n rangeDatePickerRef,\n innerHasFocus,\n setInnerHasFocus,\n minDate,\n maxDate,\n from,\n to,\n dayNames,\n monthNames,\n onChangeFrom,\n onChangeTo,\n };\n\n return (\n <RangeDatePickerProvider value={contextValue}>\n <Comp\n ref={assignMultipleRefs(ref, rangeDatePickerRef)}\n data-has-focus={innerHasFocus ? '' : undefined}\n {...rest}\n />\n </RangeDatePickerProvider>\n );\n }\n);\n"],"file":"RangeDatePicker.js"}
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/DatePicker/adjustDates.ts"],"names":["addDays","isValid","differenceInDays","adjustDates","from","to","frozenParam"],"mappings":"AAAA,SAASA,OAAT,EAAkBC,OAAlB,EAA2BC,gBAA3B,QAAmD,UAAnD;AAEA,OAAO,SAASC,WAAT,CACLC,IADK,EAELC,EAFK,EAGLC,WAHK,EAIL;AACA,MAAID,EAAE,IAAIJ,OAAO,CAACI,EAAD,CAAb,IAAqBD,IAArB,IAA6BH,OAAO,CAACG,IAAD,CAAxC,EAAgD;AAC9C,QAAIF,gBAAgB,CAACG,EAAD,EAAKD,IAAL,CAAhB,GAA6B,CAAjC,EAAoC;AAClC,UAAIE,WAAW,KAAK,MAApB,EAA4B;AAC1BD,QAAAA,EAAE,GAAGL,OAAO,CAACI,IAAD,EAAO,CAAP,CAAZ,CAD0B,CACH;AACxB,OAFD,MAEO;AACLA,QAAAA,IAAI,GAAGJ,OAAO,CAACI,IAAD,EAAO,CAAC,CAAR,CAAd,CADK,CACqB;AAC3B;AACF;AACF;;AAED,SAAO;AAAEA,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAAP;AACD","sourcesContent":["import { addDays, isValid, differenceInDays } from 'date-fns';\n\nexport function adjustDates(\n from: Date | null,\n to: Date | null,\n frozenParam: 'from' | 'to'\n) {\n if (to && isValid(to) && from && isValid(from)) {\n if (differenceInDays(to, from) < 1) {\n if (frozenParam === 'from') {\n to = addDays(from, 1); // add one day\n } else {\n from = addDays(from, -1); // remove one day\n }\n }\n }\n\n return { from, to };\n}\n"],"file":"adjustDates.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/DatePicker/adjustDates.ts"],"names":["addDays","isValid","differenceInDays","adjustDates","from","to","frozenParam"],"mappings":"AAAA,SAASA,OAAT,EAAkBC,OAAlB,EAA2BC,gBAA3B,QAAmD,UAAnD;AAEA,OAAO,SAASC,WAAT,CACLC,IADK,EAELC,EAFK,EAGLC,WAHK,EAIL;AACA,MAAID,EAAE,IAAIJ,OAAO,CAACI,EAAD,CAAb,IAAqBD,IAArB,IAA6BH,OAAO,CAACG,IAAD,CAAxC,EAAgD;AAC9C,QAAIF,gBAAgB,CAACG,EAAD,EAAKD,IAAL,CAAhB,GAA6B,CAAjC,EAAoC;AAClC,UAAIE,WAAW,KAAK,MAApB,EAA4B;AAC1BD,QAAAA,EAAE,GAAGL,OAAO,CAACI,IAAD,EAAO,CAAP,CAAZ,CAD0B,CACH;AACxB,OAFD,MAEO;AACLA,QAAAA,IAAI,GAAGJ,OAAO,CAACI,IAAD,EAAO,CAAC,CAAR,CAAd,CADK,CACqB;AAC3B;AACF;AACF;;AAED,SAAO;AAAEA,IAAAA,IAAI,EAAJA,IAAF;AAAQC,IAAAA,EAAE,EAAFA;AAAR,GAAP;AACD","sourcesContent":["import { addDays, isValid, differenceInDays } from 'date-fns';\n\nexport function adjustDates(\n from: Date | null,\n to: Date | null,\n frozenParam: 'from' | 'to'\n) {\n if (to && isValid(to) && from && isValid(from)) {\n if (differenceInDays(to, from) < 1) {\n if (frozenParam === 'from') {\n to = addDays(from, 1); // add one day\n } else {\n from = addDays(from, -1); // remove one day\n }\n }\n }\n\n return { from, to };\n}\n"],"file":"adjustDates.js"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { MonthNames, DayNames } from './dateTypes';
|
|
3
|
-
import { ReducerState, ReducerActions } from './hooks';
|
|
2
|
+
import type { MonthNames, DayNames } from './dateTypes';
|
|
3
|
+
import type { ReducerState, ReducerActions } from './hooks';
|
|
4
4
|
export interface RangeDatePickerContextProps {
|
|
5
5
|
rangeDatePickerRef: React.MutableRefObject<HTMLDivElement | null>;
|
|
6
6
|
innerHasFocus: boolean;
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { createContext, useContext } from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
var rangeContext = /*#__PURE__*/createContext(null);
|
|
3
|
+
var RangeDatePickerProvider = rangeContext.Provider;
|
|
4
|
+
export { RangeDatePickerProvider };
|
|
5
|
+
export var useRangeDatePickerContext = function useRangeDatePickerContext() {
|
|
6
|
+
return useContext(rangeContext);
|
|
7
|
+
}; // DatePicker
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
var datePickerContext = /*#__PURE__*/createContext(null);
|
|
10
|
+
export var useDatePickerContext = function useDatePickerContext() {
|
|
11
|
+
return useContext(datePickerContext);
|
|
12
|
+
};
|
|
13
|
+
var DatePickerProvider = datePickerContext.Provider;
|
|
14
|
+
export { DatePickerProvider };
|
|
13
15
|
//# sourceMappingURL=contexts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/DatePicker/contexts.ts"],"names":["createContext","useContext","rangeContext","
|
|
1
|
+
{"version":3,"sources":["../../../src/DatePicker/contexts.ts"],"names":["createContext","useContext","rangeContext","RangeDatePickerProvider","Provider","useRangeDatePickerContext","datePickerContext","useDatePickerContext","DatePickerProvider"],"mappings":"AAAA,SAASA,aAAT,EAAwBC,UAAxB,QAA0C,OAA1C;AAoBA,IAAMC,YAAY,gBAAGF,aAAa,CAAqC,IAArC,CAAlC;IACyBG,uB,GAA4BD,Y,CAAtCE,Q;;AACf,OAAO,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B;AAAA,SAAMJ,UAAU,CAACC,YAAD,CAAhB;AAAA,CAAlC,C,CAEP;;AAcA,IAAMI,iBAAiB,gBAAGN,aAAa,CAAyB,IAAzB,CAAvC;AACA,OAAO,IAAMO,oBAAoB,GAAG,SAAvBA,oBAAuB;AAAA,SAAMN,UAAU,CAACK,iBAAD,CAAhB;AAAA,CAA7B;IACkBE,kB,GAAuBF,iB,CAAjCF,Q","sourcesContent":["import { createContext, useContext } from 'react';\n\nimport type { MonthNames, DayNames } from './dateTypes';\nimport type { ReducerState, ReducerActions } from './hooks';\n\n// RangeDatePicker\nexport interface RangeDatePickerContextProps {\n rangeDatePickerRef: React.MutableRefObject<HTMLDivElement | null>;\n innerHasFocus: boolean;\n setInnerHasFocus: (hasFocus: boolean) => void;\n minDate: Date;\n maxDate: Date;\n from?: Date | null;\n to?: Date | null;\n onChangeFrom: (d: Date | null) => void;\n onChangeTo: (d: Date | null) => void;\n dayNames: DayNames;\n monthNames: MonthNames;\n}\n\nconst rangeContext = createContext<RangeDatePickerContextProps | null>(null);\nexport const { Provider: RangeDatePickerProvider } = rangeContext;\nexport const useRangeDatePickerContext = () => useContext(rangeContext);\n\n// DatePicker\nexport interface DatePickerContextProps {\n minDate: Date;\n maxDate: Date;\n dayNames: DayNames;\n monthNames: MonthNames;\n datePickerRef: React.MutableRefObject<HTMLDivElement | null>;\n state: ReducerState;\n dispatch: (value: ReducerActions) => void;\n controlledValueRef: React.MutableRefObject<Date | null | undefined>;\n onChangeRef: React.MutableRefObject<\n ((from: Date | null) => void) | undefined\n >;\n}\nconst datePickerContext = createContext<DatePickerContextProps>(null as any);\nexport const useDatePickerContext = () => useContext(datePickerContext);\nexport const { Provider: DatePickerProvider } = datePickerContext;\n"],"file":"contexts.js"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -2,10 +2,10 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
2
2
|
import { useRangeDatePickerContext, useDatePickerContext } from './contexts'; ////////////////////////////////////////////////////////////////////////////////
|
|
3
3
|
// Actions
|
|
4
4
|
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
5
|
+
export var FOCUS = 'FOCUS';
|
|
6
|
+
export var BLUR = 'BLUR';
|
|
7
|
+
export var NAVIGATE = 'NAVIGATE';
|
|
8
|
+
export var SET_DATE = 'SET_DATE';
|
|
9
9
|
export function reducer(currentState, action) {
|
|
10
10
|
switch (action.type) {
|
|
11
11
|
case FOCUS:
|
|
@@ -43,20 +43,19 @@ export function reducer(currentState, action) {
|
|
|
43
43
|
// Hooks
|
|
44
44
|
|
|
45
45
|
export function useInnerFocus() {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
selectedDate,
|
|
52
|
-
navigationMonth,
|
|
53
|
-
navigationYear,
|
|
54
|
-
navigationDay
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const rangeCtx = useRangeDatePickerContext();
|
|
46
|
+
var _useDatePickerContext = useDatePickerContext(),
|
|
47
|
+
dispatch = _useDatePickerContext.dispatch,
|
|
48
|
+
onChangeRef = _useDatePickerContext.onChangeRef,
|
|
49
|
+
datePickerRef = _useDatePickerContext.datePickerRef,
|
|
50
|
+
_useDatePickerContext2 = _useDatePickerContext.state,
|
|
51
|
+
selectedDate = _useDatePickerContext2.selectedDate,
|
|
52
|
+
navigationMonth = _useDatePickerContext2.navigationMonth,
|
|
53
|
+
navigationYear = _useDatePickerContext2.navigationYear,
|
|
54
|
+
navigationDay = _useDatePickerContext2.navigationDay;
|
|
55
|
+
|
|
56
|
+
var rangeCtx = useRangeDatePickerContext();
|
|
58
57
|
|
|
59
|
-
|
|
58
|
+
var handleFocus = function handleFocus() {
|
|
60
59
|
dispatch({
|
|
61
60
|
type: FOCUS
|
|
62
61
|
});
|
|
@@ -66,8 +65,8 @@ export function useInnerFocus() {
|
|
|
66
65
|
}
|
|
67
66
|
};
|
|
68
67
|
|
|
69
|
-
|
|
70
|
-
requestAnimationFrame(()
|
|
68
|
+
var handleBlur = function handleBlur() {
|
|
69
|
+
requestAnimationFrame(function () {
|
|
71
70
|
// we on want to close only if focus rests outside the datepicker
|
|
72
71
|
if (datePickerRef.current && !datePickerRef.current.contains(document.activeElement)) {
|
|
73
72
|
if (selectedDate && navigationYear >= 0 && navigationMonth >= 0 && navigationDay === -1) {
|
|
@@ -80,7 +79,7 @@ export function useInnerFocus() {
|
|
|
80
79
|
} else {
|
|
81
80
|
dispatch({
|
|
82
81
|
type: BLUR,
|
|
83
|
-
selectedDate
|
|
82
|
+
selectedDate: selectedDate
|
|
84
83
|
});
|
|
85
84
|
}
|
|
86
85
|
}
|
|
@@ -92,8 +91,8 @@ export function useInnerFocus() {
|
|
|
92
91
|
};
|
|
93
92
|
|
|
94
93
|
return {
|
|
95
|
-
handleFocus,
|
|
96
|
-
handleBlur
|
|
94
|
+
handleFocus: handleFocus,
|
|
95
|
+
handleBlur: handleBlur
|
|
97
96
|
};
|
|
98
97
|
}
|
|
99
98
|
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/DatePicker/hooks.tsx"],"names":["useRangeDatePickerContext","useDatePickerContext","FOCUS","BLUR","NAVIGATE","SET_DATE","reducer","currentState","action","type","isFocused","navigationYear","navigationMonth","navigationDay","selectedDate","year","month","day","useInnerFocus","dispatch","onChangeRef","datePickerRef","state","rangeCtx","handleFocus","setInnerHasFocus","handleBlur","requestAnimationFrame","current","contains","document","activeElement","rangeDatePickerRef"],"mappings":";AAAA,SAASA,yBAAT,EAAoCC,oBAApC,QAAgE,YAAhE,C,CAEA;AACA;;AAEA,OAAO,
|
|
1
|
+
{"version":3,"sources":["../../../src/DatePicker/hooks.tsx"],"names":["useRangeDatePickerContext","useDatePickerContext","FOCUS","BLUR","NAVIGATE","SET_DATE","reducer","currentState","action","type","isFocused","navigationYear","navigationMonth","navigationDay","selectedDate","year","month","day","useInnerFocus","dispatch","onChangeRef","datePickerRef","state","rangeCtx","handleFocus","setInnerHasFocus","handleBlur","requestAnimationFrame","current","contains","document","activeElement","rangeDatePickerRef"],"mappings":"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","sourcesContent":["import { useRangeDatePickerContext, useDatePickerContext } from './contexts';\n\n////////////////////////////////////////////////////////////////////////////////\n// Actions\n\nexport const FOCUS = 'FOCUS';\n\nexport const BLUR = 'BLUR';\n\nexport const NAVIGATE = 'NAVIGATE';\n\nexport const SET_DATE = 'SET_DATE';\n\nexport type ActionTypes =\n | typeof FOCUS\n | typeof BLUR\n | typeof NAVIGATE\n | typeof SET_DATE;\n\n////////////////////////////////////////////////////////////////////////////////\n// Reducer\n\nexport interface ReducerState {\n isFocused: boolean;\n navigationYear: number;\n navigationMonth: number;\n navigationDay: number;\n selectedDate: Date | null;\n}\n\ninterface FocusAction {\n type: typeof FOCUS;\n}\n\ninterface NavigateAction {\n type: typeof NAVIGATE;\n year: number;\n month: number;\n day: number;\n}\ninterface SetDateAction {\n type: typeof SET_DATE;\n selectedDate: Date | null;\n}\n\ninterface BlurAction {\n type: typeof BLUR;\n selectedDate: Date | null;\n}\n\nexport type ReducerActions =\n | FocusAction\n | BlurAction\n | NavigateAction\n | SetDateAction;\n\nexport function reducer(\n currentState: Readonly<ReducerState>,\n action: ReducerActions\n): ReducerState {\n switch (action.type) {\n case FOCUS:\n return {\n ...currentState,\n isFocused: true,\n };\n case BLUR:\n return {\n ...currentState,\n navigationYear: -1,\n navigationMonth: -1,\n navigationDay: -1,\n selectedDate: action.selectedDate,\n isFocused: false,\n };\n case NAVIGATE:\n return {\n ...currentState,\n navigationYear: action.year,\n navigationMonth: action.month,\n navigationDay: action.day,\n };\n case SET_DATE: {\n return {\n ...currentState,\n navigationYear: -1,\n navigationMonth: -1,\n navigationDay: -1,\n selectedDate: action.selectedDate,\n };\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\nexport function useInnerFocus() {\n const {\n dispatch,\n onChangeRef,\n datePickerRef,\n state: { selectedDate, navigationMonth, navigationYear, navigationDay },\n } = useDatePickerContext();\n const rangeCtx = useRangeDatePickerContext();\n\n const handleFocus = () => {\n dispatch({ type: FOCUS });\n if (rangeCtx) {\n rangeCtx.setInnerHasFocus(true);\n }\n };\n\n const handleBlur = () => {\n requestAnimationFrame(() => {\n // we on want to close only if focus rests outside the datepicker\n if (\n datePickerRef.current &&\n !datePickerRef.current.contains(document.activeElement)\n ) {\n if (\n selectedDate &&\n navigationYear >= 0 &&\n navigationMonth >= 0 &&\n navigationDay === -1\n ) {\n // user started picking a new day, but haven't finished :(\n onChangeRef.current && onChangeRef.current(null);\n dispatch({ type: BLUR, selectedDate: null });\n } else {\n dispatch({ type: BLUR, selectedDate });\n }\n }\n\n if (\n rangeCtx &&\n rangeCtx.rangeDatePickerRef.current &&\n !rangeCtx.rangeDatePickerRef.current.contains(document.activeElement)\n ) {\n rangeCtx.setInnerHasFocus(false);\n }\n });\n };\n\n return { handleFocus, handleBlur };\n}\n"],"file":"hooks.js"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/build/esm/index.d.ts
CHANGED
|
File without changes
|
package/build/esm/index.js
CHANGED
|
File without changes
|
package/build/esm/index.js.map
CHANGED
|
File without changes
|