@pega/cosmos-react-core 10.0.0-build.7.0 → 10.0.0-build.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/AppShell/NavigationListItemWrapper.js +1 -1
- package/lib/components/AppShell/NavigationListItemWrapper.js.map +1 -1
- package/lib/components/DateTime/Input/DateInput.js +1 -1
- package/lib/components/DateTime/Input/DateInput.js.map +1 -1
- package/lib/components/DateTime/Input/DateTimeInput.js +1 -1
- package/lib/components/DateTime/Input/DateTimeInput.js.map +1 -1
- package/lib/components/DateTime/Input/TimeInput.js +1 -1
- package/lib/components/DateTime/Input/TimeInput.js.map +1 -1
- package/lib/components/DateTime/Input/WeekInput.js +1 -1
- package/lib/components/DateTime/Input/WeekInput.js.map +1 -1
- package/lib/components/Dialog/TouchDialog.d.ts +1 -1
- package/lib/components/Dialog/TouchDialog.d.ts.map +1 -1
- package/lib/components/Dialog/TouchDialog.js +18 -8
- package/lib/components/Dialog/TouchDialog.js.map +1 -1
- package/lib/components/Dialog/TouchDialog.styles.js +1 -1
- package/lib/components/Dialog/TouchDialog.styles.js.map +1 -1
- package/lib/components/Dialog/TouchDialog.types.d.ts +4 -2
- package/lib/components/Dialog/TouchDialog.types.d.ts.map +1 -1
- package/lib/components/Dialog/TouchDialog.types.js.map +1 -1
- package/lib/components/Dialog/TouchInfoDialog.d.ts.map +1 -1
- package/lib/components/Dialog/TouchInfoDialog.js +12 -5
- package/lib/components/Dialog/TouchInfoDialog.js.map +1 -1
- package/lib/components/ListToolbar/PresetMenuPopover.js +1 -1
- package/lib/components/ListToolbar/PresetMenuPopover.js.map +1 -1
- package/lib/components/MenuButton/MenuButton.d.ts.map +1 -1
- package/lib/components/MenuButton/MenuButton.js +19 -10
- package/lib/components/MenuButton/MenuButton.js.map +1 -1
- package/lib/theme/themes/aurigaDarkTheme.json +1 -0
- package/lib/theme/themes/aurigaTheme.json +2 -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 { 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 useDirection,\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 { rtl } = useDirection();\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 dir={rtl ? 'rtl' : 'ltr'}\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 dir='ltr'\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
|
+
{"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 { 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 useDirection,\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 { rtl } = useDirection();\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 dir={rtl ? 'rtl' : 'ltr'}\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 dir='ltr'\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"]}
|
|
@@ -4,7 +4,7 @@ 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
6
|
import { cap, createClassName, isInstance, isTouchDevice, withTestIds } from '../../../utils';
|
|
7
|
-
import
|
|
7
|
+
import TouchDialog from '../../Dialog/TouchDialog';
|
|
8
8
|
import FormField from '../../FormField';
|
|
9
9
|
import Icon, { registerIcon } from '../../Icon';
|
|
10
10
|
import * as calendarIcon from '../../Icon/icons/calendar.icon';
|
|
@@ -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 { 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
|
+
{"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,5 +1,5 @@
|
|
|
1
1
|
import type { ForwardRefForwardPropsComponent } from '../../types';
|
|
2
2
|
import type { TouchDialogProps } from './TouchDialog.types';
|
|
3
|
-
|
|
3
|
+
declare const TouchDialog: ForwardRefForwardPropsComponent<TouchDialogProps>;
|
|
4
4
|
export default TouchDialog;
|
|
5
5
|
//# sourceMappingURL=TouchDialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TouchDialog.d.ts","sourceRoot":"","sources":["../../../src/components/Dialog/TouchDialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TouchDialog.d.ts","sourceRoot":"","sources":["../../../src/components/Dialog/TouchDialog.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAkBnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAW5D,QAAA,MAAM,WAAW,EAAE,+BAA+B,CAAC,gBAAgB,CA6LlE,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef, useCallback, useEffect, useRef, useState } from 'react';
|
|
3
3
|
import { createPortal } from 'react-dom';
|
|
4
|
-
import { useConsolidatedRef, useConfiguration, useFocusTrap, useI18n, useTestIds, useEscape, useUID } from '../../hooks';
|
|
4
|
+
import { useConsolidatedRef, useConfiguration, useFocusTrap, useI18n, useTestIds, useEscape, useUID, useEvent } from '../../hooks';
|
|
5
5
|
import Button from '../Button';
|
|
6
6
|
import Icon, { registerIcon } from '../Icon';
|
|
7
7
|
import Text from '../Text';
|
|
@@ -20,11 +20,13 @@ const drawerSizeMapping = {
|
|
|
20
20
|
half: '50dvh',
|
|
21
21
|
full: '90dvh'
|
|
22
22
|
};
|
|
23
|
-
|
|
23
|
+
const TouchDialog = forwardRef(function TouchDialog({ open, onDismiss: onDismissProp, children, size = 'half', onBeforeOpen, onAfterOpen: onAfterOpenProp, onBeforeClose, onAfterClose, heading, 'aria-label': ariaLabel, progress: progressProp, testId, ...restProps }, ref) {
|
|
24
24
|
const dialogRef = useConsolidatedRef(ref);
|
|
25
|
+
const backdropRef = useRef(null);
|
|
25
26
|
const t = useI18n();
|
|
26
27
|
const { portalTarget } = useConfiguration();
|
|
27
28
|
const headingRef = useRef(null);
|
|
29
|
+
const headingWrapperRef = useRef(null);
|
|
28
30
|
const [drawerSize, setDrawerSize] = useState(size);
|
|
29
31
|
const headingId = useUID();
|
|
30
32
|
const testIds = useTestIds(testId, getTouchDialogTestIds);
|
|
@@ -38,13 +40,16 @@ export const TouchDialog = forwardRef(function TouchDialog({ open, onDismiss: on
|
|
|
38
40
|
const setFocus = useCallback(() => {
|
|
39
41
|
if (progressProp || !drawerOpen || dialogRef.current?.contains(getActiveElement()))
|
|
40
42
|
return;
|
|
41
|
-
if (
|
|
42
|
-
focusNonInteractiveElement(
|
|
43
|
+
if (headingWrapperRef.current) {
|
|
44
|
+
focusNonInteractiveElement(headingWrapperRef.current.querySelector('h2') ?? headingWrapperRef.current, ariaLabel);
|
|
45
|
+
}
|
|
46
|
+
else if (headingRef.current) {
|
|
47
|
+
focusNonInteractiveElement(headingRef.current, ariaLabel);
|
|
43
48
|
}
|
|
44
49
|
else if (dialogRef.current) {
|
|
45
|
-
focusNonInteractiveElement(dialogRef.current,
|
|
50
|
+
focusNonInteractiveElement(dialogRef.current, ariaLabel);
|
|
46
51
|
}
|
|
47
|
-
}, [progressProp, drawerOpen, heading]);
|
|
52
|
+
}, [progressProp, drawerOpen, heading, ariaLabel]);
|
|
48
53
|
const onDismiss = useCallback(() => {
|
|
49
54
|
setDrawerOpen(false);
|
|
50
55
|
onDismissProp?.();
|
|
@@ -65,7 +70,12 @@ export const TouchDialog = forwardRef(function TouchDialog({ open, onDismiss: on
|
|
|
65
70
|
}, dialogRef, [onDismiss]);
|
|
66
71
|
const progress = (_jsx(Progress, { visible: !!progressProp, focusOnVisible: true, placement: 'local', message: typeof progressProp === 'string' ? progressProp : undefined }));
|
|
67
72
|
const dismissButton = (_jsx(Button, { "data-testid": testIds.dismiss, variant: 'simple', icon: true, label: t('dismiss'), onClick: onDismiss, children: _jsx(Icon, { name: 'times' }) }));
|
|
68
|
-
|
|
73
|
+
useEvent('click', e => {
|
|
74
|
+
if (open && e.target === backdropRef.current) {
|
|
75
|
+
onDismiss();
|
|
76
|
+
}
|
|
77
|
+
}, { target: backdropRef.current, dependencies: [onDismiss, open] });
|
|
78
|
+
const content = (_jsx(Backdrop, { ref: backdropRef, open: open, onBeforeTransitionIn: () => {
|
|
69
79
|
setDrawerOpen(true);
|
|
70
80
|
returnRef.current = getActiveElement();
|
|
71
81
|
onBeforeOpen?.();
|
|
@@ -78,7 +88,7 @@ export const TouchDialog = forwardRef(function TouchDialog({ open, onDismiss: on
|
|
|
78
88
|
returnRef.current.focus();
|
|
79
89
|
}
|
|
80
90
|
onAfterClose?.();
|
|
81
|
-
}, children: _jsxs(StyledTouchDialog, { "data-testid": testIds.root, ...restProps, ref: dialogRef, open: drawerOpen, placement: 'bottom', position: 'fixed', size: drawerSizeMapping[drawerSize], shadow: true, onAfterOpen: onAfterOpen, onBeforeClose: onBeforeClose,
|
|
91
|
+
}, children: _jsxs(StyledTouchDialog, { "data-testid": testIds.root, "aria-labelledby": heading ? headingId : undefined, "aria-label": ariaLabel, ...restProps, ref: dialogRef, open: drawerOpen, placement: 'bottom', position: 'fixed', size: drawerSizeMapping[drawerSize], shadow: true, onAfterOpen: onAfterOpen, onBeforeClose: onBeforeClose, role: 'dialog', "aria-modal": 'true', "aria-busy": !!progressProp, children: [_jsxs(Flex, { container: { direction: 'row', justify: 'between', alignItems: 'center' }, as: StyledTouchDialogHeader, children: [typeof heading === 'string' ? (_jsx(Text, { variant: 'h2', ref: headingRef, id: headingId, children: heading })) : (heading && (_jsx(Flex, { item: { grow: 1 }, ref: headingWrapperRef, id: headingId, children: heading }))), dismissButton] }), _jsxs(Flex, { as: StyledTouchDialogContent, container: { gap: 1, direction: 'column' }, children: [children && (_jsx(StyledChildrenWrap, { inert: progressProp ? '' : undefined, children: children })), progress] }), !isAutoSize && (_jsx(StyledExpandCollapse, { onToggle: () => setDrawerSize(prev => (prev === 'half' ? 'full' : 'half')), expanded: drawerSize === 'full', compact: true, iconOnly: true }))] }) }));
|
|
82
92
|
return portalTarget ? createPortal(content, portalTarget) : content;
|
|
83
93
|
});
|
|
84
94
|
export default TouchDialog;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TouchDialog.js","sourceRoot":"","sources":["../../../src/components/Dialog/TouchDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useCallback, useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport type { PropsWithoutRef } from 'react';\n\nimport {\n useConsolidatedRef,\n useConfiguration,\n useFocusTrap,\n useI18n,\n useTestIds,\n useEscape,\n useUID\n} from '../../hooks';\nimport type { ForwardRefForwardPropsComponent } from '../../types';\nimport Button from '../Button';\nimport Icon, { registerIcon } from '../Icon';\nimport Text from '../Text';\nimport * as caretUp from '../Icon/icons/caret-up.icon';\nimport * as timesIcon from '../Icon/icons/times.icon';\nimport Flex from '../Flex';\nimport Backdrop from '../Backdrop';\nimport { focusNonInteractiveElement, getActiveElement, isInstance } from '../../utils';\nimport Progress from '../Progress';\n\nimport {\n StyledTouchDialogContent,\n StyledTouchDialogHeader,\n StyledTouchDialog,\n StyledExpandCollapse\n} from './TouchDialog.styles';\nimport { getTouchDialogTestIds } from './TouchDialog.test-ids';\nimport type { TouchDialogProps } from './TouchDialog.types';\nimport { StyledChildrenWrap } from './Dialog.styles';\n\nregisterIcon(caretUp, timesIcon);\n\nconst drawerSizeMapping = {\n auto: 'auto',\n half: '50dvh',\n full: '90dvh'\n} as const;\n\nexport const TouchDialog: ForwardRefForwardPropsComponent<TouchDialogProps> = forwardRef(\n function TouchDialog(\n {\n open,\n onDismiss: onDismissProp,\n children,\n size = 'half',\n onBeforeOpen,\n onAfterOpen: onAfterOpenProp,\n onBeforeClose,\n onAfterClose,\n heading,\n progress: progressProp,\n testId,\n ...restProps\n }: PropsWithoutRef<TouchDialogProps>,\n ref: TouchDialogProps['ref']\n ) {\n const dialogRef = useConsolidatedRef(ref);\n const t = useI18n();\n const { portalTarget } = useConfiguration();\n const headingRef = useRef<HTMLHeadingElement>(null);\n const [drawerSize, setDrawerSize] = useState(size);\n const headingId = useUID();\n const testIds = useTestIds(testId, getTouchDialogTestIds);\n const [drawerOpen, setDrawerOpen] = useState(false);\n const returnRef = useRef<Element | null>(null);\n\n useEffect(() => {\n setDrawerSize(size);\n }, [size]);\n\n const isAutoSize = size === 'auto';\n\n useFocusTrap(open && drawerOpen ? dialogRef : null, false, [open, drawerOpen]);\n\n const setFocus = useCallback(() => {\n if (progressProp || !drawerOpen || dialogRef.current?.contains(getActiveElement())) return;\n if (headingRef.current) {\n focusNonInteractiveElement(headingRef.current, heading);\n } else if (dialogRef.current) {\n focusNonInteractiveElement(dialogRef.current, heading);\n }\n }, [progressProp, drawerOpen, heading]);\n\n const onDismiss = useCallback(() => {\n setDrawerOpen(false);\n onDismissProp?.();\n }, [onDismissProp]);\n\n const onAfterOpen = useCallback(() => {\n onAfterOpenProp?.();\n setFocus();\n }, [onAfterOpenProp, setFocus]);\n\n useEffect(() => {\n if (!progressProp) {\n // Delay focus to the next tick to allow progress to unmount so setFocus do not bail out\n setTimeout(setFocus, 0);\n }\n }, [progressProp, setFocus]);\n\n useEscape(\n e => {\n onDismiss?.();\n e.stopPropagation();\n },\n dialogRef,\n [onDismiss]\n );\n\n const progress = (\n <Progress\n visible={!!progressProp}\n focusOnVisible\n placement='local'\n message={typeof progressProp === 'string' ? progressProp : undefined}\n />\n );\n\n const dismissButton = (\n <Button\n data-testid={testIds.dismiss}\n variant='simple'\n icon\n label={t('dismiss')}\n onClick={onDismiss}\n >\n <Icon name='times' />\n </Button>\n );\n\n const content = (\n <Backdrop\n open={open}\n onBeforeTransitionIn={() => {\n setDrawerOpen(true);\n returnRef.current = getActiveElement();\n onBeforeOpen?.();\n }}\n onBeforeTransitionOut={() => {\n setDrawerOpen(false);\n setDrawerSize(size);\n }}\n onAfterTransitionOut={() => {\n if (\n isInstance(returnRef.current, HTMLElement) &&\n dialogRef.current?.contains(getActiveElement())\n ) {\n returnRef.current.focus();\n }\n onAfterClose?.();\n }}\n >\n <StyledTouchDialog\n data-testid={testIds.root}\n {...restProps}\n ref={dialogRef}\n open={drawerOpen}\n placement='bottom'\n position='fixed'\n size={drawerSizeMapping[drawerSize]}\n shadow\n onAfterOpen={onAfterOpen}\n onBeforeClose={onBeforeClose}\n onOuterClick={onDismiss}\n role='dialog'\n aria-modal='true'\n aria-labelledby={heading ? headingId : undefined}\n aria-busy={!!progressProp}\n >\n <Flex\n container={{ direction: 'row', justify: 'between', alignItems: 'center' }}\n as={StyledTouchDialogHeader}\n >\n {heading && (\n <Text variant='h2' ref={headingRef} id={headingId}>\n {heading}\n </Text>\n )}\n {dismissButton}\n </Flex>\n <Flex as={StyledTouchDialogContent} container={{ gap: 1, direction: 'column' }}>\n {children && (\n <StyledChildrenWrap inert={progressProp ? '' : undefined}>\n {children}\n </StyledChildrenWrap>\n )}\n {progress}\n </Flex>\n {!isAutoSize && (\n <StyledExpandCollapse\n onToggle={() => setDrawerSize(prev => (prev === 'half' ? 'full' : 'half'))}\n expanded={drawerSize === 'full'}\n compact\n iconOnly\n />\n )}\n </StyledTouchDialog>\n </Backdrop>\n );\n\n return portalTarget ? createPortal(content, portalTarget) : content;\n }\n);\n\nexport default TouchDialog;\n"]}
|
|
1
|
+
{"version":3,"file":"TouchDialog.js","sourceRoot":"","sources":["../../../src/components/Dialog/TouchDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,UAAU,EACV,SAAS,EACT,MAAM,EACN,QAAQ,EACT,MAAM,aAAa,CAAC;AAErB,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAC;AACvD,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,QAAQ,MAAM,aAAa,CAAC;AAEnC,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAEjC,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;CACL,CAAC;AAEX,MAAM,WAAW,GAAsD,UAAU,CAC/E,SAAS,WAAW,CAClB,EACE,IAAI,EACJ,SAAS,EAAE,aAAa,EACxB,QAAQ,EACR,IAAI,GAAG,MAAM,EACb,YAAY,EACZ,WAAW,EAAE,eAAe,EAC5B,aAAa,EACb,YAAY,EACZ,OAAO,EACP,YAAY,EAAE,SAAS,EACvB,QAAQ,EAAE,YAAY,EACtB,MAAM,EACN,GAAG,SAAS,EACsB,EACpC,GAA4B;IAE5B,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,YAAY,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IACpD,MAAM,iBAAiB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC1D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAE/C,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,UAAU,GAAG,IAAI,KAAK,MAAM,CAAC;IAEnC,YAAY,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAE/E,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,IAAI,YAAY,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAAE,OAAO;QAC3F,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC9B,0BAA0B,CACxB,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAC1E,SAAS,CACV,CAAC;QACJ,CAAC;aAAM,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YAC9B,0BAA0B,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YAC7B,0BAA0B,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAEnD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,aAAa,EAAE,EAAE,CAAC;IACpB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,eAAe,EAAE,EAAE,CAAC;QACpB,QAAQ,EAAE,CAAC;IACb,CAAC,EAAE,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEhC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,wFAAwF;YACxF,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE7B,SAAS,CACP,CAAC,CAAC,EAAE;QACF,SAAS,EAAE,EAAE,CAAC;QACd,CAAC,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC,EACD,SAAS,EACT,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,QAAQ,GAAG,CACf,KAAC,QAAQ,IACP,OAAO,EAAE,CAAC,CAAC,YAAY,EACvB,cAAc,QACd,SAAS,EAAC,OAAO,EACjB,OAAO,EAAE,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,GACpE,CACH,CAAC;IAEF,MAAM,aAAa,GAAG,CACpB,KAAC,MAAM,mBACQ,OAAO,CAAC,OAAO,EAC5B,OAAO,EAAC,QAAQ,EAChB,IAAI,QACJ,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,EACnB,OAAO,EAAE,SAAS,YAElB,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,GAAG,GACd,CACV,CAAC;IAEF,QAAQ,CACN,OAAO,EACP,CAAC,CAAC,EAAE;QACF,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC;YAC7C,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC,EACD,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CACjE,CAAC;IAEF,MAAM,OAAO,GAAG,CACd,KAAC,QAAQ,IACP,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,IAAI,EACV,oBAAoB,EAAE,GAAG,EAAE;YACzB,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,SAAS,CAAC,OAAO,GAAG,gBAAgB,EAAE,CAAC;YACvC,YAAY,EAAE,EAAE,CAAC;QACnB,CAAC,EACD,qBAAqB,EAAE,GAAG,EAAE;YAC1B,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,aAAa,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,EACD,oBAAoB,EAAE,GAAG,EAAE;YACzB,IACE,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;gBAC1C,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,EAC/C,CAAC;gBACD,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5B,CAAC;YACD,YAAY,EAAE,EAAE,CAAC;QACnB,CAAC,YAED,MAAC,iBAAiB,mBACH,OAAO,CAAC,IAAI,qBACR,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,gBACpC,SAAS,KACjB,SAAS,EACb,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,UAAU,EAChB,SAAS,EAAC,QAAQ,EAClB,QAAQ,EAAC,OAAO,EAChB,IAAI,EAAE,iBAAiB,CAAC,UAAU,CAAC,EACnC,MAAM,QACN,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAC,QAAQ,gBACF,MAAM,eACN,CAAC,CAAC,YAAY,aAEzB,MAAC,IAAI,IACH,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,EACzE,EAAE,EAAE,uBAAuB,aAE1B,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC7B,KAAC,IAAI,IAAC,OAAO,EAAC,IAAI,EAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,YAC9C,OAAO,GACH,CACR,CAAC,CAAC,CAAC,CACF,OAAO,IAAI,CACT,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE,SAAS,YAC3D,OAAO,GACH,CACR,CACF,EACA,aAAa,IACT,EACP,MAAC,IAAI,IAAC,EAAE,EAAE,wBAAwB,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,aAC3E,QAAQ,IAAI,CACX,KAAC,kBAAkB,IAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,YACrD,QAAQ,GACU,CACtB,EACA,QAAQ,IACJ,EACN,CAAC,UAAU,IAAI,CACd,KAAC,oBAAoB,IACnB,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAC1E,QAAQ,EAAE,UAAU,KAAK,MAAM,EAC/B,OAAO,QACP,QAAQ,SACR,CACH,IACiB,GACX,CACZ,CAAC;IAEF,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACtE,CAAC,CACF,CAAC;AAEF,eAAe,WAAW,CAAC","sourcesContent":["import { forwardRef, useCallback, useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport type { PropsWithoutRef } from 'react';\n\nimport {\n useConsolidatedRef,\n useConfiguration,\n useFocusTrap,\n useI18n,\n useTestIds,\n useEscape,\n useUID,\n useEvent\n} from '../../hooks';\nimport type { ForwardRefForwardPropsComponent } from '../../types';\nimport Button from '../Button';\nimport Icon, { registerIcon } from '../Icon';\nimport Text from '../Text';\nimport * as caretUp from '../Icon/icons/caret-up.icon';\nimport * as timesIcon from '../Icon/icons/times.icon';\nimport Flex from '../Flex';\nimport Backdrop from '../Backdrop';\nimport { focusNonInteractiveElement, getActiveElement, isInstance } from '../../utils';\nimport Progress from '../Progress';\n\nimport {\n StyledTouchDialogContent,\n StyledTouchDialogHeader,\n StyledTouchDialog,\n StyledExpandCollapse\n} from './TouchDialog.styles';\nimport { getTouchDialogTestIds } from './TouchDialog.test-ids';\nimport type { TouchDialogProps } from './TouchDialog.types';\nimport { StyledChildrenWrap } from './Dialog.styles';\n\nregisterIcon(caretUp, timesIcon);\n\nconst drawerSizeMapping = {\n auto: 'auto',\n half: '50dvh',\n full: '90dvh'\n} as const;\n\nconst TouchDialog: ForwardRefForwardPropsComponent<TouchDialogProps> = forwardRef(\n function TouchDialog(\n {\n open,\n onDismiss: onDismissProp,\n children,\n size = 'half',\n onBeforeOpen,\n onAfterOpen: onAfterOpenProp,\n onBeforeClose,\n onAfterClose,\n heading,\n 'aria-label': ariaLabel,\n progress: progressProp,\n testId,\n ...restProps\n }: PropsWithoutRef<TouchDialogProps>,\n ref: TouchDialogProps['ref']\n ) {\n const dialogRef = useConsolidatedRef(ref);\n const backdropRef = useRef<HTMLDivElement>(null);\n const t = useI18n();\n const { portalTarget } = useConfiguration();\n const headingRef = useRef<HTMLHeadingElement>(null);\n const headingWrapperRef = useRef<HTMLDivElement>(null);\n const [drawerSize, setDrawerSize] = useState(size);\n const headingId = useUID();\n const testIds = useTestIds(testId, getTouchDialogTestIds);\n const [drawerOpen, setDrawerOpen] = useState(false);\n const returnRef = useRef<Element | null>(null);\n\n useEffect(() => {\n setDrawerSize(size);\n }, [size]);\n\n const isAutoSize = size === 'auto';\n\n useFocusTrap(open && drawerOpen ? dialogRef : null, false, [open, drawerOpen]);\n\n const setFocus = useCallback(() => {\n if (progressProp || !drawerOpen || dialogRef.current?.contains(getActiveElement())) return;\n if (headingWrapperRef.current) {\n focusNonInteractiveElement(\n headingWrapperRef.current.querySelector('h2') ?? headingWrapperRef.current,\n ariaLabel\n );\n } else if (headingRef.current) {\n focusNonInteractiveElement(headingRef.current, ariaLabel);\n } else if (dialogRef.current) {\n focusNonInteractiveElement(dialogRef.current, ariaLabel);\n }\n }, [progressProp, drawerOpen, heading, ariaLabel]);\n\n const onDismiss = useCallback(() => {\n setDrawerOpen(false);\n onDismissProp?.();\n }, [onDismissProp]);\n\n const onAfterOpen = useCallback(() => {\n onAfterOpenProp?.();\n setFocus();\n }, [onAfterOpenProp, setFocus]);\n\n useEffect(() => {\n if (!progressProp) {\n // Delay focus to the next tick to allow progress to unmount so setFocus do not bail out\n setTimeout(setFocus, 0);\n }\n }, [progressProp, setFocus]);\n\n useEscape(\n e => {\n onDismiss?.();\n e.stopPropagation();\n },\n dialogRef,\n [onDismiss]\n );\n\n const progress = (\n <Progress\n visible={!!progressProp}\n focusOnVisible\n placement='local'\n message={typeof progressProp === 'string' ? progressProp : undefined}\n />\n );\n\n const dismissButton = (\n <Button\n data-testid={testIds.dismiss}\n variant='simple'\n icon\n label={t('dismiss')}\n onClick={onDismiss}\n >\n <Icon name='times' />\n </Button>\n );\n\n useEvent(\n 'click',\n e => {\n if (open && e.target === backdropRef.current) {\n onDismiss();\n }\n },\n { target: backdropRef.current, dependencies: [onDismiss, open] }\n );\n\n const content = (\n <Backdrop\n ref={backdropRef}\n open={open}\n onBeforeTransitionIn={() => {\n setDrawerOpen(true);\n returnRef.current = getActiveElement();\n onBeforeOpen?.();\n }}\n onBeforeTransitionOut={() => {\n setDrawerOpen(false);\n setDrawerSize(size);\n }}\n onAfterTransitionOut={() => {\n if (\n isInstance(returnRef.current, HTMLElement) &&\n dialogRef.current?.contains(getActiveElement())\n ) {\n returnRef.current.focus();\n }\n onAfterClose?.();\n }}\n >\n <StyledTouchDialog\n data-testid={testIds.root}\n aria-labelledby={heading ? headingId : undefined}\n aria-label={ariaLabel}\n {...restProps}\n ref={dialogRef}\n open={drawerOpen}\n placement='bottom'\n position='fixed'\n size={drawerSizeMapping[drawerSize]}\n shadow\n onAfterOpen={onAfterOpen}\n onBeforeClose={onBeforeClose}\n role='dialog'\n aria-modal='true'\n aria-busy={!!progressProp}\n >\n <Flex\n container={{ direction: 'row', justify: 'between', alignItems: 'center' }}\n as={StyledTouchDialogHeader}\n >\n {typeof heading === 'string' ? (\n <Text variant='h2' ref={headingRef} id={headingId}>\n {heading}\n </Text>\n ) : (\n heading && (\n <Flex item={{ grow: 1 }} ref={headingWrapperRef} id={headingId}>\n {heading}\n </Flex>\n )\n )}\n {dismissButton}\n </Flex>\n <Flex as={StyledTouchDialogContent} container={{ gap: 1, direction: 'column' }}>\n {children && (\n <StyledChildrenWrap inert={progressProp ? '' : undefined}>\n {children}\n </StyledChildrenWrap>\n )}\n {progress}\n </Flex>\n {!isAutoSize && (\n <StyledExpandCollapse\n onToggle={() => setDrawerSize(prev => (prev === 'half' ? 'full' : 'half'))}\n expanded={drawerSize === 'full'}\n compact\n iconOnly\n />\n )}\n </StyledTouchDialog>\n </Backdrop>\n );\n\n return portalTarget ? createPortal(content, portalTarget) : content;\n }\n);\n\nexport default TouchDialog;\n"]}
|
|
@@ -19,7 +19,7 @@ export const StyledTouchDialog = styled(Drawer)(({ theme: { base, components } }
|
|
|
19
19
|
display: flex;
|
|
20
20
|
flex-direction: column;
|
|
21
21
|
background: ${components.popover.background};
|
|
22
|
-
inset-block-end: calc(${base.spacing} * 0.5
|
|
22
|
+
inset-block-end: calc(${base.spacing} * 0.5);
|
|
23
23
|
inset-inline: calc(${base.spacing} * 0.5);
|
|
24
24
|
max-height: 90dvh;
|
|
25
25
|
border-radius: ${components.card['border-radius']};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TouchDialog.styles.js","sourceRoot":"","sources":["../../../src/components/Dialog/TouchDialog.styles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAA;;;;;6BAKnC,UAAU;;;CAGtC,CAAC;AAEF,oBAAoB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAErD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,CAC7C,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;;;kBAGxB,UAAU,CAAC,OAAO,CAAC,UAAU;4BACnB,IAAI,CAAC,OAAO;yBACf,IAAI,CAAC,OAAO;;qBAEhB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;;;;;;;;;YASzC,oBAAoB;6BACH,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO;;GAElD,CACF,CAAC;AAEF,iBAAiB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAC/C,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;sBACR,IAAI,CAAC,OAAO;2BACP,IAAI,CAAC,OAAO;;MAEjC,YAAY;;;GAGf,CACF,CAAC;AAEF,uBAAuB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAExD,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAChD,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;;;;;gCAKE,IAAI,CAAC,OAAO;;MAEtC,kBAAkB;;;;wBAIA,IAAI,CAAC,OAAO;;GAEjC,CACF,CAAC;AAEF,wBAAwB,CAAC,YAAY,GAAG,gBAAgB,CAAC","sourcesContent":["import styled, { css } from 'styled-components';\n\nimport { defaultThemeProp } from '../../theme';\nimport { StyledButton } from '../Button';\nimport Drawer from '../Drawer';\nimport { ExpandCollapseButton } from '../ExpandCollapse';\nimport { StyledIcon } from '../Icon';\n\nimport { StyledChildrenWrap } from './Dialog.styles';\n\nexport const StyledExpandCollapse = styled(ExpandCollapseButton)`\n position: absolute;\n inset-block-start: 0;\n width: 100%;\n\n &[aria-expanded='false'] ${StyledIcon} {\n transform: rotate(-90deg);\n }\n`;\n\nStyledExpandCollapse.defaultProps = defaultThemeProp;\n\nexport const StyledTouchDialog = styled(Drawer)(\n ({ theme: { base, components } }) => css`\n display: flex;\n flex-direction: column;\n background: ${components.popover.background};\n inset-block-end: calc(${base.spacing} * 0.5
|
|
1
|
+
{"version":3,"file":"TouchDialog.styles.js","sourceRoot":"","sources":["../../../src/components/Dialog/TouchDialog.styles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAA;;;;;6BAKnC,UAAU;;;CAGtC,CAAC;AAEF,oBAAoB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAErD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,CAC7C,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;;;kBAGxB,UAAU,CAAC,OAAO,CAAC,UAAU;4BACnB,IAAI,CAAC,OAAO;yBACf,IAAI,CAAC,OAAO;;qBAEhB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;;;;;;;;;YASzC,oBAAoB;6BACH,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO;;GAElD,CACF,CAAC;AAEF,iBAAiB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAC/C,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;sBACR,IAAI,CAAC,OAAO;2BACP,IAAI,CAAC,OAAO;;MAEjC,YAAY;;;GAGf,CACF,CAAC;AAEF,uBAAuB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAExD,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAChD,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;;;;;gCAKE,IAAI,CAAC,OAAO;;MAEtC,kBAAkB;;;;wBAIA,IAAI,CAAC,OAAO;;GAEjC,CACF,CAAC;AAEF,wBAAwB,CAAC,YAAY,GAAG,gBAAgB,CAAC","sourcesContent":["import styled, { css } from 'styled-components';\n\nimport { defaultThemeProp } from '../../theme';\nimport { StyledButton } from '../Button';\nimport Drawer from '../Drawer';\nimport { ExpandCollapseButton } from '../ExpandCollapse';\nimport { StyledIcon } from '../Icon';\n\nimport { StyledChildrenWrap } from './Dialog.styles';\n\nexport const StyledExpandCollapse = styled(ExpandCollapseButton)`\n position: absolute;\n inset-block-start: 0;\n width: 100%;\n\n &[aria-expanded='false'] ${StyledIcon} {\n transform: rotate(-90deg);\n }\n`;\n\nStyledExpandCollapse.defaultProps = defaultThemeProp;\n\nexport const StyledTouchDialog = styled(Drawer)(\n ({ theme: { base, components } }) => css`\n display: flex;\n flex-direction: column;\n background: ${components.popover.background};\n inset-block-end: calc(${base.spacing} * 0.5);\n inset-inline: calc(${base.spacing} * 0.5);\n max-height: 90dvh;\n border-radius: ${components.card['border-radius']};\n width: auto;\n transition-property: transform, box-shadow, opacity, height;\n\n @media (height < 31.25rem) {\n overflow-y: auto;\n display: block;\n }\n\n &:has(${StyledExpandCollapse}) {\n padding-block-start: ${base['hit-area'].compact};\n }\n `\n);\n\nStyledTouchDialog.defaultProps = defaultThemeProp;\n\nexport const StyledTouchDialogHeader = styled.div(\n ({ theme: { base } }) => css`\n padding-inline: ${base.spacing};\n padding-block-start: ${base.spacing};\n\n ${StyledButton} {\n margin-inline-start: auto;\n }\n `\n);\n\nStyledTouchDialogHeader.defaultProps = defaultThemeProp;\n\nexport const StyledTouchDialogContent = styled.div(\n ({ theme: { base } }) => css`\n min-height: 0;\n overflow: auto;\n height: 100%;\n position: relative;\n padding-block-start: calc(${base.spacing} * 0.5);\n\n ${StyledChildrenWrap} {\n height: 100%;\n display: flex;\n flex-direction: column;\n padding-inline: ${base.spacing};\n }\n `\n);\n\nStyledTouchDialogContent.defaultProps = defaultThemeProp;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Ref } from 'react';
|
|
1
|
+
import type { Ref, ReactNode } from 'react';
|
|
2
2
|
import type { BaseProps, TestIdProp } from '../../types';
|
|
3
3
|
import type { DrawerProps } from '../Drawer';
|
|
4
4
|
import type { ProgressProps } from '../Progress';
|
|
@@ -15,7 +15,9 @@ export interface TouchDialogProps extends BaseProps, TestIdProp {
|
|
|
15
15
|
*/
|
|
16
16
|
onDismiss: () => void;
|
|
17
17
|
/** Heading text displayed at the top of the drawer. */
|
|
18
|
-
heading?:
|
|
18
|
+
heading?: ReactNode;
|
|
19
|
+
/** Aria label for the dialog, used when there is no heading. */
|
|
20
|
+
'aria-label'?: string;
|
|
19
21
|
/** Content of the TouchDialog. */
|
|
20
22
|
children?: DrawerProps['children'];
|
|
21
23
|
/** If there is a progress state either on opening, or after submit, you must indicate as such. A custom message is supported as well. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TouchDialog.types.d.ts","sourceRoot":"","sources":["../../../src/components/Dialog/TouchDialog.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TouchDialog.types.d.ts","sourceRoot":"","sources":["../../../src/components/Dialog/TouchDialog.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,gBAAiB,SAAQ,SAAS,EAAE,UAAU;IAC7D;;;;OAIG;IACH,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B;;;OAGG;IACH,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,uDAAuD;IACvD,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IACnC,yIAAyI;IACzI,QAAQ,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC9C;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAChC,4DAA4D;IAC5D,YAAY,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAC3C,6DAA6D;IAC7D,WAAW,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;IACzC,4DAA4D;IAC5D,aAAa,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;IAC7C,6DAA6D;IAC7D,YAAY,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAC3C,wCAAwC;IACxC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TouchDialog.types.js","sourceRoot":"","sources":["../../../src/components/Dialog/TouchDialog.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Ref } from 'react';\n\nimport type { BaseProps, TestIdProp } from '../../types';\nimport type { DrawerProps } from '../Drawer';\nimport type { ProgressProps } from '../Progress';\n\nexport interface TouchDialogProps extends BaseProps, TestIdProp {\n /**\n * Whether the TouchDialog should be open or closed.\n * The component should not be unmounted before onAfterClose is called,\n * otherwise the closing animation will be interrupted.\n */\n open: DrawerProps['open'];\n /**\n * Callback fired when the TouchDialog is dismissed with user intent.\n * The parent component should toggle the `open` prop.\n */\n onDismiss: () => void;\n /** Heading text displayed at the top of the drawer. */\n heading?: string;\n /** Content of the TouchDialog. */\n children?: DrawerProps['children'];\n /** If there is a progress state either on opening, or after submit, you must indicate as such. A custom message is supported as well. */\n progress?: boolean | ProgressProps['message'];\n /**\n * The initial height of the TouchDialog panel.\n * - `'auto'` — height is driven by content (capped at 90% of the viewport).\n * - `'half'` — half the viewport height.\n * - `'full'` — opens to the maximum height (90% of the viewport).\n * @default 'half'\n */\n size?: 'auto' | 'half' | 'full';\n /** Callback fired before the TouchDialog starts opening. */\n onBeforeOpen?: DrawerProps['onBeforeOpen'];\n /** Callback fired after the TouchDialog finishes opening. */\n onAfterOpen?: DrawerProps['onAfterOpen'];\n /** Callback fired before the TouchDialog starts closing. */\n onBeforeClose?: DrawerProps['onBeforeClose'];\n /** Callback fired after the TouchDialog finishes closing. */\n onAfterClose?: DrawerProps['onAfterClose'];\n /** Ref for the dialog panel element. */\n ref?: Ref<HTMLDivElement>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TouchDialog.types.js","sourceRoot":"","sources":["../../../src/components/Dialog/TouchDialog.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Ref, ReactNode } from 'react';\n\nimport type { BaseProps, TestIdProp } from '../../types';\nimport type { DrawerProps } from '../Drawer';\nimport type { ProgressProps } from '../Progress';\n\nexport interface TouchDialogProps extends BaseProps, TestIdProp {\n /**\n * Whether the TouchDialog should be open or closed.\n * The component should not be unmounted before onAfterClose is called,\n * otherwise the closing animation will be interrupted.\n */\n open: DrawerProps['open'];\n /**\n * Callback fired when the TouchDialog is dismissed with user intent.\n * The parent component should toggle the `open` prop.\n */\n onDismiss: () => void;\n /** Heading text displayed at the top of the drawer. */\n heading?: ReactNode;\n /** Aria label for the dialog, used when there is no heading. */\n 'aria-label'?: string;\n /** Content of the TouchDialog. */\n children?: DrawerProps['children'];\n /** If there is a progress state either on opening, or after submit, you must indicate as such. A custom message is supported as well. */\n progress?: boolean | ProgressProps['message'];\n /**\n * The initial height of the TouchDialog panel.\n * - `'auto'` — height is driven by content (capped at 90% of the viewport).\n * - `'half'` — half the viewport height.\n * - `'full'` — opens to the maximum height (90% of the viewport).\n * @default 'half'\n */\n size?: 'auto' | 'half' | 'full';\n /** Callback fired before the TouchDialog starts opening. */\n onBeforeOpen?: DrawerProps['onBeforeOpen'];\n /** Callback fired after the TouchDialog finishes opening. */\n onAfterOpen?: DrawerProps['onAfterOpen'];\n /** Callback fired before the TouchDialog starts closing. */\n onBeforeClose?: DrawerProps['onBeforeClose'];\n /** Callback fired after the TouchDialog finishes closing. */\n onAfterClose?: DrawerProps['onAfterClose'];\n /** Ref for the dialog panel element. */\n ref?: Ref<HTMLDivElement>;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TouchInfoDialog.d.ts","sourceRoot":"","sources":["../../../src/components/Dialog/TouchInfoDialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TouchInfoDialog.d.ts","sourceRoot":"","sources":["../../../src/components/Dialog/TouchInfoDialog.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,QAAA,MAAM,eAAe,80JAkDnB,CAAC;AAEH,eAAe,eAAe,CAAC"}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef, useState } from 'react';
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import Text from '../Text';
|
|
4
|
+
import SummaryItem from '../SummaryItem';
|
|
5
|
+
import { useUID } from '../../hooks';
|
|
6
|
+
import TouchDialog from './TouchDialog';
|
|
7
|
+
const TouchInfoDialog = forwardRef(function TouchInfoDialog({ heading: headingProp, children, onDismiss, progress, 'aria-label': ariaLabel, ...restProps }, ref) {
|
|
8
|
+
const headingId = useUID();
|
|
6
9
|
const [open, setOpen] = useState(true);
|
|
7
|
-
|
|
10
|
+
const headingText = typeof headingProp === 'string' ? headingProp : headingProp?.primary;
|
|
11
|
+
return (_jsx(TouchDialog, { ...restProps, open: open, progress: progress, onDismiss: () => {
|
|
8
12
|
setOpen(false);
|
|
9
|
-
}, ref: ref,
|
|
13
|
+
}, ref: ref, ...(typeof headingProp === 'string'
|
|
14
|
+
? { 'aria-labelledby': headingId }
|
|
15
|
+
: { 'aria-label': ariaLabel ?? headingText }), heading: headingProp &&
|
|
16
|
+
(typeof headingProp === 'string' ? (headingText) : (_jsx(SummaryItem, { primary: _jsx(Text, { id: headingId, variant: 'h2', children: headingText }), secondary: headingProp?.secondary ? (_jsx(Text, { variant: 'secondary', children: headingProp.secondary })) : undefined, visual: headingProp?.visual }))), onAfterClose: () => {
|
|
10
17
|
onDismiss();
|
|
11
18
|
}, children: children }));
|
|
12
19
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TouchInfoDialog.js","sourceRoot":"","sources":["../../../src/components/Dialog/TouchInfoDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"TouchInfoDialog.js","sourceRoot":"","sources":["../../../src/components/Dialog/TouchInfoDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG7C,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,MAAM,eAAe,GAAG,UAAU,CAGhC,SAAS,eAAe,CACxB,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,EAC9F,GAAG;IAEH,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;IAC3B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC;IAEzF,OAAO,CACL,KAAC,WAAW,OACN,SAAS,EACb,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,GAAG,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,EACD,GAAG,EAAE,GAAG,KACJ,CAAC,OAAO,WAAW,KAAK,QAAQ;YAClC,CAAC,CAAC,EAAE,iBAAiB,EAAE,SAAS,EAAE;YAClC,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,IAAI,WAAW,EAAE,CAAC,EAC/C,OAAO,EACL,WAAW;YACX,CAAC,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CACjC,WAAW,CACZ,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IACV,OAAO,EACL,KAAC,IAAI,IAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAC,IAAI,YAC9B,WAAW,GACP,EAET,SAAS,EACP,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CACvB,KAAC,IAAI,IAAC,OAAO,EAAC,WAAW,YAAE,WAAW,CAAC,SAAS,GAAQ,CACzD,CAAC,CAAC,CAAC,SAAS,EAEf,MAAM,EAAE,WAAW,EAAE,MAAM,GAC3B,CACH,CAAC,EAEJ,YAAY,EAAE,GAAG,EAAE;YACjB,SAAS,EAAE,CAAC;QACd,CAAC,YAEA,QAAQ,GACG,CACf,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,eAAe,CAAC","sourcesContent":["import { forwardRef, useState } from 'react';\nimport type { PropsWithoutRef } from 'react';\n\nimport Text from '../Text';\nimport type { RefElement, OmitStrict } from '../../types';\nimport SummaryItem from '../SummaryItem';\nimport { useUID } from '../../hooks';\n\nimport TouchDialog from './TouchDialog';\nimport type { InfoDialogProps } from './Dialog.types';\n\nconst TouchInfoDialog = forwardRef<\n RefElement<InfoDialogProps>,\n PropsWithoutRef<OmitStrict<InfoDialogProps, 'target'>>\n>(function TouchInfoDialog(\n { heading: headingProp, children, onDismiss, progress, 'aria-label': ariaLabel, ...restProps },\n ref\n) {\n const headingId = useUID();\n const [open, setOpen] = useState(true);\n const headingText = typeof headingProp === 'string' ? headingProp : headingProp?.primary;\n\n return (\n <TouchDialog\n {...restProps}\n open={open}\n progress={progress}\n onDismiss={() => {\n setOpen(false);\n }}\n ref={ref}\n {...(typeof headingProp === 'string'\n ? { 'aria-labelledby': headingId }\n : { 'aria-label': ariaLabel ?? headingText })}\n heading={\n headingProp &&\n (typeof headingProp === 'string' ? (\n headingText\n ) : (\n <SummaryItem\n primary={\n <Text id={headingId} variant='h2'>\n {headingText}\n </Text>\n }\n secondary={\n headingProp?.secondary ? (\n <Text variant='secondary'>{headingProp.secondary}</Text>\n ) : undefined\n }\n visual={headingProp?.visual}\n />\n ))\n }\n onAfterClose={() => {\n onDismiss();\n }}\n >\n {children}\n </TouchDialog>\n );\n});\n\nexport default TouchInfoDialog;\n"]}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
2
2
|
import { useEffect, useRef } from 'react';
|
|
3
3
|
import styled, { css } from 'styled-components';
|
|
4
4
|
import Popover from '../Popover';
|
|
5
|
-
import
|
|
5
|
+
import TouchDialog from '../Dialog/TouchDialog';
|
|
6
6
|
import { useConsolidatedRef, useDirection, useOuterEvent, useEscape, useI18n, useUID } from '../../hooks';
|
|
7
7
|
import Menu from '../Menu';
|
|
8
8
|
import { defaultThemeProp } from '../../theme';
|