@laerdal/life-react-components 1.3.2-dev.9 → 1.4.1-dev.3

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 (114) hide show
  1. package/dist/esm/Accordion/ContentAccordion.js +102 -81
  2. package/dist/esm/Accordion/ContentAccordion.js.map +1 -1
  3. package/dist/esm/Accordion/__tests__/ContetnAccordion.test.js +27 -27
  4. package/dist/esm/Accordion/__tests__/ContetnAccordion.test.js.map +1 -1
  5. package/dist/esm/Button/DualFunctionButton.js +4 -0
  6. package/dist/esm/Button/DualFunctionButton.js.map +1 -1
  7. package/dist/esm/Button/Iconbutton.js +0 -1
  8. package/dist/esm/Button/Iconbutton.js.map +1 -1
  9. package/dist/esm/Dropdown/DropdownButton.js +5 -2
  10. package/dist/esm/Dropdown/DropdownButton.js.map +1 -1
  11. package/dist/esm/Dropdown/DropdownContent.js +6 -6
  12. package/dist/esm/Dropdown/DropdownContent.js.map +1 -1
  13. package/dist/esm/Dropdown/DropdownFilter.js.map +1 -1
  14. package/dist/esm/HyperLink/HyperLink.js +2 -1
  15. package/dist/esm/HyperLink/HyperLink.js.map +1 -1
  16. package/dist/esm/InputFields/Checkbox.js +23 -13
  17. package/dist/esm/InputFields/Checkbox.js.map +1 -1
  18. package/dist/esm/Modals/ModalDialog.js +14 -5
  19. package/dist/esm/Modals/ModalDialog.js.map +1 -1
  20. package/dist/esm/Modals/ModalNote.js +1 -1
  21. package/dist/esm/Modals/ModalNote.js.map +1 -1
  22. package/dist/esm/Table/Table.js +131 -181
  23. package/dist/esm/Table/Table.js.map +1 -1
  24. package/dist/esm/Table/TableBody.js +135 -0
  25. package/dist/esm/Table/TableBody.js.map +1 -0
  26. package/dist/esm/Table/TableFooter.js +68 -0
  27. package/dist/esm/Table/TableFooter.js.map +1 -0
  28. package/dist/esm/Table/TableHeaders.js +55 -0
  29. package/dist/esm/Table/TableHeaders.js.map +1 -0
  30. package/dist/esm/Table/TableStyles.js +181 -110
  31. package/dist/esm/Table/TableStyles.js.map +1 -1
  32. package/dist/esm/Table/__tests__/Table.test.js +162 -21
  33. package/dist/esm/Table/__tests__/Table.test.js.map +1 -1
  34. package/dist/js/Accordion/ContentAccordion.d.ts +0 -9
  35. package/dist/js/Accordion/ContentAccordion.js +21 -42
  36. package/dist/js/Accordion/ContentAccordion.js.map +1 -1
  37. package/dist/js/Accordion/__tests__/ContetnAccordion.test.js +27 -33
  38. package/dist/js/Accordion/__tests__/ContetnAccordion.test.js.map +1 -1
  39. package/dist/js/Button/DualFunctionButton.js +4 -0
  40. package/dist/js/Button/DualFunctionButton.js.map +1 -1
  41. package/dist/js/Button/Iconbutton.d.ts +2 -2
  42. package/dist/js/Button/Iconbutton.js +0 -1
  43. package/dist/js/Button/Iconbutton.js.map +1 -1
  44. package/dist/js/Dropdown/DropdownButton.d.ts +1 -1
  45. package/dist/js/Dropdown/DropdownButton.js +5 -2
  46. package/dist/js/Dropdown/DropdownButton.js.map +1 -1
  47. package/dist/js/Dropdown/DropdownButtonTypes.d.ts +1 -0
  48. package/dist/js/Dropdown/DropdownContent.js +8 -8
  49. package/dist/js/Dropdown/DropdownContent.js.map +1 -1
  50. package/dist/js/Dropdown/DropdownFilter.d.ts +1 -1
  51. package/dist/js/Dropdown/DropdownFilter.js.map +1 -1
  52. package/dist/js/HyperLink/HyperLink.d.ts +1 -1
  53. package/dist/js/HyperLink/HyperLink.js +2 -2
  54. package/dist/js/HyperLink/HyperLink.js.map +1 -1
  55. package/dist/js/InputFields/Checkbox.d.ts +3 -2
  56. package/dist/js/InputFields/Checkbox.js +13 -11
  57. package/dist/js/InputFields/Checkbox.js.map +1 -1
  58. package/dist/js/Modals/ModalDialog.d.ts +2 -1
  59. package/dist/js/Modals/ModalDialog.js +14 -5
  60. package/dist/js/Modals/ModalDialog.js.map +1 -1
  61. package/dist/js/Modals/ModalNote.d.ts +1 -1
  62. package/dist/js/Modals/ModalNote.js +1 -1
  63. package/dist/js/Modals/ModalNote.js.map +1 -1
  64. package/dist/js/Table/Table.js +166 -209
  65. package/dist/js/Table/Table.js.map +1 -1
  66. package/dist/js/Table/TableBody.d.ts +9 -0
  67. package/dist/js/Table/TableBody.js +167 -0
  68. package/dist/js/Table/TableBody.js.map +1 -0
  69. package/dist/js/Table/TableFooter.d.ts +15 -0
  70. package/dist/js/Table/TableFooter.js +95 -0
  71. package/dist/js/Table/TableFooter.js.map +1 -0
  72. package/dist/js/Table/TableHeaders.d.ts +9 -0
  73. package/dist/js/Table/TableHeaders.js +77 -0
  74. package/dist/js/Table/TableHeaders.js.map +1 -0
  75. package/dist/js/Table/TableStyles.d.ts +19 -7
  76. package/dist/js/Table/TableStyles.js +66 -16
  77. package/dist/js/Table/TableStyles.js.map +1 -1
  78. package/dist/js/Table/TableTypes.d.ts +26 -16
  79. package/dist/js/Table/__tests__/Table.test.js +172 -30
  80. package/dist/js/Table/__tests__/Table.test.js.map +1 -1
  81. package/dist/umd/Accordion/ContentAccordion.js +103 -82
  82. package/dist/umd/Accordion/ContentAccordion.js.map +1 -1
  83. package/dist/umd/Accordion/__tests__/ContetnAccordion.test.js +26 -26
  84. package/dist/umd/Accordion/__tests__/ContetnAccordion.test.js.map +1 -1
  85. package/dist/umd/Button/DualFunctionButton.js +4 -0
  86. package/dist/umd/Button/DualFunctionButton.js.map +1 -1
  87. package/dist/umd/Button/Iconbutton.js +0 -1
  88. package/dist/umd/Button/Iconbutton.js.map +1 -1
  89. package/dist/umd/Dropdown/DropdownButton.js +5 -2
  90. package/dist/umd/Dropdown/DropdownButton.js.map +1 -1
  91. package/dist/umd/Dropdown/DropdownContent.js +6 -6
  92. package/dist/umd/Dropdown/DropdownContent.js.map +1 -1
  93. package/dist/umd/Dropdown/DropdownFilter.js.map +1 -1
  94. package/dist/umd/HyperLink/HyperLink.js +2 -1
  95. package/dist/umd/HyperLink/HyperLink.js.map +1 -1
  96. package/dist/umd/InputFields/Checkbox.js +23 -13
  97. package/dist/umd/InputFields/Checkbox.js.map +1 -1
  98. package/dist/umd/Modals/ModalDialog.js +14 -5
  99. package/dist/umd/Modals/ModalDialog.js.map +1 -1
  100. package/dist/umd/Modals/ModalNote.js +1 -1
  101. package/dist/umd/Modals/ModalNote.js.map +1 -1
  102. package/dist/umd/Table/Table.js +157 -188
  103. package/dist/umd/Table/Table.js.map +1 -1
  104. package/dist/umd/Table/TableBody.js +270 -0
  105. package/dist/umd/Table/TableBody.js.map +1 -0
  106. package/dist/umd/Table/TableFooter.js +89 -0
  107. package/dist/umd/Table/TableFooter.js.map +1 -0
  108. package/dist/umd/Table/TableHeaders.js +91 -0
  109. package/dist/umd/Table/TableHeaders.js.map +1 -0
  110. package/dist/umd/Table/TableStyles.js +185 -115
  111. package/dist/umd/Table/TableStyles.js.map +1 -1
  112. package/dist/umd/Table/__tests__/Table.test.js +164 -25
  113. package/dist/umd/Table/__tests__/Table.test.js.map +1 -1
  114. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Button/Iconbutton.tsx"],"names":["tabbedHereStyle","css","tabbedHereBackgroundColor","COLORS","primary_500","neutral_600","primary_700","white","getBorderRadius","props","borderRadius","getBorderRadiusStyle","radius","StyledIconButton","styled","button","BREAKPOINTS","MEDIUM","StyledPrimaryIconButton","primary_800","neutral_200","StyledSecondaryIconButton","primary_20","primary_100","neutral_300","id","variant","shape","action","hideOnLowWidth","isInMobileMenu","disabled","useTransparentBackground","iconColor","unsetIconSize","tabIndex","onKeyPress","children","hidden","IconButton","supressFocusRef","React","isPressingEnter","e","setTabbedHere","type","event"],"mappings":"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","sourcesContent":["import React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { BREAKPOINTS, COLORS } from '../styles';\n\ninterface HeaderItemProps {\n hideOnLowWidth: boolean;\n inMobileMenu?: boolean;\n useTransparentBackground?: boolean;\n iconColor?: string;\n unsetIconSize?: boolean;\n borderRadius?: number;\n shape?: string;\n flatEdge?: string;\n tabbedHere?: boolean;\n tabbedHereBackgroundColor?: string;\n}\n\nconst tabbedHereStyle = (variant: string, tabbedHereBackgroundColor?: string) => {\n switch (variant) {\n case 'secondary':\n return css`\n div {\n background-color: ${tabbedHereBackgroundColor || 'transparent'} !important;\n box-shadow: 0px 0px 8px ${COLORS.primary_500}, 0px 4px 12px rgba(46, 127, 161, 0.25);\n }\n div svg path,\n div svg {\n fill: ${COLORS.neutral_600};\n }\n `;\n case 'primary':\n default:\n return css`\n div {\n background-color: ${tabbedHereBackgroundColor || COLORS.primary_700} !important;\n box-shadow: 0px 4px 12px rgba(46, 127, 161, 0.25), 0px 0px 8px #2e7fa1;\n }\n div svg path,\n div svg {\n fill: ${COLORS.white};\n }\n `;\n }\n};\n\nconst getBorderRadius = (props:HeaderItemProps) => (props.borderRadius ? `${props.borderRadius}px` : '4px'); \n\nconst getBorderRadiusStyle = (props:HeaderItemProps) => {\n const radius = getBorderRadius(props);\n switch(props.flatEdge)\n {\n case 'left':\n return `0px ${radius} ${radius} 0px`;\n \n case 'right':\n return `${radius} 0px 0px ${radius}`;\n\n case 'none':\n default:\n return `${radius}`;\n }\n};\n\nconst StyledIconButton = styled.button<HeaderItemProps>`\n border-width: 0;\n cursor: pointer;\n height: 48px;\n width: 48px;\n background: transparent;\n\n display: ${(props) => (props.hideOnLowWidth ? 'none' : 'block')};\n ${BREAKPOINTS.MEDIUM} {\n display: block;\n }\n\n border-radius: ${(props) => (props.borderRadius ? `${props.borderRadius}px` : '4px')};\n div {\n height: 36px;\n width: 36px;\n border-radius: ${getBorderRadiusStyle};\n display: flex;\n justify-content: center;\n align-items: center;\n svg {\n height: ${(props) => (props.unsetIconSize ? 'unset' : '24px')};\n width: ${(props) => (props.unsetIconSize ? 'unset' : '24px')};\n padding: 0;\n }\n }\n &:only-child {\n margin: 0;\n }\n &:disabled {\n cursor: not-allowed;\n }\n &:focus:not(:disabled) {\n outline: none;\n div {\n outline: none;\n }\n }\n &:active:not(:disabled) {\n div {\n box-shadow: none;\n }\n }\n`;\n\nconst StyledPrimaryIconButton = styled(StyledIconButton)`\n div {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.primary_500)};\n\n svg {\n fill: ${(props) => props.iconColor || COLORS.white};\n path {\n fill: ${(props) => props.iconColor || COLORS.white};\n }\n }\n }\n &:hover:not(:disabled) {\n div {\n background-color: ${COLORS.primary_700};\n }\n div svg path,\n div svg {\n fill: ${COLORS.white};\n }\n }\n &:active:not(:disabled) {\n div {\n background: ${COLORS.primary_800};\n }\n div svg path,\n div svg {\n fill: ${COLORS.white};\n }\n }\n &:disabled {\n div {\n background-color: ${COLORS.neutral_200};\n }\n svg {\n path {\n fill: ${COLORS.white};\n }\n fill: ${COLORS.white};\n }\n }\n ${(props) => (props.tabbedHere ? tabbedHereStyle('primary', props.tabbedHereBackgroundColor) : '')};\n`;\n\nconst StyledSecondaryIconButton = styled(StyledIconButton)`\n div {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.white)};\n\n svg {\n fill: ${(props) => props.iconColor || COLORS.neutral_600};\n path {\n fill: ${(props) => props.iconColor || COLORS.neutral_600};\n }\n }\n }\n &:hover:not(:disabled) {\n div {\n background-color: ${COLORS.primary_20};\n }\n div svg path,\n div svg {\n fill: ${COLORS.primary_700};\n }\n }\n &:active:not(:disabled) {\n div {\n background: ${COLORS.primary_100};\n }\n div svg path,\n div svg {\n fill: ${COLORS.primary_800};\n }\n }\n\n &:disabled {\n div {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.white)};\n }\n svg {\n path {\n fill: ${COLORS.neutral_300};\n }\n fill: ${COLORS.neutral_300};\n }\n }\n\n ${(props) => (props.tabbedHere ? tabbedHereStyle('secondary', props.tabbedHereBackgroundColor) : '')};\n`;\n\ninterface Props {\n id?: string;\n variant?: 'primary' | 'secondary';\n shape?: 'square' | 'circular';\n action: (event?: React.MouseEvent<HTMLButtonElement>) => void;\n hideOnLowWidth?: boolean;\n flatEdge?: 'right' | 'left' | 'none' | undefined;\n isInMobileMenu?: boolean;\n disabled?: boolean;\n useTransparentBackground?: boolean;\n iconColor?: string;\n unsetIconSize?: boolean;\n tabIndex?: number;\n borderRadius?: number;\n onKeyPress?: React.KeyboardEventHandler<HTMLButtonElement>;\n tabbedHereBackgroundColor?: string;\n type?: 'submit' | 'reset' | 'button' | undefined;\n children?: React.ReactNode;\n hidden?: boolean;\n};\n\nconst IconButton = React.forwardRef<HTMLButtonElement, Props>(({\n id,\n variant,\n shape,\n action,\n hideOnLowWidth,\n isInMobileMenu,\n children,\n useTransparentBackground,\n disabled,\n iconColor,\n unsetIconSize,\n tabIndex,\n flatEdge,\n borderRadius,\n onKeyPress,\n tabbedHereBackgroundColor,\n type,\n hidden\n}: Props, ref) => {\n const supressFocusRef = React.useRef<any>(null);\n const [tabbedHere, setTabbedHere] = React.useState<boolean>(false);\n\n const isPressingEnter = (e: any) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n return true;\n }\n return false;\n };\n\n React.useEffect(() => {\n !!disabled && setTabbedHere(false)\n }, [disabled]);\n\n // Let's render button\n switch (variant) {\n case 'secondary':\n return (\n <StyledSecondaryIconButton\n id={id}\n type={type ?? 'button'}\n data-testid={id}\n ref={ref}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => action(event)}\n onKeyDown={(e: any) => (isPressingEnter(e) ? action() : null)}\n disabled={disabled}\n hideOnLowWidth={hideOnLowWidth || false}\n inMobileMenu={isInMobileMenu}\n useTransparentBackground={useTransparentBackground}\n iconColor={iconColor}\n unsetIconSize={unsetIconSize}\n tabIndex={tabIndex || 0}\n borderRadius={borderRadius || shape === 'circular' ? 18 : 0}\n onMouseDown={(e: any) => {\n if (!disabled && !tabbedHere) supressFocusRef.current = true;\n }}\n onFocus={(e: any) => {\n if (!disabled) {\n if (!supressFocusRef.current) setTabbedHere(true);\n else supressFocusRef.current = false;\n }\n }}\n onBlur={() => {\n setTabbedHere(false);\n }}\n tabbedHere={tabbedHere}\n onKeyPress={onKeyPress}\n hidden={hidden}\n tabbedHereBackgroundColor={tabbedHereBackgroundColor}>\n <div>{children}</div>\n </StyledSecondaryIconButton>\n );\n case 'primary':\n default:\n return (\n <StyledPrimaryIconButton\n id={id}\n type={type ?? 'button'}\n data-testid={id}\n flatEdge={flatEdge}\n ref={ref}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => action(event)}\n onKeyDown={(e: any) => (isPressingEnter(e) ? action() : null)}\n disabled={disabled}\n hideOnLowWidth={hideOnLowWidth || false}\n inMobileMenu={isInMobileMenu}\n useTransparentBackground={useTransparentBackground}\n iconColor={iconColor}\n unsetIconSize={unsetIconSize}\n tabIndex={tabIndex || 0}\n borderRadius={borderRadius || shape === 'circular' ? 18 : 0}\n onMouseDown={(e: any) => {\n if (!disabled && !tabbedHere) supressFocusRef.current = true;\n }}\n onFocus={(e: any) => {\n if (!disabled) {\n if (!supressFocusRef.current) setTabbedHere(true);\n else supressFocusRef.current = false;\n }\n }}\n onBlur={() => {\n setTabbedHere(false);\n }}\n tabbedHere={tabbedHere}\n onKeyPress={onKeyPress}\n hidden={hidden}\n tabbedHereBackgroundColor={tabbedHereBackgroundColor}>\n <div>{children}</div>\n </StyledPrimaryIconButton>\n );\n }\n});\n\nexport default IconButton;\n"],"file":"Iconbutton.js"}
1
+ {"version":3,"sources":["../../../src/Button/Iconbutton.tsx"],"names":["tabbedHereStyle","css","tabbedHereBackgroundColor","COLORS","primary_500","neutral_600","primary_700","white","getBorderRadius","props","borderRadius","getBorderRadiusStyle","radius","StyledIconButton","styled","button","BREAKPOINTS","MEDIUM","StyledPrimaryIconButton","primary_800","neutral_200","StyledSecondaryIconButton","primary_20","primary_100","neutral_300","id","variant","shape","action","hideOnLowWidth","isInMobileMenu","disabled","useTransparentBackground","iconColor","unsetIconSize","tabIndex","onKeyPress","children","hidden","IconButton","supressFocusRef","React","isPressingEnter","e","setTabbedHere","type","event"],"mappings":"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","sourcesContent":["import React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { BREAKPOINTS, COLORS } from '../styles';\n\ninterface HeaderItemProps {\n hideOnLowWidth: boolean;\n inMobileMenu?: boolean;\n useTransparentBackground?: boolean;\n iconColor?: string;\n unsetIconSize?: boolean;\n borderRadius?: number;\n shape?: string;\n flatEdge?: string;\n tabbedHere?: boolean;\n tabbedHereBackgroundColor?: string;\n}\n\nconst tabbedHereStyle = (variant: string, tabbedHereBackgroundColor?: string) => {\n switch (variant) {\n case 'secondary':\n return css`\n div {\n background-color: ${tabbedHereBackgroundColor || 'transparent'} !important;\n box-shadow: 0px 0px 8px ${COLORS.primary_500}, 0px 4px 12px rgba(46, 127, 161, 0.25);\n }\n div svg path,\n div svg {\n fill: ${COLORS.neutral_600};\n }\n `;\n case 'primary':\n default:\n return css`\n div {\n background-color: ${tabbedHereBackgroundColor || COLORS.primary_700} !important;\n box-shadow: 0px 4px 12px rgba(46, 127, 161, 0.25), 0px 0px 8px #2e7fa1;\n }\n div svg path,\n div svg {\n fill: ${COLORS.white};\n }\n `;\n }\n};\n\nconst getBorderRadius = (props:HeaderItemProps) => (props.borderRadius ? `${props.borderRadius}px` : '4px'); \n\nconst getBorderRadiusStyle = (props:HeaderItemProps) => {\n const radius = getBorderRadius(props);\n switch(props.flatEdge)\n {\n case 'left':\n return `0px ${radius} ${radius} 0px`;\n \n case 'right':\n return `${radius} 0px 0px ${radius}`;\n\n case 'none':\n default:\n return `${radius}`;\n }\n};\n\nconst StyledIconButton = styled.button<HeaderItemProps>`\n border-width: 0;\n cursor: pointer;\n height: 48px;\n width: 48px;\n background: transparent;\n\n display: ${(props) => (props.hideOnLowWidth ? 'none' : 'block')};\n ${BREAKPOINTS.MEDIUM} {\n display: block;\n }\n\n border-radius: ${(props) => (props.borderRadius ? `${props.borderRadius}px` : '4px')};\n div {\n height: 36px;\n width: 36px;\n border-radius: ${getBorderRadiusStyle};\n display: flex;\n justify-content: center;\n align-items: center;\n svg {\n height: ${(props) => (props.unsetIconSize ? 'unset' : '24px')};\n width: ${(props) => (props.unsetIconSize ? 'unset' : '24px')};\n padding: 0;\n }\n }\n &:only-child {\n margin: 0;\n }\n &:disabled {\n cursor: not-allowed;\n }\n &:focus:not(:disabled) {\n outline: none;\n div {\n outline: none;\n }\n }\n &:active:not(:disabled) {\n div {\n box-shadow: none;\n }\n }\n`;\n\nconst StyledPrimaryIconButton = styled(StyledIconButton)`\n div {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.primary_500)};\n\n svg {\n fill: ${(props) => props.iconColor || COLORS.white};\n path {\n fill: ${(props) => props.iconColor || COLORS.white};\n }\n }\n }\n &:hover:not(:disabled) {\n div {\n background-color: ${COLORS.primary_700};\n }\n div svg path,\n div svg {\n fill: ${COLORS.white};\n }\n }\n &:active:not(:disabled) {\n div {\n background: ${COLORS.primary_800};\n }\n div svg path,\n div svg {\n fill: ${COLORS.white};\n }\n }\n &:disabled {\n div {\n background-color: ${COLORS.neutral_200};\n }\n svg {\n path {\n fill: ${COLORS.white};\n }\n fill: ${COLORS.white};\n }\n }\n ${(props) => (props.tabbedHere ? tabbedHereStyle('primary', props.tabbedHereBackgroundColor) : '')};\n`;\n\nconst StyledSecondaryIconButton = styled(StyledIconButton)`\n div {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.white)};\n\n svg {\n fill: ${(props) => props.iconColor || COLORS.neutral_600};\n path {\n fill: ${(props) => props.iconColor || COLORS.neutral_600};\n }\n }\n }\n &:hover:not(:disabled) {\n div {\n background-color: ${COLORS.primary_20};\n }\n div svg path,\n div svg {\n fill: ${COLORS.primary_700};\n }\n }\n &:active:not(:disabled) {\n div {\n background: ${COLORS.primary_100};\n }\n div svg path,\n div svg {\n fill: ${COLORS.primary_800};\n }\n }\n\n &:disabled {\n div {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.white)};\n }\n svg {\n path {\n fill: ${COLORS.neutral_300};\n }\n fill: ${COLORS.neutral_300};\n }\n }\n\n ${(props) => (props.tabbedHere ? tabbedHereStyle('secondary', props.tabbedHereBackgroundColor) : '')};\n`;\n\nexport interface IconButtonProps {\n id?: string;\n variant?: 'primary' | 'secondary';\n shape?: 'square' | 'circular';\n action: (event?: React.MouseEvent<HTMLButtonElement>) => void;\n hideOnLowWidth?: boolean;\n flatEdge?: 'right' | 'left' | 'none' | undefined;\n isInMobileMenu?: boolean;\n disabled?: boolean;\n useTransparentBackground?: boolean;\n iconColor?: string;\n unsetIconSize?: boolean;\n tabIndex?: number;\n borderRadius?: number;\n onKeyPress?: React.KeyboardEventHandler<HTMLButtonElement>;\n tabbedHereBackgroundColor?: string;\n type?: 'submit' | 'reset' | 'button' | undefined;\n children?: React.ReactNode;\n hidden?: boolean;\n}\n\nconst IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(({\n id,\n variant,\n shape,\n action,\n hideOnLowWidth,\n isInMobileMenu,\n children,\n useTransparentBackground,\n disabled,\n iconColor,\n unsetIconSize,\n tabIndex,\n flatEdge,\n borderRadius,\n onKeyPress,\n tabbedHereBackgroundColor,\n type,\n hidden\n}: IconButtonProps, ref) => {\n const supressFocusRef = React.useRef<any>(null);\n const [tabbedHere, setTabbedHere] = React.useState<boolean>(false);\n\n const isPressingEnter = (e: any) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n return true;\n }\n return false;\n };\n\n React.useEffect(() => {\n !!disabled && setTabbedHere(false)\n }, [disabled]);\n\n // Let's render button\n switch (variant) {\n case 'secondary':\n return (\n <StyledSecondaryIconButton\n id={id}\n type={type ?? 'button'}\n data-testid={id}\n ref={ref}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => action(event)}\n onKeyDown={(e: any) => (isPressingEnter(e) ? action() : null)}\n disabled={disabled}\n hideOnLowWidth={hideOnLowWidth || false}\n inMobileMenu={isInMobileMenu}\n useTransparentBackground={useTransparentBackground}\n iconColor={iconColor}\n unsetIconSize={unsetIconSize}\n tabIndex={tabIndex || 0}\n borderRadius={borderRadius || shape === 'circular' ? 18 : 0}\n onMouseDown={(e: any) => {\n if (!disabled && !tabbedHere) supressFocusRef.current = true;\n }}\n onFocus={(e: any) => {\n if (!disabled) {\n if (!supressFocusRef.current) setTabbedHere(true);\n else supressFocusRef.current = false;\n }\n }}\n onBlur={() => {\n setTabbedHere(false);\n }}\n tabbedHere={tabbedHere}\n onKeyPress={onKeyPress}\n hidden={hidden}\n tabbedHereBackgroundColor={tabbedHereBackgroundColor}>\n <div>{children}</div>\n </StyledSecondaryIconButton>\n );\n case 'primary':\n default:\n return (\n <StyledPrimaryIconButton\n id={id}\n type={type ?? 'button'}\n data-testid={id}\n flatEdge={flatEdge}\n ref={ref}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => action(event)}\n onKeyDown={(e: any) => (isPressingEnter(e) ? action() : null)}\n disabled={disabled}\n hideOnLowWidth={hideOnLowWidth || false}\n inMobileMenu={isInMobileMenu}\n useTransparentBackground={useTransparentBackground}\n iconColor={iconColor}\n unsetIconSize={unsetIconSize}\n tabIndex={tabIndex || 0}\n borderRadius={borderRadius || shape === 'circular' ? 18 : 0}\n onMouseDown={(e: any) => {\n if (!disabled && !tabbedHere) supressFocusRef.current = true;\n }}\n onFocus={(e: any) => {\n if (!disabled) {\n if (!supressFocusRef.current) setTabbedHere(true);\n else supressFocusRef.current = false;\n }\n }}\n onBlur={() => {\n setTabbedHere(false);\n }}\n tabbedHere={tabbedHere}\n onKeyPress={onKeyPress}\n hidden={hidden}\n tabbedHereBackgroundColor={tabbedHereBackgroundColor}>\n <div>{children}</div>\n </StyledPrimaryIconButton>\n );\n }\n});\n\nexport default IconButton;\n"],"file":"Iconbutton.js"}
@@ -112,7 +112,8 @@
112
112
  multiSelect = false,
113
113
  scrollable = false,
114
114
  pinTopItem = false,
115
- maxHeight
115
+ maxHeight,
116
+ className
116
117
  }) => {
117
118
  // Globally used variables within the view.
118
119
  const [dropdownOpen, setDropdownOpen] = React.useState(false);
@@ -166,7 +167,9 @@
166
167
  }, icon);
167
168
  };
168
169
 
169
- return /*#__PURE__*/React.createElement(Wrapper, null, renderIconButton(), /*#__PURE__*/React.createElement(_DropdownContent2.default, {
170
+ return /*#__PURE__*/React.createElement(Wrapper, {
171
+ className: className
172
+ }, renderIconButton(), /*#__PURE__*/React.createElement(_DropdownContent2.default, {
170
173
  customizationProps: {
171
174
  itemsType: itemsType,
172
175
  action: action ?? (() => {}),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Dropdown/DropdownButton.tsx"],"names":["Wrapper","styled","div","DropdownButton","itemsType","actionLabel","multiSelect","scrollable","pinTopItem","maxHeight","React","buttonRef","handleValueSelect","values","onClick","handleKeyDown","e","setFocused","document","renderIconButton","event","setDropdownOpen","disabled","action","actionVariant","onValueUpdate","actionIcon","actionLoading","items"],"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 actionVariant,\n actionIcon,\n actionLoading,\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 const buttonRef = React.useRef<HTMLButtonElement>(null);\n\n const handleValueSelect = (values: string[]) => {\n // Do all required actions\n onClick(values);\n };\n\n \n const handleKeyDown = (e: any) => {\n if (buttonRef?.current && buttonRef.current.contains(e.target)) {\n if (e.keyCode === 13 || e.keyCode === 40 || e.keyCode === 32) {\n if(!dropdownOpen)\n setFocused(0);\n \n if(e.keyCode != 40)\n {\n e.preventDefault();\n buttonRef?.current.click();\n }\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown); \n };\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 ref={buttonRef} variant=\"secondary\" shape=\"circular\" action={(event: any) => \n {\n if(!event) { //if no event details passed, then this means that user pressed 'enter'\n if(!dropdownOpen)\n setFocused(0);\n }\n setDropdownOpen(!dropdownOpen);\n }} 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 actionVariant: actionVariant,\n onValueUpdate: handleValueSelect,\n multiSelect: multiSelect,\n actionIcon: actionIcon,\n actionLoading: actionLoading,\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"}
1
+ {"version":3,"sources":["../../../src/Dropdown/DropdownButton.tsx"],"names":["Wrapper","styled","div","DropdownButton","itemsType","actionLabel","multiSelect","scrollable","pinTopItem","className","React","buttonRef","handleValueSelect","values","onClick","handleKeyDown","e","setFocused","document","renderIconButton","event","setDropdownOpen","disabled","action","actionVariant","onValueUpdate","actionIcon","actionLoading","maxHeight","items"],"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 actionVariant,\n actionIcon,\n actionLoading,\n width,\n size,\n alignLeft,\n multiSelect = false,\n scrollable = false,\n pinTopItem = false,\n maxHeight,\n className }: 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 const buttonRef = React.useRef<HTMLButtonElement>(null);\n\n const handleValueSelect = (values: string[]) => {\n // Do all required actions\n onClick(values);\n };\n\n \n const handleKeyDown = (e: any) => {\n if (buttonRef?.current && buttonRef.current.contains(e.target)) {\n if (e.keyCode === 13 || e.keyCode === 40 || e.keyCode === 32) {\n if(!dropdownOpen)\n setFocused(0);\n \n if(e.keyCode != 40)\n {\n e.preventDefault();\n buttonRef?.current.click();\n }\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown); \n };\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 ref={buttonRef} variant=\"secondary\" shape=\"circular\" action={(event: any) => \n {\n if(!event) { //if no event details passed, then this means that user pressed 'enter'\n if(!dropdownOpen)\n setFocused(0);\n }\n setDropdownOpen(!dropdownOpen);\n }} disabled={disabled}>\n {icon}\n </IconButton>\n );\n };\n\n return (\n <Wrapper className={className}>\n {renderIconButton()}\n <DropdownContent\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {}),\n actionLabel: actionLabel,\n actionVariant: actionVariant,\n onValueUpdate: handleValueSelect,\n multiSelect: multiSelect,\n actionIcon: actionIcon,\n actionLoading: actionLoading,\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"}
@@ -238,14 +238,14 @@
238
238
 
239
239
  if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {
240
240
  const filtered = getFilteredItems();
241
-
242
- for (let i = focusedNow - 1; i > 0; i--) {
243
- if (!filtered[i - 1]?.disabled) {
244
- focusedNow = i;
245
- break;
241
+ if (focusedNow == 1 && haveTopItem()) focusedNow = 0;else {
242
+ for (let i = focusedNow - 1; i > 0; i--) {
243
+ if (!filtered[i - 1]?.disabled) {
244
+ focusedNow = i;
245
+ break;
246
+ }
246
247
  }
247
248
  }
248
-
249
249
  setNewFocusedElement(focusedNow);
250
250
  }
251
251
  } else if (e.keyCode === 40) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Dropdown/DropdownContent.tsx"],"names":["DDContainer","styled","div","COLORS","white","props","Z_INDEXES","dropdown","neutral_100","Size","ItemsContainer","hover","active","focus","DropdownButtonCSS","ListContainer","neutral_600","neutral_500","MenuContentContainer","ComponentXLStyling","ComponentTextStyle","ComponentLStyling","ComponentMStyling","ComponentSStyling","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","value","displayLabel","noteLabel","suggestion","showDividerAbove","disabled","icon","customContent","itemsType","menuContent","scrollable","multiSelect","maxHeight","actionLabel","actionIcon","actionLoading","actionDisabled","action","pinTopItem","onValueUpdate","items","isButton","customizationProps","alignLeft","isOpen","setIsOpen","id","filter","width","hideOnClickOutside","selectedValues","setSelectedValues","messageOnNoResults","focused","setFocused","DropdownContent","React","dropdownContentRef","size","itemsListRef","determineDropUp","options","node","windowHeight","window","menuHeight","Math","instOffsetWithMenu","setIsUp","setNewFocusedElement","index","newFocusedElement","elRefs","getFilteredItems","filtrationString","x","handleKeyDown","e","focusedNow","filtered","i","haveTopItem","document","handleClickOutside","scrollPosition","handleScroll","useLayoutEffect","getCorrectRef","ref","arrLength","setElRefs","Array","getSuggestions","focusThis","handleItemClick","newValue","item","selected","getTopItem","visibleItems","allSelected","y","showTopItem","suggestions","c","selectedFirst","newValues","fontSize","getElements","number","isUp"],"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, DropdownButtonCSS } from './CommonStyling';\nimport { ComponentLStyling, ComponentXLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport { COLORS } from '../styles';\nimport { Checkbox, RadioButton } from '../InputFields';\nimport {Z_INDEXES} from '../styles/z-indexes';\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: ${Z_INDEXES.dropdown};\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 ItemsContainer = styled.div<{size? : Size}>`\n > *:hover {\n z-index: ${Z_INDEXES.hover};\n }\n > *:active,\n > *.active{\n z-index: ${Z_INDEXES.active};\n }\n > *:focus {\n z-index: ${Z_INDEXES.focus};\n }\n \n button.dropdownButton {\n ${props => DropdownButtonCSS(props.size)}\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\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 ${ItemsContainer} {\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\n\nconst MenuContentContainer = styled.div<{size? : Size}>`\n h1, h2, h3 {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '10px 16px 6px' :\n props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px'};\n }\n\n p {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '8px 16px' :\n props.size == Size.Medium ? '12px 24px' : '16px 32px'};\n }\n`;\n\nconst DividerContainer = styled.div<{size? : Size}>`\n position: relative;\n\n margin-top: ${props => props.size == Size.Large ? '16px' : \n props.size == Size.Medium ? '12px' : \n (props.size == Size.Small || !props.size) ? '8px' : '6px'};\n\n div.divider {\n width: 100%;\n margin: 0px;\n }\n`;\n\nconst TopItemContainer = styled.div<{size?:Size}>`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px;\n\n button {\n ${props => DropdownButtonCSS(props.size)}\n }\n`;\n\nconst ActionButtonContainer = styled.div<{size?:Size}>`\n border-top-style: solid;\n border-top-color: ${COLORS.neutral_200};\n border-top-width: 1px;\n \n padding: ${props => props.size == Size.Small || !props.size ? '0px 16px' : '8px 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 customContent?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n menuContent?: React.ReactNode;\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n action: () => boolean | void | undefined;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => boolean | void | undefined;\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 getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\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 const filtered = getFilteredItems();\n for (let i = focusedNow - 1; i > 0; i--) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n setNewFocusedElement(focusedNow);\n }\n } else if (e.keyCode === 40) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n const filtered = getFilteredItems();\n for (let i = focusedNow + 1; i <= filtered.length; i++) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n } else {\n focusedNow = haveTopItem() ? 0 : 1;\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 setFocused(null);\n }\n } else if (e.keyCode === 27) {\n setIsOpen(false);\n setFocused(null);\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 getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch (customizationProps.itemsType) {\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)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength, selectedValues]);\n\n React.useEffect(() => {\n determineDropUp();\n }, [isOpen]);\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) setFocused(focusThis);\n const newFocusedElement = elRefs[focusThis];\n newFocusedElement?.current?.focus();\n } else setFocused(null); //if the dropdown is closed, we don't to keep saved the focused item\n }, [isOpen]);\n\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\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 if(customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue))\n setIsOpen(false);\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 const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\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 const selectedFirst = selectedValues.length > 0 ? visibleItems.find(x => x.value == selectedValues[0]) : null;\n \n return (\n <TopItemContainer size={size}>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n select={() => {}} label={selectedFirst?.displayLabel ?? selectedFirst?.value} \n size={size}\n id={`${id}_topitem`}\n selected={true}\n />\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 if(customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues))\n setIsOpen(false);\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' : (selectedFirst?.displayLabel ?? selectedFirst?.value)}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType == 'normal' && (\n <>\n {suggestions.map((x) => (\n <button\n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\n type=\"button\"\n id={`${id}_topitem`}\n key={`${id}_topitem_${x.value}`}\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 </button>))}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = () => {\n if (getFilteredItems().length === 0) {\n return (\n <ItemsContainer size={size}>\n <button className=\"dropdownButton\" disabled>\n <span>{messageOnNoResults}</span>\n </button>\n </ItemsContainer>\n );\n }\n let number = 0;\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item) => {\n return (\n <React.Fragment key={`key_${id}_${item.value}`}>\n {item.customContent}\n {!item.customContent && customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected:boolean) => handleItemClick(selected, item)}\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.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected:boolean) => handleItemClick(selected, item)}\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.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <button\n type=\"button\"\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={ 'dropdownButton ' + (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 </button>\n )}\n </React.Fragment>\n );\n })}\n </ItemsContainer>\n );\n };\n\n return (\n <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.menuContent &&\n <MenuContentContainer size={size}>\n {customizationProps.menuContent}\n <DividerContainer size={size}>\n <div className=\"divider\" />\n </DividerContainer>\n </MenuContentContainer>}\n {customizationProps.pinTopItem && getTopItem()}\n {getElements()}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size}>\n <Button width=\"100%\" icon={customizationProps.actionIcon}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size} onClick={() => \n {\n if(customizationProps.action()) //closing the dropdown if action returns 'true'\n setIsOpen(false);\n }}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n );\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","Z_INDEXES","dropdown","neutral_100","Size","ItemsContainer","hover","active","focus","DropdownButtonCSS","ListContainer","neutral_600","neutral_500","MenuContentContainer","ComponentXLStyling","ComponentTextStyle","ComponentLStyling","ComponentMStyling","ComponentSStyling","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","value","displayLabel","noteLabel","suggestion","showDividerAbove","disabled","icon","customContent","itemsType","menuContent","scrollable","multiSelect","maxHeight","actionLabel","actionIcon","actionLoading","actionDisabled","action","pinTopItem","onValueUpdate","items","isButton","customizationProps","alignLeft","isOpen","setIsOpen","id","filter","width","hideOnClickOutside","selectedValues","setSelectedValues","messageOnNoResults","focused","setFocused","DropdownContent","React","dropdownContentRef","size","itemsListRef","determineDropUp","options","node","windowHeight","window","menuHeight","Math","instOffsetWithMenu","setIsUp","setNewFocusedElement","index","newFocusedElement","elRefs","getFilteredItems","filtrationString","x","handleKeyDown","e","focusedNow","filtered","haveTopItem","i","document","handleClickOutside","scrollPosition","handleScroll","useLayoutEffect","getCorrectRef","ref","arrLength","setElRefs","Array","getSuggestions","focusThis","handleItemClick","newValue","item","selected","getTopItem","visibleItems","allSelected","y","showTopItem","suggestions","c","selectedFirst","newValues","fontSize","getElements","number","isUp"],"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, DropdownButtonCSS } from './CommonStyling';\nimport { ComponentLStyling, ComponentXLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport { COLORS } from '../styles';\nimport { Checkbox, RadioButton } from '../InputFields';\nimport {Z_INDEXES} from '../styles/z-indexes';\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: ${Z_INDEXES.dropdown};\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 ItemsContainer = styled.div<{size? : Size}>`\n > *:hover {\n z-index: ${Z_INDEXES.hover};\n }\n > *:active,\n > *.active{\n z-index: ${Z_INDEXES.active};\n }\n > *:focus {\n z-index: ${Z_INDEXES.focus};\n }\n \n button.dropdownButton {\n ${props => DropdownButtonCSS(props.size)}\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\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 ${ItemsContainer} {\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\n\nconst MenuContentContainer = styled.div<{size? : Size}>`\n h1, h2, h3 {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '10px 16px 6px' :\n props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px'};\n }\n\n p {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '8px 16px' :\n props.size == Size.Medium ? '12px 24px' : '16px 32px'};\n }\n`;\n\nconst DividerContainer = styled.div<{size? : Size}>`\n position: relative;\n\n margin-top: ${props => props.size == Size.Large ? '16px' : \n props.size == Size.Medium ? '12px' : \n (props.size == Size.Small || !props.size) ? '8px' : '6px'};\n\n div.divider {\n width: 100%;\n margin: 0px;\n }\n`;\n\nconst TopItemContainer = styled.div<{size?:Size}>`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px;\n\n button {\n ${props => DropdownButtonCSS(props.size)}\n }\n`;\n\nconst ActionButtonContainer = styled.div<{size?:Size}>`\n border-top-style: solid;\n border-top-color: ${COLORS.neutral_200};\n border-top-width: 1px;\n \n padding: ${props => props.size == Size.Small || !props.size ? '0px 16px' : '8px 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 customContent?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n menuContent?: React.ReactNode;\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n action: () => boolean | void | undefined;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => boolean | void | undefined;\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 getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\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 const filtered = getFilteredItems();\n if(focusedNow == 1 && haveTopItem())\n focusedNow = 0;\n else {\n for (let i = focusedNow - 1; i > 0; i--) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n }\n setNewFocusedElement(focusedNow);\n }\n } else if (e.keyCode === 40) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n const filtered = getFilteredItems();\n for (let i = focusedNow + 1; i <= filtered.length; i++) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n } else {\n focusedNow = haveTopItem() ? 0 : 1;\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 setFocused(null);\n }\n } else if (e.keyCode === 27) {\n setIsOpen(false);\n setFocused(null);\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 getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch (customizationProps.itemsType) {\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)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength, selectedValues]);\n\n React.useEffect(() => {\n determineDropUp();\n }, [isOpen]);\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) setFocused(focusThis);\n const newFocusedElement = elRefs[focusThis];\n newFocusedElement?.current?.focus();\n } else setFocused(null); //if the dropdown is closed, we don't to keep saved the focused item\n }, [isOpen]);\n\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\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 if(customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue))\n setIsOpen(false);\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 const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\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 const selectedFirst = selectedValues.length > 0 ? visibleItems.find(x => x.value == selectedValues[0]) : null;\n \n return (\n <TopItemContainer size={size}>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n select={() => {}} label={selectedFirst?.displayLabel ?? selectedFirst?.value} \n size={size}\n id={`${id}_topitem`}\n selected={true}\n />\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 if(customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues))\n setIsOpen(false);\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' : (selectedFirst?.displayLabel ?? selectedFirst?.value)}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType == 'normal' && (\n <>\n {suggestions.map((x) => (\n <button\n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\n type=\"button\"\n id={`${id}_topitem`}\n key={`${id}_topitem_${x.value}`}\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 </button>))}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = () => {\n if (getFilteredItems().length === 0) {\n return (\n <ItemsContainer size={size}>\n <button className=\"dropdownButton\" disabled>\n <span>{messageOnNoResults}</span>\n </button>\n </ItemsContainer>\n );\n }\n let number = 0;\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item) => {\n return (\n <React.Fragment key={`key_${id}_${item.value}`}>\n {item.customContent}\n {!item.customContent && customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected:boolean) => handleItemClick(selected, item)}\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.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected:boolean) => handleItemClick(selected, item)}\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.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <button\n type=\"button\"\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={ 'dropdownButton ' + (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 </button>\n )}\n </React.Fragment>\n );\n })}\n </ItemsContainer>\n );\n };\n\n return (\n <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.menuContent &&\n <MenuContentContainer size={size}>\n {customizationProps.menuContent}\n <DividerContainer size={size}>\n <div className=\"divider\" />\n </DividerContainer>\n </MenuContentContainer>}\n {customizationProps.pinTopItem && getTopItem()}\n {getElements()}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size}>\n <Button width=\"100%\" icon={customizationProps.actionIcon}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size} onClick={() => \n {\n if(customizationProps.action()) //closing the dropdown if action returns 'true'\n setIsOpen(false);\n }}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n );\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 +1 @@
1
- {"version":3,"sources":["../../../src/Dropdown/DropdownFilter.tsx"],"names":["label","customContent","id","list","placeholder","onSelect","onInputChange","initalValue","required","disableSorting","messageOnNoResults","disabled","locked","isButton","activeValidationMessage","autofilledMessage","scrollable","buttonFontSize","keepInitialValue","icon","margin","DropdownFilter","React","styledFieldRef","inputRef","handleKeyPress","e","matches","c","input","setInput","setFocused","setIsOpen","setRestartFilter","x","setPlaceholderSearch","document","setIsLoading","selectedValues","setSelectedValues","renderStandardDropdown","isOpen","size","Math","isLoading","Size","COLORS","neutral_600","renderButtonDropdown","itemsType","multiSelect","action","onValueUpdate","values","val","items","value","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 DropdownFilterItem {\n label: string;\n customContent?: React.ReactNode;\n}\n\ninterface DropdownFilterProps {\n id: string;\n list: DropdownFilterItem[];\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?: Size.Small | Size.Medium;\n scrollable?: boolean;\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 scrollable,\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.label.toLowerCase() === input.toLowerCase());\n if (matches.length === 1 && onSelect) {\n onSelect(matches[0].label);\n setInput(matches[0].label);\n }\n if(!isOpen)\n setFocused(0);\n setIsOpen(!isOpen);\n if (matches.length === 0) {\n setInput('');\n }\n } else if (e.keyCode === 40) {\n if(!isOpen)\n setFocused(0);\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.some(x => x.label == 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.some(x => x.label == input))\n setSelectedValues([]);\n\n if(list.some(x => x.label == 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={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={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 ?? Size.Small}\n focused={focused}\n setFocused={setFocused}\n customizationProps={{\n itemsType: 'normal',\n scrollable: scrollable,\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.label, customContent: x.customContent }))\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":["label","customContent","id","list","placeholder","onSelect","onInputChange","initalValue","required","disableSorting","messageOnNoResults","disabled","locked","isButton","activeValidationMessage","autofilledMessage","scrollable","buttonFontSize","keepInitialValue","icon","margin","DropdownFilter","React","styledFieldRef","inputRef","handleKeyPress","e","matches","c","input","setInput","setFocused","setIsOpen","setRestartFilter","x","setPlaceholderSearch","document","setIsLoading","selectedValues","setSelectedValues","renderStandardDropdown","isOpen","size","Math","isLoading","Size","COLORS","neutral_600","renderButtonDropdown","itemsType","multiSelect","action","onValueUpdate","values","val","items","value","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\nexport interface DropdownFilterItem {\n label: string;\n customContent?: React.ReactNode;\n}\n\ninterface DropdownFilterProps {\n id: string;\n list: DropdownFilterItem[];\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?: Size.Small | Size.Medium;\n scrollable?: boolean;\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 scrollable,\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.label.toLowerCase() === input.toLowerCase());\n if (matches.length === 1 && onSelect) {\n onSelect(matches[0].label);\n setInput(matches[0].label);\n }\n if(!isOpen)\n setFocused(0);\n setIsOpen(!isOpen);\n if (matches.length === 0) {\n setInput('');\n }\n } else if (e.keyCode === 40) {\n if(!isOpen)\n setFocused(0);\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.some(x => x.label == 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.some(x => x.label == input))\n setSelectedValues([]);\n\n if(list.some(x => x.label == 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={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={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 ?? Size.Small}\n focused={focused}\n setFocused={setFocused}\n customizationProps={{\n itemsType: 'normal',\n scrollable: scrollable,\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.label, customContent: x.customContent }))\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"}
@@ -136,6 +136,7 @@
136
136
  }
137
137
 
138
138
  const StyledLink = _styledComponents2.default.a`
139
+ cursor: pointer;
139
140
  ${props => props.variant === 'inverted' ? _styling.invertedStyle : _styling.defaultStyle}
140
141
  ${props => props.margin ? `margin: ${props.margin};` : ''}
141
142
  `;
@@ -156,7 +157,7 @@
156
157
  };
157
158
 
158
159
  HyperLink.propTypes = {
159
- id: _propTypes2.default.string.isRequired,
160
+ id: _propTypes2.default.string,
160
161
  variant: _propTypes2.default.oneOf(['default', 'inverted']).isRequired,
161
162
  href: _propTypes2.default.string.isRequired,
162
163
  disabled: _propTypes2.default.bool,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/HyperLink/HyperLink.tsx"],"names":["StyledLink","styled","a","props","defaultStyle","margin","id","variant","href","disabled","children","className","HyperLink","target"],"mappings":";;;;;;;;;;;;;;;;;;;;;MAAA,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,QAAMA,UAAU,GAAGC,2BAAOC,CAGvB;AACH,IAAKC,KAAD,IAAYA,KAAK,CAALA,OAAAA,KAAAA,UAAAA,GAAAA,sBAAAA,GAA+CC,qBAAc;AAC7E,IAAKD,KAAD,IAAYA,KAAK,CAALA,MAAAA,GAAgB,WAAUA,KAAK,CAACE,MAAhCF,GAAAA,GAA4C,EAAI;AALhE,CAAA;;AAkBA,QAAMS,SAAkD,GAAG,IAAA,IAAoF;AAAA,QAAnF;AAAA,MAAA,QAAA;AAAYC,MAAAA,MAAM,GAAlB,QAAA;AAA+BN,MAAAA,OAAO,GAAG;AAAzC,QAAmF,IAAA;AAAA,QAA5BJ,KAA4B,GAAA,wBAAA,CAAA,IAAA,EAAA,SAAA,CAAA;;AAC7I,WAAA,aACE,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,QAAA,CAAA,EAAA,EAAA,KAAA,EAAA;AAAuB,MAAA,OAAO,EAA9B,OAAA;AAAyC,MAAA,MAAM,EAA/C,MAAA;AAAyD,MAAA,GAAG,EAAC;AAA7D,KAAA,CAAA,EADF,QACE,CADF;AADF,GAAA;;;AATEG,IAAAA,E;AACAC,IAAAA,O,6BAAS,S,EAAY,U;AACrBC,IAAAA,I;AACAC,IAAAA,Q;AACAJ,IAAAA,M;AACAK,IAAAA,Q;AACAC,IAAAA,S;;oBAWF,S","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport { defaultStyle, invertedStyle } from './styling';\n\nconst StyledLink = styled.a<{\n variant: 'default' | 'inverted';\n margin?: string;\n}>`\n ${(props) => (props.variant === 'inverted' ? invertedStyle : defaultStyle)}\n ${(props) => (props.margin ? `margin: ${props.margin};` : '')}\n`;\n\nexport interface HyperlinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n id: string;\n variant: 'default' | 'inverted';\n href: string;\n disabled?: boolean;\n margin?: string;\n children?: any;\n className?: string;\n}\n\nconst HyperLink: React.FunctionComponent<HyperlinkProps> = ({ children, target = '_blank', variant = 'default', ...props }: HyperlinkProps) => {\n return (\n <StyledLink {...props} variant={variant} target={target} rel=\"noopener noreferrer\">\n {children}\n </StyledLink>\n );\n};\n\nexport default HyperLink;\n"],"file":"HyperLink.js"}
1
+ {"version":3,"sources":["../../../src/HyperLink/HyperLink.tsx"],"names":["StyledLink","styled","a","props","defaultStyle","margin","id","variant","href","disabled","children","className","HyperLink","target"],"mappings":";;;;;;;;;;;;;;;;;;;;;MAAA,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,QAAMA,UAAU,GAAGC,2BAAOC,CAGvB;AACH;AACA,IAAKC,KAAD,IAAYA,KAAK,CAALA,OAAAA,KAAAA,UAAAA,GAAAA,sBAAAA,GAA+CC,qBAAc;AAC7E,IAAKD,KAAD,IAAYA,KAAK,CAALA,MAAAA,GAAgB,WAAUA,KAAK,CAACE,MAAhCF,GAAAA,GAA4C,EAAI;AANhE,CAAA;;AAmBA,QAAMS,SAAkD,GAAG,IAAA,IAAoF;AAAA,QAAnF;AAAA,MAAA,QAAA;AAAYC,MAAAA,MAAM,GAAlB,QAAA;AAA+BN,MAAAA,OAAO,GAAG;AAAzC,QAAmF,IAAA;AAAA,QAA5BJ,KAA4B,GAAA,wBAAA,CAAA,IAAA,EAAA,SAAA,CAAA;;AAC7I,WAAA,aACE,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,QAAA,CAAA,EAAA,EAAA,KAAA,EAAA;AAAuB,MAAA,OAAO,EAA9B,OAAA;AAAyC,MAAA,MAAM,EAA/C,MAAA;AAAyD,MAAA,GAAG,EAAC;AAA7D,KAAA,CAAA,EADF,QACE,CADF;AADF,GAAA;;;AATEG,IAAAA,E;AACAC,IAAAA,O,6BAAS,S,EAAY,U;AACrBC,IAAAA,I;AACAC,IAAAA,Q;AACAJ,IAAAA,M;AACAK,IAAAA,Q;AACAC,IAAAA,S;;oBAWF,S","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport { defaultStyle, invertedStyle } from './styling';\n\nconst StyledLink = styled.a<{\n variant: 'default' | 'inverted';\n margin?: string;\n}>`\n cursor: pointer;\n ${(props) => (props.variant === 'inverted' ? invertedStyle : defaultStyle)}\n ${(props) => (props.margin ? `margin: ${props.margin};` : '')}\n`;\n\nexport interface HyperlinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n id?: string;\n variant: 'default' | 'inverted';\n href: string;\n disabled?: boolean;\n margin?: string;\n children?: any;\n className?: string;\n}\n\nconst HyperLink: React.FunctionComponent<HyperlinkProps> = ({ children, target = '_blank', variant = 'default', ...props }: HyperlinkProps) => {\n return (\n <StyledLink {...props} variant={variant} target={target} rel=\"noopener noreferrer\">\n {children}\n </StyledLink>\n );\n};\n\nexport default HyperLink;\n"],"file":"HyperLink.js"}
@@ -135,7 +135,7 @@
135
135
  }
136
136
  }
137
137
 
138
- &:not(.disabled):focus {
138
+ &:not(.disabled):not(.readonly):focus {
139
139
  outline: none;
140
140
 
141
141
  .checkbox-icon {
@@ -148,7 +148,7 @@
148
148
  }
149
149
  }
150
150
 
151
- &:not(.disabled):hover {
151
+ &:not(.disabled):not(.readonly):hover {
152
152
  .checkbox-icon {
153
153
  background-color: ${_styles.COLORS.primary_20};
154
154
 
@@ -158,7 +158,7 @@
158
158
  }
159
159
  }
160
160
 
161
- &:not(.disabled):active {
161
+ &:not(.disabled):not(.readonly):active {
162
162
  .checkbox-icon {
163
163
  background: ${_styles.COLORS.primary_100};
164
164
  box-shadow: none;
@@ -169,6 +169,14 @@
169
169
  }
170
170
  }
171
171
 
172
+ &.readonly{
173
+ cursor: inherit;
174
+ .checkbox-icon,
175
+ .checkbox-label {
176
+ pointer-events: none;
177
+ }
178
+ }
179
+
172
180
  &.disabled {
173
181
  box-shadow: none;
174
182
  cursor: not-allowed;
@@ -200,20 +208,21 @@
200
208
  margin,
201
209
  size,
202
210
  semiSelected,
203
- children
211
+ children,
212
+ readonly
204
213
  }, ref) => {
205
214
  const onKeyPress = e => {
206
- if (e.keyCode === 13 && !disabled) {
207
- select(!selected);
215
+ if (e.keyCode === 13 && !disabled && !readonly) {
216
+ select && select(!selected);
208
217
  }
209
218
  };
210
219
 
211
220
  const handleClick = () => {
212
- if (disabled) {
221
+ if (disabled || readonly) {
213
222
  return;
214
223
  }
215
224
 
216
- select(!selected);
225
+ select && select(!selected);
217
226
  };
218
227
 
219
228
  size = size ?? _types.Size.Medium;
@@ -221,9 +230,9 @@
221
230
  key: id,
222
231
  ref: ref,
223
232
  disabled: disabled,
224
- className: size.toString().toLowerCase().concat(disabled ? ' disabled' : ''),
233
+ className: size.toString().toLowerCase().concat(disabled ? ' disabled' : '').concat(readonly ? ' readonly' : ''),
225
234
  selected: selected,
226
- tabIndex: disabled ? -1 : 0,
235
+ tabIndex: disabled || readonly ? -1 : 0,
227
236
  showWarning: showWarning,
228
237
  margin: margin,
229
238
  onClick: handleClick,
@@ -250,15 +259,16 @@
250
259
  }, children));
251
260
  });
252
261
  Checkbox.propTypes = {
253
- id: _propTypes2.default.string.isRequired,
262
+ id: _propTypes2.default.string,
254
263
  selected: _propTypes2.default.bool.isRequired,
255
- select: _propTypes2.default.func.isRequired,
264
+ select: _propTypes2.default.func,
256
265
  label: _propTypes2.default.string,
257
266
  showWarning: _propTypes2.default.bool,
258
267
  disabled: _propTypes2.default.bool,
259
268
  margin: _propTypes2.default.string,
260
269
  iconPointerEventsTransparent: _propTypes2.default.bool,
261
- semiSelected: _propTypes2.default.bool
270
+ semiSelected: _propTypes2.default.bool,
271
+ readonly: _propTypes2.default.bool
262
272
  };
263
273
  exports.default = Checkbox;
264
274
  });