@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":"FilterChipSelectInput.web.js","sources":["../../../../../../src/components/Dropdown/FilterChipSelectInput.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n\nimport React, { useEffect } from 'react';\nimport { useDropdown } from './useDropdown';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { useFilterChipGroupContext } from './FilterChipGroupContext.web';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { BaseFilterChip } from '~components/FilterChip/BaseFilterChip';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport type { BaseFilterChipProps } from '~components/FilterChip/types';\nimport { useId } from '~utils/useId';\nimport { useListViewFilterContext } from '~components/ListView/ListViewFiltersContext.web';\nimport { useFirstRender } from '~utils/useFirstRender';\n\ntype FilterChipSelectInputProps = Pick<\n BaseFilterChipProps,\n 'onKeyDown' | 'value' | 'label' | 'testID' | 'onClick' | 'selectionType' | 'onBlur'\n> & {\n accessibilityLabel?: string;\n onChange?: (props: { name: string; values: string[] }) => void;\n name?: string;\n onClearButtonClick?: (props: { name: string; values: string[] }) => void;\n isDisabled?: boolean;\n} & DataAnalyticsAttribute;\n\nconst _FilterChipSelectInput = (props: FilterChipSelectInputProps): React.ReactElement => {\n const idBase = useId('filter-chip-select-input');\n const {\n onClick,\n onBlur,\n onKeyDown,\n accessibilityLabel,\n testID,\n value,\n onClearButtonClick,\n label,\n onChange,\n name,\n isDisabled,\n ...rest\n } = props;\n const [uncontrolledInputValue, setUncontrolledInputValue] = React.useState<string[]>([]);\n const isFirstRender = useFirstRender();\n\n const {\n options,\n selectedIndices,\n onTriggerClick,\n onTriggerKeydown,\n dropdownBaseId,\n isOpen,\n activeIndex,\n hasFooterAction,\n triggererRef,\n selectionType,\n isControlled,\n setSelectedIndices,\n controlledValueIndices,\n changeCallbackTriggerer,\n } = useDropdown();\n const valueTitle = options.find((option) => option.value === value)?.title ?? value;\n\n const isUnControlled = options.length > 0 && props.value === undefined;\n // Currently we are having 2 context for selectedFilters. One is for FilterChipGroup and other is for ListView\n const { listViewSelectedFilters, setListViewSelectedFilters } = useListViewFilterContext();\n const {\n clearFilterCallbackTriggerer,\n setFilterChipGroupSelectedFilters,\n } = useFilterChipGroupContext();\n\n const getValuesArrayFromIndices = (): string[] => {\n let indices: number[] = [];\n if (isControlled) {\n indices = controlledValueIndices;\n } else {\n indices = selectedIndices;\n }\n\n return indices.map((selectionIndex) => options[selectionIndex].value);\n };\n\n useEffect(() => {\n const valueNotEmpty =\n (typeof value === 'string' && value.trim() !== '') ||\n (Array.isArray(value) && value.length > 0);\n\n // Compare actual selected values (not just lengths) to detect controlled value changes\n const currentSelectedValues = selectedIndices.map((i) => options[i]?.value);\n const isSingleValueSynced =\n typeof value === 'string' &&\n currentSelectedValues.length === 1 &&\n currentSelectedValues[0] === value;\n\n const isMultiValueSynced =\n Array.isArray(value) &&\n value.length === currentSelectedValues.length &&\n value.every((v) => currentSelectedValues.includes(v));\n\n const isValueAndSelectedIndicesSynced = isSingleValueSynced || isMultiValueSynced;\n\n if (isUnControlled) {\n if (listViewSelectedFilters[label]) {\n const savedIndices = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(savedIndices);\n const inputValue = savedIndices.map((selectionIndex) => options[selectionIndex].value);\n setUncontrolledInputValue(inputValue);\n setFilterChipGroupSelectedFilters((prev) =>\n prev.includes(label) ? prev : [...prev, label],\n );\n } else {\n setSelectedIndices([]);\n }\n } else if (listViewSelectedFilters[label]) {\n const savedIndices = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(savedIndices);\n // Sync selected indices when controlled value changes or on first render with options loaded\n } else if (valueNotEmpty && !isValueAndSelectedIndicesSynced && options.length > 0) {\n const newSelectedIndices =\n typeof value === 'string'\n ? [options.findIndex((option) => option.value === value)]\n : options\n .map((option, index) => (value.includes(option.value) ? index : -1))\n .filter((index) => index !== -1);\n setSelectedIndices(newSelectedIndices);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isUnControlled, options]);\n\n const getTitleFromValue = (value: string): string => {\n const option = options.find((option) => option.value === value);\n return option ? option.title : '';\n };\n\n const getUnControlledFilterChipValue = (): string | string[] => {\n if (selectionType === 'single') {\n if (uncontrolledInputValue.length > 0) {\n return getTitleFromValue(uncontrolledInputValue[0]);\n }\n return '';\n }\n return uncontrolledInputValue;\n };\n\n const handleClearButtonClick = (): void => {\n props.onClearButtonClick?.({ name: name ?? idBase, values: getValuesArrayFromIndices() });\n props.onChange?.({ name: name ?? idBase, values: [] });\n setFilterChipGroupSelectedFilters((prev) => prev.filter((filter) => filter !== label));\n setListViewSelectedFilters((prev) => {\n const { [label]: _, ...updatedFilters } = prev;\n return updatedFilters;\n });\n setUncontrolledInputValue([]);\n setSelectedIndices([]);\n };\n\n useEffect(() => {\n if (clearFilterCallbackTriggerer) {\n handleClearButtonClick();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clearFilterCallbackTriggerer]);\n\n useEffect(() => {\n if (!isFirstRender) {\n props.onChange?.({\n name: props.name || idBase,\n values: getValuesArrayFromIndices(),\n });\n if (isUnControlled) {\n setUncontrolledInputValue(getValuesArrayFromIndices());\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n useEffect(() => {\n const isValueEmpty = selectedIndices.length === 0;\n if (!isFirstRender && !isValueEmpty) {\n setFilterChipGroupSelectedFilters((prev) => (prev.includes(label) ? prev : [...prev, label]));\n setListViewSelectedFilters((prev) => ({\n ...prev,\n [label]: selectedIndices as number[],\n }));\n } else if (!isFirstRender && isValueEmpty) {\n setFilterChipGroupSelectedFilters((prev) => prev.filter((filter) => filter !== label));\n setListViewSelectedFilters((prev) => {\n const { [label]: _, ...updatedFilters } = prev;\n return updatedFilters;\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n\n const handleKeyDown = (e: React.KeyboardEvent<Element>): void => {\n onKeyDown?.(e);\n onTriggerKeydown?.({ event: e as React.KeyboardEvent<HTMLInputElement> });\n\n if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n }\n\n if ((e.key === 'Enter' || e.key === ' ') && !isOpen) {\n e.preventDefault();\n e.stopPropagation();\n onTriggerClick();\n }\n };\n return (\n <BaseFilterChip\n label={label}\n value={valueTitle ?? getUnControlledFilterChipValue()}\n onClearButtonClick={handleClearButtonClick}\n selectionType={selectionType}\n {...rest}\n ref={triggererRef as any}\n onKeyDown={handleKeyDown}\n accessibilityProps={{\n label: accessibilityLabel ?? label,\n hasPopup: getActionListContainerRole(hasFooterAction, 'FilterChipSelectInput'),\n expanded: isOpen,\n controls: `${dropdownBaseId}-actionlist`,\n activeDescendant: activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined,\n }}\n onClick={(e) => {\n onTriggerClick();\n onClick?.(e);\n }}\n onBlur={(e) => {\n onBlur?.(e);\n }}\n isDisabled={isDisabled}\n />\n );\n};\n\nconst FilterChipSelectInput = assignWithoutSideEffects(_FilterChipSelectInput, {\n componentId: dropdownComponentIds.triggers.FilterChipSelectInput,\n});\n\nexport { FilterChipSelectInput };\n"],"names":["_FilterChipSelectInput","props","_options$find$title","_options$find","idBase","useId","onClick","onBlur","onKeyDown","accessibilityLabel","testID","value","onClearButtonClick","label","onChange","name","isDisabled","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","uncontrolledInputValue","setUncontrolledInputValue","isFirstRender","useFirstRender","_useDropdown","useDropdown","options","selectedIndices","onTriggerClick","onTriggerKeydown","dropdownBaseId","isOpen","activeIndex","hasFooterAction","triggererRef","selectionType","isControlled","setSelectedIndices","controlledValueIndices","changeCallbackTriggerer","valueTitle","find","option","title","isUnControlled","length","undefined","_useListViewFilterCon","useListViewFilterContext","listViewSelectedFilters","setListViewSelectedFilters","_useFilterChipGroupCo","useFilterChipGroupContext","clearFilterCallbackTriggerer","setFilterChipGroupSelectedFilters","getValuesArrayFromIndices","indices","map","selectionIndex","useEffect","valueNotEmpty","trim","Array","isArray","currentSelectedValues","i","_options$i","isSingleValueSynced","isMultiValueSynced","every","v","includes","isValueAndSelectedIndicesSynced","savedIndices","inputValue","prev","concat","_toConsumableArray","newSelectedIndices","findIndex","index","filter","getTitleFromValue","getUnControlledFilterChipValue","handleClearButtonClick","_props$onClearButtonC","_props$onChange","call","values","_","updatedFilters","_toPropertyKey","_props$onChange2","isValueEmpty","_objectSpread","_defineProperty","handleKeyDown","e","event","key","preventDefault","stopPropagation","_jsx","BaseFilterChip","ref","accessibilityProps","hasPopup","getActionListContainerRole","expanded","controls","activeDescendant","FilterChipSelectInput","assignWithoutSideEffects","componentId","dropdownComponentIds","triggers"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FilterChipSelectInput.web.js","sources":["../../../../../../src/components/Dropdown/FilterChipSelectInput.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n\nimport React, { useEffect } from 'react';\nimport { useDropdown } from './useDropdown';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { getFilterChipDisplayValue } from './filterChipSelectInputUtils';\nimport { useFilterChipGroupContext } from './FilterChipGroupContext.web';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { BaseFilterChip } from '~components/FilterChip/BaseFilterChip';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport type { BaseFilterChipProps } from '~components/FilterChip/types';\nimport { useId } from '~utils/useId';\nimport { useListViewFilterContext } from '~components/ListView/ListViewFiltersContext.web';\nimport { useFirstRender } from '~utils/useFirstRender';\n\ntype FilterChipSelectInputProps = Pick<\n BaseFilterChipProps,\n | 'onKeyDown'\n | 'value'\n | 'label'\n | 'testID'\n | 'onClick'\n | 'selectionType'\n | 'onBlur'\n | 'showClearButton'\n> & {\n accessibilityLabel?: string;\n onChange?: (props: { name: string; values: string[] }) => void;\n name?: string;\n onClearButtonClick?: (props: { name: string; values: string[] }) => void;\n isDisabled?: boolean;\n} & DataAnalyticsAttribute;\n\nconst _FilterChipSelectInput = (props: FilterChipSelectInputProps): React.ReactElement => {\n const idBase = useId('filter-chip-select-input');\n const {\n onClick,\n onBlur,\n onKeyDown,\n accessibilityLabel,\n testID,\n value,\n onClearButtonClick,\n label,\n onChange,\n name,\n isDisabled,\n showClearButton = true,\n ...rest\n } = props;\n const [uncontrolledInputValue, setUncontrolledInputValue] = React.useState<string[]>([]);\n const isFirstRender = useFirstRender();\n\n const {\n options,\n selectedIndices,\n onTriggerClick,\n onTriggerKeydown,\n dropdownBaseId,\n isOpen,\n activeIndex,\n hasFooterAction,\n triggererRef,\n selectionType,\n isControlled,\n setSelectedIndices,\n controlledValueIndices,\n changeCallbackTriggerer,\n } = useDropdown();\n const isUnControlled = options.length > 0 && props.value === undefined;\n // Currently we are having 2 context for selectedFilters. One is for FilterChipGroup and other is for ListView\n const { listViewSelectedFilters, setListViewSelectedFilters } = useListViewFilterContext();\n const {\n clearFilterCallbackTriggerer,\n setFilterChipGroupSelectedFilters,\n } = useFilterChipGroupContext();\n\n const getValuesArrayFromIndices = (): string[] => {\n let indices: number[] = [];\n if (isControlled) {\n indices = controlledValueIndices;\n } else {\n indices = selectedIndices;\n }\n\n return indices.map((selectionIndex) => options[selectionIndex].value);\n };\n\n useEffect(() => {\n const valueNotEmpty =\n (typeof value === 'string' && value.trim() !== '') ||\n (Array.isArray(value) && value.length > 0);\n\n // Compare actual selected values (not just lengths) to detect controlled value changes\n const currentSelectedValues = selectedIndices.map((i) => options[i]?.value);\n const isSingleValueSynced =\n typeof value === 'string' &&\n currentSelectedValues.length === 1 &&\n currentSelectedValues[0] === value;\n\n const isMultiValueSynced =\n Array.isArray(value) &&\n value.length === currentSelectedValues.length &&\n value.every((v) => currentSelectedValues.includes(v));\n\n const isValueAndSelectedIndicesSynced = isSingleValueSynced || isMultiValueSynced;\n\n if (isUnControlled) {\n if (listViewSelectedFilters[label]) {\n const savedIndices = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(savedIndices);\n const inputValue = savedIndices.map((selectionIndex) => options[selectionIndex].value);\n setUncontrolledInputValue(inputValue);\n setFilterChipGroupSelectedFilters((prev) =>\n prev.includes(label) ? prev : [...prev, label],\n );\n } else {\n setSelectedIndices([]);\n }\n } else if (listViewSelectedFilters[label]) {\n const savedIndices = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(savedIndices);\n // Sync selected indices when controlled value changes or on first render with options loaded\n } else if (valueNotEmpty && !isValueAndSelectedIndicesSynced && options.length > 0) {\n const newSelectedIndices =\n typeof value === 'string'\n ? [options.findIndex((option) => option.value === value)]\n : options\n .map((option, index) => (value.includes(option.value) ? index : -1))\n .filter((index) => index !== -1);\n setSelectedIndices(newSelectedIndices);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isUnControlled, options]);\n\n const handleClearButtonClick = (): void => {\n props.onClearButtonClick?.({ name: name ?? idBase, values: getValuesArrayFromIndices() });\n props.onChange?.({ name: name ?? idBase, values: [] });\n setFilterChipGroupSelectedFilters((prev) => prev.filter((filter) => filter !== label));\n setListViewSelectedFilters((prev) => {\n const { [label]: _, ...updatedFilters } = prev;\n return updatedFilters;\n });\n setUncontrolledInputValue([]);\n setSelectedIndices([]);\n };\n\n useEffect(() => {\n if (clearFilterCallbackTriggerer) {\n handleClearButtonClick();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clearFilterCallbackTriggerer]);\n\n useEffect(() => {\n if (!isFirstRender) {\n props.onChange?.({\n name: props.name || idBase,\n values: getValuesArrayFromIndices(),\n });\n if (isUnControlled) {\n setUncontrolledInputValue(getValuesArrayFromIndices());\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n useEffect(() => {\n const isValueEmpty = selectedIndices.length === 0;\n if (!isFirstRender && !isValueEmpty) {\n setFilterChipGroupSelectedFilters((prev) => (prev.includes(label) ? prev : [...prev, label]));\n setListViewSelectedFilters((prev) => ({\n ...prev,\n [label]: selectedIndices as number[],\n }));\n } else if (!isFirstRender && isValueEmpty) {\n setFilterChipGroupSelectedFilters((prev) => prev.filter((filter) => filter !== label));\n setListViewSelectedFilters((prev) => {\n const { [label]: _, ...updatedFilters } = prev;\n return updatedFilters;\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n\n const handleKeyDown = (e: React.KeyboardEvent<Element>): void => {\n onKeyDown?.(e);\n onTriggerKeydown?.({ event: e as React.KeyboardEvent<HTMLInputElement> });\n\n if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n }\n\n if ((e.key === 'Enter' || e.key === ' ') && !isOpen) {\n e.preventDefault();\n e.stopPropagation();\n onTriggerClick();\n }\n };\n return (\n <BaseFilterChip\n label={label}\n value={getFilterChipDisplayValue({\n value: props.value,\n options,\n selectionType,\n uncontrolledInputValue,\n })}\n onClearButtonClick={handleClearButtonClick}\n showClearButton={showClearButton}\n selectionType={selectionType}\n {...rest}\n ref={triggererRef as any}\n onKeyDown={handleKeyDown}\n accessibilityProps={{\n label: accessibilityLabel ?? label,\n hasPopup: getActionListContainerRole(hasFooterAction, 'FilterChipSelectInput'),\n expanded: isOpen,\n controls: `${dropdownBaseId}-actionlist`,\n activeDescendant: activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined,\n }}\n onClick={(e) => {\n onTriggerClick();\n onClick?.(e);\n }}\n onBlur={(e) => {\n onBlur?.(e);\n }}\n isDisabled={isDisabled}\n />\n );\n};\n\nconst FilterChipSelectInput = assignWithoutSideEffects(_FilterChipSelectInput, {\n componentId: dropdownComponentIds.triggers.FilterChipSelectInput,\n});\n\nexport { FilterChipSelectInput };\n"],"names":["_FilterChipSelectInput","props","idBase","useId","onClick","onBlur","onKeyDown","accessibilityLabel","testID","value","onClearButtonClick","label","onChange","name","isDisabled","_props$showClearButto","showClearButton","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","uncontrolledInputValue","setUncontrolledInputValue","isFirstRender","useFirstRender","_useDropdown","useDropdown","options","selectedIndices","onTriggerClick","onTriggerKeydown","dropdownBaseId","isOpen","activeIndex","hasFooterAction","triggererRef","selectionType","isControlled","setSelectedIndices","controlledValueIndices","changeCallbackTriggerer","isUnControlled","length","undefined","_useListViewFilterCon","useListViewFilterContext","listViewSelectedFilters","setListViewSelectedFilters","_useFilterChipGroupCo","useFilterChipGroupContext","clearFilterCallbackTriggerer","setFilterChipGroupSelectedFilters","getValuesArrayFromIndices","indices","map","selectionIndex","useEffect","valueNotEmpty","trim","Array","isArray","currentSelectedValues","i","_options$i","isSingleValueSynced","isMultiValueSynced","every","v","includes","isValueAndSelectedIndicesSynced","savedIndices","inputValue","prev","concat","_toConsumableArray","newSelectedIndices","findIndex","option","index","filter","handleClearButtonClick","_props$onClearButtonC","_props$onChange","call","values","_","updatedFilters","_toPropertyKey","_props$onChange2","isValueEmpty","_objectSpread","_defineProperty","handleKeyDown","e","event","key","preventDefault","stopPropagation","_jsx","BaseFilterChip","getFilterChipDisplayValue","ref","accessibilityProps","hasPopup","getActionListContainerRole","expanded","controls","activeDescendant","FilterChipSelectInput","assignWithoutSideEffects","componentId","dropdownComponentIds","triggers"],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves an option's human-readable title from its value. Returns an empty string when the
|
|
3
|
+
* option isn't found so callers can decide on a fallback.
|
|
4
|
+
*/
|
|
5
|
+
var getTitleFromValue = function getTitleFromValue(options, value) {
|
|
6
|
+
var option = options.find(function (currentOption) {
|
|
7
|
+
return currentOption.value === value;
|
|
8
|
+
});
|
|
9
|
+
return option ? option.title : '';
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Resolves the value shown inside the filter chip as option title(s).
|
|
13
|
+
*
|
|
14
|
+
* Shared by the web and native `FilterChipSelectInput` implementations to keep the (non-trivial)
|
|
15
|
+
* controlled-vs-uncontrolled / string-vs-array branching in a single source of truth. In every
|
|
16
|
+
* branch we fall back to the raw value when the title can't be resolved (e.g. options loaded or
|
|
17
|
+
* changed after a selection) so the chip never renders an empty string.
|
|
18
|
+
*/
|
|
19
|
+
var getFilterChipDisplayValue = function getFilterChipDisplayValue(_ref) {
|
|
20
|
+
var value = _ref.value,
|
|
21
|
+
options = _ref.options,
|
|
22
|
+
selectionType = _ref.selectionType,
|
|
23
|
+
uncontrolledInputValue = _ref.uncontrolledInputValue;
|
|
24
|
+
var titleForValue = function titleForValue(selectionValue) {
|
|
25
|
+
return getTitleFromValue(options, selectionValue) || selectionValue;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// Uncontrolled: derive display value from the internally tracked selection.
|
|
29
|
+
if (value === undefined) {
|
|
30
|
+
if (selectionType === 'single') {
|
|
31
|
+
return uncontrolledInputValue.length > 0 ? titleForValue(uncontrolledInputValue[0]) : '';
|
|
32
|
+
}
|
|
33
|
+
// For multiple selection, hand the chip the option titles (not the raw values) so it can
|
|
34
|
+
// render the selected option name(s) instead of a bare count.
|
|
35
|
+
return uncontrolledInputValue.map(titleForValue);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Controlled: consumer passes option value(s); map them to titles for display.
|
|
39
|
+
if (Array.isArray(value)) {
|
|
40
|
+
return value.map(titleForValue);
|
|
41
|
+
}
|
|
42
|
+
return titleForValue(value);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export { getFilterChipDisplayValue };
|
|
46
|
+
//# sourceMappingURL=filterChipSelectInputUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterChipSelectInputUtils.js","sources":["../../../../../../src/components/Dropdown/filterChipSelectInputUtils.ts"],"sourcesContent":["import type { OptionsType } from './useDropdown';\nimport type { BaseFilterChipProps } from '~components/FilterChip/types';\n\n/**\n * Resolves an option's human-readable title from its value. Returns an empty string when the\n * option isn't found so callers can decide on a fallback.\n */\nconst getTitleFromValue = (options: OptionsType, value: string): string => {\n const option = options.find((currentOption) => currentOption.value === value);\n return option ? option.title : '';\n};\n\ntype GetFilterChipDisplayValueParams = {\n /** Controlled value from props (option value or values). `undefined` when uncontrolled. */\n value: BaseFilterChipProps['value'];\n /** All options currently registered in the dropdown. */\n options: OptionsType;\n selectionType: BaseFilterChipProps['selectionType'];\n /** Internally tracked selection used in the uncontrolled case. */\n uncontrolledInputValue: string[];\n};\n\n/**\n * Resolves the value shown inside the filter chip as option title(s).\n *\n * Shared by the web and native `FilterChipSelectInput` implementations to keep the (non-trivial)\n * controlled-vs-uncontrolled / string-vs-array branching in a single source of truth. In every\n * branch we fall back to the raw value when the title can't be resolved (e.g. options loaded or\n * changed after a selection) so the chip never renders an empty string.\n */\nconst getFilterChipDisplayValue = ({\n value,\n options,\n selectionType,\n uncontrolledInputValue,\n}: GetFilterChipDisplayValueParams): string | string[] => {\n const titleForValue = (selectionValue: string): string =>\n getTitleFromValue(options, selectionValue) || selectionValue;\n\n // Uncontrolled: derive display value from the internally tracked selection.\n if (value === undefined) {\n if (selectionType === 'single') {\n return uncontrolledInputValue.length > 0 ? titleForValue(uncontrolledInputValue[0]) : '';\n }\n // For multiple selection, hand the chip the option titles (not the raw values) so it can\n // render the selected option name(s) instead of a bare count.\n return uncontrolledInputValue.map(titleForValue);\n }\n\n // Controlled: consumer passes option value(s); map them to titles for display.\n if (Array.isArray(value)) {\n return value.map(titleForValue);\n }\n return titleForValue(value);\n};\n\nexport { getFilterChipDisplayValue };\n"],"names":["getTitleFromValue","options","value","option","find","currentOption","title","getFilterChipDisplayValue","_ref","selectionType","uncontrolledInputValue","titleForValue","selectionValue","undefined","length","map","Array","isArray"],"mappings":"AAGA;AACA;AACA;AACA;AACA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,OAAoB,EAAEC,KAAa,EAAa;AACzE,EAAA,IAAMC,MAAM,GAAGF,OAAO,CAACG,IAAI,CAAC,UAACC,aAAa,EAAA;AAAA,IAAA,OAAKA,aAAa,CAACH,KAAK,KAAKA,KAAK,CAAA;GAAC,CAAA,CAAA;AAC7E,EAAA,OAAOC,MAAM,GAAGA,MAAM,CAACG,KAAK,GAAG,EAAE,CAAA;AACnC,CAAC,CAAA;AAYD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAAC,IAAA,EAK2B;AAAA,EAAA,IAJxDN,KAAK,GAAAM,IAAA,CAALN,KAAK;IACLD,OAAO,GAAAO,IAAA,CAAPP,OAAO;IACPQ,aAAa,GAAAD,IAAA,CAAbC,aAAa;IACbC,sBAAsB,GAAAF,IAAA,CAAtBE,sBAAsB,CAAA;AAEtB,EAAA,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,cAAsB,EAAA;AAAA,IAAA,OAC3CZ,iBAAiB,CAACC,OAAO,EAAEW,cAAc,CAAC,IAAIA,cAAc,CAAA;AAAA,GAAA,CAAA;;AAE9D;EACA,IAAIV,KAAK,KAAKW,SAAS,EAAE;IACvB,IAAIJ,aAAa,KAAK,QAAQ,EAAE;AAC9B,MAAA,OAAOC,sBAAsB,CAACI,MAAM,GAAG,CAAC,GAAGH,aAAa,CAACD,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;AAC1F,KAAA;AACA;AACA;AACA,IAAA,OAAOA,sBAAsB,CAACK,GAAG,CAACJ,aAAa,CAAC,CAAA;AAClD,GAAA;;AAEA;AACA,EAAA,IAAIK,KAAK,CAACC,OAAO,CAACf,KAAK,CAAC,EAAE;AACxB,IAAA,OAAOA,KAAK,CAACa,GAAG,CAACJ,aAAa,CAAC,CAAA;AACjC,GAAA;EACA,OAAOA,aAAa,CAACT,KAAK,CAAC,CAAA;AAC7B;;;;"}
|
|
@@ -21,9 +21,9 @@ import { getFocusRingStyles } from '../../utils/getFocusRingStyles/getFocusRingS
|
|
|
21
21
|
import { makeSpace } from '../../utils/makeSpace/makeSpace.js';
|
|
22
22
|
import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
|
|
23
23
|
import { makeBorderSize } from '../../utils/makeBorderSize/makeBorderSize.js';
|
|
24
|
+
import { Text } from '../Typography/Text/Text.js';
|
|
24
25
|
import { Box } from '../Box/Box.js';
|
|
25
26
|
import { Counter } from '../Counter/Counter.js';
|
|
26
|
-
import { Text } from '../Typography/Text/Text.js';
|
|
27
27
|
import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.web.js';
|
|
28
28
|
import { getStyledProps } from '../Box/styledProps/getStyledProps.js';
|
|
29
29
|
import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
|
|
@@ -34,7 +34,7 @@ import CloseIcon from '../Icons/CloseIcon/CloseIcon.js';
|
|
|
34
34
|
import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
|
|
35
35
|
import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
|
|
36
36
|
|
|
37
|
-
var _excluded = ["value", "onClearButtonClick", "label", "isDisabled", "selectionType", "onClick", "onKeyDown", "accessibilityProps", "id"];
|
|
37
|
+
var _excluded = ["value", "onClearButtonClick", "label", "isDisabled", "selectionType", "showClearButton", "onClick", "onKeyDown", "accessibilityProps", "id"];
|
|
38
38
|
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; }
|
|
39
39
|
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; }
|
|
40
40
|
var getInteractiveFilterItemStyles = function getInteractiveFilterItemStyles(_ref) {
|
|
@@ -83,15 +83,17 @@ var StyledFilterTrigger = /*#__PURE__*/styled.button.withConfig({
|
|
|
83
83
|
componentId: "sc-7fl0tf-1"
|
|
84
84
|
})(function (_ref3) {
|
|
85
85
|
var theme = _ref3.theme,
|
|
86
|
-
$
|
|
86
|
+
$hasClearButton = _ref3.$hasClearButton;
|
|
87
87
|
var spacing = theme.spacing;
|
|
88
88
|
return _objectSpread({
|
|
89
89
|
backgroundColor: theme.colors.transparent,
|
|
90
|
-
|
|
90
|
+
// When a clear button follows the trigger its right corners butt against the divider,
|
|
91
|
+
// so they're squared off. Without a clear button the trigger is a self-contained pill.
|
|
92
|
+
borderRadius: $hasClearButton ? theme.border.radius.none : theme.border.radius.small,
|
|
91
93
|
borderTopLeftRadius: theme.border.radius.small,
|
|
92
94
|
borderBottomLeftRadius: theme.border.radius.small,
|
|
93
95
|
paddingLeft: makeSpace(spacing[4]),
|
|
94
|
-
paddingRight: $
|
|
96
|
+
paddingRight: $hasClearButton ? makeSpace(spacing[2]) : makeSpace(spacing[3]),
|
|
95
97
|
gap: makeSpace(spacing[2])
|
|
96
98
|
}, getInteractiveFilterItemStyles({
|
|
97
99
|
theme: theme
|
|
@@ -115,12 +117,31 @@ var StyledFilterCloseButton = /*#__PURE__*/styled.button.withConfig({
|
|
|
115
117
|
}));
|
|
116
118
|
});
|
|
117
119
|
var renderValue = function renderValue(selectionType, value, isDisabled) {
|
|
118
|
-
|
|
120
|
+
var valueColor = isDisabled ? 'interactive.text.gray.disabled' : 'interactive.text.gray.normal';
|
|
121
|
+
|
|
122
|
+
// For multiple selection: when a single option is selected we show its name (no redundant
|
|
123
|
+
// "1" counter); once more than one is selected we collapse to a compact counter.
|
|
124
|
+
// Use an explicit type guard so a non-array value (e.g. a plain string returned by
|
|
125
|
+
// getFilterChipDisplayValue) never enters the array branch where .length would be
|
|
126
|
+
// misinterpreted as character count.
|
|
127
|
+
if (selectionType === 'multiple') {
|
|
128
|
+
var valueArray = Array.isArray(value) ? value : value != null ? [value] : [];
|
|
129
|
+
if (valueArray.length === 1) {
|
|
130
|
+
var _valueArray$;
|
|
131
|
+
return /*#__PURE__*/jsx(Text, {
|
|
132
|
+
as: "span",
|
|
133
|
+
size: "small",
|
|
134
|
+
weight: "medium",
|
|
135
|
+
color: valueColor,
|
|
136
|
+
truncateAfterLines: 1,
|
|
137
|
+
children: String((_valueArray$ = valueArray[0]) !== null && _valueArray$ !== void 0 ? _valueArray$ : '')
|
|
138
|
+
});
|
|
139
|
+
}
|
|
119
140
|
return /*#__PURE__*/jsx(Box, {
|
|
120
141
|
display: "flex",
|
|
121
142
|
alignItems: "center",
|
|
122
143
|
children: /*#__PURE__*/jsx(Counter, {
|
|
123
|
-
value:
|
|
144
|
+
value: valueArray.length,
|
|
124
145
|
color: "neutral",
|
|
125
146
|
size: "small"
|
|
126
147
|
})
|
|
@@ -130,8 +151,8 @@ var renderValue = function renderValue(selectionType, value, isDisabled) {
|
|
|
130
151
|
as: "span",
|
|
131
152
|
size: "small",
|
|
132
153
|
weight: "medium",
|
|
133
|
-
color:
|
|
134
|
-
children: value
|
|
154
|
+
color: valueColor,
|
|
155
|
+
children: value != null ? String(value) : ''
|
|
135
156
|
});
|
|
136
157
|
};
|
|
137
158
|
var _BaseFilterChip = function _BaseFilterChip(_ref5, ref) {
|
|
@@ -142,18 +163,21 @@ var _BaseFilterChip = function _BaseFilterChip(_ref5, ref) {
|
|
|
142
163
|
isDisabled = _ref5.isDisabled,
|
|
143
164
|
_ref5$selectionType = _ref5.selectionType,
|
|
144
165
|
selectionType = _ref5$selectionType === void 0 ? 'single' : _ref5$selectionType,
|
|
166
|
+
_ref5$showClearButton = _ref5.showClearButton,
|
|
167
|
+
showClearButton = _ref5$showClearButton === void 0 ? true : _ref5$showClearButton,
|
|
145
168
|
_onClick = _ref5.onClick,
|
|
146
169
|
_onKeyDown = _ref5.onKeyDown,
|
|
147
170
|
accessibilityProps = _ref5.accessibilityProps,
|
|
148
171
|
id = _ref5.id,
|
|
149
172
|
rest = _objectWithoutProperties(_ref5, _excluded);
|
|
150
173
|
var isSelected = selectionType === 'multiple' ? Array.isArray(value) && value.length > 0 : !!value;
|
|
174
|
+
var shouldShowClearButton = isSelected && showClearButton;
|
|
151
175
|
return /*#__PURE__*/jsxs(StyledFilterChip, {
|
|
152
176
|
$isDisabled: isDisabled,
|
|
153
177
|
$isSelected: isSelected,
|
|
154
178
|
ref: ref,
|
|
155
179
|
children: [/*#__PURE__*/jsxs(StyledFilterTrigger, _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
156
|
-
$
|
|
180
|
+
$hasClearButton: shouldShowClearButton,
|
|
157
181
|
disabled: isDisabled,
|
|
158
182
|
id: id,
|
|
159
183
|
onClick: function onClick(e) {
|
|
@@ -191,7 +215,7 @@ var _BaseFilterChip = function _BaseFilterChip(_ref5, ref) {
|
|
|
191
215
|
color: "interactive.icon.gray.muted"
|
|
192
216
|
})
|
|
193
217
|
})]
|
|
194
|
-
})),
|
|
218
|
+
})), shouldShowClearButton ? /*#__PURE__*/jsxs(Fragment, {
|
|
195
219
|
children: [/*#__PURE__*/jsx(Divider, {
|
|
196
220
|
orientation: "vertical",
|
|
197
221
|
variant: isDisabled ? 'muted' : 'subtle'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseFilterChip.web.js","sources":["../../../../../../src/components/FilterChip/BaseFilterChip.web.tsx"],"sourcesContent":["import React from 'react';\nimport type { CSSObject } from 'styled-components';\nimport styled from 'styled-components';\nimport { FILTER_CHIP_HEIGHT } from './tokens';\nimport type { BaseFilterChipProps } from './types';\nimport { makeBorderSize, makeSpace } from '~utils';\nimport type { Theme } from '~components/BladeProvider';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { BladeElementRef } from '~utils/types';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Counter } from '~components/Counter';\nimport { Divider } from '~components/Divider';\nimport { ChevronDownIcon, CloseIcon } from '~components/Icons';\nimport { Text } from '~components/Typography';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\n\nconst getInteractiveFilterItemStyles = ({ theme }: { theme: Theme }): CSSObject => {\n return {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n border: 'none',\n cursor: 'pointer',\n color: 'currentcolor',\n '&:not([disabled]):hover': {\n backgroundColor: theme.colors.interactive.background.gray.faded,\n },\n '&[disabled]': {\n cursor: 'not-allowed',\n },\n '&:focus-visible': {\n ...getFocusRingStyles({ theme }),\n outlineOffset: makeSpace(theme.spacing[1]),\n },\n };\n};\n\nconst StyledFilterChip = styled(BaseBox)<{ $isSelected?: boolean; $isDisabled?: boolean }>(\n ({ theme, $isDisabled, $isSelected }) => {\n return {\n borderWidth: makeBorderSize(theme.border.width.thin),\n borderColor: theme.colors.interactive.border.gray[$isDisabled ? 'disabled' : 'faded'],\n height: FILTER_CHIP_HEIGHT,\n borderRadius: theme.border.radius.small,\n display: 'flex',\n borderStyle: $isSelected ? 'solid' : 'dashed',\n backgroundColor: theme.colors.surface.background.gray.intense,\n color: theme.colors.interactive.text.gray[$isDisabled ? 'disabled' : 'muted'],\n width: 'fit-content',\n };\n },\n);\n\nconst StyledFilterTrigger = styled.button<{ $isSelected?: boolean }>(({ theme, $isSelected }) => {\n const { spacing } = theme;\n return {\n backgroundColor: theme.colors.transparent,\n borderRadius: $isSelected ? theme.border.radius.none : theme.border.radius.small,\n borderTopLeftRadius: theme.border.radius.small,\n borderBottomLeftRadius: theme.border.radius.small,\n paddingLeft: makeSpace(spacing[4]),\n paddingRight: $isSelected ? makeSpace(spacing[2]) : makeSpace(spacing[3]),\n gap: makeSpace(spacing[2]),\n ...getInteractiveFilterItemStyles({ theme }),\n };\n});\n\nconst StyledFilterCloseButton = styled.button(({ theme }) => {\n return {\n backgroundColor: theme.colors.transparent,\n borderTopRightRadius: theme.border.radius.small,\n borderBottomRightRadius: theme.border.radius.small,\n paddingLeft: makeSpace(theme.spacing[2] + theme.spacing[1]),\n paddingRight: makeSpace(theme.spacing[2] + theme.spacing[1]),\n justifyContent: 'center',\n alignItems: 'center',\n ...getInteractiveFilterItemStyles({ theme }),\n };\n});\n\nconst renderValue = (\n selectionType: BaseFilterChipProps['selectionType'],\n value: BaseFilterChipProps['value'],\n isDisabled?: boolean,\n): React.ReactElement => {\n if (selectionType === 'multiple' && Array.isArray(value)) {\n return (\n <Box display=\"flex\" alignItems=\"center\">\n <Counter value={value.length} color=\"neutral\" size=\"small\" />\n </Box>\n );\n }\n\n return (\n <Text\n as=\"span\"\n size=\"small\"\n weight=\"medium\"\n color={isDisabled ? 'interactive.text.gray.disabled' : 'interactive.text.gray.normal'}\n >\n {value}\n </Text>\n );\n};\n\nconst _BaseFilterChip: React.ForwardRefRenderFunction<BladeElementRef, BaseFilterChipProps> = (\n {\n value,\n onClearButtonClick,\n label,\n isDisabled,\n selectionType = 'single',\n onClick,\n onKeyDown,\n accessibilityProps,\n id,\n ...rest\n }: BaseFilterChipProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const isSelected =\n selectionType === 'multiple' ? Array.isArray(value) && value.length > 0 : !!value;\n\n return (\n <StyledFilterChip\n $isDisabled={isDisabled}\n $isSelected={isSelected}\n ref={ref as React.Ref<HTMLDivElement>}\n >\n <StyledFilterTrigger\n $isSelected={isSelected}\n disabled={isDisabled}\n id={id}\n onClick={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClick?.(e as any);\n }}\n onKeyDown={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onKeyDown?.(e as any);\n }}\n {...makeAccessible({\n ...accessibilityProps,\n role: accessibilityProps?.role ?? 'button',\n })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n {...metaAttribute({ name: 'filter-chip-trigger', testID: rest.testID })}\n >\n <Box display=\"flex\" gap=\"spacing.2\" whiteSpace=\"nowrap\" alignItems=\"center\">\n <Text\n size=\"small\"\n weight=\"medium\"\n color=\"interactive.text.gray.subtle\"\n truncateAfterLines={1}\n >\n {label}\n {isSelected ? ':' : null}\n </Text>\n {isSelected ? renderValue(selectionType, value, isDisabled) : null}\n </Box>\n <Box display=\"flex\" alignItems=\"center\" paddingRight=\"spacing.1\">\n <ChevronDownIcon size=\"small\" color=\"interactive.icon.gray.muted\" />\n </Box>\n </StyledFilterTrigger>\n {isSelected ? (\n <>\n <Divider orientation=\"vertical\" variant={isDisabled ? 'muted' : 'subtle'} />\n <StyledFilterCloseButton\n aria-label={`Clear ${label} value`}\n // value can never be undefined because when it's undefined the button itself doesn't render/\n onClick={() => onClearButtonClick?.({ value: value ?? '' })}\n disabled={isDisabled}\n {...metaAttribute({ name: 'filter-chip-close-button' })}\n >\n <CloseIcon size=\"small\" color=\"interactive.icon.gray.muted\" />\n </StyledFilterCloseButton>\n </>\n ) : null}\n </StyledFilterChip>\n );\n};\n\nconst BaseFilterChip = assignWithoutSideEffects(React.forwardRef(_BaseFilterChip), {\n componentId: MetaConstants.BaseFilterChip,\n});\n\nexport { BaseFilterChip };\n"],"names":["getInteractiveFilterItemStyles","_ref","theme","display","height","alignItems","border","cursor","color","backgroundColor","colors","interactive","background","gray","faded","_objectSpread","getFocusRingStyles","outlineOffset","makeSpace","spacing","StyledFilterChip","styled","BaseBox","withConfig","displayName","componentId","_ref2","$isDisabled","$isSelected","borderWidth","makeBorderSize","width","thin","borderColor","FILTER_CHIP_HEIGHT","borderRadius","radius","small","borderStyle","surface","intense","text","StyledFilterTrigger","button","_ref3","transparent","none","borderTopLeftRadius","borderBottomLeftRadius","paddingLeft","paddingRight","gap","StyledFilterCloseButton","_ref4","borderTopRightRadius","borderBottomRightRadius","justifyContent","renderValue","selectionType","value","isDisabled","Array","isArray","_jsx","Box","children","Counter","length","size","Text","as","weight","_BaseFilterChip","_ref5","ref","_accessibilityProps$r","onClearButtonClick","label","_ref5$selectionType","onClick","onKeyDown","accessibilityProps","id","rest","_objectWithoutProperties","_excluded","isSelected","_jsxs","disabled","e","makeAccessible","role","getStyledProps","makeAnalyticsAttribute","metaAttribute","name","testID","whiteSpace","truncateAfterLines","ChevronDownIcon","_Fragment","Divider","orientation","variant","concat","CloseIcon","BaseFilterChip","assignWithoutSideEffects","React","forwardRef","MetaConstants"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseFilterChip.web.js","sources":["../../../../../../src/components/FilterChip/BaseFilterChip.web.tsx"],"sourcesContent":["import React from 'react';\nimport type { CSSObject } from 'styled-components';\nimport styled from 'styled-components';\nimport { FILTER_CHIP_HEIGHT } from './tokens';\nimport type { BaseFilterChipProps } from './types';\nimport { makeBorderSize, makeSpace } from '~utils';\nimport type { Theme } from '~components/BladeProvider';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { BladeElementRef } from '~utils/types';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Counter } from '~components/Counter';\nimport { Divider } from '~components/Divider';\nimport { ChevronDownIcon, CloseIcon } from '~components/Icons';\nimport { Text } from '~components/Typography';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\n\nconst getInteractiveFilterItemStyles = ({ theme }: { theme: Theme }): CSSObject => {\n return {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n border: 'none',\n cursor: 'pointer',\n color: 'currentcolor',\n '&:not([disabled]):hover': {\n backgroundColor: theme.colors.interactive.background.gray.faded,\n },\n '&[disabled]': {\n cursor: 'not-allowed',\n },\n '&:focus-visible': {\n ...getFocusRingStyles({ theme }),\n outlineOffset: makeSpace(theme.spacing[1]),\n },\n };\n};\n\nconst StyledFilterChip = styled(BaseBox)<{ $isSelected?: boolean; $isDisabled?: boolean }>(\n ({ theme, $isDisabled, $isSelected }) => {\n return {\n borderWidth: makeBorderSize(theme.border.width.thin),\n borderColor: theme.colors.interactive.border.gray[$isDisabled ? 'disabled' : 'faded'],\n height: FILTER_CHIP_HEIGHT,\n borderRadius: theme.border.radius.small,\n display: 'flex',\n borderStyle: $isSelected ? 'solid' : 'dashed',\n backgroundColor: theme.colors.surface.background.gray.intense,\n color: theme.colors.interactive.text.gray[$isDisabled ? 'disabled' : 'muted'],\n width: 'fit-content',\n };\n },\n);\n\nconst StyledFilterTrigger = styled.button<{ $hasClearButton?: boolean }>(\n ({ theme, $hasClearButton }) => {\n const { spacing } = theme;\n return {\n backgroundColor: theme.colors.transparent,\n // When a clear button follows the trigger its right corners butt against the divider,\n // so they're squared off. Without a clear button the trigger is a self-contained pill.\n borderRadius: $hasClearButton ? theme.border.radius.none : theme.border.radius.small,\n borderTopLeftRadius: theme.border.radius.small,\n borderBottomLeftRadius: theme.border.radius.small,\n paddingLeft: makeSpace(spacing[4]),\n paddingRight: $hasClearButton ? makeSpace(spacing[2]) : makeSpace(spacing[3]),\n gap: makeSpace(spacing[2]),\n ...getInteractiveFilterItemStyles({ theme }),\n };\n },\n);\n\nconst StyledFilterCloseButton = styled.button(({ theme }) => {\n return {\n backgroundColor: theme.colors.transparent,\n borderTopRightRadius: theme.border.radius.small,\n borderBottomRightRadius: theme.border.radius.small,\n paddingLeft: makeSpace(theme.spacing[2] + theme.spacing[1]),\n paddingRight: makeSpace(theme.spacing[2] + theme.spacing[1]),\n justifyContent: 'center',\n alignItems: 'center',\n ...getInteractiveFilterItemStyles({ theme }),\n };\n});\n\nconst renderValue = (\n selectionType: BaseFilterChipProps['selectionType'],\n value: BaseFilterChipProps['value'],\n isDisabled?: boolean,\n): React.ReactElement => {\n const valueColor = isDisabled ? 'interactive.text.gray.disabled' : 'interactive.text.gray.normal';\n\n // For multiple selection: when a single option is selected we show its name (no redundant\n // \"1\" counter); once more than one is selected we collapse to a compact counter.\n // Use an explicit type guard so a non-array value (e.g. a plain string returned by\n // getFilterChipDisplayValue) never enters the array branch where .length would be\n // misinterpreted as character count.\n if (selectionType === 'multiple') {\n const valueArray = Array.isArray(value) ? value : value != null ? [value] : [];\n if (valueArray.length === 1) {\n return (\n <Text as=\"span\" size=\"small\" weight=\"medium\" color={valueColor} truncateAfterLines={1}>\n {String(valueArray[0] ?? '')}\n </Text>\n );\n }\n return (\n <Box display=\"flex\" alignItems=\"center\">\n <Counter value={valueArray.length} color=\"neutral\" size=\"small\" />\n </Box>\n );\n }\n\n return (\n <Text as=\"span\" size=\"small\" weight=\"medium\" color={valueColor}>\n {value != null ? String(value) : ''}\n </Text>\n );\n};\n\nconst _BaseFilterChip: React.ForwardRefRenderFunction<BladeElementRef, BaseFilterChipProps> = (\n {\n value,\n onClearButtonClick,\n label,\n isDisabled,\n selectionType = 'single',\n showClearButton = true,\n onClick,\n onKeyDown,\n accessibilityProps,\n id,\n ...rest\n }: BaseFilterChipProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const isSelected =\n selectionType === 'multiple' ? Array.isArray(value) && value.length > 0 : !!value;\n const shouldShowClearButton = isSelected && showClearButton;\n\n return (\n <StyledFilterChip\n $isDisabled={isDisabled}\n $isSelected={isSelected}\n ref={ref as React.Ref<HTMLDivElement>}\n >\n <StyledFilterTrigger\n $hasClearButton={shouldShowClearButton}\n disabled={isDisabled}\n id={id}\n onClick={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClick?.(e as any);\n }}\n onKeyDown={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onKeyDown?.(e as any);\n }}\n {...makeAccessible({\n ...accessibilityProps,\n role: accessibilityProps?.role ?? 'button',\n })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n {...metaAttribute({ name: 'filter-chip-trigger', testID: rest.testID })}\n >\n <Box display=\"flex\" gap=\"spacing.2\" whiteSpace=\"nowrap\" alignItems=\"center\">\n <Text\n size=\"small\"\n weight=\"medium\"\n color=\"interactive.text.gray.subtle\"\n truncateAfterLines={1}\n >\n {label}\n {isSelected ? ':' : null}\n </Text>\n {isSelected ? renderValue(selectionType, value, isDisabled) : null}\n </Box>\n <Box display=\"flex\" alignItems=\"center\" paddingRight=\"spacing.1\">\n <ChevronDownIcon size=\"small\" color=\"interactive.icon.gray.muted\" />\n </Box>\n </StyledFilterTrigger>\n {shouldShowClearButton ? (\n <>\n <Divider orientation=\"vertical\" variant={isDisabled ? 'muted' : 'subtle'} />\n <StyledFilterCloseButton\n aria-label={`Clear ${label} value`}\n // value can never be undefined because when it's undefined the button itself doesn't render/\n onClick={() => onClearButtonClick?.({ value: value ?? '' })}\n disabled={isDisabled}\n {...metaAttribute({ name: 'filter-chip-close-button' })}\n >\n <CloseIcon size=\"small\" color=\"interactive.icon.gray.muted\" />\n </StyledFilterCloseButton>\n </>\n ) : null}\n </StyledFilterChip>\n );\n};\n\nconst BaseFilterChip = assignWithoutSideEffects(React.forwardRef(_BaseFilterChip), {\n componentId: MetaConstants.BaseFilterChip,\n});\n\nexport { BaseFilterChip };\n"],"names":["getInteractiveFilterItemStyles","_ref","theme","display","height","alignItems","border","cursor","color","backgroundColor","colors","interactive","background","gray","faded","_objectSpread","getFocusRingStyles","outlineOffset","makeSpace","spacing","StyledFilterChip","styled","BaseBox","withConfig","displayName","componentId","_ref2","$isDisabled","$isSelected","borderWidth","makeBorderSize","width","thin","borderColor","FILTER_CHIP_HEIGHT","borderRadius","radius","small","borderStyle","surface","intense","text","StyledFilterTrigger","button","_ref3","$hasClearButton","transparent","none","borderTopLeftRadius","borderBottomLeftRadius","paddingLeft","paddingRight","gap","StyledFilterCloseButton","_ref4","borderTopRightRadius","borderBottomRightRadius","justifyContent","renderValue","selectionType","value","isDisabled","valueColor","valueArray","Array","isArray","length","_valueArray$","_jsx","Text","as","size","weight","truncateAfterLines","children","String","Box","Counter","_BaseFilterChip","_ref5","ref","_accessibilityProps$r","onClearButtonClick","label","_ref5$selectionType","_ref5$showClearButton","showClearButton","onClick","onKeyDown","accessibilityProps","id","rest","_objectWithoutProperties","_excluded","isSelected","shouldShowClearButton","_jsxs","disabled","e","makeAccessible","role","getStyledProps","makeAnalyticsAttribute","metaAttribute","name","testID","whiteSpace","ChevronDownIcon","_Fragment","Divider","orientation","variant","concat","CloseIcon","BaseFilterChip","assignWithoutSideEffects","React","forwardRef","MetaConstants"],"mappings":"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"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
4
|
+
import React__default from 'react';
|
|
5
|
+
import styled from 'styled-components';
|
|
6
|
+
import { SegmentedControlContext } from './SegmentedControlContext.js';
|
|
7
|
+
import { SegmentedControlIndicator } from './SegmentedControlIndicator.web.js';
|
|
8
|
+
import { containerHeight, gap, containerPadding, containerBorderRadius } from './segmentedControlTokens.js';
|
|
9
|
+
import { useControllableState } from '../../utils/useControllable.js';
|
|
10
|
+
import { useId } from '../../utils/useId.js';
|
|
11
|
+
import { useMergeRefs } from '../../utils/useMergeRefs.js';
|
|
12
|
+
import '../../utils/makeAccessible/index.js';
|
|
13
|
+
import '../../utils/metaAttribute/index.js';
|
|
14
|
+
import '../../utils/makeAnalyticsAttribute/index.js';
|
|
15
|
+
import '../Box/styledProps/index.js';
|
|
16
|
+
import '../../utils/index.js';
|
|
17
|
+
import getIn from '../../utils/lodashButBetter/get.js';
|
|
18
|
+
import '../Form/index.js';
|
|
19
|
+
import '../Box/BaseBox/index.js';
|
|
20
|
+
import '../BladeProvider/index.js';
|
|
21
|
+
import { formHintLeftLabelMarginLeft } from '../Input/BaseInput/baseInputTokens.js';
|
|
22
|
+
import '../../utils/makeSize/index.js';
|
|
23
|
+
import { getHintType } from '../Input/BaseInput/BaseInput.js';
|
|
24
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
25
|
+
import { makeSpace } from '../../utils/makeSpace/makeSpace.js';
|
|
26
|
+
import useTheme from '../BladeProvider/useTheme.js';
|
|
27
|
+
import { useBreakpoint } from '../../utils/useBreakpoint/useBreakpoint.js';
|
|
28
|
+
import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.web.js';
|
|
29
|
+
import { metaAttribute } from '../../utils/metaAttribute/metaAttribute.web.js';
|
|
30
|
+
import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
|
|
31
|
+
import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
|
|
32
|
+
import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
|
|
33
|
+
import { getStyledProps } from '../Box/styledProps/getStyledProps.js';
|
|
34
|
+
import { FormLabel } from '../Form/FormLabel.js';
|
|
35
|
+
import { makeSize } from '../../utils/makeSize/makeSize.js';
|
|
36
|
+
import { FormHint } from '../Form/FormHint.js';
|
|
37
|
+
|
|
38
|
+
var _excluded = ["children", "defaultValue", "value", "onChange", "size", "isDisabled", "isRequired", "name", "label", "accessibilityLabel", "labelPosition", "helpText", "errorText", "validationState", "necessityIndicator", "testID"];
|
|
39
|
+
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; }
|
|
40
|
+
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; }
|
|
41
|
+
var StyledSegmentedControlContainer = /*#__PURE__*/styled.div.withConfig({
|
|
42
|
+
displayName: "SegmentedControlweb__StyledSegmentedControlContainer",
|
|
43
|
+
componentId: "ngewlz-0"
|
|
44
|
+
})(function (_ref) {
|
|
45
|
+
var theme = _ref.theme,
|
|
46
|
+
$size = _ref.$size;
|
|
47
|
+
return {
|
|
48
|
+
display: 'flex',
|
|
49
|
+
width: '100%',
|
|
50
|
+
height: makeSpace(containerHeight[$size]),
|
|
51
|
+
alignItems: 'center',
|
|
52
|
+
gap: makeSpace(getIn(theme, gap[$size])),
|
|
53
|
+
padding: makeSpace(getIn(theme, containerPadding[$size])),
|
|
54
|
+
backgroundColor: theme.colors.interactive.background.gray.faded,
|
|
55
|
+
borderRadius: makeSpace(theme.border.radius[containerBorderRadius[$size]]),
|
|
56
|
+
position: 'relative'
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
var _SegmentedControl = function _SegmentedControl(_ref2, ref) {
|
|
60
|
+
var children = _ref2.children,
|
|
61
|
+
defaultValue = _ref2.defaultValue,
|
|
62
|
+
value = _ref2.value,
|
|
63
|
+
_onChange = _ref2.onChange,
|
|
64
|
+
_ref2$size = _ref2.size,
|
|
65
|
+
size = _ref2$size === void 0 ? 'medium' : _ref2$size,
|
|
66
|
+
_ref2$isDisabled = _ref2.isDisabled,
|
|
67
|
+
isDisabled = _ref2$isDisabled === void 0 ? false : _ref2$isDisabled,
|
|
68
|
+
_ref2$isRequired = _ref2.isRequired,
|
|
69
|
+
isRequired = _ref2$isRequired === void 0 ? false : _ref2$isRequired,
|
|
70
|
+
name = _ref2.name,
|
|
71
|
+
label = _ref2.label,
|
|
72
|
+
accessibilityLabel = _ref2.accessibilityLabel,
|
|
73
|
+
_ref2$labelPosition = _ref2.labelPosition,
|
|
74
|
+
labelPosition = _ref2$labelPosition === void 0 ? 'top' : _ref2$labelPosition,
|
|
75
|
+
helpText = _ref2.helpText,
|
|
76
|
+
errorText = _ref2.errorText,
|
|
77
|
+
_ref2$validationState = _ref2.validationState,
|
|
78
|
+
validationState = _ref2$validationState === void 0 ? 'none' : _ref2$validationState,
|
|
79
|
+
_ref2$necessityIndica = _ref2.necessityIndicator,
|
|
80
|
+
necessityIndicator = _ref2$necessityIndica === void 0 ? 'none' : _ref2$necessityIndica,
|
|
81
|
+
testID = _ref2.testID,
|
|
82
|
+
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
83
|
+
var _useControllableState = useControllableState({
|
|
84
|
+
defaultValue: defaultValue,
|
|
85
|
+
value: value,
|
|
86
|
+
onChange: function onChange(val) {
|
|
87
|
+
_onChange === null || _onChange === void 0 || _onChange({
|
|
88
|
+
name: name,
|
|
89
|
+
value: val
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}),
|
|
93
|
+
_useControllableState2 = _slicedToArray(_useControllableState, 2),
|
|
94
|
+
selectedValue = _useControllableState2[0],
|
|
95
|
+
setSelectedValue = _useControllableState2[1];
|
|
96
|
+
var baseId = useId('segmented-control');
|
|
97
|
+
var containerRef = React__default.useRef(null);
|
|
98
|
+
var mergedRef = useMergeRefs(containerRef, ref);
|
|
99
|
+
var itemRefs = React__default.useRef(new Map());
|
|
100
|
+
var labelId = "".concat(baseId, "-label");
|
|
101
|
+
var totalItems = React__default.Children.count(children);
|
|
102
|
+
var firstEnabledValue = React__default.useMemo(function () {
|
|
103
|
+
var first;
|
|
104
|
+
React__default.Children.forEach(children, function (child) {
|
|
105
|
+
if (first !== undefined) return;
|
|
106
|
+
if (/*#__PURE__*/React__default.isValidElement(child) && !child.props.isDisabled) {
|
|
107
|
+
first = child.props.value;
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
return first;
|
|
111
|
+
}, [children]);
|
|
112
|
+
var contextValue = React__default.useMemo(function () {
|
|
113
|
+
return {
|
|
114
|
+
selectedValue: selectedValue,
|
|
115
|
+
setSelectedValue: setSelectedValue,
|
|
116
|
+
size: size,
|
|
117
|
+
isDisabled: isDisabled,
|
|
118
|
+
name: name,
|
|
119
|
+
baseId: baseId,
|
|
120
|
+
totalItems: totalItems,
|
|
121
|
+
firstEnabledValue: firstEnabledValue,
|
|
122
|
+
itemRefs: itemRefs
|
|
123
|
+
};
|
|
124
|
+
}, [selectedValue, setSelectedValue, size, isDisabled, name, baseId, totalItems, firstEnabledValue]);
|
|
125
|
+
var _useTheme = useTheme(),
|
|
126
|
+
theme = _useTheme.theme;
|
|
127
|
+
var _useBreakpoint = useBreakpoint({
|
|
128
|
+
breakpoints: theme.breakpoints
|
|
129
|
+
}),
|
|
130
|
+
matchedDeviceType = _useBreakpoint.matchedDeviceType;
|
|
131
|
+
var isLabelLeftPositioned = labelPosition === 'left' && matchedDeviceType === 'desktop';
|
|
132
|
+
var willRenderHintText = Boolean(helpText) || validationState === 'error' && Boolean(errorText);
|
|
133
|
+
var showError = validationState === 'error' && errorText;
|
|
134
|
+
var showHelpText = !showError && helpText;
|
|
135
|
+
var accessibilityText = "".concat(showError ? errorText : '', " ").concat(showHelpText ? helpText : '').trim();
|
|
136
|
+
var ariaLabel = label ? undefined : accessibilityLabel || name;
|
|
137
|
+
var segmentedControlElement = /*#__PURE__*/jsxs(StyledSegmentedControlContainer, _objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
138
|
+
ref: mergedRef,
|
|
139
|
+
$size: size
|
|
140
|
+
}, makeAccessible({
|
|
141
|
+
role: 'radiogroup',
|
|
142
|
+
labelledBy: label ? labelId : undefined,
|
|
143
|
+
label: ariaLabel,
|
|
144
|
+
required: isRequired
|
|
145
|
+
})), metaAttribute({
|
|
146
|
+
name: MetaConstants.SegmentedControl,
|
|
147
|
+
testID: testID
|
|
148
|
+
})), makeAnalyticsAttribute(rest)), {}, {
|
|
149
|
+
children: [children, /*#__PURE__*/jsx(SegmentedControlIndicator, {
|
|
150
|
+
containerRef: containerRef
|
|
151
|
+
})]
|
|
152
|
+
}));
|
|
153
|
+
return /*#__PURE__*/jsx(SegmentedControlContext.Provider, {
|
|
154
|
+
value: contextValue,
|
|
155
|
+
children: /*#__PURE__*/jsxs(BaseBox, _objectSpread(_objectSpread({
|
|
156
|
+
display: "flex",
|
|
157
|
+
flexDirection: "column",
|
|
158
|
+
width: "100%"
|
|
159
|
+
}, getStyledProps(rest)), {}, {
|
|
160
|
+
children: [/*#__PURE__*/jsxs(BaseBox, {
|
|
161
|
+
display: "flex",
|
|
162
|
+
flexDirection: isLabelLeftPositioned ? 'row' : 'column',
|
|
163
|
+
alignItems: isLabelLeftPositioned ? 'center' : undefined,
|
|
164
|
+
children: [label ? /*#__PURE__*/jsx(FormLabel, {
|
|
165
|
+
as: "span",
|
|
166
|
+
necessityIndicator: necessityIndicator,
|
|
167
|
+
position: labelPosition,
|
|
168
|
+
id: labelId,
|
|
169
|
+
accessibilityText: accessibilityText && ",".concat(accessibilityText),
|
|
170
|
+
size: size,
|
|
171
|
+
children: label
|
|
172
|
+
}) : null, /*#__PURE__*/jsx(BaseBox, {
|
|
173
|
+
display: "flex",
|
|
174
|
+
flexDirection: "column",
|
|
175
|
+
flex: "1",
|
|
176
|
+
children: segmentedControlElement
|
|
177
|
+
})]
|
|
178
|
+
}), willRenderHintText && /*#__PURE__*/jsx(BaseBox, {
|
|
179
|
+
marginLeft: makeSize(label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0),
|
|
180
|
+
children: /*#__PURE__*/jsx(FormHint, {
|
|
181
|
+
type: getHintType({
|
|
182
|
+
validationState: validationState,
|
|
183
|
+
hasHelpText: Boolean(helpText)
|
|
184
|
+
}),
|
|
185
|
+
helpText: helpText,
|
|
186
|
+
errorText: errorText,
|
|
187
|
+
size: size
|
|
188
|
+
})
|
|
189
|
+
})]
|
|
190
|
+
}))
|
|
191
|
+
});
|
|
192
|
+
};
|
|
193
|
+
var SegmentedControl = /*#__PURE__*/React__default.forwardRef(_SegmentedControl);
|
|
194
|
+
|
|
195
|
+
export { SegmentedControl };
|
|
196
|
+
//# sourceMappingURL=SegmentedControl.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SegmentedControl.web.js","sources":["../../../../../../src/components/SegmentedControl/SegmentedControl.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport type { SegmentedControlProps } from './types';\nimport { SegmentedControlContext } from './SegmentedControlContext';\nimport { SegmentedControlIndicator } from './SegmentedControlIndicator.web';\nimport {\n containerPadding,\n containerBorderRadius,\n containerHeight,\n gap,\n} from './segmentedControlTokens';\nimport { useControllableState } from '~utils/useControllable';\nimport { useId } from '~utils/useId';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { makeSpace, useBreakpoint } from '~utils';\nimport getIn from '~utils/lodashButBetter/get';\nimport type { BladeElementRef } from '~utils/types';\nimport { FormLabel, FormHint } from '~components/Form';\nimport BaseBox from '~components/Box/BaseBox';\nimport { useTheme } from '~components/BladeProvider';\nimport { formHintLeftLabelMarginLeft } from '~components/Input/BaseInput/baseInputTokens';\nimport { makeSize } from '~utils/makeSize';\nimport { getHintType } from '~components/Input/BaseInput/BaseInput';\n\nconst StyledSegmentedControlContainer = styled.div<{\n $size: NonNullable<SegmentedControlProps['size']>;\n}>(({ theme, $size }) => ({\n display: 'flex',\n width: '100%',\n height: makeSpace(containerHeight[$size]),\n alignItems: 'center',\n gap: makeSpace(getIn(theme, gap[$size])),\n padding: makeSpace(getIn(theme, containerPadding[$size])),\n backgroundColor: theme.colors.interactive.background.gray.faded,\n borderRadius: makeSpace(theme.border.radius[containerBorderRadius[$size]]),\n position: 'relative',\n}));\n\nconst _SegmentedControl = (\n {\n children,\n defaultValue,\n value,\n onChange,\n size = 'medium',\n isDisabled = false,\n isRequired = false,\n name,\n label,\n accessibilityLabel,\n labelPosition = 'top',\n helpText,\n errorText,\n validationState = 'none',\n necessityIndicator = 'none',\n testID,\n ...rest\n }: SegmentedControlProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const [selectedValue, setSelectedValue] = useControllableState({\n defaultValue,\n value,\n onChange: (val) => {\n onChange?.({ name, value: val });\n },\n });\n\n const baseId = useId('segmented-control');\n const containerRef = React.useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs(containerRef, ref as React.Ref<HTMLDivElement>);\n const itemRefs = React.useRef<Map<string, HTMLElement>>(new Map());\n const labelId = `${baseId}-label`;\n const totalItems = React.Children.count(children);\n\n const firstEnabledValue = React.useMemo(() => {\n let first: string | undefined;\n React.Children.forEach(children, (child) => {\n if (first !== undefined) return;\n if (React.isValidElement(child) && !child.props.isDisabled) {\n first = child.props.value;\n }\n });\n return first;\n }, [children]);\n\n const contextValue = React.useMemo(\n () => ({\n selectedValue,\n setSelectedValue,\n size,\n isDisabled,\n name,\n baseId,\n totalItems,\n firstEnabledValue,\n itemRefs,\n }),\n [\n selectedValue,\n setSelectedValue,\n size,\n isDisabled,\n name,\n baseId,\n totalItems,\n firstEnabledValue,\n ],\n );\n\n const { theme } = useTheme();\n const { matchedDeviceType } = useBreakpoint({ breakpoints: theme.breakpoints });\n const isLabelLeftPositioned = labelPosition === 'left' && matchedDeviceType === 'desktop';\n\n const willRenderHintText =\n Boolean(helpText) || (validationState === 'error' && Boolean(errorText));\n\n const showError = validationState === 'error' && errorText;\n const showHelpText = !showError && helpText;\n const accessibilityText = `${showError ? errorText : ''} ${showHelpText ? helpText : ''}`.trim();\n const ariaLabel = label ? undefined : accessibilityLabel || name;\n\n const segmentedControlElement = (\n <StyledSegmentedControlContainer\n ref={mergedRef}\n $size={size}\n {...makeAccessible({\n role: 'radiogroup',\n labelledBy: label ? labelId : undefined,\n label: ariaLabel,\n required: isRequired,\n })}\n {...metaAttribute({ name: MetaConstants.SegmentedControl, testID })}\n {...makeAnalyticsAttribute(rest)}\n >\n {children}\n <SegmentedControlIndicator containerRef={containerRef} />\n </StyledSegmentedControlContainer>\n );\n\n return (\n <SegmentedControlContext.Provider value={contextValue}>\n <BaseBox display=\"flex\" flexDirection=\"column\" width=\"100%\" {...getStyledProps(rest)}>\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n alignItems={isLabelLeftPositioned ? 'center' : undefined}\n >\n {label ? (\n <FormLabel\n as=\"span\"\n necessityIndicator={necessityIndicator}\n position={labelPosition}\n id={labelId}\n accessibilityText={accessibilityText && `,${accessibilityText}`}\n size={size}\n >\n {label}\n </FormLabel>\n ) : null}\n\n <BaseBox display=\"flex\" flexDirection=\"column\" flex=\"1\">\n {segmentedControlElement}\n </BaseBox>\n </BaseBox>\n\n {willRenderHintText && (\n <BaseBox\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n >\n <FormHint\n type={getHintType({ validationState, hasHelpText: Boolean(helpText) })}\n helpText={helpText}\n errorText={errorText}\n size={size}\n />\n </BaseBox>\n )}\n </BaseBox>\n </SegmentedControlContext.Provider>\n );\n};\n\nconst SegmentedControl = React.forwardRef(_SegmentedControl);\n\nexport { SegmentedControl };\n"],"names":["StyledSegmentedControlContainer","styled","div","withConfig","displayName","componentId","_ref","theme","$size","display","width","height","makeSpace","containerHeight","alignItems","gap","getIn","padding","containerPadding","backgroundColor","colors","interactive","background","gray","faded","borderRadius","border","radius","containerBorderRadius","position","_SegmentedControl","_ref2","ref","children","defaultValue","value","onChange","_ref2$size","size","_ref2$isDisabled","isDisabled","_ref2$isRequired","isRequired","name","label","accessibilityLabel","_ref2$labelPosition","labelPosition","helpText","errorText","_ref2$validationState","validationState","_ref2$necessityIndica","necessityIndicator","testID","rest","_objectWithoutProperties","_excluded","_useControllableState","useControllableState","val","_useControllableState2","_slicedToArray","selectedValue","setSelectedValue","baseId","useId","containerRef","React","useRef","mergedRef","useMergeRefs","itemRefs","Map","labelId","concat","totalItems","Children","count","firstEnabledValue","useMemo","first","forEach","child","undefined","isValidElement","props","contextValue","_useTheme","useTheme","_useBreakpoint","useBreakpoint","breakpoints","matchedDeviceType","isLabelLeftPositioned","willRenderHintText","Boolean","showError","showHelpText","accessibilityText","trim","ariaLabel","segmentedControlElement","_jsxs","_objectSpread","makeAccessible","role","labelledBy","required","metaAttribute","MetaConstants","SegmentedControl","makeAnalyticsAttribute","_jsx","SegmentedControlIndicator","SegmentedControlContext","Provider","BaseBox","flexDirection","getStyledProps","FormLabel","as","id","flex","marginLeft","makeSize","formHintLeftLabelMarginLeft","FormHint","type","getHintType","hasHelpText","forwardRef"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import '../../utils/logger/index.js';
|
|
3
|
+
import { throwBladeError } from '../../utils/logger/logger.js';
|
|
4
|
+
|
|
5
|
+
var SegmentedControlContext = /*#__PURE__*/React__default.createContext(null);
|
|
6
|
+
var useSegmentedControlContext = function useSegmentedControlContext() {
|
|
7
|
+
var context = React__default.useContext(SegmentedControlContext);
|
|
8
|
+
if (!context) {
|
|
9
|
+
throwBladeError({
|
|
10
|
+
moduleName: 'SegmentedControl',
|
|
11
|
+
message: 'useSegmentedControlContext must be used within SegmentedControl'
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
return context;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export { SegmentedControlContext, useSegmentedControlContext };
|
|
18
|
+
//# sourceMappingURL=SegmentedControlContext.js.map
|