@laerdal/life-react-components 1.0.1-dev.34.full → 1.0.1-dev.35.full

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.
Files changed (50) hide show
  1. package/dist/esm/Button/Button.js +2 -2
  2. package/dist/esm/Button/Button.js.map +1 -1
  3. package/dist/esm/Button/DualFunctionButton.js +5 -4
  4. package/dist/esm/Button/DualFunctionButton.js.map +1 -1
  5. package/dist/esm/Dropdown/BasicDropdown.js +2 -0
  6. package/dist/esm/Dropdown/BasicDropdown.js.map +1 -1
  7. package/dist/esm/Dropdown/ChipDropdownInput.js +6 -1
  8. package/dist/esm/Dropdown/ChipDropdownInput.js.map +1 -1
  9. package/dist/esm/Dropdown/CommonStyling.js +1 -1
  10. package/dist/esm/Dropdown/CommonStyling.js.map +1 -1
  11. package/dist/esm/Dropdown/DropdownButton.js +3 -0
  12. package/dist/esm/Dropdown/DropdownButton.js.map +1 -1
  13. package/dist/esm/Dropdown/DropdownContent.js +23 -8
  14. package/dist/esm/Dropdown/DropdownContent.js.map +1 -1
  15. package/dist/esm/Dropdown/DropdownFilter.js +3 -0
  16. package/dist/esm/Dropdown/DropdownFilter.js.map +1 -1
  17. package/dist/js/Button/Button.js +2 -2
  18. package/dist/js/Button/Button.js.map +1 -1
  19. package/dist/js/Button/DualFunctionButton.js +14 -4
  20. package/dist/js/Button/DualFunctionButton.js.map +1 -1
  21. package/dist/js/Dropdown/BasicDropdown.js +2 -0
  22. package/dist/js/Dropdown/BasicDropdown.js.map +1 -1
  23. package/dist/js/Dropdown/ChipDropdownInput.js +10 -1
  24. package/dist/js/Dropdown/ChipDropdownInput.js.map +1 -1
  25. package/dist/js/Dropdown/CommonStyling.js +1 -1
  26. package/dist/js/Dropdown/CommonStyling.js.map +1 -1
  27. package/dist/js/Dropdown/DropdownButton.js +7 -0
  28. package/dist/js/Dropdown/DropdownButton.js.map +1 -1
  29. package/dist/js/Dropdown/DropdownContent.d.ts +2 -0
  30. package/dist/js/Dropdown/DropdownContent.js +34 -20
  31. package/dist/js/Dropdown/DropdownContent.js.map +1 -1
  32. package/dist/js/Dropdown/DropdownFilter.js +7 -0
  33. package/dist/js/Dropdown/DropdownFilter.js.map +1 -1
  34. package/dist/umd/Button/Button.js +2 -2
  35. package/dist/umd/Button/Button.js.map +1 -1
  36. package/dist/umd/Button/DualFunctionButton.js +5 -4
  37. package/dist/umd/Button/DualFunctionButton.js.map +1 -1
  38. package/dist/umd/Dropdown/BasicDropdown.js +2 -0
  39. package/dist/umd/Dropdown/BasicDropdown.js.map +1 -1
  40. package/dist/umd/Dropdown/ChipDropdownInput.js +6 -1
  41. package/dist/umd/Dropdown/ChipDropdownInput.js.map +1 -1
  42. package/dist/umd/Dropdown/CommonStyling.js +1 -1
  43. package/dist/umd/Dropdown/CommonStyling.js.map +1 -1
  44. package/dist/umd/Dropdown/DropdownButton.js +3 -0
  45. package/dist/umd/Dropdown/DropdownButton.js.map +1 -1
  46. package/dist/umd/Dropdown/DropdownContent.js +23 -9
  47. package/dist/umd/Dropdown/DropdownContent.js.map +1 -1
  48. package/dist/umd/Dropdown/DropdownFilter.js +3 -0
  49. package/dist/umd/Dropdown/DropdownFilter.js.map +1 -1
  50. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Dropdown/CommonStyling.tsx"],"names":["Dropdown","styled","div","props","isButton","locked","disabled","margin","COLORS","primary_600","primary_800","lockedState","css","neutral_100","neutral_300","neutral_600","disabledState","white","activeValidationMessage","warning_400","placeholderStyling","ComponentTextStyle","Italic","InputField","input","Regular","black","BREAKPOINTS","MEDIUM","StyledField","primary_200","primary_300","Bold","neutral_800","neutral_20","showValidationMessage","isPlaceholder","CommonInteractionStyling","ButtonDropdownContentStyling","DropdownContentStyling","neutral_200","neutral_400","DropdownButton","button","size","Size","Small","Medium","Large","primary_500","primary_20","primary_100","ButtonDropdownWrapper","primary_700"],"mappings":"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","sourcesContent":["import styled, {css} from 'styled-components';\nimport {CommonInteractionStyling} from '../common';\nimport {BREAKPOINTS, COLORS, ComponentTextStyle} from '../styles';\nimport {ComponentMStyling, ComponentLStyling, ComponentSStyling, ComponentXSStyling, ComponentXXSStyling} from '../styles/typography';\nimport { Size } from '../types';\n\nexport const Dropdown = styled.div<{ isButton: boolean; locked?: boolean; disabled?: boolean; margin?: string }>`\n position: relative;\n display: inline-block;\n ${(props) => !props.isButton && 'width: 100%; min-width: 344px;'}\n ${(props) => (props.locked || props.disabled ? 'cursor: not-allowed;' : '')}\n ${(props) => (props.margin ? `margin: ${props.margin};` : '')}\n\n .show {\n display: block;\n }\n\n .value {\n flex-grow: 1;\n }\n\n input:hover + div {\n color: ${COLORS.primary_600};\n }\n\n input:active + div {\n color: ${COLORS.primary_800};\n }\n`;\n\nconst lockedState = css`\n background-color: ${COLORS.neutral_100};\n box-shadow: inset 0px 0px 0px 1px ${COLORS.neutral_300};\n color: ${COLORS.neutral_600};\n pointer-events: none;\n cursor: not-allowed;\n input {\n color: ${COLORS.neutral_600} !important;\n }\n`;\n\nconst disabledState = css`\n background-color: ${COLORS.white};\n box-shadow: inset 0px 0px 0px 1px ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n pointer-events: none;\n cursor: not-allowed;\n svg {\n color: ${COLORS.neutral_300} !important;\n }\n input {\n color: ${COLORS.neutral_300} !important;\n ::placeholder {\n color: ${COLORS.neutral_300} !important;\n }\n }\n`;\n\nconst activeValidationMessage = css`\n -webkit-box-shadow: inset 0px 0px 0px 2px ${COLORS.warning_400};\n -moz-box-shadow: inset 0px 0px 0px 2px ${COLORS.warning_400};\n box-shadow: inset 0px 0px 0px 2px ${COLORS.warning_400};\n`;\n\nconst placeholderStyling = css`\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n`;\n\nexport const InputField = styled.input`\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}\n border: none;\n outline: none;\n background-color: inherit;\n cursor: pointer;\n color: ${COLORS.black} !important;\n padding: 0;\n ::-webkit-search-decoration,\n ::-webkit-search-cancel-button,\n ::-webkit-search-results-button,\n ::-webkit-search-results-decoration {\n -webkit-appearance: none;\n }\n ::placeholder {\n ${ComponentSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n\n ${BREAKPOINTS.MEDIUM} {\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n &.small {\n ${ComponentSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n &.medium {\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n`;\n\nexport const StyledField = styled.div<{ disabled: boolean; locked: boolean; showValidationMessage?: boolean; isPlaceholder?: boolean; fontSize?: string }>`\n ${ComponentSStyling(ComponentTextStyle.Regular, 'inherit')}\n\n padding: 12px 16px;\n height: 48px;\n min-width: 344px;\n width: 100%;\n\n background: ${COLORS.white};\n box-shadow: inset 0px 0px 0px 1px ${COLORS.neutral_300};\n box-sizing: border-box;\n border-radius: 4px;\n cursor: pointer;\n\n display: flex;\n align-items: center;\n gap: 4px;\n \n input{\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n }\n\n &::placeholder {\n ${ComponentXXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n\n ${BREAKPOINTS.MEDIUM} {\n ${ComponentMStyling(ComponentTextStyle.Regular, 'inherit')}\n padding: 16px;\n height: 56px;\n &::placeholder {\n ${ComponentXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n\n &.small {\n ${ComponentXSStyling(ComponentTextStyle.Regular, 'inherit')}\n padding: 12px 16px;\n height: 48px;\n &::placeholder {\n ${ComponentXXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n &.medium {\n ${ComponentMStyling(ComponentTextStyle.Regular, 'inherit')}\n height: 56px;\n padding: 16px;\n &::placeholder {\n ${ComponentXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n\n &:focus {\n outline: 3px solid #ddd;\n }\n &:focus-within {\n -webkit-box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_800};\n -moz-box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_800};\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_800};\n }\n &:hover {\n box-shadow: inset 0px 0px 0px 1px ${COLORS.primary_200};\n input {\n ::placeholder {\n color: ${COLORS.primary_600};\n }\n }\n cursor: pointer;\n }\n &:active {\n box-shadow: inset 0px 0px 0px 1px ${COLORS.primary_300};\n input {\n ::placeholder {\n color: ${COLORS.primary_800};\n }\n }\n }\n\n &.button {\n ${(props) => ComponentSStyling(ComponentTextStyle.Bold, props.disabled ? COLORS.neutral_300 : COLORS.neutral_600)}\n\n box-sizing: border-box;\n height: 32px;\n padding: 0 8px;\n width: initial;\n min-width: initial;\n border: none !important;\n box-shadow: none;\n border-radius: 4px;\n\n &.expanded {\n color: ${COLORS.neutral_800};\n background: ${COLORS.neutral_20};\n }\n }\n\n ${(props) => (props.disabled ? disabledState : '')}\n ${(props) => (props.locked ? lockedState : '')}\n ${(props) => (props.showValidationMessage ? activeValidationMessage : '')}\n ${(props) => (props.isPlaceholder ? placeholderStyling : '')}\n\n ${CommonInteractionStyling};\n`;\n\nexport const ButtonDropdownContentStyling = css`\n min-width: 344px;\n right: 0;\n`;\n\nexport const DropdownContentStyling = styled.div<{ isButton: boolean }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n width: 100%;\n z-index: 1;\n margin-top: ${(props) => (props.isButton ? '-4px' : '2px')};\n\n &.show {\n display: block;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ${(props) => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n padding: 4px 0;\n\n max-height: 240px;\n overflow-y: auto;\n\n /* width */\n ::-webkit-scrollbar {\n width: 4px;\n cursor: pointer;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: ${COLORS.white};\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: ${COLORS.neutral_200};\n border-radius: 8px;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n background: ${COLORS.neutral_400};\n }\n`;\n\nexport const DropdownButton = styled.button<{ size?: Size }>`\n\n ${props => props.size == Size.Small && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n ${props => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n ${props => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n\n position: relative;\n text-decoration: none;\n display: flex;\n flex-direction: row;\n align-items: center;\n min-height: ${props => props.size == Size.Large ? '64px' : props.size == Size.Medium ? '56px' : '48px'};\n background-color: ${COLORS.white};\n border: none;\n cursor: pointer;\n background: transparent;\n width: 100%;\n text-align: left;\n\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n span {\n margin: auto 0 auto 16px;\n line-height: 48px;\n }\n\n div.item-content {\n margin: auto 0 auto 16px;\n display: flex;\n align-items: center;\n\n div.item-label {\n flex: 1 0 calc(100% - 40px);\n }\n\n div.item-icon {\n margin-right: 6px;\n }\n div.item-icon-old {\n flex: 1 0 40px;\n display: flex;\n justify-content: flex-end;\n }\n }\n\n ${CommonInteractionStyling};\n\n &.active {\n background: ${COLORS.neutral_20};\n\n &::after {\n position: absolute;\n content: ' ';\n width: 4px;\n top: 0;\n bottom: 0;\n left: 2px;\n background-color: ${COLORS.primary_500};\n\n border-radius: 2px;\n }\n }\n\n &.active:hover {\n background-color: ${COLORS.primary_20};\n\n svg {\n color: ${COLORS.primary_600};\n }\n\n &::after {\n background-color: ${COLORS.primary_500};\n }\n }\n\n &.active:active {\n background-color: ${COLORS.primary_100};\n\n svg {\n color: ${COLORS.primary_800};\n }\n\n &::after {\n background-color: ${COLORS.primary_500};\n }\n }\n`;\n\nexport const ButtonDropdownWrapper = styled.div<{ locked?: boolean; disabled?: boolean }>`\n box-sizing: border-box;\n min-height: 48px;\n display: flex;\n align-items: center;\n width: fit-content;\n\n .button {\n min-width: 64px;\n }\n\n .value {\n flex-grow: 1;\n display: flex;\n justify-content: center;\n }\n\n .dropdown-arrow {\n width: 24px;\n height: 24px;\n }\n\n ${(props) => (props.locked || props.disabled ? 'cursor: not-allowed;' : 'cursor: pointer;')}\n ${(props) => (props.disabled ? 'pointer-events: none;' : '')}\n \n &:hover .button,\n & > .button:hover {\n background-color: ${COLORS.primary_20};\n color: ${COLORS.primary_700};\n }\n\n &:focus .button,\n & > .button:focus {\n box-shadow: 0 4px 12px rgba(46, 127, 161, 0.25), 0 0 8px #2e7fa1;\n outline: none;\n }\n\n &:active .button,\n & > .button:active {\n box-shadow: none;\n background-color: ${COLORS.primary_100};\n color: ${COLORS.primary_800};\n }\n\n}`;\n"],"file":"CommonStyling.js"}
1
+ {"version":3,"sources":["../../../src/Dropdown/CommonStyling.tsx"],"names":["Dropdown","styled","div","props","isButton","locked","disabled","margin","COLORS","primary_600","primary_800","lockedState","css","neutral_100","neutral_300","neutral_600","disabledState","white","activeValidationMessage","warning_400","placeholderStyling","ComponentTextStyle","Italic","InputField","input","Regular","black","BREAKPOINTS","MEDIUM","StyledField","primary_200","primary_300","Bold","neutral_800","neutral_20","showValidationMessage","isPlaceholder","CommonInteractionStyling","ButtonDropdownContentStyling","DropdownContentStyling","neutral_200","neutral_400","DropdownButton","button","size","Size","Small","Medium","Large","primary_500","primary_20","primary_100","ButtonDropdownWrapper","primary_700"],"mappings":"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","sourcesContent":["import styled, {css} from 'styled-components';\nimport {CommonInteractionStyling} from '../common';\nimport {BREAKPOINTS, COLORS, ComponentTextStyle} from '../styles';\nimport {ComponentMStyling, ComponentLStyling, ComponentSStyling, ComponentXSStyling, ComponentXXSStyling} from '../styles/typography';\nimport { Size } from '../types';\n\nexport const Dropdown = styled.div<{ isButton: boolean; locked?: boolean; disabled?: boolean; margin?: string }>`\n position: relative;\n display: inline-block;\n ${(props) => !props.isButton && 'width: 100%; min-width: 344px;'}\n ${(props) => (props.locked || props.disabled ? 'cursor: not-allowed;' : '')}\n ${(props) => (props.margin ? `margin: ${props.margin};` : '')}\n\n .show {\n display: block;\n }\n\n .value {\n flex-grow: 1;\n }\n\n input:hover + div {\n color: ${COLORS.primary_600};\n }\n\n input:active + div {\n color: ${COLORS.primary_800};\n }\n`;\n\nconst lockedState = css`\n background-color: ${COLORS.neutral_100};\n box-shadow: inset 0px 0px 0px 1px ${COLORS.neutral_300};\n color: ${COLORS.neutral_600};\n pointer-events: none;\n cursor: not-allowed;\n input {\n color: ${COLORS.neutral_600} !important;\n }\n`;\n\nconst disabledState = css`\n background-color: ${COLORS.white};\n box-shadow: inset 0px 0px 0px 1px ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n pointer-events: none;\n cursor: not-allowed;\n svg {\n color: ${COLORS.neutral_300} !important;\n }\n input {\n color: ${COLORS.neutral_300} !important;\n ::placeholder {\n color: ${COLORS.neutral_300} !important;\n }\n }\n`;\n\nconst activeValidationMessage = css`\n -webkit-box-shadow: inset 0px 0px 0px 2px ${COLORS.warning_400};\n -moz-box-shadow: inset 0px 0px 0px 2px ${COLORS.warning_400};\n box-shadow: inset 0px 0px 0px 2px ${COLORS.warning_400};\n`;\n\nconst placeholderStyling = css`\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n`;\n\nexport const InputField = styled.input`\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}\n border: none;\n outline: none;\n background-color: inherit;\n cursor: pointer;\n color: ${COLORS.black} !important;\n padding: 0;\n ::-webkit-search-decoration,\n ::-webkit-search-cancel-button,\n ::-webkit-search-results-button,\n ::-webkit-search-results-decoration {\n -webkit-appearance: none;\n }\n ::placeholder {\n ${ComponentSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n\n ${BREAKPOINTS.MEDIUM} {\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n &.small {\n ${ComponentSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n &.medium {\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n`;\n\nexport const StyledField = styled.div<{ disabled: boolean; locked: boolean; showValidationMessage?: boolean; isPlaceholder?: boolean; fontSize?: string }>`\n ${ComponentSStyling(ComponentTextStyle.Regular, 'inherit')}\n\n padding: 12px 16px;\n height: 48px;\n min-width: 344px;\n width: 100%;\n\n background: ${COLORS.white};\n box-shadow: inset 0px 0px 0px 1px ${COLORS.neutral_300};\n box-sizing: border-box;\n border-radius: 4px;\n cursor: pointer;\n\n display: flex;\n align-items: center;\n gap: 4px;\n \n input{\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n }\n\n &::placeholder {\n ${ComponentXXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n\n ${BREAKPOINTS.MEDIUM} {\n ${ComponentMStyling(ComponentTextStyle.Regular, 'inherit')}\n padding: 16px;\n height: 56px;\n &::placeholder {\n ${ComponentXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n\n &.small {\n ${ComponentSStyling(ComponentTextStyle.Regular, 'inherit')}\n padding: 12px 16px;\n height: 48px;\n &::placeholder {\n ${ComponentXXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n &.medium {\n ${ComponentMStyling(ComponentTextStyle.Regular, 'inherit')}\n height: 56px;\n padding: 16px;\n &::placeholder {\n ${ComponentXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n\n &:focus {\n outline: 3px solid #ddd;\n }\n &:focus-within {\n -webkit-box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_800};\n -moz-box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_800};\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_800};\n }\n &:hover {\n box-shadow: inset 0px 0px 0px 1px ${COLORS.primary_200};\n input {\n ::placeholder {\n color: ${COLORS.primary_600};\n }\n }\n cursor: pointer;\n }\n &:active {\n box-shadow: inset 0px 0px 0px 1px ${COLORS.primary_300};\n input {\n ::placeholder {\n color: ${COLORS.primary_800};\n }\n }\n }\n\n &.button {\n ${(props) => ComponentSStyling(ComponentTextStyle.Bold, props.disabled ? COLORS.neutral_300 : COLORS.neutral_600)}\n\n box-sizing: border-box;\n height: 32px;\n padding: 0 8px;\n width: initial;\n min-width: initial;\n border: none !important;\n box-shadow: none;\n border-radius: 4px;\n\n &.expanded {\n color: ${COLORS.neutral_800};\n background: ${COLORS.neutral_20};\n }\n }\n\n ${(props) => (props.disabled ? disabledState : '')}\n ${(props) => (props.locked ? lockedState : '')}\n ${(props) => (props.showValidationMessage ? activeValidationMessage : '')}\n ${(props) => (props.isPlaceholder ? placeholderStyling : '')}\n\n ${CommonInteractionStyling};\n`;\n\nexport const ButtonDropdownContentStyling = css`\n min-width: 344px;\n right: 0;\n`;\n\nexport const DropdownContentStyling = styled.div<{ isButton: boolean }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n width: 100%;\n z-index: 1;\n margin-top: ${(props) => (props.isButton ? '-4px' : '2px')};\n\n &.show {\n display: block;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ${(props) => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n padding: 4px 0;\n\n max-height: 240px;\n overflow-y: auto;\n\n /* width */\n ::-webkit-scrollbar {\n width: 4px;\n cursor: pointer;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: ${COLORS.white};\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: ${COLORS.neutral_200};\n border-radius: 8px;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n background: ${COLORS.neutral_400};\n }\n`;\n\nexport const DropdownButton = styled.button<{ size?: Size }>`\n\n ${props => props.size == Size.Small && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n ${props => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n ${props => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n\n position: relative;\n text-decoration: none;\n display: flex;\n flex-direction: row;\n align-items: center;\n min-height: ${props => props.size == Size.Large ? '64px' : props.size == Size.Medium ? '56px' : '48px'};\n background-color: ${COLORS.white};\n border: none;\n cursor: pointer;\n background: transparent;\n width: 100%;\n text-align: left;\n\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n span {\n margin: auto 0 auto 16px;\n line-height: 48px;\n }\n\n div.item-content {\n margin: auto 0 auto 16px;\n display: flex;\n align-items: center;\n\n div.item-label {\n flex: 1 0 calc(100% - 40px);\n }\n\n div.item-icon {\n margin-right: 6px;\n }\n div.item-icon-old {\n flex: 1 0 40px;\n display: flex;\n justify-content: flex-end;\n }\n }\n\n ${CommonInteractionStyling};\n\n &.active {\n background: ${COLORS.neutral_20};\n\n &::after {\n position: absolute;\n content: ' ';\n width: 4px;\n top: 0;\n bottom: 0;\n left: 2px;\n background-color: ${COLORS.primary_500};\n\n border-radius: 2px;\n }\n }\n\n &.active:hover {\n background-color: ${COLORS.primary_20};\n\n svg {\n color: ${COLORS.primary_600};\n }\n\n &::after {\n background-color: ${COLORS.primary_500};\n }\n }\n\n &.active:active {\n background-color: ${COLORS.primary_100};\n\n svg {\n color: ${COLORS.primary_800};\n }\n\n &::after {\n background-color: ${COLORS.primary_500};\n }\n }\n`;\n\nexport const ButtonDropdownWrapper = styled.div<{ locked?: boolean; disabled?: boolean }>`\n box-sizing: border-box;\n min-height: 48px;\n display: flex;\n align-items: center;\n width: fit-content;\n\n .button {\n min-width: 64px;\n }\n\n .value {\n flex-grow: 1;\n display: flex;\n justify-content: center;\n }\n\n .dropdown-arrow {\n width: 24px;\n height: 24px;\n }\n\n ${(props) => (props.locked || props.disabled ? 'cursor: not-allowed;' : 'cursor: pointer;')}\n ${(props) => (props.disabled ? 'pointer-events: none;' : '')}\n \n &:hover .button,\n & > .button:hover {\n background-color: ${COLORS.primary_20};\n color: ${COLORS.primary_700};\n }\n\n &:focus .button,\n & > .button:focus {\n box-shadow: 0 4px 12px rgba(46, 127, 161, 0.25), 0 0 8px #2e7fa1;\n outline: none;\n }\n\n &:active .button,\n & > .button:active {\n box-shadow: none;\n background-color: ${COLORS.primary_100};\n color: ${COLORS.primary_800};\n }\n\n}`;\n"],"file":"CommonStyling.js"}
@@ -71,6 +71,11 @@ var DropdownButton = function DropdownButton(_ref) {
71
71
  selectedValues = _React$useState4[0],
72
72
  setSelectedValues = _React$useState4[1];
73
73
 
74
+ var _React$useState5 = React.useState(null),
75
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
76
+ focused = _React$useState6[0],
77
+ setFocused = _React$useState6[1];
78
+
74
79
  var handleValueSelect = function handleValueSelect(values) {
75
80
  // Do all required actions
76
81
  onClick(values);
@@ -104,6 +109,8 @@ var DropdownButton = function DropdownButton(_ref) {
104
109
  maxHeight: maxHeight,
105
110
  items: items
106
111
  },
112
+ focused: focused,
113
+ setFocused: setFocused,
107
114
  size: size,
108
115
  width: width,
109
116
  alignLeft: alignLeft,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Dropdown/DropdownButton.tsx"],"names":["Wrapper","styled","div","DropdownButton","items","icon","disabled","onClick","itemsType","action","actionLabel","width","size","alignLeft","multiSelect","scrollable","pinTopItem","maxHeight","React","useState","dropdownOpen","setDropdownOpen","selectedValues","setSelectedValues","handleValueSelect","values","renderIconButton","onValueUpdate"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport { IconButton } from '../Button';\nimport DropdownContent from './DropdownContent';\nimport styled from 'styled-components';\n\n/**\n * Import custom types.\n */\nimport { DropdownButtonProps } from './DropdownButtonTypes';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nconst DropdownButton = ({ \n items, \n icon, \n disabled,\n onClick,\n itemsType = 'normal',\n action,\n actionLabel = '',\n width,\n size,\n alignLeft,\n multiSelect = false,\n scrollable = false,\n pinTopItem = false,\n maxHeight }: DropdownButtonProps) => {\n // Globally used variables within the view.\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n\n const handleValueSelect = (values: string[]) => {\n // Do all required actions\n onClick(values);\n };\n\n /**\n * Renders Icon Button dropdown menu.\n * @returns HTML View for the Icon button dropdown menu.\n */\n const renderIconButton = () => {\n return (\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => setDropdownOpen(!dropdownOpen)} disabled={disabled}>\n {icon}\n </IconButton>\n );\n };\n\n return (\n <Wrapper>\n {renderIconButton()}\n <DropdownContent\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {}),\n actionLabel: actionLabel,\n onValueUpdate: handleValueSelect,\n multiSelect: multiSelect,\n scrollable: scrollable,\n pinTopItem: pinTopItem,\n maxHeight: maxHeight,\n items: items\n }}\n size={size}\n width={width}\n alignLeft={alignLeft}\n isOpen={dropdownOpen}\n setIsOpen={setDropdownOpen}\n hideOnClickOutside={true}\n filter=''\n selectedValues={itemsType == 'normal' ? [] : selectedValues}\n setSelectedValues={setSelectedValues}\n messageOnNoResults='No results'\n isButton={true}\n id='dropdown-content'\n />\n </Wrapper>\n );\n};\n\nexport default DropdownButton;\n"],"file":"DropdownButton.js"}
1
+ {"version":3,"sources":["../../../src/Dropdown/DropdownButton.tsx"],"names":["Wrapper","styled","div","DropdownButton","items","icon","disabled","onClick","itemsType","action","actionLabel","width","size","alignLeft","multiSelect","scrollable","pinTopItem","maxHeight","React","useState","dropdownOpen","setDropdownOpen","selectedValues","setSelectedValues","focused","setFocused","handleValueSelect","values","renderIconButton","onValueUpdate"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport { IconButton } from '../Button';\nimport DropdownContent from './DropdownContent';\nimport styled from 'styled-components';\n\n/**\n * Import custom types.\n */\nimport { DropdownButtonProps } from './DropdownButtonTypes';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nconst DropdownButton = ({ \n items, \n icon, \n disabled,\n onClick,\n itemsType = 'normal',\n action,\n actionLabel = '',\n width,\n size,\n alignLeft,\n multiSelect = false,\n scrollable = false,\n pinTopItem = false,\n maxHeight }: DropdownButtonProps) => {\n // Globally used variables within the view.\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const handleValueSelect = (values: string[]) => {\n // Do all required actions\n onClick(values);\n };\n\n /**\n * Renders Icon Button dropdown menu.\n * @returns HTML View for the Icon button dropdown menu.\n */\n const renderIconButton = () => {\n return (\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => setDropdownOpen(!dropdownOpen)} disabled={disabled}>\n {icon}\n </IconButton>\n );\n };\n\n return (\n <Wrapper>\n {renderIconButton()}\n <DropdownContent\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {}),\n actionLabel: actionLabel,\n onValueUpdate: handleValueSelect,\n multiSelect: multiSelect,\n scrollable: scrollable,\n pinTopItem: pinTopItem,\n maxHeight: maxHeight,\n items: items\n }}\n focused={focused}\n setFocused={setFocused}\n size={size}\n width={width}\n alignLeft={alignLeft}\n isOpen={dropdownOpen}\n setIsOpen={setDropdownOpen}\n hideOnClickOutside={true}\n filter=''\n selectedValues={itemsType == 'normal' ? [] : selectedValues}\n setSelectedValues={setSelectedValues}\n messageOnNoResults='No results'\n isButton={true}\n id='dropdown-content'\n />\n </Wrapper>\n );\n};\n\nexport default DropdownButton;\n"],"file":"DropdownButton.js"}
@@ -42,6 +42,8 @@ export interface DropdownProps {
42
42
  selectedValues: string[];
43
43
  setSelectedValues: (val: string[]) => void;
44
44
  messageOnNoResults: string;
45
+ focused: number | null;
46
+ setFocused: (focused: number | null) => void;
45
47
  }
46
48
  declare const DropdownContent: React.FunctionComponent<DropdownProps>;
47
49
  export default DropdownContent;
@@ -53,7 +53,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
53
53
 
54
54
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
55
55
 
56
- var DDContainer = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: none;\n position: absolute;\n background-color: ", ";\n \n width: ", ";\n z-index: 1;\n margin: ", ";\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ", "\n\n ", ";\n\n border: 1px solid ", ";\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding-top: 4px;\n padding-right: 10px;\n padding-bottom: 4px;\n padding-left: 0px;\n\n min-width: ", ";\n border-radius: ", ";\n\n max-height: ", ";\n"])), _styles.COLORS.white, function (props) {
56
+ var DDContainer = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: none;\n position: absolute;\n background-color: ", ";\n \n width: ", ";\n z-index: 1;\n margin: ", ";\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ", "\n\n ", ";\n\n border: 1px solid ", ";\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding-top: 4px;\n padding-right: 0px;\n padding-bottom: 4px;\n padding-left: 0px;\n\n min-width: ", ";\n border-radius: ", ";\n\n max-height: ", ";\n"])), _styles.COLORS.white, function (props) {
57
57
  return props.width ? props.width : '100%';
58
58
  }, function (props) {
59
59
  return props.isButton ? '-4px' : '4px 0px';
@@ -74,7 +74,7 @@ exports.DDContainer = DDContainer;
74
74
  var ListContainer = _styledComponents.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n ", "\n ", "\n\n div {\n padding-top: ", ";\n padding-bottom: ", ";\n }\n\n /* width */\n ::-webkit-scrollbar {\n width: 4px;\n margin: 0 6px;\n cursor: pointer;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: ", ";\n border-radius: 8px;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: ", ";\n border-radius: 8px;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n background: ", ";\n }\n"])), function (props) {
75
75
  return props.scrollable ? 'overflow-y: scroll;' : '';
76
76
  }, function (props) {
77
- return props.itemsType != 'normal' ? 'margin: 2px 6px 0 16px;' : '';
77
+ return props.itemsType != 'normal' ? 'margin-left: 4px;' : '';
78
78
  }, function (props) {
79
79
  return props.size == _types.Size.Large ? '8px' : props.size == _types.Size.Medium ? '4px' : '0px';
80
80
  }, function (props) {
@@ -83,7 +83,7 @@ var ListContainer = _styledComponents.default.div(_templateObject2 || (_template
83
83
 
84
84
  var ItemsContainer = _styledComponents.default.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n"])));
85
85
 
86
- var TopItemContainer = _styledComponents.default.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n border-bottom-style: solid;\n border-bottom-color: ", ";\n border-bottom-width: 1px;\n margin-right: 22px;\n padding-left: 4px;\n"])), _styles.COLORS.neutral_200);
86
+ var TopItemContainer = _styledComponents.default.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n border-bottom-style: solid;\n border-bottom-color: ", ";\n border-bottom-width: 1px;\n margin-right: 22px; \n"])), _styles.COLORS.neutral_200);
87
87
 
88
88
  var ActionButtonContainer = _styledComponents.default.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n border-top-style: solid;\n border-top-color: ", ";\n border-top-width: 1px;\n padding: 0px 16px 4px 16px;\n\n button {\n width: 100%;\n }\n"])), _styles.COLORS.neutral_200);
89
89
 
@@ -101,19 +101,16 @@ var DropdownContent = function DropdownContent(_ref) {
101
101
  width = _ref.width,
102
102
  setIsOpen = _ref.setIsOpen,
103
103
  filter = _ref.filter,
104
+ focused = _ref.focused,
105
+ setFocused = _ref.setFocused,
104
106
  selectedValues = _ref.selectedValues,
105
107
  setSelectedValues = _ref.setSelectedValues,
106
108
  messageOnNoResults = _ref.messageOnNoResults;
107
109
 
108
- var _React$useState = _react.default.useState(0),
110
+ var _React$useState = _react.default.useState(false),
109
111
  _React$useState2 = _slicedToArray(_React$useState, 2),
110
- focused = _React$useState2[0],
111
- setFocused = _React$useState2[1];
112
-
113
- var _React$useState3 = _react.default.useState(false),
114
- _React$useState4 = _slicedToArray(_React$useState3, 2),
115
- isUp = _React$useState4[0],
116
- setIsUp = _React$useState4[1];
112
+ isUp = _React$useState2[0],
113
+ setIsUp = _React$useState2[1];
117
114
 
118
115
  var dropdownContentRef = _react.default.useRef(null);
119
116
 
@@ -251,10 +248,10 @@ var DropdownContent = function DropdownContent(_ref) {
251
248
 
252
249
  var arrLength = getFilteredItems().length;
253
250
 
254
- var _React$useState5 = _react.default.useState([]),
255
- _React$useState6 = _slicedToArray(_React$useState5, 2),
256
- elRefs = _React$useState6[0],
257
- setElRefs = _React$useState6[1];
251
+ var _React$useState3 = _react.default.useState([]),
252
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
253
+ elRefs = _React$useState4[0],
254
+ setElRefs = _React$useState4[1];
258
255
 
259
256
  _react.default.useEffect(function () {
260
257
  setElRefs(function (elRefs) {
@@ -266,11 +263,28 @@ var DropdownContent = function DropdownContent(_ref) {
266
263
 
267
264
  _react.default.useEffect(function () {
268
265
  determineDropUp();
266
+ }, [isOpen]);
267
+
268
+ var haveTopItem = function haveTopItem() {
269
+ var _getSuggestions;
270
+
271
+ if (customizationProps.itemsType == 'radio' && selectedValues && (selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.length) > 0) return true;else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || (selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.length) > 0)) return true;else if (customizationProps.itemsType == 'normal' && ((_getSuggestions = getSuggestions()) === null || _getSuggestions === void 0 ? void 0 : _getSuggestions.length) > 0) return true;
272
+ return false;
273
+ };
269
274
 
275
+ var getSuggestions = function getSuggestions() {
276
+ return getFilteredItems().filter(function (x) {
277
+ return x.suggestion;
278
+ });
279
+ };
280
+
281
+ _react.default.useLayoutEffect(function () {
270
282
  if (isOpen && (focused || focused == 0)) {
271
283
  var _newFocusedElement$cu2;
272
284
 
273
- var newFocusedElement = elRefs[focused];
285
+ var focusThis = focused == 0 && !haveTopItem() ? 1 : focused;
286
+ if (focusThis != focused) setFocused(focusThis);
287
+ var newFocusedElement = elRefs[focusThis];
274
288
  console.log(newFocusedElement);
275
289
  newFocusedElement === null || newFocusedElement === void 0 ? void 0 : (_newFocusedElement$cu2 = newFocusedElement.current) === null || _newFocusedElement$cu2 === void 0 ? void 0 : _newFocusedElement$cu2.focus();
276
290
  }
@@ -285,9 +299,7 @@ var DropdownContent = function DropdownContent(_ref) {
285
299
  });
286
300
  }).length) == visibleItems.length;
287
301
  var showTopItem = false;
288
- var suggestions = getFilteredItems().filter(function (x) {
289
- return x.suggestion;
290
- });
302
+ var suggestions = getSuggestions();
291
303
  if (customizationProps.itemsType == 'radio' && selectedValues && (selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.length) > 0) showTopItem = true;else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || (selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.length) > 0)) showTopItem = true;else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;
292
304
  if (!showTopItem) return;
293
305
  return /*#__PURE__*/_react.default.createElement(TopItemContainer, null, customizationProps.itemsType == 'radio' && /*#__PURE__*/_react.default.createElement(_InputFields.RadioButton, {
@@ -487,7 +499,9 @@ DropdownContent.propTypes = {
487
499
  hideOnClickOutside: _propTypes.default.bool.isRequired,
488
500
  selectedValues: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
489
501
  setSelectedValues: _propTypes.default.func.isRequired,
490
- messageOnNoResults: _propTypes.default.string.isRequired
502
+ messageOnNoResults: _propTypes.default.string.isRequired,
503
+ focused: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.oneOf([null])]),
504
+ setFocused: _propTypes.default.func.isRequired
491
505
  };
492
506
  var _default = DropdownContent;
493
507
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Dropdown/DropdownContent.tsx"],"names":["DDContainer","styled","div","COLORS","white","props","width","isButton","alignLeft","ButtonDropdownContentStyling","neutral_100","size","Size","Large","Medium","scrollable","maxHeight","ListContainer","itemsType","neutral_600","neutral_500","ItemsContainer","TopItemContainer","neutral_200","ActionButtonContainer","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","DropdownContent","id","customizationProps","isOpen","hideOnClickOutside","setIsOpen","filter","selectedValues","setSelectedValues","messageOnNoResults","React","useState","focused","setFocused","isUp","setIsUp","dropdownContentRef","useRef","Small","itemsListRef","determineDropUp","options","items","node","current","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","getBoundingClientRect","top","setNewFocusedElement","index","newFocusedElement","elRefs","focus","handleKeyDown","e","keyCode","preventDefault","focusedNow","undefined","document","getElementById","handleClickOutside","contains","target","some","x","useEffect","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","getFilteredItems","filtrationString","toUpperCase","value","includes","displayLabel","getCorrectRef","ref","arrLength","setElRefs","Array","fill","map","_","i","console","log","getTopItem","pinTopItem","visibleItems","allSelected","y","showTopItem","suggestions","suggestion","multiSelect","selected","newValues","onValueUpdate","icon","noteLabel","fontSize","getElements","number","item","disabled","newValue","showDividerAbove","join","action","actionLabel"],"mappings":"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","sourcesContent":["import React, { useLayoutEffect, useMemo, createRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport { CommonInteractionStyling } from '../common';\nimport Button from '../Button/Button';\nimport { Size } from '../types';\nimport { ButtonDropdownContentStyling, DropdownButton } from './CommonStyling';\nimport { BREAKPOINTS, COLORS } from '../styles';\nimport { Checkbox, RadioButton } from '../InputFields';\n\nexport const DDContainer = styled.div<{ isButton: boolean; width?: string; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n \n width: ${props => props.width ? props.width : '100%'};\n z-index: 1;\n margin: ${props => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ${props => (props.alignLeft ? 'left: 0px;' : '')}\n\n ${props => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding-top: 4px;\n padding-right: 10px;\n padding-bottom: 4px;\n padding-left: 0px;\n\n min-width: ${props => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${props => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${props => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n`;\n\nconst ListContainer = styled.div<{ scrollable?: boolean, size? : Size, itemsType?: string }>`\n ${props => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${props => (props.itemsType != 'normal' ? 'margin: 2px 6px 0 16px;' : '')}\n\n div {\n padding-top: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n padding-bottom: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n }\n\n /* width */\n ::-webkit-scrollbar {\n width: 4px;\n margin: 0 6px;\n cursor: pointer;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: ${COLORS.neutral_100};\n border-radius: 8px;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: ${COLORS.neutral_600};\n border-radius: 8px;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n background: ${COLORS.neutral_500};\n }\n`;\n\nconst ItemsContainer = styled.div`\n`;\n\n\nconst TopItemContainer = styled.div`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px;\n padding-left: 4px;\n`;\n\nconst ActionButtonContainer = styled.div`\n border-top-style: solid;\n border-top-color: ${COLORS.neutral_200};\n border-top-width: 1px;\n padding: 0px 16px 4px 16px;\n\n button {\n width: 100%;\n }\n`;\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n icon?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n action: () => void;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => void;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n hideOnClickOutside: boolean;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n}\n\nconst DropdownContent: React.FunctionComponent<DropdownProps> = ({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n hideOnClickOutside,\n width,\n setIsOpen,\n filter,\n selectedValues,\n setSelectedValues,\n messageOnNoResults\n}) => {\n const [focused, setFocused] = React.useState<number | null>(0);\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n\n if(!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if(!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n const node = dropdownContentRef.current;\n\n if (!node) return;\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;\n setIsUp(instOffsetWithMenu >= windowHeight);\n };\n\n const setNewFocusedElement = (index: number) => {\n const newFocusedElement = elRefs[index];\n if (newFocusedElement) {\n setFocused(index);\n newFocusedElement?.current?.focus();\n }\n };\n \n const handleKeyDown = (e: any) => {\n if (isOpen) {\n if (e.keyCode === 38) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {\n focusedNow -= 1;\n setNewFocusedElement(focusedNow);\n }\n } else if (e.keyCode === 40) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n focusedNow++;\n } else {\n focusedNow = 0;\n }\n setNewFocusedElement(focusedNow);\n } else if (e.keyCode === 9) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n focusedNow++;\n const newFocusedElement = document.getElementById(`${id}_${focusedNow}`);\n if (!newFocusedElement) {\n setNewFocusedElement(0);\n } else {\n setNewFocusedElement(focusedNow);\n }\n } else {\n setNewFocusedElement(0);\n }\n } else if (e.keyCode === 27) {\n setIsOpen(false);\n setNewFocusedElement(0);\n\n //TODO: add onEscapehandler\n /*\n if (!list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n styledFieldRef.current?.focus(); */\n }\n }\n };\n\n const handleClickOutside = (e: any) => {\n if (hideOnClickOutside && dropdownContentRef?.current && !dropdownContentRef.current.contains(e.target) && !elRefs.some(x => x?.current?.contains(e.target))) {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n const scrollPosition = React.useRef<number | undefined>(0); \n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n }\n useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.\n filter(x => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch(customizationProps.itemsType)\n {\n case 'normal':\n return ref as React.RefObject<HTMLButtonElement> || createRef<HTMLButtonElement>();\n default:\n return ref as React.RefObject<HTMLDivElement> || createRef<HTMLDivElement>();\n }\n }\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n setElRefs(elRefs => \n Array(arrLength + 1).fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])));\n }, [isOpen, arrLength, selectedValues]);\n \n React.useEffect(() => {\n determineDropUp();\n if (isOpen && (focused || focused == 0)) {\n const newFocusedElement = elRefs[focused];\n console.log(newFocusedElement);\n newFocusedElement?.current?.focus();\n }\n }, [isOpen]);\n\n\n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter(x => visibleItems.some(y => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getFilteredItems().filter(x => x.suggestion);\n\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n \n return (\n <TopItemContainer>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n select={() => {}} size={size} id={`${id}_topitem`} label={selectedValues[0]} selected={true} />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map(x => x.value) : [];\n setSelectedValues(newValues);\n customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues);\n }}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : selectedValues[0]}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType == 'normal' && (\n <>\n {suggestions.map(x => \n <DropdownButton ref={elRefs[0] as React.RefObject<HTMLButtonElement>} type=\"button\" id={`${id}_topitem`}\n onClick={(e: any) => {\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }}>\n <div className=\"item-content\">\n {x?.icon && <div className=\"item-icon\">{x?.icon}</div>}\n <div className=\"item-label\">\n {x?.displayLabel ?? x?.value}\n {x?.noteLabel && <div style={{fontSize: '12px'}}>{x.noteLabel}</div>}\n </div>\n </div>\n </DropdownButton>)}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = () => {\n if (getFilteredItems().length === 0) {\n return (\n <ItemsContainer>\n <DropdownButton disabled>\n <span>{messageOnNoResults}</span>\n </DropdownButton>\n </ItemsContainer>\n );\n }\n let number = 0;\n return (\n <ItemsContainer>\n {getFilteredItems().filter(x => x && (customizationProps.itemsType != 'normal' || !x.suggestion)).map(item => {\n return (\n <>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected: boolean) => {\n if (!selected) return;\n customizationProps.onValueUpdate && customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n }}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected: boolean) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter(x => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n customizationProps.onValueUpdate(newValue);\n }}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled} \n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {(customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <DropdownButton\n type=\"button\"\n size={size}\n disabled={item?.disabled}\n ref={elRefs[number + 1] as React.RefObject<HTMLButtonElement>}\n onClick={(e: any) => {\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }}\n className={ (item.showDividerAbove ? 'show-divider-above' : '') + ' ' + (selectedValues?.includes(item.value) ? 'active' : '')}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}>\n {item.showDividerAbove && <div className=\"divider\"/>}\n <div className=\"item-content\">\n {item.icon && <div className=\"item-icon\">{item.icon}</div>}\n <div className=\"item-label\">\n {item.displayLabel ?? item.value}\n {item.noteLabel && <div style={{fontSize: '12px'}}>{item.noteLabel}</div>}\n </div>\n </div>\n </DropdownButton>\n )}\n </>\n );\n })}\n </ItemsContainer>\n );\n };\n\n return <DDContainer\n ref={dropdownContentRef}\n size={size}\n width={width}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={[isOpen && 'show', isUp && 'up'].filter(e => !!e).join(' ')}>\n <ListContainer size={size} itemsType={customizationProps.itemsType} onScroll={handleScroll} ref={itemsListRef} scrollable={customizationProps.scrollable}>\n {customizationProps.pinTopItem && getTopItem()}\n {getElements()}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer>\n <Button width=\"100%\" variant=\"primary\" size={size} onClick={() => customizationProps.action()}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>;\n /* ),\n {\n handleClickOutside: () => () => {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n },\n },\n );\n\n return <Wrapped />; */\n};\n\nexport default DropdownContent;\n"],"file":"DropdownContent.js"}
1
+ {"version":3,"sources":["../../../src/Dropdown/DropdownContent.tsx"],"names":["DDContainer","styled","div","COLORS","white","props","width","isButton","alignLeft","ButtonDropdownContentStyling","neutral_100","size","Size","Large","Medium","scrollable","maxHeight","ListContainer","itemsType","neutral_600","neutral_500","ItemsContainer","TopItemContainer","neutral_200","ActionButtonContainer","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","DropdownContent","id","customizationProps","isOpen","hideOnClickOutside","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","React","useState","isUp","setIsUp","dropdownContentRef","useRef","Small","itemsListRef","determineDropUp","options","items","node","current","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","getBoundingClientRect","top","setNewFocusedElement","index","newFocusedElement","elRefs","focus","handleKeyDown","e","keyCode","preventDefault","focusedNow","undefined","document","getElementById","handleClickOutside","contains","target","some","x","useEffect","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","getFilteredItems","filtrationString","toUpperCase","value","includes","displayLabel","getCorrectRef","ref","arrLength","setElRefs","Array","fill","map","_","i","haveTopItem","multiSelect","getSuggestions","suggestion","useLayoutEffect","focusThis","console","log","getTopItem","pinTopItem","visibleItems","allSelected","y","showTopItem","suggestions","selected","newValues","onValueUpdate","icon","noteLabel","fontSize","getElements","number","item","disabled","newValue","showDividerAbove","join","action","actionLabel"],"mappings":"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","sourcesContent":["import React, { useLayoutEffect, useMemo, createRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport { CommonInteractionStyling } from '../common';\nimport Button from '../Button/Button';\nimport { Size } from '../types';\nimport { ButtonDropdownContentStyling, DropdownButton } from './CommonStyling';\nimport { BREAKPOINTS, COLORS } from '../styles';\nimport { Checkbox, RadioButton } from '../InputFields';\n\nexport const DDContainer = styled.div<{ isButton: boolean; width?: string; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n \n width: ${props => props.width ? props.width : '100%'};\n z-index: 1;\n margin: ${props => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ${props => (props.alignLeft ? 'left: 0px;' : '')}\n\n ${props => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding-top: 4px;\n padding-right: 0px;\n padding-bottom: 4px;\n padding-left: 0px;\n\n min-width: ${props => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${props => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${props => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n`;\n\nconst ListContainer = styled.div<{ scrollable?: boolean, size? : Size, itemsType?: string }>`\n ${props => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${props => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\n\n div {\n padding-top: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n padding-bottom: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n }\n\n /* width */\n ::-webkit-scrollbar {\n width: 4px;\n margin: 0 6px;\n cursor: pointer;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: ${COLORS.neutral_100};\n border-radius: 8px;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: ${COLORS.neutral_600};\n border-radius: 8px;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n background: ${COLORS.neutral_500};\n }\n`;\n\nconst ItemsContainer = styled.div`\n`;\n\n\nconst TopItemContainer = styled.div`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px; \n`;\n\nconst ActionButtonContainer = styled.div`\n border-top-style: solid;\n border-top-color: ${COLORS.neutral_200};\n border-top-width: 1px;\n padding: 0px 16px 4px 16px;\n\n button {\n width: 100%;\n }\n`;\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n icon?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n action: () => void;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => void;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n hideOnClickOutside: boolean;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n}\n\nconst DropdownContent: React.FunctionComponent<DropdownProps> = ({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n hideOnClickOutside,\n width,\n setIsOpen,\n filter,\n focused, \n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults\n}) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n\n if(!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if(!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n const node = dropdownContentRef.current;\n\n if (!node) return;\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;\n setIsUp(instOffsetWithMenu >= windowHeight);\n };\n\n const setNewFocusedElement = (index: number) => {\n const newFocusedElement = elRefs[index];\n if (newFocusedElement) {\n setFocused(index);\n newFocusedElement?.current?.focus();\n }\n };\n \n const handleKeyDown = (e: any) => {\n if (isOpen) {\n if (e.keyCode === 38) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {\n focusedNow -= 1;\n setNewFocusedElement(focusedNow);\n }\n } else if (e.keyCode === 40) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n focusedNow++;\n } else {\n focusedNow = 0;\n }\n setNewFocusedElement(focusedNow);\n } else if (e.keyCode === 9) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n focusedNow++;\n const newFocusedElement = document.getElementById(`${id}_${focusedNow}`);\n if (!newFocusedElement) {\n setNewFocusedElement(0);\n } else {\n setNewFocusedElement(focusedNow);\n }\n } else {\n setNewFocusedElement(0);\n }\n } else if (e.keyCode === 27) {\n setIsOpen(false);\n setNewFocusedElement(0);\n\n //TODO: add onEscapehandler\n /*\n if (!list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n styledFieldRef.current?.focus(); */\n }\n }\n };\n\n const handleClickOutside = (e: any) => {\n if (hideOnClickOutside && dropdownContentRef?.current && !dropdownContentRef.current.contains(e.target) && !elRefs.some(x => x?.current?.contains(e.target))) {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n const scrollPosition = React.useRef<number | undefined>(0); \n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n }\n useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.\n filter(x => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch(customizationProps.itemsType)\n {\n case 'normal':\n return ref as React.RefObject<HTMLButtonElement> || createRef<HTMLButtonElement>();\n default:\n return ref as React.RefObject<HTMLDivElement> || createRef<HTMLDivElement>();\n }\n }\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n setElRefs(elRefs => \n Array(arrLength + 1).fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])));\n }, [isOpen, arrLength, selectedValues]);\n \n React.useEffect(() => {\n determineDropUp();\n }, [isOpen]);\n\n\n const haveTopItem = () => {\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) return true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\n else if (customizationProps.itemsType == 'normal' && getSuggestions()?.length > 0) return true;\n return false;\n };\n \n const getSuggestions = () => {\n return getFilteredItems().filter(x => x.suggestion);\n }\n\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused == 0)) {\n const focusThis = focused == 0 && !haveTopItem() ? 1 : focused;\n if(focusThis != focused)\n setFocused(focusThis);\n const newFocusedElement = elRefs[focusThis];\n console.log(newFocusedElement);\n newFocusedElement?.current?.focus();\n }\n }, [isOpen]);\n\n \n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter(x => visibleItems.some(y => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getSuggestions();\n\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n \n return (\n <TopItemContainer>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n select={() => {}} size={size} id={`${id}_topitem`} label={selectedValues[0]} selected={true} />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map(x => x.value) : [];\n setSelectedValues(newValues);\n customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues);\n }}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : selectedValues[0]}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType == 'normal' && (\n <>\n {suggestions.map(x => \n <DropdownButton ref={elRefs[0] as React.RefObject<HTMLButtonElement>} type=\"button\" id={`${id}_topitem`}\n onClick={(e: any) => {\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }}>\n <div className=\"item-content\">\n {x?.icon && <div className=\"item-icon\">{x?.icon}</div>}\n <div className=\"item-label\">\n {x?.displayLabel ?? x?.value}\n {x?.noteLabel && <div style={{fontSize: '12px'}}>{x.noteLabel}</div>}\n </div>\n </div>\n </DropdownButton>)}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = () => {\n if (getFilteredItems().length === 0) {\n return (\n <ItemsContainer>\n <DropdownButton disabled>\n <span>{messageOnNoResults}</span>\n </DropdownButton>\n </ItemsContainer>\n );\n }\n let number = 0;\n return (\n <ItemsContainer>\n {getFilteredItems().filter(x => x && (customizationProps.itemsType != 'normal' || !x.suggestion)).map(item => {\n return (\n <>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected: boolean) => {\n if (!selected) return;\n customizationProps.onValueUpdate && customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n }}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected: boolean) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter(x => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n customizationProps.onValueUpdate(newValue);\n }}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled} \n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {(customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <DropdownButton\n type=\"button\"\n size={size}\n disabled={item?.disabled}\n ref={elRefs[number + 1] as React.RefObject<HTMLButtonElement>}\n onClick={(e: any) => {\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }}\n className={ (item.showDividerAbove ? 'show-divider-above' : '') + ' ' + (selectedValues?.includes(item.value) ? 'active' : '')}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}>\n {item.showDividerAbove && <div className=\"divider\"/>}\n <div className=\"item-content\">\n {item.icon && <div className=\"item-icon\">{item.icon}</div>}\n <div className=\"item-label\">\n {item.displayLabel ?? item.value}\n {item.noteLabel && <div style={{fontSize: '12px'}}>{item.noteLabel}</div>}\n </div>\n </div>\n </DropdownButton>\n )}\n </>\n );\n })}\n </ItemsContainer>\n );\n };\n\n return <DDContainer\n ref={dropdownContentRef}\n size={size}\n width={width}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={[isOpen && 'show', isUp && 'up'].filter(e => !!e).join(' ')}>\n <ListContainer size={size} itemsType={customizationProps.itemsType} onScroll={handleScroll} ref={itemsListRef} scrollable={customizationProps.scrollable}>\n {customizationProps.pinTopItem && getTopItem()}\n {getElements()}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer>\n <Button width=\"100%\" variant=\"primary\" size={size} onClick={() => customizationProps.action()}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>;\n /* ),\n {\n handleClickOutside: () => () => {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n },\n },\n );\n\n return <Wrapped />; */\n};\n\nexport default DropdownContent;\n"],"file":"DropdownContent.js"}
@@ -95,6 +95,11 @@ var DropdownFilter = function DropdownFilter(_ref) {
95
95
  selectedValues = _React$useState12[0],
96
96
  setSelectedValues = _React$useState12[1];
97
97
 
98
+ var _React$useState13 = React.useState(null),
99
+ _React$useState14 = _slicedToArray(_React$useState13, 2),
100
+ focused = _React$useState14[0],
101
+ setFocused = _React$useState14[1];
102
+
98
103
  var styledFieldRef = React.useRef(null);
99
104
  var inputRef = React.useRef(null);
100
105
 
@@ -268,6 +273,8 @@ var DropdownFilter = function DropdownFilter(_ref) {
268
273
  setSelectedValues: setSelectedValues,
269
274
  hideOnClickOutside: true,
270
275
  size: size == 'medium' ? _types.Size.Medium : _types.Size.Small,
276
+ focused: focused,
277
+ setFocused: setFocused,
271
278
  customizationProps: {
272
279
  itemsType: 'normal',
273
280
  multiSelect: false,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Dropdown/DropdownFilter.tsx"],"names":["DropdownFilter","id","list","placeholder","onSelect","onInputChange","initalValue","required","disableSorting","messageOnNoResults","disabled","locked","isButton","activeValidationMessage","autofilledMessage","size","buttonFontSize","keepInitialValue","icon","margin","React","useState","isOpen","setIsOpen","isLoading","setIsLoading","input","setInput","placeholderSearch","setPlaceholderSearch","restartFilter","setRestartFilter","selectedValues","setSelectedValues","styledFieldRef","useRef","inputRef","handleKeyPress","e","current","contains","target","keyCode","matches","filter","c","toLowerCase","length","useEffect","includes","document","addEventListener","removeEventListener","renderStandardDropdown","concat","stopPropagation","focus","Math","floor","random","value","COLORS","neutral_600","renderButtonDropdown","Size","Medium","Small","itemsType","multiSelect","action","onValueUpdate","values","val","items","map","x","warning_400"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport { BREAKPOINTS, COLORS } from '../styles';\nimport { ArrowDropDown, ArrowDropUp, Information, TechnicalWarning } from '../icons/systemicons/SystemIcons';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { DropdownButton, StyledField, Dropdown, ButtonDropdownWrapper, InputField } from './CommonStyling';\nimport DropdownContent from './DropdownContent';\nimport { Size } from '../types'\nimport { AutofilledMessage, WarningMessage } from '../InputFields/styling';\nimport { ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\n\ninterface DropdownFilterProps {\n id: string;\n list: string[];\n placeholder?: string;\n onSelect?: (value: string) => void;\n onInputChange?: (input: string) => void;\n initalValue?: string;\n required?: boolean;\n disableSorting?: boolean;\n messageOnNoResults?: string;\n disabled?: boolean;\n locked?: boolean;\n isButton?: boolean;\n activeValidationMessage?: string;\n autofilledMessage?: string;\n size?: 'small' | 'medium';\n buttonFontSize?: string;\n keepInitialValue?: boolean;\n icon?: React.ReactNode;\n margin?: string;\n}\n\nconst DropdownFilter = ({\n id,\n list,\n placeholder,\n onSelect,\n onInputChange,\n initalValue,\n required,\n disableSorting,\n messageOnNoResults,\n disabled,\n locked,\n isButton,\n activeValidationMessage,\n autofilledMessage,\n size,\n buttonFontSize,\n keepInitialValue,\n icon,\n margin = '4px 0',\n}: DropdownFilterProps) => {\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [isLoading, setIsLoading] = React.useState<Boolean>(false);\n const [input, setInput] = React.useState<string>(initalValue ?? '');\n const [placeholderSearch, setPlaceholderSearch] = React.useState<string>(placeholder || '');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n\n const styledFieldRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const handleKeyPress = (e: any) => {\n if (styledFieldRef?.current && styledFieldRef.current.contains(e.target)) {\n if (e.keyCode === 13 && !locked) {\n const matches = list?.filter((c) => c.toLowerCase() === input.toLowerCase());\n if (matches.length === 1 && onSelect) {\n onSelect(matches[0]);\n setInput(matches[0]);\n }\n setIsOpen(!isOpen);\n if (matches.length === 0) {\n setInput('');\n }\n } else if (e.keyCode === 40) {\n setIsOpen(!isOpen);\n }\n }\n };\n\n React.useEffect(() => {\n if (initalValue || initalValue === '') {\n setInput(initalValue);\n setRestartFilter(true);\n }\n }, [initalValue]);\n\n React.useEffect(() => {\n if (!isOpen && !list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n }, [isOpen]);\n\n React.useEffect(() => {\n document.addEventListener('keypress', handleKeyPress);\n return () => {\n document.removeEventListener('keypress', handleKeyPress);\n };\n });\n\n React.useEffect(() => {\n setIsLoading(false);\n if (selectedValues.length > 0 && !list.includes(input))\n setSelectedValues([]);\n\n if(list.includes(input))\n {\n setSelectedValues([input]);\n onSelect && onSelect(input);\n }\n }, [input]);\n\n\n const renderStandardDropdown = () => {\n return (\n <StyledField\n ref={styledFieldRef}\n className={(isOpen ? 'expanded ' : '').concat(size ? size : '')}\n onClick={(e: any) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n inputRef.current?.focus();\n }}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n locked={locked || false}\n showValidationMessage={!!activeValidationMessage}\n fontSize={buttonFontSize}\n data-testid={`otherdiv_${id}`}>\n <InputField\n ref={inputRef}\n autoComplete={'off-' + Math.floor(Math.random() * 999999999999)}\n type=\"search\"\n placeholder={placeholderSearch}\n value={input}\n className={size ? `${size} value` : 'value'}\n onChange={(e: any) => {\n if (!locked && !disabled) {\n setRestartFilter(false);\n setIsLoading(true);\n setIsOpen(true);\n setInput(e.target.value);\n if (onInputChange) {\n onInputChange(e.target.value || '');\n }\n }\n }}\n onClick={(e: any) => {\n if (!locked && !disabled) {\n e.stopPropagation();\n setIsOpen(!isOpen);\n }\n }}\n onFocus={() => setPlaceholderSearch('')}\n onBlur={() => setPlaceholderSearch(placeholder || '')}\n required={required}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n />\n\n {isLoading ? <LoadingIndicator size=\"small\" color={COLORS.neutral_600} /> : null}\n\n <div onClick={() => setIsOpen(!isOpen)} className={'dropdown-arrow'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <ArrowDropDown size=\"24px\" className={size ? size : ''} />}\n </div>\n </StyledField>\n );\n };\n\n const renderButtonDropdown = () => (\n <ButtonDropdownWrapper\n onClick={(e: any) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n inputRef.current?.focus();\n }}\n disabled={disabled}\n locked={locked}>\n <StyledField\n ref={styledFieldRef}\n className={(isOpen ? 'expanded ' : '').concat(size ? size : '').concat(isButton ? 'button' : '')}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n locked={locked || false}\n showValidationMessage={!!activeValidationMessage}\n fontSize={buttonFontSize}>\n {icon}\n <div className={'value'}>{initalValue && keepInitialValue ? initalValue : input || placeholderSearch}</div>\n {isLoading ? <LoadingIndicator size=\"small\" color={COLORS.neutral_600} /> : null}\n <div onClick={() => setIsOpen(!isOpen)} className={'dropdown-arrow'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <ArrowDropDown size=\"24px\" className={size ? size : ''} />}\n </div>\n </StyledField>\n </ButtonDropdownWrapper>\n );\n\n return (\n <>\n <Dropdown isButton={isButton || false} disabled={disabled} locked={locked} className={size ? size : ''} margin={margin}>\n {!isButton && renderStandardDropdown()}\n {!!isButton && renderButtonDropdown()}\n {!locked && !disabled && (\n <DropdownContent\n isOpen={isOpen}\n messageOnNoResults={messageOnNoResults ?? ''}\n selectedValues={selectedValues}\n setSelectedValues={setSelectedValues}\n hideOnClickOutside={true}\n size={size == 'medium' ? Size.Medium : Size.Small}\n customizationProps={{\n itemsType: 'normal',\n multiSelect: false,\n action: () => {},\n onValueUpdate: (values: string[]) => {\n const val = values[0] ?? '';\n setRestartFilter(true);\n setInput(val);\n },\n items: list.map(x => ({ value: x }))\n }}\n filter={!restartFilter ? input : ''}\n setIsOpen={setIsOpen}\n alignLeft={false}\n isButton={isButton || false}\n id={`${id}_dropdowncontent`} />\n )}\n </Dropdown>\n {activeValidationMessage && (\n <WarningMessage className={size || ''}>\n <TechnicalWarning size=\"20px\" color={COLORS.warning_400} />\n <span>{activeValidationMessage}</span>\n </WarningMessage>\n )}\n {autofilledMessage && (\n <AutofilledMessage className={size || ''}>\n <Information size=\"20px\" color={COLORS.neutral_600} />\n <span>{autofilledMessage}</span>\n </AutofilledMessage>\n )}\n </>\n );\n};\n\nexport default DropdownFilter;\n"],"file":"DropdownFilter.js"}
1
+ {"version":3,"sources":["../../../src/Dropdown/DropdownFilter.tsx"],"names":["DropdownFilter","id","list","placeholder","onSelect","onInputChange","initalValue","required","disableSorting","messageOnNoResults","disabled","locked","isButton","activeValidationMessage","autofilledMessage","size","buttonFontSize","keepInitialValue","icon","margin","React","useState","isOpen","setIsOpen","isLoading","setIsLoading","input","setInput","placeholderSearch","setPlaceholderSearch","restartFilter","setRestartFilter","selectedValues","setSelectedValues","focused","setFocused","styledFieldRef","useRef","inputRef","handleKeyPress","e","current","contains","target","keyCode","matches","filter","c","toLowerCase","length","useEffect","includes","document","addEventListener","removeEventListener","renderStandardDropdown","concat","stopPropagation","focus","Math","floor","random","value","COLORS","neutral_600","renderButtonDropdown","Size","Medium","Small","itemsType","multiSelect","action","onValueUpdate","values","val","items","map","x","warning_400"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport { BREAKPOINTS, COLORS } from '../styles';\nimport { ArrowDropDown, ArrowDropUp, Information, TechnicalWarning } from '../icons/systemicons/SystemIcons';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { DropdownButton, StyledField, Dropdown, ButtonDropdownWrapper, InputField } from './CommonStyling';\nimport DropdownContent from './DropdownContent';\nimport { Size } from '../types'\nimport { AutofilledMessage, WarningMessage } from '../InputFields/styling';\nimport { ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\n\ninterface DropdownFilterProps {\n id: string;\n list: string[];\n placeholder?: string;\n onSelect?: (value: string) => void;\n onInputChange?: (input: string) => void;\n initalValue?: string;\n required?: boolean;\n disableSorting?: boolean;\n messageOnNoResults?: string;\n disabled?: boolean;\n locked?: boolean;\n isButton?: boolean;\n activeValidationMessage?: string;\n autofilledMessage?: string;\n size?: 'small' | 'medium';\n buttonFontSize?: string;\n keepInitialValue?: boolean;\n icon?: React.ReactNode;\n margin?: string;\n}\n\nconst DropdownFilter = ({\n id,\n list,\n placeholder,\n onSelect,\n onInputChange,\n initalValue,\n required,\n disableSorting,\n messageOnNoResults,\n disabled,\n locked,\n isButton,\n activeValidationMessage,\n autofilledMessage,\n size,\n buttonFontSize,\n keepInitialValue,\n icon,\n margin = '4px 0',\n}: DropdownFilterProps) => {\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [isLoading, setIsLoading] = React.useState<Boolean>(false);\n const [input, setInput] = React.useState<string>(initalValue ?? '');\n const [placeholderSearch, setPlaceholderSearch] = React.useState<string>(placeholder || '');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const styledFieldRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const handleKeyPress = (e: any) => {\n if (styledFieldRef?.current && styledFieldRef.current.contains(e.target)) {\n if (e.keyCode === 13 && !locked) {\n const matches = list?.filter((c) => c.toLowerCase() === input.toLowerCase());\n if (matches.length === 1 && onSelect) {\n onSelect(matches[0]);\n setInput(matches[0]);\n }\n setIsOpen(!isOpen);\n if (matches.length === 0) {\n setInput('');\n }\n } else if (e.keyCode === 40) {\n setIsOpen(!isOpen);\n }\n }\n };\n\n React.useEffect(() => {\n if (initalValue || initalValue === '') {\n setInput(initalValue);\n setRestartFilter(true);\n }\n }, [initalValue]);\n\n React.useEffect(() => {\n if (!isOpen && !list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n }, [isOpen]);\n\n React.useEffect(() => {\n document.addEventListener('keypress', handleKeyPress);\n return () => {\n document.removeEventListener('keypress', handleKeyPress);\n };\n });\n\n React.useEffect(() => {\n setIsLoading(false);\n if (selectedValues.length > 0 && !list.includes(input))\n setSelectedValues([]);\n\n if(list.includes(input))\n {\n setSelectedValues([input]);\n onSelect && onSelect(input);\n }\n }, [input]);\n\n\n const renderStandardDropdown = () => {\n return (\n <StyledField\n ref={styledFieldRef}\n className={(isOpen ? 'expanded ' : '').concat(size ? size : '')}\n onClick={(e: any) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n inputRef.current?.focus();\n }}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n locked={locked || false}\n showValidationMessage={!!activeValidationMessage}\n fontSize={buttonFontSize}\n data-testid={`otherdiv_${id}`}>\n <InputField\n ref={inputRef}\n autoComplete={'off-' + Math.floor(Math.random() * 999999999999)}\n type=\"search\"\n placeholder={placeholderSearch}\n value={input}\n className={size ? `${size} value` : 'value'}\n onChange={(e: any) => {\n if (!locked && !disabled) {\n setRestartFilter(false);\n setIsLoading(true);\n setIsOpen(true);\n setInput(e.target.value);\n if (onInputChange) {\n onInputChange(e.target.value || '');\n }\n }\n }}\n onClick={(e: any) => {\n if (!locked && !disabled) {\n e.stopPropagation();\n setIsOpen(!isOpen);\n }\n }}\n onFocus={() => setPlaceholderSearch('')}\n onBlur={() => setPlaceholderSearch(placeholder || '')}\n required={required}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n />\n\n {isLoading ? <LoadingIndicator size=\"small\" color={COLORS.neutral_600} /> : null}\n\n <div onClick={() => setIsOpen(!isOpen)} className={'dropdown-arrow'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <ArrowDropDown size=\"24px\" className={size ? size : ''} />}\n </div>\n </StyledField>\n );\n };\n\n const renderButtonDropdown = () => (\n <ButtonDropdownWrapper\n onClick={(e: any) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n inputRef.current?.focus();\n }}\n disabled={disabled}\n locked={locked}>\n <StyledField\n ref={styledFieldRef}\n className={(isOpen ? 'expanded ' : '').concat(size ? size : '').concat(isButton ? 'button' : '')}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n locked={locked || false}\n showValidationMessage={!!activeValidationMessage}\n fontSize={buttonFontSize}>\n {icon}\n <div className={'value'}>{initalValue && keepInitialValue ? initalValue : input || placeholderSearch}</div>\n {isLoading ? <LoadingIndicator size=\"small\" color={COLORS.neutral_600} /> : null}\n <div onClick={() => setIsOpen(!isOpen)} className={'dropdown-arrow'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <ArrowDropDown size=\"24px\" className={size ? size : ''} />}\n </div>\n </StyledField>\n </ButtonDropdownWrapper>\n );\n\n return (\n <>\n <Dropdown isButton={isButton || false} disabled={disabled} locked={locked} className={size ? size : ''} margin={margin}>\n {!isButton && renderStandardDropdown()}\n {!!isButton && renderButtonDropdown()}\n {!locked && !disabled && (\n <DropdownContent\n isOpen={isOpen}\n messageOnNoResults={messageOnNoResults ?? ''}\n selectedValues={selectedValues}\n setSelectedValues={setSelectedValues}\n hideOnClickOutside={true}\n size={size == 'medium' ? Size.Medium : Size.Small}\n focused={focused}\n setFocused={setFocused}\n customizationProps={{\n itemsType: 'normal',\n multiSelect: false,\n action: () => {},\n onValueUpdate: (values: string[]) => {\n const val = values[0] ?? '';\n setRestartFilter(true);\n setInput(val);\n },\n items: list.map(x => ({ value: x }))\n }}\n filter={!restartFilter ? input : ''}\n setIsOpen={setIsOpen}\n alignLeft={false}\n isButton={isButton || false}\n id={`${id}_dropdowncontent`} />\n )}\n </Dropdown>\n {activeValidationMessage && (\n <WarningMessage className={size || ''}>\n <TechnicalWarning size=\"20px\" color={COLORS.warning_400} />\n <span>{activeValidationMessage}</span>\n </WarningMessage>\n )}\n {autofilledMessage && (\n <AutofilledMessage className={size || ''}>\n <Information size=\"20px\" color={COLORS.neutral_600} />\n <span>{autofilledMessage}</span>\n </AutofilledMessage>\n )}\n </>\n );\n};\n\nexport default DropdownFilter;\n"],"file":"DropdownFilter.js"}
@@ -244,7 +244,7 @@
244
244
  opacity: 0;
245
245
  }
246
246
  .icon {
247
- margin: ${props => props.size === _types.Size.Medium ? '-2px -4px' : props.size === _types.Size.Small ? '-2px -6px' : '-2px -4px'};
247
+ margin: ${props => props.size === _types.Size.Medium ? '-2px -8px' : props.size === _types.Size.Small ? '-2px -4px' : '-2px -8px'};
248
248
  width: ${props => props.size === _types.Size.Large ? '28px' : props.size === _types.Size.Small ? '20px' : '24px'};
249
249
  height: ${props => props.size === _types.Size.Large ? '28px' : props.size === _types.Size.Small ? '20px' : '24px'};
250
250
  svg {
@@ -254,7 +254,7 @@
254
254
  }
255
255
 
256
256
  .extramargin {
257
- margin-right: 9px;
257
+ margin-right: 4px;
258
258
  }
259
259
 
260
260
  div {