{"version":3,"file":"bundle/searchbox.a19d1f5d.js","mappings":"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","sources":["webpack://apps/./src/Apps/feature-app-search/molecules/SearchItemList.tsx","webpack://apps/./src/Apps/feature-app-search/atoms/useHighlightedTerms.ts","webpack://apps/./src/Apps/feature-app-search/utilities/focusHelpers.ts","webpack://apps/./src/Apps/feature-app-search/molecules/FocusHandler.tsx","webpack://apps/./src/Apps/feature-app-search/atoms/useOutsideClickHandler.ts","webpack://apps/./src/Apps/feature-app-search/molecules/SearchBar.tsx","webpack://apps/./src/Apps/feature-app-search/molecules/ShowMoreButton.tsx","webpack://apps/./src/Apps/feature-app-search/molecules/SearchResults.tsx","webpack://apps/./src/Apps/feature-app-search/atoms/useFilteredGroups.ts","webpack://apps/./src/Apps/feature-app-search/organisms/SearchComponent.tsx","webpack://apps/./src/Apps/Header/SearchBox.tsx","webpack://apps/./src/Apps/organisms/useAppActionAddToCollection.ts","webpack://apps/./src/Apps/feature-app-search/atoms/useDebounce.ts","webpack://apps/./src/shared/hooks/useScreenWidth.ts"],"sourcesContent":["import { IconButton, IContextualMenuItem, mergeStyleSets } from '@fluentui/react';\nimport { isDefaultAppLogo, LetterIcon } from '@iamexperiences/feature-letter-icon';\nimport React, { ReactElement, useCallback, useRef, useState } from 'react';\n\nimport { useHighlightedTerms } from '../atoms/useHighlightedTerms';\n\nexport interface SearchItemListProps {\n  readonly displayName: string;\n  readonly logoUrl: string;\n  readonly redirectUrl?: string;\n  readonly searchTerm?: string;\n  readonly id: string;\n  readonly updateContextMenu: (contextMenuItems: readonly IContextualMenuItem[], contextMenuRef: React.RefObject<HTMLDivElement>, onHidden: () => void) => void;\n  readonly actions?: IContextualMenuItem[];\n  readonly ariaLabelContextMenu: (displayName: string) => string;\n  readonly onItemClicked?: () => void;\n}\n\nexport const classes = mergeStyleSets({\n  appImageHorizontal: {\n    outline: 'none',\n    position: 'relative',\n    width: '32px',\n    height: '32px',\n    borderRadius: '4px',\n    marginRight: '8px'\n  },\n  searchItemList: {\n    position: 'relative',\n    height: '48px',\n    paddingLeft: '8px',\n    paddingRight: '8px',\n    ':hover': {\n      background: '#F2F2F2',\n      borderStyle: 'transparent'\n    }\n  },\n  frame: {\n    display: 'flex',\n    flexDirection: 'row',\n    alignItems: 'center',\n    textDecoration: 'none',\n    justifyContent: 'center',\n    height: '100%',\n    boxSizing: 'border-box',\n    userSelect: 'none',\n    '-webkit-touch-callout': 'none',\n    position: 'relative'\n  },\n  appNameHorizontal: {\n    overflow: 'hidden',\n    textOverflow: 'ellipsis',\n    objectFit: 'contain',\n    color: 'black',\n    fontSize: 12,\n    lineClamp: 1,\n    '-webkit-line-clamp': '1',\n    position: 'relative',\n    top: 0,\n    left: 0,\n    height: 'unset',\n    textAlign: 'left',\n    flexGrow: 1,\n    paddingRight: '24px'\n  },\n  contextMenuButton: {\n    position: 'absolute',\n    top: 0,\n    right: 0,\n    cursor: 'pointer',\n    justifyContent: 'center',\n    alignItems: 'center',\n    padding: '8px 4px',\n    border: 'none',\n    background: 'transparent',\n    fontSize: 24,\n    marginTop: '8px',\n    color: '#797775',\n    ':hover': {\n      color: '#797775',\n      backgroundColor: '#F8F8F8'\n    }\n  }\n});\n\nconst appIconClasses = mergeStyleSets({\n  text: {\n    fontSize: '14px',\n    fontWeight: 600\n  },\n  background: {\n    position: 'relative',\n    marginRight: '8px',\n    width: '32px',\n    height: '32px',\n    borderRadius: 4\n  }\n});\n\n/**\n * React component for rendering a basic search result in a list\n*/\nexport function SearchItemList({ displayName, redirectUrl, logoUrl, searchTerm, id, actions, updateContextMenu, ariaLabelContextMenu, onItemClicked }: SearchItemListProps): ReactElement {\n  const isIE = /MSIE|Trident/.test(window.navigator.userAgent);\n  const contextMenuRef = useRef<HTMLDivElement>(null);\n  const [contextMenuVisible, setContextMenuVisible] = useState(false);\n  const [isAriaHidden, setIsAriaHidden] = useState(true);\n  const hideContextMenu = useCallback(() => setContextMenuVisible(false), [setContextMenuVisible]);\n  const [hasLogoLoadError, setLogoLoadError] = useState(false);\n  const onLogoLoadError = useCallback(() => setLogoLoadError(true), [setLogoLoadError]);\n  const { beforeTerm, foundTerm, afterTerm } = useHighlightedTerms(displayName, searchTerm ?? '');\n\n  const showContextMenu = useCallback(() => {\n    setContextMenuVisible(true);\n    if (updateContextMenu) {\n      updateContextMenu(actions ?? [], contextMenuRef, hideContextMenu);\n    }\n  }, [actions, contextMenuRef, hideContextMenu, updateContextMenu]);\n\n  return (\n    <div\n      className={classes.searchItemList}\n      ref={contextMenuRef}\n      onContextMenu={showContextMenu}\n      data-is-scrollable=\"true\"\n    >\n      {/* eslint-disable-next-line react/jsx-no-target-blank */}\n      <a\n        role={'button'}\n        className={classes.frame}\n        href={redirectUrl}\n        target=\"_blank\"\n        data-is-focusable={'true'}\n        rel={isIE ? 'noreferrer' : 'noopener'}\n        draggable={false}\n        aria-describedby={displayName}\n        onClick={onItemClicked}\n      >\n      {\n        (isDefaultAppLogo(logoUrl) || hasLogoLoadError)\n          ? <LetterIcon id={id} label={displayName} styles={appIconClasses}></LetterIcon>\n          : <img\n          className={classes.appImageHorizontal}\n          alt={displayName}\n          src={logoUrl}\n          onError={onLogoLoadError}\n          aria-hidden\n        />\n      }\n        <div className={classes.appNameHorizontal}>\n          {beforeTerm}\n          <strong>{foundTerm}</strong>\n          {afterTerm}\n        </div>\n      </a>\n      {actions &&\n        <IconButton\n          className={classes.contextMenuButton}\n          onFocus={() => setIsAriaHidden(false)}\n          onBlur={() => setIsAriaHidden(true)}\n          ariaLabel={!isAriaHidden ? ariaLabelContextMenu(displayName) : ''}\n          aria-expanded={contextMenuVisible}\n          iconProps={{\n            iconName: 'MoreVertical'\n          }}\n            onClick={showContextMenu}\n          />\n        }\n    </div>\n  );\n}\n","import { useMemo } from 'react';\n\nexport interface HighlightedTerm {\n  readonly beforeTerm: string;\n  readonly foundTerm: string;\n  readonly afterTerm: string;\n}\n\nexport function useHighlightedTerms(value: string, term: string): HighlightedTerm {\n  return useMemo(() => {\n    const trimmedSearchTerm = term?.trim().toLocaleLowerCase();\n    const searchTermIndex = value.toLocaleLowerCase().indexOf(trimmedSearchTerm);\n    return {\n      beforeTerm: searchTermIndex !== -1 ? value.slice(0, searchTermIndex) : value,\n      foundTerm: searchTermIndex !== -1 ? value.slice(searchTermIndex, searchTermIndex + trimmedSearchTerm.length) : '',\n      afterTerm: searchTermIndex !== -1 ? value.slice(searchTermIndex + trimmedSearchTerm.length) : ''\n    };\n  }, [value, term]);\n}\n","export function isContextMenuItem(element: HTMLElement | null): boolean {\n  // Context menu items are of role 'menuitem' and have an ancestor of role 'menu'.\n  // Navbar menu items are of role 'menuitem' and have an ancestor of role 'menubar'.\n  const expectedRoles = ['menuitem', 'menu', 'menuitemcheckbox'];\n  if (!element) return false;\n  return expectedRoles.includes(element.getAttribute('role')?.toLowerCase() ?? '');\n};\n","import React, { ReactElement, useCallback, useRef } from 'react';\n\nimport { useOutsideClickHandler } from '../atoms/useOutsideClickHandler';\nimport { isContextMenuItem } from '../utilities/focusHelpers';\n\ninterface IFocusHandlerProps {\n  readonly className?: string;\n  readonly loseFocus: () => void;\n  readonly excludedIdRoot?: string;\n  readonly children?: React.ReactNode;\n}\n\nexport function FocusHandler({ loseFocus, className, children, excludedIdRoot }: IFocusHandlerProps): ReactElement {\n  const ref = useRef<HTMLDivElement>(null);\n  useOutsideClickHandler(ref, loseFocus, excludedIdRoot);\n\n  const handleTab = useCallback((event: React.FocusEvent): void => {\n    const currentRef = ref.current;\n    const relatedTarget = event.relatedTarget as HTMLElement;\n    if (relatedTarget &&\n        currentRef && !currentRef.contains(relatedTarget) &&\n        // Exclude context menu items & items with ids that include the excludedIdRoot\n        !isContextMenuItem(relatedTarget) &&\n        !(excludedIdRoot && relatedTarget?.id.includes(excludedIdRoot))\n    ) {\n      loseFocus();\n    }\n  }, [loseFocus, ref, excludedIdRoot]);\n\n  return <div className={className} ref={ref} onBlur={handleTab}>{children}</div>;\n};\n","import { useCallback, useEffect } from 'react';\n\nimport { isContextMenuItem } from '../utilities/focusHelpers';\n\nexport function useOutsideClickHandler(ref: React.MutableRefObject<Node | null>, callback: () => void, excludedIdRoot?: string): void {\n  const handleClickOutside = useCallback((event: MouseEvent) => {\n    const currentRef = ref.current;\n    const eventTarget = event.target as HTMLElement;\n    if (eventTarget &&\n          currentRef && !currentRef.contains(eventTarget) &&\n          // Context menus opened from a child should not be treated as \"outside\"\n          // even though they are located elsewhere in the DOM tree.\n          !isContextMenuItem(eventTarget) &&\n          !(excludedIdRoot && eventTarget?.id.includes(excludedIdRoot))\n    ) {\n      callback();\n    }\n  }, [ref, excludedIdRoot, callback]);\n\n  useEffect(() => {\n    document.addEventListener('click', handleClickOutside);\n    return () => {\n      document.removeEventListener('click', handleClickOutside);\n    };\n  }, [handleClickOutside]);\n};\n","import { ISearchBox, ISearchBoxStyles, SearchBox } from '@fluentui/react';\nimport React, { ReactElement } from 'react';\n\nexport interface SearchBarProps {\n  readonly placeholder: string;\n  readonly onChange: (_event?: React.ChangeEvent<HTMLInputElement>, newValue?: string) => void;\n  readonly handleFocus: () => void;\n  readonly hasFocus: boolean;\n  readonly handleShowResults?: () => void;\n  readonly initialSearchTerm?: string;\n  readonly searchBoxRef?: React.Ref<ISearchBox> | undefined;\n}\n\nexport const searchStyles: ISearchBoxStyles = {\n  root: {\n    borderRadius: '4px',\n    padding: '0px',\n    border: 'none',\n    boxShadow: '0px 1px 2.5px rgba(0, 0, 0, 0.1)'\n  },\n  icon: {\n    color: '#616161',\n    selectors: {\n      '&:hover': {\n        color: '#242424'\n      },\n      '&:focus': {\n        color: '#006FC9'\n      },\n      '&:active': {\n        display: 'none'\n      }\n    }\n  },\n  field: {\n    color: '#242424',\n    selectors: {\n      '&::placeholder': {\n        color: '#616161'\n      },\n      '&:hover::placeholder': {\n        color: '#242424'\n      },\n      '&:focus::placeholder': {\n        color: '#242424'\n      }\n    }\n  },\n  clearButton: {\n    color: 'green',\n    selectors: {\n      '& .ms-Button-flexContainer > i': {\n        color: '#242424'\n      }\n    }\n  }\n};\n\n/**\n * React component for rendering a search box\n */\nexport function SearchBar({ placeholder, onChange, hasFocus, initialSearchTerm, handleFocus, searchBoxRef, handleShowResults }: SearchBarProps): ReactElement {\n  return (\n    <SearchBox\n      role=\"combobox\"\n      aria-expanded={hasFocus}\n      placeholder={placeholder}\n      defaultValue={initialSearchTerm}\n      styles={searchStyles}\n      disableAnimation={true}\n      autoComplete=\"off\"\n      showIcon={true}\n      onChange={onChange}\n      onSearch={handleShowResults}\n      onFocus={handleFocus}\n      componentRef={searchBoxRef}>\n    </SearchBox>\n  );\n}\n","import { IStyle, memoizeFunction, mergeStyleSets } from '@fluentui/react';\nimport React, { ReactElement } from 'react';\n\nexport interface ShowMoreProps {\n  readonly text: string;\n  readonly tokens?: ShowMoreDesignTokens;\n}\n\nexport interface ShowMoreDesignTokens {\n  readonly showMore_item_height?: number;\n  readonly showMore_background_color?: string;\n  readonly showMore_text_color?: string;\n  readonly showMore_hover_color?: string;\n}\n\nexport interface ShowMoreTheme {\n  readonly searchResultShowMore: IStyle;\n  readonly searchResultLink: IStyle;\n}\n\nexport const showMoreStyles = memoizeFunction((\n  itemHeight?: number,\n  textColor?: string,\n  backgroundColor?: string,\n  hoverColor?: string\n) => {\n  return mergeStyleSets({\n    searchResultShowMore: {\n      height: itemHeight ?? 48,\n      background: 'white',\n      ':hover': {\n        background: hoverColor ?? '#F2F2F2',\n        borderStyle: 'transparent'\n      }\n    },\n    searchResultLink: {\n      position: 'relative',\n      display: 'flex',\n      flexDirection: 'row',\n      justifyContent: 'center',\n      alignItems: 'center',\n      width: '100%',\n      height: '100%',\n      padding: 0,\n      border: 'none',\n      background: backgroundColor ?? 'none',\n      color: textColor ?? 'rgb(0, 120, 212)',\n      cursor: 'pointer',\n      userSelect: 'none'\n    }\n  });\n});\n\n/**\n * React component for rendering a basic search result in a list\n*/\nexport function ShowMoreButton({ text, tokens }: ShowMoreProps): ReactElement {\n  const classes = showMoreStyles(\n    tokens?.showMore_item_height,\n    tokens?.showMore_text_color,\n    tokens?.showMore_background_color,\n    tokens?.showMore_text_color\n  );\n  return (\n    <div className={classes.searchResultShowMore}>\n      <button id='results-show-more' className={classes.searchResultLink} type=\"button\">\n       {text}\n      </button>\n    </div>\n  );\n}\n","import { List, mergeStyleSets } from '@fluentui/react';\nimport React, { ReactElement, ReactNode, useCallback, useState } from 'react';\n\nimport { useFilteredGroups } from '../atoms/useFilteredGroups';\nimport { SearchableGroup, SearchableItem } from '../utilities/SearchTypes';\nimport { ShowMoreButton } from './ShowMoreButton';\n\ninterface SearchResultsStrings {\n  readonly showMore: string;\n  readonly showingResults: (count: number, term: string) => string;\n  readonly numberOfResultsText: (number: number) => string;\n}\n\nexport interface SearchResultProps<T extends SearchableItem> {\n  readonly searchValues: Array<SearchableGroup<T>>;\n  readonly searchTerm: string | undefined;\n  readonly displayLimit?: number;\n  readonly showMoreRef?: React.RefObject<HTMLDivElement>;\n  readonly onEmptySearch?: () => ReactNode;\n  readonly strings: SearchResultsStrings;\n}\n\nexport const classes = mergeStyleSets({\n  searchResultList: {\n    backgroundColor: 'white',\n    overflowY: 'auto',\n    borderBottomLeftRadius: '6px',\n    borderBottomrightRadius: '6px'\n  },\n  searchGroupHeader: {\n    backgroundColor: 'white',\n    fontWeight: '700'\n  },\n  searchResults: {\n    position: 'absolute',\n    width: '100%',\n    top: '33px',\n    boxShadow: '0px 3.6px 8.2px rgba(0, 0, 0, 0.15)',\n    borderBottomLeftRadius: '6px',\n    borderBottomRightRadius: '6px',\n    maxHeight: '552px',\n    overflowY: 'auto'\n  },\n  searchResultTextOnly: {\n    marginLeft: 8\n  },\n  searchResultUnselectable: {\n    backgroundColor: 'white',\n    height: '48px',\n    display: 'flex',\n    justifyContent: 'flex-start',\n    alignItems: 'center'\n  },\n  hiddenResults: {\n    border: '0px',\n    height: '1px',\n    margin: '-1px',\n    overflow: 'hidden',\n    padding: '0px',\n    position: 'absolute',\n    whiteSpace: 'nowrap',\n    width: '1px',\n  }\n});\n\n/**\n * React component for rendering the results of a search\n */\nexport function SearchResults<T extends SearchableItem>({ searchValues, searchTerm, displayLimit, onEmptySearch, showMoreRef, strings }: SearchResultProps<T>): ReactElement {\n  const filteredGroups = useFilteredGroups<T>(searchValues, searchTerm, displayLimit);\n  const [numItemsDisplayed, setNumItemsDisplayed] = useState(displayLimit ?? Infinity);\n\n  const onRenderCell = useCallback(\n    (group: SearchableGroup<T>, item?: T, index?: number) => {\n      if (group.onRenderItem) {\n        return group.onRenderItem(item, index, searchTerm);\n      }\n      return <div></div>;\n    },\n    [searchTerm]\n  );\n\n  const showMoreItems = useCallback(() => {\n    if (displayLimit) {\n      setNumItemsDisplayed(numItemsDisplayed + displayLimit);\n    }\n  }, [numItemsDisplayed, setNumItemsDisplayed, displayLimit]);\n\n  const createOnRenderCellHandler = useCallback((group: SearchableGroup<T>) => {\n    return function(item?: T, index?: number) {\n      return onRenderCell(group, item, index);\n    };\n  }, [onRenderCell]);\n\n  return (\n    <div aria-live=\"polite\" aria-atomic=\"true\" className={classes.searchResults}>\n      {\n        filteredGroups.map((group, index) => {\n          return (\n            <div key={index}>\n              {searchTerm &&\n                <div className={classes.searchResultUnselectable}>\n                  <span className={classes.searchResultTextOnly}>\n                    {strings.showingResults(group.items.length, searchTerm)}\n                  </span>\n                </div>\n              }\n              { group.items.length === 0 &&\n                <div>\n                  {onEmptySearch?.()}\n                </div>\n              }\n              { group.items.length > 0 &&\n                <div className={classes.hiddenResults} aria-live=\"polite\">\n                  {strings.numberOfResultsText(group.items.length)}\n                </div>\n              }\n              {group.items.length > 0 &&\n                <List\n                  className={classes.searchResultList}\n                  items={group.items.slice(0, numItemsDisplayed) }\n                  onRenderCell={createOnRenderCellHandler(group)}>\n                </List>\n              }\n              {numItemsDisplayed < group.items.length && group.items.length > 0 &&\n                <div\n                  ref={showMoreRef}\n                  onClick={showMoreItems}\n                  onKeyUp={event => event.key === 'Enter' ? showMoreItems() : null}\n                  role='button'\n                  tabIndex={0}\n                >\n                  <ShowMoreButton text={strings.showMore}></ShowMoreButton>\n                </div>\n              }\n            </div>\n          );\n        })\n      }\n      </div>\n  );\n}\n","import { useMemo } from 'react';\n\nimport { SearchableGroup, SearchableItem } from '../utilities/SearchTypes';\n\nexport function useFilteredGroups<T extends SearchableItem>(searchGroups: ReadonlyArray<SearchableGroup<T>>, searchTerm?: string, limit?: number): Array<SearchableGroup<T>> {\n  return useMemo(() => {\n    const trimmedSearchTerm = searchTerm?.trim().toLocaleLowerCase();\n\n    if (trimmedSearchTerm) {\n      let result = searchGroups.map((group) => {\n        const filteredItems = group.items.filter((item) =>\n          item.displayName?.toLocaleLowerCase().includes(trimmedSearchTerm)\n        );\n        return {\n          ...group,\n          items: filteredItems\n        };\n      });\n\n      if (limit != null && limit > 0 && result.length > limit) {\n        result = result.slice(0, limit);\n      }\n\n      return result;\n    } else {\n      return searchGroups as Array<SearchableGroup<T>>;\n    }\n  }, [searchGroups, searchTerm, limit]);\n}\n","import { FocusZone, Icon, ISearchBox, mergeStyleSets } from '@fluentui/react';\nimport { HeaderButton } from '@iamexperiences/suite-header';\nimport React, { ReactElement, ReactNode, useCallback, useRef, useState } from 'react';\n\nimport { useScreenWidth } from '../../../shared/hooks/useScreenWidth';\nimport { useDebounce } from '../atoms/useDebounce';\nimport { FocusHandler } from '../molecules/FocusHandler';\nimport { SearchBar } from '../molecules/SearchBar';\nimport { SearchResults } from '../molecules/SearchResults';\nimport { SearchableGroup, SearchableItem } from '../utilities/SearchTypes';\n\nexport interface SearchComponentStrings {\n  readonly searchBoxPlaceholder: string;\n  readonly showMore: string;\n\n  readonly showingResults: (count: number, term: string) => string;\n  readonly numberOfResultsText: (number: number) => string;\n}\n\nexport interface SearchComponentProps<T extends SearchableItem> {\n  readonly searchValues: Array<SearchableGroup<T>>;\n  readonly strings: SearchComponentStrings;\n  readonly displayLimit?: number;\n  readonly startingSearchTerm?: string;\n  readonly handleShowResults?: () => void;\n  readonly hideResults?: boolean;\n  readonly onEmptySearch?: () => ReactNode;\n  readonly searchBoxRef?: React.Ref<ISearchBox> | undefined;\n}\nexport const ScreenWidthMinXLarge = 1024;\nexport const ScreenWidthMinXXLarge = 1366;\n\nexport const classes = mergeStyleSets({\n  searchArea: {\n    position: 'absolute',\n    left: '50%',\n    top: '50%',\n    transform: 'translate(-50%, -50%)',\n    width: '100%',\n    maxWidth: '468px',\n    [`@media (min-width: ${ScreenWidthMinXLarge}px) and (max-width: ${ScreenWidthMinXXLarge}px)`]: {\n      maxWidth: '304px'\n    },\n    [`@media (max-width: ${ScreenWidthMinXLarge}px)`]: {\n      width: 'unset',\n      position: 'absolute',\n      left: '4px',\n      right: '4px',\n      top: '50%',\n      transform: 'translateY(-50%)',\n      zIndex: 1\n    }\n  },\n  mobileSearchHeaderButton: {\n    display: 'none',\n    [`@media (max-width: ${ScreenWidthMinXLarge}px)`]: {\n      display: 'flex',\n      justifyContent: 'center'\n    }\n  },\n  mobileSearchHeaderButtonHidden: {\n    display: 'none'\n  },\n  mobile: {\n    display: 'flex',\n    alignItems: 'center',\n    justifyContent: 'center',\n    width: '100%'\n  }\n});\n\n/**\n * React component for rendering a search box and search result component\n */\nexport function SearchComponent<T extends SearchableItem>(\n  {\n    searchValues,\n    strings,\n    displayLimit,\n    startingSearchTerm,\n    onEmptySearch,\n    searchBoxRef,\n    hideResults,\n    handleShowResults\n  }: SearchComponentProps<T>): ReactElement {\n  const [searchTerm, setSearchTerm] = useState<string | undefined>(startingSearchTerm);\n  const showMoreRef = useRef<HTMLDivElement>(null);\n  const windowWidth = useScreenWidth();\n  const [expanded, setExpanded] = useState(!!startingSearchTerm);\n\n  const handleExpand = useCallback(() => {\n    setExpanded(true);\n  }, []);\n\n  const handleBlur = useCallback(() => {\n    setExpanded(false);\n  }, []);\n\n  const handleChange = useCallback((_event?: React.ChangeEvent<HTMLInputElement>, newValue?: string) => {\n    if (hideResults) {\n      handleShowResults?.();\n    }\n    setSearchTerm(newValue);\n  }, [handleShowResults, hideResults]);\n\n  const debouncedSearchTerm = useDebounce(handleChange, 300);\n\n  return (\n    <div>\n      <div className={classes.mobile}>\n        <HeaderButton\n          className={\n            expanded\n              ? classes.mobileSearchHeaderButtonHidden\n              : classes.mobileSearchHeaderButton\n          }\n          onClick={handleExpand}\n        >\n          <Icon iconName=\"Search\" />\n        </HeaderButton>\n      </div>\n      {(expanded || windowWidth > ScreenWidthMinXLarge) &&\n        <FocusZone>\n          <FocusHandler className={classes.searchArea} loseFocus={handleBlur} excludedIdRoot='results'>\n            <SearchBar\n              initialSearchTerm={startingSearchTerm}\n              placeholder={strings.searchBoxPlaceholder}\n              hasFocus={!!searchTerm && expanded && !hideResults}\n              onChange={debouncedSearchTerm}\n              handleFocus={handleExpand}\n              searchBoxRef={searchBoxRef}\n              handleShowResults={handleShowResults}\n            />\n            {searchTerm && expanded && !hideResults &&\n              <SearchResults\n                searchValues={searchValues}\n                searchTerm={searchTerm}\n                showMoreRef={showMoreRef}\n                displayLimit={displayLimit}\n                onEmptySearch={onEmptySearch}\n                strings={strings}\n              />\n            }\n          </FocusHandler>\n        </FocusZone>\n    }\n    </div>\n  );\n}\n","import {\n  ContextualMenu,\n  DirectionalHint,\n  FontIcon,\n  IContextualMenuItem,\n  IPopupRestoreFocusParams,\n  ISearchBox,\n  mergeStyleSets\n} from '@fluentui/react';\nimport { useTelemetry } from '@iamexperiences/ecos-telemetry';\nimport React, { lazy, ReactElement, Suspense, useCallback, useMemo, useRef, useState } from 'react';\n\nimport { AppsActions } from '../../shared/Telemetry/AppsActions';\nimport { useCollectionModals } from '../atoms/CollectionModalsProvider';\nimport { useLocalization } from '../atoms/useLocalization';\nimport { useUrlParams } from '../atoms/useUrlParams';\nimport { Tile, useUserTileLibrary } from '../client-app-collections';\nimport { SearchComponent, SearchItemList } from '../feature-app-search';\nimport { useBookmarkActionDelete } from '../organisms/Bookmarks/useBookmarkActionDelete';\nimport { useBookmarkActionUpdate } from '../organisms/Bookmarks/useBookmarkActionUpdate';\nimport { useAppActionAddToCollection } from '../organisms/useAppActionAddToCollection';\nimport { useAppActionCopyLink } from '../organisms/useAppActionCopyLink';\nimport { useAppActionManage } from '../organisms/useAppActionManage';\nexport const DeleteBookmark = lazy(async () =>\n  await import(/* webpackChunkName: \"bookmarks\" */ '../organisms/Bookmarks/DeleteBookmark'));\nexport const UpdateBookmark = lazy(async () =>\n  await import(/* webpackChunkName: \"bookmarks\" */ '../organisms/Bookmarks/UpdateBookmark'));\nexport const CreateBookmark = lazy(async () =>\n  await import(/* webpackChunkName: \"bookmarks\" */ '../organisms/Bookmarks/CreateBookmark'));\n\nexport const classes = mergeStyleSets({\n  searchResultButtonIcon: {\n    margin: 8,\n    fontSize: 14,\n    color: 'rgb(0, 120, 212)'\n  },\n  searchItemList: {\n    position: 'relative',\n    height: '48px',\n    paddingLeft: '8px',\n    paddingRight: '8px',\n    backgroundColor: 'white',\n    ':hover': {\n      background: '#F2F2F2',\n      borderStyle: 'transparent'\n    }\n  },\n  frame: {\n    display: 'flex',\n    flexDirection: 'row',\n    alignItems: 'center',\n    textDecoration: 'none',\n    justifyContent: 'center',\n    height: '100%',\n    boxSizing: 'border-box',\n    userSelect: 'none',\n    '-webkit-touch-callout': 'none',\n    position: 'relative'\n  },\n  searchResultButton: {\n    position: 'relative',\n    display: 'flex',\n    flexDirection: 'row',\n    alignItems: 'center',\n    width: '100%',\n    height: '100%',\n    padding: 0,\n    border: 'none',\n    background: 'none',\n    cursor: 'pointer',\n    userSelect: 'none'\n  }\n});\n\nexport interface ContextMenuState {\n  readonly visible: boolean;\n  readonly contextMenuRef: React.RefObject<HTMLDivElement>;\n  readonly items: readonly IContextualMenuItem[];\n  readonly onHidden: () => void;\n}\n\nexport function SearchBox(): ReactElement {\n  const [t] = useLocalization();\n  const telemetry = useTelemetry();\n  const { tiles } = useUserTileLibrary();\n  const urlParams = useUrlParams();\n  const initialSearch = urlParams.search;\n  const copyAppLink = useAppActionCopyLink();\n  const addAppToCollection = useAppActionAddToCollection();\n  const [updateBookmark, updateBookmarkProps] = useBookmarkActionUpdate();\n  const [deleteBookmark, deleteBookmarkProps] = useBookmarkActionDelete();\n  const searchBoxRef = useRef<ISearchBox | null>(null);\n  const appActionManage = useAppActionManage();\n  const [contextMenuState, setContextMenuState] = useState<ContextMenuState>();\n  const [hideResults, setHideResults] = useState(false);\n  const { pushModal } = useCollectionModals();\n\n  const handleShowResults = useCallback(() => {\n    setHideResults(false);\n  }, []);\n\n  const hideContextMenu = useCallback(() => {\n    contextMenuState?.onHidden();\n    setContextMenuState(undefined);\n  }, [contextMenuState, setContextMenuState]);\n  const updateContextMenu = useCallback(\n    (contextMenuItems: readonly IContextualMenuItem[], contextMenuRef: any, onHidden: () => void) => {\n      setContextMenuState({ visible: true, contextMenuRef, items: contextMenuItems, onHidden });\n    }, [setContextMenuState]);\n\n  const onRestoreFocus = useCallback((_params: IPopupRestoreFocusParams) => {\n    setHideResults(true);\n  }, []);\n\n  const onAppLaunch = useCallback(() => {\n    searchBoxRef.current?.focus();\n    setHideResults(true);\n    telemetry.reportCustomEvent(AppsActions.selectApp);\n  }, [telemetry]);\n\n  const resultsText = useCallback((resultsCount: number, searchTerm: string) => {\n    return t(resultsCount === 0 ? 'noResultsForSearchTerm' : 'resultsForSearchTerm', { searchTerm });\n  }, [t]);\n\n  const ariaLabelContextMenu = useCallback((displayName: string) => {\n    return t('openAppsContextMenu', { appName: displayName });\n  }, [t]);\n\n  const numberOfResultsText = useCallback((number: number) => {\n    return t('numberOfResults', { number: number });\n  }, [t]);\n\n  const allActions = useMemo(() => {\n    return [\n      copyAppLink,\n      updateBookmark,\n      deleteBookmark,\n      appActionManage\n    ];\n  }, [copyAppLink, updateBookmark, deleteBookmark, appActionManage]);\n\n  const renderSearchItem = useCallback((item?: Tile | undefined, _index?: number, searchTerm?: string) => {\n    if (!item) {\n      return <div></div>;\n    }\n    const addAppsAction: IContextualMenuItem = {\n      key: 'addApps',\n      name: t('addApps'),\n      iconProps: { iconName: 'Add' },\n      ariaLabel: addAppToCollection.ariaLabel,\n      onClick: () => {\n        addAppToCollection.act([item, undefined]);\n      },\n      subMenuProps: { items: addAppToCollection.subMenuProps([item, undefined]) }\n    };\n\n    let actions = allActions\n      .filter(x => x.enabled === true || x.enabled([item, undefined]))\n      .map(x => {\n        const contextMenuItem: IContextualMenuItem = {\n          key: x.key,\n          name: x.name,\n          onClick: () => x.act([item, undefined]),\n          iconProps: x.icon ? { iconName: x.icon } : undefined\n        };\n\n        return contextMenuItem;\n      });\n\n    actions = actions.concat(addAppsAction);\n\n    return (\n      <SearchItemList\n        displayName={item.displayName}\n        logoUrl={item.logoUrl}\n        searchTerm={searchTerm}\n        redirectUrl={item.persistentLaunchUrl}\n        id={item.id}\n        actions={actions}\n        updateContextMenu={updateContextMenu}\n        ariaLabelContextMenu={ariaLabelContextMenu}\n        onItemClicked={onAppLaunch}\n      />\n    );\n  }, [addAppToCollection, allActions, ariaLabelContextMenu, onAppLaunch, t, updateContextMenu]);\n\n  const onCreateBookmark = useCallback(() => {\n    pushModal('createBookmark', {});\n  }, [pushModal]);\n  const onEmptySearch = useCallback(() => {\n    return (\n      <div className={classes.searchItemList}>\n        <div className={classes.frame}>\n          <button className={classes.searchResultButton} type=\"button\" onClick={onCreateBookmark}>\n            <FontIcon className={classes.searchResultButtonIcon} iconName=\"Add\" />\n              {t('addSite')}\n          </button>\n        </div>\n      </div>\n    );\n  }, [onCreateBookmark, t]);\n\n  return (\n    <Suspense fallback={<div></div>}>\n      <SearchComponent\n        searchValues={\n          [\n            { items: tiles, displayName: 'Apps', onRenderItem: renderSearchItem }\n          ]\n        }\n        strings={{\n          searchBoxPlaceholder: t('searchApps'),\n          showMore: t('viewMore'),\n          showingResults: resultsText,\n          numberOfResultsText: numberOfResultsText\n        }}\n        displayLimit={9}\n        startingSearchTerm={initialSearch}\n        onEmptySearch={onEmptySearch}\n        handleShowResults={handleShowResults}\n        hideResults={hideResults}\n        searchBoxRef={searchBoxRef}\n      />\n      <ContextualMenu\n        target={contextMenuState?.contextMenuRef}\n        hidden={!contextMenuState?.visible}\n        onDismiss={hideContextMenu}\n        items={contextMenuState?.items ? [...contextMenuState.items] : []}\n        isBeakVisible={false}\n        gapSpace={0}\n        focusZoneProps={{\n          onBlur: (e) => e.stopPropagation()\n        }}\n        directionalHint={DirectionalHint.bottomRightEdge}\n        onRestoreFocus={onRestoreFocus}\n      />\n      <UpdateBookmark {...updateBookmarkProps} />\n      <DeleteBookmark {...deleteBookmarkProps} />\n  </Suspense>\n  );\n};\n","import { ContextualMenuItemType } from '@fluentui/react';\nimport { useLocalization } from '../atoms/useLocalization';\nimport { useCallback, useMemo } from 'react';\n\nimport { Constants } from '../../shared/Constants/Constants';\nimport { Collection, Tile, useUpdateCollectionView, useUserCollectionOrder } from '../client-app-collections';\nimport { useRoute } from './useRoute';\n\nexport interface subMenuProps {\n  readonly key: string;\n  readonly text?: string;\n  readonly title?: string;\n  readonly canCheck?: boolean;\n  readonly onClick?: () => void;\n}\n\nexport interface Action {\n  readonly key: string;\n  readonly name: string;\n  readonly icon: string;\n  readonly enabled: true;\n  readonly ariaLabel: string;\n  readonly act: ([app]: readonly [Tile, unknown]) => void;\n  readonly subMenuProps: ([app]: readonly [Tile, unknown]) => subMenuProps[];\n}\n\nexport function useAppActionAddToCollection(): Action {\n  const [t] = useLocalization();\n  const { collections } = useUserCollectionOrder();\n  const updateCollection = useUpdateCollectionView();\n  const { openCreateCollection } = useRoute();\n\n  const onCreateCollection = useCallback(() => {\n    openCreateCollection();\n  }, [openCreateCollection]);\n\n  const availableCollections = collections.filter(x =>\n    x.viewPermissions.canAddItems && x.loadingState === 'loaded'\n  );\n\n  const isAppInCollection = (collection?: Collection, app?: Tile): boolean | undefined => {\n    if (!app || collection?.loadingState !== 'loaded') return undefined;\n    return collection.items.some((x) => x.id === app.id);\n  };\n\n  const canRemoveItems = (collection: Collection): boolean | undefined => {\n    if (collection?.loadingState !== 'loaded') return undefined;\n    return collection.viewPermissions.canRemoveItems;\n  };\n\n  const newItem = useMemo(() => {\n    return {\n      key: 'new',\n      text: t('New'),\n      title: t('New'),\n      canCheck: false,\n      isChecked: false,\n      onClick: () => onCreateCollection()\n    };\n  }, [onCreateCollection, t]);\n\n  return useMemo(() => ({\n    key: 'addAppToCollection',\n    name: t('addAppToCollection'),\n    ariaLabel: t('addAppToCollection'),\n    icon: 'Add',\n    enabled: true,\n    act: ([app]) => {\n      console.log('addAppToCollection', { app });\n    },\n    subMenuProps: ([app]) => [\n      newItem,\n      { key: 'divider', itemType: ContextualMenuItemType.Divider },\n      ...availableCollections.map((collection) => ({\n        key: collection.id,\n        text: collection.displayName.substring(0, Constants.MAX_CONTEXT_MENU_ITEM_LENGTH),\n        title: collection.displayName,\n        ariaLabel: collection.displayName,\n        canCheck: true,\n        isChecked: isAppInCollection(collection, app),\n        onClick: () => {\n          if (isAppInCollection(collection, app) && canRemoveItems(collection) && collection?.loadingState === 'loaded') {\n            updateCollection({\n              id: collection.id,\n              explicitItemIds: collection.view?.explicitItemIds,\n              hiddenItemIds: collection.view?.hiddenItemIds ? [...collection.view.hiddenItemIds, app.id] : [app.id],\n              displayName: collection.displayName\n            });\n          } else if (collection?.loadingState === 'loaded') {\n            updateCollection({\n              id: collection.id,\n              explicitItemIds: collection.view?.explicitItemIds\n                ? collection.view?.explicitItemIds.filter((id) => id !== app.id).concat(app.id)\n                : [app.id],\n              hiddenItemIds: collection.view?.hiddenItemIds\n                ? collection.view?.hiddenItemIds.filter((x) => x !== app.id)\n                : [],\n              displayName: collection.displayName\n            });\n          }\n        }\n      }))\n    ]\n  }), [availableCollections, newItem, t, updateCollection]);\n};\n","import { useCallback, useEffect, useState } from 'react';\n\nexport function useDebounce<T extends any[]>(f: (...args: T) => void, timeout: number): (...args: T) => void {\n  const [args, setArgs] = useState<T>();\n\n  useEffect(() => {\n    if (args) {\n      const handle = setTimeout(() => {\n        setArgs(undefined);\n        f(...args);\n      }, timeout);\n\n      return () => {\n        clearTimeout(handle);\n      };\n    } else {\n      return undefined;\n    }\n  }, [f, timeout, args]);\n\n  return useCallback((...latestArgs: T) => {\n    setArgs(latestArgs);\n  }, []);\n}\n","import { useEffect, useState } from 'react';\n\nexport function useScreenWidth(): number {\n  const [windowWidth, setWindowWidth] = useState(window.innerWidth);\n\n  useEffect(() => {\n    const handleResize = () => {\n      setWindowWidth(window.innerWidth);\n    };\n    window.addEventListener('resize', handleResize);\n    return () => {\n      window.removeEventListener('resize', handleResize);\n    };\n  }, []);\n\n  return windowWidth;\n}\n"],"names":["classes","mergeStyleSets","appImageHorizontal","outline","position","width","height","borderRadius","marginRight","searchItemList","paddingLeft","paddingRight","background","borderStyle","frame","display","flexDirection","alignItems","textDecoration","justifyContent","boxSizing","userSelect","appNameHorizontal","overflow","textOverflow","objectFit","color","fontSize","lineClamp","top","left","textAlign","flexGrow","contextMenuButton","right","cursor","padding","border","marginTop","backgroundColor","appIconClasses","text","fontWeight","SearchItemList","_ref","value","term","displayName","redirectUrl","logoUrl","searchTerm","id","actions","updateContextMenu","ariaLabelContextMenu","onItemClicked","isIE","test","window","navigator","userAgent","contextMenuRef","useRef","_useState2","_slicedToArray","useState","contextMenuVisible","setContextMenuVisible","_useState4","isAriaHidden","setIsAriaHidden","hideContextMenu","useCallback","_useState6","hasLogoLoadError","setLogoLoadError","onLogoLoadError","_useHighlightedTerms","useMemo","trimmedSearchTerm","trim","toLocaleLowerCase","searchTermIndex","indexOf","beforeTerm","slice","foundTerm","length","afterTerm","showContextMenu","React","className","ref","onContextMenu","role","href","target","rel","draggable","onClick","isDefaultAppLogo","LetterIcon","label","styles","alt","src","onError","IconButton","onFocus","onBlur","ariaLabel","iconProps","iconName","isContextMenuItem","element","_element$getAttribute","_element$getAttribute2","includes","getAttribute","toLowerCase","FocusHandler","loseFocus","children","excludedIdRoot","callback","handleClickOutside","event","currentRef","current","eventTarget","contains","useEffect","document","addEventListener","removeEventListener","useOutsideClickHandler","handleTab","relatedTarget","searchStyles","root","boxShadow","icon","selectors","field","clearButton","SearchBar","placeholder","onChange","hasFocus","initialSearchTerm","handleFocus","searchBoxRef","handleShowResults","SearchBox","defaultValue","disableAnimation","autoComplete","showIcon","onSearch","componentRef","showMoreStyles","memoizeFunction","itemHeight","textColor","hoverColor","searchResultShowMore","searchResultLink","ShowMoreButton","tokens","showMore_item_height","showMore_text_color","showMore_background_color","type","searchResultList","overflowY","borderBottomLeftRadius","borderBottomrightRadius","searchGroupHeader","searchResults","borderBottomRightRadius","maxHeight","searchResultTextOnly","marginLeft","searchResultUnselectable","hiddenResults","margin","whiteSpace","SearchResults","searchValues","displayLimit","onEmptySearch","showMoreRef","strings","filteredGroups","searchGroups","limit","result","map","group","filteredItems","items","filter","item","_item$displayName","_objectSpread","useFilteredGroups","Infinity","numItemsDisplayed","setNumItemsDisplayed","onRenderCell","index","onRenderItem","showMoreItems","createOnRenderCellHandler","key","showingResults","numberOfResultsText","List","onKeyUp","tabIndex","showMore","ScreenWidthMinXLarge","searchArea","_searchArea","transform","maxWidth","_defineProperty","concat","zIndex","mobileSearchHeaderButton","mobileSearchHeaderButtonHidden","mobile","SearchComponent","startingSearchTerm","hideResults","setSearchTerm","windowWidth","useScreenWidth","expanded","setExpanded","handleExpand","handleBlur","handleChange","_event","newValue","debouncedSearchTerm","useDebounce","HeaderButton","Icon","FocusZone","searchBoxPlaceholder","_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","undefined","done","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","i","doneResult","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","DeleteBookmark","lazy","_callee","_context","UpdateBookmark","_callee2","_context2","CreateBookmark","_callee3","_context3","searchResultButtonIcon","searchResultButton","t","useLocalization","telemetry","useTelemetry","tiles","useUserTileLibrary","initialSearch","useUrlParams","search","copyAppLink","useAppActionCopyLink","addAppToCollection","collections","useUserCollectionOrder","updateCollection","useUpdateCollectionView","openCreateCollection","useRoute","onCreateCollection","availableCollections","x","viewPermissions","canAddItems","loadingState","isAppInCollection","collection","app","some","newItem","title","canCheck","isChecked","enabled","act","console","log","subMenuProps","_ref3","itemType","ContextualMenuItemType","Divider","_toConsumableArray","substring","Constants","MAX_CONTEXT_MENU_ITEM_LENGTH","_collection$view","_collection$view2","canRemoveItems","explicitItemIds","view","hiddenItemIds","_collection$view3","_collection$view4","_collection$view5","_collection$view6","useAppActionAddToCollection","_useBookmarkActionUpd2","useBookmarkActionUpdate","updateBookmark","updateBookmarkProps","_useBookmarkActionDel2","useBookmarkActionDelete","deleteBookmark","deleteBookmarkProps","appActionManage","useAppActionManage","contextMenuState","setContextMenuState","setHideResults","pushModal","useCollectionModals","onHidden","contextMenuItems","visible","onRestoreFocus","_params","onAppLaunch","_searchBoxRef$current","focus","reportCustomEvent","AppsActions","selectApp","resultsText","resultsCount","appName","number","allActions","renderSearchItem","_index","addAppsAction","persistentLaunchUrl","onCreateBookmark","FontIcon","Suspense","fallback","ContextualMenu","hidden","onDismiss","isBeakVisible","gapSpace","focusZoneProps","e","stopPropagation","directionalHint","DirectionalHint","bottomRightEdge","f","timeout","setArgs","setTimeout","clearTimeout","_len","latestArgs","Array","_key","innerWidth","setWindowWidth","handleResize"],"sourceRoot":""}