@razorpay/blade 12.49.6 → 12.49.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/native/components/DatePicker/DatePickerContext.js +7 -0
- package/build/lib/native/components/DatePicker/DatePickerContext.js.map +1 -0
- package/build/lib/native/components/Input/BaseInput/BaseInput.js +1 -1
- package/build/lib/native/components/Input/BaseInput/BaseInput.js.map +1 -1
- package/build/lib/native/components/Input/TextInput/TextInput.js +2 -1
- package/build/lib/native/components/Input/TextInput/TextInput.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js +27 -11
- package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/DateInput.web.js +15 -10
- package/build/lib/web/development/components/DatePicker/DateInput.web.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/DatePickerContext.js +22 -0
- package/build/lib/web/development/components/DatePicker/DatePickerContext.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/QuickSelection/PresetSideBar.web.js +2 -4
- package/build/lib/web/development/components/DatePicker/QuickSelection/PresetSideBar.web.js.map +1 -1
- package/build/lib/web/{production/components/DatePicker/QuickSelection/PresetDropdown.web.js → development/components/DatePicker/QuickSelection/renderPresetDropdown.web.js} +10 -9
- package/build/lib/web/development/components/DatePicker/QuickSelection/renderPresetDropdown.web.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/QuickSelection/{PresetContext.js → usePresetState.js} +6 -21
- package/build/lib/web/development/components/DatePicker/QuickSelection/usePresetState.js.map +1 -0
- package/build/lib/web/development/components/Input/BaseInput/BaseInput.js +7 -3
- package/build/lib/web/development/components/Input/BaseInput/BaseInput.js.map +1 -1
- package/build/lib/web/development/components/Input/TextInput/TextInput.js +5 -2
- package/build/lib/web/development/components/Input/TextInput/TextInput.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js +27 -11
- package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/DateInput.web.js +15 -10
- package/build/lib/web/production/components/DatePicker/DateInput.web.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/DatePickerContext.js +22 -0
- package/build/lib/web/production/components/DatePicker/DatePickerContext.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/QuickSelection/PresetSideBar.web.js +2 -4
- package/build/lib/web/production/components/DatePicker/QuickSelection/PresetSideBar.web.js.map +1 -1
- package/build/lib/web/{development/components/DatePicker/QuickSelection/PresetDropdown.web.js → production/components/DatePicker/QuickSelection/renderPresetDropdown.web.js} +10 -9
- package/build/lib/web/production/components/DatePicker/QuickSelection/renderPresetDropdown.web.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/QuickSelection/{PresetContext.js → usePresetState.js} +6 -21
- package/build/lib/web/production/components/DatePicker/QuickSelection/usePresetState.js.map +1 -0
- package/build/lib/web/production/components/Input/BaseInput/BaseInput.js +7 -3
- package/build/lib/web/production/components/Input/BaseInput/BaseInput.js.map +1 -1
- package/build/lib/web/production/components/Input/TextInput/TextInput.js +5 -2
- package/build/lib/web/production/components/Input/TextInput/TextInput.js.map +1 -1
- package/package.json +1 -1
- package/build/lib/web/development/components/DatePicker/QuickSelection/PresetContext.js.map +0 -1
- package/build/lib/web/development/components/DatePicker/QuickSelection/PresetDropdown.web.js.map +0 -1
- package/build/lib/web/production/components/DatePicker/QuickSelection/PresetContext.js.map +0 -1
- package/build/lib/web/production/components/DatePicker/QuickSelection/PresetDropdown.web.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateInput.web.js","sources":["../../../../../../src/components/DatePicker/DateInput.web.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\nimport { useDatesContext } from '@mantine/dates';\nimport type { DatePickerInputProps, DateInputProps } from './types';\nimport {\n getFormattedDate,\n rangeFormattedValue,\n rangeInputPlaceHolder,\n finalInputFormat,\n getTextInputFormat,\n validateAndParseDateInput,\n stripDelimiters,\n} from './utils';\nimport { usePresetContext } from './QuickSelection/PresetContext';\nimport BaseBox from '~components/Box/BaseBox';\nimport { TextInput } from '~components/Input/TextInput';\nimport { isReactNative } from '~utils';\nimport type { BladeElementRef, DataAnalyticsAttribute } from '~utils/types';\nimport { CalendarIcon } from '~components/Icons';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\n/**\n * CRITICAL BEHAVIOR CASES - Verify when making changes:\n *\n * 1. VALUE PROP: Already formatted by getFormattedDate() - avoid double formatting\n * 2. USER TYPING: Should format input AND sync with calendar selection\n * 3. CALENDAR SELECTION: Should apply formatted value to input without re-formatting\n * 4. SUBMIT (no footer): Blur/Enter should select current value\n */\nconst _DateInput = (\n props: DateInputProps,\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n const { format, date, setControlledValue, leadingDropdown, tags, id, ...textInputProps } = props;\n const [inputValue, setInputValue] = React.useState(['']);\n const [validationError, setValidationError] = React.useState<string | undefined>(undefined);\n\n const presetContext = usePresetContext();\n\n // Determine selection type: prefer preset context calculation over props\n // This handles \"Today\" presets that should display as single even though data is range\n const isRange =\n presetContext?.effectiveSelectionType === 'single'\n ? false\n : presetContext?.effectiveSelectionType === 'range' || props.selectionType === 'range';\n\n // Sync internal input state with external formatted values from parent component\n // textInputProps.value comes from DatePickerInput as formatted strings: [\"25/12/2024\", \"31/12/2024\"]\n // We strip delimiters for internal processing: [\"25122024\", \"31122024\"]\n // This prevents double formatting and helps to validate the input easier during user typing\n React.useEffect(() => {\n if (textInputProps.value) {\n setInputValue(\n isRange\n ? [stripDelimiters(textInputProps.value[0]), stripDelimiters(textInputProps.value[1])]\n : [stripDelimiters(textInputProps.value[0])],\n );\n }\n }, [textInputProps.value, isRange, format]);\n\n // Clear validation error only when the actual selected date changes\n // (e.g., user selected a valid date from the calendar). This avoids\n // clearing errors during typing/blur unless the value truly updated.\n React.useEffect(() => {\n setValidationError(undefined);\n }, [date]);\n\n const applyDateValue = React.useCallback(\n (inputValue: string, shouldClearWhenEmpty = false): void => {\n if (inputValue?.trim()) {\n // Validate input and get parsed dates in one atomic operation (includes all constraints)\n const validation = validateAndParseDateInput(inputValue, isRange, format, {\n excludeDate: props.excludeDate,\n minDate: props.minDate,\n maxDate: props.maxDate,\n });\n if (validation.shouldBlock) {\n return; // Block invalid input to prevent data corruption\n }\n\n // Apply the pre-parsed date values to controlled state (no redundant parsing)\n if (validation.parsedValue !== undefined) {\n let finalValue = validation.parsedValue;\n\n // Special handling: if preset context shows single but props expect range\n // (like \"Today\" preset), convert single date back to same-day range\n if (\n presetContext?.effectiveSelectionType === 'single' &&\n props.selectionType === 'range' &&\n validation.parsedValue instanceof Date\n ) {\n finalValue = [validation.parsedValue, validation.parsedValue] as [Date, Date];\n }\n\n setControlledValue?.(finalValue);\n }\n } else if (shouldClearWhenEmpty) {\n // Clear controlled value when input is emptied (onChange only, not onBlur)\n setControlledValue?.(isRange ? ([null, null] as [Date | null, Date | null]) : null);\n }\n },\n [\n isRange,\n setControlledValue,\n presetContext?.effectiveSelectionType,\n props.selectionType,\n format,\n props.excludeDate,\n props.minDate,\n props.maxDate,\n ],\n );\n\n const handleInputChange = ({ value }: { value?: string }): void => {\n const inputValue = value ?? '';\n setValidationError(undefined);\n\n if (inputValue?.trim()) {\n const validation = validateAndParseDateInput(inputValue, isRange, format, {\n excludeDate: props.excludeDate,\n minDate: props.minDate,\n maxDate: props.maxDate,\n });\n\n if (validation.shouldBlock && validation.error) {\n setValidationError(validation.error);\n }\n }\n\n // Apply changes immediately during typing (with empty clearing enabled)\n applyDateValue(inputValue, true);\n };\n\n const handleBlur = React.useCallback(\n (params: { name?: string; value?: string; event?: React.FocusEvent<HTMLInputElement> }) => {\n const currentInputValue = params.event?.target.value ?? params.value ?? '';\n setValidationError(undefined);\n\n if (currentInputValue?.trim()) {\n // Validate complete input and show errors to user on blur (includes all constraints)\n const validation = validateAndParseDateInput(currentInputValue, isRange, format, {\n excludeDate: props.excludeDate,\n minDate: props.minDate,\n maxDate: props.maxDate,\n });\n\n if (validation.shouldBlock && validation.error) {\n setValidationError(validation.error);\n return; // Don't apply invalid values\n }\n }\n\n // Apply final value on blur (without empty clearing to preserve existing dates)\n applyDateValue(currentInputValue, false);\n },\n [applyDateValue, isRange],\n );\n\n return (\n <TextInput\n {...textInputProps}\n ref={ref}\n type=\"number\"\n value={isRange ? rangeFormattedValue(inputValue[0], inputValue[1]) : inputValue[0]}\n leadingIcon={CalendarIcon}\n leading={leadingDropdown}\n format={\n isRange\n ? getTextInputFormat(finalInputFormat(inputValue[0], inputValue[1], format), true)\n : getTextInputFormat(format, false)\n }\n validationState={validationError ? 'error' : textInputProps.validationState}\n errorText={textInputProps.errorText ?? validationError}\n onChange={handleInputChange}\n onBlur={handleBlur}\n onClick={(e) => {\n if (textInputProps.isDisabled) {\n return;\n }\n textInputProps.onClick?.(e);\n }}\n onKeyDown={({ event }) => {\n // @ts-expect-error\n textInputProps.onKeyDown?.(event);\n }}\n />\n );\n};\n\nconst DateInput = React.forwardRef(_DateInput);\n\nconst HiddenInput = ({\n value,\n name,\n isRequired,\n isDisabled,\n ...rest\n}: {\n value: string;\n name?: string;\n isRequired?: boolean;\n isDisabled?: boolean;\n} & DataAnalyticsAttribute): React.ReactElement => {\n if (isReactNative()) return <></>;\n\n return (\n <input\n hidden={true}\n name={name}\n value={value}\n required={isRequired}\n disabled={isDisabled}\n readOnly\n {...makeAnalyticsAttribute(rest)}\n />\n );\n};\n\nconst _DatePickerInput = (\n {\n selectionType,\n referenceProps,\n inputRef,\n date,\n label,\n labelPosition,\n labelSuffix,\n labelTrailing,\n autoFocus,\n name,\n size = 'medium',\n necessityIndicator,\n successText,\n errorText,\n helpText,\n format,\n placeholder,\n setControlledValue,\n leadingDropdown,\n selectedPreset,\n excludeDate,\n minDate,\n maxDate,\n ...props\n }: DatePickerInputProps,\n ref: React.ForwardedRef<any>,\n): React.ReactElement => {\n const { locale } = useDatesContext();\n\n if (selectionType == 'single') {\n const dateValue = getFormattedDate({\n date,\n format,\n labelSeparator: '-',\n locale,\n type: 'default',\n });\n return (\n <BaseBox width=\"100%\">\n <HiddenInput\n value={dateValue}\n name={name}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n />\n <DateInput\n ref={ref as never}\n id=\"start-date\"\n labelPosition={labelPosition}\n label={label}\n placeholder={placeholder || format}\n popupId={referenceProps['aria-controls']}\n isPopupExpanded={referenceProps['aria-expanded']}\n size={size}\n autoFocus={autoFocus}\n value={[dateValue]}\n componentName=\"DatePickerInput\"\n necessityIndicator={necessityIndicator}\n successText={successText}\n errorText={errorText}\n helpText={helpText}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n leadingDropdown={leadingDropdown}\n date={date as Date | null}\n setControlledValue={setControlledValue}\n format={format}\n selectionType={selectionType}\n excludeDate={excludeDate}\n minDate={minDate}\n maxDate={maxDate}\n {...props}\n {...referenceProps}\n />\n </BaseBox>\n );\n }\n\n if (selectionType == 'range') {\n const startValue = getFormattedDate({\n type: 'default',\n date: date[0],\n format,\n labelSeparator: '-',\n locale,\n });\n const endValue = getFormattedDate({\n type: 'default',\n date: date[1],\n format,\n labelSeparator: '-',\n locale,\n });\n\n return (\n <BaseBox width=\"100%\">\n <HiddenInput\n value={`${startValue}`}\n name={name?.start}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n />\n\n <HiddenInput\n value={endValue}\n name={name?.end}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n {...makeAnalyticsAttribute(props)}\n />\n\n <DateInput\n ref={ref as never}\n id=\"range-date\"\n labelPosition={labelPosition}\n label={typeof label === 'object' ? label?.start : label}\n placeholder={rangeInputPlaceHolder(placeholder, format)}\n popupId={referenceProps['aria-controls']}\n isPopupExpanded={referenceProps['aria-expanded']}\n size={size}\n autoFocus={autoFocus}\n value={[startValue, endValue]}\n componentName=\"DatePickerInputRange\"\n necessityIndicator={necessityIndicator}\n successText={\n typeof successText === 'object'\n ? (successText as { start: string })?.start\n : successText\n }\n errorText={\n typeof errorText === 'object' ? (errorText as { start: string })?.start : errorText\n }\n helpText={\n typeof helpText === 'object' ? (helpText as { start: string })?.start : helpText\n }\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n format={format}\n leadingDropdown={leadingDropdown}\n date={date as [Date | null, Date | null]}\n setControlledValue={setControlledValue}\n selectionType={selectionType}\n excludeDate={excludeDate}\n minDate={minDate}\n maxDate={maxDate}\n {...props}\n {...referenceProps}\n />\n </BaseBox>\n );\n }\n\n return <></>;\n};\n\nconst DatePickerInput = React.forwardRef(_DatePickerInput);\nexport { DatePickerInput };\n"],"names":["_DateInput","props","ref","_textInputProps$error","format","date","setControlledValue","leadingDropdown","tags","id","textInputProps","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","inputValue","setInputValue","_React$useState3","undefined","_React$useState4","validationError","setValidationError","presetContext","usePresetContext","isRange","effectiveSelectionType","selectionType","useEffect","value","stripDelimiters","applyDateValue","useCallback","shouldClearWhenEmpty","arguments","length","trim","validation","validateAndParseDateInput","excludeDate","minDate","maxDate","shouldBlock","parsedValue","finalValue","Date","handleInputChange","_ref","error","handleBlur","params","_ref2","_params$event$target$","_params$event","currentInputValue","event","target","_jsx","TextInput","_objectSpread","type","rangeFormattedValue","leadingIcon","CalendarIcon","leading","getTextInputFormat","finalInputFormat","validationState","errorText","onChange","onBlur","onClick","e","_textInputProps$onCli","isDisabled","call","onKeyDown","_ref3","_textInputProps$onKey","DateInput","forwardRef","HiddenInput","_ref4","name","isRequired","rest","_excluded2","isReactNative","_Fragment","hidden","required","disabled","readOnly","makeAnalyticsAttribute","_DatePickerInput","_ref5","referenceProps","inputRef","label","labelPosition","labelSuffix","labelTrailing","autoFocus","_ref5$size","size","necessityIndicator","successText","helpText","placeholder","selectedPreset","_excluded3","_useDatesContext","useDatesContext","locale","dateValue","getFormattedDate","labelSeparator","_jsxs","BaseBox","width","children","popupId","isPopupExpanded","componentName","startValue","endValue","concat","start","end","_typeof","rangeInputPlaceHolder","DatePickerInput"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateInput.web.js","sources":["../../../../../../src/components/DatePicker/DateInput.web.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\nimport { useDatesContext } from '@mantine/dates';\nimport type { DatePickerInputProps, DateInputProps } from './types';\nimport {\n getFormattedDate,\n rangeFormattedValue,\n rangeInputPlaceHolder,\n finalInputFormat,\n getTextInputFormat,\n validateAndParseDateInput,\n stripDelimiters,\n} from './utils';\nimport BaseBox from '~components/Box/BaseBox';\nimport { TextInput } from '~components/Input/TextInput';\nimport { isReactNative } from '~utils';\nimport type { BladeElementRef, DataAnalyticsAttribute } from '~utils/types';\nimport { CalendarIcon } from '~components/Icons';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\n/**\n * CRITICAL BEHAVIOR CASES - Verify when making changes:\n *\n * 1. VALUE PROP: Already formatted by getFormattedDate() - avoid double formatting\n * 2. USER TYPING: Should format input AND sync with calendar selection\n * 3. CALENDAR SELECTION: Should apply formatted value to input without re-formatting\n * 4. SUBMIT (no footer): Blur/Enter should select current value\n */\nconst _DateInput = (\n props: DateInputProps,\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n const {\n format,\n date,\n setControlledValue,\n effectiveSelectionType,\n leadingDropdown,\n tags,\n id,\n ...textInputProps\n } = props;\n const [inputValue, setInputValue] = React.useState(['']);\n const [validationError, setValidationError] = React.useState<string | undefined>(undefined);\n const shouldShowCalendarIcon = !Boolean(leadingDropdown);\n\n // Determine selection type: prefer preset context calculation over props\n // This handles \"Today\" presets that should display as single even though data is range\n const isRange =\n effectiveSelectionType === 'single'\n ? false\n : effectiveSelectionType === 'range' || props.selectionType === 'range';\n\n // Sync internal input state with external formatted values from parent component\n // textInputProps.value comes from DatePickerInput as formatted strings: [\"25/12/2024\", \"31/12/2024\"]\n // We strip delimiters for internal processing: [\"25122024\", \"31122024\"]\n // This prevents double formatting and helps to validate the input easier during user typing\n React.useEffect(() => {\n if (textInputProps.value) {\n setInputValue(\n isRange\n ? [stripDelimiters(textInputProps.value[0]), stripDelimiters(textInputProps.value[1])]\n : [stripDelimiters(textInputProps.value[0])],\n );\n }\n }, [textInputProps.value, isRange, format]);\n\n // Clear validation error only when the actual selected date changes\n // (e.g., user selected a valid date from the calendar). This avoids\n // clearing errors during typing/blur unless the value truly updated.\n React.useEffect(() => {\n setValidationError(undefined);\n }, [date]);\n\n const applyDateValue = React.useCallback(\n (inputValue: string, shouldClearWhenEmpty = false): void => {\n if (inputValue?.trim()) {\n // Validate input and get parsed dates in one atomic operation (includes all constraints)\n const validation = validateAndParseDateInput(inputValue, isRange, format, {\n excludeDate: props.excludeDate,\n minDate: props.minDate,\n maxDate: props.maxDate,\n });\n if (validation.shouldBlock) {\n return; // Block invalid input to prevent data corruption\n }\n\n // Apply the pre-parsed date values to controlled state (no redundant parsing)\n if (validation.parsedValue !== undefined) {\n let finalValue = validation.parsedValue;\n\n // Special handling: if preset context shows single but props expect range\n // (like \"Today\" preset), convert single date back to same-day range\n if (\n effectiveSelectionType === 'single' &&\n props.selectionType === 'range' &&\n validation.parsedValue instanceof Date\n ) {\n finalValue = [validation.parsedValue, validation.parsedValue] as [Date, Date];\n }\n\n setControlledValue?.(finalValue);\n }\n } else if (shouldClearWhenEmpty) {\n // Clear controlled value when input is emptied (onChange only, not onBlur)\n setControlledValue?.(isRange ? ([null, null] as [Date | null, Date | null]) : null);\n }\n },\n [\n isRange,\n setControlledValue,\n effectiveSelectionType,\n props.selectionType,\n format,\n props.excludeDate,\n props.minDate,\n props.maxDate,\n ],\n );\n\n const handleInputChange = ({ value }: { value?: string }): void => {\n const inputValue = value ?? '';\n setValidationError(undefined);\n\n if (inputValue?.trim()) {\n const validation = validateAndParseDateInput(inputValue, isRange, format, {\n excludeDate: props.excludeDate,\n minDate: props.minDate,\n maxDate: props.maxDate,\n });\n\n if (validation.shouldBlock && validation.error) {\n setValidationError(validation.error);\n }\n }\n\n // Apply changes immediately during typing (with empty clearing enabled)\n applyDateValue(inputValue, true);\n };\n\n const handleBlur = React.useCallback(\n (params: { name?: string; value?: string; event?: React.FocusEvent<HTMLInputElement> }) => {\n const currentInputValue = params.event?.target.value ?? params.value ?? '';\n setValidationError(undefined);\n\n if (currentInputValue?.trim()) {\n // Validate complete input and show errors to user on blur (includes all constraints)\n const validation = validateAndParseDateInput(currentInputValue, isRange, format, {\n excludeDate: props.excludeDate,\n minDate: props.minDate,\n maxDate: props.maxDate,\n });\n\n if (validation.shouldBlock && validation.error) {\n setValidationError(validation.error);\n return; // Don't apply invalid values\n }\n }\n\n // Apply final value on blur (without empty clearing to preserve existing dates)\n applyDateValue(currentInputValue, false);\n },\n [applyDateValue, isRange],\n );\n\n return (\n <TextInput\n {...textInputProps}\n ref={ref}\n type=\"number\"\n value={isRange ? rangeFormattedValue(inputValue[0], inputValue[1]) : inputValue[0]}\n leadingIcon={shouldShowCalendarIcon ? CalendarIcon : undefined}\n leading={leadingDropdown}\n format={\n isRange\n ? getTextInputFormat(finalInputFormat(inputValue[0], inputValue[1], format), true)\n : getTextInputFormat(format, false)\n }\n validationState={validationError ? 'error' : textInputProps.validationState}\n errorText={textInputProps.errorText ?? validationError}\n onChange={handleInputChange}\n onBlur={handleBlur}\n onClick={(e) => {\n if (textInputProps.isDisabled) {\n return;\n }\n textInputProps.onClick?.(e);\n }}\n onKeyDown={({ event }) => {\n // @ts-expect-error\n textInputProps.onKeyDown?.(event);\n }}\n />\n );\n};\n\nconst DateInput = React.forwardRef(_DateInput);\n\nconst HiddenInput = ({\n value,\n name,\n isRequired,\n isDisabled,\n ...rest\n}: {\n value: string;\n name?: string;\n isRequired?: boolean;\n isDisabled?: boolean;\n} & DataAnalyticsAttribute): React.ReactElement => {\n if (isReactNative()) return <></>;\n\n return (\n <input\n hidden={true}\n name={name}\n value={value}\n required={isRequired}\n disabled={isDisabled}\n readOnly\n {...makeAnalyticsAttribute(rest)}\n />\n );\n};\n\nconst _DatePickerInput = (\n {\n selectionType,\n referenceProps,\n inputRef,\n date,\n label,\n labelPosition,\n labelSuffix,\n labelTrailing,\n autoFocus,\n name,\n size = 'medium',\n necessityIndicator,\n successText,\n errorText,\n helpText,\n format,\n placeholder,\n setControlledValue,\n leadingDropdown,\n selectedPreset,\n excludeDate,\n minDate,\n maxDate,\n effectiveSelectionType,\n ...props\n }: DatePickerInputProps,\n ref: React.ForwardedRef<any>,\n): React.ReactElement => {\n const { locale } = useDatesContext();\n\n if (selectionType == 'single') {\n const dateValue = getFormattedDate({\n date,\n format,\n labelSeparator: '-',\n locale,\n type: 'default',\n });\n return (\n <BaseBox width=\"100%\">\n <HiddenInput\n value={dateValue}\n name={name}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n />\n <DateInput\n ref={ref as never}\n id=\"start-date\"\n labelPosition={labelPosition}\n label={label}\n placeholder={placeholder || format}\n popupId={referenceProps['aria-controls']}\n isPopupExpanded={referenceProps['aria-expanded']}\n hasPopup={referenceProps['aria-haspopup']}\n size={size}\n autoFocus={autoFocus}\n value={[dateValue]}\n componentName=\"DatePickerInput\"\n necessityIndicator={necessityIndicator}\n successText={successText}\n errorText={errorText}\n helpText={helpText}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n leadingDropdown={leadingDropdown}\n date={date as Date | null}\n setControlledValue={setControlledValue}\n format={format}\n selectionType={selectionType}\n excludeDate={excludeDate}\n minDate={minDate}\n maxDate={maxDate}\n effectiveSelectionType={effectiveSelectionType}\n {...props}\n {...referenceProps}\n />\n </BaseBox>\n );\n }\n\n if (selectionType == 'range') {\n const startValue = getFormattedDate({\n type: 'default',\n date: date[0],\n format,\n labelSeparator: '-',\n locale,\n });\n const endValue = getFormattedDate({\n type: 'default',\n date: date[1],\n format,\n labelSeparator: '-',\n locale,\n });\n\n return (\n <BaseBox width=\"100%\">\n <HiddenInput\n value={`${startValue}`}\n name={name?.start}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n />\n\n <HiddenInput\n value={endValue}\n name={name?.end}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n {...makeAnalyticsAttribute(props)}\n />\n\n <DateInput\n ref={ref as never}\n id=\"range-date\"\n labelPosition={labelPosition}\n label={typeof label === 'object' ? label?.start : label}\n placeholder={rangeInputPlaceHolder(placeholder, format)}\n popupId={referenceProps['aria-controls']}\n isPopupExpanded={referenceProps['aria-expanded']}\n hasPopup={referenceProps['aria-haspopup']}\n size={size}\n autoFocus={autoFocus}\n value={[startValue, endValue]}\n componentName=\"DatePickerInputRange\"\n necessityIndicator={necessityIndicator}\n successText={\n typeof successText === 'object'\n ? (successText as { start: string })?.start\n : successText\n }\n errorText={\n typeof errorText === 'object' ? (errorText as { start: string })?.start : errorText\n }\n helpText={\n typeof helpText === 'object' ? (helpText as { start: string })?.start : helpText\n }\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n format={format}\n leadingDropdown={leadingDropdown}\n date={date as [Date | null, Date | null]}\n setControlledValue={setControlledValue}\n selectionType={selectionType}\n excludeDate={excludeDate}\n minDate={minDate}\n maxDate={maxDate}\n effectiveSelectionType={effectiveSelectionType}\n {...props}\n {...referenceProps}\n />\n </BaseBox>\n );\n }\n\n return <></>;\n};\n\nconst DatePickerInput = React.forwardRef(_DatePickerInput);\nexport { DatePickerInput };\n"],"names":["_DateInput","props","ref","_textInputProps$error","format","date","setControlledValue","effectiveSelectionType","leadingDropdown","tags","id","textInputProps","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","inputValue","setInputValue","_React$useState3","undefined","_React$useState4","validationError","setValidationError","shouldShowCalendarIcon","Boolean","isRange","selectionType","useEffect","value","stripDelimiters","applyDateValue","useCallback","shouldClearWhenEmpty","arguments","length","trim","validation","validateAndParseDateInput","excludeDate","minDate","maxDate","shouldBlock","parsedValue","finalValue","Date","handleInputChange","_ref","error","handleBlur","params","_ref2","_params$event$target$","_params$event","currentInputValue","event","target","_jsx","TextInput","_objectSpread","type","rangeFormattedValue","leadingIcon","CalendarIcon","leading","getTextInputFormat","finalInputFormat","validationState","errorText","onChange","onBlur","onClick","e","_textInputProps$onCli","isDisabled","call","onKeyDown","_ref3","_textInputProps$onKey","DateInput","forwardRef","HiddenInput","_ref4","name","isRequired","rest","_excluded2","isReactNative","_Fragment","hidden","required","disabled","readOnly","makeAnalyticsAttribute","_DatePickerInput","_ref5","referenceProps","inputRef","label","labelPosition","labelSuffix","labelTrailing","autoFocus","_ref5$size","size","necessityIndicator","successText","helpText","placeholder","selectedPreset","_excluded3","_useDatesContext","useDatesContext","locale","dateValue","getFormattedDate","labelSeparator","_jsxs","BaseBox","width","children","popupId","isPopupExpanded","hasPopup","componentName","startValue","endValue","concat","start","end","_typeof","rangeInputPlaceHolder","DatePickerInput"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA8BA,IAAMA,UAAU,GAAG,SAAbA,UAAUA,CACdC,KAAqB,EACrBC,GAAwC,EACjB;AAAA,EAAA,IAAAC,qBAAA,CAAA;AACvB,EAAA,IACEC,MAAM,GAQJH,KAAK,CARPG,MAAM;IACNC,IAAI,GAOFJ,KAAK,CAPPI,IAAI;IACJC,kBAAkB,GAMhBL,KAAK,CANPK,kBAAkB;IAClBC,sBAAsB,GAKpBN,KAAK,CALPM,sBAAsB;IACtBC,eAAe,GAIbP,KAAK,CAJPO,eAAe;IACfC,IAAI,GAGFR,KAAK,CAHPQ,IAAI;IACJC,EAAE,GAEAT,KAAK,CAFPS,EAAE;AACCC,IAAAA,cAAc,GAAAC,wBAAA,CACfX,KAAK,EAAAY,SAAA,CAAA,CAAA;EACT,IAAAC,eAAA,GAAoCC,cAAK,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAJ,eAAA,EAAA,CAAA,CAAA;AAAjDK,IAAAA,UAAU,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,aAAa,GAAAH,gBAAA,CAAA,CAAA,CAAA,CAAA;AAChC,EAAA,IAAAI,gBAAA,GAA8CN,cAAK,CAACC,QAAQ,CAAqBM,SAAS,CAAC;IAAAC,gBAAA,GAAAL,cAAA,CAAAG,gBAAA,EAAA,CAAA,CAAA;AAApFG,IAAAA,eAAe,GAAAD,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,kBAAkB,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;AAC1C,EAAA,IAAMG,sBAAsB,GAAG,CAACC,OAAO,CAACnB,eAAe,CAAC,CAAA;;AAExD;AACA;AACA,EAAA,IAAMoB,OAAO,GACXrB,sBAAsB,KAAK,QAAQ,GAC/B,KAAK,GACLA,sBAAsB,KAAK,OAAO,IAAIN,KAAK,CAAC4B,aAAa,KAAK,OAAO,CAAA;;AAE3E;AACA;AACA;AACA;EACAd,cAAK,CAACe,SAAS,CAAC,YAAM;IACpB,IAAInB,cAAc,CAACoB,KAAK,EAAE;AACxBX,MAAAA,aAAa,CACXQ,OAAO,GACH,CAACI,eAAe,CAACrB,cAAc,CAACoB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAEC,eAAe,CAACrB,cAAc,CAACoB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GACpF,CAACC,eAAe,CAACrB,cAAc,CAACoB,KAAK,CAAC,CAAC,CAAC,CAAC,CAC/C,CAAC,CAAA;AACH,KAAA;GACD,EAAE,CAACpB,cAAc,CAACoB,KAAK,EAAEH,OAAO,EAAExB,MAAM,CAAC,CAAC,CAAA;;AAE3C;AACA;AACA;EACAW,cAAK,CAACe,SAAS,CAAC,YAAM;IACpBL,kBAAkB,CAACH,SAAS,CAAC,CAAA;AAC/B,GAAC,EAAE,CAACjB,IAAI,CAAC,CAAC,CAAA;EAEV,IAAM4B,cAAc,GAAGlB,cAAK,CAACmB,WAAW,CACtC,UAACf,UAAkB,EAAyC;AAAA,IAAA,IAAvCgB,oBAAoB,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAd,SAAA,GAAAc,SAAA,CAAA,CAAA,CAAA,GAAG,KAAK,CAAA;IAC/C,IAAIjB,UAAU,aAAVA,UAAU,KAAA,KAAA,CAAA,IAAVA,UAAU,CAAEmB,IAAI,EAAE,EAAE;AACtB;MACA,IAAMC,UAAU,GAAGC,yBAAyB,CAACrB,UAAU,EAAES,OAAO,EAAExB,MAAM,EAAE;QACxEqC,WAAW,EAAExC,KAAK,CAACwC,WAAW;QAC9BC,OAAO,EAAEzC,KAAK,CAACyC,OAAO;QACtBC,OAAO,EAAE1C,KAAK,CAAC0C,OAAAA;AACjB,OAAC,CAAC,CAAA;MACF,IAAIJ,UAAU,CAACK,WAAW,EAAE;AAC1B,QAAA,OAAO;AACT,OAAA;;AAEA;AACA,MAAA,IAAIL,UAAU,CAACM,WAAW,KAAKvB,SAAS,EAAE;AACxC,QAAA,IAAIwB,UAAU,GAAGP,UAAU,CAACM,WAAW,CAAA;;AAEvC;AACA;AACA,QAAA,IACEtC,sBAAsB,KAAK,QAAQ,IACnCN,KAAK,CAAC4B,aAAa,KAAK,OAAO,IAC/BU,UAAU,CAACM,WAAW,YAAYE,IAAI,EACtC;UACAD,UAAU,GAAG,CAACP,UAAU,CAACM,WAAW,EAAEN,UAAU,CAACM,WAAW,CAAiB,CAAA;AAC/E,SAAA;AAEAvC,QAAAA,kBAAkB,aAAlBA,kBAAkB,KAAA,KAAA,CAAA,IAAlBA,kBAAkB,CAAGwC,UAAU,CAAC,CAAA;AAClC,OAAA;KACD,MAAM,IAAIX,oBAAoB,EAAE;AAC/B;AACA7B,MAAAA,kBAAkB,KAAlBA,IAAAA,IAAAA,kBAAkB,KAAlBA,KAAAA,CAAAA,IAAAA,kBAAkB,CAAGsB,OAAO,GAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAkC,IAAI,CAAC,CAAA;AACrF,KAAA;GACD,EACD,CACEA,OAAO,EACPtB,kBAAkB,EAClBC,sBAAsB,EACtBN,KAAK,CAAC4B,aAAa,EACnBzB,MAAM,EACNH,KAAK,CAACwC,WAAW,EACjBxC,KAAK,CAACyC,OAAO,EACbzC,KAAK,CAAC0C,OAAO,CAEjB,CAAC,CAAA;AAED,EAAA,IAAMK,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA,EAA4C;AAAA,IAAA,IAAtClB,KAAK,GAAAkB,IAAA,CAALlB,KAAK,CAAA;IAChC,IAAMZ,UAAU,GAAGY,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAK,GAAI,EAAE,CAAA;IAC9BN,kBAAkB,CAACH,SAAS,CAAC,CAAA;IAE7B,IAAIH,UAAU,aAAVA,UAAU,KAAA,KAAA,CAAA,IAAVA,UAAU,CAAEmB,IAAI,EAAE,EAAE;MACtB,IAAMC,UAAU,GAAGC,yBAAyB,CAACrB,UAAU,EAAES,OAAO,EAAExB,MAAM,EAAE;QACxEqC,WAAW,EAAExC,KAAK,CAACwC,WAAW;QAC9BC,OAAO,EAAEzC,KAAK,CAACyC,OAAO;QACtBC,OAAO,EAAE1C,KAAK,CAAC0C,OAAAA;AACjB,OAAC,CAAC,CAAA;AAEF,MAAA,IAAIJ,UAAU,CAACK,WAAW,IAAIL,UAAU,CAACW,KAAK,EAAE;AAC9CzB,QAAAA,kBAAkB,CAACc,UAAU,CAACW,KAAK,CAAC,CAAA;AACtC,OAAA;AACF,KAAA;;AAEA;AACAjB,IAAAA,cAAc,CAACd,UAAU,EAAE,IAAI,CAAC,CAAA;GACjC,CAAA;EAED,IAAMgC,UAAU,GAAGpC,cAAK,CAACmB,WAAW,CAClC,UAACkB,MAAqF,EAAK;AAAA,IAAA,IAAAC,KAAA,EAAAC,qBAAA,EAAAC,aAAA,CAAA;AACzF,IAAA,IAAMC,iBAAiB,GAAA,CAAAH,KAAA,GAAA,CAAAC,qBAAA,GAAAC,CAAAA,aAAA,GAAGH,MAAM,CAACK,KAAK,MAAAF,IAAAA,IAAAA,aAAA,uBAAZA,aAAA,CAAcG,MAAM,CAAC3B,KAAK,MAAA,IAAA,IAAAuB,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAIF,MAAM,CAACrB,KAAK,MAAAsB,IAAAA,IAAAA,KAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAA,GAAI,EAAE,CAAA;IAC1E5B,kBAAkB,CAACH,SAAS,CAAC,CAAA;IAE7B,IAAIkC,iBAAiB,aAAjBA,iBAAiB,KAAA,KAAA,CAAA,IAAjBA,iBAAiB,CAAElB,IAAI,EAAE,EAAE;AAC7B;MACA,IAAMC,UAAU,GAAGC,yBAAyB,CAACgB,iBAAiB,EAAE5B,OAAO,EAAExB,MAAM,EAAE;QAC/EqC,WAAW,EAAExC,KAAK,CAACwC,WAAW;QAC9BC,OAAO,EAAEzC,KAAK,CAACyC,OAAO;QACtBC,OAAO,EAAE1C,KAAK,CAAC0C,OAAAA;AACjB,OAAC,CAAC,CAAA;AAEF,MAAA,IAAIJ,UAAU,CAACK,WAAW,IAAIL,UAAU,CAACW,KAAK,EAAE;AAC9CzB,QAAAA,kBAAkB,CAACc,UAAU,CAACW,KAAK,CAAC,CAAA;AACpC,QAAA,OAAO;AACT,OAAA;AACF,KAAA;;AAEA;AACAjB,IAAAA,cAAc,CAACuB,iBAAiB,EAAE,KAAK,CAAC,CAAA;AAC1C,GAAC,EACD,CAACvB,cAAc,EAAEL,OAAO,CAC1B,CAAC,CAAA;EAED,oBACE+B,GAAA,CAACC,SAAS,EAAAC,aAAA,CAAAA,aAAA,KACJlD,cAAc,CAAA,EAAA,EAAA,EAAA;AAClBT,IAAAA,GAAG,EAAEA,GAAI;AACT4D,IAAAA,IAAI,EAAC,QAAQ;AACb/B,IAAAA,KAAK,EAAEH,OAAO,GAAGmC,mBAAmB,CAAC5C,UAAU,CAAC,CAAC,CAAC,EAAEA,UAAU,CAAC,CAAC,CAAC,CAAC,GAAGA,UAAU,CAAC,CAAC,CAAE;AACnF6C,IAAAA,WAAW,EAAEtC,sBAAsB,GAAGuC,YAAY,GAAG3C,SAAU;AAC/D4C,IAAAA,OAAO,EAAE1D,eAAgB;AACzBJ,IAAAA,MAAM,EACJwB,OAAO,GACHuC,kBAAkB,CAACC,gBAAgB,CAACjD,UAAU,CAAC,CAAC,CAAC,EAAEA,UAAU,CAAC,CAAC,CAAC,EAAEf,MAAM,CAAC,EAAE,IAAI,CAAC,GAChF+D,kBAAkB,CAAC/D,MAAM,EAAE,KAAK,CACrC;AACDiE,IAAAA,eAAe,EAAE7C,eAAe,GAAG,OAAO,GAAGb,cAAc,CAAC0D,eAAgB;IAC5EC,SAAS,EAAA,CAAAnE,qBAAA,GAAEQ,cAAc,CAAC2D,SAAS,MAAA,IAAA,IAAAnE,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAIqB,eAAgB;AACvD+C,IAAAA,QAAQ,EAAEvB,iBAAkB;AAC5BwB,IAAAA,MAAM,EAAErB,UAAW;AACnBsB,IAAAA,OAAO,EAAE,SAATA,OAAOA,CAAGC,CAAC,EAAK;AAAA,MAAA,IAAAC,qBAAA,CAAA;MACd,IAAIhE,cAAc,CAACiE,UAAU,EAAE;AAC7B,QAAA,OAAA;AACF,OAAA;AACA,MAAA,CAAAD,qBAAA,GAAAhE,cAAc,CAAC8D,OAAO,MAAAE,IAAAA,IAAAA,qBAAA,KAAtBA,KAAAA,CAAAA,IAAAA,qBAAA,CAAAE,IAAA,CAAAlE,cAAc,EAAW+D,CAAC,CAAC,CAAA;KAC3B;AACFI,IAAAA,SAAS,EAAE,SAAXA,SAASA,CAAAC,KAAA,EAAiB;AAAA,MAAA,IAAAC,qBAAA,CAAA;AAAA,MAAA,IAAZvB,KAAK,GAAAsB,KAAA,CAALtB,KAAK,CAAA;AACjB;AACA,MAAA,CAAAuB,qBAAA,GAAArE,cAAc,CAACmE,SAAS,MAAAE,IAAAA,IAAAA,qBAAA,KAAxBA,KAAAA,CAAAA,IAAAA,qBAAA,CAAAH,IAAA,CAAAlE,cAAc,EAAa8C,KAAK,CAAC,CAAA;AACnC,KAAA;AAAE,GAAA,CACH,CAAC,CAAA;AAEN,CAAC,CAAA;AAED,IAAMwB,SAAS,gBAAGlE,cAAK,CAACmE,UAAU,CAAClF,UAAU,CAAC,CAAA;AAE9C,IAAMmF,WAAW,GAAG,SAAdA,WAAWA,CAAAC,KAAA,EAWkC;AAAA,EAAA,IAVjDrD,KAAK,GAAAqD,KAAA,CAALrD,KAAK;IACLsD,IAAI,GAAAD,KAAA,CAAJC,IAAI;IACJC,UAAU,GAAAF,KAAA,CAAVE,UAAU;IACVV,UAAU,GAAAQ,KAAA,CAAVR,UAAU;AACPW,IAAAA,IAAI,GAAA3E,wBAAA,CAAAwE,KAAA,EAAAI,UAAA,CAAA,CAAA;EAOP,IAAIC,aAAa,EAAE,EAAE,oBAAO9B,GAAA,CAAA+B,QAAA,EAAA,EAAI,CAAC,CAAA;EAEjC,oBACE/B,GAAA,UAAAE,aAAA,CAAA;AACE8B,IAAAA,MAAM,EAAE,IAAK;AACbN,IAAAA,IAAI,EAAEA,IAAK;AACXtD,IAAAA,KAAK,EAAEA,KAAM;AACb6D,IAAAA,QAAQ,EAAEN,UAAW;AACrBO,IAAAA,QAAQ,EAAEjB,UAAW;IACrBkB,QAAQ,EAAA,IAAA;AAAA,GAAA,EACJC,sBAAsB,CAACR,IAAI,CAAC,CACjC,CAAC,CAAA;AAEN,CAAC,CAAA;AAED,IAAMS,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,KAAA,EA4BpB/F,GAA4B,EACL;AAAA,EAAA,IA3BrB2B,aAAa,GAAAoE,KAAA,CAAbpE,aAAa;IACbqE,cAAc,GAAAD,KAAA,CAAdC,cAAc;IACdC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;IACR9F,IAAI,GAAA4F,KAAA,CAAJ5F,IAAI;IACJ+F,KAAK,GAAAH,KAAA,CAALG,KAAK;IACLC,aAAa,GAAAJ,KAAA,CAAbI,aAAa;IACbC,WAAW,GAAAL,KAAA,CAAXK,WAAW;IACXC,aAAa,GAAAN,KAAA,CAAbM,aAAa;IACbC,SAAS,GAAAP,KAAA,CAATO,SAAS;IACTnB,IAAI,GAAAY,KAAA,CAAJZ,IAAI;IAAAoB,UAAA,GAAAR,KAAA,CACJS,IAAI;AAAJA,IAAAA,IAAI,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,UAAA;IACfE,kBAAkB,GAAAV,KAAA,CAAlBU,kBAAkB;IAClBC,WAAW,GAAAX,KAAA,CAAXW,WAAW;IACXtC,SAAS,GAAA2B,KAAA,CAAT3B,SAAS;IACTuC,QAAQ,GAAAZ,KAAA,CAARY,QAAQ;IACRzG,MAAM,GAAA6F,KAAA,CAAN7F,MAAM;IACN0G,WAAW,GAAAb,KAAA,CAAXa,WAAW;IACXxG,kBAAkB,GAAA2F,KAAA,CAAlB3F,kBAAkB;IAClBE,eAAe,GAAAyF,KAAA,CAAfzF,eAAe;IACfuG,cAAc,GAAAd,KAAA,CAAdc,cAAc;IACdtE,WAAW,GAAAwD,KAAA,CAAXxD,WAAW;IACXC,OAAO,GAAAuD,KAAA,CAAPvD,OAAO;IACPC,OAAO,GAAAsD,KAAA,CAAPtD,OAAO;IACPpC,sBAAsB,GAAA0F,KAAA,CAAtB1F,sBAAsB;AACnBN,IAAAA,KAAK,GAAAW,wBAAA,CAAAqF,KAAA,EAAAe,UAAA,CAAA,CAAA;AAIV,EAAA,IAAAC,gBAAA,GAAmBC,eAAe,EAAE;IAA5BC,MAAM,GAAAF,gBAAA,CAANE,MAAM,CAAA;EAEd,IAAItF,aAAa,IAAI,QAAQ,EAAE;IAC7B,IAAMuF,SAAS,GAAGC,gBAAgB,CAAC;AACjChH,MAAAA,IAAI,EAAJA,IAAI;AACJD,MAAAA,MAAM,EAANA,MAAM;AACNkH,MAAAA,cAAc,EAAE,GAAG;AACnBH,MAAAA,MAAM,EAANA,MAAM;AACNrD,MAAAA,IAAI,EAAE,SAAA;AACR,KAAC,CAAC,CAAA;IACF,oBACEyD,IAAA,CAACC,OAAO,EAAA;AAACC,MAAAA,KAAK,EAAC,MAAM;MAAAC,QAAA,EAAA,cACnB/D,GAAA,CAACwB,WAAW,EAAA;AACVpD,QAAAA,KAAK,EAAEqF,SAAU;AACjB/B,QAAAA,IAAI,EAAEA,IAAK;QACXC,UAAU,EAAErF,KAAK,CAACqF,UAAW;QAC7BV,UAAU,EAAE3E,KAAK,CAAC2E,UAAAA;OACnB,CAAC,eACFjB,GAAA,CAACsB,SAAS,EAAApB,aAAA,CAAAA,aAAA,CAAA;AACR3D,QAAAA,GAAG,EAAEA,GAAa;AAClBQ,QAAAA,EAAE,EAAC,YAAY;AACf2F,QAAAA,aAAa,EAAEA,aAAc;AAC7BD,QAAAA,KAAK,EAAEA,KAAM;QACbU,WAAW,EAAEA,WAAW,IAAI1G,MAAO;AACnCuH,QAAAA,OAAO,EAAEzB,cAAc,CAAC,eAAe,CAAE;AACzC0B,QAAAA,eAAe,EAAE1B,cAAc,CAAC,eAAe,CAAE;AACjD2B,QAAAA,QAAQ,EAAE3B,cAAc,CAAC,eAAe,CAAE;AAC1CQ,QAAAA,IAAI,EAAEA,IAAK;AACXF,QAAAA,SAAS,EAAEA,SAAU;QACrBzE,KAAK,EAAE,CAACqF,SAAS,CAAE;AACnBU,QAAAA,aAAa,EAAC,iBAAiB;AAC/BnB,QAAAA,kBAAkB,EAAEA,kBAAmB;AACvCC,QAAAA,WAAW,EAAEA,WAAY;AACzBtC,QAAAA,SAAS,EAAEA,SAAU;AACrBuC,QAAAA,QAAQ,EAAEA,QAAS;AACnBP,QAAAA,WAAW,EAAEA,WAAY;AACzBC,QAAAA,aAAa,EAAEA,aAAc;AAC7B/F,QAAAA,eAAe,EAAEA,eAAgB;AACjCH,QAAAA,IAAI,EAAEA,IAAoB;AAC1BC,QAAAA,kBAAkB,EAAEA,kBAAmB;AACvCF,QAAAA,MAAM,EAAEA,MAAO;AACfyB,QAAAA,aAAa,EAAEA,aAAc;AAC7BY,QAAAA,WAAW,EAAEA,WAAY;AACzBC,QAAAA,OAAO,EAAEA,OAAQ;AACjBC,QAAAA,OAAO,EAAEA,OAAQ;AACjBpC,QAAAA,sBAAsB,EAAEA,sBAAAA;AAAuB,OAAA,EAC3CN,KAAK,CAAA,EACLiG,cAAc,CACnB,CAAC,CAAA;AAAA,KACK,CAAC,CAAA;AAEd,GAAA;EAEA,IAAIrE,aAAa,IAAI,OAAO,EAAE;IAC5B,IAAMkG,UAAU,GAAGV,gBAAgB,CAAC;AAClCvD,MAAAA,IAAI,EAAE,SAAS;AACfzD,MAAAA,IAAI,EAAEA,IAAI,CAAC,CAAC,CAAC;AACbD,MAAAA,MAAM,EAANA,MAAM;AACNkH,MAAAA,cAAc,EAAE,GAAG;AACnBH,MAAAA,MAAM,EAANA,MAAAA;AACF,KAAC,CAAC,CAAA;IACF,IAAMa,QAAQ,GAAGX,gBAAgB,CAAC;AAChCvD,MAAAA,IAAI,EAAE,SAAS;AACfzD,MAAAA,IAAI,EAAEA,IAAI,CAAC,CAAC,CAAC;AACbD,MAAAA,MAAM,EAANA,MAAM;AACNkH,MAAAA,cAAc,EAAE,GAAG;AACnBH,MAAAA,MAAM,EAANA,MAAAA;AACF,KAAC,CAAC,CAAA;IAEF,oBACEI,IAAA,CAACC,OAAO,EAAA;AAACC,MAAAA,KAAK,EAAC,MAAM;MAAAC,QAAA,EAAA,cACnB/D,GAAA,CAACwB,WAAW,EAAA;AACVpD,QAAAA,KAAK,EAAAkG,EAAAA,CAAAA,MAAA,CAAKF,UAAU,CAAG;AACvB1C,QAAAA,IAAI,EAAEA,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAJA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAE6C,KAAM;QAClB5C,UAAU,EAAErF,KAAK,CAACqF,UAAW;QAC7BV,UAAU,EAAE3E,KAAK,CAAC2E,UAAAA;AAAW,OAC9B,CAAC,eAEFjB,GAAA,CAACwB,WAAW,EAAAtB,aAAA,CAAA;AACV9B,QAAAA,KAAK,EAAEiG,QAAS;AAChB3C,QAAAA,IAAI,EAAEA,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAJA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAE8C,GAAI;QAChB7C,UAAU,EAAErF,KAAK,CAACqF,UAAW;QAC7BV,UAAU,EAAE3E,KAAK,CAAC2E,UAAAA;AAAW,OAAA,EACzBmB,sBAAsB,CAAC9F,KAAK,CAAC,CAClC,CAAC,eAEF0D,GAAA,CAACsB,SAAS,EAAApB,aAAA,CAAAA,aAAA,CAAA;AACR3D,QAAAA,GAAG,EAAEA,GAAa;AAClBQ,QAAAA,EAAE,EAAC,YAAY;AACf2F,QAAAA,aAAa,EAAEA,aAAc;AAC7BD,QAAAA,KAAK,EAAEgC,OAAA,CAAOhC,KAAK,MAAK,QAAQ,GAAGA,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAE8B,KAAK,GAAG9B,KAAM;AACxDU,QAAAA,WAAW,EAAEuB,qBAAqB,CAACvB,WAAW,EAAE1G,MAAM,CAAE;AACxDuH,QAAAA,OAAO,EAAEzB,cAAc,CAAC,eAAe,CAAE;AACzC0B,QAAAA,eAAe,EAAE1B,cAAc,CAAC,eAAe,CAAE;AACjD2B,QAAAA,QAAQ,EAAE3B,cAAc,CAAC,eAAe,CAAE;AAC1CQ,QAAAA,IAAI,EAAEA,IAAK;AACXF,QAAAA,SAAS,EAAEA,SAAU;AACrBzE,QAAAA,KAAK,EAAE,CAACgG,UAAU,EAAEC,QAAQ,CAAE;AAC9BF,QAAAA,aAAa,EAAC,sBAAsB;AACpCnB,QAAAA,kBAAkB,EAAEA,kBAAmB;AACvCC,QAAAA,WAAW,EACTwB,OAAA,CAAOxB,WAAW,MAAK,QAAQ,GAC1BA,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAXA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAW,CAAwBsB,KAAK,GACzCtB,WACL;AACDtC,QAAAA,SAAS,EACP8D,OAAA,CAAO9D,SAAS,MAAK,QAAQ,GAAIA,SAAS,KAAA,IAAA,IAATA,SAAS,KAATA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAS,CAAwB4D,KAAK,GAAG5D,SAC3E;AACDuC,QAAAA,QAAQ,EACNuB,OAAA,CAAOvB,QAAQ,MAAK,QAAQ,GAAIA,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAQ,CAAwBqB,KAAK,GAAGrB,QACzE;AACDP,QAAAA,WAAW,EAAEA,WAAY;AACzBC,QAAAA,aAAa,EAAEA,aAAc;AAC7BnG,QAAAA,MAAM,EAAEA,MAAO;AACfI,QAAAA,eAAe,EAAEA,eAAgB;AACjCH,QAAAA,IAAI,EAAEA,IAAmC;AACzCC,QAAAA,kBAAkB,EAAEA,kBAAmB;AACvCuB,QAAAA,aAAa,EAAEA,aAAc;AAC7BY,QAAAA,WAAW,EAAEA,WAAY;AACzBC,QAAAA,OAAO,EAAEA,OAAQ;AACjBC,QAAAA,OAAO,EAAEA,OAAQ;AACjBpC,QAAAA,sBAAsB,EAAEA,sBAAAA;AAAuB,OAAA,EAC3CN,KAAK,CAAA,EACLiG,cAAc,CACnB,CAAC,CAAA;AAAA,KACK,CAAC,CAAA;AAEd,GAAA;AAEA,EAAA,oBAAOvC,GAAA,CAAA+B,QAAA,EAAA,EAAI,CAAC,CAAA;AACd,CAAC,CAAA;AAED,IAAM4C,eAAe,gBAAGvH,cAAK,CAACmE,UAAU,CAACc,gBAAgB;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createContext, useContext } from 'react';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
var DatePickerContext = /*#__PURE__*/createContext(undefined);
|
|
5
|
+
var DatePickerProvider = function DatePickerProvider(_ref) {
|
|
6
|
+
var children = _ref.children,
|
|
7
|
+
isDatePickerBodyOpen = _ref.isDatePickerBodyOpen;
|
|
8
|
+
var value = {
|
|
9
|
+
isDatePickerBodyOpen: isDatePickerBodyOpen
|
|
10
|
+
};
|
|
11
|
+
return /*#__PURE__*/jsx(DatePickerContext.Provider, {
|
|
12
|
+
value: value,
|
|
13
|
+
children: children
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
var useDatePickerContext = function useDatePickerContext() {
|
|
17
|
+
var context = useContext(DatePickerContext);
|
|
18
|
+
return context;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export { DatePickerProvider, useDatePickerContext };
|
|
22
|
+
//# sourceMappingURL=DatePickerContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePickerContext.js","sources":["../../../../../../src/components/DatePicker/DatePickerContext.tsx"],"sourcesContent":["import React, { createContext, useContext } from 'react';\nimport type { ReactNode } from 'react';\n\ninterface DatePickerContextType {\n isDatePickerBodyOpen: boolean;\n}\n\nconst DatePickerContext = createContext<DatePickerContextType | undefined>(undefined);\n\ninterface DatePickerProviderProps {\n children: ReactNode;\n isDatePickerBodyOpen: boolean;\n}\n\nexport const DatePickerProvider: React.FC<DatePickerProviderProps> = ({\n children,\n isDatePickerBodyOpen,\n}) => {\n const value: DatePickerContextType = {\n isDatePickerBodyOpen,\n };\n\n return <DatePickerContext.Provider value={value}>{children}</DatePickerContext.Provider>;\n};\n\nexport const useDatePickerContext = (): DatePickerContextType | undefined => {\n const context = useContext(DatePickerContext);\n\n return context;\n};\n"],"names":["DatePickerContext","createContext","undefined","DatePickerProvider","_ref","children","isDatePickerBodyOpen","value","_jsx","Provider","useDatePickerContext","context","useContext"],"mappings":";;;AAOA,IAAMA,iBAAiB,gBAAGC,aAAa,CAAoCC,SAAS,CAAC,CAAA;IAOxEC,kBAAqD,GAAG,SAAxDA,kBAAqDA,CAAAC,IAAA,EAG5D;AAAA,EAAA,IAFJC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,oBAAoB,GAAAF,IAAA,CAApBE,oBAAoB,CAAA;AAEpB,EAAA,IAAMC,KAA4B,GAAG;AACnCD,IAAAA,oBAAoB,EAApBA,oBAAAA;GACD,CAAA;AAED,EAAA,oBAAOE,GAAA,CAACR,iBAAiB,CAACS,QAAQ,EAAA;AAACF,IAAAA,KAAK,EAAEA,KAAM;AAAAF,IAAAA,QAAA,EAAEA,QAAAA;AAAQ,GAA6B,CAAC,CAAA;AAC1F,EAAC;IAEYK,oBAAoB,GAAG,SAAvBA,oBAAoBA,GAA4C;AAC3E,EAAA,IAAMC,OAAO,GAAGC,UAAU,CAACZ,iBAAiB,CAAC,CAAA;AAE7C,EAAA,OAAOW,OAAO,CAAA;AAChB;;;;"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
-
import { usePresetContext } from './PresetContext.js';
|
|
3
2
|
import { QuickSelectionItem } from './QuickSelectionItem.web.js';
|
|
4
3
|
import '../../Box/index.js';
|
|
5
4
|
import '../../Box/BaseBox/index.js';
|
|
@@ -22,9 +21,8 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
22
21
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
23
22
|
var PresetSideBar = function PresetSideBar(_ref) {
|
|
24
23
|
var onSelection = _ref.onSelection,
|
|
25
|
-
isMobile = _ref.isMobile
|
|
26
|
-
|
|
27
|
-
presetStates = _usePresetContext.presetStates;
|
|
24
|
+
isMobile = _ref.isMobile,
|
|
25
|
+
presetStates = _ref.presetStates;
|
|
28
26
|
if (presetStates.length === 0) return /*#__PURE__*/jsx(Fragment, {});
|
|
29
27
|
if (isMobile) {
|
|
30
28
|
return /*#__PURE__*/jsxs(Box, {
|
package/build/lib/web/development/components/DatePicker/QuickSelection/PresetSideBar.web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresetSideBar.web.js","sources":["../../../../../../../src/components/DatePicker/QuickSelection/PresetSideBar.web.tsx"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"PresetSideBar.web.js","sources":["../../../../../../../src/components/DatePicker/QuickSelection/PresetSideBar.web.tsx"],"sourcesContent":["import type { PresetSideBarProps } from './types';\nimport { QuickSelectionItem } from './QuickSelectionItem.web';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Chip, ChipGroup } from '~components/Chip';\nimport { Divider } from '~components/Divider';\nimport { size } from '~tokens/global';\nimport { makeSpace } from '~utils';\nimport { makeAccessible } from '~utils/makeAccessible';\n\nconst PresetSideBar = ({\n onSelection,\n isMobile,\n presetStates,\n}: PresetSideBarProps): React.ReactElement => {\n if (presetStates.length === 0) return <></>;\n\n if (isMobile) {\n return (\n <Box>\n <Divider marginTop=\"spacing.4\" />\n <ChipGroup\n marginTop=\"spacing.7\"\n size=\"small\"\n selectionType=\"single\"\n accessibilityLabel=\"Select Presets\"\n onChange={({ values }) => {\n const selectedPreset = presetStates.find((state) => state.preset.label === values[0]);\n if (selectedPreset) {\n onSelection(selectedPreset.preset.value);\n }\n }}\n >\n {presetStates.map(({ preset }, index) => {\n return (\n <Chip value={preset.label} key={index} data-analytics-name={preset.label}>\n {preset.label}\n </Chip>\n );\n })}\n </ChipGroup>\n </Box>\n );\n }\n\n return (\n <BaseBox\n padding=\"spacing.5\"\n display=\"flex\"\n flexDirection=\"column\"\n gap=\"spacing.2\"\n backgroundColor=\"surface.background.gray.moderate\"\n minWidth={makeSpace(size[160])}\n borderRightColor=\"surface.border.gray.muted\"\n borderRightStyle=\"solid\"\n borderRightWidth=\"thin\"\n {...makeAccessible({ role: 'listbox', label: 'Select Presets' })}\n >\n {presetStates.map(({ preset, isSelected }, index) => {\n return (\n <QuickSelectionItem\n key={index}\n isSelected={isSelected}\n onClick={() => onSelection(preset.value)}\n >\n {preset.label}\n </QuickSelectionItem>\n );\n })}\n </BaseBox>\n );\n};\n\nexport { PresetSideBar };\n"],"names":["PresetSideBar","_ref","onSelection","isMobile","presetStates","length","_jsx","_Fragment","_jsxs","Box","children","Divider","marginTop","ChipGroup","size","selectionType","accessibilityLabel","onChange","_ref2","values","selectedPreset","find","state","preset","label","value","map","_ref3","index","Chip","BaseBox","_objectSpread","padding","display","flexDirection","gap","backgroundColor","minWidth","makeSpace","borderRightColor","borderRightStyle","borderRightWidth","makeAccessible","role","_ref4","isSelected","QuickSelectionItem","onClick"],"mappings":"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"}
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
import 'react';
|
|
2
|
-
import { usePresetContext } from './PresetContext.js';
|
|
3
2
|
import '../../ActionList/index.js';
|
|
4
3
|
import '../../Dropdown/index.js';
|
|
5
4
|
import { InputDropdownButton } from '../../Dropdown/InputDropdownButton.web.js';
|
|
5
|
+
import '../../Icons/index.js';
|
|
6
6
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
7
|
import { Dropdown } from '../../Dropdown/Dropdown.js';
|
|
8
|
+
import CalendarIcon from '../../Icons/CalendarIcon/CalendarIcon.js';
|
|
8
9
|
import { DropdownOverlay } from '../../Dropdown/DropdownOverlay.web.js';
|
|
9
10
|
import { ActionList } from '../../ActionList/ActionList.js';
|
|
10
11
|
import { ActionListItem } from '../../ActionList/ActionListItem.js';
|
|
11
12
|
|
|
12
|
-
var
|
|
13
|
+
var renderPresetDropdown = function renderPresetDropdown(_ref) {
|
|
13
14
|
var onSelection = _ref.onSelection,
|
|
14
|
-
onOpenCalendar = _ref.onOpenCalendar
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
selectedPresetLabel = _usePresetContext.selectedPresetLabel;
|
|
15
|
+
onOpenCalendar = _ref.onOpenCalendar,
|
|
16
|
+
presetStates = _ref.presetStates,
|
|
17
|
+
selectedPresetLabel = _ref.selectedPresetLabel;
|
|
18
18
|
return /*#__PURE__*/jsxs(Dropdown, {
|
|
19
19
|
children: [/*#__PURE__*/jsx(InputDropdownButton, {
|
|
20
|
-
value: selectedPresetLabel !== null && selectedPresetLabel !== void 0 ? selectedPresetLabel : 'Custom'
|
|
20
|
+
value: selectedPresetLabel !== null && selectedPresetLabel !== void 0 ? selectedPresetLabel : 'Custom',
|
|
21
|
+
icon: CalendarIcon
|
|
21
22
|
}), /*#__PURE__*/jsx(DropdownOverlay, {
|
|
22
23
|
children: /*#__PURE__*/jsx(ActionList, {
|
|
23
24
|
children: presetStates.map(function (_ref2) {
|
|
@@ -42,5 +43,5 @@ var PresetDropdown = function PresetDropdown(_ref) {
|
|
|
42
43
|
});
|
|
43
44
|
};
|
|
44
45
|
|
|
45
|
-
export {
|
|
46
|
-
//# sourceMappingURL=
|
|
46
|
+
export { renderPresetDropdown };
|
|
47
|
+
//# sourceMappingURL=renderPresetDropdown.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderPresetDropdown.web.js","sources":["../../../../../../../src/components/DatePicker/QuickSelection/renderPresetDropdown.web.tsx"],"sourcesContent":["import React from 'react';\nimport type { renderPresetDropdownProps } from './types';\nimport { ActionList, ActionListItem } from '~components/ActionList';\nimport { Dropdown, DropdownOverlay } from '~components/Dropdown';\nimport { InputDropdownButton } from '~components/Dropdown/InputDropdownButton';\nimport { CalendarIcon } from '~components/Icons';\n\nconst renderPresetDropdown = ({\n onSelection,\n onOpenCalendar,\n presetStates,\n selectedPresetLabel,\n}: renderPresetDropdownProps): React.ReactElement => {\n return (\n <Dropdown>\n <InputDropdownButton value={selectedPresetLabel ?? 'Custom'} icon={CalendarIcon} />\n <DropdownOverlay>\n <ActionList>\n {presetStates.map(({ preset, isSelected, isCustomType }) => (\n <ActionListItem\n key={preset.label}\n title={preset.label}\n value={preset.label}\n isSelected={isSelected}\n onClick={() => {\n onSelection(preset.value);\n // If this is a custom preset selection, also trigger calendar opening\n if (isCustomType && onOpenCalendar) {\n onOpenCalendar();\n }\n }}\n />\n ))}\n </ActionList>\n </DropdownOverlay>\n </Dropdown>\n );\n};\n\nexport { renderPresetDropdown };\n"],"names":["renderPresetDropdown","_ref","onSelection","onOpenCalendar","presetStates","selectedPresetLabel","_jsxs","Dropdown","children","_jsx","InputDropdownButton","value","icon","CalendarIcon","DropdownOverlay","ActionList","map","_ref2","preset","isSelected","isCustomType","ActionListItem","title","label","onClick"],"mappings":";;;;;;;;;;;;AAOA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,IAAA,EAK2B;AAAA,EAAA,IAJnDC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IACXC,cAAc,GAAAF,IAAA,CAAdE,cAAc;IACdC,YAAY,GAAAH,IAAA,CAAZG,YAAY;IACZC,mBAAmB,GAAAJ,IAAA,CAAnBI,mBAAmB,CAAA;EAEnB,oBACEC,IAAA,CAACC,QAAQ,EAAA;IAAAC,QAAA,EAAA,cACPC,GAAA,CAACC,mBAAmB,EAAA;AAACC,MAAAA,KAAK,EAAEN,mBAAmB,KAAA,IAAA,IAAnBA,mBAAmB,KAAnBA,KAAAA,CAAAA,GAAAA,mBAAmB,GAAI,QAAS;AAACO,MAAAA,IAAI,EAAEC,YAAAA;AAAa,KAAE,CAAC,eACnFJ,GAAA,CAACK,eAAe,EAAA;MAAAN,QAAA,eACdC,GAAA,CAACM,UAAU,EAAA;AAAAP,QAAAA,QAAA,EACRJ,YAAY,CAACY,GAAG,CAAC,UAAAC,KAAA,EAAA;AAAA,UAAA,IAAGC,MAAM,GAAAD,KAAA,CAANC,MAAM;YAAEC,UAAU,GAAAF,KAAA,CAAVE,UAAU;YAAEC,YAAY,GAAAH,KAAA,CAAZG,YAAY,CAAA;UAAA,oBACnDX,GAAA,CAACY,cAAc,EAAA;YAEbC,KAAK,EAAEJ,MAAM,CAACK,KAAM;YACpBZ,KAAK,EAAEO,MAAM,CAACK,KAAM;AACpBJ,YAAAA,UAAU,EAAEA,UAAW;AACvBK,YAAAA,OAAO,EAAE,SAATA,OAAOA,GAAQ;AACbtB,cAAAA,WAAW,CAACgB,MAAM,CAACP,KAAK,CAAC,CAAA;AACzB;cACA,IAAIS,YAAY,IAAIjB,cAAc,EAAE;AAClCA,gBAAAA,cAAc,EAAE,CAAA;AAClB,eAAA;AACF,aAAA;WAVKe,EAAAA,MAAM,CAACK,KAWb,CAAC,CAAA;SACH,CAAA;OACS,CAAA;AAAC,KACE,CAAC,CAAA;AAAA,GACV,CAAC,CAAA;AAEf;;;;"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
2
|
import { isSamePreset } from './utils.js';
|
|
3
|
-
import { jsx } from 'react/jsx-runtime';
|
|
4
3
|
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var children = _ref.children,
|
|
8
|
-
presets = _ref.presets,
|
|
4
|
+
var usePresetState = function usePresetState(_ref) {
|
|
5
|
+
var presets = _ref.presets,
|
|
9
6
|
selectedPreset = _ref.selectedPreset,
|
|
10
7
|
currentDate = _ref.currentDate;
|
|
11
|
-
|
|
8
|
+
return useMemo(function () {
|
|
12
9
|
// No presets provided → return empty state
|
|
13
10
|
if (!presets) {
|
|
14
11
|
return {
|
|
@@ -104,19 +101,7 @@ var PresetProvider = function PresetProvider(_ref) {
|
|
|
104
101
|
effectiveSelectionType: effectiveSelectionType // 'single' | 'range' based on preset analysis
|
|
105
102
|
};
|
|
106
103
|
}, [presets, selectedPreset, currentDate]); // Recalculate when any of these change
|
|
107
|
-
|
|
108
|
-
return /*#__PURE__*/jsx(PresetContext.Provider, {
|
|
109
|
-
value: contextValue,
|
|
110
|
-
children: children
|
|
111
|
-
});
|
|
112
|
-
};
|
|
113
|
-
var usePresetContext = function usePresetContext() {
|
|
114
|
-
var context = useContext(PresetContext);
|
|
115
|
-
if (!context) {
|
|
116
|
-
throw new Error('usePresetContext must be used within PresetProvider');
|
|
117
|
-
}
|
|
118
|
-
return context;
|
|
119
104
|
};
|
|
120
105
|
|
|
121
|
-
export {
|
|
122
|
-
//# sourceMappingURL=
|
|
106
|
+
export { usePresetState };
|
|
107
|
+
//# sourceMappingURL=usePresetState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePresetState.js","sources":["../../../../../../../src/components/DatePicker/QuickSelection/usePresetState.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport type { DatesRangeValue } from '../types';\nimport { isSamePreset } from './utils';\nimport type { PresetState, UsePresetStateProps, UsePresetStateReturn } from './types';\n\nexport const usePresetState = ({\n presets,\n selectedPreset,\n currentDate,\n}: UsePresetStateProps): UsePresetStateReturn => {\n return useMemo(() => {\n // No presets provided → return empty state\n if (!presets) {\n return {\n presetStates: [],\n selectedPresetIndex: null,\n selectedPresetLabel: null,\n isCustomSelected: false,\n effectiveSelectionType: null, // Default when no presets\n };\n }\n\n // STEP 1: Calculate each preset's value and type\n // Example: \"Last 7 days\" → [2024-01-01, 2024-01-08], isCustomType: false\n // Example: \"Custom\" → [null, null], isCustomType: true\n const presetStates: PresetState[] = presets.map((preset) => {\n let presetValue: DatesRangeValue | null = null;\n let isCustomType = false;\n\n presetValue = preset.value(currentDate); // Call function: \"Last 7 days\" → [startDate, endDate]\n // Check if preset returns valid dates (defined) or null (custom)\n isCustomType = !(presetValue?.[0] instanceof Date && presetValue?.[1] instanceof Date);\n\n return {\n preset, // Original preset object { label: \"Last 7 days\", value: fn }\n value: presetValue, // Calculated dates [2024-01-01, 2024-01-08] or [null, null]\n isSelected: false, // ⏳ Will calculate this next\n isCustomType, // true = Custom preset, false = Defined preset\n };\n });\n\n // STEP 2: Figure out which preset is currently selected\n // Example: User selected [2024-01-01, 2024-01-08] → matches \"Last 7 days\" preset\n let selectedPresetIndex: number | null = null;\n let isCustomSelected = false;\n\n if (!selectedPreset) {\n // No dates selected → find and select \"Custom\" preset by default\n selectedPresetIndex = presetStates.findIndex((state) => state.isCustomType);\n isCustomSelected = selectedPresetIndex !== -1;\n } else {\n // User has selected dates → see if they match any defined preset\n // Example: selectedPreset = [2024-01-01, 2024-01-08], check if matches \"Last 7 days\"\n selectedPresetIndex = presetStates.findIndex(\n (state) => !state.isCustomType && isSamePreset(selectedPreset, state.value),\n );\n\n if (selectedPresetIndex === -1) {\n // No match found → user made custom selection → select \"Custom\" preset\n selectedPresetIndex = presetStates.findIndex((state) => state.isCustomType);\n isCustomSelected = true;\n }\n }\n\n // STEP 3: Mark the selected preset as selected\n if (selectedPresetIndex !== -1) {\n presetStates[selectedPresetIndex].isSelected = true;\n }\n\n // STEP 4: Get the label for display\n // Example: selectedPresetIndex = 0 → presetStates[0].preset.label = \"Last 7 days\"\n const selectedPresetLabel =\n selectedPresetIndex !== -1 ? presetStates[selectedPresetIndex].preset.label : null;\n\n // STEP 5: Calculate effective selection type based on selected preset\n // If preset returns same-day range (like \"Today\"), display as single date\n let effectiveSelectionType: 'single' | 'range' = 'range'; // Default to range\n\n if (selectedPresetIndex !== -1) {\n const selectedPresetState = presetStates[selectedPresetIndex];\n\n // Check if selected preset represents same day (like \"Today\" preset)\n if (\n selectedPresetState.value?.[0] &&\n selectedPresetState.value?.[1] &&\n selectedPresetState.value[0].toDateString() === selectedPresetState.value[1].toDateString()\n ) {\n effectiveSelectionType = 'single'; // Same day = display as single\n } else {\n effectiveSelectionType = 'range'; // Different days = display as range\n }\n }\n\n // Return final calculated state - this gets shared with all components\n return {\n presetStates, // Array: [{ preset, value, isSelected, isCustomType }, ...]\n selectedPresetIndex, // Number: 0, 1, 2... or null\n selectedPresetLabel, // String: \"Last 7 days\" or \"Custom\" or null\n isCustomSelected, // Boolean: true if custom dates selected\n effectiveSelectionType, // 'single' | 'range' based on preset analysis\n };\n }, [presets, selectedPreset, currentDate]); // Recalculate when any of these change\n};\n"],"names":["usePresetState","_ref","presets","selectedPreset","currentDate","useMemo","presetStates","selectedPresetIndex","selectedPresetLabel","isCustomSelected","effectiveSelectionType","map","preset","_presetValue","_presetValue2","presetValue","isCustomType","value","Date","isSelected","findIndex","state","isSamePreset","label","_selectedPresetState$","_selectedPresetState$2","selectedPresetState","toDateString"],"mappings":"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"}
|
|
@@ -291,11 +291,12 @@ var FocusRingWrapper = /*#__PURE__*/styled(BaseBox).withConfig({
|
|
|
291
291
|
})(function (_ref1) {
|
|
292
292
|
var theme = _ref1.theme,
|
|
293
293
|
currentInteraction = _ref1.currentInteraction,
|
|
294
|
-
isTableInputCell = _ref1.isTableInputCell
|
|
294
|
+
isTableInputCell = _ref1.isTableInputCell,
|
|
295
|
+
shouldAddLimitedFocus = _ref1.shouldAddLimitedFocus;
|
|
295
296
|
return {
|
|
296
297
|
borderRadius: makeBorderSize(isTableInputCell ? theme.border.radius.none : theme.border.radius.medium),
|
|
297
298
|
width: '100%',
|
|
298
|
-
'&:focus-within': !isTableInputCell ? _objectSpread(_objectSpread({}, getFocusRingStyles({
|
|
299
|
+
'&:focus-within': !isTableInputCell && (shouldAddLimitedFocus ? currentInteraction === 'focus' : true) ? _objectSpread(_objectSpread({}, getFocusRingStyles({
|
|
299
300
|
theme: theme
|
|
300
301
|
})), {}, {
|
|
301
302
|
transitionDuration: castWebType(makeMotionTime(getIn(theme.motion.duration, baseInputBorderBackgroundMotion[currentInteraction === 'focus' ? 'enter' : 'exit'].duration))),
|
|
@@ -476,6 +477,9 @@ var _BaseInput = function _BaseInput(_ref10, ref) {
|
|
|
476
477
|
}
|
|
477
478
|
}
|
|
478
479
|
var isTextArea = as === 'textarea';
|
|
480
|
+
var hasLeadingDropdown = Boolean(leadingDropDown);
|
|
481
|
+
var hasTrailingDropdown = Boolean(trailingDropDown);
|
|
482
|
+
var shouldAddLimitedFocus = hasLeadingDropdown || hasTrailingDropdown;
|
|
479
483
|
return /*#__PURE__*/jsxs(BaseBox, _objectSpread(_objectSpread(_objectSpread({
|
|
480
484
|
ref: getOuterMotionRef({
|
|
481
485
|
_motionMeta: _motionMeta,
|
|
@@ -513,6 +517,7 @@ var _BaseInput = function _BaseInput(_ref10, ref) {
|
|
|
513
517
|
currentInteraction: currentInteraction,
|
|
514
518
|
isTableInputCell: isTableInputCell,
|
|
515
519
|
className: "focus-ring-wrapper",
|
|
520
|
+
shouldAddLimitedFocus: shouldAddLimitedFocus,
|
|
516
521
|
children: /*#__PURE__*/jsxs(BaseInputWrapper, {
|
|
517
522
|
isDropdownTrigger: isDropdownTrigger,
|
|
518
523
|
isTextArea: isTextArea,
|
|
@@ -575,7 +580,6 @@ var _BaseInput = function _BaseInput(_ref10, ref) {
|
|
|
575
580
|
size: _size,
|
|
576
581
|
numberOfLines: numberOfLines,
|
|
577
582
|
isTextArea: isTextArea,
|
|
578
|
-
hasLeadingDropDown: Boolean(leadingDropDown),
|
|
579
583
|
children: /*#__PURE__*/jsx(StyledBaseInput, _objectSpread(_objectSpread({
|
|
580
584
|
as: as,
|
|
581
585
|
id: inputId,
|