@elliemae/ds-form-date-time-picker 3.3.0-next.3 → 3.3.0-next.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/config/useChangeHandlers.js +47 -37
- package/dist/cjs/config/useChangeHandlers.js.map +1 -1
- package/dist/cjs/config/useControlledDateTimePicker.js +12 -18
- package/dist/cjs/config/useControlledDateTimePicker.js.map +1 -1
- package/dist/cjs/config/useGetDestructuredValues.js +4 -15
- package/dist/cjs/config/useGetDestructuredValues.js.map +1 -1
- package/dist/cjs/config/useGetFlags.js +12 -23
- package/dist/cjs/config/useGetFlags.js.map +1 -1
- package/dist/cjs/config/useGlobalKeyHandlers.js +5 -19
- package/dist/cjs/config/useGlobalKeyHandlers.js.map +1 -1
- package/dist/cjs/parts/ClearButton/ClearButton.js +4 -17
- package/dist/cjs/parts/ClearButton/ClearButton.js.map +1 -1
- package/dist/cjs/parts/ControlledDateTimePickerContent.js +6 -17
- package/dist/cjs/parts/ControlledDateTimePickerContent.js.map +1 -1
- package/dist/cjs/parts/DateInputs/useDateInputs.js +12 -23
- package/dist/cjs/parts/DateInputs/useDateInputs.js.map +1 -1
- package/dist/cjs/parts/Pickers/Calendar/Day.js +5 -21
- package/dist/cjs/parts/Pickers/Calendar/Day.js.map +1 -1
- package/dist/cjs/parts/Pickers/Calendar/useConfigCalendarCTX.js +7 -17
- package/dist/cjs/parts/Pickers/Calendar/useConfigCalendarCTX.js.map +1 -1
- package/dist/cjs/parts/Pickers/TimeWheel/HoursList.js +5 -20
- package/dist/cjs/parts/Pickers/TimeWheel/HoursList.js.map +1 -1
- package/dist/cjs/parts/Pickers/TimeWheel/MeridiemList.js +11 -24
- package/dist/cjs/parts/Pickers/TimeWheel/MeridiemList.js.map +1 -1
- package/dist/cjs/parts/Pickers/TimeWheel/MinutesList.js +5 -20
- package/dist/cjs/parts/Pickers/TimeWheel/MinutesList.js.map +1 -1
- package/dist/cjs/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +5 -15
- package/dist/cjs/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js.map +1 -1
- package/dist/cjs/propTypes.js +4 -19
- package/dist/cjs/propTypes.js.map +1 -1
- package/dist/cjs/utils/dateTimeHelpers.js +4 -15
- package/dist/cjs/utils/dateTimeHelpers.js.map +1 -1
- package/dist/cjs/utils/hooks/useGetStartingFocusedDay.js +1 -15
- package/dist/cjs/utils/hooks/useGetStartingFocusedDay.js.map +1 -1
- package/dist/esm/config/useChangeHandlers.js +47 -39
- package/dist/esm/config/useChangeHandlers.js.map +1 -1
- package/dist/esm/config/useControlledDateTimePicker.js +12 -20
- package/dist/esm/config/useControlledDateTimePicker.js.map +1 -1
- package/dist/esm/config/useGetDestructuredValues.js +4 -17
- package/dist/esm/config/useGetDestructuredValues.js.map +1 -1
- package/dist/esm/config/useGetFlags.js +12 -25
- package/dist/esm/config/useGetFlags.js.map +1 -1
- package/dist/esm/config/useGlobalKeyHandlers.js +5 -21
- package/dist/esm/config/useGlobalKeyHandlers.js.map +1 -1
- package/dist/esm/parts/ClearButton/ClearButton.js +4 -19
- package/dist/esm/parts/ClearButton/ClearButton.js.map +1 -1
- package/dist/esm/parts/ControlledDateTimePickerContent.js +6 -19
- package/dist/esm/parts/ControlledDateTimePickerContent.js.map +1 -1
- package/dist/esm/parts/DateInputs/useDateInputs.js +12 -25
- package/dist/esm/parts/DateInputs/useDateInputs.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/Day.js +5 -23
- package/dist/esm/parts/Pickers/Calendar/Day.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/useConfigCalendarCTX.js +7 -19
- package/dist/esm/parts/Pickers/Calendar/useConfigCalendarCTX.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/HoursList.js +5 -22
- package/dist/esm/parts/Pickers/TimeWheel/HoursList.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/MeridiemList.js +11 -26
- package/dist/esm/parts/Pickers/TimeWheel/MeridiemList.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/MinutesList.js +5 -22
- package/dist/esm/parts/Pickers/TimeWheel/MinutesList.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +5 -17
- package/dist/esm/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js.map +1 -1
- package/dist/esm/propTypes.js +4 -21
- package/dist/esm/propTypes.js.map +1 -1
- package/dist/esm/utils/dateTimeHelpers.js +4 -17
- package/dist/esm/utils/dateTimeHelpers.js.map +1 -1
- package/dist/esm/utils/hooks/useGetStartingFocusedDay.js +1 -17
- package/dist/esm/utils/hooks/useGetStartingFocusedDay.js.map +1 -1
- package/package.json +8 -8
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/useGetDestructuredValues.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport { useMemo } from 'react';\nimport {\n dateTimeToTime,\n deconstructTimeValues,\n dateTimeToDate,\n deconstructValuesFromDateString,\n fillStringWithPlaceHolders,\n} from '../utils/stringHelpers';\nimport { useGetFlags } from './useGetFlags';\nimport { useGetPropsBasedOnType } from './useGetPropsBasedOnType';\nimport { convertToPositiveNumberIfPossible } from '../utils/numberHelpers';\nimport { monthNames, announcableCardinalDays } from '../utils/constants';\nimport type { DSControlledDateTimePickerInternalsT } from '../sharedTypes';\n\ntype UseGetDestructuredDateValues = (\n config: ReturnType<typeof useGetPropsBasedOnType> & ReturnType<typeof useGetFlags>,\n) => {\n month: string;\n day: string;\n year: string;\n monthNum: number;\n dayNum: number;\n yearNum: number;\n announcedMonth: string;\n announcedDay: string;\n announcedYear: string;\n announcedDateValues: string;\n};\n// this is because it's fully controlled\n// our source of truth is either the date props or dateTime props\n// based on wheter it's a dateTime picker\n// or a date picker (it's date picker when hideTime is true)\nexport const useGetDestructuredDateValues: UseGetDestructuredDateValues = ({\n appDate,\n appDateTime,\n isDateTimeSelector,\n}) => {\n const dateStringFromProps = isDateTimeSelector ? dateTimeToDate(appDateTime) : appDate;\n const deconstructedValues = deconstructValuesFromDateString(dateStringFromProps);\n const { month, day, year } = deconstructedValues;\n const monthNum = convertToPositiveNumberIfPossible(month);\n const dayNum = convertToPositiveNumberIfPossible(day) as DSControlledDateTimePickerInternalsT.DateDay | -1;\n const yearNum = convertToPositiveNumberIfPossible(year);\n const announcedMonth = monthNum !== -1 ? monthNames[monthNum - 1] : 'empty month';\n const announcedDay = dayNum !== -1 ? announcableCardinalDays[dayNum] : 'empty day';\n const announcedYear = yearNum !== -1 ? fillStringWithPlaceHolders(`${yearNum}`, 4, '0') : 'empty year';\n const announcedDateValues = `${announcedMonth}, ${announcedDay}, ${announcedYear}`;\n\n return useMemo(\n () => ({\n month,\n day,\n year,\n monthNum,\n dayNum,\n yearNum,\n announcedMonth,\n announcedDay,\n announcedYear,\n announcedDateValues,\n }),\n [announcedDay, announcedMonth, announcedYear, announcedDateValues, day, dayNum, month, monthNum, year, yearNum],\n );\n};\n\ntype UseGetDestructuredTimeValues = (\n config: ReturnType<typeof useGetPropsBasedOnType> & ReturnType<typeof useGetFlags>,\n) => {\n hours: string;\n minutes: string;\n meridiem: string;\n hoursNum: number;\n minutesNum: number;\n announcedHours: string;\n announcedMinutes: string;\n announcedMeridiem: string;\n announcedTimeValues: string;\n};\n// this is because it's fully controlled\n// our source of truth is either the time props or dateTime props\n// based on wheter it's a dateTime picker\n// or a time picker (it's time picker when hideDate is true)\nexport const useGetDestructuredTimeValues: UseGetDestructuredTimeValues = ({\n appTime,\n appDateTime,\n isDateTimeSelector,\n}) => {\n const timeStringFromProps = isDateTimeSelector ? dateTimeToTime(appDateTime) : appTime;\n const deconstructedValues = deconstructTimeValues(timeStringFromProps);\n const { hours, minutes, meridiem } = deconstructedValues;\n const hoursNum = convertToPositiveNumberIfPossible(hours);\n const minutesNum = convertToPositiveNumberIfPossible(minutes);\n\n // 01 -> 1 ~ 09 -> 9 || 1_ -> 1 ~ 9_ -> 9 || empty...\n const announcedHours = hoursNum !== -1 ? `${hoursNum}` : 'empty hours';\n // 01 -> 1 ~ 09 -> 9 || 1_ -> 1 ~ 9_ -> 9 || empty...\n const announcedMinutes = minutesNum !== -1 ? `${minutesNum}` : 'empty minutes';\n const announcedMeridiem =\n // eslint-disable-next-line no-nested-ternary\n meridiem === 'PM' ? `post meridiem` : meridiem === 'AM' ? 'ante meridiem' : 'empty meriediem';\n const announcedTimeValues = `${announcedHours}, ${announcedMinutes}, ${announcedMeridiem}`;\n\n return useMemo(\n () => ({\n hours,\n minutes,\n meridiem,\n hoursNum,\n minutesNum,\n announcedHours,\n announcedMinutes,\n announcedMeridiem,\n announcedTimeValues,\n }),\n [\n hours,\n minutes,\n meridiem,\n hoursNum,\n minutesNum,\n announcedHours,\n announcedMinutes,\n announcedMeridiem,\n announcedTimeValues,\n ],\n );\n};\n\ntype UseGetDestructuredValues = (\n config: ReturnType<typeof useGetPropsBasedOnType> & ReturnType<typeof useGetFlags>,\n) => ReturnType<typeof useGetDestructuredDateValues> & ReturnType<typeof useGetDestructuredTimeValues>;\n\nexport const useGetDestructuredValues: UseGetDestructuredValues = (config) => {\n const dateValues = useGetDestructuredDateValues(config);\n const timeValues = useGetDestructuredTimeValues(config);\n\n return useMemo(\n () => ({\n ...dateValues,\n ...timeValues,\n }),\n [dateValues, timeValues],\n );\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";AAAA;ACCA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA;AACA;AAqBO,MAAM,+BAA6D,CAAC;AAAA,EACzE;AAAA,EACA;AAAA,EACA;AAAA,MACI;AACJ,QAAM,sBAAsB,qBAAqB,eAAe,WAAW,IAAI;AAC/E,QAAM,sBAAsB,gCAAgC,mBAAmB;AAC/E,QAAM,EAAE,OAAO,KAAK,SAAS;AAC7B,QAAM,WAAW,kCAAkC,KAAK;AACxD,QAAM,SAAS,kCAAkC,GAAG;AACpD,QAAM,UAAU,kCAAkC,IAAI;AACtD,QAAM,iBAAiB,aAAa,KAAK,WAAW,WAAW,KAAK;AACpE,QAAM,eAAe,WAAW,KAAK,wBAAwB,UAAU;AACvE,QAAM,gBAAgB,YAAY,KAAK,2BAA2B,GAAG,WAAW,GAAG,GAAG,IAAI;AAC1F,QAAM,sBAAsB,GAAG,mBAAmB,iBAAiB;AAEnE,SAAO,QACL,MAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IACA,CAAC,cAAc,gBAAgB,eAAe,qBAAqB,KAAK,QAAQ,OAAO,UAAU,MAAM,OAAO,CAChH;AACF;AAmBO,MAAM,+BAA6D,CAAC;AAAA,EACzE;AAAA,EACA;AAAA,EACA;AAAA,MACI;AACJ,QAAM,sBAAsB,qBAAqB,eAAe,WAAW,IAAI;AAC/E,QAAM,sBAAsB,sBAAsB,mBAAmB;AACrE,QAAM,EAAE,OAAO,SAAS,aAAa;AACrC,QAAM,WAAW,kCAAkC,KAAK;AACxD,QAAM,aAAa,kCAAkC,OAAO;AAG5D,QAAM,iBAAiB,aAAa,KAAK,GAAG,aAAa;AAEzD,QAAM,mBAAmB,eAAe,KAAK,GAAG,eAAe;AAC/D,QAAM,oBAEJ,aAAa,OAAO,kBAAkB,aAAa,OAAO,kBAAkB;AAC9E,QAAM,sBAAsB,GAAG,mBAAmB,qBAAqB;AAEvE,SAAO,QACL,MAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CACF;AACF;AAMO,MAAM,2BAAqD,CAAC,WAAW;AAC5E,QAAM,aAAa,6BAA6B,MAAM;AACtD,QAAM,aAAa,6BAA6B,MAAM;AAEtD,SAAO,QACL,MAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,EACL,IACA,CAAC,YAAY,UAAU,CACzB;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,20 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
6
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
7
|
-
var __spreadValues = (a, b) => {
|
|
8
|
-
for (var prop in b || (b = {}))
|
|
9
|
-
if (__hasOwnProp.call(b, prop))
|
|
10
|
-
__defNormalProp(a, prop, b[prop]);
|
|
11
|
-
if (__getOwnPropSymbols)
|
|
12
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
13
|
-
if (__propIsEnum.call(b, prop))
|
|
14
|
-
__defNormalProp(a, prop, b[prop]);
|
|
15
|
-
}
|
|
16
|
-
return a;
|
|
17
|
-
};
|
|
18
2
|
import * as React from "react";
|
|
19
3
|
import { useMemo } from "react";
|
|
20
4
|
import { CONTROLLED_DATE_TIME_PICKER_TYPES } from "../ControlledDateTimePickerTypes";
|
|
@@ -38,7 +22,7 @@ const getDateTimeFlags = (props) => {
|
|
|
38
22
|
const withAnyPicker = !hideDateTimePicker;
|
|
39
23
|
const withClearBtn = withAnyInputs && isClearable && dateTime !== "" && dateTime !== "__/__/____ __:__ __";
|
|
40
24
|
const shouldPreserveClearableSpace = isClearable && withAnyInputs;
|
|
41
|
-
const finalFlags =
|
|
25
|
+
const finalFlags = {
|
|
42
26
|
hideDate: !withAnyInputs,
|
|
43
27
|
hideTime: !withAnyInputs,
|
|
44
28
|
hideDateTimePicker,
|
|
@@ -53,8 +37,9 @@ const getDateTimeFlags = (props) => {
|
|
|
53
37
|
autoFocusMonthInput: withAnyInputs && autoFocus,
|
|
54
38
|
autoFocusPrevMonthArrow: isControllerOnly && autoFocus,
|
|
55
39
|
shouldPreserveClearableSpace,
|
|
56
|
-
withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace
|
|
57
|
-
|
|
40
|
+
withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,
|
|
41
|
+
...constants
|
|
42
|
+
};
|
|
58
43
|
return finalFlags;
|
|
59
44
|
};
|
|
60
45
|
const getDateFlags = (props) => {
|
|
@@ -79,7 +64,7 @@ const getDateFlags = (props) => {
|
|
|
79
64
|
const withAnyPicker = !hideDatePicker;
|
|
80
65
|
const withClearBtn = withAnyInputs && isClearable && date !== "" && date !== "__/__/____";
|
|
81
66
|
const shouldPreserveClearableSpace = isClearable && withAnyInputs;
|
|
82
|
-
const finalFlags =
|
|
67
|
+
const finalFlags = {
|
|
83
68
|
hideDate: !withAnyInputs,
|
|
84
69
|
hideDatePicker,
|
|
85
70
|
isControllerOnly,
|
|
@@ -91,8 +76,9 @@ const getDateFlags = (props) => {
|
|
|
91
76
|
autoFocusMonthInput: withAnyInputs && autoFocus,
|
|
92
77
|
autoFocusPrevMonthArrow: isControllerOnly && autoFocus,
|
|
93
78
|
shouldPreserveClearableSpace,
|
|
94
|
-
withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace
|
|
95
|
-
|
|
79
|
+
withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,
|
|
80
|
+
...constants
|
|
81
|
+
};
|
|
96
82
|
return finalFlags;
|
|
97
83
|
};
|
|
98
84
|
const getTimeFlags = (props) => {
|
|
@@ -117,7 +103,7 @@ const getTimeFlags = (props) => {
|
|
|
117
103
|
const withClearBtn = withAnyInputs && isClearable && time !== "" && time !== "__:__ __";
|
|
118
104
|
const shouldPreserveClearableSpace = isClearable && withAnyInputs;
|
|
119
105
|
const withAnyPicker = !hideTimePicker;
|
|
120
|
-
const finalFlags =
|
|
106
|
+
const finalFlags = {
|
|
121
107
|
hideTime: !withAnyInputs,
|
|
122
108
|
hideTimePicker,
|
|
123
109
|
isControllerOnly,
|
|
@@ -129,8 +115,9 @@ const getTimeFlags = (props) => {
|
|
|
129
115
|
autoFocusHourInput: withAnyInputs && autoFocus,
|
|
130
116
|
autoFocusHourTimeWheel: isControllerOnly && autoFocus,
|
|
131
117
|
shouldPreserveClearableSpace,
|
|
132
|
-
withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace
|
|
133
|
-
|
|
118
|
+
withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,
|
|
119
|
+
...constants
|
|
120
|
+
};
|
|
134
121
|
return finalFlags;
|
|
135
122
|
};
|
|
136
123
|
const useGetFlags = (props) => useMemo(() => {
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/useGetFlags.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useMemo } from 'react';\nimport { CONTROLLED_DATE_TIME_PICKER_TYPES } from '../ControlledDateTimePickerTypes';\nimport { getIsDateTime, getIsDate } from '../utils/typeGuards';\nimport type { DSControlledDateTimePickerT } from '../propTypes';\n\nconst getDateTimeFlags = (props: DSControlledDateTimePickerT.InternalDateTimePickerProps) => {\n const { type, isClearable, dateTime, autoFocus } = props;\n const constants = {\n hideDatePicker: true,\n hideTimePicker: true,\n isDateSelector: false,\n isTimeSelector: false,\n isDateTimeSelector: true,\n isWithDateInputsOnly: false,\n isWithTimeInputsOnly: false,\n autoFocusHourInput: false,\n autoFocusHourTimeWheel: false,\n };\n const withAnyInputs =\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL ||\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.INPUTS;\n const hideDateTimePicker =\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.PICKER &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY;\n const isControllerOnly = type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY;\n const withAnyPicker = !hideDateTimePicker;\n const withClearBtn = withAnyInputs && isClearable && dateTime !== '' && dateTime !== '__/__/____ __:__ __';\n const shouldPreserveClearableSpace = isClearable && withAnyInputs;\n const finalFlags = {\n hideDate: !withAnyInputs,\n hideTime: !withAnyInputs,\n hideDateTimePicker,\n isControllerOnly,\n isWithTimeWheelToo: !hideDateTimePicker,\n isWithCalendarToo: !hideDateTimePicker,\n withAnyInputs,\n withAnyPicker,\n withClearBtn,\n isWithDateInputs: withAnyInputs,\n isWithTimeInputs: withAnyInputs,\n autoFocusMonthInput: withAnyInputs && autoFocus,\n autoFocusPrevMonthArrow: isControllerOnly && autoFocus,\n shouldPreserveClearableSpace,\n withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,\n ...constants,\n };\n return finalFlags;\n};\nconst getDateFlags = (props: DSControlledDateTimePickerT.InternalDatePickerProps) => {\n const { type, isClearable, date, autoFocus } = props;\n\n const constants = {\n isDateSelector: true,\n hideTime: true,\n hideDateTimePicker: true,\n hideTimePicker: true,\n isTimeSelector: false,\n isDateTimeSelector: false,\n isWithCalendarToo: false,\n isWithTimeWheelToo: false,\n isWithTimeInputs: false,\n isWithTimeInputsOnly: false,\n autoFocusHourTimeWheel: false,\n autoFocusHourInput: false,\n };\n\n const withAnyInputs =\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.FULL || type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS;\n const hideDatePicker =\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.FULL &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.PICKER &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY;\n const isControllerOnly = type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY;\n\n const withAnyPicker = !hideDatePicker;\n const withClearBtn = withAnyInputs && isClearable && date !== '' && date !== '__/__/____';\n const shouldPreserveClearableSpace = isClearable && withAnyInputs;\n\n const finalFlags = {\n hideDate: !withAnyInputs,\n hideDatePicker,\n isControllerOnly,\n withAnyInputs,\n withAnyPicker,\n withClearBtn,\n isWithDateInputs: withAnyInputs,\n isWithDateInputsOnly: withAnyInputs,\n autoFocusMonthInput: withAnyInputs && autoFocus,\n autoFocusPrevMonthArrow: isControllerOnly && autoFocus,\n shouldPreserveClearableSpace,\n withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,\n ...constants,\n };\n return finalFlags;\n};\nconst getTimeFlags = (props: DSControlledDateTimePickerT.InternalTimePickerProps) => {\n const { type, isClearable, time, autoFocus } = props;\n const constants = {\n hideDate: true,\n hideDateTimePicker: true,\n hideDatePicker: true,\n isDateSelector: false,\n isDateTimeSelector: false,\n isWithDateInputs: false,\n isWithDateInputsOnly: false,\n isTimeSelector: true,\n isWithTimeWheelToo: false,\n isWithCalendarToo: false,\n autoFocusMonthInput: false,\n autoFocusPrevMonthArrow: false,\n };\n const withAnyInputs =\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.FULL || type === CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.INPUTS;\n const hideTimePicker =\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.FULL &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.PICKER &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.CONTROLLER_ONLY;\n const isControllerOnly = type === CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.CONTROLLER_ONLY;\n const withClearBtn = withAnyInputs && isClearable && time !== '' && time !== '__:__ __';\n const shouldPreserveClearableSpace = isClearable && withAnyInputs;\n const withAnyPicker = !hideTimePicker;\n const finalFlags = {\n hideTime: !withAnyInputs,\n hideTimePicker,\n isControllerOnly,\n withAnyInputs,\n withAnyPicker,\n withClearBtn,\n isWithTimeInputs: withAnyInputs,\n isWithTimeInputsOnly: withAnyInputs,\n autoFocusHourInput: withAnyInputs && autoFocus,\n autoFocusHourTimeWheel: isControllerOnly && autoFocus,\n shouldPreserveClearableSpace,\n withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,\n ...constants,\n };\n return finalFlags;\n};\n\nexport const useGetFlags = (props: DSControlledDateTimePickerT.InternalProps) =>\n useMemo(() => {\n if (getIsDateTime(props)) {\n return getDateTimeFlags(props);\n }\n if (getIsDate(props)) {\n return getDateFlags(props);\n }\n return getTimeFlags(props);\n }, [props]);\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,23 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __defProps = Object.defineProperties;
|
|
4
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
8
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
-
var __spreadValues = (a, b) => {
|
|
10
|
-
for (var prop in b || (b = {}))
|
|
11
|
-
if (__hasOwnProp.call(b, prop))
|
|
12
|
-
__defNormalProp(a, prop, b[prop]);
|
|
13
|
-
if (__getOwnPropSymbols)
|
|
14
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
15
|
-
if (__propIsEnum.call(b, prop))
|
|
16
|
-
__defNormalProp(a, prop, b[prop]);
|
|
17
|
-
}
|
|
18
|
-
return a;
|
|
19
|
-
};
|
|
20
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
21
2
|
import * as React from "react";
|
|
22
3
|
import { useCallback, useMemo } from "react";
|
|
23
4
|
import { getValidationDateStringMetaInfo, getDateStringFromDay, getTimeStringFromDay } from "../utils/dateHelpers";
|
|
@@ -42,9 +23,12 @@ const useGlobalKeyHandlers = ({ propsBasedOnType, changeHandlers, flags, focusTr
|
|
|
42
23
|
const now = new Date();
|
|
43
24
|
const nowDateString = getDateStringFromDay(now);
|
|
44
25
|
const nowTimeString = getTimeStringFromDay(now);
|
|
45
|
-
const finalMetaInfo =
|
|
26
|
+
const finalMetaInfo = {
|
|
27
|
+
...metaInfo,
|
|
28
|
+
...getValidationDateStringMetaInfo(nowDateString, getIsOutOfRangeDay, getIsDisabledDay),
|
|
29
|
+
...getValidationTimeStringMetaInfo(nowTimeString, getIsDisabledTime),
|
|
46
30
|
newDateString: nowDateString
|
|
47
|
-
}
|
|
31
|
+
};
|
|
48
32
|
const { month, day, year } = deconstructValuesFromDateString(nowDateString);
|
|
49
33
|
appOnMonthChange(month, e, metaInfo);
|
|
50
34
|
appOnDayChange(day, e, metaInfo);
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/useGlobalKeyHandlers.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-nested-ternary */\n/* eslint-disable max-lines */\n/* eslint-disable import/prefer-default-export */\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useCallback, useMemo } from 'react';\nimport { useChangeHandlers } from './useChangeHandlers';\nimport { useGetPropsBasedOnType } from './useGetPropsBasedOnType';\nimport { useGetReferences } from './useGetReferences';\nimport { useGetFlags } from './useGetFlags';\nimport { useFocusTracker } from './useFocusTracker';\nimport { getValidationDateStringMetaInfo, getDateStringFromDay, getTimeStringFromDay } from '../utils/dateHelpers';\nimport { getValidationTimeStringMetaInfo } from '../utils/timeHelpers';\nimport { deconstructValuesFromDateString, deconstructValuesFromTimeString } from '../utils/stringHelpers';\nimport type { DSControlledDateTimePickerT } from '../propTypes';\n\ninterface Config {\n propsBasedOnType: ReturnType<typeof useGetPropsBasedOnType>;\n changeHandlers: ReturnType<typeof useChangeHandlers>;\n DOMRefs: ReturnType<typeof useGetReferences>;\n flags: ReturnType<typeof useGetFlags>;\n focusTrackers: ReturnType<typeof useFocusTracker>;\n}\n\nexport const useGlobalKeyHandlers = ({ propsBasedOnType, changeHandlers, flags, focusTrackers }: Config) => {\n const {\n getIsOutOfRangeDay,\n getIsDisabledDay,\n getIsDisabledTime,\n appOnMonthChange,\n appOnDayChange,\n appOnYearChange,\n appOnHourChange,\n appOnMinuteChange,\n appOnMeridiemChange,\n } = propsBasedOnType;\n const { handleChangeComposedDateTimeString, handleClearAll } = changeHandlers;\n const { shouldPreserveClearableSpace } = flags;\n const { trackFocusClearBtn, trackFocusLastSegment } = focusTrackers;\n\n const onFillWithCurrentDateKeys = useCallback(\n (\n e: React.KeyboardEvent<HTMLInputElement | HTMLButtonElement>,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = { isAutomaticFillTrigger: true },\n ) => {\n const now = new Date();\n const nowDateString = getDateStringFromDay(now);\n const nowTimeString = getTimeStringFromDay(now);\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(nowDateString, getIsOutOfRangeDay, getIsDisabledDay),\n ...getValidationTimeStringMetaInfo(nowTimeString, getIsDisabledTime),\n newDateString: nowDateString,\n };\n const { month, day, year } = deconstructValuesFromDateString(nowDateString);\n appOnMonthChange(month, e, metaInfo);\n appOnDayChange(day, e, metaInfo);\n appOnYearChange(year, e, metaInfo);\n const { hours, minutes, meridiem } = deconstructValuesFromTimeString(nowTimeString);\n appOnHourChange(hours, e, metaInfo);\n appOnMinuteChange(minutes, e, metaInfo);\n appOnMeridiemChange(meridiem, e, metaInfo);\n handleChangeComposedDateTimeString(nowDateString, nowTimeString, finalMetaInfo);\n if (shouldPreserveClearableSpace) trackFocusClearBtn();\n else trackFocusLastSegment();\n },\n [\n appOnDayChange,\n appOnHourChange,\n appOnMeridiemChange,\n appOnMinuteChange,\n appOnMonthChange,\n appOnYearChange,\n getIsDisabledDay,\n getIsDisabledTime,\n getIsOutOfRangeDay,\n handleChangeComposedDateTimeString,\n shouldPreserveClearableSpace,\n trackFocusClearBtn,\n trackFocusLastSegment,\n ],\n );\n\n const onGlobalKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement | HTMLButtonElement>) => {\n const { key, ctrlKey, metaKey } = e;\n if ((ctrlKey || metaKey) && key === ';') {\n onFillWithCurrentDateKeys(e);\n }\n if ((ctrlKey || metaKey) && (key === 'Delete' || key === 'Backspace')) handleClearAll(e);\n },\n [handleClearAll, onFillWithCurrentDateKeys],\n );\n\n return useMemo(\n () => ({\n onFillWithCurrentDateKeys,\n onGlobalKeyDown,\n }),\n [onFillWithCurrentDateKeys, onGlobalKeyDown],\n );\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";AAAA;ACKA;AAMA;AACA;AACA;AAWO,MAAM,uBAAuB,CAAC,EAAE,kBAAkB,gBAAgB,OAAO,oBAA4B;AAC1G,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE;AACJ,QAAM,EAAE,oCAAoC,mBAAmB;AAC/D,QAAM,EAAE,iCAAiC;AACzC,QAAM,EAAE,oBAAoB,0BAA0B;AAEtD,QAAM,4BAA4B,YAChC,CACE,GACA,WAA8E,EAAE,wBAAwB,KAAK,MAC1G;AACH,UAAM,MAAM,IAAI,KAAK;AACrB,UAAM,gBAAgB,qBAAqB,GAAG;AAC9C,UAAM,gBAAgB,qBAAqB,GAAG;AAC9C,UAAM,gBAA0E;AAAA,MAC9E,GAAG;AAAA,MACH,GAAG,gCAAgC,eAAe,oBAAoB,gBAAgB;AAAA,MACtF,GAAG,gCAAgC,eAAe,iBAAiB;AAAA,MACnE,eAAe;AAAA,IACjB;AACA,UAAM,EAAE,OAAO,KAAK,SAAS,gCAAgC,aAAa;AAC1E,qBAAiB,OAAO,GAAG,QAAQ;AACnC,mBAAe,KAAK,GAAG,QAAQ;AAC/B,oBAAgB,MAAM,GAAG,QAAQ;AACjC,UAAM,EAAE,OAAO,SAAS,aAAa,gCAAgC,aAAa;AAClF,oBAAgB,OAAO,GAAG,QAAQ;AAClC,sBAAkB,SAAS,GAAG,QAAQ;AACtC,wBAAoB,UAAU,GAAG,QAAQ;AACzC,uCAAmC,eAAe,eAAe,aAAa;AAC9E,QAAI;AAA8B,yBAAmB;AAAA;AAChD,4BAAsB;AAAA,EAC7B,GACA;AAAA,IACE;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,CACF;AAEA,QAAM,kBAAkB,YACtB,CAAC,MAAiE;AAChE,UAAM,EAAE,KAAK,SAAS,YAAY;AAClC,QAAK,YAAW,YAAY,QAAQ,KAAK;AACvC,gCAA0B,CAAC;AAAA,IAC7B;AACA,QAAK,YAAW,YAAa,SAAQ,YAAY,QAAQ;AAAc,qBAAe,CAAC;AAAA,EACzF,GACA,CAAC,gBAAgB,yBAAyB,CAC5C;AAEA,SAAO,QACL,MAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF,IACA,CAAC,2BAA2B,eAAe,CAC7C;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,20 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
6
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
7
|
-
var __spreadValues = (a, b) => {
|
|
8
|
-
for (var prop in b || (b = {}))
|
|
9
|
-
if (__hasOwnProp.call(b, prop))
|
|
10
|
-
__defNormalProp(a, prop, b[prop]);
|
|
11
|
-
if (__getOwnPropSymbols)
|
|
12
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
13
|
-
if (__propIsEnum.call(b, prop))
|
|
14
|
-
__defNormalProp(a, prop, b[prop]);
|
|
15
|
-
}
|
|
16
|
-
return a;
|
|
17
|
-
};
|
|
18
2
|
import * as React from "react";
|
|
19
3
|
import React2, { useContext } from "react";
|
|
20
4
|
import { CloseMedium } from "@elliemae/ds-icons";
|
|
@@ -30,7 +14,7 @@ const ClearButton = () => {
|
|
|
30
14
|
shouldDisplay: withClearBtn
|
|
31
15
|
};
|
|
32
16
|
const { latestInteractionRegion, currFocusDescriber } = useContext(ControlledDateTimePickerContext);
|
|
33
|
-
return /* @__PURE__ */ React2.createElement(StyledClearButton,
|
|
17
|
+
return /* @__PURE__ */ React2.createElement(StyledClearButton, {
|
|
34
18
|
"aria-label": "clear selected date",
|
|
35
19
|
buttonType: "icon",
|
|
36
20
|
size: BUTTON_SIZES.M,
|
|
@@ -42,8 +26,9 @@ const ClearButton = () => {
|
|
|
42
26
|
},
|
|
43
27
|
onClick: onClearClick,
|
|
44
28
|
onKeyDown: onClearButtonKeyDown,
|
|
45
|
-
type: "button"
|
|
46
|
-
|
|
29
|
+
type: "button",
|
|
30
|
+
...styledsAttrs
|
|
31
|
+
}, /* @__PURE__ */ React2.createElement(CloseMedium, {
|
|
47
32
|
color: DSIconColors.PRIMARY
|
|
48
33
|
}));
|
|
49
34
|
};
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/ClearButton/ClearButton.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment */\nimport React, { useContext } from 'react';\nimport { CloseMedium } from '@elliemae/ds-icons';\nimport { DSIconColors } from '@elliemae/ds-icon';\nimport { BUTTON_SIZES } from '@elliemae/ds-button';\nimport { StyledClearButton } from '../Styleds';\nimport { ControlledDateTimePickerDatatestid } from '../../ControlledDateTimePickerDatatestid';\nimport { ControlledDateTimePickerContext } from '../../ControlledDateTimePickerCTX';\nimport { useClearButton } from './useClearButton';\n\nexport const ClearButton = (): JSX.Element => {\n const { onClearClick, onClearButtonKeyDown, clearButtonRef, withClearBtn } = useClearButton();\n const styledsAttrs = {\n shouldDisplay: withClearBtn,\n };\n const { latestInteractionRegion, currFocusDescriber } = useContext(ControlledDateTimePickerContext);\n\n return (\n <StyledClearButton\n aria-label=\"clear selected date\"\n buttonType=\"icon\"\n size={BUTTON_SIZES.M}\n data-testid={ControlledDateTimePickerDatatestid.CLEAR_BUTTON}\n innerRef={(DomElem: HTMLButtonElement) => {\n clearButtonRef.current = DomElem;\n if (latestInteractionRegion === 'clear-btn' && currFocusDescriber === 'clear-btn') DomElem?.focus?.();\n }}\n onClick={onClearClick}\n onKeyDown={onClearButtonKeyDown}\n type=\"button\"\n {...styledsAttrs}\n >\n <CloseMedium color={DSIconColors.PRIMARY} />\n </StyledClearButton>\n );\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";AAAA;ACCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,MAAM,cAAc,MAAmB;AAC5C,QAAM,EAAE,cAAc,sBAAsB,gBAAgB,iBAAiB,eAAe;AAC5F,QAAM,eAAe;AAAA,IACnB,eAAe;AAAA,EACjB;AACA,QAAM,EAAE,yBAAyB,uBAAuB,WAAW,+BAA+B;AAElG,SACE,qCAAC;AAAA,IACC,cAAW;AAAA,IACX,YAAW;AAAA,IACX,MAAM,aAAa;AAAA,IACnB,eAAa,mCAAmC;AAAA,IAChD,UAAU,CAAC,YAA+B;AACxC,qBAAe,UAAU;AACzB,UAAI,4BAA4B,eAAe,uBAAuB;AAAa,iBAAS,QAAQ;AAAA,IACtG;AAAA,IACA,SAAS;AAAA,IACT,WAAW;AAAA,IACX,MAAK;AAAA,IACJ,GAAG;AAAA,KAEJ,qCAAC;AAAA,IAAY,OAAO,aAAa;AAAA,GAAS,CAC5C;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,20 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
6
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
7
|
-
var __spreadValues = (a, b) => {
|
|
8
|
-
for (var prop in b || (b = {}))
|
|
9
|
-
if (__hasOwnProp.call(b, prop))
|
|
10
|
-
__defNormalProp(a, prop, b[prop]);
|
|
11
|
-
if (__getOwnPropSymbols)
|
|
12
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
13
|
-
if (__propIsEnum.call(b, prop))
|
|
14
|
-
__defNormalProp(a, prop, b[prop]);
|
|
15
|
-
}
|
|
16
|
-
return a;
|
|
17
|
-
};
|
|
18
2
|
import * as React from "react";
|
|
19
3
|
import React2, { useContext } from "react";
|
|
20
4
|
import { Grid } from "@elliemae/ds-grid";
|
|
@@ -60,15 +44,18 @@ const ControlledDateTimePickerContent = () => {
|
|
|
60
44
|
rightControlCols.push("28px");
|
|
61
45
|
if (withAnyPicker)
|
|
62
46
|
rightControlCols.push("auto");
|
|
63
|
-
return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(StyledInputsWrapperGrid,
|
|
47
|
+
return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(StyledInputsWrapperGrid, {
|
|
64
48
|
cols: mainCols,
|
|
65
49
|
gutter: "xxs",
|
|
66
50
|
pr: hideDatePicker && hideTimePicker && hideDateTimePicker ? "2px" : void 0,
|
|
67
51
|
onKeyDown: onGlobalKeyDown,
|
|
68
52
|
disabled,
|
|
69
53
|
onBlur: trackFocusResetter,
|
|
70
|
-
"data-testid": ControlledDateTimePickerDatatestid.CONTAINER
|
|
71
|
-
|
|
54
|
+
"data-testid": ControlledDateTimePickerDatatestid.CONTAINER,
|
|
55
|
+
...styledsAttrs,
|
|
56
|
+
...globalAttrs,
|
|
57
|
+
...xstyledAttrs
|
|
58
|
+
}, hideDate ? null : /* @__PURE__ */ React2.createElement(DateInputs, null), hideTime ? null : /* @__PURE__ */ React2.createElement(TimeInputs, null), withAnyRightController ? /* @__PURE__ */ React2.createElement(Grid, {
|
|
72
59
|
cols: rightControlCols
|
|
73
60
|
}, shouldPreserveClearableSpace ? /* @__PURE__ */ React2.createElement(ClearButton, null) : null, withAnyPicker ? /* @__PURE__ */ React2.createElement(PickersIcons, null) : null) : null));
|
|
74
61
|
};
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/ControlledDateTimePickerContent.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\nimport React, { useContext } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { ControlledDateTimePickerContext } from '../ControlledDateTimePickerCTX';\nimport { StyledInputsWrapperGrid } from './Styleds';\nimport { DateInputs } from './DateInputs/DateInputs';\nimport { TimeInputs } from './TimeInputs/TimeInputs';\nimport { PickersIcons } from './Pickers/PickersIcons';\nimport { ClearButton } from './ClearButton/ClearButton';\nimport { ControlledDateTimePickerDatatestid } from '../ControlledDateTimePickerDatatestid';\n\nexport const ControlledDateTimePickerContent = (): JSX.Element => {\n const {\n props: { hasError, disabled },\n hideDate,\n hideDatePicker,\n hideTime,\n hideTimePicker,\n hideDateTimePicker,\n withAnyPicker,\n withAnyRightController,\n shouldPreserveClearableSpace,\n isControllerOnly,\n globalAttrs,\n xstyledAttrs,\n onGlobalKeyDown,\n trackFocusResetter,\n } = useContext(ControlledDateTimePickerContext);\n\n const styledsAttrs = {\n justPicker: hideDate && hideTime,\n withAnyPicker,\n hasError,\n isControllerOnly,\n };\n\n const mainCols = [];\n if (!hideDate) mainCols.push('auto');\n if (!hideTime) mainCols.push('auto');\n if (withAnyRightController) mainCols.push('auto');\n\n const rightControlCols = [];\n if (shouldPreserveClearableSpace) rightControlCols.push('28px');\n if (withAnyPicker) rightControlCols.push('auto');\n\n return (\n <>\n {/* The <div> element is catching the component-wise global hotkeys, there is no valid aria role for this */}\n {/* eslint-disable-next-line max-len */}\n {/* https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-static-element-interactions.md#case-the-event-handler-is-only-being-used-to-capture-bubbled-events */}\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <StyledInputsWrapperGrid\n cols={mainCols}\n gutter=\"xxs\"\n pr={hideDatePicker && hideTimePicker && hideDateTimePicker ? '2px' : undefined}\n onKeyDown={onGlobalKeyDown}\n disabled={disabled}\n onBlur={trackFocusResetter}\n data-testid={ControlledDateTimePickerDatatestid.CONTAINER}\n {...styledsAttrs}\n {...globalAttrs}\n {...xstyledAttrs}\n >\n {hideDate ? null : <DateInputs />}\n {hideTime ? null : <TimeInputs />}\n {withAnyRightController ? (\n <Grid cols={rightControlCols}>\n {shouldPreserveClearableSpace ? <ClearButton /> : null}\n {withAnyPicker ? <PickersIcons /> : null}\n </Grid>\n ) : null}\n </StyledInputsWrapperGrid>\n </>\n );\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";AAAA;ACCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,MAAM,kCAAkC,MAAmB;AAChE,QAAM;AAAA,IACJ,OAAO,EAAE,UAAU;AAAA,IACnB;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,MACE,WAAW,+BAA+B;AAE9C,QAAM,eAAe;AAAA,IACnB,YAAY,YAAY;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,QAAM,WAAW,CAAC;AAClB,MAAI,CAAC;AAAU,aAAS,KAAK,MAAM;AACnC,MAAI,CAAC;AAAU,aAAS,KAAK,MAAM;AACnC,MAAI;AAAwB,aAAS,KAAK,MAAM;AAEhD,QAAM,mBAAmB,CAAC;AAC1B,MAAI;AAA8B,qBAAiB,KAAK,MAAM;AAC9D,MAAI;AAAe,qBAAiB,KAAK,MAAM;AAE/C,SACE,4DAKE,qCAAC;AAAA,IACC,MAAM;AAAA,IACN,QAAO;AAAA,IACP,IAAI,kBAAkB,kBAAkB,qBAAqB,QAAQ;AAAA,IACrE,WAAW;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,IACR,eAAa,mCAAmC;AAAA,IAC/C,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,KAEH,WAAW,OAAO,qCAAC,gBAAW,GAC9B,WAAW,OAAO,qCAAC,gBAAW,GAC9B,yBACC,qCAAC;AAAA,IAAK,MAAM;AAAA,KACT,+BAA+B,qCAAC,iBAAY,IAAK,MACjD,gBAAgB,qCAAC,kBAAa,IAAK,IACtC,IACE,IACN,CACF;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,23 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __defProps = Object.defineProperties;
|
|
4
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
8
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
-
var __spreadValues = (a, b) => {
|
|
10
|
-
for (var prop in b || (b = {}))
|
|
11
|
-
if (__hasOwnProp.call(b, prop))
|
|
12
|
-
__defNormalProp(a, prop, b[prop]);
|
|
13
|
-
if (__getOwnPropSymbols)
|
|
14
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
15
|
-
if (__propIsEnum.call(b, prop))
|
|
16
|
-
__defNormalProp(a, prop, b[prop]);
|
|
17
|
-
}
|
|
18
|
-
return a;
|
|
19
|
-
};
|
|
20
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
21
2
|
import * as React from "react";
|
|
22
3
|
import { useCallback, useMemo, useContext } from "react";
|
|
23
4
|
import { ControlledDateTimePickerContext } from "../../ControlledDateTimePickerCTX";
|
|
@@ -67,9 +48,11 @@ const useDateInputs = () => {
|
|
|
67
48
|
day,
|
|
68
49
|
year
|
|
69
50
|
});
|
|
70
|
-
const finalMetaInfo =
|
|
51
|
+
const finalMetaInfo = {
|
|
52
|
+
...metaInfo,
|
|
53
|
+
...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),
|
|
71
54
|
newDateString
|
|
72
|
-
}
|
|
55
|
+
};
|
|
73
56
|
appOnMonthChange(newMonth, e, finalMetaInfo);
|
|
74
57
|
handleChangeComposedDateString(newDateString, finalMetaInfo);
|
|
75
58
|
}, [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString]);
|
|
@@ -129,9 +112,11 @@ const useDateInputs = () => {
|
|
|
129
112
|
day: newDay,
|
|
130
113
|
year
|
|
131
114
|
});
|
|
132
|
-
const finalMetaInfo =
|
|
115
|
+
const finalMetaInfo = {
|
|
116
|
+
...metaInfo,
|
|
117
|
+
...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),
|
|
133
118
|
newDateString
|
|
134
|
-
}
|
|
119
|
+
};
|
|
135
120
|
appOnDayChange(newDay, e, finalMetaInfo);
|
|
136
121
|
handleChangeComposedDateString(newDateString, finalMetaInfo);
|
|
137
122
|
}, [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString]);
|
|
@@ -202,9 +187,11 @@ const useDateInputs = () => {
|
|
|
202
187
|
day,
|
|
203
188
|
year: newYear
|
|
204
189
|
});
|
|
205
|
-
const finalMetaInfo =
|
|
190
|
+
const finalMetaInfo = {
|
|
191
|
+
...metaInfo,
|
|
192
|
+
...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),
|
|
206
193
|
newDateString
|
|
207
|
-
}
|
|
194
|
+
};
|
|
208
195
|
appOnYearChange(newYear, e, finalMetaInfo);
|
|
209
196
|
handleChangeComposedDateString(newDateString, finalMetaInfo);
|
|
210
197
|
}, [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString]);
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/DateInputs/useDateInputs.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useCallback, useMemo, useContext } from 'react';\nimport { ControlledDateTimePickerContext } from '../../ControlledDateTimePickerCTX';\nimport {\n getFormattedDateString,\n prependStringWithPlaceHolders,\n fillStringWithPlaceHolders,\n} from '../../utils/stringHelpers';\nimport { getValidationDateStringMetaInfo } from '../../utils/dateHelpers';\nimport { defaultMetaInfo } from '../../utils/constants';\nimport type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes';\nimport type { DSControlledDateTimePickerT } from '../../propTypes';\n\nexport const useDateInputs = (): DSControlledDateTimePickerInternalsT.UseDateInputsR => {\n const {\n props: { disabled },\n appOnMonthChange,\n appOnDayChange,\n appOnYearChange,\n getIsDisabledDay,\n getIsOutOfRangeDay,\n month,\n day,\n year,\n hideTime,\n handleChangeComposedDateString,\n withClearBtn,\n withAnyPicker,\n withAnyRightController,\n autoFocusMonthInput,\n trackFocusResetter,\n trackFocusFirstSegment,\n trackFocusLastSegment,\n trackFocusDayInput,\n trackFocusMonthInput,\n trackFocusYearInput,\n trackFocusHourInput,\n trackFocusClearBtn,\n trackFocusPicker,\n } = useContext(ControlledDateTimePickerContext);\n\n const onHomeKeyDown = useCallback(() => {\n trackFocusFirstSegment();\n }, [trackFocusFirstSegment]);\n const onEndKeyDown = useCallback(() => {\n trackFocusLastSegment();\n }, [trackFocusLastSegment]);\n\n const handleChangeMonth = useCallback(\n (\n newMonth: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = defaultMetaInfo,\n ) => {\n const newDateString = getFormattedDateString({\n month: newMonth,\n day,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnMonthChange(newMonth, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString],\n );\n const onMonthFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc = useCallback(() => {\n trackFocusMonthInput();\n }, [trackFocusMonthInput]);\n const onMonthChange: DSControlledDateTimePickerInternalsT.OnChangeFunc = useCallback(\n (e) => {\n let newMonth = e?.target?.value;\n // converts months 2~9 to 02~09\n if (Number.parseInt(newMonth, 10) > 1) newMonth = prependStringWithPlaceHolders(newMonth, 2);\n handleChangeMonth(newMonth, e);\n // auto-advance functionality:\n if (newMonth.length === 2) trackFocusDayInput();\n },\n [handleChangeMonth, trackFocusDayInput],\n );\n const onMonthKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown = useCallback(\n (e) => {\n const { key, ctrlKey, metaKey } = e;\n const monthStringConvertedToInteger = Number.parseInt(month, 10);\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.stopPropagation();\n if (key === 'Home') onHomeKeyDown();\n if (key === 'End') onEndKeyDown();\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n const monthInteger = Number.isNaN(monthStringConvertedToInteger) ? 0 : monthStringConvertedToInteger;\n let newMonth;\n if (key === 'ArrowUp') newMonth = monthInteger + 1 <= 12 ? monthInteger + 1 : monthInteger;\n else newMonth = monthInteger - 1 > 0 ? monthInteger - 1 : 1;\n newMonth = prependStringWithPlaceHolders(`${newMonth}`, 2);\n handleChangeMonth(newMonth, e);\n }\n if (!Number.isNaN(monthStringConvertedToInteger) && (key === '-' || key === '/' || key === '\\\\')) {\n const newMonth = prependStringWithPlaceHolders(`${monthStringConvertedToInteger}`, 2);\n handleChangeMonth(newMonth, e);\n // auto-advance functionality:\n if (newMonth.length === 2) trackFocusDayInput();\n }\n\n // focus last fragment on fill with now\n if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();\n },\n [month, onHomeKeyDown, onEndKeyDown, trackFocusLastSegment, trackFocusDayInput, handleChangeMonth],\n );\n const onMonthBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc = useCallback(\n (e) => {\n const newMonth = e?.target?.value;\n if (newMonth === '0') handleChangeMonth('01', e, { isAutomaticFillTrigger: true });\n else if (newMonth.length > 0 && newMonth.length < 2)\n handleChangeMonth(prependStringWithPlaceHolders(newMonth, 2), e, {\n isAutomaticFillTrigger: true,\n });\n },\n [handleChangeMonth],\n );\n\n const handleChangeDay = useCallback(\n (\n newDay: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = defaultMetaInfo,\n ) => {\n const newDateString = getFormattedDateString({\n month,\n day: newDay,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnDayChange(newDay, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString],\n );\n const onDayFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc = useCallback(() => {\n trackFocusDayInput();\n }, [trackFocusDayInput]);\n const onDayChange: DSControlledDateTimePickerInternalsT.OnChangeFunc = useCallback(\n (e) => {\n let newDay = e?.target?.value;\n // converts days 4~9 to 04~09\n if (Number.parseInt(newDay, 10) > 3) newDay = prependStringWithPlaceHolders(newDay, 2);\n handleChangeDay(newDay, e);\n // auto-advance functionality:\n if (newDay.length === 2) trackFocusYearInput();\n },\n [handleChangeDay, trackFocusYearInput],\n );\n const onDayKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown = useCallback(\n (e) => {\n const { key, ctrlKey, metaKey } = e;\n const dayStringConvertedToInteger = Number.parseInt(day, 10);\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.stopPropagation();\n\n if (key === 'Home') onHomeKeyDown();\n if (key === 'End') onEndKeyDown();\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n const dayInteger = Number.isNaN(dayStringConvertedToInteger) ? 0 : dayStringConvertedToInteger;\n let newDay;\n if (key === 'ArrowUp') newDay = dayInteger + 1 <= 31 ? dayInteger + 1 : dayInteger;\n else newDay = dayInteger - 1 > 0 ? dayInteger - 1 : 1;\n newDay = prependStringWithPlaceHolders(`${newDay}`, 2);\n handleChangeDay(newDay, e);\n }\n if (!Number.isNaN(dayStringConvertedToInteger) && (key === '-' || key === '/' || key === '\\\\')) {\n const newDay = prependStringWithPlaceHolders(`${dayStringConvertedToInteger}`, 2);\n handleChangeDay(newDay, e);\n // auto-advance functionality:\n if (newDay.length === 2) trackFocusYearInput();\n }\n // regressive backspace functionality\n if (key === 'Backspace' && day?.length === 0) {\n trackFocusMonthInput();\n }\n // focus last fragment on fill with now\n if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();\n },\n [\n day,\n onHomeKeyDown,\n onEndKeyDown,\n trackFocusLastSegment,\n handleChangeDay,\n trackFocusYearInput,\n trackFocusMonthInput,\n ],\n );\n const onDayBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc = useCallback(\n (e) => {\n const newDay = e?.target?.value;\n if (newDay === '0') handleChangeDay('01', e, { isAutomaticFillTrigger: true });\n else if (newDay.length > 0 && newDay.length < 2)\n handleChangeDay(prependStringWithPlaceHolders(newDay, 2), e, {\n isAutomaticFillTrigger: true,\n });\n },\n [handleChangeDay],\n );\n\n const handleChangeYear = useCallback(\n (\n newYear: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = defaultMetaInfo,\n ) => {\n const newDateString = getFormattedDateString({\n month,\n day,\n year: newYear,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnYearChange(newYear, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString],\n );\n const onYearFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc = useCallback(() => {\n trackFocusYearInput();\n }, [trackFocusYearInput]);\n const onYearChange: DSControlledDateTimePickerInternalsT.OnChangeFunc = useCallback(\n (e) => {\n const newYear = e?.target?.value;\n handleChangeYear(newYear, e);\n // auto-advance functionality:\n if (newYear.length === 4) {\n if (!hideTime) trackFocusHourInput();\n else if (withAnyRightController) {\n if (withClearBtn) trackFocusClearBtn();\n else if (withAnyPicker) trackFocusPicker();\n // pending approval from Seda, check which one should be focused first...\n }\n }\n },\n [\n handleChangeYear,\n hideTime,\n trackFocusHourInput,\n withAnyRightController,\n withClearBtn,\n trackFocusClearBtn,\n withAnyPicker,\n trackFocusPicker,\n ],\n );\n const onYearKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown = useCallback(\n (e) => {\n const { key, ctrlKey, metaKey } = e;\n\n /* ****** New year value calculator logic ********* */\n const yearStringConvertedToInteger = Number.parseInt(year, 10);\n const yearInteger = Number.isNaN(yearStringConvertedToInteger) ? 0 : yearStringConvertedToInteger;\n let newYear = yearInteger !== 0 ? fillStringWithPlaceHolders(`${yearInteger}`, 4, '0') : '';\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n let newYearInteger;\n if (key === 'ArrowUp') newYearInteger = yearInteger + 1 <= 9999 ? yearInteger + 1 : yearInteger;\n else newYearInteger = yearInteger - 1 > 0 ? yearInteger - 1 : 1;\n newYear = prependStringWithPlaceHolders(`${newYearInteger}`, 4);\n }\n const isAutomaticFillTrigger = newYear !== year && ['Tab', ' '].includes(key);\n const metainfo = { isAutomaticFillTrigger };\n\n /* ************* new year apply logic ************* */\n // tab/spacebar applies auto-fill\n // arrows up/down applies increment/decrement\n if (key === 'ArrowUp' || key === 'ArrowDown' || isAutomaticFillTrigger) {\n handleChangeYear(newYear, e, metainfo);\n }\n\n /* ************* focus tracking logic ************* */\n let trackNextFocus = trackFocusResetter; // if nothing after, we reset internal focus tracker to avoid re-render unexpected focus shift\n if (!hideTime) trackNextFocus = trackFocusHourInput;\n else if (withClearBtn) trackNextFocus = trackFocusClearBtn;\n else if (withAnyPicker) trackNextFocus = trackFocusPicker;\n\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', ' '].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', ' '].includes(key)) e.stopPropagation();\n if (key === 'Home') onHomeKeyDown();\n if (key === 'End') onEndKeyDown();\n\n /* ************** auto-advance logic ************** */\n if (key === ' ') {\n // auto-advance functionality:\n trackNextFocus();\n }\n /* ********** regressive backspace logic ********** */\n if (key === 'Backspace' && year?.length === 0) {\n trackFocusDayInput();\n }\n // focus last fragment on fill with now\n if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();\n },\n [\n year,\n trackFocusResetter,\n hideTime,\n trackFocusHourInput,\n withClearBtn,\n trackFocusClearBtn,\n withAnyPicker,\n trackFocusPicker,\n onHomeKeyDown,\n onEndKeyDown,\n trackFocusLastSegment,\n trackFocusDayInput,\n handleChangeYear,\n ],\n );\n const onYearBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc = useCallback(() => {\n // this was used before, now that we have a wrapping onBlur resetting the focus tracker, this is unused;\n }, []);\n\n return useMemo(\n () => ({\n month,\n day,\n year,\n autoFocusMonthInput,\n disabled,\n onMonthFocus,\n onMonthChange,\n onDayFocus,\n onDayChange,\n onYearFocus,\n onYearChange,\n onMonthBlur,\n onDayBlur,\n onYearBlur,\n onMonthKeyDown,\n onDayKeyDown,\n onYearKeyDown,\n }),\n [\n month,\n day,\n year,\n autoFocusMonthInput,\n disabled,\n onMonthFocus,\n onMonthChange,\n onDayFocus,\n onDayChange,\n onYearFocus,\n onYearChange,\n onMonthBlur,\n onDayBlur,\n onYearBlur,\n onMonthKeyDown,\n onDayKeyDown,\n onYearKeyDown,\n ],\n );\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,23 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __defProps = Object.defineProperties;
|
|
4
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
8
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
-
var __spreadValues = (a, b) => {
|
|
10
|
-
for (var prop in b || (b = {}))
|
|
11
|
-
if (__hasOwnProp.call(b, prop))
|
|
12
|
-
__defNormalProp(a, prop, b[prop]);
|
|
13
|
-
if (__getOwnPropSymbols)
|
|
14
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
15
|
-
if (__propIsEnum.call(b, prop))
|
|
16
|
-
__defNormalProp(a, prop, b[prop]);
|
|
17
|
-
}
|
|
18
|
-
return a;
|
|
19
|
-
};
|
|
20
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
21
2
|
import * as React from "react";
|
|
22
3
|
import React2, { useContext, useCallback, useMemo } from "react";
|
|
23
4
|
import {
|
|
@@ -68,7 +49,7 @@ const Day = ({ metaDay, colIndex, isInvisible }) => {
|
|
|
68
49
|
handleFocusMetaDayByDay(day);
|
|
69
50
|
if (!isDisabled && !isOutOfRange) {
|
|
70
51
|
const newDateString = getDateStringFromDay(day);
|
|
71
|
-
const metaInfo =
|
|
52
|
+
const metaInfo = { ...defaultMetaInfo, newDateString };
|
|
72
53
|
const { month, day: dayNumber, year } = getDateValuesFromDate(day);
|
|
73
54
|
appOnMonthChange(`${month + 1}`, e, metaInfo);
|
|
74
55
|
if (dayNumber)
|
|
@@ -117,11 +98,12 @@ const Day = ({ metaDay, colIndex, isInvisible }) => {
|
|
|
117
98
|
dataTestid = ControlledDateTimePickerDatatestid.CALENDAR.END_RANGE_DAY;
|
|
118
99
|
if (isDayInRange)
|
|
119
100
|
dataTestid = ControlledDateTimePickerDatatestid.CALENDAR.IN_RANGE_DAY;
|
|
120
|
-
return /* @__PURE__ */ React2.createElement("div",
|
|
101
|
+
return /* @__PURE__ */ React2.createElement("div", {
|
|
121
102
|
className: dayClassModifiers,
|
|
122
103
|
style: isHidden ? displayNone : void 0,
|
|
123
|
-
role: !isInvisible ? "gridcell" : void 0
|
|
124
|
-
|
|
104
|
+
role: !isInvisible ? "gridcell" : void 0,
|
|
105
|
+
...Number.isInteger(colIndex) && { "aria-colindex": colIndex }
|
|
106
|
+
}, /* @__PURE__ */ React2.createElement(StyledDayBtn, {
|
|
125
107
|
"aria-label": `${getAriaDayFromDateString(dayAsString)}, ${weekDays[metaDay.day.getDay()]}`,
|
|
126
108
|
"aria-disabled": isOutOfRange || isDisabled,
|
|
127
109
|
"aria-hidden": !!isInvisible,
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/Pickers/Calendar/Day.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-statements */\n/* eslint-disable complexity */\n/* eslint-disable max-lines */\nimport React, { useContext, useCallback, useMemo } from 'react';\nimport {\n getDateStringFromDay,\n getDayFromDateString,\n getDateValuesFromDate,\n isSameDateMoment,\n compareTwoDatesDayEquality,\n} from '../../../utils/dateHelpers';\nimport { defaultMetaInfo, weekDays } from '../../../utils/constants';\nimport { getAriaDayFromDateString } from '../../../utils/stringHelpers';\nimport { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid';\nimport { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX';\nimport { CalendarContext } from './CalendarContext';\nimport { StyledDayBtn } from './Styleds';\nimport type { DSControlledDateTimePickerT } from '../../../propTypes';\nimport type { DSControlledDateTimePickerInternalsT } from '../../../sharedTypes';\n\ninterface CalendarDayPropsT {\n metaDay: DSControlledDateTimePickerInternalsT.MetaMonthDay;\n colIndex?: number;\n isInvisible?: boolean;\n}\nconst displayNone = { display: 'none' };\n\nexport const Day = ({ metaDay, colIndex, isInvisible }: CalendarDayPropsT): JSX.Element => {\n const { day, isCurrMonthDay, isHidden, dayBtnRef, dayAsString } = metaDay;\n const {\n handleChangeComposedDateString,\n dateStringFromProps,\n props: { preventCloseOnSelection },\n getIsDisabledDay,\n getIsOutOfRangeDay,\n getIsStartRangeDay,\n getIsDayInRange,\n getIsEndRangeDay,\n appOnMonthChange,\n appOnDayChange,\n appOnYearChange,\n latestInteractionRegion,\n isWithTimeWheelToo,\n trackFocusCalendarMetafocusedDay,\n } = useContext(ControlledDateTimePickerContext);\n const { focusedDay, handleDayOnKeyDown, handleFocusMetaDayByDay, closeCalendar } = useContext(CalendarContext);\n const isFocusedMetaDay = focusedDay?.day ? compareTwoDatesDayEquality(metaDay?.day, focusedDay?.day) : false;\n const isSelected = useMemo(() => {\n const selectedDate = getDayFromDateString(dateStringFromProps);\n return selectedDate ? isSameDateMoment(day, selectedDate) : false;\n }, [dateStringFromProps, day]);\n const isFocused = latestInteractionRegion === 'calendar-days' && isFocusedMetaDay;\n const isDisabled = getIsDisabledDay(metaDay.dayAsString);\n const isOutOfRange = getIsOutOfRangeDay(metaDay.dayAsString);\n const isStartRangeDay = getIsStartRangeDay(metaDay.dayAsString);\n const isEndRangeDay = getIsEndRangeDay(metaDay.dayAsString);\n const isDayInRange = !isStartRangeDay && !isEndRangeDay && getIsDayInRange(metaDay.dayAsString);\n\n const handleOnDayClick = useCallback(\n (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => {\n handleFocusMetaDayByDay(day);\n if (!isDisabled && !isOutOfRange) {\n const newDateString = getDateStringFromDay(day);\n const metaInfo = { ...defaultMetaInfo, newDateString };\n const { month, day: dayNumber, year } = getDateValuesFromDate(day);\n appOnMonthChange(`${month + 1}`, e, metaInfo);\n if (dayNumber) appOnDayChange(`${dayNumber}`, e, metaInfo);\n appOnYearChange(`${year}`, e, metaInfo);\n handleChangeComposedDateString(newDateString, metaInfo);\n trackFocusCalendarMetafocusedDay();\n if (!isWithTimeWheelToo && !preventCloseOnSelection) closeCalendar();\n }\n },\n [\n handleFocusMetaDayByDay,\n day,\n isDisabled,\n isOutOfRange,\n appOnMonthChange,\n appOnDayChange,\n appOnYearChange,\n handleChangeComposedDateString,\n trackFocusCalendarMetafocusedDay,\n isWithTimeWheelToo,\n preventCloseOnSelection,\n closeCalendar,\n ],\n );\n\n const handleInnerRef = useCallback(\n (ButtonDomNode: HTMLButtonElement) => {\n window.requestAnimationFrame(() => {\n dayBtnRef.current = ButtonDomNode;\n if (isFocused) ButtonDomNode?.focus?.();\n });\n },\n [dayBtnRef, isFocused],\n );\n\n const handleOnDayFocus = useCallback(() => {\n trackFocusCalendarMetafocusedDay('calendar-days');\n }, [trackFocusCalendarMetafocusedDay]);\n\n const dayClassModifiers = useMemo(\n () =>\n `dayWrapper ${isSelected ? 'selectedDay ' : ''}${isDisabled ? 'disabledDay ' : ''}${\n isOutOfRange ? 'outOfRangeDay ' : ''\n }${isFocused ? 'focusedDay ' : ''}${isStartRangeDay ? 'startRangeDay ' : ''}${isDayInRange ? 'inRangeDay ' : ''}${\n isEndRangeDay ? 'endRangeDay ' : ''\n }${isCurrMonthDay ? '' : 'notCurrentMonth'}`,\n [isSelected, isDisabled, isOutOfRange, isFocused, isStartRangeDay, isDayInRange, isEndRangeDay, isCurrMonthDay],\n );\n\n let dataTestid: string = ControlledDateTimePickerDatatestid.CALENDAR.DAY;\n if (isSelected) dataTestid = ControlledDateTimePickerDatatestid.CALENDAR.SELECTED_DAY;\n if (isFocused) dataTestid = ControlledDateTimePickerDatatestid.CALENDAR.FOCUSED_DAY;\n if (isFocused && isSelected) dataTestid = ControlledDateTimePickerDatatestid.CALENDAR.SELECTED_FOCUSED_DAY;\n if (isStartRangeDay) dataTestid = ControlledDateTimePickerDatatestid.CALENDAR.START_RANGE_DAY;\n if (isEndRangeDay) dataTestid = ControlledDateTimePickerDatatestid.CALENDAR.END_RANGE_DAY;\n if (isDayInRange) dataTestid = ControlledDateTimePickerDatatestid.CALENDAR.IN_RANGE_DAY;\n\n return (\n <div\n className={dayClassModifiers}\n style={isHidden ? displayNone : undefined}\n role={!isInvisible ? 'gridcell' : undefined}\n {...(Number.isInteger(colIndex) && { 'aria-colindex': colIndex })}\n >\n <StyledDayBtn\n aria-label={`${getAriaDayFromDateString(dayAsString)}, ${weekDays[metaDay.day.getDay()]}`}\n aria-disabled={isOutOfRange || isDisabled}\n aria-hidden={!!isInvisible}\n buttonType=\"raw\"\n size=\"m\"\n onClick={handleOnDayClick} // DSButton triggers this with \"spacebar\" and \"enter\" too...\n onFocus={handleOnDayFocus}\n onKeyDown={(e: React.KeyboardEvent<Element>) => {\n handleDayOnKeyDown(e, metaDay);\n }}\n innerRef={handleInnerRef}\n tabIndex={-1}\n data-isfocused={isFocused}\n data-testid={dataTestid}\n type=\"button\"\n >\n {`${day.getDate()}`}\n </StyledDayBtn>\n </div>\n );\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,20 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
6
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
7
|
-
var __spreadValues = (a, b) => {
|
|
8
|
-
for (var prop in b || (b = {}))
|
|
9
|
-
if (__hasOwnProp.call(b, prop))
|
|
10
|
-
__defNormalProp(a, prop, b[prop]);
|
|
11
|
-
if (__getOwnPropSymbols)
|
|
12
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
13
|
-
if (__propIsEnum.call(b, prop))
|
|
14
|
-
__defNormalProp(a, prop, b[prop]);
|
|
15
|
-
}
|
|
16
|
-
return a;
|
|
17
|
-
};
|
|
18
2
|
import * as React from "react";
|
|
19
3
|
import { useState, useMemo, useContext, useCallback } from "react";
|
|
20
4
|
import { ControlledDateTimePickerContext } from "../../../ControlledDateTimePickerCTX";
|
|
@@ -53,14 +37,18 @@ const useConfigCalendarCTX = () => {
|
|
|
53
37
|
currentDisplayedMonthLogic,
|
|
54
38
|
focusLogic
|
|
55
39
|
});
|
|
56
|
-
return useMemo(() =>
|
|
40
|
+
return useMemo(() => ({
|
|
57
41
|
showCalendar,
|
|
58
42
|
setShowCalendar,
|
|
59
43
|
onPrevYearFocus,
|
|
60
44
|
onPrevMonthFocus,
|
|
61
45
|
onNextMonthFocus,
|
|
62
|
-
onNextYearFocus
|
|
63
|
-
|
|
46
|
+
onNextYearFocus,
|
|
47
|
+
...currentDisplayedMonthLogic,
|
|
48
|
+
...focusLogic,
|
|
49
|
+
...popperTriggerLogic,
|
|
50
|
+
...keyboardHandlers
|
|
51
|
+
}), [
|
|
64
52
|
showCalendar,
|
|
65
53
|
onPrevYearFocus,
|
|
66
54
|
onPrevMonthFocus,
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/Pickers/Calendar/useConfigCalendarCTX.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useState, useMemo, useContext, useCallback } from 'react';\nimport { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX';\nimport { useCurrentDisplayedMonthYearLogic } from './useCurrentDisplayedMonthYearLogic';\nimport { useFocusLogic } from './useFocusLogic';\nimport { usePopperTriggerLogic } from './usePopperTriggerLogic';\nimport { useKeyboardHandlers } from './useKeyboardHandlers';\n\nexport type CalendarContextT = ReturnType<typeof useCurrentDisplayedMonthYearLogic> &\n ReturnType<typeof useFocusLogic> &\n ReturnType<typeof usePopperTriggerLogic> &\n ReturnType<typeof useKeyboardHandlers> & {\n showCalendar: boolean;\n setShowCalendar: StateSetter<boolean>;\n\n onPrevYearFocus: React.FocusEventHandler;\n onPrevMonthFocus: React.FocusEventHandler;\n onNextMonthFocus: React.FocusEventHandler;\n onNextYearFocus: React.FocusEventHandler;\n };\n\nexport const useConfigCalendarCTX = (): CalendarContextT => {\n const {\n trackFocusCalendarPrevYear,\n trackFocusCalendarNextYear,\n trackFocusCalendarPrevMonth,\n trackFocusCalendarNextMonth,\n } = useContext(ControlledDateTimePickerContext);\n const [showCalendar, setShowCalendar] = useState(false);\n\n const onPrevYearFocus = useCallback(() => {\n trackFocusCalendarPrevYear();\n }, [trackFocusCalendarPrevYear]);\n const onPrevMonthFocus = useCallback(() => {\n trackFocusCalendarPrevMonth();\n }, [trackFocusCalendarPrevMonth]);\n const onNextMonthFocus = useCallback(() => {\n trackFocusCalendarNextMonth();\n }, [trackFocusCalendarNextMonth]);\n const onNextYearFocus = useCallback(() => {\n trackFocusCalendarNextYear();\n }, [trackFocusCalendarNextYear]);\n\n const currentDisplayedMonthLogic = useCurrentDisplayedMonthYearLogic();\n const focusLogic = useFocusLogic({ currentDisplayedMonthLogic, showCalendar });\n const popperTriggerLogic = usePopperTriggerLogic({\n focusLogic,\n showCalendar,\n setShowCalendar,\n });\n const keyboardHandlers = useKeyboardHandlers({\n currentDisplayedMonthLogic,\n focusLogic,\n });\n\n return useMemo(\n () => ({\n showCalendar,\n setShowCalendar,\n\n onPrevYearFocus,\n onPrevMonthFocus,\n onNextMonthFocus,\n onNextYearFocus,\n\n ...currentDisplayedMonthLogic,\n ...focusLogic,\n ...popperTriggerLogic,\n ...keyboardHandlers,\n }),\n [\n showCalendar,\n onPrevYearFocus,\n onPrevMonthFocus,\n onNextMonthFocus,\n onNextYearFocus,\n currentDisplayedMonthLogic,\n focusLogic,\n popperTriggerLogic,\n keyboardHandlers,\n ],\n );\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";AAAA;ACGA;AACA;AACA;AACA;AACA;AACA;AAeO,MAAM,uBAAuB,MAAwB;AAC1D,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,WAAW,+BAA+B;AAC9C,QAAM,CAAC,cAAc,mBAAmB,SAAS,KAAK;AAEtD,QAAM,kBAAkB,YAAY,MAAM;AACxC,+BAA2B;AAAA,EAC7B,GAAG,CAAC,0BAA0B,CAAC;AAC/B,QAAM,mBAAmB,YAAY,MAAM;AACzC,gCAA4B;AAAA,EAC9B,GAAG,CAAC,2BAA2B,CAAC;AAChC,QAAM,mBAAmB,YAAY,MAAM;AACzC,gCAA4B;AAAA,EAC9B,GAAG,CAAC,2BAA2B,CAAC;AAChC,QAAM,kBAAkB,YAAY,MAAM;AACxC,+BAA2B;AAAA,EAC7B,GAAG,CAAC,0BAA0B,CAAC;AAE/B,QAAM,6BAA6B,kCAAkC;AACrE,QAAM,aAAa,cAAc,EAAE,4BAA4B,aAAa,CAAC;AAC7E,QAAM,qBAAqB,sBAAsB;AAAA,IAC/C;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,mBAAmB,oBAAoB;AAAA,IAC3C;AAAA,IACA;AAAA,EACF,CAAC;AAED,SAAO,QACL,MAAO;AAAA,IACL;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL,IACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|