@basic-ui/dates 0.0.30 → 0.0.33

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,44 +1,54 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
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 const RangeDatePicker = /*#__PURE__*/forwardRef(function RangeDatePicker(_ref, ref) {
9
- let {
10
- as: Comp = 'div',
11
- minDate: propMinDate = new Date(0),
12
- maxDate: propMaxDate = new Date(),
13
- dayNames,
14
- monthNames,
15
- onChange,
16
- from: controlledFrom,
17
- to: controlledTo,
18
- defaultFrom,
19
- defaultTo
20
- } = _ref,
21
- rest = _objectWithoutPropertiesLoose(_ref, ["as", "minDate", "maxDate", "dayNames", "monthNames", "onChange", "from", "to", "defaultFrom", "defaultTo"]);
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
- const isControlled = controlledFrom !== undefined && controlledTo !== undefined;
24
- const minDate = propMinDate,
25
- maxDate = propMaxDate;
26
- const rangeDatePickerRef = useRef(null);
27
- const [{
28
- from: stateFrom,
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
- const [innerHasFocus, setInnerHasFocus] = useState(false);
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
- const onChangeTo = to => {
50
- const from = stateFrom;
51
- const {
52
- from: nextFrom,
53
- to: nextTo
54
- } = adjustDates(from, to, 'to');
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
- const from = isControlled ? controlledFrom : stateFrom;
63
- const to = isControlled ? controlledTo : stateTo;
64
- const contextValue = {
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","from","controlledFrom","to","controlledTo","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 { MonthNames, DayNames } from './dateTypes';\nimport { assignMultipleRefs } from '@basic-ui/core';\nimport { adjustDates } from './adjustDates';\nimport {\n RangeDatePickerProvider,\n RangeDatePickerContextProps,\n} 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"}
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
@@ -11,8 +11,8 @@ export function adjustDates(from, to, frozenParam) {
11
11
  }
12
12
 
13
13
  return {
14
- from,
15
- to
14
+ from: from,
15
+ to: to
16
16
  };
17
17
  }
18
18
  //# sourceMappingURL=adjustDates.js.map
@@ -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
- const rangeContext = /*#__PURE__*/createContext(null);
3
- export const {
4
- Provider: RangeDatePickerProvider
5
- } = rangeContext;
6
- export const useRangeDatePickerContext = () => useContext(rangeContext); // DatePicker
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
- const datePickerContext = /*#__PURE__*/createContext(null);
9
- export const useDatePickerContext = () => useContext(datePickerContext);
10
- export const {
11
- Provider: DatePickerProvider
12
- } = datePickerContext;
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","Provider","RangeDatePickerProvider","useRangeDatePickerContext","datePickerContext","useDatePickerContext","DatePickerProvider"],"mappings":"AAAA,SAASA,aAAT,EAAwBC,UAAxB,QAA0C,OAA1C;AAmBA,MAAMC,YAAY,gBAAGF,aAAa,CAAqC,IAArC,CAAlC;AACA,OAAO,MAAM;AAAEG,EAAAA,QAAQ,EAAEC;AAAZ,IAAwCF,YAA9C;AACP,OAAO,MAAMG,yBAAyB,GAAG,MAAMJ,UAAU,CAACC,YAAD,CAAlD,C,CAEP;;AAcA,MAAMI,iBAAiB,gBAAGN,aAAa,CAAyB,IAAzB,CAAvC;AACA,OAAO,MAAMO,oBAAoB,GAAG,MAAMN,UAAU,CAACK,iBAAD,CAA7C;AACP,OAAO,MAAM;AAAEH,EAAAA,QAAQ,EAAEK;AAAZ,IAAmCF,iBAAzC","sourcesContent":["import { createContext, useContext } from 'react';\nimport { MonthNames, DayNames } from './dateTypes';\nimport { 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"}
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
@@ -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 const FOCUS = 'FOCUS';
6
- export const BLUR = 'BLUR';
7
- export const NAVIGATE = 'NAVIGATE';
8
- export const SET_DATE = 'SET_DATE';
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
- const {
47
- dispatch,
48
- onChangeRef,
49
- datePickerRef,
50
- state: {
51
- selectedDate,
52
- navigationMonth,
53
- navigationYear,
54
- navigationDay
55
- }
56
- } = useDatePickerContext();
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
- const handleFocus = () => {
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
- const handleBlur = () => {
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":"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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"}
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
File without changes