@pega/cosmos-react-core 9.0.0-build.11.2 → 9.0.0-build.11.4
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/lib/components/ComboBox/ComboBox.js +1 -1
- package/lib/components/ComboBox/ComboBox.js.map +1 -1
- package/lib/components/CompositeInput/CompositeInput.d.ts.map +1 -1
- package/lib/components/CompositeInput/CompositeInput.js +1 -3
- package/lib/components/CompositeInput/CompositeInput.js.map +1 -1
- package/lib/components/CreditCard/CreditCard.types.d.ts +4 -0
- package/lib/components/CreditCard/CreditCard.types.d.ts.map +1 -1
- package/lib/components/CreditCard/CreditCard.types.js.map +1 -1
- package/lib/components/CreditCard/CreditCardInput.d.ts +1 -0
- package/lib/components/CreditCard/CreditCardInput.d.ts.map +1 -1
- package/lib/components/CreditCard/CreditCardInput.js +1 -1
- package/lib/components/CreditCard/CreditCardInput.js.map +1 -1
- package/lib/components/Currency/CurrencyInput.js +1 -1
- package/lib/components/Currency/CurrencyInput.js.map +1 -1
- package/lib/components/DateTime/Input/DateInput.d.ts +3 -0
- package/lib/components/DateTime/Input/DateInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/DateInput.js +11 -5
- package/lib/components/DateTime/Input/DateInput.js.map +1 -1
- package/lib/components/DateTime/Input/DateRangeInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/DateRangeInput.js +1 -1
- package/lib/components/DateTime/Input/DateRangeInput.js.map +1 -1
- package/lib/components/DateTime/Input/DateTimeInput.js +1 -1
- package/lib/components/DateTime/Input/DateTimeInput.js.map +1 -1
- package/lib/components/DateTime/Input/Duration/DurationInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/Duration/DurationInput.js +1 -3
- package/lib/components/DateTime/Input/Duration/DurationInput.js.map +1 -1
- package/lib/components/DateTime/Input/MonthInput.js +1 -1
- package/lib/components/DateTime/Input/MonthInput.js.map +1 -1
- package/lib/components/DateTime/Input/PartInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/PartInput.js +1 -1
- package/lib/components/DateTime/Input/PartInput.js.map +1 -1
- package/lib/components/DateTime/Input/QuarterInput.js +1 -1
- package/lib/components/DateTime/Input/QuarterInput.js.map +1 -1
- package/lib/components/DateTime/Input/TimeInput.js +1 -1
- package/lib/components/DateTime/Input/TimeInput.js.map +1 -1
- package/lib/components/DateTime/Input/TimeRangeInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/TimeRangeInput.js +1 -1
- package/lib/components/DateTime/Input/TimeRangeInput.js.map +1 -1
- package/lib/components/DateTime/Input/WeekInput.js +1 -1
- package/lib/components/DateTime/Input/WeekInput.js.map +1 -1
- package/lib/components/File/FileInput.d.ts.map +1 -1
- package/lib/components/File/FileInput.js +1 -2
- package/lib/components/File/FileInput.js.map +1 -1
- package/lib/components/Icon/Icon.d.ts.map +1 -1
- package/lib/components/Icon/Icon.js +1 -0
- package/lib/components/Icon/Icon.js.map +1 -1
- package/lib/components/Icon/index.d.ts +1 -1
- package/lib/components/Icon/index.d.ts.map +1 -1
- package/lib/components/Icon/index.js +1 -1
- package/lib/components/Icon/index.js.map +1 -1
- package/lib/components/Icon/streamline-icons/bolt-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/bolt-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/bolt-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/bolt-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/bolt.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/bolt.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/bolt.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/bolt.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/desktop-pencil.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/desktop-pencil.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/desktop-pencil.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/desktop-pencil.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/language-pack.icon.js +1 -1
- package/lib/components/Icon/streamline-icons/language-pack.icon.js.map +1 -1
- package/lib/components/Icon/streamlineIconNames.d.ts +1 -1
- package/lib/components/Icon/streamlineIconNames.d.ts.map +1 -1
- package/lib/components/Icon/streamlineIconNames.js +3 -0
- package/lib/components/Icon/streamlineIconNames.js.map +1 -1
- package/lib/components/Input/Input.js +1 -1
- package/lib/components/Input/Input.js.map +1 -1
- package/lib/components/Link/Link.d.ts.map +1 -1
- package/lib/components/Link/Link.js +2 -0
- package/lib/components/Link/Link.js.map +1 -1
- package/lib/components/Location/LocationInput.js +1 -1
- package/lib/components/Location/LocationInput.js.map +1 -1
- package/lib/components/Number/NumberInput.d.ts.map +1 -1
- package/lib/components/Number/NumberInput.js +1 -3
- package/lib/components/Number/NumberInput.js.map +1 -1
- package/lib/components/Number/NumberRangeInput.d.ts.map +1 -1
- package/lib/components/Number/NumberRangeInput.js +1 -3
- package/lib/components/Number/NumberRangeInput.js.map +1 -1
- package/lib/components/PageTemplates/PageTemplates.d.ts +1 -0
- package/lib/components/PageTemplates/PageTemplates.d.ts.map +1 -1
- package/lib/components/PageTemplates/PageTemplates.js +7 -1
- package/lib/components/PageTemplates/PageTemplates.js.map +1 -1
- package/lib/components/Phone/PhoneInput.d.ts +3 -0
- package/lib/components/Phone/PhoneInput.d.ts.map +1 -1
- package/lib/components/Phone/PhoneInput.js +6 -2
- package/lib/components/Phone/PhoneInput.js.map +1 -1
- package/lib/components/RadioCheck/RadioCheck.js +1 -1
- package/lib/components/RadioCheck/RadioCheck.js.map +1 -1
- package/lib/components/SearchInput/SearchInput.d.ts.map +1 -1
- package/lib/components/SearchInput/SearchInput.js +1 -1
- package/lib/components/SearchInput/SearchInput.js.map +1 -1
- package/lib/components/Select/Select.d.ts.map +1 -1
- package/lib/components/Select/Select.js +1 -1
- package/lib/components/Select/Select.js.map +1 -1
- package/lib/components/SummaryList/SummaryList.d.ts +2 -1
- package/lib/components/SummaryList/SummaryList.d.ts.map +1 -1
- package/lib/components/SummaryList/SummaryList.js +3 -3
- package/lib/components/SummaryList/SummaryList.js.map +1 -1
- package/lib/hooks/useI18n.d.ts +1 -0
- package/lib/hooks/useI18n.d.ts.map +1 -1
- package/lib/i18n/default.d.ts +1 -0
- package/lib/i18n/default.d.ts.map +1 -1
- package/lib/i18n/default.js +1 -0
- package/lib/i18n/default.js.map +1 -1
- package/lib/i18n/i18n.d.ts +1 -0
- package/lib/i18n/i18n.d.ts.map +1 -1
- package/lib/styles/animations.d.ts.map +1 -1
- package/lib/styles/animations.js +51 -53
- package/lib/styles/animations.js.map +1 -1
- package/lib/styles/constants.d.ts +2 -0
- package/lib/styles/constants.d.ts.map +1 -1
- package/lib/styles/constants.js +10 -0
- package/lib/styles/constants.js.map +1 -1
- package/lib/styles/gradients.js +1 -1
- package/lib/styles/gradients.js.map +1 -1
- package/lib/styles/utils.d.ts +3 -3
- package/lib/styles/utils.d.ts.map +1 -1
- package/lib/styles/utils.js +21 -10
- package/lib/styles/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useRef, useImperativeHandle, useEffect, useState, Fragment } from 'react';\nimport type {\n ClipboardEvent,\n FunctionComponent,\n PropsWithoutRef,\n Ref,\n RefObject,\n Dispatch,\n SetStateAction,\n ComponentType\n} from 'react';\nimport styled from 'styled-components';\n\nimport { defaultThemeProp } from '../../../theme';\nimport {\n useConfiguration,\n useFocusWithin,\n useI18n,\n useOuterEvent,\n useTestIds,\n useUID\n} from '../../../hooks';\nimport type { ForwardProps } from '../../../types';\nimport FormField from '../../FormField';\nimport Flex from '../../Flex';\nimport Icon, { registerIcon } from '../../Icon';\nimport * as calendarIcon from '../../Icon/icons/calendar.icon';\nimport DatePicker from '../Picker/DatePicker';\nimport type DatePickerProps from '../Picker/DatePicker.types';\nimport { StyledFormControl } from '../../FormControl';\nimport type { FormControlProps } from '../../FormControl';\nimport type DateTimeProps from '../DateTime.types';\nimport type { DateTimeCallbackParameter } from '../DateTime.types';\nimport { createClassName, withTestIds } from '../../../utils';\nimport { getDateInputTestIds } from '../DateTime.test-ids';\nimport HiddenText from '../../HiddenText';\n\nimport {\n getDateFormat,\n getDateTimeParts,\n parsePastedTextToDate,\n parseToDate,\n validateDate,\n generatePickerButtonAriaLabel\n} from './utils';\nimport StyledDateTime, {\n StyledDatePickerDialog,\n StyledDialogContent,\n StyledInputButton,\n StyledInputContainer\n} from './DateTime.styles';\nimport useAutoFocusNextInput from './useAutoFocusNextInput';\nimport PartInput from './PartInput';\nimport usePickerButton from './usePickerButton';\nimport type { DateParts } from './DateTimeInput.types';\n\nregisterIcon(calendarIcon);\n\nexport interface DateInputHandleValue {\n setOpen: Dispatch<SetStateAction<boolean>>;\n}\n\nexport interface DateInputProps extends DateTimeProps {\n /**\n * Display additional column with week number in date picker popover.\n * @default false\n */\n showWeekNumber?: boolean;\n /** Changes default date picker */\n picker?: {\n renderer: ComponentType;\n rendererProps?: Partial<DatePickerProps> & ForwardProps;\n };\n /** Pass a heading and content to show additional information on the field. */\n additionalInfo?: FormControlProps['additionalInfo'];\n /** Additional properties for imperative control. */\n handle?: Ref<DateInputHandleValue>;\n}\n\nexport const StyledDateInput = styled(StyledDateTime)<DateInputProps>`\n padding-inline-end: 0;\n`;\n\nStyledDateInput.defaultProps = defaultThemeProp;\n\nconst convertToCallbackParameter = (\n date: Date,\n { year, month: monthIndex, day }: DateParts<string | undefined>\n): DateTimeCallbackParameter => {\n if ([year, monthIndex, day].every(Boolean)) {\n if (!validateDate(Number(year), Number(monthIndex) + 1, Number(day))) {\n return {\n valueAsISOString: '',\n valueAsTimestamp: NaN,\n state: 'invalid'\n };\n }\n\n date.setUTCFullYear(Number(year), Number(monthIndex), Number(day));\n return {\n valueAsISOString: date.toISOString(),\n valueAsTimestamp: date.getTime()\n };\n }\n if ([year, monthIndex, day].every(p => !p)) {\n return {\n valueAsISOString: undefined,\n valueAsTimestamp: undefined\n };\n }\n return {\n valueAsISOString: '',\n valueAsTimestamp: NaN,\n state: 'incomplete'\n };\n};\n\nconst DateInput: FunctionComponent<DateInputProps & ForwardProps> = forwardRef(function DateInput(\n props: PropsWithoutRef<DateInputProps>,\n ref: Ref<HTMLFieldSetElement>\n) {\n const { locale } = useConfiguration();\n const t = useI18n();\n const {\n testId,\n value,\n min,\n max,\n id,\n label,\n labelHidden,\n info = getDateFormat(t, locale, 'date'),\n status,\n required,\n readOnly,\n disabled,\n onChange,\n onFocus,\n onBlur,\n onResolveSuggestion,\n showWeekNumber,\n picker: { renderer: PickerComp = DatePicker, rendererProps = {} } = {},\n autoFocus,\n additionalInfo,\n handle,\n className,\n ...restProps\n } = props;\n\n const testIds = useTestIds(testId, getDateInputTestIds);\n const yearPartId = useUID();\n\n const containerRef = useRef<HTMLElement>(null);\n\n const date = value !== undefined && value !== '' ? parseToDate(value) : undefined;\n\n const [yearInputRef, monthInputRef, dayInputRef] = [\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null)\n ];\n\n const [hasValue, setHasValue] = useState(!!date);\n useEffect(() => {\n setHasValue(\n !!(yearInputRef.current?.value || monthInputRef.current?.value || dayInputRef.current?.value)\n );\n }, [date]);\n\n const pickParts = (): DateParts<string | undefined> => {\n return {\n day: dayInputRef.current?.value || undefined,\n month: monthInputRef.current?.value\n ? (Number(monthInputRef.current.value) - 1).toString()\n : undefined,\n year: yearInputRef.current?.value || undefined\n };\n };\n\n const currentlySelectedDate = () => {\n const parts = pickParts();\n if (Object.values(parts).every(Boolean)) {\n const year = Number(parts.year);\n const monthIndex = Number(parts.month);\n const day = Number(parts.day);\n\n return validateDate(year, monthIndex + 1, day)\n ? new Date(Date.UTC(year, monthIndex, day))\n : undefined;\n }\n };\n\n const [open, setOpen, , setPopoverRef, datePickerButtonEl, setDatePickerButtonEl] =\n usePickerButton();\n\n const inputContainerRef = useRef<HTMLDivElement>(null);\n\n const onFocusChange = (focused: boolean) => {\n const callbackParam = convertToCallbackParameter(\n date ? new Date(date) : new Date(),\n pickParts()\n );\n if (onFocus && focused) onFocus(callbackParam);\n if (!focused) {\n if (inputContainerRef.current) inputContainerRef.current.scrollTop = 0;\n onBlur?.(callbackParam);\n }\n };\n\n const onInputChange = () => {\n onChange?.(convertToCallbackParameter(date ? new Date(date) : new Date(), pickParts()));\n datePickerButtonEl?.setAttribute(\n 'aria-label',\n generatePickerButtonAriaLabel(currentlySelectedDate(), 'date', locale, t, open)\n );\n if (dayInputRef.current?.value || monthInputRef.current?.value || yearInputRef.current?.value) {\n setHasValue(true);\n } else {\n setHasValue(false);\n }\n };\n\n const setInputValue = (newValue?: Date) => {\n if (dayInputRef.current && monthInputRef.current && yearInputRef.current) {\n dayInputRef.current.value = newValue?.getUTCDate().toString().padStart(2, '0') ?? '';\n monthInputRef.current.value =\n (newValue && (newValue.getUTCMonth() + 1).toString().padStart(2, '0')) ?? '';\n yearInputRef.current.value = newValue?.getUTCFullYear().toString() ?? '';\n setHasValue(!!newValue);\n }\n };\n\n const onPaste = (e: ClipboardEvent) => {\n const text = e.clipboardData.getData('text');\n const newDate = parsePastedTextToDate(text, locale, date || new Date());\n if (newDate) {\n e.preventDefault();\n setInputValue(newDate);\n onInputChange();\n }\n };\n\n // autoclose picker on focusing out\n useOuterEvent('focusin', [containerRef], e => {\n if (containerRef.current?.contains(e.relatedTarget as HTMLElement)) setOpen(false);\n });\n\n const displayNames = new Intl.DisplayNames(locale, { style: 'long', type: 'dateTimeField' });\n\n const DayInput = (\n <PartInput\n data-testid={testIds.controlDay}\n key='day'\n placeholder={t('day_placeholder')}\n aria-label={displayNames.of('day')}\n value={date?.getUTCDate()}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n min={1}\n max={31}\n ref={dayInputRef}\n />\n );\n\n const MonthInput = (\n <PartInput\n data-testid={testIds.controlMonth}\n key='month'\n placeholder={t('month_placeholder')}\n aria-label={displayNames.of('month')}\n value={date ? date.getUTCMonth() + 1 : undefined}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n min={1}\n max={12}\n ref={monthInputRef}\n />\n );\n\n const YearInput = (\n <Fragment key='year'>\n <PartInput\n data-testid={testIds.controlYear}\n placeholder={t('year_placeholder')}\n aria-label={displayNames.of('year')}\n aria-describedby={yearPartId}\n value={date?.getUTCFullYear()}\n onChange={onInputChange}\n size={4}\n maxLength={4}\n padWithZeros={false}\n readOnly={readOnly}\n min={1}\n max={9999}\n ref={yearInputRef}\n />\n <HiddenText id={yearPartId}>{t('year_input_description')}</HiddenText>\n </Fragment>\n );\n\n useFocusWithin([containerRef], onFocusChange);\n\n useImperativeHandle(handle, () => ({ setOpen }));\n\n const PickerButton = (\n <>\n <StyledInputButton\n data-testid={testIds.openClosePicker}\n variant='simple'\n icon\n ref={setDatePickerButtonEl}\n onClick={() => setOpen(cur => !cur)}\n aria-label={generatePickerButtonAriaLabel(currentlySelectedDate(), 'date', locale, t, open)}\n readOnly={readOnly}\n disabled={disabled}\n >\n <Icon name='calendar' />\n </StyledInputButton>\n {open && datePickerButtonEl && (\n <StyledDatePickerDialog\n ref={setPopoverRef}\n target={datePickerButtonEl}\n placement='bottom-end'\n aria-label={t('choose_date')}\n >\n <Flex container={{ direction: 'column' }} as={StyledDialogContent}>\n <PickerComp\n testId={testIds.picker}\n selected={currentlySelectedDate()}\n min={min}\n max={max}\n showWeekNumber={showWeekNumber}\n {...rendererProps}\n onChange={selected => {\n setInputValue(selected);\n setOpen(false);\n setTimeout(() => datePickerButtonEl?.focus());\n onInputChange();\n rendererProps?.onChange?.(selected);\n }}\n />\n </Flex>\n </StyledDatePickerDialog>\n )}\n </>\n );\n\n const orderedRefs: RefObject<HTMLInputElement>[] = [];\n\n const Comp = (\n <Flex\n data-testid={label ? undefined : testIds.root}\n as={StyledDateInput}\n forwardedAs={StyledFormControl}\n hasSuggestion={status === 'pending' && !!onResolveSuggestion}\n container={{ alignItems: 'center', wrap: 'nowrap', justify: 'between' }}\n status={status}\n readOnly={readOnly}\n disabled={disabled}\n ref={containerRef}\n onClick={(e: MouseEvent) => {\n if (e.target === containerRef.current) orderedRefs[0].current?.focus();\n }}\n {...restProps}\n className={createClassName('date-input', className, { status })}\n >\n <Flex\n ref={inputContainerRef}\n as={StyledInputContainer}\n container={{ alignItems: 'center', wrap: 'wrap' }}\n onPaste={onPaste}\n >\n {getDateTimeParts(locale).map(part => {\n switch (part) {\n case 'day':\n orderedRefs.push(dayInputRef);\n return DayInput;\n case 'month':\n orderedRefs.push(monthInputRef);\n return MonthInput;\n case 'year':\n orderedRefs.push(yearInputRef);\n return YearInput;\n default:\n return part;\n }\n })}\n </Flex>\n {!readOnly && (\n <Flex container>\n {hasValue && (\n <StyledInputButton\n data-testid={testIds.clearCurrentDate}\n aria-label={t('clear_current_date')}\n icon\n onClick={() => {\n setInputValue(undefined);\n setTimeout(() => datePickerButtonEl?.focus());\n onInputChange();\n }}\n variant='simple'\n compact\n label={t('clear')}\n >\n <Icon name='times' />\n </StyledInputButton>\n )}\n {PickerButton}\n </Flex>\n )}\n </Flex>\n );\n\n useEffect(() => {\n if (autoFocus) orderedRefs[0].current?.focus();\n }, [autoFocus]);\n\n const { description, descriptionID } = useAutoFocusNextInput(orderedRefs);\n\n return label ? (\n <>\n <FormField\n testId={testIds}\n as='fieldset'\n aria-labelledby={id}\n labelAs='legend'\n label={label}\n labelHidden={labelHidden}\n id={id}\n info={info}\n readOnly={readOnly}\n status={status}\n required={required}\n disabled={disabled}\n onResolveSuggestion={onResolveSuggestion}\n additionalInfo={additionalInfo}\n aria-describedby={descriptionID}\n ref={ref}\n >\n {Comp}\n </FormField>\n {description}\n </>\n ) : (\n Comp\n );\n});\n\nexport default withTestIds(DateInput, getDateInputTestIds);\n"]}
|
|
1
|
+
{"version":3,"file":"DateInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useRef, useImperativeHandle, useEffect, useState, Fragment } from 'react';\nimport type {\n ClipboardEvent,\n FunctionComponent,\n PropsWithoutRef,\n Ref,\n RefObject,\n Dispatch,\n SetStateAction,\n ComponentType\n} from 'react';\nimport styled from 'styled-components';\n\nimport { defaultThemeProp } from '../../../theme';\nimport {\n useConfiguration,\n useFocusWithin,\n useI18n,\n useOuterEvent,\n useTestIds,\n useUID\n} from '../../../hooks';\nimport type { ForwardProps } from '../../../types';\nimport FormField from '../../FormField';\nimport Flex from '../../Flex';\nimport Icon, { registerIcon } from '../../Icon';\nimport * as calendarIcon from '../../Icon/icons/calendar.icon';\nimport DatePicker from '../Picker/DatePicker';\nimport type DatePickerProps from '../Picker/DatePicker.types';\nimport { StyledFormControl } from '../../FormControl';\nimport type { FormControlProps } from '../../FormControl';\nimport type DateTimeProps from '../DateTime.types';\nimport type { DateTimeCallbackParameter } from '../DateTime.types';\nimport { createClassName, withTestIds } from '../../../utils';\nimport { getDateInputTestIds } from '../DateTime.test-ids';\nimport HiddenText from '../../HiddenText';\n\nimport {\n getDateFormat,\n getDateTimeParts,\n parsePastedTextToDate,\n parseToDate,\n validateDate,\n generatePickerButtonAriaLabel\n} from './utils';\nimport StyledDateTime, {\n StyledDatePickerDialog,\n StyledDialogContent,\n StyledInputButton,\n StyledInputContainer\n} from './DateTime.styles';\nimport useAutoFocusNextInput from './useAutoFocusNextInput';\nimport PartInput from './PartInput';\nimport usePickerButton from './usePickerButton';\nimport type { DateParts } from './DateTimeInput.types';\n\nregisterIcon(calendarIcon);\n\nexport interface DateInputHandleValue {\n setOpen: Dispatch<SetStateAction<boolean>>;\n}\n\ntype AutoFillDate = AutoFillBase | `${OptionalPrefixToken<AutoFillSection>}bday`;\n\nexport interface DateInputProps extends DateTimeProps {\n /**\n * Display additional column with week number in date picker popover.\n * @default false\n */\n showWeekNumber?: boolean;\n /** Changes default date picker */\n picker?: {\n renderer: ComponentType;\n rendererProps?: Partial<DatePickerProps> & ForwardProps;\n };\n /** Pass a heading and content to show additional information on the field. */\n additionalInfo?: FormControlProps['additionalInfo'];\n /** Flag defining autocompletion behavior. */\n autoComplete?: AutoFillDate;\n /** Additional properties for imperative control. */\n handle?: Ref<DateInputHandleValue>;\n}\n\nexport const StyledDateInput = styled(StyledDateTime)<DateInputProps>`\n padding-inline-end: 0;\n`;\n\nStyledDateInput.defaultProps = defaultThemeProp;\n\nconst convertToCallbackParameter = (\n date: Date,\n { year, month: monthIndex, day }: DateParts<string | undefined>\n): DateTimeCallbackParameter => {\n if ([year, monthIndex, day].every(Boolean)) {\n if (!validateDate(Number(year), Number(monthIndex) + 1, Number(day))) {\n return {\n valueAsISOString: '',\n valueAsTimestamp: NaN,\n state: 'invalid'\n };\n }\n\n date.setUTCFullYear(Number(year), Number(monthIndex), Number(day));\n return {\n valueAsISOString: date.toISOString(),\n valueAsTimestamp: date.getTime()\n };\n }\n if ([year, monthIndex, day].every(p => !p)) {\n return {\n valueAsISOString: undefined,\n valueAsTimestamp: undefined\n };\n }\n return {\n valueAsISOString: '',\n valueAsTimestamp: NaN,\n state: 'incomplete'\n };\n};\n\nconst DateInput: FunctionComponent<DateInputProps & ForwardProps> = forwardRef(function DateInput(\n props: PropsWithoutRef<DateInputProps>,\n ref: Ref<HTMLFieldSetElement>\n) {\n const { locale } = useConfiguration();\n const t = useI18n();\n const {\n testId,\n value,\n min,\n max,\n id,\n label,\n labelHidden,\n info = getDateFormat(t, locale, 'date'),\n status,\n required,\n readOnly,\n disabled,\n onChange,\n onFocus,\n onBlur,\n onResolveSuggestion,\n showWeekNumber,\n picker: { renderer: PickerComp = DatePicker, rendererProps = {} } = {},\n autoFocus,\n additionalInfo,\n handle,\n className,\n autoComplete,\n ...restProps\n } = props;\n\n const testIds = useTestIds(testId, getDateInputTestIds);\n const yearPartId = useUID();\n\n const containerRef = useRef<HTMLElement>(null);\n\n const date = value !== undefined && value !== '' ? parseToDate(value) : undefined;\n\n const [yearInputRef, monthInputRef, dayInputRef] = [\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null)\n ];\n\n const [hasValue, setHasValue] = useState(!!date);\n useEffect(() => {\n setHasValue(\n !!(yearInputRef.current?.value || monthInputRef.current?.value || dayInputRef.current?.value)\n );\n }, [date]);\n\n const pickParts = (): DateParts<string | undefined> => {\n return {\n day: dayInputRef.current?.value || undefined,\n month: monthInputRef.current?.value\n ? (Number(monthInputRef.current.value) - 1).toString()\n : undefined,\n year: yearInputRef.current?.value || undefined\n };\n };\n\n const currentlySelectedDate = () => {\n const parts = pickParts();\n if (Object.values(parts).every(Boolean)) {\n const year = Number(parts.year);\n const monthIndex = Number(parts.month);\n const day = Number(parts.day);\n\n return validateDate(year, monthIndex + 1, day)\n ? new Date(Date.UTC(year, monthIndex, day))\n : undefined;\n }\n };\n\n const [open, setOpen, , setPopoverRef, datePickerButtonEl, setDatePickerButtonEl] =\n usePickerButton();\n\n const inputContainerRef = useRef<HTMLDivElement>(null);\n\n const onFocusChange = (focused: boolean) => {\n const callbackParam = convertToCallbackParameter(\n date ? new Date(date) : new Date(),\n pickParts()\n );\n if (onFocus && focused) onFocus(callbackParam);\n if (!focused) {\n if (inputContainerRef.current) inputContainerRef.current.scrollTop = 0;\n onBlur?.(callbackParam);\n }\n };\n\n const onInputChange = () => {\n onChange?.(convertToCallbackParameter(date ? new Date(date) : new Date(), pickParts()));\n datePickerButtonEl?.setAttribute(\n 'aria-label',\n generatePickerButtonAriaLabel(currentlySelectedDate(), 'date', locale, t, open)\n );\n if (dayInputRef.current?.value || monthInputRef.current?.value || yearInputRef.current?.value) {\n setHasValue(true);\n } else {\n setHasValue(false);\n }\n };\n\n const setInputValue = (newValue?: Date) => {\n if (dayInputRef.current && monthInputRef.current && yearInputRef.current) {\n dayInputRef.current.value = newValue?.getUTCDate().toString().padStart(2, '0') ?? '';\n monthInputRef.current.value =\n (newValue && (newValue.getUTCMonth() + 1).toString().padStart(2, '0')) ?? '';\n yearInputRef.current.value = newValue?.getUTCFullYear().toString() ?? '';\n setHasValue(!!newValue);\n }\n };\n\n const onPaste = (e: ClipboardEvent) => {\n const text = e.clipboardData.getData('text');\n const newDate = parsePastedTextToDate(text, locale, date || new Date());\n if (newDate) {\n e.preventDefault();\n setInputValue(newDate);\n onInputChange();\n }\n };\n\n // autoclose picker on focusing out\n useOuterEvent('focusin', [containerRef], e => {\n if (containerRef.current?.contains(e.relatedTarget as HTMLElement)) setOpen(false);\n });\n\n const displayNames = new Intl.DisplayNames(locale, { style: 'long', type: 'dateTimeField' });\n\n const DayInput = (\n <PartInput\n data-testid={testIds.controlDay}\n key='day'\n placeholder={t('day_placeholder')}\n aria-label={displayNames.of('day')}\n value={date?.getUTCDate()}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n min={1}\n max={31}\n autoComplete={\n (autoComplete && autoComplete.endsWith('bday')\n ? autoComplete.replace('bday', 'bday-day')\n : autoComplete) as AutoFill\n }\n ref={dayInputRef}\n />\n );\n\n const MonthInput = (\n <PartInput\n data-testid={testIds.controlMonth}\n key='month'\n placeholder={t('month_placeholder')}\n aria-label={displayNames.of('month')}\n value={date ? date.getUTCMonth() + 1 : undefined}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n min={1}\n max={12}\n autoComplete={\n (autoComplete && autoComplete.endsWith('bday')\n ? autoComplete.replace('bday', 'bday-month')\n : autoComplete) as AutoFill\n }\n ref={monthInputRef}\n />\n );\n\n const YearInput = (\n <Fragment key='year'>\n <PartInput\n data-testid={testIds.controlYear}\n placeholder={t('year_placeholder')}\n aria-label={displayNames.of('year')}\n aria-describedby={yearPartId}\n value={date?.getUTCFullYear()}\n onChange={onInputChange}\n size={4}\n maxLength={4}\n padWithZeros={false}\n readOnly={readOnly}\n min={1}\n max={9999}\n autoComplete={\n (autoComplete && autoComplete.endsWith('bday')\n ? autoComplete.replace('bday', 'bday-year')\n : autoComplete) as AutoFill\n }\n ref={yearInputRef}\n />\n <HiddenText id={yearPartId}>{t('year_input_description')}</HiddenText>\n </Fragment>\n );\n\n useFocusWithin([containerRef], onFocusChange);\n\n useImperativeHandle(handle, () => ({ setOpen }));\n\n const PickerButton = (\n <>\n <StyledInputButton\n data-testid={testIds.openClosePicker}\n variant='simple'\n icon\n ref={setDatePickerButtonEl}\n onClick={() => setOpen(cur => !cur)}\n aria-label={generatePickerButtonAriaLabel(currentlySelectedDate(), 'date', locale, t, open)}\n readOnly={readOnly}\n disabled={disabled}\n >\n <Icon name='calendar' />\n </StyledInputButton>\n {open && datePickerButtonEl && (\n <StyledDatePickerDialog\n ref={setPopoverRef}\n target={datePickerButtonEl}\n placement='bottom-end'\n aria-label={t('choose_date')}\n >\n <Flex container={{ direction: 'column' }} as={StyledDialogContent}>\n <PickerComp\n testId={testIds.picker}\n selected={currentlySelectedDate()}\n min={min}\n max={max}\n showWeekNumber={showWeekNumber}\n {...rendererProps}\n onChange={selected => {\n setInputValue(selected);\n setOpen(false);\n setTimeout(() => datePickerButtonEl?.focus());\n onInputChange();\n rendererProps?.onChange?.(selected);\n }}\n />\n </Flex>\n </StyledDatePickerDialog>\n )}\n </>\n );\n\n const orderedRefs: RefObject<HTMLInputElement>[] = [];\n\n const Comp = (\n <Flex\n data-testid={label ? undefined : testIds.root}\n as={StyledDateInput}\n forwardedAs={StyledFormControl}\n hasSuggestion={status === 'pending' && !!onResolveSuggestion}\n container={{ alignItems: 'center', wrap: 'nowrap', justify: 'between' }}\n status={status}\n readOnly={readOnly}\n disabled={disabled}\n ref={containerRef}\n onClick={(e: MouseEvent) => {\n if (e.target === containerRef.current) orderedRefs[0].current?.focus();\n }}\n {...restProps}\n className={createClassName('date-input', className)}\n >\n <Flex\n ref={inputContainerRef}\n as={StyledInputContainer}\n container={{ alignItems: 'center', wrap: 'wrap' }}\n onPaste={onPaste}\n >\n {getDateTimeParts(locale).map(part => {\n switch (part) {\n case 'day':\n orderedRefs.push(dayInputRef);\n return DayInput;\n case 'month':\n orderedRefs.push(monthInputRef);\n return MonthInput;\n case 'year':\n orderedRefs.push(yearInputRef);\n return YearInput;\n default:\n return part;\n }\n })}\n </Flex>\n {!readOnly && (\n <Flex container>\n {hasValue && (\n <StyledInputButton\n data-testid={testIds.clearCurrentDate}\n aria-label={t('clear_current_date')}\n icon\n onClick={() => {\n setInputValue(undefined);\n setTimeout(() => datePickerButtonEl?.focus());\n onInputChange();\n }}\n variant='simple'\n compact\n label={t('clear')}\n >\n <Icon name='times' />\n </StyledInputButton>\n )}\n {PickerButton}\n </Flex>\n )}\n </Flex>\n );\n\n useEffect(() => {\n if (autoFocus) orderedRefs[0].current?.focus();\n }, [autoFocus]);\n\n const { description, descriptionID } = useAutoFocusNextInput(orderedRefs);\n\n return label ? (\n <>\n <FormField\n testId={testIds}\n as='fieldset'\n aria-labelledby={id}\n labelAs='legend'\n label={label}\n labelHidden={labelHidden}\n id={id}\n info={info}\n readOnly={readOnly}\n status={status}\n required={required}\n disabled={disabled}\n onResolveSuggestion={onResolveSuggestion}\n additionalInfo={additionalInfo}\n aria-describedby={descriptionID}\n ref={ref}\n >\n {Comp}\n </FormField>\n {description}\n </>\n ) : (\n Comp\n );\n});\n\nexport default withTestIds(DateInput, getDateInputTestIds);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangeInput.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateRangeInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,OAAO,CAAC;AAIrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EACV,0BAA0B,EAE1B,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAW3B,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,kCAAkC;IAClC,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAAC,GAAG,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IACzE;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtC,6FAA6F;IAC7F,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,uHAAuH;IACvH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACtD,sHAAsH;IACtH,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACxD,+CAA+C;IAC/C,QAAQ,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACtD,sDAAsD;IACtD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACtD,qDAAqD;IACrD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACrD,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;;;;
|
|
1
|
+
{"version":3,"file":"DateRangeInput.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateRangeInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,OAAO,CAAC;AAIrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EACV,0BAA0B,EAE1B,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAW3B,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,kCAAkC;IAClC,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAAC,GAAG,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IACzE;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtC,6FAA6F;IAC7F,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,uHAAuH;IACvH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACtD,sHAAsH;IACtH,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACxD,+CAA+C;IAC/C,QAAQ,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACtD,sDAAsD;IACtD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACtD,qDAAqD;IACrD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACrD,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;;;;AAwQD,wBAAqE"}
|
|
@@ -136,7 +136,7 @@ const DateRangeInput = forwardRef(function DateRangeInput({ testId, value = {},
|
|
|
136
136
|
status
|
|
137
137
|
};
|
|
138
138
|
const descriptionId = useUID();
|
|
139
|
-
return (_jsxs(_Fragment, { children: [_jsx(FormField, { testId: testIds, as: StyledDateRangeInput, ...restProps, ref: containerRef,
|
|
139
|
+
return (_jsxs(_Fragment, { children: [_jsx(FormField, { testId: testIds, as: StyledDateRangeInput, ...restProps, ref: containerRef, container: { wrap: 'nowrap' }, labelHidden: labelHidden, label: label, labelAs: 'legend', required: required, readOnly: readOnly, status: status, disabled: disabled, "aria-describedby": descriptionId, children: _jsxs(Flex, { container: true, as: StyledRangeInputContainer, className: createClassName('date-range-input', className, { status }), children: [_jsx(DateInput, { testId: testIds.fromDate, ...commonProps, value: value.start, picker: {
|
|
140
140
|
renderer: DateRangePicker,
|
|
141
141
|
rendererProps: {
|
|
142
142
|
selected: getSelected(start, end),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangeInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateRangeInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAExD,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,IAAI,MAAM,YAAY,CAAC;AAC9B,OAAO,SAAS,EAAE,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAOxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AA4BhD,MAAM,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAsB,KAAK,CAAC,EAAE;IACxE,MAAM,EACJ,KAAK,EAAE,EACL,UAAU,EAAE,EAAE,KAAK,EAAE,EACtB,EACF,GAAG,KAAK,CAAC;IAEV,OAAO,GAAG,CAAA;;;;MAIN,eAAe;uBACE,eAAe;gCACN,KAAK,CAAC,cAAc,CAAC;;;;;;;;;;;;;GAalD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,oBAAoB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAIrD,MAAM,0BAA0B,GAAG,CAAC,CAAU,EAA6B,EAAE;IAC3E,OAAO;QACL,gBAAgB,EAAE,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;QAC5F,gBAAgB,EAAE,CAAC;KACpB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,CAAqB,EAAE,IAAqB,EAAE,EAAE;IACpE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,IAAI,KAAK,OAAO;QACrB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAyB,EAAE,MAA0B,EAAE,EAAE;IAC5E,MAAM,QAAQ,GAAG,KAAK,IAAI,MAAM,CAAC;IACjC,OAAO,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAAoC,EAAE,EAAE;IAChE,OAAO,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,cAAc,GAA0D,UAAU,CACtF,SAAS,cAAc,CACrB,EACE,MAAM,EACN,KAAK,GAAG,EAAE,EACV,GAAG,EACH,GAAG,EACH,KAAK,EACL,SAAS,EACT,OAAO,EACP,WAAW,EACX,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,EACN,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,GAAG,SAAS,EACyB,EACvC,GAAwB;IAExB,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC7D,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,MAAM,aAAa,GAAG,MAAM,CAAuB,IAAI,CAAC,CAAC;IAEzD,MAAM,KAAK,GACT,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE;QAC7C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAChE,MAAM,GAAG,GACP,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,EAAE;QACzC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;IAE5D,MAAM,YAAY,GAAG,MAAM,CAA4B,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1F,MAAM,UAAU,GAAG,MAAM,CAA4B,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;IAEtF,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,OAAgB,EAAE,EAAE;QACnB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,KAAK,EAAE,YAAY,CAAC,OAAO;YAC3B,GAAG,EAAE,UAAU,CAAC,OAAO;SACxB,CAAC,CAAC;IACL,CAAC,EACD,CAAC,OAAO,EAAE,MAAM,CAAC,CAClB,CAAC;IAEF,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC7C,cAAc,CAAC,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,CAAC;IAE9C,MAAM,iBAAiB,GAAG,CAAC,YAAmB,EAAE,EAAE;QAChD,MAAM,QAAQ,GAAG,YAAY,EAAE,OAAO,EAAE,CAAC;QACzC,IAAI,GAAG,IAAI,QAAQ,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;YACtC,YAAY,CAAC,OAAO,GAAG,0BAA0B,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9E,UAAU,CAAC,OAAO,GAAG,0BAA0B,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YAC/E,QAAQ,CAAC;gBACP,KAAK,EAAE,0BAA0B,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC7D,GAAG,EAAE,0BAA0B,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;aAC/D,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,OAAO,GAAG,0BAA0B,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YACnF,UAAU,CAAC,OAAO,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;YACrD,QAAQ,CAAC;gBACP,KAAK,EAAE,0BAA0B,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAClE,GAAG,EAAE,0BAA0B,CAAC,GAAG,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;QACD,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,YAAmB,EAAE,EAAE;QAC9C,MAAM,QAAQ,GAAG,YAAY,EAAE,OAAO,EAAE,CAAC;QACzC,IAAI,KAAK,IAAI,QAAQ,IAAI,QAAQ,GAAG,KAAK,EAAE,CAAC;YAC1C,UAAU,CAAC,OAAO,GAAG,0BAA0B,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAC5E,YAAY,CAAC,OAAO,GAAG,0BAA0B,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YACnF,QAAQ,CAAC;gBACP,GAAG,EAAE,0BAA0B,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC3D,KAAK,EAAE,0BAA0B,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;aACnE,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,OAAO,GAAG,0BAA0B,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YAC/E,YAAY,CAAC,OAAO,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;YACzD,QAAQ,CAAC;gBACP,KAAK,EAAE,0BAA0B,CAAC,KAAK,CAAC;gBACxC,GAAG,EAAE,0BAA0B,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;aAC/D,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAEtC,IAAI,SAAS,IAAI,OAAO,IAAI,SAAS,GAAG,OAAO;YAAE,OAAO,SAAS,CAAC;QAElE,OAAO;YACL,SAAS;YACT,OAAO;SACR,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG;QAClB,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,GAAG;QACH,GAAG;QACH,MAAM;KACP,CAAC;IAEF,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC;IAE/B,OAAO,CACL,8BACE,KAAC,SAAS,IACR,MAAM,EAAE,OAAO,EACf,EAAE,EAAE,oBAAoB,KACpB,SAAS,EACb,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,eAAe,CAAC,kBAAkB,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EACrE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAC7B,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAC,QAAQ,EAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,sBACA,aAAa,YAE/B,MAAC,IAAI,IAAC,SAAS,QAAC,EAAE,EAAE,yBAAyB,aAC3C,KAAC,SAAS,IACR,MAAM,EAAE,OAAO,CAAC,QAAQ,KACpB,WAAW,EACf,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE;gCACN,QAAQ,EAAE,eAAe;gCACzB,aAAa,EAAE;oCACb,QAAQ,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC;oCACjC,aAAa,EAAE,gBAAgB,EAAE;oCACjC,QAAQ,EAAE,iBAAiB;iCAC5B;6BACF,EACD,MAAM,EAAE,YAAY,CAAC,EAAE;gCACrB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK;oCACjC,CAAC,CAAC,YAAY;oCACd,CAAC,CAAC,0BAA0B,CACxB,YAAY,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CACrD,CAAC;gCACN,YAAY,CAAC,OAAO,GAAG,QAAQ,CAAC;gCAChC,QAAQ,CAAC;oCACP,KAAK,EAAE,QAAQ;oCACf,GAAG,EAAE,0BAA0B,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iCAC1D,CAAC,CAAC;4BACL,CAAC,EACD,cAAc,EAAE,kBAAkB,EAClC,KAAK,EAAE,SAAS,gBACJ,GAAG,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EACxE,SAAS,EAAE,SAAS,GACpB,EACF,KAAC,SAAS,IACR,MAAM,EAAE,OAAO,CAAC,MAAM,KAClB,WAAW,EACf,KAAK,EAAE,KAAK,CAAC,GAAG,EAChB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE;gCACN,QAAQ,EAAE,eAAe;gCACzB,aAAa,EAAE;oCACb,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC;oCACjC,aAAa,EAAE,gBAAgB,EAAE;oCACjC,QAAQ,EAAE,eAAe;iCAC1B;6BACF,EACD,MAAM,EAAE,YAAY,CAAC,EAAE;gCACrB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK;oCACjC,CAAC,CAAC,YAAY;oCACd,CAAC,CAAC,0BAA0B,CAAC,YAAY,CAAC,YAAY,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;gCACnF,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAC;gCAC9B,QAAQ,CAAC;oCACP,KAAK,EAAE,0BAA0B,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oCAC/D,GAAG,EAAE,QAAQ;iCACd,CAAC,CAAC;4BACL,CAAC,EACD,cAAc,EAAE,gBAAgB,EAChC,KAAK,EAAE,OAAO,gBACF,GAAG,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GACtE,IACG,GACG,EACZ,KAAC,UAAU,IAAC,EAAE,EAAE,aAAa,YAAG,CAAC,CAAC,aAAa,CAAC,GAAc,IAC7D,CACJ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,WAAW,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC","sourcesContent":["import { useRef, forwardRef, useCallback } from 'react';\nimport type { FunctionComponent, PropsWithoutRef, Ref } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { useConsolidatedRef, useFocusWithin, useI18n, useTestIds, useUID } from '../../../hooks';\nimport type { ForwardProps } from '../../../types';\nimport { defaultThemeProp } from '../../../theme';\nimport type { FormControlProps } from '../../FormControl';\nimport Flex from '../../Flex';\nimport FormField, { StyledFormField } from '../../FormField/FormField';\nimport DateRangePicker from '../Picker/DateRangePicker';\nimport type DateTimeProps from '../DateTime.types';\nimport type {\n DateRangeCallbackParameter,\n DateTimeCallbackParameter,\n DateTimeProperties\n} from '../DateTime.types';\nimport { StyledRangeInputContainer } from '../../Input/Input.styles';\nimport { getDateRangeInputTestIds } from '../DateTime.test-ids';\nimport { createClassName, withTestIds } from '../../../utils';\nimport HiddenText from '../../HiddenText';\n\nimport DateInput from './DateInput';\nimport type { DateInputHandleValue } from './DateInput';\nimport { parseToDate } from './utils';\nimport StyledDateInput from './DateTime.styles';\n\nexport interface DateRangeInputProps extends DateTimeProperties {\n /** Object of range boundaries. */\n value?: { start?: DateTimeProps['value']; end?: DateTimeProps['value'] };\n /**\n * Display additional column with week number in date picker popover.\n * @default false\n */\n showWeekNumber?: boolean;\n /** Pass a string or a fragment with an Icon and string for first part of DataRangeInput. */\n fromLabel?: FormControlProps['label'];\n /** Pass a string or a fragment with an Icon and string for second part of DataRangeInput. */\n toLabel?: FormControlProps['label'];\n /** Pass an object with \"heading\" and \"content\" properties to show AdditionalInfo for second part of DataRangeInput. */\n toAdditionalInfo?: FormControlProps['additionalInfo'];\n /** Pass an object with \"heading\" and \"content\" properties to show AdditionalInfo for first part of DataRangeInput. */\n fromAdditionalInfo?: FormControlProps['additionalInfo'];\n /** Callback fired when input value changes. */\n onChange: (value: DateRangeCallbackParameter) => void;\n /** Callback fired when the component gets focused. */\n onFocus?: (value: DateRangeCallbackParameter) => void;\n /** Callback fired when the component loses focus. */\n onBlur?: (value: DateRangeCallbackParameter) => void;\n /** Automatically focuses the input on render. */\n autoFocus?: boolean;\n}\n\nconst StyledDateRangeInput = styled.fieldset<DateRangeInputProps>(props => {\n const {\n theme: {\n components: { input }\n }\n } = props;\n\n return css`\n border: 0;\n min-width: min-content;\n\n ${StyledFormField} {\n &:last-child > ${StyledDateInput} {\n margin-inline-start: -${input['border-width']};\n }\n\n & legend {\n align-self: center;\n }\n\n &:focus,\n &:hover,\n &:focus-within {\n z-index: 2;\n }\n }\n `;\n});\n\nStyledDateRangeInput.defaultProps = defaultThemeProp;\n\ntype DateRepresentable = string | number | Date;\n\nconst convertToCallbackParameter = (v?: number): DateTimeCallbackParameter => {\n return {\n valueAsISOString: v === undefined || Number.isNaN(v) ? undefined : new Date(v).toISOString(),\n valueAsTimestamp: v\n };\n};\n\nconst prepareValue = (v: number | undefined, type: 'start' | 'end') => {\n if (v === undefined || Number.isNaN(v)) {\n return v;\n }\n return type === 'start'\n ? new Date(v).setUTCHours(0, 0, 0, 0)\n : new Date(v).setUTCHours(23, 59, 59, 999);\n};\n\nconst getSelected = (first: number | undefined, second: number | undefined) => {\n const selected = first ?? second;\n return selected ? parseToDate(selected) : undefined;\n};\n\nconst parseValueToDate = (value: DateRepresentable | undefined) => {\n return value ? parseToDate(value) : undefined;\n};\n\nconst DateRangeInput: FunctionComponent<DateRangeInputProps & ForwardProps> = forwardRef(\n function DateRangeInput(\n {\n testId,\n value = {},\n min,\n max,\n label,\n fromLabel,\n toLabel,\n labelHidden,\n status,\n required,\n readOnly,\n disabled,\n onChange,\n onFocus,\n onBlur,\n showWeekNumber,\n autoFocus,\n fromAdditionalInfo,\n toAdditionalInfo,\n className,\n ...restProps\n }: PropsWithoutRef<DateRangeInputProps>,\n ref: Ref<HTMLDivElement>\n ) {\n const testIds = useTestIds(testId, getDateRangeInputTestIds);\n const t = useI18n();\n const endDateHandle = useRef<DateInputHandleValue>(null);\n\n const start =\n value.start === undefined || value.start === ''\n ? undefined\n : prepareValue(parseToDate(value.start).getTime(), 'start');\n const end =\n value.end === undefined || value.end === ''\n ? undefined\n : prepareValue(parseToDate(value.end).getTime(), 'end');\n\n const startDateRef = useRef<DateTimeCallbackParameter>(convertToCallbackParameter(start));\n const endDateRef = useRef<DateTimeCallbackParameter>(convertToCallbackParameter(end));\n\n const onFocusChange = useCallback(\n (focused: boolean) => {\n (focused ? onFocus : onBlur)?.({\n start: startDateRef.current,\n end: endDateRef.current\n });\n },\n [onFocus, onBlur]\n );\n\n const containerRef = useConsolidatedRef(ref);\n useFocusWithin([containerRef], onFocusChange);\n\n const onStartDateChange = (selectedDate?: Date) => {\n const selected = selectedDate?.getTime();\n if (end && selected && selected > end) {\n startDateRef.current = convertToCallbackParameter(prepareValue(end, 'start'));\n endDateRef.current = convertToCallbackParameter(prepareValue(selected, 'end'));\n onChange({\n start: convertToCallbackParameter(prepareValue(end, 'start')),\n end: convertToCallbackParameter(prepareValue(selected, 'end'))\n });\n } else {\n startDateRef.current = convertToCallbackParameter(prepareValue(selected, 'start'));\n endDateRef.current = convertToCallbackParameter(end);\n onChange({\n start: convertToCallbackParameter(prepareValue(selected, 'start')),\n end: convertToCallbackParameter(end)\n });\n }\n endDateHandle.current?.setOpen(true);\n };\n\n const onEndDateChange = (selectedDate?: Date) => {\n const selected = selectedDate?.getTime();\n if (start && selected && selected < start) {\n endDateRef.current = convertToCallbackParameter(prepareValue(start, 'end'));\n startDateRef.current = convertToCallbackParameter(prepareValue(selected, 'start'));\n onChange({\n end: convertToCallbackParameter(prepareValue(start, 'end')),\n start: convertToCallbackParameter(prepareValue(selected, 'start'))\n });\n } else {\n endDateRef.current = convertToCallbackParameter(prepareValue(selected, 'end'));\n startDateRef.current = convertToCallbackParameter(start);\n onChange({\n start: convertToCallbackParameter(start),\n end: convertToCallbackParameter(prepareValue(selected, 'end'))\n });\n }\n };\n\n const getSelectedRange = () => {\n const startDate = parseValueToDate(start);\n const endDate = parseValueToDate(end);\n\n if (startDate && endDate && startDate > endDate) return undefined;\n\n return {\n startDate,\n endDate\n };\n };\n\n const commonProps = {\n required,\n readOnly,\n disabled,\n min,\n max,\n status\n };\n\n const descriptionId = useUID();\n\n return (\n <>\n <FormField\n testId={testIds}\n as={StyledDateRangeInput}\n {...restProps}\n ref={containerRef}\n className={createClassName('date-range-input', className, { status })}\n container={{ wrap: 'nowrap' }}\n labelHidden={labelHidden}\n label={label}\n labelAs='legend'\n required={required}\n readOnly={readOnly}\n status={status}\n disabled={disabled}\n aria-describedby={descriptionId}\n >\n <Flex container as={StyledRangeInputContainer}>\n <DateInput\n testId={testIds.fromDate}\n {...commonProps}\n value={value.start}\n picker={{\n renderer: DateRangePicker,\n rendererProps: {\n selected: getSelected(start, end),\n selectedRange: getSelectedRange(),\n onChange: onStartDateChange\n }\n }}\n onBlur={changedValue => {\n const newValue = changedValue.state\n ? changedValue\n : convertToCallbackParameter(\n prepareValue(changedValue.valueAsTimestamp, 'start')\n );\n startDateRef.current = newValue;\n onChange({\n start: newValue,\n end: convertToCallbackParameter(prepareValue(end, 'end'))\n });\n }}\n additionalInfo={fromAdditionalInfo}\n label={fromLabel}\n aria-label={`${t('range_from_datetime') + (label ? ` - ${label}` : '')}`}\n autoFocus={autoFocus}\n />\n <DateInput\n testId={testIds.toDate}\n {...commonProps}\n value={value.end}\n handle={endDateHandle}\n picker={{\n renderer: DateRangePicker,\n rendererProps: {\n selected: getSelected(end, start),\n selectedRange: getSelectedRange(),\n onChange: onEndDateChange\n }\n }}\n onBlur={changedValue => {\n const newValue = changedValue.state\n ? changedValue\n : convertToCallbackParameter(prepareValue(changedValue.valueAsTimestamp, 'end'));\n endDateRef.current = newValue;\n onChange({\n start: convertToCallbackParameter(prepareValue(start, 'start')),\n end: newValue\n });\n }}\n additionalInfo={toAdditionalInfo}\n label={toLabel}\n aria-label={`${t('range_to_datetime') + (label ? ` - ${label}` : '')}`}\n />\n </Flex>\n </FormField>\n <HiddenText id={descriptionId}>{t('range_input')}</HiddenText>\n </>\n );\n }\n);\n\nexport default withTestIds(DateRangeInput, getDateRangeInputTestIds);\n"]}
|
|
1
|
+
{"version":3,"file":"DateRangeInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateRangeInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useRef, forwardRef, useCallback } from 'react';\nimport type { FunctionComponent, PropsWithoutRef, Ref } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { useConsolidatedRef, useFocusWithin, useI18n, useTestIds, useUID } from '../../../hooks';\nimport type { ForwardProps } from '../../../types';\nimport { defaultThemeProp } from '../../../theme';\nimport type { FormControlProps } from '../../FormControl';\nimport Flex from '../../Flex';\nimport FormField, { StyledFormField } from '../../FormField/FormField';\nimport DateRangePicker from '../Picker/DateRangePicker';\nimport type DateTimeProps from '../DateTime.types';\nimport type {\n DateRangeCallbackParameter,\n DateTimeCallbackParameter,\n DateTimeProperties\n} from '../DateTime.types';\nimport { StyledRangeInputContainer } from '../../Input/Input.styles';\nimport { getDateRangeInputTestIds } from '../DateTime.test-ids';\nimport { createClassName, withTestIds } from '../../../utils';\nimport HiddenText from '../../HiddenText';\n\nimport DateInput from './DateInput';\nimport type { DateInputHandleValue } from './DateInput';\nimport { parseToDate } from './utils';\nimport StyledDateInput from './DateTime.styles';\n\nexport interface DateRangeInputProps extends DateTimeProperties {\n /** Object of range boundaries. */\n value?: { start?: DateTimeProps['value']; end?: DateTimeProps['value'] };\n /**\n * Display additional column with week number in date picker popover.\n * @default false\n */\n showWeekNumber?: boolean;\n /** Pass a string or a fragment with an Icon and string for first part of DataRangeInput. */\n fromLabel?: FormControlProps['label'];\n /** Pass a string or a fragment with an Icon and string for second part of DataRangeInput. */\n toLabel?: FormControlProps['label'];\n /** Pass an object with \"heading\" and \"content\" properties to show AdditionalInfo for second part of DataRangeInput. */\n toAdditionalInfo?: FormControlProps['additionalInfo'];\n /** Pass an object with \"heading\" and \"content\" properties to show AdditionalInfo for first part of DataRangeInput. */\n fromAdditionalInfo?: FormControlProps['additionalInfo'];\n /** Callback fired when input value changes. */\n onChange: (value: DateRangeCallbackParameter) => void;\n /** Callback fired when the component gets focused. */\n onFocus?: (value: DateRangeCallbackParameter) => void;\n /** Callback fired when the component loses focus. */\n onBlur?: (value: DateRangeCallbackParameter) => void;\n /** Automatically focuses the input on render. */\n autoFocus?: boolean;\n}\n\nconst StyledDateRangeInput = styled.fieldset<DateRangeInputProps>(props => {\n const {\n theme: {\n components: { input }\n }\n } = props;\n\n return css`\n border: 0;\n min-width: min-content;\n\n ${StyledFormField} {\n &:last-child > ${StyledDateInput} {\n margin-inline-start: -${input['border-width']};\n }\n\n & legend {\n align-self: center;\n }\n\n &:focus,\n &:hover,\n &:focus-within {\n z-index: 2;\n }\n }\n `;\n});\n\nStyledDateRangeInput.defaultProps = defaultThemeProp;\n\ntype DateRepresentable = string | number | Date;\n\nconst convertToCallbackParameter = (v?: number): DateTimeCallbackParameter => {\n return {\n valueAsISOString: v === undefined || Number.isNaN(v) ? undefined : new Date(v).toISOString(),\n valueAsTimestamp: v\n };\n};\n\nconst prepareValue = (v: number | undefined, type: 'start' | 'end') => {\n if (v === undefined || Number.isNaN(v)) {\n return v;\n }\n return type === 'start'\n ? new Date(v).setUTCHours(0, 0, 0, 0)\n : new Date(v).setUTCHours(23, 59, 59, 999);\n};\n\nconst getSelected = (first: number | undefined, second: number | undefined) => {\n const selected = first ?? second;\n return selected ? parseToDate(selected) : undefined;\n};\n\nconst parseValueToDate = (value: DateRepresentable | undefined) => {\n return value ? parseToDate(value) : undefined;\n};\n\nconst DateRangeInput: FunctionComponent<DateRangeInputProps & ForwardProps> = forwardRef(\n function DateRangeInput(\n {\n testId,\n value = {},\n min,\n max,\n label,\n fromLabel,\n toLabel,\n labelHidden,\n status,\n required,\n readOnly,\n disabled,\n onChange,\n onFocus,\n onBlur,\n showWeekNumber,\n autoFocus,\n fromAdditionalInfo,\n toAdditionalInfo,\n className,\n ...restProps\n }: PropsWithoutRef<DateRangeInputProps>,\n ref: Ref<HTMLDivElement>\n ) {\n const testIds = useTestIds(testId, getDateRangeInputTestIds);\n const t = useI18n();\n const endDateHandle = useRef<DateInputHandleValue>(null);\n\n const start =\n value.start === undefined || value.start === ''\n ? undefined\n : prepareValue(parseToDate(value.start).getTime(), 'start');\n const end =\n value.end === undefined || value.end === ''\n ? undefined\n : prepareValue(parseToDate(value.end).getTime(), 'end');\n\n const startDateRef = useRef<DateTimeCallbackParameter>(convertToCallbackParameter(start));\n const endDateRef = useRef<DateTimeCallbackParameter>(convertToCallbackParameter(end));\n\n const onFocusChange = useCallback(\n (focused: boolean) => {\n (focused ? onFocus : onBlur)?.({\n start: startDateRef.current,\n end: endDateRef.current\n });\n },\n [onFocus, onBlur]\n );\n\n const containerRef = useConsolidatedRef(ref);\n useFocusWithin([containerRef], onFocusChange);\n\n const onStartDateChange = (selectedDate?: Date) => {\n const selected = selectedDate?.getTime();\n if (end && selected && selected > end) {\n startDateRef.current = convertToCallbackParameter(prepareValue(end, 'start'));\n endDateRef.current = convertToCallbackParameter(prepareValue(selected, 'end'));\n onChange({\n start: convertToCallbackParameter(prepareValue(end, 'start')),\n end: convertToCallbackParameter(prepareValue(selected, 'end'))\n });\n } else {\n startDateRef.current = convertToCallbackParameter(prepareValue(selected, 'start'));\n endDateRef.current = convertToCallbackParameter(end);\n onChange({\n start: convertToCallbackParameter(prepareValue(selected, 'start')),\n end: convertToCallbackParameter(end)\n });\n }\n endDateHandle.current?.setOpen(true);\n };\n\n const onEndDateChange = (selectedDate?: Date) => {\n const selected = selectedDate?.getTime();\n if (start && selected && selected < start) {\n endDateRef.current = convertToCallbackParameter(prepareValue(start, 'end'));\n startDateRef.current = convertToCallbackParameter(prepareValue(selected, 'start'));\n onChange({\n end: convertToCallbackParameter(prepareValue(start, 'end')),\n start: convertToCallbackParameter(prepareValue(selected, 'start'))\n });\n } else {\n endDateRef.current = convertToCallbackParameter(prepareValue(selected, 'end'));\n startDateRef.current = convertToCallbackParameter(start);\n onChange({\n start: convertToCallbackParameter(start),\n end: convertToCallbackParameter(prepareValue(selected, 'end'))\n });\n }\n };\n\n const getSelectedRange = () => {\n const startDate = parseValueToDate(start);\n const endDate = parseValueToDate(end);\n\n if (startDate && endDate && startDate > endDate) return undefined;\n\n return {\n startDate,\n endDate\n };\n };\n\n const commonProps = {\n required,\n readOnly,\n disabled,\n min,\n max,\n status\n };\n\n const descriptionId = useUID();\n\n return (\n <>\n <FormField\n testId={testIds}\n as={StyledDateRangeInput}\n {...restProps}\n ref={containerRef}\n container={{ wrap: 'nowrap' }}\n labelHidden={labelHidden}\n label={label}\n labelAs='legend'\n required={required}\n readOnly={readOnly}\n status={status}\n disabled={disabled}\n aria-describedby={descriptionId}\n >\n <Flex\n container\n as={StyledRangeInputContainer}\n className={createClassName('date-range-input', className, { status })}\n >\n <DateInput\n testId={testIds.fromDate}\n {...commonProps}\n value={value.start}\n picker={{\n renderer: DateRangePicker,\n rendererProps: {\n selected: getSelected(start, end),\n selectedRange: getSelectedRange(),\n onChange: onStartDateChange\n }\n }}\n onBlur={changedValue => {\n const newValue = changedValue.state\n ? changedValue\n : convertToCallbackParameter(\n prepareValue(changedValue.valueAsTimestamp, 'start')\n );\n startDateRef.current = newValue;\n onChange({\n start: newValue,\n end: convertToCallbackParameter(prepareValue(end, 'end'))\n });\n }}\n additionalInfo={fromAdditionalInfo}\n label={fromLabel}\n aria-label={`${t('range_from_datetime') + (label ? ` - ${label}` : '')}`}\n autoFocus={autoFocus}\n />\n <DateInput\n testId={testIds.toDate}\n {...commonProps}\n value={value.end}\n handle={endDateHandle}\n picker={{\n renderer: DateRangePicker,\n rendererProps: {\n selected: getSelected(end, start),\n selectedRange: getSelectedRange(),\n onChange: onEndDateChange\n }\n }}\n onBlur={changedValue => {\n const newValue = changedValue.state\n ? changedValue\n : convertToCallbackParameter(prepareValue(changedValue.valueAsTimestamp, 'end'));\n endDateRef.current = newValue;\n onChange({\n start: convertToCallbackParameter(prepareValue(start, 'start')),\n end: newValue\n });\n }}\n additionalInfo={toAdditionalInfo}\n label={toLabel}\n aria-label={`${t('range_to_datetime') + (label ? ` - ${label}` : '')}`}\n />\n </Flex>\n </FormField>\n <HiddenText id={descriptionId}>{t('range_input')}</HiddenText>\n </>\n );\n }\n);\n\nexport default withTestIds(DateRangeInput, getDateRangeInputTestIds);\n"]}
|
|
@@ -326,7 +326,7 @@ const DateTimeInput = forwardRef(function DateTimeInput(props, ref) {
|
|
|
326
326
|
const Comp = (_jsxs(Flex, { "data-testid": label ? undefined : testIds.root, as: StyledDateTimeInput, forwardedAs: StyledFormControl, hasSuggestion: status === 'pending' && !!onResolveSuggestion, container: { alignItems: 'center', wrap: 'nowrap', justify: 'between' }, status: status, readOnly: readOnly, disabled: disabled, ref: containerRef, onClick: (e) => {
|
|
327
327
|
if (e.target === containerRef.current)
|
|
328
328
|
orderedRefs[0].current?.focus();
|
|
329
|
-
}, ...restProps, className: createClassName('date-time-input', className
|
|
329
|
+
}, ...restProps, className: createClassName('date-time-input', className), children: [_jsxs(Flex, { ref: inputContainerRef, as: StyledInputContainer, container: { alignItems: 'center', wrap: 'wrap' }, onPaste: onPaste, children: [dateInputs, timeInputs] }), !readOnly && (_jsxs(Flex, { container: true, children: [hasValue && (_jsx(StyledInputButton, { icon: true, onClick: () => {
|
|
330
330
|
setPickerSelection(undefined);
|
|
331
331
|
setInputValue(undefined);
|
|
332
332
|
setTimeout(() => buttonEl?.focus());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimeInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateTimeInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, Fragment, useEffect, useRef, useState } from 'react';\nimport type {\n ClipboardEvent,\n FunctionComponent,\n MouseEvent,\n PropsWithoutRef,\n Ref,\n RefObject\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport type { ForwardProps } from '../../../types';\nimport { StyledFormControl } from '../../FormControl';\nimport type { FormControlProps } from '../../FormControl';\nimport FormField from '../../FormField';\nimport {\n useConfiguration,\n useConsolidatedRef,\n useFocusWithin,\n useI18n,\n useOuterEvent,\n useTestIds,\n useUID\n} from '../../../hooks';\nimport Select, { Option } from '../../Select';\nimport Flex from '../../Flex';\nimport Button from '../../Button';\nimport Icon, { registerIcon } from '../../Icon';\nimport * as calendarIcon from '../../Icon/icons/calendar.icon';\nimport DatePicker from '../Picker/DatePicker';\nimport type { MinuteInterval } from '../Picker/DatePicker.types';\nimport type DateTimeProps from '../DateTime.types';\nimport type { DateTimeCallbackParameter } from '../DateTime.types';\nimport { createClassName, hasProp, withTestIds } from '../../../utils';\nimport { getDateTimeInputTestIds } from '../DateTime.test-ids';\nimport { getAdjustedUTCDateTime } from '../utils';\nimport HiddenText from '../../HiddenText';\n\nimport StyledDateTime, {\n StyledClearNowButtonsContainer,\n StyledDatePickerDialog,\n StyledDialogContent,\n StyledInputButton,\n StyledInputContainer\n} from './DateTime.styles';\nimport {\n generatePickerButtonAriaLabel,\n getDateFormat,\n getDateTimeParts,\n getTimeOptions,\n is12HClockFormat,\n parsePastedTextToDate,\n parseToDate,\n validateDate,\n validateDateTime,\n validateTime\n} from './utils';\nimport type { ClockFormat } from './utils';\nimport useAutoFocusNextInput from './useAutoFocusNextInput';\nimport PartInput from './PartInput';\nimport usePickerButton from './usePickerButton';\nimport type { DateParts, DateTimeParts, TimeParts } from './DateTimeInput.types';\n\nregisterIcon(calendarIcon);\n\nexport interface DateTimeInputProps extends DateTimeProps {\n /**\n * Display the time with seconds.\n * @default false\n */\n withSeconds?: boolean;\n /**\n * Display additional column with week number in date picker popover.\n * @default false\n */\n showWeekNumber?: boolean;\n /**\n * Defines interval for time picker options (in minutes).\n * @default 30\n */\n pickerInterval?: MinuteInterval;\n /** Defines clock format that overrides locale based format. */\n clockFormat?: ClockFormat;\n /** Pass a heading and content to show additional information on the field. */\n additionalInfo?: FormControlProps['additionalInfo'];\n}\n\nexport const StyledDateTimeInput = styled(StyledDateTime)<DateTimeInputProps>(() => {\n return css`\n padding-inline-end: 0;\n min-width: 0;\n `;\n});\n\nconst StyledDateTimeFieldset = styled.fieldset`\n min-width: 0;\n`;\n\nfunction getMeridiem(hour: number) {\n return hour >= 12 ? 'PM' : 'AM';\n}\n\nconst convertTo12h = (hour: number) => {\n let converted: number = hour;\n if (hour > 12) converted = hour - 12;\n else if (hour === 0) converted = 12;\n return converted;\n};\n\nconst convertTo24h = (hour: number, meridiem: string) => {\n let converted: number = hour;\n if (meridiem === 'PM' && hour < 12) converted = hour + 12;\n else if (meridiem === 'AM' && hour === 12) converted = 0;\n return converted;\n};\n\nexport const convertToCallbackParameter = (\n date: Date,\n parts: DateTimeParts<string | undefined>\n): DateTimeCallbackParameter => {\n const resultDate = Number.isNaN(date.getTime())\n ? new Date(new Date().setUTCHours(0, 0, 0, 0))\n : new Date(date);\n const withSeconds = hasProp(parts, 'second');\n const {\n year,\n month: monthIndex,\n day,\n hour,\n minute,\n second = resultDate.getUTCSeconds().toString(),\n dayPeriod: meridiem\n } = parts;\n const toValidate = withSeconds\n ? [year, monthIndex, day, hour, minute, second]\n : [year, monthIndex, day, hour, minute];\n\n if (toValidate.every(Boolean)) {\n const is12h = meridiem !== undefined;\n\n if (\n !validateDateTime(\n Number(year),\n Number(monthIndex) + 1,\n Number(day),\n Number(hour),\n Number(minute),\n Number(second),\n 0,\n is12h\n )\n ) {\n return {\n valueAsISOString: '',\n valueAsTimestamp: NaN,\n state: 'invalid'\n };\n }\n\n resultDate.setUTCFullYear(Number(year), Number(monthIndex), Number(day));\n resultDate.setUTCHours(\n is12h ? convertTo24h(Number(hour), meridiem!) : Number(hour),\n Number(minute),\n Number(second),\n resultDate.getUTCMilliseconds()\n );\n\n return {\n valueAsISOString: resultDate.toISOString(),\n valueAsTimestamp: resultDate.getTime()\n };\n }\n if ([year, monthIndex, day, hour, minute].every(p => !p)) {\n return {\n valueAsISOString: undefined,\n valueAsTimestamp: undefined\n };\n }\n return {\n valueAsISOString: '',\n valueAsTimestamp: NaN,\n state: 'incomplete'\n };\n};\n\nfunction dateOptions() {\n return {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric'\n } as const;\n}\n\nconst DateTimeInput: FunctionComponent<DateTimeInputProps & ForwardProps> = forwardRef(\n function DateTimeInput(\n props: PropsWithoutRef<DateTimeInputProps>,\n ref: Ref<HTMLFieldSetElement>\n ) {\n const { locale } = useConfiguration();\n const t = useI18n();\n const {\n testId,\n value,\n min,\n max,\n id,\n label,\n labelHidden,\n withSeconds = false,\n clockFormat,\n info = getDateFormat(t, locale, withSeconds ? 'datetime+seconds' : 'datetime'),\n status,\n required,\n readOnly,\n disabled,\n showWeekNumber,\n pickerInterval = 30,\n onChange,\n onFocus,\n onBlur,\n onResolveSuggestion,\n additionalInfo,\n autoFocus,\n className,\n ...restProps\n } = props;\n\n const testIds = useTestIds(testId, getDateTimeInputTestIds);\n const yearPartId = useUID();\n\n const containerRef = useConsolidatedRef(ref);\n\n const dateTime = value !== undefined && value !== '' ? parseToDate(value) : undefined;\n const is12h = clockFormat ? clockFormat === 12 : is12HClockFormat(locale);\n\n const [\n yearInputRef,\n monthInputRef,\n dayInputRef,\n hourInputRef,\n minuteInputRef,\n secondInputRef,\n meridiemSelectRef\n ] = [\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLSelectElement>(null)\n ];\n\n const [hasValue, setHasValue] = useState(!!dateTime);\n useEffect(() => {\n setHasValue(\n !!(\n yearInputRef.current?.value ||\n monthInputRef.current?.value ||\n dayInputRef.current?.value ||\n hourInputRef.current?.value ||\n minuteInputRef.current?.value ||\n (withSeconds && secondInputRef.current?.value)\n )\n );\n }, [dateTime]);\n\n useEffect(() => {\n if (is12h && meridiemSelectRef.current && dateTime?.getUTCHours() !== undefined) {\n meridiemSelectRef.current.value = getMeridiem(dateTime?.getUTCHours());\n }\n }, [is12h, dateTime?.getUTCHours()]);\n\n const [pickerSelection, setPickerSelection] = useState<Date | undefined>(undefined);\n\n const pickDateParts = (): DateParts<string | undefined> => {\n return {\n day: dayInputRef.current?.value || undefined,\n month: monthInputRef.current?.value\n ? (Number(monthInputRef.current.value) - 1).toString()\n : undefined,\n year: yearInputRef.current?.value || undefined\n };\n };\n\n const pickTimeParts = (): TimeParts<string | undefined> => {\n const parts: TimeParts<string | undefined> = {\n hour: hourInputRef.current?.value || undefined,\n minute: minuteInputRef.current?.value || undefined\n };\n if (withSeconds) {\n parts.second = secondInputRef.current?.value;\n }\n if (meridiemSelectRef.current) {\n parts.dayPeriod = meridiemSelectRef.current?.value;\n }\n\n return parts;\n };\n\n const pickParts = (): DateTimeParts<string | undefined> => {\n return { ...pickDateParts(), ...pickTimeParts() };\n };\n\n const currentlySelectedDate = () => {\n const parts = pickDateParts();\n if (Object.values(parts).every(Boolean)) {\n const year = Number(parts.year);\n const month = Number(parts.month);\n const day = Number(parts.day);\n\n return validateDate(year, month + 1, day)\n ? new Date(Date.UTC(year, month, day))\n : undefined;\n }\n };\n\n const currentlySelectedTime = () => {\n const parts = pickParts();\n\n if (Object.values(parts).every(Boolean)) {\n const hour = Number(parts.hour);\n const minute = Number(parts.minute);\n const second = parts.second ? Number(parts.second) : 0;\n const meridiem = parts.dayPeriod;\n\n // make a copy of current value to avoid mutation\n const current = dateTime !== undefined ? new Date(dateTime) : getAdjustedUTCDateTime();\n\n return validateTime(hour, minute, second, 0, meridiem !== undefined)\n ? new Date(\n current.setUTCHours(\n meridiem !== undefined ? convertTo24h(hour, meridiem) : hour,\n minute,\n second,\n dateTime?.getUTCMilliseconds() || 0\n )\n )\n : undefined;\n }\n };\n\n const currentlySelectedDateTime = () => {\n const selectedDate = currentlySelectedDate();\n const selectedTime = currentlySelectedTime();\n\n return selectedDate && selectedTime\n ? new Date(\n selectedDate.setUTCHours(\n selectedTime.getUTCHours(),\n selectedTime.getUTCMinutes(),\n selectedTime.getUTCSeconds(),\n selectedTime.getUTCMilliseconds()\n )\n )\n : undefined;\n };\n\n const setDefaultTimeIfEmpty = () => {\n // set value to midnight if time empty, skip if date not fully set\n if (\n Object.values(pickDateParts()).every(Boolean) &&\n Object.values(pickTimeParts()).every(p => !p)\n ) {\n if (hourInputRef.current) hourInputRef.current.value = is12h ? '12' : '00';\n\n if (minuteInputRef.current) minuteInputRef.current.value = '00';\n\n if (withSeconds && secondInputRef.current) secondInputRef.current.value = '00';\n\n if (is12h && meridiemSelectRef.current) {\n meridiemSelectRef.current.value = 'AM';\n }\n }\n };\n\n const [open, setOpen, , setPopoverRef, buttonEl, setButtonEl] =\n usePickerButton(setDefaultTimeIfEmpty);\n\n const onInputChange = () => {\n onChange?.(\n convertToCallbackParameter(dateTime ? new Date(dateTime) : new Date(), pickParts())\n );\n buttonEl?.setAttribute(\n 'aria-label',\n generatePickerButtonAriaLabel(\n currentlySelectedDateTime(),\n 'datetime',\n locale,\n t,\n open,\n is12h\n )\n );\n\n setHasValue(\n !!(\n dayInputRef.current?.value ||\n monthInputRef.current?.value ||\n yearInputRef.current?.value ||\n hourInputRef.current?.value ||\n minuteInputRef.current?.value ||\n (withSeconds && secondInputRef.current?.value)\n )\n );\n };\n\n const setInputValue = (newValue: Date | undefined) => {\n dayInputRef.current!.value = newValue?.getUTCDate().toString().padStart(2, '0') ?? '';\n monthInputRef.current!.value =\n (newValue && (newValue.getUTCMonth() + 1).toString().padStart(2, '0')) || '';\n yearInputRef.current!.value = newValue?.getUTCFullYear().toString() ?? '';\n\n if (newValue) {\n const hours = newValue.getUTCHours();\n hourInputRef.current!.value = (is12h ? convertTo12h(hours) : hours)\n .toString()\n .padStart(2, '0');\n } else {\n hourInputRef.current!.value = '';\n }\n\n minuteInputRef.current!.value = newValue?.getUTCMinutes().toString().padStart(2, '0') ?? '';\n if (withSeconds) {\n secondInputRef.current!.value = newValue?.getUTCSeconds().toString().padStart(2, '0') ?? '';\n }\n if (meridiemSelectRef.current) {\n meridiemSelectRef.current!.value = newValue ? getMeridiem(newValue.getUTCHours()) : 'AM';\n }\n };\n\n const onPaste = (e: ClipboardEvent) => {\n const text = e.clipboardData.getData('text');\n const date = parsePastedTextToDate(text, locale, dateTime || new Date());\n if (date) {\n e.preventDefault();\n setPickerSelection(date);\n }\n };\n\n const inputContainerRef = useRef<HTMLDivElement>(null);\n\n const onFocusChange = (focused: boolean) => {\n const callbackParam = convertToCallbackParameter(\n dateTime ? new Date(dateTime) : new Date(),\n pickParts()\n );\n if (onFocus && focused) onFocus(callbackParam);\n if (!focused) {\n if (inputContainerRef.current) inputContainerRef.current.scrollTop = 0;\n onBlur?.(callbackParam);\n }\n };\n\n // autoclose picker on focusing out\n useOuterEvent('focusin', [containerRef], e => {\n if (containerRef.current?.contains(e.relatedTarget as HTMLElement)) {\n setPickerSelection(undefined);\n setOpen(false);\n }\n });\n\n const displayNames = new Intl.DisplayNames(locale, { style: 'long', type: 'dateTimeField' });\n\n const DayInput = (\n <PartInput\n data-testid={testIds.controlDay}\n key='day'\n placeholder={t('day_placeholder')}\n aria-label={displayNames.of('day')}\n value={dateTime?.getUTCDate()}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n min={1}\n max={31}\n ref={dayInputRef}\n />\n );\n\n const MonthInput = (\n <PartInput\n data-testid={testIds.controlMonth}\n key='month'\n placeholder={t('month_placeholder')}\n aria-label={displayNames.of('month')}\n value={dateTime ? dateTime.getUTCMonth() + 1 : undefined}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n min={1}\n max={12}\n ref={monthInputRef}\n />\n );\n\n const YearInput = (\n <Fragment key='year'>\n <PartInput\n data-testid={testIds.controlYear}\n placeholder={t('year_placeholder')}\n aria-label={displayNames.of('year')}\n aria-describedby={yearPartId}\n value={dateTime?.getUTCFullYear()}\n onChange={onInputChange}\n size={4}\n maxLength={4}\n padWithZeros={false}\n readOnly={readOnly}\n min={1}\n max={9999}\n ref={yearInputRef}\n />\n <HiddenText id={yearPartId}>{t('year_input_description')}</HiddenText>\n </Fragment>\n );\n\n const hour = dateTime && is12h ? convertTo12h(dateTime.getUTCHours()) : dateTime?.getUTCHours();\n\n const HourInput = (\n <PartInput\n data-testid={testIds.controlHour}\n key='hour'\n placeholder={t('hour_placeholder')}\n aria-label={displayNames.of('hour')}\n value={hour}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n min={is12h ? 1 : 0}\n max={is12h ? 12 : 23}\n ref={hourInputRef}\n />\n );\n\n const MinuteInput = (\n <PartInput\n data-testid={testIds.controlMinute}\n key='minute'\n placeholder={t('minute_placeholder')}\n aria-label={displayNames.of('minute')}\n value={dateTime?.getUTCMinutes()}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n max={59}\n ref={minuteInputRef}\n />\n );\n\n const SecondInput = (\n <PartInput\n data-testid={testIds.controlSecond}\n key='second'\n placeholder={t('second_placeholder')}\n aria-label={displayNames.of('second')}\n value={dateTime?.getUTCSeconds()}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n max={59}\n ref={secondInputRef}\n />\n );\n\n const Period = (\n <Select\n data-testid={testIds.controlPeriod}\n ref={meridiemSelectRef}\n aria-label={displayNames.of('dayPeriod')}\n key='period'\n required={required}\n disabled={disabled}\n onChange={() => {\n if (Object.values(pickParts()).every(Boolean)) onInputChange();\n }}\n readOnly={readOnly}\n >\n <Option value='AM'>{t('meridiem_value_am')}</Option>\n <Option value='PM'>{t('meridiem_value_pm')}</Option>\n </Select>\n );\n\n const orderedRefs: RefObject<HTMLInputElement>[] = [];\n\n const dateInputs = getDateTimeParts(locale, dateOptions()).map(part => {\n switch (part) {\n case 'day':\n orderedRefs.push(dayInputRef);\n return DayInput;\n case 'month':\n orderedRefs.push(monthInputRef);\n return MonthInput;\n case 'year':\n orderedRefs.push(yearInputRef);\n return YearInput;\n default:\n return part;\n }\n });\n\n const timeInputs = getDateTimeParts(locale, getTimeOptions(withSeconds, is12h)).map(part => {\n switch (part) {\n case 'hour':\n orderedRefs.push(hourInputRef);\n return HourInput;\n case 'minute':\n orderedRefs.push(minuteInputRef);\n return MinuteInput;\n case 'second':\n orderedRefs.push(secondInputRef);\n return SecondInput;\n case 'dayPeriod':\n return Period;\n default:\n return part;\n }\n });\n\n useEffect(() => {\n if (autoFocus) orderedRefs[0].current?.focus();\n }, [autoFocus]);\n\n useFocusWithin([containerRef], onFocusChange);\n\n const Picker = (\n <>\n <StyledInputButton\n data-testid={testIds.openClosePicker}\n variant='simple'\n icon\n ref={setButtonEl}\n onClick={() => {\n setOpen(cur => !cur);\n }}\n aria-label={generatePickerButtonAriaLabel(\n currentlySelectedDateTime(),\n 'datetime',\n locale,\n t,\n open,\n is12h\n )}\n readOnly={readOnly}\n disabled={disabled}\n >\n <Icon name='calendar' />\n </StyledInputButton>\n {open && buttonEl && (\n <StyledDatePickerDialog\n ref={setPopoverRef}\n target={buttonEl}\n placement='bottom-end'\n aria-label={t('choose_date_and_time')}\n >\n <Flex container={{ direction: 'column' }} as={StyledDialogContent}>\n <DatePicker\n testId={testIds.picker}\n mode='datetime'\n selected={currentlySelectedDateTime()}\n onChange={selected => {\n setPickerSelection(selected);\n }}\n min={min}\n max={max}\n showWeekNumber={showWeekNumber}\n pickerInterval={pickerInterval}\n withSeconds={withSeconds}\n clockFormat={clockFormat}\n />\n <Flex as={StyledClearNowButtonsContainer} container={{ justify: 'between' }}>\n <Button\n data-testid={testIds.discardChanges}\n aria-label={t('cancel')}\n onClick={() => {\n if (!dayInputRef.current?.value) {\n setPickerSelection(undefined);\n }\n setOpen(false);\n setTimeout(() => buttonEl?.focus());\n onInputChange();\n }}\n >\n {t('cancel')}\n </Button>\n <Button\n data-testid={testIds.applyChanges}\n aria-label={t('apply')}\n variant='primary'\n onClick={() => {\n setInputValue(pickerSelection);\n setOpen(false);\n setTimeout(() => buttonEl?.focus());\n onInputChange();\n }}\n >\n {t('apply')}\n </Button>\n </Flex>\n </Flex>\n </StyledDatePickerDialog>\n )}\n </>\n );\n\n const Comp = (\n <Flex\n data-testid={label ? undefined : testIds.root}\n as={StyledDateTimeInput}\n forwardedAs={StyledFormControl}\n hasSuggestion={status === 'pending' && !!onResolveSuggestion}\n container={{ alignItems: 'center', wrap: 'nowrap', justify: 'between' }}\n status={status}\n readOnly={readOnly}\n disabled={disabled}\n ref={containerRef}\n onClick={(e: MouseEvent) => {\n if (e.target === containerRef.current) orderedRefs[0].current?.focus();\n }}\n {...restProps}\n className={createClassName('date-time-input', className, { status })}\n >\n <Flex\n ref={inputContainerRef}\n as={StyledInputContainer}\n container={{ alignItems: 'center', wrap: 'wrap' }}\n onPaste={onPaste}\n >\n {dateInputs}\n {timeInputs}\n </Flex>\n {!readOnly && (\n <Flex container>\n {hasValue && (\n <StyledInputButton\n icon\n onClick={() => {\n setPickerSelection(undefined);\n setInputValue(undefined);\n setTimeout(() => buttonEl?.focus());\n onInputChange();\n }}\n variant='simple'\n compact\n aria-label={t('clear_current_date_and_time')}\n label={t('clear')}\n data-testid={testIds.clearCurrentDateAndTime}\n >\n <Icon name='times' />\n </StyledInputButton>\n )}\n {Picker}\n </Flex>\n )}\n </Flex>\n );\n\n const { description, descriptionID } = useAutoFocusNextInput(orderedRefs);\n\n return label ? (\n <>\n <FormField\n testId={testIds}\n as={StyledDateTimeFieldset}\n labelAs='legend'\n aria-labelledby={id}\n ref={ref}\n label={label}\n labelHidden={labelHidden}\n id={id}\n info={info}\n readOnly={readOnly}\n status={status}\n required={required}\n disabled={disabled}\n onResolveSuggestion={onResolveSuggestion}\n additionalInfo={additionalInfo}\n aria-describedby={descriptionID}\n >\n {Comp}\n </FormField>\n {description}\n </>\n ) : (\n Comp\n );\n }\n);\n\nexport default withTestIds(DateTimeInput, getDateTimeInputTestIds);\n"]}
|
|
1
|
+
{"version":3,"file":"DateTimeInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateTimeInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, Fragment, useEffect, useRef, useState } from 'react';\nimport type {\n ClipboardEvent,\n FunctionComponent,\n MouseEvent,\n PropsWithoutRef,\n Ref,\n RefObject\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport type { ForwardProps } from '../../../types';\nimport { StyledFormControl } from '../../FormControl';\nimport type { FormControlProps } from '../../FormControl';\nimport FormField from '../../FormField';\nimport {\n useConfiguration,\n useConsolidatedRef,\n useFocusWithin,\n useI18n,\n useOuterEvent,\n useTestIds,\n useUID\n} from '../../../hooks';\nimport Select, { Option } from '../../Select';\nimport Flex from '../../Flex';\nimport Button from '../../Button';\nimport Icon, { registerIcon } from '../../Icon';\nimport * as calendarIcon from '../../Icon/icons/calendar.icon';\nimport DatePicker from '../Picker/DatePicker';\nimport type { MinuteInterval } from '../Picker/DatePicker.types';\nimport type DateTimeProps from '../DateTime.types';\nimport type { DateTimeCallbackParameter } from '../DateTime.types';\nimport { createClassName, hasProp, withTestIds } from '../../../utils';\nimport { getDateTimeInputTestIds } from '../DateTime.test-ids';\nimport { getAdjustedUTCDateTime } from '../utils';\nimport HiddenText from '../../HiddenText';\n\nimport StyledDateTime, {\n StyledClearNowButtonsContainer,\n StyledDatePickerDialog,\n StyledDialogContent,\n StyledInputButton,\n StyledInputContainer\n} from './DateTime.styles';\nimport {\n generatePickerButtonAriaLabel,\n getDateFormat,\n getDateTimeParts,\n getTimeOptions,\n is12HClockFormat,\n parsePastedTextToDate,\n parseToDate,\n validateDate,\n validateDateTime,\n validateTime\n} from './utils';\nimport type { ClockFormat } from './utils';\nimport useAutoFocusNextInput from './useAutoFocusNextInput';\nimport PartInput from './PartInput';\nimport usePickerButton from './usePickerButton';\nimport type { DateParts, DateTimeParts, TimeParts } from './DateTimeInput.types';\n\nregisterIcon(calendarIcon);\n\nexport interface DateTimeInputProps extends DateTimeProps {\n /**\n * Display the time with seconds.\n * @default false\n */\n withSeconds?: boolean;\n /**\n * Display additional column with week number in date picker popover.\n * @default false\n */\n showWeekNumber?: boolean;\n /**\n * Defines interval for time picker options (in minutes).\n * @default 30\n */\n pickerInterval?: MinuteInterval;\n /** Defines clock format that overrides locale based format. */\n clockFormat?: ClockFormat;\n /** Pass a heading and content to show additional information on the field. */\n additionalInfo?: FormControlProps['additionalInfo'];\n}\n\nexport const StyledDateTimeInput = styled(StyledDateTime)<DateTimeInputProps>(() => {\n return css`\n padding-inline-end: 0;\n min-width: 0;\n `;\n});\n\nconst StyledDateTimeFieldset = styled.fieldset`\n min-width: 0;\n`;\n\nfunction getMeridiem(hour: number) {\n return hour >= 12 ? 'PM' : 'AM';\n}\n\nconst convertTo12h = (hour: number) => {\n let converted: number = hour;\n if (hour > 12) converted = hour - 12;\n else if (hour === 0) converted = 12;\n return converted;\n};\n\nconst convertTo24h = (hour: number, meridiem: string) => {\n let converted: number = hour;\n if (meridiem === 'PM' && hour < 12) converted = hour + 12;\n else if (meridiem === 'AM' && hour === 12) converted = 0;\n return converted;\n};\n\nexport const convertToCallbackParameter = (\n date: Date,\n parts: DateTimeParts<string | undefined>\n): DateTimeCallbackParameter => {\n const resultDate = Number.isNaN(date.getTime())\n ? new Date(new Date().setUTCHours(0, 0, 0, 0))\n : new Date(date);\n const withSeconds = hasProp(parts, 'second');\n const {\n year,\n month: monthIndex,\n day,\n hour,\n minute,\n second = resultDate.getUTCSeconds().toString(),\n dayPeriod: meridiem\n } = parts;\n const toValidate = withSeconds\n ? [year, monthIndex, day, hour, minute, second]\n : [year, monthIndex, day, hour, minute];\n\n if (toValidate.every(Boolean)) {\n const is12h = meridiem !== undefined;\n\n if (\n !validateDateTime(\n Number(year),\n Number(monthIndex) + 1,\n Number(day),\n Number(hour),\n Number(minute),\n Number(second),\n 0,\n is12h\n )\n ) {\n return {\n valueAsISOString: '',\n valueAsTimestamp: NaN,\n state: 'invalid'\n };\n }\n\n resultDate.setUTCFullYear(Number(year), Number(monthIndex), Number(day));\n resultDate.setUTCHours(\n is12h ? convertTo24h(Number(hour), meridiem!) : Number(hour),\n Number(minute),\n Number(second),\n resultDate.getUTCMilliseconds()\n );\n\n return {\n valueAsISOString: resultDate.toISOString(),\n valueAsTimestamp: resultDate.getTime()\n };\n }\n if ([year, monthIndex, day, hour, minute].every(p => !p)) {\n return {\n valueAsISOString: undefined,\n valueAsTimestamp: undefined\n };\n }\n return {\n valueAsISOString: '',\n valueAsTimestamp: NaN,\n state: 'incomplete'\n };\n};\n\nfunction dateOptions() {\n return {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric'\n } as const;\n}\n\nconst DateTimeInput: FunctionComponent<DateTimeInputProps & ForwardProps> = forwardRef(\n function DateTimeInput(\n props: PropsWithoutRef<DateTimeInputProps>,\n ref: Ref<HTMLFieldSetElement>\n ) {\n const { locale } = useConfiguration();\n const t = useI18n();\n const {\n testId,\n value,\n min,\n max,\n id,\n label,\n labelHidden,\n withSeconds = false,\n clockFormat,\n info = getDateFormat(t, locale, withSeconds ? 'datetime+seconds' : 'datetime'),\n status,\n required,\n readOnly,\n disabled,\n showWeekNumber,\n pickerInterval = 30,\n onChange,\n onFocus,\n onBlur,\n onResolveSuggestion,\n additionalInfo,\n autoFocus,\n className,\n ...restProps\n } = props;\n\n const testIds = useTestIds(testId, getDateTimeInputTestIds);\n const yearPartId = useUID();\n\n const containerRef = useConsolidatedRef(ref);\n\n const dateTime = value !== undefined && value !== '' ? parseToDate(value) : undefined;\n const is12h = clockFormat ? clockFormat === 12 : is12HClockFormat(locale);\n\n const [\n yearInputRef,\n monthInputRef,\n dayInputRef,\n hourInputRef,\n minuteInputRef,\n secondInputRef,\n meridiemSelectRef\n ] = [\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLSelectElement>(null)\n ];\n\n const [hasValue, setHasValue] = useState(!!dateTime);\n useEffect(() => {\n setHasValue(\n !!(\n yearInputRef.current?.value ||\n monthInputRef.current?.value ||\n dayInputRef.current?.value ||\n hourInputRef.current?.value ||\n minuteInputRef.current?.value ||\n (withSeconds && secondInputRef.current?.value)\n )\n );\n }, [dateTime]);\n\n useEffect(() => {\n if (is12h && meridiemSelectRef.current && dateTime?.getUTCHours() !== undefined) {\n meridiemSelectRef.current.value = getMeridiem(dateTime?.getUTCHours());\n }\n }, [is12h, dateTime?.getUTCHours()]);\n\n const [pickerSelection, setPickerSelection] = useState<Date | undefined>(undefined);\n\n const pickDateParts = (): DateParts<string | undefined> => {\n return {\n day: dayInputRef.current?.value || undefined,\n month: monthInputRef.current?.value\n ? (Number(monthInputRef.current.value) - 1).toString()\n : undefined,\n year: yearInputRef.current?.value || undefined\n };\n };\n\n const pickTimeParts = (): TimeParts<string | undefined> => {\n const parts: TimeParts<string | undefined> = {\n hour: hourInputRef.current?.value || undefined,\n minute: minuteInputRef.current?.value || undefined\n };\n if (withSeconds) {\n parts.second = secondInputRef.current?.value;\n }\n if (meridiemSelectRef.current) {\n parts.dayPeriod = meridiemSelectRef.current?.value;\n }\n\n return parts;\n };\n\n const pickParts = (): DateTimeParts<string | undefined> => {\n return { ...pickDateParts(), ...pickTimeParts() };\n };\n\n const currentlySelectedDate = () => {\n const parts = pickDateParts();\n if (Object.values(parts).every(Boolean)) {\n const year = Number(parts.year);\n const month = Number(parts.month);\n const day = Number(parts.day);\n\n return validateDate(year, month + 1, day)\n ? new Date(Date.UTC(year, month, day))\n : undefined;\n }\n };\n\n const currentlySelectedTime = () => {\n const parts = pickParts();\n\n if (Object.values(parts).every(Boolean)) {\n const hour = Number(parts.hour);\n const minute = Number(parts.minute);\n const second = parts.second ? Number(parts.second) : 0;\n const meridiem = parts.dayPeriod;\n\n // make a copy of current value to avoid mutation\n const current = dateTime !== undefined ? new Date(dateTime) : getAdjustedUTCDateTime();\n\n return validateTime(hour, minute, second, 0, meridiem !== undefined)\n ? new Date(\n current.setUTCHours(\n meridiem !== undefined ? convertTo24h(hour, meridiem) : hour,\n minute,\n second,\n dateTime?.getUTCMilliseconds() || 0\n )\n )\n : undefined;\n }\n };\n\n const currentlySelectedDateTime = () => {\n const selectedDate = currentlySelectedDate();\n const selectedTime = currentlySelectedTime();\n\n return selectedDate && selectedTime\n ? new Date(\n selectedDate.setUTCHours(\n selectedTime.getUTCHours(),\n selectedTime.getUTCMinutes(),\n selectedTime.getUTCSeconds(),\n selectedTime.getUTCMilliseconds()\n )\n )\n : undefined;\n };\n\n const setDefaultTimeIfEmpty = () => {\n // set value to midnight if time empty, skip if date not fully set\n if (\n Object.values(pickDateParts()).every(Boolean) &&\n Object.values(pickTimeParts()).every(p => !p)\n ) {\n if (hourInputRef.current) hourInputRef.current.value = is12h ? '12' : '00';\n\n if (minuteInputRef.current) minuteInputRef.current.value = '00';\n\n if (withSeconds && secondInputRef.current) secondInputRef.current.value = '00';\n\n if (is12h && meridiemSelectRef.current) {\n meridiemSelectRef.current.value = 'AM';\n }\n }\n };\n\n const [open, setOpen, , setPopoverRef, buttonEl, setButtonEl] =\n usePickerButton(setDefaultTimeIfEmpty);\n\n const onInputChange = () => {\n onChange?.(\n convertToCallbackParameter(dateTime ? new Date(dateTime) : new Date(), pickParts())\n );\n buttonEl?.setAttribute(\n 'aria-label',\n generatePickerButtonAriaLabel(\n currentlySelectedDateTime(),\n 'datetime',\n locale,\n t,\n open,\n is12h\n )\n );\n\n setHasValue(\n !!(\n dayInputRef.current?.value ||\n monthInputRef.current?.value ||\n yearInputRef.current?.value ||\n hourInputRef.current?.value ||\n minuteInputRef.current?.value ||\n (withSeconds && secondInputRef.current?.value)\n )\n );\n };\n\n const setInputValue = (newValue: Date | undefined) => {\n dayInputRef.current!.value = newValue?.getUTCDate().toString().padStart(2, '0') ?? '';\n monthInputRef.current!.value =\n (newValue && (newValue.getUTCMonth() + 1).toString().padStart(2, '0')) || '';\n yearInputRef.current!.value = newValue?.getUTCFullYear().toString() ?? '';\n\n if (newValue) {\n const hours = newValue.getUTCHours();\n hourInputRef.current!.value = (is12h ? convertTo12h(hours) : hours)\n .toString()\n .padStart(2, '0');\n } else {\n hourInputRef.current!.value = '';\n }\n\n minuteInputRef.current!.value = newValue?.getUTCMinutes().toString().padStart(2, '0') ?? '';\n if (withSeconds) {\n secondInputRef.current!.value = newValue?.getUTCSeconds().toString().padStart(2, '0') ?? '';\n }\n if (meridiemSelectRef.current) {\n meridiemSelectRef.current!.value = newValue ? getMeridiem(newValue.getUTCHours()) : 'AM';\n }\n };\n\n const onPaste = (e: ClipboardEvent) => {\n const text = e.clipboardData.getData('text');\n const date = parsePastedTextToDate(text, locale, dateTime || new Date());\n if (date) {\n e.preventDefault();\n setPickerSelection(date);\n }\n };\n\n const inputContainerRef = useRef<HTMLDivElement>(null);\n\n const onFocusChange = (focused: boolean) => {\n const callbackParam = convertToCallbackParameter(\n dateTime ? new Date(dateTime) : new Date(),\n pickParts()\n );\n if (onFocus && focused) onFocus(callbackParam);\n if (!focused) {\n if (inputContainerRef.current) inputContainerRef.current.scrollTop = 0;\n onBlur?.(callbackParam);\n }\n };\n\n // autoclose picker on focusing out\n useOuterEvent('focusin', [containerRef], e => {\n if (containerRef.current?.contains(e.relatedTarget as HTMLElement)) {\n setPickerSelection(undefined);\n setOpen(false);\n }\n });\n\n const displayNames = new Intl.DisplayNames(locale, { style: 'long', type: 'dateTimeField' });\n\n const DayInput = (\n <PartInput\n data-testid={testIds.controlDay}\n key='day'\n placeholder={t('day_placeholder')}\n aria-label={displayNames.of('day')}\n value={dateTime?.getUTCDate()}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n min={1}\n max={31}\n ref={dayInputRef}\n />\n );\n\n const MonthInput = (\n <PartInput\n data-testid={testIds.controlMonth}\n key='month'\n placeholder={t('month_placeholder')}\n aria-label={displayNames.of('month')}\n value={dateTime ? dateTime.getUTCMonth() + 1 : undefined}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n min={1}\n max={12}\n ref={monthInputRef}\n />\n );\n\n const YearInput = (\n <Fragment key='year'>\n <PartInput\n data-testid={testIds.controlYear}\n placeholder={t('year_placeholder')}\n aria-label={displayNames.of('year')}\n aria-describedby={yearPartId}\n value={dateTime?.getUTCFullYear()}\n onChange={onInputChange}\n size={4}\n maxLength={4}\n padWithZeros={false}\n readOnly={readOnly}\n min={1}\n max={9999}\n ref={yearInputRef}\n />\n <HiddenText id={yearPartId}>{t('year_input_description')}</HiddenText>\n </Fragment>\n );\n\n const hour = dateTime && is12h ? convertTo12h(dateTime.getUTCHours()) : dateTime?.getUTCHours();\n\n const HourInput = (\n <PartInput\n data-testid={testIds.controlHour}\n key='hour'\n placeholder={t('hour_placeholder')}\n aria-label={displayNames.of('hour')}\n value={hour}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n min={is12h ? 1 : 0}\n max={is12h ? 12 : 23}\n ref={hourInputRef}\n />\n );\n\n const MinuteInput = (\n <PartInput\n data-testid={testIds.controlMinute}\n key='minute'\n placeholder={t('minute_placeholder')}\n aria-label={displayNames.of('minute')}\n value={dateTime?.getUTCMinutes()}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n max={59}\n ref={minuteInputRef}\n />\n );\n\n const SecondInput = (\n <PartInput\n data-testid={testIds.controlSecond}\n key='second'\n placeholder={t('second_placeholder')}\n aria-label={displayNames.of('second')}\n value={dateTime?.getUTCSeconds()}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n max={59}\n ref={secondInputRef}\n />\n );\n\n const Period = (\n <Select\n data-testid={testIds.controlPeriod}\n ref={meridiemSelectRef}\n aria-label={displayNames.of('dayPeriod')}\n key='period'\n required={required}\n disabled={disabled}\n onChange={() => {\n if (Object.values(pickParts()).every(Boolean)) onInputChange();\n }}\n readOnly={readOnly}\n >\n <Option value='AM'>{t('meridiem_value_am')}</Option>\n <Option value='PM'>{t('meridiem_value_pm')}</Option>\n </Select>\n );\n\n const orderedRefs: RefObject<HTMLInputElement>[] = [];\n\n const dateInputs = getDateTimeParts(locale, dateOptions()).map(part => {\n switch (part) {\n case 'day':\n orderedRefs.push(dayInputRef);\n return DayInput;\n case 'month':\n orderedRefs.push(monthInputRef);\n return MonthInput;\n case 'year':\n orderedRefs.push(yearInputRef);\n return YearInput;\n default:\n return part;\n }\n });\n\n const timeInputs = getDateTimeParts(locale, getTimeOptions(withSeconds, is12h)).map(part => {\n switch (part) {\n case 'hour':\n orderedRefs.push(hourInputRef);\n return HourInput;\n case 'minute':\n orderedRefs.push(minuteInputRef);\n return MinuteInput;\n case 'second':\n orderedRefs.push(secondInputRef);\n return SecondInput;\n case 'dayPeriod':\n return Period;\n default:\n return part;\n }\n });\n\n useEffect(() => {\n if (autoFocus) orderedRefs[0].current?.focus();\n }, [autoFocus]);\n\n useFocusWithin([containerRef], onFocusChange);\n\n const Picker = (\n <>\n <StyledInputButton\n data-testid={testIds.openClosePicker}\n variant='simple'\n icon\n ref={setButtonEl}\n onClick={() => {\n setOpen(cur => !cur);\n }}\n aria-label={generatePickerButtonAriaLabel(\n currentlySelectedDateTime(),\n 'datetime',\n locale,\n t,\n open,\n is12h\n )}\n readOnly={readOnly}\n disabled={disabled}\n >\n <Icon name='calendar' />\n </StyledInputButton>\n {open && buttonEl && (\n <StyledDatePickerDialog\n ref={setPopoverRef}\n target={buttonEl}\n placement='bottom-end'\n aria-label={t('choose_date_and_time')}\n >\n <Flex container={{ direction: 'column' }} as={StyledDialogContent}>\n <DatePicker\n testId={testIds.picker}\n mode='datetime'\n selected={currentlySelectedDateTime()}\n onChange={selected => {\n setPickerSelection(selected);\n }}\n min={min}\n max={max}\n showWeekNumber={showWeekNumber}\n pickerInterval={pickerInterval}\n withSeconds={withSeconds}\n clockFormat={clockFormat}\n />\n <Flex as={StyledClearNowButtonsContainer} container={{ justify: 'between' }}>\n <Button\n data-testid={testIds.discardChanges}\n aria-label={t('cancel')}\n onClick={() => {\n if (!dayInputRef.current?.value) {\n setPickerSelection(undefined);\n }\n setOpen(false);\n setTimeout(() => buttonEl?.focus());\n onInputChange();\n }}\n >\n {t('cancel')}\n </Button>\n <Button\n data-testid={testIds.applyChanges}\n aria-label={t('apply')}\n variant='primary'\n onClick={() => {\n setInputValue(pickerSelection);\n setOpen(false);\n setTimeout(() => buttonEl?.focus());\n onInputChange();\n }}\n >\n {t('apply')}\n </Button>\n </Flex>\n </Flex>\n </StyledDatePickerDialog>\n )}\n </>\n );\n\n const Comp = (\n <Flex\n data-testid={label ? undefined : testIds.root}\n as={StyledDateTimeInput}\n forwardedAs={StyledFormControl}\n hasSuggestion={status === 'pending' && !!onResolveSuggestion}\n container={{ alignItems: 'center', wrap: 'nowrap', justify: 'between' }}\n status={status}\n readOnly={readOnly}\n disabled={disabled}\n ref={containerRef}\n onClick={(e: MouseEvent) => {\n if (e.target === containerRef.current) orderedRefs[0].current?.focus();\n }}\n {...restProps}\n className={createClassName('date-time-input', className)}\n >\n <Flex\n ref={inputContainerRef}\n as={StyledInputContainer}\n container={{ alignItems: 'center', wrap: 'wrap' }}\n onPaste={onPaste}\n >\n {dateInputs}\n {timeInputs}\n </Flex>\n {!readOnly && (\n <Flex container>\n {hasValue && (\n <StyledInputButton\n icon\n onClick={() => {\n setPickerSelection(undefined);\n setInputValue(undefined);\n setTimeout(() => buttonEl?.focus());\n onInputChange();\n }}\n variant='simple'\n compact\n aria-label={t('clear_current_date_and_time')}\n label={t('clear')}\n data-testid={testIds.clearCurrentDateAndTime}\n >\n <Icon name='times' />\n </StyledInputButton>\n )}\n {Picker}\n </Flex>\n )}\n </Flex>\n );\n\n const { description, descriptionID } = useAutoFocusNextInput(orderedRefs);\n\n return label ? (\n <>\n <FormField\n testId={testIds}\n as={StyledDateTimeFieldset}\n labelAs='legend'\n aria-labelledby={id}\n ref={ref}\n label={label}\n labelHidden={labelHidden}\n id={id}\n info={info}\n readOnly={readOnly}\n status={status}\n required={required}\n disabled={disabled}\n onResolveSuggestion={onResolveSuggestion}\n additionalInfo={additionalInfo}\n aria-describedby={descriptionID}\n >\n {Comp}\n </FormField>\n {description}\n </>\n ) : (\n Comp\n );\n }\n);\n\nexport default withTestIds(DateTimeInput, getDateTimeInputTestIds);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DurationInput.d.ts","sourceRoot":"","sources":["../../../../../src/components/DateTime/Input/Duration/DurationInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwB,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAIrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOtD,OAAO,KAAK,kBAAkB,MAAM,uBAAuB,CAAC;;;;
|
|
1
|
+
{"version":3,"file":"DurationInput.d.ts","sourceRoot":"","sources":["../../../../../src/components/DateTime/Input/Duration/DurationInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwB,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAIrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOtD,OAAO,KAAK,kBAAkB,MAAM,uBAAuB,CAAC;;;;AAiF5D,wBAAmE"}
|
|
@@ -10,9 +10,7 @@ import NumberUnit from './NumberUnit';
|
|
|
10
10
|
import { Format } from './DurationInput.types';
|
|
11
11
|
const DurationInput = forwardRef(function DurationInput(props, ref) {
|
|
12
12
|
const { testId, id, label, labelHidden, required, status, disabled, onChange, format = Format.Seconds, onSelect, additionalInfo, className: classNameProp, ...restProps } = props;
|
|
13
|
-
const className = createClassName('duration-input', classNameProp
|
|
14
|
-
status
|
|
15
|
-
});
|
|
13
|
+
const className = createClassName('duration-input', classNameProp);
|
|
16
14
|
const testIds = useTestIds(testId, getDurationInputTestIds);
|
|
17
15
|
const t = useI18n();
|
|
18
16
|
// Refs are actually handled in Time component rendered below.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DurationInput.js","sourceRoot":"","sources":["../../../../../src/components/DateTime/Input/Duration/DurationInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGnC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,qBAAqB,MAAM,0BAA0B,CAAC;AAE7D,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,aAAa,GAAyD,UAAU,CACpF,SAAS,aAAa,CACpB,KAA0C,EAC1C,GAA6B;IAE7B,MAAM,EACJ,MAAM,EACN,EAAE,EACF,KAAK,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,GAAG,MAAM,CAAC,OAAO,EACvB,QAAQ,EACR,cAAc,EACd,SAAS,EAAE,aAAa,EACxB,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;IACV,MAAM,SAAS,GAAG,eAAe,CAAC,gBAAgB,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"DurationInput.js","sourceRoot":"","sources":["../../../../../src/components/DateTime/Input/Duration/DurationInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGnC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,qBAAqB,MAAM,0BAA0B,CAAC;AAE7D,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,aAAa,GAAyD,UAAU,CACpF,SAAS,aAAa,CACpB,KAA0C,EAC1C,GAA6B;IAE7B,MAAM,EACJ,MAAM,EACN,EAAE,EACF,KAAK,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,GAAG,MAAM,CAAC,OAAO,EACvB,QAAQ,EACR,cAAc,EACd,SAAS,EAAE,aAAa,EACxB,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;IACV,MAAM,SAAS,GAAG,eAAe,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAE5D,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,8DAA8D;IAC9D,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAEjE,MAAM,IAAI,GACR,MAAM,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAC5B,KAAC,IAAI,IACH,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,KACd,SAAS,EACb,SAAS,EAAE,SAAS,GACpB,CACH,CAAC,CAAC,CAAC,CACF,KAAC,UAAU,IACT,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,KACd,SAAS,EACb,SAAS,EAAE,SAAS,GACpB,CACH,CAAC;IAEJ,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,8BACE,KAAC,SAAS,IACR,EAAE,EAAC,UAAU,EACb,OAAO,EAAC,QAAQ,KACZ,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAC/E,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,GAAG,EACR,cAAc,EAAE,cAAc,sBACZ,MAAM,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,YAExE,IAAI,GACK,EACX,MAAM,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAChD,CACJ,CAAC,CAAC,CAAC,CACF,IAAI,CACL,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,WAAW,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC","sourcesContent":["import { forwardRef } from 'react';\nimport type { PropsWithoutRef, Ref, FunctionComponent } from 'react';\n\nimport { useI18n, useTestIds } from '../../../../hooks';\nimport FormField from '../../../FormField';\nimport type { ForwardProps } from '../../../../types';\nimport { getDurationInputTestIds } from '../../DateTime.test-ids';\nimport { createClassName, withTestIds } from '../../../../utils';\nimport useAutoFocusNextInput from '../useAutoFocusNextInput';\n\nimport Time from './Time';\nimport NumberUnit from './NumberUnit';\nimport type DurationInputProps from './DurationInput.types';\nimport { Format } from './DurationInput.types';\n\nconst DurationInput: FunctionComponent<DurationInputProps & ForwardProps> = forwardRef(\n function DurationInput(\n props: PropsWithoutRef<DurationInputProps>,\n ref: Ref<HTMLFieldSetElement>\n ) {\n const {\n testId,\n id,\n label,\n labelHidden,\n required,\n status,\n disabled,\n onChange,\n format = Format.Seconds,\n onSelect,\n additionalInfo,\n className: classNameProp,\n ...restProps\n } = props;\n const className = createClassName('duration-input', classNameProp);\n const testIds = useTestIds(testId, getDurationInputTestIds);\n\n const t = useI18n();\n\n // Refs are actually handled in Time component rendered below.\n const { description, descriptionID } = useAutoFocusNextInput([]);\n\n const Comp =\n format === Format.Formatted ? (\n <Time\n testId={testId}\n status={status}\n disabled={disabled}\n onChange={onChange}\n {...restProps}\n className={className}\n />\n ) : (\n <NumberUnit\n testId={testId}\n format={format}\n status={status}\n disabled={disabled}\n onChange={onChange}\n onSelect={onSelect}\n {...restProps}\n className={className}\n />\n );\n\n return label ? (\n <>\n <FormField\n as='fieldset'\n labelAs='legend'\n {...(format === Format.Formatted ? { info: t('time_format_info') } : undefined)}\n status={status}\n testId={testIds}\n label={label}\n labelHidden={labelHidden}\n id={id}\n required={required}\n disabled={disabled}\n ref={ref}\n additionalInfo={additionalInfo}\n aria-describedby={format === Format.Formatted ? descriptionID : undefined}\n >\n {Comp}\n </FormField>\n {format === Format.Formatted ? description : null}\n </>\n ) : (\n Comp\n );\n }\n);\n\nexport default withTestIds(DurationInput, getDurationInputTestIds);\n"]}
|
|
@@ -131,7 +131,7 @@ const MonthInput = forwardRef(function MonthInput(props, ref) {
|
|
|
131
131
|
}), [locale]);
|
|
132
132
|
const Month = (_jsxs(Select, { "data-testid": testIds.controlMonth, label: cap(displayNames.of('month')), labelHidden: innerLabelsHidden, ref: monthSelectRef, "aria-label": displayNames.of('month'), readOnly: readOnly, required: required, onChange: onSelectChange, status: status, disabled: disabled, autoFocus: autoFocus, children: [!required && _jsx(Option, { children: " " }, 'null'), monthOptions] }, 'month'));
|
|
133
133
|
const Year = (_jsxs(Select, { "data-testid": testIds.controlYear, label: cap(displayNames.of('year')), labelHidden: innerLabelsHidden, ref: yearSelectRef, "aria-label": displayNames.of('year'), readOnly: readOnly, required: required, onChange: onSelectChange, status: status, disabled: disabled, children: [!required && _jsx(Option, { children: " " }, 'null'), yearOptions] }, 'year'));
|
|
134
|
-
const Comp = (_jsxs(Flex, { as: StyledMonthInput, forwardedAs: StyledFormControl, container: { alignItems: 'center', wrap: 'nowrap' }, ref: containerRef, status: status, disabled: disabled, readOnly: readOnly, ...restProps, className: createClassName('month-input', className
|
|
134
|
+
const Comp = (_jsxs(Flex, { as: StyledMonthInput, forwardedAs: StyledFormControl, container: { alignItems: 'center', wrap: 'nowrap' }, ref: containerRef, status: status, disabled: disabled, readOnly: readOnly, ...restProps, className: createClassName('month-input', className), children: [Month, Year] }));
|
|
135
135
|
return label ? (_jsx(FormField, { testId: testIds, as: 'fieldset', labelAs: 'legend', label: label, labelHidden: labelHidden, id: id, info: info, readOnly: readOnly, status: status, required: required, disabled: disabled, additionalInfo: additionalInfo, children: Comp })) : (Comp);
|
|
136
136
|
});
|
|
137
137
|
export default withTestIds(MonthInput, getMonthInputTestIds);
|