@laerdal/life-react-components 6.0.2 → 6.0.4

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.
@@ -13,7 +13,6 @@ var _ChipStyles = require("./ChipStyles");
13
13
  var _common = require("../common");
14
14
  var _types = require("../types");
15
15
  var _styledComponents = require("styled-components");
16
- var _colors = _interopRequireDefault(require("../styles/colors"));
17
16
  var _jsxRuntime = require("react/jsx-runtime");
18
17
  const _excluded = ["icon", "text", "variant", "size", "disabled", "onClick", "disableRemove", "dataTestId", "onRemove", "className"];
19
18
  /**
@@ -67,11 +66,6 @@ const InputChip = /*#__PURE__*/React.forwardRef((_ref, ref) => {
67
66
  !disableRemove && onRemove && onRemove(event);
68
67
  }
69
68
  };
70
- console.log(_colors.default.generateToken({
71
- componentType: 'bg-surface',
72
- defaultVariant: 'critical',
73
- state: 'hover'
74
- }, theme));
75
69
 
76
70
  /**
77
71
  * Return Input Chip component.
@@ -1 +1 @@
1
- {"version":3,"file":"InputChip.cjs","names":["React","_interopRequireWildcard","require","_index","_ChipStyles","_common","_types","_styledComponents","_colors","_interopRequireDefault","_jsxRuntime","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","InputChip","forwardRef","_ref","ref","icon","text","variant","States","Default","size","Size","Medium","disabled","onClick","disableRemove","dataTestId","onRemove","className","rest","_objectWithoutProperties2","containerRef","useRef","removeRef","theme","useTheme","useActionWithin","onRemoveClick","event","stopPropagation","handleContainerKeyDown","key","console","log","COLORS","generateToken","componentType","defaultVariant","state","jsx","ChipContainer","role","tabIndex","onMouseDown","defaultOnMouseDownHandler","onKeyDown","children","ChipContentContainer","jsxs","ChipContent","style","color","SystemIcons","Close","_default","exports"],"sources":["../../src/Chips/InputChip.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {SystemIcons, SystemIcons as icons} from '../icons/index';\r\n\r\n/**\r\n * Import custom styles.\r\n */\r\nimport {ChipContainer, ChipContent, ChipContentContainer} from './ChipStyles';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {InputChipProps} from './ChipTypes';\r\nimport {defaultOnMouseDownHandler, useActionWithin} from '../common';\r\nimport {Size, States} from '../types';\r\nimport { useTheme } from 'styled-components';\r\nimport COLORS from '../styles/colors';\r\n\r\nconst InputChip: React.FunctionComponent<InputChipProps> = React.forwardRef(({\r\n icon,\r\n text,\r\n variant = States.Default,\r\n size = Size.Medium,\r\n disabled,\r\n onClick,\r\n disableRemove,\r\n dataTestId,\r\n onRemove,\r\n className,\r\n ...rest\r\n }: InputChipProps, ref) => {\r\n\r\n const containerRef = ref as React.MutableRefObject<HTMLDivElement> ?? React.useRef<HTMLDivElement>(null);\r\n const removeRef = React.useRef<HTMLDivElement>(null);\r\n const theme = useTheme();\r\n\r\n useActionWithin(containerRef, [removeRef]);\r\n\r\n /**\r\n * Calls onRemove action when remove button is clicked.\r\n * @param event - Event handler from the button click.\r\n */\r\n const onRemoveClick = (event?: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>) => {\r\n !!event && event.stopPropagation();\r\n onRemove(event);\r\n };\r\n\r\n const handleContainerKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === 'Enter' || event.key === ' ') {\r\n !disabled && onClick && onClick();\r\n }\r\n if (event.key === 'Backspace' && !disableRemove) {\r\n !disableRemove && onRemove && onRemove(event);\r\n }\r\n };\r\n\r\n console.log(COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'critical', state: 'hover' }, theme));\r\n\r\n /**\r\n * Return Input Chip component.\r\n */\r\n return (\r\n <ChipContainer ref={containerRef}\r\n role=\"button\"\r\n data-testid={dataTestId}\r\n aria-roledescription='Removable filter'\r\n className={`${size} ${disabled ? 'disabled' : ''} ${variant} ${!!onClick ? 'interactive' : ''} ${className || ''}`}\r\n tabIndex={disabled || !onClick ? -1 : 0}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onKeyDown={handleContainerKeyDown}\r\n onClick={() => !disabled && onClick && onClick()}\r\n {...rest}>\r\n <ChipContentContainer>\r\n <ChipContent className={'with-action-right'}>\r\n {icon && <div style={{color:'inherit'}} className={'chip-icon icon-left'}>{icon}</div>}\r\n\r\n <div style={{color:'inherit'}}>{text}</div>\r\n\r\n <div ref={removeRef}\r\n className={`action-right ${disableRemove ? 'disabled' : ''}`}\r\n tabIndex={disableRemove || disabled ? -1 : 0}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onClick={e => !disableRemove && !disabled && onRemoveClick(e)}\r\n onKeyDown={e => (e.key === 'Enter' || e.key === ' ') && !disableRemove && !disabled && onRemoveClick(e)}>\r\n <div className={'chip-icon'}>\r\n <SystemIcons.Close className={'remove'}/>\r\n </div>\r\n </div>\r\n </ChipContent>\r\n </ChipContentContainer>\r\n </ChipContainer>\r\n );\r\n});\r\n\r\nexport default InputChip;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"InputChip.cjs","names":["React","_interopRequireWildcard","require","_index","_ChipStyles","_common","_types","_styledComponents","_jsxRuntime","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","InputChip","forwardRef","_ref","ref","icon","text","variant","States","Default","size","Size","Medium","disabled","onClick","disableRemove","dataTestId","onRemove","className","rest","_objectWithoutProperties2","containerRef","useRef","removeRef","theme","useTheme","useActionWithin","onRemoveClick","event","stopPropagation","handleContainerKeyDown","key","jsx","ChipContainer","role","tabIndex","onMouseDown","defaultOnMouseDownHandler","onKeyDown","children","ChipContentContainer","jsxs","ChipContent","style","color","SystemIcons","Close","_default","exports"],"sources":["../../src/Chips/InputChip.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {SystemIcons, SystemIcons as icons} from '../icons/index';\r\n\r\n/**\r\n * Import custom styles.\r\n */\r\nimport {ChipContainer, ChipContent, ChipContentContainer} from './ChipStyles';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {InputChipProps} from './ChipTypes';\r\nimport {defaultOnMouseDownHandler, useActionWithin} from '../common';\r\nimport {Size, States} from '../types';\r\nimport { useTheme } from 'styled-components';\r\nimport COLORS from '../styles/colors';\r\n\r\nconst InputChip: React.FunctionComponent<InputChipProps> = React.forwardRef(({\r\n icon,\r\n text,\r\n variant = States.Default,\r\n size = Size.Medium,\r\n disabled,\r\n onClick,\r\n disableRemove,\r\n dataTestId,\r\n onRemove,\r\n className,\r\n ...rest\r\n }: InputChipProps, ref) => {\r\n\r\n const containerRef = ref as React.MutableRefObject<HTMLDivElement> ?? React.useRef<HTMLDivElement>(null);\r\n const removeRef = React.useRef<HTMLDivElement>(null);\r\n const theme = useTheme();\r\n\r\n useActionWithin(containerRef, [removeRef]);\r\n\r\n /**\r\n * Calls onRemove action when remove button is clicked.\r\n * @param event - Event handler from the button click.\r\n */\r\n const onRemoveClick = (event?: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>) => {\r\n !!event && event.stopPropagation();\r\n onRemove(event);\r\n };\r\n\r\n const handleContainerKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === 'Enter' || event.key === ' ') {\r\n !disabled && onClick && onClick();\r\n }\r\n if (event.key === 'Backspace' && !disableRemove) {\r\n !disableRemove && onRemove && onRemove(event);\r\n }\r\n };\r\n \r\n /**\r\n * Return Input Chip component.\r\n */\r\n return (\r\n <ChipContainer ref={containerRef}\r\n role=\"button\"\r\n data-testid={dataTestId}\r\n aria-roledescription='Removable filter'\r\n className={`${size} ${disabled ? 'disabled' : ''} ${variant} ${!!onClick ? 'interactive' : ''} ${className || ''}`}\r\n tabIndex={disabled || !onClick ? -1 : 0}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onKeyDown={handleContainerKeyDown}\r\n onClick={() => !disabled && onClick && onClick()}\r\n {...rest}>\r\n <ChipContentContainer>\r\n <ChipContent className={'with-action-right'}>\r\n {icon && <div style={{color:'inherit'}} className={'chip-icon icon-left'}>{icon}</div>}\r\n\r\n <div style={{color:'inherit'}}>{text}</div>\r\n\r\n <div ref={removeRef}\r\n className={`action-right ${disableRemove ? 'disabled' : ''}`}\r\n tabIndex={disableRemove || disabled ? -1 : 0}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onClick={e => !disableRemove && !disabled && onRemoveClick(e)}\r\n onKeyDown={e => (e.key === 'Enter' || e.key === ' ') && !disableRemove && !disabled && onRemoveClick(e)}>\r\n <div className={'chip-icon'}>\r\n <SystemIcons.Close className={'remove'}/>\r\n </div>\r\n </div>\r\n </ChipContent>\r\n </ChipContentContainer>\r\n </ChipContainer>\r\n );\r\n});\r\n\r\nexport default InputChip;\r\n"],"mappings":"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","ignoreList":[]}
@@ -25,7 +25,6 @@ import { ChipContainer, ChipContent, ChipContentContainer } from './ChipStyles';
25
25
  import { defaultOnMouseDownHandler, useActionWithin } from '../common';
26
26
  import { Size, States } from '../types';
27
27
  import { useTheme } from 'styled-components';
28
- import COLORS from '../styles/colors';
29
28
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
30
29
  const InputChip = /*#__PURE__*/React.forwardRef((_ref, ref) => {
31
30
  let {
@@ -62,11 +61,6 @@ const InputChip = /*#__PURE__*/React.forwardRef((_ref, ref) => {
62
61
  !disableRemove && onRemove && onRemove(event);
63
62
  }
64
63
  };
65
- console.log(COLORS.generateToken({
66
- componentType: 'bg-surface',
67
- defaultVariant: 'critical',
68
- state: 'hover'
69
- }, theme));
70
64
 
71
65
  /**
72
66
  * Return Input Chip component.
@@ -1 +1 @@
1
- {"version":3,"file":"InputChip.js","names":["React","SystemIcons","ChipContainer","ChipContent","ChipContentContainer","defaultOnMouseDownHandler","useActionWithin","Size","States","useTheme","COLORS","jsx","_jsx","jsxs","_jsxs","InputChip","forwardRef","_ref","ref","icon","text","variant","Default","size","Medium","disabled","onClick","disableRemove","dataTestId","onRemove","className","rest","_objectWithoutProperties","_excluded","containerRef","useRef","removeRef","theme","onRemoveClick","event","stopPropagation","handleContainerKeyDown","key","console","log","generateToken","componentType","defaultVariant","state","_objectSpread","role","tabIndex","onMouseDown","onKeyDown","children","style","color","e","Close"],"sources":["../../src/Chips/InputChip.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {SystemIcons, SystemIcons as icons} from '../icons/index';\r\n\r\n/**\r\n * Import custom styles.\r\n */\r\nimport {ChipContainer, ChipContent, ChipContentContainer} from './ChipStyles';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {InputChipProps} from './ChipTypes';\r\nimport {defaultOnMouseDownHandler, useActionWithin} from '../common';\r\nimport {Size, States} from '../types';\r\nimport { useTheme } from 'styled-components';\r\nimport COLORS from '../styles/colors';\r\n\r\nconst InputChip: React.FunctionComponent<InputChipProps> = React.forwardRef(({\r\n icon,\r\n text,\r\n variant = States.Default,\r\n size = Size.Medium,\r\n disabled,\r\n onClick,\r\n disableRemove,\r\n dataTestId,\r\n onRemove,\r\n className,\r\n ...rest\r\n }: InputChipProps, ref) => {\r\n\r\n const containerRef = ref as React.MutableRefObject<HTMLDivElement> ?? React.useRef<HTMLDivElement>(null);\r\n const removeRef = React.useRef<HTMLDivElement>(null);\r\n const theme = useTheme();\r\n\r\n useActionWithin(containerRef, [removeRef]);\r\n\r\n /**\r\n * Calls onRemove action when remove button is clicked.\r\n * @param event - Event handler from the button click.\r\n */\r\n const onRemoveClick = (event?: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>) => {\r\n !!event && event.stopPropagation();\r\n onRemove(event);\r\n };\r\n\r\n const handleContainerKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === 'Enter' || event.key === ' ') {\r\n !disabled && onClick && onClick();\r\n }\r\n if (event.key === 'Backspace' && !disableRemove) {\r\n !disableRemove && onRemove && onRemove(event);\r\n }\r\n };\r\n\r\n console.log(COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'critical', state: 'hover' }, theme));\r\n\r\n /**\r\n * Return Input Chip component.\r\n */\r\n return (\r\n <ChipContainer ref={containerRef}\r\n role=\"button\"\r\n data-testid={dataTestId}\r\n aria-roledescription='Removable filter'\r\n className={`${size} ${disabled ? 'disabled' : ''} ${variant} ${!!onClick ? 'interactive' : ''} ${className || ''}`}\r\n tabIndex={disabled || !onClick ? -1 : 0}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onKeyDown={handleContainerKeyDown}\r\n onClick={() => !disabled && onClick && onClick()}\r\n {...rest}>\r\n <ChipContentContainer>\r\n <ChipContent className={'with-action-right'}>\r\n {icon && <div style={{color:'inherit'}} className={'chip-icon icon-left'}>{icon}</div>}\r\n\r\n <div style={{color:'inherit'}}>{text}</div>\r\n\r\n <div ref={removeRef}\r\n className={`action-right ${disableRemove ? 'disabled' : ''}`}\r\n tabIndex={disableRemove || disabled ? -1 : 0}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onClick={e => !disableRemove && !disabled && onRemoveClick(e)}\r\n onKeyDown={e => (e.key === 'Enter' || e.key === ' ') && !disableRemove && !disabled && onRemoveClick(e)}>\r\n <div className={'chip-icon'}>\r\n <SystemIcons.Close className={'remove'}/>\r\n </div>\r\n </div>\r\n </ChipContent>\r\n </ChipContentContainer>\r\n </ChipContainer>\r\n );\r\n});\r\n\r\nexport default InputChip;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"InputChip.js","names":["React","SystemIcons","ChipContainer","ChipContent","ChipContentContainer","defaultOnMouseDownHandler","useActionWithin","Size","States","useTheme","jsx","_jsx","jsxs","_jsxs","InputChip","forwardRef","_ref","ref","icon","text","variant","Default","size","Medium","disabled","onClick","disableRemove","dataTestId","onRemove","className","rest","_objectWithoutProperties","_excluded","containerRef","useRef","removeRef","theme","onRemoveClick","event","stopPropagation","handleContainerKeyDown","key","_objectSpread","role","tabIndex","onMouseDown","onKeyDown","children","style","color","e","Close"],"sources":["../../src/Chips/InputChip.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {SystemIcons, SystemIcons as icons} from '../icons/index';\r\n\r\n/**\r\n * Import custom styles.\r\n */\r\nimport {ChipContainer, ChipContent, ChipContentContainer} from './ChipStyles';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {InputChipProps} from './ChipTypes';\r\nimport {defaultOnMouseDownHandler, useActionWithin} from '../common';\r\nimport {Size, States} from '../types';\r\nimport { useTheme } from 'styled-components';\r\nimport COLORS from '../styles/colors';\r\n\r\nconst InputChip: React.FunctionComponent<InputChipProps> = React.forwardRef(({\r\n icon,\r\n text,\r\n variant = States.Default,\r\n size = Size.Medium,\r\n disabled,\r\n onClick,\r\n disableRemove,\r\n dataTestId,\r\n onRemove,\r\n className,\r\n ...rest\r\n }: InputChipProps, ref) => {\r\n\r\n const containerRef = ref as React.MutableRefObject<HTMLDivElement> ?? React.useRef<HTMLDivElement>(null);\r\n const removeRef = React.useRef<HTMLDivElement>(null);\r\n const theme = useTheme();\r\n\r\n useActionWithin(containerRef, [removeRef]);\r\n\r\n /**\r\n * Calls onRemove action when remove button is clicked.\r\n * @param event - Event handler from the button click.\r\n */\r\n const onRemoveClick = (event?: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>) => {\r\n !!event && event.stopPropagation();\r\n onRemove(event);\r\n };\r\n\r\n const handleContainerKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === 'Enter' || event.key === ' ') {\r\n !disabled && onClick && onClick();\r\n }\r\n if (event.key === 'Backspace' && !disableRemove) {\r\n !disableRemove && onRemove && onRemove(event);\r\n }\r\n };\r\n \r\n /**\r\n * Return Input Chip component.\r\n */\r\n return (\r\n <ChipContainer ref={containerRef}\r\n role=\"button\"\r\n data-testid={dataTestId}\r\n aria-roledescription='Removable filter'\r\n className={`${size} ${disabled ? 'disabled' : ''} ${variant} ${!!onClick ? 'interactive' : ''} ${className || ''}`}\r\n tabIndex={disabled || !onClick ? -1 : 0}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onKeyDown={handleContainerKeyDown}\r\n onClick={() => !disabled && onClick && onClick()}\r\n {...rest}>\r\n <ChipContentContainer>\r\n <ChipContent className={'with-action-right'}>\r\n {icon && <div style={{color:'inherit'}} className={'chip-icon icon-left'}>{icon}</div>}\r\n\r\n <div style={{color:'inherit'}}>{text}</div>\r\n\r\n <div ref={removeRef}\r\n className={`action-right ${disableRemove ? 'disabled' : ''}`}\r\n tabIndex={disableRemove || disabled ? -1 : 0}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onClick={e => !disableRemove && !disabled && onRemoveClick(e)}\r\n onKeyDown={e => (e.key === 'Enter' || e.key === ' ') && !disableRemove && !disabled && onRemoveClick(e)}>\r\n <div className={'chip-icon'}>\r\n <SystemIcons.Close className={'remove'}/>\r\n </div>\r\n </div>\r\n </ChipContent>\r\n </ChipContentContainer>\r\n </ChipContainer>\r\n );\r\n});\r\n\r\nexport default InputChip;\r\n"],"mappings":"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","ignoreList":[]}
@@ -64,7 +64,7 @@ const DropdownContentContainer = exports.DropdownContentContainer = _styledCompo
64
64
  ${props => props.$isButton ? _CommonStyling.DropdownContentButtonStyling : ''};
65
65
 
66
66
  box-sizing: border-box;
67
- box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);
67
+ box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.15);
68
68
  padding: 4px 0px;
69
69
 
70
70
  min-width: ${props => props.$size == _types.Size.Large ? '320px' : props.$size == _types.Size.Medium ? '280px' : '240px'};
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownContent.cjs","names":["_react","_interopRequireDefault","require","_styledComponents","_TextButton","_types","_CommonStyling","_typography","_styles","_InputFields","_zIndexes","_MenuItem","_jsxRuntime","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","OFFSET_BEFORE_SHOW","DropdownContentContainer","exports","styled","div","props","COLORS","generateToken","componentType","defaultVariant","theme","Z_INDEXES","dropdown","$isButton","$offsetLeft","$offsetTop","DropdownContentButtonStyling","$size","Size","Large","Medium","$scrollable","$maxHeight","DropdownContentItemsContainer","hover","active","focus","DropdownContentListContainer","$itemsType","scrollBarStyling","Small","DropdownContentMenuContentContainer","ComponentXLStyling","ComponentTextStyle","Bold","ComponentLStyling","ComponentMStyling","Regular","ComponentSStyling","DividerContainer","DropdownContentTopItemContainer","DropdownContentActionButtonContainer","Overlay","modal","DropdownContent","React","forwardRef","_ref","ref","id","customizationProps","alignLeft","isButton","size","isOpen","width","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","outline","containerRef","onActiveDescendantChanged","ariaRolesType","isUp","setIsUp","useState","locationDefined","setLocationDefined","offset","setOffset","top","left","dropdownContentRef","useRef","itemsType","itemsListRef","actionButtonRef","determineDropUp","options","items","rect","current","getBoundingClientRect","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","height","up","setNewFocusedElement","index","newFocusedElement","elRefs","oldFocusedElement","classList","remove","add","scrollIntoView","block","inline","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","findNextActiveIndex","direction","i","disabled","handleKeyDown","e","key","preventDefault","focusedNow","arrLength","haveTopItem","undefined","target","focusedElement","click","useEffect","document","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","createRef","setElRefs","Array","fill","map","_","pinTopItem","multiSelect","getSuggestions","suggestion","elRef","blur","observer","IntersectionObserver","entries","isIntersecting","activeElement","threshold","rootMargin","observe","calculateOffset","disconnect","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","visibleItems","allSelected","some","y","showTopItem","suggestions","find","c","selectedFirst","jsxs","children","jsx","RadioButton","role","iconPointerEventsTransparent","onFocus","tabIndexVal","className","select","label","Checkbox","newValues","semiSelected","Fragment","default","tabIndex","onClickHandler","stopPropagation","getElements","customContent","style","cls","$alignLeft","scrollable","maxHeight","onScroll","$outline","menuContent","action","actionLabel","icon","actionIcon","loading","actionLoading","actionDisabled","variant","actionVariant","onClick","propTypes","_propTypes","bool","isRequired","shape","oneOf","node","string","func","arrayOf","noteLabel","showDividerAbove","locked","oneOfType","number","_default"],"sources":["../../src/Dropdown/DropdownContent.tsx"],"sourcesContent":["import React, { MutableRefObject, useCallback } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport TextButton from '../Button/TextButton';\r\nimport { Size } from '../types';\r\nimport { DropdownContentButtonStyling } from './CommonStyling';\r\nimport { ComponentLStyling, ComponentXLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\r\nimport { COLORS, focusStyles, scrollBarStyling } from '../styles';\r\nimport { Checkbox, RadioButton } from '../InputFields';\r\nimport { Z_INDEXES } from '../styles/z-indexes';\r\nimport MenuItem from '../MenuItem/MenuItem';\r\nimport { defaultOnMouseDownHandler } from '../common';\r\n\r\nconst MAX_MENU_HEIGHT = 240;\r\nconst AVG_OPTION_HEIGHT = 48;\r\nconst OFFSET_BEFORE_SHOW = 1000000;\r\n\r\nexport const DropdownContentContainer = styled.div<{ $offsetTop: string; $offsetLeft: string; $isButton: boolean; $alignLeft?: boolean; $size?: Size; $scrollable?: boolean; $maxHeight?: string }>`\r\n display: none;\r\n pointer-events: auto;\r\n position: absolute;\r\n background-color: ${props => COLORS.generateToken({componentType:'bg-surface', defaultVariant:'default'}, props.theme)};\r\n\r\n z-index: ${Z_INDEXES.dropdown};\r\n margin: ${(props) => (props.$isButton ? '-4px' : '4px 0px')};\r\n\r\n inset: 0px auto auto 100%;\r\n\r\n &.show {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n &.down,\r\n &.up {\r\n ${(props) => `transform: translate(${props.$offsetLeft}, ${props.$offsetTop});`}\r\n }\r\n }\r\n\r\n &.outline:focus:after {\r\n content: '';\r\n pointer-events: none;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n outline: 4px solid black;\r\n outline-offset: 2px;\r\n border-radius: 2px;\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n ${(props) => (props.$isButton ? DropdownContentButtonStyling : '')};\r\n\r\n box-sizing: border-box;\r\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\r\n padding: 4px 0px;\r\n\r\n min-width: ${(props) => (props.$size == Size.Large ? '320px' : props.$size == Size.Medium ? '280px' : '240px')};\r\n border-radius: ${(props) => (props.$size == Size.Large ? '10px' : props.$size == Size.Medium ? '8px' : '6px')};\r\n\r\n max-height: ${(props) => (!props.$scrollable ? 'auto' : props.$maxHeight ? props.$maxHeight : props.$size == Size.Large ? '320px' : props.$size == Size.Medium ? '280px' : '240px')};\r\n`;\r\n\r\nexport const DropdownContentItemsContainer = styled.div<{ $size?: Size }>`\r\n > *:hover {\r\n z-index: ${Z_INDEXES.hover};\r\n }\r\n\r\n > *:active,\r\n > *.active {\r\n z-index: ${Z_INDEXES.active};\r\n }\r\n\r\n > *:focus {\r\n z-index: ${Z_INDEXES.focus};\r\n }\r\n`;\r\n\r\nexport const DropdownContentListContainer = styled.div<{ $scrollable?: boolean; $size?: Size; $itemsType?: string; $outline?: boolean }>`\r\n ${(props) => (props.$scrollable ? 'overflow-y: scroll;' : '')}\r\n ${(props) => (props.$scrollable ? 'margin-right: 6px;' : '')}\r\n ${(props) => (props.$scrollable ? 'padding-right: 6px;' : '')}\r\n ${(props) => (props.$itemsType != 'normal' ? 'margin-left: 4px;' : '')}\r\n div.divider {\r\n display: block;\r\n width: calc(100% - 40px);\r\n margin-left: 16px;\r\n border-top: 1px solid #e5e5e5;\r\n position: absolute;\r\n top: 0px;\r\n }\r\n\r\n ${DropdownContentItemsContainer} {\r\n padding-top: ${(props) => (props.$size == Size.Large ? '8px' : props.$size == Size.Medium ? '4px' : '0px')};\r\n padding-bottom: ${(props) => (props.$size == Size.Large ? '8px' : props.$size == Size.Medium ? '4px' : '0px')};\r\n\r\n word-break: break-word;\r\n }\r\n\r\n *:focus {\r\n outline: none !important;\r\n }\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n`;\r\n\r\nconst DropdownContentMenuContentContainer = styled.div<{ $size?: Size }>`\r\n h1,\r\n h2,\r\n h3 {\r\n margin-block-start: 0px;\r\n margin-block-end: 0px;\r\n ${(props) => props.$size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n ${(props) => props.$size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n ${(props) => (props.$size == Size.Small || !props.$size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n padding: ${(props) => (props.$size == Size.Small || !props.$size ? '10px 16px 6px' : props.$size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px')};\r\n }\r\n\r\n p {\r\n margin-block-start: 0px;\r\n margin-block-end: 0px;\r\n ${(props) => props.$size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n ${(props) => props.$size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n ${(props) => (props.$size == Size.Small || !props.$size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n padding: ${(props) => (props.$size == Size.Small || !props.$size ? '8px 16px' : props.$size == Size.Medium ? '12px 24px' : '16px 32px')};\r\n }\r\n`;\r\n\r\nconst DividerContainer = styled.div<{ $size?: Size }>`\r\n position: relative;\r\n\r\n margin-top: ${(props) => (props.$size == Size.Large ? '16px' : props.$size == Size.Medium ? '12px' : props.$size == Size.Small || !props.$size ? '8px' : '6px')};\r\n\r\n div.divider {\r\n width: 100%;\r\n margin: 0px;\r\n }\r\n`;\r\n\r\nconst DropdownContentTopItemContainer = styled.div<{ $size?: Size }>`\r\n border-bottom-style: solid;\r\n border-bottom-color: ${props => COLORS.generateToken({componentType:'border', defaultVariant:'subtle'}, props.theme)};\r\n border-bottom-width: 1px;\r\n margin-right: 22px;\r\n`;\r\n\r\nconst DropdownContentActionButtonContainer = styled.div<{ $size?: Size; $scrollable?: boolean }>`\r\n ${(props) => (props.$scrollable ? `border-top: 1px solid ${COLORS.generateToken({componentType:'border', defaultVariant:'subtle'}, props.theme)};` : '')}\r\n ${(props) => (props.$scrollable ? 'margin-top: 4px;' : '')}\r\n\r\n padding: ${(props) => (props.$size === Size.Small || !props.$size ? '4px 16px 0px' : props.$size === Size.Medium ? '12px 16px 8px' : '16px 16px 12px')};\r\n\r\n button {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst Overlay = styled.div`\r\n position: relative;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n pointer-events: none;\r\n z-index: ${Z_INDEXES.modal};\r\n`;\r\n\r\nexport interface DropdownItem {\r\n /** Required. Value of the DropdownItem. */\r\n value: string;\r\n /** Optional. Display label to show in the MenuItem. If not provided then 'value' will be used as label. */\r\n displayLabel?: string;\r\n /** Optional. Note label to be shown under the Display label in the MenuItem. */\r\n noteLabel?: string;\r\n /** */\r\n suggestion?: boolean;\r\n /** Optional. Show dividing line on the top of the item. */\r\n showDividerAbove?: boolean;\r\n /** Optional. If disabled user can not interact with the item. */\r\n disabled?: boolean;\r\n /** Optional. If item is locked then user can not interact with the item and 'lock' icon is shown on the right side of the item. */\r\n locked?: boolean;\r\n /** Optional. Icon to be shown on the left side of the menu item */\r\n icon?: React.ReactNode;\r\n /** */\r\n customContent?: React.ReactNode;\r\n}\r\n\r\nexport interface DropdownCustomizationProps {\r\n itemsType?: 'radio' | 'checkbox' | 'normal';\r\n menuContent?: React.ReactNode;\r\n scrollable?: boolean;\r\n multiSelect?: boolean;\r\n maxHeight?: string;\r\n actionLabel?: string;\r\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\r\n actionIcon?: React.ReactNode;\r\n actionLoading?: boolean;\r\n actionDisabled?: boolean;\r\n action: () => boolean | void | undefined;\r\n pinTopItem?: boolean;\r\n onValueUpdate: (values: string[]) => boolean | void | undefined;\r\n items: DropdownItem[];\r\n}\r\n\r\nexport interface DropdownProps {\r\n isButton: boolean;\r\n customizationProps: DropdownCustomizationProps;\r\n alignLeft?: boolean;\r\n isOpen: boolean;\r\n setIsOpen: (open: boolean) => void;\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n id: string;\r\n filter: string;\r\n width?: string;\r\n onActiveDescendantChanged?: (descendantId?: string) => void;\r\n selectedValues: string[];\r\n setSelectedValues: (val: string[]) => void;\r\n messageOnNoResults: string;\r\n focused: number | null;\r\n setFocused: (focused: number | null) => void;\r\n outline?: boolean;\r\n containerRef: React.RefObject<HTMLDivElement | null>;\r\n ariaRolesType?: 'input' | 'menu';\r\n}\r\n\r\nconst DropdownContent = React.forwardRef<HTMLDivElement, DropdownProps>(\r\n (\r\n {\r\n id,\r\n customizationProps,\r\n alignLeft,\r\n isButton,\r\n size,\r\n isOpen,\r\n width,\r\n setIsOpen,\r\n filter,\r\n focused,\r\n setFocused,\r\n selectedValues,\r\n setSelectedValues,\r\n messageOnNoResults,\r\n outline,\r\n containerRef,\r\n onActiveDescendantChanged,\r\n ariaRolesType = 'menu',\r\n },\r\n ref,\r\n ) => {\r\n const [isUp, setIsUp] = React.useState<boolean>(false);\r\n const [locationDefined, setLocationDefined] = React.useState<boolean>(false);\r\n const [offset, setOffset] = React.useState<{ top: string; left: string }>({ top: '0', left: '0' });\r\n\r\n const dropdownContentRef = (ref as MutableRefObject<HTMLDivElement>) ?? React.useRef<HTMLDivElement>(null);\r\n\r\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\r\n if (!size) size = Size.Small;\r\n\r\n const itemsListRef = React.useRef<HTMLDivElement>(null);\r\n const actionButtonRef = React.useRef<HTMLButtonElement>(null);\r\n\r\n const determineDropUp = () => {\r\n const options = customizationProps.items;\r\n\r\n const rect = containerRef.current!.getBoundingClientRect();\r\n\r\n const windowHeight = window.innerHeight;\r\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\r\n const instOffsetWithMenu = rect.top + rect.height + menuHeight;\r\n\r\n const up = instOffsetWithMenu >= windowHeight;\r\n\r\n setOffset({\r\n top: up ? `calc(-100% - ${rect.height}px ${isButton ? '' : '- 8px'})` : '0',\r\n left: alignLeft ? `calc(-${rect.width}px)` : `calc(-100%)`,\r\n });\r\n\r\n setIsUp(up);\r\n setLocationDefined(true);\r\n };\r\n\r\n const setNewFocusedElement = (index: number) => {\r\n if (outline) dropdownContentRef.current?.focus();\r\n\r\n const newFocusedElement = elRefs[index];\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(index == 0 ? `${id}_topitem` : `${id}_${index}`);\r\n\r\n const oldFocusedElement = focused || focused === 0 ? elRefs[focused] : null;\r\n if (newFocusedElement && newFocusedElement !== oldFocusedElement) {\r\n setFocused(index);\r\n oldFocusedElement?.current?.classList.remove('dropdown-hover');\r\n\r\n newFocusedElement.current?.classList.add('dropdown-hover');\r\n newFocusedElement.current?.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n };\r\n\r\n const getFilteredItems = () => {\r\n const filtrationString = (filter ?? '').toUpperCase();\r\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\r\n };\r\n\r\n const findNextActiveIndex = (index: number, direction: number, items: DropdownItem[]) => {\r\n for (let i = index + direction; i > 0 && i <= items.length; i += direction) {\r\n if (!items[i - 1]?.disabled) {\r\n return i;\r\n }\r\n }\r\n\r\n return index;\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (isOpen) {\r\n if (e.key === 'ArrowUp' || e.key === 'Up') {\r\n e.preventDefault();\r\n let focusedNow = focused || focused === 0 ? focused : arrLength + 1;\r\n if (!!focusedNow) {\r\n focusedNow = focusedNow === 1 && haveTopItem() ? 0 : findNextActiveIndex(focusedNow, -1, getFilteredItems());\r\n\r\n setNewFocusedElement(focusedNow);\r\n }\r\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\r\n e.preventDefault();\r\n let focusedNow = focused;\r\n\r\n focusedNow = !!focusedNow || focusedNow === 0 ? findNextActiveIndex(focusedNow, 1, getFilteredItems()) : haveTopItem() ? 0 : 1;\r\n\r\n setNewFocusedElement(focusedNow);\r\n } else if (e.key === 'Escape' || e.key === 'Esc') {\r\n setIsOpen(false);\r\n setFocused(null);\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n } else if ((e.key === 'Enter' || e.key === ' ') && focused !== null && e.target !== actionButtonRef?.current) {\r\n e.preventDefault();\r\n const focusedElement = elRefs[focused];\r\n if (focusedElement) {\r\n focusedElement.current?.click();\r\n }\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n }\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n document.addEventListener('keydown', handleKeyDown);\r\n return () => {\r\n document.removeEventListener('keydown', handleKeyDown);\r\n };\r\n });\r\n\r\n const scrollPosition = React.useRef<number | undefined>(0);\r\n const handleScroll = () => {\r\n scrollPosition.current = itemsListRef.current?.scrollTop;\r\n };\r\n React.useLayoutEffect(() => {\r\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\r\n }, [selectedValues]);\r\n\r\n const getCorrectRef = (ref: React.RefObject<HTMLElement | null>): React.RefObject<HTMLElement | null> => {\r\n switch (customizationProps.itemsType) {\r\n case 'normal':\r\n return (ref as React.RefObject<HTMLButtonElement | null>) || React.createRef<HTMLButtonElement>();\r\n default:\r\n return (ref as React.RefObject<HTMLDivElement | null>) || React.createRef<HTMLDivElement>();\r\n }\r\n };\r\n\r\n const arrLength = getFilteredItems().length;\r\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement | null>[]>([]);\r\n\r\n React.useEffect(() => {\r\n if (elRefs?.length !== arrLength) {\r\n setFocused(null);\r\n }\r\n\r\n setElRefs((elRefs) =>\r\n Array(arrLength + 1)\r\n .fill(null)\r\n .map((_, i) => getCorrectRef(elRefs[i])),\r\n );\r\n }, [isOpen, arrLength]);\r\n\r\n React.useLayoutEffect(() => {\r\n isOpen && !locationDefined && determineDropUp();\r\n }, [isOpen, locationDefined]);\r\n\r\n const haveTopItem = () => {\r\n if (!customizationProps.pinTopItem) return false;\r\n\r\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\r\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\r\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\r\n return false;\r\n };\r\n\r\n const getSuggestions = () => {\r\n return getFilteredItems().filter((x) => x.suggestion);\r\n };\r\n\r\n /**\r\n * when dropdown opens set correct position of focused item\r\n * */\r\n React.useLayoutEffect(() => {\r\n if (isOpen && (focused || focused === 0)) {\r\n setNewFocusedElement(focused === 0 && !haveTopItem() ? 1 : focused);\r\n }\r\n }, [isOpen, focused]);\r\n\r\n /**\r\n * Reset dropdown content state on close\r\n * */\r\n React.useEffect(() => {\r\n if (!isOpen) {\r\n setLocationDefined(false);\r\n for (let elRef of elRefs) {\r\n elRef.current?.classList.remove('dropdown-hover');\r\n }\r\n setFocused(null);\r\n if(onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n dropdownContentRef.current?.classList.remove('outline');\r\n dropdownContentRef.current?.blur();\r\n } else {\r\n if (outline) {\r\n dropdownContentRef.current?.classList.add('outline');\r\n dropdownContentRef.current?.focus();\r\n }\r\n }\r\n }, [isOpen, dropdownContentRef, focused, outline]);\r\n\r\n /**\r\n * Scroll item container to top when dropdown opens\r\n * */\r\n React.useEffect(() => {\r\n if (isOpen && itemsListRef.current) {\r\n itemsListRef.current.scrollTop = 0;\r\n }\r\n }, [isOpen]);\r\n\r\n React.useEffect(() => {\r\n if (isOpen) {\r\n const observer = new IntersectionObserver(function (entries) {\r\n if (!entries[0].isIntersecting) {\r\n setIsOpen(false);\r\n //@ts-ignore\r\n document?.activeElement?.blur();\r\n }\r\n }, {threshold: [0], rootMargin: '8px'});\r\n\r\n observer.observe(containerRef.current!);\r\n\r\n calculateOffset();\r\n window.addEventListener('scroll', calculateOffset, true);\r\n window.addEventListener('resize', calculateOffset);\r\n\r\n return () => {\r\n observer.disconnect();\r\n window.removeEventListener('scroll', calculateOffset, true);\r\n window.removeEventListener('resize', calculateOffset);\r\n }\r\n }\r\n return () => {};\r\n }, [isOpen]);\r\n\r\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\r\n let newValue: string[] = [];\r\n if (customizationProps.multiSelect) {\r\n if (selected) newValue = [...selectedValues, item.value];\r\n else newValue = selectedValues.filter((x) => x != item.value);\r\n } else newValue = selected ? [item.value] : [];\r\n\r\n setSelectedValues(newValue);\r\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)) {\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n const getTopItem = () => {\r\n if (!customizationProps.pinTopItem) return;\r\n const visibleItems = getFilteredItems();\r\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\r\n let showTopItem = false;\r\n const suggestions = getSuggestions();\r\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\r\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\r\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\r\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\r\n\r\n if (!showTopItem) return;\r\n\r\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find((x) => x.value == selectedValues[0]) : null;\r\n\r\n return (\r\n <DropdownContentTopItemContainer $size={size}>\r\n {customizationProps.itemsType === 'radio' && (\r\n <RadioButton\r\n ref={elRefs[0] as React.RefObject<HTMLDivElement | null>}\r\n role='menuitemradio'\r\n iconPointerEventsTransparent={true}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n tabIndexVal={-1}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n select={() => {}}\r\n label={selectedFirst?.displayLabel ?? selectedFirst?.value}\r\n size={size}\r\n id={`${id}_topitem`}\r\n selected={true}\r\n />\r\n )}\r\n {customizationProps.itemsType === 'checkbox' && (\r\n <Checkbox\r\n ref={elRefs[0] as React.RefObject<HTMLDivElement | null>}\r\n role='menuitemcheckbox'\r\n tabIndexVal={-1}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n select={(selected: boolean) => {\r\n if (!customizationProps.multiSelect) return;\r\n\r\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\r\n setSelectedValues(newValues);\r\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues)) setIsOpen(false);\r\n }}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n iconPointerEventsTransparent={true}\r\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\r\n size={size}\r\n id={`${id}_checkbox_selectall`}\r\n label={customizationProps.multiSelect ? 'Select all' : selectedFirst?.displayLabel ?? selectedFirst?.value}\r\n selected={!customizationProps.multiSelect || allSelected}\r\n />\r\n )}\r\n {customizationProps.itemsType === 'normal' && (\r\n <>\r\n {suggestions.map((x) => (\r\n <MenuItem\r\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \r\n key={`${id}_topitem_${x.value}`}\r\n item={x}\r\n size={size}\r\n active={false}\r\n tabIndex={-1}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n ref={elRefs[0] as React.RefObject<HTMLButtonElement | null>}\r\n id={`${id}_topitem`}\r\n onClickHandler={(e: any) => {\r\n e.stopPropagation();\r\n customizationProps.onValueUpdate([x.value]);\r\n setSelectedValues([x.value]);\r\n setIsOpen(false);\r\n setFocused(null);\r\n }}\r\n />\r\n ))}\r\n </>\r\n )}\r\n </DropdownContentTopItemContainer>\r\n );\r\n };\r\n\r\n const getElements = (messageOnNoResults: string, size: Size.Small | Size.Medium | Size.Large) => {\r\n if (getFilteredItems().length === 0) {\r\n return <MenuItem item={{ value: messageOnNoResults, disabled: true }} size={size} id=\"noResultsFound\" active={false} onClickHandler={(e) => {}} />;\r\n }\r\n return (\r\n <DropdownContentItemsContainer $size={size}>\r\n {getFilteredItems()\r\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\r\n .map((item, index) => {\r\n return (\r\n <React.Fragment key={`key_${id}_${item.value}`}>\r\n {item.customContent}\r\n {!item.customContent && customizationProps.itemsType == 'radio' && (\r\n <RadioButton\r\n role='menuitemradio'\r\n select={(selected: boolean) => handleItemClick(selected, item)}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement | null>}\r\n size={size}\r\n tabIndexVal={-1}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n iconPointerEventsTransparent={true}\r\n disabled={item?.disabled}\r\n key={`key_${id}_${index + 1}`}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n id={`${id}_${index + 1}`}\r\n label={item.displayLabel ?? item.value}\r\n selected={selectedValues?.includes(item.value)}\r\n />\r\n )}\r\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\r\n <Checkbox\r\n role='menuitemcheckbox'\r\n select={(selected: boolean) => handleItemClick(selected, item)}\r\n iconPointerEventsTransparent={true}\r\n disabled={item?.disabled}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement | null>}\r\n size={size}\r\n tabIndexVal={-1}\r\n key={`key_${id}_${index + 1}`}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n id={`${id}_${index + 1}`}\r\n label={item.displayLabel ?? item.value}\r\n selected={selectedValues?.includes(item.value)}\r\n />\r\n )}\r\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\r\n <MenuItem\r\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \r\n key={`key_${id}_${index + 1}`}\r\n id={`${id}_${index + 1}`}\r\n item={item}\r\n tabIndex={-1}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n size={size}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n active={selectedValues?.includes(item.value)}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLButtonElement | null>}\r\n onClickHandler={(e: any) => {\r\n e.stopPropagation();\r\n customizationProps.onValueUpdate([item.value]);\r\n setSelectedValues([item.value]);\r\n setIsOpen(false);\r\n setFocused(null);\r\n }}\r\n />\r\n )}\r\n </React.Fragment>\r\n );\r\n })}\r\n </DropdownContentItemsContainer>\r\n );\r\n };\r\n\r\n const calculateOffset = () => {\r\n const rect = containerRef?.current?.getBoundingClientRect();\r\n if (rect) {\r\n dropdownContentRef.current.style.width = width ?? `${rect.width}px`;\r\n }\r\n determineDropUp();\r\n };\r\n\r\n const cls = `${isOpen ? 'show' : ''} ${isOpen && outline ? 'outline' : ''} ${locationDefined ? (isUp ? 'up' : 'down') : ''}`;\r\n\r\n return (\r\n <Overlay>\r\n <DropdownContentContainer\r\n role={ariaRolesType == \"menu\" ? \"menu\" : \"optionlist\"}\r\n ref={dropdownContentRef}\r\n $size={size}\r\n $offsetTop={offset.top}\r\n id={id}\r\n $offsetLeft={offset.left}\r\n tabIndex={-1}\r\n $isButton={isButton}\r\n $alignLeft={alignLeft}\r\n $scrollable={customizationProps.scrollable}\r\n $maxHeight={customizationProps.maxHeight}\r\n className={cls}>\r\n <DropdownContentListContainer\r\n tabIndex={-1}\r\n role=\"group\"\r\n $size={size}\r\n $itemsType={customizationProps.itemsType}\r\n onScroll={handleScroll}\r\n ref={itemsListRef}\r\n $outline={outline}\r\n $scrollable={customizationProps.scrollable}>\r\n {customizationProps.menuContent && (\r\n <DropdownContentMenuContentContainer $size={size}>\r\n {customizationProps.menuContent}\r\n <DividerContainer $size={size}>\r\n <div className=\"divider\" />\r\n </DividerContainer>\r\n </DropdownContentMenuContentContainer>\r\n )}\r\n {customizationProps.pinTopItem && getTopItem()}\r\n {getElements(messageOnNoResults, size)}\r\n </DropdownContentListContainer>\r\n {customizationProps.action && customizationProps.actionLabel && (\r\n <DropdownContentActionButtonContainer $size={size} $scrollable={customizationProps.scrollable}>\r\n <TextButton\r\n width=\"100%\"\r\n role=\"menuitem\"\r\n icon={customizationProps.actionIcon}\r\n ref={actionButtonRef}\r\n loading={customizationProps.actionLoading}\r\n disabled={customizationProps.actionDisabled}\r\n variant={customizationProps.actionVariant ?? 'primary'}\r\n size={size}\r\n onClick={() => customizationProps.action() && setIsOpen(false)}>\r\n {customizationProps.actionLabel}\r\n </TextButton>\r\n </DropdownContentActionButtonContainer>\r\n )}\r\n </DropdownContentContainer>\r\n </Overlay>\r\n );\r\n },\r\n);\r\n\r\nexport default DropdownContent;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DropdownContent.cjs","names":["_react","_interopRequireDefault","require","_styledComponents","_TextButton","_types","_CommonStyling","_typography","_styles","_InputFields","_zIndexes","_MenuItem","_jsxRuntime","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","OFFSET_BEFORE_SHOW","DropdownContentContainer","exports","styled","div","props","COLORS","generateToken","componentType","defaultVariant","theme","Z_INDEXES","dropdown","$isButton","$offsetLeft","$offsetTop","DropdownContentButtonStyling","$size","Size","Large","Medium","$scrollable","$maxHeight","DropdownContentItemsContainer","hover","active","focus","DropdownContentListContainer","$itemsType","scrollBarStyling","Small","DropdownContentMenuContentContainer","ComponentXLStyling","ComponentTextStyle","Bold","ComponentLStyling","ComponentMStyling","Regular","ComponentSStyling","DividerContainer","DropdownContentTopItemContainer","DropdownContentActionButtonContainer","Overlay","modal","DropdownContent","React","forwardRef","_ref","ref","id","customizationProps","alignLeft","isButton","size","isOpen","width","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","outline","containerRef","onActiveDescendantChanged","ariaRolesType","isUp","setIsUp","useState","locationDefined","setLocationDefined","offset","setOffset","top","left","dropdownContentRef","useRef","itemsType","itemsListRef","actionButtonRef","determineDropUp","options","items","rect","current","getBoundingClientRect","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","height","up","setNewFocusedElement","index","newFocusedElement","elRefs","oldFocusedElement","classList","remove","add","scrollIntoView","block","inline","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","findNextActiveIndex","direction","i","disabled","handleKeyDown","e","key","preventDefault","focusedNow","arrLength","haveTopItem","undefined","target","focusedElement","click","useEffect","document","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","createRef","setElRefs","Array","fill","map","_","pinTopItem","multiSelect","getSuggestions","suggestion","elRef","blur","observer","IntersectionObserver","entries","isIntersecting","activeElement","threshold","rootMargin","observe","calculateOffset","disconnect","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","visibleItems","allSelected","some","y","showTopItem","suggestions","find","c","selectedFirst","jsxs","children","jsx","RadioButton","role","iconPointerEventsTransparent","onFocus","tabIndexVal","className","select","label","Checkbox","newValues","semiSelected","Fragment","default","tabIndex","onClickHandler","stopPropagation","getElements","customContent","style","cls","$alignLeft","scrollable","maxHeight","onScroll","$outline","menuContent","action","actionLabel","icon","actionIcon","loading","actionLoading","actionDisabled","variant","actionVariant","onClick","propTypes","_propTypes","bool","isRequired","shape","oneOf","node","string","func","arrayOf","noteLabel","showDividerAbove","locked","oneOfType","number","_default"],"sources":["../../src/Dropdown/DropdownContent.tsx"],"sourcesContent":["import React, { MutableRefObject, useCallback } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport TextButton from '../Button/TextButton';\r\nimport { Size } from '../types';\r\nimport { DropdownContentButtonStyling } from './CommonStyling';\r\nimport { ComponentLStyling, ComponentXLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\r\nimport { COLORS, focusStyles, scrollBarStyling } from '../styles';\r\nimport { Checkbox, RadioButton } from '../InputFields';\r\nimport { Z_INDEXES } from '../styles/z-indexes';\r\nimport MenuItem from '../MenuItem/MenuItem';\r\nimport { defaultOnMouseDownHandler } from '../common';\r\n\r\nconst MAX_MENU_HEIGHT = 240;\r\nconst AVG_OPTION_HEIGHT = 48;\r\nconst OFFSET_BEFORE_SHOW = 1000000;\r\n\r\nexport const DropdownContentContainer = styled.div<{ $offsetTop: string; $offsetLeft: string; $isButton: boolean; $alignLeft?: boolean; $size?: Size; $scrollable?: boolean; $maxHeight?: string }>`\r\n display: none;\r\n pointer-events: auto;\r\n position: absolute;\r\n background-color: ${props => COLORS.generateToken({componentType:'bg-surface', defaultVariant:'default'}, props.theme)};\r\n\r\n z-index: ${Z_INDEXES.dropdown};\r\n margin: ${(props) => (props.$isButton ? '-4px' : '4px 0px')};\r\n\r\n inset: 0px auto auto 100%;\r\n\r\n &.show {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n &.down,\r\n &.up {\r\n ${(props) => `transform: translate(${props.$offsetLeft}, ${props.$offsetTop});`}\r\n }\r\n }\r\n\r\n &.outline:focus:after {\r\n content: '';\r\n pointer-events: none;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n outline: 4px solid black;\r\n outline-offset: 2px;\r\n border-radius: 2px;\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n ${(props) => (props.$isButton ? DropdownContentButtonStyling : '')};\r\n\r\n box-sizing: border-box;\r\n box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.15);\r\n padding: 4px 0px;\r\n\r\n min-width: ${(props) => (props.$size == Size.Large ? '320px' : props.$size == Size.Medium ? '280px' : '240px')};\r\n border-radius: ${(props) => (props.$size == Size.Large ? '10px' : props.$size == Size.Medium ? '8px' : '6px')};\r\n\r\n max-height: ${(props) => (!props.$scrollable ? 'auto' : props.$maxHeight ? props.$maxHeight : props.$size == Size.Large ? '320px' : props.$size == Size.Medium ? '280px' : '240px')};\r\n`;\r\n\r\nexport const DropdownContentItemsContainer = styled.div<{ $size?: Size }>`\r\n > *:hover {\r\n z-index: ${Z_INDEXES.hover};\r\n }\r\n\r\n > *:active,\r\n > *.active {\r\n z-index: ${Z_INDEXES.active};\r\n }\r\n\r\n > *:focus {\r\n z-index: ${Z_INDEXES.focus};\r\n }\r\n`;\r\n\r\nexport const DropdownContentListContainer = styled.div<{ $scrollable?: boolean; $size?: Size; $itemsType?: string; $outline?: boolean }>`\r\n ${(props) => (props.$scrollable ? 'overflow-y: scroll;' : '')}\r\n ${(props) => (props.$scrollable ? 'margin-right: 6px;' : '')}\r\n ${(props) => (props.$scrollable ? 'padding-right: 6px;' : '')}\r\n ${(props) => (props.$itemsType != 'normal' ? 'margin-left: 4px;' : '')}\r\n div.divider {\r\n display: block;\r\n width: calc(100% - 40px);\r\n margin-left: 16px;\r\n border-top: 1px solid #e5e5e5;\r\n position: absolute;\r\n top: 0px;\r\n }\r\n\r\n ${DropdownContentItemsContainer} {\r\n padding-top: ${(props) => (props.$size == Size.Large ? '8px' : props.$size == Size.Medium ? '4px' : '0px')};\r\n padding-bottom: ${(props) => (props.$size == Size.Large ? '8px' : props.$size == Size.Medium ? '4px' : '0px')};\r\n\r\n word-break: break-word;\r\n }\r\n\r\n *:focus {\r\n outline: none !important;\r\n }\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n`;\r\n\r\nconst DropdownContentMenuContentContainer = styled.div<{ $size?: Size }>`\r\n h1,\r\n h2,\r\n h3 {\r\n margin-block-start: 0px;\r\n margin-block-end: 0px;\r\n ${(props) => props.$size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n ${(props) => props.$size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n ${(props) => (props.$size == Size.Small || !props.$size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n padding: ${(props) => (props.$size == Size.Small || !props.$size ? '10px 16px 6px' : props.$size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px')};\r\n }\r\n\r\n p {\r\n margin-block-start: 0px;\r\n margin-block-end: 0px;\r\n ${(props) => props.$size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n ${(props) => props.$size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n ${(props) => (props.$size == Size.Small || !props.$size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n padding: ${(props) => (props.$size == Size.Small || !props.$size ? '8px 16px' : props.$size == Size.Medium ? '12px 24px' : '16px 32px')};\r\n }\r\n`;\r\n\r\nconst DividerContainer = styled.div<{ $size?: Size }>`\r\n position: relative;\r\n\r\n margin-top: ${(props) => (props.$size == Size.Large ? '16px' : props.$size == Size.Medium ? '12px' : props.$size == Size.Small || !props.$size ? '8px' : '6px')};\r\n\r\n div.divider {\r\n width: 100%;\r\n margin: 0px;\r\n }\r\n`;\r\n\r\nconst DropdownContentTopItemContainer = styled.div<{ $size?: Size }>`\r\n border-bottom-style: solid;\r\n border-bottom-color: ${props => COLORS.generateToken({componentType:'border', defaultVariant:'subtle'}, props.theme)};\r\n border-bottom-width: 1px;\r\n margin-right: 22px;\r\n`;\r\n\r\nconst DropdownContentActionButtonContainer = styled.div<{ $size?: Size; $scrollable?: boolean }>`\r\n ${(props) => (props.$scrollable ? `border-top: 1px solid ${COLORS.generateToken({componentType:'border', defaultVariant:'subtle'}, props.theme)};` : '')}\r\n ${(props) => (props.$scrollable ? 'margin-top: 4px;' : '')}\r\n\r\n padding: ${(props) => (props.$size === Size.Small || !props.$size ? '4px 16px 0px' : props.$size === Size.Medium ? '12px 16px 8px' : '16px 16px 12px')};\r\n\r\n button {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst Overlay = styled.div`\r\n position: relative;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n pointer-events: none;\r\n z-index: ${Z_INDEXES.modal};\r\n`;\r\n\r\nexport interface DropdownItem {\r\n /** Required. Value of the DropdownItem. */\r\n value: string;\r\n /** Optional. Display label to show in the MenuItem. If not provided then 'value' will be used as label. */\r\n displayLabel?: string;\r\n /** Optional. Note label to be shown under the Display label in the MenuItem. */\r\n noteLabel?: string;\r\n /** */\r\n suggestion?: boolean;\r\n /** Optional. Show dividing line on the top of the item. */\r\n showDividerAbove?: boolean;\r\n /** Optional. If disabled user can not interact with the item. */\r\n disabled?: boolean;\r\n /** Optional. If item is locked then user can not interact with the item and 'lock' icon is shown on the right side of the item. */\r\n locked?: boolean;\r\n /** Optional. Icon to be shown on the left side of the menu item */\r\n icon?: React.ReactNode;\r\n /** */\r\n customContent?: React.ReactNode;\r\n}\r\n\r\nexport interface DropdownCustomizationProps {\r\n itemsType?: 'radio' | 'checkbox' | 'normal';\r\n menuContent?: React.ReactNode;\r\n scrollable?: boolean;\r\n multiSelect?: boolean;\r\n maxHeight?: string;\r\n actionLabel?: string;\r\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\r\n actionIcon?: React.ReactNode;\r\n actionLoading?: boolean;\r\n actionDisabled?: boolean;\r\n action: () => boolean | void | undefined;\r\n pinTopItem?: boolean;\r\n onValueUpdate: (values: string[]) => boolean | void | undefined;\r\n items: DropdownItem[];\r\n}\r\n\r\nexport interface DropdownProps {\r\n isButton: boolean;\r\n customizationProps: DropdownCustomizationProps;\r\n alignLeft?: boolean;\r\n isOpen: boolean;\r\n setIsOpen: (open: boolean) => void;\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n id: string;\r\n filter: string;\r\n width?: string;\r\n onActiveDescendantChanged?: (descendantId?: string) => void;\r\n selectedValues: string[];\r\n setSelectedValues: (val: string[]) => void;\r\n messageOnNoResults: string;\r\n focused: number | null;\r\n setFocused: (focused: number | null) => void;\r\n outline?: boolean;\r\n containerRef: React.RefObject<HTMLDivElement | null>;\r\n ariaRolesType?: 'input' | 'menu';\r\n}\r\n\r\nconst DropdownContent = React.forwardRef<HTMLDivElement, DropdownProps>(\r\n (\r\n {\r\n id,\r\n customizationProps,\r\n alignLeft,\r\n isButton,\r\n size,\r\n isOpen,\r\n width,\r\n setIsOpen,\r\n filter,\r\n focused,\r\n setFocused,\r\n selectedValues,\r\n setSelectedValues,\r\n messageOnNoResults,\r\n outline,\r\n containerRef,\r\n onActiveDescendantChanged,\r\n ariaRolesType = 'menu',\r\n },\r\n ref,\r\n ) => {\r\n const [isUp, setIsUp] = React.useState<boolean>(false);\r\n const [locationDefined, setLocationDefined] = React.useState<boolean>(false);\r\n const [offset, setOffset] = React.useState<{ top: string; left: string }>({ top: '0', left: '0' });\r\n\r\n const dropdownContentRef = (ref as MutableRefObject<HTMLDivElement>) ?? React.useRef<HTMLDivElement>(null);\r\n\r\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\r\n if (!size) size = Size.Small;\r\n\r\n const itemsListRef = React.useRef<HTMLDivElement>(null);\r\n const actionButtonRef = React.useRef<HTMLButtonElement>(null);\r\n\r\n const determineDropUp = () => {\r\n const options = customizationProps.items;\r\n\r\n const rect = containerRef.current!.getBoundingClientRect();\r\n\r\n const windowHeight = window.innerHeight;\r\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\r\n const instOffsetWithMenu = rect.top + rect.height + menuHeight;\r\n\r\n const up = instOffsetWithMenu >= windowHeight;\r\n\r\n setOffset({\r\n top: up ? `calc(-100% - ${rect.height}px ${isButton ? '' : '- 8px'})` : '0',\r\n left: alignLeft ? `calc(-${rect.width}px)` : `calc(-100%)`,\r\n });\r\n\r\n setIsUp(up);\r\n setLocationDefined(true);\r\n };\r\n\r\n const setNewFocusedElement = (index: number) => {\r\n if (outline) dropdownContentRef.current?.focus();\r\n\r\n const newFocusedElement = elRefs[index];\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(index == 0 ? `${id}_topitem` : `${id}_${index}`);\r\n\r\n const oldFocusedElement = focused || focused === 0 ? elRefs[focused] : null;\r\n if (newFocusedElement && newFocusedElement !== oldFocusedElement) {\r\n setFocused(index);\r\n oldFocusedElement?.current?.classList.remove('dropdown-hover');\r\n\r\n newFocusedElement.current?.classList.add('dropdown-hover');\r\n newFocusedElement.current?.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n };\r\n\r\n const getFilteredItems = () => {\r\n const filtrationString = (filter ?? '').toUpperCase();\r\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\r\n };\r\n\r\n const findNextActiveIndex = (index: number, direction: number, items: DropdownItem[]) => {\r\n for (let i = index + direction; i > 0 && i <= items.length; i += direction) {\r\n if (!items[i - 1]?.disabled) {\r\n return i;\r\n }\r\n }\r\n\r\n return index;\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (isOpen) {\r\n if (e.key === 'ArrowUp' || e.key === 'Up') {\r\n e.preventDefault();\r\n let focusedNow = focused || focused === 0 ? focused : arrLength + 1;\r\n if (!!focusedNow) {\r\n focusedNow = focusedNow === 1 && haveTopItem() ? 0 : findNextActiveIndex(focusedNow, -1, getFilteredItems());\r\n\r\n setNewFocusedElement(focusedNow);\r\n }\r\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\r\n e.preventDefault();\r\n let focusedNow = focused;\r\n\r\n focusedNow = !!focusedNow || focusedNow === 0 ? findNextActiveIndex(focusedNow, 1, getFilteredItems()) : haveTopItem() ? 0 : 1;\r\n\r\n setNewFocusedElement(focusedNow);\r\n } else if (e.key === 'Escape' || e.key === 'Esc') {\r\n setIsOpen(false);\r\n setFocused(null);\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n } else if ((e.key === 'Enter' || e.key === ' ') && focused !== null && e.target !== actionButtonRef?.current) {\r\n e.preventDefault();\r\n const focusedElement = elRefs[focused];\r\n if (focusedElement) {\r\n focusedElement.current?.click();\r\n }\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n }\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n document.addEventListener('keydown', handleKeyDown);\r\n return () => {\r\n document.removeEventListener('keydown', handleKeyDown);\r\n };\r\n });\r\n\r\n const scrollPosition = React.useRef<number | undefined>(0);\r\n const handleScroll = () => {\r\n scrollPosition.current = itemsListRef.current?.scrollTop;\r\n };\r\n React.useLayoutEffect(() => {\r\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\r\n }, [selectedValues]);\r\n\r\n const getCorrectRef = (ref: React.RefObject<HTMLElement | null>): React.RefObject<HTMLElement | null> => {\r\n switch (customizationProps.itemsType) {\r\n case 'normal':\r\n return (ref as React.RefObject<HTMLButtonElement | null>) || React.createRef<HTMLButtonElement>();\r\n default:\r\n return (ref as React.RefObject<HTMLDivElement | null>) || React.createRef<HTMLDivElement>();\r\n }\r\n };\r\n\r\n const arrLength = getFilteredItems().length;\r\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement | null>[]>([]);\r\n\r\n React.useEffect(() => {\r\n if (elRefs?.length !== arrLength) {\r\n setFocused(null);\r\n }\r\n\r\n setElRefs((elRefs) =>\r\n Array(arrLength + 1)\r\n .fill(null)\r\n .map((_, i) => getCorrectRef(elRefs[i])),\r\n );\r\n }, [isOpen, arrLength]);\r\n\r\n React.useLayoutEffect(() => {\r\n isOpen && !locationDefined && determineDropUp();\r\n }, [isOpen, locationDefined]);\r\n\r\n const haveTopItem = () => {\r\n if (!customizationProps.pinTopItem) return false;\r\n\r\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\r\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\r\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\r\n return false;\r\n };\r\n\r\n const getSuggestions = () => {\r\n return getFilteredItems().filter((x) => x.suggestion);\r\n };\r\n\r\n /**\r\n * when dropdown opens set correct position of focused item\r\n * */\r\n React.useLayoutEffect(() => {\r\n if (isOpen && (focused || focused === 0)) {\r\n setNewFocusedElement(focused === 0 && !haveTopItem() ? 1 : focused);\r\n }\r\n }, [isOpen, focused]);\r\n\r\n /**\r\n * Reset dropdown content state on close\r\n * */\r\n React.useEffect(() => {\r\n if (!isOpen) {\r\n setLocationDefined(false);\r\n for (let elRef of elRefs) {\r\n elRef.current?.classList.remove('dropdown-hover');\r\n }\r\n setFocused(null);\r\n if(onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n dropdownContentRef.current?.classList.remove('outline');\r\n dropdownContentRef.current?.blur();\r\n } else {\r\n if (outline) {\r\n dropdownContentRef.current?.classList.add('outline');\r\n dropdownContentRef.current?.focus();\r\n }\r\n }\r\n }, [isOpen, dropdownContentRef, focused, outline]);\r\n\r\n /**\r\n * Scroll item container to top when dropdown opens\r\n * */\r\n React.useEffect(() => {\r\n if (isOpen && itemsListRef.current) {\r\n itemsListRef.current.scrollTop = 0;\r\n }\r\n }, [isOpen]);\r\n\r\n React.useEffect(() => {\r\n if (isOpen) {\r\n const observer = new IntersectionObserver(function (entries) {\r\n if (!entries[0].isIntersecting) {\r\n setIsOpen(false);\r\n //@ts-ignore\r\n document?.activeElement?.blur();\r\n }\r\n }, {threshold: [0], rootMargin: '8px'});\r\n\r\n observer.observe(containerRef.current!);\r\n\r\n calculateOffset();\r\n window.addEventListener('scroll', calculateOffset, true);\r\n window.addEventListener('resize', calculateOffset);\r\n\r\n return () => {\r\n observer.disconnect();\r\n window.removeEventListener('scroll', calculateOffset, true);\r\n window.removeEventListener('resize', calculateOffset);\r\n }\r\n }\r\n return () => {};\r\n }, [isOpen]);\r\n\r\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\r\n let newValue: string[] = [];\r\n if (customizationProps.multiSelect) {\r\n if (selected) newValue = [...selectedValues, item.value];\r\n else newValue = selectedValues.filter((x) => x != item.value);\r\n } else newValue = selected ? [item.value] : [];\r\n\r\n setSelectedValues(newValue);\r\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)) {\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n const getTopItem = () => {\r\n if (!customizationProps.pinTopItem) return;\r\n const visibleItems = getFilteredItems();\r\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\r\n let showTopItem = false;\r\n const suggestions = getSuggestions();\r\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\r\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\r\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\r\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\r\n\r\n if (!showTopItem) return;\r\n\r\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find((x) => x.value == selectedValues[0]) : null;\r\n\r\n return (\r\n <DropdownContentTopItemContainer $size={size}>\r\n {customizationProps.itemsType === 'radio' && (\r\n <RadioButton\r\n ref={elRefs[0] as React.RefObject<HTMLDivElement | null>}\r\n role='menuitemradio'\r\n iconPointerEventsTransparent={true}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n tabIndexVal={-1}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n select={() => {}}\r\n label={selectedFirst?.displayLabel ?? selectedFirst?.value}\r\n size={size}\r\n id={`${id}_topitem`}\r\n selected={true}\r\n />\r\n )}\r\n {customizationProps.itemsType === 'checkbox' && (\r\n <Checkbox\r\n ref={elRefs[0] as React.RefObject<HTMLDivElement | null>}\r\n role='menuitemcheckbox'\r\n tabIndexVal={-1}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n select={(selected: boolean) => {\r\n if (!customizationProps.multiSelect) return;\r\n\r\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\r\n setSelectedValues(newValues);\r\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues)) setIsOpen(false);\r\n }}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n iconPointerEventsTransparent={true}\r\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\r\n size={size}\r\n id={`${id}_checkbox_selectall`}\r\n label={customizationProps.multiSelect ? 'Select all' : selectedFirst?.displayLabel ?? selectedFirst?.value}\r\n selected={!customizationProps.multiSelect || allSelected}\r\n />\r\n )}\r\n {customizationProps.itemsType === 'normal' && (\r\n <>\r\n {suggestions.map((x) => (\r\n <MenuItem\r\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \r\n key={`${id}_topitem_${x.value}`}\r\n item={x}\r\n size={size}\r\n active={false}\r\n tabIndex={-1}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n ref={elRefs[0] as React.RefObject<HTMLButtonElement | null>}\r\n id={`${id}_topitem`}\r\n onClickHandler={(e: any) => {\r\n e.stopPropagation();\r\n customizationProps.onValueUpdate([x.value]);\r\n setSelectedValues([x.value]);\r\n setIsOpen(false);\r\n setFocused(null);\r\n }}\r\n />\r\n ))}\r\n </>\r\n )}\r\n </DropdownContentTopItemContainer>\r\n );\r\n };\r\n\r\n const getElements = (messageOnNoResults: string, size: Size.Small | Size.Medium | Size.Large) => {\r\n if (getFilteredItems().length === 0) {\r\n return <MenuItem item={{ value: messageOnNoResults, disabled: true }} size={size} id=\"noResultsFound\" active={false} onClickHandler={(e) => {}} />;\r\n }\r\n return (\r\n <DropdownContentItemsContainer $size={size}>\r\n {getFilteredItems()\r\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\r\n .map((item, index) => {\r\n return (\r\n <React.Fragment key={`key_${id}_${item.value}`}>\r\n {item.customContent}\r\n {!item.customContent && customizationProps.itemsType == 'radio' && (\r\n <RadioButton\r\n role='menuitemradio'\r\n select={(selected: boolean) => handleItemClick(selected, item)}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement | null>}\r\n size={size}\r\n tabIndexVal={-1}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n iconPointerEventsTransparent={true}\r\n disabled={item?.disabled}\r\n key={`key_${id}_${index + 1}`}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n id={`${id}_${index + 1}`}\r\n label={item.displayLabel ?? item.value}\r\n selected={selectedValues?.includes(item.value)}\r\n />\r\n )}\r\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\r\n <Checkbox\r\n role='menuitemcheckbox'\r\n select={(selected: boolean) => handleItemClick(selected, item)}\r\n iconPointerEventsTransparent={true}\r\n disabled={item?.disabled}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement | null>}\r\n size={size}\r\n tabIndexVal={-1}\r\n key={`key_${id}_${index + 1}`}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n id={`${id}_${index + 1}`}\r\n label={item.displayLabel ?? item.value}\r\n selected={selectedValues?.includes(item.value)}\r\n />\r\n )}\r\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\r\n <MenuItem\r\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \r\n key={`key_${id}_${index + 1}`}\r\n id={`${id}_${index + 1}`}\r\n item={item}\r\n tabIndex={-1}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n size={size}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n active={selectedValues?.includes(item.value)}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLButtonElement | null>}\r\n onClickHandler={(e: any) => {\r\n e.stopPropagation();\r\n customizationProps.onValueUpdate([item.value]);\r\n setSelectedValues([item.value]);\r\n setIsOpen(false);\r\n setFocused(null);\r\n }}\r\n />\r\n )}\r\n </React.Fragment>\r\n );\r\n })}\r\n </DropdownContentItemsContainer>\r\n );\r\n };\r\n\r\n const calculateOffset = () => {\r\n const rect = containerRef?.current?.getBoundingClientRect();\r\n if (rect) {\r\n dropdownContentRef.current.style.width = width ?? `${rect.width}px`;\r\n }\r\n determineDropUp();\r\n };\r\n\r\n const cls = `${isOpen ? 'show' : ''} ${isOpen && outline ? 'outline' : ''} ${locationDefined ? (isUp ? 'up' : 'down') : ''}`;\r\n\r\n return (\r\n <Overlay>\r\n <DropdownContentContainer\r\n role={ariaRolesType == \"menu\" ? \"menu\" : \"optionlist\"}\r\n ref={dropdownContentRef}\r\n $size={size}\r\n $offsetTop={offset.top}\r\n id={id}\r\n $offsetLeft={offset.left}\r\n tabIndex={-1}\r\n $isButton={isButton}\r\n $alignLeft={alignLeft}\r\n $scrollable={customizationProps.scrollable}\r\n $maxHeight={customizationProps.maxHeight}\r\n className={cls}>\r\n <DropdownContentListContainer\r\n tabIndex={-1}\r\n role=\"group\"\r\n $size={size}\r\n $itemsType={customizationProps.itemsType}\r\n onScroll={handleScroll}\r\n ref={itemsListRef}\r\n $outline={outline}\r\n $scrollable={customizationProps.scrollable}>\r\n {customizationProps.menuContent && (\r\n <DropdownContentMenuContentContainer $size={size}>\r\n {customizationProps.menuContent}\r\n <DividerContainer $size={size}>\r\n <div className=\"divider\" />\r\n </DividerContainer>\r\n </DropdownContentMenuContentContainer>\r\n )}\r\n {customizationProps.pinTopItem && getTopItem()}\r\n {getElements(messageOnNoResults, size)}\r\n </DropdownContentListContainer>\r\n {customizationProps.action && customizationProps.actionLabel && (\r\n <DropdownContentActionButtonContainer $size={size} $scrollable={customizationProps.scrollable}>\r\n <TextButton\r\n width=\"100%\"\r\n role=\"menuitem\"\r\n icon={customizationProps.actionIcon}\r\n ref={actionButtonRef}\r\n loading={customizationProps.actionLoading}\r\n disabled={customizationProps.actionDisabled}\r\n variant={customizationProps.actionVariant ?? 'primary'}\r\n size={size}\r\n onClick={() => customizationProps.action() && setIsOpen(false)}>\r\n {customizationProps.actionLabel}\r\n </TextButton>\r\n </DropdownContentActionButtonContainer>\r\n )}\r\n </DropdownContentContainer>\r\n </Overlay>\r\n );\r\n },\r\n);\r\n\r\nexport default DropdownContent;\r\n"],"mappings":"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","ignoreList":[]}
@@ -57,7 +57,7 @@ export const DropdownContentContainer = styled.div`
57
57
  ${props => props.$isButton ? DropdownContentButtonStyling : ''};
58
58
 
59
59
  box-sizing: border-box;
60
- box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);
60
+ box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.15);
61
61
  padding: 4px 0px;
62
62
 
63
63
  min-width: ${props => props.$size == Size.Large ? '320px' : props.$size == Size.Medium ? '280px' : '240px'};
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownContent.js","names":["React","styled","TextButton","Size","DropdownContentButtonStyling","ComponentLStyling","ComponentXLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","scrollBarStyling","Checkbox","RadioButton","Z_INDEXES","MenuItem","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","OFFSET_BEFORE_SHOW","DropdownContentContainer","div","props","generateToken","componentType","defaultVariant","theme","dropdown","$isButton","$offsetLeft","$offsetTop","$size","Large","Medium","$scrollable","$maxHeight","DropdownContentItemsContainer","hover","active","focus","DropdownContentListContainer","$itemsType","Small","DropdownContentMenuContentContainer","Bold","Regular","DividerContainer","DropdownContentTopItemContainer","DropdownContentActionButtonContainer","Overlay","modal","DropdownContent","forwardRef","_ref","ref","id","customizationProps","alignLeft","isButton","size","isOpen","width","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","outline","containerRef","onActiveDescendantChanged","ariaRolesType","isUp","setIsUp","useState","locationDefined","setLocationDefined","offset","setOffset","top","left","dropdownContentRef","useRef","itemsType","itemsListRef","actionButtonRef","determineDropUp","options","items","rect","current","getBoundingClientRect","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","height","up","setNewFocusedElement","index","newFocusedElement","elRefs","oldFocusedElement","classList","remove","add","scrollIntoView","block","inline","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","findNextActiveIndex","direction","i","disabled","handleKeyDown","e","key","preventDefault","focusedNow","arrLength","haveTopItem","undefined","target","focusedElement","click","useEffect","document","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","createRef","setElRefs","Array","fill","map","_","pinTopItem","multiSelect","getSuggestions","suggestion","elRef","blur","observer","IntersectionObserver","entries","isIntersecting","activeElement","threshold","rootMargin","observe","calculateOffset","disconnect","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","visibleItems","allSelected","some","y","showTopItem","suggestions","find","c","selectedFirst","children","role","iconPointerEventsTransparent","onFocus","tabIndexVal","className","select","label","newValues","semiSelected","tabIndex","onClickHandler","stopPropagation","getElements","customContent","style","cls","$alignLeft","scrollable","maxHeight","onScroll","$outline","menuContent","action","actionLabel","icon","actionIcon","loading","actionLoading","actionDisabled","variant","actionVariant","onClick","propTypes","_pt","bool","isRequired","shape","oneOf","node","string","func","arrayOf","noteLabel","showDividerAbove","locked","oneOfType","number"],"sources":["../../src/Dropdown/DropdownContent.tsx"],"sourcesContent":["import React, { MutableRefObject, useCallback } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport TextButton from '../Button/TextButton';\r\nimport { Size } from '../types';\r\nimport { DropdownContentButtonStyling } from './CommonStyling';\r\nimport { ComponentLStyling, ComponentXLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\r\nimport { COLORS, focusStyles, scrollBarStyling } from '../styles';\r\nimport { Checkbox, RadioButton } from '../InputFields';\r\nimport { Z_INDEXES } from '../styles/z-indexes';\r\nimport MenuItem from '../MenuItem/MenuItem';\r\nimport { defaultOnMouseDownHandler } from '../common';\r\n\r\nconst MAX_MENU_HEIGHT = 240;\r\nconst AVG_OPTION_HEIGHT = 48;\r\nconst OFFSET_BEFORE_SHOW = 1000000;\r\n\r\nexport const DropdownContentContainer = styled.div<{ $offsetTop: string; $offsetLeft: string; $isButton: boolean; $alignLeft?: boolean; $size?: Size; $scrollable?: boolean; $maxHeight?: string }>`\r\n display: none;\r\n pointer-events: auto;\r\n position: absolute;\r\n background-color: ${props => COLORS.generateToken({componentType:'bg-surface', defaultVariant:'default'}, props.theme)};\r\n\r\n z-index: ${Z_INDEXES.dropdown};\r\n margin: ${(props) => (props.$isButton ? '-4px' : '4px 0px')};\r\n\r\n inset: 0px auto auto 100%;\r\n\r\n &.show {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n &.down,\r\n &.up {\r\n ${(props) => `transform: translate(${props.$offsetLeft}, ${props.$offsetTop});`}\r\n }\r\n }\r\n\r\n &.outline:focus:after {\r\n content: '';\r\n pointer-events: none;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n outline: 4px solid black;\r\n outline-offset: 2px;\r\n border-radius: 2px;\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n ${(props) => (props.$isButton ? DropdownContentButtonStyling : '')};\r\n\r\n box-sizing: border-box;\r\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\r\n padding: 4px 0px;\r\n\r\n min-width: ${(props) => (props.$size == Size.Large ? '320px' : props.$size == Size.Medium ? '280px' : '240px')};\r\n border-radius: ${(props) => (props.$size == Size.Large ? '10px' : props.$size == Size.Medium ? '8px' : '6px')};\r\n\r\n max-height: ${(props) => (!props.$scrollable ? 'auto' : props.$maxHeight ? props.$maxHeight : props.$size == Size.Large ? '320px' : props.$size == Size.Medium ? '280px' : '240px')};\r\n`;\r\n\r\nexport const DropdownContentItemsContainer = styled.div<{ $size?: Size }>`\r\n > *:hover {\r\n z-index: ${Z_INDEXES.hover};\r\n }\r\n\r\n > *:active,\r\n > *.active {\r\n z-index: ${Z_INDEXES.active};\r\n }\r\n\r\n > *:focus {\r\n z-index: ${Z_INDEXES.focus};\r\n }\r\n`;\r\n\r\nexport const DropdownContentListContainer = styled.div<{ $scrollable?: boolean; $size?: Size; $itemsType?: string; $outline?: boolean }>`\r\n ${(props) => (props.$scrollable ? 'overflow-y: scroll;' : '')}\r\n ${(props) => (props.$scrollable ? 'margin-right: 6px;' : '')}\r\n ${(props) => (props.$scrollable ? 'padding-right: 6px;' : '')}\r\n ${(props) => (props.$itemsType != 'normal' ? 'margin-left: 4px;' : '')}\r\n div.divider {\r\n display: block;\r\n width: calc(100% - 40px);\r\n margin-left: 16px;\r\n border-top: 1px solid #e5e5e5;\r\n position: absolute;\r\n top: 0px;\r\n }\r\n\r\n ${DropdownContentItemsContainer} {\r\n padding-top: ${(props) => (props.$size == Size.Large ? '8px' : props.$size == Size.Medium ? '4px' : '0px')};\r\n padding-bottom: ${(props) => (props.$size == Size.Large ? '8px' : props.$size == Size.Medium ? '4px' : '0px')};\r\n\r\n word-break: break-word;\r\n }\r\n\r\n *:focus {\r\n outline: none !important;\r\n }\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n`;\r\n\r\nconst DropdownContentMenuContentContainer = styled.div<{ $size?: Size }>`\r\n h1,\r\n h2,\r\n h3 {\r\n margin-block-start: 0px;\r\n margin-block-end: 0px;\r\n ${(props) => props.$size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n ${(props) => props.$size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n ${(props) => (props.$size == Size.Small || !props.$size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n padding: ${(props) => (props.$size == Size.Small || !props.$size ? '10px 16px 6px' : props.$size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px')};\r\n }\r\n\r\n p {\r\n margin-block-start: 0px;\r\n margin-block-end: 0px;\r\n ${(props) => props.$size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n ${(props) => props.$size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n ${(props) => (props.$size == Size.Small || !props.$size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n padding: ${(props) => (props.$size == Size.Small || !props.$size ? '8px 16px' : props.$size == Size.Medium ? '12px 24px' : '16px 32px')};\r\n }\r\n`;\r\n\r\nconst DividerContainer = styled.div<{ $size?: Size }>`\r\n position: relative;\r\n\r\n margin-top: ${(props) => (props.$size == Size.Large ? '16px' : props.$size == Size.Medium ? '12px' : props.$size == Size.Small || !props.$size ? '8px' : '6px')};\r\n\r\n div.divider {\r\n width: 100%;\r\n margin: 0px;\r\n }\r\n`;\r\n\r\nconst DropdownContentTopItemContainer = styled.div<{ $size?: Size }>`\r\n border-bottom-style: solid;\r\n border-bottom-color: ${props => COLORS.generateToken({componentType:'border', defaultVariant:'subtle'}, props.theme)};\r\n border-bottom-width: 1px;\r\n margin-right: 22px;\r\n`;\r\n\r\nconst DropdownContentActionButtonContainer = styled.div<{ $size?: Size; $scrollable?: boolean }>`\r\n ${(props) => (props.$scrollable ? `border-top: 1px solid ${COLORS.generateToken({componentType:'border', defaultVariant:'subtle'}, props.theme)};` : '')}\r\n ${(props) => (props.$scrollable ? 'margin-top: 4px;' : '')}\r\n\r\n padding: ${(props) => (props.$size === Size.Small || !props.$size ? '4px 16px 0px' : props.$size === Size.Medium ? '12px 16px 8px' : '16px 16px 12px')};\r\n\r\n button {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst Overlay = styled.div`\r\n position: relative;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n pointer-events: none;\r\n z-index: ${Z_INDEXES.modal};\r\n`;\r\n\r\nexport interface DropdownItem {\r\n /** Required. Value of the DropdownItem. */\r\n value: string;\r\n /** Optional. Display label to show in the MenuItem. If not provided then 'value' will be used as label. */\r\n displayLabel?: string;\r\n /** Optional. Note label to be shown under the Display label in the MenuItem. */\r\n noteLabel?: string;\r\n /** */\r\n suggestion?: boolean;\r\n /** Optional. Show dividing line on the top of the item. */\r\n showDividerAbove?: boolean;\r\n /** Optional. If disabled user can not interact with the item. */\r\n disabled?: boolean;\r\n /** Optional. If item is locked then user can not interact with the item and 'lock' icon is shown on the right side of the item. */\r\n locked?: boolean;\r\n /** Optional. Icon to be shown on the left side of the menu item */\r\n icon?: React.ReactNode;\r\n /** */\r\n customContent?: React.ReactNode;\r\n}\r\n\r\nexport interface DropdownCustomizationProps {\r\n itemsType?: 'radio' | 'checkbox' | 'normal';\r\n menuContent?: React.ReactNode;\r\n scrollable?: boolean;\r\n multiSelect?: boolean;\r\n maxHeight?: string;\r\n actionLabel?: string;\r\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\r\n actionIcon?: React.ReactNode;\r\n actionLoading?: boolean;\r\n actionDisabled?: boolean;\r\n action: () => boolean | void | undefined;\r\n pinTopItem?: boolean;\r\n onValueUpdate: (values: string[]) => boolean | void | undefined;\r\n items: DropdownItem[];\r\n}\r\n\r\nexport interface DropdownProps {\r\n isButton: boolean;\r\n customizationProps: DropdownCustomizationProps;\r\n alignLeft?: boolean;\r\n isOpen: boolean;\r\n setIsOpen: (open: boolean) => void;\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n id: string;\r\n filter: string;\r\n width?: string;\r\n onActiveDescendantChanged?: (descendantId?: string) => void;\r\n selectedValues: string[];\r\n setSelectedValues: (val: string[]) => void;\r\n messageOnNoResults: string;\r\n focused: number | null;\r\n setFocused: (focused: number | null) => void;\r\n outline?: boolean;\r\n containerRef: React.RefObject<HTMLDivElement | null>;\r\n ariaRolesType?: 'input' | 'menu';\r\n}\r\n\r\nconst DropdownContent = React.forwardRef<HTMLDivElement, DropdownProps>(\r\n (\r\n {\r\n id,\r\n customizationProps,\r\n alignLeft,\r\n isButton,\r\n size,\r\n isOpen,\r\n width,\r\n setIsOpen,\r\n filter,\r\n focused,\r\n setFocused,\r\n selectedValues,\r\n setSelectedValues,\r\n messageOnNoResults,\r\n outline,\r\n containerRef,\r\n onActiveDescendantChanged,\r\n ariaRolesType = 'menu',\r\n },\r\n ref,\r\n ) => {\r\n const [isUp, setIsUp] = React.useState<boolean>(false);\r\n const [locationDefined, setLocationDefined] = React.useState<boolean>(false);\r\n const [offset, setOffset] = React.useState<{ top: string; left: string }>({ top: '0', left: '0' });\r\n\r\n const dropdownContentRef = (ref as MutableRefObject<HTMLDivElement>) ?? React.useRef<HTMLDivElement>(null);\r\n\r\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\r\n if (!size) size = Size.Small;\r\n\r\n const itemsListRef = React.useRef<HTMLDivElement>(null);\r\n const actionButtonRef = React.useRef<HTMLButtonElement>(null);\r\n\r\n const determineDropUp = () => {\r\n const options = customizationProps.items;\r\n\r\n const rect = containerRef.current!.getBoundingClientRect();\r\n\r\n const windowHeight = window.innerHeight;\r\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\r\n const instOffsetWithMenu = rect.top + rect.height + menuHeight;\r\n\r\n const up = instOffsetWithMenu >= windowHeight;\r\n\r\n setOffset({\r\n top: up ? `calc(-100% - ${rect.height}px ${isButton ? '' : '- 8px'})` : '0',\r\n left: alignLeft ? `calc(-${rect.width}px)` : `calc(-100%)`,\r\n });\r\n\r\n setIsUp(up);\r\n setLocationDefined(true);\r\n };\r\n\r\n const setNewFocusedElement = (index: number) => {\r\n if (outline) dropdownContentRef.current?.focus();\r\n\r\n const newFocusedElement = elRefs[index];\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(index == 0 ? `${id}_topitem` : `${id}_${index}`);\r\n\r\n const oldFocusedElement = focused || focused === 0 ? elRefs[focused] : null;\r\n if (newFocusedElement && newFocusedElement !== oldFocusedElement) {\r\n setFocused(index);\r\n oldFocusedElement?.current?.classList.remove('dropdown-hover');\r\n\r\n newFocusedElement.current?.classList.add('dropdown-hover');\r\n newFocusedElement.current?.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n };\r\n\r\n const getFilteredItems = () => {\r\n const filtrationString = (filter ?? '').toUpperCase();\r\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\r\n };\r\n\r\n const findNextActiveIndex = (index: number, direction: number, items: DropdownItem[]) => {\r\n for (let i = index + direction; i > 0 && i <= items.length; i += direction) {\r\n if (!items[i - 1]?.disabled) {\r\n return i;\r\n }\r\n }\r\n\r\n return index;\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (isOpen) {\r\n if (e.key === 'ArrowUp' || e.key === 'Up') {\r\n e.preventDefault();\r\n let focusedNow = focused || focused === 0 ? focused : arrLength + 1;\r\n if (!!focusedNow) {\r\n focusedNow = focusedNow === 1 && haveTopItem() ? 0 : findNextActiveIndex(focusedNow, -1, getFilteredItems());\r\n\r\n setNewFocusedElement(focusedNow);\r\n }\r\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\r\n e.preventDefault();\r\n let focusedNow = focused;\r\n\r\n focusedNow = !!focusedNow || focusedNow === 0 ? findNextActiveIndex(focusedNow, 1, getFilteredItems()) : haveTopItem() ? 0 : 1;\r\n\r\n setNewFocusedElement(focusedNow);\r\n } else if (e.key === 'Escape' || e.key === 'Esc') {\r\n setIsOpen(false);\r\n setFocused(null);\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n } else if ((e.key === 'Enter' || e.key === ' ') && focused !== null && e.target !== actionButtonRef?.current) {\r\n e.preventDefault();\r\n const focusedElement = elRefs[focused];\r\n if (focusedElement) {\r\n focusedElement.current?.click();\r\n }\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n }\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n document.addEventListener('keydown', handleKeyDown);\r\n return () => {\r\n document.removeEventListener('keydown', handleKeyDown);\r\n };\r\n });\r\n\r\n const scrollPosition = React.useRef<number | undefined>(0);\r\n const handleScroll = () => {\r\n scrollPosition.current = itemsListRef.current?.scrollTop;\r\n };\r\n React.useLayoutEffect(() => {\r\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\r\n }, [selectedValues]);\r\n\r\n const getCorrectRef = (ref: React.RefObject<HTMLElement | null>): React.RefObject<HTMLElement | null> => {\r\n switch (customizationProps.itemsType) {\r\n case 'normal':\r\n return (ref as React.RefObject<HTMLButtonElement | null>) || React.createRef<HTMLButtonElement>();\r\n default:\r\n return (ref as React.RefObject<HTMLDivElement | null>) || React.createRef<HTMLDivElement>();\r\n }\r\n };\r\n\r\n const arrLength = getFilteredItems().length;\r\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement | null>[]>([]);\r\n\r\n React.useEffect(() => {\r\n if (elRefs?.length !== arrLength) {\r\n setFocused(null);\r\n }\r\n\r\n setElRefs((elRefs) =>\r\n Array(arrLength + 1)\r\n .fill(null)\r\n .map((_, i) => getCorrectRef(elRefs[i])),\r\n );\r\n }, [isOpen, arrLength]);\r\n\r\n React.useLayoutEffect(() => {\r\n isOpen && !locationDefined && determineDropUp();\r\n }, [isOpen, locationDefined]);\r\n\r\n const haveTopItem = () => {\r\n if (!customizationProps.pinTopItem) return false;\r\n\r\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\r\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\r\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\r\n return false;\r\n };\r\n\r\n const getSuggestions = () => {\r\n return getFilteredItems().filter((x) => x.suggestion);\r\n };\r\n\r\n /**\r\n * when dropdown opens set correct position of focused item\r\n * */\r\n React.useLayoutEffect(() => {\r\n if (isOpen && (focused || focused === 0)) {\r\n setNewFocusedElement(focused === 0 && !haveTopItem() ? 1 : focused);\r\n }\r\n }, [isOpen, focused]);\r\n\r\n /**\r\n * Reset dropdown content state on close\r\n * */\r\n React.useEffect(() => {\r\n if (!isOpen) {\r\n setLocationDefined(false);\r\n for (let elRef of elRefs) {\r\n elRef.current?.classList.remove('dropdown-hover');\r\n }\r\n setFocused(null);\r\n if(onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n dropdownContentRef.current?.classList.remove('outline');\r\n dropdownContentRef.current?.blur();\r\n } else {\r\n if (outline) {\r\n dropdownContentRef.current?.classList.add('outline');\r\n dropdownContentRef.current?.focus();\r\n }\r\n }\r\n }, [isOpen, dropdownContentRef, focused, outline]);\r\n\r\n /**\r\n * Scroll item container to top when dropdown opens\r\n * */\r\n React.useEffect(() => {\r\n if (isOpen && itemsListRef.current) {\r\n itemsListRef.current.scrollTop = 0;\r\n }\r\n }, [isOpen]);\r\n\r\n React.useEffect(() => {\r\n if (isOpen) {\r\n const observer = new IntersectionObserver(function (entries) {\r\n if (!entries[0].isIntersecting) {\r\n setIsOpen(false);\r\n //@ts-ignore\r\n document?.activeElement?.blur();\r\n }\r\n }, {threshold: [0], rootMargin: '8px'});\r\n\r\n observer.observe(containerRef.current!);\r\n\r\n calculateOffset();\r\n window.addEventListener('scroll', calculateOffset, true);\r\n window.addEventListener('resize', calculateOffset);\r\n\r\n return () => {\r\n observer.disconnect();\r\n window.removeEventListener('scroll', calculateOffset, true);\r\n window.removeEventListener('resize', calculateOffset);\r\n }\r\n }\r\n return () => {};\r\n }, [isOpen]);\r\n\r\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\r\n let newValue: string[] = [];\r\n if (customizationProps.multiSelect) {\r\n if (selected) newValue = [...selectedValues, item.value];\r\n else newValue = selectedValues.filter((x) => x != item.value);\r\n } else newValue = selected ? [item.value] : [];\r\n\r\n setSelectedValues(newValue);\r\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)) {\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n const getTopItem = () => {\r\n if (!customizationProps.pinTopItem) return;\r\n const visibleItems = getFilteredItems();\r\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\r\n let showTopItem = false;\r\n const suggestions = getSuggestions();\r\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\r\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\r\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\r\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\r\n\r\n if (!showTopItem) return;\r\n\r\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find((x) => x.value == selectedValues[0]) : null;\r\n\r\n return (\r\n <DropdownContentTopItemContainer $size={size}>\r\n {customizationProps.itemsType === 'radio' && (\r\n <RadioButton\r\n ref={elRefs[0] as React.RefObject<HTMLDivElement | null>}\r\n role='menuitemradio'\r\n iconPointerEventsTransparent={true}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n tabIndexVal={-1}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n select={() => {}}\r\n label={selectedFirst?.displayLabel ?? selectedFirst?.value}\r\n size={size}\r\n id={`${id}_topitem`}\r\n selected={true}\r\n />\r\n )}\r\n {customizationProps.itemsType === 'checkbox' && (\r\n <Checkbox\r\n ref={elRefs[0] as React.RefObject<HTMLDivElement | null>}\r\n role='menuitemcheckbox'\r\n tabIndexVal={-1}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n select={(selected: boolean) => {\r\n if (!customizationProps.multiSelect) return;\r\n\r\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\r\n setSelectedValues(newValues);\r\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues)) setIsOpen(false);\r\n }}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n iconPointerEventsTransparent={true}\r\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\r\n size={size}\r\n id={`${id}_checkbox_selectall`}\r\n label={customizationProps.multiSelect ? 'Select all' : selectedFirst?.displayLabel ?? selectedFirst?.value}\r\n selected={!customizationProps.multiSelect || allSelected}\r\n />\r\n )}\r\n {customizationProps.itemsType === 'normal' && (\r\n <>\r\n {suggestions.map((x) => (\r\n <MenuItem\r\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \r\n key={`${id}_topitem_${x.value}`}\r\n item={x}\r\n size={size}\r\n active={false}\r\n tabIndex={-1}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n ref={elRefs[0] as React.RefObject<HTMLButtonElement | null>}\r\n id={`${id}_topitem`}\r\n onClickHandler={(e: any) => {\r\n e.stopPropagation();\r\n customizationProps.onValueUpdate([x.value]);\r\n setSelectedValues([x.value]);\r\n setIsOpen(false);\r\n setFocused(null);\r\n }}\r\n />\r\n ))}\r\n </>\r\n )}\r\n </DropdownContentTopItemContainer>\r\n );\r\n };\r\n\r\n const getElements = (messageOnNoResults: string, size: Size.Small | Size.Medium | Size.Large) => {\r\n if (getFilteredItems().length === 0) {\r\n return <MenuItem item={{ value: messageOnNoResults, disabled: true }} size={size} id=\"noResultsFound\" active={false} onClickHandler={(e) => {}} />;\r\n }\r\n return (\r\n <DropdownContentItemsContainer $size={size}>\r\n {getFilteredItems()\r\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\r\n .map((item, index) => {\r\n return (\r\n <React.Fragment key={`key_${id}_${item.value}`}>\r\n {item.customContent}\r\n {!item.customContent && customizationProps.itemsType == 'radio' && (\r\n <RadioButton\r\n role='menuitemradio'\r\n select={(selected: boolean) => handleItemClick(selected, item)}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement | null>}\r\n size={size}\r\n tabIndexVal={-1}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n iconPointerEventsTransparent={true}\r\n disabled={item?.disabled}\r\n key={`key_${id}_${index + 1}`}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n id={`${id}_${index + 1}`}\r\n label={item.displayLabel ?? item.value}\r\n selected={selectedValues?.includes(item.value)}\r\n />\r\n )}\r\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\r\n <Checkbox\r\n role='menuitemcheckbox'\r\n select={(selected: boolean) => handleItemClick(selected, item)}\r\n iconPointerEventsTransparent={true}\r\n disabled={item?.disabled}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement | null>}\r\n size={size}\r\n tabIndexVal={-1}\r\n key={`key_${id}_${index + 1}`}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n id={`${id}_${index + 1}`}\r\n label={item.displayLabel ?? item.value}\r\n selected={selectedValues?.includes(item.value)}\r\n />\r\n )}\r\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\r\n <MenuItem\r\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \r\n key={`key_${id}_${index + 1}`}\r\n id={`${id}_${index + 1}`}\r\n item={item}\r\n tabIndex={-1}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n size={size}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n active={selectedValues?.includes(item.value)}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLButtonElement | null>}\r\n onClickHandler={(e: any) => {\r\n e.stopPropagation();\r\n customizationProps.onValueUpdate([item.value]);\r\n setSelectedValues([item.value]);\r\n setIsOpen(false);\r\n setFocused(null);\r\n }}\r\n />\r\n )}\r\n </React.Fragment>\r\n );\r\n })}\r\n </DropdownContentItemsContainer>\r\n );\r\n };\r\n\r\n const calculateOffset = () => {\r\n const rect = containerRef?.current?.getBoundingClientRect();\r\n if (rect) {\r\n dropdownContentRef.current.style.width = width ?? `${rect.width}px`;\r\n }\r\n determineDropUp();\r\n };\r\n\r\n const cls = `${isOpen ? 'show' : ''} ${isOpen && outline ? 'outline' : ''} ${locationDefined ? (isUp ? 'up' : 'down') : ''}`;\r\n\r\n return (\r\n <Overlay>\r\n <DropdownContentContainer\r\n role={ariaRolesType == \"menu\" ? \"menu\" : \"optionlist\"}\r\n ref={dropdownContentRef}\r\n $size={size}\r\n $offsetTop={offset.top}\r\n id={id}\r\n $offsetLeft={offset.left}\r\n tabIndex={-1}\r\n $isButton={isButton}\r\n $alignLeft={alignLeft}\r\n $scrollable={customizationProps.scrollable}\r\n $maxHeight={customizationProps.maxHeight}\r\n className={cls}>\r\n <DropdownContentListContainer\r\n tabIndex={-1}\r\n role=\"group\"\r\n $size={size}\r\n $itemsType={customizationProps.itemsType}\r\n onScroll={handleScroll}\r\n ref={itemsListRef}\r\n $outline={outline}\r\n $scrollable={customizationProps.scrollable}>\r\n {customizationProps.menuContent && (\r\n <DropdownContentMenuContentContainer $size={size}>\r\n {customizationProps.menuContent}\r\n <DividerContainer $size={size}>\r\n <div className=\"divider\" />\r\n </DividerContainer>\r\n </DropdownContentMenuContentContainer>\r\n )}\r\n {customizationProps.pinTopItem && getTopItem()}\r\n {getElements(messageOnNoResults, size)}\r\n </DropdownContentListContainer>\r\n {customizationProps.action && customizationProps.actionLabel && (\r\n <DropdownContentActionButtonContainer $size={size} $scrollable={customizationProps.scrollable}>\r\n <TextButton\r\n width=\"100%\"\r\n role=\"menuitem\"\r\n icon={customizationProps.actionIcon}\r\n ref={actionButtonRef}\r\n loading={customizationProps.actionLoading}\r\n disabled={customizationProps.actionDisabled}\r\n variant={customizationProps.actionVariant ?? 'primary'}\r\n size={size}\r\n onClick={() => customizationProps.action() && setIsOpen(false)}>\r\n {customizationProps.actionLabel}\r\n </TextButton>\r\n </DropdownContentActionButtonContainer>\r\n )}\r\n </DropdownContentContainer>\r\n </Overlay>\r\n );\r\n },\r\n);\r\n\r\nexport default DropdownContent;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DropdownContent.js","names":["React","styled","TextButton","Size","DropdownContentButtonStyling","ComponentLStyling","ComponentXLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","scrollBarStyling","Checkbox","RadioButton","Z_INDEXES","MenuItem","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","OFFSET_BEFORE_SHOW","DropdownContentContainer","div","props","generateToken","componentType","defaultVariant","theme","dropdown","$isButton","$offsetLeft","$offsetTop","$size","Large","Medium","$scrollable","$maxHeight","DropdownContentItemsContainer","hover","active","focus","DropdownContentListContainer","$itemsType","Small","DropdownContentMenuContentContainer","Bold","Regular","DividerContainer","DropdownContentTopItemContainer","DropdownContentActionButtonContainer","Overlay","modal","DropdownContent","forwardRef","_ref","ref","id","customizationProps","alignLeft","isButton","size","isOpen","width","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","outline","containerRef","onActiveDescendantChanged","ariaRolesType","isUp","setIsUp","useState","locationDefined","setLocationDefined","offset","setOffset","top","left","dropdownContentRef","useRef","itemsType","itemsListRef","actionButtonRef","determineDropUp","options","items","rect","current","getBoundingClientRect","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","height","up","setNewFocusedElement","index","newFocusedElement","elRefs","oldFocusedElement","classList","remove","add","scrollIntoView","block","inline","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","findNextActiveIndex","direction","i","disabled","handleKeyDown","e","key","preventDefault","focusedNow","arrLength","haveTopItem","undefined","target","focusedElement","click","useEffect","document","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","createRef","setElRefs","Array","fill","map","_","pinTopItem","multiSelect","getSuggestions","suggestion","elRef","blur","observer","IntersectionObserver","entries","isIntersecting","activeElement","threshold","rootMargin","observe","calculateOffset","disconnect","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","visibleItems","allSelected","some","y","showTopItem","suggestions","find","c","selectedFirst","children","role","iconPointerEventsTransparent","onFocus","tabIndexVal","className","select","label","newValues","semiSelected","tabIndex","onClickHandler","stopPropagation","getElements","customContent","style","cls","$alignLeft","scrollable","maxHeight","onScroll","$outline","menuContent","action","actionLabel","icon","actionIcon","loading","actionLoading","actionDisabled","variant","actionVariant","onClick","propTypes","_pt","bool","isRequired","shape","oneOf","node","string","func","arrayOf","noteLabel","showDividerAbove","locked","oneOfType","number"],"sources":["../../src/Dropdown/DropdownContent.tsx"],"sourcesContent":["import React, { MutableRefObject, useCallback } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport TextButton from '../Button/TextButton';\r\nimport { Size } from '../types';\r\nimport { DropdownContentButtonStyling } from './CommonStyling';\r\nimport { ComponentLStyling, ComponentXLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\r\nimport { COLORS, focusStyles, scrollBarStyling } from '../styles';\r\nimport { Checkbox, RadioButton } from '../InputFields';\r\nimport { Z_INDEXES } from '../styles/z-indexes';\r\nimport MenuItem from '../MenuItem/MenuItem';\r\nimport { defaultOnMouseDownHandler } from '../common';\r\n\r\nconst MAX_MENU_HEIGHT = 240;\r\nconst AVG_OPTION_HEIGHT = 48;\r\nconst OFFSET_BEFORE_SHOW = 1000000;\r\n\r\nexport const DropdownContentContainer = styled.div<{ $offsetTop: string; $offsetLeft: string; $isButton: boolean; $alignLeft?: boolean; $size?: Size; $scrollable?: boolean; $maxHeight?: string }>`\r\n display: none;\r\n pointer-events: auto;\r\n position: absolute;\r\n background-color: ${props => COLORS.generateToken({componentType:'bg-surface', defaultVariant:'default'}, props.theme)};\r\n\r\n z-index: ${Z_INDEXES.dropdown};\r\n margin: ${(props) => (props.$isButton ? '-4px' : '4px 0px')};\r\n\r\n inset: 0px auto auto 100%;\r\n\r\n &.show {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n &.down,\r\n &.up {\r\n ${(props) => `transform: translate(${props.$offsetLeft}, ${props.$offsetTop});`}\r\n }\r\n }\r\n\r\n &.outline:focus:after {\r\n content: '';\r\n pointer-events: none;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n outline: 4px solid black;\r\n outline-offset: 2px;\r\n border-radius: 2px;\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n ${(props) => (props.$isButton ? DropdownContentButtonStyling : '')};\r\n\r\n box-sizing: border-box;\r\n box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.15);\r\n padding: 4px 0px;\r\n\r\n min-width: ${(props) => (props.$size == Size.Large ? '320px' : props.$size == Size.Medium ? '280px' : '240px')};\r\n border-radius: ${(props) => (props.$size == Size.Large ? '10px' : props.$size == Size.Medium ? '8px' : '6px')};\r\n\r\n max-height: ${(props) => (!props.$scrollable ? 'auto' : props.$maxHeight ? props.$maxHeight : props.$size == Size.Large ? '320px' : props.$size == Size.Medium ? '280px' : '240px')};\r\n`;\r\n\r\nexport const DropdownContentItemsContainer = styled.div<{ $size?: Size }>`\r\n > *:hover {\r\n z-index: ${Z_INDEXES.hover};\r\n }\r\n\r\n > *:active,\r\n > *.active {\r\n z-index: ${Z_INDEXES.active};\r\n }\r\n\r\n > *:focus {\r\n z-index: ${Z_INDEXES.focus};\r\n }\r\n`;\r\n\r\nexport const DropdownContentListContainer = styled.div<{ $scrollable?: boolean; $size?: Size; $itemsType?: string; $outline?: boolean }>`\r\n ${(props) => (props.$scrollable ? 'overflow-y: scroll;' : '')}\r\n ${(props) => (props.$scrollable ? 'margin-right: 6px;' : '')}\r\n ${(props) => (props.$scrollable ? 'padding-right: 6px;' : '')}\r\n ${(props) => (props.$itemsType != 'normal' ? 'margin-left: 4px;' : '')}\r\n div.divider {\r\n display: block;\r\n width: calc(100% - 40px);\r\n margin-left: 16px;\r\n border-top: 1px solid #e5e5e5;\r\n position: absolute;\r\n top: 0px;\r\n }\r\n\r\n ${DropdownContentItemsContainer} {\r\n padding-top: ${(props) => (props.$size == Size.Large ? '8px' : props.$size == Size.Medium ? '4px' : '0px')};\r\n padding-bottom: ${(props) => (props.$size == Size.Large ? '8px' : props.$size == Size.Medium ? '4px' : '0px')};\r\n\r\n word-break: break-word;\r\n }\r\n\r\n *:focus {\r\n outline: none !important;\r\n }\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n`;\r\n\r\nconst DropdownContentMenuContentContainer = styled.div<{ $size?: Size }>`\r\n h1,\r\n h2,\r\n h3 {\r\n margin-block-start: 0px;\r\n margin-block-end: 0px;\r\n ${(props) => props.$size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n ${(props) => props.$size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n ${(props) => (props.$size == Size.Small || !props.$size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n padding: ${(props) => (props.$size == Size.Small || !props.$size ? '10px 16px 6px' : props.$size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px')};\r\n }\r\n\r\n p {\r\n margin-block-start: 0px;\r\n margin-block-end: 0px;\r\n ${(props) => props.$size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n ${(props) => props.$size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n ${(props) => (props.$size == Size.Small || !props.$size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n padding: ${(props) => (props.$size == Size.Small || !props.$size ? '8px 16px' : props.$size == Size.Medium ? '12px 24px' : '16px 32px')};\r\n }\r\n`;\r\n\r\nconst DividerContainer = styled.div<{ $size?: Size }>`\r\n position: relative;\r\n\r\n margin-top: ${(props) => (props.$size == Size.Large ? '16px' : props.$size == Size.Medium ? '12px' : props.$size == Size.Small || !props.$size ? '8px' : '6px')};\r\n\r\n div.divider {\r\n width: 100%;\r\n margin: 0px;\r\n }\r\n`;\r\n\r\nconst DropdownContentTopItemContainer = styled.div<{ $size?: Size }>`\r\n border-bottom-style: solid;\r\n border-bottom-color: ${props => COLORS.generateToken({componentType:'border', defaultVariant:'subtle'}, props.theme)};\r\n border-bottom-width: 1px;\r\n margin-right: 22px;\r\n`;\r\n\r\nconst DropdownContentActionButtonContainer = styled.div<{ $size?: Size; $scrollable?: boolean }>`\r\n ${(props) => (props.$scrollable ? `border-top: 1px solid ${COLORS.generateToken({componentType:'border', defaultVariant:'subtle'}, props.theme)};` : '')}\r\n ${(props) => (props.$scrollable ? 'margin-top: 4px;' : '')}\r\n\r\n padding: ${(props) => (props.$size === Size.Small || !props.$size ? '4px 16px 0px' : props.$size === Size.Medium ? '12px 16px 8px' : '16px 16px 12px')};\r\n\r\n button {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst Overlay = styled.div`\r\n position: relative;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n pointer-events: none;\r\n z-index: ${Z_INDEXES.modal};\r\n`;\r\n\r\nexport interface DropdownItem {\r\n /** Required. Value of the DropdownItem. */\r\n value: string;\r\n /** Optional. Display label to show in the MenuItem. If not provided then 'value' will be used as label. */\r\n displayLabel?: string;\r\n /** Optional. Note label to be shown under the Display label in the MenuItem. */\r\n noteLabel?: string;\r\n /** */\r\n suggestion?: boolean;\r\n /** Optional. Show dividing line on the top of the item. */\r\n showDividerAbove?: boolean;\r\n /** Optional. If disabled user can not interact with the item. */\r\n disabled?: boolean;\r\n /** Optional. If item is locked then user can not interact with the item and 'lock' icon is shown on the right side of the item. */\r\n locked?: boolean;\r\n /** Optional. Icon to be shown on the left side of the menu item */\r\n icon?: React.ReactNode;\r\n /** */\r\n customContent?: React.ReactNode;\r\n}\r\n\r\nexport interface DropdownCustomizationProps {\r\n itemsType?: 'radio' | 'checkbox' | 'normal';\r\n menuContent?: React.ReactNode;\r\n scrollable?: boolean;\r\n multiSelect?: boolean;\r\n maxHeight?: string;\r\n actionLabel?: string;\r\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\r\n actionIcon?: React.ReactNode;\r\n actionLoading?: boolean;\r\n actionDisabled?: boolean;\r\n action: () => boolean | void | undefined;\r\n pinTopItem?: boolean;\r\n onValueUpdate: (values: string[]) => boolean | void | undefined;\r\n items: DropdownItem[];\r\n}\r\n\r\nexport interface DropdownProps {\r\n isButton: boolean;\r\n customizationProps: DropdownCustomizationProps;\r\n alignLeft?: boolean;\r\n isOpen: boolean;\r\n setIsOpen: (open: boolean) => void;\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n id: string;\r\n filter: string;\r\n width?: string;\r\n onActiveDescendantChanged?: (descendantId?: string) => void;\r\n selectedValues: string[];\r\n setSelectedValues: (val: string[]) => void;\r\n messageOnNoResults: string;\r\n focused: number | null;\r\n setFocused: (focused: number | null) => void;\r\n outline?: boolean;\r\n containerRef: React.RefObject<HTMLDivElement | null>;\r\n ariaRolesType?: 'input' | 'menu';\r\n}\r\n\r\nconst DropdownContent = React.forwardRef<HTMLDivElement, DropdownProps>(\r\n (\r\n {\r\n id,\r\n customizationProps,\r\n alignLeft,\r\n isButton,\r\n size,\r\n isOpen,\r\n width,\r\n setIsOpen,\r\n filter,\r\n focused,\r\n setFocused,\r\n selectedValues,\r\n setSelectedValues,\r\n messageOnNoResults,\r\n outline,\r\n containerRef,\r\n onActiveDescendantChanged,\r\n ariaRolesType = 'menu',\r\n },\r\n ref,\r\n ) => {\r\n const [isUp, setIsUp] = React.useState<boolean>(false);\r\n const [locationDefined, setLocationDefined] = React.useState<boolean>(false);\r\n const [offset, setOffset] = React.useState<{ top: string; left: string }>({ top: '0', left: '0' });\r\n\r\n const dropdownContentRef = (ref as MutableRefObject<HTMLDivElement>) ?? React.useRef<HTMLDivElement>(null);\r\n\r\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\r\n if (!size) size = Size.Small;\r\n\r\n const itemsListRef = React.useRef<HTMLDivElement>(null);\r\n const actionButtonRef = React.useRef<HTMLButtonElement>(null);\r\n\r\n const determineDropUp = () => {\r\n const options = customizationProps.items;\r\n\r\n const rect = containerRef.current!.getBoundingClientRect();\r\n\r\n const windowHeight = window.innerHeight;\r\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\r\n const instOffsetWithMenu = rect.top + rect.height + menuHeight;\r\n\r\n const up = instOffsetWithMenu >= windowHeight;\r\n\r\n setOffset({\r\n top: up ? `calc(-100% - ${rect.height}px ${isButton ? '' : '- 8px'})` : '0',\r\n left: alignLeft ? `calc(-${rect.width}px)` : `calc(-100%)`,\r\n });\r\n\r\n setIsUp(up);\r\n setLocationDefined(true);\r\n };\r\n\r\n const setNewFocusedElement = (index: number) => {\r\n if (outline) dropdownContentRef.current?.focus();\r\n\r\n const newFocusedElement = elRefs[index];\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(index == 0 ? `${id}_topitem` : `${id}_${index}`);\r\n\r\n const oldFocusedElement = focused || focused === 0 ? elRefs[focused] : null;\r\n if (newFocusedElement && newFocusedElement !== oldFocusedElement) {\r\n setFocused(index);\r\n oldFocusedElement?.current?.classList.remove('dropdown-hover');\r\n\r\n newFocusedElement.current?.classList.add('dropdown-hover');\r\n newFocusedElement.current?.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n };\r\n\r\n const getFilteredItems = () => {\r\n const filtrationString = (filter ?? '').toUpperCase();\r\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\r\n };\r\n\r\n const findNextActiveIndex = (index: number, direction: number, items: DropdownItem[]) => {\r\n for (let i = index + direction; i > 0 && i <= items.length; i += direction) {\r\n if (!items[i - 1]?.disabled) {\r\n return i;\r\n }\r\n }\r\n\r\n return index;\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (isOpen) {\r\n if (e.key === 'ArrowUp' || e.key === 'Up') {\r\n e.preventDefault();\r\n let focusedNow = focused || focused === 0 ? focused : arrLength + 1;\r\n if (!!focusedNow) {\r\n focusedNow = focusedNow === 1 && haveTopItem() ? 0 : findNextActiveIndex(focusedNow, -1, getFilteredItems());\r\n\r\n setNewFocusedElement(focusedNow);\r\n }\r\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\r\n e.preventDefault();\r\n let focusedNow = focused;\r\n\r\n focusedNow = !!focusedNow || focusedNow === 0 ? findNextActiveIndex(focusedNow, 1, getFilteredItems()) : haveTopItem() ? 0 : 1;\r\n\r\n setNewFocusedElement(focusedNow);\r\n } else if (e.key === 'Escape' || e.key === 'Esc') {\r\n setIsOpen(false);\r\n setFocused(null);\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n } else if ((e.key === 'Enter' || e.key === ' ') && focused !== null && e.target !== actionButtonRef?.current) {\r\n e.preventDefault();\r\n const focusedElement = elRefs[focused];\r\n if (focusedElement) {\r\n focusedElement.current?.click();\r\n }\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n }\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n document.addEventListener('keydown', handleKeyDown);\r\n return () => {\r\n document.removeEventListener('keydown', handleKeyDown);\r\n };\r\n });\r\n\r\n const scrollPosition = React.useRef<number | undefined>(0);\r\n const handleScroll = () => {\r\n scrollPosition.current = itemsListRef.current?.scrollTop;\r\n };\r\n React.useLayoutEffect(() => {\r\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\r\n }, [selectedValues]);\r\n\r\n const getCorrectRef = (ref: React.RefObject<HTMLElement | null>): React.RefObject<HTMLElement | null> => {\r\n switch (customizationProps.itemsType) {\r\n case 'normal':\r\n return (ref as React.RefObject<HTMLButtonElement | null>) || React.createRef<HTMLButtonElement>();\r\n default:\r\n return (ref as React.RefObject<HTMLDivElement | null>) || React.createRef<HTMLDivElement>();\r\n }\r\n };\r\n\r\n const arrLength = getFilteredItems().length;\r\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement | null>[]>([]);\r\n\r\n React.useEffect(() => {\r\n if (elRefs?.length !== arrLength) {\r\n setFocused(null);\r\n }\r\n\r\n setElRefs((elRefs) =>\r\n Array(arrLength + 1)\r\n .fill(null)\r\n .map((_, i) => getCorrectRef(elRefs[i])),\r\n );\r\n }, [isOpen, arrLength]);\r\n\r\n React.useLayoutEffect(() => {\r\n isOpen && !locationDefined && determineDropUp();\r\n }, [isOpen, locationDefined]);\r\n\r\n const haveTopItem = () => {\r\n if (!customizationProps.pinTopItem) return false;\r\n\r\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\r\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\r\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\r\n return false;\r\n };\r\n\r\n const getSuggestions = () => {\r\n return getFilteredItems().filter((x) => x.suggestion);\r\n };\r\n\r\n /**\r\n * when dropdown opens set correct position of focused item\r\n * */\r\n React.useLayoutEffect(() => {\r\n if (isOpen && (focused || focused === 0)) {\r\n setNewFocusedElement(focused === 0 && !haveTopItem() ? 1 : focused);\r\n }\r\n }, [isOpen, focused]);\r\n\r\n /**\r\n * Reset dropdown content state on close\r\n * */\r\n React.useEffect(() => {\r\n if (!isOpen) {\r\n setLocationDefined(false);\r\n for (let elRef of elRefs) {\r\n elRef.current?.classList.remove('dropdown-hover');\r\n }\r\n setFocused(null);\r\n if(onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n dropdownContentRef.current?.classList.remove('outline');\r\n dropdownContentRef.current?.blur();\r\n } else {\r\n if (outline) {\r\n dropdownContentRef.current?.classList.add('outline');\r\n dropdownContentRef.current?.focus();\r\n }\r\n }\r\n }, [isOpen, dropdownContentRef, focused, outline]);\r\n\r\n /**\r\n * Scroll item container to top when dropdown opens\r\n * */\r\n React.useEffect(() => {\r\n if (isOpen && itemsListRef.current) {\r\n itemsListRef.current.scrollTop = 0;\r\n }\r\n }, [isOpen]);\r\n\r\n React.useEffect(() => {\r\n if (isOpen) {\r\n const observer = new IntersectionObserver(function (entries) {\r\n if (!entries[0].isIntersecting) {\r\n setIsOpen(false);\r\n //@ts-ignore\r\n document?.activeElement?.blur();\r\n }\r\n }, {threshold: [0], rootMargin: '8px'});\r\n\r\n observer.observe(containerRef.current!);\r\n\r\n calculateOffset();\r\n window.addEventListener('scroll', calculateOffset, true);\r\n window.addEventListener('resize', calculateOffset);\r\n\r\n return () => {\r\n observer.disconnect();\r\n window.removeEventListener('scroll', calculateOffset, true);\r\n window.removeEventListener('resize', calculateOffset);\r\n }\r\n }\r\n return () => {};\r\n }, [isOpen]);\r\n\r\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\r\n let newValue: string[] = [];\r\n if (customizationProps.multiSelect) {\r\n if (selected) newValue = [...selectedValues, item.value];\r\n else newValue = selectedValues.filter((x) => x != item.value);\r\n } else newValue = selected ? [item.value] : [];\r\n\r\n setSelectedValues(newValue);\r\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)) {\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n const getTopItem = () => {\r\n if (!customizationProps.pinTopItem) return;\r\n const visibleItems = getFilteredItems();\r\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\r\n let showTopItem = false;\r\n const suggestions = getSuggestions();\r\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\r\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\r\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\r\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\r\n\r\n if (!showTopItem) return;\r\n\r\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find((x) => x.value == selectedValues[0]) : null;\r\n\r\n return (\r\n <DropdownContentTopItemContainer $size={size}>\r\n {customizationProps.itemsType === 'radio' && (\r\n <RadioButton\r\n ref={elRefs[0] as React.RefObject<HTMLDivElement | null>}\r\n role='menuitemradio'\r\n iconPointerEventsTransparent={true}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n tabIndexVal={-1}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n select={() => {}}\r\n label={selectedFirst?.displayLabel ?? selectedFirst?.value}\r\n size={size}\r\n id={`${id}_topitem`}\r\n selected={true}\r\n />\r\n )}\r\n {customizationProps.itemsType === 'checkbox' && (\r\n <Checkbox\r\n ref={elRefs[0] as React.RefObject<HTMLDivElement | null>}\r\n role='menuitemcheckbox'\r\n tabIndexVal={-1}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n select={(selected: boolean) => {\r\n if (!customizationProps.multiSelect) return;\r\n\r\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\r\n setSelectedValues(newValues);\r\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues)) setIsOpen(false);\r\n }}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n iconPointerEventsTransparent={true}\r\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\r\n size={size}\r\n id={`${id}_checkbox_selectall`}\r\n label={customizationProps.multiSelect ? 'Select all' : selectedFirst?.displayLabel ?? selectedFirst?.value}\r\n selected={!customizationProps.multiSelect || allSelected}\r\n />\r\n )}\r\n {customizationProps.itemsType === 'normal' && (\r\n <>\r\n {suggestions.map((x) => (\r\n <MenuItem\r\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \r\n key={`${id}_topitem_${x.value}`}\r\n item={x}\r\n size={size}\r\n active={false}\r\n tabIndex={-1}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n ref={elRefs[0] as React.RefObject<HTMLButtonElement | null>}\r\n id={`${id}_topitem`}\r\n onClickHandler={(e: any) => {\r\n e.stopPropagation();\r\n customizationProps.onValueUpdate([x.value]);\r\n setSelectedValues([x.value]);\r\n setIsOpen(false);\r\n setFocused(null);\r\n }}\r\n />\r\n ))}\r\n </>\r\n )}\r\n </DropdownContentTopItemContainer>\r\n );\r\n };\r\n\r\n const getElements = (messageOnNoResults: string, size: Size.Small | Size.Medium | Size.Large) => {\r\n if (getFilteredItems().length === 0) {\r\n return <MenuItem item={{ value: messageOnNoResults, disabled: true }} size={size} id=\"noResultsFound\" active={false} onClickHandler={(e) => {}} />;\r\n }\r\n return (\r\n <DropdownContentItemsContainer $size={size}>\r\n {getFilteredItems()\r\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\r\n .map((item, index) => {\r\n return (\r\n <React.Fragment key={`key_${id}_${item.value}`}>\r\n {item.customContent}\r\n {!item.customContent && customizationProps.itemsType == 'radio' && (\r\n <RadioButton\r\n role='menuitemradio'\r\n select={(selected: boolean) => handleItemClick(selected, item)}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement | null>}\r\n size={size}\r\n tabIndexVal={-1}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n iconPointerEventsTransparent={true}\r\n disabled={item?.disabled}\r\n key={`key_${id}_${index + 1}`}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n id={`${id}_${index + 1}`}\r\n label={item.displayLabel ?? item.value}\r\n selected={selectedValues?.includes(item.value)}\r\n />\r\n )}\r\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\r\n <Checkbox\r\n role='menuitemcheckbox'\r\n select={(selected: boolean) => handleItemClick(selected, item)}\r\n iconPointerEventsTransparent={true}\r\n disabled={item?.disabled}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement | null>}\r\n size={size}\r\n tabIndexVal={-1}\r\n key={`key_${id}_${index + 1}`}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n id={`${id}_${index + 1}`}\r\n label={item.displayLabel ?? item.value}\r\n selected={selectedValues?.includes(item.value)}\r\n />\r\n )}\r\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\r\n <MenuItem\r\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \r\n key={`key_${id}_${index + 1}`}\r\n id={`${id}_${index + 1}`}\r\n item={item}\r\n tabIndex={-1}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n size={size}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n active={selectedValues?.includes(item.value)}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLButtonElement | null>}\r\n onClickHandler={(e: any) => {\r\n e.stopPropagation();\r\n customizationProps.onValueUpdate([item.value]);\r\n setSelectedValues([item.value]);\r\n setIsOpen(false);\r\n setFocused(null);\r\n }}\r\n />\r\n )}\r\n </React.Fragment>\r\n );\r\n })}\r\n </DropdownContentItemsContainer>\r\n );\r\n };\r\n\r\n const calculateOffset = () => {\r\n const rect = containerRef?.current?.getBoundingClientRect();\r\n if (rect) {\r\n dropdownContentRef.current.style.width = width ?? `${rect.width}px`;\r\n }\r\n determineDropUp();\r\n };\r\n\r\n const cls = `${isOpen ? 'show' : ''} ${isOpen && outline ? 'outline' : ''} ${locationDefined ? (isUp ? 'up' : 'down') : ''}`;\r\n\r\n return (\r\n <Overlay>\r\n <DropdownContentContainer\r\n role={ariaRolesType == \"menu\" ? \"menu\" : \"optionlist\"}\r\n ref={dropdownContentRef}\r\n $size={size}\r\n $offsetTop={offset.top}\r\n id={id}\r\n $offsetLeft={offset.left}\r\n tabIndex={-1}\r\n $isButton={isButton}\r\n $alignLeft={alignLeft}\r\n $scrollable={customizationProps.scrollable}\r\n $maxHeight={customizationProps.maxHeight}\r\n className={cls}>\r\n <DropdownContentListContainer\r\n tabIndex={-1}\r\n role=\"group\"\r\n $size={size}\r\n $itemsType={customizationProps.itemsType}\r\n onScroll={handleScroll}\r\n ref={itemsListRef}\r\n $outline={outline}\r\n $scrollable={customizationProps.scrollable}>\r\n {customizationProps.menuContent && (\r\n <DropdownContentMenuContentContainer $size={size}>\r\n {customizationProps.menuContent}\r\n <DividerContainer $size={size}>\r\n <div className=\"divider\" />\r\n </DividerContainer>\r\n </DropdownContentMenuContentContainer>\r\n )}\r\n {customizationProps.pinTopItem && getTopItem()}\r\n {getElements(messageOnNoResults, size)}\r\n </DropdownContentListContainer>\r\n {customizationProps.action && customizationProps.actionLabel && (\r\n <DropdownContentActionButtonContainer $size={size} $scrollable={customizationProps.scrollable}>\r\n <TextButton\r\n width=\"100%\"\r\n role=\"menuitem\"\r\n icon={customizationProps.actionIcon}\r\n ref={actionButtonRef}\r\n loading={customizationProps.actionLoading}\r\n disabled={customizationProps.actionDisabled}\r\n variant={customizationProps.actionVariant ?? 'primary'}\r\n size={size}\r\n onClick={() => customizationProps.action() && setIsOpen(false)}>\r\n {customizationProps.actionLabel}\r\n </TextButton>\r\n </DropdownContentActionButtonContainer>\r\n )}\r\n </DropdownContentContainer>\r\n </Overlay>\r\n );\r\n },\r\n);\r\n\r\nexport default DropdownContent;\r\n"],"mappings":"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","ignoreList":[]}
@@ -238,7 +238,6 @@ const Paginator = _ref2 => {
238
238
  target: "_self",
239
239
  href: '',
240
240
  onClick: e => {
241
- console.log(`Page changed to: ${page}`);
242
241
  onPageChange && onPageChange(page);
243
242
  e.preventDefault();
244
243
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Paginator.cjs","names":["React","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_styles","_icons","_Button","_HyperLink","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Container","styled","nav","BREAKPOINTS","MEDIUM","Items","ul","Item","li","props","ComponentMStyling","ComponentTextStyle","Regular","COLORS","generateToken","componentType","defaultVariant","theme","focusStyles","Z_INDEXES","hover","state","active","Dots","ItemContent","Step","_ref","up","disabled","page","onPageChange","id","handleButtonClick","jsx","IconButton","action","event","variant","shape","children","SystemIcons","ChevronRight","ChevronLeft","Paginator","_ref2","pageCount","currentPage","pages","from","to","push","jsxs","findIndex","item","HyperLink","target","onClick","preventDefault","href","className","map","console","log","propTypes","_propTypes","number","isRequired","func","_default","exports"],"sources":["../../src/Paginator/Paginator.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport styled from 'styled-components';\r\nimport {BREAKPOINTS, COLORS, ComponentTextStyle, focusStyles} from '../styles';\r\nimport {SystemIcons} from '../icons';\r\nimport {ComponentMStyling} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport {IconButton} from '../Button';\r\nimport { HyperLink } from '../HyperLink';\r\n\r\nconst Container = styled.nav`\r\n margin: 20px 0;\r\n display: flex;\r\n justify-content: center;\r\n\r\n ${BREAKPOINTS.MEDIUM} {\r\n width: 75%;\r\n }\r\n`;\r\n\r\nconst Items = styled.ul`\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n display: flex;\r\n`;\r\n\r\nconst Item = styled.li`\r\n width: 48px;\r\n height: 48px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n & > * {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100%;\r\n height: 100%;\r\n text-decoration: none;\r\n\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant: 'subtle'}, props.theme))}\r\n\r\n &:focus,\r\n &:focus-within {\r\n ${focusStyles}\r\n }\r\n }\r\n & > a:hover {\r\n z-index: ${Z_INDEXES.hover};\r\n color: ${props => COLORS.generateToken({ componentType:'text', state: 'hover' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType:'bg-surface', state:'hover' }, props.theme)};\r\n }\r\n\r\n & > a:active {\r\n z-index: ${Z_INDEXES.active};\r\n color: ${props => COLORS.generateToken({ componentType:'text', state:'active' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType:'bg-surface', state:'active' }, props.theme)};\r\n }\r\n`;\r\n\r\nconst Dots = styled(Item)`\r\n cursor: not-allowed;\r\n &:after{\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'icon',defaultVariant:'subtle'}, props.theme))}\r\n content: '...';\r\n }\r\n`;\r\n\r\nconst ItemContent = styled('div')`\r\n text-align:center;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n \r\n &.currentPage {\r\n z-index: ${Z_INDEXES.active};\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'default' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'selected' }, props.theme)};\r\n cursor: default;\r\n &:hover {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'hover' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'hover' }, props.theme)};\r\n }\r\n &:active {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'active' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'active' }, props.theme)};\r\n }\r\n }\r\n\r\n &.currentPage:after{\r\n content: '';\r\n position: absolute;\r\n bottom: 4px;\r\n width: 32px;\r\n border-radius: 4px;\r\n height: 4px;\r\n background-color: ${props => COLORS.generateToken({componentType: 'border', defaultVariant: 'selected'}, props.theme)}\r\n }\r\n &.currentPage:hover:after{\r\n background-color: ${props => COLORS.generateToken({componentType: 'border', defaultVariant: 'selected'}, props.theme)}\r\n }\r\n &.currentPage:active:after{\r\n background-color: ${props => COLORS.generateToken({componentType: 'border', defaultVariant: 'selected'}, props.theme)}\r\n }\r\n`\r\n\r\nexport interface PaginatorProps {\r\n /**\r\n * Required. The total number of pages.\r\n */\r\n pageCount: number;\r\n\r\n /**\r\n * Required. The current active page.\r\n */\r\n currentPage: number;\r\n\r\n /**\r\n * Optional. A callback function that will be called when the page changes.\r\n * It receives the new page number as its argument.\r\n * If the function returns false, the page change will be prevented.\r\n */\r\n onPageChange?: (page: number) => boolean | void;\r\n};\r\n\r\nconst Step = ({\r\n up = true,\r\n disabled = false,\r\n page,\r\n onPageChange,\r\n id,\r\n}: {\r\n up: boolean;\r\n disabled: boolean;\r\n page: number;\r\n onPageChange?: (page: number) => void | boolean;\r\n id?: string;\r\n}) => {\r\n \r\n const handleButtonClick = () => {\r\n onPageChange && onPageChange(page);\r\n }\r\n\r\n return (\r\n <IconButton id={id}\r\n action={event => handleButtonClick()}\r\n variant={'secondary'}\r\n shape={'circular'}\r\n disabled={disabled}>\r\n {up ? <SystemIcons.ChevronRight aria-label=\"Next Page\" /> : <SystemIcons.ChevronLeft aria-label=\"Previous Page\"/>}\r\n </IconButton>\r\n )\r\n};\r\n\r\nconst Paginator = ({ pageCount = 1, currentPage = 1, onPageChange }: PaginatorProps) => {\r\n const pages = [];\r\n let from = 2;\r\n let to = 4;\r\n if (pageCount === 0) return null;\r\n\r\n if (pageCount > 1) {\r\n if (currentPage >= 4 && currentPage <= pageCount - 2) {\r\n from = currentPage - 1;\r\n to = currentPage + 1;\r\n } else if (pageCount - 2 > 1 && currentPage > pageCount - 2) {\r\n from = pageCount - 3;\r\n to = pageCount - 1;\r\n }\r\n if (to > pageCount) {\r\n to = pageCount;\r\n }\r\n for (let i = from; i <= to; i += 1) {\r\n pages.push(i);\r\n }\r\n }\r\n\r\n return (\r\n <Container aria-label=\"Pagination\">\r\n <Items>\r\n <Step up={false}\r\n page={currentPage - 1}\r\n disabled={currentPage === 1}\r\n onPageChange={onPageChange}\r\n id=\"paginator-left\"/>\r\n {pages.findIndex(item => item === 1) === -1 && (\r\n <Item aria-current={currentPage === 1}>\r\n <HyperLink\r\n target='_self'\r\n onClick={(e) => {\r\n onPageChange && onPageChange(1);\r\n e.preventDefault();\r\n } } variant={'styleless'} href={''}>\r\n <ItemContent className={currentPage === 1 ? 'currentPage' : ''}>\r\n <span>1</span>\r\n </ItemContent>\r\n </HyperLink>\r\n </Item>\r\n )}\r\n {currentPage >= 4 && pageCount > 5 && pageCount && pages.findIndex(item => item === 1) === -1 && (\r\n <Dots/>\r\n )}\r\n {pages.map(page => (\r\n <Item key={page} aria-current={currentPage === page}>\r\n <HyperLink\r\n target='_self'\r\n href={''}\r\n onClick={(e) => {\r\n console.log(`Page changed to: ${page}`);\r\n onPageChange && onPageChange(page);\r\n e.preventDefault();\r\n } } variant={'styleless'}>\r\n <ItemContent className={currentPage === page ? 'currentPage' : ''}>\r\n <span>{page}</span>\r\n </ItemContent>\r\n </HyperLink>\r\n </Item>\r\n ))}\r\n {pageCount > 5 && currentPage <= pageCount - 3 && (\r\n <Dots/>\r\n )}\r\n {pages.findIndex(item => item === pageCount) === -1 && pageCount !== 1 && (\r\n <Item aria-current={currentPage === pageCount}>\r\n <HyperLink\r\n target='_self'\r\n href={''}\r\n variant='styleless'\r\n onClick={(e) => {\r\n onPageChange && onPageChange(pageCount);\r\n e.preventDefault();\r\n }}>\r\n <ItemContent className={currentPage === pageCount ? 'currentPage' : ''}>\r\n <span>{pageCount}</span>\r\n </ItemContent>\r\n </HyperLink>\r\n </Item>\r\n )}\r\n <Step up\r\n page={currentPage + 1}\r\n disabled={currentPage === pageCount}\r\n onPageChange={onPageChange}\r\n id=\"paginator-right\"/>\r\n </Items>\r\n </Container>\r\n );\r\n};\r\n\r\nexport default Paginator;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Paginator.cjs","names":["React","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_styles","_icons","_Button","_HyperLink","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Container","styled","nav","BREAKPOINTS","MEDIUM","Items","ul","Item","li","props","ComponentMStyling","ComponentTextStyle","Regular","COLORS","generateToken","componentType","defaultVariant","theme","focusStyles","Z_INDEXES","hover","state","active","Dots","ItemContent","Step","_ref","up","disabled","page","onPageChange","id","handleButtonClick","jsx","IconButton","action","event","variant","shape","children","SystemIcons","ChevronRight","ChevronLeft","Paginator","_ref2","pageCount","currentPage","pages","from","to","push","jsxs","findIndex","item","HyperLink","target","onClick","preventDefault","href","className","map","propTypes","_propTypes","number","isRequired","func","_default","exports"],"sources":["../../src/Paginator/Paginator.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport styled from 'styled-components';\r\nimport {BREAKPOINTS, COLORS, ComponentTextStyle, focusStyles} from '../styles';\r\nimport {SystemIcons} from '../icons';\r\nimport {ComponentMStyling} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport {IconButton} from '../Button';\r\nimport { HyperLink } from '../HyperLink';\r\n\r\nconst Container = styled.nav`\r\n margin: 20px 0;\r\n display: flex;\r\n justify-content: center;\r\n\r\n ${BREAKPOINTS.MEDIUM} {\r\n width: 75%;\r\n }\r\n`;\r\n\r\nconst Items = styled.ul`\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n display: flex;\r\n`;\r\n\r\nconst Item = styled.li`\r\n width: 48px;\r\n height: 48px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n & > * {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100%;\r\n height: 100%;\r\n text-decoration: none;\r\n\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant: 'subtle'}, props.theme))}\r\n\r\n &:focus,\r\n &:focus-within {\r\n ${focusStyles}\r\n }\r\n }\r\n & > a:hover {\r\n z-index: ${Z_INDEXES.hover};\r\n color: ${props => COLORS.generateToken({ componentType:'text', state: 'hover' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType:'bg-surface', state:'hover' }, props.theme)};\r\n }\r\n\r\n & > a:active {\r\n z-index: ${Z_INDEXES.active};\r\n color: ${props => COLORS.generateToken({ componentType:'text', state:'active' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType:'bg-surface', state:'active' }, props.theme)};\r\n }\r\n`;\r\n\r\nconst Dots = styled(Item)`\r\n cursor: not-allowed;\r\n &:after{\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'icon',defaultVariant:'subtle'}, props.theme))}\r\n content: '...';\r\n }\r\n`;\r\n\r\nconst ItemContent = styled('div')`\r\n text-align:center;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n \r\n &.currentPage {\r\n z-index: ${Z_INDEXES.active};\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'default' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'selected' }, props.theme)};\r\n cursor: default;\r\n &:hover {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'hover' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'hover' }, props.theme)};\r\n }\r\n &:active {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'active' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'active' }, props.theme)};\r\n }\r\n }\r\n\r\n &.currentPage:after{\r\n content: '';\r\n position: absolute;\r\n bottom: 4px;\r\n width: 32px;\r\n border-radius: 4px;\r\n height: 4px;\r\n background-color: ${props => COLORS.generateToken({componentType: 'border', defaultVariant: 'selected'}, props.theme)}\r\n }\r\n &.currentPage:hover:after{\r\n background-color: ${props => COLORS.generateToken({componentType: 'border', defaultVariant: 'selected'}, props.theme)}\r\n }\r\n &.currentPage:active:after{\r\n background-color: ${props => COLORS.generateToken({componentType: 'border', defaultVariant: 'selected'}, props.theme)}\r\n }\r\n`\r\n\r\nexport interface PaginatorProps {\r\n /**\r\n * Required. The total number of pages.\r\n */\r\n pageCount: number;\r\n\r\n /**\r\n * Required. The current active page.\r\n */\r\n currentPage: number;\r\n\r\n /**\r\n * Optional. A callback function that will be called when the page changes.\r\n * It receives the new page number as its argument.\r\n * If the function returns false, the page change will be prevented.\r\n */\r\n onPageChange?: (page: number) => boolean | void;\r\n};\r\n\r\nconst Step = ({\r\n up = true,\r\n disabled = false,\r\n page,\r\n onPageChange,\r\n id,\r\n}: {\r\n up: boolean;\r\n disabled: boolean;\r\n page: number;\r\n onPageChange?: (page: number) => void | boolean;\r\n id?: string;\r\n}) => {\r\n \r\n const handleButtonClick = () => {\r\n onPageChange && onPageChange(page);\r\n }\r\n\r\n return (\r\n <IconButton id={id}\r\n action={event => handleButtonClick()}\r\n variant={'secondary'}\r\n shape={'circular'}\r\n disabled={disabled}>\r\n {up ? <SystemIcons.ChevronRight aria-label=\"Next Page\" /> : <SystemIcons.ChevronLeft aria-label=\"Previous Page\"/>}\r\n </IconButton>\r\n )\r\n};\r\n\r\nconst Paginator = ({ pageCount = 1, currentPage = 1, onPageChange }: PaginatorProps) => {\r\n const pages = [];\r\n let from = 2;\r\n let to = 4;\r\n if (pageCount === 0) return null;\r\n\r\n if (pageCount > 1) {\r\n if (currentPage >= 4 && currentPage <= pageCount - 2) {\r\n from = currentPage - 1;\r\n to = currentPage + 1;\r\n } else if (pageCount - 2 > 1 && currentPage > pageCount - 2) {\r\n from = pageCount - 3;\r\n to = pageCount - 1;\r\n }\r\n if (to > pageCount) {\r\n to = pageCount;\r\n }\r\n for (let i = from; i <= to; i += 1) {\r\n pages.push(i);\r\n }\r\n }\r\n\r\n return (\r\n <Container aria-label=\"Pagination\">\r\n <Items>\r\n <Step up={false}\r\n page={currentPage - 1}\r\n disabled={currentPage === 1}\r\n onPageChange={onPageChange}\r\n id=\"paginator-left\"/>\r\n {pages.findIndex(item => item === 1) === -1 && (\r\n <Item aria-current={currentPage === 1}>\r\n <HyperLink\r\n target='_self'\r\n onClick={(e) => {\r\n onPageChange && onPageChange(1);\r\n e.preventDefault();\r\n } } variant={'styleless'} href={''}>\r\n <ItemContent className={currentPage === 1 ? 'currentPage' : ''}>\r\n <span>1</span>\r\n </ItemContent>\r\n </HyperLink>\r\n </Item>\r\n )}\r\n {currentPage >= 4 && pageCount > 5 && pageCount && pages.findIndex(item => item === 1) === -1 && (\r\n <Dots/>\r\n )}\r\n {pages.map(page => (\r\n <Item key={page} aria-current={currentPage === page}>\r\n <HyperLink\r\n target='_self'\r\n href={''}\r\n onClick={(e) => {\r\n onPageChange && onPageChange(page);\r\n e.preventDefault();\r\n } } variant={'styleless'}>\r\n <ItemContent className={currentPage === page ? 'currentPage' : ''}>\r\n <span>{page}</span>\r\n </ItemContent>\r\n </HyperLink>\r\n </Item>\r\n ))}\r\n {pageCount > 5 && currentPage <= pageCount - 3 && (\r\n <Dots/>\r\n )}\r\n {pages.findIndex(item => item === pageCount) === -1 && pageCount !== 1 && (\r\n <Item aria-current={currentPage === pageCount}>\r\n <HyperLink\r\n target='_self'\r\n href={''}\r\n variant='styleless'\r\n onClick={(e) => {\r\n onPageChange && onPageChange(pageCount);\r\n e.preventDefault();\r\n }}>\r\n <ItemContent className={currentPage === pageCount ? 'currentPage' : ''}>\r\n <span>{pageCount}</span>\r\n </ItemContent>\r\n </HyperLink>\r\n </Item>\r\n )}\r\n <Step up\r\n page={currentPage + 1}\r\n disabled={currentPage === pageCount}\r\n onPageChange={onPageChange}\r\n id=\"paginator-right\"/>\r\n </Items>\r\n </Container>\r\n );\r\n};\r\n\r\nexport default Paginator;\r\n"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAGA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AAAyC,IAAAO,WAAA,GAAAP,OAAA;AAAA,SAAAQ,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAV,wBAAAU,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEzC,MAAMW,SAAS,GAAGC,yBAAM,CAACC,GAAG;AAC5B;AACA;AACA;AACA;AACA,IAAIC,mBAAW,CAACC,MAAM;AACtB;AACA;AACA,CAAC;AAED,MAAMC,KAAK,GAAGJ,yBAAM,CAACK,EAAE;AACvB;AACA;AACA;AACA;AACA,CAAC;AAED,MAAMC,IAAI,GAAGN,yBAAM,CAACO,EAAE;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,KAAK,IAAI,IAAAC,yBAAiB,EAACC,0BAAkB,CAACC,OAAO,EAAEC,cAAM,CAACC,aAAa,CAAC;EAACC,aAAa,EAAC,MAAM;EAAEC,cAAc,EAAE;AAAQ,CAAC,EAAEP,KAAK,CAACQ,KAAK,CAAC,CAAC;AACjJ;AACA;AACA;AACA,QAAQC,mBAAW;AACnB;AACA;AACA;AACA,eAAeC,iBAAS,CAACC,KAAK;AAC9B,aAAaX,KAAK,IAAII,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAC,MAAM;EAAEM,KAAK,EAAE;AAAQ,CAAC,EAAEZ,KAAK,CAACQ,KAAK,CAAC;AACjG,wBAAwBR,KAAK,IAAII,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAC,YAAY;EAAEM,KAAK,EAAC;AAAQ,CAAC,EAAEZ,KAAK,CAACQ,KAAK,CAAC;AACjH;AACA;AACA;AACA,eAAeE,iBAAS,CAACG,MAAM;AAC/B,aAAab,KAAK,IAAII,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAC,MAAM;EAAEM,KAAK,EAAC;AAAS,CAAC,EAAEZ,KAAK,CAACQ,KAAK,CAAC;AACjG,wBAAwBR,KAAK,IAAII,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAC,YAAY;EAAEM,KAAK,EAAC;AAAS,CAAC,EAAEZ,KAAK,CAACQ,KAAK,CAAC;AAClH;AACA,CAAC;AAED,MAAMM,IAAI,GAAG,IAAAtB,yBAAM,EAACM,IAAI,CAAC;AACzB;AACA;AACA,MAAME,KAAK,IAAI,IAAAC,yBAAiB,EAACC,0BAAkB,CAACC,OAAO,EAAEC,cAAM,CAACC,aAAa,CAAC;EAACC,aAAa,EAAC,MAAM;EAACC,cAAc,EAAC;AAAQ,CAAC,EAAEP,KAAK,CAACQ,KAAK,CAAC,CAAC;AAC/I;AACA;AACA,CAAC;AAED,MAAMO,WAAW,GAAG,IAAAvB,yBAAM,EAAC,KAAK,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAekB,iBAAS,CAACG,MAAM;AAC/B,aAAab,KAAK,IAAII,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEC,cAAc,EAAE;AAAU,CAAC,EAAEP,KAAK,CAACQ,KAAK,CAAC;AAC7G,wBAAwBR,KAAK,IAAII,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAE,YAAY;EAAEC,cAAc,EAAE;AAAW,CAAC,EAAEP,KAAK,CAACQ,KAAK,CAAC;AAC/H;AACA;AACA,eAAeR,KAAK,IAAII,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEM,KAAK,EAAE;AAAQ,CAAC,EAAEZ,KAAK,CAACQ,KAAK,CAAC;AACpG,0BAA0BR,KAAK,IAAII,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAE,YAAY;EAAEM,KAAK,EAAE;AAAQ,CAAC,EAAEZ,KAAK,CAACQ,KAAK,CAAC;AACrH;AACA;AACA,eAAeR,KAAK,IAAII,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEM,KAAK,EAAE;AAAS,CAAC,EAAEZ,KAAK,CAACQ,KAAK,CAAC;AACrG,0BAA0BR,KAAK,IAAII,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAE,YAAY;EAAEM,KAAK,EAAE;AAAS,CAAC,EAAEZ,KAAK,CAACQ,KAAK,CAAC;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwBR,KAAK,IAAII,cAAM,CAACC,aAAa,CAAC;EAACC,aAAa,EAAE,QAAQ;EAAEC,cAAc,EAAE;AAAU,CAAC,EAAEP,KAAK,CAACQ,KAAK,CAAC;AACzH;AACA;AACA,wBAAwBR,KAAK,IAAII,cAAM,CAACC,aAAa,CAAC;EAACC,aAAa,EAAE,QAAQ;EAAEC,cAAc,EAAE;AAAU,CAAC,EAAEP,KAAK,CAACQ,KAAK,CAAC;AACzH;AACA;AACA,wBAAwBR,KAAK,IAAII,cAAM,CAACC,aAAa,CAAC;EAACC,aAAa,EAAE,QAAQ;EAAEC,cAAc,EAAE;AAAU,CAAC,EAAEP,KAAK,CAACQ,KAAK,CAAC;AACzH;AACA,CAAC;AAmBA;AAED,MAAMQ,IAAI,GAAGC,IAAA,IAYP;EAAA,IAZQ;IACZC,EAAE,GAAG,IAAI;IACTC,QAAQ,GAAG,KAAK;IAChBC,IAAI;IACJC,YAAY;IACZC;EAOF,CAAC,GAAAL,IAAA;EAEC,MAAMM,iBAAiB,GAAGA,CAAA,KAAM;IAC9BF,YAAY,IAAIA,YAAY,CAACD,IAAI,CAAC;EACpC,CAAC;EAED,oBACE,IAAAlD,WAAA,CAAAsD,GAAA,EAACxD,OAAA,CAAAyD,UAAU;IAACH,EAAE,EAAEA,EAAG;IACPI,MAAM,EAAEC,KAAK,IAAIJ,iBAAiB,CAAC,CAAE;IACrCK,OAAO,EAAE,WAAY;IACrBC,KAAK,EAAE,UAAW;IAClBV,QAAQ,EAAEA,QAAS;IAAAW,QAAA,EAC5BZ,EAAE,gBAAG,IAAAhD,WAAA,CAAAsD,GAAA,EAACzD,MAAA,CAAAgE,WAAW,CAACC,YAAY;MAAC,cAAW;IAAW,CAAE,CAAC,gBAAG,IAAA9D,WAAA,CAAAsD,GAAA,EAACzD,MAAA,CAAAgE,WAAW,CAACE,WAAW;MAAC,cAAW;IAAe,CAAC;EAAC,CACvG,CAAC;AAEjB,CAAC;AAED,MAAMC,SAAS,GAAGC,KAAA,IAAsE;EAAA,IAArE;IAAEC,SAAS,GAAG,CAAC;IAAEC,WAAW,GAAG,CAAC;IAAEhB;EAA6B,CAAC,GAAAc,KAAA;EACjF,MAAMG,KAAK,GAAG,EAAE;EAChB,IAAIC,IAAI,GAAG,CAAC;EACZ,IAAIC,EAAE,GAAG,CAAC;EACV,IAAIJ,SAAS,KAAK,CAAC,EAAE,OAAO,IAAI;EAEhC,IAAIA,SAAS,GAAG,CAAC,EAAE;IACjB,IAAIC,WAAW,IAAI,CAAC,IAAIA,WAAW,IAAID,SAAS,GAAG,CAAC,EAAE;MACpDG,IAAI,GAAGF,WAAW,GAAG,CAAC;MACtBG,EAAE,GAAGH,WAAW,GAAG,CAAC;IACtB,CAAC,MAAM,IAAID,SAAS,GAAG,CAAC,GAAG,CAAC,IAAIC,WAAW,GAAGD,SAAS,GAAG,CAAC,EAAE;MAC3DG,IAAI,GAAGH,SAAS,GAAG,CAAC;MACpBI,EAAE,GAAGJ,SAAS,GAAG,CAAC;IACpB;IACA,IAAII,EAAE,GAAGJ,SAAS,EAAE;MAClBI,EAAE,GAAGJ,SAAS;IAChB;IACA,KAAK,IAAI/C,CAAC,GAAGkD,IAAI,EAAElD,CAAC,IAAImD,EAAE,EAAEnD,CAAC,IAAI,CAAC,EAAE;MAClCiD,KAAK,CAACG,IAAI,CAACpD,CAAC,CAAC;IACf;EACF;EAEA,oBACE,IAAAnB,WAAA,CAAAsD,GAAA,EAACjC,SAAS;IAAC,cAAW,YAAY;IAAAuC,QAAA,eAChC,IAAA5D,WAAA,CAAAwE,IAAA,EAAC9C,KAAK;MAAAkC,QAAA,gBACJ,IAAA5D,WAAA,CAAAsD,GAAA,EAACR,IAAI;QAACE,EAAE,EAAE,KAAM;QACVE,IAAI,EAAEiB,WAAW,GAAG,CAAE;QACtBlB,QAAQ,EAAEkB,WAAW,KAAK,CAAE;QAC5BhB,YAAY,EAAEA,YAAa;QAC3BC,EAAE,EAAC;MAAgB,CAAC,CAAC,EAC1BgB,KAAK,CAACK,SAAS,CAACC,IAAI,IAAIA,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,iBACzC,IAAA1E,WAAA,CAAAsD,GAAA,EAAC1B,IAAI;QAAC,gBAAcuC,WAAW,KAAK,CAAE;QAAAP,QAAA,eACpC,IAAA5D,WAAA,CAAAsD,GAAA,EAACvD,UAAA,CAAA4E,SAAS;UACRC,MAAM,EAAC,OAAO;UACdC,OAAO,EAAG3E,CAAC,IAAK;YACdiD,YAAY,IAAIA,YAAY,CAAC,CAAC,CAAC;YAC/BjD,CAAC,CAAC4E,cAAc,CAAC,CAAC;UACpB,CAAG;UAACpB,OAAO,EAAE,WAAY;UAACqB,IAAI,EAAE,EAAG;UAAAnB,QAAA,eACjC,IAAA5D,WAAA,CAAAsD,GAAA,EAACT,WAAW;YAAEmC,SAAS,EAAEb,WAAW,KAAK,CAAC,GAAG,aAAa,GAAG,EAAG;YAAAP,QAAA,eAC/D,IAAA5D,WAAA,CAAAsD,GAAA;cAAAM,QAAA,EAAM;YAAC,CAAM;UAAC,CACF;QAAC,CACP;MAAC,CACR,CACP,EACAO,WAAW,IAAI,CAAC,IAAID,SAAS,GAAG,CAAC,IAAIA,SAAS,IAAIE,KAAK,CAACK,SAAS,CAACC,IAAI,IAAIA,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,iBAC3F,IAAA1E,WAAA,CAAAsD,GAAA,EAACV,IAAI,IAAC,CACP,EACAwB,KAAK,CAACa,GAAG,CAAC/B,IAAI,iBACb,IAAAlD,WAAA,CAAAsD,GAAA,EAAC1B,IAAI;QAAY,gBAAcuC,WAAW,KAAKjB,IAAK;QAAAU,QAAA,eAClD,IAAA5D,WAAA,CAAAsD,GAAA,EAACvD,UAAA,CAAA4E,SAAS;UACRC,MAAM,EAAC,OAAO;UACdG,IAAI,EAAE,EAAG;UACTF,OAAO,EAAG3E,CAAC,IAAK;YACdiD,YAAY,IAAIA,YAAY,CAACD,IAAI,CAAC;YAClChD,CAAC,CAAC4E,cAAc,CAAC,CAAC;UACpB,CAAG;UAACpB,OAAO,EAAE,WAAY;UAAAE,QAAA,eACvB,IAAA5D,WAAA,CAAAsD,GAAA,EAACT,WAAW;YAACmC,SAAS,EAAEb,WAAW,KAAKjB,IAAI,GAAG,aAAa,GAAG,EAAG;YAAAU,QAAA,eACjE,IAAA5D,WAAA,CAAAsD,GAAA;cAAAM,QAAA,EAAOV;YAAI,CAAO;UAAC,CACP;QAAC,CACP;MAAC,GAXHA,IAYL,CACP,CAAC,EACDgB,SAAS,GAAG,CAAC,IAAIC,WAAW,IAAID,SAAS,GAAG,CAAC,iBAC5C,IAAAlE,WAAA,CAAAsD,GAAA,EAACV,IAAI,IAAC,CACP,EACAwB,KAAK,CAACK,SAAS,CAACC,IAAI,IAAIA,IAAI,KAAKR,SAAS,CAAC,KAAK,CAAC,CAAC,IAAIA,SAAS,KAAK,CAAC,iBACpE,IAAAlE,WAAA,CAAAsD,GAAA,EAAC1B,IAAI;QAAC,gBAAcuC,WAAW,KAAKD,SAAU;QAAAN,QAAA,eAC5C,IAAA5D,WAAA,CAAAsD,GAAA,EAACvD,UAAA,CAAA4E,SAAS;UACRC,MAAM,EAAC,OAAO;UACdG,IAAI,EAAE,EAAG;UACTrB,OAAO,EAAC,WAAW;UACnBmB,OAAO,EAAG3E,CAAC,IAAK;YACdiD,YAAY,IAAIA,YAAY,CAACe,SAAS,CAAC;YACvChE,CAAC,CAAC4E,cAAc,CAAC,CAAC;UACpB,CAAE;UAAAlB,QAAA,eACA,IAAA5D,WAAA,CAAAsD,GAAA,EAACT,WAAW;YAACmC,SAAS,EAAEb,WAAW,KAAKD,SAAS,GAAG,aAAa,GAAG,EAAG;YAAAN,QAAA,eACtE,IAAA5D,WAAA,CAAAsD,GAAA;cAAAM,QAAA,EAAOM;YAAS,CAAO;UAAC,CACZ;QAAC,CACP;MAAC,CACR,CACP,eACD,IAAAlE,WAAA,CAAAsD,GAAA,EAACR,IAAI;QAACE,EAAE;QACFE,IAAI,EAAEiB,WAAW,GAAG,CAAE;QACtBlB,QAAQ,EAAEkB,WAAW,KAAKD,SAAU;QACpCf,YAAY,EAAEA,YAAa;QAC3BC,EAAE,EAAC;MAAiB,CAAC,CAAC;IAAA,CACvB;EAAC,CACC,CAAC;AAEhB,CAAC;AAACY,SAAA,CAAAkB,SAAA;EArIAhB,SAAS,EAAAiB,UAAA,CAAA5E,OAAA,CAAA6E,MAAA,CAAAC,UAAA;EAKTlB,WAAW,EAAAgB,UAAA,CAAA5E,OAAA,CAAA6E,MAAA,CAAAC,UAAA;EAOXlC,YAAY,EAAAgC,UAAA,CAAA5E,OAAA,CAAA+E;AAAA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAjF,OAAA,GA2HCyD,SAAS","ignoreList":[]}
@@ -231,7 +231,6 @@ const Paginator = _ref2 => {
231
231
  target: "_self",
232
232
  href: '',
233
233
  onClick: e => {
234
- console.log(`Page changed to: ${page}`);
235
234
  onPageChange && onPageChange(page);
236
235
  e.preventDefault();
237
236
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Paginator.js","names":["React","styled","BREAKPOINTS","COLORS","ComponentTextStyle","focusStyles","SystemIcons","ComponentMStyling","Z_INDEXES","IconButton","HyperLink","jsx","_jsx","jsxs","_jsxs","Container","nav","MEDIUM","Items","ul","Item","li","props","Regular","generateToken","componentType","defaultVariant","theme","hover","state","active","Dots","ItemContent","Step","_ref","up","disabled","page","onPageChange","id","handleButtonClick","action","event","variant","shape","children","ChevronRight","ChevronLeft","Paginator","_ref2","pageCount","currentPage","pages","from","to","i","push","findIndex","item","target","onClick","e","preventDefault","href","className","map","console","log","propTypes","_pt","number","isRequired","func"],"sources":["../../src/Paginator/Paginator.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport styled from 'styled-components';\r\nimport {BREAKPOINTS, COLORS, ComponentTextStyle, focusStyles} from '../styles';\r\nimport {SystemIcons} from '../icons';\r\nimport {ComponentMStyling} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport {IconButton} from '../Button';\r\nimport { HyperLink } from '../HyperLink';\r\n\r\nconst Container = styled.nav`\r\n margin: 20px 0;\r\n display: flex;\r\n justify-content: center;\r\n\r\n ${BREAKPOINTS.MEDIUM} {\r\n width: 75%;\r\n }\r\n`;\r\n\r\nconst Items = styled.ul`\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n display: flex;\r\n`;\r\n\r\nconst Item = styled.li`\r\n width: 48px;\r\n height: 48px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n & > * {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100%;\r\n height: 100%;\r\n text-decoration: none;\r\n\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant: 'subtle'}, props.theme))}\r\n\r\n &:focus,\r\n &:focus-within {\r\n ${focusStyles}\r\n }\r\n }\r\n & > a:hover {\r\n z-index: ${Z_INDEXES.hover};\r\n color: ${props => COLORS.generateToken({ componentType:'text', state: 'hover' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType:'bg-surface', state:'hover' }, props.theme)};\r\n }\r\n\r\n & > a:active {\r\n z-index: ${Z_INDEXES.active};\r\n color: ${props => COLORS.generateToken({ componentType:'text', state:'active' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType:'bg-surface', state:'active' }, props.theme)};\r\n }\r\n`;\r\n\r\nconst Dots = styled(Item)`\r\n cursor: not-allowed;\r\n &:after{\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'icon',defaultVariant:'subtle'}, props.theme))}\r\n content: '...';\r\n }\r\n`;\r\n\r\nconst ItemContent = styled('div')`\r\n text-align:center;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n \r\n &.currentPage {\r\n z-index: ${Z_INDEXES.active};\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'default' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'selected' }, props.theme)};\r\n cursor: default;\r\n &:hover {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'hover' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'hover' }, props.theme)};\r\n }\r\n &:active {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'active' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'active' }, props.theme)};\r\n }\r\n }\r\n\r\n &.currentPage:after{\r\n content: '';\r\n position: absolute;\r\n bottom: 4px;\r\n width: 32px;\r\n border-radius: 4px;\r\n height: 4px;\r\n background-color: ${props => COLORS.generateToken({componentType: 'border', defaultVariant: 'selected'}, props.theme)}\r\n }\r\n &.currentPage:hover:after{\r\n background-color: ${props => COLORS.generateToken({componentType: 'border', defaultVariant: 'selected'}, props.theme)}\r\n }\r\n &.currentPage:active:after{\r\n background-color: ${props => COLORS.generateToken({componentType: 'border', defaultVariant: 'selected'}, props.theme)}\r\n }\r\n`\r\n\r\nexport interface PaginatorProps {\r\n /**\r\n * Required. The total number of pages.\r\n */\r\n pageCount: number;\r\n\r\n /**\r\n * Required. The current active page.\r\n */\r\n currentPage: number;\r\n\r\n /**\r\n * Optional. A callback function that will be called when the page changes.\r\n * It receives the new page number as its argument.\r\n * If the function returns false, the page change will be prevented.\r\n */\r\n onPageChange?: (page: number) => boolean | void;\r\n};\r\n\r\nconst Step = ({\r\n up = true,\r\n disabled = false,\r\n page,\r\n onPageChange,\r\n id,\r\n}: {\r\n up: boolean;\r\n disabled: boolean;\r\n page: number;\r\n onPageChange?: (page: number) => void | boolean;\r\n id?: string;\r\n}) => {\r\n \r\n const handleButtonClick = () => {\r\n onPageChange && onPageChange(page);\r\n }\r\n\r\n return (\r\n <IconButton id={id}\r\n action={event => handleButtonClick()}\r\n variant={'secondary'}\r\n shape={'circular'}\r\n disabled={disabled}>\r\n {up ? <SystemIcons.ChevronRight aria-label=\"Next Page\" /> : <SystemIcons.ChevronLeft aria-label=\"Previous Page\"/>}\r\n </IconButton>\r\n )\r\n};\r\n\r\nconst Paginator = ({ pageCount = 1, currentPage = 1, onPageChange }: PaginatorProps) => {\r\n const pages = [];\r\n let from = 2;\r\n let to = 4;\r\n if (pageCount === 0) return null;\r\n\r\n if (pageCount > 1) {\r\n if (currentPage >= 4 && currentPage <= pageCount - 2) {\r\n from = currentPage - 1;\r\n to = currentPage + 1;\r\n } else if (pageCount - 2 > 1 && currentPage > pageCount - 2) {\r\n from = pageCount - 3;\r\n to = pageCount - 1;\r\n }\r\n if (to > pageCount) {\r\n to = pageCount;\r\n }\r\n for (let i = from; i <= to; i += 1) {\r\n pages.push(i);\r\n }\r\n }\r\n\r\n return (\r\n <Container aria-label=\"Pagination\">\r\n <Items>\r\n <Step up={false}\r\n page={currentPage - 1}\r\n disabled={currentPage === 1}\r\n onPageChange={onPageChange}\r\n id=\"paginator-left\"/>\r\n {pages.findIndex(item => item === 1) === -1 && (\r\n <Item aria-current={currentPage === 1}>\r\n <HyperLink\r\n target='_self'\r\n onClick={(e) => {\r\n onPageChange && onPageChange(1);\r\n e.preventDefault();\r\n } } variant={'styleless'} href={''}>\r\n <ItemContent className={currentPage === 1 ? 'currentPage' : ''}>\r\n <span>1</span>\r\n </ItemContent>\r\n </HyperLink>\r\n </Item>\r\n )}\r\n {currentPage >= 4 && pageCount > 5 && pageCount && pages.findIndex(item => item === 1) === -1 && (\r\n <Dots/>\r\n )}\r\n {pages.map(page => (\r\n <Item key={page} aria-current={currentPage === page}>\r\n <HyperLink\r\n target='_self'\r\n href={''}\r\n onClick={(e) => {\r\n console.log(`Page changed to: ${page}`);\r\n onPageChange && onPageChange(page);\r\n e.preventDefault();\r\n } } variant={'styleless'}>\r\n <ItemContent className={currentPage === page ? 'currentPage' : ''}>\r\n <span>{page}</span>\r\n </ItemContent>\r\n </HyperLink>\r\n </Item>\r\n ))}\r\n {pageCount > 5 && currentPage <= pageCount - 3 && (\r\n <Dots/>\r\n )}\r\n {pages.findIndex(item => item === pageCount) === -1 && pageCount !== 1 && (\r\n <Item aria-current={currentPage === pageCount}>\r\n <HyperLink\r\n target='_self'\r\n href={''}\r\n variant='styleless'\r\n onClick={(e) => {\r\n onPageChange && onPageChange(pageCount);\r\n e.preventDefault();\r\n }}>\r\n <ItemContent className={currentPage === pageCount ? 'currentPage' : ''}>\r\n <span>{pageCount}</span>\r\n </ItemContent>\r\n </HyperLink>\r\n </Item>\r\n )}\r\n <Step up\r\n page={currentPage + 1}\r\n disabled={currentPage === pageCount}\r\n onPageChange={onPageChange}\r\n id=\"paginator-right\"/>\r\n </Items>\r\n </Container>\r\n );\r\n};\r\n\r\nexport default Paginator;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Paginator.js","names":["React","styled","BREAKPOINTS","COLORS","ComponentTextStyle","focusStyles","SystemIcons","ComponentMStyling","Z_INDEXES","IconButton","HyperLink","jsx","_jsx","jsxs","_jsxs","Container","nav","MEDIUM","Items","ul","Item","li","props","Regular","generateToken","componentType","defaultVariant","theme","hover","state","active","Dots","ItemContent","Step","_ref","up","disabled","page","onPageChange","id","handleButtonClick","action","event","variant","shape","children","ChevronRight","ChevronLeft","Paginator","_ref2","pageCount","currentPage","pages","from","to","i","push","findIndex","item","target","onClick","e","preventDefault","href","className","map","propTypes","_pt","number","isRequired","func"],"sources":["../../src/Paginator/Paginator.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport styled from 'styled-components';\r\nimport {BREAKPOINTS, COLORS, ComponentTextStyle, focusStyles} from '../styles';\r\nimport {SystemIcons} from '../icons';\r\nimport {ComponentMStyling} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport {IconButton} from '../Button';\r\nimport { HyperLink } from '../HyperLink';\r\n\r\nconst Container = styled.nav`\r\n margin: 20px 0;\r\n display: flex;\r\n justify-content: center;\r\n\r\n ${BREAKPOINTS.MEDIUM} {\r\n width: 75%;\r\n }\r\n`;\r\n\r\nconst Items = styled.ul`\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n display: flex;\r\n`;\r\n\r\nconst Item = styled.li`\r\n width: 48px;\r\n height: 48px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n & > * {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100%;\r\n height: 100%;\r\n text-decoration: none;\r\n\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant: 'subtle'}, props.theme))}\r\n\r\n &:focus,\r\n &:focus-within {\r\n ${focusStyles}\r\n }\r\n }\r\n & > a:hover {\r\n z-index: ${Z_INDEXES.hover};\r\n color: ${props => COLORS.generateToken({ componentType:'text', state: 'hover' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType:'bg-surface', state:'hover' }, props.theme)};\r\n }\r\n\r\n & > a:active {\r\n z-index: ${Z_INDEXES.active};\r\n color: ${props => COLORS.generateToken({ componentType:'text', state:'active' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType:'bg-surface', state:'active' }, props.theme)};\r\n }\r\n`;\r\n\r\nconst Dots = styled(Item)`\r\n cursor: not-allowed;\r\n &:after{\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'icon',defaultVariant:'subtle'}, props.theme))}\r\n content: '...';\r\n }\r\n`;\r\n\r\nconst ItemContent = styled('div')`\r\n text-align:center;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n \r\n &.currentPage {\r\n z-index: ${Z_INDEXES.active};\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'default' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'selected' }, props.theme)};\r\n cursor: default;\r\n &:hover {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'hover' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'hover' }, props.theme)};\r\n }\r\n &:active {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'active' }, props.theme)};\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'active' }, props.theme)};\r\n }\r\n }\r\n\r\n &.currentPage:after{\r\n content: '';\r\n position: absolute;\r\n bottom: 4px;\r\n width: 32px;\r\n border-radius: 4px;\r\n height: 4px;\r\n background-color: ${props => COLORS.generateToken({componentType: 'border', defaultVariant: 'selected'}, props.theme)}\r\n }\r\n &.currentPage:hover:after{\r\n background-color: ${props => COLORS.generateToken({componentType: 'border', defaultVariant: 'selected'}, props.theme)}\r\n }\r\n &.currentPage:active:after{\r\n background-color: ${props => COLORS.generateToken({componentType: 'border', defaultVariant: 'selected'}, props.theme)}\r\n }\r\n`\r\n\r\nexport interface PaginatorProps {\r\n /**\r\n * Required. The total number of pages.\r\n */\r\n pageCount: number;\r\n\r\n /**\r\n * Required. The current active page.\r\n */\r\n currentPage: number;\r\n\r\n /**\r\n * Optional. A callback function that will be called when the page changes.\r\n * It receives the new page number as its argument.\r\n * If the function returns false, the page change will be prevented.\r\n */\r\n onPageChange?: (page: number) => boolean | void;\r\n};\r\n\r\nconst Step = ({\r\n up = true,\r\n disabled = false,\r\n page,\r\n onPageChange,\r\n id,\r\n}: {\r\n up: boolean;\r\n disabled: boolean;\r\n page: number;\r\n onPageChange?: (page: number) => void | boolean;\r\n id?: string;\r\n}) => {\r\n \r\n const handleButtonClick = () => {\r\n onPageChange && onPageChange(page);\r\n }\r\n\r\n return (\r\n <IconButton id={id}\r\n action={event => handleButtonClick()}\r\n variant={'secondary'}\r\n shape={'circular'}\r\n disabled={disabled}>\r\n {up ? <SystemIcons.ChevronRight aria-label=\"Next Page\" /> : <SystemIcons.ChevronLeft aria-label=\"Previous Page\"/>}\r\n </IconButton>\r\n )\r\n};\r\n\r\nconst Paginator = ({ pageCount = 1, currentPage = 1, onPageChange }: PaginatorProps) => {\r\n const pages = [];\r\n let from = 2;\r\n let to = 4;\r\n if (pageCount === 0) return null;\r\n\r\n if (pageCount > 1) {\r\n if (currentPage >= 4 && currentPage <= pageCount - 2) {\r\n from = currentPage - 1;\r\n to = currentPage + 1;\r\n } else if (pageCount - 2 > 1 && currentPage > pageCount - 2) {\r\n from = pageCount - 3;\r\n to = pageCount - 1;\r\n }\r\n if (to > pageCount) {\r\n to = pageCount;\r\n }\r\n for (let i = from; i <= to; i += 1) {\r\n pages.push(i);\r\n }\r\n }\r\n\r\n return (\r\n <Container aria-label=\"Pagination\">\r\n <Items>\r\n <Step up={false}\r\n page={currentPage - 1}\r\n disabled={currentPage === 1}\r\n onPageChange={onPageChange}\r\n id=\"paginator-left\"/>\r\n {pages.findIndex(item => item === 1) === -1 && (\r\n <Item aria-current={currentPage === 1}>\r\n <HyperLink\r\n target='_self'\r\n onClick={(e) => {\r\n onPageChange && onPageChange(1);\r\n e.preventDefault();\r\n } } variant={'styleless'} href={''}>\r\n <ItemContent className={currentPage === 1 ? 'currentPage' : ''}>\r\n <span>1</span>\r\n </ItemContent>\r\n </HyperLink>\r\n </Item>\r\n )}\r\n {currentPage >= 4 && pageCount > 5 && pageCount && pages.findIndex(item => item === 1) === -1 && (\r\n <Dots/>\r\n )}\r\n {pages.map(page => (\r\n <Item key={page} aria-current={currentPage === page}>\r\n <HyperLink\r\n target='_self'\r\n href={''}\r\n onClick={(e) => {\r\n onPageChange && onPageChange(page);\r\n e.preventDefault();\r\n } } variant={'styleless'}>\r\n <ItemContent className={currentPage === page ? 'currentPage' : ''}>\r\n <span>{page}</span>\r\n </ItemContent>\r\n </HyperLink>\r\n </Item>\r\n ))}\r\n {pageCount > 5 && currentPage <= pageCount - 3 && (\r\n <Dots/>\r\n )}\r\n {pages.findIndex(item => item === pageCount) === -1 && pageCount !== 1 && (\r\n <Item aria-current={currentPage === pageCount}>\r\n <HyperLink\r\n target='_self'\r\n href={''}\r\n variant='styleless'\r\n onClick={(e) => {\r\n onPageChange && onPageChange(pageCount);\r\n e.preventDefault();\r\n }}>\r\n <ItemContent className={currentPage === pageCount ? 'currentPage' : ''}>\r\n <span>{pageCount}</span>\r\n </ItemContent>\r\n </HyperLink>\r\n </Item>\r\n )}\r\n <Step up\r\n page={currentPage + 1}\r\n disabled={currentPage === pageCount}\r\n onPageChange={onPageChange}\r\n id=\"paginator-right\"/>\r\n </Items>\r\n </Container>\r\n );\r\n};\r\n\r\nexport default Paginator;\r\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laerdal/life-react-components",
3
- "version": "6.0.2",
3
+ "version": "6.0.4",
4
4
  "private": false,
5
5
  "author": "Erik Martirosyan <erik.martirosyan@laerdal.com>",
6
6
  "contributors": [],