@laerdal/life-react-components 3.5.0 → 3.5.1-uss.hackathon
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AuthPage/AuthPage.d.ts +2 -2
- package/dist/Banners/OverviewBanner.d.ts +1 -1
- package/dist/Dropdown/BasicDropdown.cjs +4 -6
- package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
- package/dist/Dropdown/BasicDropdown.d.ts +0 -1
- package/dist/Dropdown/BasicDropdown.js +4 -6
- package/dist/Dropdown/BasicDropdown.js.map +1 -1
- package/dist/Dropdown/CommonStyling.cjs +2 -2
- package/dist/Dropdown/CommonStyling.cjs.map +1 -1
- package/dist/Dropdown/CommonStyling.js +2 -2
- package/dist/Dropdown/CommonStyling.js.map +1 -1
- package/dist/Dropdown/DropdownFilter.cjs +2 -4
- package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
- package/dist/Dropdown/DropdownFilter.d.ts +0 -1
- package/dist/Dropdown/DropdownFilter.js +2 -4
- package/dist/Dropdown/DropdownFilter.js.map +1 -1
- package/dist/Footer/Components/FooterBottomLinks.d.ts +2 -2
- package/dist/Footer/Components/FooterDropdownLinks.d.ts +2 -2
- package/dist/Footer/Components/FooterNavSection.d.ts +2 -2
- package/dist/Footer/Components/FooterNewsletterAndSocialSection.d.ts +2 -2
- package/dist/Footer/Components/FooterTop.d.ts +2 -2
- package/dist/Footer/Footer.d.ts +2 -2
- package/dist/Footer/SiteFooter.d.ts +1 -1
- package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs +3 -1
- package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs.map +1 -1
- package/dist/GlobalNavigationBar/GlobalNavigationBar.d.ts +2 -0
- package/dist/GlobalNavigationBar/GlobalNavigationBar.js +3 -1
- package/dist/GlobalNavigationBar/GlobalNavigationBar.js.map +1 -1
- package/dist/GlobalNavigationBar/business/SearchService.cjs +2 -0
- package/dist/GlobalNavigationBar/business/SearchService.cjs.map +1 -0
- package/dist/GlobalNavigationBar/business/SearchService.d.ts +0 -0
- package/dist/GlobalNavigationBar/business/SearchService.js +2 -0
- package/dist/GlobalNavigationBar/business/SearchService.js.map +1 -0
- package/dist/GlobalNavigationBar/desktop/DesktopActions.cjs +12 -3
- package/dist/GlobalNavigationBar/desktop/DesktopActions.cjs.map +1 -1
- package/dist/GlobalNavigationBar/desktop/DesktopActions.d.ts +2 -1
- package/dist/GlobalNavigationBar/desktop/DesktopActions.js +10 -2
- package/dist/GlobalNavigationBar/desktop/DesktopActions.js.map +1 -1
- package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.d.ts +2 -2
- package/dist/GlobalNavigationBar/desktop/MainMenu.cjs +2 -0
- package/dist/GlobalNavigationBar/desktop/MainMenu.cjs.map +1 -1
- package/dist/GlobalNavigationBar/desktop/MainMenu.js +2 -0
- package/dist/GlobalNavigationBar/desktop/MainMenu.js.map +1 -1
- package/dist/GlobalNavigationBar/desktop/UnifedSearchComponent.cjs +100 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchComponent.cjs.map +1 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchComponent.d.ts +8 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchComponent.js +89 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchComponent.js.map +1 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchServiceApi.cjs +38 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchServiceApi.cjs.map +1 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchServiceApi.d.ts +21 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchServiceApi.js +30 -0
- package/dist/GlobalNavigationBar/desktop/UnifedSearchServiceApi.js.map +1 -0
- package/dist/GlobalNavigationBar/desktop/UserMenu.d.ts +2 -2
- package/dist/GlobalNavigationBar/index.cjs +9 -1
- package/dist/GlobalNavigationBar/index.cjs.map +1 -1
- package/dist/GlobalNavigationBar/index.d.ts +1 -0
- package/dist/GlobalNavigationBar/index.js +1 -0
- package/dist/GlobalNavigationBar/index.js.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenu.d.ts +2 -2
- package/dist/GlobalNavigationBar/types.cjs.map +1 -1
- package/dist/GlobalNavigationBar/types.d.ts +7 -2
- package/dist/GlobalNavigationBar/types.js.map +1 -1
- package/dist/Image/ImageWithFallbacks.d.ts +1 -1
- package/dist/InputFields/DatepickerField.cjs +3 -5
- package/dist/InputFields/DatepickerField.cjs.map +1 -1
- package/dist/InputFields/DatepickerField.d.ts +0 -2
- package/dist/InputFields/DatepickerField.js +3 -5
- package/dist/InputFields/DatepickerField.js.map +1 -1
- package/dist/InputFields/DatepickerFieldHeader.d.ts +5 -2
- package/dist/InputFields/NumberField.cjs +5 -7
- package/dist/InputFields/NumberField.cjs.map +1 -1
- package/dist/InputFields/NumberField.d.ts +0 -2
- package/dist/InputFields/NumberField.js +5 -7
- package/dist/InputFields/NumberField.js.map +1 -1
- package/dist/InputFields/PasswordField.d.ts +1 -1
- package/dist/InputFields/SearchBar.cjs +4 -1
- package/dist/InputFields/SearchBar.cjs.map +1 -1
- package/dist/InputFields/SearchBar.d.ts +1 -0
- package/dist/InputFields/SearchBar.js +4 -1
- package/dist/InputFields/SearchBar.js.map +1 -1
- package/dist/InputFields/TextField.cjs +2 -4
- package/dist/InputFields/TextField.cjs.map +1 -1
- package/dist/InputFields/TextField.d.ts +0 -2
- package/dist/InputFields/TextField.js +2 -4
- package/dist/InputFields/TextField.js.map +1 -1
- package/dist/InputFields/styling.cjs +2 -2
- package/dist/InputFields/styling.cjs.map +1 -1
- package/dist/InputFields/styling.js +2 -2
- package/dist/InputFields/styling.js.map +1 -1
- package/dist/LoadingIndicator/LoadingIndicator.d.ts +2 -2
- package/dist/MiniProductCard/MiniProductCard.d.ts +2 -2
- package/dist/Modals/Modal.d.ts +4 -4
- package/dist/Modals/ModalContainer.d.ts +1 -1
- package/dist/Modals/ModalDialog.cjs +6 -8
- package/dist/Modals/ModalDialog.cjs.map +1 -1
- package/dist/Modals/ModalDialog.js +6 -8
- package/dist/Modals/ModalDialog.js.map +1 -1
- package/dist/Modals/ModalTypes.cjs.map +1 -1
- package/dist/Modals/ModalTypes.d.ts +2 -3
- package/dist/Modals/ModalTypes.js.map +1 -1
- package/dist/NavItem/NavItem.d.ts +1 -1
- package/dist/Paginator/Paginator.d.ts +2 -2
- package/dist/Panel/Panel.cjs.map +1 -1
- package/dist/Panel/Panel.d.ts +2 -2
- package/dist/Panel/Panel.js.map +1 -1
- package/dist/SegmentControl/SegmentControl.cjs.map +1 -1
- package/dist/SegmentControl/SegmentControl.d.ts +1 -1
- package/dist/SegmentControl/SegmentControl.js.map +1 -1
- package/dist/SideMenu/SideMenuBody.d.ts +2 -2
- package/dist/SideMenu/SideMenuFooter.d.ts +2 -2
- package/dist/SideMenu/SideMenuHeader.d.ts +2 -2
- package/dist/Switcher/MobileSwitcherMenu.d.ts +1 -1
- package/dist/Switcher/SwitcherMenuItem.d.ts +2 -2
- package/dist/Tabs/HorizontalTabs.d.ts +1 -1
- package/dist/Tabs/VerticalTabs.d.ts +1 -1
- package/dist/Tile/TileCommonItems.d.ts +2 -2
- package/dist/Toasters/Toast.d.ts +1 -1
- package/dist/Tooltips/TooltipOverflow.cjs +7 -2
- package/dist/Tooltips/TooltipOverflow.cjs.map +1 -1
- package/dist/Tooltips/TooltipOverflow.d.ts +1 -1
- package/dist/Tooltips/TooltipOverflow.js +7 -2
- package/dist/Tooltips/TooltipOverflow.js.map +1 -1
- package/dist/Tooltips/TooltipStyles.cjs +5 -5
- package/dist/Tooltips/TooltipStyles.cjs.map +1 -1
- package/dist/Tooltips/TooltipStyles.d.ts +1 -2
- package/dist/Tooltips/TooltipStyles.js +5 -5
- package/dist/Tooltips/TooltipStyles.js.map +1 -1
- package/dist/Tooltips/TooltipWrapper.cjs +1 -2
- package/dist/Tooltips/TooltipWrapper.cjs.map +1 -1
- package/dist/Tooltips/TooltipWrapper.d.ts +2 -2
- package/dist/Tooltips/TooltipWrapper.js +1 -2
- package/dist/Tooltips/TooltipWrapper.js.map +1 -1
- package/dist/icons/index.cjs +1 -1
- package/dist/icons/index.cjs.map +1 -1
- package/dist/icons/index.js +1 -1
- package/dist/icons/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberField.cjs","names":["Container","styled","div","PrefixContainer","props","size","Size","Small","disabled","COLORS","neutral_300","neutral_500","ComponentSStyling","ComponentTextStyle","Regular","ComponentMStyling","OperatorWrapper","Medium","neutral_200","NumberInput","input","neutral_400","fieldSize","black","type","hasPrefix","Italic","primary_800","focusStyles","primary_700","neutral_100","correct_400","critical_400","InputContainer","Z_INDEXES","focus","TooltipTrigger","LeftOperator","RightOperator","NumberField","React","forwardRef","ref","note","noteIcon","required","prefix","interval","minValue","maxValue","allowNegative","decimalPrecision","readOnly","state","value","placeholder","onChange","className","id","overflowTooltipPosition","dataTestId","rest","useState","toString","userInput","setUserInput","elementRef","useFocusVisibleRef","useEffect","useImperativeHandle","current","setVal","e","handleKeyPress","key","addInterval","subtractInterval","handleInput","preventDefault","simpleRegex","RegExp","decimalFormationRegEx","negativeDecimalFormationRegEx","allowNegativeRegex","decimalPrecisionRegex","undefined","negativeAndDecimalRegex","val","target","length","charAt","test","isInRange","replace","indexOf","lastIndexOf","includes","isDecimal","x","parseFloat","toFixed","parseInt","isNaN","Math","round","pow","isLocked","operator","operatorState","renderNumberFieldElements","renderNumberInputElements","concat","States","Default"],"sources":["../../src/InputFields/NumberField.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { TooltipTrigger } from '../Tooltips/TooltipStyles';\r\nimport TooltipOverflow from '../Tooltips/TooltipOverflow';\r\nimport styled from 'styled-components';\r\nimport {IconButton} from '../Button';\r\nimport {useFocusVisibleRef} from '../common';\r\nimport {SystemIcons} from '../icons';\r\nimport {COLORS, focusStyles, Z_INDEXES} from '../styles';\r\nimport {\r\n ComponentMStyling,\r\n ComponentSStyling,\r\n ComponentTextStyle,\r\n ComponentXSStyling,\r\n ComponentXXSStyling\r\n} from '../styles/typography';\r\nimport {Size, States, Testable} from '../types';\r\nimport {ValidationMessage} from \"./styling\";\r\n\r\nconst Container = styled.div``;\r\n\r\nconst PrefixContainer = styled.div<{ size: Size, disabled: boolean }>`\r\n width: ${props => props.size === Size.Small ? '10px' : '11px'};\r\n height: ${props => props.size === Size.Small ? '20px' : '24px'};\r\n color: ${props => props.disabled ? COLORS.neutral_300 : COLORS.neutral_500};\r\n ${props => props.size === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, null) : ComponentMStyling(ComponentTextStyle.Regular, null)}\r\n position: absolute;\r\n padding: ${props => props.size === Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px'};\r\n`;\r\n\r\nconst OperatorWrapper = styled.div<{ size: Size }>`\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n display: flex;\r\n margin: ${props => props.size === Size.Medium ? '4px 0' : ''};\r\n\r\n svg {\r\n height: 14px;\r\n width: 14px;\r\n }\r\n\r\n .divider {\r\n margin: 16px 0;\r\n background: ${COLORS.neutral_200};\r\n width: 1px;\r\n }\r\n`;\r\n\r\nconst NumberInput = styled.input<{ fieldSize: Size, hasPrefix: boolean, type: string }>`\r\n width: 100%;\r\n border: none;\r\n border-radius: 4px;\r\n text-overflow: ellipsis;\r\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_400};\r\n outline: none;\r\n color: ${COLORS.neutral_500};\r\n\r\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.black) : ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}\r\n ${props => props.type === 'NumberField' ? `\r\n padding: ${props.fieldSize === Size.Small ? '14px 97px 14px 16px' : '16px 97px 16px 16px'};\r\n padding-left: ${props.hasPrefix ? '30px' : ''};\r\n ` : ''}\r\n ${props => props.type === 'NumberInput' ? `\r\n padding: ${props.fieldSize === Size.Small ? '14px 48px' : '16px 48px'};\r\n ` : ''}\r\n &::placeholder {\r\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Italic, null) : ComponentMStyling(ComponentTextStyle.Italic, null)}\r\n }\r\n\r\n &:focus:not(.focus-visible):not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\r\n box-shadow: inset 0 0 0 2px ${COLORS.primary_800};\r\n }\r\n\r\n &.focus-visible {\r\n ${focusStyles}\r\n }\r\n\r\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\r\n box-shadow: inset 0 0 0 2px ${COLORS.primary_700};\r\n }\r\n\r\n &.disabled {\r\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_100};\r\n cursor: not-allowed;\r\n color: ${COLORS.neutral_300};\r\n pointer-events: none;\r\n\r\n &::placeholder {\r\n color: ${COLORS.neutral_300};\r\n }\r\n }\r\n\r\n &.readOnly {\r\n background: ${COLORS.neutral_100};\r\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_300};\r\n cursor: not-allowed;\r\n background: ${COLORS.neutral_100};\r\n pointer-events: none;\r\n color: ${COLORS.neutral_500};\r\n }\r\n\r\n &.valid {\r\n box-shadow: inset 0 0 0 2px ${COLORS.correct_400};\r\n }\r\n\r\n &.invalid {\r\n box-shadow: inset 0 0 0 2px ${COLORS.critical_400};\r\n }\r\n`;\r\n\r\nconst InputContainer = styled.div<{ size: Size, type: string }>`\r\n min-width: ${props => props.type === 'NumberField' ? '160px' : '144px'};\r\n height: ${props => props.size === Size.Small ? '48px' : '56px'};\r\n display: flex;\r\n position: relative;\r\n margin-bottom: 4px;\r\n\r\n input.focus-visible ~ div.operator {\r\n z-index: ${Z_INDEXES.focus};\r\n }\r\n\r\n ${TooltipTrigger('hover')}\r\n`;\r\n\r\nconst LeftOperator = styled.div<{ size: Size }>`\r\n position: absolute;\r\n top: ${props => props.size === Size.Small ? '0' : '4px'};\r\n left: 0;\r\n`;\r\n\r\nconst RightOperator = styled.div<{ size: Size }>`\r\n position: absolute;\r\n top: ${props => props.size === Size.Small ? '0' : '4px'};\r\n right: 0;\r\n`;\r\n\r\nexport type NumberFieldProps =\r\n Testable & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'onKeyDown' | 'onClick' | 'tabIndex' | 'size' | 'value' | 'prefix' | 'min' | 'max'>\r\n & {\r\n size?: Size.Small | Size.Medium;\r\n prefix?: string;\r\n interval?: number;\r\n\r\n minValue?: number;\r\n maxValue?: number;\r\n allowNegative?: boolean;\r\n decimalPrecision?: number;\r\n\r\n state?: States.Valid | States.Invalid;\r\n note?: string;\r\n noteIcon?: React.ReactNode;\r\n\r\n type?: 'NumberField' | 'NumberInput';\r\n value?: number;\r\n onChange?: (e: number) => void;\r\n overflowTooltipPosition?: 'top' | 'bottom';\r\n}\r\n\r\nconst NumberField = React.forwardRef<HTMLInputElement, NumberFieldProps>((props, ref) => {\r\n const {\r\n type = 'NumberField',\r\n size = Size.Medium,\r\n note,\r\n noteIcon,\r\n required,\r\n prefix,\r\n interval = 1,\r\n minValue,\r\n maxValue,\r\n allowNegative,\r\n decimalPrecision,\r\n disabled,\r\n readOnly,\r\n state,\r\n value,\r\n placeholder,\r\n onChange,\r\n className,\r\n id,\r\n overflowTooltipPosition,\r\n dataTestId,\r\n ...rest\r\n } = props;\r\n\r\n const [userInput, setUserInput] = React.useState(value ? value.toString() : '');\r\n\r\n const elementRef = useFocusVisibleRef();\r\n\r\n React.useEffect(() => setUserInput(`${value ?? ''}`), [value]);\r\n\r\n React.useImperativeHandle(ref, () => elementRef.current, [elementRef]);\r\n\r\n const setVal = (e: string) => {\r\n setUserInput(e);\r\n onChange && onChange(+e);\r\n }\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n addInterval();\r\n break;\r\n case 'ArrowDown':\r\n subtractInterval();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const handleInput = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n e.preventDefault();\r\n let simpleRegex = new RegExp(/^[0-9]\\d*$/);\r\n let decimalFormationRegEx = new RegExp(/^[0-9]\\d*\\.$/);\r\n let negativeDecimalFormationRegEx = new RegExp(/^[-][0-9]\\d*\\.$/);\r\n\r\n let allowNegativeRegex = new RegExp(/^[-][0-9]\\d*$/);\r\n let decimalPrecisionRegex = decimalPrecision ? new RegExp(`^[0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\r\n let negativeAndDecimalRegex = (decimalPrecision && allowNegative) ? new RegExp(`^[-][0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\r\n\r\n let val = e.target.value;\r\n if (val !== '') {\r\n if (allowNegative && decimalPrecision) {\r\n if (val.length === 1 && val.charAt(0) === '-')\r\n setVal(val);\r\n else {\r\n if ((negativeAndDecimalRegex!.test(val) || decimalPrecisionRegex!.test(val)) && isInRange(val, true))\r\n setVal(val);\r\n\r\n else if ((negativeDecimalFormationRegEx.test(val) || decimalFormationRegEx.test(val)) && isInRange(val.replace('.', ''), true))\r\n setVal(val);\r\n\r\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, true))\r\n setVal(val);\r\n }\r\n } else if (allowNegative) {\r\n if (val.length === 1 && val.charAt(0) === '-')\r\n setVal(val);\r\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, false))\r\n setVal(val);\r\n } else if (decimalPrecision && (val.indexOf('.') === val.lastIndexOf('.')) && isInRange(val, true)) {\r\n if (decimalPrecisionRegex!.test(val))\r\n setVal(val);\r\n else if (decimalFormationRegEx.test(val))\r\n setVal(val);\r\n else if (!val.includes('.') && simpleRegex.test(val))\r\n setVal(val);\r\n } else if (simpleRegex.test(val) && isInRange(val, false)) {\r\n setVal(val);\r\n }\r\n }\r\n\r\n if (val === '')\r\n setVal('');\r\n }\r\n\r\n const isInRange = (value: string, isDecimal: boolean): boolean => {\r\n let x = isDecimal ? parseFloat(value).toFixed(decimalPrecision) : parseInt(value);\r\n if (minValue && minValue > x)\r\n return false;\r\n else if (maxValue && maxValue < x)\r\n return false;\r\n else\r\n return true;\r\n }\r\n\r\n const addInterval = () => {\r\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\r\n val = isNaN(val) && userInput === '' ? (minValue ? minValue - 1 : 0) : val;\r\n if (!isNaN(val)) {\r\n if (decimalPrecision)\r\n val = Math.round((val + interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\r\n else\r\n val += 1;\r\n\r\n if (maxValue && maxValue >= val)\r\n setVal(val.toString());\r\n else if (!maxValue)\r\n setVal(val.toString());\r\n }\r\n }\r\n\r\n const subtractInterval = () => {\r\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\r\n val = isNaN(val) && userInput === '' ? (maxValue ? maxValue + 1 : 0) : val;\r\n if (!isNaN(val)) {\r\n if (decimalPrecision)\r\n val = Math.round((val - interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\r\n else\r\n val -= 1;\r\n\r\n if ((minValue && minValue <= val) || !minValue) {\r\n if (allowNegative || val >= 0) {\r\n setVal(val.toString());\r\n }\r\n }\r\n }\r\n }\r\n\r\n const isLocked = (input: string, operator: string): boolean => {\r\n let val = decimalPrecision ? parseFloat(input) : parseInt(input);\r\n val = isNaN(val) && userInput === '' ? 0 : val;\r\n let operatorState = false;\r\n if (operator === 'add' && maxValue)\r\n operatorState = val >= maxValue;\r\n\r\n if (operator === 'subtract' && minValue)\r\n operatorState = val <= minValue;\r\n\r\n if (operator === 'subtract' && !minValue && !allowNegative)\r\n operatorState = val <= 0;\r\n\r\n return operatorState;\r\n }\r\n\r\n const renderNumberFieldElements = () => {\r\n return (\r\n <>\r\n {prefix && <PrefixContainer size={size} disabled={!!disabled} className=\"operator\">\r\n {prefix}\r\n </PrefixContainer>}\r\n\r\n <OperatorWrapper data-testid={'operators'} size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\r\n <SystemIcons.Minus size=\"14px\"/>\r\n </IconButton>\r\n <div className=\"divider\"></div>\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\r\n <SystemIcons.Plus size=\"14px\"/>\r\n </IconButton>\r\n </OperatorWrapper>\r\n </>)\r\n }\r\n\r\n const renderNumberInputElements = () => {\r\n return (\r\n <>\r\n <LeftOperator data-testid={'leftOperator'} size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\r\n <SystemIcons.Minus size=\"14px\"/>\r\n </IconButton>\r\n </LeftOperator>\r\n <RightOperator data-testid={'rightOperator'} size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\r\n <SystemIcons.Plus size=\"14px\"/>\r\n </IconButton>\r\n </RightOperator>\r\n </>)\r\n }\r\n\r\n return (\r\n <Container>\r\n <InputContainer type={type} size={size} tabIndex={-1}>\r\n <NumberInput type={type}\r\n id={id}\r\n data-testid={dataTestId}\r\n fieldSize={size}\r\n hasPrefix={!!prefix}\r\n placeholder={placeholder ? placeholder : 'Enter number'}\r\n value={userInput}\r\n ref={elementRef}\r\n tabIndex={(disabled || readOnly) ? -1 : 0}\r\n onChange={e => handleInput(e)}\r\n onKeyDown={e => handleKeyPress(e)}\r\n required={required}\r\n className={disabled ? ' disabled' : ''\r\n .concat(readOnly ? ' readOnly' : '')\r\n .concat(state ? ` ${state}` : '')\r\n .concat(className ? ` ${className}` : '')}\r\n {...rest}/>\r\n\r\n {type === 'NumberField' && renderNumberFieldElements()}\r\n {type === 'NumberInput' && renderNumberInputElements()}\r\n {value && <TooltipOverflow position={overflowTooltipPosition} input={elementRef} withArrow={true} maxWidth=\"100%\" size={size} align='end'>\r\n {value?.toString()}\r\n </TooltipOverflow>}\r\n </InputContainer>\r\n\r\n {\r\n note &&\r\n <ValidationMessage type={state || States.Default}>\r\n {noteIcon}\r\n <span>{note}</span>\r\n </ValidationMessage>\r\n }\r\n\r\n </Container>\r\n );\r\n }\r\n )\r\n;\r\n\r\nexport default NumberField;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NumberField.cjs","names":["Container","styled","div","PrefixContainer","props","size","Size","Small","disabled","COLORS","neutral_300","neutral_500","ComponentSStyling","ComponentTextStyle","Regular","ComponentMStyling","OperatorWrapper","Medium","neutral_200","NumberInput","input","neutral_400","fieldSize","black","type","hasPrefix","Italic","primary_800","focusStyles","primary_700","neutral_100","correct_400","critical_400","InputContainer","Z_INDEXES","focus","TooltipTrigger","LeftOperator","RightOperator","NumberField","React","forwardRef","ref","note","noteIcon","required","prefix","interval","minValue","maxValue","allowNegative","decimalPrecision","readOnly","state","value","placeholder","onChange","className","id","dataTestId","rest","useState","toString","userInput","setUserInput","elementRef","useFocusVisibleRef","useEffect","useImperativeHandle","current","setVal","e","handleKeyPress","key","addInterval","subtractInterval","handleInput","preventDefault","simpleRegex","RegExp","decimalFormationRegEx","negativeDecimalFormationRegEx","allowNegativeRegex","decimalPrecisionRegex","undefined","negativeAndDecimalRegex","val","target","length","charAt","test","isInRange","replace","indexOf","lastIndexOf","includes","isDecimal","x","parseFloat","toFixed","parseInt","isNaN","Math","round","pow","isLocked","operator","operatorState","renderNumberFieldElements","renderNumberInputElements","concat","States","Default"],"sources":["../../src/InputFields/NumberField.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { TooltipTrigger } from '../Tooltips/TooltipStyles';\r\nimport TooltipOverflow from '../Tooltips/TooltipOverflow';\r\nimport styled from 'styled-components';\r\nimport {IconButton} from '../Button';\r\nimport {useFocusVisibleRef} from '../common';\r\nimport {SystemIcons} from '../icons';\r\nimport {COLORS, focusStyles, Z_INDEXES} from '../styles';\r\nimport {\r\n ComponentMStyling,\r\n ComponentSStyling,\r\n ComponentTextStyle,\r\n ComponentXSStyling,\r\n ComponentXXSStyling\r\n} from '../styles/typography';\r\nimport {Size, States, Testable} from '../types';\r\nimport {ValidationMessage} from \"./styling\";\r\n\r\nconst Container = styled.div``;\r\n\r\nconst PrefixContainer = styled.div<{ size: Size, disabled: boolean }>`\r\n width: ${props => props.size === Size.Small ? '10px' : '11px'};\r\n height: ${props => props.size === Size.Small ? '20px' : '24px'};\r\n color: ${props => props.disabled ? COLORS.neutral_300 : COLORS.neutral_500};\r\n ${props => props.size === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, null) : ComponentMStyling(ComponentTextStyle.Regular, null)}\r\n position: absolute;\r\n padding: ${props => props.size === Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px'};\r\n`;\r\n\r\nconst OperatorWrapper = styled.div<{ size: Size }>`\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n display: flex;\r\n margin: ${props => props.size === Size.Medium ? '4px 0' : ''};\r\n\r\n svg {\r\n height: 14px;\r\n width: 14px;\r\n }\r\n\r\n .divider {\r\n margin: 16px 0;\r\n background: ${COLORS.neutral_200};\r\n width: 1px;\r\n }\r\n`;\r\n\r\nconst NumberInput = styled.input<{ fieldSize: Size, hasPrefix: boolean, type: string }>`\r\n width: 100%;\r\n border: none;\r\n border-radius: 4px;\r\n text-overflow: ellipsis;\r\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_400};\r\n outline: none;\r\n color: ${COLORS.neutral_500};\r\n\r\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.black) : ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}\r\n ${props => props.type === 'NumberField' ? `\r\n padding: ${props.fieldSize === Size.Small ? '14px 97px 14px 16px' : '16px 97px 16px 16px'};\r\n padding-left: ${props.hasPrefix ? '30px' : ''};\r\n ` : ''}\r\n ${props => props.type === 'NumberInput' ? `\r\n padding: ${props.fieldSize === Size.Small ? '14px 48px' : '16px 48px'};\r\n ` : ''}\r\n &::placeholder {\r\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Italic, null) : ComponentMStyling(ComponentTextStyle.Italic, null)}\r\n }\r\n\r\n &:focus:not(.focus-visible):not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\r\n box-shadow: inset 0 0 0 2px ${COLORS.primary_800};\r\n }\r\n\r\n &.focus-visible {\r\n ${focusStyles}\r\n }\r\n\r\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\r\n box-shadow: inset 0 0 0 2px ${COLORS.primary_700};\r\n }\r\n\r\n &.disabled {\r\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_100};\r\n cursor: not-allowed;\r\n color: ${COLORS.neutral_300};\r\n pointer-events: none;\r\n\r\n &::placeholder {\r\n color: ${COLORS.neutral_300};\r\n }\r\n }\r\n\r\n &.readOnly {\r\n background: ${COLORS.neutral_100};\r\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_300};\r\n cursor: not-allowed;\r\n background: ${COLORS.neutral_100};\r\n pointer-events: none;\r\n color: ${COLORS.neutral_500};\r\n }\r\n\r\n &.valid {\r\n box-shadow: inset 0 0 0 2px ${COLORS.correct_400};\r\n }\r\n\r\n &.invalid {\r\n box-shadow: inset 0 0 0 2px ${COLORS.critical_400};\r\n }\r\n`;\r\n\r\nconst InputContainer = styled.div<{ size: Size, type: string }>`\r\n min-width: ${props => props.type === 'NumberField' ? '160px' : '144px'};\r\n height: ${props => props.size === Size.Small ? '48px' : '56px'};\r\n display: flex;\r\n position: relative;\r\n margin-bottom: 4px;\r\n\r\n input.focus-visible ~ div.operator {\r\n z-index: ${Z_INDEXES.focus};\r\n }\r\n\r\n ${TooltipTrigger()}\r\n`;\r\n\r\nconst LeftOperator = styled.div<{ size: Size }>`\r\n position: absolute;\r\n top: ${props => props.size === Size.Small ? '0' : '4px'};\r\n left: 0;\r\n`;\r\n\r\nconst RightOperator = styled.div<{ size: Size }>`\r\n position: absolute;\r\n top: ${props => props.size === Size.Small ? '0' : '4px'};\r\n right: 0;\r\n`;\r\n\r\nexport type NumberFieldProps =\r\n Testable & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'onKeyDown' | 'onClick' | 'tabIndex' | 'size' | 'value' | 'prefix' | 'min' | 'max'>\r\n & {\r\n size?: Size.Small | Size.Medium;\r\n prefix?: string;\r\n interval?: number;\r\n\r\n minValue?: number;\r\n maxValue?: number;\r\n allowNegative?: boolean;\r\n decimalPrecision?: number;\r\n\r\n state?: States.Valid | States.Invalid;\r\n note?: string;\r\n noteIcon?: React.ReactNode;\r\n\r\n type?: 'NumberField' | 'NumberInput';\r\n value?: number;\r\n onChange?: (e: number) => void;\r\n}\r\n\r\nconst NumberField = React.forwardRef<HTMLInputElement, NumberFieldProps>((props, ref) => {\r\n const {\r\n type = 'NumberField',\r\n size = Size.Medium,\r\n note,\r\n noteIcon,\r\n required,\r\n prefix,\r\n interval = 1,\r\n minValue,\r\n maxValue,\r\n allowNegative,\r\n decimalPrecision,\r\n disabled,\r\n readOnly,\r\n state,\r\n value,\r\n placeholder,\r\n onChange,\r\n className,\r\n id,\r\n dataTestId,\r\n ...rest\r\n } = props;\r\n\r\n const [userInput, setUserInput] = React.useState(value ? value.toString() : '');\r\n\r\n const elementRef = useFocusVisibleRef();\r\n\r\n React.useEffect(() => setUserInput(`${value ?? ''}`), [value]);\r\n\r\n React.useImperativeHandle(ref, () => elementRef.current, [elementRef]);\r\n\r\n const setVal = (e: string) => {\r\n setUserInput(e);\r\n onChange && onChange(+e);\r\n }\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n addInterval();\r\n break;\r\n case 'ArrowDown':\r\n subtractInterval();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const handleInput = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n e.preventDefault();\r\n let simpleRegex = new RegExp(/^[0-9]\\d*$/);\r\n let decimalFormationRegEx = new RegExp(/^[0-9]\\d*\\.$/);\r\n let negativeDecimalFormationRegEx = new RegExp(/^[-][0-9]\\d*\\.$/);\r\n\r\n let allowNegativeRegex = new RegExp(/^[-][0-9]\\d*$/);\r\n let decimalPrecisionRegex = decimalPrecision ? new RegExp(`^[0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\r\n let negativeAndDecimalRegex = (decimalPrecision && allowNegative) ? new RegExp(`^[-][0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\r\n\r\n let val = e.target.value;\r\n if (val !== '') {\r\n if (allowNegative && decimalPrecision) {\r\n if (val.length === 1 && val.charAt(0) === '-')\r\n setVal(val);\r\n else {\r\n if ((negativeAndDecimalRegex!.test(val) || decimalPrecisionRegex!.test(val)) && isInRange(val, true))\r\n setVal(val);\r\n\r\n else if ((negativeDecimalFormationRegEx.test(val) || decimalFormationRegEx.test(val)) && isInRange(val.replace('.', ''), true))\r\n setVal(val);\r\n\r\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, true))\r\n setVal(val);\r\n }\r\n } else if (allowNegative) {\r\n if (val.length === 1 && val.charAt(0) === '-')\r\n setVal(val);\r\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, false))\r\n setVal(val);\r\n } else if (decimalPrecision && (val.indexOf('.') === val.lastIndexOf('.')) && isInRange(val, true)) {\r\n if (decimalPrecisionRegex!.test(val))\r\n setVal(val);\r\n else if (decimalFormationRegEx.test(val))\r\n setVal(val);\r\n else if (!val.includes('.') && simpleRegex.test(val))\r\n setVal(val);\r\n } else if (simpleRegex.test(val) && isInRange(val, false)) {\r\n setVal(val);\r\n }\r\n }\r\n\r\n if (val === '')\r\n setVal('');\r\n }\r\n\r\n const isInRange = (value: string, isDecimal: boolean): boolean => {\r\n let x = isDecimal ? parseFloat(value).toFixed(decimalPrecision) : parseInt(value);\r\n if (minValue && minValue > x)\r\n return false;\r\n else if (maxValue && maxValue < x)\r\n return false;\r\n else\r\n return true;\r\n }\r\n\r\n const addInterval = () => {\r\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\r\n val = isNaN(val) && userInput === '' ? (minValue ? minValue - 1 : 0) : val;\r\n if (!isNaN(val)) {\r\n if (decimalPrecision)\r\n val = Math.round((val + interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\r\n else\r\n val += 1;\r\n\r\n if (maxValue && maxValue >= val)\r\n setVal(val.toString());\r\n else if (!maxValue)\r\n setVal(val.toString());\r\n }\r\n }\r\n\r\n const subtractInterval = () => {\r\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\r\n val = isNaN(val) && userInput === '' ? (maxValue ? maxValue + 1 : 0) : val;\r\n if (!isNaN(val)) {\r\n if (decimalPrecision)\r\n val = Math.round((val - interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\r\n else\r\n val -= 1;\r\n\r\n if ((minValue && minValue <= val) || !minValue) {\r\n if (allowNegative || val >= 0) {\r\n setVal(val.toString());\r\n }\r\n }\r\n }\r\n }\r\n\r\n const isLocked = (input: string, operator: string): boolean => {\r\n let val = decimalPrecision ? parseFloat(input) : parseInt(input);\r\n val = isNaN(val) && userInput === '' ? 0 : val;\r\n let operatorState = false;\r\n if (operator === 'add' && maxValue)\r\n operatorState = val >= maxValue;\r\n\r\n if (operator === 'subtract' && minValue)\r\n operatorState = val <= minValue;\r\n\r\n if (operator === 'subtract' && !minValue && !allowNegative)\r\n operatorState = val <= 0;\r\n\r\n return operatorState;\r\n }\r\n\r\n const renderNumberFieldElements = () => {\r\n return (\r\n <>\r\n {prefix && <PrefixContainer size={size} disabled={!!disabled} className=\"operator\">\r\n {prefix}\r\n </PrefixContainer>}\r\n\r\n <OperatorWrapper data-testid={'operators'} size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\r\n <SystemIcons.Minus size=\"14px\"/>\r\n </IconButton>\r\n <div className=\"divider\"></div>\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\r\n <SystemIcons.Plus size=\"14px\"/>\r\n </IconButton>\r\n </OperatorWrapper>\r\n </>)\r\n }\r\n\r\n const renderNumberInputElements = () => {\r\n return (\r\n <>\r\n <LeftOperator data-testid={'leftOperator'} size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\r\n <SystemIcons.Minus size=\"14px\"/>\r\n </IconButton>\r\n </LeftOperator>\r\n <RightOperator data-testid={'rightOperator'} size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\r\n <SystemIcons.Plus size=\"14px\"/>\r\n </IconButton>\r\n </RightOperator>\r\n </>)\r\n }\r\n\r\n return (\r\n <Container>\r\n <InputContainer type={type} size={size} tabIndex={-1}>\r\n <NumberInput type={type}\r\n id={id}\r\n data-testid={dataTestId}\r\n fieldSize={size}\r\n hasPrefix={!!prefix}\r\n placeholder={placeholder ? placeholder : 'Enter number'}\r\n value={userInput}\r\n ref={elementRef}\r\n tabIndex={(disabled || readOnly) ? -1 : 0}\r\n onChange={e => handleInput(e)}\r\n onKeyDown={e => handleKeyPress(e)}\r\n required={required}\r\n className={disabled ? ' disabled' : ''\r\n .concat(readOnly ? ' readOnly' : '')\r\n .concat(state ? ` ${state}` : '')\r\n .concat(className ? ` ${className}` : '')}\r\n {...rest}/>\r\n\r\n {type === 'NumberField' && renderNumberFieldElements()}\r\n {type === 'NumberInput' && renderNumberInputElements()}\r\n {!!value && <TooltipOverflow input={elementRef} withArrow={true} maxWidth=\"100%\" size={size} align='end' position='bottom'>\r\n {value?.toString()}\r\n </TooltipOverflow>}\r\n </InputContainer>\r\n\r\n {\r\n note &&\r\n <ValidationMessage type={state || States.Default}>\r\n {noteIcon}\r\n <span>{note}</span>\r\n </ValidationMessage>\r\n }\r\n\r\n </Container>\r\n );\r\n }\r\n )\r\n;\r\n\r\nexport default NumberField;\r\n"],"mappings":"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"}
|
|
@@ -14,7 +14,6 @@ export type NumberFieldProps = Testable & Omit<React.InputHTMLAttributes<HTMLInp
|
|
|
14
14
|
type?: 'NumberField' | 'NumberInput';
|
|
15
15
|
value?: number;
|
|
16
16
|
onChange?: (e: number) => void;
|
|
17
|
-
overflowTooltipPosition?: 'top' | 'bottom';
|
|
18
17
|
};
|
|
19
18
|
declare const NumberField: React.ForwardRefExoticComponent<Testable & Omit<React.InputHTMLAttributes<HTMLInputElement>, "tabIndex" | "prefix" | "onChange" | "onKeyDown" | "onClick" | "size" | "max" | "min" | "value"> & {
|
|
20
19
|
size?: Size.Small | Size.Medium | undefined;
|
|
@@ -30,6 +29,5 @@ declare const NumberField: React.ForwardRefExoticComponent<Testable & Omit<React
|
|
|
30
29
|
type?: "NumberField" | "NumberInput" | undefined;
|
|
31
30
|
value?: number | undefined;
|
|
32
31
|
onChange?: ((e: number) => void) | undefined;
|
|
33
|
-
overflowTooltipPosition?: "top" | "bottom" | undefined;
|
|
34
32
|
} & React.RefAttributes<HTMLInputElement>>;
|
|
35
33
|
export default NumberField;
|
|
@@ -3,7 +3,7 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
4
|
import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
|
|
5
5
|
import _pt from "prop-types";
|
|
6
|
-
var _excluded = ["type", "size", "note", "noteIcon", "required", "prefix", "interval", "minValue", "maxValue", "allowNegative", "decimalPrecision", "disabled", "readOnly", "state", "value", "placeholder", "onChange", "className", "id", "
|
|
6
|
+
var _excluded = ["type", "size", "note", "noteIcon", "required", "prefix", "interval", "minValue", "maxValue", "allowNegative", "decimalPrecision", "disabled", "readOnly", "state", "value", "placeholder", "onChange", "className", "id", "dataTestId"];
|
|
7
7
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
8
8
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
9
9
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -49,7 +49,7 @@ var InputContainer = styled.div(_templateObject5 || (_templateObject5 = _taggedT
|
|
|
49
49
|
return props.type === 'NumberField' ? '160px' : '144px';
|
|
50
50
|
}, function (props) {
|
|
51
51
|
return props.size === Size.Small ? '48px' : '56px';
|
|
52
|
-
}, Z_INDEXES.focus, TooltipTrigger(
|
|
52
|
+
}, Z_INDEXES.focus, TooltipTrigger());
|
|
53
53
|
var LeftOperator = styled.div(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n position: absolute;\n top: ", ";\n left: 0;\n"])), function (props) {
|
|
54
54
|
return props.size === Size.Small ? '0' : '4px';
|
|
55
55
|
});
|
|
@@ -79,7 +79,6 @@ var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
79
79
|
onChange = props.onChange,
|
|
80
80
|
className = props.className,
|
|
81
81
|
id = props.id,
|
|
82
|
-
overflowTooltipPosition = props.overflowTooltipPosition,
|
|
83
82
|
dataTestId = props.dataTestId,
|
|
84
83
|
rest = _objectWithoutProperties(props, _excluded);
|
|
85
84
|
var _React$useState = React.useState(value ? value.toString() : ''),
|
|
@@ -269,13 +268,13 @@ var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
269
268
|
},
|
|
270
269
|
required: required,
|
|
271
270
|
className: disabled ? ' disabled' : ''.concat(readOnly ? ' readOnly' : '').concat(state ? " ".concat(state) : '').concat(className ? " ".concat(className) : '')
|
|
272
|
-
}, rest)), type === 'NumberField' && renderNumberFieldElements(), type === 'NumberInput' && renderNumberInputElements(), value && /*#__PURE__*/_jsx(TooltipOverflow, {
|
|
273
|
-
position: overflowTooltipPosition,
|
|
271
|
+
}, rest)), type === 'NumberField' && renderNumberFieldElements(), type === 'NumberInput' && renderNumberInputElements(), !!value && /*#__PURE__*/_jsx(TooltipOverflow, {
|
|
274
272
|
input: elementRef,
|
|
275
273
|
withArrow: true,
|
|
276
274
|
maxWidth: "100%",
|
|
277
275
|
size: size,
|
|
278
276
|
align: "end",
|
|
277
|
+
position: "bottom",
|
|
279
278
|
children: value === null || value === void 0 ? void 0 : value.toString()
|
|
280
279
|
})]
|
|
281
280
|
}), note && /*#__PURE__*/_jsxs(ValidationMessage, {
|
|
@@ -297,8 +296,7 @@ NumberField.propTypes = {
|
|
|
297
296
|
noteIcon: _pt.node,
|
|
298
297
|
type: _pt.oneOf(['NumberField', 'NumberInput']),
|
|
299
298
|
value: _pt.number,
|
|
300
|
-
onChange: _pt.func
|
|
301
|
-
overflowTooltipPosition: _pt.oneOf(['top', 'bottom'])
|
|
299
|
+
onChange: _pt.func
|
|
302
300
|
};
|
|
303
301
|
export default NumberField;
|
|
304
302
|
//# sourceMappingURL=NumberField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberField.js","names":["React","TooltipTrigger","TooltipOverflow","styled","IconButton","useFocusVisibleRef","SystemIcons","COLORS","focusStyles","Z_INDEXES","ComponentMStyling","ComponentSStyling","ComponentTextStyle","Size","States","ValidationMessage","Container","div","PrefixContainer","props","size","Small","disabled","neutral_300","neutral_500","Regular","OperatorWrapper","Medium","neutral_200","NumberInput","input","neutral_400","fieldSize","black","type","hasPrefix","Italic","primary_800","primary_700","neutral_100","correct_400","critical_400","InputContainer","focus","LeftOperator","RightOperator","NumberField","forwardRef","ref","note","noteIcon","required","prefix","interval","minValue","maxValue","allowNegative","decimalPrecision","readOnly","state","value","placeholder","onChange","className","id","overflowTooltipPosition","dataTestId","rest","useState","toString","userInput","setUserInput","elementRef","useEffect","useImperativeHandle","current","setVal","e","handleKeyPress","key","addInterval","subtractInterval","handleInput","preventDefault","simpleRegex","RegExp","decimalFormationRegEx","negativeDecimalFormationRegEx","allowNegativeRegex","decimalPrecisionRegex","undefined","negativeAndDecimalRegex","val","target","length","charAt","test","isInRange","replace","indexOf","lastIndexOf","includes","isDecimal","x","parseFloat","toFixed","parseInt","isNaN","Math","round","pow","isLocked","operator","operatorState","renderNumberFieldElements","renderNumberInputElements","concat","Default"],"sources":["../../src/InputFields/NumberField.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { TooltipTrigger } from '../Tooltips/TooltipStyles';\r\nimport TooltipOverflow from '../Tooltips/TooltipOverflow';\r\nimport styled from 'styled-components';\r\nimport {IconButton} from '../Button';\r\nimport {useFocusVisibleRef} from '../common';\r\nimport {SystemIcons} from '../icons';\r\nimport {COLORS, focusStyles, Z_INDEXES} from '../styles';\r\nimport {\r\n ComponentMStyling,\r\n ComponentSStyling,\r\n ComponentTextStyle,\r\n ComponentXSStyling,\r\n ComponentXXSStyling\r\n} from '../styles/typography';\r\nimport {Size, States, Testable} from '../types';\r\nimport {ValidationMessage} from \"./styling\";\r\n\r\nconst Container = styled.div``;\r\n\r\nconst PrefixContainer = styled.div<{ size: Size, disabled: boolean }>`\r\n width: ${props => props.size === Size.Small ? '10px' : '11px'};\r\n height: ${props => props.size === Size.Small ? '20px' : '24px'};\r\n color: ${props => props.disabled ? COLORS.neutral_300 : COLORS.neutral_500};\r\n ${props => props.size === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, null) : ComponentMStyling(ComponentTextStyle.Regular, null)}\r\n position: absolute;\r\n padding: ${props => props.size === Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px'};\r\n`;\r\n\r\nconst OperatorWrapper = styled.div<{ size: Size }>`\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n display: flex;\r\n margin: ${props => props.size === Size.Medium ? '4px 0' : ''};\r\n\r\n svg {\r\n height: 14px;\r\n width: 14px;\r\n }\r\n\r\n .divider {\r\n margin: 16px 0;\r\n background: ${COLORS.neutral_200};\r\n width: 1px;\r\n }\r\n`;\r\n\r\nconst NumberInput = styled.input<{ fieldSize: Size, hasPrefix: boolean, type: string }>`\r\n width: 100%;\r\n border: none;\r\n border-radius: 4px;\r\n text-overflow: ellipsis;\r\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_400};\r\n outline: none;\r\n color: ${COLORS.neutral_500};\r\n\r\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.black) : ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}\r\n ${props => props.type === 'NumberField' ? `\r\n padding: ${props.fieldSize === Size.Small ? '14px 97px 14px 16px' : '16px 97px 16px 16px'};\r\n padding-left: ${props.hasPrefix ? '30px' : ''};\r\n ` : ''}\r\n ${props => props.type === 'NumberInput' ? `\r\n padding: ${props.fieldSize === Size.Small ? '14px 48px' : '16px 48px'};\r\n ` : ''}\r\n &::placeholder {\r\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Italic, null) : ComponentMStyling(ComponentTextStyle.Italic, null)}\r\n }\r\n\r\n &:focus:not(.focus-visible):not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\r\n box-shadow: inset 0 0 0 2px ${COLORS.primary_800};\r\n }\r\n\r\n &.focus-visible {\r\n ${focusStyles}\r\n }\r\n\r\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\r\n box-shadow: inset 0 0 0 2px ${COLORS.primary_700};\r\n }\r\n\r\n &.disabled {\r\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_100};\r\n cursor: not-allowed;\r\n color: ${COLORS.neutral_300};\r\n pointer-events: none;\r\n\r\n &::placeholder {\r\n color: ${COLORS.neutral_300};\r\n }\r\n }\r\n\r\n &.readOnly {\r\n background: ${COLORS.neutral_100};\r\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_300};\r\n cursor: not-allowed;\r\n background: ${COLORS.neutral_100};\r\n pointer-events: none;\r\n color: ${COLORS.neutral_500};\r\n }\r\n\r\n &.valid {\r\n box-shadow: inset 0 0 0 2px ${COLORS.correct_400};\r\n }\r\n\r\n &.invalid {\r\n box-shadow: inset 0 0 0 2px ${COLORS.critical_400};\r\n }\r\n`;\r\n\r\nconst InputContainer = styled.div<{ size: Size, type: string }>`\r\n min-width: ${props => props.type === 'NumberField' ? '160px' : '144px'};\r\n height: ${props => props.size === Size.Small ? '48px' : '56px'};\r\n display: flex;\r\n position: relative;\r\n margin-bottom: 4px;\r\n\r\n input.focus-visible ~ div.operator {\r\n z-index: ${Z_INDEXES.focus};\r\n }\r\n\r\n ${TooltipTrigger('hover')}\r\n`;\r\n\r\nconst LeftOperator = styled.div<{ size: Size }>`\r\n position: absolute;\r\n top: ${props => props.size === Size.Small ? '0' : '4px'};\r\n left: 0;\r\n`;\r\n\r\nconst RightOperator = styled.div<{ size: Size }>`\r\n position: absolute;\r\n top: ${props => props.size === Size.Small ? '0' : '4px'};\r\n right: 0;\r\n`;\r\n\r\nexport type NumberFieldProps =\r\n Testable & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'onKeyDown' | 'onClick' | 'tabIndex' | 'size' | 'value' | 'prefix' | 'min' | 'max'>\r\n & {\r\n size?: Size.Small | Size.Medium;\r\n prefix?: string;\r\n interval?: number;\r\n\r\n minValue?: number;\r\n maxValue?: number;\r\n allowNegative?: boolean;\r\n decimalPrecision?: number;\r\n\r\n state?: States.Valid | States.Invalid;\r\n note?: string;\r\n noteIcon?: React.ReactNode;\r\n\r\n type?: 'NumberField' | 'NumberInput';\r\n value?: number;\r\n onChange?: (e: number) => void;\r\n overflowTooltipPosition?: 'top' | 'bottom';\r\n}\r\n\r\nconst NumberField = React.forwardRef<HTMLInputElement, NumberFieldProps>((props, ref) => {\r\n const {\r\n type = 'NumberField',\r\n size = Size.Medium,\r\n note,\r\n noteIcon,\r\n required,\r\n prefix,\r\n interval = 1,\r\n minValue,\r\n maxValue,\r\n allowNegative,\r\n decimalPrecision,\r\n disabled,\r\n readOnly,\r\n state,\r\n value,\r\n placeholder,\r\n onChange,\r\n className,\r\n id,\r\n overflowTooltipPosition,\r\n dataTestId,\r\n ...rest\r\n } = props;\r\n\r\n const [userInput, setUserInput] = React.useState(value ? value.toString() : '');\r\n\r\n const elementRef = useFocusVisibleRef();\r\n\r\n React.useEffect(() => setUserInput(`${value ?? ''}`), [value]);\r\n\r\n React.useImperativeHandle(ref, () => elementRef.current, [elementRef]);\r\n\r\n const setVal = (e: string) => {\r\n setUserInput(e);\r\n onChange && onChange(+e);\r\n }\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n addInterval();\r\n break;\r\n case 'ArrowDown':\r\n subtractInterval();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const handleInput = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n e.preventDefault();\r\n let simpleRegex = new RegExp(/^[0-9]\\d*$/);\r\n let decimalFormationRegEx = new RegExp(/^[0-9]\\d*\\.$/);\r\n let negativeDecimalFormationRegEx = new RegExp(/^[-][0-9]\\d*\\.$/);\r\n\r\n let allowNegativeRegex = new RegExp(/^[-][0-9]\\d*$/);\r\n let decimalPrecisionRegex = decimalPrecision ? new RegExp(`^[0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\r\n let negativeAndDecimalRegex = (decimalPrecision && allowNegative) ? new RegExp(`^[-][0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\r\n\r\n let val = e.target.value;\r\n if (val !== '') {\r\n if (allowNegative && decimalPrecision) {\r\n if (val.length === 1 && val.charAt(0) === '-')\r\n setVal(val);\r\n else {\r\n if ((negativeAndDecimalRegex!.test(val) || decimalPrecisionRegex!.test(val)) && isInRange(val, true))\r\n setVal(val);\r\n\r\n else if ((negativeDecimalFormationRegEx.test(val) || decimalFormationRegEx.test(val)) && isInRange(val.replace('.', ''), true))\r\n setVal(val);\r\n\r\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, true))\r\n setVal(val);\r\n }\r\n } else if (allowNegative) {\r\n if (val.length === 1 && val.charAt(0) === '-')\r\n setVal(val);\r\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, false))\r\n setVal(val);\r\n } else if (decimalPrecision && (val.indexOf('.') === val.lastIndexOf('.')) && isInRange(val, true)) {\r\n if (decimalPrecisionRegex!.test(val))\r\n setVal(val);\r\n else if (decimalFormationRegEx.test(val))\r\n setVal(val);\r\n else if (!val.includes('.') && simpleRegex.test(val))\r\n setVal(val);\r\n } else if (simpleRegex.test(val) && isInRange(val, false)) {\r\n setVal(val);\r\n }\r\n }\r\n\r\n if (val === '')\r\n setVal('');\r\n }\r\n\r\n const isInRange = (value: string, isDecimal: boolean): boolean => {\r\n let x = isDecimal ? parseFloat(value).toFixed(decimalPrecision) : parseInt(value);\r\n if (minValue && minValue > x)\r\n return false;\r\n else if (maxValue && maxValue < x)\r\n return false;\r\n else\r\n return true;\r\n }\r\n\r\n const addInterval = () => {\r\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\r\n val = isNaN(val) && userInput === '' ? (minValue ? minValue - 1 : 0) : val;\r\n if (!isNaN(val)) {\r\n if (decimalPrecision)\r\n val = Math.round((val + interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\r\n else\r\n val += 1;\r\n\r\n if (maxValue && maxValue >= val)\r\n setVal(val.toString());\r\n else if (!maxValue)\r\n setVal(val.toString());\r\n }\r\n }\r\n\r\n const subtractInterval = () => {\r\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\r\n val = isNaN(val) && userInput === '' ? (maxValue ? maxValue + 1 : 0) : val;\r\n if (!isNaN(val)) {\r\n if (decimalPrecision)\r\n val = Math.round((val - interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\r\n else\r\n val -= 1;\r\n\r\n if ((minValue && minValue <= val) || !minValue) {\r\n if (allowNegative || val >= 0) {\r\n setVal(val.toString());\r\n }\r\n }\r\n }\r\n }\r\n\r\n const isLocked = (input: string, operator: string): boolean => {\r\n let val = decimalPrecision ? parseFloat(input) : parseInt(input);\r\n val = isNaN(val) && userInput === '' ? 0 : val;\r\n let operatorState = false;\r\n if (operator === 'add' && maxValue)\r\n operatorState = val >= maxValue;\r\n\r\n if (operator === 'subtract' && minValue)\r\n operatorState = val <= minValue;\r\n\r\n if (operator === 'subtract' && !minValue && !allowNegative)\r\n operatorState = val <= 0;\r\n\r\n return operatorState;\r\n }\r\n\r\n const renderNumberFieldElements = () => {\r\n return (\r\n <>\r\n {prefix && <PrefixContainer size={size} disabled={!!disabled} className=\"operator\">\r\n {prefix}\r\n </PrefixContainer>}\r\n\r\n <OperatorWrapper data-testid={'operators'} size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\r\n <SystemIcons.Minus size=\"14px\"/>\r\n </IconButton>\r\n <div className=\"divider\"></div>\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\r\n <SystemIcons.Plus size=\"14px\"/>\r\n </IconButton>\r\n </OperatorWrapper>\r\n </>)\r\n }\r\n\r\n const renderNumberInputElements = () => {\r\n return (\r\n <>\r\n <LeftOperator data-testid={'leftOperator'} size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\r\n <SystemIcons.Minus size=\"14px\"/>\r\n </IconButton>\r\n </LeftOperator>\r\n <RightOperator data-testid={'rightOperator'} size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\r\n <SystemIcons.Plus size=\"14px\"/>\r\n </IconButton>\r\n </RightOperator>\r\n </>)\r\n }\r\n\r\n return (\r\n <Container>\r\n <InputContainer type={type} size={size} tabIndex={-1}>\r\n <NumberInput type={type}\r\n id={id}\r\n data-testid={dataTestId}\r\n fieldSize={size}\r\n hasPrefix={!!prefix}\r\n placeholder={placeholder ? placeholder : 'Enter number'}\r\n value={userInput}\r\n ref={elementRef}\r\n tabIndex={(disabled || readOnly) ? -1 : 0}\r\n onChange={e => handleInput(e)}\r\n onKeyDown={e => handleKeyPress(e)}\r\n required={required}\r\n className={disabled ? ' disabled' : ''\r\n .concat(readOnly ? ' readOnly' : '')\r\n .concat(state ? ` ${state}` : '')\r\n .concat(className ? ` ${className}` : '')}\r\n {...rest}/>\r\n\r\n {type === 'NumberField' && renderNumberFieldElements()}\r\n {type === 'NumberInput' && renderNumberInputElements()}\r\n {value && <TooltipOverflow position={overflowTooltipPosition} input={elementRef} withArrow={true} maxWidth=\"100%\" size={size} align='end'>\r\n {value?.toString()}\r\n </TooltipOverflow>}\r\n </InputContainer>\r\n\r\n {\r\n note &&\r\n <ValidationMessage type={state || States.Default}>\r\n {noteIcon}\r\n <span>{note}</span>\r\n </ValidationMessage>\r\n }\r\n\r\n </Container>\r\n );\r\n }\r\n )\r\n;\r\n\r\nexport default NumberField;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NumberField.js","names":["React","TooltipTrigger","TooltipOverflow","styled","IconButton","useFocusVisibleRef","SystemIcons","COLORS","focusStyles","Z_INDEXES","ComponentMStyling","ComponentSStyling","ComponentTextStyle","Size","States","ValidationMessage","Container","div","PrefixContainer","props","size","Small","disabled","neutral_300","neutral_500","Regular","OperatorWrapper","Medium","neutral_200","NumberInput","input","neutral_400","fieldSize","black","type","hasPrefix","Italic","primary_800","primary_700","neutral_100","correct_400","critical_400","InputContainer","focus","LeftOperator","RightOperator","NumberField","forwardRef","ref","note","noteIcon","required","prefix","interval","minValue","maxValue","allowNegative","decimalPrecision","readOnly","state","value","placeholder","onChange","className","id","dataTestId","rest","useState","toString","userInput","setUserInput","elementRef","useEffect","useImperativeHandle","current","setVal","e","handleKeyPress","key","addInterval","subtractInterval","handleInput","preventDefault","simpleRegex","RegExp","decimalFormationRegEx","negativeDecimalFormationRegEx","allowNegativeRegex","decimalPrecisionRegex","undefined","negativeAndDecimalRegex","val","target","length","charAt","test","isInRange","replace","indexOf","lastIndexOf","includes","isDecimal","x","parseFloat","toFixed","parseInt","isNaN","Math","round","pow","isLocked","operator","operatorState","renderNumberFieldElements","renderNumberInputElements","concat","Default"],"sources":["../../src/InputFields/NumberField.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { TooltipTrigger } from '../Tooltips/TooltipStyles';\r\nimport TooltipOverflow from '../Tooltips/TooltipOverflow';\r\nimport styled from 'styled-components';\r\nimport {IconButton} from '../Button';\r\nimport {useFocusVisibleRef} from '../common';\r\nimport {SystemIcons} from '../icons';\r\nimport {COLORS, focusStyles, Z_INDEXES} from '../styles';\r\nimport {\r\n ComponentMStyling,\r\n ComponentSStyling,\r\n ComponentTextStyle,\r\n ComponentXSStyling,\r\n ComponentXXSStyling\r\n} from '../styles/typography';\r\nimport {Size, States, Testable} from '../types';\r\nimport {ValidationMessage} from \"./styling\";\r\n\r\nconst Container = styled.div``;\r\n\r\nconst PrefixContainer = styled.div<{ size: Size, disabled: boolean }>`\r\n width: ${props => props.size === Size.Small ? '10px' : '11px'};\r\n height: ${props => props.size === Size.Small ? '20px' : '24px'};\r\n color: ${props => props.disabled ? COLORS.neutral_300 : COLORS.neutral_500};\r\n ${props => props.size === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, null) : ComponentMStyling(ComponentTextStyle.Regular, null)}\r\n position: absolute;\r\n padding: ${props => props.size === Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px'};\r\n`;\r\n\r\nconst OperatorWrapper = styled.div<{ size: Size }>`\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n display: flex;\r\n margin: ${props => props.size === Size.Medium ? '4px 0' : ''};\r\n\r\n svg {\r\n height: 14px;\r\n width: 14px;\r\n }\r\n\r\n .divider {\r\n margin: 16px 0;\r\n background: ${COLORS.neutral_200};\r\n width: 1px;\r\n }\r\n`;\r\n\r\nconst NumberInput = styled.input<{ fieldSize: Size, hasPrefix: boolean, type: string }>`\r\n width: 100%;\r\n border: none;\r\n border-radius: 4px;\r\n text-overflow: ellipsis;\r\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_400};\r\n outline: none;\r\n color: ${COLORS.neutral_500};\r\n\r\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.black) : ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}\r\n ${props => props.type === 'NumberField' ? `\r\n padding: ${props.fieldSize === Size.Small ? '14px 97px 14px 16px' : '16px 97px 16px 16px'};\r\n padding-left: ${props.hasPrefix ? '30px' : ''};\r\n ` : ''}\r\n ${props => props.type === 'NumberInput' ? `\r\n padding: ${props.fieldSize === Size.Small ? '14px 48px' : '16px 48px'};\r\n ` : ''}\r\n &::placeholder {\r\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Italic, null) : ComponentMStyling(ComponentTextStyle.Italic, null)}\r\n }\r\n\r\n &:focus:not(.focus-visible):not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\r\n box-shadow: inset 0 0 0 2px ${COLORS.primary_800};\r\n }\r\n\r\n &.focus-visible {\r\n ${focusStyles}\r\n }\r\n\r\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\r\n box-shadow: inset 0 0 0 2px ${COLORS.primary_700};\r\n }\r\n\r\n &.disabled {\r\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_100};\r\n cursor: not-allowed;\r\n color: ${COLORS.neutral_300};\r\n pointer-events: none;\r\n\r\n &::placeholder {\r\n color: ${COLORS.neutral_300};\r\n }\r\n }\r\n\r\n &.readOnly {\r\n background: ${COLORS.neutral_100};\r\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_300};\r\n cursor: not-allowed;\r\n background: ${COLORS.neutral_100};\r\n pointer-events: none;\r\n color: ${COLORS.neutral_500};\r\n }\r\n\r\n &.valid {\r\n box-shadow: inset 0 0 0 2px ${COLORS.correct_400};\r\n }\r\n\r\n &.invalid {\r\n box-shadow: inset 0 0 0 2px ${COLORS.critical_400};\r\n }\r\n`;\r\n\r\nconst InputContainer = styled.div<{ size: Size, type: string }>`\r\n min-width: ${props => props.type === 'NumberField' ? '160px' : '144px'};\r\n height: ${props => props.size === Size.Small ? '48px' : '56px'};\r\n display: flex;\r\n position: relative;\r\n margin-bottom: 4px;\r\n\r\n input.focus-visible ~ div.operator {\r\n z-index: ${Z_INDEXES.focus};\r\n }\r\n\r\n ${TooltipTrigger()}\r\n`;\r\n\r\nconst LeftOperator = styled.div<{ size: Size }>`\r\n position: absolute;\r\n top: ${props => props.size === Size.Small ? '0' : '4px'};\r\n left: 0;\r\n`;\r\n\r\nconst RightOperator = styled.div<{ size: Size }>`\r\n position: absolute;\r\n top: ${props => props.size === Size.Small ? '0' : '4px'};\r\n right: 0;\r\n`;\r\n\r\nexport type NumberFieldProps =\r\n Testable & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'onKeyDown' | 'onClick' | 'tabIndex' | 'size' | 'value' | 'prefix' | 'min' | 'max'>\r\n & {\r\n size?: Size.Small | Size.Medium;\r\n prefix?: string;\r\n interval?: number;\r\n\r\n minValue?: number;\r\n maxValue?: number;\r\n allowNegative?: boolean;\r\n decimalPrecision?: number;\r\n\r\n state?: States.Valid | States.Invalid;\r\n note?: string;\r\n noteIcon?: React.ReactNode;\r\n\r\n type?: 'NumberField' | 'NumberInput';\r\n value?: number;\r\n onChange?: (e: number) => void;\r\n}\r\n\r\nconst NumberField = React.forwardRef<HTMLInputElement, NumberFieldProps>((props, ref) => {\r\n const {\r\n type = 'NumberField',\r\n size = Size.Medium,\r\n note,\r\n noteIcon,\r\n required,\r\n prefix,\r\n interval = 1,\r\n minValue,\r\n maxValue,\r\n allowNegative,\r\n decimalPrecision,\r\n disabled,\r\n readOnly,\r\n state,\r\n value,\r\n placeholder,\r\n onChange,\r\n className,\r\n id,\r\n dataTestId,\r\n ...rest\r\n } = props;\r\n\r\n const [userInput, setUserInput] = React.useState(value ? value.toString() : '');\r\n\r\n const elementRef = useFocusVisibleRef();\r\n\r\n React.useEffect(() => setUserInput(`${value ?? ''}`), [value]);\r\n\r\n React.useImperativeHandle(ref, () => elementRef.current, [elementRef]);\r\n\r\n const setVal = (e: string) => {\r\n setUserInput(e);\r\n onChange && onChange(+e);\r\n }\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n addInterval();\r\n break;\r\n case 'ArrowDown':\r\n subtractInterval();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const handleInput = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n e.preventDefault();\r\n let simpleRegex = new RegExp(/^[0-9]\\d*$/);\r\n let decimalFormationRegEx = new RegExp(/^[0-9]\\d*\\.$/);\r\n let negativeDecimalFormationRegEx = new RegExp(/^[-][0-9]\\d*\\.$/);\r\n\r\n let allowNegativeRegex = new RegExp(/^[-][0-9]\\d*$/);\r\n let decimalPrecisionRegex = decimalPrecision ? new RegExp(`^[0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\r\n let negativeAndDecimalRegex = (decimalPrecision && allowNegative) ? new RegExp(`^[-][0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\r\n\r\n let val = e.target.value;\r\n if (val !== '') {\r\n if (allowNegative && decimalPrecision) {\r\n if (val.length === 1 && val.charAt(0) === '-')\r\n setVal(val);\r\n else {\r\n if ((negativeAndDecimalRegex!.test(val) || decimalPrecisionRegex!.test(val)) && isInRange(val, true))\r\n setVal(val);\r\n\r\n else if ((negativeDecimalFormationRegEx.test(val) || decimalFormationRegEx.test(val)) && isInRange(val.replace('.', ''), true))\r\n setVal(val);\r\n\r\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, true))\r\n setVal(val);\r\n }\r\n } else if (allowNegative) {\r\n if (val.length === 1 && val.charAt(0) === '-')\r\n setVal(val);\r\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, false))\r\n setVal(val);\r\n } else if (decimalPrecision && (val.indexOf('.') === val.lastIndexOf('.')) && isInRange(val, true)) {\r\n if (decimalPrecisionRegex!.test(val))\r\n setVal(val);\r\n else if (decimalFormationRegEx.test(val))\r\n setVal(val);\r\n else if (!val.includes('.') && simpleRegex.test(val))\r\n setVal(val);\r\n } else if (simpleRegex.test(val) && isInRange(val, false)) {\r\n setVal(val);\r\n }\r\n }\r\n\r\n if (val === '')\r\n setVal('');\r\n }\r\n\r\n const isInRange = (value: string, isDecimal: boolean): boolean => {\r\n let x = isDecimal ? parseFloat(value).toFixed(decimalPrecision) : parseInt(value);\r\n if (minValue && minValue > x)\r\n return false;\r\n else if (maxValue && maxValue < x)\r\n return false;\r\n else\r\n return true;\r\n }\r\n\r\n const addInterval = () => {\r\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\r\n val = isNaN(val) && userInput === '' ? (minValue ? minValue - 1 : 0) : val;\r\n if (!isNaN(val)) {\r\n if (decimalPrecision)\r\n val = Math.round((val + interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\r\n else\r\n val += 1;\r\n\r\n if (maxValue && maxValue >= val)\r\n setVal(val.toString());\r\n else if (!maxValue)\r\n setVal(val.toString());\r\n }\r\n }\r\n\r\n const subtractInterval = () => {\r\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\r\n val = isNaN(val) && userInput === '' ? (maxValue ? maxValue + 1 : 0) : val;\r\n if (!isNaN(val)) {\r\n if (decimalPrecision)\r\n val = Math.round((val - interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\r\n else\r\n val -= 1;\r\n\r\n if ((minValue && minValue <= val) || !minValue) {\r\n if (allowNegative || val >= 0) {\r\n setVal(val.toString());\r\n }\r\n }\r\n }\r\n }\r\n\r\n const isLocked = (input: string, operator: string): boolean => {\r\n let val = decimalPrecision ? parseFloat(input) : parseInt(input);\r\n val = isNaN(val) && userInput === '' ? 0 : val;\r\n let operatorState = false;\r\n if (operator === 'add' && maxValue)\r\n operatorState = val >= maxValue;\r\n\r\n if (operator === 'subtract' && minValue)\r\n operatorState = val <= minValue;\r\n\r\n if (operator === 'subtract' && !minValue && !allowNegative)\r\n operatorState = val <= 0;\r\n\r\n return operatorState;\r\n }\r\n\r\n const renderNumberFieldElements = () => {\r\n return (\r\n <>\r\n {prefix && <PrefixContainer size={size} disabled={!!disabled} className=\"operator\">\r\n {prefix}\r\n </PrefixContainer>}\r\n\r\n <OperatorWrapper data-testid={'operators'} size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\r\n <SystemIcons.Minus size=\"14px\"/>\r\n </IconButton>\r\n <div className=\"divider\"></div>\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\r\n <SystemIcons.Plus size=\"14px\"/>\r\n </IconButton>\r\n </OperatorWrapper>\r\n </>)\r\n }\r\n\r\n const renderNumberInputElements = () => {\r\n return (\r\n <>\r\n <LeftOperator data-testid={'leftOperator'} size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\r\n <SystemIcons.Minus size=\"14px\"/>\r\n </IconButton>\r\n </LeftOperator>\r\n <RightOperator data-testid={'rightOperator'} size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\r\n <SystemIcons.Plus size=\"14px\"/>\r\n </IconButton>\r\n </RightOperator>\r\n </>)\r\n }\r\n\r\n return (\r\n <Container>\r\n <InputContainer type={type} size={size} tabIndex={-1}>\r\n <NumberInput type={type}\r\n id={id}\r\n data-testid={dataTestId}\r\n fieldSize={size}\r\n hasPrefix={!!prefix}\r\n placeholder={placeholder ? placeholder : 'Enter number'}\r\n value={userInput}\r\n ref={elementRef}\r\n tabIndex={(disabled || readOnly) ? -1 : 0}\r\n onChange={e => handleInput(e)}\r\n onKeyDown={e => handleKeyPress(e)}\r\n required={required}\r\n className={disabled ? ' disabled' : ''\r\n .concat(readOnly ? ' readOnly' : '')\r\n .concat(state ? ` ${state}` : '')\r\n .concat(className ? ` ${className}` : '')}\r\n {...rest}/>\r\n\r\n {type === 'NumberField' && renderNumberFieldElements()}\r\n {type === 'NumberInput' && renderNumberInputElements()}\r\n {!!value && <TooltipOverflow input={elementRef} withArrow={true} maxWidth=\"100%\" size={size} align='end' position='bottom'>\r\n {value?.toString()}\r\n </TooltipOverflow>}\r\n </InputContainer>\r\n\r\n {\r\n note &&\r\n <ValidationMessage type={state || States.Default}>\r\n {noteIcon}\r\n <span>{note}</span>\r\n </ValidationMessage>\r\n }\r\n\r\n </Container>\r\n );\r\n }\r\n )\r\n;\r\n\r\nexport default NumberField;\r\n"],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export type PasswordFieldProps = Testable & Omit<React.InputHTMLAttributes<HTMLI
|
|
|
14
14
|
size?: Size.Small | Size.Medium;
|
|
15
15
|
margin?: string;
|
|
16
16
|
};
|
|
17
|
-
declare const PasswordField: React.ForwardRefExoticComponent<Testable & Omit<React.InputHTMLAttributes<HTMLInputElement>, "type" | "id" | "
|
|
17
|
+
declare const PasswordField: React.ForwardRefExoticComponent<Testable & Omit<React.InputHTMLAttributes<HTMLInputElement>, "type" | "id" | "tabIndex" | "onChange" | "size" | "disabled" | "value" | "autoComplete" | "placeholder" | "readOnly" | "required"> & {
|
|
18
18
|
id: string;
|
|
19
19
|
disabled?: boolean | undefined;
|
|
20
20
|
onChange?: ((text: string) => void) | undefined;
|
|
@@ -38,6 +38,7 @@ var SearchBar = function SearchBar(_ref) {
|
|
|
38
38
|
dropdownButtonIcon = _ref.dropdownButtonIcon,
|
|
39
39
|
dropdownButtonLabel = _ref.dropdownButtonLabel,
|
|
40
40
|
dropdownButtonVariant = _ref.dropdownButtonVariant,
|
|
41
|
+
dropdownButtonLoading = _ref.dropdownButtonLoading,
|
|
41
42
|
dropdownButtonAction = _ref.dropdownButtonAction,
|
|
42
43
|
_ref$searchList = _ref.searchList,
|
|
43
44
|
searchList = _ref$searchList === void 0 ? [] : _ref$searchList,
|
|
@@ -141,7 +142,8 @@ var SearchBar = function SearchBar(_ref) {
|
|
|
141
142
|
actionVariant: dropdownButtonVariant,
|
|
142
143
|
onValueUpdate: function onValueUpdate(e) {},
|
|
143
144
|
scrollable: dropdownScrollable,
|
|
144
|
-
pinTopItem: true
|
|
145
|
+
pinTopItem: true,
|
|
146
|
+
actionLoading: dropdownButtonLoading
|
|
145
147
|
},
|
|
146
148
|
isOpen: isOpen,
|
|
147
149
|
setIsOpen: setIsOpen,
|
|
@@ -180,6 +182,7 @@ SearchBar.propTypes = {
|
|
|
180
182
|
showDropdown: _propTypes.default.bool,
|
|
181
183
|
dropdownButtonIcon: _propTypes.default.node,
|
|
182
184
|
dropdownButtonLabel: _propTypes.default.string,
|
|
185
|
+
dropdownButtonLoading: _propTypes.default.bool,
|
|
183
186
|
dropdownButtonVariant: _propTypes.default.oneOf(['primary', 'secondary', 'tertiary']),
|
|
184
187
|
dropdownButtonAction: _propTypes.default.func,
|
|
185
188
|
searchList: _propTypes.default.array,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchBar.cjs","names":["ClearIconWrapper","styled","div","SearchBar","id","searchTerm","setSearchTerm","enterSearch","removeSearch","placeholder","performSearchLabel","disabled","validationMessage","onKeyDown","size","margin","showDropdown","dropdownButtonIcon","dropdownButtonLabel","dropdownButtonVariant","dropdownButtonAction","searchList","addToSearchList","dropdownScrollable","containerRef","React","useRef","useState","isOpen","setIsOpen","dropdownRef","useClickOutsideRef","isPressingEnter","e","key","preventDefault","stopPropagation","enteredSearchTerm","value","target","dropdownAction","term","concat","items","action","actionLabel","actionIcon","actionVariant","onValueUpdate","scrollable","pinTopItem","COLORS","critical_400"],"sources":["../../src/InputFields/SearchBar.tsx"],"sourcesContent":["import React from 'react';\r\nimport {COLORS} from '../styles/index';\r\nimport {SystemIcons} from '../icons';\r\nimport {ErrorMessage, InputWrapper, SearchIconWrapper} from './styling';\r\nimport {IconButton} from '../Button';\r\nimport SearchBarInput from './components/SearchBarInput';\r\nimport SearchField from './components/SearchField';\r\nimport {Size} from '../types';\r\nimport styled from 'styled-components';\r\nimport { DropdownContent, DropdownItem } from '../Dropdown';\r\nimport { useClickOutsideRef } from '../common';\r\n\r\nexport type SearchBarProps = {\r\n id: string;\r\n searchTerm?: string;\r\n setSearchTerm: (term: string) => void;\r\n enterSearch: (e: any) => void;\r\n removeSearch: (e: any) => void;\r\n placeholder?: string;\r\n performSearchLabel?: string;\r\n disabled?: boolean;\r\n validationMessage?: string;\r\n onKeyDown?: (e: React.KeyboardEvent) => void;\r\n size?: Size.Small | Size.Medium;\r\n margin?: string;\r\n showDropdown?: boolean;\r\n dropdownButtonIcon?: React.ReactNode;\r\n dropdownButtonLabel?: string;\r\n dropdownButtonVariant?: 'primary' | 'secondary' | 'tertiary';\r\n dropdownButtonAction?: () => boolean | void | undefined;\r\n searchList?: DropdownItem[];\r\n addToSearchList?: (e: DropdownItem) => void;\r\n dropdownScrollable?: boolean;\r\n};\r\n\r\nconst ClearIconWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n\r\n &.hidden {\r\n display: none !important;\r\n }\r\n`;\r\n\r\nconst SearchBar: React.FunctionComponent<SearchBarProps> = ({\r\n id,\r\n searchTerm,\r\n setSearchTerm,\r\n enterSearch,\r\n removeSearch,\r\n placeholder,\r\n performSearchLabel,\r\n disabled,\r\n validationMessage,\r\n onKeyDown,\r\n size,\r\n margin,\r\n showDropdown,\r\n dropdownButtonIcon,\r\n dropdownButtonLabel,\r\n dropdownButtonVariant,\r\n dropdownButtonAction,\r\n searchList=[],\r\n addToSearchList,\r\n dropdownScrollable\r\n }) => {\r\n const containerRef = React.useRef<any>(null);\r\n\r\n const [isOpen, setIsOpen] = React.useState(false);\r\n const dropdownRef = useClickOutsideRef(()=>setIsOpen(false), [containerRef]);\r\n\r\n const isPressingEnter = (e: any) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n const enteredSearchTerm = (e: any) => {\r\n addToSearchList && addToSearchList({value:e.target.value});\r\n enterSearch(e);\r\n }\r\n\r\n const dropdownAction = () => {\r\n if(dropdownButtonAction)\r\n dropdownButtonAction(); \r\n }\r\n\r\n return (\r\n <>\r\n <InputWrapper\r\n disabled={disabled}\r\n margin={margin}>\r\n <SearchField id={'id'} size={size}\r\n ref={containerRef}\r\n searchTerm={searchTerm}\r\n disabled={disabled}\r\n validationMessage={validationMessage}>\r\n <SearchBarInput\r\n placeholder={disabled ? '' : placeholder}\r\n id={id}\r\n size={size}\r\n disabled={disabled}\r\n setSearchTerm={(term: string) => setSearchTerm(term)}\r\n searchTerm={searchTerm}\r\n onKeyDown={onKeyDown}\r\n enterSearch={enteredSearchTerm}\r\n focusParentRefs={[containerRef]}\r\n onClick={()=>setIsOpen(!isOpen)}\r\n ref={dropdownRef}\r\n />\r\n <SearchIconWrapper className={size ? size : ''} aria-label={performSearchLabel}>\r\n <IconButton id={`${id}_Search`}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n action={enterSearch}\r\n disabled={disabled}\r\n onKeyPress={(e: any) => (isPressingEnter(e) ? enterSearch(e) : null)}>\r\n <SystemIcons.Search size=\"24px\"/>\r\n </IconButton>\r\n </SearchIconWrapper>\r\n <ClearIconWrapper className={(size ? size : '').concat(!searchTerm ? ' hidden' : '')}>\r\n <IconButton id={`${id}_Clear`}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n action={removeSearch}\r\n disabled={disabled}\r\n onKeyPress={(e: any) => (isPressingEnter(e) ? removeSearch(e) : null)}>\r\n <SystemIcons.Clear size=\"24px\"/>\r\n </IconButton>\r\n </ClearIconWrapper>\r\n </SearchField>\r\n\r\n {showDropdown && <DropdownContent id={'search'}\r\n containerRef={containerRef}\r\n size={size}\r\n isButton={false}\r\n ariaRolesType=\"input\"\r\n customizationProps={{\r\n items:searchList,\r\n action: dropdownAction,\r\n actionLabel: dropdownButtonLabel,\r\n actionIcon: dropdownButtonIcon,\r\n actionVariant: dropdownButtonVariant,\r\n onValueUpdate:(e)=>{},\r\n scrollable: dropdownScrollable,\r\n pinTopItem: true\r\n }}\r\n isOpen={isOpen}\r\n setIsOpen={setIsOpen}\r\n filter={''}\r\n selectedValues={searchTerm ? [searchTerm] : []}\r\n setSelectedValues={(e)=>setSearchTerm(e[0])}\r\n messageOnNoResults={''}\r\n focused={null}\r\n setFocused={()=>{}}\r\n />}\r\n\r\n </InputWrapper>\r\n {validationMessage && (\r\n <ErrorMessage className={size || ''}>\r\n <SystemIcons.TechnicalWarning color={COLORS.critical_400} className={size || ''}/>\r\n <span>{validationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default SearchBar;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SearchBar.cjs","names":["ClearIconWrapper","styled","div","SearchBar","id","searchTerm","setSearchTerm","enterSearch","removeSearch","placeholder","performSearchLabel","disabled","validationMessage","onKeyDown","size","margin","showDropdown","dropdownButtonIcon","dropdownButtonLabel","dropdownButtonVariant","dropdownButtonLoading","dropdownButtonAction","searchList","addToSearchList","dropdownScrollable","containerRef","React","useRef","useState","isOpen","setIsOpen","dropdownRef","useClickOutsideRef","isPressingEnter","e","key","preventDefault","stopPropagation","enteredSearchTerm","value","target","dropdownAction","term","concat","items","action","actionLabel","actionIcon","actionVariant","onValueUpdate","scrollable","pinTopItem","actionLoading","COLORS","critical_400"],"sources":["../../src/InputFields/SearchBar.tsx"],"sourcesContent":["import React from 'react';\r\nimport {COLORS} from '../styles/index';\r\nimport {SystemIcons} from '../icons';\r\nimport {ErrorMessage, InputWrapper, SearchIconWrapper} from './styling';\r\nimport {IconButton} from '../Button';\r\nimport SearchBarInput from './components/SearchBarInput';\r\nimport SearchField from './components/SearchField';\r\nimport {Size} from '../types';\r\nimport styled from 'styled-components';\r\nimport { DropdownContent, DropdownItem } from '../Dropdown';\r\nimport { useClickOutsideRef } from '../common';\r\n\r\nexport type SearchBarProps = {\r\n id: string;\r\n searchTerm?: string;\r\n setSearchTerm: (term: string) => void;\r\n enterSearch: (e: any) => void;\r\n removeSearch: (e: any) => void;\r\n placeholder?: string;\r\n performSearchLabel?: string;\r\n disabled?: boolean;\r\n validationMessage?: string;\r\n onKeyDown?: (e: React.KeyboardEvent) => void;\r\n size?: Size.Small | Size.Medium;\r\n margin?: string;\r\n showDropdown?: boolean;\r\n dropdownButtonIcon?: React.ReactNode;\r\n dropdownButtonLabel?: string;\r\n dropdownButtonLoading?: boolean;\r\n dropdownButtonVariant?: 'primary' | 'secondary' | 'tertiary';\r\n dropdownButtonAction?: () => boolean | void | undefined;\r\n searchList?: DropdownItem[];\r\n addToSearchList?: (e: DropdownItem) => void;\r\n dropdownScrollable?: boolean;\r\n};\r\n\r\nconst ClearIconWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n\r\n &.hidden {\r\n display: none !important;\r\n }\r\n`;\r\n\r\nconst SearchBar: React.FunctionComponent<SearchBarProps> = ({\r\n id,\r\n searchTerm,\r\n setSearchTerm,\r\n enterSearch,\r\n removeSearch,\r\n placeholder,\r\n performSearchLabel,\r\n disabled,\r\n validationMessage,\r\n onKeyDown,\r\n size,\r\n margin,\r\n showDropdown,\r\n dropdownButtonIcon,\r\n dropdownButtonLabel,\r\n dropdownButtonVariant,\r\n dropdownButtonLoading,\r\n dropdownButtonAction,\r\n searchList=[],\r\n addToSearchList,\r\n dropdownScrollable\r\n }) => {\r\n const containerRef = React.useRef<any>(null);\r\n\r\n const [isOpen, setIsOpen] = React.useState(false);\r\n const dropdownRef = useClickOutsideRef(()=>setIsOpen(false), [containerRef]);\r\n\r\n const isPressingEnter = (e: any) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n const enteredSearchTerm = (e: any) => {\r\n addToSearchList && addToSearchList({value:e.target.value});\r\n enterSearch(e);\r\n }\r\n\r\n const dropdownAction = () => {\r\n if(dropdownButtonAction)\r\n dropdownButtonAction(); \r\n }\r\n\r\n return (\r\n <>\r\n <InputWrapper\r\n disabled={disabled}\r\n margin={margin}>\r\n <SearchField id={'id'} size={size}\r\n ref={containerRef}\r\n searchTerm={searchTerm}\r\n disabled={disabled}\r\n validationMessage={validationMessage}>\r\n <SearchBarInput\r\n placeholder={disabled ? '' : placeholder}\r\n id={id}\r\n size={size}\r\n disabled={disabled}\r\n setSearchTerm={(term: string) => setSearchTerm(term)}\r\n searchTerm={searchTerm}\r\n onKeyDown={onKeyDown}\r\n enterSearch={enteredSearchTerm}\r\n focusParentRefs={[containerRef]}\r\n onClick={()=>setIsOpen(!isOpen)}\r\n ref={dropdownRef}\r\n />\r\n <SearchIconWrapper className={size ? size : ''} aria-label={performSearchLabel}>\r\n <IconButton id={`${id}_Search`}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n action={enterSearch}\r\n disabled={disabled}\r\n onKeyPress={(e: any) => (isPressingEnter(e) ? enterSearch(e) : null)}>\r\n <SystemIcons.Search size=\"24px\"/>\r\n </IconButton>\r\n </SearchIconWrapper>\r\n <ClearIconWrapper className={(size ? size : '').concat(!searchTerm ? ' hidden' : '')}>\r\n <IconButton id={`${id}_Clear`}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n action={removeSearch}\r\n disabled={disabled}\r\n onKeyPress={(e: any) => (isPressingEnter(e) ? removeSearch(e) : null)}>\r\n <SystemIcons.Clear size=\"24px\"/>\r\n </IconButton>\r\n </ClearIconWrapper>\r\n </SearchField>\r\n\r\n {showDropdown && <DropdownContent id={'search'}\r\n containerRef={containerRef}\r\n size={size}\r\n isButton={false}\r\n ariaRolesType=\"input\"\r\n customizationProps={{\r\n items:searchList,\r\n action: dropdownAction,\r\n actionLabel: dropdownButtonLabel,\r\n actionIcon: dropdownButtonIcon,\r\n actionVariant: dropdownButtonVariant,\r\n onValueUpdate:(e)=>{},\r\n scrollable: dropdownScrollable,\r\n pinTopItem: true,\r\n actionLoading: dropdownButtonLoading\r\n }}\r\n isOpen={isOpen}\r\n setIsOpen={setIsOpen}\r\n filter={''}\r\n selectedValues={searchTerm ? [searchTerm] : []}\r\n setSelectedValues={(e)=>setSearchTerm(e[0])}\r\n messageOnNoResults={''}\r\n focused={null}\r\n setFocused={()=>{}}\r\n />}\r\n\r\n </InputWrapper>\r\n {validationMessage && (\r\n <ErrorMessage className={size || ''}>\r\n <SystemIcons.TechnicalWarning color={COLORS.critical_400} className={size || ''}/>\r\n <span>{validationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default SearchBar;\r\n"],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ export type SearchBarProps = {
|
|
|
17
17
|
showDropdown?: boolean;
|
|
18
18
|
dropdownButtonIcon?: React.ReactNode;
|
|
19
19
|
dropdownButtonLabel?: string;
|
|
20
|
+
dropdownButtonLoading?: boolean;
|
|
20
21
|
dropdownButtonVariant?: 'primary' | 'secondary' | 'tertiary';
|
|
21
22
|
dropdownButtonAction?: () => boolean | void | undefined;
|
|
22
23
|
searchList?: DropdownItem[];
|
|
@@ -33,6 +33,7 @@ var SearchBar = function SearchBar(_ref) {
|
|
|
33
33
|
dropdownButtonIcon = _ref.dropdownButtonIcon,
|
|
34
34
|
dropdownButtonLabel = _ref.dropdownButtonLabel,
|
|
35
35
|
dropdownButtonVariant = _ref.dropdownButtonVariant,
|
|
36
|
+
dropdownButtonLoading = _ref.dropdownButtonLoading,
|
|
36
37
|
dropdownButtonAction = _ref.dropdownButtonAction,
|
|
37
38
|
_ref$searchList = _ref.searchList,
|
|
38
39
|
searchList = _ref$searchList === void 0 ? [] : _ref$searchList,
|
|
@@ -136,7 +137,8 @@ var SearchBar = function SearchBar(_ref) {
|
|
|
136
137
|
actionVariant: dropdownButtonVariant,
|
|
137
138
|
onValueUpdate: function onValueUpdate(e) {},
|
|
138
139
|
scrollable: dropdownScrollable,
|
|
139
|
-
pinTopItem: true
|
|
140
|
+
pinTopItem: true,
|
|
141
|
+
actionLoading: dropdownButtonLoading
|
|
140
142
|
},
|
|
141
143
|
isOpen: isOpen,
|
|
142
144
|
setIsOpen: setIsOpen,
|
|
@@ -175,6 +177,7 @@ SearchBar.propTypes = {
|
|
|
175
177
|
showDropdown: _pt.bool,
|
|
176
178
|
dropdownButtonIcon: _pt.node,
|
|
177
179
|
dropdownButtonLabel: _pt.string,
|
|
180
|
+
dropdownButtonLoading: _pt.bool,
|
|
178
181
|
dropdownButtonVariant: _pt.oneOf(['primary', 'secondary', 'tertiary']),
|
|
179
182
|
dropdownButtonAction: _pt.func,
|
|
180
183
|
searchList: _pt.array,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchBar.js","names":["React","COLORS","SystemIcons","ErrorMessage","InputWrapper","SearchIconWrapper","IconButton","SearchBarInput","SearchField","styled","DropdownContent","useClickOutsideRef","ClearIconWrapper","div","SearchBar","id","searchTerm","setSearchTerm","enterSearch","removeSearch","placeholder","performSearchLabel","disabled","validationMessage","onKeyDown","size","margin","showDropdown","dropdownButtonIcon","dropdownButtonLabel","dropdownButtonVariant","dropdownButtonAction","searchList","addToSearchList","dropdownScrollable","containerRef","useRef","useState","isOpen","setIsOpen","dropdownRef","isPressingEnter","e","key","preventDefault","stopPropagation","enteredSearchTerm","value","target","dropdownAction","term","concat","items","action","actionLabel","actionIcon","actionVariant","onValueUpdate","scrollable","pinTopItem","critical_400"],"sources":["../../src/InputFields/SearchBar.tsx"],"sourcesContent":["import React from 'react';\r\nimport {COLORS} from '../styles/index';\r\nimport {SystemIcons} from '../icons';\r\nimport {ErrorMessage, InputWrapper, SearchIconWrapper} from './styling';\r\nimport {IconButton} from '../Button';\r\nimport SearchBarInput from './components/SearchBarInput';\r\nimport SearchField from './components/SearchField';\r\nimport {Size} from '../types';\r\nimport styled from 'styled-components';\r\nimport { DropdownContent, DropdownItem } from '../Dropdown';\r\nimport { useClickOutsideRef } from '../common';\r\n\r\nexport type SearchBarProps = {\r\n id: string;\r\n searchTerm?: string;\r\n setSearchTerm: (term: string) => void;\r\n enterSearch: (e: any) => void;\r\n removeSearch: (e: any) => void;\r\n placeholder?: string;\r\n performSearchLabel?: string;\r\n disabled?: boolean;\r\n validationMessage?: string;\r\n onKeyDown?: (e: React.KeyboardEvent) => void;\r\n size?: Size.Small | Size.Medium;\r\n margin?: string;\r\n showDropdown?: boolean;\r\n dropdownButtonIcon?: React.ReactNode;\r\n dropdownButtonLabel?: string;\r\n dropdownButtonVariant?: 'primary' | 'secondary' | 'tertiary';\r\n dropdownButtonAction?: () => boolean | void | undefined;\r\n searchList?: DropdownItem[];\r\n addToSearchList?: (e: DropdownItem) => void;\r\n dropdownScrollable?: boolean;\r\n};\r\n\r\nconst ClearIconWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n\r\n &.hidden {\r\n display: none !important;\r\n }\r\n`;\r\n\r\nconst SearchBar: React.FunctionComponent<SearchBarProps> = ({\r\n id,\r\n searchTerm,\r\n setSearchTerm,\r\n enterSearch,\r\n removeSearch,\r\n placeholder,\r\n performSearchLabel,\r\n disabled,\r\n validationMessage,\r\n onKeyDown,\r\n size,\r\n margin,\r\n showDropdown,\r\n dropdownButtonIcon,\r\n dropdownButtonLabel,\r\n dropdownButtonVariant,\r\n dropdownButtonAction,\r\n searchList=[],\r\n addToSearchList,\r\n dropdownScrollable\r\n }) => {\r\n const containerRef = React.useRef<any>(null);\r\n\r\n const [isOpen, setIsOpen] = React.useState(false);\r\n const dropdownRef = useClickOutsideRef(()=>setIsOpen(false), [containerRef]);\r\n\r\n const isPressingEnter = (e: any) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n const enteredSearchTerm = (e: any) => {\r\n addToSearchList && addToSearchList({value:e.target.value});\r\n enterSearch(e);\r\n }\r\n\r\n const dropdownAction = () => {\r\n if(dropdownButtonAction)\r\n dropdownButtonAction(); \r\n }\r\n\r\n return (\r\n <>\r\n <InputWrapper\r\n disabled={disabled}\r\n margin={margin}>\r\n <SearchField id={'id'} size={size}\r\n ref={containerRef}\r\n searchTerm={searchTerm}\r\n disabled={disabled}\r\n validationMessage={validationMessage}>\r\n <SearchBarInput\r\n placeholder={disabled ? '' : placeholder}\r\n id={id}\r\n size={size}\r\n disabled={disabled}\r\n setSearchTerm={(term: string) => setSearchTerm(term)}\r\n searchTerm={searchTerm}\r\n onKeyDown={onKeyDown}\r\n enterSearch={enteredSearchTerm}\r\n focusParentRefs={[containerRef]}\r\n onClick={()=>setIsOpen(!isOpen)}\r\n ref={dropdownRef}\r\n />\r\n <SearchIconWrapper className={size ? size : ''} aria-label={performSearchLabel}>\r\n <IconButton id={`${id}_Search`}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n action={enterSearch}\r\n disabled={disabled}\r\n onKeyPress={(e: any) => (isPressingEnter(e) ? enterSearch(e) : null)}>\r\n <SystemIcons.Search size=\"24px\"/>\r\n </IconButton>\r\n </SearchIconWrapper>\r\n <ClearIconWrapper className={(size ? size : '').concat(!searchTerm ? ' hidden' : '')}>\r\n <IconButton id={`${id}_Clear`}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n action={removeSearch}\r\n disabled={disabled}\r\n onKeyPress={(e: any) => (isPressingEnter(e) ? removeSearch(e) : null)}>\r\n <SystemIcons.Clear size=\"24px\"/>\r\n </IconButton>\r\n </ClearIconWrapper>\r\n </SearchField>\r\n\r\n {showDropdown && <DropdownContent id={'search'}\r\n containerRef={containerRef}\r\n size={size}\r\n isButton={false}\r\n ariaRolesType=\"input\"\r\n customizationProps={{\r\n items:searchList,\r\n action: dropdownAction,\r\n actionLabel: dropdownButtonLabel,\r\n actionIcon: dropdownButtonIcon,\r\n actionVariant: dropdownButtonVariant,\r\n onValueUpdate:(e)=>{},\r\n scrollable: dropdownScrollable,\r\n pinTopItem: true\r\n }}\r\n isOpen={isOpen}\r\n setIsOpen={setIsOpen}\r\n filter={''}\r\n selectedValues={searchTerm ? [searchTerm] : []}\r\n setSelectedValues={(e)=>setSearchTerm(e[0])}\r\n messageOnNoResults={''}\r\n focused={null}\r\n setFocused={()=>{}}\r\n />}\r\n\r\n </InputWrapper>\r\n {validationMessage && (\r\n <ErrorMessage className={size || ''}>\r\n <SystemIcons.TechnicalWarning color={COLORS.critical_400} className={size || ''}/>\r\n <span>{validationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default SearchBar;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SearchBar.js","names":["React","COLORS","SystemIcons","ErrorMessage","InputWrapper","SearchIconWrapper","IconButton","SearchBarInput","SearchField","styled","DropdownContent","useClickOutsideRef","ClearIconWrapper","div","SearchBar","id","searchTerm","setSearchTerm","enterSearch","removeSearch","placeholder","performSearchLabel","disabled","validationMessage","onKeyDown","size","margin","showDropdown","dropdownButtonIcon","dropdownButtonLabel","dropdownButtonVariant","dropdownButtonLoading","dropdownButtonAction","searchList","addToSearchList","dropdownScrollable","containerRef","useRef","useState","isOpen","setIsOpen","dropdownRef","isPressingEnter","e","key","preventDefault","stopPropagation","enteredSearchTerm","value","target","dropdownAction","term","concat","items","action","actionLabel","actionIcon","actionVariant","onValueUpdate","scrollable","pinTopItem","actionLoading","critical_400"],"sources":["../../src/InputFields/SearchBar.tsx"],"sourcesContent":["import React from 'react';\r\nimport {COLORS} from '../styles/index';\r\nimport {SystemIcons} from '../icons';\r\nimport {ErrorMessage, InputWrapper, SearchIconWrapper} from './styling';\r\nimport {IconButton} from '../Button';\r\nimport SearchBarInput from './components/SearchBarInput';\r\nimport SearchField from './components/SearchField';\r\nimport {Size} from '../types';\r\nimport styled from 'styled-components';\r\nimport { DropdownContent, DropdownItem } from '../Dropdown';\r\nimport { useClickOutsideRef } from '../common';\r\n\r\nexport type SearchBarProps = {\r\n id: string;\r\n searchTerm?: string;\r\n setSearchTerm: (term: string) => void;\r\n enterSearch: (e: any) => void;\r\n removeSearch: (e: any) => void;\r\n placeholder?: string;\r\n performSearchLabel?: string;\r\n disabled?: boolean;\r\n validationMessage?: string;\r\n onKeyDown?: (e: React.KeyboardEvent) => void;\r\n size?: Size.Small | Size.Medium;\r\n margin?: string;\r\n showDropdown?: boolean;\r\n dropdownButtonIcon?: React.ReactNode;\r\n dropdownButtonLabel?: string;\r\n dropdownButtonLoading?: boolean;\r\n dropdownButtonVariant?: 'primary' | 'secondary' | 'tertiary';\r\n dropdownButtonAction?: () => boolean | void | undefined;\r\n searchList?: DropdownItem[];\r\n addToSearchList?: (e: DropdownItem) => void;\r\n dropdownScrollable?: boolean;\r\n};\r\n\r\nconst ClearIconWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n\r\n &.hidden {\r\n display: none !important;\r\n }\r\n`;\r\n\r\nconst SearchBar: React.FunctionComponent<SearchBarProps> = ({\r\n id,\r\n searchTerm,\r\n setSearchTerm,\r\n enterSearch,\r\n removeSearch,\r\n placeholder,\r\n performSearchLabel,\r\n disabled,\r\n validationMessage,\r\n onKeyDown,\r\n size,\r\n margin,\r\n showDropdown,\r\n dropdownButtonIcon,\r\n dropdownButtonLabel,\r\n dropdownButtonVariant,\r\n dropdownButtonLoading,\r\n dropdownButtonAction,\r\n searchList=[],\r\n addToSearchList,\r\n dropdownScrollable\r\n }) => {\r\n const containerRef = React.useRef<any>(null);\r\n\r\n const [isOpen, setIsOpen] = React.useState(false);\r\n const dropdownRef = useClickOutsideRef(()=>setIsOpen(false), [containerRef]);\r\n\r\n const isPressingEnter = (e: any) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n const enteredSearchTerm = (e: any) => {\r\n addToSearchList && addToSearchList({value:e.target.value});\r\n enterSearch(e);\r\n }\r\n\r\n const dropdownAction = () => {\r\n if(dropdownButtonAction)\r\n dropdownButtonAction(); \r\n }\r\n\r\n return (\r\n <>\r\n <InputWrapper\r\n disabled={disabled}\r\n margin={margin}>\r\n <SearchField id={'id'} size={size}\r\n ref={containerRef}\r\n searchTerm={searchTerm}\r\n disabled={disabled}\r\n validationMessage={validationMessage}>\r\n <SearchBarInput\r\n placeholder={disabled ? '' : placeholder}\r\n id={id}\r\n size={size}\r\n disabled={disabled}\r\n setSearchTerm={(term: string) => setSearchTerm(term)}\r\n searchTerm={searchTerm}\r\n onKeyDown={onKeyDown}\r\n enterSearch={enteredSearchTerm}\r\n focusParentRefs={[containerRef]}\r\n onClick={()=>setIsOpen(!isOpen)}\r\n ref={dropdownRef}\r\n />\r\n <SearchIconWrapper className={size ? size : ''} aria-label={performSearchLabel}>\r\n <IconButton id={`${id}_Search`}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n action={enterSearch}\r\n disabled={disabled}\r\n onKeyPress={(e: any) => (isPressingEnter(e) ? enterSearch(e) : null)}>\r\n <SystemIcons.Search size=\"24px\"/>\r\n </IconButton>\r\n </SearchIconWrapper>\r\n <ClearIconWrapper className={(size ? size : '').concat(!searchTerm ? ' hidden' : '')}>\r\n <IconButton id={`${id}_Clear`}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n action={removeSearch}\r\n disabled={disabled}\r\n onKeyPress={(e: any) => (isPressingEnter(e) ? removeSearch(e) : null)}>\r\n <SystemIcons.Clear size=\"24px\"/>\r\n </IconButton>\r\n </ClearIconWrapper>\r\n </SearchField>\r\n\r\n {showDropdown && <DropdownContent id={'search'}\r\n containerRef={containerRef}\r\n size={size}\r\n isButton={false}\r\n ariaRolesType=\"input\"\r\n customizationProps={{\r\n items:searchList,\r\n action: dropdownAction,\r\n actionLabel: dropdownButtonLabel,\r\n actionIcon: dropdownButtonIcon,\r\n actionVariant: dropdownButtonVariant,\r\n onValueUpdate:(e)=>{},\r\n scrollable: dropdownScrollable,\r\n pinTopItem: true,\r\n actionLoading: dropdownButtonLoading\r\n }}\r\n isOpen={isOpen}\r\n setIsOpen={setIsOpen}\r\n filter={''}\r\n selectedValues={searchTerm ? [searchTerm] : []}\r\n setSelectedValues={(e)=>setSearchTerm(e[0])}\r\n messageOnNoResults={''}\r\n focused={null}\r\n setFocused={()=>{}}\r\n />}\r\n\r\n </InputWrapper>\r\n {validationMessage && (\r\n <ErrorMessage className={size || ''}>\r\n <SystemIcons.TechnicalWarning color={COLORS.critical_400} className={size || ''}/>\r\n <span>{validationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default SearchBar;\r\n"],"mappings":"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"}
|