{"version":3,"file":"NumberField.cjs","names":["React","_interopRequireWildcard","require","_TooltipStyles","_TooltipOverflow","_interopRequireDefault","_styledComponents","_Button","_common","_icons","_styles","_typography","_types","_styling","_jsxRuntime","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","Container","styled","div","PrefixContainer","props","$size","Size","Small","$disabled","COLORS","generateToken","componentType","state","theme","defaultVariant","ComponentSStyling","ComponentTextStyle","Regular","ComponentMStyling","OperatorWrapper","Medium","NumberInput","input","$fieldSize","$type","$hasPrefix","Italic","focusStyles","InputContainer","Z_INDEXES","focus","TooltipTrigger","LeftOperator","RightOperator","NumberField","forwardRef","ref","type","size","note","noteIcon","required","prefix","interval","minValue","maxValue","allowNegative","decimalPrecision","disabled","readOnly","value","placeholder","onChange","className","id","overflowTooltipPosition","dataTestId","rest","_objectWithoutProperties2","userInput","setUserInput","useState","toString","elementRef","useFocusVisibleRef","useEffect","useImperativeHandle","current","setVal","handleKeyPress","key","addInterval","subtractInterval","handleInput","preventDefault","simpleRegex","RegExp","decimalFormationRegEx","negativeDecimalFormationRegEx","allowNegativeRegex","decimalPrecisionRegex","undefined","negativeAndDecimalRegex","val","target","charAt","test","isInRange","replace","indexOf","lastIndexOf","includes","isDecimal","x","parseFloat","toFixed","parseInt","isNaN","Math","round","pow","isLocked","operator","operatorState","renderNumberFieldElements","jsxs","Fragment","children","jsx","IconButton","tabIndex","variant","shape","action","useTransparentBackground","SystemIcons","Minus","Plus","renderNumberInputElements","onKeyDown","concat","position","withArrow","maxWidth","align","ValidationMessage","States","Default","propTypes","_propTypes","string","number","bool","node","oneOf","func","_default","exports"],"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.generateToken({componentType:'text', state:'disabled'}, props.theme) : \r\n    COLORS.generateToken({componentType:'text', defaultVariant:'subtle'}, props.theme)};\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: ${props => COLORS.generateToken({ componentType: 'border', defaultVariant: 'subtle' }, props.theme)};\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  background: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'default'  }, props.theme)};\r\n  box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({componentType:'border', defaultVariant:'default' }, props.theme)};\r\n  outline: none;\r\n  color: ${props => COLORS.generateToken({componentType:'text', defaultVariant:'subtle'}, props.theme)};\r\n\r\n  ${props => props.$fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant:'default'}, props.theme)) :\r\n     ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant:'default'}, props.theme))}\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 ${props => COLORS.generateToken({ componentType:'border', state:'hover' }, props.theme)};\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 ${props => COLORS.generateToken({ componentType:'border', state:'hover' }, props.theme)};\r\n  }\r\n\r\n  &.disabled {\r\n    box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({ componentType:'border', state:'disabled' }, props.theme)};\r\n    cursor: not-allowed;\r\n    color: ${props => COLORS.generateToken({ componentType:'text', state:'disabled' }, props.theme)};\r\n    pointer-events: none;\r\n\r\n    &::placeholder {\r\n      color: ${props => COLORS.generateToken({ componentType:'text', state:'disabled' }, props.theme)};\r\n    }\r\n  }\r\n\r\n  &.readOnly {\r\n    background: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'disabled'  }, props.theme)};\r\n    box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({ componentType: 'border', defaultVariant: 'default'  }, props.theme)};\r\n    cursor: not-allowed;\r\n    pointer-events: none;\r\n    color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle'  }, props.theme)};\r\n  }\r\n\r\n  &.valid {\r\n    box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({ componentType:'border', defaultVariant:'positive' }, props.theme)};\r\n  }\r\n\r\n  &.invalid {\r\n    box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({ componentType:'border', defaultVariant:'critical' }, props.theme)};\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 interface NumberFieldProps extends Testable, Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'onKeyDown' | 'onClick' | 'tabIndex' | 'size' | 'value' | 'prefix' | 'min' | 'max'>\r\n{\r\n  /**\r\n   * Optional. The size of the number field. Can be 'Small' or 'Medium'.\r\n   */\r\n  size?: Size.Small | Size.Medium;\r\n\r\n  /**\r\n   * Optional. The prefix to be displayed before the number in the field.\r\n   */\r\n  prefix?: string;\r\n\r\n  /**\r\n   * Optional. The interval for incrementing and decrementing the number in the field.\r\n   */\r\n  interval?: number;\r\n\r\n  /**\r\n   * Optional. The minimum value that can be entered in the field.\r\n   */\r\n  minValue?: number;\r\n\r\n  /**\r\n   * Optional. The maximum value that can be entered in the field.\r\n   */\r\n  maxValue?: number;\r\n\r\n  /**\r\n   * Optional. A boolean indicating whether negative numbers are allowed.\r\n   */\r\n  allowNegative?: boolean;\r\n\r\n  /**\r\n   * Optional. The number of decimal places allowed in the number.\r\n   */\r\n  decimalPrecision?: number;\r\n\r\n  /**\r\n   * Optional. The state of the number field. Can be 'Valid' or 'Invalid'.\r\n   */\r\n  state?: States.Valid | States.Invalid;\r\n\r\n  /**\r\n   * Optional. A note to be displayed below the number field.\r\n   */\r\n  note?: string;\r\n\r\n  /**\r\n   * Optional. An icon to be displayed next to the note.\r\n   */\r\n  noteIcon?: React.ReactNode;\r\n\r\n  /**\r\n   * Optional. The type of the number field. Can be 'NumberField' or 'NumberInput'.\r\n   */\r\n  type?: 'NumberField' | 'NumberInput';\r\n\r\n  /**\r\n   * Optional. The current value of the number field.\r\n   */\r\n  value?: number;\r\n\r\n  /**\r\n   * Optional. A function to be called when the value of the number field changes.\r\n   */\r\n  onChange?: (e: number) => void;\r\n\r\n  /**\r\n   * Optional. The position of the tooltip when the number overflows. Can be 'top' or 'bottom'.\r\n   */\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(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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","ignoreList":[]}