@razorpay/blade 12.110.0 → 12.111.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/native/components/AnimateInteractions/AnimateInteractions.native.js +5 -5
- package/build/lib/native/components/AnimateInteractions/AnimateInteractions.native.js.map +1 -1
- package/build/lib/native/components/AnimateInteractions/AnimateInteractionsProvider.js +6 -0
- package/build/lib/native/components/AnimateInteractions/AnimateInteractionsProvider.js.map +1 -0
- package/build/lib/native/components/BaseMotion/BaseMotion.native.js +22 -0
- package/build/lib/native/components/BaseMotion/BaseMotion.native.js.map +1 -0
- package/build/lib/native/components/BaseMotion/baseMotionInterpreter.native.js +11 -0
- package/build/lib/native/components/BaseMotion/baseMotionInterpreter.native.js.map +1 -0
- package/build/lib/native/components/BaseMotion/baseMotionUtils.js +4 -0
- package/build/lib/native/components/BaseMotion/baseMotionUtils.js.map +1 -0
- package/build/lib/native/components/BaseMotion/index.js +3 -0
- package/build/lib/native/components/BaseMotion/index.js.map +1 -0
- package/build/lib/native/components/BaseMotion/types.js +2 -0
- package/build/lib/native/components/BaseMotion/types.js.map +1 -0
- package/build/lib/native/components/Dropdown/FilterChipSelectInput.native.js +2 -1
- package/build/lib/native/components/Dropdown/FilterChipSelectInput.native.js.map +1 -1
- package/build/lib/native/components/Dropdown/filterChipSelectInputUtils.js +4 -0
- package/build/lib/native/components/Dropdown/filterChipSelectInputUtils.js.map +1 -0
- package/build/lib/native/components/Fade/Fade.native.js +7 -5
- package/build/lib/native/components/Fade/Fade.native.js.map +1 -1
- package/build/lib/native/components/FilterChip/BaseFilterChip.native.js +2 -2
- package/build/lib/native/components/FilterChip/BaseFilterChip.native.js.map +1 -1
- package/build/lib/native/components/Morph/Morph.native.js +9 -5
- package/build/lib/native/components/Morph/Morph.native.js.map +1 -1
- package/build/lib/native/components/Move/Move.native.js +8 -5
- package/build/lib/native/components/Move/Move.native.js.map +1 -1
- package/build/lib/native/components/Scale/Scale.native.js +7 -5
- package/build/lib/native/components/Scale/Scale.native.js.map +1 -1
- package/build/lib/native/components/SegmentedControl/SegmentedControl.native.js +27 -0
- package/build/lib/native/components/SegmentedControl/SegmentedControl.native.js.map +1 -0
- package/build/lib/native/components/SegmentedControl/SegmentedControlContext.js +8 -0
- package/build/lib/native/components/SegmentedControl/SegmentedControlContext.js.map +1 -0
- package/build/lib/native/components/SegmentedControl/SegmentedControlItem.native.js +18 -0
- package/build/lib/native/components/SegmentedControl/SegmentedControlItem.native.js.map +1 -0
- package/build/lib/native/components/SegmentedControl/index.js +3 -0
- package/build/lib/native/components/SegmentedControl/index.js.map +1 -0
- package/build/lib/native/components/SegmentedControl/segmentedControlTokens.js +4 -0
- package/build/lib/native/components/SegmentedControl/segmentedControlTokens.js.map +1 -0
- package/build/lib/native/components/Slide/Slide.native.js +7 -5
- package/build/lib/native/components/Slide/Slide.native.js.map +1 -1
- package/build/lib/native/components/Stagger/Stagger.native.js +10 -5
- package/build/lib/native/components/Stagger/Stagger.native.js.map +1 -1
- package/build/lib/native/components/Stagger/StaggerProvider.js +6 -0
- package/build/lib/native/components/Stagger/StaggerProvider.js.map +1 -0
- package/build/lib/native/components/index.js +3 -0
- package/build/lib/native/components/index.js.map +1 -1
- package/build/lib/native/utils/metaAttribute/metaConstants.js +1 -1
- package/build/lib/native/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/lib/native/utils/msToSeconds.js +4 -0
- package/build/lib/native/utils/msToSeconds.js.map +1 -0
- package/build/lib/web/development/_virtual/flatten.js +1 -1
- package/build/lib/web/development/_virtual/flatten3.js +1 -1
- package/build/lib/web/development/components/AnimateInteractions/AnimateInteractions.web.js +1 -1
- package/build/lib/web/development/components/AnimateInteractions/AnimateInteractionsProvider.js +2 -1
- package/build/lib/web/development/components/AnimateInteractions/AnimateInteractionsProvider.js.map +1 -1
- package/build/lib/web/development/components/AnimateInteractions/{useFocusWithin.js → useFocusWithin.web.js} +1 -1
- package/build/lib/web/development/components/AnimateInteractions/useFocusWithin.web.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js +8 -1
- package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.js +4 -1
- package/build/lib/web/development/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/FilterChipGroup.web.js +40 -5
- package/build/lib/web/development/components/Dropdown/FilterChipGroup.web.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js +11 -21
- package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/filterChipSelectInputUtils.js +46 -0
- package/build/lib/web/development/components/Dropdown/filterChipSelectInputUtils.js.map +1 -0
- package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js +35 -11
- package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js.map +1 -1
- package/build/lib/web/development/components/SegmentedControl/SegmentedControl.web.js +196 -0
- package/build/lib/web/development/components/SegmentedControl/SegmentedControl.web.js.map +1 -0
- package/build/lib/web/development/components/SegmentedControl/SegmentedControlContext.js +18 -0
- package/build/lib/web/development/components/SegmentedControl/SegmentedControlContext.js.map +1 -0
- package/build/lib/web/development/components/SegmentedControl/SegmentedControlIndicator.web.js +109 -0
- package/build/lib/web/development/components/SegmentedControl/SegmentedControlIndicator.web.js.map +1 -0
- package/build/lib/web/development/components/SegmentedControl/SegmentedControlItem.web.js +170 -0
- package/build/lib/web/development/components/SegmentedControl/SegmentedControlItem.web.js.map +1 -0
- package/build/lib/web/development/components/SegmentedControl/index.js +3 -0
- package/build/lib/web/development/components/SegmentedControl/index.js.map +1 -0
- package/build/lib/web/development/components/SegmentedControl/segmentedControlTokens.js +53 -0
- package/build/lib/web/development/components/SegmentedControl/segmentedControlTokens.js.map +1 -0
- package/build/lib/web/development/components/Stagger/StaggerProvider.js.map +1 -1
- package/build/lib/web/development/components/index.js +3 -0
- package/build/lib/web/development/components/index.js.map +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/array/flatten.js +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
- package/build/lib/web/development/utils/metaAttribute/metaConstants.js +3 -1
- package/build/lib/web/development/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/lib/web/production/components/AnimateInteractions/AnimateInteractions.web.js +1 -1
- package/build/lib/web/production/components/AnimateInteractions/AnimateInteractionsProvider.js +2 -1
- package/build/lib/web/production/components/AnimateInteractions/AnimateInteractionsProvider.js.map +1 -1
- package/build/lib/web/production/components/AnimateInteractions/{useFocusWithin.js → useFocusWithin.web.js} +1 -1
- package/build/lib/web/production/components/AnimateInteractions/useFocusWithin.web.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js +8 -1
- package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.js +4 -1
- package/build/lib/web/production/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/FilterChipGroup.web.js +40 -5
- package/build/lib/web/production/components/Dropdown/FilterChipGroup.web.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js +11 -21
- package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/filterChipSelectInputUtils.js +46 -0
- package/build/lib/web/production/components/Dropdown/filterChipSelectInputUtils.js.map +1 -0
- package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js +35 -11
- package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js.map +1 -1
- package/build/lib/web/production/components/SegmentedControl/SegmentedControl.web.js +196 -0
- package/build/lib/web/production/components/SegmentedControl/SegmentedControl.web.js.map +1 -0
- package/build/lib/web/production/components/SegmentedControl/SegmentedControlContext.js +18 -0
- package/build/lib/web/production/components/SegmentedControl/SegmentedControlContext.js.map +1 -0
- package/build/lib/web/production/components/SegmentedControl/SegmentedControlIndicator.web.js +109 -0
- package/build/lib/web/production/components/SegmentedControl/SegmentedControlIndicator.web.js.map +1 -0
- package/build/lib/web/production/components/SegmentedControl/SegmentedControlItem.web.js +170 -0
- package/build/lib/web/production/components/SegmentedControl/SegmentedControlItem.web.js.map +1 -0
- package/build/lib/web/production/components/SegmentedControl/index.js +3 -0
- package/build/lib/web/production/components/SegmentedControl/index.js.map +1 -0
- package/build/lib/web/production/components/SegmentedControl/segmentedControlTokens.js +53 -0
- package/build/lib/web/production/components/SegmentedControl/segmentedControlTokens.js.map +1 -0
- package/build/lib/web/production/components/Stagger/StaggerProvider.js.map +1 -1
- package/build/lib/web/production/components/index.js +3 -0
- package/build/lib/web/production/components/index.js.map +1 -1
- package/build/lib/web/production/utils/metaAttribute/metaConstants.js +3 -1
- package/build/lib/web/production/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/types/components/index.d.ts +238 -8
- package/build/types/components/index.native.d.ts +410 -14
- package/package.json +1 -1
- package/build/lib/web/development/components/AnimateInteractions/useFocusWithin.js.map +0 -1
- package/build/lib/web/production/components/AnimateInteractions/useFocusWithin.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseDatePicker.web.js","sources":["../../../../../../src/components/DatePicker/BaseDatePicker.web.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { DatesProvider } from '@mantine/dates';\nimport React from 'react';\nimport { FloatingFocusManager, FloatingPortal } from '@floating-ui/react';\nimport { useI18nContext } from '@razorpay/i18nify-react';\nimport { MantineProvider } from '@mantine/core';\nimport dayjs from 'dayjs';\nimport type { DatesRangeValue, DatePickerProps, DateSelectionType, PickerType } from './types';\nimport { Calendar } from './Calendar.web';\nimport { CalendarFooter } from './CalendarFooter.web';\nimport { DatePickerInput } from './DateInput.web';\nimport { DatePickerFilterChip } from './FilterChipDatePicker/DatePickerFilterChip.web';\nimport { renderPresetDropdown } from './QuickSelection/renderPresetDropdown.web';\nimport { PresetSideBar } from './QuickSelection/PresetSideBar.web';\nimport { usePresetState } from './QuickSelection/usePresetState';\nimport { shiftTimezone } from './shiftTimezone';\nimport { useDatesState } from './useDatesState';\nimport { usePopup } from './usePopup';\nimport { convertIntlToDayjsLocale, loadScript } from './utils';\nimport { DatePickerProvider } from './DatePickerContext';\nimport BaseBox from '~components/Box/BaseBox';\nimport { useControllableState } from '~utils/useControllable';\nimport { getPopupBoxShadowString, useTheme } from '~utils';\nimport { useId } from '~utils/useId';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { useIsMobile } from '~utils/useIsMobile';\nimport {\n BottomSheet,\n BottomSheetBody,\n BottomSheetFooter,\n BottomSheetHeader,\n} from '~components/BottomSheet';\nimport { logger } from '~utils/logger';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { fireNativeEvent } from '~utils/fireNativeEvent';\nimport { useListViewFilterContext } from '~components/ListView/ListViewFiltersContext.web';\nimport { useFilterChipGroupContext } from '~components/Dropdown/FilterChipGroupContext.web';\n\n// Calendar dimensions for consistent layout\nconst CALENDAR_HEIGHTS = {\n // Height includes: Calendar grid (6 weeks * ~44px) + header (~48px) + footer actions (~64px) + padding\n // moved to auto since we are exposing footer slot\n DAY_PICKER_WITH_FOOTER: 'auto',\n} as const;\n\nconst BaseDatePicker = <Type extends DateSelectionType = 'single'>({\n selectionType,\n allowSingleDateInRange,\n value,\n defaultValue,\n onChange,\n onApply,\n presets,\n isOpen,\n defaultIsOpen,\n onOpenChange,\n label,\n labelPosition = 'top',\n accessibilityLabel,\n errorText,\n helpText,\n isDisabled,\n isRequired,\n successText,\n validationState,\n size,\n autoFocus,\n necessityIndicator,\n name,\n defaultPicker = 'day',\n picker,\n onPickerChange,\n visibleMonth,\n defaultVisibleMonth,\n onVisibleMonthChange,\n zIndex = componentZIndices.popover,\n format = 'DD/MM/YYYY',\n inputPlaceHolder,\n inputElementType = 'datePickerInput',\n showClearButton,\n onClearButtonClick,\n labelSuffix,\n labelTrailing,\n showFooterActions = true,\n footer,\n displayFormat = 'default',\n ...props\n}: DatePickerProps<Type> &\n StyledPropsBlade &\n DataAnalyticsAttribute & {\n inputElementType: 'chip' | 'datePickerInput';\n }): React.ReactElement => {\n const { i18nState } = useI18nContext();\n const _selectionType = selectionType ?? 'single';\n const { theme } = useTheme();\n const isSingle = _selectionType === 'single';\n const [_, forceRerender] = React.useReducer((x: number) => x + 1, 0);\n const [selectedPreset, setSelectedPreset] = React.useState<DatesRangeValue | null>(null);\n const referenceRef = React.useRef<HTMLButtonElement>(null);\n // Flag to apply preset selection after state updates (avoids stale values)\n const shouldApplyAfterPresetSelection = React.useRef(false);\n\n const [_picker, setPicker] = useControllableState<PickerType>({\n defaultValue: defaultPicker,\n value: picker,\n onChange: (picker) => {\n onPickerChange?.(picker);\n },\n });\n const finalFormat = React.useMemo(() => {\n if (format) {\n return format;\n }\n if (picker === 'month') {\n return 'MMMM';\n }\n if (picker === 'year') {\n return 'YYYY';\n }\n return 'DD/MM/YYYY';\n }, [format, picker]);\n\n const finalInputPlaceHolder = React.useMemo(() => {\n if (inputPlaceHolder) {\n return inputPlaceHolder;\n }\n if (picker === 'month') {\n return 'Month';\n }\n if (picker === 'year') {\n return 'Year';\n }\n return 'DD/MM/YYYY';\n }, [inputPlaceHolder, picker]);\n\n const {\n onDateChange,\n onRootMouseLeave,\n onHoveredDateChange,\n getControlProps,\n setPickedDate,\n controlledValue,\n setControlledValue,\n handleReset,\n } = useDatesState({\n level: _picker,\n type: isSingle ? 'default' : 'range',\n allowDeselect: false,\n allowSingleDateInRange,\n value,\n defaultValue,\n onChange: (date) => {\n onChange?.(date as never);\n fireNativeEvent(referenceRef, ['input']);\n if (isSingle) return;\n // sync selected preset with value\n setSelectedPreset(date as DatesRangeValue);\n },\n });\n const [oldValue, setOldValue] = React.useState<DatesRangeValue | null>(controlledValue);\n\n // Sync selectedPreset with controlledValue for initial preset matching\n React.useEffect(() => {\n if (!isSingle && controlledValue) {\n setSelectedPreset(controlledValue as DatesRangeValue);\n }\n }, []);\n\n const [controllableIsOpen, controllableSetIsOpen] = useControllableState({\n value: isOpen,\n defaultValue: defaultIsOpen,\n onChange: (isOpen) => {\n onOpenChange?.({ isOpen });\n // we need to update old value everytime datepicker is opened or closed\n setOldValue(controlledValue);\n setPicker(() => defaultPicker);\n },\n });\n\n const currentDate = shiftTimezone('add', new Date());\n\n // Use the hook to get the calculated preset values\n const {\n presetStates,\n selectedPresetLabel,\n effectiveSelectionType,\n displayFormat: effectiveDisplayFormat,\n } = usePresetState({\n presets: presets || [],\n selectedPreset,\n currentDate,\n displayFormat,\n });\n const hasBothDatesSelected = controlledValue?.[0] && controlledValue?.[1];\n const { listViewSelectedFilters, setListViewSelectedFilters } = useListViewFilterContext();\n const {\n clearFilterCallbackTriggerer,\n setFilterChipGroupSelectedFilters,\n } = useFilterChipGroupContext();\n let applyButtonDisabled = !hasBothDatesSelected;\n if (isSingle) {\n applyButtonDisabled = !Boolean(controlledValue);\n }\n\n const close = React.useCallback(() => {\n controllableSetIsOpen(() => false);\n }, [controllableSetIsOpen]);\n\n // Shared helper: dedupe-add the chip label to the filter-chip-group context.\n const updateSelectedFilters = React.useCallback(() => {\n setFilterChipGroupSelectedFilters((prev: string[]) =>\n prev.includes(label as string) ? prev : [...prev, label as string],\n );\n }, [setFilterChipGroupSelectedFilters, label]);\n\n // Shared helper: store the current controlledValue into the ListView filter context.\n const storeSelectedFiltersAndValueInListViewContext = React.useCallback(() => {\n setListViewSelectedFilters((prev) => {\n if (isSingle) {\n return { ...prev, [label as string]: [controlledValue as string] };\n }\n return { ...prev, [label as string]: controlledValue as string[] };\n });\n }, [setListViewSelectedFilters, label, isSingle, controlledValue]);\n\n const handleApply = (): void => {\n if (isSingle) {\n onChange?.(controlledValue);\n fireNativeEvent(referenceRef, ['change']);\n setOldValue(controlledValue);\n onApply?.(controlledValue);\n close();\n storeSelectedFiltersAndValueInListViewContext();\n updateSelectedFilters();\n return;\n }\n // only apply if both dates are selected\n if (hasBothDatesSelected) {\n onChange?.(controlledValue);\n fireNativeEvent(referenceRef, ['change']);\n setOldValue(controlledValue);\n onApply?.(controlledValue);\n close();\n }\n\n storeSelectedFiltersAndValueInListViewContext();\n updateSelectedFilters();\n };\n\n // Apply preset selection after state updates to avoid stale values.\n // Also auto-close (without re-firing onChange) when showFooterActions=false\n // and the selection is complete — this is the chip/filter mode behaviour where\n // selecting a date range is itself the confirmation.\n React.useEffect(() => {\n if (shouldApplyAfterPresetSelection.current) {\n shouldApplyAfterPresetSelection.current = false;\n handleApply();\n return;\n }\n\n if (!showFooterActions && controllableIsOpen) {\n const isComplete = isSingle\n ? Boolean(controlledValue)\n : Boolean(\n (controlledValue as DatesRangeValue)?.[0] && (controlledValue as DatesRangeValue)?.[1],\n );\n\n if (isComplete) {\n setOldValue(controlledValue);\n fireNativeEvent(referenceRef, ['change']);\n onApply?.(controlledValue as never);\n storeSelectedFiltersAndValueInListViewContext();\n updateSelectedFilters();\n close();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [controlledValue]);\n\n const handleCancel = (): void => {\n setControlledValue(oldValue);\n fireNativeEvent(referenceRef, ['change']);\n setPickedDate(null);\n close();\n };\n\n const handleClear = (): void => {\n fireNativeEvent(referenceRef, ['change']);\n handleReset();\n setSelectedPreset(null);\n close();\n setFilterChipGroupSelectedFilters((prev: string[]) =>\n prev.filter((filter) => filter !== label),\n );\n\n setListViewSelectedFilters((prev) => {\n const { [label as string]: _, ...rest } = prev;\n return rest;\n });\n onClearButtonClick?.();\n };\n\n React.useEffect(() => {\n if (listViewSelectedFilters[label as string]) {\n setControlledValue(\n (listViewSelectedFilters[\n label as keyof typeof listViewSelectedFilters\n ] as unknown) as DatesRangeValue,\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n React.useEffect(() => {\n if (clearFilterCallbackTriggerer) {\n handleClear();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clearFilterCallbackTriggerer]);\n\n const isMobile = useIsMobile();\n const titleId = useId('datepicker-title');\n const { colorScheme } = useTheme();\n const {\n context,\n refs,\n isMounted,\n floatingStyles,\n animationStyles,\n getReferenceProps,\n getFloatingProps,\n } = usePopup({\n enabled: !isMobile,\n placement: 'bottom-start',\n open: controllableIsOpen,\n onOpenChange: (isOpen, _, reason) => {\n controllableSetIsOpen(() => isOpen);\n if (reason === 'escape-key') {\n handleCancel();\n }\n },\n referenceRef,\n crossAxisOffset: -28,\n });\n\n const shouldRenderPresets = !isSingle && !isMobile;\n\n // MOBILE: Blur input when bottom sheet opens to prevent keyboard + sheet overlap\n // Use setTimeout(0) instead of requestAnimationFrame: BottomSheet captures document.activeElement\n // on open for focus restoration. Deferring blur to next macrotask ensures BottomSheet first\n // snapshots the focused input, then we blur to hide keyboard. On close, focus auto-restores.\n React.useEffect(() => {\n if (isMobile && controllableIsOpen) {\n const refEl = (refs.reference?.current as unknown) as { blur?: () => void } | null;\n if (refEl?.blur) {\n setTimeout(() => {\n refEl.blur?.();\n }, 0);\n }\n }\n }, [isMobile, controllableIsOpen, refs.reference]);\n\n const content = (\n <>\n {shouldRenderPresets ? (\n <PresetSideBar\n onSelection={(preset: (date: Date) => DatesRangeValue) => {\n const presetValue = preset?.(currentDate);\n setControlledValue(presetValue);\n setSelectedPreset(presetValue);\n // Mirror leadingDropdown behaviour: trigger handleApply after state update\n // Only auto-apply when footer actions are hidden (FilterChipDatePicker mode).\n // When showFooterActions=true (regular DatePicker), the user must click\n // \"Apply\" manually after selecting a preset from the sidebar.\n if (!showFooterActions) {\n shouldApplyAfterPresetSelection.current = true;\n }\n }}\n presetStates={presetStates}\n />\n ) : null}\n <BaseBox\n width=\"100%\"\n display=\"flex\"\n flexDirection=\"column\"\n /* We only need to set height for day picker, for year picker\n or month it should be auto. */\n height={\n _picker === 'day' && showFooterActions ? CALENDAR_HEIGHTS.DAY_PICKER_WITH_FOOTER : 'auto'\n }\n justifyContent=\"space-between\"\n >\n <BaseBox padding={{ m: 'spacing.6', s: 'spacing.0' }}>\n <Calendar\n {...props}\n selectionType={_selectionType}\n defaultValue={defaultValue}\n visibleMonth={visibleMonth}\n defaultVisibleMonth={defaultVisibleMonth}\n onVisibleMonthChange={onVisibleMonthChange}\n onMouseLeave={onRootMouseLeave}\n __onDayMouseEnter={(_event, date) => {\n onHoveredDateChange(date);\n }}\n __onDayClick={(_event, date) => {\n onDateChange(date, 'day');\n }}\n getMonthControlProps={(date) => {\n return getControlProps(date);\n }}\n getYearControlProps={(date) => {\n return getControlProps(date);\n }}\n getDayProps={(date) => {\n return getControlProps(date);\n }}\n onMonthSelect={(date) => {\n props?.onMonthSelect?.(date);\n onDateChange(date, 'month');\n }}\n onYearSelect={(date) => {\n props?.onYearSelect?.(date);\n onDateChange(date, 'year');\n }}\n onNext={(data) => {\n props?.onNext?.(data);\n forceRerender();\n }}\n onPrevious={(data) => {\n props?.onPrevious?.(data);\n forceRerender();\n }}\n picker={_picker}\n showLevelChangeLink={!picker}\n onPickerChange={(picker) => {\n setPicker(() => picker);\n forceRerender();\n }}\n selectedValue={controlledValue}\n />\n </BaseBox>\n {showFooterActions &&\n (isMobile ? null : (\n <CalendarFooter\n isButtonDisabled={applyButtonDisabled}\n onApply={handleApply}\n onCancel={handleCancel}\n footer={footer}\n selectionType={_selectionType}\n />\n ))}\n </BaseBox>\n </>\n );\n\n const dateProviderValue = React.useMemo(() => {\n const locale = convertIntlToDayjsLocale(i18nState?.locale ?? 'en-IN');\n return {\n locale,\n };\n }, [i18nState?.locale]);\n\n // Dynamically load dayjs locales\n React.useLayoutEffect(() => {\n try {\n const locale = convertIntlToDayjsLocale(i18nState?.locale ?? 'en-IN');\n // dayjs needs to be loaded into window so that once the locale is loaded it can be parsed\n if (!(window as any).dayjs) {\n (window as any).dayjs = dayjs;\n }\n loadScript(`https://cdn.jsdelivr.net/npm/dayjs@1/locale/${locale}.js`, () => {\n forceRerender();\n });\n } catch (e: unknown) {\n logger({ type: 'warn', message: 'Failed to load dayjs locale' });\n }\n }, [i18nState?.locale]);\n\n return (\n <MantineProvider>\n <DatesProvider settings={dateProviderValue}>\n <DatePickerProvider isDatePickerBodyOpen={controllableIsOpen} displayFormat={displayFormat}>\n <BaseBox\n width={inputElementType === 'chip' ? 'fit-content' : '100%'}\n {...getStyledProps(props)}\n {...metaAttribute({ name: MetaConstants.DatePicker })}\n >\n {inputElementType === 'chip' ? (\n <DatePickerFilterChip\n selectionType={_selectionType}\n date={controlledValue}\n ref={referenceRef}\n inputRef={refs.reference}\n referenceProps={getReferenceProps()}\n name={name as never}\n label={label as never}\n labelPosition={labelPosition}\n accessibilityLabel={accessibilityLabel}\n size={size}\n errorText={errorText as never}\n helpText={helpText as never}\n successText={successText as never}\n isDisabled={isDisabled}\n isRequired={isRequired}\n validationState={validationState}\n autoFocus={autoFocus}\n necessityIndicator={necessityIndicator}\n format={finalFormat}\n placeholder={finalInputPlaceHolder}\n onClearButtonChange={handleClear}\n // Effective Selection type should only be used for selectionType 'range'\n effectiveSelectionType={isSingle ? selectionType : effectiveSelectionType}\n // Pass through preset state for showing label instead of date when displayFormat is 'compact'\n selectedPresetLabel={selectedPresetLabel}\n {...makeAnalyticsAttribute(props)}\n />\n ) : (\n <DatePickerInput\n selectionType={_selectionType}\n date={controlledValue}\n ref={referenceRef}\n inputRef={refs.reference}\n referenceProps={getReferenceProps()}\n name={name as never}\n label={label as never}\n labelPosition={labelPosition}\n accessibilityLabel={accessibilityLabel}\n size={size}\n errorText={errorText as never}\n helpText={helpText as never}\n successText={successText as never}\n isDisabled={isDisabled}\n isRequired={isRequired}\n validationState={validationState}\n autoFocus={autoFocus}\n necessityIndicator={necessityIndicator}\n format={finalFormat}\n placeholder={finalInputPlaceHolder}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n setControlledValue={setControlledValue}\n selectedPreset={selectedPreset}\n excludeDate={props.excludeDate}\n minDate={props.minDate}\n maxDate={props.maxDate}\n showClearButton={showClearButton}\n onClearButtonClick={handleClear}\n // Effective Selection type should only be use for selectionType 'range'\n effectiveSelectionType={isSingle ? selectionType : effectiveSelectionType}\n // Pass through preset state for showing label instead of date\n selectedPresetLabel={selectedPresetLabel}\n leadingDropdown={\n presets && !isSingle && hasBothDatesSelected\n ? renderPresetDropdown({\n onSelection: (preset: (date: Date) => DatesRangeValue) => {\n const presetValue = preset?.(currentDate);\n setControlledValue(presetValue);\n setSelectedPreset(presetValue);\n shouldApplyAfterPresetSelection.current = true;\n },\n onOpenCalendar: () => {\n controllableSetIsOpen(() => true);\n },\n presetStates,\n selectedPresetLabel,\n })\n : undefined\n }\n {...makeAnalyticsAttribute(props)}\n />\n )}\n {isMobile ? (\n <BottomSheet\n snapPoints={[0.9, 0.9, 1]}\n isOpen={controllableIsOpen}\n onDismiss={() => {\n handleCancel();\n }}\n >\n <BottomSheetHeader title={isSingle ? 'Select Date' : 'Select Date Range'} />\n <BottomSheetBody>\n {content}\n {!isSingle && presets && (\n <PresetSideBar\n isMobile\n presetStates={presetStates}\n onSelection={(preset: (date: Date) => DatesRangeValue) => {\n const presetValue = preset?.(currentDate);\n setControlledValue(presetValue);\n setSelectedPreset(presetValue);\n }}\n />\n )}\n </BottomSheetBody>\n {showFooterActions && (\n <BottomSheetFooter>\n <CalendarFooter\n onCancel={handleCancel}\n onApply={handleApply}\n footer={footer}\n selectionType={_selectionType}\n />\n </BottomSheetFooter>\n )}\n </BottomSheet>\n ) : (\n isMounted && (\n <FloatingPortal>\n <FloatingFocusManager\n initialFocus={-1}\n context={context}\n guards={true}\n order={['reference', 'content']}\n // Don't return focus to input when displayFormat is compact and a preset is selected\n // This prevents the input from switching from preset label to date display\n returnFocus={effectiveDisplayFormat !== 'compact'}\n >\n <BaseBox\n ref={refs.setFloating}\n style={floatingStyles}\n zIndex={zIndex}\n {...getFloatingProps()}\n {...makeAccessible({ labelledBy: titleId })}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n borderRadius=\"medium\"\n overflow=\"hidden\"\n minWidth=\"320px\"\n border=\"none\"\n backgroundColor=\"popup.background.gray.moderate\"\n style={{\n ...animationStyles,\n boxShadow: getPopupBoxShadowString(theme, colorScheme),\n backdropFilter: `blur(${theme.backdropBlur.high}px)`,\n }}\n >\n {content}\n </BaseBox>\n </BaseBox>\n </FloatingFocusManager>\n </FloatingPortal>\n )\n )}\n </BaseBox>\n </DatePickerProvider>\n </DatesProvider>\n </MantineProvider>\n );\n};\n\nexport { BaseDatePicker };\n"],"names":["CALENDAR_HEIGHTS","DAY_PICKER_WITH_FOOTER","BaseDatePicker","_ref","selectionType","allowSingleDateInRange","value","defaultValue","onChange","onApply","presets","isOpen","defaultIsOpen","onOpenChange","label","_ref$labelPosition","labelPosition","accessibilityLabel","errorText","helpText","isDisabled","isRequired","successText","validationState","size","autoFocus","necessityIndicator","name","_ref$defaultPicker","defaultPicker","picker","onPickerChange","visibleMonth","defaultVisibleMonth","onVisibleMonthChange","_ref$zIndex","zIndex","componentZIndices","popover","_ref$format","format","inputPlaceHolder","_ref$inputElementType","inputElementType","showClearButton","onClearButtonClick","labelSuffix","labelTrailing","_ref$showFooterAction","showFooterActions","footer","_ref$displayFormat","displayFormat","props","_objectWithoutProperties","_excluded","_useI18nContext","useI18nContext","i18nState","_selectionType","_useTheme","useTheme","theme","isSingle","_React$useReducer","React","useReducer","x","_React$useReducer2","_slicedToArray","_","forceRerender","_React$useState","useState","_React$useState2","selectedPreset","setSelectedPreset","referenceRef","useRef","shouldApplyAfterPresetSelection","_useControllableState","useControllableState","_useControllableState2","_picker","setPicker","finalFormat","useMemo","finalInputPlaceHolder","_useDatesState","useDatesState","level","type","allowDeselect","date","fireNativeEvent","onDateChange","onRootMouseLeave","onHoveredDateChange","getControlProps","setPickedDate","controlledValue","setControlledValue","handleReset","_React$useState3","_React$useState4","oldValue","setOldValue","useEffect","_useControllableState3","_useControllableState4","controllableIsOpen","controllableSetIsOpen","currentDate","shiftTimezone","Date","_usePresetState","usePresetState","presetStates","selectedPresetLabel","effectiveSelectionType","effectiveDisplayFormat","hasBothDatesSelected","_useListViewFilterCon","useListViewFilterContext","listViewSelectedFilters","setListViewSelectedFilters","_useFilterChipGroupCo","useFilterChipGroupContext","clearFilterCallbackTriggerer","setFilterChipGroupSelectedFilters","applyButtonDisabled","Boolean","close","useCallback","updateSelectedFilters","prev","includes","concat","_toConsumableArray","storeSelectedFiltersAndValueInListViewContext","_objectSpread","_defineProperty","handleApply","current","isComplete","handleCancel","handleClear","filter","_ref2","rest","map","_toPropertyKey","isMobile","useIsMobile","titleId","useId","_useTheme2","colorScheme","_usePopup","usePopup","enabled","placement","open","reason","crossAxisOffset","context","refs","isMounted","floatingStyles","animationStyles","getReferenceProps","getFloatingProps","shouldRenderPresets","_refs$reference","refEl","reference","blur","setTimeout","_refEl$blur","call","content","_jsxs","_Fragment","children","_jsx","PresetSideBar","onSelection","preset","presetValue","BaseBox","width","display","flexDirection","height","justifyContent","padding","m","s","Calendar","onMouseLeave","__onDayMouseEnter","_event","__onDayClick","getMonthControlProps","getYearControlProps","getDayProps","onMonthSelect","_props$onMonthSelect","onYearSelect","_props$onYearSelect","onNext","data","_props$onNext","onPrevious","_props$onPrevious","showLevelChangeLink","selectedValue","CalendarFooter","isButtonDisabled","onCancel","dateProviderValue","_i18nState$locale","locale","convertIntlToDayjsLocale","useLayoutEffect","_i18nState$locale2","window","dayjs","loadScript","e","logger","message","MantineProvider","DatesProvider","settings","DatePickerProvider","isDatePickerBodyOpen","getStyledProps","metaAttribute","MetaConstants","DatePicker","DatePickerFilterChip","ref","inputRef","referenceProps","placeholder","onClearButtonChange","makeAnalyticsAttribute","DatePickerInput","excludeDate","minDate","maxDate","leadingDropdown","renderPresetDropdown","onOpenCalendar","undefined","BottomSheet","snapPoints","onDismiss","BottomSheetHeader","title","BottomSheetBody","BottomSheetFooter","FloatingPortal","FloatingFocusManager","initialFocus","guards","order","returnFocus","setFloating","style","makeAccessible","labelledBy","borderRadius","overflow","minWidth","border","backgroundColor","boxShadow","getPopupBoxShadowString","backdropFilter","backdropBlur","high"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseDatePicker.web.js","sources":["../../../../../../src/components/DatePicker/BaseDatePicker.web.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { DatesProvider } from '@mantine/dates';\nimport React from 'react';\nimport { FloatingFocusManager, FloatingPortal } from '@floating-ui/react';\nimport { useI18nContext } from '@razorpay/i18nify-react';\nimport { MantineProvider } from '@mantine/core';\nimport dayjs from 'dayjs';\nimport type { DatesRangeValue, DatePickerProps, DateSelectionType, PickerType } from './types';\nimport { Calendar } from './Calendar.web';\nimport { CalendarFooter } from './CalendarFooter.web';\nimport { DatePickerInput } from './DateInput.web';\nimport { DatePickerFilterChip } from './FilterChipDatePicker/DatePickerFilterChip.web';\nimport { renderPresetDropdown } from './QuickSelection/renderPresetDropdown.web';\nimport { PresetSideBar } from './QuickSelection/PresetSideBar.web';\nimport { usePresetState } from './QuickSelection/usePresetState';\nimport { shiftTimezone } from './shiftTimezone';\nimport { useDatesState } from './useDatesState';\nimport { usePopup } from './usePopup';\nimport { convertIntlToDayjsLocale, loadScript } from './utils';\nimport { DatePickerProvider } from './DatePickerContext';\nimport BaseBox from '~components/Box/BaseBox';\nimport { useControllableState } from '~utils/useControllable';\nimport { getPopupBoxShadowString, useTheme } from '~utils';\nimport { useId } from '~utils/useId';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { useIsMobile } from '~utils/useIsMobile';\nimport {\n BottomSheet,\n BottomSheetBody,\n BottomSheetFooter,\n BottomSheetHeader,\n} from '~components/BottomSheet';\nimport { logger } from '~utils/logger';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { fireNativeEvent } from '~utils/fireNativeEvent';\nimport { useListViewFilterContext } from '~components/ListView/ListViewFiltersContext.web';\nimport { useFilterChipGroupContext } from '~components/Dropdown/FilterChipGroupContext.web';\n\n// Calendar dimensions for consistent layout\nconst CALENDAR_HEIGHTS = {\n // Height includes: Calendar grid (6 weeks * ~44px) + header (~48px) + footer actions (~64px) + padding\n // moved to auto since we are exposing footer slot\n DAY_PICKER_WITH_FOOTER: 'auto',\n} as const;\n\nconst BaseDatePicker = <Type extends DateSelectionType = 'single'>({\n selectionType,\n allowSingleDateInRange,\n value,\n defaultValue,\n onChange,\n onApply,\n presets,\n isOpen,\n defaultIsOpen,\n onOpenChange,\n label,\n labelPosition = 'top',\n accessibilityLabel,\n errorText,\n helpText,\n isDisabled,\n isRequired,\n successText,\n validationState,\n size,\n autoFocus,\n necessityIndicator,\n name,\n defaultPicker = 'day',\n picker,\n onPickerChange,\n visibleMonth,\n defaultVisibleMonth,\n onVisibleMonthChange,\n zIndex = componentZIndices.popover,\n format = 'DD/MM/YYYY',\n inputPlaceHolder,\n inputElementType = 'datePickerInput',\n showClearButton,\n onClearButtonClick,\n labelSuffix,\n labelTrailing,\n showFooterActions = true,\n footer,\n displayFormat = 'default',\n ...props\n}: DatePickerProps<Type> &\n StyledPropsBlade &\n DataAnalyticsAttribute & {\n inputElementType: 'chip' | 'datePickerInput';\n }): React.ReactElement => {\n const { i18nState } = useI18nContext();\n const _selectionType = selectionType ?? 'single';\n const { theme } = useTheme();\n const isSingle = _selectionType === 'single';\n const [_, forceRerender] = React.useReducer((x: number) => x + 1, 0);\n const [selectedPreset, setSelectedPreset] = React.useState<DatesRangeValue | null>(null);\n const referenceRef = React.useRef<HTMLButtonElement>(null);\n // Flag to apply preset selection after state updates (avoids stale values)\n const shouldApplyAfterPresetSelection = React.useRef(false);\n\n const [_picker, setPicker] = useControllableState<PickerType>({\n defaultValue: defaultPicker,\n value: picker,\n onChange: (picker) => {\n onPickerChange?.(picker);\n },\n });\n const finalFormat = React.useMemo(() => {\n if (format) {\n return format;\n }\n if (picker === 'month') {\n return 'MMMM';\n }\n if (picker === 'year') {\n return 'YYYY';\n }\n return 'DD/MM/YYYY';\n }, [format, picker]);\n\n const finalInputPlaceHolder = React.useMemo(() => {\n if (inputPlaceHolder) {\n return inputPlaceHolder;\n }\n if (picker === 'month') {\n return 'Month';\n }\n if (picker === 'year') {\n return 'Year';\n }\n return 'DD/MM/YYYY';\n }, [inputPlaceHolder, picker]);\n\n const {\n onDateChange,\n onRootMouseLeave,\n onHoveredDateChange,\n getControlProps,\n setPickedDate,\n controlledValue,\n setControlledValue,\n handleReset,\n } = useDatesState({\n level: _picker,\n type: isSingle ? 'default' : 'range',\n allowDeselect: false,\n allowSingleDateInRange,\n value,\n defaultValue,\n onChange: (date) => {\n onChange?.(date as never);\n fireNativeEvent(referenceRef, ['input']);\n if (isSingle) return;\n // sync selected preset with value\n setSelectedPreset(date as DatesRangeValue);\n },\n });\n const [oldValue, setOldValue] = React.useState<DatesRangeValue | null>(controlledValue);\n\n // Sync selectedPreset with controlledValue for initial preset matching\n React.useEffect(() => {\n if (!isSingle && controlledValue) {\n setSelectedPreset(controlledValue as DatesRangeValue);\n }\n }, []);\n\n const [controllableIsOpen, controllableSetIsOpen] = useControllableState({\n value: isOpen,\n defaultValue: defaultIsOpen,\n onChange: (isOpen) => {\n onOpenChange?.({ isOpen });\n // we need to update old value everytime datepicker is opened or closed\n setOldValue(controlledValue);\n setPicker(() => defaultPicker);\n },\n });\n\n const currentDate = shiftTimezone('add', new Date());\n\n // Use the hook to get the calculated preset values\n const {\n presetStates,\n selectedPresetLabel,\n effectiveSelectionType,\n displayFormat: effectiveDisplayFormat,\n } = usePresetState({\n presets: presets || [],\n selectedPreset,\n currentDate,\n displayFormat,\n });\n const hasBothDatesSelected = controlledValue?.[0] && controlledValue?.[1];\n const { listViewSelectedFilters, setListViewSelectedFilters } = useListViewFilterContext();\n const {\n clearFilterCallbackTriggerer,\n setFilterChipGroupSelectedFilters,\n } = useFilterChipGroupContext();\n let applyButtonDisabled = !hasBothDatesSelected;\n if (isSingle) {\n applyButtonDisabled = !Boolean(controlledValue);\n }\n\n const close = React.useCallback(() => {\n controllableSetIsOpen(() => false);\n }, [controllableSetIsOpen]);\n\n // Shared helper: dedupe-add the chip label to the filter-chip-group context.\n const updateSelectedFilters = React.useCallback(() => {\n setFilterChipGroupSelectedFilters((prev: string[]) =>\n prev.includes(label as string) ? prev : [...prev, label as string],\n );\n }, [setFilterChipGroupSelectedFilters, label]);\n\n // Shared helper: store the current controlledValue into the ListView filter context.\n const storeSelectedFiltersAndValueInListViewContext = React.useCallback(() => {\n setListViewSelectedFilters((prev) => {\n if (isSingle) {\n return { ...prev, [label as string]: [controlledValue as string] };\n }\n return { ...prev, [label as string]: controlledValue as string[] };\n });\n }, [setListViewSelectedFilters, label, isSingle, controlledValue]);\n\n const handleApply = (): void => {\n if (isSingle) {\n onChange?.(controlledValue);\n fireNativeEvent(referenceRef, ['change']);\n setOldValue(controlledValue);\n onApply?.(controlledValue);\n close();\n storeSelectedFiltersAndValueInListViewContext();\n updateSelectedFilters();\n return;\n }\n // only apply if both dates are selected\n if (hasBothDatesSelected) {\n onChange?.(controlledValue);\n fireNativeEvent(referenceRef, ['change']);\n setOldValue(controlledValue);\n onApply?.(controlledValue);\n close();\n }\n\n storeSelectedFiltersAndValueInListViewContext();\n updateSelectedFilters();\n };\n\n // Apply preset selection after state updates to avoid stale values.\n // Also auto-close (without re-firing onChange) when showFooterActions=false\n // and the selection is complete — this is the chip/filter mode behaviour where\n // selecting a date range is itself the confirmation.\n React.useEffect(() => {\n if (shouldApplyAfterPresetSelection.current) {\n shouldApplyAfterPresetSelection.current = false;\n handleApply();\n return;\n }\n\n if (!showFooterActions && controllableIsOpen) {\n const isComplete = isSingle\n ? Boolean(controlledValue)\n : Boolean(\n (controlledValue as DatesRangeValue)?.[0] && (controlledValue as DatesRangeValue)?.[1],\n );\n\n if (isComplete) {\n setOldValue(controlledValue);\n fireNativeEvent(referenceRef, ['change']);\n onApply?.(controlledValue as never);\n storeSelectedFiltersAndValueInListViewContext();\n updateSelectedFilters();\n close();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [controlledValue]);\n\n const handleCancel = (): void => {\n setControlledValue(oldValue);\n fireNativeEvent(referenceRef, ['change']);\n setPickedDate(null);\n close();\n };\n\n const handleClear = (): void => {\n fireNativeEvent(referenceRef, ['change']);\n handleReset();\n setSelectedPreset(null);\n close();\n setFilterChipGroupSelectedFilters((prev: string[]) =>\n prev.filter((filter) => filter !== label),\n );\n\n setListViewSelectedFilters((prev) => {\n const { [label as string]: _, ...rest } = prev;\n return rest;\n });\n onClearButtonClick?.();\n };\n\n React.useEffect(() => {\n if (listViewSelectedFilters[label as string]) {\n setControlledValue(\n (listViewSelectedFilters[\n label as keyof typeof listViewSelectedFilters\n ] as unknown) as DatesRangeValue,\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n React.useEffect(() => {\n if (clearFilterCallbackTriggerer) {\n handleClear();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clearFilterCallbackTriggerer]);\n\n const isMobile = useIsMobile();\n const titleId = useId('datepicker-title');\n const { colorScheme } = useTheme();\n const {\n context,\n refs,\n isMounted,\n floatingStyles,\n animationStyles,\n getReferenceProps,\n getFloatingProps,\n } = usePopup({\n enabled: !isMobile,\n placement: 'bottom-start',\n open: controllableIsOpen,\n onOpenChange: (isOpen, _, reason) => {\n controllableSetIsOpen(() => isOpen);\n if (reason === 'escape-key') {\n handleCancel();\n }\n },\n referenceRef,\n crossAxisOffset: -28,\n });\n\n const shouldRenderPresets = !isSingle && !isMobile;\n\n // MOBILE: Blur input when bottom sheet opens to prevent keyboard + sheet overlap\n // Use setTimeout(0) instead of requestAnimationFrame: BottomSheet captures document.activeElement\n // on open for focus restoration. Deferring blur to next macrotask ensures BottomSheet first\n // snapshots the focused input, then we blur to hide keyboard. On close, focus auto-restores.\n React.useEffect(() => {\n if (isMobile && controllableIsOpen) {\n const refEl = (refs.reference?.current as unknown) as { blur?: () => void } | null;\n if (refEl?.blur) {\n setTimeout(() => {\n refEl.blur?.();\n }, 0);\n }\n }\n }, [isMobile, controllableIsOpen, refs.reference]);\n\n const content = (\n <>\n {shouldRenderPresets ? (\n <PresetSideBar\n onSelection={(preset: (date: Date) => DatesRangeValue) => {\n const presetValue = preset?.(currentDate);\n setControlledValue(presetValue);\n setSelectedPreset(presetValue);\n // Mirror leadingDropdown behaviour: trigger handleApply after state update\n // Only auto-apply when footer actions are hidden (FilterChipDatePicker mode).\n // When showFooterActions=true (regular DatePicker), the user must click\n // \"Apply\" manually after selecting a preset from the sidebar.\n if (!showFooterActions) {\n shouldApplyAfterPresetSelection.current = true;\n }\n }}\n presetStates={presetStates}\n />\n ) : null}\n <BaseBox\n width=\"100%\"\n display=\"flex\"\n flexDirection=\"column\"\n /* We only need to set height for day picker, for year picker\n or month it should be auto. */\n height={\n _picker === 'day' && showFooterActions ? CALENDAR_HEIGHTS.DAY_PICKER_WITH_FOOTER : 'auto'\n }\n justifyContent=\"space-between\"\n >\n <BaseBox padding={{ m: 'spacing.6', s: 'spacing.0' }}>\n <Calendar\n {...props}\n selectionType={_selectionType}\n defaultValue={defaultValue}\n visibleMonth={visibleMonth}\n defaultVisibleMonth={defaultVisibleMonth}\n onVisibleMonthChange={onVisibleMonthChange}\n onMouseLeave={onRootMouseLeave}\n __onDayMouseEnter={(_event, date) => {\n onHoveredDateChange(date);\n }}\n __onDayClick={(_event, date) => {\n onDateChange(date, 'day');\n }}\n getMonthControlProps={(date) => {\n return getControlProps(date);\n }}\n getYearControlProps={(date) => {\n return getControlProps(date);\n }}\n getDayProps={(date) => {\n return getControlProps(date);\n }}\n onMonthSelect={(date) => {\n props?.onMonthSelect?.(date);\n onDateChange(date, 'month');\n }}\n onYearSelect={(date) => {\n props?.onYearSelect?.(date);\n onDateChange(date, 'year');\n }}\n onNext={(data) => {\n props?.onNext?.(data);\n forceRerender();\n }}\n onPrevious={(data) => {\n props?.onPrevious?.(data);\n forceRerender();\n }}\n picker={_picker}\n showLevelChangeLink={!picker}\n onPickerChange={(picker) => {\n setPicker(() => picker);\n forceRerender();\n }}\n selectedValue={controlledValue}\n />\n </BaseBox>\n {showFooterActions &&\n (isMobile ? null : (\n <CalendarFooter\n isButtonDisabled={applyButtonDisabled}\n onApply={handleApply}\n onCancel={handleCancel}\n footer={footer}\n selectionType={_selectionType}\n />\n ))}\n </BaseBox>\n </>\n );\n\n const dateProviderValue = React.useMemo(() => {\n const locale = convertIntlToDayjsLocale(i18nState?.locale ?? 'en-IN');\n return {\n locale,\n };\n }, [i18nState?.locale]);\n\n // Dynamically load dayjs locales\n React.useLayoutEffect(() => {\n try {\n const locale = convertIntlToDayjsLocale(i18nState?.locale ?? 'en-IN');\n // dayjs needs to be loaded into window so that once the locale is loaded it can be parsed\n if (!(window as any).dayjs) {\n (window as any).dayjs = dayjs;\n }\n loadScript(`https://cdn.jsdelivr.net/npm/dayjs@1/locale/${locale}.js`, () => {\n forceRerender();\n });\n } catch (e: unknown) {\n logger({ type: 'warn', message: 'Failed to load dayjs locale' });\n }\n }, [i18nState?.locale]);\n\n return (\n <MantineProvider>\n <DatesProvider settings={dateProviderValue}>\n <DatePickerProvider isDatePickerBodyOpen={controllableIsOpen} displayFormat={displayFormat}>\n <BaseBox\n width={inputElementType === 'chip' ? 'fit-content' : '100%'}\n {...getStyledProps(props)}\n {...metaAttribute({ name: MetaConstants.DatePicker })}\n >\n {inputElementType === 'chip' ? (\n <DatePickerFilterChip\n selectionType={_selectionType}\n date={controlledValue}\n ref={referenceRef}\n inputRef={refs.reference}\n referenceProps={getReferenceProps()}\n name={name as never}\n label={label as never}\n labelPosition={labelPosition}\n accessibilityLabel={accessibilityLabel}\n size={size}\n errorText={errorText as never}\n helpText={helpText as never}\n successText={successText as never}\n isDisabled={isDisabled}\n isRequired={isRequired}\n validationState={validationState}\n autoFocus={autoFocus}\n necessityIndicator={necessityIndicator}\n format={finalFormat}\n placeholder={finalInputPlaceHolder}\n // Chips show the clear (cross) button by default when a value is selected.\n // Consumers can pass `showClearButton={false}` for filters that must always\n // hold a value (e.g. a mandatory default date). The `?? true` default lives here\n // (on the chip path) rather than at destructuring so the regular, non-chip\n // DatePickerInput keeps its original `undefined` default and is unaffected.\n showClearButton={showClearButton ?? true}\n onClearButtonChange={handleClear}\n // Effective Selection type should only be used for selectionType 'range'\n effectiveSelectionType={isSingle ? selectionType : effectiveSelectionType}\n // Pass through preset state for showing label instead of date when displayFormat is 'compact'\n selectedPresetLabel={selectedPresetLabel}\n {...makeAnalyticsAttribute(props)}\n />\n ) : (\n <DatePickerInput\n selectionType={_selectionType}\n date={controlledValue}\n ref={referenceRef}\n inputRef={refs.reference}\n referenceProps={getReferenceProps()}\n name={name as never}\n label={label as never}\n labelPosition={labelPosition}\n accessibilityLabel={accessibilityLabel}\n size={size}\n errorText={errorText as never}\n helpText={helpText as never}\n successText={successText as never}\n isDisabled={isDisabled}\n isRequired={isRequired}\n validationState={validationState}\n autoFocus={autoFocus}\n necessityIndicator={necessityIndicator}\n format={finalFormat}\n placeholder={finalInputPlaceHolder}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n setControlledValue={setControlledValue}\n selectedPreset={selectedPreset}\n excludeDate={props.excludeDate}\n minDate={props.minDate}\n maxDate={props.maxDate}\n showClearButton={showClearButton}\n onClearButtonClick={handleClear}\n // Effective Selection type should only be use for selectionType 'range'\n effectiveSelectionType={isSingle ? selectionType : effectiveSelectionType}\n // Pass through preset state for showing label instead of date\n selectedPresetLabel={selectedPresetLabel}\n leadingDropdown={\n presets && !isSingle && hasBothDatesSelected\n ? renderPresetDropdown({\n onSelection: (preset: (date: Date) => DatesRangeValue) => {\n const presetValue = preset?.(currentDate);\n setControlledValue(presetValue);\n setSelectedPreset(presetValue);\n shouldApplyAfterPresetSelection.current = true;\n },\n onOpenCalendar: () => {\n controllableSetIsOpen(() => true);\n },\n presetStates,\n selectedPresetLabel,\n })\n : undefined\n }\n {...makeAnalyticsAttribute(props)}\n />\n )}\n {isMobile ? (\n <BottomSheet\n snapPoints={[0.9, 0.9, 1]}\n isOpen={controllableIsOpen}\n onDismiss={() => {\n handleCancel();\n }}\n >\n <BottomSheetHeader title={isSingle ? 'Select Date' : 'Select Date Range'} />\n <BottomSheetBody>\n {content}\n {!isSingle && presets && (\n <PresetSideBar\n isMobile\n presetStates={presetStates}\n onSelection={(preset: (date: Date) => DatesRangeValue) => {\n const presetValue = preset?.(currentDate);\n setControlledValue(presetValue);\n setSelectedPreset(presetValue);\n }}\n />\n )}\n </BottomSheetBody>\n {showFooterActions && (\n <BottomSheetFooter>\n <CalendarFooter\n onCancel={handleCancel}\n onApply={handleApply}\n footer={footer}\n selectionType={_selectionType}\n />\n </BottomSheetFooter>\n )}\n </BottomSheet>\n ) : (\n isMounted && (\n <FloatingPortal>\n <FloatingFocusManager\n initialFocus={-1}\n context={context}\n guards={true}\n order={['reference', 'content']}\n // Don't return focus to input when displayFormat is compact and a preset is selected\n // This prevents the input from switching from preset label to date display\n returnFocus={effectiveDisplayFormat !== 'compact'}\n >\n <BaseBox\n ref={refs.setFloating}\n style={floatingStyles}\n zIndex={zIndex}\n {...getFloatingProps()}\n {...makeAccessible({ labelledBy: titleId })}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n borderRadius=\"medium\"\n overflow=\"hidden\"\n minWidth=\"320px\"\n border=\"none\"\n backgroundColor=\"popup.background.gray.moderate\"\n style={{\n ...animationStyles,\n boxShadow: getPopupBoxShadowString(theme, colorScheme),\n backdropFilter: `blur(${theme.backdropBlur.high}px)`,\n }}\n >\n {content}\n </BaseBox>\n </BaseBox>\n </FloatingFocusManager>\n </FloatingPortal>\n )\n )}\n </BaseBox>\n </DatePickerProvider>\n </DatesProvider>\n </MantineProvider>\n );\n};\n\nexport { BaseDatePicker };\n"],"names":["CALENDAR_HEIGHTS","DAY_PICKER_WITH_FOOTER","BaseDatePicker","_ref","selectionType","allowSingleDateInRange","value","defaultValue","onChange","onApply","presets","isOpen","defaultIsOpen","onOpenChange","label","_ref$labelPosition","labelPosition","accessibilityLabel","errorText","helpText","isDisabled","isRequired","successText","validationState","size","autoFocus","necessityIndicator","name","_ref$defaultPicker","defaultPicker","picker","onPickerChange","visibleMonth","defaultVisibleMonth","onVisibleMonthChange","_ref$zIndex","zIndex","componentZIndices","popover","_ref$format","format","inputPlaceHolder","_ref$inputElementType","inputElementType","showClearButton","onClearButtonClick","labelSuffix","labelTrailing","_ref$showFooterAction","showFooterActions","footer","_ref$displayFormat","displayFormat","props","_objectWithoutProperties","_excluded","_useI18nContext","useI18nContext","i18nState","_selectionType","_useTheme","useTheme","theme","isSingle","_React$useReducer","React","useReducer","x","_React$useReducer2","_slicedToArray","_","forceRerender","_React$useState","useState","_React$useState2","selectedPreset","setSelectedPreset","referenceRef","useRef","shouldApplyAfterPresetSelection","_useControllableState","useControllableState","_useControllableState2","_picker","setPicker","finalFormat","useMemo","finalInputPlaceHolder","_useDatesState","useDatesState","level","type","allowDeselect","date","fireNativeEvent","onDateChange","onRootMouseLeave","onHoveredDateChange","getControlProps","setPickedDate","controlledValue","setControlledValue","handleReset","_React$useState3","_React$useState4","oldValue","setOldValue","useEffect","_useControllableState3","_useControllableState4","controllableIsOpen","controllableSetIsOpen","currentDate","shiftTimezone","Date","_usePresetState","usePresetState","presetStates","selectedPresetLabel","effectiveSelectionType","effectiveDisplayFormat","hasBothDatesSelected","_useListViewFilterCon","useListViewFilterContext","listViewSelectedFilters","setListViewSelectedFilters","_useFilterChipGroupCo","useFilterChipGroupContext","clearFilterCallbackTriggerer","setFilterChipGroupSelectedFilters","applyButtonDisabled","Boolean","close","useCallback","updateSelectedFilters","prev","includes","concat","_toConsumableArray","storeSelectedFiltersAndValueInListViewContext","_objectSpread","_defineProperty","handleApply","current","isComplete","handleCancel","handleClear","filter","_ref2","rest","map","_toPropertyKey","isMobile","useIsMobile","titleId","useId","_useTheme2","colorScheme","_usePopup","usePopup","enabled","placement","open","reason","crossAxisOffset","context","refs","isMounted","floatingStyles","animationStyles","getReferenceProps","getFloatingProps","shouldRenderPresets","_refs$reference","refEl","reference","blur","setTimeout","_refEl$blur","call","content","_jsxs","_Fragment","children","_jsx","PresetSideBar","onSelection","preset","presetValue","BaseBox","width","display","flexDirection","height","justifyContent","padding","m","s","Calendar","onMouseLeave","__onDayMouseEnter","_event","__onDayClick","getMonthControlProps","getYearControlProps","getDayProps","onMonthSelect","_props$onMonthSelect","onYearSelect","_props$onYearSelect","onNext","data","_props$onNext","onPrevious","_props$onPrevious","showLevelChangeLink","selectedValue","CalendarFooter","isButtonDisabled","onCancel","dateProviderValue","_i18nState$locale","locale","convertIntlToDayjsLocale","useLayoutEffect","_i18nState$locale2","window","dayjs","loadScript","e","logger","message","MantineProvider","DatesProvider","settings","DatePickerProvider","isDatePickerBodyOpen","getStyledProps","metaAttribute","MetaConstants","DatePicker","DatePickerFilterChip","ref","inputRef","referenceProps","placeholder","onClearButtonChange","makeAnalyticsAttribute","DatePickerInput","excludeDate","minDate","maxDate","leadingDropdown","renderPresetDropdown","onOpenCalendar","undefined","BottomSheet","snapPoints","onDismiss","BottomSheetHeader","title","BottomSheetBody","BottomSheetFooter","FloatingPortal","FloatingFocusManager","initialFocus","guards","order","returnFocus","setFloating","style","makeAccessible","labelledBy","borderRadius","overflow","minWidth","border","backgroundColor","boxShadow","getPopupBoxShadowString","backdropFilter","backdropBlur","high"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,IAAMA,gBAAgB,GAAG;AACvB;AACA;AACAC,EAAAA,sBAAsB,EAAE,MAAA;AAC1B,CAAU,CAAA;AAEV,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EA8CQ;AAAA,EAAA,IA7C1BC,aAAa,GAAAD,IAAA,CAAbC,aAAa;IACbC,sBAAsB,GAAAF,IAAA,CAAtBE,sBAAsB;IACtBC,KAAK,GAAAH,IAAA,CAALG,KAAK;IACLC,YAAY,GAAAJ,IAAA,CAAZI,YAAY;IACZC,SAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,OAAO,GAAAN,IAAA,CAAPM,OAAO;IACPC,OAAO,GAAAP,IAAA,CAAPO,OAAO;IACPC,MAAM,GAAAR,IAAA,CAANQ,MAAM;IACNC,aAAa,GAAAT,IAAA,CAAbS,aAAa;IACbC,YAAY,GAAAV,IAAA,CAAZU,YAAY;IACZC,KAAK,GAAAX,IAAA,CAALW,KAAK;IAAAC,kBAAA,GAAAZ,IAAA,CACLa,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,kBAAA;IACrBE,kBAAkB,GAAAd,IAAA,CAAlBc,kBAAkB;IAClBC,SAAS,GAAAf,IAAA,CAATe,SAAS;IACTC,QAAQ,GAAAhB,IAAA,CAARgB,QAAQ;IACRC,UAAU,GAAAjB,IAAA,CAAViB,UAAU;IACVC,UAAU,GAAAlB,IAAA,CAAVkB,UAAU;IACVC,WAAW,GAAAnB,IAAA,CAAXmB,WAAW;IACXC,eAAe,GAAApB,IAAA,CAAfoB,eAAe;IACfC,IAAI,GAAArB,IAAA,CAAJqB,IAAI;IACJC,SAAS,GAAAtB,IAAA,CAATsB,SAAS;IACTC,kBAAkB,GAAAvB,IAAA,CAAlBuB,kBAAkB;IAClBC,IAAI,GAAAxB,IAAA,CAAJwB,IAAI;IAAAC,kBAAA,GAAAzB,IAAA,CACJ0B,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,kBAAA;IACrBE,MAAM,GAAA3B,IAAA,CAAN2B,MAAM;IACNC,cAAc,GAAA5B,IAAA,CAAd4B,cAAc;IACdC,YAAY,GAAA7B,IAAA,CAAZ6B,YAAY;IACZC,mBAAmB,GAAA9B,IAAA,CAAnB8B,mBAAmB;IACnBC,oBAAoB,GAAA/B,IAAA,CAApB+B,oBAAoB;IAAAC,WAAA,GAAAhC,IAAA,CACpBiC,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,KAAA,CAAA,GAAGE,iBAAiB,CAACC,OAAO,GAAAH,WAAA;IAAAI,WAAA,GAAApC,IAAA,CAClCqC,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,YAAY,GAAAA,WAAA;IACrBE,gBAAgB,GAAAtC,IAAA,CAAhBsC,gBAAgB;IAAAC,qBAAA,GAAAvC,IAAA,CAChBwC,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,iBAAiB,GAAAA,qBAAA;IACpCE,eAAe,GAAAzC,IAAA,CAAfyC,eAAe;IACfC,kBAAkB,GAAA1C,IAAA,CAAlB0C,kBAAkB;IAClBC,WAAW,GAAA3C,IAAA,CAAX2C,WAAW;IACXC,aAAa,GAAA5C,IAAA,CAAb4C,aAAa;IAAAC,qBAAA,GAAA7C,IAAA,CACb8C,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA;IACxBE,MAAM,GAAA/C,IAAA,CAAN+C,MAAM;IAAAC,kBAAA,GAAAhD,IAAA,CACNiD,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,SAAS,GAAAA,kBAAA;AACtBE,IAAAA,KAAK,GAAAC,wBAAA,CAAAnD,IAAA,EAAAoD,SAAA,CAAA,CAAA;AAMR,EAAA,IAAAC,eAAA,GAAsBC,cAAc,EAAE;IAA9BC,SAAS,GAAAF,eAAA,CAATE,SAAS,CAAA;EACjB,IAAMC,cAAc,GAAGvD,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAbA,KAAAA,CAAAA,GAAAA,aAAa,GAAI,QAAQ,CAAA;AAChD,EAAA,IAAAwD,SAAA,GAAkBC,QAAQ,EAAE;IAApBC,KAAK,GAAAF,SAAA,CAALE,KAAK,CAAA;AACb,EAAA,IAAMC,QAAQ,GAAGJ,cAAc,KAAK,QAAQ,CAAA;AAC5C,EAAA,IAAAK,iBAAA,GAA2BC,cAAK,CAACC,UAAU,CAAC,UAACC,CAAS,EAAA;MAAA,OAAKA,CAAC,GAAG,CAAC,CAAA;AAAA,KAAA,EAAE,CAAC,CAAC;IAAAC,kBAAA,GAAAC,cAAA,CAAAL,iBAAA,EAAA,CAAA,CAAA;AAA7DM,IAAAA,CAAC,GAAAF,kBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,aAAa,GAAAH,kBAAA,CAAA,CAAA,CAAA,CAAA;AACvB,EAAA,IAAAI,eAAA,GAA4CP,cAAK,CAACQ,QAAQ,CAAyB,IAAI,CAAC;IAAAC,gBAAA,GAAAL,cAAA,CAAAG,eAAA,EAAA,CAAA,CAAA;AAAjFG,IAAAA,cAAc,GAAAD,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,iBAAiB,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;AACxC,EAAA,IAAMG,YAAY,GAAGZ,cAAK,CAACa,MAAM,CAAoB,IAAI,CAAC,CAAA;AAC1D;AACA,EAAA,IAAMC,+BAA+B,GAAGd,cAAK,CAACa,MAAM,CAAC,KAAK,CAAC,CAAA;EAE3D,IAAAE,qBAAA,GAA6BC,oBAAoB,CAAa;AAC5D1E,MAAAA,YAAY,EAAEsB,aAAa;AAC3BvB,MAAAA,KAAK,EAAEwB,MAAM;AACbtB,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAGsB,MAAM,EAAK;AACpBC,QAAAA,cAAc,aAAdA,cAAc,KAAA,KAAA,CAAA,IAAdA,cAAc,CAAGD,MAAM,CAAC,CAAA;AAC1B,OAAA;AACF,KAAC,CAAC;IAAAoD,sBAAA,GAAAb,cAAA,CAAAW,qBAAA,EAAA,CAAA,CAAA;AANKG,IAAAA,OAAO,GAAAD,sBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,SAAS,GAAAF,sBAAA,CAAA,CAAA,CAAA,CAAA;AAOzB,EAAA,IAAMG,WAAW,GAAGpB,cAAK,CAACqB,OAAO,CAAC,YAAM;AACtC,IAAA,IAAI9C,MAAM,EAAE;AACV,MAAA,OAAOA,MAAM,CAAA;AACf,KAAA;IACA,IAAIV,MAAM,KAAK,OAAO,EAAE;AACtB,MAAA,OAAO,MAAM,CAAA;AACf,KAAA;IACA,IAAIA,MAAM,KAAK,MAAM,EAAE;AACrB,MAAA,OAAO,MAAM,CAAA;AACf,KAAA;AACA,IAAA,OAAO,YAAY,CAAA;AACrB,GAAC,EAAE,CAACU,MAAM,EAAEV,MAAM,CAAC,CAAC,CAAA;AAEpB,EAAA,IAAMyD,qBAAqB,GAAGtB,cAAK,CAACqB,OAAO,CAAC,YAAM;AAChD,IAAA,IAAI7C,gBAAgB,EAAE;AACpB,MAAA,OAAOA,gBAAgB,CAAA;AACzB,KAAA;IACA,IAAIX,MAAM,KAAK,OAAO,EAAE;AACtB,MAAA,OAAO,OAAO,CAAA;AAChB,KAAA;IACA,IAAIA,MAAM,KAAK,MAAM,EAAE;AACrB,MAAA,OAAO,MAAM,CAAA;AACf,KAAA;AACA,IAAA,OAAO,YAAY,CAAA;AACrB,GAAC,EAAE,CAACW,gBAAgB,EAAEX,MAAM,CAAC,CAAC,CAAA;EAE9B,IAAA0D,cAAA,GASIC,aAAa,CAAC;AAChBC,MAAAA,KAAK,EAAEP,OAAO;AACdQ,MAAAA,IAAI,EAAE5B,QAAQ,GAAG,SAAS,GAAG,OAAO;AACpC6B,MAAAA,aAAa,EAAE,KAAK;AACpBvF,MAAAA,sBAAsB,EAAtBA,sBAAsB;AACtBC,MAAAA,KAAK,EAALA,KAAK;AACLC,MAAAA,YAAY,EAAZA,YAAY;AACZC,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAGqF,IAAI,EAAK;AAClBrF,QAAAA,SAAQ,aAARA,SAAQ,KAAA,KAAA,CAAA,IAARA,SAAQ,CAAGqF,IAAa,CAAC,CAAA;AACzBC,QAAAA,eAAe,CAACjB,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;AACxC,QAAA,IAAId,QAAQ,EAAE,OAAA;AACd;QACAa,iBAAiB,CAACiB,IAAuB,CAAC,CAAA;AAC5C,OAAA;AACF,KAAC,CAAC;IAtBAE,YAAY,GAAAP,cAAA,CAAZO,YAAY;IACZC,gBAAgB,GAAAR,cAAA,CAAhBQ,gBAAgB;IAChBC,mBAAmB,GAAAT,cAAA,CAAnBS,mBAAmB;IACnBC,eAAe,GAAAV,cAAA,CAAfU,eAAe;IACfC,aAAa,GAAAX,cAAA,CAAbW,aAAa;IACbC,eAAe,GAAAZ,cAAA,CAAfY,eAAe;IACfC,kBAAkB,GAAAb,cAAA,CAAlBa,kBAAkB;IAClBC,WAAW,GAAAd,cAAA,CAAXc,WAAW,CAAA;AAgBb,EAAA,IAAAC,gBAAA,GAAgCtC,cAAK,CAACQ,QAAQ,CAAyB2B,eAAe,CAAC;IAAAI,gBAAA,GAAAnC,cAAA,CAAAkC,gBAAA,EAAA,CAAA,CAAA;AAAhFE,IAAAA,QAAQ,GAAAD,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,WAAW,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;;AAE5B;EACAvC,cAAK,CAAC0C,SAAS,CAAC,YAAM;AACpB,IAAA,IAAI,CAAC5C,QAAQ,IAAIqC,eAAe,EAAE;MAChCxB,iBAAiB,CAACwB,eAAkC,CAAC,CAAA;AACvD,KAAA;GACD,EAAE,EAAE,CAAC,CAAA;EAEN,IAAAQ,sBAAA,GAAoD3B,oBAAoB,CAAC;AACvE3E,MAAAA,KAAK,EAAEK,MAAM;AACbJ,MAAAA,YAAY,EAAEK,aAAa;AAC3BJ,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAGG,MAAM,EAAK;AACpBE,QAAAA,YAAY,KAAZA,IAAAA,IAAAA,YAAY,KAAZA,KAAAA,CAAAA,IAAAA,YAAY,CAAG;AAAEF,UAAAA,MAAM,EAANA,MAAAA;AAAO,SAAC,CAAC,CAAA;AAC1B;QACA+F,WAAW,CAACN,eAAe,CAAC,CAAA;AAC5BhB,QAAAA,SAAS,CAAC,YAAA;AAAA,UAAA,OAAMvD,aAAa,CAAA;SAAC,CAAA,CAAA;AAChC,OAAA;AACF,KAAC,CAAC;IAAAgF,sBAAA,GAAAxC,cAAA,CAAAuC,sBAAA,EAAA,CAAA,CAAA;AATKE,IAAAA,kBAAkB,GAAAD,sBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,qBAAqB,GAAAF,sBAAA,CAAA,CAAA,CAAA,CAAA;EAWhD,IAAMG,WAAW,GAAGC,aAAa,CAAC,KAAK,EAAE,IAAIC,IAAI,EAAE,CAAC,CAAA;;AAEpD;EACA,IAAAC,eAAA,GAKIC,cAAc,CAAC;MACjB1G,OAAO,EAAEA,OAAO,IAAI,EAAE;AACtBiE,MAAAA,cAAc,EAAdA,cAAc;AACdqC,MAAAA,WAAW,EAAXA,WAAW;AACX5D,MAAAA,aAAa,EAAbA,aAAAA;AACF,KAAC,CAAC;IATAiE,YAAY,GAAAF,eAAA,CAAZE,YAAY;IACZC,mBAAmB,GAAAH,eAAA,CAAnBG,mBAAmB;IACnBC,sBAAsB,GAAAJ,eAAA,CAAtBI,sBAAsB;IACPC,sBAAsB,GAAAL,eAAA,CAArC/D,aAAa,CAAA;AAOf,EAAA,IAAMqE,oBAAoB,GAAG,CAAArB,eAAe,KAAfA,IAAAA,IAAAA,eAAe,uBAAfA,eAAe,CAAG,CAAC,CAAC,MAAIA,eAAe,KAAfA,IAAAA,IAAAA,eAAe,uBAAfA,eAAe,CAAG,CAAC,CAAC,CAAA,CAAA;AACzE,EAAA,IAAAsB,qBAAA,GAAgEC,wBAAwB,EAAE;IAAlFC,uBAAuB,GAAAF,qBAAA,CAAvBE,uBAAuB;IAAEC,0BAA0B,GAAAH,qBAAA,CAA1BG,0BAA0B,CAAA;AAC3D,EAAA,IAAAC,qBAAA,GAGIC,yBAAyB,EAAE;IAF7BC,4BAA4B,GAAAF,qBAAA,CAA5BE,4BAA4B;IAC5BC,iCAAiC,GAAAH,qBAAA,CAAjCG,iCAAiC,CAAA;EAEnC,IAAIC,mBAAmB,GAAG,CAACT,oBAAoB,CAAA;AAC/C,EAAA,IAAI1D,QAAQ,EAAE;AACZmE,IAAAA,mBAAmB,GAAG,CAACC,OAAO,CAAC/B,eAAe,CAAC,CAAA;AACjD,GAAA;AAEA,EAAA,IAAMgC,KAAK,GAAGnE,cAAK,CAACoE,WAAW,CAAC,YAAM;AACpCtB,IAAAA,qBAAqB,CAAC,YAAA;AAAA,MAAA,OAAM,KAAK,CAAA;KAAC,CAAA,CAAA;AACpC,GAAC,EAAE,CAACA,qBAAqB,CAAC,CAAC,CAAA;;AAE3B;AACA,EAAA,IAAMuB,qBAAqB,GAAGrE,cAAK,CAACoE,WAAW,CAAC,YAAM;IACpDJ,iCAAiC,CAAC,UAACM,IAAc,EAAA;AAAA,MAAA,OAC/CA,IAAI,CAACC,QAAQ,CAAC1H,KAAe,CAAC,GAAGyH,IAAI,GAAAE,EAAAA,CAAAA,MAAA,CAAAC,kBAAA,CAAOH,IAAI,CAAA,EAAA,CAAEzH,KAAK,CAAW,CAAA,CAAA;AAAA,KACpE,CAAC,CAAA;AACH,GAAC,EAAE,CAACmH,iCAAiC,EAAEnH,KAAK,CAAC,CAAC,CAAA;;AAE9C;AACA,EAAA,IAAM6H,6CAA6C,GAAG1E,cAAK,CAACoE,WAAW,CAAC,YAAM;IAC5ER,0BAA0B,CAAC,UAACU,IAAI,EAAK;AACnC,MAAA,IAAIxE,QAAQ,EAAE;AACZ,QAAA,OAAA6E,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAYL,IAAI,CAAA,EAAA,EAAA,EAAAM,eAAA,CAAA,EAAA,EAAG/H,KAAK,EAAa,CAACsF,eAAe,CAAW,CAAA,CAAA,CAAA;AAClE,OAAA;MACA,OAAAwC,aAAA,CAAAA,aAAA,CAAYL,EAAAA,EAAAA,IAAI,OAAAM,eAAA,CAAA,EAAA,EAAG/H,KAAK,EAAasF,eAAe,CAAA,CAAA,CAAA;AACtD,KAAC,CAAC,CAAA;GACH,EAAE,CAACyB,0BAA0B,EAAE/G,KAAK,EAAEiD,QAAQ,EAAEqC,eAAe,CAAC,CAAC,CAAA;AAElE,EAAA,IAAM0C,WAAW,GAAG,SAAdA,WAAWA,GAAe;AAC9B,IAAA,IAAI/E,QAAQ,EAAE;AACZvD,MAAAA,SAAQ,aAARA,SAAQ,KAAA,KAAA,CAAA,IAARA,SAAQ,CAAG4F,eAAe,CAAC,CAAA;AAC3BN,MAAAA,eAAe,CAACjB,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;MACzC6B,WAAW,CAACN,eAAe,CAAC,CAAA;AAC5B3F,MAAAA,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,IAAPA,OAAO,CAAG2F,eAAe,CAAC,CAAA;AAC1BgC,MAAAA,KAAK,EAAE,CAAA;AACPO,MAAAA,6CAA6C,EAAE,CAAA;AAC/CL,MAAAA,qBAAqB,EAAE,CAAA;AACvB,MAAA,OAAA;AACF,KAAA;AACA;AACA,IAAA,IAAIb,oBAAoB,EAAE;AACxBjH,MAAAA,SAAQ,aAARA,SAAQ,KAAA,KAAA,CAAA,IAARA,SAAQ,CAAG4F,eAAe,CAAC,CAAA;AAC3BN,MAAAA,eAAe,CAACjB,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;MACzC6B,WAAW,CAACN,eAAe,CAAC,CAAA;AAC5B3F,MAAAA,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,IAAPA,OAAO,CAAG2F,eAAe,CAAC,CAAA;AAC1BgC,MAAAA,KAAK,EAAE,CAAA;AACT,KAAA;AAEAO,IAAAA,6CAA6C,EAAE,CAAA;AAC/CL,IAAAA,qBAAqB,EAAE,CAAA;GACxB,CAAA;;AAED;AACA;AACA;AACA;EACArE,cAAK,CAAC0C,SAAS,CAAC,YAAM;IACpB,IAAI5B,+BAA+B,CAACgE,OAAO,EAAE;MAC3ChE,+BAA+B,CAACgE,OAAO,GAAG,KAAK,CAAA;AAC/CD,MAAAA,WAAW,EAAE,CAAA;AACb,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAI,CAAC7F,iBAAiB,IAAI6D,kBAAkB,EAAE;AAC5C,MAAA,IAAMkC,UAAU,GAAGjF,QAAQ,GACvBoE,OAAO,CAAC/B,eAAe,CAAC,GACxB+B,OAAO,CACL,CAAC/B,eAAe,KAAfA,IAAAA,IAAAA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAe,CAAuB,CAAC,CAAC,MAAKA,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,eAAe,CAAuB,CAAC,CAAC,CACxF,CAAC,CAAA;AAEL,MAAA,IAAI4C,UAAU,EAAE;QACdtC,WAAW,CAACN,eAAe,CAAC,CAAA;AAC5BN,QAAAA,eAAe,CAACjB,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;AACzCpE,QAAAA,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,IAAPA,OAAO,CAAG2F,eAAwB,CAAC,CAAA;AACnCuC,QAAAA,6CAA6C,EAAE,CAAA;AAC/CL,QAAAA,qBAAqB,EAAE,CAAA;AACvBF,QAAAA,KAAK,EAAE,CAAA;AACT,OAAA;AACF,KAAA;AACA;AACF,GAAC,EAAE,CAAChC,eAAe,CAAC,CAAC,CAAA;AAErB,EAAA,IAAM6C,YAAY,GAAG,SAAfA,YAAYA,GAAe;IAC/B5C,kBAAkB,CAACI,QAAQ,CAAC,CAAA;AAC5BX,IAAAA,eAAe,CAACjB,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IACzCsB,aAAa,CAAC,IAAI,CAAC,CAAA;AACnBiC,IAAAA,KAAK,EAAE,CAAA;GACR,CAAA;AAED,EAAA,IAAMc,WAAW,GAAG,SAAdA,WAAWA,GAAe;AAC9BpD,IAAAA,eAAe,CAACjB,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;AACzCyB,IAAAA,WAAW,EAAE,CAAA;IACb1B,iBAAiB,CAAC,IAAI,CAAC,CAAA;AACvBwD,IAAAA,KAAK,EAAE,CAAA;IACPH,iCAAiC,CAAC,UAACM,IAAc,EAAA;AAAA,MAAA,OAC/CA,IAAI,CAACY,MAAM,CAAC,UAACA,MAAM,EAAA;QAAA,OAAKA,MAAM,KAAKrI,KAAK,CAAA;OAAC,CAAA,CAAA;AAAA,KAC3C,CAAC,CAAA;IAED+G,0BAA0B,CAAC,UAACU,IAAI,EAAK;MACnC,IAAAa,KAAA,GAAStI,KAAK;QAAawD,CAAC,GAAciE,IAAI,CAAAa,KAAA,CAAA;QAAbC,IAAI,GAAA/F,wBAAA,CAAKiF,IAAI,GAAAa,KAAA,CAAA,CAAAE,GAAA,CAAAC,cAAA,CAAA,CAAA,CAAA;AAC9C,MAAA,OAAOF,IAAI,CAAA;AACb,KAAC,CAAC,CAAA;AACFxG,IAAAA,kBAAkB,KAAlBA,IAAAA,IAAAA,kBAAkB,KAAlBA,KAAAA,CAAAA,IAAAA,kBAAkB,EAAI,CAAA;GACvB,CAAA;EAEDoB,cAAK,CAAC0C,SAAS,CAAC,YAAM;AACpB,IAAA,IAAIiB,uBAAuB,CAAC9G,KAAK,CAAW,EAAE;AAC5CuF,MAAAA,kBAAkB,CACfuB,uBAAuB,CACtB9G,KAAK,CAET,CAAC,CAAA;AACH,KAAA;AACA;GACD,EAAE,EAAE,CAAC,CAAA;EAENmD,cAAK,CAAC0C,SAAS,CAAC,YAAM;AACpB,IAAA,IAAIqB,4BAA4B,EAAE;AAChCkB,MAAAA,WAAW,EAAE,CAAA;AACf,KAAA;AACA;AACF,GAAC,EAAE,CAAClB,4BAA4B,CAAC,CAAC,CAAA;AAElC,EAAA,IAAMwB,QAAQ,GAAGC,WAAW,EAAE,CAAA;AAC9B,EAAA,IAAMC,OAAO,GAAGC,KAAK,CAAC,kBAAkB,CAAC,CAAA;AACzC,EAAA,IAAAC,UAAA,GAAwB/F,QAAQ,EAAE;IAA1BgG,WAAW,GAAAD,UAAA,CAAXC,WAAW,CAAA;EACnB,IAAAC,SAAA,GAQIC,QAAQ,CAAC;MACXC,OAAO,EAAE,CAACR,QAAQ;AAClBS,MAAAA,SAAS,EAAE,cAAc;AACzBC,MAAAA,IAAI,EAAEpD,kBAAkB;MACxBjG,YAAY,EAAE,SAAdA,YAAYA,CAAGF,MAAM,EAAE2D,CAAC,EAAE6F,MAAM,EAAK;AACnCpD,QAAAA,qBAAqB,CAAC,YAAA;AAAA,UAAA,OAAMpG,MAAM,CAAA;SAAC,CAAA,CAAA;QACnC,IAAIwJ,MAAM,KAAK,YAAY,EAAE;AAC3BlB,UAAAA,YAAY,EAAE,CAAA;AAChB,SAAA;OACD;AACDpE,MAAAA,YAAY,EAAZA,YAAY;AACZuF,MAAAA,eAAe,EAAE,CAAC,EAAA;AACpB,KAAC,CAAC;IAnBAC,OAAO,GAAAP,SAAA,CAAPO,OAAO;IACPC,IAAI,GAAAR,SAAA,CAAJQ,IAAI;IACJC,SAAS,GAAAT,SAAA,CAATS,SAAS;IACTC,cAAc,GAAAV,SAAA,CAAdU,cAAc;IACdC,eAAe,GAAAX,SAAA,CAAfW,eAAe;IACfC,iBAAiB,GAAAZ,SAAA,CAAjBY,iBAAiB;IACjBC,gBAAgB,GAAAb,SAAA,CAAhBa,gBAAgB,CAAA;AAelB,EAAA,IAAMC,mBAAmB,GAAG,CAAC7G,QAAQ,IAAI,CAACyF,QAAQ,CAAA;;AAElD;AACA;AACA;AACA;EACAvF,cAAK,CAAC0C,SAAS,CAAC,YAAM;IACpB,IAAI6C,QAAQ,IAAI1C,kBAAkB,EAAE;AAAA,MAAA,IAAA+D,eAAA,CAAA;AAClC,MAAA,IAAMC,KAAK,GAAA,CAAAD,eAAA,GAAIP,IAAI,CAACS,SAAS,MAAA,IAAA,IAAAF,eAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAdA,eAAA,CAAgB9B,OAAmD,CAAA;AAClF,MAAA,IAAI+B,KAAK,KAALA,IAAAA,IAAAA,KAAK,eAALA,KAAK,CAAEE,IAAI,EAAE;AACfC,QAAAA,UAAU,CAAC,YAAM;AAAA,UAAA,IAAAC,WAAA,CAAA;AACf,UAAA,CAAAA,WAAA,GAAAJ,KAAK,CAACE,IAAI,MAAA,IAAA,IAAAE,WAAA,KAAA,KAAA,CAAA,IAAVA,WAAA,CAAAC,IAAA,CAAAL,KAAa,CAAC,CAAA;SACf,EAAE,CAAC,CAAC,CAAA;AACP,OAAA;AACF,KAAA;GACD,EAAE,CAACtB,QAAQ,EAAE1C,kBAAkB,EAAEwD,IAAI,CAACS,SAAS,CAAC,CAAC,CAAA;AAElD,EAAA,IAAMK,OAAO,gBACXC,IAAA,CAAAC,QAAA,EAAA;AAAAC,IAAAA,QAAA,EACGX,CAAAA,mBAAmB,gBAClBY,GAAA,CAACC,aAAa,EAAA;AACZC,MAAAA,WAAW,EAAE,SAAbA,WAAWA,CAAGC,MAAuC,EAAK;QACxD,IAAMC,WAAW,GAAGD,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAG3E,WAAW,CAAC,CAAA;QACzCX,kBAAkB,CAACuF,WAAW,CAAC,CAAA;QAC/BhH,iBAAiB,CAACgH,WAAW,CAAC,CAAA;AAC9B;AACA;AACA;AACA;QACA,IAAI,CAAC3I,iBAAiB,EAAE;UACtB8B,+BAA+B,CAACgE,OAAO,GAAG,IAAI,CAAA;AAChD,SAAA;OACA;AACF1B,MAAAA,YAAY,EAAEA,YAAAA;AAAa,KAC5B,CAAC,GACA,IAAI,eACRgE,IAAA,CAACQ,OAAO,EAAA;AACNC,MAAAA,KAAK,EAAC,MAAM;AACZC,MAAAA,OAAO,EAAC,MAAM;AACdC,MAAAA,aAAa,EAAC,QAAA;AACd;AACR;MACQC,MAAM,EACJ9G,OAAO,KAAK,KAAK,IAAIlC,iBAAiB,GAAGjD,gBAAgB,CAACC,sBAAsB,GAAG,MACpF;AACDiM,MAAAA,cAAc,EAAC,eAAe;MAAAX,QAAA,EAAA,cAE9BC,GAAA,CAACK,OAAO,EAAA;AAACM,QAAAA,OAAO,EAAE;AAAEC,UAAAA,CAAC,EAAE,WAAW;AAAEC,UAAAA,CAAC,EAAE,WAAA;SAAc;QAAAd,QAAA,eACnDC,GAAA,CAACc,QAAQ,EAAA1D,aAAA,CAAAA,aAAA,CAAA,EAAA,EACHvF,KAAK,CAAA,EAAA,EAAA,EAAA;AACTjD,UAAAA,aAAa,EAAEuD,cAAe;AAC9BpD,UAAAA,YAAY,EAAEA,YAAa;AAC3ByB,UAAAA,YAAY,EAAEA,YAAa;AAC3BC,UAAAA,mBAAmB,EAAEA,mBAAoB;AACzCC,UAAAA,oBAAoB,EAAEA,oBAAqB;AAC3CqK,UAAAA,YAAY,EAAEvG,gBAAiB;AAC/BwG,UAAAA,iBAAiB,EAAE,SAAnBA,iBAAiBA,CAAGC,MAAM,EAAE5G,IAAI,EAAK;YACnCI,mBAAmB,CAACJ,IAAI,CAAC,CAAA;WACzB;AACF6G,UAAAA,YAAY,EAAE,SAAdA,YAAYA,CAAGD,MAAM,EAAE5G,IAAI,EAAK;AAC9BE,YAAAA,YAAY,CAACF,IAAI,EAAE,KAAK,CAAC,CAAA;WACzB;AACF8G,UAAAA,oBAAoB,EAAE,SAAtBA,oBAAoBA,CAAG9G,IAAI,EAAK;YAC9B,OAAOK,eAAe,CAACL,IAAI,CAAC,CAAA;WAC5B;AACF+G,UAAAA,mBAAmB,EAAE,SAArBA,mBAAmBA,CAAG/G,IAAI,EAAK;YAC7B,OAAOK,eAAe,CAACL,IAAI,CAAC,CAAA;WAC5B;AACFgH,UAAAA,WAAW,EAAE,SAAbA,WAAWA,CAAGhH,IAAI,EAAK;YACrB,OAAOK,eAAe,CAACL,IAAI,CAAC,CAAA;WAC5B;AACFiH,UAAAA,aAAa,EAAE,SAAfA,aAAaA,CAAGjH,IAAI,EAAK;AAAA,YAAA,IAAAkH,oBAAA,CAAA;AACvB1J,YAAAA,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,IAAA,CAAA0J,oBAAA,GAAL1J,KAAK,CAAEyJ,aAAa,MAAA,IAAA,IAAAC,oBAAA,KAAA,KAAA,CAAA,IAApBA,oBAAA,CAAA5B,IAAA,CAAA9H,KAAK,EAAkBwC,IAAI,CAAC,CAAA;AAC5BE,YAAAA,YAAY,CAACF,IAAI,EAAE,OAAO,CAAC,CAAA;WAC3B;AACFmH,UAAAA,YAAY,EAAE,SAAdA,YAAYA,CAAGnH,IAAI,EAAK;AAAA,YAAA,IAAAoH,mBAAA,CAAA;AACtB5J,YAAAA,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,IAAA,CAAA4J,mBAAA,GAAL5J,KAAK,CAAE2J,YAAY,MAAA,IAAA,IAAAC,mBAAA,KAAA,KAAA,CAAA,IAAnBA,mBAAA,CAAA9B,IAAA,CAAA9H,KAAK,EAAiBwC,IAAI,CAAC,CAAA;AAC3BE,YAAAA,YAAY,CAACF,IAAI,EAAE,MAAM,CAAC,CAAA;WAC1B;AACFqH,UAAAA,MAAM,EAAE,SAARA,MAAMA,CAAGC,IAAI,EAAK;AAAA,YAAA,IAAAC,aAAA,CAAA;AAChB/J,YAAAA,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,IAAA,CAAA+J,aAAA,GAAL/J,KAAK,CAAE6J,MAAM,MAAA,IAAA,IAAAE,aAAA,KAAA,KAAA,CAAA,IAAbA,aAAA,CAAAjC,IAAA,CAAA9H,KAAK,EAAW8J,IAAI,CAAC,CAAA;AACrB5I,YAAAA,aAAa,EAAE,CAAA;WACf;AACF8I,UAAAA,UAAU,EAAE,SAAZA,UAAUA,CAAGF,IAAI,EAAK;AAAA,YAAA,IAAAG,iBAAA,CAAA;AACpBjK,YAAAA,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,IAAA,CAAAiK,iBAAA,GAALjK,KAAK,CAAEgK,UAAU,MAAA,IAAA,IAAAC,iBAAA,KAAA,KAAA,CAAA,IAAjBA,iBAAA,CAAAnC,IAAA,CAAA9H,KAAK,EAAe8J,IAAI,CAAC,CAAA;AACzB5I,YAAAA,aAAa,EAAE,CAAA;WACf;AACFzC,UAAAA,MAAM,EAAEqD,OAAQ;UAChBoI,mBAAmB,EAAE,CAACzL,MAAO;AAC7BC,UAAAA,cAAc,EAAE,SAAhBA,cAAcA,CAAGD,MAAM,EAAK;AAC1BsD,YAAAA,SAAS,CAAC,YAAA;AAAA,cAAA,OAAMtD,MAAM,CAAA;aAAC,CAAA,CAAA;AACvByC,YAAAA,aAAa,EAAE,CAAA;WACf;AACFiJ,UAAAA,aAAa,EAAEpH,eAAAA;SAChB,CAAA,CAAA;OACM,CAAC,EACTnD,iBAAiB,KACfuG,QAAQ,GAAG,IAAI,gBACdgC,GAAA,CAACiC,cAAc,EAAA;AACbC,QAAAA,gBAAgB,EAAExF,mBAAoB;AACtCzH,QAAAA,OAAO,EAAEqI,WAAY;AACrB6E,QAAAA,QAAQ,EAAE1E,YAAa;AACvB/F,QAAAA,MAAM,EAAEA,MAAO;AACf9C,QAAAA,aAAa,EAAEuD,cAAAA;AAAe,OAC/B,CACF,CAAC,CAAA;AAAA,KACG,CAAC,CAAA;AAAA,GACV,CACH,CAAA;AAED,EAAA,IAAMiK,iBAAiB,GAAG3J,cAAK,CAACqB,OAAO,CAAC,YAAM;AAAA,IAAA,IAAAuI,iBAAA,CAAA;AAC5C,IAAA,IAAMC,MAAM,GAAGC,wBAAwB,EAAAF,iBAAA,GAACnK,SAAS,KAATA,IAAAA,IAAAA,SAAS,uBAATA,SAAS,CAAEoK,MAAM,MAAAD,IAAAA,IAAAA,iBAAA,cAAAA,iBAAA,GAAI,OAAO,CAAC,CAAA;IACrE,OAAO;AACLC,MAAAA,MAAM,EAANA,MAAAA;KACD,CAAA;GACF,EAAE,CAACpK,SAAS,KAATA,IAAAA,IAAAA,SAAS,uBAATA,SAAS,CAAEoK,MAAM,CAAC,CAAC,CAAA;;AAEvB;EACA7J,cAAK,CAAC+J,eAAe,CAAC,YAAM;IAC1B,IAAI;AAAA,MAAA,IAAAC,kBAAA,CAAA;AACF,MAAA,IAAMH,MAAM,GAAGC,wBAAwB,EAAAE,kBAAA,GAACvK,SAAS,KAATA,IAAAA,IAAAA,SAAS,uBAATA,SAAS,CAAEoK,MAAM,MAAAG,IAAAA,IAAAA,kBAAA,cAAAA,kBAAA,GAAI,OAAO,CAAC,CAAA;AACrE;AACA,MAAA,IAAI,CAAEC,MAAM,CAASC,KAAK,EAAE;QACzBD,MAAM,CAASC,KAAK,GAAGA,KAAK,CAAA;AAC/B,OAAA;AACAC,MAAAA,UAAU,CAAA3F,8CAAAA,CAAAA,MAAA,CAAgDqF,MAAM,UAAO,YAAM;AAC3EvJ,QAAAA,aAAa,EAAE,CAAA;AACjB,OAAC,CAAC,CAAA;KACH,CAAC,OAAO8J,CAAU,EAAE;AACnBC,MAAAA,MAAM,CAAC;AAAE3I,QAAAA,IAAI,EAAE,MAAM;AAAE4I,QAAAA,OAAO,EAAE,6BAAA;AAA8B,OAAC,CAAC,CAAA;AAClE,KAAA;GACD,EAAE,CAAC7K,SAAS,KAATA,IAAAA,IAAAA,SAAS,uBAATA,SAAS,CAAEoK,MAAM,CAAC,CAAC,CAAA;EAEvB,oBACEtC,GAAA,CAACgD,eAAe,EAAA;IAAAjD,QAAA,eACdC,GAAA,CAACiD,aAAa,EAAA;AAACC,MAAAA,QAAQ,EAAEd,iBAAkB;MAAArC,QAAA,eACzCC,GAAA,CAACmD,kBAAkB,EAAA;AAACC,QAAAA,oBAAoB,EAAE9H,kBAAmB;AAAC1D,QAAAA,aAAa,EAAEA,aAAc;QAAAmI,QAAA,eACzFF,IAAA,CAACQ,OAAO,EAAAjD,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;AACNkD,UAAAA,KAAK,EAAEnJ,gBAAgB,KAAK,MAAM,GAAG,aAAa,GAAG,MAAA;AAAO,SAAA,EACxDkM,cAAc,CAACxL,KAAK,CAAC,CAAA,EACrByL,aAAa,CAAC;UAAEnN,IAAI,EAAEoN,aAAa,CAACC,UAAAA;AAAW,SAAC,CAAC,CAAA,EAAA,EAAA,EAAA;UAAAzD,QAAA,EAAA,CAEpD5I,gBAAgB,KAAK,MAAM,gBAC1B6I,GAAA,CAACyD,oBAAoB,EAAArG,aAAA,CAAA;AACnBxI,YAAAA,aAAa,EAAEuD,cAAe;AAC9BkC,YAAAA,IAAI,EAAEO,eAAgB;AACtB8I,YAAAA,GAAG,EAAErK,YAAa;YAClBsK,QAAQ,EAAE7E,IAAI,CAACS,SAAU;YACzBqE,cAAc,EAAE1E,iBAAiB,EAAG;AACpC/I,YAAAA,IAAI,EAAEA,IAAc;AACpBb,YAAAA,KAAK,EAAEA,KAAe;AACtBE,YAAAA,aAAa,EAAEA,aAAc;AAC7BC,YAAAA,kBAAkB,EAAEA,kBAAmB;AACvCO,YAAAA,IAAI,EAAEA,IAAK;AACXN,YAAAA,SAAS,EAAEA,SAAmB;AAC9BC,YAAAA,QAAQ,EAAEA,QAAkB;AAC5BG,YAAAA,WAAW,EAAEA,WAAqB;AAClCF,YAAAA,UAAU,EAAEA,UAAW;AACvBC,YAAAA,UAAU,EAAEA,UAAW;AACvBE,YAAAA,eAAe,EAAEA,eAAgB;AACjCE,YAAAA,SAAS,EAAEA,SAAU;AACrBC,YAAAA,kBAAkB,EAAEA,kBAAmB;AACvCc,YAAAA,MAAM,EAAE6C,WAAY;AACpBgK,YAAAA,WAAW,EAAE9J,qBAAAA;AACb;AACA;AACA;AACA;AACA;AAAA;AACA3C,YAAAA,eAAe,EAAEA,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,eAAe,GAAI,IAAK;AACzC0M,YAAAA,mBAAmB,EAAEpG,WAAAA;AACrB;AAAA;AACA3B,YAAAA,sBAAsB,EAAExD,QAAQ,GAAG3D,aAAa,GAAGmH,sBAAAA;AACnD;AAAA;AACAD,YAAAA,mBAAmB,EAAEA,mBAAAA;WACjBiI,EAAAA,sBAAsB,CAAClM,KAAK,CAAC,CAClC,CAAC,gBAEFmI,GAAA,CAACgE,eAAe,EAAA5G,aAAA,CAAA;AACdxI,YAAAA,aAAa,EAAEuD,cAAe;AAC9BkC,YAAAA,IAAI,EAAEO,eAAgB;AACtB8I,YAAAA,GAAG,EAAErK,YAAa;YAClBsK,QAAQ,EAAE7E,IAAI,CAACS,SAAU;YACzBqE,cAAc,EAAE1E,iBAAiB,EAAG;AACpC/I,YAAAA,IAAI,EAAEA,IAAc;AACpBb,YAAAA,KAAK,EAAEA,KAAe;AACtBE,YAAAA,aAAa,EAAEA,aAAc;AAC7BC,YAAAA,kBAAkB,EAAEA,kBAAmB;AACvCO,YAAAA,IAAI,EAAEA,IAAK;AACXN,YAAAA,SAAS,EAAEA,SAAmB;AAC9BC,YAAAA,QAAQ,EAAEA,QAAkB;AAC5BG,YAAAA,WAAW,EAAEA,WAAqB;AAClCF,YAAAA,UAAU,EAAEA,UAAW;AACvBC,YAAAA,UAAU,EAAEA,UAAW;AACvBE,YAAAA,eAAe,EAAEA,eAAgB;AACjCE,YAAAA,SAAS,EAAEA,SAAU;AACrBC,YAAAA,kBAAkB,EAAEA,kBAAmB;AACvCc,YAAAA,MAAM,EAAE6C,WAAY;AACpBgK,YAAAA,WAAW,EAAE9J,qBAAsB;AACnCzC,YAAAA,WAAW,EAAEA,WAAY;AACzBC,YAAAA,aAAa,EAAEA,aAAc;AAC7BsD,YAAAA,kBAAkB,EAAEA,kBAAmB;AACvC1B,YAAAA,cAAc,EAAEA,cAAe;YAC/B8K,WAAW,EAAEpM,KAAK,CAACoM,WAAY;YAC/BC,OAAO,EAAErM,KAAK,CAACqM,OAAQ;YACvBC,OAAO,EAAEtM,KAAK,CAACsM,OAAQ;AACvB/M,YAAAA,eAAe,EAAEA,eAAgB;AACjCC,YAAAA,kBAAkB,EAAEqG,WAAAA;AACpB;AAAA;AACA3B,YAAAA,sBAAsB,EAAExD,QAAQ,GAAG3D,aAAa,GAAGmH,sBAAAA;AACnD;AAAA;AACAD,YAAAA,mBAAmB,EAAEA,mBAAoB;YACzCsI,eAAe,EACblP,OAAO,IAAI,CAACqD,QAAQ,IAAI0D,oBAAoB,GACxCoI,oBAAoB,CAAC;AACnBnE,cAAAA,WAAW,EAAE,SAAbA,WAAWA,CAAGC,MAAuC,EAAK;gBACxD,IAAMC,WAAW,GAAGD,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAG3E,WAAW,CAAC,CAAA;gBACzCX,kBAAkB,CAACuF,WAAW,CAAC,CAAA;gBAC/BhH,iBAAiB,CAACgH,WAAW,CAAC,CAAA;gBAC9B7G,+BAA+B,CAACgE,OAAO,GAAG,IAAI,CAAA;eAC/C;AACD+G,cAAAA,cAAc,EAAE,SAAhBA,cAAcA,GAAQ;AACpB/I,gBAAAA,qBAAqB,CAAC,YAAA;AAAA,kBAAA,OAAM,IAAI,CAAA;iBAAC,CAAA,CAAA;eAClC;AACDM,cAAAA,YAAY,EAAZA,YAAY;AACZC,cAAAA,mBAAmB,EAAnBA,mBAAAA;AACF,aAAC,CAAC,GACFyI,SAAAA;WAEFR,EAAAA,sBAAsB,CAAClM,KAAK,CAAC,CAClC,CACF,EACAmG,QAAQ,gBACP6B,IAAA,CAAC2E,WAAW,EAAA;AACVC,YAAAA,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAE;AAC1BtP,YAAAA,MAAM,EAAEmG,kBAAmB;AAC3BoJ,YAAAA,SAAS,EAAE,SAAXA,SAASA,GAAQ;AACfjH,cAAAA,YAAY,EAAE,CAAA;aACd;YAAAsC,QAAA,EAAA,cAEFC,GAAA,CAAC2E,iBAAiB,EAAA;AAACC,cAAAA,KAAK,EAAErM,QAAQ,GAAG,aAAa,GAAG,mBAAA;AAAoB,aAAE,CAAC,eAC5EsH,IAAA,CAACgF,eAAe,EAAA;cAAA9E,QAAA,EAAA,CACbH,OAAO,EACP,CAACrH,QAAQ,IAAIrD,OAAO,iBACnB8K,GAAA,CAACC,aAAa,EAAA;gBACZjC,QAAQ,EAAA,IAAA;AACRnC,gBAAAA,YAAY,EAAEA,YAAa;AAC3BqE,gBAAAA,WAAW,EAAE,SAAbA,WAAWA,CAAGC,MAAuC,EAAK;kBACxD,IAAMC,WAAW,GAAGD,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAG3E,WAAW,CAAC,CAAA;kBACzCX,kBAAkB,CAACuF,WAAW,CAAC,CAAA;kBAC/BhH,iBAAiB,CAACgH,WAAW,CAAC,CAAA;AAChC,iBAAA;AAAE,eACH,CACF,CAAA;AAAA,aACc,CAAC,EACjB3I,iBAAiB,iBAChBuI,GAAA,CAAC8E,iBAAiB,EAAA;cAAA/E,QAAA,eAChBC,GAAA,CAACiC,cAAc,EAAA;AACbE,gBAAAA,QAAQ,EAAE1E,YAAa;AACvBxI,gBAAAA,OAAO,EAAEqI,WAAY;AACrB5F,gBAAAA,MAAM,EAAEA,MAAO;AACf9C,gBAAAA,aAAa,EAAEuD,cAAAA;eAChB,CAAA;AAAC,aACe,CACpB,CAAA;AAAA,WACU,CAAC,GAEd4G,SAAS,iBACPiB,GAAA,CAAC+E,cAAc,EAAA;YAAAhF,QAAA,eACbC,GAAA,CAACgF,oBAAoB,EAAA;cACnBC,YAAY,EAAE,CAAC,CAAE;AACjBpG,cAAAA,OAAO,EAAEA,OAAQ;AACjBqG,cAAAA,MAAM,EAAE,IAAK;AACbC,cAAAA,KAAK,EAAE,CAAC,WAAW,EAAE,SAAS,CAAA;AAC9B;AACA;AAAA;cACAC,WAAW,EAAEpJ,sBAAsB,KAAK,SAAU;cAAA+D,QAAA,eAElDC,GAAA,CAACK,OAAO,EAAAjD,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;gBACNsG,GAAG,EAAE5E,IAAI,CAACuG,WAAY;AACtBC,gBAAAA,KAAK,EAAEtG,cAAe;AACtBpI,gBAAAA,MAAM,EAAEA,MAAAA;AAAO,eAAA,EACXuI,gBAAgB,EAAE,CAAA,EAClBoG,cAAc,CAAC;AAAEC,gBAAAA,UAAU,EAAEtH,OAAAA;AAAQ,eAAC,CAAC,CAAA,EAAA,EAAA,EAAA;gBAAA6B,QAAA,eAE3CC,GAAA,CAACK,OAAO,EAAA;AACNE,kBAAAA,OAAO,EAAC,MAAM;AACdC,kBAAAA,aAAa,EAAC,KAAK;AACnBiF,kBAAAA,YAAY,EAAC,QAAQ;AACrBC,kBAAAA,QAAQ,EAAC,QAAQ;AACjBC,kBAAAA,QAAQ,EAAC,OAAO;AAChBC,kBAAAA,MAAM,EAAC,MAAM;AACbC,kBAAAA,eAAe,EAAC,gCAAgC;AAChDP,kBAAAA,KAAK,EAAAlI,aAAA,CAAAA,aAAA,KACA6B,eAAe,CAAA,EAAA,EAAA,EAAA;AAClB6G,oBAAAA,SAAS,EAAEC,uBAAuB,CAACzN,KAAK,EAAE+F,WAAW,CAAC;AACtD2H,oBAAAA,cAAc,UAAA/I,MAAA,CAAU3E,KAAK,CAAC2N,YAAY,CAACC,IAAI,EAAA,KAAA,CAAA;mBAC/C,CAAA;AAAAnG,kBAAAA,QAAA,EAEDH,OAAAA;iBACM,CAAA;eACF,CAAA,CAAA;aACW,CAAA;AAAC,WACT,CAEnB,CAAA;SACM,CAAA,CAAA;OACS,CAAA;KACP,CAAA;AAAC,GACD,CAAC,CAAA;AAEtB;;;;"}
|
|
@@ -47,7 +47,9 @@ var _DatePickerFilterChip = function _DatePickerFilterChip(_ref, ref) {
|
|
|
47
47
|
date = props.date,
|
|
48
48
|
format = props.format,
|
|
49
49
|
isDisabled = props.isDisabled,
|
|
50
|
-
selectedPresetLabel = props.selectedPresetLabel
|
|
50
|
+
selectedPresetLabel = props.selectedPresetLabel,
|
|
51
|
+
_props$showClearButto = props.showClearButton,
|
|
52
|
+
showClearButton = _props$showClearButto === void 0 ? true : _props$showClearButto;
|
|
51
53
|
var _useDatesContext = useDatesContext(),
|
|
52
54
|
locale = _useDatesContext.locale;
|
|
53
55
|
var displayFormat = (_useDatePickerContext = (_useDatePickerContext2 = useDatePickerContext()) === null || _useDatePickerContext2 === void 0 ? void 0 : _useDatePickerContext2.displayFormat) !== null && _useDatePickerContext !== void 0 ? _useDatePickerContext : 'default';
|
|
@@ -80,6 +82,7 @@ var _DatePickerFilterChip = function _DatePickerFilterChip(_ref, ref) {
|
|
|
80
82
|
ref: ref,
|
|
81
83
|
label: label,
|
|
82
84
|
value: dateValue,
|
|
85
|
+
showClearButton: showClearButton,
|
|
83
86
|
onClearButtonClick: onClearButtonChange,
|
|
84
87
|
accessibilityProps: {
|
|
85
88
|
label: accessibilityLabel !== null && accessibilityLabel !== void 0 ? accessibilityLabel : label,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerFilterChip.web.js","sources":["../../../../../../../src/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { useDatesContext } from '@mantine/dates';\nimport type { DatePickerFilterChipProps } from '../types';\nimport { getFormattedDate, getHumanizedDate } from '../utils';\nimport { useDatePickerContext } from '../DatePickerContext';\nimport { BaseFilterChip } from '~components/FilterChip/BaseFilterChip';\nimport type { BladeElementRef } from '~utils/types';\n\nconst formatDateRange = (\n date: Date | [Date, Date],\n format: string,\n locale: string,\n selectionType: 'single' | 'range',\n): string => {\n const formatOptions = {\n date,\n format,\n labelSeparator: '-',\n locale,\n type: 'default' as const,\n };\n\n if (selectionType === 'single' && date instanceof Date) {\n return getFormattedDate(formatOptions);\n }\n\n if (Array.isArray(date)) {\n const [startDate, endDate] = date;\n if (startDate) {\n return `${getFormattedDate({ ...formatOptions, date: startDate })} ${\n endDate ? ' - ' : ''\n } ${getFormattedDate({\n ...formatOptions,\n date: endDate,\n })}`;\n }\n }\n return '';\n};\n\nconst _DatePickerFilterChip: React.ForwardRefRenderFunction<\n BladeElementRef,\n DatePickerFilterChipProps & {\n onClearButtonChange: (value: string) => void;\n }\n> = (\n {\n ...props\n }: DatePickerFilterChipProps & {\n onClearButtonChange: (value: string) => void;\n },\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n const {\n referenceProps,\n label,\n selectionType,\n onClearButtonChange,\n accessibilityLabel,\n date,\n format,\n isDisabled,\n selectedPresetLabel,\n } = props;\n const { locale } = useDatesContext();\n const displayFormat = useDatePickerContext()?.displayFormat ?? 'default';\n\n // Check if there's actually a valid date selection.\n // In range mode both dates need to be present.\n const hasValidSelection =\n selectionType === 'range'\n ? Boolean((date as [Date | null, Date | null])?.[0]) &&\n Boolean((date as [Date | null, Date | null])?.[1])\n : Boolean(date);\n\n // When displayFormat is 'compact' and a defined preset (e.g. \"Last 7 days\") is selected,\n // show the preset label inside the chip instead of the actual date range.\n // For custom range selections there is no preset label, so we fall back to the date range.\n const shouldShowPresetLabel =\n displayFormat === 'compact' && Boolean(selectedPresetLabel) && hasValidSelection;\n\n let dateValue: string;\n if (shouldShowPresetLabel) {\n // A defined preset (e.g. \"Past 7 days\") is selected → show its label.\n dateValue = selectedPresetLabel as string;\n } else if (displayFormat === 'compact' && format === 'DD/MM/YYYY') {\n // Compact mode with a custom/date selection on the day picker → humanised date range.\n // Month/year pickers keep their own format (e.g. MMM/YYYY) which is already readable.\n dateValue = getHumanizedDate({ date, locale, selectionType });\n } else {\n // Default → show the date range using the configured format (e.g. DD/MM/YYYY).\n dateValue = formatDateRange(date, format, locale, selectionType);\n }\n\n return (\n <BaseFilterChip\n ref={ref}\n label={label}\n value={dateValue}\n onClearButtonClick={onClearButtonChange}\n accessibilityProps={{\n label: accessibilityLabel ?? label,\n hasPopup: referenceProps['aria-haspopup'],\n expanded: referenceProps['aria-expanded'],\n controls: referenceProps['aria-controls'],\n role: 'combobox',\n }}\n isDisabled={isDisabled}\n {...referenceProps}\n />\n );\n};\n\nconst DatePickerFilterChip = forwardRef(_DatePickerFilterChip);\n\nexport { DatePickerFilterChip };\n"],"names":["formatDateRange","date","format","locale","selectionType","formatOptions","labelSeparator","type","Date","getFormattedDate","Array","isArray","_date","_slicedToArray","startDate","endDate","concat","_objectSpread","_DatePickerFilterChip","_ref","ref","_useDatePickerContext","_useDatePickerContext2","props","_extends","_objectDestructuringEmpty","referenceProps","label","onClearButtonChange","accessibilityLabel","isDisabled","selectedPresetLabel","_useDatesContext","useDatesContext","displayFormat","useDatePickerContext","hasValidSelection","Boolean","shouldShowPresetLabel","dateValue","getHumanizedDate","_jsx","BaseFilterChip","value","onClearButtonClick","accessibilityProps","hasPopup","expanded","controls","role","DatePickerFilterChip","forwardRef"],"mappings":";;;;;;;;;;;;;AAQA,IAAMA,eAAe,GAAG,SAAlBA,eAAeA,CACnBC,IAAyB,EACzBC,MAAc,EACdC,MAAc,EACdC,aAAiC,EACtB;AACX,EAAA,IAAMC,aAAa,GAAG;AACpBJ,IAAAA,IAAI,EAAJA,IAAI;AACJC,IAAAA,MAAM,EAANA,MAAM;AACNI,IAAAA,cAAc,EAAE,GAAG;AACnBH,IAAAA,MAAM,EAANA,MAAM;AACNI,IAAAA,IAAI,EAAE,SAAA;GACP,CAAA;AAED,EAAA,IAAIH,aAAa,KAAK,QAAQ,IAAIH,IAAI,YAAYO,IAAI,EAAE;IACtD,OAAOC,gBAAgB,CAACJ,aAAa,CAAC,CAAA;AACxC,GAAA;AAEA,EAAA,IAAIK,KAAK,CAACC,OAAO,CAACV,IAAI,CAAC,EAAE;AACvB,IAAA,IAAAW,KAAA,GAAAC,cAAA,CAA6BZ,IAAI,EAAA,CAAA,CAAA;AAA1Ba,MAAAA,SAAS,GAAAF,KAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,OAAO,GAAAH,KAAA,CAAA,CAAA,CAAA,CAAA;AACzB,IAAA,IAAIE,SAAS,EAAE;MACb,OAAAE,EAAAA,CAAAA,MAAA,CAAUP,gBAAgB,CAAAQ,aAAA,CAAAA,aAAA,KAAMZ,aAAa,CAAA,EAAA,EAAA,EAAA;AAAEJ,QAAAA,IAAI,EAAEa,SAAAA;AAAS,OAAA,CAAE,CAAC,EAAAE,IAAAA,CAAAA,CAAAA,MAAA,CAC/DD,OAAO,GAAG,KAAK,GAAG,EAAE,EAAAC,GAAAA,CAAAA,CAAAA,MAAA,CAClBP,gBAAgB,CAAAQ,aAAA,CAAAA,aAAA,KACfZ,aAAa,CAAA,EAAA,EAAA,EAAA;AAChBJ,QAAAA,IAAI,EAAEc,OAAAA;AAAO,OAAA,CACd,CAAC,CAAA,CAAA;AACJ,KAAA;AACF,GAAA;AACA,EAAA,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,IAAMG,qBAKL,GAAG,SALEA,qBAKLA,CAAAC,IAAA,EAMCC,GAAwC,EACjB;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,CAAA;EAAA,IALlBC,KAAK,GAAAC,QAAA,CAAA,EAAA,GAAAC,yBAAA,CAAAN,IAAA,GAAAA,IAAA,EAAA,CAAA;AAMV,EAAA,IACEO,cAAc,
|
|
1
|
+
{"version":3,"file":"DatePickerFilterChip.web.js","sources":["../../../../../../../src/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { useDatesContext } from '@mantine/dates';\nimport type { DatePickerFilterChipProps } from '../types';\nimport { getFormattedDate, getHumanizedDate } from '../utils';\nimport { useDatePickerContext } from '../DatePickerContext';\nimport { BaseFilterChip } from '~components/FilterChip/BaseFilterChip';\nimport type { BladeElementRef } from '~utils/types';\n\nconst formatDateRange = (\n date: Date | [Date, Date],\n format: string,\n locale: string,\n selectionType: 'single' | 'range',\n): string => {\n const formatOptions = {\n date,\n format,\n labelSeparator: '-',\n locale,\n type: 'default' as const,\n };\n\n if (selectionType === 'single' && date instanceof Date) {\n return getFormattedDate(formatOptions);\n }\n\n if (Array.isArray(date)) {\n const [startDate, endDate] = date;\n if (startDate) {\n return `${getFormattedDate({ ...formatOptions, date: startDate })} ${\n endDate ? ' - ' : ''\n } ${getFormattedDate({\n ...formatOptions,\n date: endDate,\n })}`;\n }\n }\n return '';\n};\n\nconst _DatePickerFilterChip: React.ForwardRefRenderFunction<\n BladeElementRef,\n DatePickerFilterChipProps & {\n onClearButtonChange: (value: string) => void;\n }\n> = (\n {\n ...props\n }: DatePickerFilterChipProps & {\n onClearButtonChange: (value: string) => void;\n },\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n const {\n referenceProps,\n label,\n selectionType,\n onClearButtonChange,\n accessibilityLabel,\n date,\n format,\n isDisabled,\n selectedPresetLabel,\n showClearButton = true,\n } = props;\n const { locale } = useDatesContext();\n const displayFormat = useDatePickerContext()?.displayFormat ?? 'default';\n\n // Check if there's actually a valid date selection.\n // In range mode both dates need to be present.\n const hasValidSelection =\n selectionType === 'range'\n ? Boolean((date as [Date | null, Date | null])?.[0]) &&\n Boolean((date as [Date | null, Date | null])?.[1])\n : Boolean(date);\n\n // When displayFormat is 'compact' and a defined preset (e.g. \"Last 7 days\") is selected,\n // show the preset label inside the chip instead of the actual date range.\n // For custom range selections there is no preset label, so we fall back to the date range.\n const shouldShowPresetLabel =\n displayFormat === 'compact' && Boolean(selectedPresetLabel) && hasValidSelection;\n\n let dateValue: string;\n if (shouldShowPresetLabel) {\n // A defined preset (e.g. \"Past 7 days\") is selected → show its label.\n dateValue = selectedPresetLabel as string;\n } else if (displayFormat === 'compact' && format === 'DD/MM/YYYY') {\n // Compact mode with a custom/date selection on the day picker → humanised date range.\n // Month/year pickers keep their own format (e.g. MMM/YYYY) which is already readable.\n dateValue = getHumanizedDate({ date, locale, selectionType });\n } else {\n // Default → show the date range using the configured format (e.g. DD/MM/YYYY).\n dateValue = formatDateRange(date, format, locale, selectionType);\n }\n\n return (\n <BaseFilterChip\n ref={ref}\n label={label}\n value={dateValue}\n showClearButton={showClearButton}\n onClearButtonClick={onClearButtonChange}\n accessibilityProps={{\n label: accessibilityLabel ?? label,\n hasPopup: referenceProps['aria-haspopup'],\n expanded: referenceProps['aria-expanded'],\n controls: referenceProps['aria-controls'],\n role: 'combobox',\n }}\n isDisabled={isDisabled}\n {...referenceProps}\n />\n );\n};\n\nconst DatePickerFilterChip = forwardRef(_DatePickerFilterChip);\n\nexport { DatePickerFilterChip };\n"],"names":["formatDateRange","date","format","locale","selectionType","formatOptions","labelSeparator","type","Date","getFormattedDate","Array","isArray","_date","_slicedToArray","startDate","endDate","concat","_objectSpread","_DatePickerFilterChip","_ref","ref","_useDatePickerContext","_useDatePickerContext2","props","_extends","_objectDestructuringEmpty","referenceProps","label","onClearButtonChange","accessibilityLabel","isDisabled","selectedPresetLabel","_props$showClearButto","showClearButton","_useDatesContext","useDatesContext","displayFormat","useDatePickerContext","hasValidSelection","Boolean","shouldShowPresetLabel","dateValue","getHumanizedDate","_jsx","BaseFilterChip","value","onClearButtonClick","accessibilityProps","hasPopup","expanded","controls","role","DatePickerFilterChip","forwardRef"],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
|
|
|
15
15
|
import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
|
|
16
16
|
import Link from '../Link/Link/Link.js';
|
|
17
17
|
|
|
18
|
-
var _excluded = ["testID", "children", "showClearButton", "onClearButtonClick"];
|
|
18
|
+
var _excluded = ["testID", "children", "showClearButton", "onClearButtonClick", "onResetButtonClick", "clearButtonText", "resetButtonText"];
|
|
19
19
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
20
20
|
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; }
|
|
21
21
|
var FilterChipGroup = function FilterChipGroup(_ref) {
|
|
@@ -24,6 +24,9 @@ var FilterChipGroup = function FilterChipGroup(_ref) {
|
|
|
24
24
|
_ref$showClearButton = _ref.showClearButton,
|
|
25
25
|
showClearButton = _ref$showClearButton === void 0 ? true : _ref$showClearButton,
|
|
26
26
|
onClearButtonClick = _ref.onClearButtonClick,
|
|
27
|
+
onResetButtonClick = _ref.onResetButtonClick,
|
|
28
|
+
clearButtonText = _ref.clearButtonText,
|
|
29
|
+
resetButtonText = _ref.resetButtonText,
|
|
27
30
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
28
31
|
var _useState = useState([]),
|
|
29
32
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -36,14 +39,41 @@ var FilterChipGroup = function FilterChipGroup(_ref) {
|
|
|
36
39
|
var _useListViewFilterCon = useListViewFilterContext(),
|
|
37
40
|
selectedFiltersCount = _useListViewFilterCon.selectedFiltersCount,
|
|
38
41
|
setListViewSelectedFilters = _useListViewFilterCon.setListViewSelectedFilters;
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
|
|
43
|
+
// Shared bookkeeping reset: both actions clear the group's "has changes" tracking so the action
|
|
44
|
+
// link(s) hide after use (a lingering action with nothing to revert is confusing). They reappear
|
|
45
|
+
// on the next filter change.
|
|
46
|
+
var clearGroupBookkeeping = function clearGroupBookkeeping() {
|
|
41
47
|
setListViewSelectedFilters({});
|
|
42
48
|
setFilterChipGroupSelectedFilters([]);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// "Clear" empties every filter. Bumping the triggerer makes each child chip run its clear effect
|
|
52
|
+
// (fires onChange([]) and drops its selection).
|
|
53
|
+
var handleClearButtonClick = function handleClearButtonClick() {
|
|
54
|
+
onClearButtonClick === null || onClearButtonClick === void 0 || onClearButtonClick();
|
|
55
|
+
clearGroupBookkeeping();
|
|
43
56
|
setClearFilterCallbackTriggerer(function (prev) {
|
|
44
57
|
return prev + 1;
|
|
45
58
|
});
|
|
46
59
|
};
|
|
60
|
+
|
|
61
|
+
// "Reset" only fires the consumer callback and clears the group's bookkeeping. We intentionally
|
|
62
|
+
// do NOT bump the clear triggerer, so child chips keep their internal state and do not fire
|
|
63
|
+
// onChange([]) — the consumer restores each filter's default inside onResetButtonClick and those
|
|
64
|
+
// values are not stomped.
|
|
65
|
+
// TODO (FilterChip reset — Phase 2): support restoring defaults for UNCONTROLLED filters. That
|
|
66
|
+
// needs a `defaultValue` on FilterChipSelectInput and a reset path that restores it instead of
|
|
67
|
+
// emptying. See packages/blade/src/components/Dropdown/_decisions/filter-chip-reset.md
|
|
68
|
+
var handleResetButtonClick = function handleResetButtonClick() {
|
|
69
|
+
onResetButtonClick === null || onResetButtonClick === void 0 || onResetButtonClick();
|
|
70
|
+
clearGroupBookkeeping();
|
|
71
|
+
};
|
|
72
|
+
var hasSelectedFilters = filterChipGroupSelectedFilters.length > 0 || selectedFiltersCount > 0;
|
|
73
|
+
var selectedCount = Math.max(filterChipGroupSelectedFilters.length, selectedFiltersCount);
|
|
74
|
+
var isPlural = selectedCount > 1;
|
|
75
|
+
var clearActionText = clearButtonText !== null && clearButtonText !== void 0 ? clearButtonText : "Clear Filter".concat(isPlural ? 's' : '');
|
|
76
|
+
var resetActionText = resetButtonText !== null && resetButtonText !== void 0 ? resetButtonText : 'Reset';
|
|
47
77
|
return /*#__PURE__*/jsx(FilterChipGroupProvider, {
|
|
48
78
|
value: {
|
|
49
79
|
filterChipGroupSelectedFilters: filterChipGroupSelectedFilters,
|
|
@@ -62,11 +92,16 @@ var FilterChipGroup = function FilterChipGroup(_ref) {
|
|
|
62
92
|
width: "100%",
|
|
63
93
|
gap: "spacing.3",
|
|
64
94
|
flexWrap: "wrap",
|
|
65
|
-
children: [children,
|
|
95
|
+
children: [children, hasSelectedFilters && onResetButtonClick ? /*#__PURE__*/jsx(Link, {
|
|
96
|
+
size: "small",
|
|
97
|
+
color: "neutral",
|
|
98
|
+
onClick: handleResetButtonClick,
|
|
99
|
+
children: resetActionText
|
|
100
|
+
}) : null, hasSelectedFilters && showClearButton ? /*#__PURE__*/jsx(Link, {
|
|
66
101
|
size: "small",
|
|
67
102
|
color: "neutral",
|
|
68
103
|
onClick: handleClearButtonClick,
|
|
69
|
-
children:
|
|
104
|
+
children: clearActionText
|
|
70
105
|
}) : null]
|
|
71
106
|
}))
|
|
72
107
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterChipGroup.web.js","sources":["../../../../../../src/components/Dropdown/FilterChipGroup.web.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useListViewFilterContext } from '../ListView/ListViewFiltersContext.web';\nimport type { FilterChipGroupProps } from './types';\nimport { FilterChipGroupProvider } from './FilterChipGroupContext.web';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport BaseBox from '~components/Box/BaseBox';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { Link } from '~components/Link';\n\nconst FilterChipGroup = ({\n testID,\n children,\n showClearButton = true,\n onClearButtonClick,\n ...rest\n}: FilterChipGroupProps): React.ReactElement => {\n const [filterChipGroupSelectedFilters, setFilterChipGroupSelectedFilters] = useState<string[]>(\n [],\n );\n const [clearFilterCallbackTriggerer, setClearFilterCallbackTriggerer] = useState<number>(0);\n const { selectedFiltersCount, setListViewSelectedFilters } = useListViewFilterContext();\n const
|
|
1
|
+
{"version":3,"file":"FilterChipGroup.web.js","sources":["../../../../../../src/components/Dropdown/FilterChipGroup.web.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useListViewFilterContext } from '../ListView/ListViewFiltersContext.web';\nimport type { FilterChipGroupProps } from './types';\nimport { FilterChipGroupProvider } from './FilterChipGroupContext.web';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport BaseBox from '~components/Box/BaseBox';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { Link } from '~components/Link';\n\nconst FilterChipGroup = ({\n testID,\n children,\n showClearButton = true,\n onClearButtonClick,\n onResetButtonClick,\n clearButtonText,\n resetButtonText,\n ...rest\n}: FilterChipGroupProps): React.ReactElement => {\n const [filterChipGroupSelectedFilters, setFilterChipGroupSelectedFilters] = useState<string[]>(\n [],\n );\n const [clearFilterCallbackTriggerer, setClearFilterCallbackTriggerer] = useState<number>(0);\n const { selectedFiltersCount, setListViewSelectedFilters } = useListViewFilterContext();\n\n // Shared bookkeeping reset: both actions clear the group's \"has changes\" tracking so the action\n // link(s) hide after use (a lingering action with nothing to revert is confusing). They reappear\n // on the next filter change.\n const clearGroupBookkeeping = (): void => {\n setListViewSelectedFilters({});\n setFilterChipGroupSelectedFilters([]);\n };\n\n // \"Clear\" empties every filter. Bumping the triggerer makes each child chip run its clear effect\n // (fires onChange([]) and drops its selection).\n const handleClearButtonClick = (): void => {\n onClearButtonClick?.();\n clearGroupBookkeeping();\n setClearFilterCallbackTriggerer((prev) => prev + 1);\n };\n\n // \"Reset\" only fires the consumer callback and clears the group's bookkeeping. We intentionally\n // do NOT bump the clear triggerer, so child chips keep their internal state and do not fire\n // onChange([]) — the consumer restores each filter's default inside onResetButtonClick and those\n // values are not stomped.\n // TODO (FilterChip reset — Phase 2): support restoring defaults for UNCONTROLLED filters. That\n // needs a `defaultValue` on FilterChipSelectInput and a reset path that restores it instead of\n // emptying. See packages/blade/src/components/Dropdown/_decisions/filter-chip-reset.md\n const handleResetButtonClick = (): void => {\n onResetButtonClick?.();\n clearGroupBookkeeping();\n };\n\n const hasSelectedFilters = filterChipGroupSelectedFilters.length > 0 || selectedFiltersCount > 0;\n const selectedCount = Math.max(filterChipGroupSelectedFilters.length, selectedFiltersCount);\n const isPlural = selectedCount > 1;\n const clearActionText = clearButtonText ?? `Clear Filter${isPlural ? 's' : ''}`;\n const resetActionText = resetButtonText ?? 'Reset';\n return (\n <FilterChipGroupProvider\n value={{\n filterChipGroupSelectedFilters,\n setFilterChipGroupSelectedFilters,\n clearFilterCallbackTriggerer,\n setClearFilterCallbackTriggerer,\n }}\n >\n <BaseBox\n {...metaAttribute({ name: MetaConstants.FilterChipGroup, testID })}\n {...makeAnalyticsAttribute(rest)}\n display=\"flex\"\n padding={['spacing.4', 'spacing.1']}\n alignItems=\"center\"\n justifyContent=\"flex-start\"\n width=\"100%\"\n gap=\"spacing.3\"\n flexWrap=\"wrap\"\n >\n {children}\n {hasSelectedFilters && onResetButtonClick ? (\n <Link size=\"small\" color=\"neutral\" onClick={handleResetButtonClick}>\n {resetActionText}\n </Link>\n ) : null}\n {hasSelectedFilters && showClearButton ? (\n <Link size=\"small\" color=\"neutral\" onClick={handleClearButtonClick}>\n {clearActionText}\n </Link>\n ) : null}\n </BaseBox>\n </FilterChipGroupProvider>\n );\n};\n\nexport { FilterChipGroup };\n"],"names":["FilterChipGroup","_ref","testID","children","_ref$showClearButton","showClearButton","onClearButtonClick","onResetButtonClick","clearButtonText","resetButtonText","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","filterChipGroupSelectedFilters","setFilterChipGroupSelectedFilters","_useState3","_useState4","clearFilterCallbackTriggerer","setClearFilterCallbackTriggerer","_useListViewFilterCon","useListViewFilterContext","selectedFiltersCount","setListViewSelectedFilters","clearGroupBookkeeping","handleClearButtonClick","prev","handleResetButtonClick","hasSelectedFilters","length","selectedCount","Math","max","isPlural","clearActionText","concat","resetActionText","_jsx","FilterChipGroupProvider","value","_jsxs","BaseBox","_objectSpread","metaAttribute","name","MetaConstants","makeAnalyticsAttribute","display","padding","alignItems","justifyContent","width","gap","flexWrap","Link","size","color","onClick"],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProper
|
|
|
6
6
|
import React__default, { useEffect } from 'react';
|
|
7
7
|
import { useDropdown } from './useDropdown.js';
|
|
8
8
|
import { dropdownComponentIds } from './dropdownComponentIds.js';
|
|
9
|
+
import { getFilterChipDisplayValue } from './filterChipSelectInputUtils.js';
|
|
9
10
|
import { useFilterChipGroupContext } from './FilterChipGroupContext.web.js';
|
|
10
11
|
import '../../utils/assignWithoutSideEffects/index.js';
|
|
11
12
|
import { BaseFilterChip } from '../FilterChip/BaseFilterChip.web.js';
|
|
@@ -16,13 +17,12 @@ import { useFirstRender } from '../../utils/useFirstRender.js';
|
|
|
16
17
|
import { jsx } from 'react/jsx-runtime';
|
|
17
18
|
import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
|
|
18
19
|
|
|
19
|
-
var _excluded = ["onClick", "onBlur", "onKeyDown", "accessibilityLabel", "testID", "value", "onClearButtonClick", "label", "onChange", "name", "isDisabled"];
|
|
20
|
+
var _excluded = ["onClick", "onBlur", "onKeyDown", "accessibilityLabel", "testID", "value", "onClearButtonClick", "label", "onChange", "name", "isDisabled", "showClearButton"];
|
|
20
21
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
21
22
|
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; }
|
|
22
23
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
23
24
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
24
25
|
var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
|
|
25
|
-
var _options$find$title, _options$find;
|
|
26
26
|
var idBase = useId('filter-chip-select-input');
|
|
27
27
|
var _onClick = props.onClick,
|
|
28
28
|
_onBlur = props.onBlur,
|
|
@@ -35,6 +35,8 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
|
|
|
35
35
|
onChange = props.onChange,
|
|
36
36
|
name = props.name,
|
|
37
37
|
isDisabled = props.isDisabled,
|
|
38
|
+
_props$showClearButto = props.showClearButton,
|
|
39
|
+
showClearButton = _props$showClearButto === void 0 ? true : _props$showClearButto,
|
|
38
40
|
rest = _objectWithoutProperties(props, _excluded);
|
|
39
41
|
var _React$useState = React__default.useState([]),
|
|
40
42
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -56,9 +58,6 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
|
|
|
56
58
|
setSelectedIndices = _useDropdown.setSelectedIndices,
|
|
57
59
|
controlledValueIndices = _useDropdown.controlledValueIndices,
|
|
58
60
|
changeCallbackTriggerer = _useDropdown.changeCallbackTriggerer;
|
|
59
|
-
var valueTitle = (_options$find$title = (_options$find = options.find(function (option) {
|
|
60
|
-
return option.value === value;
|
|
61
|
-
})) === null || _options$find === void 0 ? void 0 : _options$find.title) !== null && _options$find$title !== void 0 ? _options$find$title : value;
|
|
62
61
|
var isUnControlled = options.length > 0 && props.value === undefined;
|
|
63
62
|
// Currently we are having 2 context for selectedFilters. One is for FilterChipGroup and other is for ListView
|
|
64
63
|
var _useListViewFilterCon = useListViewFilterContext(),
|
|
@@ -121,21 +120,6 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
|
|
|
121
120
|
}
|
|
122
121
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
123
122
|
}, [isUnControlled, options]);
|
|
124
|
-
var getTitleFromValue = function getTitleFromValue(value) {
|
|
125
|
-
var option = options.find(function (option) {
|
|
126
|
-
return option.value === value;
|
|
127
|
-
});
|
|
128
|
-
return option ? option.title : '';
|
|
129
|
-
};
|
|
130
|
-
var getUnControlledFilterChipValue = function getUnControlledFilterChipValue() {
|
|
131
|
-
if (selectionType === 'single') {
|
|
132
|
-
if (uncontrolledInputValue.length > 0) {
|
|
133
|
-
return getTitleFromValue(uncontrolledInputValue[0]);
|
|
134
|
-
}
|
|
135
|
-
return '';
|
|
136
|
-
}
|
|
137
|
-
return uncontrolledInputValue;
|
|
138
|
-
};
|
|
139
123
|
var handleClearButtonClick = function handleClearButtonClick() {
|
|
140
124
|
var _props$onClearButtonC, _props$onChange;
|
|
141
125
|
(_props$onClearButtonC = props.onClearButtonClick) === null || _props$onClearButtonC === void 0 || _props$onClearButtonC.call(props, {
|
|
@@ -218,8 +202,14 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
|
|
|
218
202
|
};
|
|
219
203
|
return /*#__PURE__*/jsx(BaseFilterChip, _objectSpread(_objectSpread({
|
|
220
204
|
label: label,
|
|
221
|
-
value:
|
|
205
|
+
value: getFilterChipDisplayValue({
|
|
206
|
+
value: props.value,
|
|
207
|
+
options: options,
|
|
208
|
+
selectionType: selectionType,
|
|
209
|
+
uncontrolledInputValue: uncontrolledInputValue
|
|
210
|
+
}),
|
|
222
211
|
onClearButtonClick: handleClearButtonClick,
|
|
212
|
+
showClearButton: showClearButton,
|
|
223
213
|
selectionType: selectionType
|
|
224
214
|
}, rest), {}, {
|
|
225
215
|
ref: triggererRef,
|