@pega/cosmos-react-core 10.0.0-build.5.2 → 10.0.0-build.5.21
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/AIRewrite/AIRewrite.styles.d.ts +19 -3
- package/lib/components/AIRewrite/AIRewrite.styles.d.ts.map +1 -1
- package/lib/components/AppShell/AppHeader.styles.d.ts.map +1 -1
- package/lib/components/AppShell/AppHeader.styles.js +8 -3
- package/lib/components/AppShell/AppHeader.styles.js.map +1 -1
- package/lib/components/AppShell/AppShell.d.ts.map +1 -1
- package/lib/components/AppShell/AppShell.js +16 -6
- package/lib/components/AppShell/AppShell.js.map +1 -1
- package/lib/components/AppShell/AppShell.styles.d.ts +3 -0
- package/lib/components/AppShell/AppShell.styles.d.ts.map +1 -1
- package/lib/components/AppShell/AppShell.styles.js +33 -17
- package/lib/components/AppShell/AppShell.styles.js.map +1 -1
- package/lib/components/AppShell/AppShell.types.d.ts +33 -0
- package/lib/components/AppShell/AppShell.types.d.ts.map +1 -1
- package/lib/components/AppShell/AppShell.types.js.map +1 -1
- package/lib/components/AppShell/DocumentTabs.d.ts +6 -0
- package/lib/components/AppShell/DocumentTabs.d.ts.map +1 -0
- package/lib/components/AppShell/DocumentTabs.js +409 -0
- package/lib/components/AppShell/DocumentTabs.js.map +1 -0
- package/lib/components/AppShell/DocumentTabs.styles.d.ts +231 -0
- package/lib/components/AppShell/DocumentTabs.styles.d.ts.map +1 -0
- package/lib/components/AppShell/DocumentTabs.styles.js +562 -0
- package/lib/components/AppShell/DocumentTabs.styles.js.map +1 -0
- package/lib/components/AppShell/NavigationListItemWrapper.d.ts.map +1 -1
- package/lib/components/AppShell/NavigationListItemWrapper.js +6 -5
- package/lib/components/AppShell/NavigationListItemWrapper.js.map +1 -1
- package/lib/components/AppShell/Operator.d.ts.map +1 -1
- package/lib/components/AppShell/Operator.js +8 -5
- package/lib/components/AppShell/Operator.js.map +1 -1
- package/lib/components/AppShell/ThemeSwitcher.d.ts.map +1 -1
- package/lib/components/AppShell/ThemeSwitcher.js +1 -0
- package/lib/components/AppShell/ThemeSwitcher.js.map +1 -1
- package/lib/components/AppShell/index.d.ts +1 -1
- package/lib/components/AppShell/index.d.ts.map +1 -1
- package/lib/components/AppShell/index.js.map +1 -1
- package/lib/components/Backdrop/Backdrop.js +2 -2
- package/lib/components/Backdrop/Backdrop.js.map +1 -1
- package/lib/components/DateTime/Input/DateInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/DateInput.js +15 -9
- package/lib/components/DateTime/Input/DateInput.js.map +1 -1
- package/lib/components/DateTime/Input/DateTime.styles.d.ts +3 -0
- package/lib/components/DateTime/Input/DateTime.styles.d.ts.map +1 -1
- package/lib/components/DateTime/Input/DateTime.styles.js +25 -0
- package/lib/components/DateTime/Input/DateTime.styles.js.map +1 -1
- package/lib/components/DateTime/Input/DateTimeInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/DateTimeInput.js +27 -18
- package/lib/components/DateTime/Input/DateTimeInput.js.map +1 -1
- package/lib/components/DateTime/Input/TimeInput.d.ts +6 -3
- package/lib/components/DateTime/Input/TimeInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/TimeInput.js +54 -24
- package/lib/components/DateTime/Input/TimeInput.js.map +1 -1
- package/lib/components/DateTime/Input/WeekInput.d.ts +6 -3
- package/lib/components/DateTime/Input/WeekInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/WeekInput.js +29 -16
- package/lib/components/DateTime/Input/WeekInput.js.map +1 -1
- package/lib/components/DateTime/Picker/Calendar.styles.d.ts.map +1 -1
- package/lib/components/DateTime/Picker/Calendar.styles.js +5 -0
- package/lib/components/DateTime/Picker/Calendar.styles.js.map +1 -1
- package/lib/components/DateTime/Picker/DatePicker.styles.d.ts.map +1 -1
- package/lib/components/DateTime/Picker/DatePicker.styles.js +32 -7
- package/lib/components/DateTime/Picker/DatePicker.styles.js.map +1 -1
- package/lib/components/DateTime/Picker/TimePicker.d.ts.map +1 -1
- package/lib/components/DateTime/Picker/TimePicker.js +10 -2
- package/lib/components/DateTime/Picker/TimePicker.js.map +1 -1
- package/lib/components/Dialog/Dialog.types.d.ts +23 -13
- package/lib/components/Dialog/Dialog.types.d.ts.map +1 -1
- package/lib/components/Dialog/Dialog.types.js.map +1 -1
- package/lib/components/Dialog/FormDialog.d.ts.map +1 -1
- package/lib/components/Dialog/FormDialog.js +50 -18
- package/lib/components/Dialog/FormDialog.js.map +1 -1
- package/lib/components/Dialog/InfoDialog.d.ts.map +1 -1
- package/lib/components/Dialog/InfoDialog.js +6 -4
- package/lib/components/Dialog/InfoDialog.js.map +1 -1
- package/lib/components/Dialog/TouchDialog.js +1 -1
- package/lib/components/Dialog/TouchDialog.js.map +1 -1
- package/lib/components/Dialog/TouchDialog.styles.d.ts.map +1 -1
- package/lib/components/Dialog/TouchDialog.styles.js +2 -1
- package/lib/components/Dialog/TouchDialog.styles.js.map +1 -1
- package/lib/components/InlineEdit/InlineEdit.d.ts +6 -0
- package/lib/components/InlineEdit/InlineEdit.d.ts.map +1 -1
- package/lib/components/InlineEdit/InlineEdit.js +45 -4
- package/lib/components/InlineEdit/InlineEdit.js.map +1 -1
- package/lib/components/InlineEdit/InlineEdit.styles.d.ts +19 -3
- package/lib/components/InlineEdit/InlineEdit.styles.d.ts.map +1 -1
- package/lib/components/InlineEdit/InlineEdit.styles.js +38 -20
- package/lib/components/InlineEdit/InlineEdit.styles.js.map +1 -1
- package/lib/components/Link/Link.d.ts +7 -2
- package/lib/components/Link/Link.d.ts.map +1 -1
- package/lib/components/Link/Link.js +45 -20
- package/lib/components/Link/Link.js.map +1 -1
- package/lib/components/Link/Link.test-ids.d.ts +1 -1
- package/lib/components/Link/Link.test-ids.d.ts.map +1 -1
- package/lib/components/Link/Link.test-ids.js +2 -1
- package/lib/components/Link/Link.test-ids.js.map +1 -1
- package/lib/components/ListToolbar/ListToolbar.styles.d.ts +19 -3
- package/lib/components/ListToolbar/ListToolbar.styles.d.ts.map +1 -1
- package/lib/components/Menu/FlyoutMenuList.d.ts.map +1 -1
- package/lib/components/Menu/FlyoutMenuList.js +1 -1
- package/lib/components/Menu/FlyoutMenuList.js.map +1 -1
- package/lib/components/Menu/Menu.js +2 -1
- package/lib/components/Menu/Menu.js.map +1 -1
- package/lib/components/MenuButton/MenuButton.d.ts.map +1 -1
- package/lib/components/MenuButton/MenuButton.js +5 -1
- package/lib/components/MenuButton/MenuButton.js.map +1 -1
- package/lib/components/Popover/getResolvedTarget.d.ts +11 -0
- package/lib/components/Popover/getResolvedTarget.d.ts.map +1 -0
- package/lib/components/Popover/getResolvedTarget.js +13 -0
- package/lib/components/Popover/getResolvedTarget.js.map +1 -0
- package/lib/components/Popover/index.d.ts +1 -0
- package/lib/components/Popover/index.d.ts.map +1 -1
- package/lib/components/Popover/index.js +1 -0
- package/lib/components/Popover/index.js.map +1 -1
- package/lib/components/QRCode/QRCode.d.ts.map +1 -1
- package/lib/components/QRCode/QRCode.js +2 -0
- package/lib/components/QRCode/QRCode.js.map +1 -1
- package/lib/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/lib/components/Tooltip/Tooltip.js +8 -2
- package/lib/components/Tooltip/Tooltip.js.map +1 -1
- package/lib/hooks/useI18n.d.ts +18 -0
- package/lib/hooks/useI18n.d.ts.map +1 -1
- package/lib/i18n/default.d.ts +18 -0
- package/lib/i18n/default.d.ts.map +1 -1
- package/lib/i18n/default.js +23 -3
- package/lib/i18n/default.js.map +1 -1
- package/lib/i18n/i18n.d.ts +18 -0
- package/lib/i18n/i18n.d.ts.map +1 -1
- package/lib/theme/theme.d.ts +25 -0
- package/lib/theme/theme.d.ts.map +1 -1
- package/lib/theme/themeDefinition.json +18 -3
- package/lib/theme/themeOverrides.schema.json +16 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/TimeInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useRef, forwardRef, useEffect, useState, useImperativeHandle } from 'react';\nimport type { FunctionComponent, Ref, PropsWithoutRef } from 'react';\nimport styled from 'styled-components';\n\nimport type { ForwardProps } from '../../../types';\nimport FormField from '../../FormField';\nimport Flex from '../../Flex';\nimport Select, { Option } from '../../Select';\nimport Icon, { registerIcon } from '../../Icon';\nimport * as clockIcon from '../../Icon/icons/clock.icon';\nimport Popover from '../../Popover';\nimport TimePicker from '../Picker/TimePicker';\nimport {\n useConfiguration,\n useConsolidatedRef,\n useFocusWithin,\n useI18n,\n useTestIds\n} from '../../../hooks';\nimport { StyledFormControl } from '../../FormControl';\nimport type { FormControlProps } from '../../FormControl';\nimport type DateTimeProps from '../DateTime.types';\nimport type { DateTimeCallbackParameter } from '../DateTime.types';\nimport { sameWidth } from '../../Popover/modifiers';\nimport { createClassName, hasProp, withTestIds } from '../../../utils';\nimport type { MinuteInterval } from '../Picker/DatePicker.types';\nimport { getTimeInputTestIds } from '../DateTime.test-ids';\nimport { getAdjustedUTCDateTime } from '../utils';\n\nimport {\n getDateFormat,\n getDateTimeParts,\n parseToDate,\n is12HClockFormat,\n validateTime,\n getTimeOptions,\n buildRawTimeString\n} from './utils';\nimport type { ClockFormat } from './utils';\nimport StyledDateTime, { StyledInputContainer, StyledInputButton } from './DateTime.styles';\nimport PartInput from './PartInput';\nimport usePickerButton from './usePickerButton';\nimport useAutoFocusNextInput from './useAutoFocusNextInput';\nimport type { TimeParts } from './DateTimeInput.types';\n\nregisterIcon(clockIcon);\n\nexport interface TimeInputHandleValue {\n getCurrentValue: () => DateTimeCallbackParameter;\n}\n\nexport interface TimeInputProps extends DateTimeProps {\n /**\n * Display the time with seconds.\n * @default false\n */\n withSeconds?: 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 /** Additional properties for imperative control. */\n handle?: Ref<TimeInputHandleValue>;\n}\n\nexport const StyledTimeInput = styled(StyledDateTime)<TimeInputProps>`\n padding-inline-end: 0;\n`;\n\nfunction getMeridiem(hour: number | undefined) {\n return hour && 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\nconst convertToCallbackParameter = (\n date: Date,\n parts: TimeParts<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 hour,\n minute,\n second = resultDate.getUTCSeconds().toString(),\n dayPeriod: meridiem\n } = parts;\n const toValidate = withSeconds ? [hour, minute, second] : [hour, minute];\n\n if (toValidate.every(Boolean)) {\n const is12h = meridiem !== undefined;\n\n if (!validateTime(Number(hour), Number(minute), Number(second), 0, is12h)) {\n return {\n valueAsISOString: buildRawTimeString(hour, minute, withSeconds ? second : undefined),\n valueAsTimestamp: NaN,\n state: 'invalid'\n };\n }\n\n resultDate.setUTCHours(\n is12h ? convertTo24h(Number(hour), meridiem) : Number(hour),\n Number(minute),\n Number(second),\n date.getUTCMilliseconds() || 0\n );\n return {\n valueAsISOString: resultDate.toISOString(),\n valueAsTimestamp: resultDate.getTime()\n };\n }\n if ([hour, minute].every(p => !p)) {\n return {\n valueAsISOString: undefined,\n valueAsTimestamp: undefined\n };\n }\n return {\n valueAsISOString: buildRawTimeString(hour, minute, withSeconds ? second : undefined),\n valueAsTimestamp: NaN,\n state: 'incomplete'\n };\n};\n\nconst TimeInput: FunctionComponent<TimeInputProps & ForwardProps> = forwardRef(function TimeInput(\n props: PropsWithoutRef<TimeInputProps>,\n ref: Ref<HTMLFieldSetElement>\n) {\n const { locale } = useConfiguration();\n const t = useI18n();\n const {\n testId,\n value,\n id,\n label,\n labelHidden,\n status,\n withSeconds = false,\n pickerInterval = 30,\n clockFormat,\n info = getDateFormat(t, locale, withSeconds ? 'time+seconds' : 'time'),\n required,\n readOnly,\n disabled,\n onChange,\n onFocus,\n onBlur,\n suggestion,\n autoFocus,\n additionalInfo,\n handle,\n className,\n ...restProps\n } = props;\n\n const testIds = useTestIds(testId, getTimeInputTestIds);\n const date = value !== undefined && value !== '' ? parseToDate(value) : undefined;\n const is12h = clockFormat ? clockFormat === 12 : is12HClockFormat(locale);\n\n const [hourInputRef, minuteInputRef, secondInputRef, meridiemSelectRef] = [\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLSelectElement>(null)\n ];\n\n const [hasValue, setHasValue] = useState(!!date);\n useEffect(() => {\n setHasValue(\n !!(\n hourInputRef.current?.value ||\n minuteInputRef.current?.value ||\n (withSeconds && secondInputRef.current?.value)\n )\n );\n }, [date]);\n\n const { description, descriptionID } = useAutoFocusNextInput([\n hourInputRef,\n minuteInputRef,\n secondInputRef\n ]);\n\n const pickParts = () => {\n const parts: TimeParts<string | undefined> = {\n hour: hourInputRef.current?.value || undefined,\n minute: minuteInputRef.current?.value || undefined\n };\n if (withSeconds) parts.second = secondInputRef.current?.value;\n if (is12h) parts.dayPeriod = meridiemSelectRef.current?.value;\n return parts;\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\n const current = date !== undefined ? new Date(date) : getAdjustedUTCDateTime();\n return validateTime(hour, minute, second, 0, is12h)\n ? new Date(\n current.setUTCHours(\n is12h ? convertTo24h(hour, parts.dayPeriod!) : hour,\n minute,\n second,\n date?.getUTCMilliseconds() || 0\n )\n )\n : undefined;\n }\n };\n\n const [open, setOpen, , setPopoverRef, timePickerButtonEl, setTimePickerButtonEl] =\n usePickerButton();\n\n useImperativeHandle(handle, () => ({\n getCurrentValue: () =>\n convertToCallbackParameter(date ? new Date(date) : new Date(), pickParts())\n }));\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 setHasValue(\n !!(\n hourInputRef.current?.value ||\n minuteInputRef.current?.value ||\n (withSeconds && secondInputRef.current?.value)\n )\n );\n };\n\n useEffect(() => {\n if (is12h && meridiemSelectRef.current) {\n meridiemSelectRef.current.value = getMeridiem(date?.getUTCHours());\n }\n }, [is12h, date?.getUTCHours()]);\n\n const displayNames = new Intl.DisplayNames(locale, { style: 'long', type: 'dateTimeField' });\n\n const hour = date && is12h ? convertTo12h(date.getUTCHours()) : date?.getUTCHours();\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 autoFocus={autoFocus}\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={date?.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={date?.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 containerRef = useConsolidatedRef(ref);\n useFocusWithin([containerRef], onFocusChange);\n\n const Picker = (\n <>\n <StyledInputButton\n data-testid={testIds.openClosePicker}\n variant='simple'\n icon\n ref={setTimePickerButtonEl}\n onClick={() => setOpen(cur => !cur)}\n aria-label={t(open ? 'close_time_button_a11y' : 'open_time_button_a11y')}\n readOnly={readOnly}\n disabled={disabled}\n >\n <Icon name='clock' />\n </StyledInputButton>\n\n <Popover\n show={open}\n ref={setPopoverRef}\n target={containerRef.current}\n placement='bottom-end'\n strategy='fixed'\n modifiers={[sameWidth]}\n >\n <TimePicker\n testId={testIds.picker}\n selected={currentlySelectedTime()}\n interval={pickerInterval}\n withSeconds={withSeconds}\n onSelect={selected => {\n hourInputRef.current!.value = (\n is12h ? convertTo12h(selected.getUTCHours()) : selected.getUTCHours()\n )\n .toString()\n .padStart(2, '0');\n minuteInputRef.current!.value = selected.getUTCMinutes().toString().padStart(2, '0');\n if (withSeconds)\n secondInputRef.current!.value = selected.getUTCSeconds().toString().padStart(2, '0');\n if (meridiemSelectRef.current) {\n meridiemSelectRef.current.value = getMeridiem(selected.getUTCHours());\n }\n setOpen(false);\n setTimeout(() => timePickerButtonEl?.focus());\n onInputChange();\n }}\n clockFormat={clockFormat}\n />\n </Popover>\n </>\n );\n\n const Comp = (\n <Flex\n data-testid={label ? undefined : testIds.root}\n as={StyledTimeInput}\n forwardedAs={StyledFormControl}\n hasSuggestion={status === 'pending' && !!suggestion}\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) hourInputRef.current?.focus();\n }}\n {...restProps}\n className={createClassName('time-input', className)}\n >\n <Flex\n ref={inputContainerRef}\n as={StyledInputContainer}\n container={{ alignItems: 'center', wrap: 'wrap' }}\n >\n {getDateTimeParts(locale, getTimeOptions(withSeconds, is12h)).map(part => {\n switch (part) {\n case 'hour':\n return HourInput;\n case 'minute':\n return MinuteInput;\n case 'second':\n return SecondInput;\n case 'dayPeriod':\n return Period;\n default:\n return part;\n }\n })}\n </Flex>\n {!readOnly && (\n <Flex container>\n {hasValue && (\n <StyledInputButton\n data-testid={testIds.clearCurrentTime}\n aria-label={t('clear_current_time')}\n icon\n onClick={() => {\n hourInputRef.current!.value = '';\n minuteInputRef.current!.value = '';\n if (withSeconds) secondInputRef.current!.value = '';\n if (is12h) meridiemSelectRef.current!.value = t('meridiem_value_am');\n setTimeout(() => timePickerButtonEl?.focus());\n onInputChange();\n }}\n variant='simple'\n compact\n label={t('clear')}\n >\n <Icon name='times' />\n </StyledInputButton>\n )}\n {Picker}\n </Flex>\n )}\n </Flex>\n );\n\n return label ? (\n <>\n <FormField\n testId={testIds}\n as='fieldset'\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 suggestion={suggestion}\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(TimeInput, getTimeInputTestIds);\n"]}
|
|
1
|
+
{"version":3,"file":"TimeInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/TimeInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAErF,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAGvC,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,IAAI,MAAM,YAAY,CAAC;AAC9B,OAAO,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,OAAO,EACP,UAAU,EACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAItD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElG,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB,OAAO,cAAc,EAAE,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAG5D,YAAY,CAAC,SAAS,CAAC,CAAC;AA6BxB,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,CAAgB;;CAEpE,CAAC;AAEF,SAAS,WAAW,CAAC,IAAwB;IAC3C,OAAO,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;IACpC,IAAI,SAAS,GAAW,IAAI,CAAC;IAC7B,IAAI,IAAI,GAAG,EAAE;QAAE,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;SAChC,IAAI,IAAI,KAAK,CAAC;QAAE,SAAS,GAAG,EAAE,CAAC;IACpC,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAE,EAAE;IACtD,IAAI,SAAS,GAAW,IAAI,CAAC;IAC7B,IAAI,QAAQ,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE;QAAE,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;SACrD,IAAI,QAAQ,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;QAAE,SAAS,GAAG,CAAC,CAAC;IACzD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CACjC,IAAU,EACV,KAAoC,EACT,EAAE;IAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7C,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7C,MAAM,EACJ,IAAI,EACJ,MAAM,EACN,MAAM,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,EAC9C,SAAS,EAAE,QAAQ,EACpB,GAAG,KAAK,CAAC;IACV,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEzE,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,QAAQ,KAAK,SAAS,CAAC;QAErC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;YAC1E,OAAO;gBACL,gBAAgB,EAAE,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;gBACpF,gBAAgB,EAAE,GAAG;gBACrB,KAAK,EAAE,SAAS;aACjB,CAAC;QACJ,CAAC;QAED,UAAU,CAAC,WAAW,CACpB,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAC3D,MAAM,CAAC,MAAM,CAAC,EACd,MAAM,CAAC,MAAM,CAAC,EACd,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAC/B,CAAC;QACF,OAAO;YACL,gBAAgB,EAAE,UAAU,CAAC,WAAW,EAAE;YAC1C,gBAAgB,EAAE,UAAU,CAAC,OAAO,EAAE;SACvC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,OAAO;YACL,gBAAgB,EAAE,SAAS;YAC3B,gBAAgB,EAAE,SAAS;SAC5B,CAAC;IACJ,CAAC;IACD,OAAO;QACL,gBAAgB,EAAE,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,gBAAgB,EAAE,GAAG;QACrB,KAAK,EAAE,YAAY;KACpB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAA6D,UAAU,CACpF,SAAS,SAAS,CAChB,KAA+C,EAC/C,GAA6B;IAE7B,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,MAAM,EACJ,MAAM,EACN,KAAK,EACL,EAAE,EACF,KAAK,EACL,WAAW,EACX,MAAM,EACN,WAAW,GAAG,KAAK,EACnB,cAAc,GAAG,EAAE,EACnB,WAAW,EACX,IAAI,GAAG,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,EACtE,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,EACN,UAAU,EACV,SAAS,EACT,cAAc,EACd,MAAM,EACN,SAAS,EACT,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;IAEV,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE1E,MAAM,CAAC,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,CAAC,GAAG;QACxE,MAAM,CAAmB,IAAI,CAAC;QAC9B,MAAM,CAAmB,IAAI,CAAC;QAC9B,MAAM,CAAmB,IAAI,CAAC;QAC9B,MAAM,CAAoB,IAAI,CAAC;KAChC,CAAC;IAEF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CACT,CAAC,CAAC,CACA,YAAY,CAAC,OAAO,EAAE,KAAK;YAC3B,cAAc,CAAC,OAAO,EAAE,KAAK;YAC7B,CAAC,WAAW,IAAI,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAC/C,CACF,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,qBAAqB,CAAC;QAC3D,YAAY;QACZ,cAAc;QACd,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,MAAM,KAAK,GAAkC;YAC3C,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,KAAK,IAAI,SAAS;YAC9C,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,KAAK,IAAI,SAAS;SACnD,CAAC;QACF,IAAI,WAAW;YAAE,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC;QAC9D,IAAI,KAAK;YAAE,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC;QAC9D,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,GAAG,EAAE;QACjC,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAE1B,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvD,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC;YAC/E,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS;gBAAE,OAAO,SAAS,CAAC;YAEhD,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;gBACjD,CAAC,CAAC,IAAI,IAAI,CACN,OAAO,CAAC,WAAW,CACjB,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAC1D,MAAM,EACN,MAAM,EACN,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAChC,CACF;gBACH,CAAC,CAAC,SAAS,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,GACxF,eAAe,EAAE,CAAC;IAEpB,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACjC,eAAe,EAAE,GAAG,EAAE,CACpB,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC;KAC9E,CAAC,CAAC,CAAC;IAEJ,MAAM,iBAAiB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEvD,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAE,EAAE;QACzC,MAAM,aAAa,GAAG,0BAA0B,CAC9C,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAClC,SAAS,EAAE,CACZ,CAAC;QACF,IAAI,OAAO,IAAI,OAAO;YAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,iBAAiB,CAAC,OAAO;gBAAE,iBAAiB,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;YACvE,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,QAAQ,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACxF,WAAW,CACT,CAAC,CAAC,CACA,YAAY,CAAC,OAAO,EAAE,KAAK;YAC3B,cAAc,CAAC,OAAO,EAAE,KAAK;YAC7B,CAAC,WAAW,IAAI,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAC/C,CACF,CAAC;IACJ,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACvC,iBAAiB,CAAC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAEjC,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IAE7F,MAAM,IAAI,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;IACpF,MAAM,SAAS,GAAG,CAChB,KAAC,SAAS,mBACK,OAAO,CAAC,WAAW,EAEhC,WAAW,EAAE,CAAC,CAAC,kBAAkB,CAAC,gBACtB,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,EACnC,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAClB,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EACpB,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,SAAS,IAXhB,MAAM,CAYV,CACH,CAAC;IAEF,MAAM,WAAW,GAAG,CAClB,KAAC,SAAS,mBACK,OAAO,CAAC,aAAa,EAElC,WAAW,EAAE,CAAC,CAAC,oBAAoB,CAAC,gBACxB,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,EACrC,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,EAC5B,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,EAAE,EACP,GAAG,EAAE,cAAc,IATf,QAAQ,CAUZ,CACH,CAAC;IAEF,MAAM,WAAW,GAAG,CAClB,KAAC,SAAS,mBACK,OAAO,CAAC,aAAa,EAElC,WAAW,EAAE,CAAC,CAAC,oBAAoB,CAAC,gBACxB,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,EACrC,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,EAC5B,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,EAAE,EACP,GAAG,EAAE,cAAc,IATf,QAAQ,CAUZ,CACH,CAAC;IAEF,MAAM,MAAM,GAAG,CACb,MAAC,MAAM,mBACQ,OAAO,CAAC,aAAa,EAClC,GAAG,EAAE,iBAAiB,gBACV,YAAY,CAAC,EAAE,CAAC,WAAW,CAAC,EAExC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,GAAG,EAAE;YACb,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;gBAAE,aAAa,EAAE,CAAC;QACjE,CAAC,EACD,QAAQ,EAAE,QAAQ,aAElB,KAAC,MAAM,IAAC,KAAK,EAAC,IAAI,YAAE,CAAC,CAAC,mBAAmB,CAAC,GAAU,EACpD,KAAC,MAAM,IAAC,KAAK,EAAC,IAAI,YAAE,CAAC,CAAC,mBAAmB,CAAC,GAAU,KAThD,QAAQ,CAUL,CACV,CAAC;IAEF,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC7C,cAAc,CAAC,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,CAAC;IAE9C,MAAM,aAAa,GAAG,CACpB,KAAC,UAAU,IACT,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,QAAQ,EAAE,qBAAqB,EAAE,EACjC,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,CAAC,EAAE;YACnB,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;YACvC,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC;YAC3C,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC;YAE3C,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC;gBAAE,OAAO;YAExE,SAAS,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;iBACtF,QAAQ,EAAE;iBACV,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACpB,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACzE,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;gBAC/B,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3E,CAAC;YACD,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC;YACjD,IAAI,cAAc,EAAE,CAAC;gBACnB,cAAc,CAAC,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,CAAC;YACf,UAAU,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9C,aAAa,EAAE,CAAC;QAClB,CAAC,EACD,WAAW,EAAE,WAAW,GACxB,CACH,CAAC;IAEF,MAAM,MAAM,GAAG,CACb,8BACE,KAAC,iBAAiB,mBACH,OAAO,CAAC,eAAe,EACpC,OAAO,EAAC,QAAQ,EAChB,IAAI,QACJ,GAAG,EAAE,qBAAqB,EAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,gBACvB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB,CAAC,EACxE,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,YAElB,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,GAAG,GACH,EAEnB,aAAa,CAAC,CAAC,CAAC,CACf,KAAC,WAAW,IACV,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,CAAC,KAA8B,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,EACxE,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAC/B,YAAY,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,EAC/C,OAAO,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,gBAC1C,CAAC,CAAC,uBAAuB,CAAC,YAErC,aAAa,GACF,CACf,CAAC,CAAC,CAAC,CACF,KAAC,OAAO,IACN,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,YAAY,CAAC,OAAO,EAC5B,SAAS,EAAC,YAAY,EACtB,QAAQ,EAAC,OAAO,EAChB,SAAS,EAAE,CAAC,SAAS,CAAC,YAErB,aAAa,GACN,CACX,IACA,CACJ,CAAC;IAEF,MAAM,IAAI,GAAG,CACX,MAAC,IAAI,mBACU,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAC7C,EAAE,EAAE,eAAe,EACnB,WAAW,EAAE,iBAAiB,EAC9B,aAAa,EAAE,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,EACnD,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,CAAC,CAA0B,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YACxB,IACE,aAAa;gBACb,IAAI;gBACJ,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;gBACxB,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC;gBAC5B,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,EACrC,CAAC;gBACD,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,EACD,OAAO,EAAE,CAAC,CAAa,EAAE,EAAE;YACzB,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,OAAO;gBAAE,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACvE,CAAC,KACG,SAAS,EACb,SAAS,EAAE,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,aAEnD,KAAC,IAAI,IACH,GAAG,EAAE,iBAAiB,EACtB,EAAE,EAAE,oBAAoB,EACxB,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,YAEhD,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACvE,QAAQ,IAAI,EAAE,CAAC;wBACb,KAAK,MAAM;4BACT,OAAO,SAAS,CAAC;wBACnB,KAAK,QAAQ;4BACX,OAAO,WAAW,CAAC;wBACrB,KAAK,QAAQ;4BACX,OAAO,WAAW,CAAC;wBACrB,KAAK,WAAW;4BACd,OAAO,MAAM,CAAC;wBAChB;4BACE,OAAO,IAAI,CAAC;oBAChB,CAAC;gBACH,CAAC,CAAC,GACG,EACN,CAAC,QAAQ,IAAI,CACZ,MAAC,IAAI,IAAC,SAAS,mBACZ,QAAQ,IAAI,CACX,KAAC,iBAAiB,mBACH,OAAO,CAAC,gBAAgB,gBACzB,CAAC,CAAC,oBAAoB,CAAC,EACnC,IAAI,QACJ,OAAO,EAAE,GAAG,EAAE;4BACZ,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;4BACvC,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC;4BAC3C,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC;4BAC3C,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC;4BAEjD,IACE,CAAC,SAAS;gCACV,CAAC,WAAW;gCACZ,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC;gCAC7B,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC;gCAE1B,OAAO;4BAET,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;4BACrB,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;4BACvB,IAAI,WAAW,IAAI,WAAW;gCAAE,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;4BACvD,IAAI,KAAK,IAAI,cAAc;gCAAE,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,mBAAmB,CAAC,CAAC;4BAC3E,UAAU,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;4BAC9C,aAAa,EAAE,CAAC;wBAClB,CAAC,EACD,OAAO,EAAC,QAAQ,EAChB,OAAO,QACP,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,YAEjB,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,GAAG,GACH,CACrB,EACA,MAAM,IACF,CACR,IACI,CACR,CAAC;IAEF,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,8BACE,KAAC,SAAS,IACR,MAAM,EAAE,OAAO,EACf,EAAE,EAAC,UAAU,EACb,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,sBACZ,aAAa,EAC/B,GAAG,EAAE,GAAG,YAEP,IAAI,GACK,EACX,WAAW,IACX,CACJ,CAAC,CAAC,CAAC,CACF,IAAI,CACL,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,WAAW,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC","sourcesContent":["import { useRef, forwardRef, useEffect, useState, useImperativeHandle } from 'react';\nimport type { Ref, PropsWithoutRef, MouseEvent } from 'react';\nimport styled from 'styled-components';\n\nimport type { ForwardRefForwardPropsComponent } from '../../../types';\nimport FormField from '../../FormField';\nimport Flex from '../../Flex';\nimport Select, { Option } from '../../Select';\nimport Icon, { registerIcon } from '../../Icon';\nimport * as clockIcon from '../../Icon/icons/clock.icon';\nimport { TouchDialog } from '../../Dialog/TouchDialog';\nimport Popover from '../../Popover';\nimport TimePicker from '../Picker/TimePicker';\nimport {\n useConfiguration,\n useConsolidatedRef,\n useFocusWithin,\n useI18n,\n useTestIds\n} from '../../../hooks';\nimport { StyledFormControl } from '../../FormControl';\nimport type { FormControlProps } from '../../FormControl';\nimport type DateTimeProps from '../DateTime.types';\nimport type { DateTimeCallbackParameter } from '../DateTime.types';\nimport { sameWidth } from '../../Popover/modifiers';\nimport { createClassName, hasProp, isInstance, isTouchDevice, withTestIds } from '../../../utils';\nimport type { MinuteInterval } from '../Picker/DatePicker.types';\nimport { getTimeInputTestIds } from '../DateTime.test-ids';\nimport { getAdjustedUTCDateTime } from '../utils';\n\nimport {\n getDateFormat,\n getDateTimeParts,\n parseToDate,\n is12HClockFormat,\n validateTime,\n getTimeOptions,\n buildRawTimeString\n} from './utils';\nimport type { ClockFormat } from './utils';\nimport StyledDateTime, { StyledInputContainer, StyledInputButton } from './DateTime.styles';\nimport PartInput from './PartInput';\nimport usePickerButton from './usePickerButton';\nimport useAutoFocusNextInput from './useAutoFocusNextInput';\nimport type { TimeParts } from './DateTimeInput.types';\n\nregisterIcon(clockIcon);\n\nexport interface TimeInputHandleValue {\n getCurrentValue: () => DateTimeCallbackParameter;\n}\n\nexport interface TimeInputProps extends DateTimeProps {\n /**\n * Display the time with seconds.\n * @default false\n */\n withSeconds?: 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 /** Additional properties for imperative control. */\n handle?: Ref<TimeInputHandleValue>;\n}\n\ninterface TimeInputComponentProps extends TimeInputProps {\n ref?: Ref<HTMLFieldSetElement>;\n}\n\nexport const StyledTimeInput = styled(StyledDateTime)<TimeInputProps>`\n padding-inline-end: 0;\n`;\n\nfunction getMeridiem(hour: number | undefined) {\n return hour && 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\nconst convertToCallbackParameter = (\n date: Date,\n parts: TimeParts<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 hour,\n minute,\n second = resultDate.getUTCSeconds().toString(),\n dayPeriod: meridiem\n } = parts;\n const toValidate = withSeconds ? [hour, minute, second] : [hour, minute];\n\n if (toValidate.every(Boolean)) {\n const is12h = meridiem !== undefined;\n\n if (!validateTime(Number(hour), Number(minute), Number(second), 0, is12h)) {\n return {\n valueAsISOString: buildRawTimeString(hour, minute, withSeconds ? second : undefined),\n valueAsTimestamp: NaN,\n state: 'invalid'\n };\n }\n\n resultDate.setUTCHours(\n is12h ? convertTo24h(Number(hour), meridiem) : Number(hour),\n Number(minute),\n Number(second),\n date.getUTCMilliseconds() || 0\n );\n return {\n valueAsISOString: resultDate.toISOString(),\n valueAsTimestamp: resultDate.getTime()\n };\n }\n if ([hour, minute].every(p => !p)) {\n return {\n valueAsISOString: undefined,\n valueAsTimestamp: undefined\n };\n }\n return {\n valueAsISOString: buildRawTimeString(hour, minute, withSeconds ? second : undefined),\n valueAsTimestamp: NaN,\n state: 'incomplete'\n };\n};\n\nconst TimeInput: ForwardRefForwardPropsComponent<TimeInputComponentProps> = forwardRef(\n function TimeInput(\n props: PropsWithoutRef<TimeInputComponentProps>,\n ref: Ref<HTMLFieldSetElement>\n ) {\n const { locale } = useConfiguration();\n const t = useI18n();\n const {\n testId,\n value,\n id,\n label,\n labelHidden,\n status,\n withSeconds = false,\n pickerInterval = 30,\n clockFormat,\n info = getDateFormat(t, locale, withSeconds ? 'time+seconds' : 'time'),\n required,\n readOnly,\n disabled,\n onChange,\n onFocus,\n onBlur,\n suggestion,\n autoFocus,\n additionalInfo,\n handle,\n className,\n ...restProps\n } = props;\n\n const testIds = useTestIds(testId, getTimeInputTestIds);\n const date = value !== undefined && value !== '' ? parseToDate(value) : undefined;\n const is12h = clockFormat ? clockFormat === 12 : is12HClockFormat(locale);\n\n const [hourInputRef, minuteInputRef, secondInputRef, meridiemSelectRef] = [\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLSelectElement>(null)\n ];\n\n const [hasValue, setHasValue] = useState(!!date);\n useEffect(() => {\n setHasValue(\n !!(\n hourInputRef.current?.value ||\n minuteInputRef.current?.value ||\n (withSeconds && secondInputRef.current?.value)\n )\n );\n }, [date]);\n\n const { description, descriptionID } = useAutoFocusNextInput([\n hourInputRef,\n minuteInputRef,\n secondInputRef\n ]);\n\n const pickParts = () => {\n const parts: TimeParts<string | undefined> = {\n hour: hourInputRef.current?.value || undefined,\n minute: minuteInputRef.current?.value || undefined\n };\n if (withSeconds) parts.second = secondInputRef.current?.value;\n if (is12h) parts.dayPeriod = meridiemSelectRef.current?.value;\n return parts;\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\n const current = date !== undefined ? new Date(date) : getAdjustedUTCDateTime();\n if (is12h && !parts.dayPeriod) return undefined;\n\n return validateTime(hour, minute, second, 0, is12h)\n ? new Date(\n current.setUTCHours(\n is12h ? convertTo24h(hour, parts.dayPeriod ?? 'AM') : hour,\n minute,\n second,\n date?.getUTCMilliseconds() || 0\n )\n )\n : undefined;\n }\n };\n\n const [open, setOpen, popoverEl, setPopoverRef, timePickerButtonEl, setTimePickerButtonEl] =\n usePickerButton();\n\n useImperativeHandle(handle, () => ({\n getCurrentValue: () =>\n convertToCallbackParameter(date ? new Date(date) : new Date(), pickParts())\n }));\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 setHasValue(\n !!(\n hourInputRef.current?.value ||\n minuteInputRef.current?.value ||\n (withSeconds && secondInputRef.current?.value)\n )\n );\n };\n\n useEffect(() => {\n if (is12h && meridiemSelectRef.current) {\n meridiemSelectRef.current.value = getMeridiem(date?.getUTCHours());\n }\n }, [is12h, date?.getUTCHours()]);\n\n const displayNames = new Intl.DisplayNames(locale, { style: 'long', type: 'dateTimeField' });\n\n const hour = date && is12h ? convertTo12h(date.getUTCHours()) : date?.getUTCHours();\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 autoFocus={autoFocus}\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={date?.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={date?.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 containerRef = useConsolidatedRef(ref);\n useFocusWithin([containerRef], onFocusChange);\n\n const pickerContent = (\n <TimePicker\n testId={testIds.picker}\n selected={currentlySelectedTime()}\n interval={pickerInterval}\n withSeconds={withSeconds}\n onSelect={selected => {\n const hourInput = hourInputRef.current;\n const minuteInput = minuteInputRef.current;\n const secondInput = secondInputRef.current;\n\n if (!hourInput || !minuteInput || (withSeconds && !secondInput)) return;\n\n hourInput.value = (is12h ? convertTo12h(selected.getUTCHours()) : selected.getUTCHours())\n .toString()\n .padStart(2, '0');\n minuteInput.value = selected.getUTCMinutes().toString().padStart(2, '0');\n if (withSeconds && secondInput) {\n secondInput.value = selected.getUTCSeconds().toString().padStart(2, '0');\n }\n const meridiemSelect = meridiemSelectRef.current;\n if (meridiemSelect) {\n meridiemSelect.value = getMeridiem(selected.getUTCHours());\n }\n setOpen(false);\n setTimeout(() => timePickerButtonEl?.focus());\n onInputChange();\n }}\n clockFormat={clockFormat}\n />\n );\n\n const Picker = (\n <>\n <StyledInputButton\n data-testid={testIds.openClosePicker}\n variant='simple'\n icon\n ref={setTimePickerButtonEl}\n onClick={() => setOpen(cur => !cur)}\n aria-label={t(open ? 'close_time_button_a11y' : 'open_time_button_a11y')}\n readOnly={readOnly}\n disabled={disabled}\n >\n <Icon name='clock' />\n </StyledInputButton>\n\n {isTouchDevice ? (\n <TouchDialog\n open={open}\n ref={setPopoverRef}\n onMouseDown={(event: MouseEvent<HTMLElement>) => event.stopPropagation()}\n onDismiss={() => setOpen(false)}\n onAfterClose={() => timePickerButtonEl?.focus()}\n heading={typeof label === 'string' ? label : undefined}\n aria-label={t('open_time_button_a11y')}\n >\n {pickerContent}\n </TouchDialog>\n ) : (\n <Popover\n show={open}\n ref={setPopoverRef}\n target={containerRef.current}\n placement='bottom-end'\n strategy='fixed'\n modifiers={[sameWidth]}\n >\n {pickerContent}\n </Popover>\n )}\n </>\n );\n\n const Comp = (\n <Flex\n data-testid={label ? undefined : testIds.root}\n as={StyledTimeInput}\n forwardedAs={StyledFormControl}\n hasSuggestion={status === 'pending' && !!suggestion}\n container={{ alignItems: 'center', wrap: 'nowrap', justify: 'between' }}\n status={status}\n readOnly={readOnly}\n disabled={disabled}\n ref={containerRef}\n onMouseDown={(e: MouseEvent<HTMLElement>) => {\n const target = e.target;\n if (\n isTouchDevice &&\n open &&\n isInstance(target, Node) &&\n !popoverEl?.contains(target) &&\n !timePickerButtonEl?.contains(target)\n ) {\n e.stopPropagation();\n setOpen(false);\n }\n }}\n onClick={(e: MouseEvent) => {\n if (e.target === containerRef.current) hourInputRef.current?.focus();\n }}\n {...restProps}\n className={createClassName('time-input', className)}\n >\n <Flex\n ref={inputContainerRef}\n as={StyledInputContainer}\n container={{ alignItems: 'center', wrap: 'wrap' }}\n >\n {getDateTimeParts(locale, getTimeOptions(withSeconds, is12h)).map(part => {\n switch (part) {\n case 'hour':\n return HourInput;\n case 'minute':\n return MinuteInput;\n case 'second':\n return SecondInput;\n case 'dayPeriod':\n return Period;\n default:\n return part;\n }\n })}\n </Flex>\n {!readOnly && (\n <Flex container>\n {hasValue && (\n <StyledInputButton\n data-testid={testIds.clearCurrentTime}\n aria-label={t('clear_current_time')}\n icon\n onClick={() => {\n const hourInput = hourInputRef.current;\n const minuteInput = minuteInputRef.current;\n const secondInput = secondInputRef.current;\n const meridiemSelect = meridiemSelectRef.current;\n\n if (\n !hourInput ||\n !minuteInput ||\n (withSeconds && !secondInput) ||\n (is12h && !meridiemSelect)\n )\n return;\n\n hourInput.value = '';\n minuteInput.value = '';\n if (withSeconds && secondInput) secondInput.value = '';\n if (is12h && meridiemSelect) meridiemSelect.value = t('meridiem_value_am');\n setTimeout(() => timePickerButtonEl?.focus());\n onInputChange();\n }}\n variant='simple'\n compact\n label={t('clear')}\n >\n <Icon name='times' />\n </StyledInputButton>\n )}\n {Picker}\n </Flex>\n )}\n </Flex>\n );\n\n return label ? (\n <>\n <FormField\n testId={testIds}\n as='fieldset'\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 suggestion={suggestion}\n additionalInfo={additionalInfo}\n aria-describedby={descriptionID}\n ref={ref}\n >\n {Comp}\n </FormField>\n {description}\n </>\n ) : (\n Comp\n );\n }\n);\n\nexport default withTestIds(TimeInput, getTimeInputTestIds);\n"]}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { Ref } from 'react';
|
|
2
|
+
import type { ForwardRefForwardPropsComponent, OmitStrict } from '../../../types';
|
|
3
3
|
import type { FormControlProps } from '../../FormControl';
|
|
4
4
|
import type DateTimeProps from '../DateTime.types';
|
|
5
5
|
export interface WeekInputProps extends OmitStrict<FormControlProps, 'value' | 'defaultValue'>, DateTimeProps {
|
|
6
6
|
}
|
|
7
|
+
interface WeekInputComponentProps extends WeekInputProps {
|
|
8
|
+
ref?: Ref<HTMLFieldSetElement>;
|
|
9
|
+
}
|
|
7
10
|
export declare const StyledWeekInput: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<Omit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>, "ref"> & {
|
|
8
11
|
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
9
12
|
}, WeekInputProps>> & string;
|
|
10
|
-
declare const _default:
|
|
13
|
+
declare const _default: ForwardRefForwardPropsComponent<WeekInputComponentProps> & {
|
|
11
14
|
getTestIds: (testIdProp?: import("../../..").TestIdProp["testId"]) => import("../../..").TestIdsRecord<readonly ["control-week", "control-year", "open-close-picker", "picker", "clear-current-week", "label", "info", "additional-info", "suggestion-accept", "suggestion-reject"]>;
|
|
12
15
|
};
|
|
13
16
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WeekInput.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/WeekInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"WeekInput.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/WeekInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,GAAG,EAAE,MAAM,OAAO,CAAC;AAIlD,OAAO,KAAK,EAAE,+BAA+B,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAiBlF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AA4BnD,MAAM,WAAW,cACf,SAAQ,UAAU,CAAC,gBAAgB,EAAE,OAAO,GAAG,cAAc,CAAC,EAC5D,aAAa;CAAG;AAEpB,UAAU,uBAAwB,SAAQ,cAAc;IACtD,GAAG,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;CAChC;AAED,eAAO,MAAM,eAAe;;4BAY1B,CAAC;;;;AAiWH,wBAA2D"}
|
|
@@ -3,7 +3,8 @@ import { forwardRef, Fragment, useRef, useState } from 'react';
|
|
|
3
3
|
import styled, { css } from 'styled-components';
|
|
4
4
|
import { defaultThemeProp } from '../../../theme';
|
|
5
5
|
import { useConfiguration, useConsolidatedRef, useFocusWithin, useI18n, useOuterEvent, useTestIds, useUID } from '../../../hooks';
|
|
6
|
-
import { cap, createClassName, withTestIds } from '../../../utils';
|
|
6
|
+
import { cap, createClassName, isInstance, isTouchDevice, withTestIds } from '../../../utils';
|
|
7
|
+
import { TouchDialog } from '../../Dialog/TouchDialog';
|
|
7
8
|
import FormField from '../../FormField';
|
|
8
9
|
import Icon, { registerIcon } from '../../Icon';
|
|
9
10
|
import * as calendarIcon from '../../Icon/icons/calendar.icon';
|
|
@@ -114,7 +115,10 @@ const WeekInput = forwardRef(function WeekInput(props, ref) {
|
|
|
114
115
|
};
|
|
115
116
|
// autoclose picker on focusing out
|
|
116
117
|
useOuterEvent('focusin', [containerRef], e => {
|
|
117
|
-
|
|
118
|
+
const { relatedTarget } = e;
|
|
119
|
+
if (!isTouchDevice &&
|
|
120
|
+
isInstance(relatedTarget, Node) &&
|
|
121
|
+
containerRef.current?.contains(relatedTarget))
|
|
118
122
|
setOpen(false);
|
|
119
123
|
});
|
|
120
124
|
const displayNames = new Intl.DisplayNames(locale, {
|
|
@@ -124,23 +128,32 @@ const WeekInput = forwardRef(function WeekInput(props, ref) {
|
|
|
124
128
|
const WeekNumberInput = (_jsx(PartInput, { "data-testid": testIds.controlWeek, placeholder: t('week_placeholder'), "aria-label": displayNames.of('weekOfYear'), value: date ? getWeek(date, calendarType, 'UTC') : undefined, onChange: onInputChange, size: 2, maxLength: 2, min: 1, max: 53, readOnly: readOnly, ref: weekInputRef, autoFocus: autoFocus }, 'week'));
|
|
125
129
|
const YearInput = (_jsxs(Fragment, { children: [_jsx(PartInput, { "data-testid": testIds.controlYear, placeholder: t('year_placeholder'), "aria-label": displayNames.of('year'), "aria-describedby": yearPartId, value: date ? getWeekYear(date, calendarType, 'UTC') : undefined, onChange: onInputChange, size: 4, maxLength: 4, min: minYear, max: maxYear, readOnly: readOnly, ref: yearInputRef }), _jsx(HiddenText, { id: yearPartId, children: t('year_input_description') })] }, 'year'));
|
|
126
130
|
useFocusWithin([containerRef], onFocusChange);
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
131
|
+
const pickerContent = (_jsx(Flex, { container: { direction: 'column' }, as: StyledDialogContent, children: _jsx(DatePicker, { testId: testIds.picker, selected: currentlySelectedDate(), calendarType: calendarType, onChange: selected => {
|
|
132
|
+
const weekInput = weekInputRef.current;
|
|
133
|
+
const yearInput = yearInputRef.current;
|
|
134
|
+
if (!weekInput || !yearInput)
|
|
135
|
+
return;
|
|
136
|
+
weekInput.value =
|
|
137
|
+
(selected && getWeek(selected, calendarType, 'UTC').toString().padStart(2, '0')) ||
|
|
138
|
+
'';
|
|
139
|
+
yearInput.value =
|
|
140
|
+
(selected && getWeekYear(selected, calendarType, 'UTC').toString()) || '';
|
|
141
|
+
setOpen(false);
|
|
142
|
+
setTimeout(() => buttonEl?.focus());
|
|
143
|
+
onInputChange();
|
|
144
|
+
}, min: min, max: max, mode: 'week' }) }));
|
|
145
|
+
const Picker = (_jsxs(_Fragment, { children: [_jsx(StyledInputButton, { "data-testid": testIds.openClosePicker, variant: 'simple', icon: true, ref: setButtonEl, onClick: () => setOpen(cur => !cur), "aria-label": generatePickerButtonAriaLabel(currentlySelectedDate(), 'week', locale, t, open), readOnly: readOnly, disabled: disabled, children: _jsx(Icon, { name: 'calendar' }) }), isTouchDevice ? (_jsx(TouchDialog, { open: open, size: 'auto', ref: setPopoverRef, onMouseDown: (e) => e.stopPropagation(), onDismiss: () => setOpen(false), onAfterClose: () => buttonEl?.focus(), heading: typeof label === 'string' ? label : t('choose_week'), "aria-label": t('choose_week'), children: pickerContent })) : (open &&
|
|
146
|
+
buttonEl && (_jsx(StyledDatePickerDialog, { ref: setPopoverRef, target: buttonEl, "aria-label": t('choose_week'), children: pickerContent })))] }));
|
|
138
147
|
const Comp = (_jsxs(Flex, { "data-testid": label ? undefined : testIds.root, as: StyledWeekInput, forwardedAs: StyledFormControl, container: { alignItems: 'center', wrap: 'nowrap', justify: 'between' }, status: status, readOnly: readOnly, disabled: disabled, ref: containerRef, onClick: (e) => {
|
|
139
148
|
if (e.target === containerRef.current)
|
|
140
149
|
weekInputRef.current?.focus();
|
|
141
|
-
}, ...restProps, className: createClassName('week-input', className), children: [_jsxs(Flex, { ref: inputContainerRef, as: StyledInputContainer, container: { alignItems: 'center', wrap: 'wrap' }, children: [cap(displayNames.of('weekOfYear')), " ", WeekNumberInput, ",", YearInput] }), !readOnly && (_jsxs(Flex, { container: true, children: [hasValue && (_jsx(StyledInputButton, { "data-testid": testIds.clearCurrentWeek, "aria-label": t('clear_current_date'), icon: true, onClick: () => {
|
|
142
|
-
weekInputRef.current
|
|
143
|
-
yearInputRef.current
|
|
150
|
+
}, ...restProps, className: createClassName('week-input', className), children: [_jsxs(Flex, { ref: inputContainerRef, as: StyledInputContainer, container: { alignItems: 'center', wrap: 'wrap' }, children: [cap(displayNames.of('weekOfYear') ?? ''), " ", WeekNumberInput, ",", YearInput] }), !readOnly && (_jsxs(Flex, { container: true, children: [hasValue && (_jsx(StyledInputButton, { "data-testid": testIds.clearCurrentWeek, "aria-label": t('clear_current_date'), icon: true, onClick: () => {
|
|
151
|
+
const weekInput = weekInputRef.current;
|
|
152
|
+
const yearInput = yearInputRef.current;
|
|
153
|
+
if (!weekInput || !yearInput)
|
|
154
|
+
return;
|
|
155
|
+
weekInput.value = '';
|
|
156
|
+
yearInput.value = '';
|
|
144
157
|
setTimeout(() => buttonEl?.focus());
|
|
145
158
|
onInputChange();
|
|
146
159
|
}, variant: 'simple', compact: true, label: t('clear'), children: _jsx(Icon, { name: 'times' }) })), Picker] }))] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WeekInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/WeekInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, Fragment, useRef, useState } from 'react';\nimport type { FunctionComponent, PropsWithoutRef, Ref } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { defaultThemeProp } from '../../../theme';\nimport type { ForwardProps, OmitStrict } from '../../../types';\nimport {\n useConfiguration,\n useConsolidatedRef,\n useFocusWithin,\n useI18n,\n useOuterEvent,\n useTestIds,\n useUID\n} from '../../../hooks';\nimport { cap, createClassName, withTestIds } from '../../../utils';\nimport FormField from '../../FormField';\nimport Icon, { registerIcon } from '../../Icon';\nimport * as calendarIcon from '../../Icon/icons/calendar.icon';\nimport Flex from '../../Flex';\nimport { StyledFormControl } from '../../FormControl';\nimport type { FormControlProps } from '../../FormControl';\nimport DatePicker from '../Picker/DatePicker';\nimport type DateTimeProps from '../DateTime.types';\nimport type { DateTimeCallbackParameter } from '../DateTime.types';\nimport { getWeekInputTestIds } from '../DateTime.test-ids';\nimport HiddenText from '../../HiddenText';\n\nimport {\n parseToDate,\n getWeekYear,\n getWeek,\n generatePickerButtonAriaLabel,\n convertWeekYearToDate,\n buildRawWeekString\n} from './utils';\nimport StyledDateTime, {\n BareInput,\n StyledDatePickerDialog,\n StyledDialogContent,\n StyledInputButton,\n StyledInputContainer\n} from './DateTime.styles';\nimport usePickerButton from './usePickerButton';\nimport PartInput from './PartInput';\nimport useAutoFocusNextInput from './useAutoFocusNextInput';\nimport type { DateParts } from './DateTimeInput.types';\nimport { CALENDAR_TYPES, type CalendarType } from './local';\n\nregisterIcon(calendarIcon);\n\nexport interface WeekInputProps\n extends OmitStrict<FormControlProps, 'value' | 'defaultValue'>,\n DateTimeProps {}\n\nexport const StyledWeekInput = styled(StyledDateTime)<WeekInputProps>(props => {\n const {\n theme: { base }\n } = props;\n\n return css`\n padding-inline-end: 0;\n\n ${StyledInputContainer} > ${BareInput}:first-of-type {\n margin-inline-start: ${base.spacing};\n }\n `;\n});\n\nStyledWeekInput.defaultProps = defaultThemeProp;\n\nconst convertToCallbackParameter = (\n date: Date,\n parts: DateParts<string | undefined>,\n calendarType?: CalendarType\n): DateTimeCallbackParameter => {\n if ([parts.week, parts.year].every(Boolean)) {\n const { year, month, day } = convertWeekYearToDate(parts, calendarType) ?? {};\n date.setUTCFullYear(Number(year), Number(month), Number(day));\n return {\n valueAsISOString: date.toISOString(),\n valueAsTimestamp: date.getTime()\n };\n }\n if ([parts.week, parts.year].every(p => !p)) {\n return {\n valueAsISOString: undefined,\n valueAsTimestamp: undefined\n };\n }\n return {\n valueAsISOString: buildRawWeekString(parts.week, parts.year),\n valueAsTimestamp: NaN,\n state: 'incomplete'\n };\n};\n\nconst WeekInput: FunctionComponent<WeekInputProps & ForwardProps> = forwardRef(function WeekInput(\n props: PropsWithoutRef<WeekInputProps>,\n ref: Ref<HTMLFieldSetElement>\n) {\n const {\n testId,\n value,\n min,\n max,\n id,\n label,\n labelHidden,\n status,\n info,\n required,\n readOnly,\n disabled,\n onChange,\n onFocus,\n onBlur,\n autoFocus,\n additionalInfo,\n className,\n ...restProps\n } = props;\n\n const testIds = useTestIds(testId, getWeekInputTestIds);\n\n const { locale } = useConfiguration();\n const t = useI18n();\n const containerRef = useConsolidatedRef(ref);\n const yearPartId = useUID();\n\n const date = value !== undefined ? parseToDate(value) : undefined;\n const [hasValue, setHasValue] = useState(!!date);\n\n // derive calendarType from locale\n // supporting only (mon=1/sun=7) as of now, support for rest of the days is captured in ENHANCEMENT-1906\n let calendarType: CalendarType = CALENDAR_TYPES.ISO_8601;\n if (locale?.includes('-fw-sun')) calendarType = CALENDAR_TYPES.US;\n else if (locale?.includes('-fw-mon')) calendarType = CALENDAR_TYPES.ISO_8601;\n\n const minYear = min !== undefined ? parseToDate(min).getUTCFullYear() : 1;\n const maxYear = max !== undefined ? parseToDate(max).getUTCFullYear() : 9999;\n\n const [weekInputRef, yearInputRef] = [\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null)\n ];\n\n const { description, descriptionID } = useAutoFocusNextInput([weekInputRef, yearInputRef]);\n\n const pickParts = (): DateParts<string | undefined> => {\n return {\n week: weekInputRef.current?.value || undefined,\n year: yearInputRef.current?.value || undefined\n };\n };\n\n const currentlySelectedDate = () => {\n const dateParts = convertWeekYearToDate(pickParts(), calendarType);\n if (dateParts) {\n const year = Number(dateParts.year);\n const month = Number(dateParts.month);\n const day = Number(dateParts.day);\n\n const current = date ?? new Date();\n return new Date(\n current.setUTCFullYear(\n year ?? current.getUTCFullYear(),\n month ?? current.getUTCMonth(),\n day ?? current.getUTCDate()\n )\n );\n }\n };\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 calendarType\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 [open, setOpen, , setPopoverRef, buttonEl, setButtonEl] = usePickerButton();\n\n const onInputChange = () => {\n onChange?.(\n convertToCallbackParameter(date ? new Date(date) : new Date(), pickParts(), calendarType)\n );\n buttonEl?.setAttribute(\n 'aria-label',\n generatePickerButtonAriaLabel(currentlySelectedDate(), 'week', locale, t, open)\n );\n if (weekInputRef.current?.value !== '' && yearInputRef.current?.value !== '') {\n setHasValue(true);\n } else {\n setHasValue(false);\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, {\n style: 'long',\n type: 'dateTimeField'\n }) as Intl.DateTimeDisplayNames;\n\n const WeekNumberInput = (\n <PartInput\n data-testid={testIds.controlWeek}\n key='week'\n placeholder={t('week_placeholder')}\n aria-label={displayNames.of('weekOfYear')}\n value={date ? getWeek(date, calendarType, 'UTC') : undefined}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n min={1}\n max={53}\n readOnly={readOnly}\n ref={weekInputRef}\n autoFocus={autoFocus}\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 ? getWeekYear(date, calendarType, 'UTC') : undefined}\n onChange={onInputChange}\n size={4}\n maxLength={4}\n min={minYear}\n max={maxYear}\n readOnly={readOnly}\n ref={yearInputRef}\n />\n <HiddenText id={yearPartId}>{t('year_input_description')}</HiddenText>\n </Fragment>\n );\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={() => setOpen(cur => !cur)}\n aria-label={generatePickerButtonAriaLabel(currentlySelectedDate(), 'week', locale, t, open)}\n readOnly={readOnly}\n disabled={disabled}\n >\n <Icon name='calendar' />\n </StyledInputButton>\n {open && buttonEl && (\n <StyledDatePickerDialog ref={setPopoverRef} target={buttonEl} aria-label={t('choose_week')}>\n <Flex container={{ direction: 'column' }} as={StyledDialogContent}>\n <DatePicker\n testId={testIds.picker}\n selected={currentlySelectedDate()}\n calendarType={calendarType}\n onChange={selected => {\n weekInputRef.current!.value =\n (selected &&\n getWeek(selected, calendarType, 'UTC').toString().padStart(2, '0')) ||\n '';\n yearInputRef.current!.value =\n (selected && getWeekYear(selected, calendarType, 'UTC').toString()) || '';\n setOpen(false);\n setTimeout(() => buttonEl?.focus());\n onInputChange();\n }}\n min={min}\n max={max}\n mode='week'\n />\n </Flex>\n </StyledDatePickerDialog>\n )}\n </>\n );\n\n const Comp = (\n <Flex\n data-testid={label ? undefined : testIds.root}\n as={StyledWeekInput}\n forwardedAs={StyledFormControl}\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) weekInputRef.current?.focus();\n }}\n {...restProps}\n className={createClassName('week-input', className)}\n >\n <Flex\n ref={inputContainerRef}\n as={StyledInputContainer}\n container={{ alignItems: 'center', wrap: 'wrap' }}\n >\n {cap(displayNames.of('weekOfYear'))} {WeekNumberInput},{YearInput}\n </Flex>\n {!readOnly && (\n <Flex container>\n {hasValue && (\n <StyledInputButton\n data-testid={testIds.clearCurrentWeek}\n aria-label={t('clear_current_date')}\n icon\n onClick={() => {\n weekInputRef.current!.value = '';\n yearInputRef.current!.value = '';\n setTimeout(() => buttonEl?.focus());\n onInputChange();\n }}\n variant='simple'\n compact\n label={t('clear')}\n >\n <Icon name='times' />\n </StyledInputButton>\n )}\n {Picker}\n </Flex>\n )}\n </Flex>\n );\n\n return label ? (\n <>\n <FormField\n testId={testIds}\n as='fieldset'\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 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(WeekInput, getWeekInputTestIds);\n"]}
|
|
1
|
+
{"version":3,"file":"WeekInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/WeekInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, Fragment, useRef, useState } from 'react';\nimport type { PropsWithoutRef, Ref } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { defaultThemeProp } from '../../../theme';\nimport type { ForwardRefForwardPropsComponent, OmitStrict } from '../../../types';\nimport {\n useConfiguration,\n useConsolidatedRef,\n useFocusWithin,\n useI18n,\n useOuterEvent,\n useTestIds,\n useUID\n} from '../../../hooks';\nimport { cap, createClassName, isInstance, isTouchDevice, withTestIds } from '../../../utils';\nimport { TouchDialog } from '../../Dialog/TouchDialog';\nimport FormField from '../../FormField';\nimport Icon, { registerIcon } from '../../Icon';\nimport * as calendarIcon from '../../Icon/icons/calendar.icon';\nimport Flex from '../../Flex';\nimport { StyledFormControl } from '../../FormControl';\nimport type { FormControlProps } from '../../FormControl';\nimport DatePicker from '../Picker/DatePicker';\nimport type DateTimeProps from '../DateTime.types';\nimport type { DateTimeCallbackParameter } from '../DateTime.types';\nimport { getWeekInputTestIds } from '../DateTime.test-ids';\nimport HiddenText from '../../HiddenText';\n\nimport {\n parseToDate,\n getWeekYear,\n getWeek,\n generatePickerButtonAriaLabel,\n convertWeekYearToDate,\n buildRawWeekString\n} from './utils';\nimport StyledDateTime, {\n BareInput,\n StyledDatePickerDialog,\n StyledDialogContent,\n StyledInputButton,\n StyledInputContainer\n} from './DateTime.styles';\nimport usePickerButton from './usePickerButton';\nimport PartInput from './PartInput';\nimport useAutoFocusNextInput from './useAutoFocusNextInput';\nimport type { DateParts } from './DateTimeInput.types';\nimport { CALENDAR_TYPES, type CalendarType } from './local';\n\nregisterIcon(calendarIcon);\n\nexport interface WeekInputProps\n extends OmitStrict<FormControlProps, 'value' | 'defaultValue'>,\n DateTimeProps {}\n\ninterface WeekInputComponentProps extends WeekInputProps {\n ref?: Ref<HTMLFieldSetElement>;\n}\n\nexport const StyledWeekInput = styled(StyledDateTime)<WeekInputProps>(props => {\n const {\n theme: { base }\n } = props;\n\n return css`\n padding-inline-end: 0;\n\n ${StyledInputContainer} > ${BareInput}:first-of-type {\n margin-inline-start: ${base.spacing};\n }\n `;\n});\n\nStyledWeekInput.defaultProps = defaultThemeProp;\n\nconst convertToCallbackParameter = (\n date: Date,\n parts: DateParts<string | undefined>,\n calendarType?: CalendarType\n): DateTimeCallbackParameter => {\n if ([parts.week, parts.year].every(Boolean)) {\n const { year, month, day } = convertWeekYearToDate(parts, calendarType) ?? {};\n date.setUTCFullYear(Number(year), Number(month), Number(day));\n return {\n valueAsISOString: date.toISOString(),\n valueAsTimestamp: date.getTime()\n };\n }\n if ([parts.week, parts.year].every(p => !p)) {\n return {\n valueAsISOString: undefined,\n valueAsTimestamp: undefined\n };\n }\n return {\n valueAsISOString: buildRawWeekString(parts.week, parts.year),\n valueAsTimestamp: NaN,\n state: 'incomplete'\n };\n};\n\nconst WeekInput: ForwardRefForwardPropsComponent<WeekInputComponentProps> = forwardRef(\n function WeekInput(\n props: PropsWithoutRef<WeekInputComponentProps>,\n ref: Ref<HTMLFieldSetElement>\n ) {\n const {\n testId,\n value,\n min,\n max,\n id,\n label,\n labelHidden,\n status,\n info,\n required,\n readOnly,\n disabled,\n onChange,\n onFocus,\n onBlur,\n autoFocus,\n additionalInfo,\n className,\n ...restProps\n } = props;\n\n const testIds = useTestIds(testId, getWeekInputTestIds);\n\n const { locale } = useConfiguration();\n const t = useI18n();\n const containerRef = useConsolidatedRef(ref);\n const yearPartId = useUID();\n\n const date = value !== undefined ? parseToDate(value) : undefined;\n const [hasValue, setHasValue] = useState(!!date);\n\n // derive calendarType from locale\n // supporting only (mon=1/sun=7) as of now, support for rest of the days is captured in ENHANCEMENT-1906\n let calendarType: CalendarType = CALENDAR_TYPES.ISO_8601;\n if (locale?.includes('-fw-sun')) calendarType = CALENDAR_TYPES.US;\n else if (locale?.includes('-fw-mon')) calendarType = CALENDAR_TYPES.ISO_8601;\n\n const minYear = min !== undefined ? parseToDate(min).getUTCFullYear() : 1;\n const maxYear = max !== undefined ? parseToDate(max).getUTCFullYear() : 9999;\n\n const [weekInputRef, yearInputRef] = [\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null)\n ];\n\n const { description, descriptionID } = useAutoFocusNextInput([weekInputRef, yearInputRef]);\n\n const pickParts = (): DateParts<string | undefined> => {\n return {\n week: weekInputRef.current?.value || undefined,\n year: yearInputRef.current?.value || undefined\n };\n };\n\n const currentlySelectedDate = () => {\n const dateParts = convertWeekYearToDate(pickParts(), calendarType);\n if (dateParts) {\n const year = Number(dateParts.year);\n const month = Number(dateParts.month);\n const day = Number(dateParts.day);\n\n const current = date ?? new Date();\n return new Date(\n current.setUTCFullYear(\n year ?? current.getUTCFullYear(),\n month ?? current.getUTCMonth(),\n day ?? current.getUTCDate()\n )\n );\n }\n };\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 calendarType\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 [open, setOpen, , setPopoverRef, buttonEl, setButtonEl] = usePickerButton();\n\n const onInputChange = () => {\n onChange?.(\n convertToCallbackParameter(date ? new Date(date) : new Date(), pickParts(), calendarType)\n );\n buttonEl?.setAttribute(\n 'aria-label',\n generatePickerButtonAriaLabel(currentlySelectedDate(), 'week', locale, t, open)\n );\n if (weekInputRef.current?.value !== '' && yearInputRef.current?.value !== '') {\n setHasValue(true);\n } else {\n setHasValue(false);\n }\n };\n\n // autoclose picker on focusing out\n useOuterEvent('focusin', [containerRef], e => {\n const { relatedTarget } = e;\n if (\n !isTouchDevice &&\n isInstance(relatedTarget, Node) &&\n containerRef.current?.contains(relatedTarget)\n )\n setOpen(false);\n });\n\n const displayNames = new Intl.DisplayNames(locale, {\n style: 'long',\n type: 'dateTimeField'\n });\n\n const WeekNumberInput = (\n <PartInput\n data-testid={testIds.controlWeek}\n key='week'\n placeholder={t('week_placeholder')}\n aria-label={displayNames.of('weekOfYear')}\n value={date ? getWeek(date, calendarType, 'UTC') : undefined}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n min={1}\n max={53}\n readOnly={readOnly}\n ref={weekInputRef}\n autoFocus={autoFocus}\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 ? getWeekYear(date, calendarType, 'UTC') : undefined}\n onChange={onInputChange}\n size={4}\n maxLength={4}\n min={minYear}\n max={maxYear}\n readOnly={readOnly}\n ref={yearInputRef}\n />\n <HiddenText id={yearPartId}>{t('year_input_description')}</HiddenText>\n </Fragment>\n );\n\n useFocusWithin([containerRef], onFocusChange);\n\n const pickerContent = (\n <Flex container={{ direction: 'column' }} as={StyledDialogContent}>\n <DatePicker\n testId={testIds.picker}\n selected={currentlySelectedDate()}\n calendarType={calendarType}\n onChange={selected => {\n const weekInput = weekInputRef.current;\n const yearInput = yearInputRef.current;\n\n if (!weekInput || !yearInput) return;\n\n weekInput.value =\n (selected && getWeek(selected, calendarType, 'UTC').toString().padStart(2, '0')) ||\n '';\n yearInput.value =\n (selected && getWeekYear(selected, calendarType, 'UTC').toString()) || '';\n setOpen(false);\n setTimeout(() => buttonEl?.focus());\n onInputChange();\n }}\n min={min}\n max={max}\n mode='week'\n />\n </Flex>\n );\n\n const Picker = (\n <>\n <StyledInputButton\n data-testid={testIds.openClosePicker}\n variant='simple'\n icon\n ref={setButtonEl}\n onClick={() => setOpen(cur => !cur)}\n aria-label={generatePickerButtonAriaLabel(\n currentlySelectedDate(),\n 'week',\n locale,\n t,\n open\n )}\n readOnly={readOnly}\n disabled={disabled}\n >\n <Icon name='calendar' />\n </StyledInputButton>\n {isTouchDevice ? (\n <TouchDialog\n open={open}\n size='auto'\n ref={setPopoverRef}\n onMouseDown={(e: MouseEvent) => e.stopPropagation()}\n onDismiss={() => setOpen(false)}\n onAfterClose={() => buttonEl?.focus()}\n heading={typeof label === 'string' ? label : t('choose_week')}\n aria-label={t('choose_week')}\n >\n {pickerContent}\n </TouchDialog>\n ) : (\n open &&\n buttonEl && (\n <StyledDatePickerDialog\n ref={setPopoverRef}\n target={buttonEl}\n aria-label={t('choose_week')}\n >\n {pickerContent}\n </StyledDatePickerDialog>\n )\n )}\n </>\n );\n\n const Comp = (\n <Flex\n data-testid={label ? undefined : testIds.root}\n as={StyledWeekInput}\n forwardedAs={StyledFormControl}\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) weekInputRef.current?.focus();\n }}\n {...restProps}\n className={createClassName('week-input', className)}\n >\n <Flex\n ref={inputContainerRef}\n as={StyledInputContainer}\n container={{ alignItems: 'center', wrap: 'wrap' }}\n >\n {cap(displayNames.of('weekOfYear') ?? '')} {WeekNumberInput},{YearInput}\n </Flex>\n {!readOnly && (\n <Flex container>\n {hasValue && (\n <StyledInputButton\n data-testid={testIds.clearCurrentWeek}\n aria-label={t('clear_current_date')}\n icon\n onClick={() => {\n const weekInput = weekInputRef.current;\n const yearInput = yearInputRef.current;\n\n if (!weekInput || !yearInput) return;\n\n weekInput.value = '';\n yearInput.value = '';\n setTimeout(() => buttonEl?.focus());\n onInputChange();\n }}\n variant='simple'\n compact\n label={t('clear')}\n >\n <Icon name='times' />\n </StyledInputButton>\n )}\n {Picker}\n </Flex>\n )}\n </Flex>\n );\n\n return label ? (\n <>\n <FormField\n testId={testIds}\n as='fieldset'\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 additionalInfo={additionalInfo}\n aria-describedby={descriptionID}\n ref={ref}\n >\n {Comp}\n </FormField>\n {description}\n </>\n ) : (\n Comp\n );\n }\n);\n\nexport default withTestIds(WeekInput, getWeekInputTestIds);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/Calendar.styles.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU;;iKAoCrB,CAAC;AAIH,eAAO,MAAM,iBAAiB,+NAI7B,CAAC;AAIF,eAAO,MAAM,SAAS;;;aACX,OAAO;iBACH,OAAO;yBACC,OAAO;
|
|
1
|
+
{"version":3,"file":"Calendar.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/Calendar.styles.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU;;iKAoCrB,CAAC;AAIH,eAAO,MAAM,iBAAiB,+NAI7B,CAAC;AAIF,eAAO,MAAM,SAAS;;;aACX,OAAO;iBACH,OAAO;yBACC,OAAO;YA4C5B,CAAC;AAIH,eAAO,MAAM,eAAe;;mBAc1B,CAAC;AAIH,eAAO,MAAM,gBAAgB,+NAoC3B,CAAC;AAIH,eAAO,MAAM,cAAc,sOAoBzB,CAAC;AAIH,eAAO,MAAM,cAAc,sOA2CzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.styles.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/Calendar.styles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE;IAC/C,MAAM,EACJ,KAAK,EAAE,EACL,IAAI,EAAE,EACJ,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAC9B,OAAO,EACR,EACD,UAAU,EAAE,EACV,IAAI,EAAE,EAAE,UAAU,EAAE,EACpB,cAAc,EAAE,EAAE,kBAAkB,EAAE,UAAU,EAAE,EACnD,EACF,EACF,GAAG,KAAK,CAAC;IAEV,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7D,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3F,OAAO,GAAG,CAAA;;gCAEoB,YAAY;iBAC3B,OAAO;;;aAGX,UAAU;;;0BAGG,WAAW;eACtB,SAAS;;;;0BAIE,kBAAkB;;;GAGzC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,UAAU,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAA;;;;CAI3C,CAAC;AAEF,iBAAiB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAIxC,KAAK,CAAC,EAAE;IACT,MAAM,EACJ,KAAK,EAAE,EACL,IAAI,EAAE,EACJ,OAAO,EAAE,EAAE,WAAW,EAAE,EACxB,kBAAkB,EAAE,eAAe,EACpC,EACD,UAAU,EAAE,EACV,cAAc,EAAE,EAAE,kBAAkB,EAAE,UAAU,EAAE,EACnD,EACF,EACD,OAAO,EACP,WAAW,EACX,mBAAmB,EACpB,GAAG,KAAK,CAAC;IAEV,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;IAElE,OAAO,GAAG,CAAA;wBACY,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,aAAa;;aAE3D,UAAU
|
|
1
|
+
{"version":3,"file":"Calendar.styles.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/Calendar.styles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE;IAC/C,MAAM,EACJ,KAAK,EAAE,EACL,IAAI,EAAE,EACJ,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAC9B,OAAO,EACR,EACD,UAAU,EAAE,EACV,IAAI,EAAE,EAAE,UAAU,EAAE,EACpB,cAAc,EAAE,EAAE,kBAAkB,EAAE,UAAU,EAAE,EACnD,EACF,EACF,GAAG,KAAK,CAAC;IAEV,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7D,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3F,OAAO,GAAG,CAAA;;gCAEoB,YAAY;iBAC3B,OAAO;;;aAGX,UAAU;;;0BAGG,WAAW;eACtB,SAAS;;;;0BAIE,kBAAkB;;;GAGzC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,UAAU,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAA;;;;CAI3C,CAAC;AAEF,iBAAiB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAIxC,KAAK,CAAC,EAAE;IACT,MAAM,EACJ,KAAK,EAAE,EACL,IAAI,EAAE,EACJ,OAAO,EAAE,EAAE,WAAW,EAAE,EACxB,kBAAkB,EAAE,eAAe,EACpC,EACD,UAAU,EAAE,EACV,cAAc,EAAE,EAAE,kBAAkB,EAAE,UAAU,EAAE,EACnD,EACF,EACD,OAAO,EACP,WAAW,EACX,mBAAmB,EACpB,GAAG,KAAK,CAAC;IAEV,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;IAElE,OAAO,GAAG,CAAA;wBACY,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,aAAa;;aAE3D,UAAU;;;;;;;MAOjB,WAAW;QACb,GAAG,CAAA;;KAEF;;MAEC,mBAAmB;QACrB,GAAG,CAAA;iBACU,eAAe;KAC3B;;MAEC,OAAO;QACT,GAAG,CAAA;;KAEF;GACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,EAAE;IAC/D,MAAM,EACJ,KAAK,EAAE,EACL,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAC/B,EACF,GAAG,KAAK,CAAC;IAEV,OAAO,GAAG,CAAA;;;yBAGa,WAAW,CAAC,EAAE;2BACZ,OAAO;;GAE/B,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEhD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;IAClD,MAAM,EACJ,KAAK,EAAE,EACL,IAAI,EAAE,EACJ,WAAW,EACX,OAAO,EACP,kBAAkB,EAAE,eAAe,EACnC,OAAO,EAAE,EAAE,IAAI,EAAE,EACjB,UAAU,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,EAC5C,EACD,UAAU,EAAE,EACV,IAAI,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EACrC,EACF,EACF,GAAG,KAAK,CAAC;IAEV,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvF,OAAO,GAAG,CAAA;;;;wBAIY,UAAU;;eAEnB,eAAe;4BACF,OAAO;;yBAEV,WAAW,CAAC,EAAE;mBACpB,OAAO;2BACC,OAAO;;;;qBAIb,aAAa;;GAE/B,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,gBAAgB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEjD,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACjD,MAAM,EACJ,KAAK,EAAE,EACL,IAAI,EAAE,EAAE,OAAO,EAAE,EAClB,EACF,GAAG,KAAK,CAAC;IACV,OAAO,GAAG,CAAA;;;;;;;0BAOc,OAAO;;;MAG3B,UAAU;2BACW,OAAO;;GAE/B,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAE/C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACjD,MAAM,EACJ,KAAK,EAAE,EACL,IAAI,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,EACjD,EACF,GAAG,KAAK,CAAC;IACV,OAAO,GAAG,CAAA;;;;;;;;;;;0BAWc,OAAO;;;;;;;;QAQzB,SAAS;;;;;;;UAOP,gBAAgB;sCACY,YAAY,gBAAgB,YAAY;;;;UAIpE,gBAAgB;0CACgB,YAAY,gBAAgB,YAAY;;;;GAI/E,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,YAAY,GAAG,gBAAgB,CAAC","sourcesContent":["import styled, { css } from 'styled-components';\nimport { mix, rgba, transparentize } from 'polished';\n\nimport { defaultThemeProp } from '../../../theme';\nimport { tryCatch } from '../../../utils';\nimport Button from '../../Button';\nimport { readableColor } from '../../../styles';\n\nexport const StyledPick = styled(Button)(props => {\n const {\n theme: {\n base: {\n 'border-radius': borderRadius,\n palette: { interactive, dark },\n spacing\n },\n components: {\n card: { background },\n 'form-control': { 'foreground-color': foreground }\n }\n }\n } = props;\n\n const textColor = tryCatch(() => readableColor(interactive));\n const disabledBackground = tryCatch(() => transparentize(0.5, mix(0.8, background, dark)));\n\n return css`\n height: 2.625rem;\n border-radius: calc(0.5 * ${borderRadius});\n padding: 0 ${spacing};\n background-color: transparent;\n border-color: transparent;\n color: ${foreground};\n\n &[aria-selected]:enabled {\n background-color: ${interactive};\n color: ${textColor};\n }\n\n &:disabled {\n background-color: ${disabledBackground};\n border-radius: 0;\n }\n `;\n});\n\nStyledPick.defaultProps = defaultThemeProp;\n\nexport const StyledColumnLabel = styled.span`\n text-align: center;\n margin: 0 auto;\n font-size: 0.75rem;\n`;\n\nStyledColumnLabel.defaultProps = defaultThemeProp;\n\nexport const StyledDay = styled(StyledPick)<{\n current: boolean;\n highlighted: boolean;\n dayInNexOrPrevMonth: boolean;\n}>(props => {\n const {\n theme: {\n base: {\n palette: { interactive },\n 'disabled-opacity': disabledOpacity\n },\n components: {\n 'form-control': { 'foreground-color': foreground }\n }\n },\n current,\n highlighted,\n dayInNexOrPrevMonth\n } = props;\n\n const highlightedBgColor = tryCatch(() => rgba(interactive, 0.1));\n\n return css`\n background-color: ${highlighted ? highlightedBgColor : 'transparent'};\n border: transparent;\n color: ${foreground};\n\n &[aria-selected]:enabled {\n position: relative;\n z-index: 1;\n }\n\n ${highlighted &&\n css`\n border-radius: 0;\n `}\n\n ${dayInNexOrPrevMonth &&\n css`\n opacity: ${disabledOpacity};\n `}\n\n ${current &&\n css`\n font-weight: bold;\n `}\n `;\n});\n\nStyledDay.defaultProps = defaultThemeProp;\n\nexport const StyledWeekLabel = styled(StyledColumnLabel)(props => {\n const {\n theme: {\n base: { spacing, breakpoints }\n }\n } = props;\n\n return css`\n margin-inline-end: 0;\n\n @media (min-width: ${breakpoints.sm}) {\n margin-inline-end: ${spacing};\n }\n `;\n});\n\nStyledWeekLabel.defaultProps = defaultThemeProp;\n\nexport const StyledWeekNumber = styled.span(props => {\n const {\n theme: {\n base: {\n breakpoints,\n spacing,\n 'disabled-opacity': disabledOpacity,\n palette: { dark },\n 'hit-area': { 'finger-min': hitAreaFinger }\n },\n components: {\n card: { background: cardBackground }\n }\n }\n } = props;\n\n const background = tryCatch(() => transparentize(0.5, mix(0.8, cardBackground, dark)));\n\n return css`\n line-height: 2.625rem;\n padding: 0;\n margin-inline-end: 0;\n background-color: ${background};\n display: inline-block;\n opacity: ${disabledOpacity};\n width: calc(2ch + 2 * ${spacing});\n\n @media (min-width: ${breakpoints.sm}) {\n padding: 0 ${spacing};\n margin-inline-end: ${spacing};\n }\n\n @media (pointer: coarse) {\n line-height: ${hitAreaFinger};\n }\n `;\n});\n\nStyledWeekNumber.defaultProps = defaultThemeProp;\n\nexport const StyledWeekGrid = styled.table(props => {\n const {\n theme: {\n base: { spacing }\n }\n } = props;\n return css`\n table-layout: fixed;\n border-collapse: collapse;\n border-spacing: 0;\n\n thead {\n th {\n padding-bottom: ${spacing};\n }\n }\n ${StyledPick} {\n margin-inline-end: ${spacing};\n }\n `;\n});\n\nStyledWeekGrid.defaultProps = defaultThemeProp;\n\nexport const StyledCalendar = styled.table(props => {\n const {\n theme: {\n base: { 'border-radius': borderRadius, spacing }\n }\n } = props;\n return css`\n table-layout: fixed;\n border-collapse: collapse;\n border-spacing: 0;\n\n th {\n max-width: 2.625rem;\n }\n\n thead {\n th {\n padding-bottom: ${spacing};\n }\n }\n\n td {\n width: 2.625rem;\n max-width: 2.625rem;\n\n ${StyledDay} {\n width: 100%;\n }\n }\n\n tr {\n &:first-child {\n ${StyledWeekNumber} {\n border-radius: calc(0.5 * ${borderRadius}) calc(0.5 * ${borderRadius}) 0 0;\n }\n }\n &:last-child {\n ${StyledWeekNumber} {\n border-radius: 0 0 calc(0.5 * ${borderRadius}) calc(0.5 * ${borderRadius});\n }\n }\n }\n `;\n});\n\nStyledCalendar.defaultProps = defaultThemeProp;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/DatePicker.styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DatePicker.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/DatePicker.styles.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,eAAO,MAAM,iBAAiB,+OAwC5B,CAAC;AAIH,eAAO,MAAM,gBAAgB,6NAsB3B,CAAC;AAIH,eAAO,MAAM,2BAA2B;;iKAavC,CAAC;AAIF,eAAO,MAAM,0BAA0B;;6BAuCtC,CAAC"}
|
|
@@ -4,9 +4,10 @@ import Button, { StyledButton } from '../../Button';
|
|
|
4
4
|
import { StyledLabel } from '../../Label';
|
|
5
5
|
import { StyledFormField, StyledLabelRow } from '../../FormField/FormField';
|
|
6
6
|
import { StyledSelect } from '../../Select/Select';
|
|
7
|
+
import { StyledTouchDialog } from '../../Dialog/TouchDialog.styles';
|
|
7
8
|
import StyledDateTime from '../Input/DateTime.styles';
|
|
8
9
|
export const StyledMonthPicker = styled.fieldset(props => {
|
|
9
|
-
const { theme: { base: { spacing, 'border-radius': baseBorderRadius, palette: { 'foreground-color': color } }, components: { 'form-control': formControl } } } = props;
|
|
10
|
+
const { theme: { base: { spacing, 'font-size': fontSize, 'border-radius': baseBorderRadius, palette: { 'foreground-color': color } }, components: { 'form-control': formControl } } } = props;
|
|
10
11
|
return css `
|
|
11
12
|
margin-block-end: calc(2 * ${spacing});
|
|
12
13
|
margin-inline: calc(0.5 * ${spacing});
|
|
@@ -17,6 +18,16 @@ export const StyledMonthPicker = styled.fieldset(props => {
|
|
|
17
18
|
border-radius: calc(${baseBorderRadius} * ${formControl['border-radius']});
|
|
18
19
|
}
|
|
19
20
|
|
|
21
|
+
@media (pointer: coarse) {
|
|
22
|
+
${StyledTouchDialog} & {
|
|
23
|
+
margin-inline: 0;
|
|
24
|
+
|
|
25
|
+
${StyledSelect} {
|
|
26
|
+
font-size: calc(${fontSize} + (-0.25 * ${spacing}));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
20
31
|
${StyledButton} {
|
|
21
32
|
border-radius: calc(${baseBorderRadius} * ${formControl['border-radius']});
|
|
22
33
|
border: 0;
|
|
@@ -34,18 +45,32 @@ export const StyledDatePicker = styled.div(props => {
|
|
|
34
45
|
padding: ${spacing};
|
|
35
46
|
overflow-y: auto;
|
|
36
47
|
|
|
48
|
+
@media (pointer: coarse) {
|
|
49
|
+
${StyledTouchDialog} & {
|
|
50
|
+
padding: 0;
|
|
51
|
+
overflow: visible;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
37
55
|
${StyledFormField} {
|
|
38
56
|
padding-inline: calc(1.5 * ${spacing});
|
|
39
57
|
}
|
|
40
58
|
`;
|
|
41
59
|
});
|
|
42
60
|
StyledDatePicker.defaultProps = defaultThemeProp;
|
|
43
|
-
export const StyledMonthNavigationButton = styled(Button) `
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
61
|
+
export const StyledMonthNavigationButton = styled(Button)(({ theme: { base } }) => css `
|
|
62
|
+
& + & {
|
|
63
|
+
margin-inline-start: 0;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
@media (pointer: coarse) {
|
|
67
|
+
${StyledTouchDialog} & {
|
|
68
|
+
min-width: calc(5 * ${base.spacing});
|
|
69
|
+
width: calc(5 * ${base.spacing});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
`);
|
|
73
|
+
StyledMonthNavigationButton.defaultProps = defaultThemeProp;
|
|
49
74
|
export const StyledDatePickerMonthInput = styled(StyledDateTime) `
|
|
50
75
|
padding: 0;
|
|
51
76
|
border: 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.styles.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/DatePicker.styles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,cAAc,MAAM,0BAA0B,CAAC;AAGtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;IACvD,MAAM,EACJ,KAAK,EAAE,EACL,IAAI,EAAE,EACJ,OAAO,EACP,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,EACvC,EACD,UAAU,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,EAC5C,EACF,GAAG,KAAK,CAAC;IACV,OAAO,GAAG,CAAA;iCACqB,OAAO;gCACR,OAAO;;;;MAIjC,YAAY;4BACU,gBAAgB,MAAM,WAAW,CAAC,eAAe,CAAC;;;
|
|
1
|
+
{"version":3,"file":"DatePicker.styles.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/DatePicker.styles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,cAAc,MAAM,0BAA0B,CAAC;AAGtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;IACvD,MAAM,EACJ,KAAK,EAAE,EACL,IAAI,EAAE,EACJ,OAAO,EACP,WAAW,EAAE,QAAQ,EACrB,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,EACvC,EACD,UAAU,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,EAC5C,EACF,GAAG,KAAK,CAAC;IACV,OAAO,GAAG,CAAA;iCACqB,OAAO;gCACR,OAAO;;;;MAIjC,YAAY;4BACU,gBAAgB,MAAM,WAAW,CAAC,eAAe,CAAC;;;;QAItE,iBAAiB;;;UAGf,YAAY;4BACM,QAAQ,eAAe,OAAO;;;;;MAKpD,YAAY;4BACU,gBAAgB,MAAM,WAAW,CAAC,eAAe,CAAC;;;iBAG7D,KAAK;;;GAGnB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,iBAAiB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;IACjD,MAAM,EACJ,KAAK,EAAE,EACL,IAAI,EAAE,EAAE,OAAO,EAAE,EAClB,EACF,GAAG,KAAK,CAAC;IACV,OAAO,GAAG,CAAA;;eAEG,OAAO;;;;QAId,iBAAiB;;;;;;MAMnB,eAAe;mCACc,OAAO;;GAEvC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,gBAAgB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEjD,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,MAAM,CAAC,CACvD,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;;;;;;QAMtB,iBAAiB;8BACK,IAAI,CAAC,OAAO;0BAChB,IAAI,CAAC,OAAO;;;GAGnC,CACF,CAAC;AAEF,2BAA2B,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAE5D,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,cAAc,CAAC,CAAiB;;;;;;;;;;;IAW7E,eAAe;;;QAGX,WAAW,OAAO,cAAc,MAAM,WAAW;;;;;;;;;QASjD,YAAY;;;;sBAIE,YAAY;;;;;qBAKb,YAAY;;;;;;;CAOhC,CAAC;AAEF,0BAA0B,CAAC,YAAY,GAAG,gBAAgB,CAAC","sourcesContent":["import styled, { css } from 'styled-components';\n\nimport { defaultThemeProp } from '../../../theme';\nimport Button, { StyledButton } from '../../Button';\nimport { StyledLabel } from '../../Label';\nimport { StyledFormField, StyledLabelRow } from '../../FormField/FormField';\nimport { StyledSelect } from '../../Select/Select';\nimport { StyledTouchDialog } from '../../Dialog/TouchDialog.styles';\nimport StyledDateTime from '../Input/DateTime.styles';\nimport type { MonthInputProps } from '../Input/MonthInput';\n\nexport const StyledMonthPicker = styled.fieldset(props => {\n const {\n theme: {\n base: {\n spacing,\n 'font-size': fontSize,\n 'border-radius': baseBorderRadius,\n palette: { 'foreground-color': color }\n },\n components: { 'form-control': formControl }\n }\n } = props;\n return css`\n margin-block-end: calc(2 * ${spacing});\n margin-inline: calc(0.5 * ${spacing});\n font-size: 0.875rem;\n border: none;\n\n ${StyledSelect} {\n border-radius: calc(${baseBorderRadius} * ${formControl['border-radius']});\n }\n\n @media (pointer: coarse) {\n ${StyledTouchDialog} & {\n margin-inline: 0;\n\n ${StyledSelect} {\n font-size: calc(${fontSize} + (-0.25 * ${spacing}));\n }\n }\n }\n\n ${StyledButton} {\n border-radius: calc(${baseBorderRadius} * ${formControl['border-radius']});\n border: 0;\n &:enabled {\n color: ${color};\n }\n }\n `;\n});\n\nStyledMonthPicker.defaultProps = defaultThemeProp;\n\nexport const StyledDatePicker = styled.div(props => {\n const {\n theme: {\n base: { spacing }\n }\n } = props;\n return css`\n width: max-content;\n padding: ${spacing};\n overflow-y: auto;\n\n @media (pointer: coarse) {\n ${StyledTouchDialog} & {\n padding: 0;\n overflow: visible;\n }\n }\n\n ${StyledFormField} {\n padding-inline: calc(1.5 * ${spacing});\n }\n `;\n});\n\nStyledDatePicker.defaultProps = defaultThemeProp;\n\nexport const StyledMonthNavigationButton = styled(Button)(\n ({ theme: { base } }) => css`\n & + & {\n margin-inline-start: 0;\n }\n\n @media (pointer: coarse) {\n ${StyledTouchDialog} & {\n min-width: calc(5 * ${base.spacing});\n width: calc(5 * ${base.spacing});\n }\n }\n `\n);\n\nStyledMonthNavigationButton.defaultProps = defaultThemeProp;\n\nexport const StyledDatePickerMonthInput = styled(StyledDateTime)<MonthInputProps>`\n padding: 0;\n border: 0;\n height: max-content;\n background-color: transparent;\n\n &:focus-within:not([disabled]) {\n border-color: transparent;\n box-shadow: none;\n }\n\n ${StyledFormField} {\n padding-inline: 0;\n\n > ${StyledLabel}, > ${StyledLabelRow} > ${StyledLabel} {\n &::after {\n content: none;\n }\n }\n > :last-child {\n margin: 0;\n }\n\n > ${StyledSelect}:focus {\n z-index: 1;\n }\n\n &:first-child > ${StyledSelect} {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n\n &:last-child > ${StyledSelect} {\n width: max-content;\n margin-inline-start: -0.0625rem;\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n }\n`;\n\nStyledDatePickerMonthInput.defaultProps = defaultThemeProp;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/TimePicker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAK/C,OAAO,KAAK,EAAE,SAAS,EAAU,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/TimePicker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAK/C,OAAO,KAAK,EAAE,SAAS,EAAU,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAKlF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAKlD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,WAAW,eAAgB,SAAQ,SAAS,EAAE,UAAU;IAC5D;;;OAGG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,kDAAkD;IAClD,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,+CAA+C;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAsED,QAAA,MAAM,UAAU,EAAE,iBAAiB,CAAC,eAAe,GAAG,YAAY,CA2HjE,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -4,9 +4,10 @@ import styled, { css } from 'styled-components';
|
|
|
4
4
|
import { mix } from 'polished';
|
|
5
5
|
import { defaultThemeProp } from '../../../theme';
|
|
6
6
|
import Button from '../../Button';
|
|
7
|
+
import { StyledTouchDialog } from '../../Dialog/TouchDialog.styles';
|
|
7
8
|
import { useArrows, useConfiguration, useElement } from '../../../hooks';
|
|
8
9
|
import { is12HClockFormat } from '../Input/utils';
|
|
9
|
-
import { tryCatch } from '../../../utils';
|
|
10
|
+
import { isTouchDevice, tryCatch } from '../../../utils';
|
|
10
11
|
import { getIntlDateTimeFormatFromCache } from '../utils';
|
|
11
12
|
import { getIntervalGenerator } from './utils';
|
|
12
13
|
const StyledTimePicker = styled.ul `
|
|
@@ -14,6 +15,13 @@ const StyledTimePicker = styled.ul `
|
|
|
14
15
|
max-height: 10rem;
|
|
15
16
|
overflow: auto;
|
|
16
17
|
width: 100%;
|
|
18
|
+
|
|
19
|
+
@media (pointer: coarse) {
|
|
20
|
+
${StyledTouchDialog} & {
|
|
21
|
+
max-height: none;
|
|
22
|
+
overflow: visible;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
17
25
|
`;
|
|
18
26
|
StyledTimePicker.defaultProps = defaultThemeProp;
|
|
19
27
|
const StyledTimeButton = styled.button(({ theme: { base, components }, selected }) => {
|
|
@@ -92,7 +100,7 @@ const TimePicker = (props) => {
|
|
|
92
100
|
selector: 'button',
|
|
93
101
|
cycle: true,
|
|
94
102
|
dir: 'up-down',
|
|
95
|
-
allowTabFocus:
|
|
103
|
+
allowTabFocus: isTouchDevice
|
|
96
104
|
});
|
|
97
105
|
const renderTime = (text) => {
|
|
98
106
|
const parts = text.split(/:| /);
|