@elliemae/ds-form-date-time-picker 3.50.1-next.8 → 3.51.0-beta.1

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 (106) hide show
  1. package/dist/cjs/exported-related/theming.js +1 -1
  2. package/dist/cjs/exported-related/theming.js.map +1 -1
  3. package/dist/cjs/parts/DateInputs/DDInput.js +4 -2
  4. package/dist/cjs/parts/DateInputs/DDInput.js.map +2 -2
  5. package/dist/cjs/parts/DateInputs/DateInputs.js +7 -4
  6. package/dist/cjs/parts/DateInputs/DateInputs.js.map +2 -2
  7. package/dist/cjs/parts/DateInputs/MMInput.js +4 -2
  8. package/dist/cjs/parts/DateInputs/MMInput.js.map +2 -2
  9. package/dist/cjs/parts/DateInputs/YYYYInput.js +4 -2
  10. package/dist/cjs/parts/DateInputs/YYYYInput.js.map +2 -2
  11. package/dist/cjs/parts/DateInputs/useDateInputs.js +9 -4
  12. package/dist/cjs/parts/DateInputs/useDateInputs.js.map +2 -2
  13. package/dist/cjs/parts/Pickers/Calendar/Day.js +5 -4
  14. package/dist/cjs/parts/Pickers/Calendar/Day.js.map +2 -2
  15. package/dist/cjs/parts/Pickers/TimeWheel/HoursList.js +5 -2
  16. package/dist/cjs/parts/Pickers/TimeWheel/HoursList.js.map +2 -2
  17. package/dist/cjs/parts/Pickers/TimeWheel/MeridiemList.js +6 -5
  18. package/dist/cjs/parts/Pickers/TimeWheel/MeridiemList.js.map +2 -2
  19. package/dist/cjs/parts/Pickers/TimeWheel/MinutesList.js +5 -2
  20. package/dist/cjs/parts/Pickers/TimeWheel/MinutesList.js.map +2 -2
  21. package/dist/cjs/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +22 -10
  22. package/dist/cjs/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js.map +2 -2
  23. package/dist/cjs/parts/Pickers/TimeWheel/useKeyboardHandlers.js +13 -3
  24. package/dist/cjs/parts/Pickers/TimeWheel/useKeyboardHandlers.js.map +2 -2
  25. package/dist/cjs/parts/TimeInputs/HHInput.js +4 -2
  26. package/dist/cjs/parts/TimeInputs/HHInput.js.map +2 -2
  27. package/dist/cjs/parts/TimeInputs/MeridiemInput.js +4 -2
  28. package/dist/cjs/parts/TimeInputs/MeridiemInput.js.map +2 -2
  29. package/dist/cjs/parts/TimeInputs/MinutesInput.js +4 -2
  30. package/dist/cjs/parts/TimeInputs/MinutesInput.js.map +2 -2
  31. package/dist/cjs/parts/TimeInputs/TimeInputs.js +7 -4
  32. package/dist/cjs/parts/TimeInputs/TimeInputs.js.map +2 -2
  33. package/dist/cjs/parts/TimeInputs/useTimeInputs.js +17 -4
  34. package/dist/cjs/parts/TimeInputs/useTimeInputs.js.map +2 -2
  35. package/dist/cjs/react-desc-prop-types.js +2 -0
  36. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  37. package/dist/cjs/typescript-testing/typescript-date-time-picker-valid.js +1 -0
  38. package/dist/cjs/typescript-testing/typescript-date-time-picker-valid.js.map +2 -2
  39. package/dist/esm/exported-related/theming.js +1 -1
  40. package/dist/esm/exported-related/theming.js.map +1 -1
  41. package/dist/esm/parts/DateInputs/DDInput.js +4 -2
  42. package/dist/esm/parts/DateInputs/DDInput.js.map +2 -2
  43. package/dist/esm/parts/DateInputs/DateInputs.js +7 -4
  44. package/dist/esm/parts/DateInputs/DateInputs.js.map +2 -2
  45. package/dist/esm/parts/DateInputs/MMInput.js +4 -2
  46. package/dist/esm/parts/DateInputs/MMInput.js.map +2 -2
  47. package/dist/esm/parts/DateInputs/YYYYInput.js +4 -2
  48. package/dist/esm/parts/DateInputs/YYYYInput.js.map +2 -2
  49. package/dist/esm/parts/DateInputs/useDateInputs.js +9 -4
  50. package/dist/esm/parts/DateInputs/useDateInputs.js.map +2 -2
  51. package/dist/esm/parts/Pickers/Calendar/Day.js +5 -4
  52. package/dist/esm/parts/Pickers/Calendar/Day.js.map +2 -2
  53. package/dist/esm/parts/Pickers/TimeWheel/HoursList.js +5 -2
  54. package/dist/esm/parts/Pickers/TimeWheel/HoursList.js.map +2 -2
  55. package/dist/esm/parts/Pickers/TimeWheel/MeridiemList.js +6 -5
  56. package/dist/esm/parts/Pickers/TimeWheel/MeridiemList.js.map +2 -2
  57. package/dist/esm/parts/Pickers/TimeWheel/MinutesList.js +5 -2
  58. package/dist/esm/parts/Pickers/TimeWheel/MinutesList.js.map +2 -2
  59. package/dist/esm/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +22 -10
  60. package/dist/esm/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js.map +2 -2
  61. package/dist/esm/parts/Pickers/TimeWheel/useKeyboardHandlers.js +13 -3
  62. package/dist/esm/parts/Pickers/TimeWheel/useKeyboardHandlers.js.map +2 -2
  63. package/dist/esm/parts/TimeInputs/HHInput.js +4 -2
  64. package/dist/esm/parts/TimeInputs/HHInput.js.map +2 -2
  65. package/dist/esm/parts/TimeInputs/MeridiemInput.js +4 -2
  66. package/dist/esm/parts/TimeInputs/MeridiemInput.js.map +2 -2
  67. package/dist/esm/parts/TimeInputs/MinutesInput.js +4 -2
  68. package/dist/esm/parts/TimeInputs/MinutesInput.js.map +2 -2
  69. package/dist/esm/parts/TimeInputs/TimeInputs.js +7 -4
  70. package/dist/esm/parts/TimeInputs/TimeInputs.js.map +2 -2
  71. package/dist/esm/parts/TimeInputs/useTimeInputs.js +17 -4
  72. package/dist/esm/parts/TimeInputs/useTimeInputs.js.map +2 -2
  73. package/dist/esm/react-desc-prop-types.js +2 -0
  74. package/dist/esm/react-desc-prop-types.js.map +2 -2
  75. package/dist/esm/typescript-testing/typescript-date-time-picker-valid.js +1 -0
  76. package/dist/esm/typescript-testing/typescript-date-time-picker-valid.js.map +2 -2
  77. package/dist/types/ControlledDateTimePicker.d.ts +1 -0
  78. package/dist/types/exported-related/theming.d.ts +1 -1
  79. package/dist/types/parts/ClearButton/ClearButton.d.ts +1 -0
  80. package/dist/types/parts/ControlledDateTimePickerContent.d.ts +1 -0
  81. package/dist/types/parts/DateInputs/DDInput.d.ts +2 -1
  82. package/dist/types/parts/DateInputs/DateInputs.d.ts +1 -0
  83. package/dist/types/parts/DateInputs/MMInput.d.ts +2 -1
  84. package/dist/types/parts/DateInputs/YYYYInput.d.ts +2 -1
  85. package/dist/types/parts/Pickers/Calendar/Calendar.d.ts +1 -0
  86. package/dist/types/parts/Pickers/Calendar/CalendarContent.d.ts +1 -0
  87. package/dist/types/parts/Pickers/Calendar/CalendarHead.d.ts +1 -0
  88. package/dist/types/parts/Pickers/Calendar/CalendarIconTrigger.d.ts +1 -0
  89. package/dist/types/parts/Pickers/Calendar/CalendarMonthDays.d.ts +1 -0
  90. package/dist/types/parts/Pickers/Calendar/CalendarWrapper.d.ts +1 -0
  91. package/dist/types/parts/Pickers/Calendar/Day.d.ts +1 -0
  92. package/dist/types/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContent.d.ts +1 -0
  93. package/dist/types/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.d.ts +1 -0
  94. package/dist/types/parts/Pickers/PickersIcons.d.ts +1 -0
  95. package/dist/types/parts/Pickers/TimeWheel/HoursList.d.ts +1 -0
  96. package/dist/types/parts/Pickers/TimeWheel/MeridiemList.d.ts +1 -0
  97. package/dist/types/parts/Pickers/TimeWheel/MinutesList.d.ts +1 -0
  98. package/dist/types/parts/Pickers/TimeWheel/TimeWheel.d.ts +1 -0
  99. package/dist/types/parts/Pickers/TimeWheel/TimeWheelIconTrigger.d.ts +1 -0
  100. package/dist/types/parts/TimeInputs/HHInput.d.ts +2 -1
  101. package/dist/types/parts/TimeInputs/MeridiemInput.d.ts +2 -1
  102. package/dist/types/parts/TimeInputs/MinutesInput.d.ts +2 -1
  103. package/dist/types/parts/TimeInputs/TimeInputs.d.ts +1 -0
  104. package/dist/types/react-desc-prop-types.d.ts +2 -0
  105. package/dist/types/tests/date-time-picker.readOnly.test.d.ts +1 -0
  106. package/package.json +15 -15
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/parts/Pickers/TimeWheel/HoursList.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable complexity */\nimport React, { useContext, useCallback } from 'react';\nimport { ChevronSmallUp, ChevronSmallDown } from '@elliemae/ds-icons';\nimport { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';\nimport { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';\nimport { convertToPositiveNumberIfPossible } from '../../../utils/numberHelpers.js';\nimport { StyledWheelList, StyledWheelListItem, StyledTimeBtn, StyledWheelChangeTimeBtn } from './Styleds.js';\nimport { TimeWheelContext } from './TimeWheelContext.js';\n\nexport const HoursList = (): JSX.Element => {\n const {\n currHourNum,\n currMinuteNum,\n currMeridiem,\n visibleHours,\n handlePrevHour,\n handleNextHour,\n handleTimeWheelBtnChangeHours,\n handleCurrHourOnKeyDown,\n } = useContext(TimeWheelContext);\n const {\n prevHourBtnRef,\n currHourBtnRef,\n nextHourBtnRef,\n getIsDisabledTime,\n autoFocusHourTimeWheel,\n hours,\n latestInteractionRegion,\n currFocusDescriber,\n getProps,\n } = useContext(ControlledDateTimePickerContext);\n\n const handleCurrYearRef = useCallback(\n (ButtonDomNode: HTMLButtonElement) => {\n setTimeout(() => {\n currHourBtnRef.current = ButtonDomNode;\n if (latestInteractionRegion === 'timewheel' && currFocusDescriber === 'timewheel-curr-hour')\n ButtonDomNode?.focus?.();\n });\n },\n [currFocusDescriber, latestInteractionRegion, currHourBtnRef],\n );\n return (\n <StyledWheelList>\n <StyledWheelListItem>\n <StyledWheelChangeTimeBtn\n aria-label=\"subtract one hour\"\n buttonType=\"raw\"\n size=\"m\"\n onClick={handlePrevHour}\n innerRef={prevHourBtnRef}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL.PREV_HOUR}\n getOwnerProps={getProps}\n tabIndex={-1}\n type=\"button\"\n >\n <ChevronSmallUp color={['brand-primary', '700']} />\n </StyledWheelChangeTimeBtn>\n </StyledWheelListItem>\n {visibleHours.map((hourString) => {\n const key = `timewheel-hour-${hourString || ''}`;\n if (!hourString) return <StyledWheelListItem key={key} />;\n const currHourTimeString = `${hourString}:${currMinuteNum} ${currMeridiem}`;\n\n const isEmptyCurrValueCurrentListItem = !hours && convertToPositiveNumberIfPossible(hourString) === currHourNum;\n const isCurrentListItem = isEmptyCurrValueCurrentListItem || hours === hourString;\n const isDisabled = getIsDisabledTime(currHourTimeString);\n const tabIndex = isCurrentListItem ? 0 : -1;\n const btnProps = {\n onKeyDown: isCurrentListItem ? handleCurrHourOnKeyDown : undefined,\n innerRef: isCurrentListItem ? handleCurrYearRef : undefined,\n };\n const styleProps = {\n isCurrentListItem,\n isDisabled,\n };\n return (\n <StyledWheelListItem isCurrentListItem={isCurrentListItem} key={key}>\n <StyledTimeBtn\n {...styleProps}\n autoFocus={autoFocusHourTimeWheel && isCurrentListItem}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL[isCurrentListItem ? 'CURRENT_HOUR' : 'HOUR']}\n selected={hours.length === 2 && convertToPositiveNumberIfPossible(hourString) === currHourNum}\n aria-label={`${hourString} hours`}\n aria-disabled={isDisabled}\n buttonType=\"raw\"\n size=\"m\"\n onClick={(e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) =>\n handleTimeWheelBtnChangeHours(hourString, e)\n }\n tabIndex={tabIndex}\n type=\"button\"\n {...btnProps}\n getOwnerProps={getProps}\n >\n {hourString}\n </StyledTimeBtn>\n </StyledWheelListItem>\n );\n })}\n <StyledWheelListItem>\n <StyledWheelChangeTimeBtn\n aria-label=\"add one hour\"\n buttonType=\"raw\"\n size=\"m\"\n onClick={handleNextHour}\n innerRef={nextHourBtnRef}\n tabIndex={-1}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL.NEXT_HOUR}\n getOwnerProps={getProps}\n type=\"button\"\n >\n <ChevronSmallDown color={['brand-primary', '700']} />\n </StyledWheelChangeTimeBtn>\n </StyledWheelListItem>\n </StyledWheelList>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD2CnB;AA1CJ,mBAA+C;AAC/C,sBAAiD;AACjD,gDAAmD;AACnD,yCAAgD;AAChD,2BAAkD;AAClD,qBAA8F;AAC9F,8BAAiC;AAE1B,MAAM,YAAY,MAAmB;AAC1C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,yBAAW,wCAAgB;AAC/B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,yBAAW,kEAA+B;AAE9C,QAAM,wBAAoB;AAAA,IACxB,CAAC,kBAAqC;AACpC,iBAAW,MAAM;AACf,uBAAe,UAAU;AACzB,YAAI,4BAA4B,eAAe,uBAAuB;AACpE,yBAAe,QAAQ;AAAA,MAC3B,CAAC;AAAA,IACH;AAAA,IACA,CAAC,oBAAoB,yBAAyB,cAAc;AAAA,EAC9D;AACA,SACE,6CAAC,kCACC;AAAA,gDAAC,sCACC;AAAA,MAAC;AAAA;AAAA,QACC,cAAW;AAAA,QACX,YAAW;AAAA,QACX,MAAK;AAAA,QACL,SAAS;AAAA,QACT,UAAU;AAAA,QACV,eAAa,6EAAmC,UAAU;AAAA,QAC1D,eAAe;AAAA,QACf,UAAU;AAAA,QACV,MAAK;AAAA,QAEL,sDAAC,kCAAe,OAAO,CAAC,iBAAiB,KAAK,GAAG;AAAA;AAAA,IACnD,GACF;AAAA,IACC,aAAa,IAAI,CAAC,eAAe;AAChC,YAAM,MAAM,kBAAkB,cAAc,EAAE;AAC9C,UAAI,CAAC,WAAY,QAAO,4CAAC,wCAAyB,GAAK;AACvD,YAAM,qBAAqB,GAAG,UAAU,IAAI,aAAa,IAAI,YAAY;AAEzE,YAAM,kCAAkC,CAAC,aAAS,wDAAkC,UAAU,MAAM;AACpG,YAAM,oBAAoB,mCAAmC,UAAU;AACvE,YAAM,aAAa,kBAAkB,kBAAkB;AACvD,YAAM,WAAW,oBAAoB,IAAI;AACzC,YAAM,WAAW;AAAA,QACf,WAAW,oBAAoB,0BAA0B;AAAA,QACzD,UAAU,oBAAoB,oBAAoB;AAAA,MACpD;AACA,YAAM,aAAa;AAAA,QACjB;AAAA,QACA;AAAA,MACF;AACA,aACE,4CAAC,sCAAoB,mBACnB;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ,WAAW,0BAA0B;AAAA,UACrC,eAAa,6EAAmC,UAAU,oBAAoB,iBAAiB,MAAM;AAAA,UACrG,UAAU,MAAM,WAAW,SAAK,wDAAkC,UAAU,MAAM;AAAA,UAClF,cAAY,GAAG,UAAU;AAAA,UACzB,iBAAe;AAAA,UACf,YAAW;AAAA,UACX,MAAK;AAAA,UACL,SAAS,CAAC,MACR,8BAA8B,YAAY,CAAC;AAAA,UAE7C;AAAA,UACA,MAAK;AAAA,UACJ,GAAG;AAAA,UACJ,eAAe;AAAA,UAEd;AAAA;AAAA,MACH,KAnB8D,GAoBhE;AAAA,IAEJ,CAAC;AAAA,IACD,4CAAC,sCACC;AAAA,MAAC;AAAA;AAAA,QACC,cAAW;AAAA,QACX,YAAW;AAAA,QACX,MAAK;AAAA,QACL,SAAS;AAAA,QACT,UAAU;AAAA,QACV,UAAU;AAAA,QACV,eAAa,6EAAmC,UAAU;AAAA,QAC1D,eAAe;AAAA,QACf,MAAK;AAAA,QAEL,sDAAC,oCAAiB,OAAO,CAAC,iBAAiB,KAAK,GAAG;AAAA;AAAA,IACrD,GACF;AAAA,KACF;AAEJ;",
4
+ "sourcesContent": ["/* eslint-disable complexity */\nimport React, { useContext, useCallback } from 'react';\nimport { ChevronSmallUp, ChevronSmallDown } from '@elliemae/ds-icons';\nimport { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';\nimport { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';\nimport { convertToPositiveNumberIfPossible } from '../../../utils/numberHelpers.js';\nimport { StyledWheelList, StyledWheelListItem, StyledTimeBtn, StyledWheelChangeTimeBtn } from './Styleds.js';\nimport { TimeWheelContext } from './TimeWheelContext.js';\n\nexport const HoursList = (): JSX.Element => {\n const {\n currHourNum,\n currMinuteNum,\n currMeridiem,\n visibleHours,\n handlePrevHour,\n handleNextHour,\n handleTimeWheelBtnChangeHours,\n handleCurrHourOnKeyDown,\n } = useContext(TimeWheelContext);\n const {\n prevHourBtnRef,\n currHourBtnRef,\n nextHourBtnRef,\n getIsDisabledTime,\n autoFocusHourTimeWheel,\n hours,\n latestInteractionRegion,\n currFocusDescriber,\n getProps,\n props: { readOnly },\n } = useContext(ControlledDateTimePickerContext);\n\n const handleCurrYearRef = useCallback(\n (ButtonDomNode: HTMLButtonElement) => {\n setTimeout(() => {\n currHourBtnRef.current = ButtonDomNode;\n if (latestInteractionRegion === 'timewheel' && currFocusDescriber === 'timewheel-curr-hour')\n ButtonDomNode?.focus?.();\n });\n },\n [currFocusDescriber, latestInteractionRegion, currHourBtnRef],\n );\n return (\n <StyledWheelList>\n <StyledWheelListItem>\n <StyledWheelChangeTimeBtn\n aria-label=\"subtract one hour\"\n buttonType=\"raw\"\n size=\"m\"\n onClick={handlePrevHour}\n innerRef={prevHourBtnRef}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL.PREV_HOUR}\n aria-disabled={readOnly}\n getOwnerProps={getProps}\n tabIndex={-1}\n type=\"button\"\n >\n <ChevronSmallUp color={['brand-primary', '700']} />\n </StyledWheelChangeTimeBtn>\n </StyledWheelListItem>\n {visibleHours.map((hourString) => {\n const key = `timewheel-hour-${hourString || ''}`;\n if (!hourString) return <StyledWheelListItem key={key} />;\n const currHourTimeString = `${hourString}:${currMinuteNum} ${currMeridiem}`;\n\n const isEmptyCurrValueCurrentListItem = !hours && convertToPositiveNumberIfPossible(hourString) === currHourNum;\n const isCurrentListItem = isEmptyCurrValueCurrentListItem || hours === hourString;\n const isDisabled = getIsDisabledTime(currHourTimeString);\n const tabIndex = isCurrentListItem ? 0 : -1;\n const btnProps = {\n onKeyDown: isCurrentListItem ? handleCurrHourOnKeyDown : undefined,\n innerRef: isCurrentListItem ? handleCurrYearRef : undefined,\n };\n const styleProps = {\n isCurrentListItem,\n isDisabled,\n };\n return (\n <StyledWheelListItem isCurrentListItem={isCurrentListItem} key={key}>\n <StyledTimeBtn\n {...styleProps}\n autoFocus={autoFocusHourTimeWheel && isCurrentListItem}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL[isCurrentListItem ? 'CURRENT_HOUR' : 'HOUR']}\n selected={hours.length === 2 && convertToPositiveNumberIfPossible(hourString) === currHourNum}\n aria-label={`${hourString} hours`}\n aria-disabled={isDisabled || readOnly}\n buttonType=\"raw\"\n size=\"m\"\n onClick={(e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) =>\n handleTimeWheelBtnChangeHours(hourString, e)\n }\n tabIndex={tabIndex}\n type=\"button\"\n {...btnProps}\n getOwnerProps={getProps}\n >\n {hourString}\n </StyledTimeBtn>\n </StyledWheelListItem>\n );\n })}\n <StyledWheelListItem>\n <StyledWheelChangeTimeBtn\n aria-label=\"add one hour\"\n buttonType=\"raw\"\n size=\"m\"\n onClick={handleNextHour}\n innerRef={nextHourBtnRef}\n tabIndex={-1}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL.NEXT_HOUR}\n aria-disabled={readOnly}\n getOwnerProps={getProps}\n type=\"button\"\n >\n <ChevronSmallDown color={['brand-primary', '700']} />\n </StyledWheelChangeTimeBtn>\n </StyledWheelListItem>\n </StyledWheelList>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -51,7 +51,8 @@ const MeridiemList = () => {
51
51
  minutes,
52
52
  latestInteractionRegion,
53
53
  currFocusDescriber,
54
- getProps
54
+ getProps,
55
+ props: { readOnly }
55
56
  } = (0, import_react.useContext)(import_ControlledDateTimePickerCTX.ControlledDateTimePickerContext);
56
57
  const isAmCurrent = !currMeridiem || currMeridiem === "AM";
57
58
  const isPmCurrent = currMeridiem === "PM";
@@ -80,7 +81,7 @@ const MeridiemList = () => {
80
81
  {
81
82
  ...styledPropsPrevMeridiem,
82
83
  "aria-label": "set am meridiem",
83
- "aria-disabled": isDisabledAm,
84
+ "aria-disabled": isDisabledAm || readOnly,
84
85
  "data-testid": import_ControlledDateTimePickerDatatestid.ControlledDateTimePickerDatatestid.TIMEWHEEL.PREV_MERIDIEM,
85
86
  buttonType: "raw",
86
87
  size: "m",
@@ -100,7 +101,7 @@ const MeridiemList = () => {
100
101
  "data-testid": import_ControlledDateTimePickerDatatestid.ControlledDateTimePickerDatatestid.TIMEWHEEL[isAmCurrent ? "CURRENT_MERIDIEM" : "MERIDIEM"],
101
102
  selected: currMeridiem === "AM",
102
103
  "aria-label": `AM ${isAmCurrent ? "selected" : ""}`,
103
- "aria-disabled": isDisabledAm,
104
+ "aria-disabled": isDisabledAm || readOnly,
104
105
  buttonType: "raw",
105
106
  size: "m",
106
107
  onClick: (e) => handleTimeWheelBtnChangeMeridiem("AM", e),
@@ -119,7 +120,7 @@ const MeridiemList = () => {
119
120
  "data-testid": import_ControlledDateTimePickerDatatestid.ControlledDateTimePickerDatatestid.TIMEWHEEL[isPmCurrent ? "CURRENT_MERIDIEM" : "MERIDIEM"],
120
121
  selected: currMeridiem === "PM",
121
122
  "aria-label": `PM ${isPmCurrent ? "selected" : ""}`,
122
- "aria-disabled": isDisabledPm,
123
+ "aria-disabled": isDisabledPm || readOnly,
123
124
  buttonType: "raw",
124
125
  size: "m",
125
126
  onClick: (e) => handleTimeWheelBtnChangeMeridiem("PM", e),
@@ -137,7 +138,7 @@ const MeridiemList = () => {
137
138
  {
138
139
  ...styledPropsNextMeridiem,
139
140
  "aria-label": "set pm meridiem",
140
- "aria-disabled": isDisabledPm,
141
+ "aria-disabled": isDisabledPm || readOnly,
141
142
  "data-testid": import_ControlledDateTimePickerDatatestid.ControlledDateTimePickerDatatestid.TIMEWHEEL.NEXT_MERIDIEM,
142
143
  buttonType: "raw",
143
144
  size: "m",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/parts/Pickers/TimeWheel/MeridiemList.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable complexity */\nimport React, { useContext, useCallback } from 'react';\nimport { ChevronSmallUp, ChevronSmallDown } from '@elliemae/ds-icons';\nimport { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';\nimport { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';\nimport { StyledWheelList, StyledWheelListItem, StyledTimeBtn, StyledWheelChangeTimeBtn } from './Styleds.js';\nimport { TimeWheelContext } from './TimeWheelContext.js';\n\nexport const MeridiemList = (): JSX.Element => {\n const { currMeridiem, handleTimeWheelBtnChangeMeridiem, handleCurrMeridiemOnKeyDown } = useContext(TimeWheelContext);\n const {\n prevMeridiemBtnRef,\n currMeridiemBtnRef,\n nextMeridiemBtnRef,\n getIsDisabledTime,\n hours,\n minutes,\n latestInteractionRegion,\n currFocusDescriber,\n getProps,\n } = useContext(ControlledDateTimePickerContext);\n\n const isAmCurrent = !currMeridiem || currMeridiem === 'AM';\n const isPmCurrent = currMeridiem === 'PM';\n const hourMinuteString = `${hours || '01'}:${minutes || '00'}`;\n const amTimeString = `${hourMinuteString} AM`;\n const pmTimeString = `${hourMinuteString} PM`;\n const isDisabledAm = getIsDisabledTime(amTimeString);\n const isDisabledPm = getIsDisabledTime(pmTimeString);\n const styledPropsPrevMeridiem = { isDisabled: isDisabledAm };\n const styledPropsCurrentAmMeridiem = { isCurrentListItem: isAmCurrent, isDisabled: isDisabledAm };\n const styledPropsCurrentPmMeridiem = { isCurrentListItem: isPmCurrent, isDisabled: isDisabledPm };\n const styledPropsNextMeridiem = { isDisabled: isDisabledPm };\n const handleCurrMeridiemRef = useCallback(\n (ButtonDomNode: HTMLButtonElement) => {\n setTimeout(() => {\n currMeridiemBtnRef.current = ButtonDomNode;\n if (latestInteractionRegion === 'timewheel' && currFocusDescriber === 'timewheel-curr-meridiem')\n ButtonDomNode?.focus?.();\n });\n },\n [currFocusDescriber, latestInteractionRegion, currMeridiemBtnRef],\n );\n return (\n <StyledWheelList>\n <StyledWheelListItem>\n <StyledWheelChangeTimeBtn\n {...styledPropsPrevMeridiem}\n aria-label=\"set am meridiem\"\n aria-disabled={isDisabledAm}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL.PREV_MERIDIEM}\n buttonType=\"raw\"\n size=\"m\"\n onClick={(e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) =>\n handleTimeWheelBtnChangeMeridiem('AM', e)\n }\n innerRef={prevMeridiemBtnRef}\n tabIndex={-1}\n type=\"button\"\n getOwnerProps={getProps}\n >\n <ChevronSmallUp color={['brand-primary', '700']} />\n </StyledWheelChangeTimeBtn>\n </StyledWheelListItem>\n {currMeridiem === 'AM' || currMeridiem === '' ? <StyledWheelListItem /> : null}\n <StyledWheelListItem isCurrentListItem={isAmCurrent}>\n <StyledTimeBtn\n {...styledPropsCurrentAmMeridiem}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL[isAmCurrent ? 'CURRENT_MERIDIEM' : 'MERIDIEM']}\n selected={currMeridiem === 'AM'}\n aria-label={`AM ${isAmCurrent ? 'selected' : ''}`}\n aria-disabled={isDisabledAm}\n buttonType=\"raw\"\n size=\"m\"\n onClick={(e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) =>\n handleTimeWheelBtnChangeMeridiem('AM', e)\n }\n onKeyDown={isAmCurrent ? handleCurrMeridiemOnKeyDown : undefined}\n innerRef={isAmCurrent ? handleCurrMeridiemRef : undefined}\n tabIndex={isAmCurrent ? 0 : -1}\n type=\"button\"\n getOwnerProps={getProps}\n >\n AM\n </StyledTimeBtn>\n </StyledWheelListItem>\n <StyledWheelListItem isCurrentListItem={isPmCurrent}>\n <StyledTimeBtn\n {...styledPropsCurrentPmMeridiem}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL[isPmCurrent ? 'CURRENT_MERIDIEM' : 'MERIDIEM']}\n selected={currMeridiem === 'PM'}\n aria-label={`PM ${isPmCurrent ? 'selected' : ''}`}\n aria-disabled={isDisabledPm}\n buttonType=\"raw\"\n size=\"m\"\n onClick={(e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) =>\n handleTimeWheelBtnChangeMeridiem('PM', e)\n }\n onKeyDown={isPmCurrent ? handleCurrMeridiemOnKeyDown : undefined}\n innerRef={isPmCurrent ? handleCurrMeridiemRef : undefined}\n tabIndex={isPmCurrent ? 0 : -1}\n type=\"button\"\n getOwnerProps={getProps}\n >\n PM\n </StyledTimeBtn>\n </StyledWheelListItem>\n {currMeridiem === 'PM' ? <StyledWheelListItem /> : null}\n <StyledWheelListItem>\n <StyledWheelChangeTimeBtn\n {...styledPropsNextMeridiem}\n aria-label=\"set pm meridiem\"\n aria-disabled={isDisabledPm}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL.NEXT_MERIDIEM}\n buttonType=\"raw\"\n size=\"m\"\n onClick={(e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) =>\n handleTimeWheelBtnChangeMeridiem('PM', e)\n }\n innerRef={nextMeridiemBtnRef}\n tabIndex={-1}\n type=\"button\"\n getOwnerProps={getProps}\n >\n <ChevronSmallDown color={['brand-primary', '700']} />\n </StyledWheelChangeTimeBtn>\n </StyledWheelListItem>\n </StyledWheelList>\n );\n};\n\nexport default MeridiemList;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable complexity */\nimport React, { useContext, useCallback } from 'react';\nimport { ChevronSmallUp, ChevronSmallDown } from '@elliemae/ds-icons';\nimport { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';\nimport { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';\nimport { StyledWheelList, StyledWheelListItem, StyledTimeBtn, StyledWheelChangeTimeBtn } from './Styleds.js';\nimport { TimeWheelContext } from './TimeWheelContext.js';\n\nexport const MeridiemList = (): JSX.Element => {\n const { currMeridiem, handleTimeWheelBtnChangeMeridiem, handleCurrMeridiemOnKeyDown } = useContext(TimeWheelContext);\n const {\n prevMeridiemBtnRef,\n currMeridiemBtnRef,\n nextMeridiemBtnRef,\n getIsDisabledTime,\n hours,\n minutes,\n latestInteractionRegion,\n currFocusDescriber,\n getProps,\n props: { readOnly },\n } = useContext(ControlledDateTimePickerContext);\n\n const isAmCurrent = !currMeridiem || currMeridiem === 'AM';\n const isPmCurrent = currMeridiem === 'PM';\n const hourMinuteString = `${hours || '01'}:${minutes || '00'}`;\n const amTimeString = `${hourMinuteString} AM`;\n const pmTimeString = `${hourMinuteString} PM`;\n const isDisabledAm = getIsDisabledTime(amTimeString);\n const isDisabledPm = getIsDisabledTime(pmTimeString);\n const styledPropsPrevMeridiem = { isDisabled: isDisabledAm };\n const styledPropsCurrentAmMeridiem = { isCurrentListItem: isAmCurrent, isDisabled: isDisabledAm };\n const styledPropsCurrentPmMeridiem = { isCurrentListItem: isPmCurrent, isDisabled: isDisabledPm };\n const styledPropsNextMeridiem = { isDisabled: isDisabledPm };\n const handleCurrMeridiemRef = useCallback(\n (ButtonDomNode: HTMLButtonElement) => {\n setTimeout(() => {\n currMeridiemBtnRef.current = ButtonDomNode;\n if (latestInteractionRegion === 'timewheel' && currFocusDescriber === 'timewheel-curr-meridiem')\n ButtonDomNode?.focus?.();\n });\n },\n [currFocusDescriber, latestInteractionRegion, currMeridiemBtnRef],\n );\n return (\n <StyledWheelList>\n <StyledWheelListItem>\n <StyledWheelChangeTimeBtn\n {...styledPropsPrevMeridiem}\n aria-label=\"set am meridiem\"\n aria-disabled={isDisabledAm || readOnly}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL.PREV_MERIDIEM}\n buttonType=\"raw\"\n size=\"m\"\n onClick={(e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) =>\n handleTimeWheelBtnChangeMeridiem('AM', e)\n }\n innerRef={prevMeridiemBtnRef}\n tabIndex={-1}\n type=\"button\"\n getOwnerProps={getProps}\n >\n <ChevronSmallUp color={['brand-primary', '700']} />\n </StyledWheelChangeTimeBtn>\n </StyledWheelListItem>\n {currMeridiem === 'AM' || currMeridiem === '' ? <StyledWheelListItem /> : null}\n <StyledWheelListItem isCurrentListItem={isAmCurrent}>\n <StyledTimeBtn\n {...styledPropsCurrentAmMeridiem}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL[isAmCurrent ? 'CURRENT_MERIDIEM' : 'MERIDIEM']}\n selected={currMeridiem === 'AM'}\n aria-label={`AM ${isAmCurrent ? 'selected' : ''}`}\n aria-disabled={isDisabledAm || readOnly}\n buttonType=\"raw\"\n size=\"m\"\n onClick={(e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) =>\n handleTimeWheelBtnChangeMeridiem('AM', e)\n }\n onKeyDown={isAmCurrent ? handleCurrMeridiemOnKeyDown : undefined}\n innerRef={isAmCurrent ? handleCurrMeridiemRef : undefined}\n tabIndex={isAmCurrent ? 0 : -1}\n type=\"button\"\n getOwnerProps={getProps}\n >\n AM\n </StyledTimeBtn>\n </StyledWheelListItem>\n <StyledWheelListItem isCurrentListItem={isPmCurrent}>\n <StyledTimeBtn\n {...styledPropsCurrentPmMeridiem}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL[isPmCurrent ? 'CURRENT_MERIDIEM' : 'MERIDIEM']}\n selected={currMeridiem === 'PM'}\n aria-label={`PM ${isPmCurrent ? 'selected' : ''}`}\n aria-disabled={isDisabledPm || readOnly}\n buttonType=\"raw\"\n size=\"m\"\n onClick={(e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) =>\n handleTimeWheelBtnChangeMeridiem('PM', e)\n }\n onKeyDown={isPmCurrent ? handleCurrMeridiemOnKeyDown : undefined}\n innerRef={isPmCurrent ? handleCurrMeridiemRef : undefined}\n tabIndex={isPmCurrent ? 0 : -1}\n type=\"button\"\n getOwnerProps={getProps}\n >\n PM\n </StyledTimeBtn>\n </StyledWheelListItem>\n {currMeridiem === 'PM' ? <StyledWheelListItem /> : null}\n <StyledWheelListItem>\n <StyledWheelChangeTimeBtn\n {...styledPropsNextMeridiem}\n aria-label=\"set pm meridiem\"\n aria-disabled={isDisabledPm || readOnly}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL.NEXT_MERIDIEM}\n buttonType=\"raw\"\n size=\"m\"\n onClick={(e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) =>\n handleTimeWheelBtnChangeMeridiem('PM', e)\n }\n innerRef={nextMeridiemBtnRef}\n tabIndex={-1}\n type=\"button\"\n getOwnerProps={getProps}\n >\n <ChevronSmallDown color={['brand-primary', '700']} />\n </StyledWheelChangeTimeBtn>\n </StyledWheelListItem>\n </StyledWheelList>\n );\n};\n\nexport default MeridiemList;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -60,7 +60,8 @@ const MinutesList = () => {
60
60
  minutes,
61
61
  currFocusDescriber,
62
62
  latestInteractionRegion,
63
- getProps
63
+ getProps,
64
+ props: { readOnly }
64
65
  } = (0, import_react.useContext)(import_ControlledDateTimePickerCTX.ControlledDateTimePickerContext);
65
66
  const handleCurrMeridiemRef = (0, import_react.useCallback)(
66
67
  (ButtonDomNode) => {
@@ -83,6 +84,7 @@ const MinutesList = () => {
83
84
  innerRef: prevMinutesBtnRef,
84
85
  tabIndex: -1,
85
86
  "data-testid": import_ControlledDateTimePickerDatatestid.ControlledDateTimePickerDatatestid.TIMEWHEEL.PREV_MINUTE,
87
+ "aria-disabled": readOnly,
86
88
  type: "button",
87
89
  getOwnerProps: getProps,
88
90
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.ChevronSmallUp, { color: ["brand-primary", "700"] })
@@ -113,7 +115,7 @@ const MinutesList = () => {
113
115
  "data-testid": import_ControlledDateTimePickerDatatestid.ControlledDateTimePickerDatatestid.TIMEWHEEL[isCurrentListItem ? "CURRENT_MINUTE" : "MINUTE"],
114
116
  selected: minutes.length === 2 && (0, import_numberHelpers.convertToPositiveNumberIfPossible)(minutesString) === currMinuteNum,
115
117
  "aria-label": `${minutesString} minutes`,
116
- "aria-disabled": isDisabled,
118
+ "aria-disabled": isDisabled || readOnly,
117
119
  buttonType: "raw",
118
120
  size: "m",
119
121
  onClick: (e) => handleTimeWheelBtnChangeMinutes(minutesString, e),
@@ -138,6 +140,7 @@ const MinutesList = () => {
138
140
  innerRef: nextMinutesBtnRef,
139
141
  "data-testid": import_ControlledDateTimePickerDatatestid.ControlledDateTimePickerDatatestid.TIMEWHEEL.NEXT_MINUTE,
140
142
  tabIndex: -1,
143
+ "aria-disabled": readOnly,
141
144
  type: "button",
142
145
  getOwnerProps: getProps,
143
146
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.ChevronSmallDown, { color: ["brand-primary", "700"] })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/parts/Pickers/TimeWheel/MinutesList.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable complexity */\nimport React, { useContext, useCallback } from 'react';\nimport { ChevronSmallUp, ChevronSmallDown } from '@elliemae/ds-icons';\nimport { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';\nimport { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';\nimport { convertToPositiveNumberIfPossible } from '../../../utils/numberHelpers.js';\nimport { StyledWheelList, StyledWheelListItem, StyledTimeBtn, StyledWheelChangeTimeBtn } from './Styleds.js';\nimport { TimeWheelContext } from './TimeWheelContext.js';\n\nexport const MinutesList = (): JSX.Element => {\n const {\n currHourNum,\n currMinuteNum,\n currMeridiem,\n visibleMinutes,\n handlePrevMinute,\n handleNextMinute,\n handleTimeWheelBtnChangeMinutes,\n handleCurrMinutesOnKeyDown,\n } = useContext(TimeWheelContext);\n const {\n prevMinutesBtnRef,\n currMinutesBtnRef,\n nextMinutesBtnRef,\n getIsDisabledTime,\n minutes,\n currFocusDescriber,\n latestInteractionRegion,\n getProps,\n } = useContext(ControlledDateTimePickerContext);\n\n const handleCurrMeridiemRef = useCallback(\n (ButtonDomNode: HTMLButtonElement) => {\n setTimeout(() => {\n currMinutesBtnRef.current = ButtonDomNode;\n if (latestInteractionRegion === 'timewheel' && currFocusDescriber === 'timewheel-curr-minute')\n ButtonDomNode?.focus?.();\n });\n },\n [currFocusDescriber, latestInteractionRegion, currMinutesBtnRef],\n );\n return (\n <StyledWheelList>\n <StyledWheelListItem>\n <StyledWheelChangeTimeBtn\n aria-label=\"subtract one minute\"\n buttonType=\"raw\"\n size=\"m\"\n onClick={handlePrevMinute}\n innerRef={prevMinutesBtnRef}\n tabIndex={-1}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL.PREV_MINUTE}\n type=\"button\"\n getOwnerProps={getProps}\n >\n <ChevronSmallUp color={['brand-primary', '700']} />\n </StyledWheelChangeTimeBtn>\n </StyledWheelListItem>\n {visibleMinutes.map((minutesString) => {\n const key = `timewheel-minutes-${minutesString || ''}`;\n if (!minutesString) return <StyledWheelListItem key={key} />;\n const currMinutesTimeString = `${currHourNum}:${minutesString} ${currMeridiem}`;\n const isEmptyCurrValueCurrentListItem =\n !minutes && convertToPositiveNumberIfPossible(minutesString) === currMinuteNum;\n const isCurrentListItem = isEmptyCurrValueCurrentListItem || minutes === minutesString;\n const isDisabled = getIsDisabledTime(currMinutesTimeString);\n\n const tabIndex = isCurrentListItem ? 0 : -1;\n const btnProps = {\n onKeyDown: isCurrentListItem ? handleCurrMinutesOnKeyDown : undefined,\n innerRef: isCurrentListItem ? handleCurrMeridiemRef : undefined,\n };\n const styledProps = { isCurrentListItem, isDisabled };\n return (\n <StyledWheelListItem\n key={key}\n isCurrentListItem={isCurrentListItem}\n selected={convertToPositiveNumberIfPossible(minutesString) === currMinuteNum}\n >\n <StyledTimeBtn\n {...styledProps}\n data-testid={\n ControlledDateTimePickerDatatestid.TIMEWHEEL[isCurrentListItem ? 'CURRENT_MINUTE' : 'MINUTE']\n }\n selected={minutes.length === 2 && convertToPositiveNumberIfPossible(minutesString) === currMinuteNum}\n aria-label={`${minutesString} minutes`}\n aria-disabled={isDisabled}\n buttonType=\"raw\"\n size=\"m\"\n onClick={(e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) =>\n handleTimeWheelBtnChangeMinutes(minutesString, e)\n }\n tabIndex={tabIndex}\n type=\"button\"\n {...btnProps}\n getOwnerProps={getProps}\n >\n {minutesString}\n </StyledTimeBtn>\n </StyledWheelListItem>\n );\n })}\n <StyledWheelListItem>\n <StyledWheelChangeTimeBtn\n aria-label=\"add one minute\"\n buttonType=\"raw\"\n size=\"m\"\n onClick={handleNextMinute}\n innerRef={nextMinutesBtnRef}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL.NEXT_MINUTE}\n tabIndex={-1}\n type=\"button\"\n getOwnerProps={getProps}\n >\n <ChevronSmallDown color={['brand-primary', '700']} />\n </StyledWheelChangeTimeBtn>\n </StyledWheelListItem>\n </StyledWheelList>\n );\n};\n\nexport default MinutesList;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable complexity */\nimport React, { useContext, useCallback } from 'react';\nimport { ChevronSmallUp, ChevronSmallDown } from '@elliemae/ds-icons';\nimport { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';\nimport { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';\nimport { convertToPositiveNumberIfPossible } from '../../../utils/numberHelpers.js';\nimport { StyledWheelList, StyledWheelListItem, StyledTimeBtn, StyledWheelChangeTimeBtn } from './Styleds.js';\nimport { TimeWheelContext } from './TimeWheelContext.js';\n\nexport const MinutesList = (): JSX.Element => {\n const {\n currHourNum,\n currMinuteNum,\n currMeridiem,\n visibleMinutes,\n handlePrevMinute,\n handleNextMinute,\n handleTimeWheelBtnChangeMinutes,\n handleCurrMinutesOnKeyDown,\n } = useContext(TimeWheelContext);\n const {\n prevMinutesBtnRef,\n currMinutesBtnRef,\n nextMinutesBtnRef,\n getIsDisabledTime,\n minutes,\n currFocusDescriber,\n latestInteractionRegion,\n getProps,\n props: { readOnly },\n } = useContext(ControlledDateTimePickerContext);\n\n const handleCurrMeridiemRef = useCallback(\n (ButtonDomNode: HTMLButtonElement) => {\n setTimeout(() => {\n currMinutesBtnRef.current = ButtonDomNode;\n if (latestInteractionRegion === 'timewheel' && currFocusDescriber === 'timewheel-curr-minute')\n ButtonDomNode?.focus?.();\n });\n },\n [currFocusDescriber, latestInteractionRegion, currMinutesBtnRef],\n );\n return (\n <StyledWheelList>\n <StyledWheelListItem>\n <StyledWheelChangeTimeBtn\n aria-label=\"subtract one minute\"\n buttonType=\"raw\"\n size=\"m\"\n onClick={handlePrevMinute}\n innerRef={prevMinutesBtnRef}\n tabIndex={-1}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL.PREV_MINUTE}\n aria-disabled={readOnly}\n type=\"button\"\n getOwnerProps={getProps}\n >\n <ChevronSmallUp color={['brand-primary', '700']} />\n </StyledWheelChangeTimeBtn>\n </StyledWheelListItem>\n {visibleMinutes.map((minutesString) => {\n const key = `timewheel-minutes-${minutesString || ''}`;\n if (!minutesString) return <StyledWheelListItem key={key} />;\n const currMinutesTimeString = `${currHourNum}:${minutesString} ${currMeridiem}`;\n const isEmptyCurrValueCurrentListItem =\n !minutes && convertToPositiveNumberIfPossible(minutesString) === currMinuteNum;\n const isCurrentListItem = isEmptyCurrValueCurrentListItem || minutes === minutesString;\n const isDisabled = getIsDisabledTime(currMinutesTimeString);\n\n const tabIndex = isCurrentListItem ? 0 : -1;\n const btnProps = {\n onKeyDown: isCurrentListItem ? handleCurrMinutesOnKeyDown : undefined,\n innerRef: isCurrentListItem ? handleCurrMeridiemRef : undefined,\n };\n const styledProps = { isCurrentListItem, isDisabled };\n return (\n <StyledWheelListItem\n key={key}\n isCurrentListItem={isCurrentListItem}\n selected={convertToPositiveNumberIfPossible(minutesString) === currMinuteNum}\n >\n <StyledTimeBtn\n {...styledProps}\n data-testid={\n ControlledDateTimePickerDatatestid.TIMEWHEEL[isCurrentListItem ? 'CURRENT_MINUTE' : 'MINUTE']\n }\n selected={minutes.length === 2 && convertToPositiveNumberIfPossible(minutesString) === currMinuteNum}\n aria-label={`${minutesString} minutes`}\n aria-disabled={isDisabled || readOnly}\n buttonType=\"raw\"\n size=\"m\"\n onClick={(e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) =>\n handleTimeWheelBtnChangeMinutes(minutesString, e)\n }\n tabIndex={tabIndex}\n type=\"button\"\n {...btnProps}\n getOwnerProps={getProps}\n >\n {minutesString}\n </StyledTimeBtn>\n </StyledWheelListItem>\n );\n })}\n <StyledWheelListItem>\n <StyledWheelChangeTimeBtn\n aria-label=\"add one minute\"\n buttonType=\"raw\"\n size=\"m\"\n onClick={handleNextMinute}\n innerRef={nextMinutesBtnRef}\n data-testid={ControlledDateTimePickerDatatestid.TIMEWHEEL.NEXT_MINUTE}\n tabIndex={-1}\n aria-disabled={readOnly}\n type=\"button\"\n getOwnerProps={getProps}\n >\n <ChevronSmallDown color={['brand-primary', '700']} />\n </StyledWheelChangeTimeBtn>\n </StyledWheelListItem>\n </StyledWheelList>\n );\n};\n\nexport default MinutesList;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -45,9 +45,14 @@ const getTotalMinuteListWithStep = (step = 1) => {
45
45
  return new Array(length).fill("_").map((_v, i) => (0, import_stringHelpers.prependStringWithPlaceHolders)(`${i * step}`, 2));
46
46
  };
47
47
  const useCurrentDisplayedWheelsLogic = () => {
48
- const { minutesInterval, onTimeWheelOpenStartingTime, hours, minutes, meridiem } = (0, import_react.useContext)(
49
- import_ControlledDateTimePickerCTX.ControlledDateTimePickerContext
50
- );
48
+ const {
49
+ minutesInterval,
50
+ onTimeWheelOpenStartingTime,
51
+ hours,
52
+ minutes,
53
+ meridiem,
54
+ props: { readOnly }
55
+ } = (0, import_react.useContext)(import_ControlledDateTimePickerCTX.ControlledDateTimePickerContext);
51
56
  const { handleChangeHours, handleChangeMinutes, handleChangeMeridiem } = (0, import_useTimeInputs.useTimeInputs)();
52
57
  const { startingHours, startingMinutes, startingMeridiem } = (0, import_react.useMemo)(() => {
53
58
  const startingVals = (0, import_stringHelpers.deconstructValuesFromTimeString)(onTimeWheelOpenStartingTime);
@@ -106,9 +111,10 @@ const useCurrentDisplayedWheelsLogic = () => {
106
111
  }, [currMinuteIndex, totalMinutesList]);
107
112
  const handleTimeWheelBtnChangeHours = (0, import_react.useCallback)(
108
113
  (newHours, e) => {
114
+ if (readOnly) return;
109
115
  handleChangeHours(newHours, e);
110
116
  },
111
- [handleChangeHours]
117
+ [readOnly, handleChangeHours]
112
118
  );
113
119
  const handleChangeCurrHour = (0, import_react.useCallback)(
114
120
  (offset, e) => {
@@ -119,21 +125,24 @@ const useCurrentDisplayedWheelsLogic = () => {
119
125
  );
120
126
  const handlePrevHour = (0, import_react.useCallback)(
121
127
  (e) => {
128
+ if (readOnly) return;
122
129
  handleChangeCurrHour(-1, e);
123
130
  },
124
- [handleChangeCurrHour]
131
+ [readOnly, handleChangeCurrHour]
125
132
  );
126
133
  const handleNextHour = (0, import_react.useCallback)(
127
134
  (e) => {
135
+ if (readOnly) return;
128
136
  handleChangeCurrHour(1, e);
129
137
  },
130
- [handleChangeCurrHour]
138
+ [readOnly, handleChangeCurrHour]
131
139
  );
132
140
  const handleTimeWheelBtnChangeMinutes = (0, import_react.useCallback)(
133
141
  (newMinutes, e) => {
142
+ if (readOnly) return;
134
143
  handleChangeMinutes(newMinutes, e);
135
144
  },
136
- [handleChangeMinutes]
145
+ [readOnly, handleChangeMinutes]
137
146
  );
138
147
  const handleChangeCurrMinute = (0, import_react.useCallback)(
139
148
  (offset, e) => {
@@ -144,21 +153,24 @@ const useCurrentDisplayedWheelsLogic = () => {
144
153
  );
145
154
  const handlePrevMinute = (0, import_react.useCallback)(
146
155
  (e) => {
156
+ if (readOnly) return;
147
157
  handleChangeCurrMinute(-minutesInterval, e);
148
158
  },
149
- [handleChangeCurrMinute, minutesInterval]
159
+ [readOnly, handleChangeCurrMinute, minutesInterval]
150
160
  );
151
161
  const handleNextMinute = (0, import_react.useCallback)(
152
162
  (e) => {
163
+ if (readOnly) return;
153
164
  handleChangeCurrMinute(minutesInterval, e);
154
165
  },
155
- [handleChangeCurrMinute, minutesInterval]
166
+ [readOnly, handleChangeCurrMinute, minutesInterval]
156
167
  );
157
168
  const handleTimeWheelBtnChangeMeridiem = (0, import_react.useCallback)(
158
169
  (newMeridiem, e) => {
170
+ if (readOnly) return;
159
171
  handleChangeMeridiem(newMeridiem, e);
160
172
  },
161
- [handleChangeMeridiem]
173
+ [readOnly, handleChangeMeridiem]
162
174
  );
163
175
  return (0, import_react.useMemo)(
164
176
  () => ({
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useMemo, useCallback, useContext } from 'react';\nimport { useTimeInputs } from '../../TimeInputs/useTimeInputs.js';\nimport { convertToPositiveNumberIfPossible } from '../../../utils/numberHelpers.js';\nimport { prependStringWithPlaceHolders, deconstructValuesFromTimeString } from '../../../utils/stringHelpers.js';\nimport { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';\nimport type { DSControlledDateTimePickerT } from '../../../react-desc-prop-types.js';\n\nconst totalHoursList = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];\nconst hoursInterval = 1; // using this just to unify the logic between how hours and minutes are handled\nconst hoursStartPositionOffset = 1; // if array start from 01, this is 1, if start from 02, it's 2 ...\n\nconst getTotalMinuteListWithStep = (step = 1) => {\n const length = Math.ceil(60 / step);\n return new Array(length).fill('_').map((_v, i) => prependStringWithPlaceHolders(`${i * step}`, 2));\n};\ninterface UseCurrentDisplayedWheelsLogic {\n currHourNum: number;\n visibleHours: (string | null)[];\n handlePrevHour: (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;\n handleNextHour: (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;\n handleTimeWheelBtnChangeHours: (newVal: string, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;\n currMinuteNum: number;\n visibleMinutes: (string | null)[];\n handlePrevMinute: (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;\n handleNextMinute: (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;\n handleTimeWheelBtnChangeMinutes: (newVal: string, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;\n handleTimeWheelBtnChangeMeridiem: (\n newMeridiem: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n ) => void;\n currMeridiem: string;\n}\nexport const useCurrentDisplayedWheelsLogic = (): UseCurrentDisplayedWheelsLogic => {\n const { minutesInterval, onTimeWheelOpenStartingTime, hours, minutes, meridiem } = useContext(\n ControlledDateTimePickerContext,\n );\n const { handleChangeHours, handleChangeMinutes, handleChangeMeridiem } = useTimeInputs();\n const { startingHours, startingMinutes, startingMeridiem } = useMemo(() => {\n const startingVals = deconstructValuesFromTimeString(onTimeWheelOpenStartingTime);\n return {\n startingHours: startingVals.hours,\n startingMinutes: startingVals.minutes,\n startingMeridiem: startingVals.meridiem,\n };\n }, [onTimeWheelOpenStartingTime]);\n\n const currHourNum = useMemo(() => {\n const hoursAsNum = convertToPositiveNumberIfPossible(hours);\n if (hours && hoursAsNum !== -1) {\n return hoursAsNum;\n }\n const startingHoursAsNum = convertToPositiveNumberIfPossible(startingHours);\n if (startingHoursAsNum === -1) return 1;\n return startingHoursAsNum;\n }, [hours, startingHours]);\n\n const currMinuteNum = useMemo(() => {\n const minutesAsNum = convertToPositiveNumberIfPossible(minutes);\n if (minutes && minutesAsNum !== -1) {\n return minutesAsNum;\n }\n const startingMinutesAsNum = convertToPositiveNumberIfPossible(startingMinutes);\n if (startingMinutesAsNum === -1) return 0;\n return startingMinutesAsNum;\n }, [minutes, startingMinutes]);\n\n const currMeridiem = useMemo(() => {\n if (meridiem !== '') return meridiem;\n if (startingMeridiem !== '') return startingMeridiem;\n return 'AM';\n }, [meridiem, startingMeridiem]);\n\n const totalMinutesList = useMemo(() => getTotalMinuteListWithStep(minutesInterval), [minutesInterval]);\n const currMinuteIndex = useMemo(() => Math.floor(currMinuteNum / minutesInterval), [currMinuteNum, minutesInterval]);\n const currHoursIndex = useMemo(\n () => Math.floor(currHourNum / hoursInterval) - hoursStartPositionOffset,\n [currHourNum],\n );\n\n const visibleHours = useMemo(() => {\n const newHours = [];\n if (currHoursIndex >= 1) newHours.push(totalHoursList[currHoursIndex - 1]);\n else newHours.push(null);\n newHours.push(totalHoursList[currHoursIndex]);\n if (currHoursIndex <= 11) newHours.push(totalHoursList[currHoursIndex + 1]);\n else newHours.push(null);\n\n return newHours;\n }, [currHoursIndex]);\n const visibleMinutes = useMemo(() => {\n const newMinutes = [];\n\n if (currMinuteIndex >= 1) newMinutes.push(totalMinutesList[currMinuteIndex - 1]);\n else newMinutes.push(null);\n newMinutes.push(totalMinutesList[currMinuteIndex]);\n if (currMinuteIndex < totalMinutesList.length) newMinutes.push(totalMinutesList[currMinuteIndex + 1]);\n else newMinutes.push(null);\n return newMinutes;\n }, [currMinuteIndex, totalMinutesList]);\n\n const handleTimeWheelBtnChangeHours = useCallback(\n (newHours: string, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n handleChangeHours(newHours, e);\n },\n [handleChangeHours],\n );\n const handleChangeCurrHour = useCallback(\n (offset: number, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n const newH = currHourNum + offset;\n if (newH > 0 && newH <= 12) handleChangeHours(prependStringWithPlaceHolders(`${newH}`, 2), e);\n },\n [currHourNum, handleChangeHours],\n );\n const handlePrevHour = useCallback(\n (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n handleChangeCurrHour(-1, e);\n },\n [handleChangeCurrHour],\n );\n const handleNextHour = useCallback(\n (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n handleChangeCurrHour(1, e);\n },\n [handleChangeCurrHour],\n );\n\n const handleTimeWheelBtnChangeMinutes = useCallback(\n (newMinutes: string, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n handleChangeMinutes(newMinutes, e);\n },\n [handleChangeMinutes],\n );\n const handleChangeCurrMinute = useCallback(\n (offset: number, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n const newM = currMinuteNum + offset;\n if (newM >= 0 && newM <= 59) handleChangeMinutes(prependStringWithPlaceHolders(`${newM}`, 2), e);\n },\n [currMinuteNum, handleChangeMinutes],\n );\n const handlePrevMinute = useCallback(\n (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n handleChangeCurrMinute(-minutesInterval, e);\n },\n [handleChangeCurrMinute, minutesInterval],\n );\n const handleNextMinute = useCallback(\n (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n handleChangeCurrMinute(minutesInterval, e);\n },\n [handleChangeCurrMinute, minutesInterval],\n );\n\n const handleTimeWheelBtnChangeMeridiem = useCallback(\n (newMeridiem: string, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n handleChangeMeridiem(newMeridiem, e);\n },\n [handleChangeMeridiem],\n );\n\n return useMemo(\n () => ({\n currHourNum,\n visibleHours,\n handlePrevHour,\n handleNextHour,\n handleTimeWheelBtnChangeHours,\n currMinuteNum,\n visibleMinutes,\n handlePrevMinute,\n handleNextMinute,\n handleTimeWheelBtnChangeMinutes,\n handleTimeWheelBtnChangeMeridiem,\n currMeridiem,\n }),\n [\n currHourNum,\n currMinuteNum,\n currMeridiem,\n handleNextHour,\n handleNextMinute,\n handlePrevHour,\n handlePrevMinute,\n handleTimeWheelBtnChangeHours,\n handleTimeWheelBtnChangeMeridiem,\n handleTimeWheelBtnChangeMinutes,\n visibleHours,\n visibleMinutes,\n ],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useMemo, useCallback, useContext } from 'react';\nimport { useTimeInputs } from '../../TimeInputs/useTimeInputs.js';\nimport { convertToPositiveNumberIfPossible } from '../../../utils/numberHelpers.js';\nimport { prependStringWithPlaceHolders, deconstructValuesFromTimeString } from '../../../utils/stringHelpers.js';\nimport { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';\nimport type { DSControlledDateTimePickerT } from '../../../react-desc-prop-types.js';\n\nconst totalHoursList = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];\nconst hoursInterval = 1; // using this just to unify the logic between how hours and minutes are handled\nconst hoursStartPositionOffset = 1; // if array start from 01, this is 1, if start from 02, it's 2 ...\n\nconst getTotalMinuteListWithStep = (step = 1) => {\n const length = Math.ceil(60 / step);\n return new Array(length).fill('_').map((_v, i) => prependStringWithPlaceHolders(`${i * step}`, 2));\n};\ninterface UseCurrentDisplayedWheelsLogic {\n currHourNum: number;\n visibleHours: (string | null)[];\n handlePrevHour: (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;\n handleNextHour: (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;\n handleTimeWheelBtnChangeHours: (newVal: string, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;\n currMinuteNum: number;\n visibleMinutes: (string | null)[];\n handlePrevMinute: (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;\n handleNextMinute: (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;\n handleTimeWheelBtnChangeMinutes: (newVal: string, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;\n handleTimeWheelBtnChangeMeridiem: (\n newMeridiem: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n ) => void;\n currMeridiem: string;\n}\nexport const useCurrentDisplayedWheelsLogic = (): UseCurrentDisplayedWheelsLogic => {\n const {\n minutesInterval,\n onTimeWheelOpenStartingTime,\n hours,\n minutes,\n meridiem,\n props: { readOnly },\n } = useContext(ControlledDateTimePickerContext);\n const { handleChangeHours, handleChangeMinutes, handleChangeMeridiem } = useTimeInputs();\n const { startingHours, startingMinutes, startingMeridiem } = useMemo(() => {\n const startingVals = deconstructValuesFromTimeString(onTimeWheelOpenStartingTime);\n return {\n startingHours: startingVals.hours,\n startingMinutes: startingVals.minutes,\n startingMeridiem: startingVals.meridiem,\n };\n }, [onTimeWheelOpenStartingTime]);\n\n const currHourNum = useMemo(() => {\n const hoursAsNum = convertToPositiveNumberIfPossible(hours);\n if (hours && hoursAsNum !== -1) {\n return hoursAsNum;\n }\n const startingHoursAsNum = convertToPositiveNumberIfPossible(startingHours);\n if (startingHoursAsNum === -1) return 1;\n return startingHoursAsNum;\n }, [hours, startingHours]);\n\n const currMinuteNum = useMemo(() => {\n const minutesAsNum = convertToPositiveNumberIfPossible(minutes);\n if (minutes && minutesAsNum !== -1) {\n return minutesAsNum;\n }\n const startingMinutesAsNum = convertToPositiveNumberIfPossible(startingMinutes);\n if (startingMinutesAsNum === -1) return 0;\n return startingMinutesAsNum;\n }, [minutes, startingMinutes]);\n\n const currMeridiem = useMemo(() => {\n if (meridiem !== '') return meridiem;\n if (startingMeridiem !== '') return startingMeridiem;\n return 'AM';\n }, [meridiem, startingMeridiem]);\n\n const totalMinutesList = useMemo(() => getTotalMinuteListWithStep(minutesInterval), [minutesInterval]);\n const currMinuteIndex = useMemo(() => Math.floor(currMinuteNum / minutesInterval), [currMinuteNum, minutesInterval]);\n const currHoursIndex = useMemo(\n () => Math.floor(currHourNum / hoursInterval) - hoursStartPositionOffset,\n [currHourNum],\n );\n\n const visibleHours = useMemo(() => {\n const newHours = [];\n if (currHoursIndex >= 1) newHours.push(totalHoursList[currHoursIndex - 1]);\n else newHours.push(null);\n newHours.push(totalHoursList[currHoursIndex]);\n if (currHoursIndex <= 11) newHours.push(totalHoursList[currHoursIndex + 1]);\n else newHours.push(null);\n\n return newHours;\n }, [currHoursIndex]);\n const visibleMinutes = useMemo(() => {\n const newMinutes = [];\n\n if (currMinuteIndex >= 1) newMinutes.push(totalMinutesList[currMinuteIndex - 1]);\n else newMinutes.push(null);\n newMinutes.push(totalMinutesList[currMinuteIndex]);\n if (currMinuteIndex < totalMinutesList.length) newMinutes.push(totalMinutesList[currMinuteIndex + 1]);\n else newMinutes.push(null);\n return newMinutes;\n }, [currMinuteIndex, totalMinutesList]);\n\n const handleTimeWheelBtnChangeHours = useCallback(\n (newHours: string, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n if (readOnly) return;\n handleChangeHours(newHours, e);\n },\n [readOnly, handleChangeHours],\n );\n const handleChangeCurrHour = useCallback(\n (offset: number, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n const newH = currHourNum + offset;\n if (newH > 0 && newH <= 12) handleChangeHours(prependStringWithPlaceHolders(`${newH}`, 2), e);\n },\n [currHourNum, handleChangeHours],\n );\n const handlePrevHour = useCallback(\n (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n if (readOnly) return;\n handleChangeCurrHour(-1, e);\n },\n [readOnly, handleChangeCurrHour],\n );\n const handleNextHour = useCallback(\n (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n if (readOnly) return;\n handleChangeCurrHour(1, e);\n },\n [readOnly, handleChangeCurrHour],\n );\n\n const handleTimeWheelBtnChangeMinutes = useCallback(\n (newMinutes: string, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n if (readOnly) return;\n handleChangeMinutes(newMinutes, e);\n },\n [readOnly, handleChangeMinutes],\n );\n const handleChangeCurrMinute = useCallback(\n (offset: number, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n const newM = currMinuteNum + offset;\n if (newM >= 0 && newM <= 59) handleChangeMinutes(prependStringWithPlaceHolders(`${newM}`, 2), e);\n },\n [currMinuteNum, handleChangeMinutes],\n );\n const handlePrevMinute = useCallback(\n (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n if (readOnly) return;\n handleChangeCurrMinute(-minutesInterval, e);\n },\n [readOnly, handleChangeCurrMinute, minutesInterval],\n );\n const handleNextMinute = useCallback(\n (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n if (readOnly) return;\n handleChangeCurrMinute(minutesInterval, e);\n },\n [readOnly, handleChangeCurrMinute, minutesInterval],\n );\n\n const handleTimeWheelBtnChangeMeridiem = useCallback(\n (newMeridiem: string, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n if (readOnly) return;\n handleChangeMeridiem(newMeridiem, e);\n },\n [readOnly, handleChangeMeridiem],\n );\n\n return useMemo(\n () => ({\n currHourNum,\n visibleHours,\n handlePrevHour,\n handleNextHour,\n handleTimeWheelBtnChangeHours,\n currMinuteNum,\n visibleMinutes,\n handlePrevMinute,\n handleNextMinute,\n handleTimeWheelBtnChangeMinutes,\n handleTimeWheelBtnChangeMeridiem,\n currMeridiem,\n }),\n [\n currHourNum,\n currMinuteNum,\n currMeridiem,\n handleNextHour,\n handleNextMinute,\n handlePrevHour,\n handlePrevMinute,\n handleTimeWheelBtnChangeHours,\n handleTimeWheelBtnChangeMeridiem,\n handleTimeWheelBtnChangeMinutes,\n visibleHours,\n visibleMinutes,\n ],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEvB,mBAAiD;AACjD,2BAA8B;AAC9B,2BAAkD;AAClD,2BAA+E;AAC/E,yCAAgD;AAGhD,MAAM,iBAAiB,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAC9F,MAAM,gBAAgB;AACtB,MAAM,2BAA2B;AAEjC,MAAM,6BAA6B,CAAC,OAAO,MAAM;AAC/C,QAAM,SAAS,KAAK,KAAK,KAAK,IAAI;AAClC,SAAO,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,IAAI,CAAC,IAAI,UAAM,oDAA8B,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC;AACnG;AAkBO,MAAM,iCAAiC,MAAsC;AAClF,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,EAAE,SAAS;AAAA,EACpB,QAAI,yBAAW,kEAA+B;AAC9C,QAAM,EAAE,mBAAmB,qBAAqB,qBAAqB,QAAI,oCAAc;AACvF,QAAM,EAAE,eAAe,iBAAiB,iBAAiB,QAAI,sBAAQ,MAAM;AACzE,UAAM,mBAAe,sDAAgC,2BAA2B;AAChF,WAAO;AAAA,MACL,eAAe,aAAa;AAAA,MAC5B,iBAAiB,aAAa;AAAA,MAC9B,kBAAkB,aAAa;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,2BAA2B,CAAC;AAEhC,QAAM,kBAAc,sBAAQ,MAAM;AAChC,UAAM,iBAAa,wDAAkC,KAAK;AAC1D,QAAI,SAAS,eAAe,IAAI;AAC9B,aAAO;AAAA,IACT;AACA,UAAM,yBAAqB,wDAAkC,aAAa;AAC1E,QAAI,uBAAuB,GAAI,QAAO;AACtC,WAAO;AAAA,EACT,GAAG,CAAC,OAAO,aAAa,CAAC;AAEzB,QAAM,oBAAgB,sBAAQ,MAAM;AAClC,UAAM,mBAAe,wDAAkC,OAAO;AAC9D,QAAI,WAAW,iBAAiB,IAAI;AAClC,aAAO;AAAA,IACT;AACA,UAAM,2BAAuB,wDAAkC,eAAe;AAC9E,QAAI,yBAAyB,GAAI,QAAO;AACxC,WAAO;AAAA,EACT,GAAG,CAAC,SAAS,eAAe,CAAC;AAE7B,QAAM,mBAAe,sBAAQ,MAAM;AACjC,QAAI,aAAa,GAAI,QAAO;AAC5B,QAAI,qBAAqB,GAAI,QAAO;AACpC,WAAO;AAAA,EACT,GAAG,CAAC,UAAU,gBAAgB,CAAC;AAE/B,QAAM,uBAAmB,sBAAQ,MAAM,2BAA2B,eAAe,GAAG,CAAC,eAAe,CAAC;AACrG,QAAM,sBAAkB,sBAAQ,MAAM,KAAK,MAAM,gBAAgB,eAAe,GAAG,CAAC,eAAe,eAAe,CAAC;AACnH,QAAM,qBAAiB;AAAA,IACrB,MAAM,KAAK,MAAM,cAAc,aAAa,IAAI;AAAA,IAChD,CAAC,WAAW;AAAA,EACd;AAEA,QAAM,mBAAe,sBAAQ,MAAM;AACjC,UAAM,WAAW,CAAC;AAClB,QAAI,kBAAkB,EAAG,UAAS,KAAK,eAAe,iBAAiB,CAAC,CAAC;AAAA,QACpE,UAAS,KAAK,IAAI;AACvB,aAAS,KAAK,eAAe,cAAc,CAAC;AAC5C,QAAI,kBAAkB,GAAI,UAAS,KAAK,eAAe,iBAAiB,CAAC,CAAC;AAAA,QACrE,UAAS,KAAK,IAAI;AAEvB,WAAO;AAAA,EACT,GAAG,CAAC,cAAc,CAAC;AACnB,QAAM,qBAAiB,sBAAQ,MAAM;AACnC,UAAM,aAAa,CAAC;AAEpB,QAAI,mBAAmB,EAAG,YAAW,KAAK,iBAAiB,kBAAkB,CAAC,CAAC;AAAA,QAC1E,YAAW,KAAK,IAAI;AACzB,eAAW,KAAK,iBAAiB,eAAe,CAAC;AACjD,QAAI,kBAAkB,iBAAiB,OAAQ,YAAW,KAAK,iBAAiB,kBAAkB,CAAC,CAAC;AAAA,QAC/F,YAAW,KAAK,IAAI;AACzB,WAAO;AAAA,EACT,GAAG,CAAC,iBAAiB,gBAAgB,CAAC;AAEtC,QAAM,oCAAgC;AAAA,IACpC,CAAC,UAAkB,MAA+D;AAChF,UAAI,SAAU;AACd,wBAAkB,UAAU,CAAC;AAAA,IAC/B;AAAA,IACA,CAAC,UAAU,iBAAiB;AAAA,EAC9B;AACA,QAAM,2BAAuB;AAAA,IAC3B,CAAC,QAAgB,MAA+D;AAC9E,YAAM,OAAO,cAAc;AAC3B,UAAI,OAAO,KAAK,QAAQ,GAAI,uBAAkB,oDAA8B,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;AAAA,IAC9F;AAAA,IACA,CAAC,aAAa,iBAAiB;AAAA,EACjC;AACA,QAAM,qBAAiB;AAAA,IACrB,CAAC,MAA+D;AAC9D,UAAI,SAAU;AACd,2BAAqB,IAAI,CAAC;AAAA,IAC5B;AAAA,IACA,CAAC,UAAU,oBAAoB;AAAA,EACjC;AACA,QAAM,qBAAiB;AAAA,IACrB,CAAC,MAA+D;AAC9D,UAAI,SAAU;AACd,2BAAqB,GAAG,CAAC;AAAA,IAC3B;AAAA,IACA,CAAC,UAAU,oBAAoB;AAAA,EACjC;AAEA,QAAM,sCAAkC;AAAA,IACtC,CAAC,YAAoB,MAA+D;AAClF,UAAI,SAAU;AACd,0BAAoB,YAAY,CAAC;AAAA,IACnC;AAAA,IACA,CAAC,UAAU,mBAAmB;AAAA,EAChC;AACA,QAAM,6BAAyB;AAAA,IAC7B,CAAC,QAAgB,MAA+D;AAC9E,YAAM,OAAO,gBAAgB;AAC7B,UAAI,QAAQ,KAAK,QAAQ,GAAI,yBAAoB,oDAA8B,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;AAAA,IACjG;AAAA,IACA,CAAC,eAAe,mBAAmB;AAAA,EACrC;AACA,QAAM,uBAAmB;AAAA,IACvB,CAAC,MAA+D;AAC9D,UAAI,SAAU;AACd,6BAAuB,CAAC,iBAAiB,CAAC;AAAA,IAC5C;AAAA,IACA,CAAC,UAAU,wBAAwB,eAAe;AAAA,EACpD;AACA,QAAM,uBAAmB;AAAA,IACvB,CAAC,MAA+D;AAC9D,UAAI,SAAU;AACd,6BAAuB,iBAAiB,CAAC;AAAA,IAC3C;AAAA,IACA,CAAC,UAAU,wBAAwB,eAAe;AAAA,EACpD;AAEA,QAAM,uCAAmC;AAAA,IACvC,CAAC,aAAqB,MAA+D;AACnF,UAAI,SAAU;AACd,2BAAqB,aAAa,CAAC;AAAA,IACrC;AAAA,IACA,CAAC,UAAU,oBAAoB;AAAA,EACjC;AAEA,aAAO;AAAA,IACL,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -42,6 +42,7 @@ const useKeyboardHandlers = ({ currentDisplayedTimeWheelLogic }) => {
42
42
  isWithDateInputs,
43
43
  isWithCalendarToo,
44
44
  isControllerOnly,
45
+ props: { readOnly },
45
46
  trackFocusCalendarPrevMonth,
46
47
  trackFocusTimewheelCurrHour,
47
48
  trackFocusTimewheelCurrMinute,
@@ -88,10 +89,12 @@ const useKeyboardHandlers = ({ currentDisplayedTimeWheelLogic }) => {
88
89
  if (["Home", "End", "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"].includes(key)) e.stopPropagation();
89
90
  let didTriggerHourChange = false;
90
91
  if (key === "ArrowUp") {
92
+ if (readOnly) return;
91
93
  handlePrevHour(e);
92
94
  didTriggerHourChange = true;
93
95
  }
94
96
  if (key === "ArrowDown") {
97
+ if (readOnly) return;
95
98
  handleNextHour(e);
96
99
  didTriggerHourChange = true;
97
100
  }
@@ -121,7 +124,8 @@ const useKeyboardHandlers = ({ currentDisplayedTimeWheelLogic }) => {
121
124
  trackFocusTimewheelCurrHour,
122
125
  trackFocusTimewheelCurrMeridiem,
123
126
  trackFocusTimewheelCurrMinute,
124
- trackFocusCalendarMetafocusedDay
127
+ trackFocusCalendarMetafocusedDay,
128
+ readOnly
125
129
  ]
126
130
  );
127
131
  const handleCurrMinutesOnKeyDown = (0, import_react.useCallback)(
@@ -131,10 +135,12 @@ const useKeyboardHandlers = ({ currentDisplayedTimeWheelLogic }) => {
131
135
  if (["Home", "End", "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"].includes(key)) e.stopPropagation();
132
136
  let didTriggerMinuteChange = false;
133
137
  if (key === "ArrowUp") {
138
+ if (readOnly) return;
134
139
  handlePrevMinute(e);
135
140
  didTriggerMinuteChange = true;
136
141
  }
137
142
  if (key === "ArrowDown") {
143
+ if (readOnly) return;
138
144
  handleNextMinute(e);
139
145
  didTriggerMinuteChange = true;
140
146
  }
@@ -155,7 +161,8 @@ const useKeyboardHandlers = ({ currentDisplayedTimeWheelLogic }) => {
155
161
  handleNextMinute,
156
162
  trackFocusTimewheelCurrHour,
157
163
  trackFocusTimewheelCurrMeridiem,
158
- trackFocusTimewheelCurrMinute
164
+ trackFocusTimewheelCurrMinute,
165
+ readOnly
159
166
  ]
160
167
  );
161
168
  const handleCurrMeridiemOnKeyDown = (0, import_react.useCallback)(
@@ -165,10 +172,12 @@ const useKeyboardHandlers = ({ currentDisplayedTimeWheelLogic }) => {
165
172
  if (["Home", "End", "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"].includes(key)) e.stopPropagation();
166
173
  let didTriggerMeridiemChange = false;
167
174
  if (key === "ArrowUp") {
175
+ if (readOnly) return;
168
176
  handleTimeWheelBtnChangeMeridiem("AM", e);
169
177
  didTriggerMeridiemChange = true;
170
178
  }
171
179
  if (key === "ArrowDown") {
180
+ if (readOnly) return;
172
181
  handleTimeWheelBtnChangeMeridiem("PM", e);
173
182
  didTriggerMeridiemChange = true;
174
183
  }
@@ -195,7 +204,8 @@ const useKeyboardHandlers = ({ currentDisplayedTimeWheelLogic }) => {
195
204
  trackFocusCalendarPrevMonth,
196
205
  trackFocusTimewheelCurrHour,
197
206
  trackFocusTimewheelCurrMeridiem,
198
- trackFocusTimewheelCurrMinute
207
+ trackFocusTimewheelCurrMinute,
208
+ readOnly
199
209
  ]
200
210
  );
201
211
  return (0, import_react.useMemo)(
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/parts/Pickers/TimeWheel/useKeyboardHandlers.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useMemo, useCallback, useContext } from 'react';\nimport { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';\nimport type { DSControlledDateTimePickerInternalsT } from '../../../sharedTypes.js';\nimport type { useCurrentDisplayedWheelsLogic } from './useCurrentDisplayedWheelsLogic.js';\ninterface UseKeyboardHandlersArgs {\n currentDisplayedTimeWheelLogic: ReturnType<typeof useCurrentDisplayedWheelsLogic>;\n}\ninterface KeyboardHandlersT {\n handleCurrHourOnKeyDown: (e: React.KeyboardEvent) => void;\n handleCurrMinutesOnKeyDown: (e: React.KeyboardEvent) => void;\n handleCurrMeridiemOnKeyDown: (e: React.KeyboardEvent) => void;\n handlePickerIconKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => void;\n}\nexport const useKeyboardHandlers = ({ currentDisplayedTimeWheelLogic }: UseKeyboardHandlersArgs): KeyboardHandlersT => {\n const { handlePrevHour, handleNextHour, handlePrevMinute, handleNextMinute, handleTimeWheelBtnChangeMeridiem } =\n currentDisplayedTimeWheelLogic;\n const {\n withAnyInputs,\n isWithTimeInputs,\n isWithDateInputs,\n isWithCalendarToo,\n isControllerOnly,\n\n trackFocusCalendarPrevMonth,\n trackFocusTimewheelCurrHour,\n trackFocusTimewheelCurrMinute,\n trackFocusTimewheelCurrMeridiem,\n trackFocusFirstSegment,\n trackFocusMeridiemInput,\n trackFocusYearInput,\n trackFocusCalendarMetafocusedDay,\n } = useContext(ControlledDateTimePickerContext);\n\n // const tryToFocusDayRegion = useCallback(() => {\n // if (!focusedDay) {\n // const newFocusDay = daysArray.find(({ isCurrMonthDay }) => isCurrMonthDay);\n // if (newFocusDay) handleFocusMetaDay(newFocusDay);\n // }\n // trackFocusCalendarMetafocusedDay();\n // }, [daysArray, focusedDay, handleFocusMetaDay, trackFocusCalendarMetafocusedDay]);\n\n const onHomeKeyDownInsideTimeWheel = useCallback(() => {\n if (isWithCalendarToo) trackFocusCalendarPrevMonth();\n else trackFocusTimewheelCurrHour();\n }, [isWithCalendarToo, trackFocusCalendarPrevMonth, trackFocusTimewheelCurrHour]);\n const onEndKeyDownInsideTimeWheel = useCallback(() => {\n trackFocusTimewheelCurrMeridiem();\n }, [trackFocusTimewheelCurrMeridiem]);\n\n const onHomeKeyDownTriggerIcon = useCallback(() => {\n trackFocusFirstSegment();\n }, [trackFocusFirstSegment]);\n const handlePickerIconKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown<HTMLButtonElement> = useCallback(\n (e: React.KeyboardEvent) => {\n const { key } = e;\n if (['Home', 'End'].includes(key)) e.preventDefault();\n if (['Home', 'End'].includes(key)) e.stopPropagation();\n if (key === 'Home') onHomeKeyDownTriggerIcon();\n if (key === 'Backspace' && withAnyInputs) {\n if (isWithTimeInputs) trackFocusMeridiemInput();\n else if (isWithDateInputs) trackFocusYearInput();\n }\n },\n [\n isWithDateInputs,\n isWithTimeInputs,\n onHomeKeyDownTriggerIcon,\n trackFocusMeridiemInput,\n trackFocusYearInput,\n withAnyInputs,\n ],\n );\n\n const handleCurrHourOnKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const { key, shiftKey } = e;\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.stopPropagation();\n let didTriggerHourChange = false;\n if (key === 'ArrowUp') {\n handlePrevHour(e);\n didTriggerHourChange = true;\n }\n if (key === 'ArrowDown') {\n handleNextHour(e);\n didTriggerHourChange = true;\n }\n if (key === 'ArrowRight') {\n trackFocusTimewheelCurrMinute();\n }\n if (key === 'Home') onHomeKeyDownInsideTimeWheel();\n if (key === 'End') onEndKeyDownInsideTimeWheel();\n\n // ensure the focus is in the correct button after up/down arrow\n if (didTriggerHourChange) trackFocusTimewheelCurrHour();\n\n // TAB CYCLE IMPLEMENTATION\n if (!isControllerOnly)\n if (key === 'Tab' && shiftKey && !isWithCalendarToo) {\n e.preventDefault();\n trackFocusTimewheelCurrMeridiem();\n }\n\n if (key === 'Tab' && shiftKey && isWithCalendarToo) {\n trackFocusCalendarMetafocusedDay();\n }\n },\n [\n handleNextHour,\n handlePrevHour,\n isControllerOnly,\n isWithCalendarToo,\n onEndKeyDownInsideTimeWheel,\n onHomeKeyDownInsideTimeWheel,\n trackFocusTimewheelCurrHour,\n trackFocusTimewheelCurrMeridiem,\n trackFocusTimewheelCurrMinute,\n trackFocusCalendarMetafocusedDay,\n ],\n );\n const handleCurrMinutesOnKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const { key } = e;\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.stopPropagation();\n let didTriggerMinuteChange = false;\n if (key === 'ArrowUp') {\n handlePrevMinute(e);\n didTriggerMinuteChange = true;\n }\n if (key === 'ArrowDown') {\n handleNextMinute(e);\n didTriggerMinuteChange = true;\n }\n if (key === 'ArrowLeft') {\n trackFocusTimewheelCurrHour();\n }\n if (key === 'ArrowRight') {\n trackFocusTimewheelCurrMeridiem();\n }\n if (key === 'Home') onHomeKeyDownInsideTimeWheel();\n if (key === 'End') onEndKeyDownInsideTimeWheel();\n // ensure the focus is in the correct button after up/down arrow\n if (didTriggerMinuteChange) trackFocusTimewheelCurrMinute();\n },\n [\n onHomeKeyDownInsideTimeWheel,\n onEndKeyDownInsideTimeWheel,\n handlePrevMinute,\n handleNextMinute,\n trackFocusTimewheelCurrHour,\n trackFocusTimewheelCurrMeridiem,\n trackFocusTimewheelCurrMinute,\n ],\n );\n const handleCurrMeridiemOnKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const { key, shiftKey } = e;\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.stopPropagation();\n let didTriggerMeridiemChange = false;\n if (key === 'ArrowUp') {\n handleTimeWheelBtnChangeMeridiem('AM', e);\n didTriggerMeridiemChange = true;\n }\n if (key === 'ArrowDown') {\n handleTimeWheelBtnChangeMeridiem('PM', e);\n didTriggerMeridiemChange = true;\n }\n if (key === 'ArrowLeft') {\n trackFocusTimewheelCurrMinute();\n }\n if (key === 'Home') onHomeKeyDownInsideTimeWheel();\n if (key === 'End') onEndKeyDownInsideTimeWheel();\n\n // ensure the focus is in the correct button after up/down arrow\n if (didTriggerMeridiemChange) trackFocusTimewheelCurrMeridiem();\n\n // TAB CYCLE IMPLEMENTATION\n if (!isControllerOnly)\n if (key === 'Tab' && !shiftKey) {\n e.preventDefault();\n if (isWithCalendarToo) trackFocusCalendarPrevMonth();\n else trackFocusTimewheelCurrHour();\n }\n },\n [\n handleTimeWheelBtnChangeMeridiem,\n isControllerOnly,\n isWithCalendarToo,\n onEndKeyDownInsideTimeWheel,\n onHomeKeyDownInsideTimeWheel,\n trackFocusCalendarPrevMonth,\n trackFocusTimewheelCurrHour,\n trackFocusTimewheelCurrMeridiem,\n trackFocusTimewheelCurrMinute,\n ],\n );\n\n return useMemo(\n () => ({\n handleCurrHourOnKeyDown,\n handleCurrMinutesOnKeyDown,\n handleCurrMeridiemOnKeyDown,\n handlePickerIconKeyDown,\n }),\n [handleCurrHourOnKeyDown, handleCurrMeridiemOnKeyDown, handleCurrMinutesOnKeyDown, handlePickerIconKeyDown],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useMemo, useCallback, useContext } from 'react';\nimport { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';\nimport type { DSControlledDateTimePickerInternalsT } from '../../../sharedTypes.js';\nimport type { useCurrentDisplayedWheelsLogic } from './useCurrentDisplayedWheelsLogic.js';\ninterface UseKeyboardHandlersArgs {\n currentDisplayedTimeWheelLogic: ReturnType<typeof useCurrentDisplayedWheelsLogic>;\n}\ninterface KeyboardHandlersT {\n handleCurrHourOnKeyDown: (e: React.KeyboardEvent) => void;\n handleCurrMinutesOnKeyDown: (e: React.KeyboardEvent) => void;\n handleCurrMeridiemOnKeyDown: (e: React.KeyboardEvent) => void;\n handlePickerIconKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => void;\n}\nexport const useKeyboardHandlers = ({ currentDisplayedTimeWheelLogic }: UseKeyboardHandlersArgs): KeyboardHandlersT => {\n const { handlePrevHour, handleNextHour, handlePrevMinute, handleNextMinute, handleTimeWheelBtnChangeMeridiem } =\n currentDisplayedTimeWheelLogic;\n const {\n withAnyInputs,\n isWithTimeInputs,\n isWithDateInputs,\n isWithCalendarToo,\n isControllerOnly,\n props: { readOnly },\n\n trackFocusCalendarPrevMonth,\n trackFocusTimewheelCurrHour,\n trackFocusTimewheelCurrMinute,\n trackFocusTimewheelCurrMeridiem,\n trackFocusFirstSegment,\n trackFocusMeridiemInput,\n trackFocusYearInput,\n trackFocusCalendarMetafocusedDay,\n } = useContext(ControlledDateTimePickerContext);\n\n // const tryToFocusDayRegion = useCallback(() => {\n // if (!focusedDay) {\n // const newFocusDay = daysArray.find(({ isCurrMonthDay }) => isCurrMonthDay);\n // if (newFocusDay) handleFocusMetaDay(newFocusDay);\n // }\n // trackFocusCalendarMetafocusedDay();\n // }, [daysArray, focusedDay, handleFocusMetaDay, trackFocusCalendarMetafocusedDay]);\n\n const onHomeKeyDownInsideTimeWheel = useCallback(() => {\n if (isWithCalendarToo) trackFocusCalendarPrevMonth();\n else trackFocusTimewheelCurrHour();\n }, [isWithCalendarToo, trackFocusCalendarPrevMonth, trackFocusTimewheelCurrHour]);\n const onEndKeyDownInsideTimeWheel = useCallback(() => {\n trackFocusTimewheelCurrMeridiem();\n }, [trackFocusTimewheelCurrMeridiem]);\n\n const onHomeKeyDownTriggerIcon = useCallback(() => {\n trackFocusFirstSegment();\n }, [trackFocusFirstSegment]);\n const handlePickerIconKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown<HTMLButtonElement> = useCallback(\n (e: React.KeyboardEvent) => {\n const { key } = e;\n if (['Home', 'End'].includes(key)) e.preventDefault();\n if (['Home', 'End'].includes(key)) e.stopPropagation();\n if (key === 'Home') onHomeKeyDownTriggerIcon();\n if (key === 'Backspace' && withAnyInputs) {\n if (isWithTimeInputs) trackFocusMeridiemInput();\n else if (isWithDateInputs) trackFocusYearInput();\n }\n },\n [\n isWithDateInputs,\n isWithTimeInputs,\n onHomeKeyDownTriggerIcon,\n trackFocusMeridiemInput,\n trackFocusYearInput,\n withAnyInputs,\n ],\n );\n\n const handleCurrHourOnKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const { key, shiftKey } = e;\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.stopPropagation();\n let didTriggerHourChange = false;\n if (key === 'ArrowUp') {\n if (readOnly) return;\n handlePrevHour(e);\n didTriggerHourChange = true;\n }\n if (key === 'ArrowDown') {\n if (readOnly) return;\n handleNextHour(e);\n didTriggerHourChange = true;\n }\n if (key === 'ArrowRight') {\n trackFocusTimewheelCurrMinute();\n }\n if (key === 'Home') onHomeKeyDownInsideTimeWheel();\n if (key === 'End') onEndKeyDownInsideTimeWheel();\n\n // ensure the focus is in the correct button after up/down arrow\n if (didTriggerHourChange) trackFocusTimewheelCurrHour();\n\n // TAB CYCLE IMPLEMENTATION\n if (!isControllerOnly)\n if (key === 'Tab' && shiftKey && !isWithCalendarToo) {\n e.preventDefault();\n trackFocusTimewheelCurrMeridiem();\n }\n\n if (key === 'Tab' && shiftKey && isWithCalendarToo) {\n trackFocusCalendarMetafocusedDay();\n }\n },\n [\n handleNextHour,\n handlePrevHour,\n isControllerOnly,\n isWithCalendarToo,\n onEndKeyDownInsideTimeWheel,\n onHomeKeyDownInsideTimeWheel,\n trackFocusTimewheelCurrHour,\n trackFocusTimewheelCurrMeridiem,\n trackFocusTimewheelCurrMinute,\n trackFocusCalendarMetafocusedDay,\n readOnly,\n ],\n );\n const handleCurrMinutesOnKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const { key } = e;\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.stopPropagation();\n let didTriggerMinuteChange = false;\n if (key === 'ArrowUp') {\n if (readOnly) return;\n handlePrevMinute(e);\n didTriggerMinuteChange = true;\n }\n if (key === 'ArrowDown') {\n if (readOnly) return;\n handleNextMinute(e);\n didTriggerMinuteChange = true;\n }\n if (key === 'ArrowLeft') {\n trackFocusTimewheelCurrHour();\n }\n if (key === 'ArrowRight') {\n trackFocusTimewheelCurrMeridiem();\n }\n if (key === 'Home') onHomeKeyDownInsideTimeWheel();\n if (key === 'End') onEndKeyDownInsideTimeWheel();\n // ensure the focus is in the correct button after up/down arrow\n if (didTriggerMinuteChange) trackFocusTimewheelCurrMinute();\n },\n [\n onHomeKeyDownInsideTimeWheel,\n onEndKeyDownInsideTimeWheel,\n handlePrevMinute,\n handleNextMinute,\n trackFocusTimewheelCurrHour,\n trackFocusTimewheelCurrMeridiem,\n trackFocusTimewheelCurrMinute,\n readOnly,\n ],\n );\n const handleCurrMeridiemOnKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const { key, shiftKey } = e;\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.stopPropagation();\n let didTriggerMeridiemChange = false;\n if (key === 'ArrowUp') {\n if (readOnly) return;\n handleTimeWheelBtnChangeMeridiem('AM', e);\n didTriggerMeridiemChange = true;\n }\n if (key === 'ArrowDown') {\n if (readOnly) return;\n handleTimeWheelBtnChangeMeridiem('PM', e);\n didTriggerMeridiemChange = true;\n }\n if (key === 'ArrowLeft') {\n trackFocusTimewheelCurrMinute();\n }\n if (key === 'Home') onHomeKeyDownInsideTimeWheel();\n if (key === 'End') onEndKeyDownInsideTimeWheel();\n\n // ensure the focus is in the correct button after up/down arrow\n if (didTriggerMeridiemChange) trackFocusTimewheelCurrMeridiem();\n\n // TAB CYCLE IMPLEMENTATION\n if (!isControllerOnly)\n if (key === 'Tab' && !shiftKey) {\n e.preventDefault();\n if (isWithCalendarToo) trackFocusCalendarPrevMonth();\n else trackFocusTimewheelCurrHour();\n }\n },\n [\n handleTimeWheelBtnChangeMeridiem,\n isControllerOnly,\n isWithCalendarToo,\n onEndKeyDownInsideTimeWheel,\n onHomeKeyDownInsideTimeWheel,\n trackFocusCalendarPrevMonth,\n trackFocusTimewheelCurrHour,\n trackFocusTimewheelCurrMeridiem,\n trackFocusTimewheelCurrMinute,\n readOnly,\n ],\n );\n\n return useMemo(\n () => ({\n handleCurrHourOnKeyDown,\n handleCurrMinutesOnKeyDown,\n handleCurrMeridiemOnKeyDown,\n handlePickerIconKeyDown,\n }),\n [handleCurrHourOnKeyDown, handleCurrMeridiemOnKeyDown, handleCurrMinutesOnKeyDown, handlePickerIconKeyDown],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -56,7 +56,8 @@ const HHInput = import_react.default.memo(
56
56
  autoFocusHourInput,
57
57
  isFocused,
58
58
  getProps,
59
- tabIndex
59
+ tabIndex,
60
+ readOnly
60
61
  }) => {
61
62
  const validateOnChange = (0, import_react.useCallback)(
62
63
  (e) => {
@@ -87,7 +88,8 @@ const HHInput = import_react.default.memo(
87
88
  "aria-label": `hours input field ${ariaCurrentValueForInputs}`,
88
89
  disabled,
89
90
  "aria-disabled": disabled,
90
- getOwnerProps: getProps
91
+ getOwnerProps: getProps,
92
+ readOnly
91
93
  }
92
94
  );
93
95
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/parts/TimeInputs/HHInput.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useCallback } from 'react';\nimport { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';\nimport { StyledHourInput } from '../Styleds.js';\nimport type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes.js';\nimport type { ControlledDateTimePickerContextT } from '../../config/useControlledDateTimePicker.js';\nimport { ControlledDateTimePickerDatatestid } from '../../ControlledDateTimePickerDatatestid.js';\nconst regExpNumbers = /^[0-9]+$/;\nconst isInvalidHour = (hours: string) => {\n if (hours === '') return false;\n const numberOnly = regExpNumbers.test(hours);\n return hours.length > 2 || hours === '00' || !numberOnly || Number.parseInt(hours, 10) > 12;\n};\ninterface HHInputsPropsT {\n onChange: DSControlledDateTimePickerInternalsT.OnChangeFunc;\n onBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc;\n onFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc;\n onKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown;\n value: string;\n disabled: boolean;\n contextRef: React.MutableRefObject<HTMLInputElement | null>;\n placeholder: string;\n ariaCurrentValueForInputs: string;\n autoFocusHourInput: boolean;\n isFocused: boolean;\n getProps: ControlledDateTimePickerContextT['getProps'];\n tabIndex?: TypescriptHelpersT.WCAGTabIndex;\n}\nexport const HHInput = React.memo(\n ({\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n value,\n disabled,\n placeholder,\n ariaCurrentValueForInputs,\n contextRef,\n autoFocusHourInput,\n isFocused,\n getProps,\n tabIndex,\n }: HHInputsPropsT): JSX.Element => {\n const validateOnChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (isInvalidHour(e.target.value)) {\n e.preventDefault();\n return;\n }\n onChange(e);\n },\n [onChange],\n );\n return (\n <StyledHourInput\n autoFocus={autoFocusHourInput}\n onChange={validateOnChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n value={value}\n innerRef={(DomElem: HTMLInputElement) => {\n contextRef.current = DomElem;\n if (isFocused) DomElem?.focus?.();\n }}\n tabIndex={tabIndex}\n placeholder={placeholder}\n data-testid={ControlledDateTimePickerDatatestid.TIME_INPUTS.HOUR}\n aria-label={`hours input field ${ariaCurrentValueForInputs}`}\n disabled={disabled}\n aria-disabled={disabled}\n getOwnerProps={getProps}\n />\n );\n },\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADsDjB;AAtDN,mBAAmC;AAEnC,qBAAgC;AAGhC,gDAAmD;AACnD,MAAM,gBAAgB;AACtB,MAAM,gBAAgB,CAAC,UAAkB;AACvC,MAAI,UAAU,GAAI,QAAO;AACzB,QAAM,aAAa,cAAc,KAAK,KAAK;AAC3C,SAAO,MAAM,SAAS,KAAK,UAAU,QAAQ,CAAC,cAAc,OAAO,SAAS,OAAO,EAAE,IAAI;AAC3F;AAgBO,MAAM,UAAU,aAAAA,QAAM;AAAA,EAC3B,CAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAmC;AACjC,UAAM,uBAAmB;AAAA,MACvB,CAAC,MAA2C;AAC1C,YAAI,cAAc,EAAE,OAAO,KAAK,GAAG;AACjC,YAAE,eAAe;AACjB;AAAA,QACF;AACA,iBAAS,CAAC;AAAA,MACZ;AAAA,MACA,CAAC,QAAQ;AAAA,IACX;AACA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,QACX,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,CAAC,YAA8B;AACvC,qBAAW,UAAU;AACrB,cAAI,UAAW,UAAS,QAAQ;AAAA,QAClC;AAAA,QACA;AAAA,QACA;AAAA,QACA,eAAa,6EAAmC,YAAY;AAAA,QAC5D,cAAY,qBAAqB,yBAAyB;AAAA,QAC1D;AAAA,QACA,iBAAe;AAAA,QACf,eAAe;AAAA;AAAA,IACjB;AAAA,EAEJ;AACF;",
4
+ "sourcesContent": ["import React, { useCallback } from 'react';\nimport { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';\nimport { StyledHourInput } from '../Styleds.js';\nimport type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes.js';\nimport type { ControlledDateTimePickerContextT } from '../../config/useControlledDateTimePicker.js';\nimport { ControlledDateTimePickerDatatestid } from '../../ControlledDateTimePickerDatatestid.js';\nconst regExpNumbers = /^[0-9]+$/;\nconst isInvalidHour = (hours: string) => {\n if (hours === '') return false;\n const numberOnly = regExpNumbers.test(hours);\n return hours.length > 2 || hours === '00' || !numberOnly || Number.parseInt(hours, 10) > 12;\n};\ninterface HHInputsPropsT {\n onChange: DSControlledDateTimePickerInternalsT.OnChangeFunc;\n onBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc;\n onFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc;\n onKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown;\n value: string;\n disabled: boolean;\n contextRef: React.MutableRefObject<HTMLInputElement | null>;\n placeholder: string;\n ariaCurrentValueForInputs: string;\n autoFocusHourInput: boolean;\n isFocused: boolean;\n getProps: ControlledDateTimePickerContextT['getProps'];\n tabIndex?: TypescriptHelpersT.WCAGTabIndex;\n readOnly: boolean;\n}\nexport const HHInput = React.memo(\n ({\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n value,\n disabled,\n placeholder,\n ariaCurrentValueForInputs,\n contextRef,\n autoFocusHourInput,\n isFocused,\n getProps,\n tabIndex,\n readOnly,\n }: HHInputsPropsT): JSX.Element => {\n const validateOnChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (isInvalidHour(e.target.value)) {\n e.preventDefault();\n return;\n }\n onChange(e);\n },\n [onChange],\n );\n return (\n <StyledHourInput\n autoFocus={autoFocusHourInput}\n onChange={validateOnChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n value={value}\n innerRef={(DomElem: HTMLInputElement) => {\n contextRef.current = DomElem;\n if (isFocused) DomElem?.focus?.();\n }}\n tabIndex={tabIndex}\n placeholder={placeholder}\n data-testid={ControlledDateTimePickerDatatestid.TIME_INPUTS.HOUR}\n aria-label={`hours input field ${ariaCurrentValueForInputs}`}\n disabled={disabled}\n aria-disabled={disabled}\n getOwnerProps={getProps}\n readOnly={readOnly}\n />\n );\n },\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADwDjB;AAxDN,mBAAmC;AAEnC,qBAAgC;AAGhC,gDAAmD;AACnD,MAAM,gBAAgB;AACtB,MAAM,gBAAgB,CAAC,UAAkB;AACvC,MAAI,UAAU,GAAI,QAAO;AACzB,QAAM,aAAa,cAAc,KAAK,KAAK;AAC3C,SAAO,MAAM,SAAS,KAAK,UAAU,QAAQ,CAAC,cAAc,OAAO,SAAS,OAAO,EAAE,IAAI;AAC3F;AAiBO,MAAM,UAAU,aAAAA,QAAM;AAAA,EAC3B,CAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAmC;AACjC,UAAM,uBAAmB;AAAA,MACvB,CAAC,MAA2C;AAC1C,YAAI,cAAc,EAAE,OAAO,KAAK,GAAG;AACjC,YAAE,eAAe;AACjB;AAAA,QACF;AACA,iBAAS,CAAC;AAAA,MACZ;AAAA,MACA,CAAC,QAAQ;AAAA,IACX;AACA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,QACX,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,CAAC,YAA8B;AACvC,qBAAW,UAAU;AACrB,cAAI,UAAW,UAAS,QAAQ;AAAA,QAClC;AAAA,QACA;AAAA,QACA;AAAA,QACA,eAAa,6EAAmC,YAAY;AAAA,QAC5D,cAAY,qBAAqB,yBAAyB;AAAA,QAC1D;AAAA,QACA,iBAAe;AAAA,QACf,eAAe;AAAA,QACf;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;",
6
6
  "names": ["React"]
7
7
  }
@@ -58,7 +58,8 @@ const MeridiemInput = import_react.default.memo(
58
58
  contextRef,
59
59
  isFocused,
60
60
  getProps,
61
- tabIndex
61
+ tabIndex,
62
+ readOnly
62
63
  }) => {
63
64
  const validateOnChange = (0, import_react.useCallback)(
64
65
  (e) => {
@@ -88,7 +89,8 @@ const MeridiemInput = import_react.default.memo(
88
89
  "aria-label": `meridiem input field ${ariaCurrentValueForInputs}`,
89
90
  disabled,
90
91
  "aria-disabled": disabled,
91
- getOwnerProps: getProps
92
+ getOwnerProps: getProps,
93
+ readOnly
92
94
  }
93
95
  );
94
96
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/parts/TimeInputs/MeridiemInput.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useCallback } from 'react';\nimport { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';\nimport { StyledMeridiemInput } from '../Styleds.js';\nimport type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes.js';\nimport type { ControlledDateTimePickerContextT } from '../../config/useControlledDateTimePicker.js';\nimport { ControlledDateTimePickerDatatestid } from '../../ControlledDateTimePickerDatatestid.js';\n\nconst validFirstDigits = ['a', 'A', 'p', 'P'];\nconst validSecondDigits = ['m', 'M'];\nconst isInvalidMeridiem = (meridiem: string) => {\n if (meridiem === '') return false;\n const [firstDigit, secondDigit] = meridiem.split('');\n const isValidFirstDigit = (meridiem.length < 1 && !firstDigit) || validFirstDigits.includes(firstDigit);\n const isValidSecondDigit = !secondDigit || validSecondDigits.includes(secondDigit);\n return meridiem.length > 2 || !isValidFirstDigit || !isValidSecondDigit;\n};\n\ninterface MeridiemInputsPropsT {\n onChange: DSControlledDateTimePickerInternalsT.OnChangeFunc;\n onBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc;\n onFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc;\n onKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown;\n value: string;\n disabled: boolean;\n contextRef: React.MutableRefObject<HTMLInputElement | null>;\n placeholder: string;\n ariaCurrentValueForInputs: string;\n isFocused: boolean;\n getProps: ControlledDateTimePickerContextT['getProps'];\n tabIndex?: TypescriptHelpersT.WCAGTabIndex;\n}\nexport const MeridiemInput = React.memo(\n ({\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n value,\n disabled,\n placeholder,\n ariaCurrentValueForInputs,\n contextRef,\n isFocused,\n getProps,\n tabIndex,\n }: MeridiemInputsPropsT): JSX.Element => {\n const validateOnChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (isInvalidMeridiem(e?.target?.value)) {\n e.preventDefault();\n return;\n }\n onChange(e);\n },\n [onChange],\n );\n return (\n <StyledMeridiemInput\n onChange={validateOnChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n value={value}\n innerRef={(DomElem: HTMLInputElement) => {\n contextRef.current = DomElem;\n if (isFocused) DomElem?.focus?.();\n }}\n tabIndex={tabIndex}\n data-testid={ControlledDateTimePickerDatatestid.TIME_INPUTS.MERIDIEM}\n placeholder={placeholder}\n aria-label={`meridiem input field ${ariaCurrentValueForInputs}`}\n disabled={disabled}\n aria-disabled={disabled}\n getOwnerProps={getProps}\n />\n );\n },\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADyDjB;AAzDN,mBAAmC;AAEnC,qBAAoC;AAGpC,gDAAmD;AAEnD,MAAM,mBAAmB,CAAC,KAAK,KAAK,KAAK,GAAG;AAC5C,MAAM,oBAAoB,CAAC,KAAK,GAAG;AACnC,MAAM,oBAAoB,CAAC,aAAqB;AAC9C,MAAI,aAAa,GAAI,QAAO;AAC5B,QAAM,CAAC,YAAY,WAAW,IAAI,SAAS,MAAM,EAAE;AACnD,QAAM,oBAAqB,SAAS,SAAS,KAAK,CAAC,cAAe,iBAAiB,SAAS,UAAU;AACtG,QAAM,qBAAqB,CAAC,eAAe,kBAAkB,SAAS,WAAW;AACjF,SAAO,SAAS,SAAS,KAAK,CAAC,qBAAqB,CAAC;AACvD;AAgBO,MAAM,gBAAgB,aAAAA,QAAM;AAAA,EACjC,CAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAyC;AACvC,UAAM,uBAAmB;AAAA,MACvB,CAAC,MAA2C;AAC1C,YAAI,kBAAkB,GAAG,QAAQ,KAAK,GAAG;AACvC,YAAE,eAAe;AACjB;AAAA,QACF;AACA,iBAAS,CAAC;AAAA,MACZ;AAAA,MACA,CAAC,QAAQ;AAAA,IACX;AACA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,CAAC,YAA8B;AACvC,qBAAW,UAAU;AACrB,cAAI,UAAW,UAAS,QAAQ;AAAA,QAClC;AAAA,QACA;AAAA,QACA,eAAa,6EAAmC,YAAY;AAAA,QAC5D;AAAA,QACA,cAAY,wBAAwB,yBAAyB;AAAA,QAC7D;AAAA,QACA,iBAAe;AAAA,QACf,eAAe;AAAA;AAAA,IACjB;AAAA,EAEJ;AACF;",
4
+ "sourcesContent": ["import React, { useCallback } from 'react';\nimport { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';\nimport { StyledMeridiemInput } from '../Styleds.js';\nimport type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes.js';\nimport type { ControlledDateTimePickerContextT } from '../../config/useControlledDateTimePicker.js';\nimport { ControlledDateTimePickerDatatestid } from '../../ControlledDateTimePickerDatatestid.js';\n\nconst validFirstDigits = ['a', 'A', 'p', 'P'];\nconst validSecondDigits = ['m', 'M'];\nconst isInvalidMeridiem = (meridiem: string) => {\n if (meridiem === '') return false;\n const [firstDigit, secondDigit] = meridiem.split('');\n const isValidFirstDigit = (meridiem.length < 1 && !firstDigit) || validFirstDigits.includes(firstDigit);\n const isValidSecondDigit = !secondDigit || validSecondDigits.includes(secondDigit);\n return meridiem.length > 2 || !isValidFirstDigit || !isValidSecondDigit;\n};\n\ninterface MeridiemInputsPropsT {\n onChange: DSControlledDateTimePickerInternalsT.OnChangeFunc;\n onBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc;\n onFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc;\n onKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown;\n value: string;\n disabled: boolean;\n contextRef: React.MutableRefObject<HTMLInputElement | null>;\n placeholder: string;\n ariaCurrentValueForInputs: string;\n isFocused: boolean;\n getProps: ControlledDateTimePickerContextT['getProps'];\n tabIndex?: TypescriptHelpersT.WCAGTabIndex;\n readOnly: boolean;\n}\nexport const MeridiemInput = React.memo(\n ({\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n value,\n disabled,\n placeholder,\n ariaCurrentValueForInputs,\n contextRef,\n isFocused,\n getProps,\n tabIndex,\n readOnly,\n }: MeridiemInputsPropsT): JSX.Element => {\n const validateOnChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (isInvalidMeridiem(e?.target?.value)) {\n e.preventDefault();\n return;\n }\n onChange(e);\n },\n [onChange],\n );\n return (\n <StyledMeridiemInput\n onChange={validateOnChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n value={value}\n innerRef={(DomElem: HTMLInputElement) => {\n contextRef.current = DomElem;\n if (isFocused) DomElem?.focus?.();\n }}\n tabIndex={tabIndex}\n data-testid={ControlledDateTimePickerDatatestid.TIME_INPUTS.MERIDIEM}\n placeholder={placeholder}\n aria-label={`meridiem input field ${ariaCurrentValueForInputs}`}\n disabled={disabled}\n aria-disabled={disabled}\n getOwnerProps={getProps}\n readOnly={readOnly}\n />\n );\n },\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD2DjB;AA3DN,mBAAmC;AAEnC,qBAAoC;AAGpC,gDAAmD;AAEnD,MAAM,mBAAmB,CAAC,KAAK,KAAK,KAAK,GAAG;AAC5C,MAAM,oBAAoB,CAAC,KAAK,GAAG;AACnC,MAAM,oBAAoB,CAAC,aAAqB;AAC9C,MAAI,aAAa,GAAI,QAAO;AAC5B,QAAM,CAAC,YAAY,WAAW,IAAI,SAAS,MAAM,EAAE;AACnD,QAAM,oBAAqB,SAAS,SAAS,KAAK,CAAC,cAAe,iBAAiB,SAAS,UAAU;AACtG,QAAM,qBAAqB,CAAC,eAAe,kBAAkB,SAAS,WAAW;AACjF,SAAO,SAAS,SAAS,KAAK,CAAC,qBAAqB,CAAC;AACvD;AAiBO,MAAM,gBAAgB,aAAAA,QAAM;AAAA,EACjC,CAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAyC;AACvC,UAAM,uBAAmB;AAAA,MACvB,CAAC,MAA2C;AAC1C,YAAI,kBAAkB,GAAG,QAAQ,KAAK,GAAG;AACvC,YAAE,eAAe;AACjB;AAAA,QACF;AACA,iBAAS,CAAC;AAAA,MACZ;AAAA,MACA,CAAC,QAAQ;AAAA,IACX;AACA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,CAAC,YAA8B;AACvC,qBAAW,UAAU;AACrB,cAAI,UAAW,UAAS,QAAQ;AAAA,QAClC;AAAA,QACA;AAAA,QACA,eAAa,6EAAmC,YAAY;AAAA,QAC5D;AAAA,QACA,cAAY,wBAAwB,yBAAyB;AAAA,QAC7D;AAAA,QACA,iBAAe;AAAA,QACf,eAAe;AAAA,QACf;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;",
6
6
  "names": ["React"]
7
7
  }