@laerdal/life-react-components 1.3.2-dev.12 → 1.3.2-dev.14.full

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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","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
+ {"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"}
@@ -94,7 +94,8 @@
94
94
  tooltip,
95
95
  children,
96
96
  note,
97
- state
97
+ state,
98
+ icon
98
99
  }) => {
99
100
  const getMinWidth = () => {
100
101
  switch (size) {
@@ -317,7 +318,8 @@
317
318
  }, children), note && /*#__PURE__*/React.createElement(_ModalNote.ModalNote, {
318
319
  note: note,
319
320
  state: state,
320
- size: size
321
+ size: size,
322
+ icon: icon
321
323
  }), /*#__PURE__*/React.createElement(_ModalStyles.ModalFooter, {
322
324
  size: size
323
325
  }, leftFooterAction && LeftFooterAction(leftFooterAction), buttons?.map((b, i) => /*#__PURE__*/React.createElement(_Button.Button, {
@@ -342,8 +344,9 @@
342
344
  backButton: _propTypes2.default.func,
343
345
  closeAction: _propTypes2.default.func.isRequired,
344
346
  submitAction: _propTypes2.default.func.isRequired,
345
- note: _propTypes2.default.string,
346
- state: _propTypes2.default.string
347
+ note: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node]),
348
+ state: _propTypes2.default.string,
349
+ icon: _propTypes2.default.node
347
350
  };
348
351
  exports.default = ModalDialog;
349
352
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Modals/ModalDialog.tsx"],"names":["isModalOpen","closeModalAndClearInput","title","topImage","buttons","tooltip","backButton","closeAction","submitAction","note","state","ModalDialog","getMinWidth","Size","getMaxWidth","getImageHeight","getMarginBottom","getPadding","ModalTitle","ComponentTextStyle","Bold","ModalTootip","COLORS","neutral_600","ModalCloseButton","onClick","size","black","ModalBackButton","getLeftActionIconElement","icon","LeftFooterAction","leftFooterAction","action","order","marginRight","b","variant"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Button, IconButton } from '../Button';\nimport { ArrowLineLeft, Close, Help } from '../icons/systemicons/SystemIcons';\nimport { COLORS, ComponentL, ComponentM, ComponentTextStyle, ComponentXL } from '../styles';\nimport { Size } from '../types';\nimport ModalContainer from './ModalContainer';\nimport {\n BackButtonWrapper,\n CloseButtonWrapper,\n Column,\n FlexContainer,\n ModalBody,\n ModalFooter,\n ModalHeaderActions,\n ModalHeaderActionsWithImage,\n ModalTitleSection,\n StyledModalHeader,\n ModalHoverModifier\n} from './ModalStyles';\n\nimport { ModalNote } from './ModalNote';\nimport { TooltipWrapper } from '../Tooltips';\nimport { ButtonAction, LeftFooterAction, LeftFooterButton, LeftFooterHyperlink } from './ModalTypes';\nimport { ReactNode } from 'react';\nimport { HyperLink } from '..';\n\ninterface NewModalProps {\n size?: Size;\n isModalOpen: boolean;\n closeModalAndClearInput: any;\n title?: string;\n topImage?: any;\n buttons?: ButtonAction[];\n leftFooterAction?: LeftFooterAction;\n tooltip?: string;\n backButton?: () => void;\n closeAction: () => void;\n submitAction: (event?: React.FormEvent<HTMLFormElement> | undefined) => void;\n note?: string;\n state?: string;\n}\n\nexport const ModalDialog: React.FunctionComponent<NewModalProps> = ({\n size,\n isModalOpen,\n closeModalAndClearInput,\n title,\n topImage,\n buttons,\n leftFooterAction,\n backButton,\n closeAction,\n submitAction,\n tooltip,\n children,\n note,\n state,\n}) => {\n const getMinWidth = () => {\n switch (size) {\n case Size.Small:\n return '320px';\n case Size.Large:\n return '640px';\n case Size.Medium:\n default:\n return '480px';\n }\n };\n\n const getMaxWidth = () => {\n switch (size) {\n case Size.Small:\n return '480px';\n case Size.Large:\n return '720px';\n case Size.Medium:\n default:\n return '640px';\n }\n };\n\n const getImageHeight = () => {\n switch (size) {\n case Size.Small:\n return 160;\n case Size.Medium:\n return 200;\n case Size.Large:\n return 240;\n default:\n return 200;\n }\n };\n\n const getMarginBottom = () => {\n switch (size) {\n case Size.Small:\n return '16px';\n case Size.Medium:\n return '24px';\n case Size.Large:\n return '32px';\n default:\n return '24px';\n }\n };\n\n const getPadding = () => {\n switch (size) {\n case Size.Small:\n return '16px 16px 8px';\n case Size.Medium:\n return '24px 24px 20px';\n case Size.Large:\n return '32px';\n default:\n return '24px 24px 16px';\n }\n };\n\n const ModalTitle = (title: string, size?: Size) => {\n switch (size) {\n case Size.Small:\n return <ComponentM textStyle={ComponentTextStyle.Bold}>{title}</ComponentM>;\n case Size.Medium:\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\n case Size.Large:\n return <ComponentXL textStyle={ComponentTextStyle.Bold}>{title}</ComponentXL>;\n default:\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\n }\n };\n\n const ModalTootip = (tooltip: string) => {\n return (\n <ModalHoverModifier>\n <TooltipWrapper delay=\"0s\" size={Size.XSmall} align=\"center\" position=\"top\" withArrow={false} label={tooltip}>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => {}}>\n <Help size=\"24px\" color={COLORS.neutral_600} />\n </IconButton>\n </TooltipWrapper>\n </ModalHoverModifier>\n );\n };\n\n const ModalCloseButton = (onClick: any) => {\n return (\n <CloseButtonWrapper hasImage={!!topImage} size={size}>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => onClick()} borderRadius={48}>\n <Close size=\"24px\" color={COLORS.black} />\n </IconButton>\n </CloseButtonWrapper>\n );\n };\n\n const ModalBackButton = () => {\n if (backButton) {\n return (\n <BackButtonWrapper hasImage={!!topImage} size={size}>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => backButton()} borderRadius={48}>\n <ArrowLineLeft size=\"24px\" color={COLORS.black} />\n </IconButton>\n </BackButtonWrapper>\n );\n }\n };\n\n const getLeftActionIconElement = (icon: ReactNode) => {\n return React.cloneElement(icon as React.ReactElement, { size: size === Size.Small ? '20px' : size === Size.Large ? '28px' : '24px' });\n };\n\n const LeftFooterAction = (leftFooterAction: LeftFooterAction) => {\n const { text, actionType, disabled, icon, action } = leftFooterAction;\n switch (actionType) {\n case 'button':\n return (\n <Button\n id={'left-action-button'}\n type={(leftFooterAction as LeftFooterButton)?.type}\n disabled={disabled}\n loading={(leftFooterAction as LeftFooterButton)?.loading}\n icon={icon}\n size={size}\n onClick={action}\n variant={(leftFooterAction as LeftFooterButton)?.variant ?? 'secondary'}\n style={{ order: -1, marginRight: 'auto' }}>\n {text}\n </Button>\n );\n case 'hyperlink':\n return (\n <HyperLink id=\"left-action-hyperlink\" className=\"footer-action\" href={(leftFooterAction as LeftFooterHyperlink).href} disabled={disabled} variant=\"default\">\n {icon && getLeftActionIconElement(icon)}\n {text}\n </HyperLink>\n );\n case 'note':\n return (\n <div className=\"footer-action note\">\n {icon && getLeftActionIconElement(icon)}\n <span>{text}</span>\n </div>\n );\n }\n };\n\n return (\n <ModalContainer showModal={isModalOpen} closeModal={closeModalAndClearInput} minWidth={getMinWidth()} maxWidth={getMaxWidth()} modalHeight=\"auto\" padding={getPadding()}>\n <Column>\n <form onSubmit={submitAction}>\n {topImage && (\n <StyledModalHeader size={size} height={getImageHeight()} marginBottom={getMarginBottom()}>\n <img src={topImage} alt=\"Modal top\" />\n <ModalHeaderActionsWithImage hasBackButton={!!backButton}>\n {ModalBackButton()}\n {ModalCloseButton(closeAction)}\n </ModalHeaderActionsWithImage>\n </StyledModalHeader>\n )}\n <ModalTitleSection>\n <FlexContainer>\n {!topImage && ModalBackButton()}\n {title && ModalTitle(title, size)}\n </FlexContainer>\n <ModalHeaderActions>\n {tooltip && ModalTootip(tooltip)}\n {!topImage && ModalCloseButton(closeAction)}\n </ModalHeaderActions>\n </ModalTitleSection>\n\n <ModalBody size={size}>{children}</ModalBody>\n\n {note && <ModalNote note={note} state={state} size={size} />}\n\n <ModalFooter size={size}>\n {leftFooterAction && LeftFooterAction(leftFooterAction)}\n {buttons?.map((b, i) => (\n <Button key={b.id || i} id={b.id} disabled={b.disabled} loading={b.loading} size={size} onClick={b.action} type={b.type} variant={b.variant}>\n {b.text}\n </Button>\n ))}\n </ModalFooter>\n </form>\n </Column>\n </ModalContainer>\n );\n};\n\nexport default ModalDialog;\n"],"file":"ModalDialog.js"}
1
+ {"version":3,"sources":["../../../src/Modals/ModalDialog.tsx"],"names":["isModalOpen","closeModalAndClearInput","title","topImage","buttons","tooltip","backButton","closeAction","submitAction","note","state","icon","ModalDialog","getMinWidth","Size","getMaxWidth","getImageHeight","getMarginBottom","getPadding","ModalTitle","ComponentTextStyle","Bold","ModalTootip","COLORS","neutral_600","ModalCloseButton","onClick","size","black","ModalBackButton","getLeftActionIconElement","LeftFooterAction","leftFooterAction","action","order","marginRight","b","variant"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Button, IconButton } from '../Button';\nimport { ArrowLineLeft, Close, Help } from '../icons/systemicons/SystemIcons';\nimport { COLORS, ComponentL, ComponentM, ComponentTextStyle, ComponentXL } from '../styles';\nimport { Size } from '../types';\nimport ModalContainer from './ModalContainer';\nimport {\n BackButtonWrapper,\n CloseButtonWrapper,\n Column,\n FlexContainer,\n ModalBody,\n ModalFooter,\n ModalHeaderActions,\n ModalHeaderActionsWithImage,\n ModalTitleSection,\n StyledModalHeader,\n ModalHoverModifier,\n} from './ModalStyles';\n\nimport { ModalNote } from './ModalNote';\nimport { TooltipWrapper } from '../Tooltips';\nimport { ButtonAction, LeftFooterAction, LeftFooterButton, LeftFooterHyperlink } from './ModalTypes';\nimport { ReactNode } from 'react';\nimport { HyperLink } from '..';\n\ninterface NewModalProps {\n size?: Size;\n isModalOpen: boolean;\n closeModalAndClearInput: any;\n title?: string;\n topImage?: any;\n buttons?: ButtonAction[];\n leftFooterAction?: LeftFooterAction;\n tooltip?: string;\n backButton?: () => void;\n closeAction: () => void;\n submitAction: (event?: React.FormEvent<HTMLFormElement> | undefined) => void;\n note?: string | React.ReactNode;\n state?: string;\n icon?: React.ReactNode;\n}\n\nexport const ModalDialog: React.FunctionComponent<NewModalProps> = ({\n size,\n isModalOpen,\n closeModalAndClearInput,\n title,\n topImage,\n buttons,\n leftFooterAction,\n backButton,\n closeAction,\n submitAction,\n tooltip,\n children,\n note,\n state,\n icon,\n}) => {\n const getMinWidth = () => {\n switch (size) {\n case Size.Small:\n return '320px';\n case Size.Large:\n return '640px';\n case Size.Medium:\n default:\n return '480px';\n }\n };\n\n const getMaxWidth = () => {\n switch (size) {\n case Size.Small:\n return '480px';\n case Size.Large:\n return '720px';\n case Size.Medium:\n default:\n return '640px';\n }\n };\n\n const getImageHeight = () => {\n switch (size) {\n case Size.Small:\n return 160;\n case Size.Medium:\n return 200;\n case Size.Large:\n return 240;\n default:\n return 200;\n }\n };\n\n const getMarginBottom = () => {\n switch (size) {\n case Size.Small:\n return '16px';\n case Size.Medium:\n return '24px';\n case Size.Large:\n return '32px';\n default:\n return '24px';\n }\n };\n\n const getPadding = () => {\n switch (size) {\n case Size.Small:\n return '16px 16px 8px';\n case Size.Medium:\n return '24px 24px 20px';\n case Size.Large:\n return '32px';\n default:\n return '24px 24px 16px';\n }\n };\n\n const ModalTitle = (title: string, size?: Size) => {\n switch (size) {\n case Size.Small:\n return <ComponentM textStyle={ComponentTextStyle.Bold}>{title}</ComponentM>;\n case Size.Medium:\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\n case Size.Large:\n return <ComponentXL textStyle={ComponentTextStyle.Bold}>{title}</ComponentXL>;\n default:\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\n }\n };\n\n const ModalTootip = (tooltip: string) => {\n return (\n <ModalHoverModifier>\n <TooltipWrapper delay=\"0s\" size={Size.XSmall} align=\"center\" position=\"top\" withArrow={false} label={tooltip}>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => {}}>\n <Help size=\"24px\" color={COLORS.neutral_600} />\n </IconButton>\n </TooltipWrapper>\n </ModalHoverModifier>\n );\n };\n\n const ModalCloseButton = (onClick: any) => {\n return (\n <CloseButtonWrapper hasImage={!!topImage} size={size}>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => onClick()} borderRadius={48}>\n <Close size=\"24px\" color={COLORS.black} />\n </IconButton>\n </CloseButtonWrapper>\n );\n };\n\n const ModalBackButton = () => {\n if (backButton) {\n return (\n <BackButtonWrapper hasImage={!!topImage} size={size}>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => backButton()} borderRadius={48}>\n <ArrowLineLeft size=\"24px\" color={COLORS.black} />\n </IconButton>\n </BackButtonWrapper>\n );\n }\n };\n\n const getLeftActionIconElement = (icon: ReactNode) => {\n return React.cloneElement(icon as React.ReactElement, { size: size === Size.Small ? '20px' : size === Size.Large ? '28px' : '24px' });\n };\n\n const LeftFooterAction = (leftFooterAction: LeftFooterAction) => {\n const { text, actionType, disabled, icon, action } = leftFooterAction;\n switch (actionType) {\n case 'button':\n return (\n <Button\n id={'left-action-button'}\n type={(leftFooterAction as LeftFooterButton)?.type}\n disabled={disabled}\n loading={(leftFooterAction as LeftFooterButton)?.loading}\n icon={icon}\n size={size}\n onClick={action}\n variant={(leftFooterAction as LeftFooterButton)?.variant ?? 'secondary'}\n style={{ order: -1, marginRight: 'auto' }}>\n {text}\n </Button>\n );\n case 'hyperlink':\n return (\n <HyperLink id=\"left-action-hyperlink\" className=\"footer-action\" href={(leftFooterAction as LeftFooterHyperlink).href} disabled={disabled} variant=\"default\">\n {icon && getLeftActionIconElement(icon)}\n {text}\n </HyperLink>\n );\n case 'note':\n return (\n <div className=\"footer-action note\">\n {icon && getLeftActionIconElement(icon)}\n <span>{text}</span>\n </div>\n );\n }\n };\n\n return (\n <ModalContainer showModal={isModalOpen} closeModal={closeModalAndClearInput} minWidth={getMinWidth()} maxWidth={getMaxWidth()} modalHeight=\"auto\" padding={getPadding()}>\n <Column>\n <form onSubmit={submitAction}>\n {topImage && (\n <StyledModalHeader size={size} height={getImageHeight()} marginBottom={getMarginBottom()}>\n <img src={topImage} alt=\"Modal top\" />\n <ModalHeaderActionsWithImage hasBackButton={!!backButton}>\n {ModalBackButton()}\n {ModalCloseButton(closeAction)}\n </ModalHeaderActionsWithImage>\n </StyledModalHeader>\n )}\n <ModalTitleSection>\n <FlexContainer>\n {!topImage && ModalBackButton()}\n {title && ModalTitle(title, size)}\n </FlexContainer>\n <ModalHeaderActions>\n {tooltip && ModalTootip(tooltip)}\n {!topImage && ModalCloseButton(closeAction)}\n </ModalHeaderActions>\n </ModalTitleSection>\n\n <ModalBody size={size}>{children}</ModalBody>\n\n {note && <ModalNote note={note} state={state} size={size} icon={icon} />}\n\n <ModalFooter size={size}>\n {leftFooterAction && LeftFooterAction(leftFooterAction)}\n {buttons?.map((b, i) => (\n <Button key={b.id || i} id={b.id} disabled={b.disabled} loading={b.loading} size={size} onClick={b.action} type={b.type} variant={b.variant}>\n {b.text}\n </Button>\n ))}\n </ModalFooter>\n </form>\n </Column>\n </ModalContainer>\n );\n};\n\nexport default ModalDialog;\n"],"file":"ModalDialog.js"}
@@ -123,7 +123,7 @@
123
123
  };
124
124
 
125
125
  ModalNote.propTypes = {
126
- note: _propTypes2.default.string.isRequired,
126
+ note: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node]).isRequired,
127
127
  icon: _propTypes2.default.node,
128
128
  state: _propTypes2.default.string,
129
129
  size: _propTypes2.default.string
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Modals/ModalNote.tsx"],"names":["note","icon","state","size","ModalNote","stateVal","COLORS","correct_500","warning_500"],"mappings":";;;;;;;;;;;;;;;;;;;;;;MAAA,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,QAAMI,SAA8C,WAA9CA,SAA8C,GAAG,CAAC;AAAA,IAAA,IAAA;AAAA,IAAA,IAAA;AAAA,IAAA,IAAA;AAAmBF,IAAAA,KAAK,GAAC;AAAzB,GAAD,KAAyC;AACnG,UAAMG,QAAQ,GAAGH,KAAK,CAAtB,WAAiBA,EAAjB;;AAEA,YAAA,QAAA;AACI,WAAA,UAAA;AAAiB,eAAA,aACb,KAAA,CAAA,aAAA,CAAA,6BAAA,EAAA;AAAkB,UAAA,KAAK,EAAvB,QAAA;AAAmC,UAAA,IAAI,EAAEC;AAAzC,SAAA,EACKF,IAAI,GAAA,IAAA,GAAA,aAAU,KAAA,CAAA,aAAA,CAAA,0BAAA,EAAA;AAAe,UAAA,KAAK,EAAEK,SAAOC;AAA7B,SAAA,CADnB,EAAA,aAEI,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAHS,IAGT,CAFJ,CADa;;AAOjB,WAAA,SAAA;AAAgB,eAAA,aACZ,KAAA,CAAA,aAAA,CAAA,6BAAA,EAAA;AAAkB,UAAA,KAAK,EAAvB,QAAA;AAAmC,UAAA,IAAI,EAAEJ;AAAzC,SAAA,EACKF,IAAI,GAAA,IAAA,GAAA,aAAU,KAAA,CAAA,aAAA,CAAA,6BAAA,EAAA;AAAkB,UAAA,KAAK,EAAEK,SAAOE;AAAhC,SAAA,CADnB,EAAA,aAEI,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAHQ,IAGR,CAFJ,CADY;;AAOhB,WAAA,UAAA;AAAiB,eAAA,aACb,KAAA,CAAA,aAAA,CAAA,6BAAA,EAAA;AAAkB,UAAA,KAAK,EAAvB,QAAA;AAAmC,UAAA,IAAI,EAAEL;AAAzC,SAAA,EACKF,IAAI,GAAA,IAAA,GAAA,aAAU,KAAA,CAAA,aAAA,CAAA,6BAAA,EAAA;AAAkB,UAAA,KAAK,EAAEK,SAAOE;AAAhC,SAAA,CADnB,EAAA,aAEI,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAHS,IAGT,CAFJ,CADa;;AAOjB;AAAS,eAAA,aACL,KAAA,CAAA,aAAA,CAAA,6BAAA,EAAA;AAAkB,UAAA,KAAK,EAAvB,QAAA;AAAmC,UAAA,IAAI,EAAEL;AAAzC,SAAA,EACKF,IAAI,GAAA,IAAA,GAAA,aAAU,KAAA,CAAA,aAAA,CAAA,wBAAA,EAAA;AAAa,UAAA,KAAK,EAAEK,SAApB,WAAA;AAAwC,UAAA,SAAS,EAAEH;AAAnD,SAAA,CADnB,EAAA,aAEI,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAHC,IAGD,CAFJ,CADK;AAtBb;AAHG,GAAA;;;AANHH,IAAAA,I;AACAC,IAAAA,I;AACAC,IAAAA,K;AACAC,IAAAA,I;;oBAuCJ,S","sourcesContent":["import * as React from 'react';\nimport { COLORS } from '..';\nimport { CheckComplete, Information, TechnicalWarning } from '../icons/systemicons/SystemIcons';\nimport {ModalNoteSection} from './ModalStyles'\n\ninterface NoteProps {\n note: string;\n icon?: React.ReactNode;\n state?: string;\n size?: string;\n}\n\nexport const ModalNote : React.FunctionComponent<NoteProps> = ({note, icon, size, state='neutral'}) => { \n const stateVal = state.toLowerCase();\n\n switch(stateVal) {\n case 'positive': return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <CheckComplete color={COLORS.correct_500}/>}\n <span>{note}</span>\n </ModalNoteSection>\n );\n\n case 'warning': return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <TechnicalWarning color={COLORS.warning_500}/>}\n <span>{note}</span>\n </ModalNoteSection>\n );\n\n case 'critical': return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <TechnicalWarning color={COLORS.warning_500}/>}\n <span>{note}</span>\n </ModalNoteSection>\n );\n\n default: return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <Information color={COLORS.primary_500} className={size}/>}\n <span>{note}</span>\n </ModalNoteSection>\n );\n }\n \n \n};\n\nexport default ModalNote;"],"file":"ModalNote.js"}
1
+ {"version":3,"sources":["../../../src/Modals/ModalNote.tsx"],"names":["note","icon","state","size","ModalNote","stateVal","COLORS","correct_500","warning_500"],"mappings":";;;;;;;;;;;;;;;;;;;;;;MAAA,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,QAAMI,SAA6C,WAA7CA,SAA6C,GAAG,CAAC;AAAA,IAAA,IAAA;AAAA,IAAA,IAAA;AAAA,IAAA,IAAA;AAAoBF,IAAAA,KAAK,GAAG;AAA5B,GAAD,KAA6C;AACxG,UAAMG,QAAQ,GAAGH,KAAK,CAAtB,WAAiBA,EAAjB;;AAEA,YAAA,QAAA;AACE,WAAA,UAAA;AACE,eAAA,aACE,KAAA,CAAA,aAAA,CAAA,6BAAA,EAAA;AAAkB,UAAA,KAAK,EAAvB,QAAA;AAAmC,UAAA,IAAI,EAAEC;AAAzC,SAAA,EACGF,IAAI,GAAA,IAAA,GAAA,aAAU,KAAA,CAAA,aAAA,CAAA,0BAAA,EAAA;AAAe,UAAA,KAAK,EAAEK,SAAOC;AAA7B,SAAA,CADjB,EAAA,aAEE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAHJ,IAGI,CAFF,CADF;;AAOF,WAAA,SAAA;AACE,eAAA,aACE,KAAA,CAAA,aAAA,CAAA,6BAAA,EAAA;AAAkB,UAAA,KAAK,EAAvB,QAAA;AAAmC,UAAA,IAAI,EAAEJ;AAAzC,SAAA,EACGF,IAAI,GAAA,IAAA,GAAA,aAAU,KAAA,CAAA,aAAA,CAAA,6BAAA,EAAA;AAAkB,UAAA,KAAK,EAAEK,SAAOE;AAAhC,SAAA,CADjB,EAAA,aAEE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAHJ,IAGI,CAFF,CADF;;AAOF,WAAA,UAAA;AACE,eAAA,aACE,KAAA,CAAA,aAAA,CAAA,6BAAA,EAAA;AAAkB,UAAA,KAAK,EAAvB,QAAA;AAAmC,UAAA,IAAI,EAAEL;AAAzC,SAAA,EACGF,IAAI,GAAA,IAAA,GAAA,aAAU,KAAA,CAAA,aAAA,CAAA,6BAAA,EAAA;AAAkB,UAAA,KAAK,EAAEK,SAAOE;AAAhC,SAAA,CADjB,EAAA,aAEE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAHJ,IAGI,CAFF,CADF;;AAOF;AACE,eAAA,aACE,KAAA,CAAA,aAAA,CAAA,6BAAA,EAAA;AAAkB,UAAA,KAAK,EAAvB,QAAA;AAAmC,UAAA,IAAI,EAAEL;AAAzC,SAAA,EACGF,IAAI,GAAA,IAAA,GAAA,aAAU,KAAA,CAAA,aAAA,CAAA,wBAAA,EAAA;AAAa,UAAA,KAAK,EAAEK,SAApB,WAAA;AAAwC,UAAA,SAAS,EAAEH;AAAnD,SAAA,CADjB,EAAA,aAEE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAHJ,IAGI,CAFF,CADF;AA1BJ;AAHK,GAAA;;;AANLH,IAAAA,I;AACAC,IAAAA,I;AACAC,IAAAA,K;AACAC,IAAAA,I;;oBAyCF,S","sourcesContent":["import * as React from 'react';\nimport { COLORS } from '..';\nimport { CheckComplete, Information, TechnicalWarning } from '../icons/systemicons/SystemIcons';\nimport { ModalNoteSection } from './ModalStyles';\n\ninterface NoteProps {\n note: string | React.ReactNode;\n icon?: React.ReactNode;\n state?: string;\n size?: string;\n}\n\nexport const ModalNote: React.FunctionComponent<NoteProps> = ({ note, icon, size, state = 'neutral' }) => {\n const stateVal = state.toLowerCase();\n\n switch (stateVal) {\n case 'positive':\n return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <CheckComplete color={COLORS.correct_500} />}\n <span>{note}</span>\n </ModalNoteSection>\n );\n\n case 'warning':\n return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <TechnicalWarning color={COLORS.warning_500} />}\n <span>{note}</span>\n </ModalNoteSection>\n );\n\n case 'critical':\n return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <TechnicalWarning color={COLORS.warning_500} />}\n <span>{note}</span>\n </ModalNoteSection>\n );\n\n default:\n return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <Information color={COLORS.primary_500} className={size} />}\n <span>{note}</span>\n </ModalNoteSection>\n );\n }\n};\n\nexport default ModalNote;\n"],"file":"ModalNote.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laerdal/life-react-components",
3
- "version": "1.3.2-dev.12",
3
+ "version": "1.3.2-dev.14.full",
4
4
  "private": false,
5
5
  "author": "Thomas Kalve <thomas.kalve@laerdal.com>",
6
6
  "contributors": [