@elliemae/ds-controlled-form 1.57.0-rc.11 → 1.57.0-rc.12

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 (49) hide show
  1. package/cjs/controlled-date-time-picker/parts/ClearButton/ClearButton.js +0 -1
  2. package/cjs/controlled-date-time-picker/parts/ClearButton/ClearButton.js.map +1 -1
  3. package/cjs/controlled-date-time-picker/parts/ClearButton/useClearButton.js +15 -4
  4. package/cjs/controlled-date-time-picker/parts/ClearButton/useClearButton.js.map +1 -1
  5. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js +1 -0
  6. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js.map +1 -1
  7. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +5 -44
  8. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js.map +1 -1
  9. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +5 -3
  10. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js.map +1 -1
  11. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +30 -14
  12. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js.map +1 -1
  13. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +19 -8
  14. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js.map +1 -1
  15. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +11 -1
  16. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js.map +1 -1
  17. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +2 -50
  18. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js.map +1 -1
  19. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +38 -90
  20. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js.map +1 -1
  21. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +10 -6
  22. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js.map +1 -1
  23. package/cjs/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +7 -4
  24. package/cjs/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js.map +1 -1
  25. package/esm/controlled-date-time-picker/parts/ClearButton/ClearButton.js +0 -1
  26. package/esm/controlled-date-time-picker/parts/ClearButton/ClearButton.js.map +1 -1
  27. package/esm/controlled-date-time-picker/parts/ClearButton/useClearButton.js +15 -4
  28. package/esm/controlled-date-time-picker/parts/ClearButton/useClearButton.js.map +1 -1
  29. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js +1 -0
  30. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js.map +1 -1
  31. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +5 -44
  32. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js.map +1 -1
  33. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +6 -4
  34. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js.map +1 -1
  35. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +31 -15
  36. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js.map +1 -1
  37. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +20 -9
  38. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js.map +1 -1
  39. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +11 -1
  40. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js.map +1 -1
  41. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +2 -50
  42. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js.map +1 -1
  43. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +39 -91
  44. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js.map +1 -1
  45. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +11 -7
  46. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js.map +1 -1
  47. package/esm/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +7 -4
  48. package/esm/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js.map +1 -1
  49. package/package.json +8 -8
@@ -13,7 +13,6 @@ require('styled-components');
13
13
  require('@elliemae/ds-grid');
14
14
  require('../../ControlledDateTimePickerCTX.js');
15
15
  require('../../ControlledDateTimePickerTypes.js');
16
- require('../../utils/constants.js');
17
16
 
18
17
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
18
 
@@ -1 +1 @@
1
- {"version":3,"file":"ClearButton.js","sources":["../../../../../src/controlled-date-time-picker/parts/ClearButton/ClearButton.tsx"],"sourcesContent":["import React from 'react';\nimport { CloseMedium } from '@elliemae/ds-icons';\nimport { DSIconColors } from '@elliemae/ds-icon';\nimport { BUTTON_VARIANT, BUTTON_SIZES } from '@elliemae/ds-button';\nimport { StyledClearButton } from '../Styleds';\nimport { ControlledDateTimePickerDatatestid } from '../../ControlledDateTimePickerDatatestid';\nimport { useClearButton } from './useClearButton';\n\nexport const ClearButton = (): JSX.Element => {\n const { onClearClick, onClearButtonKeyDown, clearButtonRef, withAnyPicker, withClearBtn } = useClearButton();\n return (\n <StyledClearButton\n shouldDisplay={withClearBtn}\n aria-label=\"clear selected date\"\n buttonType=\"icon\"\n size={BUTTON_SIZES.M}\n variant={BUTTON_VARIANT.DEFAULT}\n data-testid={ControlledDateTimePickerDatatestid.CLEAR_BUTTON}\n innerRef={clearButtonRef}\n onClick={onClearClick}\n onKeyDown={onClearButtonKeyDown}\n withAnyPicker={withAnyPicker}\n >\n <CloseMedium color={DSIconColors.PRIMARY} />\n </StyledClearButton>\n );\n};\n"],"names":["ClearButton","useClearButton","onClearClick","onClearButtonKeyDown","clearButtonRef","withAnyPicker","withClearBtn","React","StyledClearButton","BUTTON_SIZES","M","BUTTON_VARIANT","DEFAULT","ControlledDateTimePickerDatatestid","CLEAR_BUTTON","CloseMedium","DSIconColors","PRIMARY"],"mappings":";;;;;;;;;;;;;;;;;;;;;IAQaA,WAAW,GAAG,SAAdA,WAAc,GAAmB;AAC5C,wBAA4FC,wEAAc,EAA1G;AAAA,MAAQC,YAAR,mBAAQA,YAAR;AAAA,MAAsBC,oBAAtB,mBAAsBA,oBAAtB;AAAA,MAA4CC,cAA5C,mBAA4CA,cAA5C;AAAA,MAA4DC,aAA5D,mBAA4DA,aAA5D;AAAA,MAA2EC,YAA3E,mBAA2EA,YAA3E;;AACA,sBACEC,wCAACC,wDAAD;AACE,IAAA,aAAa,EAAEF,YADjB;AAEE,kBAAW,qBAFb;AAGE,IAAA,UAAU,EAAC,MAHb;AAIE,IAAA,IAAI,EAAEG,qBAAY,CAACC,CAJrB;AAKE,IAAA,OAAO,EAAEC,uBAAc,CAACC,OAL1B;AAME,mBAAaC,8FAAkC,CAACC,YANlD;AAOE,IAAA,QAAQ,EAAEV,cAPZ;AAQE,IAAA,OAAO,EAAEF,YARX;AASE,IAAA,SAAS,EAAEC,oBATb;AAUE,IAAA,aAAa,EAAEE;AAVjB,kBAYEE,wCAACQ,mBAAD;AAAa,IAAA,KAAK,EAAEC,mBAAY,CAACC;AAAjC,IAZF,CADF;AAgBD;;;;"}
1
+ {"version":3,"file":"ClearButton.js","sources":["../../../../../src/controlled-date-time-picker/parts/ClearButton/ClearButton.tsx"],"sourcesContent":["import React from 'react';\nimport { CloseMedium } from '@elliemae/ds-icons';\nimport { DSIconColors } from '@elliemae/ds-icon';\nimport { BUTTON_VARIANT, BUTTON_SIZES } from '@elliemae/ds-button';\nimport { StyledClearButton } from '../Styleds';\nimport { ControlledDateTimePickerDatatestid } from '../../ControlledDateTimePickerDatatestid';\nimport { useClearButton } from './useClearButton';\n\nexport const ClearButton = (): JSX.Element => {\n const { onClearClick, onClearButtonKeyDown, clearButtonRef, withAnyPicker, withClearBtn } = useClearButton();\n return (\n <StyledClearButton\n shouldDisplay={withClearBtn}\n aria-label=\"clear selected date\"\n buttonType=\"icon\"\n size={BUTTON_SIZES.M}\n variant={BUTTON_VARIANT.DEFAULT}\n data-testid={ControlledDateTimePickerDatatestid.CLEAR_BUTTON}\n innerRef={clearButtonRef}\n onClick={onClearClick}\n onKeyDown={onClearButtonKeyDown}\n withAnyPicker={withAnyPicker}\n >\n <CloseMedium color={DSIconColors.PRIMARY} />\n </StyledClearButton>\n );\n};\n"],"names":["ClearButton","useClearButton","onClearClick","onClearButtonKeyDown","clearButtonRef","withAnyPicker","withClearBtn","React","StyledClearButton","BUTTON_SIZES","M","BUTTON_VARIANT","DEFAULT","ControlledDateTimePickerDatatestid","CLEAR_BUTTON","CloseMedium","DSIconColors","PRIMARY"],"mappings":";;;;;;;;;;;;;;;;;;;;IAQaA,WAAW,GAAG,SAAdA,WAAc,GAAmB;AAC5C,wBAA4FC,wEAAc,EAA1G;AAAA,MAAQC,YAAR,mBAAQA,YAAR;AAAA,MAAsBC,oBAAtB,mBAAsBA,oBAAtB;AAAA,MAA4CC,cAA5C,mBAA4CA,cAA5C;AAAA,MAA4DC,aAA5D,mBAA4DA,aAA5D;AAAA,MAA2EC,YAA3E,mBAA2EA,YAA3E;;AACA,sBACEC,wCAACC,wDAAD;AACE,IAAA,aAAa,EAAEF,YADjB;AAEE,kBAAW,qBAFb;AAGE,IAAA,UAAU,EAAC,MAHb;AAIE,IAAA,IAAI,EAAEG,qBAAY,CAACC,CAJrB;AAKE,IAAA,OAAO,EAAEC,uBAAc,CAACC,OAL1B;AAME,mBAAaC,8FAAkC,CAACC,YANlD;AAOE,IAAA,QAAQ,EAAEV,cAPZ;AAQE,IAAA,OAAO,EAAEF,YARX;AASE,IAAA,SAAS,EAAEC,oBATb;AAUE,IAAA,aAAa,EAAEE;AAVjB,kBAYEE,wCAACQ,mBAAD;AAAa,IAAA,KAAK,EAAEC,mBAAY,CAACC;AAAjC,IAZF,CADF;AAgBD;;;;"}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var controlledDateTimePicker_ControlledDateTimePickerCTX = require('../../ControlledDateTimePickerCTX.js');
7
- var controlledDateTimePicker_utils_constants = require('../../utils/constants.js');
8
7
  require('../../ControlledDateTimePickerTypes.js');
9
8
 
10
9
  /* eslint-disable max-statements */
@@ -15,10 +14,14 @@ var useClearButton = function useClearButton() {
15
14
  withAnyPicker = _useContext.withAnyPicker,
16
15
  withClearBtn = _useContext.withClearBtn,
17
16
  withAnyInputs = _useContext.withAnyInputs,
17
+ isWithTimeInputs = _useContext.isWithTimeInputs,
18
+ isWithDateInputs = _useContext.isWithDateInputs,
18
19
  isTimeSelector = _useContext.isTimeSelector,
19
20
  hourInputRef = _useContext.hourInputRef,
20
21
  monthInputRef = _useContext.monthInputRef,
21
22
  pickerButtonRef = _useContext.pickerButtonRef,
23
+ meridiemInputRef = _useContext.meridiemInputRef,
24
+ yearInputRef = _useContext.yearInputRef,
22
25
  setLatestInteractionRegion = _useContext.setLatestInteractionRegion;
23
26
 
24
27
  var focusFirstRegion = React.useCallback(function () {
@@ -41,11 +44,19 @@ var useClearButton = function useClearButton() {
41
44
  }, [withAnyPicker, pickerButtonRef]);
42
45
  var onClearButtonKeyDown = React.useCallback(function (e) {
43
46
  var key = e.key;
44
- if (controlledDateTimePicker_utils_constants.homeEndKeys.includes(key)) e.preventDefault();
45
- if (controlledDateTimePicker_utils_constants.homeEndKeys.includes(key)) e.stopPropagation();
47
+ var preventDefaultKeys = ['Home', 'End'];
48
+ var stopPropagationKeys = ['Home', 'End'];
49
+ if (preventDefaultKeys.includes(key)) e.preventDefault();
50
+ if (stopPropagationKeys.includes(key)) e.stopPropagation();
46
51
  if (key === 'Home') onHomeKeyDown();
47
52
  if (key === 'End') onEndKeyDown();
48
- }, [onEndKeyDown, onHomeKeyDown]);
53
+
54
+ if (key === 'Backspace' && withAnyInputs) {
55
+ var _meridiemInputRef$cur, _meridiemInputRef$cur2, _yearInputRef$current, _yearInputRef$current2;
56
+
57
+ if (isWithTimeInputs) meridiemInputRef === null || meridiemInputRef === void 0 ? void 0 : (_meridiemInputRef$cur = meridiemInputRef.current) === null || _meridiemInputRef$cur === void 0 ? void 0 : (_meridiemInputRef$cur2 = _meridiemInputRef$cur.focus) === null || _meridiemInputRef$cur2 === void 0 ? void 0 : _meridiemInputRef$cur2.call(_meridiemInputRef$cur);else if (isWithDateInputs) yearInputRef === null || yearInputRef === void 0 ? void 0 : (_yearInputRef$current = yearInputRef.current) === null || _yearInputRef$current === void 0 ? void 0 : (_yearInputRef$current2 = _yearInputRef$current.focus) === null || _yearInputRef$current2 === void 0 ? void 0 : _yearInputRef$current2.call(_yearInputRef$current);
58
+ }
59
+ }, [isWithDateInputs, isWithTimeInputs, meridiemInputRef, onEndKeyDown, onHomeKeyDown, withAnyInputs, yearInputRef]);
49
60
  return React.useMemo(function () {
50
61
  return {
51
62
  onClearClick: onClearClick,
@@ -1 +1 @@
1
- {"version":3,"file":"useClearButton.js","sources":["../../../../../src/controlled-date-time-picker/parts/ClearButton/useClearButton.tsx"],"sourcesContent":["/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useCallback, useMemo, useContext } from 'react';\nimport { ControlledDateTimePickerContext } from '../../ControlledDateTimePickerCTX';\nimport type { onClearClickT, onKeyDownT } from '../../index.d';\nimport { homeEndKeys } from '../../utils/constants';\n\ninterface useOnClearClickRT {\n onClearClick: onClearClickT;\n onClearButtonKeyDown: onKeyDownT<HTMLButtonElement>;\n clearButtonRef: React.MutableRefObject<HTMLButtonElement>;\n withAnyPicker: boolean;\n withClearBtn: boolean;\n}\nexport const useClearButton = (): useOnClearClickRT => {\n const {\n handleClearAll,\n clearButtonRef,\n withAnyPicker,\n withClearBtn,\n withAnyInputs,\n isTimeSelector,\n hourInputRef,\n monthInputRef,\n pickerButtonRef,\n setLatestInteractionRegion,\n } = useContext(ControlledDateTimePickerContext);\n\n const focusFirstRegion = useCallback(() => {\n if (withAnyInputs)\n if (isTimeSelector) hourInputRef?.current?.focus?.();\n else monthInputRef?.current?.focus?.();\n }, [withAnyInputs, isTimeSelector, hourInputRef, monthInputRef]);\n\n const onClearClick = useCallback(\n (e) => {\n handleClearAll(e);\n setLatestInteractionRegion('clear-btn');\n focusFirstRegion();\n },\n [focusFirstRegion, handleClearAll, setLatestInteractionRegion],\n );\n const onHomeKeyDown = useCallback(() => {\n focusFirstRegion();\n }, [focusFirstRegion]);\n const onEndKeyDown = useCallback(() => {\n if (withAnyPicker) pickerButtonRef?.current?.focus?.();\n }, [withAnyPicker, pickerButtonRef]);\n\n const onClearButtonKeyDown = useCallback(\n (e) => {\n const { key } = e;\n if (homeEndKeys.includes(key)) e.preventDefault();\n if (homeEndKeys.includes(key)) e.stopPropagation();\n if (key === 'Home') onHomeKeyDown();\n if (key === 'End') onEndKeyDown();\n },\n [onEndKeyDown, onHomeKeyDown],\n );\n\n return useMemo(\n () => ({ onClearClick, onClearButtonKeyDown, clearButtonRef, withAnyPicker, withClearBtn }),\n [onClearClick, onClearButtonKeyDown, clearButtonRef, withAnyPicker, withClearBtn],\n );\n};\n"],"names":["useClearButton","useContext","ControlledDateTimePickerContext","handleClearAll","clearButtonRef","withAnyPicker","withClearBtn","withAnyInputs","isTimeSelector","hourInputRef","monthInputRef","pickerButtonRef","setLatestInteractionRegion","focusFirstRegion","useCallback","current","focus","onClearClick","e","onHomeKeyDown","onEndKeyDown","onClearButtonKeyDown","key","homeEndKeys","includes","preventDefault","stopPropagation","useMemo"],"mappings":";;;;;;;;;AAAA;IAcaA,cAAc,GAAG,SAAjBA,cAAiB,GAAyB;AACrD,oBAWIC,gBAAU,CAACC,oFAAD,CAXd;AAAA,MACEC,cADF,eACEA,cADF;AAAA,MAEEC,cAFF,eAEEA,cAFF;AAAA,MAGEC,aAHF,eAGEA,aAHF;AAAA,MAIEC,YAJF,eAIEA,YAJF;AAAA,MAKEC,aALF,eAKEA,aALF;AAAA,MAMEC,cANF,eAMEA,cANF;AAAA,MAOEC,YAPF,eAOEA,YAPF;AAAA,MAQEC,aARF,eAQEA,aARF;AAAA,MASEC,eATF,eASEA,eATF;AAAA,MAUEC,0BAVF,eAUEA,0BAVF;;AAaA,MAAMC,gBAAgB,GAAGC,iBAAW,CAAC,YAAM;AAAA;;AACzC,QAAIP,aAAJ,EACE,IAAIC,cAAJ,EAAoBC,YAAY,SAAZ,IAAAA,YAAY,WAAZ,qCAAAA,YAAY,CAAEM,OAAd,0GAAuBC,KAAvB,8GAApB,KACKN,aAAa,SAAb,IAAAA,aAAa,WAAb,qCAAAA,aAAa,CAAEK,OAAf,0GAAwBC,KAAxB;AACR,GAJmC,EAIjC,CAACT,aAAD,EAAgBC,cAAhB,EAAgCC,YAAhC,EAA8CC,aAA9C,CAJiC,CAApC;AAMA,MAAMO,YAAY,GAAGH,iBAAW,CAC9B,UAACI,CAAD,EAAO;AACLf,IAAAA,cAAc,CAACe,CAAD,CAAd;AACAN,IAAAA,0BAA0B,CAAC,WAAD,CAA1B;AACAC,IAAAA,gBAAgB;AACjB,GAL6B,EAM9B,CAACA,gBAAD,EAAmBV,cAAnB,EAAmCS,0BAAnC,CAN8B,CAAhC;AAQA,MAAMO,aAAa,GAAGL,iBAAW,CAAC,YAAM;AACtCD,IAAAA,gBAAgB;AACjB,GAFgC,EAE9B,CAACA,gBAAD,CAF8B,CAAjC;AAGA,MAAMO,YAAY,GAAGN,iBAAW,CAAC,YAAM;AAAA;;AACrC,QAAIT,aAAJ,EAAmBM,eAAe,SAAf,IAAAA,eAAe,WAAf,qCAAAA,eAAe,CAAEI,OAAjB,0GAA0BC,KAA1B;AACpB,GAF+B,EAE7B,CAACX,aAAD,EAAgBM,eAAhB,CAF6B,CAAhC;AAIA,MAAMU,oBAAoB,GAAGP,iBAAW,CACtC,UAACI,CAAD,EAAO;AACL,QAAQI,GAAR,GAAgBJ,CAAhB,CAAQI,GAAR;AACA,QAAIC,oDAAW,CAACC,QAAZ,CAAqBF,GAArB,CAAJ,EAA+BJ,CAAC,CAACO,cAAF;AAC/B,QAAIF,oDAAW,CAACC,QAAZ,CAAqBF,GAArB,CAAJ,EAA+BJ,CAAC,CAACQ,eAAF;AAC/B,QAAIJ,GAAG,KAAK,MAAZ,EAAoBH,aAAa;AACjC,QAAIG,GAAG,KAAK,KAAZ,EAAmBF,YAAY;AAChC,GAPqC,EAQtC,CAACA,YAAD,EAAeD,aAAf,CARsC,CAAxC;AAWA,SAAOQ,aAAO,CACZ;AAAA,WAAO;AAAEV,MAAAA,YAAY,EAAZA,YAAF;AAAgBI,MAAAA,oBAAoB,EAApBA,oBAAhB;AAAsCjB,MAAAA,cAAc,EAAdA,cAAtC;AAAsDC,MAAAA,aAAa,EAAbA,aAAtD;AAAqEC,MAAAA,YAAY,EAAZA;AAArE,KAAP;AAAA,GADY,EAEZ,CAACW,YAAD,EAAeI,oBAAf,EAAqCjB,cAArC,EAAqDC,aAArD,EAAoEC,YAApE,CAFY,CAAd;AAID;;;;"}
1
+ {"version":3,"file":"useClearButton.js","sources":["../../../../../src/controlled-date-time-picker/parts/ClearButton/useClearButton.tsx"],"sourcesContent":["/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useCallback, useMemo, useContext } from 'react';\nimport { ControlledDateTimePickerContext } from '../../ControlledDateTimePickerCTX';\nimport type { onClearClickT, onKeyDownT } from '../../index.d';\n\ninterface useOnClearClickRT {\n onClearClick: onClearClickT;\n onClearButtonKeyDown: onKeyDownT<HTMLButtonElement>;\n clearButtonRef: React.MutableRefObject<HTMLButtonElement>;\n withAnyPicker: boolean;\n withClearBtn: boolean;\n}\nexport const useClearButton = (): useOnClearClickRT => {\n const {\n handleClearAll,\n clearButtonRef,\n withAnyPicker,\n withClearBtn,\n withAnyInputs,\n isWithTimeInputs,\n isWithDateInputs,\n isTimeSelector,\n hourInputRef,\n monthInputRef,\n pickerButtonRef,\n meridiemInputRef,\n yearInputRef,\n setLatestInteractionRegion,\n } = useContext(ControlledDateTimePickerContext);\n\n const focusFirstRegion = useCallback(() => {\n if (withAnyInputs)\n if (isTimeSelector) hourInputRef?.current?.focus?.();\n else monthInputRef?.current?.focus?.();\n }, [withAnyInputs, isTimeSelector, hourInputRef, monthInputRef]);\n\n const onClearClick = useCallback(\n (e) => {\n handleClearAll(e);\n setLatestInteractionRegion('clear-btn');\n focusFirstRegion();\n },\n [focusFirstRegion, handleClearAll, setLatestInteractionRegion],\n );\n const onHomeKeyDown = useCallback(() => {\n focusFirstRegion();\n }, [focusFirstRegion]);\n const onEndKeyDown = useCallback(() => {\n if (withAnyPicker) pickerButtonRef?.current?.focus?.();\n }, [withAnyPicker, pickerButtonRef]);\n\n const onClearButtonKeyDown = useCallback(\n (e) => {\n const { key } = e;\n const preventDefaultKeys = ['Home', 'End'];\n const stopPropagationKeys = ['Home', 'End'];\n if (preventDefaultKeys.includes(key)) e.preventDefault();\n if (stopPropagationKeys.includes(key)) e.stopPropagation();\n if (key === 'Home') onHomeKeyDown();\n if (key === 'End') onEndKeyDown();\n if (key === 'Backspace' && withAnyInputs) {\n if (isWithTimeInputs) meridiemInputRef?.current?.focus?.();\n else if (isWithDateInputs) yearInputRef?.current?.focus?.();\n }\n },\n [isWithDateInputs, isWithTimeInputs, meridiemInputRef, onEndKeyDown, onHomeKeyDown, withAnyInputs, yearInputRef],\n );\n\n return useMemo(\n () => ({ onClearClick, onClearButtonKeyDown, clearButtonRef, withAnyPicker, withClearBtn }),\n [onClearClick, onClearButtonKeyDown, clearButtonRef, withAnyPicker, withClearBtn],\n );\n};\n"],"names":["useClearButton","useContext","ControlledDateTimePickerContext","handleClearAll","clearButtonRef","withAnyPicker","withClearBtn","withAnyInputs","isWithTimeInputs","isWithDateInputs","isTimeSelector","hourInputRef","monthInputRef","pickerButtonRef","meridiemInputRef","yearInputRef","setLatestInteractionRegion","focusFirstRegion","useCallback","current","focus","onClearClick","e","onHomeKeyDown","onEndKeyDown","onClearButtonKeyDown","key","preventDefaultKeys","stopPropagationKeys","includes","preventDefault","stopPropagation","useMemo"],"mappings":"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"}
@@ -10,6 +10,7 @@ var noop = function noop() {};
10
10
  var defaultCalendarContext = {
11
11
  ariaCurrentValueForInputs: '',
12
12
  showCalendar: false,
13
+ disabled: false,
13
14
  setShowCalendar: noop,
14
15
  closeCalendar: noop,
15
16
  setPopperElement: noop,
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarContext.js","sources":["../../../../../../src/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.tsx"],"sourcesContent":["import React, { createContext, createRef } from 'react';\nimport type { DateMonth, metaMonthDayT, onFocusFuncT } from '../../../index.d';\n\nexport type handleDayOnKeyDownT = (e: React.KeyboardEvent, day: metaMonthDayT) => void;\nexport interface KeyboardHandlersT {\n handleDayOnKeyDown: handleDayOnKeyDownT;\n handlePrevYearKeyDown: (e: React.KeyboardEvent) => void;\n handlePrevMonthKeyDown: (e: React.KeyboardEvent) => void;\n handleNextMonthKeyDown: (e: React.KeyboardEvent) => void;\n handleNextYearKeyDown: (e: React.KeyboardEvent) => void;\n handlePickerIconKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => void;\n}\nexport interface FocusLogicT {\n focusedDay?: metaMonthDayT;\n tryToFocusCurrentlyDataIsFocusedDay: () => void;\n resetFocusedDayToStartDate: () => void;\n handleFocusMetaDay: (metaDayToFocus: metaMonthDayT) => void;\n handleFocusMetaDayByDay: (day: Date) => void;\n}\nexport interface HeaderButtonsRefsT {\n prevYearBtnRef: React.RefObject<HTMLButtonElement>;\n prevMonthBtnRef: React.RefObject<HTMLButtonElement>;\n nextMonthBtnRef: React.RefObject<HTMLButtonElement>;\n nextYearBtnRef: React.RefObject<HTMLButtonElement>;\n calendarDaysWrapperRef: React.RefObject<HTMLDivElement>;\n}\nexport interface PopperTriggerLogicT {\n closeCalendar: () => void;\n setPopperElement: React.Dispatch<React.SetStateAction<HTMLDivElement>>;\n setArrowElement: React.Dispatch<React.SetStateAction<HTMLDivElement>>;\n usePopperHelpers?: {\n attributes: Record<string, unknown>;\n styles: Record<string, React.CSSProperties>;\n };\n handleToggleCalendar: (e?: React.MouseEvent<HTMLButtonElement>) => void;\n handleSetTriggerRef: (instance: HTMLButtonElement) => void;\n handleMenuWrapperKeyDown: (e?: React.KeyboardEvent<HTMLElement>) => void;\n}\nexport interface useCurrentDisplayedMonthYearLogicT {\n currentMonth?: DateMonth;\n currentYear?: number;\n daysArray: metaMonthDayT[];\n invisibleFirstDay?: metaMonthDayT;\n daysMatrixByWeekday: metaMonthDayT[][];\n invisibleLastDay?: metaMonthDayT;\n handlePrevMonth: () => void;\n handlePrevYear: () => void;\n handleNextMonth: () => void;\n handleNextYear: () => void;\n}\nexport interface CalendarContextT\n extends KeyboardHandlersT,\n HeaderButtonsRefsT,\n FocusLogicT,\n PopperTriggerLogicT,\n useCurrentDisplayedMonthYearLogicT {\n ariaCurrentValueForInputs: string;\n showCalendar: boolean;\n setShowCalendar: React.Dispatch<React.SetStateAction<boolean>>;\n isControllerOnly: boolean;\n isWithTimeWheelToo: boolean;\n autoFocusPrevMonthArrow: boolean;\n disabled: boolean;\n onPrevYearFocus: onFocusFuncT;\n onPrevMonthFocus: onFocusFuncT;\n onNextMonthFocus: onFocusFuncT;\n onNextYearFocus: onFocusFuncT;\n}\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\nexport const defaultCalendarContext: CalendarContextT = {\n ariaCurrentValueForInputs: '',\n showCalendar: false,\n setShowCalendar: noop,\n closeCalendar: noop,\n setPopperElement: noop,\n setArrowElement: noop,\n usePopperHelpers: undefined,\n handleToggleCalendar: noop,\n handleSetTriggerRef: noop,\n handleMenuWrapperKeyDown: noop,\n prevYearBtnRef: createRef<HTMLButtonElement>(),\n prevMonthBtnRef: createRef<HTMLButtonElement>(),\n nextMonthBtnRef: createRef<HTMLButtonElement>(),\n nextYearBtnRef: createRef<HTMLButtonElement>(),\n calendarDaysWrapperRef: createRef<HTMLDivElement>(),\n currentMonth: undefined,\n currentYear: undefined,\n daysArray: [],\n invisibleFirstDay: undefined,\n daysMatrixByWeekday: [],\n invisibleLastDay: undefined,\n focusedDay: undefined,\n tryToFocusCurrentlyDataIsFocusedDay: noop,\n resetFocusedDayToStartDate: noop,\n handleFocusMetaDay: noop,\n handleFocusMetaDayByDay: noop,\n handlePrevMonth: noop,\n handlePrevYear: noop,\n handleNextMonth: noop,\n handleNextYear: noop,\n handleDayOnKeyDown: noop,\n handlePrevYearKeyDown: noop,\n handlePrevMonthKeyDown: noop,\n handleNextMonthKeyDown: noop,\n handleNextYearKeyDown: noop,\n handlePickerIconKeyDown: noop,\n isControllerOnly: false,\n isWithTimeWheelToo: true,\n autoFocusPrevMonthArrow: false,\n onPrevYearFocus: noop,\n onPrevMonthFocus: noop,\n onNextMonthFocus: noop,\n onNextYearFocus: noop,\n};\n/** Context for cross component communication */\nexport const CalendarContext = createContext(defaultCalendarContext);\n\nexport default CalendarContext;\n"],"names":["noop","defaultCalendarContext","ariaCurrentValueForInputs","showCalendar","setShowCalendar","closeCalendar","setPopperElement","setArrowElement","usePopperHelpers","undefined","handleToggleCalendar","handleSetTriggerRef","handleMenuWrapperKeyDown","prevYearBtnRef","createRef","prevMonthBtnRef","nextMonthBtnRef","nextYearBtnRef","calendarDaysWrapperRef","currentMonth","currentYear","daysArray","invisibleFirstDay","daysMatrixByWeekday","invisibleLastDay","focusedDay","tryToFocusCurrentlyDataIsFocusedDay","resetFocusedDayToStartDate","handleFocusMetaDay","handleFocusMetaDayByDay","handlePrevMonth","handlePrevYear","handleNextMonth","handleNextYear","handleDayOnKeyDown","handlePrevYearKeyDown","handlePrevMonthKeyDown","handleNextMonthKeyDown","handleNextYearKeyDown","handlePickerIconKeyDown","isControllerOnly","isWithTimeWheelToo","autoFocusPrevMonthArrow","onPrevYearFocus","onPrevMonthFocus","onNextMonthFocus","onNextYearFocus","CalendarContext","createContext"],"mappings":";;;;;;AAoEA;AACA,IAAMA,IAAI,GAAG,SAAPA,IAAO,GAAY,EAAzB;;IACaC,sBAAwC,GAAG;AACtDC,EAAAA,yBAAyB,EAAE,EAD2B;AAEtDC,EAAAA,YAAY,EAAE,KAFwC;AAGtDC,EAAAA,eAAe,EAAEJ,IAHqC;AAItDK,EAAAA,aAAa,EAAEL,IAJuC;AAKtDM,EAAAA,gBAAgB,EAAEN,IALoC;AAMtDO,EAAAA,eAAe,EAAEP,IANqC;AAOtDQ,EAAAA,gBAAgB,EAAEC,SAPoC;AAQtDC,EAAAA,oBAAoB,EAAEV,IARgC;AAStDW,EAAAA,mBAAmB,EAAEX,IATiC;AAUtDY,EAAAA,wBAAwB,EAAEZ,IAV4B;AAWtDa,EAAAA,cAAc,eAAEC,eAAS,EAX6B;AAYtDC,EAAAA,eAAe,eAAED,eAAS,EAZ4B;AAatDE,EAAAA,eAAe,eAAEF,eAAS,EAb4B;AActDG,EAAAA,cAAc,eAAEH,eAAS,EAd6B;AAetDI,EAAAA,sBAAsB,eAAEJ,eAAS,EAfqB;AAgBtDK,EAAAA,YAAY,EAAEV,SAhBwC;AAiBtDW,EAAAA,WAAW,EAAEX,SAjByC;AAkBtDY,EAAAA,SAAS,EAAE,EAlB2C;AAmBtDC,EAAAA,iBAAiB,EAAEb,SAnBmC;AAoBtDc,EAAAA,mBAAmB,EAAE,EApBiC;AAqBtDC,EAAAA,gBAAgB,EAAEf,SArBoC;AAsBtDgB,EAAAA,UAAU,EAAEhB,SAtB0C;AAuBtDiB,EAAAA,mCAAmC,EAAE1B,IAvBiB;AAwBtD2B,EAAAA,0BAA0B,EAAE3B,IAxB0B;AAyBtD4B,EAAAA,kBAAkB,EAAE5B,IAzBkC;AA0BtD6B,EAAAA,uBAAuB,EAAE7B,IA1B6B;AA2BtD8B,EAAAA,eAAe,EAAE9B,IA3BqC;AA4BtD+B,EAAAA,cAAc,EAAE/B,IA5BsC;AA6BtDgC,EAAAA,eAAe,EAAEhC,IA7BqC;AA8BtDiC,EAAAA,cAAc,EAAEjC,IA9BsC;AA+BtDkC,EAAAA,kBAAkB,EAAElC,IA/BkC;AAgCtDmC,EAAAA,qBAAqB,EAAEnC,IAhC+B;AAiCtDoC,EAAAA,sBAAsB,EAAEpC,IAjC8B;AAkCtDqC,EAAAA,sBAAsB,EAAErC,IAlC8B;AAmCtDsC,EAAAA,qBAAqB,EAAEtC,IAnC+B;AAoCtDuC,EAAAA,uBAAuB,EAAEvC,IApC6B;AAqCtDwC,EAAAA,gBAAgB,EAAE,KArCoC;AAsCtDC,EAAAA,kBAAkB,EAAE,IAtCkC;AAuCtDC,EAAAA,uBAAuB,EAAE,KAvC6B;AAwCtDC,EAAAA,eAAe,EAAE3C,IAxCqC;AAyCtD4C,EAAAA,gBAAgB,EAAE5C,IAzCoC;AA0CtD6C,EAAAA,gBAAgB,EAAE7C,IA1CoC;AA2CtD8C,EAAAA,eAAe,EAAE9C;AA3CqC;AA6CxD;;IACa+C,eAAe,gBAAGC,mBAAa,CAAC/C,sBAAD;;;;;;"}
1
+ {"version":3,"file":"CalendarContext.js","sources":["../../../../../../src/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.tsx"],"sourcesContent":["import React, { createContext, createRef } from 'react';\nimport type { DateMonth, metaMonthDayT, onFocusFuncT } from '../../../index.d';\n\nexport type handleDayOnKeyDownT = (e: React.KeyboardEvent, day: metaMonthDayT) => void;\nexport interface KeyboardHandlersT {\n handleDayOnKeyDown: handleDayOnKeyDownT;\n handlePrevYearKeyDown: (e: React.KeyboardEvent) => void;\n handlePrevMonthKeyDown: (e: React.KeyboardEvent) => void;\n handleNextMonthKeyDown: (e: React.KeyboardEvent) => void;\n handleNextYearKeyDown: (e: React.KeyboardEvent) => void;\n handlePickerIconKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => void;\n}\nexport interface FocusLogicT {\n focusedDay?: metaMonthDayT;\n tryToFocusCurrentlyDataIsFocusedDay: () => void;\n resetFocusedDayToStartDate: () => void;\n handleFocusMetaDay: (metaDayToFocus: metaMonthDayT) => void;\n handleFocusMetaDayByDay: (day: Date) => void;\n}\nexport interface HeaderButtonsRefsT {\n prevYearBtnRef: React.RefObject<HTMLButtonElement>;\n prevMonthBtnRef: React.RefObject<HTMLButtonElement>;\n nextMonthBtnRef: React.RefObject<HTMLButtonElement>;\n nextYearBtnRef: React.RefObject<HTMLButtonElement>;\n calendarDaysWrapperRef: React.RefObject<HTMLDivElement>;\n}\nexport interface PopperTriggerLogicT {\n closeCalendar: () => void;\n setPopperElement: React.Dispatch<React.SetStateAction<HTMLDivElement>>;\n setArrowElement: React.Dispatch<React.SetStateAction<HTMLDivElement>>;\n usePopperHelpers?: {\n attributes: Record<string, unknown>;\n styles: Record<string, React.CSSProperties>;\n };\n handleToggleCalendar: (e?: React.MouseEvent<HTMLButtonElement>) => void;\n handleSetTriggerRef: (instance: HTMLButtonElement) => void;\n handleMenuWrapperKeyDown: (e?: React.KeyboardEvent<HTMLElement>) => void;\n}\nexport interface useCurrentDisplayedMonthYearLogicT {\n currentMonth?: DateMonth;\n currentYear?: number;\n daysArray: metaMonthDayT[];\n invisibleFirstDay?: metaMonthDayT;\n daysMatrixByWeekday?: metaMonthDayT[][];\n invisibleLastDay?: metaMonthDayT;\n handlePrevMonth: () => void;\n handlePrevYear: () => void;\n handleNextMonth: () => void;\n handleNextYear: () => void;\n}\nexport interface CalendarContextT\n extends KeyboardHandlersT,\n HeaderButtonsRefsT,\n FocusLogicT,\n PopperTriggerLogicT,\n useCurrentDisplayedMonthYearLogicT {\n ariaCurrentValueForInputs: string;\n showCalendar: boolean;\n setShowCalendar: React.Dispatch<React.SetStateAction<boolean>>;\n isControllerOnly: boolean;\n isWithTimeWheelToo: boolean;\n autoFocusPrevMonthArrow: boolean;\n disabled: boolean;\n onPrevYearFocus: onFocusFuncT;\n onPrevMonthFocus: onFocusFuncT;\n onNextMonthFocus: onFocusFuncT;\n onNextYearFocus: onFocusFuncT;\n}\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\nexport const defaultCalendarContext: CalendarContextT = {\n ariaCurrentValueForInputs: '',\n showCalendar: false,\n disabled: false,\n setShowCalendar: noop,\n closeCalendar: noop,\n setPopperElement: noop,\n setArrowElement: noop,\n usePopperHelpers: undefined,\n handleToggleCalendar: noop,\n handleSetTriggerRef: noop,\n handleMenuWrapperKeyDown: noop,\n prevYearBtnRef: createRef<HTMLButtonElement>(),\n prevMonthBtnRef: createRef<HTMLButtonElement>(),\n nextMonthBtnRef: createRef<HTMLButtonElement>(),\n nextYearBtnRef: createRef<HTMLButtonElement>(),\n calendarDaysWrapperRef: createRef<HTMLDivElement>(),\n currentMonth: undefined,\n currentYear: undefined,\n daysArray: [],\n invisibleFirstDay: undefined,\n daysMatrixByWeekday: [],\n invisibleLastDay: undefined,\n focusedDay: undefined,\n tryToFocusCurrentlyDataIsFocusedDay: noop,\n resetFocusedDayToStartDate: noop,\n handleFocusMetaDay: noop,\n handleFocusMetaDayByDay: noop,\n handlePrevMonth: noop,\n handlePrevYear: noop,\n handleNextMonth: noop,\n handleNextYear: noop,\n handleDayOnKeyDown: noop,\n handlePrevYearKeyDown: noop,\n handlePrevMonthKeyDown: noop,\n handleNextMonthKeyDown: noop,\n handleNextYearKeyDown: noop,\n handlePickerIconKeyDown: noop,\n isControllerOnly: false,\n isWithTimeWheelToo: true,\n autoFocusPrevMonthArrow: false,\n onPrevYearFocus: noop,\n onPrevMonthFocus: noop,\n onNextMonthFocus: noop,\n onNextYearFocus: noop,\n};\n/** Context for cross component communication */\nexport const CalendarContext = createContext(defaultCalendarContext);\n\nexport default CalendarContext;\n"],"names":["noop","defaultCalendarContext","ariaCurrentValueForInputs","showCalendar","disabled","setShowCalendar","closeCalendar","setPopperElement","setArrowElement","usePopperHelpers","undefined","handleToggleCalendar","handleSetTriggerRef","handleMenuWrapperKeyDown","prevYearBtnRef","createRef","prevMonthBtnRef","nextMonthBtnRef","nextYearBtnRef","calendarDaysWrapperRef","currentMonth","currentYear","daysArray","invisibleFirstDay","daysMatrixByWeekday","invisibleLastDay","focusedDay","tryToFocusCurrentlyDataIsFocusedDay","resetFocusedDayToStartDate","handleFocusMetaDay","handleFocusMetaDayByDay","handlePrevMonth","handlePrevYear","handleNextMonth","handleNextYear","handleDayOnKeyDown","handlePrevYearKeyDown","handlePrevMonthKeyDown","handleNextMonthKeyDown","handleNextYearKeyDown","handlePickerIconKeyDown","isControllerOnly","isWithTimeWheelToo","autoFocusPrevMonthArrow","onPrevYearFocus","onPrevMonthFocus","onNextMonthFocus","onNextYearFocus","CalendarContext","createContext"],"mappings":";;;;;;AAoEA;AACA,IAAMA,IAAI,GAAG,SAAPA,IAAO,GAAY,EAAzB;;IACaC,sBAAwC,GAAG;AACtDC,EAAAA,yBAAyB,EAAE,EAD2B;AAEtDC,EAAAA,YAAY,EAAE,KAFwC;AAGtDC,EAAAA,QAAQ,EAAE,KAH4C;AAItDC,EAAAA,eAAe,EAAEL,IAJqC;AAKtDM,EAAAA,aAAa,EAAEN,IALuC;AAMtDO,EAAAA,gBAAgB,EAAEP,IANoC;AAOtDQ,EAAAA,eAAe,EAAER,IAPqC;AAQtDS,EAAAA,gBAAgB,EAAEC,SARoC;AAStDC,EAAAA,oBAAoB,EAAEX,IATgC;AAUtDY,EAAAA,mBAAmB,EAAEZ,IAViC;AAWtDa,EAAAA,wBAAwB,EAAEb,IAX4B;AAYtDc,EAAAA,cAAc,eAAEC,eAAS,EAZ6B;AAatDC,EAAAA,eAAe,eAAED,eAAS,EAb4B;AActDE,EAAAA,eAAe,eAAEF,eAAS,EAd4B;AAetDG,EAAAA,cAAc,eAAEH,eAAS,EAf6B;AAgBtDI,EAAAA,sBAAsB,eAAEJ,eAAS,EAhBqB;AAiBtDK,EAAAA,YAAY,EAAEV,SAjBwC;AAkBtDW,EAAAA,WAAW,EAAEX,SAlByC;AAmBtDY,EAAAA,SAAS,EAAE,EAnB2C;AAoBtDC,EAAAA,iBAAiB,EAAEb,SApBmC;AAqBtDc,EAAAA,mBAAmB,EAAE,EArBiC;AAsBtDC,EAAAA,gBAAgB,EAAEf,SAtBoC;AAuBtDgB,EAAAA,UAAU,EAAEhB,SAvB0C;AAwBtDiB,EAAAA,mCAAmC,EAAE3B,IAxBiB;AAyBtD4B,EAAAA,0BAA0B,EAAE5B,IAzB0B;AA0BtD6B,EAAAA,kBAAkB,EAAE7B,IA1BkC;AA2BtD8B,EAAAA,uBAAuB,EAAE9B,IA3B6B;AA4BtD+B,EAAAA,eAAe,EAAE/B,IA5BqC;AA6BtDgC,EAAAA,cAAc,EAAEhC,IA7BsC;AA8BtDiC,EAAAA,eAAe,EAAEjC,IA9BqC;AA+BtDkC,EAAAA,cAAc,EAAElC,IA/BsC;AAgCtDmC,EAAAA,kBAAkB,EAAEnC,IAhCkC;AAiCtDoC,EAAAA,qBAAqB,EAAEpC,IAjC+B;AAkCtDqC,EAAAA,sBAAsB,EAAErC,IAlC8B;AAmCtDsC,EAAAA,sBAAsB,EAAEtC,IAnC8B;AAoCtDuC,EAAAA,qBAAqB,EAAEvC,IApC+B;AAqCtDwC,EAAAA,uBAAuB,EAAExC,IArC6B;AAsCtDyC,EAAAA,gBAAgB,EAAE,KAtCoC;AAuCtDC,EAAAA,kBAAkB,EAAE,IAvCkC;AAwCtDC,EAAAA,uBAAuB,EAAE,KAxC6B;AAyCtDC,EAAAA,eAAe,EAAE5C,IAzCqC;AA0CtD6C,EAAAA,gBAAgB,EAAE7C,IA1CoC;AA2CtD8C,EAAAA,gBAAgB,EAAE9C,IA3CoC;AA4CtD+C,EAAAA,eAAe,EAAE/C;AA5CqC;AA8CxD;;IACagD,eAAe,gBAAGC,mBAAa,CAAChD,sBAAD;;;;;;"}
@@ -40,23 +40,12 @@ function sliceIntoChunks(arr, chunkSize) {
40
40
 
41
41
  var useConfigCalendarCTX = function useConfigCalendarCTX() {
42
42
  var _useContext = React.useContext(controlledDateTimePicker_ControlledDateTimePickerCTX.ControlledDateTimePickerContext),
43
- pickerButtonRef = _useContext.pickerButtonRef,
44
- _useContext$props = _useContext.props,
45
- onPickerOpen = _useContext$props.onPickerOpen,
46
- onPickerClose = _useContext$props.onPickerClose,
47
- preventCloseOnSelection = _useContext$props.preventCloseOnSelection,
48
- disabled = _useContext$props.disabled,
49
- hideDate = _useContext.hideDate,
50
- hideTime = _useContext.hideTime,
51
- monthInputRef = _useContext.monthInputRef,
52
- hourInputRef = _useContext.hourInputRef,
43
+ disabled = _useContext.props.disabled,
53
44
  prevYearBtnRef = _useContext.prevYearBtnRef,
54
45
  prevMonthBtnRef = _useContext.prevMonthBtnRef,
55
46
  nextMonthBtnRef = _useContext.nextMonthBtnRef,
56
47
  nextYearBtnRef = _useContext.nextYearBtnRef,
57
48
  calendarDaysWrapperRef = _useContext.calendarDaysWrapperRef,
58
- currMeridiemBtnRef = _useContext.currMeridiemBtnRef,
59
- currHourBtnRef = _useContext.currHourBtnRef,
60
49
  isControllerOnly = _useContext.isControllerOnly,
61
50
  isWithTimeWheelToo = _useContext.isWithTimeWheelToo,
62
51
  setLatestInteractionRegion = _useContext.setLatestInteractionRegion,
@@ -111,28 +100,18 @@ var useConfigCalendarCTX = function useConfigCalendarCTX() {
111
100
 
112
101
  var _useFocusLogic = controlledDateTimePicker_parts_Pickers_Calendar_useFocusLogic.useFocusLogic({
113
102
  daysArray: daysArray,
114
- calendarDaysWrapperRef: calendarDaysWrapperRef,
115
103
  showCalendar: showCalendar
116
104
  }),
117
105
  focusedDay = _useFocusLogic.focusedDay,
118
106
  tryToFocusCurrentlyDataIsFocusedDay = _useFocusLogic.tryToFocusCurrentlyDataIsFocusedDay,
119
107
  handleFocusMetaDay = _useFocusLogic.handleFocusMetaDay,
120
108
  handleFocusMetaDayByDay = _useFocusLogic.handleFocusMetaDayByDay,
121
- resetFocusedDayToStartDate = _useFocusLogic.resetFocusedDayToStartDate; // onOpen we try to focus the day we should focus, if we should focus one
122
-
123
-
124
- var handleOnPickerOpen = React.useCallback(function () {
125
- onPickerOpen();
126
- tryToFocusCurrentlyDataIsFocusedDay();
127
- }, [onPickerOpen, tryToFocusCurrentlyDataIsFocusedDay]);
109
+ resetFocusedDayToStartDate = _useFocusLogic.resetFocusedDayToStartDate;
128
110
 
129
111
  var _usePopperTriggerLogi = controlledDateTimePicker_parts_Pickers_Calendar_usePopperTriggerLogic.usePopperTriggerLogic({
130
- focusedDay: focusedDay,
112
+ tryToFocusCurrentlyDataIsFocusedDay: tryToFocusCurrentlyDataIsFocusedDay,
131
113
  resetFocusedDayToStartDate: resetFocusedDayToStartDate,
132
- prevMonthBtnRef: prevMonthBtnRef,
133
- pickerButtonRef: pickerButtonRef,
134
- onPickerOpen: handleOnPickerOpen,
135
- onPickerClose: onPickerClose,
114
+ focusedDay: focusedDay,
136
115
  showCalendar: showCalendar,
137
116
  setShowCalendar: setShowCalendar
138
117
  }),
@@ -149,27 +128,9 @@ var useConfigCalendarCTX = function useConfigCalendarCTX() {
149
128
  daysArray: daysArray,
150
129
  handlePrevMonth: handlePrevMonth,
151
130
  handleNextMonth: handleNextMonth,
152
- pickerButtonRef: pickerButtonRef,
153
- currMeridiemBtnRef: currMeridiemBtnRef,
154
- currHourBtnRef: currHourBtnRef,
155
- prevYearBtnRef: prevYearBtnRef,
156
- prevMonthBtnRef: prevMonthBtnRef,
157
- nextMonthBtnRef: nextMonthBtnRef,
158
- nextYearBtnRef: nextYearBtnRef,
159
- isWithTimeWheelToo: isWithTimeWheelToo,
160
- isControllerOnly: isControllerOnly,
161
- setShowCalendar: setShowCalendar,
162
- onPickerOpen: onPickerOpen,
163
- onPickerClose: onPickerClose,
164
- setLatestInteractionRegion: setLatestInteractionRegion,
165
131
  handleFocusMetaDay: handleFocusMetaDay,
166
132
  handleFocusMetaDayByDay: handleFocusMetaDayByDay,
167
- tryToFocusCurrentlyDataIsFocusedDay: tryToFocusCurrentlyDataIsFocusedDay,
168
- hideDate: hideDate,
169
- hideTime: hideTime,
170
- monthInputRef: monthInputRef,
171
- hourInputRef: hourInputRef,
172
- preventCloseOnSelection: preventCloseOnSelection
133
+ tryToFocusCurrentlyDataIsFocusedDay: tryToFocusCurrentlyDataIsFocusedDay
173
134
  }),
174
135
  handleDayOnKeyDown = _useKeyboardHandlers.handleDayOnKeyDown,
175
136
  handlePrevYearKeyDown = _useKeyboardHandlers.handlePrevYearKeyDown,
@@ -1 +1 @@
1
- {"version":3,"file":"useConfigCalendarCTX.js","sources":["../../../../../../src/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.tsx"],"sourcesContent":["/* eslint-disable complexity */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useState, useMemo, useContext, useCallback } from 'react';\nimport { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX';\nimport { CalendarContextT } from './CalendarContext';\nimport { useKeyboardHandlers } from './useKeyboardHandlers';\nimport { useFocusLogic } from './useFocusLogic';\nimport { usePopperTriggerLogic } from './usePopperTriggerLogic';\nimport { useCurrentDisplayedMonthYearLogic } from './useCurrentDisplayedMonthYearLogic';\nimport type { metaMonthDayT } from '../../../index.d';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction sliceIntoChunks<T = any>(arr: Array<T>, chunkSize: number): Array<Array<T>> {\n const res = [];\n for (let i = 0; i < arr.length; i += chunkSize) {\n const chunk = arr.slice(i, i + chunkSize);\n res.push(chunk);\n }\n return res;\n}\nexport const useConfigCalendarCTX = (): CalendarContextT => {\n const {\n pickerButtonRef,\n props: { onPickerOpen, onPickerClose, preventCloseOnSelection, disabled },\n hideDate,\n hideTime,\n monthInputRef,\n hourInputRef,\n prevYearBtnRef,\n prevMonthBtnRef,\n nextMonthBtnRef,\n nextYearBtnRef,\n calendarDaysWrapperRef,\n currMeridiemBtnRef,\n currHourBtnRef,\n isControllerOnly,\n isWithTimeWheelToo,\n setLatestInteractionRegion,\n autoFocusPrevMonthArrow,\n ariaCurrentValueForInputs,\n } = useContext(ControlledDateTimePickerContext);\n const [showCalendar, setShowCalendar] = useState(false);\n\n const { currentMonth, currentYear, daysArray, handlePrevYear, handlePrevMonth, handleNextMonth, handleNextYear } =\n useCurrentDisplayedMonthYearLogic();\n const { invisibleFirstDay, daysMatrixByWeekday, invisibleLastDay } = useMemo(() => {\n const [invisible1stDay, ...otherDays] = [...daysArray];\n const invisibleDayLast = otherDays.pop();\n return {\n invisibleFirstDay: invisible1stDay,\n daysMatrixByWeekday: sliceIntoChunks<metaMonthDayT>(otherDays, 7),\n invisibleLastDay: invisibleDayLast,\n };\n }, [daysArray]);\n\n const setLatestInteractionRegionCalendarHead = useCallback(() => {\n setLatestInteractionRegion('calendar-head');\n }, [setLatestInteractionRegion]);\n const onPrevYearFocus = useCallback(() => {\n setLatestInteractionRegionCalendarHead();\n }, [setLatestInteractionRegionCalendarHead]);\n const onPrevMonthFocus = useCallback(() => {\n setLatestInteractionRegionCalendarHead();\n }, [setLatestInteractionRegionCalendarHead]);\n const onNextMonthFocus = useCallback(() => {\n setLatestInteractionRegionCalendarHead();\n }, [setLatestInteractionRegionCalendarHead]);\n const onNextYearFocus = useCallback(() => {\n setLatestInteractionRegionCalendarHead();\n }, [setLatestInteractionRegionCalendarHead]);\n\n const {\n focusedDay,\n tryToFocusCurrentlyDataIsFocusedDay,\n handleFocusMetaDay,\n handleFocusMetaDayByDay,\n resetFocusedDayToStartDate,\n } = useFocusLogic({\n daysArray,\n calendarDaysWrapperRef,\n showCalendar,\n });\n\n // onOpen we try to focus the day we should focus, if we should focus one\n const handleOnPickerOpen = useCallback(() => {\n onPickerOpen();\n tryToFocusCurrentlyDataIsFocusedDay();\n }, [onPickerOpen, tryToFocusCurrentlyDataIsFocusedDay]);\n\n const {\n closeCalendar,\n handleSetTriggerRef,\n setPopperElement,\n setArrowElement,\n usePopperHelpers,\n handleToggleCalendar,\n handleMenuWrapperKeyDown,\n } = usePopperTriggerLogic({\n focusedDay,\n resetFocusedDayToStartDate,\n prevMonthBtnRef,\n pickerButtonRef,\n onPickerOpen: handleOnPickerOpen,\n onPickerClose,\n showCalendar,\n setShowCalendar,\n });\n const {\n handleDayOnKeyDown,\n handlePrevYearKeyDown,\n handlePrevMonthKeyDown,\n handleNextMonthKeyDown,\n handleNextYearKeyDown,\n handlePickerIconKeyDown,\n } = useKeyboardHandlers({\n focusedDay,\n daysArray,\n handlePrevMonth,\n handleNextMonth,\n pickerButtonRef,\n currMeridiemBtnRef,\n currHourBtnRef,\n prevYearBtnRef,\n prevMonthBtnRef,\n nextMonthBtnRef,\n nextYearBtnRef,\n isWithTimeWheelToo,\n isControllerOnly,\n setShowCalendar,\n onPickerOpen,\n onPickerClose,\n setLatestInteractionRegion,\n handleFocusMetaDay,\n handleFocusMetaDayByDay,\n tryToFocusCurrentlyDataIsFocusedDay,\n hideDate,\n hideTime,\n monthInputRef,\n hourInputRef,\n preventCloseOnSelection,\n });\n\n return useMemo(\n () => ({\n showCalendar,\n setShowCalendar,\n closeCalendar,\n setPopperElement,\n setArrowElement,\n usePopperHelpers,\n handleToggleCalendar,\n handleSetTriggerRef,\n handleMenuWrapperKeyDown,\n\n isControllerOnly,\n calendarDaysWrapperRef,\n prevYearBtnRef,\n prevMonthBtnRef,\n nextMonthBtnRef,\n nextYearBtnRef,\n\n currentMonth,\n currentYear,\n daysArray,\n invisibleFirstDay,\n daysMatrixByWeekday,\n invisibleLastDay,\n focusedDay,\n tryToFocusCurrentlyDataIsFocusedDay,\n handleFocusMetaDay,\n handleFocusMetaDayByDay,\n resetFocusedDayToStartDate,\n handlePrevMonth,\n handlePrevYear,\n handleNextMonth,\n handleNextYear,\n handleDayOnKeyDown,\n handlePrevYearKeyDown,\n handlePrevMonthKeyDown,\n handleNextMonthKeyDown,\n handleNextYearKeyDown,\n handlePickerIconKeyDown,\n\n onPrevYearFocus,\n onPrevMonthFocus,\n onNextMonthFocus,\n onNextYearFocus,\n\n isWithTimeWheelToo,\n autoFocusPrevMonthArrow,\n ariaCurrentValueForInputs,\n disabled,\n }),\n [\n showCalendar,\n closeCalendar,\n setPopperElement,\n setArrowElement,\n usePopperHelpers,\n handleToggleCalendar,\n handleSetTriggerRef,\n handleMenuWrapperKeyDown,\n isControllerOnly,\n calendarDaysWrapperRef,\n prevYearBtnRef,\n prevMonthBtnRef,\n nextMonthBtnRef,\n nextYearBtnRef,\n currentMonth,\n currentYear,\n daysArray,\n invisibleFirstDay,\n daysMatrixByWeekday,\n invisibleLastDay,\n focusedDay,\n tryToFocusCurrentlyDataIsFocusedDay,\n handleFocusMetaDay,\n handleFocusMetaDayByDay,\n resetFocusedDayToStartDate,\n handlePrevMonth,\n handlePrevYear,\n handleNextMonth,\n handleNextYear,\n handleDayOnKeyDown,\n handlePrevYearKeyDown,\n handlePrevMonthKeyDown,\n handleNextMonthKeyDown,\n handleNextYearKeyDown,\n handlePickerIconKeyDown,\n onPrevYearFocus,\n onPrevMonthFocus,\n onNextMonthFocus,\n onNextYearFocus,\n isWithTimeWheelToo,\n autoFocusPrevMonthArrow,\n ariaCurrentValueForInputs,\n disabled,\n ],\n );\n};\n"],"names":["sliceIntoChunks","arr","chunkSize","res","i","length","chunk","slice","push","useConfigCalendarCTX","useContext","ControlledDateTimePickerContext","pickerButtonRef","props","onPickerOpen","onPickerClose","preventCloseOnSelection","disabled","hideDate","hideTime","monthInputRef","hourInputRef","prevYearBtnRef","prevMonthBtnRef","nextMonthBtnRef","nextYearBtnRef","calendarDaysWrapperRef","currMeridiemBtnRef","currHourBtnRef","isControllerOnly","isWithTimeWheelToo","setLatestInteractionRegion","autoFocusPrevMonthArrow","ariaCurrentValueForInputs","useState","showCalendar","setShowCalendar","useCurrentDisplayedMonthYearLogic","currentMonth","currentYear","daysArray","handlePrevYear","handlePrevMonth","handleNextMonth","handleNextYear","useMemo","invisible1stDay","otherDays","invisibleDayLast","pop","invisibleFirstDay","daysMatrixByWeekday","invisibleLastDay","setLatestInteractionRegionCalendarHead","useCallback","onPrevYearFocus","onPrevMonthFocus","onNextMonthFocus","onNextYearFocus","useFocusLogic","focusedDay","tryToFocusCurrentlyDataIsFocusedDay","handleFocusMetaDay","handleFocusMetaDayByDay","resetFocusedDayToStartDate","handleOnPickerOpen","usePopperTriggerLogic","closeCalendar","handleSetTriggerRef","setPopperElement","setArrowElement","usePopperHelpers","handleToggleCalendar","handleMenuWrapperKeyDown","useKeyboardHandlers","handleDayOnKeyDown","handlePrevYearKeyDown","handlePrevMonthKeyDown","handleNextMonthKeyDown","handleNextYearKeyDown","handlePickerIconKeyDown"],"mappings":"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"}
1
+ {"version":3,"file":"useConfigCalendarCTX.js","sources":["../../../../../../src/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.tsx"],"sourcesContent":["/* eslint-disable complexity */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useState, useMemo, useContext, useCallback } from 'react';\nimport { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX';\nimport { CalendarContextT } from './CalendarContext';\nimport { useKeyboardHandlers } from './useKeyboardHandlers';\nimport { useFocusLogic } from './useFocusLogic';\nimport { usePopperTriggerLogic } from './usePopperTriggerLogic';\nimport { useCurrentDisplayedMonthYearLogic } from './useCurrentDisplayedMonthYearLogic';\nimport type { metaMonthDayT } from '../../../index.d';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction sliceIntoChunks<T = any>(arr: Array<T>, chunkSize: number): Array<Array<T>> {\n const res = [];\n for (let i = 0; i < arr.length; i += chunkSize) {\n const chunk = arr.slice(i, i + chunkSize);\n res.push(chunk);\n }\n return res;\n}\nexport const useConfigCalendarCTX = (): CalendarContextT => {\n const {\n props: { disabled },\n prevYearBtnRef,\n prevMonthBtnRef,\n nextMonthBtnRef,\n nextYearBtnRef,\n calendarDaysWrapperRef,\n isControllerOnly,\n isWithTimeWheelToo,\n setLatestInteractionRegion,\n autoFocusPrevMonthArrow,\n ariaCurrentValueForInputs,\n } = useContext(ControlledDateTimePickerContext);\n const [showCalendar, setShowCalendar] = useState(false);\n\n const { currentMonth, currentYear, daysArray, handlePrevYear, handlePrevMonth, handleNextMonth, handleNextYear } =\n useCurrentDisplayedMonthYearLogic();\n const { invisibleFirstDay, daysMatrixByWeekday, invisibleLastDay } = useMemo(() => {\n const [invisible1stDay, ...otherDays] = [...daysArray];\n const invisibleDayLast = otherDays.pop();\n return {\n invisibleFirstDay: invisible1stDay,\n daysMatrixByWeekday: sliceIntoChunks<metaMonthDayT>(otherDays, 7),\n invisibleLastDay: invisibleDayLast,\n };\n }, [daysArray]);\n\n const setLatestInteractionRegionCalendarHead = useCallback(() => {\n setLatestInteractionRegion('calendar-head');\n }, [setLatestInteractionRegion]);\n const onPrevYearFocus = useCallback(() => {\n setLatestInteractionRegionCalendarHead();\n }, [setLatestInteractionRegionCalendarHead]);\n const onPrevMonthFocus = useCallback(() => {\n setLatestInteractionRegionCalendarHead();\n }, [setLatestInteractionRegionCalendarHead]);\n const onNextMonthFocus = useCallback(() => {\n setLatestInteractionRegionCalendarHead();\n }, [setLatestInteractionRegionCalendarHead]);\n const onNextYearFocus = useCallback(() => {\n setLatestInteractionRegionCalendarHead();\n }, [setLatestInteractionRegionCalendarHead]);\n\n const {\n focusedDay,\n tryToFocusCurrentlyDataIsFocusedDay,\n handleFocusMetaDay,\n handleFocusMetaDayByDay,\n resetFocusedDayToStartDate,\n } = useFocusLogic({ daysArray, showCalendar });\n\n const {\n closeCalendar,\n handleSetTriggerRef,\n setPopperElement,\n setArrowElement,\n usePopperHelpers,\n handleToggleCalendar,\n handleMenuWrapperKeyDown,\n } = usePopperTriggerLogic({\n tryToFocusCurrentlyDataIsFocusedDay,\n resetFocusedDayToStartDate,\n focusedDay,\n showCalendar,\n setShowCalendar,\n });\n const {\n handleDayOnKeyDown,\n handlePrevYearKeyDown,\n handlePrevMonthKeyDown,\n handleNextMonthKeyDown,\n handleNextYearKeyDown,\n handlePickerIconKeyDown,\n } = useKeyboardHandlers({\n focusedDay,\n daysArray,\n handlePrevMonth,\n handleNextMonth,\n handleFocusMetaDay,\n handleFocusMetaDayByDay,\n tryToFocusCurrentlyDataIsFocusedDay,\n });\n\n return useMemo(\n () => ({\n showCalendar,\n setShowCalendar,\n closeCalendar,\n setPopperElement,\n setArrowElement,\n usePopperHelpers,\n handleToggleCalendar,\n handleSetTriggerRef,\n handleMenuWrapperKeyDown,\n\n isControllerOnly,\n calendarDaysWrapperRef,\n prevYearBtnRef,\n prevMonthBtnRef,\n nextMonthBtnRef,\n nextYearBtnRef,\n\n currentMonth,\n currentYear,\n daysArray,\n invisibleFirstDay,\n daysMatrixByWeekday,\n invisibleLastDay,\n focusedDay,\n tryToFocusCurrentlyDataIsFocusedDay,\n handleFocusMetaDay,\n handleFocusMetaDayByDay,\n resetFocusedDayToStartDate,\n handlePrevMonth,\n handlePrevYear,\n handleNextMonth,\n handleNextYear,\n handleDayOnKeyDown,\n handlePrevYearKeyDown,\n handlePrevMonthKeyDown,\n handleNextMonthKeyDown,\n handleNextYearKeyDown,\n handlePickerIconKeyDown,\n\n onPrevYearFocus,\n onPrevMonthFocus,\n onNextMonthFocus,\n onNextYearFocus,\n\n isWithTimeWheelToo,\n autoFocusPrevMonthArrow,\n ariaCurrentValueForInputs,\n disabled,\n }),\n [\n showCalendar,\n closeCalendar,\n setPopperElement,\n setArrowElement,\n usePopperHelpers,\n handleToggleCalendar,\n handleSetTriggerRef,\n handleMenuWrapperKeyDown,\n isControllerOnly,\n calendarDaysWrapperRef,\n prevYearBtnRef,\n prevMonthBtnRef,\n nextMonthBtnRef,\n nextYearBtnRef,\n currentMonth,\n currentYear,\n daysArray,\n invisibleFirstDay,\n daysMatrixByWeekday,\n invisibleLastDay,\n focusedDay,\n tryToFocusCurrentlyDataIsFocusedDay,\n handleFocusMetaDay,\n handleFocusMetaDayByDay,\n resetFocusedDayToStartDate,\n handlePrevMonth,\n handlePrevYear,\n handleNextMonth,\n handleNextYear,\n handleDayOnKeyDown,\n handlePrevYearKeyDown,\n handlePrevMonthKeyDown,\n handleNextMonthKeyDown,\n handleNextYearKeyDown,\n handlePickerIconKeyDown,\n onPrevYearFocus,\n onPrevMonthFocus,\n onNextMonthFocus,\n onNextYearFocus,\n isWithTimeWheelToo,\n autoFocusPrevMonthArrow,\n ariaCurrentValueForInputs,\n disabled,\n ],\n );\n};\n"],"names":["sliceIntoChunks","arr","chunkSize","res","i","length","chunk","slice","push","useConfigCalendarCTX","useContext","ControlledDateTimePickerContext","disabled","props","prevYearBtnRef","prevMonthBtnRef","nextMonthBtnRef","nextYearBtnRef","calendarDaysWrapperRef","isControllerOnly","isWithTimeWheelToo","setLatestInteractionRegion","autoFocusPrevMonthArrow","ariaCurrentValueForInputs","useState","showCalendar","setShowCalendar","useCurrentDisplayedMonthYearLogic","currentMonth","currentYear","daysArray","handlePrevYear","handlePrevMonth","handleNextMonth","handleNextYear","useMemo","invisible1stDay","otherDays","invisibleDayLast","pop","invisibleFirstDay","daysMatrixByWeekday","invisibleLastDay","setLatestInteractionRegionCalendarHead","useCallback","onPrevYearFocus","onPrevMonthFocus","onNextMonthFocus","onNextYearFocus","useFocusLogic","focusedDay","tryToFocusCurrentlyDataIsFocusedDay","handleFocusMetaDay","handleFocusMetaDayByDay","resetFocusedDayToStartDate","usePopperTriggerLogic","closeCalendar","handleSetTriggerRef","setPopperElement","setArrowElement","usePopperHelpers","handleToggleCalendar","handleMenuWrapperKeyDown","useKeyboardHandlers","handleDayOnKeyDown","handlePrevYearKeyDown","handlePrevMonthKeyDown","handleNextMonthKeyDown","handleNextYearKeyDown","handlePickerIconKeyDown"],"mappings":"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"}
@@ -4,14 +4,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
6
  var React = require('react');
7
+ var controlledDateTimePicker_ControlledDateTimePickerCTX = require('../../../ControlledDateTimePickerCTX.js');
7
8
  var controlledDateTimePicker_utils_dateHelpers = require('../../../utils/dateHelpers.js');
8
9
  var controlledDateTimePicker_utils_hooks_useGetStartingFocusedDay = require('../../../utils/hooks/useGetStartingFocusedDay.js');
10
+ require('../../../ControlledDateTimePickerTypes.js');
9
11
  require('@babel/runtime/helpers/toConsumableArray');
10
12
  require('../../../utils/constants.js');
11
13
  require('../../../utils/stringHelpers.js');
12
14
  require('../../../utils/numberHelpers.js');
13
- require('../../../ControlledDateTimePickerCTX.js');
14
- require('../../../ControlledDateTimePickerTypes.js');
15
15
  require('../../../utils/hooks/useGetDayFromDateString.js');
16
16
 
17
17
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -35,9 +35,11 @@ var loopWhileWaiting = function loopWhileWaiting(cb) {
35
35
 
36
36
  var useFocusLogic = function useFocusLogic(_ref) {
37
37
  var daysArray = _ref.daysArray,
38
- calendarDaysWrapperRef = _ref.calendarDaysWrapperRef,
39
38
  showCalendar = _ref.showCalendar;
40
39
 
40
+ var _useContext = React.useContext(controlledDateTimePicker_ControlledDateTimePickerCTX.ControlledDateTimePickerContext),
41
+ calendarDaysWrapperRef = _useContext.calendarDaysWrapperRef;
42
+
41
43
  var _useGetStartingFocuse = controlledDateTimePicker_utils_hooks_useGetStartingFocusedDay.useGetStartingFocusedDay(),
42
44
  startFocusedDate = _useGetStartingFocuse.startFocusedDate;
43
45
 
@@ -1 +1 @@
1
- {"version":3,"file":"useFocusLogic.js","sources":["../../../../../../src/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.tsx"],"sourcesContent":["/* eslint-disable complexity */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useMemo, useCallback, useState, useLayoutEffect } from 'react';\nimport { compareTwoDatesDayEquality } from '../../../utils/dateHelpers';\nimport { useGetStartingFocusedDay } from '../../../utils/hooks/useGetStartingFocusedDay';\nimport type { metaMonthDayT } from '../../../index.d';\nimport type { FocusLogicT } from './CalendarContext';\n\n// eslint-disable-next-line max-params\nconst loopWhileWaiting = (cb, shortcircuit = () => false, timePerTry = 100, maxTries = 5) => {\n let ab = maxTries;\n const inter = setInterval(() => {\n cb();\n if (shortcircuit() || ab === 0) clearInterval(inter);\n ab -= 1;\n }, timePerTry);\n};\n\ninterface useFocusLogicArgsT {\n daysArray: metaMonthDayT[];\n calendarDaysWrapperRef: React.RefObject<HTMLDivElement>;\n showCalendar: boolean;\n}\n\nexport const useFocusLogic = ({ daysArray, calendarDaysWrapperRef, showCalendar }: useFocusLogicArgsT): FocusLogicT => {\n const { startFocusedDate } = useGetStartingFocusedDay();\n const [metadayToFocus, setMetadayToFocus] = useState<metaMonthDayT>(\n daysArray.find(({ day: currDay }) => compareTwoDatesDayEquality(currDay, startFocusedDate)),\n );\n // this is required because we have to focus based on the inputs values too,\n // useGetStartingFocusedDay does this already,\n // this \"useMemo\" is here just to trigger it functionally by changing the metadayToFocus state\n // which is required for arrow key navigation in the calendar\n const focusedDay = useMemo(() => {\n const newFocusedDay = metadayToFocus\n ? daysArray.find(({ day: currDay }) => compareTwoDatesDayEquality(currDay, metadayToFocus.day))\n : daysArray.find(({ day: currDay }) => compareTwoDatesDayEquality(currDay, startFocusedDate));\n return newFocusedDay;\n }, [daysArray, startFocusedDate, metadayToFocus]);\n\n const tryToFocusCurrentlyDataIsFocusedDay = useCallback(\n (wrapperDOM: HTMLElement | Document = calendarDaysWrapperRef?.current || document) => {\n let shortcircuit = false;\n loopWhileWaiting(\n () => {\n const domElem = wrapperDOM?.querySelector<HTMLButtonElement>('[data-isfocused=\"true\"]');\n if (domElem) {\n domElem?.focus?.();\n shortcircuit = true;\n }\n },\n () => shortcircuit,\n );\n },\n [calendarDaysWrapperRef],\n );\n\n useLayoutEffect(() => {\n if (showCalendar) tryToFocusCurrentlyDataIsFocusedDay(calendarDaysWrapperRef?.current);\n }, [calendarDaysWrapperRef, focusedDay, showCalendar, tryToFocusCurrentlyDataIsFocusedDay]);\n\n const handleFocusMetaDay = useCallback(\n (metaDayToFocus) => {\n // if focusedDay is inside current daysArray we set Focused day\n const newFocusedMetaDay = daysArray.find(({ day: currDay }) =>\n compareTwoDatesDayEquality(currDay, metaDayToFocus.day),\n );\n if (focusedDay !== newFocusedMetaDay) setMetadayToFocus(newFocusedMetaDay);\n },\n [daysArray, focusedDay],\n );\n\n const handleFocusMetaDayByDay = useCallback(\n (dayDate) => {\n // if focusedDay is inside current daysArray we set Focused day\n const newFocusedMetaDay = daysArray.find(({ day: currDay }) => compareTwoDatesDayEquality(currDay, dayDate));\n if (focusedDay !== newFocusedMetaDay) setMetadayToFocus(newFocusedMetaDay);\n },\n [daysArray, focusedDay],\n );\n\n const resetFocusedDayToStartDate = useCallback(() => {\n setMetadayToFocus(null);\n }, []);\n\n return useMemo(\n () => ({\n focusedDay,\n tryToFocusCurrentlyDataIsFocusedDay,\n resetFocusedDayToStartDate,\n handleFocusMetaDay,\n handleFocusMetaDayByDay,\n }),\n [\n focusedDay,\n tryToFocusCurrentlyDataIsFocusedDay,\n resetFocusedDayToStartDate,\n handleFocusMetaDay,\n handleFocusMetaDayByDay,\n ],\n );\n};\n"],"names":["loopWhileWaiting","cb","shortcircuit","timePerTry","maxTries","ab","inter","setInterval","clearInterval","useFocusLogic","daysArray","calendarDaysWrapperRef","showCalendar","useGetStartingFocusedDay","startFocusedDate","useState","find","currDay","day","compareTwoDatesDayEquality","metadayToFocus","setMetadayToFocus","focusedDay","useMemo","newFocusedDay","tryToFocusCurrentlyDataIsFocusedDay","useCallback","wrapperDOM","current","document","domElem","querySelector","focus","useLayoutEffect","handleFocusMetaDay","metaDayToFocus","newFocusedMetaDay","handleFocusMetaDayByDay","dayDate","resetFocusedDayToStartDate"],"mappings":"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"}
1
+ {"version":3,"file":"useFocusLogic.js","sources":["../../../../../../src/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.tsx"],"sourcesContent":["/* eslint-disable complexity */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useMemo, useCallback, useState, useLayoutEffect, useContext } from 'react';\nimport { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX';\nimport { compareTwoDatesDayEquality } from '../../../utils/dateHelpers';\nimport { useGetStartingFocusedDay } from '../../../utils/hooks/useGetStartingFocusedDay';\nimport type { metaMonthDayT } from '../../../index.d';\nimport type { FocusLogicT } from './CalendarContext';\n\n// eslint-disable-next-line max-params\nconst loopWhileWaiting = (cb, shortcircuit = () => false, timePerTry = 100, maxTries = 5) => {\n let ab = maxTries;\n const inter = setInterval(() => {\n cb();\n if (shortcircuit() || ab === 0) clearInterval(inter);\n ab -= 1;\n }, timePerTry);\n};\n\ninterface useFocusLogicArgsT {\n daysArray: metaMonthDayT[];\n showCalendar: boolean;\n}\n\nexport const useFocusLogic = ({ daysArray, showCalendar }: useFocusLogicArgsT): FocusLogicT => {\n const { calendarDaysWrapperRef } = useContext(ControlledDateTimePickerContext);\n const { startFocusedDate } = useGetStartingFocusedDay();\n const [metadayToFocus, setMetadayToFocus] = useState<metaMonthDayT>(\n daysArray.find(({ day: currDay }) => compareTwoDatesDayEquality(currDay, startFocusedDate)),\n );\n // this is required because we have to focus based on the inputs values too,\n // useGetStartingFocusedDay does this already,\n // this \"useMemo\" is here just to trigger it functionally by changing the metadayToFocus state\n // which is required for arrow key navigation in the calendar\n const focusedDay = useMemo(() => {\n const newFocusedDay = metadayToFocus\n ? daysArray.find(({ day: currDay }) => compareTwoDatesDayEquality(currDay, metadayToFocus.day))\n : daysArray.find(({ day: currDay }) => compareTwoDatesDayEquality(currDay, startFocusedDate));\n return newFocusedDay;\n }, [daysArray, startFocusedDate, metadayToFocus]);\n\n const tryToFocusCurrentlyDataIsFocusedDay = useCallback(\n (wrapperDOM: HTMLElement | Document = calendarDaysWrapperRef?.current || document) => {\n let shortcircuit = false;\n loopWhileWaiting(\n () => {\n const domElem = wrapperDOM?.querySelector<HTMLButtonElement>('[data-isfocused=\"true\"]');\n if (domElem) {\n domElem?.focus?.();\n shortcircuit = true;\n }\n },\n () => shortcircuit,\n );\n },\n [calendarDaysWrapperRef],\n );\n\n useLayoutEffect(() => {\n if (showCalendar) tryToFocusCurrentlyDataIsFocusedDay(calendarDaysWrapperRef?.current);\n }, [calendarDaysWrapperRef, focusedDay, showCalendar, tryToFocusCurrentlyDataIsFocusedDay]);\n\n const handleFocusMetaDay = useCallback(\n (metaDayToFocus) => {\n // if focusedDay is inside current daysArray we set Focused day\n const newFocusedMetaDay = daysArray.find(({ day: currDay }) =>\n compareTwoDatesDayEquality(currDay, metaDayToFocus.day),\n );\n if (focusedDay !== newFocusedMetaDay) setMetadayToFocus(newFocusedMetaDay);\n },\n [daysArray, focusedDay],\n );\n\n const handleFocusMetaDayByDay = useCallback(\n (dayDate) => {\n // if focusedDay is inside current daysArray we set Focused day\n const newFocusedMetaDay = daysArray.find(({ day: currDay }) => compareTwoDatesDayEquality(currDay, dayDate));\n if (focusedDay !== newFocusedMetaDay) setMetadayToFocus(newFocusedMetaDay);\n },\n [daysArray, focusedDay],\n );\n\n const resetFocusedDayToStartDate = useCallback(() => {\n setMetadayToFocus(null);\n }, []);\n\n return useMemo(\n () => ({\n focusedDay,\n tryToFocusCurrentlyDataIsFocusedDay,\n resetFocusedDayToStartDate,\n handleFocusMetaDay,\n handleFocusMetaDayByDay,\n }),\n [\n focusedDay,\n tryToFocusCurrentlyDataIsFocusedDay,\n resetFocusedDayToStartDate,\n handleFocusMetaDay,\n handleFocusMetaDayByDay,\n ],\n );\n};\n"],"names":["loopWhileWaiting","cb","shortcircuit","timePerTry","maxTries","ab","inter","setInterval","clearInterval","useFocusLogic","daysArray","showCalendar","useContext","ControlledDateTimePickerContext","calendarDaysWrapperRef","useGetStartingFocusedDay","startFocusedDate","useState","find","currDay","day","compareTwoDatesDayEquality","metadayToFocus","setMetadayToFocus","focusedDay","useMemo","newFocusedDay","tryToFocusCurrentlyDataIsFocusedDay","useCallback","wrapperDOM","current","document","domElem","querySelector","focus","useLayoutEffect","handleFocusMetaDay","metaDayToFocus","newFocusedMetaDay","handleFocusMetaDayByDay","dayDate","resetFocusedDayToStartDate"],"mappings":"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"}
@@ -3,8 +3,10 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
+ var controlledDateTimePicker_ControlledDateTimePickerCTX = require('../../../ControlledDateTimePickerCTX.js');
6
7
  var controlledDateTimePicker_utils_dateHelpers = require('../../../utils/dateHelpers.js');
7
8
  var controlledDateTimePicker_utils_constants = require('../../../utils/constants.js');
9
+ require('../../../ControlledDateTimePickerTypes.js');
8
10
  require('@babel/runtime/helpers/toConsumableArray');
9
11
  require('../../../utils/stringHelpers.js');
10
12
  require('@babel/runtime/helpers/slicedToArray');
@@ -16,21 +18,29 @@ var useKeyboardHandlers = function useKeyboardHandlers(_ref) {
16
18
  daysArray = _ref.daysArray,
17
19
  handlePrevMonth = _ref.handlePrevMonth,
18
20
  handleNextMonth = _ref.handleNextMonth,
19
- prevYearBtnRef = _ref.prevYearBtnRef,
20
- prevMonthBtnRef = _ref.prevMonthBtnRef,
21
- nextMonthBtnRef = _ref.nextMonthBtnRef,
22
- nextYearBtnRef = _ref.nextYearBtnRef,
23
- currMeridiemBtnRef = _ref.currMeridiemBtnRef,
24
- isWithTimeWheelToo = _ref.isWithTimeWheelToo,
25
- isControllerOnly = _ref.isControllerOnly,
26
21
  handleFocusMetaDay = _ref.handleFocusMetaDay,
27
22
  handleFocusMetaDayByDay = _ref.handleFocusMetaDayByDay,
28
- tryToFocusCurrentlyDataIsFocusedDay = _ref.tryToFocusCurrentlyDataIsFocusedDay,
29
- hideDate = _ref.hideDate,
30
- hideTime = _ref.hideTime,
31
- monthInputRef = _ref.monthInputRef,
32
- hourInputRef = _ref.hourInputRef,
33
- setLatestInteractionRegion = _ref.setLatestInteractionRegion;
23
+ tryToFocusCurrentlyDataIsFocusedDay = _ref.tryToFocusCurrentlyDataIsFocusedDay;
24
+
25
+ var _useContext = React.useContext(controlledDateTimePicker_ControlledDateTimePickerCTX.ControlledDateTimePickerContext),
26
+ hideDate = _useContext.hideDate,
27
+ hideTime = _useContext.hideTime,
28
+ monthInputRef = _useContext.monthInputRef,
29
+ hourInputRef = _useContext.hourInputRef,
30
+ prevYearBtnRef = _useContext.prevYearBtnRef,
31
+ prevMonthBtnRef = _useContext.prevMonthBtnRef,
32
+ nextMonthBtnRef = _useContext.nextMonthBtnRef,
33
+ nextYearBtnRef = _useContext.nextYearBtnRef,
34
+ currMeridiemBtnRef = _useContext.currMeridiemBtnRef,
35
+ isControllerOnly = _useContext.isControllerOnly,
36
+ isWithTimeWheelToo = _useContext.isWithTimeWheelToo,
37
+ setLatestInteractionRegion = _useContext.setLatestInteractionRegion,
38
+ withAnyInputs = _useContext.withAnyInputs,
39
+ isWithTimeInputs = _useContext.isWithTimeInputs,
40
+ meridiemInputRef = _useContext.meridiemInputRef,
41
+ isWithDateInputs = _useContext.isWithDateInputs,
42
+ yearInputRef = _useContext.yearInputRef;
43
+
34
44
  var tryToFocusDayRegion = React.useCallback(function () {
35
45
  setLatestInteractionRegion('calendar-days');
36
46
 
@@ -66,7 +76,13 @@ var useKeyboardHandlers = function useKeyboardHandlers(_ref) {
66
76
  if (controlledDateTimePicker_utils_constants.homeEndKeys.includes(key)) e.preventDefault();
67
77
  if (controlledDateTimePicker_utils_constants.homeEndKeys.includes(key)) e.stopPropagation();
68
78
  if (key === 'Home') onHomeKeyDownTriggerIcon();
69
- }, [onHomeKeyDownTriggerIcon]);
79
+
80
+ if (key === 'Backspace' && withAnyInputs) {
81
+ var _meridiemInputRef$cur, _meridiemInputRef$cur2, _yearInputRef$current, _yearInputRef$current2;
82
+
83
+ if (isWithTimeInputs) meridiemInputRef === null || meridiemInputRef === void 0 ? void 0 : (_meridiemInputRef$cur = meridiemInputRef.current) === null || _meridiemInputRef$cur === void 0 ? void 0 : (_meridiemInputRef$cur2 = _meridiemInputRef$cur.focus) === null || _meridiemInputRef$cur2 === void 0 ? void 0 : _meridiemInputRef$cur2.call(_meridiemInputRef$cur);else if (isWithDateInputs) yearInputRef === null || yearInputRef === void 0 ? void 0 : (_yearInputRef$current = yearInputRef.current) === null || _yearInputRef$current === void 0 ? void 0 : (_yearInputRef$current2 = _yearInputRef$current.focus) === null || _yearInputRef$current2 === void 0 ? void 0 : _yearInputRef$current2.call(_yearInputRef$current);
84
+ }
85
+ }, [isWithDateInputs, isWithTimeInputs, meridiemInputRef, onHomeKeyDownTriggerIcon, withAnyInputs, yearInputRef]);
70
86
  var handleDayOnKeyDown = React.useCallback(function (e, metaDay) {
71
87
  var newFocusedDayDate;
72
88
  var day = metaDay.day;
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyboardHandlers.js","sources":["../../../../../../src/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.tsx"],"sourcesContent":["/* eslint-disable complexity */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useMemo, useCallback } from 'react';\nimport { sumValuesToDate } from '../../../utils/dateHelpers';\nimport type { metaMonthDayT, onKeyDownT, latestInteractionRegionT } from '../../../index.d';\nimport type { handleDayOnKeyDownT, KeyboardHandlersT, HeaderButtonsRefsT } from './CalendarContext';\nimport { homeEndAllArrowKeys, homeEndKeys } from '../../../utils/constants';\n\ninterface useKeyboardHandlersArgsT extends Partial<HeaderButtonsRefsT> {\n focusedDay: metaMonthDayT;\n daysArray: metaMonthDayT[];\n handlePrevMonth: () => void;\n handleNextMonth: () => void;\n pickerButtonRef: React.MutableRefObject<HTMLButtonElement>;\n currMeridiemBtnRef: React.MutableRefObject<HTMLButtonElement>;\n currHourBtnRef: React.MutableRefObject<HTMLButtonElement>;\n isWithTimeWheelToo: boolean;\n isControllerOnly: boolean;\n setShowCalendar: React.Dispatch<React.SetStateAction<boolean>>;\n setLatestInteractionRegion: React.Dispatch<React.SetStateAction<latestInteractionRegionT>>;\n handleFocusMetaDay: (metaDayToFocus: metaMonthDayT) => void;\n handleFocusMetaDayByDay: (dayToFocus: Date) => void;\n tryToFocusCurrentlyDataIsFocusedDay: () => void;\n hideDate: boolean;\n hideTime: boolean;\n preventCloseOnSelection: boolean;\n monthInputRef: React.RefObject<HTMLInputElement>;\n hourInputRef: React.RefObject<HTMLInputElement>;\n onPickerOpen: () => void;\n onPickerClose: () => void;\n}\n\nexport const useKeyboardHandlers = ({\n focusedDay,\n daysArray,\n handlePrevMonth,\n handleNextMonth,\n prevYearBtnRef,\n prevMonthBtnRef,\n nextMonthBtnRef,\n nextYearBtnRef,\n currMeridiemBtnRef,\n isWithTimeWheelToo,\n isControllerOnly,\n handleFocusMetaDay,\n handleFocusMetaDayByDay,\n tryToFocusCurrentlyDataIsFocusedDay,\n hideDate,\n hideTime,\n monthInputRef,\n hourInputRef,\n setLatestInteractionRegion,\n}: useKeyboardHandlersArgsT): KeyboardHandlersT => {\n const tryToFocusDayRegion = useCallback(() => {\n setLatestInteractionRegion('calendar-days');\n if (!focusedDay) {\n const newFocusDay = daysArray.find(({ isCurrMonthDay }) => isCurrMonthDay);\n if (newFocusDay)\n setTimeout(() => {\n handleFocusMetaDay(newFocusDay);\n });\n } else {\n tryToFocusCurrentlyDataIsFocusedDay();\n }\n }, [daysArray, focusedDay, handleFocusMetaDay, setLatestInteractionRegion, tryToFocusCurrentlyDataIsFocusedDay]);\n\n const onHomeKeyDownInsideCalendar = useCallback(() => {\n prevMonthBtnRef?.current?.focus?.();\n }, [prevMonthBtnRef]);\n const onEndKeyDownInsideCalendar = useCallback(() => {\n if (isWithTimeWheelToo) currMeridiemBtnRef?.current?.focus?.();\n else tryToFocusDayRegion();\n }, [currMeridiemBtnRef, isWithTimeWheelToo, tryToFocusDayRegion]);\n\n const onHomeKeyDownTriggerIcon = useCallback(() => {\n if (!hideDate) monthInputRef?.current?.focus?.();\n else if (!hideTime) hourInputRef?.current?.focus?.();\n }, [hideDate, hideTime, monthInputRef, hourInputRef]);\n const handlePickerIconKeyDown: onKeyDownT<HTMLButtonElement> = useCallback(\n (e) => {\n const { key } = e;\n if (homeEndKeys.includes(key)) e.preventDefault();\n if (homeEndKeys.includes(key)) e.stopPropagation();\n if (key === 'Home') onHomeKeyDownTriggerIcon();\n },\n [onHomeKeyDownTriggerIcon],\n );\n\n const handleDayOnKeyDown: handleDayOnKeyDownT = useCallback(\n (e, metaDay) => {\n let newFocusedDayDate;\n const { day } = metaDay;\n const { key, shiftKey } = e;\n if (homeEndAllArrowKeys.includes(key)) e.preventDefault();\n if (homeEndAllArrowKeys.includes(key)) e.stopPropagation();\n\n if (key === 'ArrowUp') newFocusedDayDate = sumValuesToDate(day, { daysToSum: -7 });\n if (key === 'ArrowDown') newFocusedDayDate = sumValuesToDate(day, { daysToSum: 7 });\n if (key === 'ArrowLeft') {\n newFocusedDayDate = sumValuesToDate(day, { daysToSum: -1 });\n if (metaDay === daysArray[1]) {\n handlePrevMonth();\n }\n }\n if (key === 'ArrowRight') {\n newFocusedDayDate = sumValuesToDate(day, { daysToSum: 1 });\n if (metaDay === daysArray[daysArray.length - 2]) {\n handleNextMonth();\n }\n }\n if (newFocusedDayDate) {\n handleFocusMetaDayByDay(newFocusedDayDate);\n setTimeout(tryToFocusCurrentlyDataIsFocusedDay);\n }\n if (key === 'Home') onHomeKeyDownInsideCalendar();\n if (key === 'End') onEndKeyDownInsideCalendar();\n // TAB CYCLE IMPLEMENTATION\n if (key === 'Tab' && !shiftKey && isControllerOnly === false && !isWithTimeWheelToo) {\n // MUST prevent default since this is a custom focus switch\n // NOT preventing the default event will cause unexpected result\n e.preventDefault();\n prevMonthBtnRef?.current?.focus?.();\n }\n },\n [\n daysArray,\n handleFocusMetaDayByDay,\n handleNextMonth,\n handlePrevMonth,\n isControllerOnly,\n isWithTimeWheelToo,\n onEndKeyDownInsideCalendar,\n onHomeKeyDownInsideCalendar,\n prevMonthBtnRef,\n tryToFocusCurrentlyDataIsFocusedDay,\n ],\n );\n const handlePrevYearKeyDown = useCallback(\n (e) => {\n const { key, shiftKey } = e;\n if (key === 'Tab') {\n e.preventDefault();\n if (shiftKey) {\n nextMonthBtnRef.current.focus();\n } else {\n nextYearBtnRef.current.focus();\n }\n }\n if (key === 'Home') {\n onHomeKeyDownInsideCalendar();\n e.preventDefault();\n }\n if (key === 'End') {\n onEndKeyDownInsideCalendar();\n e.preventDefault();\n }\n },\n [nextMonthBtnRef, nextYearBtnRef, onEndKeyDownInsideCalendar, onHomeKeyDownInsideCalendar],\n );\n const handlePrevMonthKeyDown = useCallback(\n (e) => {\n const { key, shiftKey } = e;\n if (key === 'Tab') {\n if (shiftKey) {\n // TAB CYCLE IMPLEMENTATION\n if (!isControllerOnly) {\n e.preventDefault();\n if (isWithTimeWheelToo) currMeridiemBtnRef?.current?.focus?.();\n else tryToFocusDayRegion();\n }\n } else {\n e.preventDefault();\n nextMonthBtnRef.current.focus();\n }\n }\n if (key === 'Home') {\n onHomeKeyDownInsideCalendar();\n e.preventDefault();\n }\n if (key === 'End') {\n onEndKeyDownInsideCalendar();\n e.preventDefault();\n }\n },\n [\n currMeridiemBtnRef,\n isControllerOnly,\n isWithTimeWheelToo,\n nextMonthBtnRef,\n onEndKeyDownInsideCalendar,\n onHomeKeyDownInsideCalendar,\n tryToFocusDayRegion,\n ],\n );\n const handleNextMonthKeyDown = useCallback(\n (e) => {\n const { key, shiftKey } = e;\n if (key === 'Tab') {\n e.preventDefault();\n if (shiftKey) {\n prevMonthBtnRef.current.focus();\n } else {\n prevYearBtnRef.current.focus();\n }\n }\n if (key === 'Home') {\n onHomeKeyDownInsideCalendar();\n e.preventDefault();\n }\n if (key === 'End') {\n onEndKeyDownInsideCalendar();\n e.preventDefault();\n }\n },\n [onEndKeyDownInsideCalendar, onHomeKeyDownInsideCalendar, prevMonthBtnRef, prevYearBtnRef],\n );\n const handleNextYearKeyDown = useCallback(\n (e) => {\n const { key, shiftKey } = e;\n if (key === 'Tab') {\n e.preventDefault();\n if (shiftKey) {\n prevYearBtnRef?.current?.focus?.();\n }\n if (!shiftKey) tryToFocusDayRegion();\n }\n if (key === 'Home') {\n onHomeKeyDownInsideCalendar();\n e.preventDefault();\n }\n if (key === 'End') {\n onEndKeyDownInsideCalendar();\n e.preventDefault();\n }\n },\n [tryToFocusDayRegion, prevYearBtnRef, onHomeKeyDownInsideCalendar, onEndKeyDownInsideCalendar],\n );\n\n return useMemo(\n () => ({\n handleDayOnKeyDown,\n handlePrevYearKeyDown,\n handlePrevMonthKeyDown,\n handleNextMonthKeyDown,\n handleNextYearKeyDown,\n handlePickerIconKeyDown,\n }),\n [\n handleDayOnKeyDown,\n handlePrevYearKeyDown,\n handlePrevMonthKeyDown,\n handleNextMonthKeyDown,\n handleNextYearKeyDown,\n handlePickerIconKeyDown,\n ],\n );\n};\n"],"names":["useKeyboardHandlers","focusedDay","daysArray","handlePrevMonth","handleNextMonth","prevYearBtnRef","prevMonthBtnRef","nextMonthBtnRef","nextYearBtnRef","currMeridiemBtnRef","isWithTimeWheelToo","isControllerOnly","handleFocusMetaDay","handleFocusMetaDayByDay","tryToFocusCurrentlyDataIsFocusedDay","hideDate","hideTime","monthInputRef","hourInputRef","setLatestInteractionRegion","tryToFocusDayRegion","useCallback","newFocusDay","find","isCurrMonthDay","setTimeout","onHomeKeyDownInsideCalendar","current","focus","onEndKeyDownInsideCalendar","onHomeKeyDownTriggerIcon","handlePickerIconKeyDown","e","key","homeEndKeys","includes","preventDefault","stopPropagation","handleDayOnKeyDown","metaDay","newFocusedDayDate","day","shiftKey","homeEndAllArrowKeys","sumValuesToDate","daysToSum","length","handlePrevYearKeyDown","handlePrevMonthKeyDown","handleNextMonthKeyDown","handleNextYearKeyDown","useMemo"],"mappings":"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"}
1
+ {"version":3,"file":"useKeyboardHandlers.js","sources":["../../../../../../src/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.tsx"],"sourcesContent":["/* eslint-disable complexity */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useMemo, useContext, useCallback } from 'react';\nimport { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX';\nimport { sumValuesToDate } from '../../../utils/dateHelpers';\nimport type { metaMonthDayT, onKeyDownT } from '../../../index.d';\nimport type { handleDayOnKeyDownT, KeyboardHandlersT, HeaderButtonsRefsT } from './CalendarContext';\nimport { homeEndAllArrowKeys, homeEndKeys } from '../../../utils/constants';\n\ninterface useKeyboardHandlersArgsT extends Partial<HeaderButtonsRefsT> {\n focusedDay: metaMonthDayT;\n daysArray: metaMonthDayT[];\n handlePrevMonth: () => void;\n handleNextMonth: () => void;\n handleFocusMetaDay: (metaDayToFocus: metaMonthDayT) => void;\n handleFocusMetaDayByDay: (dayToFocus: Date) => void;\n tryToFocusCurrentlyDataIsFocusedDay: () => void;\n}\n\nexport const useKeyboardHandlers = ({\n focusedDay,\n daysArray,\n handlePrevMonth,\n handleNextMonth,\n handleFocusMetaDay,\n handleFocusMetaDayByDay,\n tryToFocusCurrentlyDataIsFocusedDay,\n}: useKeyboardHandlersArgsT): KeyboardHandlersT => {\n const {\n hideDate,\n hideTime,\n monthInputRef,\n hourInputRef,\n prevYearBtnRef,\n prevMonthBtnRef,\n nextMonthBtnRef,\n nextYearBtnRef,\n currMeridiemBtnRef,\n isControllerOnly,\n isWithTimeWheelToo,\n setLatestInteractionRegion,\n withAnyInputs,\n isWithTimeInputs,\n meridiemInputRef,\n isWithDateInputs,\n yearInputRef,\n } = useContext(ControlledDateTimePickerContext);\n const tryToFocusDayRegion = useCallback(() => {\n setLatestInteractionRegion('calendar-days');\n if (!focusedDay) {\n const newFocusDay = daysArray.find(({ isCurrMonthDay }) => isCurrMonthDay);\n if (newFocusDay)\n setTimeout(() => {\n handleFocusMetaDay(newFocusDay);\n });\n } else {\n tryToFocusCurrentlyDataIsFocusedDay();\n }\n }, [daysArray, focusedDay, handleFocusMetaDay, setLatestInteractionRegion, tryToFocusCurrentlyDataIsFocusedDay]);\n\n const onHomeKeyDownInsideCalendar = useCallback(() => {\n prevMonthBtnRef?.current?.focus?.();\n }, [prevMonthBtnRef]);\n const onEndKeyDownInsideCalendar = useCallback(() => {\n if (isWithTimeWheelToo) currMeridiemBtnRef?.current?.focus?.();\n else tryToFocusDayRegion();\n }, [currMeridiemBtnRef, isWithTimeWheelToo, tryToFocusDayRegion]);\n\n const onHomeKeyDownTriggerIcon = useCallback(() => {\n if (!hideDate) monthInputRef?.current?.focus?.();\n else if (!hideTime) hourInputRef?.current?.focus?.();\n }, [hideDate, hideTime, monthInputRef, hourInputRef]);\n const handlePickerIconKeyDown: onKeyDownT<HTMLButtonElement> = useCallback(\n (e) => {\n const { key } = e;\n if (homeEndKeys.includes(key)) e.preventDefault();\n if (homeEndKeys.includes(key)) e.stopPropagation();\n if (key === 'Home') onHomeKeyDownTriggerIcon();\n if (key === 'Backspace' && withAnyInputs) {\n if (isWithTimeInputs) meridiemInputRef?.current?.focus?.();\n else if (isWithDateInputs) yearInputRef?.current?.focus?.();\n }\n },\n [isWithDateInputs, isWithTimeInputs, meridiemInputRef, onHomeKeyDownTriggerIcon, withAnyInputs, yearInputRef],\n );\n\n const handleDayOnKeyDown: handleDayOnKeyDownT = useCallback(\n (e, metaDay) => {\n let newFocusedDayDate;\n const { day } = metaDay;\n const { key, shiftKey } = e;\n if (homeEndAllArrowKeys.includes(key)) e.preventDefault();\n if (homeEndAllArrowKeys.includes(key)) e.stopPropagation();\n\n if (key === 'ArrowUp') newFocusedDayDate = sumValuesToDate(day, { daysToSum: -7 });\n if (key === 'ArrowDown') newFocusedDayDate = sumValuesToDate(day, { daysToSum: 7 });\n if (key === 'ArrowLeft') {\n newFocusedDayDate = sumValuesToDate(day, { daysToSum: -1 });\n if (metaDay === daysArray[1]) {\n handlePrevMonth();\n }\n }\n if (key === 'ArrowRight') {\n newFocusedDayDate = sumValuesToDate(day, { daysToSum: 1 });\n if (metaDay === daysArray[daysArray.length - 2]) {\n handleNextMonth();\n }\n }\n if (newFocusedDayDate) {\n handleFocusMetaDayByDay(newFocusedDayDate);\n setTimeout(tryToFocusCurrentlyDataIsFocusedDay);\n }\n if (key === 'Home') onHomeKeyDownInsideCalendar();\n if (key === 'End') onEndKeyDownInsideCalendar();\n // TAB CYCLE IMPLEMENTATION\n if (key === 'Tab' && !shiftKey && isControllerOnly === false && !isWithTimeWheelToo) {\n // MUST prevent default since this is a custom focus switch\n // NOT preventing the default event will cause unexpected result\n e.preventDefault();\n prevMonthBtnRef?.current?.focus?.();\n }\n },\n [\n daysArray,\n handleFocusMetaDayByDay,\n handleNextMonth,\n handlePrevMonth,\n isControllerOnly,\n isWithTimeWheelToo,\n onEndKeyDownInsideCalendar,\n onHomeKeyDownInsideCalendar,\n prevMonthBtnRef,\n tryToFocusCurrentlyDataIsFocusedDay,\n ],\n );\n const handlePrevYearKeyDown = useCallback(\n (e) => {\n const { key, shiftKey } = e;\n if (key === 'Tab') {\n e.preventDefault();\n if (shiftKey) {\n nextMonthBtnRef.current.focus();\n } else {\n nextYearBtnRef.current.focus();\n }\n }\n if (key === 'Home') {\n onHomeKeyDownInsideCalendar();\n e.preventDefault();\n }\n if (key === 'End') {\n onEndKeyDownInsideCalendar();\n e.preventDefault();\n }\n },\n [nextMonthBtnRef, nextYearBtnRef, onEndKeyDownInsideCalendar, onHomeKeyDownInsideCalendar],\n );\n const handlePrevMonthKeyDown = useCallback(\n (e) => {\n const { key, shiftKey } = e;\n if (key === 'Tab') {\n if (shiftKey) {\n // TAB CYCLE IMPLEMENTATION\n if (!isControllerOnly) {\n e.preventDefault();\n if (isWithTimeWheelToo) currMeridiemBtnRef?.current?.focus?.();\n else tryToFocusDayRegion();\n }\n } else {\n e.preventDefault();\n nextMonthBtnRef.current.focus();\n }\n }\n if (key === 'Home') {\n onHomeKeyDownInsideCalendar();\n e.preventDefault();\n }\n if (key === 'End') {\n onEndKeyDownInsideCalendar();\n e.preventDefault();\n }\n },\n [\n currMeridiemBtnRef,\n isControllerOnly,\n isWithTimeWheelToo,\n nextMonthBtnRef,\n onEndKeyDownInsideCalendar,\n onHomeKeyDownInsideCalendar,\n tryToFocusDayRegion,\n ],\n );\n const handleNextMonthKeyDown = useCallback(\n (e) => {\n const { key, shiftKey } = e;\n if (key === 'Tab') {\n e.preventDefault();\n if (shiftKey) {\n prevMonthBtnRef.current.focus();\n } else {\n prevYearBtnRef.current.focus();\n }\n }\n if (key === 'Home') {\n onHomeKeyDownInsideCalendar();\n e.preventDefault();\n }\n if (key === 'End') {\n onEndKeyDownInsideCalendar();\n e.preventDefault();\n }\n },\n [onEndKeyDownInsideCalendar, onHomeKeyDownInsideCalendar, prevMonthBtnRef, prevYearBtnRef],\n );\n const handleNextYearKeyDown = useCallback(\n (e) => {\n const { key, shiftKey } = e;\n if (key === 'Tab') {\n e.preventDefault();\n if (shiftKey) {\n prevYearBtnRef?.current?.focus?.();\n }\n if (!shiftKey) tryToFocusDayRegion();\n }\n if (key === 'Home') {\n onHomeKeyDownInsideCalendar();\n e.preventDefault();\n }\n if (key === 'End') {\n onEndKeyDownInsideCalendar();\n e.preventDefault();\n }\n },\n [tryToFocusDayRegion, prevYearBtnRef, onHomeKeyDownInsideCalendar, onEndKeyDownInsideCalendar],\n );\n\n return useMemo(\n () => ({\n handleDayOnKeyDown,\n handlePrevYearKeyDown,\n handlePrevMonthKeyDown,\n handleNextMonthKeyDown,\n handleNextYearKeyDown,\n handlePickerIconKeyDown,\n }),\n [\n handleDayOnKeyDown,\n handlePrevYearKeyDown,\n handlePrevMonthKeyDown,\n handleNextMonthKeyDown,\n handleNextYearKeyDown,\n handlePickerIconKeyDown,\n ],\n );\n};\n"],"names":["useKeyboardHandlers","focusedDay","daysArray","handlePrevMonth","handleNextMonth","handleFocusMetaDay","handleFocusMetaDayByDay","tryToFocusCurrentlyDataIsFocusedDay","useContext","ControlledDateTimePickerContext","hideDate","hideTime","monthInputRef","hourInputRef","prevYearBtnRef","prevMonthBtnRef","nextMonthBtnRef","nextYearBtnRef","currMeridiemBtnRef","isControllerOnly","isWithTimeWheelToo","setLatestInteractionRegion","withAnyInputs","isWithTimeInputs","meridiemInputRef","isWithDateInputs","yearInputRef","tryToFocusDayRegion","useCallback","newFocusDay","find","isCurrMonthDay","setTimeout","onHomeKeyDownInsideCalendar","current","focus","onEndKeyDownInsideCalendar","onHomeKeyDownTriggerIcon","handlePickerIconKeyDown","e","key","homeEndKeys","includes","preventDefault","stopPropagation","handleDayOnKeyDown","metaDay","newFocusedDayDate","day","shiftKey","homeEndAllArrowKeys","sumValuesToDate","daysToSum","length","handlePrevYearKeyDown","handlePrevMonthKeyDown","handleNextMonthKeyDown","handleNextYearKeyDown","useMemo"],"mappings":"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"}
@@ -5,7 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
6
  var React = require('react');
7
7
  var reactPopper = require('react-popper');
8
+ var controlledDateTimePicker_ControlledDateTimePickerCTX = require('../../../ControlledDateTimePickerCTX.js');
8
9
  var controlledDateTimePicker_utils_hooks_useOnClickOutside = require('../../../utils/hooks/useOnClickOutside.js');
10
+ require('../../../ControlledDateTimePickerTypes.js');
9
11
 
10
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
13
 
@@ -14,12 +16,16 @@ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray)
14
16
  var usePopperTriggerLogic = function usePopperTriggerLogic(_ref) {
15
17
  var focusedDay = _ref.focusedDay,
16
18
  resetFocusedDayToStartDate = _ref.resetFocusedDayToStartDate,
17
- prevMonthBtnRef = _ref.prevMonthBtnRef,
18
- pickerButtonRef = _ref.pickerButtonRef,
19
- onPickerOpen = _ref.onPickerOpen,
20
- onPickerClose = _ref.onPickerClose,
21
19
  showCalendar = _ref.showCalendar,
22
- setShowCalendar = _ref.setShowCalendar;
20
+ setShowCalendar = _ref.setShowCalendar,
21
+ tryToFocusCurrentlyDataIsFocusedDay = _ref.tryToFocusCurrentlyDataIsFocusedDay;
22
+
23
+ var _useContext = React.useContext(controlledDateTimePicker_ControlledDateTimePickerCTX.ControlledDateTimePickerContext),
24
+ _useContext$props = _useContext.props,
25
+ onPickerOpen = _useContext$props.onPickerOpen,
26
+ onPickerClose = _useContext$props.onPickerClose,
27
+ prevMonthBtnRef = _useContext.prevMonthBtnRef,
28
+ pickerButtonRef = _useContext.pickerButtonRef;
23
29
 
24
30
  var _useState = React.useState(null),
25
31
  _useState2 = _slicedToArray__default['default'](_useState, 2),
@@ -43,7 +49,12 @@ var usePopperTriggerLogic = function usePopperTriggerLogic(_ref) {
43
49
  element: arrowElement
44
50
  }
45
51
  }]
46
- });
52
+ }); // onOpen we try to focus the day we should focus, if we should focus one
53
+
54
+ var handleOnPickerOpen = React.useCallback(function () {
55
+ onPickerOpen();
56
+ tryToFocusCurrentlyDataIsFocusedDay();
57
+ }, [onPickerOpen, tryToFocusCurrentlyDataIsFocusedDay]);
47
58
  var openCalendar = React.useCallback(function () {
48
59
  if (focusedDay) setTimeout(function () {
49
60
  var _focusedDay$dayBtnRef, _focusedDay$dayBtnRef2, _focusedDay$dayBtnRef3;
@@ -55,8 +66,8 @@ var usePopperTriggerLogic = function usePopperTriggerLogic(_ref) {
55
66
  return prevMonthBtnRef === null || prevMonthBtnRef === void 0 ? void 0 : (_prevMonthBtnRef$curr = prevMonthBtnRef.current) === null || _prevMonthBtnRef$curr === void 0 ? void 0 : (_prevMonthBtnRef$curr2 = _prevMonthBtnRef$curr.focus) === null || _prevMonthBtnRef$curr2 === void 0 ? void 0 : _prevMonthBtnRef$curr2.call(_prevMonthBtnRef$curr);
56
67
  }, 100);
57
68
  setShowCalendar(true);
58
- onPickerOpen();
59
- }, [focusedDay, onPickerOpen, prevMonthBtnRef, setShowCalendar]);
69
+ handleOnPickerOpen();
70
+ }, [focusedDay, handleOnPickerOpen, prevMonthBtnRef, setShowCalendar]);
60
71
  var closeCalendar = React.useCallback(function () {
61
72
  var _pickerButtonRef$curr, _pickerButtonRef$curr2;
62
73