@laerdal/life-react-components 3.5.0 → 3.5.2-uss.hackathon
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/dist/Dropdown/BasicDropdown.cjs +5 -6
- package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
- package/dist/Dropdown/BasicDropdown.d.ts +0 -1
- package/dist/Dropdown/BasicDropdown.js +5 -6
- package/dist/Dropdown/BasicDropdown.js.map +1 -1
- package/dist/Dropdown/CommonStyling.cjs +2 -2
- package/dist/Dropdown/CommonStyling.cjs.map +1 -1
- package/dist/Dropdown/CommonStyling.js +2 -2
- package/dist/Dropdown/CommonStyling.js.map +1 -1
- package/dist/Dropdown/DropdownFilter.cjs +2 -4
- package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
- package/dist/Dropdown/DropdownFilter.d.ts +0 -1
- package/dist/Dropdown/DropdownFilter.js +2 -4
- package/dist/Dropdown/DropdownFilter.js.map +1 -1
- package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs +3 -1
- package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs.map +1 -1
- package/dist/GlobalNavigationBar/GlobalNavigationBar.d.ts +2 -0
- package/dist/GlobalNavigationBar/GlobalNavigationBar.js +3 -1
- package/dist/GlobalNavigationBar/GlobalNavigationBar.js.map +1 -1
- package/dist/GlobalNavigationBar/business/SearchService.cjs +2 -0
- package/dist/GlobalNavigationBar/business/SearchService.cjs.map +1 -0
- package/dist/GlobalNavigationBar/business/SearchService.d.ts +0 -0
- package/dist/GlobalNavigationBar/business/SearchService.js +2 -0
- package/dist/GlobalNavigationBar/business/SearchService.js.map +1 -0
- package/dist/GlobalNavigationBar/desktop/DesktopActions.cjs +12 -3
- package/dist/GlobalNavigationBar/desktop/DesktopActions.cjs.map +1 -1
- package/dist/GlobalNavigationBar/desktop/DesktopActions.d.ts +2 -1
- package/dist/GlobalNavigationBar/desktop/DesktopActions.js +10 -2
- package/dist/GlobalNavigationBar/desktop/DesktopActions.js.map +1 -1
- package/dist/GlobalNavigationBar/desktop/MainMenu.cjs +2 -0
- package/dist/GlobalNavigationBar/desktop/MainMenu.cjs.map +1 -1
- package/dist/GlobalNavigationBar/desktop/MainMenu.js +2 -0
- package/dist/GlobalNavigationBar/desktop/MainMenu.js.map +1 -1
- package/dist/GlobalNavigationBar/desktop/UnifedSearchComponent.cjs +100 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchComponent.cjs.map +1 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchComponent.d.ts +8 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchComponent.js +89 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchComponent.js.map +1 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchServiceApi.cjs +38 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchServiceApi.cjs.map +1 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchServiceApi.d.ts +21 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchServiceApi.js +30 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchServiceApi.js.map +1 -0
- package/dist/GlobalNavigationBar/index.cjs +9 -1
- package/dist/GlobalNavigationBar/index.cjs.map +1 -1
- package/dist/GlobalNavigationBar/index.d.ts +1 -0
- package/dist/GlobalNavigationBar/index.js +1 -0
- package/dist/GlobalNavigationBar/index.js.map +1 -1
- package/dist/GlobalNavigationBar/types.cjs.map +1 -1
- package/dist/GlobalNavigationBar/types.d.ts +7 -2
- package/dist/GlobalNavigationBar/types.js.map +1 -1
- package/dist/InputFields/DatepickerField.cjs +3 -5
- package/dist/InputFields/DatepickerField.cjs.map +1 -1
- package/dist/InputFields/DatepickerField.d.ts +0 -2
- package/dist/InputFields/DatepickerField.js +3 -5
- package/dist/InputFields/DatepickerField.js.map +1 -1
- package/dist/InputFields/NumberField.cjs +5 -7
- package/dist/InputFields/NumberField.cjs.map +1 -1
- package/dist/InputFields/NumberField.d.ts +0 -2
- package/dist/InputFields/NumberField.js +5 -7
- package/dist/InputFields/NumberField.js.map +1 -1
- package/dist/InputFields/SearchBar.cjs +7 -2
- package/dist/InputFields/SearchBar.cjs.map +1 -1
- package/dist/InputFields/SearchBar.d.ts +1 -0
- package/dist/InputFields/SearchBar.js +7 -2
- package/dist/InputFields/SearchBar.js.map +1 -1
- package/dist/InputFields/TextField.cjs +2 -4
- package/dist/InputFields/TextField.cjs.map +1 -1
- package/dist/InputFields/TextField.d.ts +0 -2
- package/dist/InputFields/TextField.js +2 -4
- package/dist/InputFields/TextField.js.map +1 -1
- package/dist/InputFields/styling.cjs +2 -2
- package/dist/InputFields/styling.cjs.map +1 -1
- package/dist/InputFields/styling.js +2 -2
- package/dist/InputFields/styling.js.map +1 -1
- package/dist/Modals/ModalDialog.cjs +6 -8
- package/dist/Modals/ModalDialog.cjs.map +1 -1
- package/dist/Modals/ModalDialog.js +6 -8
- package/dist/Modals/ModalDialog.js.map +1 -1
- package/dist/Modals/ModalTypes.cjs.map +1 -1
- package/dist/Modals/ModalTypes.d.ts +2 -3
- package/dist/Modals/ModalTypes.js.map +1 -1
- package/dist/Tooltips/TooltipOverflow.cjs +7 -2
- package/dist/Tooltips/TooltipOverflow.cjs.map +1 -1
- package/dist/Tooltips/TooltipOverflow.js +7 -2
- package/dist/Tooltips/TooltipOverflow.js.map +1 -1
- package/dist/Tooltips/TooltipStyles.cjs +5 -5
- package/dist/Tooltips/TooltipStyles.cjs.map +1 -1
- package/dist/Tooltips/TooltipStyles.d.ts +1 -2
- package/dist/Tooltips/TooltipStyles.js +5 -5
- package/dist/Tooltips/TooltipStyles.js.map +1 -1
- package/dist/Tooltips/TooltipWrapper.cjs +1 -2
- package/dist/Tooltips/TooltipWrapper.cjs.map +1 -1
- package/dist/Tooltips/TooltipWrapper.js +1 -2
- package/dist/Tooltips/TooltipWrapper.js.map +1 -1
- package/dist/icons/index.cjs +1 -1
- package/dist/icons/index.cjs.map +1 -1
- package/dist/icons/index.js +1 -1
- package/dist/icons/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownFilter.cjs","names":["DropdownFilter","React","forwardRef","ref","id","list","placeholder","onSelect","onInputChange","value","required","messageOnNoResults","disabled","readOnly","scrollable","activeValidationMessage","autofilledMessage","size","disableFiltering","buttonFontSize","margin","loading","onFocus","overflowTooltipPosition","onBlur","dataTestId","rest","useState","isOpen","setIsOpen","input","setInput","activeDescendant","setActiveDescendant","restartFilter","setRestartFilter","selectedItem","setSelectedItem","selectedValues","setSelectedValues","focused","setFocused","inputFocused","setInputFocused","init","setInit","styledFieldRef","useFocusVisibleRef","inputRef","clearButtonRef","useRef","useActionWithin","useImperativeHandle","current","containerRef","useClickOutsideRef","useFocusOutsideRef","handleInputKeyDown","e","key","preventDefault","useEffect","length","val","item","find","a","displayLabel","undefined","handleInputClear","focus","focusVisible","detail","renderInput","stopPropagation","blur","defaultOnMouseDownHandler","Math","floor","random","target","marginLeft","Size","Small","COLORS","neutral_600","itemsType","multiSelect","action","onValueUpdate","values","items","critical_400"],"sources":["../../src/Dropdown/DropdownFilter.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { COLORS } from '../styles';\r\nimport { SystemIcons } from '../icons';\r\nimport { LoadingIndicator } from '../LoadingIndicator';\r\nimport { DropdownInputFieldStyles, DropdownContainer, DropdownInputField } from './CommonStyling';\r\nimport DropdownContent, { DropdownItem } from './DropdownContent';\r\nimport { Size, Testable } from '../types';\r\nimport { AutofilledMessage, ErrorMessage } from '../InputFields';\r\nimport TooltipOverflow from '../Tooltips/TooltipOverflow';\r\nimport { defaultOnMouseDownHandler, useActionWithin, useClickOutsideRef, useFocusOutsideRef, useFocusVisibleRef } from '../common';\r\nimport { IconButton } from '../Button';\r\n\r\nexport interface DropdownFilterProps extends Testable, Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onSelect' | 'size' | 'list' | 'autoComplete' | 'type' | 'placeholder' | 'onKeyDown' | 'value' | 'onChange' | 'required' | 'tabIndex' | 'disabled' | 'readOnly'> {\r\n list: DropdownItem[];\r\n placeholder?: string;\r\n \r\n value?: string;\r\n onSelect?: (value: string) => void;\r\n onInputChange?: (input: string) => void;\r\n\r\n required?: boolean;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n loading?: boolean;\r\n\r\n disableFiltering?: boolean;\r\n\r\n messageOnNoResults?: string;\r\n activeValidationMessage?: string;\r\n autofilledMessage?: string;\r\n size?: Size.Small | Size.Medium;\r\n\r\n overflowTooltipPosition?: 'top' | 'bottom';\r\n buttonFontSize?: string;\r\n margin?: string;\r\n scrollable?: boolean;\r\n}\r\n\r\nconst DropdownFilter = React.forwardRef( ({\r\n id,\r\n list,\r\n placeholder,\r\n onSelect,\r\n onInputChange,\r\n value,\r\n required,\r\n messageOnNoResults,\r\n disabled,\r\n readOnly,\r\n scrollable,\r\n activeValidationMessage,\r\n autofilledMessage,\r\n size,\r\n disableFiltering,\r\n buttonFontSize,\r\n margin,\r\n loading,\r\n onFocus,\r\n overflowTooltipPosition,\r\n onBlur,\r\n dataTestId,\r\n ...rest\r\n }: DropdownFilterProps, ref) => {\r\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\r\n const [input, setInput] = React.useState<string>();\r\n const [activeDescendant, setActiveDescendant] = React.useState<string>();\r\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\r\n const [selectedItem, setSelectedItem] = React.useState<DropdownItem>();\r\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\r\n const [focused, setFocused] = React.useState<number | null>(null);\r\n const [inputFocused, setInputFocused] = React.useState<boolean>(false);\r\n const [init, setInit] = React.useState<boolean>(true);\r\n\r\n const styledFieldRef = useFocusVisibleRef();\r\n const inputRef = useFocusVisibleRef([styledFieldRef]);\r\n const clearButtonRef = React.useRef<HTMLButtonElement>(null);\r\n\r\n useActionWithin(styledFieldRef, input && !readOnly && !disabled ? [clearButtonRef] : []);\r\n\r\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\r\n\r\n const containerRef = useClickOutsideRef(\r\n () => setIsOpen(false),\r\n [],\r\n useFocusOutsideRef(() => setIsOpen(false)),\r\n );\r\n\r\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Esc' || e.key === 'Escape') {\r\n e.preventDefault();\r\n }\r\n if (e.key === 'ArrowDown' || e.key === 'Down' || e.key === 'ArrowUp' || e.key === 'Up') {\r\n e.preventDefault();\r\n if (!isOpen) {\r\n setIsOpen(true);\r\n }\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n setInit(true);\r\n setSelectedValues(!!value ? [value] : []);\r\n }, [value]);\r\n\r\n React.useEffect(() => {\r\n if (selectedValues?.length) {\r\n const val = selectedValues[0];\r\n const item = list.find((a) => a.value === val);\r\n setSelectedItem(item);\r\n setInput(item?.displayLabel ?? item?.value ?? '');\r\n onSelect && !init && onSelect(val);\r\n } else {\r\n setSelectedItem(undefined);\r\n onSelect && !init && onSelect('');\r\n setInput('');\r\n }\r\n }, [selectedValues]);\r\n\r\n React.useEffect(() => {\r\n if (!isOpen) {\r\n if (!!selectedItem) {\r\n setInput(selectedItem?.displayLabel ?? selectedItem?.value ?? '');\r\n } else {\r\n setInput('');\r\n }\r\n }\r\n\r\n setRestartFilter(true);\r\n }, [isOpen, selectedItem]);\r\n\r\n const handleInputClear = (e: any) => {\r\n setInput('');\r\n setSelectedValues([]);\r\n onSelect && onSelect('');\r\n inputRef.current?.focus({ focusVisible: e?.detail !== 1 } as any);\r\n };\r\n\r\n const renderInput = () => {\r\n return (\r\n <DropdownInputFieldStyles\r\n ref={styledFieldRef}\r\n className={size ? size : ''}\r\n onClick={(e: any) => {\r\n if (!readOnly && !disabled) {\r\n e.stopPropagation();\r\n setIsOpen(!isOpen);\r\n if (isOpen) {\r\n inputRef.current?.blur();\r\n } else {\r\n inputRef.current?.focus();\r\n }\r\n }\r\n }}\r\n disabled={disabled || false}\r\n readOnly={readOnly || false}\r\n isPlaceholder={!input}\r\n fontSize={buttonFontSize}\r\n showValidationMessage={!!activeValidationMessage}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n data-testid={`otherdiv_${id}`}>\r\n <DropdownInputField\r\n id={id}\r\n ref={inputRef}\r\n autoComplete={'off-' + Math.floor(Math.random() * 999999999999)}\r\n type=\"search\"\r\n placeholder={inputFocused ? '' : placeholder}\r\n onKeyDown={handleInputKeyDown}\r\n ellipsis\r\n value={input || ''}\r\n onChange={(e: any) => {\r\n if (!e.target.value) {\r\n setSelectedValues([]);\r\n }\r\n if (!readOnly && !disabled && e.target.value !== input) {\r\n setRestartFilter(false);\r\n setIsOpen(true);\r\n setInput(e.target.value);\r\n if (onInputChange) {\r\n onInputChange(e.target.value || '');\r\n }\r\n }\r\n }}\r\n onFocus={(e) => {\r\n setInputFocused(true);\r\n onFocus && onFocus(e);\r\n }}\r\n onBlur={(e) => {\r\n setInputFocused(false);\r\n onBlur && onBlur(e);\r\n }}\r\n required={required}\r\n tabIndex={disabled || readOnly ? -1 : 0}\r\n disabled={disabled || false}\r\n data-testid={dataTestId}\r\n {...rest}\r\n />\r\n {!isOpen ? <TooltipOverflow position={overflowTooltipPosition} input={inputRef} withArrow={true} maxWidth=\"100%\" size={size} align='end'>\r\n {input}\r\n </TooltipOverflow> : null}\r\n {input && !readOnly && !disabled && !loading && (\r\n <IconButton action={handleInputClear} ref={clearButtonRef} useTransparentBackground={true} shape={'circular'} style={{ marginLeft: '-4px' }} variant={'secondary'}>\r\n <SystemIcons.Clear />\r\n </IconButton>\r\n )}\r\n\r\n {!disabled && !readOnly && loading && (\r\n <div style={{ marginLeft: '-4xp' }}>\r\n <LoadingIndicator size={Size.Small} color={COLORS.neutral_600} />\r\n </div>\r\n )}\r\n\r\n <div className={'dropdown-arrow'}>\r\n {isOpen && !readOnly && !disabled ? <SystemIcons.ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <SystemIcons.ArrowDropDown size=\"24px\" className={size ? size : ''} />}\r\n </div>\r\n </DropdownInputFieldStyles>\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n <DropdownContainer ref={containerRef}\r\n role=\"combobox\"\r\n aria-multiselectable={true} \r\n aria-controls={`${id}_dropdowncontent`}\r\n aria-activedescendant={activeDescendant}\r\n aria-expanded={isOpen}\r\n disabled={disabled} isButton={false} readOnly={readOnly} className={size ? size : ''} margin={margin}>\r\n {renderInput()}\r\n {!readOnly && !disabled && (\r\n <DropdownContent\r\n containerRef={containerRef}\r\n isOpen={isOpen && !loading}\r\n messageOnNoResults={messageOnNoResults ?? ''}\r\n selectedValues={selectedValues}\r\n setSelectedValues={setSelectedValues}\r\n size={size ?? Size.Small}\r\n onActiveDescendantChanged={(e) => setActiveDescendant(e)}\r\n focused={focused}\r\n ariaRolesType=\"input\"\r\n setFocused={setFocused}\r\n outline={false}\r\n customizationProps={{\r\n itemsType: 'normal',\r\n scrollable: scrollable,\r\n multiSelect: false,\r\n action: () => {},\r\n onValueUpdate: (values: string[]) => {\r\n setRestartFilter(true);\r\n setInit(false);\r\n },\r\n items: list,\r\n }}\r\n filter={!disableFiltering && !restartFilter ? input || '' : ''}\r\n setIsOpen={setIsOpen}\r\n isButton={false}\r\n id={`${id}_dropdowncontent`}\r\n />\r\n )}\r\n </DropdownContainer>\r\n {activeValidationMessage && (\r\n <ErrorMessage className={size || ''}>\r\n <SystemIcons.TechnicalWarning color={COLORS.critical_400} />\r\n <span>{activeValidationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n {autofilledMessage && (\r\n <AutofilledMessage className={size || ''}>\r\n <SystemIcons.Information color={COLORS.neutral_600} />\r\n <span>{autofilledMessage}</span>\r\n </AutofilledMessage>\r\n )}\r\n </>\r\n );\r\n});\r\n\r\nexport default DropdownFilter;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DropdownFilter.cjs","names":["DropdownFilter","React","forwardRef","ref","id","list","placeholder","onSelect","onInputChange","value","required","messageOnNoResults","disabled","readOnly","scrollable","activeValidationMessage","autofilledMessage","size","disableFiltering","buttonFontSize","margin","loading","onFocus","onBlur","dataTestId","rest","useState","isOpen","setIsOpen","input","setInput","activeDescendant","setActiveDescendant","restartFilter","setRestartFilter","selectedItem","setSelectedItem","selectedValues","setSelectedValues","focused","setFocused","inputFocused","setInputFocused","init","setInit","styledFieldRef","useFocusVisibleRef","inputRef","clearButtonRef","useRef","useActionWithin","useImperativeHandle","current","containerRef","useClickOutsideRef","useFocusOutsideRef","handleInputKeyDown","e","key","preventDefault","useEffect","length","val","item","find","a","displayLabel","undefined","handleInputClear","focus","focusVisible","detail","renderInput","stopPropagation","blur","defaultOnMouseDownHandler","Math","floor","random","target","marginLeft","Size","Small","COLORS","neutral_600","itemsType","multiSelect","action","onValueUpdate","values","items","critical_400"],"sources":["../../src/Dropdown/DropdownFilter.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { COLORS } from '../styles';\r\nimport { SystemIcons } from '../icons';\r\nimport { LoadingIndicator } from '../LoadingIndicator';\r\nimport { DropdownInputFieldStyles, DropdownContainer, DropdownInputField } from './CommonStyling';\r\nimport DropdownContent, { DropdownItem } from './DropdownContent';\r\nimport { Size, Testable } from '../types';\r\nimport { AutofilledMessage, ErrorMessage } from '../InputFields';\r\nimport TooltipOverflow from '../Tooltips/TooltipOverflow';\r\nimport { defaultOnMouseDownHandler, useActionWithin, useClickOutsideRef, useFocusOutsideRef, useFocusVisibleRef } from '../common';\r\nimport { IconButton } from '../Button';\r\n\r\nexport interface DropdownFilterProps extends Testable, Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onSelect' | 'size' | 'list' | 'autoComplete' | 'type' | 'placeholder' | 'onKeyDown' | 'value' | 'onChange' | 'required' | 'tabIndex' | 'disabled' | 'readOnly'> {\r\n list: DropdownItem[];\r\n placeholder?: string;\r\n \r\n value?: string;\r\n onSelect?: (value: string) => void;\r\n onInputChange?: (input: string) => void;\r\n\r\n required?: boolean;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n loading?: boolean;\r\n\r\n disableFiltering?: boolean;\r\n\r\n messageOnNoResults?: string;\r\n activeValidationMessage?: string;\r\n autofilledMessage?: string;\r\n size?: Size.Small | Size.Medium;\r\n\r\n buttonFontSize?: string;\r\n margin?: string;\r\n scrollable?: boolean;\r\n}\r\n\r\nconst DropdownFilter = React.forwardRef( ({\r\n id,\r\n list,\r\n placeholder,\r\n onSelect,\r\n onInputChange,\r\n value,\r\n required,\r\n messageOnNoResults,\r\n disabled,\r\n readOnly,\r\n scrollable,\r\n activeValidationMessage,\r\n autofilledMessage,\r\n size,\r\n disableFiltering,\r\n buttonFontSize,\r\n margin,\r\n loading,\r\n onFocus,\r\n onBlur,\r\n dataTestId,\r\n ...rest\r\n }: DropdownFilterProps, ref) => {\r\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\r\n const [input, setInput] = React.useState<string>();\r\n const [activeDescendant, setActiveDescendant] = React.useState<string>();\r\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\r\n const [selectedItem, setSelectedItem] = React.useState<DropdownItem>();\r\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\r\n const [focused, setFocused] = React.useState<number | null>(null);\r\n const [inputFocused, setInputFocused] = React.useState<boolean>(false);\r\n const [init, setInit] = React.useState<boolean>(true);\r\n\r\n const styledFieldRef = useFocusVisibleRef();\r\n const inputRef = useFocusVisibleRef([styledFieldRef]);\r\n const clearButtonRef = React.useRef<HTMLButtonElement>(null);\r\n\r\n useActionWithin(styledFieldRef, input && !readOnly && !disabled ? [clearButtonRef] : []);\r\n\r\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\r\n\r\n const containerRef = useClickOutsideRef(\r\n () => setIsOpen(false),\r\n [],\r\n useFocusOutsideRef(() => setIsOpen(false)),\r\n );\r\n\r\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Esc' || e.key === 'Escape') {\r\n e.preventDefault();\r\n }\r\n if (e.key === 'ArrowDown' || e.key === 'Down' || e.key === 'ArrowUp' || e.key === 'Up') {\r\n e.preventDefault();\r\n if (!isOpen) {\r\n setIsOpen(true);\r\n }\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n setInit(true);\r\n setSelectedValues(!!value ? [value] : []);\r\n }, [value]);\r\n\r\n React.useEffect(() => {\r\n if (selectedValues?.length) {\r\n const val = selectedValues[0];\r\n const item = list.find((a) => a.value === val);\r\n setSelectedItem(item);\r\n setInput(item?.displayLabel ?? item?.value ?? '');\r\n onSelect && !init && onSelect(val);\r\n } else {\r\n setSelectedItem(undefined);\r\n onSelect && !init && onSelect('');\r\n setInput('');\r\n }\r\n }, [selectedValues]);\r\n\r\n React.useEffect(() => {\r\n if (!isOpen) {\r\n if (!!selectedItem) {\r\n setInput(selectedItem?.displayLabel ?? selectedItem?.value ?? '');\r\n } else {\r\n setInput('');\r\n }\r\n }\r\n\r\n setRestartFilter(true);\r\n }, [isOpen, selectedItem]);\r\n\r\n const handleInputClear = (e: any) => {\r\n setInput('');\r\n setSelectedValues([]);\r\n onSelect && onSelect('');\r\n inputRef.current?.focus({ focusVisible: e?.detail !== 1 } as any);\r\n };\r\n\r\n const renderInput = () => {\r\n return (\r\n <DropdownInputFieldStyles\r\n ref={styledFieldRef}\r\n className={size ? size : ''}\r\n onClick={(e: any) => {\r\n if (!readOnly && !disabled) {\r\n e.stopPropagation();\r\n setIsOpen(!isOpen);\r\n if (isOpen) {\r\n inputRef.current?.blur();\r\n } else {\r\n inputRef.current?.focus();\r\n }\r\n }\r\n }}\r\n disabled={disabled || false}\r\n readOnly={readOnly || false}\r\n isPlaceholder={!input}\r\n fontSize={buttonFontSize}\r\n showValidationMessage={!!activeValidationMessage}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n data-testid={`otherdiv_${id}`}>\r\n <DropdownInputField\r\n id={id}\r\n ref={inputRef}\r\n autoComplete={'off-' + Math.floor(Math.random() * 999999999999)}\r\n type=\"search\"\r\n placeholder={inputFocused ? '' : placeholder}\r\n onKeyDown={handleInputKeyDown}\r\n ellipsis\r\n value={input || ''}\r\n onChange={(e: any) => {\r\n if (!e.target.value) {\r\n setSelectedValues([]);\r\n }\r\n if (!readOnly && !disabled && e.target.value !== input) {\r\n setRestartFilter(false);\r\n setIsOpen(true);\r\n setInput(e.target.value);\r\n if (onInputChange) {\r\n onInputChange(e.target.value || '');\r\n }\r\n }\r\n }}\r\n onFocus={(e) => {\r\n setInputFocused(true);\r\n onFocus && onFocus(e);\r\n }}\r\n onBlur={(e) => {\r\n setInputFocused(false);\r\n onBlur && onBlur(e);\r\n }}\r\n required={required}\r\n tabIndex={disabled || readOnly ? -1 : 0}\r\n disabled={disabled || false}\r\n data-testid={dataTestId}\r\n {...rest}\r\n />\r\n {!isOpen ? <TooltipOverflow input={inputRef} withArrow={true} maxWidth=\"100%\" size={size} align='end' position='bottom'>\r\n {input}\r\n </TooltipOverflow> : null}\r\n {input && !readOnly && !disabled && !loading && (\r\n <IconButton action={handleInputClear} ref={clearButtonRef} useTransparentBackground={true} shape={'circular'} style={{ marginLeft: '-4px' }} variant={'secondary'}>\r\n <SystemIcons.Clear />\r\n </IconButton>\r\n )}\r\n\r\n {!disabled && !readOnly && loading && (\r\n <div style={{ marginLeft: '-4xp' }}>\r\n <LoadingIndicator size={Size.Small} color={COLORS.neutral_600} />\r\n </div>\r\n )}\r\n\r\n <div className={'dropdown-arrow'}>\r\n {isOpen && !readOnly && !disabled ? <SystemIcons.ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <SystemIcons.ArrowDropDown size=\"24px\" className={size ? size : ''} />}\r\n </div>\r\n </DropdownInputFieldStyles>\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n <DropdownContainer ref={containerRef}\r\n role=\"combobox\"\r\n aria-multiselectable={true} \r\n aria-controls={`${id}_dropdowncontent`}\r\n aria-activedescendant={activeDescendant}\r\n aria-expanded={isOpen}\r\n disabled={disabled} isButton={false} readOnly={readOnly} className={size ? size : ''} margin={margin}>\r\n {renderInput()}\r\n {!readOnly && !disabled && (\r\n <DropdownContent\r\n containerRef={containerRef}\r\n isOpen={isOpen && !loading}\r\n messageOnNoResults={messageOnNoResults ?? ''}\r\n selectedValues={selectedValues}\r\n setSelectedValues={setSelectedValues}\r\n size={size ?? Size.Small}\r\n onActiveDescendantChanged={(e) => setActiveDescendant(e)}\r\n focused={focused}\r\n ariaRolesType=\"input\"\r\n setFocused={setFocused}\r\n outline={false}\r\n customizationProps={{\r\n itemsType: 'normal',\r\n scrollable: scrollable,\r\n multiSelect: false,\r\n action: () => {},\r\n onValueUpdate: (values: string[]) => {\r\n setRestartFilter(true);\r\n setInit(false);\r\n },\r\n items: list,\r\n }}\r\n filter={!disableFiltering && !restartFilter ? input || '' : ''}\r\n setIsOpen={setIsOpen}\r\n isButton={false}\r\n id={`${id}_dropdowncontent`}\r\n />\r\n )}\r\n </DropdownContainer>\r\n {activeValidationMessage && (\r\n <ErrorMessage className={size || ''}>\r\n <SystemIcons.TechnicalWarning color={COLORS.critical_400} />\r\n <span>{activeValidationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n {autofilledMessage && (\r\n <AutofilledMessage className={size || ''}>\r\n <SystemIcons.Information color={COLORS.neutral_600} />\r\n <span>{autofilledMessage}</span>\r\n </AutofilledMessage>\r\n )}\r\n </>\r\n );\r\n});\r\n\r\nexport default DropdownFilter;\r\n"],"mappings":"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"}
|
|
@@ -16,7 +16,6 @@ export interface DropdownFilterProps extends Testable, Omit<React.InputHTMLAttri
|
|
|
16
16
|
activeValidationMessage?: string;
|
|
17
17
|
autofilledMessage?: string;
|
|
18
18
|
size?: Size.Small | Size.Medium;
|
|
19
|
-
overflowTooltipPosition?: 'top' | 'bottom';
|
|
20
19
|
buttonFontSize?: string;
|
|
21
20
|
margin?: string;
|
|
22
21
|
scrollable?: boolean;
|
|
@@ -2,7 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
4
|
import _pt from "prop-types";
|
|
5
|
-
var _excluded = ["id", "list", "placeholder", "onSelect", "onInputChange", "value", "required", "messageOnNoResults", "disabled", "readOnly", "scrollable", "activeValidationMessage", "autofilledMessage", "size", "disableFiltering", "buttonFontSize", "margin", "loading", "onFocus", "
|
|
5
|
+
var _excluded = ["id", "list", "placeholder", "onSelect", "onInputChange", "value", "required", "messageOnNoResults", "disabled", "readOnly", "scrollable", "activeValidationMessage", "autofilledMessage", "size", "disableFiltering", "buttonFontSize", "margin", "loading", "onFocus", "onBlur", "dataTestId"];
|
|
6
6
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
7
7
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
8
8
|
import * as React from 'react';
|
|
@@ -39,7 +39,6 @@ var DropdownFilter = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
39
39
|
margin = _ref.margin,
|
|
40
40
|
loading = _ref.loading,
|
|
41
41
|
_onFocus = _ref.onFocus,
|
|
42
|
-
overflowTooltipPosition = _ref.overflowTooltipPosition,
|
|
43
42
|
_onBlur = _ref.onBlur,
|
|
44
43
|
dataTestId = _ref.dataTestId,
|
|
45
44
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
@@ -201,12 +200,12 @@ var DropdownFilter = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
201
200
|
disabled: disabled || false,
|
|
202
201
|
"data-testid": dataTestId
|
|
203
202
|
}, rest)), !isOpen ? /*#__PURE__*/_jsx(TooltipOverflow, {
|
|
204
|
-
position: overflowTooltipPosition,
|
|
205
203
|
input: inputRef,
|
|
206
204
|
withArrow: true,
|
|
207
205
|
maxWidth: "100%",
|
|
208
206
|
size: size,
|
|
209
207
|
align: "end",
|
|
208
|
+
position: "bottom",
|
|
210
209
|
children: input
|
|
211
210
|
}) : null, input && !readOnly && !disabled && !loading && /*#__PURE__*/_jsx(IconButton, {
|
|
212
211
|
action: handleInputClear,
|
|
@@ -312,7 +311,6 @@ DropdownFilter.propTypes = {
|
|
|
312
311
|
messageOnNoResults: _pt.string,
|
|
313
312
|
activeValidationMessage: _pt.string,
|
|
314
313
|
autofilledMessage: _pt.string,
|
|
315
|
-
overflowTooltipPosition: _pt.oneOf(['top', 'bottom']),
|
|
316
314
|
buttonFontSize: _pt.string,
|
|
317
315
|
margin: _pt.string,
|
|
318
316
|
scrollable: _pt.bool
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownFilter.js","names":["React","COLORS","SystemIcons","LoadingIndicator","DropdownInputFieldStyles","DropdownContainer","DropdownInputField","DropdownContent","Size","AutofilledMessage","ErrorMessage","TooltipOverflow","defaultOnMouseDownHandler","useActionWithin","useClickOutsideRef","useFocusOutsideRef","useFocusVisibleRef","IconButton","DropdownFilter","forwardRef","ref","id","list","placeholder","onSelect","onInputChange","value","required","messageOnNoResults","disabled","readOnly","scrollable","activeValidationMessage","autofilledMessage","size","disableFiltering","buttonFontSize","margin","loading","onFocus","overflowTooltipPosition","onBlur","dataTestId","rest","useState","isOpen","setIsOpen","input","setInput","activeDescendant","setActiveDescendant","restartFilter","setRestartFilter","selectedItem","setSelectedItem","selectedValues","setSelectedValues","focused","setFocused","inputFocused","setInputFocused","init","setInit","styledFieldRef","inputRef","clearButtonRef","useRef","useImperativeHandle","current","containerRef","handleInputKeyDown","e","key","preventDefault","useEffect","length","val","item","find","a","displayLabel","undefined","handleInputClear","focus","focusVisible","detail","renderInput","stopPropagation","blur","Math","floor","random","target","marginLeft","Small","neutral_600","itemsType","multiSelect","action","onValueUpdate","values","items","critical_400"],"sources":["../../src/Dropdown/DropdownFilter.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { COLORS } from '../styles';\r\nimport { SystemIcons } from '../icons';\r\nimport { LoadingIndicator } from '../LoadingIndicator';\r\nimport { DropdownInputFieldStyles, DropdownContainer, DropdownInputField } from './CommonStyling';\r\nimport DropdownContent, { DropdownItem } from './DropdownContent';\r\nimport { Size, Testable } from '../types';\r\nimport { AutofilledMessage, ErrorMessage } from '../InputFields';\r\nimport TooltipOverflow from '../Tooltips/TooltipOverflow';\r\nimport { defaultOnMouseDownHandler, useActionWithin, useClickOutsideRef, useFocusOutsideRef, useFocusVisibleRef } from '../common';\r\nimport { IconButton } from '../Button';\r\n\r\nexport interface DropdownFilterProps extends Testable, Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onSelect' | 'size' | 'list' | 'autoComplete' | 'type' | 'placeholder' | 'onKeyDown' | 'value' | 'onChange' | 'required' | 'tabIndex' | 'disabled' | 'readOnly'> {\r\n list: DropdownItem[];\r\n placeholder?: string;\r\n \r\n value?: string;\r\n onSelect?: (value: string) => void;\r\n onInputChange?: (input: string) => void;\r\n\r\n required?: boolean;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n loading?: boolean;\r\n\r\n disableFiltering?: boolean;\r\n\r\n messageOnNoResults?: string;\r\n activeValidationMessage?: string;\r\n autofilledMessage?: string;\r\n size?: Size.Small | Size.Medium;\r\n\r\n overflowTooltipPosition?: 'top' | 'bottom';\r\n buttonFontSize?: string;\r\n margin?: string;\r\n scrollable?: boolean;\r\n}\r\n\r\nconst DropdownFilter = React.forwardRef( ({\r\n id,\r\n list,\r\n placeholder,\r\n onSelect,\r\n onInputChange,\r\n value,\r\n required,\r\n messageOnNoResults,\r\n disabled,\r\n readOnly,\r\n scrollable,\r\n activeValidationMessage,\r\n autofilledMessage,\r\n size,\r\n disableFiltering,\r\n buttonFontSize,\r\n margin,\r\n loading,\r\n onFocus,\r\n overflowTooltipPosition,\r\n onBlur,\r\n dataTestId,\r\n ...rest\r\n }: DropdownFilterProps, ref) => {\r\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\r\n const [input, setInput] = React.useState<string>();\r\n const [activeDescendant, setActiveDescendant] = React.useState<string>();\r\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\r\n const [selectedItem, setSelectedItem] = React.useState<DropdownItem>();\r\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\r\n const [focused, setFocused] = React.useState<number | null>(null);\r\n const [inputFocused, setInputFocused] = React.useState<boolean>(false);\r\n const [init, setInit] = React.useState<boolean>(true);\r\n\r\n const styledFieldRef = useFocusVisibleRef();\r\n const inputRef = useFocusVisibleRef([styledFieldRef]);\r\n const clearButtonRef = React.useRef<HTMLButtonElement>(null);\r\n\r\n useActionWithin(styledFieldRef, input && !readOnly && !disabled ? [clearButtonRef] : []);\r\n\r\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\r\n\r\n const containerRef = useClickOutsideRef(\r\n () => setIsOpen(false),\r\n [],\r\n useFocusOutsideRef(() => setIsOpen(false)),\r\n );\r\n\r\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Esc' || e.key === 'Escape') {\r\n e.preventDefault();\r\n }\r\n if (e.key === 'ArrowDown' || e.key === 'Down' || e.key === 'ArrowUp' || e.key === 'Up') {\r\n e.preventDefault();\r\n if (!isOpen) {\r\n setIsOpen(true);\r\n }\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n setInit(true);\r\n setSelectedValues(!!value ? [value] : []);\r\n }, [value]);\r\n\r\n React.useEffect(() => {\r\n if (selectedValues?.length) {\r\n const val = selectedValues[0];\r\n const item = list.find((a) => a.value === val);\r\n setSelectedItem(item);\r\n setInput(item?.displayLabel ?? item?.value ?? '');\r\n onSelect && !init && onSelect(val);\r\n } else {\r\n setSelectedItem(undefined);\r\n onSelect && !init && onSelect('');\r\n setInput('');\r\n }\r\n }, [selectedValues]);\r\n\r\n React.useEffect(() => {\r\n if (!isOpen) {\r\n if (!!selectedItem) {\r\n setInput(selectedItem?.displayLabel ?? selectedItem?.value ?? '');\r\n } else {\r\n setInput('');\r\n }\r\n }\r\n\r\n setRestartFilter(true);\r\n }, [isOpen, selectedItem]);\r\n\r\n const handleInputClear = (e: any) => {\r\n setInput('');\r\n setSelectedValues([]);\r\n onSelect && onSelect('');\r\n inputRef.current?.focus({ focusVisible: e?.detail !== 1 } as any);\r\n };\r\n\r\n const renderInput = () => {\r\n return (\r\n <DropdownInputFieldStyles\r\n ref={styledFieldRef}\r\n className={size ? size : ''}\r\n onClick={(e: any) => {\r\n if (!readOnly && !disabled) {\r\n e.stopPropagation();\r\n setIsOpen(!isOpen);\r\n if (isOpen) {\r\n inputRef.current?.blur();\r\n } else {\r\n inputRef.current?.focus();\r\n }\r\n }\r\n }}\r\n disabled={disabled || false}\r\n readOnly={readOnly || false}\r\n isPlaceholder={!input}\r\n fontSize={buttonFontSize}\r\n showValidationMessage={!!activeValidationMessage}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n data-testid={`otherdiv_${id}`}>\r\n <DropdownInputField\r\n id={id}\r\n ref={inputRef}\r\n autoComplete={'off-' + Math.floor(Math.random() * 999999999999)}\r\n type=\"search\"\r\n placeholder={inputFocused ? '' : placeholder}\r\n onKeyDown={handleInputKeyDown}\r\n ellipsis\r\n value={input || ''}\r\n onChange={(e: any) => {\r\n if (!e.target.value) {\r\n setSelectedValues([]);\r\n }\r\n if (!readOnly && !disabled && e.target.value !== input) {\r\n setRestartFilter(false);\r\n setIsOpen(true);\r\n setInput(e.target.value);\r\n if (onInputChange) {\r\n onInputChange(e.target.value || '');\r\n }\r\n }\r\n }}\r\n onFocus={(e) => {\r\n setInputFocused(true);\r\n onFocus && onFocus(e);\r\n }}\r\n onBlur={(e) => {\r\n setInputFocused(false);\r\n onBlur && onBlur(e);\r\n }}\r\n required={required}\r\n tabIndex={disabled || readOnly ? -1 : 0}\r\n disabled={disabled || false}\r\n data-testid={dataTestId}\r\n {...rest}\r\n />\r\n {!isOpen ? <TooltipOverflow position={overflowTooltipPosition} input={inputRef} withArrow={true} maxWidth=\"100%\" size={size} align='end'>\r\n {input}\r\n </TooltipOverflow> : null}\r\n {input && !readOnly && !disabled && !loading && (\r\n <IconButton action={handleInputClear} ref={clearButtonRef} useTransparentBackground={true} shape={'circular'} style={{ marginLeft: '-4px' }} variant={'secondary'}>\r\n <SystemIcons.Clear />\r\n </IconButton>\r\n )}\r\n\r\n {!disabled && !readOnly && loading && (\r\n <div style={{ marginLeft: '-4xp' }}>\r\n <LoadingIndicator size={Size.Small} color={COLORS.neutral_600} />\r\n </div>\r\n )}\r\n\r\n <div className={'dropdown-arrow'}>\r\n {isOpen && !readOnly && !disabled ? <SystemIcons.ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <SystemIcons.ArrowDropDown size=\"24px\" className={size ? size : ''} />}\r\n </div>\r\n </DropdownInputFieldStyles>\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n <DropdownContainer ref={containerRef}\r\n role=\"combobox\"\r\n aria-multiselectable={true} \r\n aria-controls={`${id}_dropdowncontent`}\r\n aria-activedescendant={activeDescendant}\r\n aria-expanded={isOpen}\r\n disabled={disabled} isButton={false} readOnly={readOnly} className={size ? size : ''} margin={margin}>\r\n {renderInput()}\r\n {!readOnly && !disabled && (\r\n <DropdownContent\r\n containerRef={containerRef}\r\n isOpen={isOpen && !loading}\r\n messageOnNoResults={messageOnNoResults ?? ''}\r\n selectedValues={selectedValues}\r\n setSelectedValues={setSelectedValues}\r\n size={size ?? Size.Small}\r\n onActiveDescendantChanged={(e) => setActiveDescendant(e)}\r\n focused={focused}\r\n ariaRolesType=\"input\"\r\n setFocused={setFocused}\r\n outline={false}\r\n customizationProps={{\r\n itemsType: 'normal',\r\n scrollable: scrollable,\r\n multiSelect: false,\r\n action: () => {},\r\n onValueUpdate: (values: string[]) => {\r\n setRestartFilter(true);\r\n setInit(false);\r\n },\r\n items: list,\r\n }}\r\n filter={!disableFiltering && !restartFilter ? input || '' : ''}\r\n setIsOpen={setIsOpen}\r\n isButton={false}\r\n id={`${id}_dropdowncontent`}\r\n />\r\n )}\r\n </DropdownContainer>\r\n {activeValidationMessage && (\r\n <ErrorMessage className={size || ''}>\r\n <SystemIcons.TechnicalWarning color={COLORS.critical_400} />\r\n <span>{activeValidationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n {autofilledMessage && (\r\n <AutofilledMessage className={size || ''}>\r\n <SystemIcons.Information color={COLORS.neutral_600} />\r\n <span>{autofilledMessage}</span>\r\n </AutofilledMessage>\r\n )}\r\n </>\r\n );\r\n});\r\n\r\nexport default DropdownFilter;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DropdownFilter.js","names":["React","COLORS","SystemIcons","LoadingIndicator","DropdownInputFieldStyles","DropdownContainer","DropdownInputField","DropdownContent","Size","AutofilledMessage","ErrorMessage","TooltipOverflow","defaultOnMouseDownHandler","useActionWithin","useClickOutsideRef","useFocusOutsideRef","useFocusVisibleRef","IconButton","DropdownFilter","forwardRef","ref","id","list","placeholder","onSelect","onInputChange","value","required","messageOnNoResults","disabled","readOnly","scrollable","activeValidationMessage","autofilledMessage","size","disableFiltering","buttonFontSize","margin","loading","onFocus","onBlur","dataTestId","rest","useState","isOpen","setIsOpen","input","setInput","activeDescendant","setActiveDescendant","restartFilter","setRestartFilter","selectedItem","setSelectedItem","selectedValues","setSelectedValues","focused","setFocused","inputFocused","setInputFocused","init","setInit","styledFieldRef","inputRef","clearButtonRef","useRef","useImperativeHandle","current","containerRef","handleInputKeyDown","e","key","preventDefault","useEffect","length","val","item","find","a","displayLabel","undefined","handleInputClear","focus","focusVisible","detail","renderInput","stopPropagation","blur","Math","floor","random","target","marginLeft","Small","neutral_600","itemsType","multiSelect","action","onValueUpdate","values","items","critical_400"],"sources":["../../src/Dropdown/DropdownFilter.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { COLORS } from '../styles';\r\nimport { SystemIcons } from '../icons';\r\nimport { LoadingIndicator } from '../LoadingIndicator';\r\nimport { DropdownInputFieldStyles, DropdownContainer, DropdownInputField } from './CommonStyling';\r\nimport DropdownContent, { DropdownItem } from './DropdownContent';\r\nimport { Size, Testable } from '../types';\r\nimport { AutofilledMessage, ErrorMessage } from '../InputFields';\r\nimport TooltipOverflow from '../Tooltips/TooltipOverflow';\r\nimport { defaultOnMouseDownHandler, useActionWithin, useClickOutsideRef, useFocusOutsideRef, useFocusVisibleRef } from '../common';\r\nimport { IconButton } from '../Button';\r\n\r\nexport interface DropdownFilterProps extends Testable, Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onSelect' | 'size' | 'list' | 'autoComplete' | 'type' | 'placeholder' | 'onKeyDown' | 'value' | 'onChange' | 'required' | 'tabIndex' | 'disabled' | 'readOnly'> {\r\n list: DropdownItem[];\r\n placeholder?: string;\r\n \r\n value?: string;\r\n onSelect?: (value: string) => void;\r\n onInputChange?: (input: string) => void;\r\n\r\n required?: boolean;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n loading?: boolean;\r\n\r\n disableFiltering?: boolean;\r\n\r\n messageOnNoResults?: string;\r\n activeValidationMessage?: string;\r\n autofilledMessage?: string;\r\n size?: Size.Small | Size.Medium;\r\n\r\n buttonFontSize?: string;\r\n margin?: string;\r\n scrollable?: boolean;\r\n}\r\n\r\nconst DropdownFilter = React.forwardRef( ({\r\n id,\r\n list,\r\n placeholder,\r\n onSelect,\r\n onInputChange,\r\n value,\r\n required,\r\n messageOnNoResults,\r\n disabled,\r\n readOnly,\r\n scrollable,\r\n activeValidationMessage,\r\n autofilledMessage,\r\n size,\r\n disableFiltering,\r\n buttonFontSize,\r\n margin,\r\n loading,\r\n onFocus,\r\n onBlur,\r\n dataTestId,\r\n ...rest\r\n }: DropdownFilterProps, ref) => {\r\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\r\n const [input, setInput] = React.useState<string>();\r\n const [activeDescendant, setActiveDescendant] = React.useState<string>();\r\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\r\n const [selectedItem, setSelectedItem] = React.useState<DropdownItem>();\r\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\r\n const [focused, setFocused] = React.useState<number | null>(null);\r\n const [inputFocused, setInputFocused] = React.useState<boolean>(false);\r\n const [init, setInit] = React.useState<boolean>(true);\r\n\r\n const styledFieldRef = useFocusVisibleRef();\r\n const inputRef = useFocusVisibleRef([styledFieldRef]);\r\n const clearButtonRef = React.useRef<HTMLButtonElement>(null);\r\n\r\n useActionWithin(styledFieldRef, input && !readOnly && !disabled ? [clearButtonRef] : []);\r\n\r\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\r\n\r\n const containerRef = useClickOutsideRef(\r\n () => setIsOpen(false),\r\n [],\r\n useFocusOutsideRef(() => setIsOpen(false)),\r\n );\r\n\r\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Esc' || e.key === 'Escape') {\r\n e.preventDefault();\r\n }\r\n if (e.key === 'ArrowDown' || e.key === 'Down' || e.key === 'ArrowUp' || e.key === 'Up') {\r\n e.preventDefault();\r\n if (!isOpen) {\r\n setIsOpen(true);\r\n }\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n setInit(true);\r\n setSelectedValues(!!value ? [value] : []);\r\n }, [value]);\r\n\r\n React.useEffect(() => {\r\n if (selectedValues?.length) {\r\n const val = selectedValues[0];\r\n const item = list.find((a) => a.value === val);\r\n setSelectedItem(item);\r\n setInput(item?.displayLabel ?? item?.value ?? '');\r\n onSelect && !init && onSelect(val);\r\n } else {\r\n setSelectedItem(undefined);\r\n onSelect && !init && onSelect('');\r\n setInput('');\r\n }\r\n }, [selectedValues]);\r\n\r\n React.useEffect(() => {\r\n if (!isOpen) {\r\n if (!!selectedItem) {\r\n setInput(selectedItem?.displayLabel ?? selectedItem?.value ?? '');\r\n } else {\r\n setInput('');\r\n }\r\n }\r\n\r\n setRestartFilter(true);\r\n }, [isOpen, selectedItem]);\r\n\r\n const handleInputClear = (e: any) => {\r\n setInput('');\r\n setSelectedValues([]);\r\n onSelect && onSelect('');\r\n inputRef.current?.focus({ focusVisible: e?.detail !== 1 } as any);\r\n };\r\n\r\n const renderInput = () => {\r\n return (\r\n <DropdownInputFieldStyles\r\n ref={styledFieldRef}\r\n className={size ? size : ''}\r\n onClick={(e: any) => {\r\n if (!readOnly && !disabled) {\r\n e.stopPropagation();\r\n setIsOpen(!isOpen);\r\n if (isOpen) {\r\n inputRef.current?.blur();\r\n } else {\r\n inputRef.current?.focus();\r\n }\r\n }\r\n }}\r\n disabled={disabled || false}\r\n readOnly={readOnly || false}\r\n isPlaceholder={!input}\r\n fontSize={buttonFontSize}\r\n showValidationMessage={!!activeValidationMessage}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n data-testid={`otherdiv_${id}`}>\r\n <DropdownInputField\r\n id={id}\r\n ref={inputRef}\r\n autoComplete={'off-' + Math.floor(Math.random() * 999999999999)}\r\n type=\"search\"\r\n placeholder={inputFocused ? '' : placeholder}\r\n onKeyDown={handleInputKeyDown}\r\n ellipsis\r\n value={input || ''}\r\n onChange={(e: any) => {\r\n if (!e.target.value) {\r\n setSelectedValues([]);\r\n }\r\n if (!readOnly && !disabled && e.target.value !== input) {\r\n setRestartFilter(false);\r\n setIsOpen(true);\r\n setInput(e.target.value);\r\n if (onInputChange) {\r\n onInputChange(e.target.value || '');\r\n }\r\n }\r\n }}\r\n onFocus={(e) => {\r\n setInputFocused(true);\r\n onFocus && onFocus(e);\r\n }}\r\n onBlur={(e) => {\r\n setInputFocused(false);\r\n onBlur && onBlur(e);\r\n }}\r\n required={required}\r\n tabIndex={disabled || readOnly ? -1 : 0}\r\n disabled={disabled || false}\r\n data-testid={dataTestId}\r\n {...rest}\r\n />\r\n {!isOpen ? <TooltipOverflow input={inputRef} withArrow={true} maxWidth=\"100%\" size={size} align='end' position='bottom'>\r\n {input}\r\n </TooltipOverflow> : null}\r\n {input && !readOnly && !disabled && !loading && (\r\n <IconButton action={handleInputClear} ref={clearButtonRef} useTransparentBackground={true} shape={'circular'} style={{ marginLeft: '-4px' }} variant={'secondary'}>\r\n <SystemIcons.Clear />\r\n </IconButton>\r\n )}\r\n\r\n {!disabled && !readOnly && loading && (\r\n <div style={{ marginLeft: '-4xp' }}>\r\n <LoadingIndicator size={Size.Small} color={COLORS.neutral_600} />\r\n </div>\r\n )}\r\n\r\n <div className={'dropdown-arrow'}>\r\n {isOpen && !readOnly && !disabled ? <SystemIcons.ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <SystemIcons.ArrowDropDown size=\"24px\" className={size ? size : ''} />}\r\n </div>\r\n </DropdownInputFieldStyles>\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n <DropdownContainer ref={containerRef}\r\n role=\"combobox\"\r\n aria-multiselectable={true} \r\n aria-controls={`${id}_dropdowncontent`}\r\n aria-activedescendant={activeDescendant}\r\n aria-expanded={isOpen}\r\n disabled={disabled} isButton={false} readOnly={readOnly} className={size ? size : ''} margin={margin}>\r\n {renderInput()}\r\n {!readOnly && !disabled && (\r\n <DropdownContent\r\n containerRef={containerRef}\r\n isOpen={isOpen && !loading}\r\n messageOnNoResults={messageOnNoResults ?? ''}\r\n selectedValues={selectedValues}\r\n setSelectedValues={setSelectedValues}\r\n size={size ?? Size.Small}\r\n onActiveDescendantChanged={(e) => setActiveDescendant(e)}\r\n focused={focused}\r\n ariaRolesType=\"input\"\r\n setFocused={setFocused}\r\n outline={false}\r\n customizationProps={{\r\n itemsType: 'normal',\r\n scrollable: scrollable,\r\n multiSelect: false,\r\n action: () => {},\r\n onValueUpdate: (values: string[]) => {\r\n setRestartFilter(true);\r\n setInit(false);\r\n },\r\n items: list,\r\n }}\r\n filter={!disableFiltering && !restartFilter ? input || '' : ''}\r\n setIsOpen={setIsOpen}\r\n isButton={false}\r\n id={`${id}_dropdowncontent`}\r\n />\r\n )}\r\n </DropdownContainer>\r\n {activeValidationMessage && (\r\n <ErrorMessage className={size || ''}>\r\n <SystemIcons.TechnicalWarning color={COLORS.critical_400} />\r\n <span>{activeValidationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n {autofilledMessage && (\r\n <AutofilledMessage className={size || ''}>\r\n <SystemIcons.Information color={COLORS.neutral_600} />\r\n <span>{autofilledMessage}</span>\r\n </AutofilledMessage>\r\n )}\r\n </>\r\n );\r\n});\r\n\r\nexport default DropdownFilter;\r\n"],"mappings":";;;;;;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,WAAW,QAAQ,UAAU;AACtC,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,wBAAwB,EAAEC,iBAAiB,EAAEC,kBAAkB,QAAQ,iBAAiB;AACjG,OAAOC,eAAe,MAAwB,mBAAmB;AACjE,SAASC,IAAI,QAAkB,UAAU;AACzC,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,gBAAgB;AAChE,OAAOC,eAAe,MAAM,6BAA6B;AACzD,SAASC,yBAAyB,EAAEC,eAAe,EAAEC,kBAAkB,EAAEC,kBAAkB,EAAEC,kBAAkB,QAAQ,WAAW;AAClI,SAASC,UAAU,QAAQ,WAAW;AAAC;AAAA;AAAA;AA2BvC,IAAMC,cAAc,gBAAGlB,KAAK,CAACmB,UAAU,CAAE,gBAuByBC,GAAG,EAAK;EAAA,IAtB9BC,EAAE,QAAFA,EAAE;IACFC,IAAI,QAAJA,IAAI;IACJC,WAAW,QAAXA,WAAW;IACXC,QAAQ,QAARA,QAAQ;IACRC,aAAa,QAAbA,aAAa;IACbC,KAAK,QAALA,KAAK;IACLC,QAAQ,QAARA,QAAQ;IACRC,kBAAkB,QAAlBA,kBAAkB;IAClBC,QAAQ,QAARA,QAAQ;IACRC,QAAQ,QAARA,QAAQ;IACRC,UAAU,QAAVA,UAAU;IACVC,uBAAuB,QAAvBA,uBAAuB;IACvBC,iBAAiB,QAAjBA,iBAAiB;IACjBC,IAAI,QAAJA,IAAI;IACJC,gBAAgB,QAAhBA,gBAAgB;IAChBC,cAAc,QAAdA,cAAc;IACdC,MAAM,QAANA,MAAM;IACNC,OAAO,QAAPA,OAAO;IACPC,QAAO,QAAPA,OAAO;IACPC,OAAM,QAANA,MAAM;IACNC,UAAU,QAAVA,UAAU;IACPC,IAAI;EAEjD,sBAA4B1C,KAAK,CAAC2C,QAAQ,CAAU,KAAK,CAAC;IAAA;IAAnDC,MAAM;IAAEC,SAAS;EACxB,uBAA0B7C,KAAK,CAAC2C,QAAQ,EAAU;IAAA;IAA3CG,KAAK;IAAEC,QAAQ;EACtB,uBAAgD/C,KAAK,CAAC2C,QAAQ,EAAU;IAAA;IAAjEK,gBAAgB;IAAEC,mBAAmB;EAC5C,uBAA0CjD,KAAK,CAAC2C,QAAQ,CAAU,KAAK,CAAC;IAAA;IAAjEO,aAAa;IAAEC,gBAAgB;EACtC,uBAAwCnD,KAAK,CAAC2C,QAAQ,EAAgB;IAAA;IAA/DS,YAAY;IAAEC,eAAe;EACpC,wBAA4CrD,KAAK,CAAC2C,QAAQ,CAAW,EAAE,CAAC;IAAA;IAAjEW,cAAc;IAAEC,iBAAiB;EACxC,wBAA8BvD,KAAK,CAAC2C,QAAQ,CAAgB,IAAI,CAAC;IAAA;IAA1Da,OAAO;IAAEC,UAAU;EAC1B,wBAAwCzD,KAAK,CAAC2C,QAAQ,CAAU,KAAK,CAAC;IAAA;IAA/De,YAAY;IAAEC,eAAe;EACpC,wBAAwB3D,KAAK,CAAC2C,QAAQ,CAAU,IAAI,CAAC;IAAA;IAA9CiB,IAAI;IAAEC,OAAO;EAEpB,IAAMC,cAAc,GAAG9C,kBAAkB,EAAE;EAC3C,IAAM+C,QAAQ,GAAG/C,kBAAkB,CAAC,CAAC8C,cAAc,CAAC,CAAC;EACrD,IAAME,cAAc,GAAGhE,KAAK,CAACiE,MAAM,CAAoB,IAAI,CAAC;EAE5DpD,eAAe,CAACiD,cAAc,EAAEhB,KAAK,IAAI,CAAChB,QAAQ,IAAI,CAACD,QAAQ,GAAG,CAACmC,cAAc,CAAC,GAAG,EAAE,CAAC;EAExFhE,KAAK,CAACkE,mBAAmB,CAAC9C,GAAG,EAAE;IAAA,OAAM2C,QAAQ,CAACI,OAAO;EAAA,GAAE,CAACJ,QAAQ,CAAC,CAAC;EAElE,IAAMK,YAAY,GAAGtD,kBAAkB,CACrC;IAAA,OAAM+B,SAAS,CAAC,KAAK,CAAC;EAAA,GACtB,EAAE,EACF9B,kBAAkB,CAAC;IAAA,OAAM8B,SAAS,CAAC,KAAK,CAAC;EAAA,EAAC,CAC3C;EAED,IAAMwB,kBAAkB,GAAG,SAArBA,kBAAkB,CAAIC,CAAwC,EAAK;IACvE,IAAIA,CAAC,CAACC,GAAG,KAAK,KAAK,IAAID,CAAC,CAACC,GAAG,KAAK,QAAQ,EAAE;MACzCD,CAAC,CAACE,cAAc,EAAE;IACpB;IACA,IAAIF,CAAC,CAACC,GAAG,KAAK,WAAW,IAAID,CAAC,CAACC,GAAG,KAAK,MAAM,IAAID,CAAC,CAACC,GAAG,KAAK,SAAS,IAAID,CAAC,CAACC,GAAG,KAAK,IAAI,EAAE;MACtFD,CAAC,CAACE,cAAc,EAAE;MAClB,IAAI,CAAC5B,MAAM,EAAE;QACXC,SAAS,CAAC,IAAI,CAAC;MACjB;IACF;EACF,CAAC;EAED7C,KAAK,CAACyE,SAAS,CAAC,YAAM;IACpBZ,OAAO,CAAC,IAAI,CAAC;IACbN,iBAAiB,CAAC,CAAC,CAAC7B,KAAK,GAAG,CAACA,KAAK,CAAC,GAAG,EAAE,CAAC;EAC3C,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX1B,KAAK,CAACyE,SAAS,CAAC,YAAM;IACpB,IAAInB,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAEoB,MAAM,EAAE;MAAA;MAC1B,IAAMC,GAAG,GAAGrB,cAAc,CAAC,CAAC,CAAC;MAC7B,IAAMsB,IAAI,GAAGtD,IAAI,CAACuD,IAAI,CAAC,UAACC,CAAC;QAAA,OAAKA,CAAC,CAACpD,KAAK,KAAKiD,GAAG;MAAA,EAAC;MAC9CtB,eAAe,CAACuB,IAAI,CAAC;MACrB7B,QAAQ,gCAAC6B,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEG,YAAY,mEAAIH,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAElD,KAAK,yCAAI,EAAE,CAAC;MACjDF,QAAQ,IAAI,CAACoC,IAAI,IAAIpC,QAAQ,CAACmD,GAAG,CAAC;IACpC,CAAC,MAAM;MACLtB,eAAe,CAAC2B,SAAS,CAAC;MAC1BxD,QAAQ,IAAI,CAACoC,IAAI,IAAIpC,QAAQ,CAAC,EAAE,CAAC;MACjCuB,QAAQ,CAAC,EAAE,CAAC;IACd;EACF,CAAC,EAAE,CAACO,cAAc,CAAC,CAAC;EAEpBtD,KAAK,CAACyE,SAAS,CAAC,YAAM;IACpB,IAAI,CAAC7B,MAAM,EAAE;MACX,IAAI,CAAC,CAACQ,YAAY,EAAE;QAAA;QAClBL,QAAQ,mCAACK,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAE2B,YAAY,yEAAI3B,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAE1B,KAAK,yCAAI,EAAE,CAAC;MACnE,CAAC,MAAM;QACLqB,QAAQ,CAAC,EAAE,CAAC;MACd;IACF;IAEAI,gBAAgB,CAAC,IAAI,CAAC;EACxB,CAAC,EAAE,CAACP,MAAM,EAAEQ,YAAY,CAAC,CAAC;EAE1B,IAAM6B,gBAAgB,GAAG,SAAnBA,gBAAgB,CAAIX,CAAM,EAAK;IAAA;IACnCvB,QAAQ,CAAC,EAAE,CAAC;IACZQ,iBAAiB,CAAC,EAAE,CAAC;IACrB/B,QAAQ,IAAIA,QAAQ,CAAC,EAAE,CAAC;IACxB,qBAAAuC,QAAQ,CAACI,OAAO,sDAAhB,kBAAkBe,KAAK,CAAC;MAAEC,YAAY,EAAE,CAAAb,CAAC,aAADA,CAAC,uBAADA,CAAC,CAAEc,MAAM,MAAK;IAAE,CAAC,CAAQ;EACnE,CAAC;EAED,IAAMC,WAAW,GAAG,SAAdA,WAAW,GAAS;IACxB,oBACE,MAAC,wBAAwB;MACvB,GAAG,EAAEvB,cAAe;MACpB,SAAS,EAAE5B,IAAI,GAAGA,IAAI,GAAG,EAAG;MAC5B,OAAO,EAAE,iBAACoC,CAAM,EAAK;QACnB,IAAI,CAACxC,QAAQ,IAAI,CAACD,QAAQ,EAAE;UAC1ByC,CAAC,CAACgB,eAAe,EAAE;UACnBzC,SAAS,CAAC,CAACD,MAAM,CAAC;UAClB,IAAIA,MAAM,EAAE;YAAA;YACV,sBAAAmB,QAAQ,CAACI,OAAO,uDAAhB,mBAAkBoB,IAAI,EAAE;UAC1B,CAAC,MAAM;YAAA;YACL,sBAAAxB,QAAQ,CAACI,OAAO,uDAAhB,mBAAkBe,KAAK,EAAE;UAC3B;QACF;MACF,CAAE;MACF,QAAQ,EAAErD,QAAQ,IAAI,KAAM;MAC5B,QAAQ,EAAEC,QAAQ,IAAI,KAAM;MAC5B,aAAa,EAAE,CAACgB,KAAM;MACtB,QAAQ,EAAEV,cAAe;MACzB,qBAAqB,EAAE,CAAC,CAACJ,uBAAwB;MACjD,WAAW,EAAEpB,yBAA0B;MACvC,kCAAyBS,EAAE,CAAG;MAAA,wBAC9B,KAAC,kBAAkB;QACjB,EAAE,EAAEA,EAAG;QACP,GAAG,EAAE0C,QAAS;QACd,YAAY,EAAE,MAAM,GAAGyB,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,EAAE,GAAG,YAAY,CAAE;QAChE,IAAI,EAAC,QAAQ;QACb,WAAW,EAAEhC,YAAY,GAAG,EAAE,GAAGnC,WAAY;QAC7C,SAAS,EAAE8C,kBAAmB;QAC9B,QAAQ;QACR,KAAK,EAAEvB,KAAK,IAAI,EAAG;QACnB,QAAQ,EAAE,kBAACwB,CAAM,EAAK;UACpB,IAAI,CAACA,CAAC,CAACqB,MAAM,CAACjE,KAAK,EAAE;YACnB6B,iBAAiB,CAAC,EAAE,CAAC;UACvB;UACA,IAAI,CAACzB,QAAQ,IAAI,CAACD,QAAQ,IAAIyC,CAAC,CAACqB,MAAM,CAACjE,KAAK,KAAKoB,KAAK,EAAE;YACtDK,gBAAgB,CAAC,KAAK,CAAC;YACvBN,SAAS,CAAC,IAAI,CAAC;YACfE,QAAQ,CAACuB,CAAC,CAACqB,MAAM,CAACjE,KAAK,CAAC;YACxB,IAAID,aAAa,EAAE;cACjBA,aAAa,CAAC6C,CAAC,CAACqB,MAAM,CAACjE,KAAK,IAAI,EAAE,CAAC;YACrC;UACF;QACF,CAAE;QACF,OAAO,EAAE,iBAAC4C,CAAC,EAAK;UACdX,eAAe,CAAC,IAAI,CAAC;UACrBpB,QAAO,IAAIA,QAAO,CAAC+B,CAAC,CAAC;QACvB,CAAE;QACF,MAAM,EAAE,gBAACA,CAAC,EAAK;UACbX,eAAe,CAAC,KAAK,CAAC;UACtBnB,OAAM,IAAIA,OAAM,CAAC8B,CAAC,CAAC;QACrB,CAAE;QACF,QAAQ,EAAE3C,QAAS;QACnB,QAAQ,EAAEE,QAAQ,IAAIC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAE;QACxC,QAAQ,EAAED,QAAQ,IAAI,KAAM;QAC5B,eAAaY;MAAW,GACpBC,IAAI,EACR,EACD,CAACE,MAAM,gBAAG,KAAC,eAAe;QAAC,KAAK,EAAEmB,QAAS;QAAC,SAAS,EAAE,IAAK;QAAC,QAAQ,EAAC,MAAM;QAAC,IAAI,EAAE7B,IAAK;QAAC,KAAK,EAAC,KAAK;QAAC,QAAQ,EAAC,QAAQ;QAAA,UAClHY;MAAK,EACU,GAAG,IAAI,EAC1BA,KAAK,IAAI,CAAChB,QAAQ,IAAI,CAACD,QAAQ,IAAI,CAACS,OAAO,iBAC1C,KAAC,UAAU;QAAC,MAAM,EAAE2C,gBAAiB;QAAC,GAAG,EAAEjB,cAAe;QAAC,wBAAwB,EAAE,IAAK;QAAC,KAAK,EAAE,UAAW;QAAC,KAAK,EAAE;UAAE4B,UAAU,EAAE;QAAO,CAAE;QAAC,OAAO,EAAE,WAAY;QAAA,uBAChK,KAAC,WAAW,CAAC,KAAK;MAAG,EAExB,EAEA,CAAC/D,QAAQ,IAAI,CAACC,QAAQ,IAAIQ,OAAO,iBAChC;QAAK,KAAK,EAAE;UAAEsD,UAAU,EAAE;QAAO,CAAE;QAAA,uBACjC,KAAC,gBAAgB;UAAC,IAAI,EAAEpF,IAAI,CAACqF,KAAM;UAAC,KAAK,EAAE5F,MAAM,CAAC6F;QAAY;MAAG,EAEpE,eAED;QAAK,SAAS,EAAE,gBAAiB;QAAA,UAC9BlD,MAAM,IAAI,CAACd,QAAQ,IAAI,CAACD,QAAQ,gBAAG,KAAC,WAAW,CAAC,WAAW;UAAC,IAAI,EAAC,MAAM;UAAC,SAAS,EAAEK,IAAI,GAAGA,IAAI,GAAG;QAAG,EAAG,gBAAG,KAAC,WAAW,CAAC,aAAa;UAAC,IAAI,EAAC,MAAM;UAAC,SAAS,EAAEA,IAAI,GAAGA,IAAI,GAAG;QAAG;MAAG,EAC7K;IAAA,EACmB;EAE/B,CAAC;EAED,oBACE;IAAA,wBACE,MAAC,iBAAiB;MAAC,GAAG,EAAEkC,YAAa;MACrC,IAAI,EAAC,UAAU;MACf,wBAAsB,IAAK;MAC3B,2BAAkB/C,EAAE,qBAAmB;MACvC,yBAAuB2B,gBAAiB;MACxC,iBAAeJ,MAAO;MACtB,QAAQ,EAAEf,QAAS;MAAC,QAAQ,EAAE,KAAM;MAAC,QAAQ,EAAEC,QAAS;MAAC,SAAS,EAAEI,IAAI,GAAGA,IAAI,GAAG,EAAG;MAAC,MAAM,EAAEG,MAAO;MAAA,WAClGgD,WAAW,EAAE,EACb,CAACvD,QAAQ,IAAI,CAACD,QAAQ,iBACrB,KAAC,eAAe;QACd,YAAY,EAAEuC,YAAa;QAC3B,MAAM,EAAExB,MAAM,IAAI,CAACN,OAAQ;QAC3B,kBAAkB,EAAEV,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,EAAG;QAC7C,cAAc,EAAE0B,cAAe;QAC/B,iBAAiB,EAAEC,iBAAkB;QACrC,IAAI,EAAErB,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI1B,IAAI,CAACqF,KAAM;QACzB,yBAAyB,EAAE,mCAACvB,CAAC;UAAA,OAAKrB,mBAAmB,CAACqB,CAAC,CAAC;QAAA,CAAC;QACzD,OAAO,EAAEd,OAAQ;QACjB,aAAa,EAAC,OAAO;QACrB,UAAU,EAAEC,UAAW;QACvB,OAAO,EAAE,KAAM;QACf,kBAAkB,EAAE;UAClBsC,SAAS,EAAE,QAAQ;UACnBhE,UAAU,EAAEA,UAAU;UACtBiE,WAAW,EAAE,KAAK;UAClBC,MAAM,EAAE,kBAAM,CAAC,CAAC;UAChBC,aAAa,EAAE,uBAACC,MAAgB,EAAK;YACnChD,gBAAgB,CAAC,IAAI,CAAC;YACtBU,OAAO,CAAC,KAAK,CAAC;UAChB,CAAC;UACDuC,KAAK,EAAE9E;QACT,CAAE;QACF,MAAM,EAAE,CAACa,gBAAgB,IAAI,CAACe,aAAa,GAAGJ,KAAK,IAAI,EAAE,GAAG,EAAG;QAC/D,SAAS,EAAED,SAAU;QACrB,QAAQ,EAAE,KAAM;QAChB,EAAE,YAAKxB,EAAE;MAAmB,EAE/B;IAAA,EACiB,EACnBW,uBAAuB,iBACtB,MAAC,YAAY;MAAC,SAAS,EAAEE,IAAI,IAAI,EAAG;MAAA,wBAClC,KAAC,WAAW,CAAC,gBAAgB;QAAC,KAAK,EAAEjC,MAAM,CAACoG;MAAa,EAAG,eAC5D;QAAA,UAAOrE;MAAuB,EAAQ;IAAA,EAEzC,EACAC,iBAAiB,iBAChB,MAAC,iBAAiB;MAAC,SAAS,EAAEC,IAAI,IAAI,EAAG;MAAA,wBACvC,KAAC,WAAW,CAAC,WAAW;QAAC,KAAK,EAAEjC,MAAM,CAAC6F;MAAY,EAAG,eACtD;QAAA,UAAO7D;MAAiB,EAAQ;IAAA,EAEnC;EAAA,EACA;AAEP,CAAC,CAAC;AAAC;EAlQDX,IAAI;EACJC,WAAW;EAEXG,KAAK;EACLF,QAAQ;EACRC,aAAa;EAEbE,QAAQ;EACRE,QAAQ;EACRC,QAAQ;EACRQ,OAAO;EAEPH,gBAAgB;EAEhBP,kBAAkB;EAClBI,uBAAuB;EACvBC,iBAAiB;EAGjBG,cAAc;EACdC,MAAM;EACNN,UAAU;AAAA;AA+OZ,eAAeb,cAAc"}
|
|
@@ -197,7 +197,9 @@ GlobalNavigationBar.propTypes = {
|
|
|
197
197
|
}),
|
|
198
198
|
testId: _propTypes.default.string,
|
|
199
199
|
profileComponent: _propTypes.default.node,
|
|
200
|
-
border: _propTypes.default.bool
|
|
200
|
+
border: _propTypes.default.bool,
|
|
201
|
+
searchServiceBaseUrl: _propTypes.default.string,
|
|
202
|
+
searchServiceAuthenticationToken: _propTypes.default.string
|
|
201
203
|
};
|
|
202
204
|
var _default = GlobalNavigationBar;
|
|
203
205
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalNavigationBar.cjs","names":["HeaderWrapper","styled","header","COLORS","neutral_200","Z_INDEXES","sticky_menu","BREAKPOINTS","MEDIUM","LARGE","RowLayout","div","HamburgerButton","RightSide","MobileMenuBackdrop","backdrop","fadeIn","fadeOut","MobileWrapper","UserMenuWrapper","white","props","offsetRight","hasWindow","window","innerWidth","GlobalNavigationBar","name","isAuthenticated","logo","profile","mobile","desktop","testId","useMaxWidth","maxWidth","profileComponent","border","React","useState","showMobileMenu","setShowMobileMenu","wasMobileMenuOpen","usePreviousImmediate","showUserMenu","setShowUserMenu","actionsRef","useRef","profileButtonRef","current","buttons","find","a","type","ref","mobileMenuButtonRef","rightSideRef","avatarRight","setAvatarRight","userMenuRef","useClickOutsideRef","mobileMenuRef","useEffect","handleResize","profileRightOffset","getBoundingClientRect","right","addEventListener","removeEventListener","showBetaTag","onClick","to","items","filter","pinned","reverseRightSideOrder","map","x","action","user","undefined","some"],"sources":["../../src/GlobalNavigationBar/GlobalNavigationBar.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport Logo from './Logo';\r\nimport MainMenu from './desktop/MainMenu';\r\nimport {PageWidth} from '../Layouts';\r\nimport {COLORS, BREAKPOINTS} from '../styles';\r\nimport RightSideNav from './desktop/RightSideNav';\r\nimport MobileMenu from './mobile/MobileMenu';\r\nimport {SystemIcons} from '../icons';\r\nimport UserMenu from './desktop/UserMenu';\r\nimport {fadeIn, fadeOut, Menu as MobileMenuWrapper} from './mobile/CommonStyles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport {\r\n DesktopNavigationMenuProps, MenuNavigationItemTypeItem, MenuProfileButton,\r\n MobileNavigationMenuProps,\r\n ProfileMenu\r\n} from './types';\r\nimport {IconButton} from '../Button';\r\nimport DesktopActions, {DesktopActionsRef} from './desktop/DesktopActions';\r\nimport {usePreviousImmediate} from 'rooks';\r\nimport {useClickOutsideRef} from '../common';\r\nimport { hasWindow } from '../utils/utils';\r\n\r\nconst HeaderWrapper = styled.header`\r\n background: white;\r\n box-sizing: border-box;\r\n \r\n &.border:after{\r\n content: '';\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n bottom: -1px;\r\n height: 1px;\r\n background: ${COLORS.neutral_200};\r\n z-index: 5;\r\n }\r\n\r\n z-index: ${Z_INDEXES.sticky_menu};\r\n position: relative;\r\n\r\n height: 48px;\r\n\r\n ${BREAKPOINTS.MEDIUM} {\r\n height: 64px;\r\n }\r\n\r\n ${BREAKPOINTS.LARGE} {\r\n height: 80px;\r\n }\r\n\r\n @media all and (-ms-high-contrast: none) {\r\n height: auto;\r\n }\r\n\r\n @media print {\r\n border-bottom: none;\r\n }\r\n`;\r\n\r\nconst RowLayout = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\n\r\nconst HamburgerButton = styled.div`\r\n ${BREAKPOINTS.MEDIUM} {\r\n display: none;\r\n }\r\n`;\r\n\r\nconst RightSide = styled.div`\r\n display: flex;\r\n align-items: center;\r\n\r\n margin: 0 0 0 auto;\r\n\r\n &.reverse {\r\n ${HamburgerButton} {\r\n order: -1;\r\n }\r\n\r\n flex-direction: row-reverse;\r\n }\r\n`;\r\n\r\nconst MobileMenuBackdrop = styled.div`\r\n background: rgba(0, 0, 0, 0.5);\r\n display: flex;\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n height: 100%;\r\n width: 100%;\r\n overflow: hidden;\r\n z-index: ${Z_INDEXES.backdrop};\r\n visibility: hidden;\r\n\r\n &.open {\r\n visibility: visible;\r\n animation: ${fadeIn} 0.3s ease-in-out;\r\n }\r\n\r\n &.closed {\r\n visibility: hidden;\r\n animation: ${fadeOut} 0.3s ease-in-out;\r\n }\r\n\r\n ${BREAKPOINTS.LARGE} {\r\n visibility: hidden !important;\r\n }\r\n`;\r\n\r\nconst MobileWrapper = styled.div`\r\n ${BREAKPOINTS.MEDIUM} {\r\n display: none !important;\r\n }\r\n`;\r\n\r\n\r\nconst UserMenuWrapper = styled.div<{ offsetRight?: number }>`\r\n background-color: ${COLORS.white};\r\n display: flex;\r\n position: absolute;\r\n\r\n ${BREAKPOINTS.LARGE} {\r\n top: 80px;\r\n right: ${(props) => (props.offsetRight && hasWindow() ? `${window.innerWidth - props.offsetRight + 296}px` : '10%')};\r\n }\r\n`;\r\n\r\n\r\n\r\ntype GlobalNavigationBarProps = {\r\n isAuthenticated?: boolean;\r\n useMaxWidth?: boolean;\r\n maxWidth?: number;\r\n\r\n name?: string;\r\n logo?: { onClick?: () => void; to?: string; showBetaTag?: boolean; };\r\n\r\n profile?: ProfileMenu;\r\n\r\n mobile?: MobileNavigationMenuProps;\r\n desktop?: DesktopNavigationMenuProps;\r\n\r\n testId?: string;\r\n\r\n profileComponent?: React.ReactNode\r\n border?: boolean;\r\n};\r\n\r\n/**\r\n * @param props\r\n * @constructor\r\n * @description This component is a global navigation header bar\r\n */\r\nconst GlobalNavigationBar = ({\r\n name,\r\n isAuthenticated,\r\n logo,\r\n profile,\r\n mobile,\r\n desktop,\r\n testId,\r\n useMaxWidth = true,\r\n maxWidth,\r\n profileComponent,\r\n border = true\r\n }: GlobalNavigationBarProps): React.ReactElement<GlobalNavigationBarProps> => {\r\n const [showMobileMenu, setShowMobileMenu] = React.useState(false);\r\n const wasMobileMenuOpen = usePreviousImmediate(showMobileMenu);\r\n\r\n const [showUserMenu, setShowUserMenu] = React.useState(false);\r\n\r\n const actionsRef = React.useRef<DesktopActionsRef>(null);\r\n const profileButtonRef = React.useRef<HTMLButtonElement | null>() as React.MutableRefObject<HTMLButtonElement | null | undefined>;\r\n profileButtonRef.current = actionsRef?.current?.buttons?.find(a => a.type === 'profile')?.ref?.current;\r\n\r\n const mobileMenuButtonRef = React.useRef<HTMLButtonElement>(null);\r\n\r\n const rightSideRef = React.useRef(null);\r\n const [avatarRight, setAvatarRight] = React.useState<number>(0);\r\n\r\n\r\n const userMenuRef = useClickOutsideRef(() => setShowUserMenu(false), [profileButtonRef]);\r\n const mobileMenuRef = useClickOutsideRef(() => setShowMobileMenu(false), [mobileMenuButtonRef]);\r\n\r\n React.useEffect(() => {\r\n if (!profileButtonRef.current) return;\r\n\r\n const handleResize = () => {\r\n const profileRightOffset = profileButtonRef.current?.getBoundingClientRect()?.right;\r\n setAvatarRight(profileRightOffset || 0);\r\n };\r\n\r\n handleResize();\r\n window.addEventListener('resize', handleResize);\r\n return () => window.removeEventListener('resize', handleResize);\r\n }, [profileButtonRef.current]);\r\n\r\n\r\n return (\r\n <>\r\n <HeaderWrapper data-testid={testId} className={border ? 'border' : ''}>\r\n <PageWidth useMaxWidth={useMaxWidth} maxWidth={maxWidth} unsetMargin={true}>\r\n <RowLayout>\r\n <Logo name={name || ''} showBetaTag={logo?.showBetaTag} onClick={logo?.onClick} to={logo?.to}/>\r\n {\r\n isAuthenticated &&\r\n <MainMenu items={desktop?.items.filter(a => !a.pinned) || []} rightSideRef={rightSideRef}/>\r\n }\r\n <RightSide className={`${desktop?.reverseRightSideOrder ? 'reverse' : ''}`}\r\n ref={rightSideRef}>\r\n <RightSideNav items={desktop?.items?.filter(a => a.pinned && a.type == 'item').map(x => x as MenuNavigationItemTypeItem)} action={desktop?.action}/>\r\n <MobileWrapper>\r\n {!!profileComponent && profileComponent }\r\n </MobileWrapper>\r\n\r\n <DesktopActions ref={actionsRef}\r\n buttons={desktop?.buttons}\r\n onShowUserMenu={() => setShowUserMenu(!showUserMenu)}\r\n user={profile?.user}\r\n profileComponent= {profileComponent}\r\n />\r\n <HamburgerButton hidden={!isAuthenticated}>\r\n <IconButton action={() => setShowMobileMenu(!showMobileMenu)}\r\n ref={mobileMenuButtonRef}\r\n shape={'circular'}\r\n variant={'secondary'}>\r\n <SystemIcons.Menu size=\"24px\"/>\r\n </IconButton>\r\n </HamburgerButton>\r\n </RightSide>\r\n </RowLayout>\r\n </PageWidth>\r\n </HeaderWrapper>\r\n <MobileMenuBackdrop className={showMobileMenu ? 'open' : !showUserMenu && wasMobileMenuOpen ? 'closed' : ''}>\r\n <MobileMenuWrapper ref={mobileMenuRef}\r\n role=\"menu\"\r\n aria-labelledby=\"UserMenuButton\">\r\n <MobileMenu {...mobile}\r\n show={showMobileMenu}\r\n onClose={() => setShowMobileMenu(false)}\r\n profile={!profileComponent ? profile : undefined}/>\r\n </MobileMenuWrapper>\r\n </MobileMenuBackdrop>\r\n {\r\n desktop?.buttons?.some(a => a.type === 'profile') && !!profile &&\r\n <UserMenuWrapper ref={userMenuRef}\r\n offsetRight={avatarRight}\r\n data-testid=\"testUserMenuWrapper\">\r\n <UserMenu {...profile}\r\n show={showUserMenu}\r\n onHideUserMenu={() => setShowUserMenu(false)}/>\r\n </UserMenuWrapper>\r\n }\r\n </>\r\n );\r\n};\r\n\r\nexport default GlobalNavigationBar;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GlobalNavigationBar.cjs","names":["HeaderWrapper","styled","header","COLORS","neutral_200","Z_INDEXES","sticky_menu","BREAKPOINTS","MEDIUM","LARGE","RowLayout","div","HamburgerButton","RightSide","MobileMenuBackdrop","backdrop","fadeIn","fadeOut","MobileWrapper","UserMenuWrapper","white","props","offsetRight","hasWindow","window","innerWidth","GlobalNavigationBar","name","isAuthenticated","logo","profile","mobile","desktop","testId","useMaxWidth","maxWidth","profileComponent","border","React","useState","showMobileMenu","setShowMobileMenu","wasMobileMenuOpen","usePreviousImmediate","showUserMenu","setShowUserMenu","actionsRef","useRef","profileButtonRef","current","buttons","find","a","type","ref","mobileMenuButtonRef","rightSideRef","avatarRight","setAvatarRight","userMenuRef","useClickOutsideRef","mobileMenuRef","useEffect","handleResize","profileRightOffset","getBoundingClientRect","right","addEventListener","removeEventListener","showBetaTag","onClick","to","items","filter","pinned","reverseRightSideOrder","map","x","action","user","undefined","some","searchServiceBaseUrl","searchServiceAuthenticationToken"],"sources":["../../src/GlobalNavigationBar/GlobalNavigationBar.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport Logo from './Logo';\r\nimport MainMenu from './desktop/MainMenu';\r\nimport {PageWidth} from '../Layouts';\r\nimport {COLORS, BREAKPOINTS} from '../styles';\r\nimport RightSideNav from './desktop/RightSideNav';\r\nimport MobileMenu from './mobile/MobileMenu';\r\nimport {SystemIcons} from '../icons';\r\nimport UserMenu from './desktop/UserMenu';\r\nimport {fadeIn, fadeOut, Menu as MobileMenuWrapper} from './mobile/CommonStyles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport {\r\n DesktopNavigationMenuProps, MenuNavigationItemTypeItem, MenuProfileButton,\r\n MobileNavigationMenuProps,\r\n ProfileMenu\r\n} from './types';\r\nimport {IconButton} from '../Button';\r\nimport DesktopActions, {DesktopActionsRef} from './desktop/DesktopActions';\r\nimport {usePreviousImmediate} from 'rooks';\r\nimport {useClickOutsideRef} from '../common';\r\nimport { hasWindow } from '../utils/utils';\r\n\r\nconst HeaderWrapper = styled.header`\r\n background: white;\r\n box-sizing: border-box;\r\n \r\n &.border:after{\r\n content: '';\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n bottom: -1px;\r\n height: 1px;\r\n background: ${COLORS.neutral_200};\r\n z-index: 5;\r\n }\r\n\r\n z-index: ${Z_INDEXES.sticky_menu};\r\n position: relative;\r\n\r\n height: 48px;\r\n\r\n ${BREAKPOINTS.MEDIUM} {\r\n height: 64px;\r\n }\r\n\r\n ${BREAKPOINTS.LARGE} {\r\n height: 80px;\r\n }\r\n\r\n @media all and (-ms-high-contrast: none) {\r\n height: auto;\r\n }\r\n\r\n @media print {\r\n border-bottom: none;\r\n }\r\n`;\r\n\r\nconst RowLayout = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\n\r\nconst HamburgerButton = styled.div`\r\n ${BREAKPOINTS.MEDIUM} {\r\n display: none;\r\n }\r\n`;\r\n\r\nconst RightSide = styled.div`\r\n display: flex;\r\n align-items: center;\r\n\r\n margin: 0 0 0 auto;\r\n\r\n &.reverse {\r\n ${HamburgerButton} {\r\n order: -1;\r\n }\r\n\r\n flex-direction: row-reverse;\r\n }\r\n`;\r\n\r\nconst MobileMenuBackdrop = styled.div`\r\n background: rgba(0, 0, 0, 0.5);\r\n display: flex;\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n height: 100%;\r\n width: 100%;\r\n overflow: hidden;\r\n z-index: ${Z_INDEXES.backdrop};\r\n visibility: hidden;\r\n\r\n &.open {\r\n visibility: visible;\r\n animation: ${fadeIn} 0.3s ease-in-out;\r\n }\r\n\r\n &.closed {\r\n visibility: hidden;\r\n animation: ${fadeOut} 0.3s ease-in-out;\r\n }\r\n\r\n ${BREAKPOINTS.LARGE} {\r\n visibility: hidden !important;\r\n }\r\n`;\r\n\r\nconst MobileWrapper = styled.div`\r\n ${BREAKPOINTS.MEDIUM} {\r\n display: none !important;\r\n }\r\n`;\r\n\r\n\r\nconst UserMenuWrapper = styled.div<{ offsetRight?: number }>`\r\n background-color: ${COLORS.white};\r\n display: flex;\r\n position: absolute;\r\n\r\n ${BREAKPOINTS.LARGE} {\r\n top: 80px;\r\n right: ${(props) => (props.offsetRight && hasWindow() ? `${window.innerWidth - props.offsetRight + 296}px` : '10%')};\r\n }\r\n`;\r\n\r\n\r\n\r\ntype GlobalNavigationBarProps = {\r\n isAuthenticated?: boolean;\r\n useMaxWidth?: boolean;\r\n maxWidth?: number;\r\n\r\n name?: string;\r\n logo?: { onClick?: () => void; to?: string; showBetaTag?: boolean; };\r\n\r\n profile?: ProfileMenu;\r\n\r\n mobile?: MobileNavigationMenuProps;\r\n desktop?: DesktopNavigationMenuProps;\r\n\r\n testId?: string;\r\n\r\n profileComponent?: React.ReactNode\r\n border?: boolean;\r\n\r\n searchServiceBaseUrl?: string;\r\n searchServiceAuthenticationToken?: string;\r\n};\r\n\r\n/**\r\n * @param props\r\n * @constructor\r\n * @description This component is a global navigation header bar\r\n */\r\nconst GlobalNavigationBar = ({\r\n name,\r\n isAuthenticated,\r\n logo,\r\n profile,\r\n mobile,\r\n desktop,\r\n testId,\r\n useMaxWidth = true,\r\n maxWidth,\r\n profileComponent,\r\n border = true\r\n }: GlobalNavigationBarProps): React.ReactElement<GlobalNavigationBarProps> => {\r\n const [showMobileMenu, setShowMobileMenu] = React.useState(false);\r\n const wasMobileMenuOpen = usePreviousImmediate(showMobileMenu);\r\n\r\n const [showUserMenu, setShowUserMenu] = React.useState(false);\r\n\r\n const actionsRef = React.useRef<DesktopActionsRef>(null);\r\n const profileButtonRef = React.useRef<HTMLButtonElement | null>() as React.MutableRefObject<HTMLButtonElement | null | undefined>;\r\n profileButtonRef.current = actionsRef?.current?.buttons?.find(a => a.type === 'profile')?.ref?.current;\r\n\r\n const mobileMenuButtonRef = React.useRef<HTMLButtonElement>(null);\r\n\r\n const rightSideRef = React.useRef(null);\r\n const [avatarRight, setAvatarRight] = React.useState<number>(0);\r\n\r\n\r\n const userMenuRef = useClickOutsideRef(() => setShowUserMenu(false), [profileButtonRef]);\r\n const mobileMenuRef = useClickOutsideRef(() => setShowMobileMenu(false), [mobileMenuButtonRef]);\r\n\r\n React.useEffect(() => {\r\n if (!profileButtonRef.current) return;\r\n\r\n const handleResize = () => {\r\n const profileRightOffset = profileButtonRef.current?.getBoundingClientRect()?.right;\r\n setAvatarRight(profileRightOffset || 0);\r\n };\r\n\r\n handleResize();\r\n window.addEventListener('resize', handleResize);\r\n return () => window.removeEventListener('resize', handleResize);\r\n }, [profileButtonRef.current]);\r\n\r\n\r\n return (\r\n <>\r\n <HeaderWrapper data-testid={testId} className={border ? 'border' : ''}>\r\n <PageWidth useMaxWidth={useMaxWidth} maxWidth={maxWidth} unsetMargin={true}>\r\n <RowLayout>\r\n <Logo name={name || ''} showBetaTag={logo?.showBetaTag} onClick={logo?.onClick} to={logo?.to}/>\r\n {\r\n isAuthenticated &&\r\n <MainMenu items={desktop?.items.filter(a => !a.pinned) || []} rightSideRef={rightSideRef}/>\r\n }\r\n <RightSide className={`${desktop?.reverseRightSideOrder ? 'reverse' : ''}`}\r\n ref={rightSideRef}>\r\n <RightSideNav items={desktop?.items?.filter(a => a.pinned && a.type == 'item').map(x => x as MenuNavigationItemTypeItem)} action={desktop?.action}/>\r\n <MobileWrapper>\r\n {!!profileComponent && profileComponent }\r\n </MobileWrapper>\r\n\r\n <DesktopActions ref={actionsRef}\r\n buttons={desktop?.buttons}\r\n onShowUserMenu={() => setShowUserMenu(!showUserMenu)}\r\n user={profile?.user}\r\n profileComponent= {profileComponent}\r\n />\r\n <HamburgerButton hidden={!isAuthenticated}>\r\n <IconButton action={() => setShowMobileMenu(!showMobileMenu)}\r\n ref={mobileMenuButtonRef}\r\n shape={'circular'}\r\n variant={'secondary'}>\r\n <SystemIcons.Menu size=\"24px\"/>\r\n </IconButton>\r\n </HamburgerButton>\r\n </RightSide>\r\n </RowLayout>\r\n </PageWidth>\r\n </HeaderWrapper>\r\n <MobileMenuBackdrop className={showMobileMenu ? 'open' : !showUserMenu && wasMobileMenuOpen ? 'closed' : ''}>\r\n <MobileMenuWrapper ref={mobileMenuRef}\r\n role=\"menu\"\r\n aria-labelledby=\"UserMenuButton\">\r\n <MobileMenu {...mobile}\r\n show={showMobileMenu}\r\n onClose={() => setShowMobileMenu(false)}\r\n profile={!profileComponent ? profile : undefined}/>\r\n </MobileMenuWrapper>\r\n </MobileMenuBackdrop>\r\n {\r\n desktop?.buttons?.some(a => a.type === 'profile') && !!profile &&\r\n <UserMenuWrapper ref={userMenuRef}\r\n offsetRight={avatarRight}\r\n data-testid=\"testUserMenuWrapper\">\r\n <UserMenu {...profile}\r\n show={showUserMenu}\r\n onHideUserMenu={() => setShowUserMenu(false)}/>\r\n </UserMenuWrapper>\r\n }\r\n </>\r\n );\r\n};\r\n\r\nexport default GlobalNavigationBar;\r\n"],"mappings":"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"}
|
|
@@ -190,7 +190,9 @@ GlobalNavigationBar.propTypes = {
|
|
|
190
190
|
}),
|
|
191
191
|
testId: _pt.string,
|
|
192
192
|
profileComponent: _pt.node,
|
|
193
|
-
border: _pt.bool
|
|
193
|
+
border: _pt.bool,
|
|
194
|
+
searchServiceBaseUrl: _pt.string,
|
|
195
|
+
searchServiceAuthenticationToken: _pt.string
|
|
194
196
|
};
|
|
195
197
|
export default GlobalNavigationBar;
|
|
196
198
|
//# sourceMappingURL=GlobalNavigationBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalNavigationBar.js","names":["React","styled","Logo","MainMenu","PageWidth","COLORS","BREAKPOINTS","RightSideNav","MobileMenu","SystemIcons","UserMenu","fadeIn","fadeOut","Menu","MobileMenuWrapper","Z_INDEXES","IconButton","DesktopActions","usePreviousImmediate","useClickOutsideRef","hasWindow","HeaderWrapper","header","neutral_200","sticky_menu","MEDIUM","LARGE","RowLayout","div","HamburgerButton","RightSide","MobileMenuBackdrop","backdrop","MobileWrapper","UserMenuWrapper","white","props","offsetRight","window","innerWidth","GlobalNavigationBar","name","isAuthenticated","logo","profile","mobile","desktop","testId","useMaxWidth","maxWidth","profileComponent","border","useState","showMobileMenu","setShowMobileMenu","wasMobileMenuOpen","showUserMenu","setShowUserMenu","actionsRef","useRef","profileButtonRef","current","buttons","find","a","type","ref","mobileMenuButtonRef","rightSideRef","avatarRight","setAvatarRight","userMenuRef","mobileMenuRef","useEffect","handleResize","profileRightOffset","getBoundingClientRect","right","addEventListener","removeEventListener","showBetaTag","onClick","to","items","filter","pinned","reverseRightSideOrder","map","x","action","user","undefined","some"],"sources":["../../src/GlobalNavigationBar/GlobalNavigationBar.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport Logo from './Logo';\r\nimport MainMenu from './desktop/MainMenu';\r\nimport {PageWidth} from '../Layouts';\r\nimport {COLORS, BREAKPOINTS} from '../styles';\r\nimport RightSideNav from './desktop/RightSideNav';\r\nimport MobileMenu from './mobile/MobileMenu';\r\nimport {SystemIcons} from '../icons';\r\nimport UserMenu from './desktop/UserMenu';\r\nimport {fadeIn, fadeOut, Menu as MobileMenuWrapper} from './mobile/CommonStyles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport {\r\n DesktopNavigationMenuProps, MenuNavigationItemTypeItem, MenuProfileButton,\r\n MobileNavigationMenuProps,\r\n ProfileMenu\r\n} from './types';\r\nimport {IconButton} from '../Button';\r\nimport DesktopActions, {DesktopActionsRef} from './desktop/DesktopActions';\r\nimport {usePreviousImmediate} from 'rooks';\r\nimport {useClickOutsideRef} from '../common';\r\nimport { hasWindow } from '../utils/utils';\r\n\r\nconst HeaderWrapper = styled.header`\r\n background: white;\r\n box-sizing: border-box;\r\n \r\n &.border:after{\r\n content: '';\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n bottom: -1px;\r\n height: 1px;\r\n background: ${COLORS.neutral_200};\r\n z-index: 5;\r\n }\r\n\r\n z-index: ${Z_INDEXES.sticky_menu};\r\n position: relative;\r\n\r\n height: 48px;\r\n\r\n ${BREAKPOINTS.MEDIUM} {\r\n height: 64px;\r\n }\r\n\r\n ${BREAKPOINTS.LARGE} {\r\n height: 80px;\r\n }\r\n\r\n @media all and (-ms-high-contrast: none) {\r\n height: auto;\r\n }\r\n\r\n @media print {\r\n border-bottom: none;\r\n }\r\n`;\r\n\r\nconst RowLayout = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\n\r\nconst HamburgerButton = styled.div`\r\n ${BREAKPOINTS.MEDIUM} {\r\n display: none;\r\n }\r\n`;\r\n\r\nconst RightSide = styled.div`\r\n display: flex;\r\n align-items: center;\r\n\r\n margin: 0 0 0 auto;\r\n\r\n &.reverse {\r\n ${HamburgerButton} {\r\n order: -1;\r\n }\r\n\r\n flex-direction: row-reverse;\r\n }\r\n`;\r\n\r\nconst MobileMenuBackdrop = styled.div`\r\n background: rgba(0, 0, 0, 0.5);\r\n display: flex;\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n height: 100%;\r\n width: 100%;\r\n overflow: hidden;\r\n z-index: ${Z_INDEXES.backdrop};\r\n visibility: hidden;\r\n\r\n &.open {\r\n visibility: visible;\r\n animation: ${fadeIn} 0.3s ease-in-out;\r\n }\r\n\r\n &.closed {\r\n visibility: hidden;\r\n animation: ${fadeOut} 0.3s ease-in-out;\r\n }\r\n\r\n ${BREAKPOINTS.LARGE} {\r\n visibility: hidden !important;\r\n }\r\n`;\r\n\r\nconst MobileWrapper = styled.div`\r\n ${BREAKPOINTS.MEDIUM} {\r\n display: none !important;\r\n }\r\n`;\r\n\r\n\r\nconst UserMenuWrapper = styled.div<{ offsetRight?: number }>`\r\n background-color: ${COLORS.white};\r\n display: flex;\r\n position: absolute;\r\n\r\n ${BREAKPOINTS.LARGE} {\r\n top: 80px;\r\n right: ${(props) => (props.offsetRight && hasWindow() ? `${window.innerWidth - props.offsetRight + 296}px` : '10%')};\r\n }\r\n`;\r\n\r\n\r\n\r\ntype GlobalNavigationBarProps = {\r\n isAuthenticated?: boolean;\r\n useMaxWidth?: boolean;\r\n maxWidth?: number;\r\n\r\n name?: string;\r\n logo?: { onClick?: () => void; to?: string; showBetaTag?: boolean; };\r\n\r\n profile?: ProfileMenu;\r\n\r\n mobile?: MobileNavigationMenuProps;\r\n desktop?: DesktopNavigationMenuProps;\r\n\r\n testId?: string;\r\n\r\n profileComponent?: React.ReactNode\r\n border?: boolean;\r\n};\r\n\r\n/**\r\n * @param props\r\n * @constructor\r\n * @description This component is a global navigation header bar\r\n */\r\nconst GlobalNavigationBar = ({\r\n name,\r\n isAuthenticated,\r\n logo,\r\n profile,\r\n mobile,\r\n desktop,\r\n testId,\r\n useMaxWidth = true,\r\n maxWidth,\r\n profileComponent,\r\n border = true\r\n }: GlobalNavigationBarProps): React.ReactElement<GlobalNavigationBarProps> => {\r\n const [showMobileMenu, setShowMobileMenu] = React.useState(false);\r\n const wasMobileMenuOpen = usePreviousImmediate(showMobileMenu);\r\n\r\n const [showUserMenu, setShowUserMenu] = React.useState(false);\r\n\r\n const actionsRef = React.useRef<DesktopActionsRef>(null);\r\n const profileButtonRef = React.useRef<HTMLButtonElement | null>() as React.MutableRefObject<HTMLButtonElement | null | undefined>;\r\n profileButtonRef.current = actionsRef?.current?.buttons?.find(a => a.type === 'profile')?.ref?.current;\r\n\r\n const mobileMenuButtonRef = React.useRef<HTMLButtonElement>(null);\r\n\r\n const rightSideRef = React.useRef(null);\r\n const [avatarRight, setAvatarRight] = React.useState<number>(0);\r\n\r\n\r\n const userMenuRef = useClickOutsideRef(() => setShowUserMenu(false), [profileButtonRef]);\r\n const mobileMenuRef = useClickOutsideRef(() => setShowMobileMenu(false), [mobileMenuButtonRef]);\r\n\r\n React.useEffect(() => {\r\n if (!profileButtonRef.current) return;\r\n\r\n const handleResize = () => {\r\n const profileRightOffset = profileButtonRef.current?.getBoundingClientRect()?.right;\r\n setAvatarRight(profileRightOffset || 0);\r\n };\r\n\r\n handleResize();\r\n window.addEventListener('resize', handleResize);\r\n return () => window.removeEventListener('resize', handleResize);\r\n }, [profileButtonRef.current]);\r\n\r\n\r\n return (\r\n <>\r\n <HeaderWrapper data-testid={testId} className={border ? 'border' : ''}>\r\n <PageWidth useMaxWidth={useMaxWidth} maxWidth={maxWidth} unsetMargin={true}>\r\n <RowLayout>\r\n <Logo name={name || ''} showBetaTag={logo?.showBetaTag} onClick={logo?.onClick} to={logo?.to}/>\r\n {\r\n isAuthenticated &&\r\n <MainMenu items={desktop?.items.filter(a => !a.pinned) || []} rightSideRef={rightSideRef}/>\r\n }\r\n <RightSide className={`${desktop?.reverseRightSideOrder ? 'reverse' : ''}`}\r\n ref={rightSideRef}>\r\n <RightSideNav items={desktop?.items?.filter(a => a.pinned && a.type == 'item').map(x => x as MenuNavigationItemTypeItem)} action={desktop?.action}/>\r\n <MobileWrapper>\r\n {!!profileComponent && profileComponent }\r\n </MobileWrapper>\r\n\r\n <DesktopActions ref={actionsRef}\r\n buttons={desktop?.buttons}\r\n onShowUserMenu={() => setShowUserMenu(!showUserMenu)}\r\n user={profile?.user}\r\n profileComponent= {profileComponent}\r\n />\r\n <HamburgerButton hidden={!isAuthenticated}>\r\n <IconButton action={() => setShowMobileMenu(!showMobileMenu)}\r\n ref={mobileMenuButtonRef}\r\n shape={'circular'}\r\n variant={'secondary'}>\r\n <SystemIcons.Menu size=\"24px\"/>\r\n </IconButton>\r\n </HamburgerButton>\r\n </RightSide>\r\n </RowLayout>\r\n </PageWidth>\r\n </HeaderWrapper>\r\n <MobileMenuBackdrop className={showMobileMenu ? 'open' : !showUserMenu && wasMobileMenuOpen ? 'closed' : ''}>\r\n <MobileMenuWrapper ref={mobileMenuRef}\r\n role=\"menu\"\r\n aria-labelledby=\"UserMenuButton\">\r\n <MobileMenu {...mobile}\r\n show={showMobileMenu}\r\n onClose={() => setShowMobileMenu(false)}\r\n profile={!profileComponent ? profile : undefined}/>\r\n </MobileMenuWrapper>\r\n </MobileMenuBackdrop>\r\n {\r\n desktop?.buttons?.some(a => a.type === 'profile') && !!profile &&\r\n <UserMenuWrapper ref={userMenuRef}\r\n offsetRight={avatarRight}\r\n data-testid=\"testUserMenuWrapper\">\r\n <UserMenu {...profile}\r\n show={showUserMenu}\r\n onHideUserMenu={() => setShowUserMenu(false)}/>\r\n </UserMenuWrapper>\r\n }\r\n </>\r\n );\r\n};\r\n\r\nexport default GlobalNavigationBar;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GlobalNavigationBar.js","names":["React","styled","Logo","MainMenu","PageWidth","COLORS","BREAKPOINTS","RightSideNav","MobileMenu","SystemIcons","UserMenu","fadeIn","fadeOut","Menu","MobileMenuWrapper","Z_INDEXES","IconButton","DesktopActions","usePreviousImmediate","useClickOutsideRef","hasWindow","HeaderWrapper","header","neutral_200","sticky_menu","MEDIUM","LARGE","RowLayout","div","HamburgerButton","RightSide","MobileMenuBackdrop","backdrop","MobileWrapper","UserMenuWrapper","white","props","offsetRight","window","innerWidth","GlobalNavigationBar","name","isAuthenticated","logo","profile","mobile","desktop","testId","useMaxWidth","maxWidth","profileComponent","border","useState","showMobileMenu","setShowMobileMenu","wasMobileMenuOpen","showUserMenu","setShowUserMenu","actionsRef","useRef","profileButtonRef","current","buttons","find","a","type","ref","mobileMenuButtonRef","rightSideRef","avatarRight","setAvatarRight","userMenuRef","mobileMenuRef","useEffect","handleResize","profileRightOffset","getBoundingClientRect","right","addEventListener","removeEventListener","showBetaTag","onClick","to","items","filter","pinned","reverseRightSideOrder","map","x","action","user","undefined","some","searchServiceBaseUrl","searchServiceAuthenticationToken"],"sources":["../../src/GlobalNavigationBar/GlobalNavigationBar.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport Logo from './Logo';\r\nimport MainMenu from './desktop/MainMenu';\r\nimport {PageWidth} from '../Layouts';\r\nimport {COLORS, BREAKPOINTS} from '../styles';\r\nimport RightSideNav from './desktop/RightSideNav';\r\nimport MobileMenu from './mobile/MobileMenu';\r\nimport {SystemIcons} from '../icons';\r\nimport UserMenu from './desktop/UserMenu';\r\nimport {fadeIn, fadeOut, Menu as MobileMenuWrapper} from './mobile/CommonStyles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport {\r\n DesktopNavigationMenuProps, MenuNavigationItemTypeItem, MenuProfileButton,\r\n MobileNavigationMenuProps,\r\n ProfileMenu\r\n} from './types';\r\nimport {IconButton} from '../Button';\r\nimport DesktopActions, {DesktopActionsRef} from './desktop/DesktopActions';\r\nimport {usePreviousImmediate} from 'rooks';\r\nimport {useClickOutsideRef} from '../common';\r\nimport { hasWindow } from '../utils/utils';\r\n\r\nconst HeaderWrapper = styled.header`\r\n background: white;\r\n box-sizing: border-box;\r\n \r\n &.border:after{\r\n content: '';\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n bottom: -1px;\r\n height: 1px;\r\n background: ${COLORS.neutral_200};\r\n z-index: 5;\r\n }\r\n\r\n z-index: ${Z_INDEXES.sticky_menu};\r\n position: relative;\r\n\r\n height: 48px;\r\n\r\n ${BREAKPOINTS.MEDIUM} {\r\n height: 64px;\r\n }\r\n\r\n ${BREAKPOINTS.LARGE} {\r\n height: 80px;\r\n }\r\n\r\n @media all and (-ms-high-contrast: none) {\r\n height: auto;\r\n }\r\n\r\n @media print {\r\n border-bottom: none;\r\n }\r\n`;\r\n\r\nconst RowLayout = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\n\r\nconst HamburgerButton = styled.div`\r\n ${BREAKPOINTS.MEDIUM} {\r\n display: none;\r\n }\r\n`;\r\n\r\nconst RightSide = styled.div`\r\n display: flex;\r\n align-items: center;\r\n\r\n margin: 0 0 0 auto;\r\n\r\n &.reverse {\r\n ${HamburgerButton} {\r\n order: -1;\r\n }\r\n\r\n flex-direction: row-reverse;\r\n }\r\n`;\r\n\r\nconst MobileMenuBackdrop = styled.div`\r\n background: rgba(0, 0, 0, 0.5);\r\n display: flex;\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n height: 100%;\r\n width: 100%;\r\n overflow: hidden;\r\n z-index: ${Z_INDEXES.backdrop};\r\n visibility: hidden;\r\n\r\n &.open {\r\n visibility: visible;\r\n animation: ${fadeIn} 0.3s ease-in-out;\r\n }\r\n\r\n &.closed {\r\n visibility: hidden;\r\n animation: ${fadeOut} 0.3s ease-in-out;\r\n }\r\n\r\n ${BREAKPOINTS.LARGE} {\r\n visibility: hidden !important;\r\n }\r\n`;\r\n\r\nconst MobileWrapper = styled.div`\r\n ${BREAKPOINTS.MEDIUM} {\r\n display: none !important;\r\n }\r\n`;\r\n\r\n\r\nconst UserMenuWrapper = styled.div<{ offsetRight?: number }>`\r\n background-color: ${COLORS.white};\r\n display: flex;\r\n position: absolute;\r\n\r\n ${BREAKPOINTS.LARGE} {\r\n top: 80px;\r\n right: ${(props) => (props.offsetRight && hasWindow() ? `${window.innerWidth - props.offsetRight + 296}px` : '10%')};\r\n }\r\n`;\r\n\r\n\r\n\r\ntype GlobalNavigationBarProps = {\r\n isAuthenticated?: boolean;\r\n useMaxWidth?: boolean;\r\n maxWidth?: number;\r\n\r\n name?: string;\r\n logo?: { onClick?: () => void; to?: string; showBetaTag?: boolean; };\r\n\r\n profile?: ProfileMenu;\r\n\r\n mobile?: MobileNavigationMenuProps;\r\n desktop?: DesktopNavigationMenuProps;\r\n\r\n testId?: string;\r\n\r\n profileComponent?: React.ReactNode\r\n border?: boolean;\r\n\r\n searchServiceBaseUrl?: string;\r\n searchServiceAuthenticationToken?: string;\r\n};\r\n\r\n/**\r\n * @param props\r\n * @constructor\r\n * @description This component is a global navigation header bar\r\n */\r\nconst GlobalNavigationBar = ({\r\n name,\r\n isAuthenticated,\r\n logo,\r\n profile,\r\n mobile,\r\n desktop,\r\n testId,\r\n useMaxWidth = true,\r\n maxWidth,\r\n profileComponent,\r\n border = true\r\n }: GlobalNavigationBarProps): React.ReactElement<GlobalNavigationBarProps> => {\r\n const [showMobileMenu, setShowMobileMenu] = React.useState(false);\r\n const wasMobileMenuOpen = usePreviousImmediate(showMobileMenu);\r\n\r\n const [showUserMenu, setShowUserMenu] = React.useState(false);\r\n\r\n const actionsRef = React.useRef<DesktopActionsRef>(null);\r\n const profileButtonRef = React.useRef<HTMLButtonElement | null>() as React.MutableRefObject<HTMLButtonElement | null | undefined>;\r\n profileButtonRef.current = actionsRef?.current?.buttons?.find(a => a.type === 'profile')?.ref?.current;\r\n\r\n const mobileMenuButtonRef = React.useRef<HTMLButtonElement>(null);\r\n\r\n const rightSideRef = React.useRef(null);\r\n const [avatarRight, setAvatarRight] = React.useState<number>(0);\r\n\r\n\r\n const userMenuRef = useClickOutsideRef(() => setShowUserMenu(false), [profileButtonRef]);\r\n const mobileMenuRef = useClickOutsideRef(() => setShowMobileMenu(false), [mobileMenuButtonRef]);\r\n\r\n React.useEffect(() => {\r\n if (!profileButtonRef.current) return;\r\n\r\n const handleResize = () => {\r\n const profileRightOffset = profileButtonRef.current?.getBoundingClientRect()?.right;\r\n setAvatarRight(profileRightOffset || 0);\r\n };\r\n\r\n handleResize();\r\n window.addEventListener('resize', handleResize);\r\n return () => window.removeEventListener('resize', handleResize);\r\n }, [profileButtonRef.current]);\r\n\r\n\r\n return (\r\n <>\r\n <HeaderWrapper data-testid={testId} className={border ? 'border' : ''}>\r\n <PageWidth useMaxWidth={useMaxWidth} maxWidth={maxWidth} unsetMargin={true}>\r\n <RowLayout>\r\n <Logo name={name || ''} showBetaTag={logo?.showBetaTag} onClick={logo?.onClick} to={logo?.to}/>\r\n {\r\n isAuthenticated &&\r\n <MainMenu items={desktop?.items.filter(a => !a.pinned) || []} rightSideRef={rightSideRef}/>\r\n }\r\n <RightSide className={`${desktop?.reverseRightSideOrder ? 'reverse' : ''}`}\r\n ref={rightSideRef}>\r\n <RightSideNav items={desktop?.items?.filter(a => a.pinned && a.type == 'item').map(x => x as MenuNavigationItemTypeItem)} action={desktop?.action}/>\r\n <MobileWrapper>\r\n {!!profileComponent && profileComponent }\r\n </MobileWrapper>\r\n\r\n <DesktopActions ref={actionsRef}\r\n buttons={desktop?.buttons}\r\n onShowUserMenu={() => setShowUserMenu(!showUserMenu)}\r\n user={profile?.user}\r\n profileComponent= {profileComponent}\r\n />\r\n <HamburgerButton hidden={!isAuthenticated}>\r\n <IconButton action={() => setShowMobileMenu(!showMobileMenu)}\r\n ref={mobileMenuButtonRef}\r\n shape={'circular'}\r\n variant={'secondary'}>\r\n <SystemIcons.Menu size=\"24px\"/>\r\n </IconButton>\r\n </HamburgerButton>\r\n </RightSide>\r\n </RowLayout>\r\n </PageWidth>\r\n </HeaderWrapper>\r\n <MobileMenuBackdrop className={showMobileMenu ? 'open' : !showUserMenu && wasMobileMenuOpen ? 'closed' : ''}>\r\n <MobileMenuWrapper ref={mobileMenuRef}\r\n role=\"menu\"\r\n aria-labelledby=\"UserMenuButton\">\r\n <MobileMenu {...mobile}\r\n show={showMobileMenu}\r\n onClose={() => setShowMobileMenu(false)}\r\n profile={!profileComponent ? profile : undefined}/>\r\n </MobileMenuWrapper>\r\n </MobileMenuBackdrop>\r\n {\r\n desktop?.buttons?.some(a => a.type === 'profile') && !!profile &&\r\n <UserMenuWrapper ref={userMenuRef}\r\n offsetRight={avatarRight}\r\n data-testid=\"testUserMenuWrapper\">\r\n <UserMenu {...profile}\r\n show={showUserMenu}\r\n onHideUserMenu={() => setShowUserMenu(false)}/>\r\n </UserMenuWrapper>\r\n }\r\n </>\r\n );\r\n};\r\n\r\nexport default GlobalNavigationBar;\r\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchService.cjs","names":[],"sources":["../../../src/GlobalNavigationBar/business/SearchService.ts"],"sourcesContent":[""],"mappings":""}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchService.js","names":[],"sources":["../../../src/GlobalNavigationBar/business/SearchService.ts"],"sourcesContent":[""],"mappings":""}
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.default = void 0;
|
|
7
|
+
exports.default = exports.DesktopActionsCustomComponentWrapper = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
@@ -20,11 +20,13 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
20
20
|
var _excluded = ["placement", "type", "action"],
|
|
21
21
|
_excluded2 = ["placement", "type", "icon", "action"],
|
|
22
22
|
_excluded3 = ["placement", "type", "action"];
|
|
23
|
-
var _templateObject, _templateObject2;
|
|
23
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
24
24
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
25
25
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
26
26
|
var Wrapper = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n align-items: center;\n\n display: none;\n\n ", " {\n display: flex;\n }\n"])), _styles.BREAKPOINTS.MEDIUM);
|
|
27
|
-
var
|
|
27
|
+
var DesktopActionsCustomComponentWrapper = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)([""])));
|
|
28
|
+
exports.DesktopActionsCustomComponentWrapper = DesktopActionsCustomComponentWrapper;
|
|
29
|
+
var ProfileWrapper = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n margin: 0 8px;\n"])));
|
|
28
30
|
var DesktopActions = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
29
31
|
var buttons = _ref.buttons,
|
|
30
32
|
user = _ref.user,
|
|
@@ -114,6 +116,13 @@ var DesktopActions = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
|
|
|
114
116
|
})
|
|
115
117
|
}), index);
|
|
116
118
|
}
|
|
119
|
+
case 'custom':
|
|
120
|
+
{
|
|
121
|
+
var content = item.content;
|
|
122
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(DesktopActionsCustomComponentWrapper, {
|
|
123
|
+
children: content()
|
|
124
|
+
});
|
|
125
|
+
}
|
|
117
126
|
}
|
|
118
127
|
};
|
|
119
128
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapper, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DesktopActions.cjs","names":["Wrapper","styled","div","BREAKPOINTS","MEDIUM","ProfileWrapper","DesktopActions","React","forwardRef","ref","buttons","user","profileComponent","onShowUserMenu","useState","elRefs","setElRefs","length","useEffect","Array","fill","map","createRef","useImperativeHandle","r","index","type","renderItem","item","placement","action","rest","e","target","firstName","charAt","lastName","icon"],"sources":["../../../src/GlobalNavigationBar/desktop/DesktopActions.tsx"],"sourcesContent":["import React from 'react';\r\nimport styled from 'styled-components';\r\nimport {MenuAccountInfo, MobileMenuButtonTypes, DesktopMenuButtonTypes} from '../types';\r\nimport {IconButton} from '../../Button';\r\nimport {ProfileButton} from '../../ProfileButton';\r\nimport {SystemIcons} from '../../icons';\r\nimport {BREAKPOINTS} from '../../styles';\r\n\r\nconst Wrapper = styled.div`\r\n align-items: center;\r\n\r\n display: none;\r\n\r\n ${BREAKPOINTS.MEDIUM} {\r\n display: flex;\r\n }\r\n`;\r\n\r\nconst ProfileWrapper = styled.div`\r\n margin: 0 8px;\r\n`;\r\n\r\n\r\ninterface DesktopActionsProps {\r\n buttons?: DesktopMenuButtonTypes[];\r\n user?: MenuAccountInfo;\r\n profileComponent?: React.ReactNode\r\n onShowUserMenu: () => void;\r\n}\r\n\r\nexport interface DesktopActionsRef {\r\n buttons?: { ref: React.MutableRefObject<HTMLButtonElement | null>, type: 'profile' | 'action' | 'switcher' | undefined }[]\r\n}\r\n\r\nconst DesktopActions = React.forwardRef(({\r\n buttons,\r\n user,\r\n profileComponent,\r\n onShowUserMenu\r\n }: DesktopActionsProps, ref: React.Ref<DesktopActionsRef>) => {\r\n\r\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLButtonElement>[]>([]);\r\n\r\n const length = buttons?.length || 0;\r\n\r\n React.useEffect(() => {\r\n setElRefs(Array(length || 0).fill(null).map(() => React.createRef<HTMLButtonElement>()));\r\n }, [length]);\r\n\r\n React.useImperativeHandle(ref, () => ({\r\n buttons: elRefs.map((r, index) => ({\r\n ref: r,\r\n type: buttons?.[index]?.type,\r\n }))\r\n }), [elRefs, buttons]);\r\n\r\n const renderItem = (item: MobileMenuButtonTypes, index: number) => {\r\n switch (item.type) {\r\n case 'profile': {\r\n const {placement, type, action, ...rest} = item;\r\n if(!!profileComponent)\r\n return <ProfileWrapper>{profileComponent}</ProfileWrapper>;\r\n else\r\n return <ProfileWrapper>\r\n <ProfileButton key={index}\r\n ref={elRefs[index]}\r\n hideOnLowWidth={true}\r\n onClick={e => {\r\n item.action ? item.action(e?.target) : onShowUserMenu()\r\n }}\r\n icon={!user && <SystemIcons.User/>}\r\n initials={(user?.firstName?.charAt(0) ?? '') + (user?.lastName?.charAt(0) ?? '')}\r\n {...rest}/>\r\n </ProfileWrapper>\r\n }\r\n case 'action': {\r\n const {placement, type, icon, action, ...rest} = item;\r\n return <IconButton key={index}\r\n ref={elRefs[index]}\r\n variant={'secondary'}\r\n shape={'circular'}\r\n hideOnLowWidth={true}\r\n action={e => item.action && item.action(e?.target)}\r\n {...rest}>\r\n {item.icon}\r\n </IconButton>\r\n }\r\n case 'switcher': {\r\n const {placement, type, action, ...rest} = item;\r\n return <IconButton key={index}\r\n ref={elRefs[index]}\r\n variant={'secondary'}\r\n shape={'circular'}\r\n hideOnLowWidth={true}\r\n id=\"globalNavAppsButton\"\r\n action={e => item.action && item.action(e?.target)}\r\n {...rest}>\r\n <SystemIcons.SwitchApp size=\"24px\"/>\r\n </IconButton>\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <Wrapper role=\"toolbar\" aria-label=\"Toolbar\">\r\n {buttons?.map((item, index) => renderItem(item, index))}\r\n </Wrapper>\r\n )\r\n});\r\n\r\n\r\nexport default DesktopActions;\r\n"],"mappings":";;;;;;;;;;;;AAAA;AACA;AAEA;AACA;AACA;AACA;AAAyC;AAAA;EAAA;EAAA;AAAA;AAAA;AAAA;
|
|
1
|
+
{"version":3,"file":"DesktopActions.cjs","names":["Wrapper","styled","div","BREAKPOINTS","MEDIUM","DesktopActionsCustomComponentWrapper","ProfileWrapper","DesktopActions","React","forwardRef","ref","buttons","user","profileComponent","onShowUserMenu","useState","elRefs","setElRefs","length","useEffect","Array","fill","map","createRef","useImperativeHandle","r","index","type","renderItem","item","placement","action","rest","e","target","firstName","charAt","lastName","icon","content"],"sources":["../../../src/GlobalNavigationBar/desktop/DesktopActions.tsx"],"sourcesContent":["import React from 'react';\r\nimport styled from 'styled-components';\r\nimport {MenuAccountInfo, MobileMenuButtonTypes, DesktopMenuButtonTypes} from '../types';\r\nimport {IconButton} from '../../Button';\r\nimport {ProfileButton} from '../../ProfileButton';\r\nimport {SystemIcons} from '../../icons';\r\nimport {BREAKPOINTS} from '../../styles';\r\nimport { SearchBar } from 'src/InputFields';\r\nimport { Size } from 'src/types';\r\n\r\nconst Wrapper = styled.div`\r\n align-items: center;\r\n\r\n display: none;\r\n\r\n ${BREAKPOINTS.MEDIUM} {\r\n display: flex;\r\n }\r\n`;\r\n\r\nexport const DesktopActionsCustomComponentWrapper = styled.div``;\r\n\r\nconst ProfileWrapper = styled.div`\r\n margin: 0 8px;\r\n`;\r\n\r\n\r\ninterface DesktopActionsProps {\r\n buttons?: DesktopMenuButtonTypes[];\r\n user?: MenuAccountInfo;\r\n profileComponent?: React.ReactNode\r\n onShowUserMenu: () => void;\r\n}\r\n\r\nexport interface DesktopActionsRef {\r\n buttons?: { ref: React.MutableRefObject<HTMLButtonElement | null>, type: 'profile' | 'action' | 'switcher' | 'custom' | undefined }[]\r\n}\r\n\r\nconst DesktopActions = React.forwardRef(({\r\n buttons,\r\n user,\r\n profileComponent,\r\n onShowUserMenu\r\n }: DesktopActionsProps, ref: React.Ref<DesktopActionsRef>) => {\r\n\r\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLButtonElement>[]>([]);\r\n\r\n const length = buttons?.length || 0;\r\n\r\n React.useEffect(() => {\r\n setElRefs(Array(length || 0).fill(null).map(() => React.createRef<HTMLButtonElement>()));\r\n }, [length]);\r\n\r\n React.useImperativeHandle(ref, () => ({\r\n buttons: elRefs.map((r, index) => ({\r\n ref: r,\r\n type: buttons?.[index]?.type,\r\n }))\r\n }), [elRefs, buttons]);\r\n\r\n const renderItem = (item: MobileMenuButtonTypes, index: number) => {\r\n switch (item.type) {\r\n case 'profile': {\r\n const {placement, type, action, ...rest} = item;\r\n if(!!profileComponent)\r\n return <ProfileWrapper>{profileComponent}</ProfileWrapper>;\r\n else\r\n return <ProfileWrapper>\r\n <ProfileButton key={index}\r\n ref={elRefs[index]}\r\n hideOnLowWidth={true}\r\n onClick={e => {\r\n item.action ? item.action(e?.target) : onShowUserMenu()\r\n }}\r\n icon={!user && <SystemIcons.User/>}\r\n initials={(user?.firstName?.charAt(0) ?? '') + (user?.lastName?.charAt(0) ?? '')}\r\n {...rest}/>\r\n </ProfileWrapper>\r\n }\r\n case 'action': {\r\n const {placement, type, icon, action, ...rest} = item;\r\n return <IconButton key={index}\r\n ref={elRefs[index]}\r\n variant={'secondary'}\r\n shape={'circular'}\r\n hideOnLowWidth={true}\r\n action={e => item.action && item.action(e?.target)}\r\n {...rest}>\r\n {item.icon}\r\n </IconButton>\r\n }\r\n case 'switcher': {\r\n const {placement, type, action, ...rest} = item;\r\n return <IconButton key={index}\r\n ref={elRefs[index]}\r\n variant={'secondary'}\r\n shape={'circular'}\r\n hideOnLowWidth={true}\r\n id=\"globalNavAppsButton\"\r\n action={e => item.action && item.action(e?.target)}\r\n {...rest}>\r\n <SystemIcons.SwitchApp size=\"24px\"/>\r\n </IconButton>\r\n }\r\n\r\n case 'custom': {\r\n const { content } = item;\r\n return <DesktopActionsCustomComponentWrapper>{content()}</DesktopActionsCustomComponentWrapper>;\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <Wrapper role=\"toolbar\" aria-label=\"Toolbar\">\r\n {buttons?.map((item, index) => renderItem(item, index))}\r\n </Wrapper>\r\n )\r\n});\r\n\r\n\r\nexport default DesktopActions;\r\n"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { MenuAccountInfo, DesktopMenuButtonTypes } from '../types';
|
|
3
|
+
export declare const DesktopActionsCustomComponentWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
3
4
|
interface DesktopActionsProps {
|
|
4
5
|
buttons?: DesktopMenuButtonTypes[];
|
|
5
6
|
user?: MenuAccountInfo;
|
|
@@ -9,7 +10,7 @@ interface DesktopActionsProps {
|
|
|
9
10
|
export interface DesktopActionsRef {
|
|
10
11
|
buttons?: {
|
|
11
12
|
ref: React.MutableRefObject<HTMLButtonElement | null>;
|
|
12
|
-
type: 'profile' | 'action' | 'switcher' | undefined;
|
|
13
|
+
type: 'profile' | 'action' | 'switcher' | 'custom' | undefined;
|
|
13
14
|
}[];
|
|
14
15
|
}
|
|
15
16
|
declare const DesktopActions: React.ForwardRefExoticComponent<DesktopActionsProps & React.RefAttributes<DesktopActionsRef>>;
|