@transferwise/components 46.140.0 → 46.141.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/avatarWrapper/AvatarWrapper.js +3 -4
- package/build/avatarWrapper/AvatarWrapper.js.map +1 -1
- package/build/avatarWrapper/AvatarWrapper.mjs +4 -5
- package/build/avatarWrapper/AvatarWrapper.mjs.map +1 -1
- package/build/button/LegacyButton.js.map +1 -1
- package/build/button/LegacyButton.mjs.map +1 -1
- package/build/common/hooks/useHasIntersected/useHasIntersected.js +6 -4
- package/build/common/hooks/useHasIntersected/useHasIntersected.js.map +1 -1
- package/build/common/hooks/useHasIntersected/useHasIntersected.mjs +6 -4
- package/build/common/hooks/useHasIntersected/useHasIntersected.mjs.map +1 -1
- package/build/common/liveRegion/LiveRegion.js +4 -1
- package/build/common/liveRegion/LiveRegion.js.map +1 -1
- package/build/common/liveRegion/LiveRegion.mjs +4 -1
- package/build/common/liveRegion/LiveRegion.mjs.map +1 -1
- package/build/dateInput/DateInput.js +10 -10
- package/build/dateInput/DateInput.js.map +1 -1
- package/build/dateInput/DateInput.mjs +10 -10
- package/build/dateInput/DateInput.mjs.map +1 -1
- package/build/dateLookup/DateLookup.js +1 -1
- package/build/dateLookup/DateLookup.js.map +1 -1
- package/build/dateLookup/DateLookup.mjs +1 -1
- package/build/dateLookup/DateLookup.mjs.map +1 -1
- package/build/dateLookup/monthCalendar/table/MonthCalendarTable.js +1 -1
- package/build/dateLookup/monthCalendar/table/MonthCalendarTable.js.map +1 -1
- package/build/dateLookup/monthCalendar/table/MonthCalendarTable.mjs +1 -1
- package/build/dateLookup/monthCalendar/table/MonthCalendarTable.mjs.map +1 -1
- package/build/dateLookup/yearCalendar/table/YearCalendarTable.js +1 -1
- package/build/dateLookup/yearCalendar/table/YearCalendarTable.js.map +1 -1
- package/build/dateLookup/yearCalendar/table/YearCalendarTable.mjs +1 -1
- package/build/dateLookup/yearCalendar/table/YearCalendarTable.mjs.map +1 -1
- package/build/expressiveMoneyInput/ExpressiveMoneyInput.js.map +1 -1
- package/build/expressiveMoneyInput/ExpressiveMoneyInput.mjs.map +1 -1
- package/build/expressiveMoneyInput/amountInput/AmountInput.js +17 -11
- package/build/expressiveMoneyInput/amountInput/AmountInput.js.map +1 -1
- package/build/expressiveMoneyInput/amountInput/AmountInput.mjs +18 -12
- package/build/expressiveMoneyInput/amountInput/AmountInput.mjs.map +1 -1
- package/build/expressiveMoneyInput/hooks/useInputStyle.js +8 -6
- package/build/expressiveMoneyInput/hooks/useInputStyle.js.map +1 -1
- package/build/expressiveMoneyInput/hooks/useInputStyle.mjs +9 -7
- package/build/expressiveMoneyInput/hooks/useInputStyle.mjs.map +1 -1
- package/build/header/Header.js +1 -1
- package/build/header/Header.js.map +1 -1
- package/build/header/Header.mjs +1 -1
- package/build/header/Header.mjs.map +1 -1
- package/build/inputs/SelectInput/BottomSheet/SelectInputBottomSheet.js.map +1 -1
- package/build/inputs/SelectInput/BottomSheet/SelectInputBottomSheet.mjs.map +1 -1
- package/build/inputs/SelectInput/Options/SelectInputOptions.js +34 -22
- package/build/inputs/SelectInput/Options/SelectInputOptions.js.map +1 -1
- package/build/inputs/SelectInput/Options/SelectInputOptions.mjs +35 -23
- package/build/inputs/SelectInput/Options/SelectInputOptions.mjs.map +1 -1
- package/build/inputs/SelectInput/Popover/SelectInputPopover.js.map +1 -1
- package/build/inputs/SelectInput/Popover/SelectInputPopover.mjs.map +1 -1
- package/build/inputs/SelectInput/SelectInput.js +8 -6
- package/build/inputs/SelectInput/SelectInput.js.map +1 -1
- package/build/inputs/SelectInput/SelectInput.mjs +9 -7
- package/build/inputs/SelectInput/SelectInput.mjs.map +1 -1
- package/build/inputs/SelectInput/TriggerButton/SelectInputTriggerButton.js.map +1 -1
- package/build/inputs/SelectInput/TriggerButton/SelectInputTriggerButton.mjs.map +1 -1
- package/build/main.css +58 -53
- package/build/nudge/Nudge.js +31 -15
- package/build/nudge/Nudge.js.map +1 -1
- package/build/nudge/Nudge.mjs +32 -16
- package/build/nudge/Nudge.mjs.map +1 -1
- package/build/phoneNumberInput/PhoneNumberInput.js +9 -12
- package/build/phoneNumberInput/PhoneNumberInput.js.map +1 -1
- package/build/phoneNumberInput/PhoneNumberInput.mjs +9 -12
- package/build/phoneNumberInput/PhoneNumberInput.mjs.map +1 -1
- package/build/promoCard/PromoCardGroup.js +34 -16
- package/build/promoCard/PromoCardGroup.js.map +1 -1
- package/build/promoCard/PromoCardGroup.mjs +35 -17
- package/build/promoCard/PromoCardGroup.mjs.map +1 -1
- package/build/segmentedControl/SegmentedControl.js +6 -1
- package/build/segmentedControl/SegmentedControl.js.map +1 -1
- package/build/segmentedControl/SegmentedControl.mjs +7 -2
- package/build/segmentedControl/SegmentedControl.mjs.map +1 -1
- package/build/styles/css/neptune.css +58 -53
- package/build/styles/less/neptune-tokens.less +2 -2
- package/build/styles/main.css +58 -53
- package/build/styles/props/neptune-tokens.css +1 -1
- package/build/styles/styles/less/core/viewport-themes.css +46 -42
- package/build/styles/styles/less/neptune.css +58 -53
- package/build/tabs/Tabs.js +1 -1
- package/build/tabs/Tabs.js.map +1 -1
- package/build/tabs/Tabs.mjs +1 -1
- package/build/tabs/Tabs.mjs.map +1 -1
- package/build/tooltip/Tooltip.js +6 -3
- package/build/tooltip/Tooltip.js.map +1 -1
- package/build/tooltip/Tooltip.mjs +6 -3
- package/build/tooltip/Tooltip.mjs.map +1 -1
- package/build/types/avatarWrapper/AvatarWrapper.d.ts.map +1 -1
- package/build/types/common/hooks/useHasIntersected/useHasIntersected.d.ts.map +1 -1
- package/build/types/common/liveRegion/LiveRegion.d.ts.map +1 -1
- package/build/types/dateLookup/monthCalendar/table/MonthCalendarTable.d.ts.map +1 -1
- package/build/types/expressiveMoneyInput/ExpressiveMoneyInput.d.ts.map +1 -1
- package/build/types/expressiveMoneyInput/amountInput/AmountInput.d.ts.map +1 -1
- package/build/types/expressiveMoneyInput/hooks/useInputStyle.d.ts +2 -2
- package/build/types/expressiveMoneyInput/hooks/useInputStyle.d.ts.map +1 -1
- package/build/types/expressiveMoneyInput/hooks/useSelectionRange.d.ts.map +1 -1
- package/build/types/inputs/SelectInput/BottomSheet/SelectInputBottomSheet.d.ts.map +1 -1
- package/build/types/inputs/SelectInput/Options/SelectInputOptions.d.ts.map +1 -1
- package/build/types/inputs/SelectInput/Popover/SelectInputPopover.d.ts.map +1 -1
- package/build/types/inputs/SelectInput/SelectInput.d.ts.map +1 -1
- package/build/types/nudge/Nudge.d.ts.map +1 -1
- package/build/types/phoneNumberInput/PhoneNumberInput.d.ts.map +1 -1
- package/build/types/promoCard/PromoCardGroup.d.ts.map +1 -1
- package/build/types/segmentedControl/SegmentedControl.d.ts.map +1 -1
- package/build/types/tooltip/Tooltip.d.ts.map +1 -1
- package/build/types/uploadInput/UploadInput.d.ts.map +1 -1
- package/build/uploadInput/UploadInput.js +29 -25
- package/build/uploadInput/UploadInput.js.map +1 -1
- package/build/uploadInput/UploadInput.mjs +29 -25
- package/build/uploadInput/UploadInput.mjs.map +1 -1
- package/package.json +3 -3
- package/src/avatarWrapper/AvatarWrapper.test.tsx +33 -3
- package/src/avatarWrapper/AvatarWrapper.tsx +5 -6
- package/src/button/LegacyButton.tsx +1 -1
- package/src/button/_stories/Button.test.story.tsx +3 -3
- package/src/common/hooks/useContainerSize.test.tsx +1 -1
- package/src/common/hooks/useHasIntersected/useHasIntersected.ts +12 -4
- package/src/common/liveRegion/LiveRegion.tsx +5 -2
- package/src/dateInput/DateInput.tsx +10 -10
- package/src/dateLookup/DateLookup.test.story.tsx +16 -0
- package/src/dateLookup/DateLookup.tsx +1 -1
- package/src/dateLookup/monthCalendar/table/MonthCalendarTable.tsx +1 -5
- package/src/dateLookup/yearCalendar/table/YearCalendarTable.tsx +1 -1
- package/src/expressiveMoneyInput/ExpressiveMoneyInput.tsx +1 -1
- package/src/expressiveMoneyInput/amountInput/AmountInput.tsx +22 -15
- package/src/expressiveMoneyInput/hooks/useInputStyle.ts +20 -8
- package/src/expressiveMoneyInput/hooks/useSelectionRange.ts +2 -0
- package/src/header/Header.tsx +2 -2
- package/src/inputs/SelectInput/BottomSheet/SelectInputBottomSheet.tsx +4 -0
- package/src/inputs/SelectInput/Options/SelectInputOptions.tsx +43 -27
- package/src/inputs/SelectInput/Popover/SelectInputPopover.tsx +4 -0
- package/src/inputs/SelectInput/SelectInput.tsx +21 -15
- package/src/inputs/SelectInput/TriggerButton/SelectInputTriggerButton.tsx +1 -1
- package/src/main.css +58 -53
- package/src/nudge/Nudge.tsx +29 -20
- package/src/phoneNumberInput/PhoneNumberInput.test.tsx +16 -0
- package/src/phoneNumberInput/PhoneNumberInput.tsx +11 -13
- package/src/promoCard/PromoCard.story.tsx +3 -3
- package/src/promoCard/PromoCardGroup.tsx +39 -21
- package/src/segmentedControl/SegmentedControl.test.tsx +25 -0
- package/src/segmentedControl/SegmentedControl.tsx +7 -1
- package/src/select/Select.story.tsx +1 -1
- package/src/styles/less/core/viewport-themes.css +46 -42
- package/src/styles/less/core/viewport-themes.less +2 -45
- package/src/styles/less/neptune.css +58 -53
- package/src/tabs/Tabs.tsx +1 -1
- package/src/tooltip/Tooltip.tsx +3 -0
- package/src/uploadInput/UploadInput.test.tsx +19 -0
- package/src/uploadInput/UploadInput.tsx +28 -24
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateInput.js","sources":["../../src/dateInput/DateInput.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport Body from '../body';\nimport { Input } from '../inputs/Input';\nimport {\n SelectInput,\n SelectInputOptionContent,\n type SelectInputProps,\n} from '../inputs/SelectInput';\nimport {\n DateMode,\n MonthFormat,\n Size,\n SizeLarge,\n SizeMedium,\n SizeSmall,\n Typography,\n} from '../common';\nimport { MDY, YMD, getMonthNames, isDateValid, isMonthAndYearFormat } from '../common/dateUtils';\nimport { useFieldLabelRef, useInputAttributes } from '../inputs/contexts';\nimport messages from './DateInput.messages';\nimport { convertToLocalMidnight } from './utils';\n\nexport interface DateInputProps {\n /** @deprecated Use `Field` wrapper or the `aria-labelledby` attribute instead. */\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n /** @default false */\n disabled?: boolean;\n /** @default 'md' */\n size?: SizeSmall | SizeMedium | SizeLarge;\n value?: Date | string;\n onChange: (value: string | null) => void;\n onFocus?: React.FocusEventHandler<HTMLDivElement | HTMLFieldSetElement>;\n onBlur?: React.FocusEventHandler<HTMLDivElement | HTMLFieldSetElement>;\n dayLabel?: string;\n dayAutoComplete?: string;\n monthLabel?: string;\n yearLabel?: string;\n yearAutoComplete?: string;\n /** @default 'long' */\n monthFormat?: `${MonthFormat}`;\n /** @default 'day-month-year' */\n mode?: `${DateMode}`;\n placeholders?: {\n day?: string;\n month?: string;\n year?: string;\n };\n id?: string;\n /** @default {} */\n selectProps?: Partial<SelectInputProps<number | null>>;\n}\n\n/**\n * To be passed to SelectInput's parentId prop for correct blur handling.\n */\nconst DATE_INPUT_PARENT_ID = 'dateInput';\n\nconst DateInput = ({\n 'aria-labelledby': ariaLabelledByProp,\n 'aria-label': ariaLabel,\n disabled = false,\n size = Size.MEDIUM,\n value,\n dayLabel,\n dayAutoComplete,\n monthLabel,\n yearLabel,\n yearAutoComplete,\n monthFormat = MonthFormat.LONG,\n mode = DateMode.DAY_MONTH_YEAR,\n onChange,\n onFocus,\n onBlur,\n placeholders,\n id: idProp,\n selectProps = {},\n}: DateInputProps) => {\n const inputAttributes = useInputAttributes({ nonLabelable: true });\n const fieldLabelRef = useFieldLabelRef();\n const dayRef = useRef<HTMLInputElement>(null);\n const monthRef = useRef<HTMLButtonElement>(null);\n const yearRef = useRef<HTMLInputElement>(null);\n const id = idProp ?? inputAttributes.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes['aria-labelledby'];\n\n const { locale, formatMessage } = useIntl();\n\n const getDateObject = (): Date | undefined => {\n if (value && isDateValid(value)) {\n return typeof value === 'string' ? convertToLocalMidnight(value) : value;\n }\n return undefined;\n };\n\n const getInitialDate = (unit: 'year' | 'month' | 'day'): number | null => {\n if (value && isDateValid(value)) {\n const dateObject = getDateObject();\n\n if (typeof value === 'string' && isMonthAndYearFormat(value) && unit === 'day') {\n return null;\n }\n\n if (dateObject !== undefined) {\n switch (unit) {\n case 'year':\n return dateObject.getFullYear();\n case 'month':\n return dateObject.getMonth();\n case 'day':\n return dateObject.getDate();\n default:\n return null;\n }\n }\n }\n return null;\n };\n\n const [day, setDay] = useState(() => getInitialDate('day'));\n const [displayDay, setDisplayDay] = useState(day?.toString());\n const [month, setMonth] = useState(() => getInitialDate('month'));\n const [year, setYear] = useState(() => getInitialDate('year'));\n const [displayYear, setDisplayYear] = useState(year?.toString());\n const [lastBroadcastedValue, setLastBroadcastedValue] = useState<Date | null | undefined>(\n getDateObject,\n );\n const monthNames = getMonthNames(locale, monthFormat);\n\n const monthYearOnly = mode === DateMode.MONTH_YEAR;\n const monthBeforeDay = MDY.has(locale);\n const yearFirst = YMD.has(locale);\n\n dayLabel ||= formatMessage(messages.dayLabel);\n monthLabel ||= formatMessage(messages.monthLabel);\n yearLabel ||= formatMessage(messages.yearLabel);\n placeholders = {\n day: placeholders?.day || formatMessage(messages.dayPlaceholder),\n month: placeholders?.month || formatMessage(messages.monthLabel),\n year: placeholders?.year || formatMessage(messages.yearPlaceholder),\n };\n\n useEffect(() => {\n const labelRef = fieldLabelRef?.current;\n\n if (labelRef) {\n const handleLabelClick = () => {\n // Not the best way to do this, but we're forced to recreate the native Label-click behavior\n if (monthYearOnly || monthBeforeDay) {\n monthRef.current?.click();\n } else if (yearFirst) {\n yearRef.current?.focus();\n } else {\n dayRef.current?.focus();\n }\n };\n\n labelRef.addEventListener('click', handleLabelClick);\n\n return () => {\n labelRef?.removeEventListener('click', handleLabelClick);\n };\n }\n }, [fieldLabelRef, id, monthBeforeDay, monthYearOnly, yearFirst]);\n\n const getDateAsString = (date: Date) => {\n if (!isDateValid(date)) {\n return '';\n }\n switch (mode) {\n case DateMode.MONTH_YEAR:\n return [date.getFullYear(), `0${date.getMonth() + 1}`.slice(-2)].join('-');\n case DateMode.DAY_MONTH_YEAR:\n default:\n return [\n date.getFullYear(),\n `0${date.getMonth() + 1}`.slice(-2),\n `0${date.getDate()}`.slice(-2),\n ].join('-');\n }\n };\n\n const getSelectElement = () => {\n return (\n <label className=\"d-flex flex-column\">\n <Body type={Typography.BODY_DEFAULT}>{monthLabel}</Body>\n <SelectInput\n triggerRef={monthRef}\n id={`${id}:month`}\n parentId={DATE_INPUT_PARENT_ID}\n name=\"month\"\n disabled={disabled}\n placeholder={placeholders?.month}\n items={Array.from({ length: 12 }, (_, index) => ({ type: 'option', value: index }))}\n size={size}\n value={month}\n renderValue={(selectedValue) => (\n <SelectInputOptionContent title={monthNames[selectedValue]} />\n )}\n onChange={(selectedValue) => handleMonthChange(selectedValue)}\n {...selectProps}\n />\n </label>\n );\n };\n\n const isDayValid = (newDay: number, newMonth: number, newYear: number) => {\n const maxDay = new Date(newYear, newMonth + 1, 0).getDate();\n return newDay <= maxDay;\n };\n\n const handleInternalValue = (newDay = day, newMonth = month, newYear = year) => {\n if (newDay == null || newDay === 0 || newMonth == null || newYear == null || newYear === 0) {\n broadcastNewValue(null);\n return;\n }\n if (!isDayValid(newDay, newMonth, newYear)) {\n broadcastNewValue(null);\n return;\n }\n\n const dateValue = new Date(newYear, newMonth, newDay);\n if (newYear < 100) {\n dateValue.setFullYear(newYear);\n }\n\n if (!isDateValid(dateValue)) {\n broadcastNewValue(null);\n return;\n }\n\n if (mode === DateMode.MONTH_YEAR) {\n if (newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n } else if (newDay !== day || newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n };\n\n const handleDayChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newDayString = event.target.value.replace(/\\D/g, '');\n const newDayNumber = Number.parseInt(newDayString, 10);\n\n setDay(newDayNumber);\n setDisplayDay(newDayString);\n handleInternalValue(newDayNumber, month, year);\n };\n\n const handleMonthChange = (selectedMonth: number | null) => {\n if (selectedMonth === null) {\n setMonth(null);\n handleInternalValue(day, null, year);\n return;\n }\n setMonth(selectedMonth);\n handleInternalValue(day, selectedMonth, year);\n };\n\n const handleYearChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newYearString = event.target.value.replace(/\\D/g, '');\n const newYearNumber = Number.parseInt(newYearString, 10);\n\n if (newYearString.length >= 4 && newYearString.length <= 6) {\n setYear(newYearNumber);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, newYearNumber);\n } else {\n setYear(null);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, null);\n }\n };\n\n const broadcastNewValue = (newValue: Date | null) => {\n if (newValue !== lastBroadcastedValue) {\n setLastBroadcastedValue(newValue);\n onChange(newValue != null ? getDateAsString(newValue) : null);\n }\n };\n\n const monthWidth = clsx({\n 'col-sm-8 tw-date--month': monthYearOnly,\n 'col-sm-5 tw-date--month': !monthYearOnly,\n });\n\n const getMonth = () => {\n return <div className={monthWidth}>{getSelectElement()}</div>;\n };\n\n const getDay = () => {\n return (\n <div className=\"col-sm-3 tw-date--day\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{dayLabel}</Body>\n <div className={`input-group input-group-${size} ${disabled ? 'disabled' : ''}`}>\n <Input\n ref={dayRef}\n id={`${id}:day`}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"day\"\n autoComplete={dayAutoComplete}\n value={displayDay || ''}\n placeholder={placeholders?.day}\n disabled={disabled}\n min={1}\n max={31}\n maxLength={2}\n onChange={(event) => handleDayChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n\n const getYear = () => {\n return (\n <div className=\"col-sm-4 tw-date--year\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{yearLabel}</Body>\n <div className={`input-group input-group-${size} ${disabled ? 'disabled' : ''}`}>\n <Input\n ref={yearRef}\n id={`${id}:year`}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"year\"\n autoComplete={yearAutoComplete}\n placeholder={placeholders?.year}\n value={displayYear || ''}\n disabled={disabled}\n min={0}\n max={9999}\n maxLength={6}\n onChange={(event) => handleYearChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n\n return (\n <fieldset\n id={id}\n className=\"tw-date\"\n aria-describedby={inputAttributes['aria-describedby']}\n aria-invalid={inputAttributes['aria-invalid']}\n aria-labelledby={ariaLabelledBy}\n aria-label={ariaLabel}\n data-wds-dateinput=\"\"\n onFocus={(event) =>\n shouldPropagateOnFocus(event) ? onFocus?.(event) : event.stopPropagation()\n }\n onBlur={(event) => (shouldPropagateOnBlur(event) ? onBlur?.(event) : event.stopPropagation())}\n >\n <div className=\"row\">\n {(() => {\n if (monthYearOnly) {\n return (\n <>\n {!yearFirst && getMonth()}\n {getYear()}\n {yearFirst && getMonth()}\n </>\n );\n }\n if (monthBeforeDay) {\n return (\n <>\n {getMonth()}\n {getDay()}\n {getYear()}\n </>\n );\n }\n if (yearFirst) {\n return (\n <>\n {getYear()}\n {getMonth()}\n {getDay()}\n </>\n );\n }\n return (\n <>\n {getDay()}\n {getMonth()}\n {getYear()}\n </>\n );\n })()}\n </div>\n </fieldset>\n );\n};\n\n// Should only propagate if the relatedTarget is not part of this DateInput component.\nfunction shouldPropagateOnFocus({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const blurredElementParent = target.closest('[data-wds-dateinput]');\n const focusedElementParent = relatedTarget?.closest('[data-wds-dateinput]');\n return blurredElementParent !== focusedElementParent;\n}\n\n// Should only propagate if the focus-gaining element is not part\n// of this DateInput component or the (dropdown) of the month select.\nfunction shouldPropagateOnBlur({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const blurredElementParent = target.closest('[data-wds-dateinput]');\n const focusedElementParent = relatedTarget?.closest('[data-wds-dateinput]');\n\n return (\n blurredElementParent !== focusedElementParent &&\n !target?.closest(`[data-wds-parent=\"${DATE_INPUT_PARENT_ID}\"]`) &&\n !relatedTarget?.closest(`[data-wds-parent=\"${DATE_INPUT_PARENT_ID}\"]`)\n );\n}\n\nexport default DateInput;\n"],"names":["DATE_INPUT_PARENT_ID","DateInput","ariaLabelledByProp","ariaLabel","disabled","size","Size","MEDIUM","value","dayLabel","dayAutoComplete","monthLabel","yearLabel","yearAutoComplete","monthFormat","MonthFormat","LONG","mode","DateMode","DAY_MONTH_YEAR","onChange","onFocus","onBlur","placeholders","id","idProp","selectProps","inputAttributes","useInputAttributes","nonLabelable","fieldLabelRef","useFieldLabelRef","dayRef","useRef","monthRef","yearRef","ariaLabelledBy","locale","formatMessage","useIntl","getDateObject","isDateValid","convertToLocalMidnight","undefined","getInitialDate","unit","dateObject","isMonthAndYearFormat","getFullYear","getMonth","getDate","day","setDay","useState","displayDay","setDisplayDay","toString","month","setMonth","year","setYear","displayYear","setDisplayYear","lastBroadcastedValue","setLastBroadcastedValue","monthNames","getMonthNames","monthYearOnly","MONTH_YEAR","monthBeforeDay","MDY","has","yearFirst","YMD","messages","dayPlaceholder","yearPlaceholder","useEffect","labelRef","current","handleLabelClick","click","focus","addEventListener","removeEventListener","getDateAsString","date","slice","join","getSelectElement","_jsxs","className","children","_jsx","Body","type","Typography","BODY_DEFAULT","SelectInput","triggerRef","parentId","name","placeholder","items","Array","from","length","_","index","renderValue","selectedValue","SelectInputOptionContent","title","handleMonthChange","isDayValid","newDay","newMonth","newYear","maxDay","Date","handleInternalValue","broadcastNewValue","dateValue","setFullYear","handleDayChange","event","newDayString","target","replace","newDayNumber","Number","parseInt","selectedMonth","handleYearChange","newYearString","newYearNumber","newValue","monthWidth","clsx","getDay","Input","ref","inputMode","pattern","autoComplete","min","max","maxLength","getYear","shouldPropagateOnFocus","stopPropagation","shouldPropagateOnBlur","_Fragment","relatedTarget","blurredElementParent","closest","focusedElementParent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateInput.js","sources":["../../src/dateInput/DateInput.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport Body from '../body';\nimport { Input } from '../inputs/Input';\nimport {\n SelectInput,\n SelectInputOptionContent,\n type SelectInputProps,\n} from '../inputs/SelectInput';\nimport {\n DateMode,\n MonthFormat,\n Size,\n SizeLarge,\n SizeMedium,\n SizeSmall,\n Typography,\n} from '../common';\nimport { MDY, YMD, getMonthNames, isDateValid, isMonthAndYearFormat } from '../common/dateUtils';\nimport { useFieldLabelRef, useInputAttributes } from '../inputs/contexts';\nimport messages from './DateInput.messages';\nimport { convertToLocalMidnight } from './utils';\n\nexport interface DateInputProps {\n /** @deprecated Use `Field` wrapper or the `aria-labelledby` attribute instead. */\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n /** @default false */\n disabled?: boolean;\n /** @default 'md' */\n size?: SizeSmall | SizeMedium | SizeLarge;\n value?: Date | string;\n onChange: (value: string | null) => void;\n onFocus?: React.FocusEventHandler<HTMLDivElement | HTMLFieldSetElement>;\n onBlur?: React.FocusEventHandler<HTMLDivElement | HTMLFieldSetElement>;\n dayLabel?: string;\n dayAutoComplete?: string;\n monthLabel?: string;\n yearLabel?: string;\n yearAutoComplete?: string;\n /** @default 'long' */\n monthFormat?: `${MonthFormat}`;\n /** @default 'day-month-year' */\n mode?: `${DateMode}`;\n placeholders?: {\n day?: string;\n month?: string;\n year?: string;\n };\n id?: string;\n /** @default {} */\n selectProps?: Partial<SelectInputProps<number | null>>;\n}\n\n/**\n * To be passed to SelectInput's parentId prop for correct blur handling.\n */\nconst DATE_INPUT_PARENT_ID = 'dateInput';\n\nconst DateInput = ({\n 'aria-labelledby': ariaLabelledByProp,\n 'aria-label': ariaLabel,\n disabled = false,\n size = Size.MEDIUM,\n value,\n dayLabel,\n dayAutoComplete,\n monthLabel,\n yearLabel,\n yearAutoComplete,\n monthFormat = MonthFormat.LONG,\n mode = DateMode.DAY_MONTH_YEAR,\n onChange,\n onFocus,\n onBlur,\n placeholders,\n id: idProp,\n selectProps = {},\n}: DateInputProps) => {\n const inputAttributes = useInputAttributes({ nonLabelable: true });\n const fieldLabelRef = useFieldLabelRef();\n const dayRef = useRef<HTMLInputElement>(null);\n const monthRef = useRef<HTMLButtonElement>(null);\n const yearRef = useRef<HTMLInputElement>(null);\n const id = idProp ?? inputAttributes.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes['aria-labelledby'];\n\n const { locale, formatMessage } = useIntl();\n\n const getDateObject = (): Date | undefined => {\n if (value && isDateValid(value)) {\n return typeof value === 'string' ? convertToLocalMidnight(value) : value;\n }\n return undefined;\n };\n\n const getInitialDate = (unit: 'year' | 'month' | 'day'): number | null => {\n if (value && isDateValid(value)) {\n const dateObject = getDateObject();\n\n if (typeof value === 'string' && isMonthAndYearFormat(value) && unit === 'day') {\n return null;\n }\n\n if (dateObject !== undefined) {\n switch (unit) {\n case 'year':\n return dateObject.getFullYear();\n case 'month':\n return dateObject.getMonth();\n case 'day':\n return dateObject.getDate();\n default:\n return null;\n }\n }\n }\n return null;\n };\n\n const [day, setDay] = useState(() => getInitialDate('day'));\n const [displayDay, setDisplayDay] = useState(day?.toString());\n const [month, setMonth] = useState(() => getInitialDate('month'));\n const [year, setYear] = useState(() => getInitialDate('year'));\n const [displayYear, setDisplayYear] = useState(year?.toString());\n const [lastBroadcastedValue, setLastBroadcastedValue] = useState<Date | null | undefined>(\n getDateObject,\n );\n const monthNames = getMonthNames(locale, monthFormat);\n\n const monthYearOnly = mode === DateMode.MONTH_YEAR;\n const monthBeforeDay = MDY.has(locale);\n const yearFirst = YMD.has(locale);\n\n const resolvedDayLabel = dayLabel || formatMessage(messages.dayLabel);\n const resolvedMonthLabel = monthLabel || formatMessage(messages.monthLabel);\n const resolvedYearLabel = yearLabel || formatMessage(messages.yearLabel);\n const resolvedPlaceholders = {\n day: placeholders?.day || formatMessage(messages.dayPlaceholder),\n month: placeholders?.month || formatMessage(messages.monthLabel),\n year: placeholders?.year || formatMessage(messages.yearPlaceholder),\n };\n\n useEffect(() => {\n const labelRef = fieldLabelRef?.current;\n\n if (labelRef) {\n const handleLabelClick = () => {\n // Not the best way to do this, but we're forced to recreate the native Label-click behavior\n if (monthYearOnly || monthBeforeDay) {\n monthRef.current?.click();\n } else if (yearFirst) {\n yearRef.current?.focus();\n } else {\n dayRef.current?.focus();\n }\n };\n\n labelRef.addEventListener('click', handleLabelClick);\n\n return () => {\n labelRef?.removeEventListener('click', handleLabelClick);\n };\n }\n }, [fieldLabelRef, id, monthBeforeDay, monthYearOnly, yearFirst]);\n\n const getDateAsString = (date: Date) => {\n if (!isDateValid(date)) {\n return '';\n }\n switch (mode) {\n case DateMode.MONTH_YEAR:\n return [date.getFullYear(), `0${date.getMonth() + 1}`.slice(-2)].join('-');\n case DateMode.DAY_MONTH_YEAR:\n default:\n return [\n date.getFullYear(),\n `0${date.getMonth() + 1}`.slice(-2),\n `0${date.getDate()}`.slice(-2),\n ].join('-');\n }\n };\n\n const getSelectElement = () => {\n return (\n <label className=\"d-flex flex-column\">\n <Body type={Typography.BODY_DEFAULT}>{resolvedMonthLabel}</Body>\n <SelectInput\n triggerRef={monthRef}\n id={`${id}:month`}\n parentId={DATE_INPUT_PARENT_ID}\n name=\"month\"\n disabled={disabled}\n placeholder={resolvedPlaceholders.month}\n items={Array.from({ length: 12 }, (_, index) => ({ type: 'option', value: index }))}\n size={size}\n value={month}\n renderValue={(selectedValue) => (\n <SelectInputOptionContent title={monthNames[selectedValue]} />\n )}\n onChange={(selectedValue) => handleMonthChange(selectedValue)}\n {...selectProps}\n />\n </label>\n );\n };\n\n const isDayValid = (newDay: number, newMonth: number, newYear: number) => {\n const maxDay = new Date(newYear, newMonth + 1, 0).getDate();\n return newDay <= maxDay;\n };\n\n const handleInternalValue = (newDay = day, newMonth = month, newYear = year) => {\n if (newDay == null || newDay === 0 || newMonth == null || newYear == null || newYear === 0) {\n broadcastNewValue(null);\n return;\n }\n if (!isDayValid(newDay, newMonth, newYear)) {\n broadcastNewValue(null);\n return;\n }\n\n const dateValue = new Date(newYear, newMonth, newDay);\n if (newYear < 100) {\n dateValue.setFullYear(newYear);\n }\n\n if (!isDateValid(dateValue)) {\n broadcastNewValue(null);\n return;\n }\n\n if (mode === DateMode.MONTH_YEAR) {\n if (newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n } else if (newDay !== day || newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n };\n\n const handleDayChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newDayString = event.target.value.replace(/\\D/g, '');\n const newDayNumber = Number.parseInt(newDayString, 10);\n\n setDay(newDayNumber);\n setDisplayDay(newDayString);\n handleInternalValue(newDayNumber, month, year);\n };\n\n const handleMonthChange = (selectedMonth: number | null) => {\n if (selectedMonth === null) {\n setMonth(null);\n handleInternalValue(day, null, year);\n return;\n }\n setMonth(selectedMonth);\n handleInternalValue(day, selectedMonth, year);\n };\n\n const handleYearChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newYearString = event.target.value.replace(/\\D/g, '');\n const newYearNumber = Number.parseInt(newYearString, 10);\n\n if (newYearString.length >= 4 && newYearString.length <= 6) {\n setYear(newYearNumber);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, newYearNumber);\n } else {\n setYear(null);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, null);\n }\n };\n\n const broadcastNewValue = (newValue: Date | null) => {\n if (newValue !== lastBroadcastedValue) {\n setLastBroadcastedValue(newValue);\n onChange(newValue != null ? getDateAsString(newValue) : null);\n }\n };\n\n const monthWidth = clsx({\n 'col-sm-8 tw-date--month': monthYearOnly,\n 'col-sm-5 tw-date--month': !monthYearOnly,\n });\n\n const getMonth = () => {\n return <div className={monthWidth}>{getSelectElement()}</div>;\n };\n\n const getDay = () => {\n return (\n <div className=\"col-sm-3 tw-date--day\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{resolvedDayLabel}</Body>\n <div className={`input-group input-group-${size} ${disabled ? 'disabled' : ''}`}>\n <Input\n ref={dayRef}\n id={`${id}:day`}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"day\"\n autoComplete={dayAutoComplete}\n value={displayDay || ''}\n placeholder={resolvedPlaceholders.day}\n disabled={disabled}\n min={1}\n max={31}\n maxLength={2}\n onChange={(event) => handleDayChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n\n const getYear = () => {\n return (\n <div className=\"col-sm-4 tw-date--year\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{resolvedYearLabel}</Body>\n <div className={`input-group input-group-${size} ${disabled ? 'disabled' : ''}`}>\n <Input\n ref={yearRef}\n id={`${id}:year`}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"year\"\n autoComplete={yearAutoComplete}\n placeholder={resolvedPlaceholders.year}\n value={displayYear || ''}\n disabled={disabled}\n min={0}\n max={9999}\n maxLength={6}\n onChange={(event) => handleYearChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n\n return (\n <fieldset\n id={id}\n className=\"tw-date\"\n aria-describedby={inputAttributes['aria-describedby']}\n aria-invalid={inputAttributes['aria-invalid']}\n aria-labelledby={ariaLabelledBy}\n aria-label={ariaLabel}\n data-wds-dateinput=\"\"\n onFocus={(event) =>\n shouldPropagateOnFocus(event) ? onFocus?.(event) : event.stopPropagation()\n }\n onBlur={(event) => (shouldPropagateOnBlur(event) ? onBlur?.(event) : event.stopPropagation())}\n >\n <div className=\"row\">\n {(() => {\n if (monthYearOnly) {\n return (\n <>\n {!yearFirst && getMonth()}\n {getYear()}\n {yearFirst && getMonth()}\n </>\n );\n }\n if (monthBeforeDay) {\n return (\n <>\n {getMonth()}\n {getDay()}\n {getYear()}\n </>\n );\n }\n if (yearFirst) {\n return (\n <>\n {getYear()}\n {getMonth()}\n {getDay()}\n </>\n );\n }\n return (\n <>\n {getDay()}\n {getMonth()}\n {getYear()}\n </>\n );\n })()}\n </div>\n </fieldset>\n );\n};\n\n// Should only propagate if the relatedTarget is not part of this DateInput component.\nfunction shouldPropagateOnFocus({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const blurredElementParent = target.closest('[data-wds-dateinput]');\n const focusedElementParent = relatedTarget?.closest('[data-wds-dateinput]');\n return blurredElementParent !== focusedElementParent;\n}\n\n// Should only propagate if the focus-gaining element is not part\n// of this DateInput component or the (dropdown) of the month select.\nfunction shouldPropagateOnBlur({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const blurredElementParent = target.closest('[data-wds-dateinput]');\n const focusedElementParent = relatedTarget?.closest('[data-wds-dateinput]');\n\n return (\n blurredElementParent !== focusedElementParent &&\n !target?.closest(`[data-wds-parent=\"${DATE_INPUT_PARENT_ID}\"]`) &&\n !relatedTarget?.closest(`[data-wds-parent=\"${DATE_INPUT_PARENT_ID}\"]`)\n );\n}\n\nexport default DateInput;\n"],"names":["DATE_INPUT_PARENT_ID","DateInput","ariaLabelledByProp","ariaLabel","disabled","size","Size","MEDIUM","value","dayLabel","dayAutoComplete","monthLabel","yearLabel","yearAutoComplete","monthFormat","MonthFormat","LONG","mode","DateMode","DAY_MONTH_YEAR","onChange","onFocus","onBlur","placeholders","id","idProp","selectProps","inputAttributes","useInputAttributes","nonLabelable","fieldLabelRef","useFieldLabelRef","dayRef","useRef","monthRef","yearRef","ariaLabelledBy","locale","formatMessage","useIntl","getDateObject","isDateValid","convertToLocalMidnight","undefined","getInitialDate","unit","dateObject","isMonthAndYearFormat","getFullYear","getMonth","getDate","day","setDay","useState","displayDay","setDisplayDay","toString","month","setMonth","year","setYear","displayYear","setDisplayYear","lastBroadcastedValue","setLastBroadcastedValue","monthNames","getMonthNames","monthYearOnly","MONTH_YEAR","monthBeforeDay","MDY","has","yearFirst","YMD","resolvedDayLabel","messages","resolvedMonthLabel","resolvedYearLabel","resolvedPlaceholders","dayPlaceholder","yearPlaceholder","useEffect","labelRef","current","handleLabelClick","click","focus","addEventListener","removeEventListener","getDateAsString","date","slice","join","getSelectElement","_jsxs","className","children","_jsx","Body","type","Typography","BODY_DEFAULT","SelectInput","triggerRef","parentId","name","placeholder","items","Array","from","length","_","index","renderValue","selectedValue","SelectInputOptionContent","title","handleMonthChange","isDayValid","newDay","newMonth","newYear","maxDay","Date","handleInternalValue","broadcastNewValue","dateValue","setFullYear","handleDayChange","event","newDayString","target","replace","newDayNumber","Number","parseInt","selectedMonth","handleYearChange","newYearString","newYearNumber","newValue","monthWidth","clsx","getDay","Input","ref","inputMode","pattern","autoComplete","min","max","maxLength","getYear","shouldPropagateOnFocus","stopPropagation","shouldPropagateOnBlur","_Fragment","relatedTarget","blurredElementParent","closest","focusedElementParent"],"mappings":"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"}
|
|
@@ -113,10 +113,10 @@ const DateInput = ({
|
|
|
113
113
|
const monthYearOnly = mode === DateMode.MONTH_YEAR;
|
|
114
114
|
const monthBeforeDay = MDY.has(locale);
|
|
115
115
|
const yearFirst = YMD.has(locale);
|
|
116
|
-
dayLabel
|
|
117
|
-
monthLabel
|
|
118
|
-
yearLabel
|
|
119
|
-
|
|
116
|
+
const resolvedDayLabel = dayLabel || formatMessage(messages.dayLabel);
|
|
117
|
+
const resolvedMonthLabel = monthLabel || formatMessage(messages.monthLabel);
|
|
118
|
+
const resolvedYearLabel = yearLabel || formatMessage(messages.yearLabel);
|
|
119
|
+
const resolvedPlaceholders = {
|
|
120
120
|
day: placeholders?.day || formatMessage(messages.dayPlaceholder),
|
|
121
121
|
month: placeholders?.month || formatMessage(messages.monthLabel),
|
|
122
122
|
year: placeholders?.year || formatMessage(messages.yearPlaceholder)
|
|
@@ -157,14 +157,14 @@ const DateInput = ({
|
|
|
157
157
|
className: "d-flex flex-column",
|
|
158
158
|
children: [/*#__PURE__*/jsx(Body, {
|
|
159
159
|
type: Typography.BODY_DEFAULT,
|
|
160
|
-
children:
|
|
160
|
+
children: resolvedMonthLabel
|
|
161
161
|
}), /*#__PURE__*/jsx(SelectInput, {
|
|
162
162
|
triggerRef: monthRef,
|
|
163
163
|
id: `${id}:month`,
|
|
164
164
|
parentId: DATE_INPUT_PARENT_ID,
|
|
165
165
|
name: "month",
|
|
166
166
|
disabled: disabled,
|
|
167
|
-
placeholder:
|
|
167
|
+
placeholder: resolvedPlaceholders.month,
|
|
168
168
|
items: Array.from({
|
|
169
169
|
length: 12
|
|
170
170
|
}, (_, index) => ({
|
|
@@ -261,7 +261,7 @@ const DateInput = ({
|
|
|
261
261
|
children: /*#__PURE__*/jsxs("label", {
|
|
262
262
|
children: [/*#__PURE__*/jsx(Body, {
|
|
263
263
|
type: Typography.BODY_DEFAULT,
|
|
264
|
-
children:
|
|
264
|
+
children: resolvedDayLabel
|
|
265
265
|
}), /*#__PURE__*/jsx("div", {
|
|
266
266
|
className: `input-group input-group-${size} ${disabled ? 'disabled' : ''}`,
|
|
267
267
|
children: /*#__PURE__*/jsx(Input, {
|
|
@@ -273,7 +273,7 @@ const DateInput = ({
|
|
|
273
273
|
name: "day",
|
|
274
274
|
autoComplete: dayAutoComplete,
|
|
275
275
|
value: displayDay || '',
|
|
276
|
-
placeholder:
|
|
276
|
+
placeholder: resolvedPlaceholders.day,
|
|
277
277
|
disabled: disabled,
|
|
278
278
|
min: 1,
|
|
279
279
|
max: 31,
|
|
@@ -290,7 +290,7 @@ const DateInput = ({
|
|
|
290
290
|
children: /*#__PURE__*/jsxs("label", {
|
|
291
291
|
children: [/*#__PURE__*/jsx(Body, {
|
|
292
292
|
type: Typography.BODY_DEFAULT,
|
|
293
|
-
children:
|
|
293
|
+
children: resolvedYearLabel
|
|
294
294
|
}), /*#__PURE__*/jsx("div", {
|
|
295
295
|
className: `input-group input-group-${size} ${disabled ? 'disabled' : ''}`,
|
|
296
296
|
children: /*#__PURE__*/jsx(Input, {
|
|
@@ -301,7 +301,7 @@ const DateInput = ({
|
|
|
301
301
|
pattern: "[0-9]*",
|
|
302
302
|
name: "year",
|
|
303
303
|
autoComplete: yearAutoComplete,
|
|
304
|
-
placeholder:
|
|
304
|
+
placeholder: resolvedPlaceholders.year,
|
|
305
305
|
value: displayYear || '',
|
|
306
306
|
disabled: disabled,
|
|
307
307
|
min: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateInput.mjs","sources":["../../src/dateInput/DateInput.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport Body from '../body';\nimport { Input } from '../inputs/Input';\nimport {\n SelectInput,\n SelectInputOptionContent,\n type SelectInputProps,\n} from '../inputs/SelectInput';\nimport {\n DateMode,\n MonthFormat,\n Size,\n SizeLarge,\n SizeMedium,\n SizeSmall,\n Typography,\n} from '../common';\nimport { MDY, YMD, getMonthNames, isDateValid, isMonthAndYearFormat } from '../common/dateUtils';\nimport { useFieldLabelRef, useInputAttributes } from '../inputs/contexts';\nimport messages from './DateInput.messages';\nimport { convertToLocalMidnight } from './utils';\n\nexport interface DateInputProps {\n /** @deprecated Use `Field` wrapper or the `aria-labelledby` attribute instead. */\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n /** @default false */\n disabled?: boolean;\n /** @default 'md' */\n size?: SizeSmall | SizeMedium | SizeLarge;\n value?: Date | string;\n onChange: (value: string | null) => void;\n onFocus?: React.FocusEventHandler<HTMLDivElement | HTMLFieldSetElement>;\n onBlur?: React.FocusEventHandler<HTMLDivElement | HTMLFieldSetElement>;\n dayLabel?: string;\n dayAutoComplete?: string;\n monthLabel?: string;\n yearLabel?: string;\n yearAutoComplete?: string;\n /** @default 'long' */\n monthFormat?: `${MonthFormat}`;\n /** @default 'day-month-year' */\n mode?: `${DateMode}`;\n placeholders?: {\n day?: string;\n month?: string;\n year?: string;\n };\n id?: string;\n /** @default {} */\n selectProps?: Partial<SelectInputProps<number | null>>;\n}\n\n/**\n * To be passed to SelectInput's parentId prop for correct blur handling.\n */\nconst DATE_INPUT_PARENT_ID = 'dateInput';\n\nconst DateInput = ({\n 'aria-labelledby': ariaLabelledByProp,\n 'aria-label': ariaLabel,\n disabled = false,\n size = Size.MEDIUM,\n value,\n dayLabel,\n dayAutoComplete,\n monthLabel,\n yearLabel,\n yearAutoComplete,\n monthFormat = MonthFormat.LONG,\n mode = DateMode.DAY_MONTH_YEAR,\n onChange,\n onFocus,\n onBlur,\n placeholders,\n id: idProp,\n selectProps = {},\n}: DateInputProps) => {\n const inputAttributes = useInputAttributes({ nonLabelable: true });\n const fieldLabelRef = useFieldLabelRef();\n const dayRef = useRef<HTMLInputElement>(null);\n const monthRef = useRef<HTMLButtonElement>(null);\n const yearRef = useRef<HTMLInputElement>(null);\n const id = idProp ?? inputAttributes.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes['aria-labelledby'];\n\n const { locale, formatMessage } = useIntl();\n\n const getDateObject = (): Date | undefined => {\n if (value && isDateValid(value)) {\n return typeof value === 'string' ? convertToLocalMidnight(value) : value;\n }\n return undefined;\n };\n\n const getInitialDate = (unit: 'year' | 'month' | 'day'): number | null => {\n if (value && isDateValid(value)) {\n const dateObject = getDateObject();\n\n if (typeof value === 'string' && isMonthAndYearFormat(value) && unit === 'day') {\n return null;\n }\n\n if (dateObject !== undefined) {\n switch (unit) {\n case 'year':\n return dateObject.getFullYear();\n case 'month':\n return dateObject.getMonth();\n case 'day':\n return dateObject.getDate();\n default:\n return null;\n }\n }\n }\n return null;\n };\n\n const [day, setDay] = useState(() => getInitialDate('day'));\n const [displayDay, setDisplayDay] = useState(day?.toString());\n const [month, setMonth] = useState(() => getInitialDate('month'));\n const [year, setYear] = useState(() => getInitialDate('year'));\n const [displayYear, setDisplayYear] = useState(year?.toString());\n const [lastBroadcastedValue, setLastBroadcastedValue] = useState<Date | null | undefined>(\n getDateObject,\n );\n const monthNames = getMonthNames(locale, monthFormat);\n\n const monthYearOnly = mode === DateMode.MONTH_YEAR;\n const monthBeforeDay = MDY.has(locale);\n const yearFirst = YMD.has(locale);\n\n dayLabel ||= formatMessage(messages.dayLabel);\n monthLabel ||= formatMessage(messages.monthLabel);\n yearLabel ||= formatMessage(messages.yearLabel);\n placeholders = {\n day: placeholders?.day || formatMessage(messages.dayPlaceholder),\n month: placeholders?.month || formatMessage(messages.monthLabel),\n year: placeholders?.year || formatMessage(messages.yearPlaceholder),\n };\n\n useEffect(() => {\n const labelRef = fieldLabelRef?.current;\n\n if (labelRef) {\n const handleLabelClick = () => {\n // Not the best way to do this, but we're forced to recreate the native Label-click behavior\n if (monthYearOnly || monthBeforeDay) {\n monthRef.current?.click();\n } else if (yearFirst) {\n yearRef.current?.focus();\n } else {\n dayRef.current?.focus();\n }\n };\n\n labelRef.addEventListener('click', handleLabelClick);\n\n return () => {\n labelRef?.removeEventListener('click', handleLabelClick);\n };\n }\n }, [fieldLabelRef, id, monthBeforeDay, monthYearOnly, yearFirst]);\n\n const getDateAsString = (date: Date) => {\n if (!isDateValid(date)) {\n return '';\n }\n switch (mode) {\n case DateMode.MONTH_YEAR:\n return [date.getFullYear(), `0${date.getMonth() + 1}`.slice(-2)].join('-');\n case DateMode.DAY_MONTH_YEAR:\n default:\n return [\n date.getFullYear(),\n `0${date.getMonth() + 1}`.slice(-2),\n `0${date.getDate()}`.slice(-2),\n ].join('-');\n }\n };\n\n const getSelectElement = () => {\n return (\n <label className=\"d-flex flex-column\">\n <Body type={Typography.BODY_DEFAULT}>{monthLabel}</Body>\n <SelectInput\n triggerRef={monthRef}\n id={`${id}:month`}\n parentId={DATE_INPUT_PARENT_ID}\n name=\"month\"\n disabled={disabled}\n placeholder={placeholders?.month}\n items={Array.from({ length: 12 }, (_, index) => ({ type: 'option', value: index }))}\n size={size}\n value={month}\n renderValue={(selectedValue) => (\n <SelectInputOptionContent title={monthNames[selectedValue]} />\n )}\n onChange={(selectedValue) => handleMonthChange(selectedValue)}\n {...selectProps}\n />\n </label>\n );\n };\n\n const isDayValid = (newDay: number, newMonth: number, newYear: number) => {\n const maxDay = new Date(newYear, newMonth + 1, 0).getDate();\n return newDay <= maxDay;\n };\n\n const handleInternalValue = (newDay = day, newMonth = month, newYear = year) => {\n if (newDay == null || newDay === 0 || newMonth == null || newYear == null || newYear === 0) {\n broadcastNewValue(null);\n return;\n }\n if (!isDayValid(newDay, newMonth, newYear)) {\n broadcastNewValue(null);\n return;\n }\n\n const dateValue = new Date(newYear, newMonth, newDay);\n if (newYear < 100) {\n dateValue.setFullYear(newYear);\n }\n\n if (!isDateValid(dateValue)) {\n broadcastNewValue(null);\n return;\n }\n\n if (mode === DateMode.MONTH_YEAR) {\n if (newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n } else if (newDay !== day || newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n };\n\n const handleDayChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newDayString = event.target.value.replace(/\\D/g, '');\n const newDayNumber = Number.parseInt(newDayString, 10);\n\n setDay(newDayNumber);\n setDisplayDay(newDayString);\n handleInternalValue(newDayNumber, month, year);\n };\n\n const handleMonthChange = (selectedMonth: number | null) => {\n if (selectedMonth === null) {\n setMonth(null);\n handleInternalValue(day, null, year);\n return;\n }\n setMonth(selectedMonth);\n handleInternalValue(day, selectedMonth, year);\n };\n\n const handleYearChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newYearString = event.target.value.replace(/\\D/g, '');\n const newYearNumber = Number.parseInt(newYearString, 10);\n\n if (newYearString.length >= 4 && newYearString.length <= 6) {\n setYear(newYearNumber);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, newYearNumber);\n } else {\n setYear(null);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, null);\n }\n };\n\n const broadcastNewValue = (newValue: Date | null) => {\n if (newValue !== lastBroadcastedValue) {\n setLastBroadcastedValue(newValue);\n onChange(newValue != null ? getDateAsString(newValue) : null);\n }\n };\n\n const monthWidth = clsx({\n 'col-sm-8 tw-date--month': monthYearOnly,\n 'col-sm-5 tw-date--month': !monthYearOnly,\n });\n\n const getMonth = () => {\n return <div className={monthWidth}>{getSelectElement()}</div>;\n };\n\n const getDay = () => {\n return (\n <div className=\"col-sm-3 tw-date--day\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{dayLabel}</Body>\n <div className={`input-group input-group-${size} ${disabled ? 'disabled' : ''}`}>\n <Input\n ref={dayRef}\n id={`${id}:day`}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"day\"\n autoComplete={dayAutoComplete}\n value={displayDay || ''}\n placeholder={placeholders?.day}\n disabled={disabled}\n min={1}\n max={31}\n maxLength={2}\n onChange={(event) => handleDayChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n\n const getYear = () => {\n return (\n <div className=\"col-sm-4 tw-date--year\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{yearLabel}</Body>\n <div className={`input-group input-group-${size} ${disabled ? 'disabled' : ''}`}>\n <Input\n ref={yearRef}\n id={`${id}:year`}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"year\"\n autoComplete={yearAutoComplete}\n placeholder={placeholders?.year}\n value={displayYear || ''}\n disabled={disabled}\n min={0}\n max={9999}\n maxLength={6}\n onChange={(event) => handleYearChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n\n return (\n <fieldset\n id={id}\n className=\"tw-date\"\n aria-describedby={inputAttributes['aria-describedby']}\n aria-invalid={inputAttributes['aria-invalid']}\n aria-labelledby={ariaLabelledBy}\n aria-label={ariaLabel}\n data-wds-dateinput=\"\"\n onFocus={(event) =>\n shouldPropagateOnFocus(event) ? onFocus?.(event) : event.stopPropagation()\n }\n onBlur={(event) => (shouldPropagateOnBlur(event) ? onBlur?.(event) : event.stopPropagation())}\n >\n <div className=\"row\">\n {(() => {\n if (monthYearOnly) {\n return (\n <>\n {!yearFirst && getMonth()}\n {getYear()}\n {yearFirst && getMonth()}\n </>\n );\n }\n if (monthBeforeDay) {\n return (\n <>\n {getMonth()}\n {getDay()}\n {getYear()}\n </>\n );\n }\n if (yearFirst) {\n return (\n <>\n {getYear()}\n {getMonth()}\n {getDay()}\n </>\n );\n }\n return (\n <>\n {getDay()}\n {getMonth()}\n {getYear()}\n </>\n );\n })()}\n </div>\n </fieldset>\n );\n};\n\n// Should only propagate if the relatedTarget is not part of this DateInput component.\nfunction shouldPropagateOnFocus({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const blurredElementParent = target.closest('[data-wds-dateinput]');\n const focusedElementParent = relatedTarget?.closest('[data-wds-dateinput]');\n return blurredElementParent !== focusedElementParent;\n}\n\n// Should only propagate if the focus-gaining element is not part\n// of this DateInput component or the (dropdown) of the month select.\nfunction shouldPropagateOnBlur({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const blurredElementParent = target.closest('[data-wds-dateinput]');\n const focusedElementParent = relatedTarget?.closest('[data-wds-dateinput]');\n\n return (\n blurredElementParent !== focusedElementParent &&\n !target?.closest(`[data-wds-parent=\"${DATE_INPUT_PARENT_ID}\"]`) &&\n !relatedTarget?.closest(`[data-wds-parent=\"${DATE_INPUT_PARENT_ID}\"]`)\n );\n}\n\nexport default DateInput;\n"],"names":["DATE_INPUT_PARENT_ID","DateInput","ariaLabelledByProp","ariaLabel","disabled","size","Size","MEDIUM","value","dayLabel","dayAutoComplete","monthLabel","yearLabel","yearAutoComplete","monthFormat","MonthFormat","LONG","mode","DateMode","DAY_MONTH_YEAR","onChange","onFocus","onBlur","placeholders","id","idProp","selectProps","inputAttributes","useInputAttributes","nonLabelable","fieldLabelRef","useFieldLabelRef","dayRef","useRef","monthRef","yearRef","ariaLabelledBy","locale","formatMessage","useIntl","getDateObject","isDateValid","convertToLocalMidnight","undefined","getInitialDate","unit","dateObject","isMonthAndYearFormat","getFullYear","getMonth","getDate","day","setDay","useState","displayDay","setDisplayDay","toString","month","setMonth","year","setYear","displayYear","setDisplayYear","lastBroadcastedValue","setLastBroadcastedValue","monthNames","getMonthNames","monthYearOnly","MONTH_YEAR","monthBeforeDay","MDY","has","yearFirst","YMD","messages","dayPlaceholder","yearPlaceholder","useEffect","labelRef","current","handleLabelClick","click","focus","addEventListener","removeEventListener","getDateAsString","date","slice","join","getSelectElement","_jsxs","className","children","_jsx","Body","type","Typography","BODY_DEFAULT","SelectInput","triggerRef","parentId","name","placeholder","items","Array","from","length","_","index","renderValue","selectedValue","SelectInputOptionContent","title","handleMonthChange","isDayValid","newDay","newMonth","newYear","maxDay","Date","handleInternalValue","broadcastNewValue","dateValue","setFullYear","handleDayChange","event","newDayString","target","replace","newDayNumber","Number","parseInt","selectedMonth","handleYearChange","newYearString","newYearNumber","newValue","monthWidth","clsx","getDay","Input","ref","inputMode","pattern","autoComplete","min","max","maxLength","getYear","shouldPropagateOnFocus","stopPropagation","shouldPropagateOnBlur","_Fragment","relatedTarget","blurredElementParent","closest","focusedElementParent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateInput.mjs","sources":["../../src/dateInput/DateInput.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport Body from '../body';\nimport { Input } from '../inputs/Input';\nimport {\n SelectInput,\n SelectInputOptionContent,\n type SelectInputProps,\n} from '../inputs/SelectInput';\nimport {\n DateMode,\n MonthFormat,\n Size,\n SizeLarge,\n SizeMedium,\n SizeSmall,\n Typography,\n} from '../common';\nimport { MDY, YMD, getMonthNames, isDateValid, isMonthAndYearFormat } from '../common/dateUtils';\nimport { useFieldLabelRef, useInputAttributes } from '../inputs/contexts';\nimport messages from './DateInput.messages';\nimport { convertToLocalMidnight } from './utils';\n\nexport interface DateInputProps {\n /** @deprecated Use `Field` wrapper or the `aria-labelledby` attribute instead. */\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n /** @default false */\n disabled?: boolean;\n /** @default 'md' */\n size?: SizeSmall | SizeMedium | SizeLarge;\n value?: Date | string;\n onChange: (value: string | null) => void;\n onFocus?: React.FocusEventHandler<HTMLDivElement | HTMLFieldSetElement>;\n onBlur?: React.FocusEventHandler<HTMLDivElement | HTMLFieldSetElement>;\n dayLabel?: string;\n dayAutoComplete?: string;\n monthLabel?: string;\n yearLabel?: string;\n yearAutoComplete?: string;\n /** @default 'long' */\n monthFormat?: `${MonthFormat}`;\n /** @default 'day-month-year' */\n mode?: `${DateMode}`;\n placeholders?: {\n day?: string;\n month?: string;\n year?: string;\n };\n id?: string;\n /** @default {} */\n selectProps?: Partial<SelectInputProps<number | null>>;\n}\n\n/**\n * To be passed to SelectInput's parentId prop for correct blur handling.\n */\nconst DATE_INPUT_PARENT_ID = 'dateInput';\n\nconst DateInput = ({\n 'aria-labelledby': ariaLabelledByProp,\n 'aria-label': ariaLabel,\n disabled = false,\n size = Size.MEDIUM,\n value,\n dayLabel,\n dayAutoComplete,\n monthLabel,\n yearLabel,\n yearAutoComplete,\n monthFormat = MonthFormat.LONG,\n mode = DateMode.DAY_MONTH_YEAR,\n onChange,\n onFocus,\n onBlur,\n placeholders,\n id: idProp,\n selectProps = {},\n}: DateInputProps) => {\n const inputAttributes = useInputAttributes({ nonLabelable: true });\n const fieldLabelRef = useFieldLabelRef();\n const dayRef = useRef<HTMLInputElement>(null);\n const monthRef = useRef<HTMLButtonElement>(null);\n const yearRef = useRef<HTMLInputElement>(null);\n const id = idProp ?? inputAttributes.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes['aria-labelledby'];\n\n const { locale, formatMessage } = useIntl();\n\n const getDateObject = (): Date | undefined => {\n if (value && isDateValid(value)) {\n return typeof value === 'string' ? convertToLocalMidnight(value) : value;\n }\n return undefined;\n };\n\n const getInitialDate = (unit: 'year' | 'month' | 'day'): number | null => {\n if (value && isDateValid(value)) {\n const dateObject = getDateObject();\n\n if (typeof value === 'string' && isMonthAndYearFormat(value) && unit === 'day') {\n return null;\n }\n\n if (dateObject !== undefined) {\n switch (unit) {\n case 'year':\n return dateObject.getFullYear();\n case 'month':\n return dateObject.getMonth();\n case 'day':\n return dateObject.getDate();\n default:\n return null;\n }\n }\n }\n return null;\n };\n\n const [day, setDay] = useState(() => getInitialDate('day'));\n const [displayDay, setDisplayDay] = useState(day?.toString());\n const [month, setMonth] = useState(() => getInitialDate('month'));\n const [year, setYear] = useState(() => getInitialDate('year'));\n const [displayYear, setDisplayYear] = useState(year?.toString());\n const [lastBroadcastedValue, setLastBroadcastedValue] = useState<Date | null | undefined>(\n getDateObject,\n );\n const monthNames = getMonthNames(locale, monthFormat);\n\n const monthYearOnly = mode === DateMode.MONTH_YEAR;\n const monthBeforeDay = MDY.has(locale);\n const yearFirst = YMD.has(locale);\n\n const resolvedDayLabel = dayLabel || formatMessage(messages.dayLabel);\n const resolvedMonthLabel = monthLabel || formatMessage(messages.monthLabel);\n const resolvedYearLabel = yearLabel || formatMessage(messages.yearLabel);\n const resolvedPlaceholders = {\n day: placeholders?.day || formatMessage(messages.dayPlaceholder),\n month: placeholders?.month || formatMessage(messages.monthLabel),\n year: placeholders?.year || formatMessage(messages.yearPlaceholder),\n };\n\n useEffect(() => {\n const labelRef = fieldLabelRef?.current;\n\n if (labelRef) {\n const handleLabelClick = () => {\n // Not the best way to do this, but we're forced to recreate the native Label-click behavior\n if (monthYearOnly || monthBeforeDay) {\n monthRef.current?.click();\n } else if (yearFirst) {\n yearRef.current?.focus();\n } else {\n dayRef.current?.focus();\n }\n };\n\n labelRef.addEventListener('click', handleLabelClick);\n\n return () => {\n labelRef?.removeEventListener('click', handleLabelClick);\n };\n }\n }, [fieldLabelRef, id, monthBeforeDay, monthYearOnly, yearFirst]);\n\n const getDateAsString = (date: Date) => {\n if (!isDateValid(date)) {\n return '';\n }\n switch (mode) {\n case DateMode.MONTH_YEAR:\n return [date.getFullYear(), `0${date.getMonth() + 1}`.slice(-2)].join('-');\n case DateMode.DAY_MONTH_YEAR:\n default:\n return [\n date.getFullYear(),\n `0${date.getMonth() + 1}`.slice(-2),\n `0${date.getDate()}`.slice(-2),\n ].join('-');\n }\n };\n\n const getSelectElement = () => {\n return (\n <label className=\"d-flex flex-column\">\n <Body type={Typography.BODY_DEFAULT}>{resolvedMonthLabel}</Body>\n <SelectInput\n triggerRef={monthRef}\n id={`${id}:month`}\n parentId={DATE_INPUT_PARENT_ID}\n name=\"month\"\n disabled={disabled}\n placeholder={resolvedPlaceholders.month}\n items={Array.from({ length: 12 }, (_, index) => ({ type: 'option', value: index }))}\n size={size}\n value={month}\n renderValue={(selectedValue) => (\n <SelectInputOptionContent title={monthNames[selectedValue]} />\n )}\n onChange={(selectedValue) => handleMonthChange(selectedValue)}\n {...selectProps}\n />\n </label>\n );\n };\n\n const isDayValid = (newDay: number, newMonth: number, newYear: number) => {\n const maxDay = new Date(newYear, newMonth + 1, 0).getDate();\n return newDay <= maxDay;\n };\n\n const handleInternalValue = (newDay = day, newMonth = month, newYear = year) => {\n if (newDay == null || newDay === 0 || newMonth == null || newYear == null || newYear === 0) {\n broadcastNewValue(null);\n return;\n }\n if (!isDayValid(newDay, newMonth, newYear)) {\n broadcastNewValue(null);\n return;\n }\n\n const dateValue = new Date(newYear, newMonth, newDay);\n if (newYear < 100) {\n dateValue.setFullYear(newYear);\n }\n\n if (!isDateValid(dateValue)) {\n broadcastNewValue(null);\n return;\n }\n\n if (mode === DateMode.MONTH_YEAR) {\n if (newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n } else if (newDay !== day || newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n };\n\n const handleDayChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newDayString = event.target.value.replace(/\\D/g, '');\n const newDayNumber = Number.parseInt(newDayString, 10);\n\n setDay(newDayNumber);\n setDisplayDay(newDayString);\n handleInternalValue(newDayNumber, month, year);\n };\n\n const handleMonthChange = (selectedMonth: number | null) => {\n if (selectedMonth === null) {\n setMonth(null);\n handleInternalValue(day, null, year);\n return;\n }\n setMonth(selectedMonth);\n handleInternalValue(day, selectedMonth, year);\n };\n\n const handleYearChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newYearString = event.target.value.replace(/\\D/g, '');\n const newYearNumber = Number.parseInt(newYearString, 10);\n\n if (newYearString.length >= 4 && newYearString.length <= 6) {\n setYear(newYearNumber);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, newYearNumber);\n } else {\n setYear(null);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, null);\n }\n };\n\n const broadcastNewValue = (newValue: Date | null) => {\n if (newValue !== lastBroadcastedValue) {\n setLastBroadcastedValue(newValue);\n onChange(newValue != null ? getDateAsString(newValue) : null);\n }\n };\n\n const monthWidth = clsx({\n 'col-sm-8 tw-date--month': monthYearOnly,\n 'col-sm-5 tw-date--month': !monthYearOnly,\n });\n\n const getMonth = () => {\n return <div className={monthWidth}>{getSelectElement()}</div>;\n };\n\n const getDay = () => {\n return (\n <div className=\"col-sm-3 tw-date--day\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{resolvedDayLabel}</Body>\n <div className={`input-group input-group-${size} ${disabled ? 'disabled' : ''}`}>\n <Input\n ref={dayRef}\n id={`${id}:day`}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"day\"\n autoComplete={dayAutoComplete}\n value={displayDay || ''}\n placeholder={resolvedPlaceholders.day}\n disabled={disabled}\n min={1}\n max={31}\n maxLength={2}\n onChange={(event) => handleDayChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n\n const getYear = () => {\n return (\n <div className=\"col-sm-4 tw-date--year\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{resolvedYearLabel}</Body>\n <div className={`input-group input-group-${size} ${disabled ? 'disabled' : ''}`}>\n <Input\n ref={yearRef}\n id={`${id}:year`}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"year\"\n autoComplete={yearAutoComplete}\n placeholder={resolvedPlaceholders.year}\n value={displayYear || ''}\n disabled={disabled}\n min={0}\n max={9999}\n maxLength={6}\n onChange={(event) => handleYearChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n\n return (\n <fieldset\n id={id}\n className=\"tw-date\"\n aria-describedby={inputAttributes['aria-describedby']}\n aria-invalid={inputAttributes['aria-invalid']}\n aria-labelledby={ariaLabelledBy}\n aria-label={ariaLabel}\n data-wds-dateinput=\"\"\n onFocus={(event) =>\n shouldPropagateOnFocus(event) ? onFocus?.(event) : event.stopPropagation()\n }\n onBlur={(event) => (shouldPropagateOnBlur(event) ? onBlur?.(event) : event.stopPropagation())}\n >\n <div className=\"row\">\n {(() => {\n if (monthYearOnly) {\n return (\n <>\n {!yearFirst && getMonth()}\n {getYear()}\n {yearFirst && getMonth()}\n </>\n );\n }\n if (monthBeforeDay) {\n return (\n <>\n {getMonth()}\n {getDay()}\n {getYear()}\n </>\n );\n }\n if (yearFirst) {\n return (\n <>\n {getYear()}\n {getMonth()}\n {getDay()}\n </>\n );\n }\n return (\n <>\n {getDay()}\n {getMonth()}\n {getYear()}\n </>\n );\n })()}\n </div>\n </fieldset>\n );\n};\n\n// Should only propagate if the relatedTarget is not part of this DateInput component.\nfunction shouldPropagateOnFocus({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const blurredElementParent = target.closest('[data-wds-dateinput]');\n const focusedElementParent = relatedTarget?.closest('[data-wds-dateinput]');\n return blurredElementParent !== focusedElementParent;\n}\n\n// Should only propagate if the focus-gaining element is not part\n// of this DateInput component or the (dropdown) of the month select.\nfunction shouldPropagateOnBlur({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const blurredElementParent = target.closest('[data-wds-dateinput]');\n const focusedElementParent = relatedTarget?.closest('[data-wds-dateinput]');\n\n return (\n blurredElementParent !== focusedElementParent &&\n !target?.closest(`[data-wds-parent=\"${DATE_INPUT_PARENT_ID}\"]`) &&\n !relatedTarget?.closest(`[data-wds-parent=\"${DATE_INPUT_PARENT_ID}\"]`)\n );\n}\n\nexport default DateInput;\n"],"names":["DATE_INPUT_PARENT_ID","DateInput","ariaLabelledByProp","ariaLabel","disabled","size","Size","MEDIUM","value","dayLabel","dayAutoComplete","monthLabel","yearLabel","yearAutoComplete","monthFormat","MonthFormat","LONG","mode","DateMode","DAY_MONTH_YEAR","onChange","onFocus","onBlur","placeholders","id","idProp","selectProps","inputAttributes","useInputAttributes","nonLabelable","fieldLabelRef","useFieldLabelRef","dayRef","useRef","monthRef","yearRef","ariaLabelledBy","locale","formatMessage","useIntl","getDateObject","isDateValid","convertToLocalMidnight","undefined","getInitialDate","unit","dateObject","isMonthAndYearFormat","getFullYear","getMonth","getDate","day","setDay","useState","displayDay","setDisplayDay","toString","month","setMonth","year","setYear","displayYear","setDisplayYear","lastBroadcastedValue","setLastBroadcastedValue","monthNames","getMonthNames","monthYearOnly","MONTH_YEAR","monthBeforeDay","MDY","has","yearFirst","YMD","resolvedDayLabel","messages","resolvedMonthLabel","resolvedYearLabel","resolvedPlaceholders","dayPlaceholder","yearPlaceholder","useEffect","labelRef","current","handleLabelClick","click","focus","addEventListener","removeEventListener","getDateAsString","date","slice","join","getSelectElement","_jsxs","className","children","_jsx","Body","type","Typography","BODY_DEFAULT","SelectInput","triggerRef","parentId","name","placeholder","items","Array","from","length","_","index","renderValue","selectedValue","SelectInputOptionContent","title","handleMonthChange","isDayValid","newDay","newMonth","newYear","maxDay","Date","handleInternalValue","broadcastNewValue","dateValue","setFullYear","handleDayChange","event","newDayString","target","replace","newDayNumber","Number","parseInt","selectedMonth","handleYearChange","newYearString","newYearNumber","newValue","monthWidth","clsx","getDay","Input","ref","inputMode","pattern","autoComplete","min","max","maxLength","getYear","shouldPropagateOnFocus","stopPropagation","shouldPropagateOnBlur","_Fragment","relatedTarget","blurredElementParent","closest","focusedElementParent"],"mappings":"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"}
|
|
@@ -326,7 +326,7 @@ class DateLookup extends React.PureComponent {
|
|
|
326
326
|
"aria-labelledby": id,
|
|
327
327
|
"aria-invalid": inputAttributes?.['aria-invalid'],
|
|
328
328
|
"aria-describedby": inputAttributes?.['aria-describedby'],
|
|
329
|
-
className:
|
|
329
|
+
className: clsx.clsx('input-group', disabled && 'disabled'),
|
|
330
330
|
onKeyDown: this.handleKeyDown,
|
|
331
331
|
children: /*#__PURE__*/jsxRuntime.jsxs(OverlayIdProvider.OverlayIdProvider, {
|
|
332
332
|
open: open,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateLookup.js","sources":["../../src/dateLookup/DateLookup.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { createRef, PureComponent, KeyboardEvent } from 'react';\n\nimport {\n Size,\n MonthFormat,\n Position,\n Breakpoint,\n type SizeSmall,\n type SizeMedium,\n type SizeLarge,\n} from '../common';\nimport { isWithinRange, moveToWithinRange, returnDateView } from '../common/dateUtils';\nimport ResponsivePanel from '../common/responsivePanel';\nimport { WithInputAttributesProps, withInputAttributes } from '../inputs/contexts';\nimport { OverlayIdProvider } from '../provider/overlay/OverlayIdProvider';\nimport DateTrigger from './dateTrigger';\nimport DayCalendar from './dayCalendar';\nimport { getStartOfDay } from './getStartOfDay';\nimport MonthCalendar from './monthCalendar';\nimport YearCalendar from './yearCalendar';\n\nexport interface DateLookupProps {\n id?: string;\n value: Date | null;\n min?: Date | null;\n max?: Date | null;\n size?: SizeSmall | SizeMedium | SizeLarge;\n placeholder?: string;\n label?: string;\n 'aria-labelledby'?: string;\n monthFormat?: `${MonthFormat}`;\n disabled?: boolean;\n clearable?: boolean;\n onChange: (date: Date | null) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n}\n\ntype DateLookupPropsWithInputAttributes = DateLookupProps & Partial<WithInputAttributesProps>;\n\ninterface DateLookupState {\n selectedDate: Date | null;\n originalDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewMonth: number;\n viewYear: number;\n open: boolean;\n mode: 'day' | 'month' | 'year';\n isMobile: boolean;\n}\n\nclass DateLookup extends PureComponent<DateLookupPropsWithInputAttributes, DateLookupState> {\n declare props: DateLookupPropsWithInputAttributes &\n Required<Pick<DateLookupPropsWithInputAttributes, keyof typeof DateLookup.defaultProps>>;\n\n static defaultProps = {\n value: null,\n min: null,\n max: null,\n size: Size.MEDIUM,\n placeholder: '',\n label: '',\n monthFormat: MonthFormat.LONG,\n disabled: false,\n clearable: false,\n } satisfies Partial<DateLookupPropsWithInputAttributes>;\n\n element = createRef<HTMLDivElement>();\n dropdown = createRef<HTMLDivElement>();\n\n constructor(props: DateLookup['props']) {\n super(props);\n const dateView = returnDateView(props.value, props.min, props.max);\n this.state = {\n selectedDate: getStartOfDay(props.value),\n originalDate: null,\n min: getStartOfDay(props.min),\n max: getStartOfDay(props.max),\n viewMonth: dateView.getMonth(),\n viewYear: dateView.getFullYear(),\n open: false,\n mode: 'day',\n isMobile: false,\n };\n }\n\n static getDerivedStateFromProps(props: DateLookup['props'], state: DateLookupState) {\n const propsSelected = getStartOfDay(props.value);\n const propsMin = getStartOfDay(props.min);\n const propsMax = getStartOfDay(props.max);\n const hasSelectedChanged = state.selectedDate?.getTime() !== propsSelected?.getTime();\n const hasMinChanged = state.min?.getTime() !== propsMin?.getTime();\n const hasMaxChanged = state.max?.getTime() !== propsMax?.getTime();\n if (hasSelectedChanged || hasMinChanged || hasMaxChanged) {\n const selectedDate = hasSelectedChanged ? propsSelected : state.selectedDate;\n const min = hasMinChanged ? propsMin : state.min;\n const max = hasMaxChanged ? propsMax : state.max;\n if (selectedDate && !isWithinRange(selectedDate, min, max)) {\n props.onChange(moveToWithinRange(selectedDate, min, max));\n return null;\n }\n const viewDateThatIsWithinRange: Date = returnDateView(selectedDate, min, max);\n const viewMonth = viewDateThatIsWithinRange.getMonth();\n const viewYear = viewDateThatIsWithinRange.getFullYear();\n return { selectedDate, min, max, viewMonth, viewYear };\n }\n return null;\n }\n\n componentDidUpdate(previousProps: DateLookupPropsWithInputAttributes) {\n if (this.props.value?.getTime() !== previousProps.value?.getTime() && this.state.open) {\n this.focusOn('.active');\n }\n const mediaQuery = window.matchMedia(`(max-width: ${Breakpoint.SMALL}px)`);\n this.setState({ isMobile: mediaQuery.matches });\n }\n\n componentWillUnmount() {\n // Prevents memory leak by cleaning state.\n this.setState = () => {};\n }\n\n open = () => {\n const { onFocus } = this.props;\n\n this.setState({ open: true, mode: 'day' });\n if (onFocus) {\n onFocus();\n }\n };\n\n discard = () => {\n const { originalDate } = this.state;\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n };\n\n close = () => {\n const { onBlur } = this.props;\n this.setState({ open: false, originalDate: null });\n if (onBlur) {\n onBlur();\n }\n };\n\n handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const { open, originalDate } = this.state;\n switch (event.key) {\n case 'ArrowLeft':\n if (open) {\n this.adjustDate(-1, -1, -1);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'ArrowUp':\n if (open) {\n this.adjustDate(-7, -4, -4);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'ArrowRight':\n if (open) {\n this.adjustDate(1, 1, 1);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'ArrowDown':\n if (open) {\n this.adjustDate(7, 4, 4);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'Escape':\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n event.preventDefault();\n break;\n default:\n break;\n }\n };\n\n adjustDate = (daysToAdd: number, monthsToAdd: number, yearsToAdd: number) => {\n const { selectedDate, min, max, mode, originalDate } = this.state;\n if (originalDate === null) {\n this.setState({ originalDate: selectedDate });\n }\n let date: Date | null;\n if (selectedDate) {\n date = new Date(\n mode === 'year' ? selectedDate.getFullYear() + yearsToAdd : selectedDate.getFullYear(),\n mode === 'month' ? selectedDate.getMonth() + monthsToAdd : selectedDate.getMonth(),\n mode === 'day' ? selectedDate.getDate() + daysToAdd : selectedDate.getDate(),\n );\n } else {\n date = getStartOfDay(new Date());\n }\n date &&= moveToWithinRange(date, min, max);\n if (date?.getTime() !== selectedDate?.getTime()) {\n this.props.onChange(date);\n }\n };\n\n focusOn = (preferredElement: string, fallbackElement?: string) => {\n const element = this.element.current?.querySelector(preferredElement) as HTMLElement | null;\n if (element) {\n element.focus();\n } else if (fallbackElement) {\n this.focusOn(fallbackElement);\n }\n };\n\n switchMode = (mode: 'day' | 'month' | 'year') => {\n this.setState({ mode }, () => {\n this.focusOn('.active', '.today');\n });\n };\n\n switchToDays = () => this.switchMode('day');\n\n switchToMonths = () => this.switchMode('month');\n\n switchToYears = () => this.switchMode('year');\n\n handleSelectedDateUpdate = (selectedDate: Date) => {\n this.setState({ selectedDate }, () => {\n this.props.onChange(selectedDate);\n this.close();\n this.focusOn('.btn');\n });\n };\n\n handleViewDateUpdate = ({ month = this.state.viewMonth, year = this.state.viewYear }) => {\n this.setState({ viewMonth: month, viewYear: year });\n };\n\n getCalendar = () => {\n const { selectedDate, min, max, viewMonth, viewYear, mode, isMobile } = this.state;\n const { placeholder, monthFormat } = this.props;\n return (\n <div className={clsx({ 'p-a-1': !isMobile })}>\n {mode === 'day' && (\n <DayCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewMonth={viewMonth}\n viewYear={viewYear}\n monthFormat={monthFormat}\n onSelect={this.handleSelectedDateUpdate}\n onLabelClick={this.switchToYears}\n onViewDateUpdate={this.handleViewDateUpdate}\n />\n )}\n {mode === 'month' && (\n <MonthCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder={placeholder}\n onSelect={this.switchToDays}\n onLabelClick={this.switchToYears}\n onViewDateUpdate={this.handleViewDateUpdate}\n />\n )}\n {mode === 'year' && (\n <YearCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder={placeholder}\n onSelect={this.switchToMonths}\n onViewDateUpdate={this.handleViewDateUpdate}\n />\n )}\n </div>\n );\n };\n\n handleClear = () => {\n this.props.onChange(null);\n this.focusOn('.np-date-trigger');\n };\n\n render() {\n const { selectedDate, open } = this.state;\n\n const {\n inputAttributes,\n id: idProp,\n 'aria-labelledby': ariaLabelledByProp,\n size,\n placeholder,\n label,\n monthFormat,\n disabled,\n clearable,\n value,\n } = this.props;\n const id = idProp ?? inputAttributes?.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes?.['aria-labelledby'];\n\n return (\n <div\n ref={this.element}\n aria-labelledby={id}\n aria-invalid={inputAttributes?.['aria-invalid']}\n aria-describedby={inputAttributes?.['aria-describedby']}\n className=\"input-group\"\n onKeyDown={this.handleKeyDown}\n >\n <OverlayIdProvider open={open}>\n <DateTrigger\n id={id}\n ariaLabelledBy={ariaLabelledBy}\n selectedDate={selectedDate}\n size={size}\n placeholder={placeholder}\n label={label}\n monthFormat={monthFormat}\n disabled={disabled || false}\n onClick={this.open}\n onClear={!disabled && clearable && value ? this.handleClear : undefined}\n />\n <ResponsivePanel\n anchorRef={this.element}\n open={open}\n className=\"tw-date-lookup-menu\"\n position={Position.BOTTOM}\n considerHeight\n onClose={this.discard}\n >\n {this.getCalendar()}\n </ResponsivePanel>\n </OverlayIdProvider>\n </div>\n );\n }\n}\n\nexport const DateLookupWithoutInputAttributes = DateLookup;\n\nconst WrappedDateLookup = withInputAttributes(\n DateLookup as React.ComponentType<DateLookupPropsWithInputAttributes>,\n { nonLabelable: true },\n);\nWrappedDateLookup.displayName = 'DateLookup';\n\nexport default WrappedDateLookup;\n"],"names":["DateLookup","PureComponent","defaultProps","value","min","max","size","Size","MEDIUM","placeholder","label","monthFormat","MonthFormat","LONG","disabled","clearable","element","createRef","dropdown","constructor","props","dateView","returnDateView","state","selectedDate","getStartOfDay","originalDate","viewMonth","getMonth","viewYear","getFullYear","open","mode","isMobile","getDerivedStateFromProps","propsSelected","propsMin","propsMax","hasSelectedChanged","getTime","hasMinChanged","hasMaxChanged","isWithinRange","onChange","moveToWithinRange","viewDateThatIsWithinRange","componentDidUpdate","previousProps","focusOn","mediaQuery","window","matchMedia","Breakpoint","SMALL","setState","matches","componentWillUnmount","onFocus","discard","close","onBlur","handleKeyDown","event","key","adjustDate","preventDefault","daysToAdd","monthsToAdd","yearsToAdd","date","Date","getDate","preferredElement","fallbackElement","current","querySelector","focus","switchMode","switchToDays","switchToMonths","switchToYears","handleSelectedDateUpdate","handleViewDateUpdate","month","year","getCalendar","_jsxs","className","clsx","children","_jsx","DayCalendar","onSelect","onLabelClick","onViewDateUpdate","MonthCalendar","YearCalendar","handleClear","render","inputAttributes","id","idProp","ariaLabelledByProp","ariaLabelledBy","ref","onKeyDown","OverlayIdProvider","DateTrigger","onClick","onClear","undefined","ResponsivePanel","anchorRef","position","Position","BOTTOM","considerHeight","onClose","WrappedDateLookup","withInputAttributes","nonLabelable","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateLookup.js","sources":["../../src/dateLookup/DateLookup.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { createRef, PureComponent, KeyboardEvent } from 'react';\n\nimport {\n Size,\n MonthFormat,\n Position,\n Breakpoint,\n type SizeSmall,\n type SizeMedium,\n type SizeLarge,\n} from '../common';\nimport { isWithinRange, moveToWithinRange, returnDateView } from '../common/dateUtils';\nimport ResponsivePanel from '../common/responsivePanel';\nimport { WithInputAttributesProps, withInputAttributes } from '../inputs/contexts';\nimport { OverlayIdProvider } from '../provider/overlay/OverlayIdProvider';\nimport DateTrigger from './dateTrigger';\nimport DayCalendar from './dayCalendar';\nimport { getStartOfDay } from './getStartOfDay';\nimport MonthCalendar from './monthCalendar';\nimport YearCalendar from './yearCalendar';\n\nexport interface DateLookupProps {\n id?: string;\n value: Date | null;\n min?: Date | null;\n max?: Date | null;\n size?: SizeSmall | SizeMedium | SizeLarge;\n placeholder?: string;\n label?: string;\n 'aria-labelledby'?: string;\n monthFormat?: `${MonthFormat}`;\n disabled?: boolean;\n clearable?: boolean;\n onChange: (date: Date | null) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n}\n\ntype DateLookupPropsWithInputAttributes = DateLookupProps & Partial<WithInputAttributesProps>;\n\ninterface DateLookupState {\n selectedDate: Date | null;\n originalDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewMonth: number;\n viewYear: number;\n open: boolean;\n mode: 'day' | 'month' | 'year';\n isMobile: boolean;\n}\n\nclass DateLookup extends PureComponent<DateLookupPropsWithInputAttributes, DateLookupState> {\n declare props: DateLookupPropsWithInputAttributes &\n Required<Pick<DateLookupPropsWithInputAttributes, keyof typeof DateLookup.defaultProps>>;\n\n static defaultProps = {\n value: null,\n min: null,\n max: null,\n size: Size.MEDIUM,\n placeholder: '',\n label: '',\n monthFormat: MonthFormat.LONG,\n disabled: false,\n clearable: false,\n } satisfies Partial<DateLookupPropsWithInputAttributes>;\n\n element = createRef<HTMLDivElement>();\n dropdown = createRef<HTMLDivElement>();\n\n constructor(props: DateLookup['props']) {\n super(props);\n const dateView = returnDateView(props.value, props.min, props.max);\n this.state = {\n selectedDate: getStartOfDay(props.value),\n originalDate: null,\n min: getStartOfDay(props.min),\n max: getStartOfDay(props.max),\n viewMonth: dateView.getMonth(),\n viewYear: dateView.getFullYear(),\n open: false,\n mode: 'day',\n isMobile: false,\n };\n }\n\n static getDerivedStateFromProps(props: DateLookup['props'], state: DateLookupState) {\n const propsSelected = getStartOfDay(props.value);\n const propsMin = getStartOfDay(props.min);\n const propsMax = getStartOfDay(props.max);\n const hasSelectedChanged = state.selectedDate?.getTime() !== propsSelected?.getTime();\n const hasMinChanged = state.min?.getTime() !== propsMin?.getTime();\n const hasMaxChanged = state.max?.getTime() !== propsMax?.getTime();\n if (hasSelectedChanged || hasMinChanged || hasMaxChanged) {\n const selectedDate = hasSelectedChanged ? propsSelected : state.selectedDate;\n const min = hasMinChanged ? propsMin : state.min;\n const max = hasMaxChanged ? propsMax : state.max;\n if (selectedDate && !isWithinRange(selectedDate, min, max)) {\n props.onChange(moveToWithinRange(selectedDate, min, max));\n return null;\n }\n const viewDateThatIsWithinRange: Date = returnDateView(selectedDate, min, max);\n const viewMonth = viewDateThatIsWithinRange.getMonth();\n const viewYear = viewDateThatIsWithinRange.getFullYear();\n return { selectedDate, min, max, viewMonth, viewYear };\n }\n return null;\n }\n\n componentDidUpdate(previousProps: DateLookupPropsWithInputAttributes) {\n if (this.props.value?.getTime() !== previousProps.value?.getTime() && this.state.open) {\n this.focusOn('.active');\n }\n const mediaQuery = window.matchMedia(`(max-width: ${Breakpoint.SMALL}px)`);\n this.setState({ isMobile: mediaQuery.matches });\n }\n\n componentWillUnmount() {\n // Prevents memory leak by cleaning state.\n this.setState = () => {};\n }\n\n open = () => {\n const { onFocus } = this.props;\n\n this.setState({ open: true, mode: 'day' });\n if (onFocus) {\n onFocus();\n }\n };\n\n discard = () => {\n const { originalDate } = this.state;\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n };\n\n close = () => {\n const { onBlur } = this.props;\n this.setState({ open: false, originalDate: null });\n if (onBlur) {\n onBlur();\n }\n };\n\n handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const { open, originalDate } = this.state;\n switch (event.key) {\n case 'ArrowLeft':\n if (open) {\n this.adjustDate(-1, -1, -1);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'ArrowUp':\n if (open) {\n this.adjustDate(-7, -4, -4);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'ArrowRight':\n if (open) {\n this.adjustDate(1, 1, 1);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'ArrowDown':\n if (open) {\n this.adjustDate(7, 4, 4);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'Escape':\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n event.preventDefault();\n break;\n default:\n break;\n }\n };\n\n adjustDate = (daysToAdd: number, monthsToAdd: number, yearsToAdd: number) => {\n const { selectedDate, min, max, mode, originalDate } = this.state;\n if (originalDate === null) {\n this.setState({ originalDate: selectedDate });\n }\n let date: Date | null;\n if (selectedDate) {\n date = new Date(\n mode === 'year' ? selectedDate.getFullYear() + yearsToAdd : selectedDate.getFullYear(),\n mode === 'month' ? selectedDate.getMonth() + monthsToAdd : selectedDate.getMonth(),\n mode === 'day' ? selectedDate.getDate() + daysToAdd : selectedDate.getDate(),\n );\n } else {\n date = getStartOfDay(new Date());\n }\n date &&= moveToWithinRange(date, min, max);\n if (date?.getTime() !== selectedDate?.getTime()) {\n this.props.onChange(date);\n }\n };\n\n focusOn = (preferredElement: string, fallbackElement?: string) => {\n const element = this.element.current?.querySelector(preferredElement) as HTMLElement | null;\n if (element) {\n element.focus();\n } else if (fallbackElement) {\n this.focusOn(fallbackElement);\n }\n };\n\n switchMode = (mode: 'day' | 'month' | 'year') => {\n this.setState({ mode }, () => {\n this.focusOn('.active', '.today');\n });\n };\n\n switchToDays = () => this.switchMode('day');\n\n switchToMonths = () => this.switchMode('month');\n\n switchToYears = () => this.switchMode('year');\n\n handleSelectedDateUpdate = (selectedDate: Date) => {\n this.setState({ selectedDate }, () => {\n this.props.onChange(selectedDate);\n this.close();\n this.focusOn('.btn');\n });\n };\n\n handleViewDateUpdate = ({ month = this.state.viewMonth, year = this.state.viewYear }) => {\n this.setState({ viewMonth: month, viewYear: year });\n };\n\n getCalendar = () => {\n const { selectedDate, min, max, viewMonth, viewYear, mode, isMobile } = this.state;\n const { placeholder, monthFormat } = this.props;\n return (\n <div className={clsx({ 'p-a-1': !isMobile })}>\n {mode === 'day' && (\n <DayCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewMonth={viewMonth}\n viewYear={viewYear}\n monthFormat={monthFormat}\n onSelect={this.handleSelectedDateUpdate}\n onLabelClick={this.switchToYears}\n onViewDateUpdate={this.handleViewDateUpdate}\n />\n )}\n {mode === 'month' && (\n <MonthCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder={placeholder}\n onSelect={this.switchToDays}\n onLabelClick={this.switchToYears}\n onViewDateUpdate={this.handleViewDateUpdate}\n />\n )}\n {mode === 'year' && (\n <YearCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder={placeholder}\n onSelect={this.switchToMonths}\n onViewDateUpdate={this.handleViewDateUpdate}\n />\n )}\n </div>\n );\n };\n\n handleClear = () => {\n this.props.onChange(null);\n this.focusOn('.np-date-trigger');\n };\n\n render() {\n const { selectedDate, open } = this.state;\n\n const {\n inputAttributes,\n id: idProp,\n 'aria-labelledby': ariaLabelledByProp,\n size,\n placeholder,\n label,\n monthFormat,\n disabled,\n clearable,\n value,\n } = this.props;\n const id = idProp ?? inputAttributes?.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes?.['aria-labelledby'];\n\n return (\n <div\n ref={this.element}\n aria-labelledby={id}\n aria-invalid={inputAttributes?.['aria-invalid']}\n aria-describedby={inputAttributes?.['aria-describedby']}\n className={clsx('input-group', disabled && 'disabled')}\n onKeyDown={this.handleKeyDown}\n >\n <OverlayIdProvider open={open}>\n <DateTrigger\n id={id}\n ariaLabelledBy={ariaLabelledBy}\n selectedDate={selectedDate}\n size={size}\n placeholder={placeholder}\n label={label}\n monthFormat={monthFormat}\n disabled={disabled || false}\n onClick={this.open}\n onClear={!disabled && clearable && value ? this.handleClear : undefined}\n />\n <ResponsivePanel\n anchorRef={this.element}\n open={open}\n className=\"tw-date-lookup-menu\"\n position={Position.BOTTOM}\n considerHeight\n onClose={this.discard}\n >\n {this.getCalendar()}\n </ResponsivePanel>\n </OverlayIdProvider>\n </div>\n );\n }\n}\n\nexport const DateLookupWithoutInputAttributes = DateLookup;\n\nconst WrappedDateLookup = withInputAttributes(\n DateLookup as React.ComponentType<DateLookupPropsWithInputAttributes>,\n { nonLabelable: true },\n);\nWrappedDateLookup.displayName = 'DateLookup';\n\nexport default WrappedDateLookup;\n"],"names":["DateLookup","PureComponent","defaultProps","value","min","max","size","Size","MEDIUM","placeholder","label","monthFormat","MonthFormat","LONG","disabled","clearable","element","createRef","dropdown","constructor","props","dateView","returnDateView","state","selectedDate","getStartOfDay","originalDate","viewMonth","getMonth","viewYear","getFullYear","open","mode","isMobile","getDerivedStateFromProps","propsSelected","propsMin","propsMax","hasSelectedChanged","getTime","hasMinChanged","hasMaxChanged","isWithinRange","onChange","moveToWithinRange","viewDateThatIsWithinRange","componentDidUpdate","previousProps","focusOn","mediaQuery","window","matchMedia","Breakpoint","SMALL","setState","matches","componentWillUnmount","onFocus","discard","close","onBlur","handleKeyDown","event","key","adjustDate","preventDefault","daysToAdd","monthsToAdd","yearsToAdd","date","Date","getDate","preferredElement","fallbackElement","current","querySelector","focus","switchMode","switchToDays","switchToMonths","switchToYears","handleSelectedDateUpdate","handleViewDateUpdate","month","year","getCalendar","_jsxs","className","clsx","children","_jsx","DayCalendar","onSelect","onLabelClick","onViewDateUpdate","MonthCalendar","YearCalendar","handleClear","render","inputAttributes","id","idProp","ariaLabelledByProp","ariaLabelledBy","ref","onKeyDown","OverlayIdProvider","DateTrigger","onClick","onClear","undefined","ResponsivePanel","anchorRef","position","Position","BOTTOM","considerHeight","onClose","WrappedDateLookup","withInputAttributes","nonLabelable","displayName"],"mappings":"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"}
|
|
@@ -322,7 +322,7 @@ class DateLookup extends PureComponent {
|
|
|
322
322
|
"aria-labelledby": id,
|
|
323
323
|
"aria-invalid": inputAttributes?.['aria-invalid'],
|
|
324
324
|
"aria-describedby": inputAttributes?.['aria-describedby'],
|
|
325
|
-
className:
|
|
325
|
+
className: clsx('input-group', disabled && 'disabled'),
|
|
326
326
|
onKeyDown: this.handleKeyDown,
|
|
327
327
|
children: /*#__PURE__*/jsxs(OverlayIdProvider, {
|
|
328
328
|
open: open,
|