{"version":3,"file":"ChipDropdownInput.cjs","names":["React","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_ChipInputField","_types","_Dropdown","_common","_styles","_jsxRuntime","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","Wrapper","styled","div","ChipInputContainer","Z_INDEXES","dropdown","ChipDropdownInput","exports","forwardRef","_ref","ref","list","onInputChange","disableSorting","messageOnNoResults","values","inputId","variants","placeholder","validationMessage","onValueChange","suggestion","loading","maxSelectedItems","multiLine","size","Size","Medium","icon","disableFiltering","disabled","altPlaceholder","required","rest","_objectWithoutProperties2","givenList","setGivenList","useState","chips","setChips","activeDescendant","setActiveDescendant","value","setValue","restartFilter","setRestartFilter","filteredList","setFilteredList","dropdownIsOpen","setDropdownIsOpen","dropdownList","setDropdownList","dropdownValue","setDropdownValue","focused","setFocused","containerRef","useClickOutsideRef","useFocusOutsideRef","inputRef","useRef","undefined","useImperativeHandle","current","useEffect","map","find","b","label","index","variant","States","Default","newList","options","option","toUpperCase","indexOf","secondaryLabel","sort","handleClickOutside","contains","target","document","addEventListener","removeEventListener","x","displayLabel","noteLabel","addChip","newChip","handleInputValueChange","handleValueUpdate","item","focus","handleInputKeyDown","event","key","stopPropagation","handleOnChipRemoved","newChips","splice","jsxs","children","jsx","ChipInputField","items","inputValue","role","onRemoveItem","chip","onInputValueChange","onInputKeyDown","onActivationChange","DropdownContent","customizationProps","action","pinTopItem","itemsType","scrollable","actionLabel","multiSelect","onValueUpdate","ariaRolesType","onActiveDescendantChanged","selectedValues","setSelectedValues","isOpen","setIsOpen","isButton","id","propTypes","_propTypes","oneOfType","arrayOf","shape","string","isRequired","func","bool","number"],"sources":["../../src/ChipsInput/ChipDropdownInput.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import third-party libraries.\r\n */\r\nimport styled from 'styled-components';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {ChipInputContainer, ChipInputField} from './ChipInputField';\r\nimport {Size, States} from '../types';\r\nimport {DropdownContent, DropdownItem} from '../Dropdown';\r\nimport {SystemIcons} from '../icons';\r\nimport {ChipInputProps, ChipItem} from './ChipInputTypes';\r\nimport {useClickOutsideRef, useFocusOutsideRef} from '../common';\r\nimport {Z_INDEXES} from '../styles';\r\n\r\nconst Wrapper = styled.div`\r\n  position: relative;\r\n  display: inline-block;\r\n  width: 100%;\r\n\r\n  ${ChipInputContainer} {\r\n    position: relative;\r\n\r\n    &:focus, &.focus-visible-within {\r\n      z-index: ${Z_INDEXES.dropdown + 1} !important;\r\n    }\r\n  }\r\n`;\r\n\r\n\r\ninterface ListItem extends ChipItem {\r\n  secondaryLabel?: string;\r\n  value: string;\r\n}\r\n\r\nexport interface ChipDropdownInputProps extends Omit<ChipInputProps, 'autoSave'> {\r\n  /** Array of items available. */\r\n  list: ListItem[] | string[];\r\n  /** On input selected/unselected. */\r\n  onInputChange?: (input: string) => void;\r\n  /** Message to show in the dropdown if none of the chips fits user input. */\r\n  messageOnNoResults?: string;\r\n  /** Message to show in the dropdown if none of the chips fits user input. */\r\n  suggestion?: ListItem;\r\n  /** If flag is set then loader will be shown in the input field. */\r\n  loading?: boolean;\r\n  /** Max number of chips that user can select. */\r\n  maxSelectedItems?: number;\r\n  /** Disable sorting of options in the dropdown. */\r\n  disableSorting?: boolean;\r\n  /** Disable filtering of options depending on user input in the dropdown. */\r\n  disableFiltering?: boolean;\r\n}\r\n\r\nexport const ChipDropdownInput = React.forwardRef<HTMLInputElement | undefined, ChipDropdownInputProps>(({\r\n                                                                                               list,\r\n                                                                                               onInputChange,\r\n                                                                                               disableSorting,\r\n                                                                                               messageOnNoResults,\r\n                                                                                               values,\r\n                                                                                               inputId,\r\n                                                                                               variants,\r\n                                                                                               placeholder,\r\n                                                                                               validationMessage,\r\n                                                                                               onValueChange,\r\n                                                                                               suggestion,\r\n                                                                                               loading,\r\n                                                                                               maxSelectedItems,\r\n                                                                                               multiLine = true,\r\n                                                                                               size = Size.Medium,\r\n                                                                                               icon,\r\n                                                                                               disableFiltering,\r\n                                                                                               disabled,\r\n                                                                                               altPlaceholder,\r\n                                                                                               required,\r\n                                                                                               ...rest\r\n                                                                                             }: ChipDropdownInputProps, ref) => {\r\n  // Initiate states\r\n  const [givenList, setGivenList] = React.useState<ListItem[]>([]);\r\n  const [chips, setChips] = React.useState<ListItem[]>([]);\r\n\r\n  const [activeDescendant, setActiveDescendant] = React.useState<string>();\r\n  const [value, setValue] = React.useState<string>('');\r\n  const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\r\n  const [filteredList, setFilteredList] = React.useState<ListItem[]>();\r\n\r\n  const [dropdownIsOpen, setDropdownIsOpen] = React.useState<boolean>(false);\r\n  const [dropdownList, setDropdownList] = React.useState<DropdownItem[]>([]);\r\n  const [dropdownValue, setDropdownValue] = React.useState<string>('');\r\n\r\n  const [focused, setFocused] = React.useState<number | null>(null);\r\n\r\n  const containerRef = useClickOutsideRef(() => setDropdownIsOpen(false), [], useFocusOutsideRef(() => setDropdownIsOpen(false)));\r\n  const inputRef = React.useRef<any>(undefined);\r\n\r\n  React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\r\n\r\n\r\n  /**\r\n   * Sets initial values for the chips.\r\n   */\r\n  React.useEffect(() => {\r\n\r\n    const list =\r\n      values.map((a) => chips.find(b => b.value === a) || givenList.find(b => b.value === a) || {\r\n        label: a,\r\n        value: a,\r\n        icon: icon\r\n      })\r\n        .map((a, index) => ({...a, variant: a.variant || (variants && variants[index]) || States.Default}))\r\n        .map((a, index) => ({...a, icon: a.icon || icon}));\r\n\r\n    setChips(list);\r\n  }, [values, variants, icon, givenList]);\r\n\r\n  /**\r\n   * Convert string[] to List[] if necessary\r\n   */\r\n  React.useEffect(() => {\r\n    if (typeof list[0] === 'string') {\r\n      const newList: ListItem[] = (list as string[]).map((e: string) => ({label: e, value: e}));\r\n      setGivenList(newList);\r\n    } else {\r\n      setGivenList(list as ListItem[]);\r\n    }\r\n  }, [list]);\r\n\r\n  /**\r\n   * filter and sort list if remoteOperations is false\r\n   * */\r\n  React.useEffect(() => {\r\n    let options = [...givenList];\r\n    if (!disableFiltering) {\r\n      if (!restartFilter && value !== '') {\r\n        options = options.filter((option) => option.label.toUpperCase().indexOf(value.toUpperCase()) !== -1 ||\r\n          (option.secondaryLabel && option.secondaryLabel?.toUpperCase().indexOf(value.toUpperCase()) !== -1));\r\n      }\r\n    }\r\n\r\n    if (!disableSorting) {\r\n      options = options.sort();\r\n    }\r\n\r\n    suggestion && options.push(suggestion);\r\n\r\n    options = options.filter((o) => !chips.find(a => a.value === o.value));\r\n    setFilteredList(options);\r\n  }, [value, givenList, chips, disableFiltering, disableSorting]);\r\n\r\n  /**\r\n   * if there is only one active item in dropdown mark it as focused\r\n   * */\r\n  React.useEffect(() => {\r\n    if (dropdownIsOpen && !!value && dropdownList?.filter(a => !a.disabled).length === 1) {\r\n      setDropdownValue(dropdownList.find(a => !a.disabled)!.value);\r\n    } else {\r\n      setDropdownValue('');\r\n    }\r\n  }, [dropdownList, dropdownIsOpen, value]);\r\n\r\n  const handleClickOutside = (e: any) => {\r\n    if (!containerRef.current?.contains(e.target)) {\r\n      if (dropdownIsOpen) {\r\n        setDropdownIsOpen(false);\r\n        if (!givenList.find((e) => e.value === value)) {\r\n          setValue('');\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n  /**\r\n   * register click outside event listener\r\n   * */\r\n  React.useEffect(() => {\r\n    document.addEventListener('click', handleClickOutside);\r\n    return () => {\r\n      document.removeEventListener('click', handleClickOutside);\r\n    };\r\n  });\r\n\r\n  /**\r\n   * update dropdown items when filtered list changes\r\n   * */\r\n  React.useEffect(() => {\r\n    setDropdownList(filteredList?.map(x => ({\r\n      value: x.value,\r\n      displayLabel: x.label,\r\n      noteLabel: x.secondaryLabel,\r\n      icon: (x.icon ?? icon),\r\n      disabled: x.disabled,\r\n    })) ?? []);\r\n  }, [filteredList]);\r\n\r\n  const addChip = (newChip: ListItem) => {\r\n    const newList = [...chips, newChip];\r\n    // Let's add the chip\r\n    setChips(newList);\r\n    onValueChange(newList.map(a => a.value));\r\n\r\n    setValue('');\r\n  };\r\n\r\n  const handleInputValueChange = (value: string) => {\r\n    setValue(value);\r\n    setRestartFilter(false);\r\n    setDropdownIsOpen(true);\r\n    onInputChange && onInputChange(value);\r\n  }\r\n\r\n  /**\r\n   * Add chip from dropdown\r\n   * */\r\n  const handleValueUpdate = (values: string[]) => {\r\n    const item = filteredList?.find(a => a.value === values[0]);\r\n    item && addChip(item);\r\n    setRestartFilter(true);\r\n    inputRef?.current?.focus();\r\n  }\r\n\r\n  /**\r\n   * Adds a chip to the chip list.\r\n   * @param event - Event handler from the key down event.\r\n   */\r\n  const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\r\n    // Let's trigger only on enter, comma and space key press\r\n    if ((event.key === 'Enter' || event.key === ' ') && value) {\r\n      if (dropdownList?.filter(a => !a.disabled).length === 1) {\r\n        handleValueUpdate([dropdownList!.find(a => !a.disabled)!.value]);\r\n        event.stopPropagation();\r\n      }\r\n    }\r\n\r\n    if ((event.key === 'ArrowDown' || event.key === 'Down' || event.key === 'ArrowUp' || event.key === 'Up') && !!dropdownList?.length) {\r\n      setDropdownIsOpen(true);\r\n    }\r\n  };\r\n\r\n  /**\r\n   * Removes a specific chip from the chip list.\r\n   * @param index - Index of the chip that needs to be removed.\r\n   */\r\n  const handleOnChipRemoved = (index: number): void => {\r\n    // Let's copy the chips\r\n    const newChips = [...chips];\r\n\r\n    // Let's delete the chip\r\n    // If necessary, let's replace it with a different chip\r\n    newChips.splice(index, 1);\r\n\r\n    // Let's update the chip list\r\n    setChips([...newChips]);\r\n    onValueChange(newChips.map((e) => e.value));\r\n  };\r\n\r\n  return (\r\n    <Wrapper ref={containerRef}>\r\n      <ChipInputField inputId={inputId}\r\n                      ref={inputRef}\r\n                      items={chips}\r\n                      required={required}\r\n                      inputValue={value}\r\n                      role=\"combobox\"\r\n                      aria-activedescendant={activeDescendant}\r\n                      size={size}\r\n                      placeholder={placeholder}\r\n                      altPlaceholder={altPlaceholder}\r\n                      disabled={disabled}\r\n                      multiLine={multiLine}\r\n                      validationMessage={validationMessage}\r\n                      loading={loading}\r\n                      onRemoveItem={(chip, index) => handleOnChipRemoved(index)}\r\n                      onInputValueChange={handleInputValueChange}\r\n                      onInputKeyDown={handleInputKeyDown}\r\n                      onActivationChange={(value) => setDropdownIsOpen(value)}\r\n                      {...rest}/>\r\n      <DropdownContent\r\n        containerRef={containerRef}\r\n        customizationProps={{\r\n          action: () => {\r\n          },\r\n          pinTopItem: true,\r\n\r\n          itemsType: 'normal',\r\n          scrollable: true,\r\n          actionLabel: '',\r\n          multiSelect: false,\r\n          onValueUpdate: handleValueUpdate,\r\n          items: dropdownList,\r\n        }}\r\n        ariaRolesType=\"input\"\r\n        focused={focused}\r\n        setFocused={setFocused}\r\n        onActiveDescendantChanged={(e) => setActiveDescendant(e)}\r\n        selectedValues={[dropdownValue]}\r\n        messageOnNoResults={messageOnNoResults ?? ''}\r\n        setSelectedValues={() => {\r\n        }}\r\n        isOpen={(!maxSelectedItems || (!!maxSelectedItems && chips.length < maxSelectedItems)) && dropdownIsOpen}\r\n        setIsOpen={setDropdownIsOpen}\r\n        filter={''}\r\n        isButton={false}\r\n        id={`${inputId}_dropdowncontent`}/>\r\n\r\n    </Wrapper>\r\n  );\r\n});\r\n"],"mappings":"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","ignoreList":[]}