@razorpay/blade 12.92.0 → 12.92.1
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/web/development/components/Dropdown/FilterChipSelectInput.web.js +23 -15
- package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
- package/build/lib/web/development/components/SideNav/SideNav.web.js +21 -21
- package/build/lib/web/development/components/SideNav/SideNav.web.js.map +1 -1
- package/build/lib/web/development/components/SideNav/SideNavItems/SideNavLink.web.js +4 -4
- package/build/lib/web/development/components/SideNav/SideNavItems/SideNavLink.web.js.map +1 -1
- package/build/lib/web/production/_virtual/cloneDeep.js +1 -1
- package/build/lib/web/production/_virtual/cloneDeep3.js +1 -1
- package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js +23 -15
- package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
- package/build/lib/web/production/components/SideNav/SideNav.web.js +21 -21
- package/build/lib/web/production/components/SideNav/SideNav.web.js.map +1 -1
- package/build/lib/web/production/components/SideNav/SideNavItems/SideNavLink.web.js +4 -4
- package/build/lib/web/production/components/SideNav/SideNavItems/SideNavLink.web.js.map +1 -1
- package/build/lib/web/production/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
- package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matches.js +2 -2
- package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js +2 -2
- package/build/lib/web/production/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SideNavLink.web.js","sources":["../../../../../../../src/components/SideNav/SideNavItems/SideNavLink.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport { FloatingFocusManager, FloatingPortal, useFloating } from '@floating-ui/react';\nimport { NavLinkContext, useNavLink, useSideNav } from '../SideNavContext';\nimport { classes, getNavItemTransition, NAV_ITEM_HEIGHT } from '../tokens';\nimport type { SideNavLinkProps } from '../types';\nimport { makeBorderSize, makeSize, makeSpace } from '~utils';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { throwBladeError } from '~utils/logger';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { TooltipifyComponent } from '~utils/TooltipifyComponent';\nimport { useFirstRender } from '~utils/useFirstRender';\nimport { useIsomorphicLayoutEffect } from '~utils/useIsomorphicLayoutEffect';\nimport { useTruncationTitle } from '~utils/useTruncationTitle';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Collapsible, CollapsibleBody } from '~components/Collapsible';\nimport { useCollapsible } from '~components/Collapsible/CollapsibleContext';\nimport { ChevronDownIcon, ChevronRightIcon, ChevronUpIcon } from '~components/Icons';\nimport { BaseText } from '~components/Typography/BaseText';\nimport { Text } from '~components/Typography';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\n\nconst { SHOW_ON_LINK_HOVER, HIDE_WHEN_COLLAPSED, STYLED_NAV_LINK } = classes;\n\nconst StyledNavLinkContainer = styled(BaseBox)<{ $hasDescription: boolean }>((props) => {\n return {\n width: '100%',\n [`.${SHOW_ON_LINK_HOVER}`]: {\n opacity: 0,\n '&:focus-within, &:focus-visible': {\n opacity: 1,\n },\n },\n '&:hover': {\n [`.${SHOW_ON_LINK_HOVER}`]: {\n opacity: 1,\n },\n\n [`.${STYLED_NAV_LINK}`]: {\n color: props.theme.colors.interactive.text.gray.normal,\n backgroundColor: props.theme.colors.interactive.background.gray.default,\n },\n },\n [`.${STYLED_NAV_LINK}`]: {\n position: 'relative',\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n height: props.$hasDescription ? undefined : makeSize(NAV_ITEM_HEIGHT),\n width: '100%',\n textDecoration: 'none',\n overflow: 'hidden',\n flexWrap: 'nowrap',\n cursor: 'pointer',\n padding: `${makeSpace(props.theme.spacing[props.$hasDescription ? 3 : 0])} ${makeSpace(\n props.theme.spacing[4],\n )}`,\n margin: `${makeSpace(props.theme.spacing[1])} ${makeSpace(props.theme.spacing[0])}`,\n color: props.theme.colors.interactive.text.gray.subtle,\n borderRadius: props.theme.border.radius.small,\n borderWidth: makeBorderSize(props.theme.border.width.none),\n backgroundColor: props.theme.colors.transparent,\n transition: getNavItemTransition(props.theme),\n '&[aria-current], &[aria-current]:hover': {\n color: props.theme.colors.interactive.text.gray.normal,\n backgroundColor: props.theme.colors.interactive.background.gray.fadedHighlighted,\n },\n '&:focus-visible': {\n ...getFocusRingStyles({ theme: props.theme }),\n },\n },\n };\n});\n\nconst NavLinkIconTitle = ({\n icon: Icon,\n title,\n description,\n titleSuffix,\n isActive,\n trailing,\n isL1Item,\n}: Pick<\n SideNavLinkProps,\n 'title' | 'isActive' | 'trailing' | 'description' | 'icon' | 'titleSuffix'\n> & {\n isL1Item: boolean;\n}): React.ReactElement => {\n const { containerRef, textRef } = useTruncationTitle({ content: title });\n\n return (\n <Box width=\"100%\" textAlign=\"left\">\n <Box display=\"flex\" justifyContent=\"space-between\" width=\"100%\">\n <Box display=\"flex\" flexDirection=\"row\" gap=\"spacing.3\" alignItems=\"center\">\n {Icon ? (\n <BaseBox display=\"flex\" flexDirection=\"row\" alignItems=\"center\">\n <Icon size=\"medium\" color=\"currentColor\" />\n </BaseBox>\n ) : null}\n <Box ref={containerRef as never} flex=\"1\" minWidth=\"spacing.0\">\n <BaseText\n ref={textRef as never}\n truncateAfterLines={1}\n color=\"currentColor\"\n fontWeight={isActive ? 'semibold' : 'regular'}\n fontSize={100}\n lineHeight={100}\n as=\"p\"\n className={isL1Item ? HIDE_WHEN_COLLAPSED : ''}\n >\n {title}\n </BaseText>\n </Box>\n {titleSuffix ? (\n <BaseBox display=\"flex\" alignItems=\"center\">\n {titleSuffix}\n </BaseBox>\n ) : null}\n </Box>\n <Box display=\"flex\" alignItems=\"center\">\n {trailing}\n </Box>\n </Box>\n {!isL1Item && description ? (\n <Text\n size=\"small\"\n marginLeft=\"spacing.7\"\n textAlign=\"left\"\n weight=\"medium\"\n color={isActive ? 'interactive.text.gray.subtle' : 'interactive.text.gray.muted'}\n truncateAfterLines={1}\n >\n {description}\n </Text>\n ) : null}\n </Box>\n );\n};\n\nconst L3Trigger = ({\n title,\n description,\n icon,\n as,\n href,\n target,\n titleSuffix,\n tooltip,\n onClick,\n}: Pick<\n SideNavLinkProps,\n | 'title'\n | 'description'\n | 'icon'\n | 'as'\n | 'href'\n | 'titleSuffix'\n | 'tooltip'\n | 'target'\n | 'onClick'\n>): React.ReactElement => {\n const { onExpandChange, isExpanded, collapsibleBodyId } = useCollapsible();\n\n const toggleCollapse = (e: React.MouseEvent): void => {\n onClick?.(e);\n onExpandChange(!isExpanded);\n };\n const iconProps = {\n size: 'medium',\n color: 'currentColor',\n } as const;\n\n return (\n <TooltipifyComponent tooltip={tooltip}>\n <StyledNavLinkContainer $hasDescription={Boolean(description)}>\n <BaseBox\n className={STYLED_NAV_LINK}\n as={href ? as : 'button'}\n to={href}\n target={target}\n onClick={(e: React.MouseEvent) => toggleCollapse(e)}\n {...makeAccessible({ expanded: isExpanded, controls: collapsibleBodyId })}\n >\n <NavLinkIconTitle\n title={title}\n description={description}\n icon={icon}\n isL1Item={false}\n titleSuffix={titleSuffix}\n trailing={\n isExpanded ? <ChevronUpIcon {...iconProps} /> : <ChevronDownIcon {...iconProps} />\n }\n />\n </BaseBox>\n </StyledNavLinkContainer>\n </TooltipifyComponent>\n );\n};\n\n/**\n * This is the curved line that appears when you select L3 item\n */\nconst CurvedVerticalLine = styled(BaseBox)((props) => {\n const { colors, border, spacing } = props.theme;\n return {\n borderWidth: makeBorderSize(props.theme.border.width.thin),\n borderColor: `${colors.transparent} ${colors.transparent} ${colors.surface.border.gray.muted} ${colors.surface.border.gray.muted}`,\n borderStyle: 'solid',\n borderRadius: `${makeBorderSize(border.radius.none)} ${makeBorderSize(\n border.radius.none,\n )} ${makeBorderSize(border.radius.none)} ${makeBorderSize(border.radius.medium)}`,\n // We set veritical line infinitely tall (full size of screen) and then hide the overflowing part from top\n height: '100vh',\n position: 'absolute',\n // We want the active line to be positioned in the middle of item's height thus divide by 2\n top: `calc(-100vh + ${makeSize(NAV_ITEM_HEIGHT / 2)})`,\n width: makeSpace(spacing[3]),\n left: makeSpace(-spacing[3]),\n };\n});\n\nconst SideNavLink = ({\n title,\n description,\n href,\n children,\n titleSuffix,\n trailing,\n isActive,\n icon,\n tooltip,\n as,\n target,\n onClick,\n ...rest\n}: SideNavLinkProps): React.ReactElement => {\n const {\n l2PortalContainerRef,\n onLinkActiveChange,\n closeMobileNav,\n isL1Collapsed,\n isSideNavFullyCollapsed,\n setIsL1Collapsed,\n } = useSideNav();\n const { level: _prevLevel } = useNavLink();\n const prevLevel = _prevLevel ?? 0;\n const currentLevel = prevLevel + 1;\n const isL2Trigger = Boolean(children) && currentLevel === 1;\n const isL3Trigger = Boolean(children) && currentLevel === 2;\n\n if (__DEV__) {\n if (Boolean(children) && currentLevel >= 3) {\n throwBladeError({\n message:\n 'SideNav only supports nesting upto L3 but L4 nesting was found. Check the nesting of your SideNavLevel items',\n moduleName: 'SideNavLink',\n });\n }\n\n if (currentLevel === 1 && Boolean(description)) {\n throwBladeError({\n message: 'Description is not supported for L1 items',\n moduleName: 'SideNavLink',\n });\n }\n }\n\n const isFirstRender = useFirstRender();\n\n const { refs, context } = useFloating({\n open: isActive,\n });\n\n useIsomorphicLayoutEffect(() => {\n onLinkActiveChange?.({\n level: currentLevel,\n title,\n isActive: Boolean(isActive),\n isL2Trigger,\n isFirstRender,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isActive]);\n\n const shouldHideActiveL1ItemWithoutIconOnFullCollapse =\n currentLevel === 1 && !icon && isSideNavFullyCollapsed;\n\n return (\n <NavLinkContext.Provider value={{ level: currentLevel, title }}>\n {isL3Trigger ? (\n <Collapsible\n defaultIsExpanded={isActive}\n _dangerouslyDisableValidations={true}\n _shouldApplyWidthRestrictions={false}\n >\n <L3Trigger\n title={title}\n description={description}\n icon={icon}\n as={as}\n href={href}\n titleSuffix={titleSuffix}\n onClick={onClick}\n />\n <CollapsibleBody width=\"100%\" _hasMargin={false}>\n <Box position=\"relative\">{children}</Box>\n </CollapsibleBody>\n </Collapsible>\n ) : (\n <>\n <StyledNavLinkContainer\n $hasDescription={currentLevel !== 1 && Boolean(description)}\n position=\"relative\"\n >\n <TooltipifyComponent tooltip={tooltip}>\n <BaseBox\n className={`${STYLED_NAV_LINK} ${\n shouldHideActiveL1ItemWithoutIconOnFullCollapse ? HIDE_WHEN_COLLAPSED : ''\n }`}\n as={as ?? 'a'}\n to={href}\n href={as ? undefined : href}\n target={target}\n ref={refs.setReference}\n onClick={(e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => {\n // Close the mobile nav when item is clicked and its not trigger for next menu\n if (!isL2Trigger) {\n closeMobileNav?.();\n }\n\n if (isActive) {\n onLinkActiveChange?.({\n level: currentLevel,\n title,\n isActive: Boolean(isActive),\n isL2Trigger,\n isFirstRender: false,\n });\n }\n\n onClick?.(e);\n }}\n onFocus={(e: { target: HTMLDivElement }) => {\n // FloatinFocusManager by default focusses on last clicked element when you move to different tab and come back to the original tab\n // Which can make L1 to expand when tabs / windows are changed\n // Adding focus-visible check ensures this behaviour of closing menus is only applicable when there is visible focus ring on it (while tabbing)\n const hasFocusRing = e.target?.matches(':focus-visible');\n if (\n isL1Collapsed &&\n !isSideNavFullyCollapsed &&\n currentLevel === 1 &&\n hasFocusRing\n ) {\n setIsL1Collapsed?.(false);\n }\n }}\n aria-current={isActive ? 'page' : undefined}\n data-level={currentLevel}\n data-l2trigger={isL2Trigger}\n {...makeAnalyticsAttribute(rest)}\n >\n <NavLinkIconTitle\n icon={icon}\n title={title}\n description={description}\n isActive={isActive}\n isL1Item={currentLevel === 1}\n titleSuffix={titleSuffix}\n />\n {isL2Trigger ? (\n <BaseBox className={HIDE_WHEN_COLLAPSED} display=\"flex\" alignItems=\"center\">\n <ChevronRightIcon size=\"medium\" color=\"currentColor\" />\n </BaseBox>\n ) : null}\n </BaseBox>\n </TooltipifyComponent>\n {trailing && !isL2Trigger ? (\n <BaseBox\n position=\"absolute\"\n top=\"spacing.0\"\n right=\"spacing.2\"\n height=\"100%\"\n display=\"flex\"\n alignItems=\"center\"\n className={`${HIDE_WHEN_COLLAPSED} ${SHOW_ON_LINK_HOVER}`}\n >\n {trailing}\n </BaseBox>\n ) : null}\n {currentLevel === 3 && isActive ? <CurvedVerticalLine /> : null}\n </StyledNavLinkContainer>\n {children ? (\n <FloatingPortal root={l2PortalContainerRef}>\n {isActive && isL1Collapsed ? (\n <FloatingFocusManager modal={false} context={context} initialFocus={-1} returnFocus>\n <BaseBox ref={refs.setFloating} height=\"100%\">\n {children}\n </BaseBox>\n </FloatingFocusManager>\n ) : null}\n </FloatingPortal>\n ) : null}\n </>\n )}\n </NavLinkContext.Provider>\n );\n};\n\nexport { SideNavLink };\n"],"names":["SHOW_ON_LINK_HOVER","classes","HIDE_WHEN_COLLAPSED","STYLED_NAV_LINK","StyledNavLinkContainer","styled","BaseBox","withConfig","displayName","componentId","props","_defineProperty","width","concat","opacity","color","theme","colors","interactive","text","gray","normal","backgroundColor","background","position","display","flexDirection","alignItems","height","$hasDescription","undefined","makeSize","NAV_ITEM_HEIGHT","textDecoration","overflow","flexWrap","cursor","padding","makeSpace","spacing","margin","subtle","borderRadius","border","radius","small","borderWidth","makeBorderSize","none","transparent","transition","getNavItemTransition","fadedHighlighted","_objectSpread","getFocusRingStyles","NavLinkIconTitle","_ref2","Icon","icon","title","description","titleSuffix","isActive","trailing","isL1Item","_useTruncationTitle","useTruncationTitle","content","containerRef","textRef","_jsxs","Box","textAlign","children","justifyContent","gap","_jsx","size","ref","flex","minWidth","BaseText","truncateAfterLines","fontWeight","fontSize","lineHeight","as","className","Text","marginLeft","weight","L3Trigger","_ref3","href","target","tooltip","onClick","_useCollapsible","useCollapsible","onExpandChange","isExpanded","collapsibleBodyId","toggleCollapse","e","iconProps","TooltipifyComponent","Boolean","to","makeAccessible","expanded","controls","ChevronUpIcon","ChevronDownIcon","CurvedVerticalLine","_props$theme","thin","borderColor","surface","muted","borderStyle","medium","top","left","SideNavLink","_ref4","rest","_objectWithoutProperties","_excluded","_useSideNav","useSideNav","l2PortalContainerRef","onLinkActiveChange","closeMobileNav","isL1Collapsed","isSideNavFullyCollapsed","setIsL1Collapsed","_useNavLink","useNavLink","_prevLevel","level","prevLevel","currentLevel","isL2Trigger","isL3Trigger","throwBladeError","message","moduleName","isFirstRender","useFirstRender","_useFloating","useFloating","open","refs","context","useIsomorphicLayoutEffect","shouldHideActiveL1ItemWithoutIconOnFullCollapse","NavLinkContext","Provider","value","Collapsible","defaultIsExpanded","_dangerouslyDisableValidations","_shouldApplyWidthRestrictions","CollapsibleBody","_hasMargin","_Fragment","setReference","onFocus","_e$target","hasFocusRing","matches","makeAnalyticsAttribute","ChevronRightIcon","right","FloatingPortal","root","FloatingFocusManager","modal","initialFocus","returnFocus","setFloating"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SideNavLink.web.js","sources":["../../../../../../../src/components/SideNav/SideNavItems/SideNavLink.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport { FloatingFocusManager, FloatingPortal, useFloating } from '@floating-ui/react';\nimport { NavLinkContext, useNavLink, useSideNav } from '../SideNavContext';\nimport { classes, getNavItemTransition, NAV_ITEM_HEIGHT } from '../tokens';\nimport type { SideNavLinkProps } from '../types';\nimport { makeBorderSize, makeSize, makeSpace } from '~utils';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { throwBladeError } from '~utils/logger';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { TooltipifyComponent } from '~utils/TooltipifyComponent';\nimport { useFirstRender } from '~utils/useFirstRender';\nimport { useIsomorphicLayoutEffect } from '~utils/useIsomorphicLayoutEffect';\nimport { useTruncationTitle } from '~utils/useTruncationTitle';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Collapsible, CollapsibleBody } from '~components/Collapsible';\nimport { useCollapsible } from '~components/Collapsible/CollapsibleContext';\nimport { ChevronDownIcon, ChevronRightIcon, ChevronUpIcon } from '~components/Icons';\nimport { BaseText } from '~components/Typography/BaseText';\nimport { Text } from '~components/Typography';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\n\nconst { SHOW_ON_LINK_HOVER, HIDE_WHEN_COLLAPSED, STYLED_NAV_LINK } = classes;\n\nconst StyledNavLinkContainer = styled(BaseBox)<{ $hasDescription: boolean }>((props) => {\n return {\n width: '100%',\n [`.${SHOW_ON_LINK_HOVER}`]: {\n opacity: 0,\n '&:focus-within, &:focus-visible': {\n opacity: 1,\n },\n },\n '&:hover': {\n [`.${SHOW_ON_LINK_HOVER}`]: {\n opacity: 1,\n },\n\n [`.${STYLED_NAV_LINK}`]: {\n color: props.theme.colors.interactive.text.gray.normal,\n backgroundColor: props.theme.colors.interactive.background.gray.default,\n },\n },\n [`.${STYLED_NAV_LINK}`]: {\n position: 'relative',\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n height: props.$hasDescription ? undefined : makeSize(NAV_ITEM_HEIGHT),\n width: '100%',\n textDecoration: 'none',\n overflow: 'hidden',\n flexWrap: 'nowrap',\n cursor: 'pointer',\n padding: `${makeSpace(props.theme.spacing[props.$hasDescription ? 3 : 0])} ${makeSpace(\n props.theme.spacing[4],\n )}`,\n margin: `${makeSpace(props.theme.spacing[1])} ${makeSpace(props.theme.spacing[0])}`,\n color: props.theme.colors.interactive.text.gray.subtle,\n borderRadius: props.theme.border.radius.small,\n borderWidth: makeBorderSize(props.theme.border.width.none),\n backgroundColor: props.theme.colors.transparent,\n transition: getNavItemTransition(props.theme),\n '&[aria-current], &[aria-current]:hover': {\n color: props.theme.colors.interactive.text.gray.normal,\n backgroundColor: props.theme.colors.interactive.background.gray.fadedHighlighted,\n },\n '&:focus-visible': {\n ...getFocusRingStyles({ theme: props.theme }),\n },\n },\n };\n});\n\nconst NavLinkIconTitle = ({\n icon: Icon,\n title,\n description,\n titleSuffix,\n isActive,\n trailing,\n isL1Item,\n}: Pick<\n SideNavLinkProps,\n 'title' | 'isActive' | 'trailing' | 'description' | 'icon' | 'titleSuffix'\n> & {\n isL1Item: boolean;\n}): React.ReactElement => {\n const { containerRef, textRef } = useTruncationTitle({ content: title });\n\n return (\n <Box width=\"100%\" textAlign=\"left\">\n <Box display=\"flex\" justifyContent=\"space-between\" width=\"100%\">\n <Box display=\"flex\" flexDirection=\"row\" gap=\"spacing.3\" alignItems=\"center\">\n {Icon ? (\n <BaseBox display=\"flex\" flexDirection=\"row\" alignItems=\"center\">\n <Icon size=\"medium\" color=\"currentColor\" />\n </BaseBox>\n ) : null}\n <Box ref={containerRef as never} flex=\"1\" minWidth=\"spacing.0\">\n <BaseText\n ref={textRef as never}\n truncateAfterLines={1}\n color=\"currentColor\"\n fontWeight={isActive ? 'semibold' : 'regular'}\n fontSize={100}\n lineHeight={100}\n as=\"p\"\n className={isL1Item ? HIDE_WHEN_COLLAPSED : ''}\n >\n {title}\n </BaseText>\n </Box>\n {titleSuffix ? (\n <BaseBox display=\"flex\" alignItems=\"center\">\n {titleSuffix}\n </BaseBox>\n ) : null}\n </Box>\n <Box display=\"flex\" alignItems=\"center\">\n {trailing}\n </Box>\n </Box>\n {!isL1Item && description ? (\n <Text\n size=\"small\"\n marginLeft=\"spacing.7\"\n textAlign=\"left\"\n weight=\"medium\"\n color={isActive ? 'interactive.text.gray.subtle' : 'interactive.text.gray.muted'}\n truncateAfterLines={1}\n >\n {description}\n </Text>\n ) : null}\n </Box>\n );\n};\n\nconst L3Trigger = ({\n title,\n description,\n icon,\n as,\n href,\n target,\n titleSuffix,\n tooltip,\n onClick,\n}: Pick<\n SideNavLinkProps,\n | 'title'\n | 'description'\n | 'icon'\n | 'as'\n | 'href'\n | 'titleSuffix'\n | 'tooltip'\n | 'target'\n | 'onClick'\n>): React.ReactElement => {\n const { onExpandChange, isExpanded, collapsibleBodyId } = useCollapsible();\n\n const toggleCollapse = (e: React.MouseEvent): void => {\n onClick?.(e);\n onExpandChange(!isExpanded);\n };\n const iconProps = {\n size: 'medium',\n color: 'currentColor',\n } as const;\n\n return (\n <TooltipifyComponent tooltip={tooltip}>\n <StyledNavLinkContainer $hasDescription={Boolean(description)}>\n <BaseBox\n className={STYLED_NAV_LINK}\n as={href ? as : 'button'}\n to={href}\n target={target}\n onClick={(e: React.MouseEvent) => toggleCollapse(e)}\n {...makeAccessible({ expanded: isExpanded, controls: collapsibleBodyId })}\n >\n <NavLinkIconTitle\n title={title}\n description={description}\n icon={icon}\n isL1Item={false}\n titleSuffix={titleSuffix}\n trailing={\n isExpanded ? <ChevronUpIcon {...iconProps} /> : <ChevronDownIcon {...iconProps} />\n }\n />\n </BaseBox>\n </StyledNavLinkContainer>\n </TooltipifyComponent>\n );\n};\n\n/**\n * This is the curved line that appears when you select L3 item\n */\nconst CurvedVerticalLine = styled(BaseBox)((props) => {\n const { colors, border, spacing } = props.theme;\n return {\n borderWidth: makeBorderSize(props.theme.border.width.thin),\n borderColor: `${colors.transparent} ${colors.transparent} ${colors.surface.border.gray.muted} ${colors.surface.border.gray.muted}`,\n borderStyle: 'solid',\n borderRadius: `${makeBorderSize(border.radius.none)} ${makeBorderSize(\n border.radius.none,\n )} ${makeBorderSize(border.radius.none)} ${makeBorderSize(border.radius.medium)}`,\n // We set veritical line infinitely tall (full size of screen) and then hide the overflowing part from top\n height: '100vh',\n position: 'absolute',\n // We want the active line to be positioned in the middle of item's height thus divide by 2\n top: `calc(-100vh + ${makeSize(NAV_ITEM_HEIGHT / 2)})`,\n width: makeSpace(spacing[3]),\n left: makeSpace(-spacing[3]),\n };\n});\n\nconst SideNavLink = ({\n title,\n description,\n href,\n children,\n titleSuffix,\n trailing,\n isActive,\n icon,\n tooltip,\n as,\n target,\n onClick,\n ...rest\n}: SideNavLinkProps): React.ReactElement => {\n const {\n l2PortalContainerRef,\n onLinkActiveChange,\n closeMobileNav,\n isL1Collapsed,\n isSideNavCollapsed,\n setIsL1Collapsed,\n } = useSideNav();\n const { level: _prevLevel } = useNavLink();\n const prevLevel = _prevLevel ?? 0;\n const currentLevel = prevLevel + 1;\n const isL2Trigger = Boolean(children) && currentLevel === 1;\n const isL3Trigger = Boolean(children) && currentLevel === 2;\n\n if (__DEV__) {\n if (Boolean(children) && currentLevel >= 3) {\n throwBladeError({\n message:\n 'SideNav only supports nesting upto L3 but L4 nesting was found. Check the nesting of your SideNavLevel items',\n moduleName: 'SideNavLink',\n });\n }\n\n if (currentLevel === 1 && Boolean(description)) {\n throwBladeError({\n message: 'Description is not supported for L1 items',\n moduleName: 'SideNavLink',\n });\n }\n }\n\n const isFirstRender = useFirstRender();\n\n const { refs, context } = useFloating({\n open: isActive,\n });\n\n useIsomorphicLayoutEffect(() => {\n onLinkActiveChange?.({\n level: currentLevel,\n title,\n isActive: Boolean(isActive),\n isL2Trigger,\n isFirstRender,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isActive]);\n\n const shouldHideL1Item = currentLevel === 1 && !icon && isSideNavCollapsed;\n\n return (\n <NavLinkContext.Provider value={{ level: currentLevel, title }}>\n {isL3Trigger ? (\n <Collapsible\n defaultIsExpanded={isActive}\n _dangerouslyDisableValidations={true}\n _shouldApplyWidthRestrictions={false}\n >\n <L3Trigger\n title={title}\n description={description}\n icon={icon}\n as={as}\n href={href}\n titleSuffix={titleSuffix}\n onClick={onClick}\n />\n <CollapsibleBody width=\"100%\" _hasMargin={false}>\n <Box position=\"relative\">{children}</Box>\n </CollapsibleBody>\n </Collapsible>\n ) : (\n <>\n <StyledNavLinkContainer\n $hasDescription={currentLevel !== 1 && Boolean(description)}\n position=\"relative\"\n >\n <TooltipifyComponent tooltip={tooltip}>\n <BaseBox\n className={`${STYLED_NAV_LINK} ${shouldHideL1Item ? HIDE_WHEN_COLLAPSED : ''}`}\n as={as ?? 'a'}\n to={href}\n href={as ? undefined : href}\n target={target}\n ref={refs.setReference}\n onClick={(e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => {\n // Close the mobile nav when item is clicked and its not trigger for next menu\n if (!isL2Trigger) {\n closeMobileNav?.();\n }\n\n if (isActive) {\n onLinkActiveChange?.({\n level: currentLevel,\n title,\n isActive: Boolean(isActive),\n isL2Trigger,\n isFirstRender: false,\n });\n }\n\n onClick?.(e);\n }}\n onFocus={(e: { target: HTMLDivElement }) => {\n // FloatinFocusManager by default focusses on last clicked element when you move to different tab and come back to the original tab\n // Which can make L1 to expand when tabs / windows are changed\n // Adding focus-visible check ensures this behaviour of closing menus is only applicable when there is visible focus ring on it (while tabbing)\n const hasFocusRing = e.target?.matches(':focus-visible');\n if (isL1Collapsed && !isSideNavCollapsed && currentLevel === 1 && hasFocusRing) {\n setIsL1Collapsed?.(false);\n }\n }}\n aria-current={isActive ? 'page' : undefined}\n data-level={currentLevel}\n data-l2trigger={isL2Trigger}\n {...makeAnalyticsAttribute(rest)}\n >\n <NavLinkIconTitle\n icon={icon}\n title={title}\n description={description}\n isActive={isActive}\n isL1Item={currentLevel === 1}\n titleSuffix={titleSuffix}\n />\n {isL2Trigger ? (\n <BaseBox className={HIDE_WHEN_COLLAPSED} display=\"flex\" alignItems=\"center\">\n <ChevronRightIcon size=\"medium\" color=\"currentColor\" />\n </BaseBox>\n ) : null}\n </BaseBox>\n </TooltipifyComponent>\n {trailing && !isL2Trigger ? (\n <BaseBox\n position=\"absolute\"\n top=\"spacing.0\"\n right=\"spacing.2\"\n height=\"100%\"\n display=\"flex\"\n alignItems=\"center\"\n className={`${HIDE_WHEN_COLLAPSED} ${SHOW_ON_LINK_HOVER}`}\n >\n {trailing}\n </BaseBox>\n ) : null}\n {currentLevel === 3 && isActive ? <CurvedVerticalLine /> : null}\n </StyledNavLinkContainer>\n {children ? (\n <FloatingPortal root={l2PortalContainerRef}>\n {isActive && isL1Collapsed ? (\n <FloatingFocusManager modal={false} context={context} initialFocus={-1} returnFocus>\n <BaseBox ref={refs.setFloating} height=\"100%\">\n {children}\n </BaseBox>\n </FloatingFocusManager>\n ) : null}\n </FloatingPortal>\n ) : null}\n </>\n )}\n </NavLinkContext.Provider>\n );\n};\n\nexport { SideNavLink };\n"],"names":["SHOW_ON_LINK_HOVER","classes","HIDE_WHEN_COLLAPSED","STYLED_NAV_LINK","StyledNavLinkContainer","styled","BaseBox","withConfig","displayName","componentId","props","_defineProperty","width","concat","opacity","color","theme","colors","interactive","text","gray","normal","backgroundColor","background","position","display","flexDirection","alignItems","height","$hasDescription","undefined","makeSize","NAV_ITEM_HEIGHT","textDecoration","overflow","flexWrap","cursor","padding","makeSpace","spacing","margin","subtle","borderRadius","border","radius","small","borderWidth","makeBorderSize","none","transparent","transition","getNavItemTransition","fadedHighlighted","_objectSpread","getFocusRingStyles","NavLinkIconTitle","_ref2","Icon","icon","title","description","titleSuffix","isActive","trailing","isL1Item","_useTruncationTitle","useTruncationTitle","content","containerRef","textRef","_jsxs","Box","textAlign","children","justifyContent","gap","_jsx","size","ref","flex","minWidth","BaseText","truncateAfterLines","fontWeight","fontSize","lineHeight","as","className","Text","marginLeft","weight","L3Trigger","_ref3","href","target","tooltip","onClick","_useCollapsible","useCollapsible","onExpandChange","isExpanded","collapsibleBodyId","toggleCollapse","e","iconProps","TooltipifyComponent","Boolean","to","makeAccessible","expanded","controls","ChevronUpIcon","ChevronDownIcon","CurvedVerticalLine","_props$theme","thin","borderColor","surface","muted","borderStyle","medium","top","left","SideNavLink","_ref4","rest","_objectWithoutProperties","_excluded","_useSideNav","useSideNav","l2PortalContainerRef","onLinkActiveChange","closeMobileNav","isL1Collapsed","isSideNavCollapsed","setIsL1Collapsed","_useNavLink","useNavLink","_prevLevel","level","prevLevel","currentLevel","isL2Trigger","isL3Trigger","throwBladeError","message","moduleName","isFirstRender","useFirstRender","_useFloating","useFloating","open","refs","context","useIsomorphicLayoutEffect","shouldHideL1Item","NavLinkContext","Provider","value","Collapsible","defaultIsExpanded","_dangerouslyDisableValidations","_shouldApplyWidthRestrictions","CollapsibleBody","_hasMargin","_Fragment","setReference","onFocus","_e$target","hasFocusRing","matches","makeAnalyticsAttribute","ChevronRightIcon","right","FloatingPortal","root","FloatingFocusManager","modal","initialFocus","returnFocus","setFloating"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import '../node_modules/es-toolkit/dist/
|
|
1
|
+
import '../node_modules/es-toolkit/dist/object/cloneDeep.js';
|
|
2
2
|
//# sourceMappingURL=cloneDeep.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import '../node_modules/es-toolkit/dist/object/cloneDeep.js';
|
|
1
|
+
import '../node_modules/es-toolkit/dist/compat/object/cloneDeep.js';
|
|
2
2
|
//# sourceMappingURL=cloneDeep3.js.map
|
|
@@ -80,33 +80,44 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
|
|
|
80
80
|
};
|
|
81
81
|
useEffect(function () {
|
|
82
82
|
var valueNotEmpty = typeof value === 'string' && value.trim() !== '' || Array.isArray(value) && value.length > 0;
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
|
|
84
|
+
// Compare actual selected values (not just lengths) to detect controlled value changes
|
|
85
|
+
var currentSelectedValues = selectedIndices.map(function (i) {
|
|
86
|
+
var _options$i;
|
|
87
|
+
return (_options$i = options[i]) === null || _options$i === void 0 ? void 0 : _options$i.value;
|
|
88
|
+
});
|
|
89
|
+
var isSingleValueSynced = typeof value === 'string' && currentSelectedValues.length === 1 && currentSelectedValues[0] === value;
|
|
90
|
+
var isMultiValueSynced = Array.isArray(value) && value.length === currentSelectedValues.length && value.every(function (v) {
|
|
91
|
+
return currentSelectedValues.includes(v);
|
|
92
|
+
});
|
|
93
|
+
var isValueAndSelectedIndicesSynced = isSingleValueSynced || isMultiValueSynced;
|
|
85
94
|
if (isUnControlled) {
|
|
86
95
|
if (listViewSelectedFilters[label]) {
|
|
87
|
-
var
|
|
88
|
-
setSelectedIndices(
|
|
89
|
-
var inputValue =
|
|
96
|
+
var savedIndices = listViewSelectedFilters[label];
|
|
97
|
+
setSelectedIndices(savedIndices);
|
|
98
|
+
var inputValue = savedIndices.map(function (selectionIndex) {
|
|
90
99
|
return options[selectionIndex].value;
|
|
91
100
|
});
|
|
92
101
|
setUncontrolledInputValue(inputValue);
|
|
93
102
|
setFilterChipGroupSelectedFilters(function (prev) {
|
|
94
103
|
return prev.includes(label) ? prev : [].concat(_toConsumableArray(prev), [label]);
|
|
95
104
|
});
|
|
105
|
+
} else {
|
|
106
|
+
setSelectedIndices([]);
|
|
96
107
|
}
|
|
97
108
|
} else if (listViewSelectedFilters[label]) {
|
|
98
|
-
var
|
|
99
|
-
setSelectedIndices(
|
|
100
|
-
//
|
|
101
|
-
} else if (valueNotEmpty && !
|
|
102
|
-
var
|
|
109
|
+
var _savedIndices = listViewSelectedFilters[label];
|
|
110
|
+
setSelectedIndices(_savedIndices);
|
|
111
|
+
// Sync selected indices when controlled value changes or on first render with options loaded
|
|
112
|
+
} else if (valueNotEmpty && !isValueAndSelectedIndicesSynced && options.length > 0) {
|
|
113
|
+
var newSelectedIndices = typeof value === 'string' ? [options.findIndex(function (option) {
|
|
103
114
|
return option.value === value;
|
|
104
115
|
})] : options.map(function (option, index) {
|
|
105
116
|
return value.includes(option.value) ? index : -1;
|
|
106
117
|
}).filter(function (index) {
|
|
107
118
|
return index !== -1;
|
|
108
119
|
});
|
|
109
|
-
setSelectedIndices(
|
|
120
|
+
setSelectedIndices(newSelectedIndices);
|
|
110
121
|
}
|
|
111
122
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
112
123
|
}, [isUnControlled, options]);
|
|
@@ -135,10 +146,6 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
|
|
|
135
146
|
name: name !== null && name !== void 0 ? name : idBase,
|
|
136
147
|
values: []
|
|
137
148
|
});
|
|
138
|
-
if (isUnControlled) {
|
|
139
|
-
setUncontrolledInputValue([]);
|
|
140
|
-
setSelectedIndices([]);
|
|
141
|
-
}
|
|
142
149
|
setFilterChipGroupSelectedFilters(function (prev) {
|
|
143
150
|
return prev.filter(function (filter) {
|
|
144
151
|
return filter !== label;
|
|
@@ -149,6 +156,7 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
|
|
|
149
156
|
updatedFilters = _objectWithoutProperties(prev, [label].map(_toPropertyKey));
|
|
150
157
|
return updatedFilters;
|
|
151
158
|
});
|
|
159
|
+
setUncontrolledInputValue([]);
|
|
152
160
|
setSelectedIndices([]);
|
|
153
161
|
};
|
|
154
162
|
useEffect(function () {
|
|
@@ -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 { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { BaseFilterChip } from '~components/FilterChip/BaseFilterChip';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport type { BaseFilterChipProps } from '~components/FilterChip/types';\nimport type { DataAnalyticsAttribute } from '~utils/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 // since we need to sync state only one time so skipping value checking.\n const isValueAndSelectedOptoinsSynced =\n (typeof value === 'string' && value && selectedIndices.length === 1) ||\n (Array.isArray(value) && value.length === selectedIndices.length);\n if (isUnControlled) {\n if (listViewSelectedFilters[label]) {\n const value = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(value);\n const inputValue = value.map((selectionIndex) => options[selectionIndex].value);\n setUncontrolledInputValue(inputValue);\n setFilterChipGroupSelectedFilters((prev) =>\n prev.includes(label) ? prev : [...prev, label],\n );\n }\n } else if (listViewSelectedFilters[label]) {\n const value = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(value);\n // This would be the case when filterChipSelectInput is controlled and are being opened first time\n } else if (valueNotEmpty && !isValueAndSelectedOptoinsSynced && options.length > 0) {\n const selectedIndices =\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(selectedIndices);\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 if (isUnControlled) {\n setUncontrolledInputValue([]);\n setSelectedIndices([]);\n }\n setFilterChipGroupSelectedFilters((prev) => prev.filter((filter) => filter !== label));\n setListViewSelectedFilters((prev) => {\n const { [label]: _, ...updatedFilters } = prev;\n return updatedFilters;\n });\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\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","isValueAndSelectedOptoinsSynced","inputValue","prev","includes","concat","_toConsumableArray","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 { 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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"}
|
|
@@ -183,7 +183,7 @@ var _SideNav = function _SideNav(_ref5, ref) {
|
|
|
183
183
|
var l1ContainerRef = React__default.useRef(null);
|
|
184
184
|
var timeoutIdsRef = React__default.useRef([]);
|
|
185
185
|
var mouseOverTimeoutRef = React__default.useRef();
|
|
186
|
-
var
|
|
186
|
+
var prevIsSideNavCollapsedRef = React__default.useRef();
|
|
187
187
|
var _React$useState = React__default.useState(false),
|
|
188
188
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
189
189
|
isL1Collapsed = _React$useState2[0],
|
|
@@ -209,10 +209,10 @@ var _SideNav = function _SideNav(_ref5, ref) {
|
|
|
209
209
|
l2DrawerTitle = _React$useState10[0],
|
|
210
210
|
setL2DrawerTitle = _React$useState10[1];
|
|
211
211
|
var isMobile = useIsMobile();
|
|
212
|
-
var
|
|
213
|
-
var effectiveIsL1Collapsed = isMobile ? isMobileL2Open :
|
|
214
|
-
var effectiveIsL1Hovered =
|
|
215
|
-
var sideNavWidth =
|
|
212
|
+
var isSideNavCollapsed = _isExpanded === false;
|
|
213
|
+
var effectiveIsL1Collapsed = isMobile ? isMobileL2Open : isSideNavCollapsed || isL1Collapsed;
|
|
214
|
+
var effectiveIsL1Hovered = isSideNavCollapsed ? false : isL1Hovered;
|
|
215
|
+
var sideNavWidth = isSideNavCollapsed ? makeSize(COLLAPSED_L1_WIDTH) : {
|
|
216
216
|
base: makeSize(SIDE_NAV_EXPANDED_L1_WIDTH_BASE),
|
|
217
217
|
xl: makeSize(SIDE_NAV_EXPANDED_L1_WIDTH_XL)
|
|
218
218
|
};
|
|
@@ -261,7 +261,7 @@ var _SideNav = function _SideNav(_ref5, ref) {
|
|
|
261
261
|
});
|
|
262
262
|
return;
|
|
263
263
|
}
|
|
264
|
-
if (
|
|
264
|
+
if (isSideNavCollapsed) {
|
|
265
265
|
return;
|
|
266
266
|
}
|
|
267
267
|
|
|
@@ -312,11 +312,11 @@ var _SideNav = function _SideNav(_ref5, ref) {
|
|
|
312
312
|
isL1Collapsed: effectiveIsL1Collapsed,
|
|
313
313
|
setIsL1Collapsed: setIsL1Collapsed,
|
|
314
314
|
isL1Hovered: effectiveIsL1Hovered,
|
|
315
|
-
|
|
315
|
+
isSideNavCollapsed: isSideNavCollapsed
|
|
316
316
|
};
|
|
317
317
|
},
|
|
318
318
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
319
|
-
[effectiveIsL1Collapsed, effectiveIsL1Hovered,
|
|
319
|
+
[effectiveIsL1Collapsed, effectiveIsL1Hovered, isSideNavCollapsed, isMobile]);
|
|
320
320
|
React__default.useEffect(function () {
|
|
321
321
|
return function () {
|
|
322
322
|
var _iterator = _createForOfIteratorHelper(timeoutIdsRef.current),
|
|
@@ -335,23 +335,23 @@ var _SideNav = function _SideNav(_ref5, ref) {
|
|
|
335
335
|
};
|
|
336
336
|
}, []);
|
|
337
337
|
React__default.useEffect(function () {
|
|
338
|
-
if (!isMobile &&
|
|
338
|
+
if (!isMobile && isSideNavCollapsed && isL1Hovered) {
|
|
339
339
|
setIsL1Hovered(false);
|
|
340
340
|
}
|
|
341
|
-
}, [isMobile,
|
|
341
|
+
}, [isMobile, isSideNavCollapsed, isL1Hovered]);
|
|
342
342
|
React__default.useEffect(function () {
|
|
343
|
-
var
|
|
344
|
-
|
|
345
|
-
if (isMobile ||
|
|
343
|
+
var prevIsSideNavCollapsed = prevIsSideNavCollapsedRef.current;
|
|
344
|
+
prevIsSideNavCollapsedRef.current = isSideNavCollapsed;
|
|
345
|
+
if (isMobile || prevIsSideNavCollapsed === undefined) {
|
|
346
346
|
return;
|
|
347
347
|
}
|
|
348
|
-
if (
|
|
348
|
+
if (prevIsSideNavCollapsed !== isSideNavCollapsed) {
|
|
349
349
|
startL1Transition();
|
|
350
350
|
onExpandChange === null || onExpandChange === void 0 || onExpandChange({
|
|
351
|
-
isExpanded: !
|
|
351
|
+
isExpanded: !isSideNavCollapsed
|
|
352
352
|
});
|
|
353
353
|
}
|
|
354
|
-
}, [isMobile,
|
|
354
|
+
}, [isMobile, isSideNavCollapsed, onExpandChange, startL1Transition]);
|
|
355
355
|
return /*#__PURE__*/jsx(SideNavContext.Provider, {
|
|
356
356
|
value: contextValue,
|
|
357
357
|
children: isMobile && onDismiss ? /*#__PURE__*/jsxs(Fragment, {
|
|
@@ -391,7 +391,7 @@ var _SideNav = function _SideNav(_ref5, ref) {
|
|
|
391
391
|
}) : /*#__PURE__*/jsxs(StyledSideNavContainer, _objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
392
392
|
$isSideNavExpandable: typeof _isExpanded !== 'undefined',
|
|
393
393
|
ref: ref,
|
|
394
|
-
className:
|
|
394
|
+
className: isSideNavCollapsed ? COLLAPSED : '',
|
|
395
395
|
position: "fixed",
|
|
396
396
|
backgroundColor: backgroundColor,
|
|
397
397
|
height: "100%",
|
|
@@ -413,7 +413,7 @@ var _SideNav = function _SideNav(_ref5, ref) {
|
|
|
413
413
|
return;
|
|
414
414
|
}
|
|
415
415
|
onExpandTransitionEnd === null || onExpandTransitionEnd === void 0 || onExpandTransitionEnd({
|
|
416
|
-
isExpanded: !
|
|
416
|
+
isExpanded: !isSideNavCollapsed
|
|
417
417
|
});
|
|
418
418
|
},
|
|
419
419
|
children: [banner ? /*#__PURE__*/jsx(BannerContainer, {
|
|
@@ -425,7 +425,7 @@ var _SideNav = function _SideNav(_ref5, ref) {
|
|
|
425
425
|
width: "100%",
|
|
426
426
|
children: [/*#__PURE__*/jsx(StyledL2PortalContainer, {
|
|
427
427
|
position: "absolute",
|
|
428
|
-
display:
|
|
428
|
+
display: isSideNavCollapsed ? 'none' : 'block',
|
|
429
429
|
backgroundColor: backgroundColor,
|
|
430
430
|
height: "100%",
|
|
431
431
|
width: "100%",
|
|
@@ -474,7 +474,7 @@ var _SideNav = function _SideNav(_ref5, ref) {
|
|
|
474
474
|
// 6. But in case of unhover/leave, we don't want to trigger mouseOut for all child components individually. We want 1 hover out of L1 menu. Thus we use `onMouseLeave`
|
|
475
475
|
,
|
|
476
476
|
onMouseOver: function onMouseOver() {
|
|
477
|
-
if (!isMobile &&
|
|
477
|
+
if (!isMobile && isSideNavCollapsed) {
|
|
478
478
|
return;
|
|
479
479
|
}
|
|
480
480
|
if (mouseOverTimeoutRef.current) {
|
|
@@ -488,7 +488,7 @@ var _SideNav = function _SideNav(_ref5, ref) {
|
|
|
488
488
|
}
|
|
489
489
|
},
|
|
490
490
|
onMouseLeave: function onMouseLeave() {
|
|
491
|
-
if (!isMobile &&
|
|
491
|
+
if (!isMobile && isSideNavCollapsed) {
|
|
492
492
|
return;
|
|
493
493
|
}
|
|
494
494
|
if (isL1Collapsed && isL1Hovered) {
|