@laerdal/life-react-components 5.0.0-dev.1 → 5.0.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/dist/Accordion/AccordionItem.cjs +1 -1
  2. package/dist/Accordion/AccordionItem.cjs.map +1 -1
  3. package/dist/Accordion/AccordionItem.js +1 -1
  4. package/dist/Accordion/AccordionItem.js.map +1 -1
  5. package/dist/Accordion/styles.cjs +3 -3
  6. package/dist/Accordion/styles.cjs.map +1 -1
  7. package/dist/Accordion/styles.d.ts +1 -1
  8. package/dist/Accordion/styles.js +3 -3
  9. package/dist/Accordion/styles.js.map +1 -1
  10. package/dist/AuthPage/AuthPage.cjs +1 -1
  11. package/dist/AuthPage/AuthPage.cjs.map +1 -1
  12. package/dist/AuthPage/AuthPage.js +1 -1
  13. package/dist/AuthPage/AuthPage.js.map +1 -1
  14. package/dist/AuthPage/ScreenSetsContainer.cjs +1 -1
  15. package/dist/AuthPage/ScreenSetsContainer.cjs.map +1 -1
  16. package/dist/AuthPage/ScreenSetsContainer.d.ts +1 -1
  17. package/dist/AuthPage/ScreenSetsContainer.js +1 -1
  18. package/dist/AuthPage/ScreenSetsContainer.js.map +1 -1
  19. package/dist/Banners/Banner.cjs +8 -8
  20. package/dist/Banners/Banner.cjs.map +1 -1
  21. package/dist/Banners/Banner.d.ts +8 -2
  22. package/dist/Banners/Banner.js +8 -8
  23. package/dist/Banners/Banner.js.map +1 -1
  24. package/dist/Banners/OverviewBanner.d.ts +4 -4
  25. package/dist/Breadcrumb/Breadcrumb.cjs +2 -2
  26. package/dist/Breadcrumb/Breadcrumb.cjs.map +1 -1
  27. package/dist/Breadcrumb/Breadcrumb.js +2 -2
  28. package/dist/Breadcrumb/Breadcrumb.js.map +1 -1
  29. package/dist/Breadcrumb/styles.cjs +5 -5
  30. package/dist/Breadcrumb/styles.cjs.map +1 -1
  31. package/dist/Breadcrumb/styles.d.ts +2 -2
  32. package/dist/Breadcrumb/styles.js +5 -5
  33. package/dist/Breadcrumb/styles.js.map +1 -1
  34. package/dist/Button/BackButton.cjs +2 -2
  35. package/dist/Button/BackButton.cjs.map +1 -1
  36. package/dist/Button/BackButton.js +2 -2
  37. package/dist/Button/BackButton.js.map +1 -1
  38. package/dist/Button/Button.cjs +1 -1
  39. package/dist/Button/Button.cjs.map +1 -1
  40. package/dist/Button/Button.js +1 -1
  41. package/dist/Button/Button.js.map +1 -1
  42. package/dist/Button/DualFunctionButton.cjs +5 -5
  43. package/dist/Button/DualFunctionButton.cjs.map +1 -1
  44. package/dist/Button/DualFunctionButton.js +5 -5
  45. package/dist/Button/DualFunctionButton.js.map +1 -1
  46. package/dist/Button/Iconbutton.cjs +25 -23
  47. package/dist/Button/Iconbutton.cjs.map +1 -1
  48. package/dist/Button/Iconbutton.d.ts +24 -3
  49. package/dist/Button/Iconbutton.js +25 -23
  50. package/dist/Button/Iconbutton.js.map +1 -1
  51. package/dist/Card/VerticalCard/CardBottomSection.cjs +2 -2
  52. package/dist/Card/VerticalCard/CardBottomSection.cjs.map +1 -1
  53. package/dist/Card/VerticalCard/CardBottomSection.d.ts +1 -1
  54. package/dist/Card/VerticalCard/CardBottomSection.js +2 -2
  55. package/dist/Card/VerticalCard/CardBottomSection.js.map +1 -1
  56. package/dist/Card/VerticalCard/CardMiddleSection.cjs +2 -2
  57. package/dist/Card/VerticalCard/CardMiddleSection.cjs.map +1 -1
  58. package/dist/Card/VerticalCard/CardMiddleSection.d.ts +2 -2
  59. package/dist/Card/VerticalCard/CardMiddleSection.js +2 -2
  60. package/dist/Card/VerticalCard/CardMiddleSection.js.map +1 -1
  61. package/dist/Dropdown/BasicDropdown.cjs +9 -9
  62. package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
  63. package/dist/Dropdown/BasicDropdown.js +9 -9
  64. package/dist/Dropdown/BasicDropdown.js.map +1 -1
  65. package/dist/Dropdown/CommonStyling.cjs +10 -10
  66. package/dist/Dropdown/CommonStyling.cjs.map +1 -1
  67. package/dist/Dropdown/CommonStyling.d.ts +9 -9
  68. package/dist/Dropdown/CommonStyling.js +10 -10
  69. package/dist/Dropdown/CommonStyling.js.map +1 -1
  70. package/dist/Dropdown/DropdownContent.cjs +41 -41
  71. package/dist/Dropdown/DropdownContent.cjs.map +1 -1
  72. package/dist/Dropdown/DropdownContent.d.ts +12 -12
  73. package/dist/Dropdown/DropdownContent.js +41 -41
  74. package/dist/Dropdown/DropdownContent.js.map +1 -1
  75. package/dist/Dropdown/DropdownFilter.cjs +8 -8
  76. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  77. package/dist/Dropdown/DropdownFilter.js +8 -8
  78. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  79. package/dist/Footer/Components/FooterDropdownLinks.cjs +3 -3
  80. package/dist/Footer/Components/FooterDropdownLinks.cjs.map +1 -1
  81. package/dist/Footer/Components/FooterDropdownLinks.js +3 -3
  82. package/dist/Footer/Components/FooterDropdownLinks.js.map +1 -1
  83. package/dist/Footer/Components/FooterNavSection.cjs +2 -2
  84. package/dist/Footer/Components/FooterNavSection.cjs.map +1 -1
  85. package/dist/Footer/Components/FooterNavSection.js +2 -2
  86. package/dist/Footer/Components/FooterNavSection.js.map +1 -1
  87. package/dist/Footer/SiteFooter.cjs +3 -3
  88. package/dist/Footer/SiteFooter.cjs.map +1 -1
  89. package/dist/Footer/SiteFooter.js +3 -3
  90. package/dist/Footer/SiteFooter.js.map +1 -1
  91. package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs +5 -5
  92. package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs.map +1 -1
  93. package/dist/GlobalNavigationBar/GlobalNavigationBar.js +5 -5
  94. package/dist/GlobalNavigationBar/GlobalNavigationBar.js.map +1 -1
  95. package/dist/GlobalNavigationBar/Logo.cjs +4 -4
  96. package/dist/GlobalNavigationBar/Logo.cjs.map +1 -1
  97. package/dist/GlobalNavigationBar/Logo.js +4 -4
  98. package/dist/GlobalNavigationBar/Logo.js.map +1 -1
  99. package/dist/GlobalNavigationBar/desktop/MainMenu.cjs +2 -13
  100. package/dist/GlobalNavigationBar/desktop/MainMenu.cjs.map +1 -1
  101. package/dist/GlobalNavigationBar/desktop/MainMenu.js +2 -13
  102. package/dist/GlobalNavigationBar/desktop/MainMenu.js.map +1 -1
  103. package/dist/GlobalNavigationBar/desktop/SubMenu.cjs +5 -5
  104. package/dist/GlobalNavigationBar/desktop/SubMenu.cjs.map +1 -1
  105. package/dist/GlobalNavigationBar/desktop/SubMenu.d.ts +2 -2
  106. package/dist/GlobalNavigationBar/desktop/SubMenu.js +5 -5
  107. package/dist/GlobalNavigationBar/desktop/SubMenu.js.map +1 -1
  108. package/dist/HyperLink/HyperLink.cjs +3 -3
  109. package/dist/HyperLink/HyperLink.cjs.map +1 -1
  110. package/dist/HyperLink/HyperLink.d.ts +2 -2
  111. package/dist/HyperLink/HyperLink.js +3 -3
  112. package/dist/HyperLink/HyperLink.js.map +1 -1
  113. package/dist/InputFields/Checkbox.cjs +4 -4
  114. package/dist/InputFields/Checkbox.cjs.map +1 -1
  115. package/dist/InputFields/Checkbox.d.ts +3 -3
  116. package/dist/InputFields/Checkbox.js +4 -4
  117. package/dist/InputFields/Checkbox.js.map +1 -1
  118. package/dist/InputFields/DatepickerField.cjs +9 -9
  119. package/dist/InputFields/DatepickerField.cjs.map +1 -1
  120. package/dist/InputFields/DatepickerField.js +9 -9
  121. package/dist/InputFields/DatepickerField.js.map +1 -1
  122. package/dist/InputFields/Label.cjs +2 -2
  123. package/dist/InputFields/Label.cjs.map +1 -1
  124. package/dist/InputFields/Label.js +2 -2
  125. package/dist/InputFields/Label.js.map +1 -1
  126. package/dist/InputFields/NumberField.cjs +24 -24
  127. package/dist/InputFields/NumberField.cjs.map +1 -1
  128. package/dist/InputFields/NumberField.js +24 -24
  129. package/dist/InputFields/NumberField.js.map +1 -1
  130. package/dist/InputFields/PasswordField.cjs +4 -4
  131. package/dist/InputFields/PasswordField.cjs.map +1 -1
  132. package/dist/InputFields/PasswordField.js +4 -4
  133. package/dist/InputFields/PasswordField.js.map +1 -1
  134. package/dist/InputFields/SearchBar.cjs +2 -2
  135. package/dist/InputFields/SearchBar.cjs.map +1 -1
  136. package/dist/InputFields/SearchBar.js +2 -2
  137. package/dist/InputFields/SearchBar.js.map +1 -1
  138. package/dist/InputFields/TextField.cjs +5 -5
  139. package/dist/InputFields/TextField.cjs.map +1 -1
  140. package/dist/InputFields/TextField.js +5 -5
  141. package/dist/InputFields/TextField.js.map +1 -1
  142. package/dist/InputFields/Textarea.cjs +3 -3
  143. package/dist/InputFields/Textarea.cjs.map +1 -1
  144. package/dist/InputFields/Textarea.js +3 -3
  145. package/dist/InputFields/Textarea.js.map +1 -1
  146. package/dist/InputFields/components/SearchField.cjs.map +1 -1
  147. package/dist/InputFields/components/SearchField.d.ts +1 -1
  148. package/dist/InputFields/components/SearchField.js.map +1 -1
  149. package/dist/InputFields/styling.cjs +7 -7
  150. package/dist/InputFields/styling.cjs.map +1 -1
  151. package/dist/InputFields/styling.d.ts +9 -9
  152. package/dist/InputFields/styling.js +7 -7
  153. package/dist/InputFields/styling.js.map +1 -1
  154. package/dist/Layouts/index.cjs +11 -11
  155. package/dist/Layouts/index.cjs.map +1 -1
  156. package/dist/Layouts/index.d.ts +6 -6
  157. package/dist/Layouts/index.js +11 -11
  158. package/dist/Layouts/index.js.map +1 -1
  159. package/dist/LoadingPage/GlobalLoadingPage.cjs.map +1 -1
  160. package/dist/LoadingPage/GlobalLoadingPage.js.map +1 -1
  161. package/dist/MenuItem/MenuItem.cjs +8 -8
  162. package/dist/MenuItem/MenuItem.cjs.map +1 -1
  163. package/dist/MenuItem/MenuItem.d.ts +2 -2
  164. package/dist/MenuItem/MenuItem.js +8 -8
  165. package/dist/MenuItem/MenuItem.js.map +1 -1
  166. package/dist/Modals/ModalDialog.cjs +11 -11
  167. package/dist/Modals/ModalDialog.cjs.map +1 -1
  168. package/dist/Modals/ModalDialog.js +11 -11
  169. package/dist/Modals/ModalDialog.js.map +1 -1
  170. package/dist/Modals/ModalNote.cjs +8 -8
  171. package/dist/Modals/ModalNote.cjs.map +1 -1
  172. package/dist/Modals/ModalNote.js +8 -8
  173. package/dist/Modals/ModalNote.js.map +1 -1
  174. package/dist/Modals/ModalStyles.cjs +19 -19
  175. package/dist/Modals/ModalStyles.cjs.map +1 -1
  176. package/dist/Modals/ModalStyles.d.ts +17 -17
  177. package/dist/Modals/ModalStyles.js +19 -19
  178. package/dist/Modals/ModalStyles.js.map +1 -1
  179. package/dist/NotificationDot/NotificationDot.cjs +11 -12
  180. package/dist/NotificationDot/NotificationDot.cjs.map +1 -1
  181. package/dist/NotificationDot/NotificationDot.js +11 -12
  182. package/dist/NotificationDot/NotificationDot.js.map +1 -1
  183. package/dist/Popover/Popover.cjs +40 -40
  184. package/dist/Popover/Popover.cjs.map +1 -1
  185. package/dist/Popover/Popover.d.ts +9 -9
  186. package/dist/Popover/Popover.js +40 -40
  187. package/dist/Popover/Popover.js.map +1 -1
  188. package/dist/QuizButton/QuizButton.cjs +14 -14
  189. package/dist/QuizButton/QuizButton.cjs.map +1 -1
  190. package/dist/QuizButton/QuizButton.js +14 -14
  191. package/dist/QuizButton/QuizButton.js.map +1 -1
  192. package/dist/Table/Table.cjs +1 -1
  193. package/dist/Table/Table.cjs.map +1 -1
  194. package/dist/Table/Table.js +1 -1
  195. package/dist/Table/Table.js.map +1 -1
  196. package/dist/Table/TableBody.cjs +2 -2
  197. package/dist/Table/TableBody.cjs.map +1 -1
  198. package/dist/Table/TableBody.js +2 -2
  199. package/dist/Table/TableBody.js.map +1 -1
  200. package/dist/Table/TableStyles.cjs +4 -4
  201. package/dist/Table/TableStyles.cjs.map +1 -1
  202. package/dist/Table/TableStyles.d.ts +3 -3
  203. package/dist/Table/TableStyles.js +4 -4
  204. package/dist/Table/TableStyles.js.map +1 -1
  205. package/dist/Tabs/TabLink.cjs +3 -3
  206. package/dist/Tabs/TabLink.cjs.map +1 -1
  207. package/dist/Tabs/TabLink.js +3 -3
  208. package/dist/Tabs/TabLink.js.map +1 -1
  209. package/dist/Tabs/Tabs.cjs.map +1 -1
  210. package/dist/Tabs/Tabs.js.map +1 -1
  211. package/dist/Tag/Tag.cjs +6 -6
  212. package/dist/Tag/Tag.cjs.map +1 -1
  213. package/dist/Tag/Tag.js +6 -6
  214. package/dist/Tag/Tag.js.map +1 -1
  215. package/dist/Toasters/Toast.cjs +16 -16
  216. package/dist/Toasters/Toast.cjs.map +1 -1
  217. package/dist/Toasters/Toast.d.ts +6 -7
  218. package/dist/Toasters/Toast.js +16 -16
  219. package/dist/Toasters/Toast.js.map +1 -1
  220. package/dist/Toggles/ToggleSwitch.cjs +1 -1
  221. package/dist/Toggles/ToggleSwitch.cjs.map +1 -1
  222. package/dist/Toggles/ToggleSwitch.js +1 -1
  223. package/dist/Toggles/ToggleSwitch.js.map +1 -1
  224. package/dist/Toggles/TogglerStyles.cjs.map +1 -1
  225. package/dist/Toggles/TogglerStyles.d.ts +1 -1
  226. package/dist/Toggles/TogglerStyles.js.map +1 -1
  227. package/dist/Tooltips/TooltipOverflow.cjs +7 -7
  228. package/dist/Tooltips/TooltipOverflow.cjs.map +1 -1
  229. package/dist/Tooltips/TooltipOverflow.js +7 -7
  230. package/dist/Tooltips/TooltipOverflow.js.map +1 -1
  231. package/dist/Tooltips/TooltipStyles.cjs +29 -29
  232. package/dist/Tooltips/TooltipStyles.cjs.map +1 -1
  233. package/dist/Tooltips/TooltipStyles.d.ts +9 -9
  234. package/dist/Tooltips/TooltipStyles.js +29 -29
  235. package/dist/Tooltips/TooltipStyles.js.map +1 -1
  236. package/dist/Tooltips/TooltipWrapper.cjs +7 -7
  237. package/dist/Tooltips/TooltipWrapper.cjs.map +1 -1
  238. package/dist/Tooltips/TooltipWrapper.js +7 -7
  239. package/dist/Tooltips/TooltipWrapper.js.map +1 -1
  240. package/package.json +1 -2
@@ -1 +1 @@
1
- {"version":3,"file":"NumberField.cjs","names":["React","_interopRequireWildcard","require","_TooltipStyles","_TooltipOverflow","_interopRequireDefault","_styledComponents","_Button","_common","_icons","_styles","_typography","_types","_styling","_jsxRuntime","_excluded","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","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","_taggedTemplateLiteral2","PrefixContainer","props","size","Size","Small","disabled","COLORS","getColor","theme","ComponentSStyling","ComponentTextStyle","Regular","ComponentMStyling","OperatorWrapper","Medium","NumberInput","input","fieldSize","type","concat","hasPrefix","Italic","focusStyles","InputContainer","Z_INDEXES","focus","TooltipTrigger","LeftOperator","RightOperator","NumberField","forwardRef","ref","_props$type","_props$size","note","noteIcon","required","prefix","_props$interval","interval","minValue","maxValue","allowNegative","decimalPrecision","readOnly","state","value","placeholder","onChange","className","id","overflowTooltipPosition","dataTestId","rest","_objectWithoutProperties2","_React$useState","useState","toString","_React$useState2","_slicedToArray2","userInput","setUserInput","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","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.getColor('neutral_300', props.theme) : COLORS.getColor('neutral_500', 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.getColor('neutral_200', 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 box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_400', props.theme)};\r\n outline: none;\r\n color: ${props => COLORS.getColor('neutral_500', props.theme)};\r\n\r\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.getColor('black', props.theme)) : ComponentMStyling(ComponentTextStyle.Regular, COLORS.getColor('black', 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.getColor('primary_800', 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.getColor('primary_700', props.theme)};\r\n }\r\n\r\n &.disabled {\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_100', props.theme)};\r\n cursor: not-allowed;\r\n color: ${props => COLORS.getColor('neutral_300', props.theme)};\r\n pointer-events: none;\r\n\r\n &::placeholder {\r\n color: ${props => COLORS.getColor('neutral_300', props.theme)};\r\n }\r\n }\r\n\r\n &.readOnly {\r\n background: ${props => COLORS.getColor('neutral_100', props.theme)};\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_300', props.theme)};\r\n cursor: not-allowed;\r\n background: ${props => COLORS.getColor('neutral_100', props.theme)};\r\n pointer-events: none;\r\n color: ${props => COLORS.getColor('neutral_500', props.theme)};\r\n }\r\n\r\n &.valid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('correct_400', props.theme)};\r\n }\r\n\r\n &.invalid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('critical_400', 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":[]}
1
+ {"version":3,"file":"NumberField.cjs","names":["React","_interopRequireWildcard","require","_TooltipStyles","_TooltipOverflow","_interopRequireDefault","_styledComponents","_Button","_common","_icons","_styles","_typography","_types","_styling","_jsxRuntime","_excluded","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","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","_taggedTemplateLiteral2","PrefixContainer","props","$size","Size","Small","$disabled","COLORS","getColor","theme","ComponentSStyling","ComponentTextStyle","Regular","ComponentMStyling","OperatorWrapper","Medium","NumberInput","input","$fieldSize","$type","concat","$hasPrefix","Italic","focusStyles","InputContainer","Z_INDEXES","focus","TooltipTrigger","LeftOperator","RightOperator","NumberField","forwardRef","ref","_props$type","type","_props$size","size","note","noteIcon","required","prefix","_props$interval","interval","minValue","maxValue","allowNegative","decimalPrecision","disabled","readOnly","state","value","placeholder","onChange","className","id","overflowTooltipPosition","dataTestId","rest","_objectWithoutProperties2","_React$useState","useState","toString","_React$useState2","_slicedToArray2","userInput","setUserInput","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","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.getColor('neutral_300', props.theme) : COLORS.getColor('neutral_500', 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.getColor('neutral_200', 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 box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_400', props.theme)};\r\n outline: none;\r\n color: ${props => COLORS.getColor('neutral_500', props.theme)};\r\n\r\n ${props => props.$fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.getColor('black', props.theme)) : ComponentMStyling(ComponentTextStyle.Regular, COLORS.getColor('black', 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.getColor('primary_800', 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.getColor('primary_700', props.theme)};\r\n }\r\n\r\n &.disabled {\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_100', props.theme)};\r\n cursor: not-allowed;\r\n color: ${props => COLORS.getColor('neutral_300', props.theme)};\r\n pointer-events: none;\r\n\r\n &::placeholder {\r\n color: ${props => COLORS.getColor('neutral_300', props.theme)};\r\n }\r\n }\r\n\r\n &.readOnly {\r\n background: ${props => COLORS.getColor('neutral_100', props.theme)};\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_300', props.theme)};\r\n cursor: not-allowed;\r\n background: ${props => COLORS.getColor('neutral_100', props.theme)};\r\n pointer-events: none;\r\n color: ${props => COLORS.getColor('neutral_500', props.theme)};\r\n }\r\n\r\n &.valid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('correct_400', props.theme)};\r\n }\r\n\r\n &.invalid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('critical_400', 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":[]}
@@ -23,18 +23,18 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
23
23
  import { Fragment as _Fragment } from "react/jsx-runtime";
24
24
  var Container = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral([""])));
25
25
  var PrefixContainer = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n width: ", ";\n height: ", ";\n color: ", ";\n ", "\n position: absolute;\n padding: ", ";\n"])), function (props) {
26
- return props.size === Size.Small ? '10px' : '11px';
26
+ return props.$size === Size.Small ? '10px' : '11px';
27
27
  }, function (props) {
28
- return props.size === Size.Small ? '20px' : '24px';
28
+ return props.$size === Size.Small ? '20px' : '24px';
29
29
  }, function (props) {
30
- return props.disabled ? COLORS.getColor('neutral_300', props.theme) : COLORS.getColor('neutral_500', props.theme);
30
+ return props.$disabled ? COLORS.getColor('neutral_300', props.theme) : COLORS.getColor('neutral_500', props.theme);
31
31
  }, function (props) {
32
- return props.size === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, null) : ComponentMStyling(ComponentTextStyle.Regular, null);
32
+ return props.$size === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, null) : ComponentMStyling(ComponentTextStyle.Regular, null);
33
33
  }, function (props) {
34
- return props.size === Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px';
34
+ return props.$size === Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px';
35
35
  });
36
36
  var OperatorWrapper = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n right: 0;\n display: flex;\n margin: ", ";\n\n svg {\n height: 14px;\n width: 14px;\n }\n\n .divider {\n margin: 16px 0;\n background: ", ";\n width: 1px;\n }\n"])), function (props) {
37
- return props.size === Size.Medium ? '4px 0' : '';
37
+ return props.$size === Size.Medium ? '4px 0' : '';
38
38
  }, function (props) {
39
39
  return COLORS.getColor('neutral_200', props.theme);
40
40
  });
@@ -43,13 +43,13 @@ var NumberInput = styled.input(_templateObject4 || (_templateObject4 = _taggedTe
43
43
  }, function (props) {
44
44
  return COLORS.getColor('neutral_500', props.theme);
45
45
  }, function (props) {
46
- return props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.getColor('black', props.theme)) : ComponentMStyling(ComponentTextStyle.Regular, COLORS.getColor('black', props.theme));
46
+ return props.$fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.getColor('black', props.theme)) : ComponentMStyling(ComponentTextStyle.Regular, COLORS.getColor('black', props.theme));
47
47
  }, function (props) {
48
- return props.type === 'NumberField' ? "\n padding: ".concat(props.fieldSize === Size.Small ? '14px 97px 14px 16px' : '16px 97px 16px 16px', ";\n padding-left: ").concat(props.hasPrefix ? '30px' : '', ";\n ") : '';
48
+ return props.$type === 'NumberField' ? "\n padding: ".concat(props.$fieldSize === Size.Small ? '14px 97px 14px 16px' : '16px 97px 16px 16px', ";\n padding-left: ").concat(props.$hasPrefix ? '30px' : '', ";\n ") : '';
49
49
  }, function (props) {
50
- return props.type === 'NumberInput' ? "\n padding: ".concat(props.fieldSize === Size.Small ? '14px 48px' : '16px 48px', ";\n ") : '';
50
+ return props.$type === 'NumberInput' ? "\n padding: ".concat(props.$fieldSize === Size.Small ? '14px 48px' : '16px 48px', ";\n ") : '';
51
51
  }, function (props) {
52
- return props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Italic, null) : ComponentMStyling(ComponentTextStyle.Italic, null);
52
+ return props.$fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Italic, null) : ComponentMStyling(ComponentTextStyle.Italic, null);
53
53
  }, function (props) {
54
54
  return COLORS.getColor('primary_800', props.theme);
55
55
  }, focusStyles, function (props) {
@@ -74,15 +74,15 @@ var NumberInput = styled.input(_templateObject4 || (_templateObject4 = _taggedTe
74
74
  return COLORS.getColor('critical_400', props.theme);
75
75
  });
76
76
  var InputContainer = styled.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n min-width: ", ";\n height: ", ";\n display: flex;\n position: relative;\n margin-bottom: 4px;\n\n input.focus-visible ~ div.operator {\n z-index: ", ";\n }\n\n ", "\n"])), function (props) {
77
- return props.type === 'NumberField' ? '160px' : '144px';
77
+ return props.$type === 'NumberField' ? '160px' : '144px';
78
78
  }, function (props) {
79
- return props.size === Size.Small ? '48px' : '56px';
79
+ return props.$size === Size.Small ? '48px' : '56px';
80
80
  }, Z_INDEXES.focus, TooltipTrigger('hover'));
81
81
  var LeftOperator = styled.div(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n position: absolute;\n top: ", ";\n left: 0;\n"])), function (props) {
82
- return props.size === Size.Small ? '0' : '4px';
82
+ return props.$size === Size.Small ? '0' : '4px';
83
83
  });
84
84
  var RightOperator = styled.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n position: absolute;\n top: ", ";\n right: 0;\n"])), function (props) {
85
- return props.size === Size.Small ? '0' : '4px';
85
+ return props.$size === Size.Small ? '0' : '4px';
86
86
  });
87
87
  var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
88
88
  var _props$type = props.type,
@@ -197,13 +197,13 @@ var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
197
197
  var renderNumberFieldElements = function renderNumberFieldElements() {
198
198
  return /*#__PURE__*/_jsxs(_Fragment, {
199
199
  children: [prefix && /*#__PURE__*/_jsx(PrefixContainer, {
200
- size: size,
201
- disabled: !!disabled,
200
+ $size: size,
201
+ $disabled: !!disabled,
202
202
  className: "operator",
203
203
  children: prefix
204
204
  }), /*#__PURE__*/_jsxs(OperatorWrapper, {
205
205
  "data-testid": 'operators',
206
- size: size,
206
+ $size: size,
207
207
  className: "operator",
208
208
  children: [/*#__PURE__*/_jsx(IconButton, {
209
209
  tabIndex: 0,
@@ -239,7 +239,7 @@ var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
239
239
  return /*#__PURE__*/_jsxs(_Fragment, {
240
240
  children: [/*#__PURE__*/_jsx(LeftOperator, {
241
241
  "data-testid": 'leftOperator',
242
- size: size,
242
+ $size: size,
243
243
  className: "operator",
244
244
  children: /*#__PURE__*/_jsx(IconButton, {
245
245
  tabIndex: 0,
@@ -256,7 +256,7 @@ var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
256
256
  })
257
257
  }), /*#__PURE__*/_jsx(RightOperator, {
258
258
  "data-testid": 'rightOperator',
259
- size: size,
259
+ $size: size,
260
260
  className: "operator",
261
261
  children: /*#__PURE__*/_jsx(IconButton, {
262
262
  tabIndex: 0,
@@ -276,15 +276,15 @@ var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
276
276
  };
277
277
  return /*#__PURE__*/_jsxs(Container, {
278
278
  children: [/*#__PURE__*/_jsxs(InputContainer, {
279
- type: type,
280
- size: size,
279
+ $type: type,
280
+ $size: size,
281
281
  tabIndex: -1,
282
282
  children: [/*#__PURE__*/_jsx(NumberInput, _objectSpread({
283
- type: type,
283
+ $type: type,
284
284
  id: id,
285
285
  "data-testid": dataTestId,
286
- fieldSize: size,
287
- hasPrefix: !!prefix,
286
+ $fieldSize: size,
287
+ $hasPrefix: !!prefix,
288
288
  placeholder: placeholder ? placeholder : 'Enter number',
289
289
  value: userInput,
290
290
  ref: elementRef,
@@ -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","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Container","div","_templateObject","_taggedTemplateLiteral","PrefixContainer","_templateObject2","props","size","Small","disabled","getColor","theme","Regular","OperatorWrapper","_templateObject3","Medium","NumberInput","input","_templateObject4","fieldSize","type","concat","hasPrefix","Italic","InputContainer","_templateObject5","focus","LeftOperator","_templateObject6","RightOperator","_templateObject7","NumberField","forwardRef","ref","_props$type","_props$size","note","noteIcon","required","prefix","_props$interval","interval","minValue","maxValue","allowNegative","decimalPrecision","readOnly","state","value","placeholder","onChange","className","id","overflowTooltipPosition","dataTestId","rest","_objectWithoutProperties","_excluded","_React$useState","useState","toString","_React$useState2","_slicedToArray","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","children","tabIndex","variant","shape","action","useTransparentBackground","Minus","Plus","renderNumberInputElements","_objectSpread","onKeyDown","position","withArrow","maxWidth","align","Default","propTypes","_pt","string","number","bool","node","oneOf","func"],"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.getColor('neutral_300', props.theme) : COLORS.getColor('neutral_500', 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.getColor('neutral_200', 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 box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_400', props.theme)};\r\n outline: none;\r\n color: ${props => COLORS.getColor('neutral_500', props.theme)};\r\n\r\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.getColor('black', props.theme)) : ComponentMStyling(ComponentTextStyle.Regular, COLORS.getColor('black', 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.getColor('primary_800', 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.getColor('primary_700', props.theme)};\r\n }\r\n\r\n &.disabled {\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_100', props.theme)};\r\n cursor: not-allowed;\r\n color: ${props => COLORS.getColor('neutral_300', props.theme)};\r\n pointer-events: none;\r\n\r\n &::placeholder {\r\n color: ${props => COLORS.getColor('neutral_300', props.theme)};\r\n }\r\n }\r\n\r\n &.readOnly {\r\n background: ${props => COLORS.getColor('neutral_100', props.theme)};\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_300', props.theme)};\r\n cursor: not-allowed;\r\n background: ${props => COLORS.getColor('neutral_100', props.theme)};\r\n pointer-events: none;\r\n color: ${props => COLORS.getColor('neutral_500', props.theme)};\r\n }\r\n\r\n &.valid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('correct_400', props.theme)};\r\n }\r\n\r\n &.invalid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('critical_400', 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":[]}
1
+ {"version":3,"file":"NumberField.js","names":["React","TooltipTrigger","TooltipOverflow","styled","IconButton","useFocusVisibleRef","SystemIcons","COLORS","focusStyles","Z_INDEXES","ComponentMStyling","ComponentSStyling","ComponentTextStyle","Size","States","ValidationMessage","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Container","div","_templateObject","_taggedTemplateLiteral","PrefixContainer","_templateObject2","props","$size","Small","$disabled","getColor","theme","Regular","OperatorWrapper","_templateObject3","Medium","NumberInput","input","_templateObject4","$fieldSize","$type","concat","$hasPrefix","Italic","InputContainer","_templateObject5","focus","LeftOperator","_templateObject6","RightOperator","_templateObject7","NumberField","forwardRef","ref","_props$type","type","_props$size","size","note","noteIcon","required","prefix","_props$interval","interval","minValue","maxValue","allowNegative","decimalPrecision","disabled","readOnly","state","value","placeholder","onChange","className","id","overflowTooltipPosition","dataTestId","rest","_objectWithoutProperties","_excluded","_React$useState","useState","toString","_React$useState2","_slicedToArray","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","children","tabIndex","variant","shape","action","useTransparentBackground","Minus","Plus","renderNumberInputElements","_objectSpread","onKeyDown","position","withArrow","maxWidth","align","Default","propTypes","_pt","string","number","bool","node","oneOf","func"],"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.getColor('neutral_300', props.theme) : COLORS.getColor('neutral_500', 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.getColor('neutral_200', 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 box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_400', props.theme)};\r\n outline: none;\r\n color: ${props => COLORS.getColor('neutral_500', props.theme)};\r\n\r\n ${props => props.$fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.getColor('black', props.theme)) : ComponentMStyling(ComponentTextStyle.Regular, COLORS.getColor('black', 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.getColor('primary_800', 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.getColor('primary_700', props.theme)};\r\n }\r\n\r\n &.disabled {\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_100', props.theme)};\r\n cursor: not-allowed;\r\n color: ${props => COLORS.getColor('neutral_300', props.theme)};\r\n pointer-events: none;\r\n\r\n &::placeholder {\r\n color: ${props => COLORS.getColor('neutral_300', props.theme)};\r\n }\r\n }\r\n\r\n &.readOnly {\r\n background: ${props => COLORS.getColor('neutral_100', props.theme)};\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_300', props.theme)};\r\n cursor: not-allowed;\r\n background: ${props => COLORS.getColor('neutral_100', props.theme)};\r\n pointer-events: none;\r\n color: ${props => COLORS.getColor('neutral_500', props.theme)};\r\n }\r\n\r\n &.valid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('correct_400', props.theme)};\r\n }\r\n\r\n &.invalid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('critical_400', 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":[]}
@@ -62,9 +62,9 @@ var PasswordField = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
62
62
  var cls = "".concat(invalid ? 'invalid' : '', " ").concat(size || '', " ").concat(className);
63
63
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
64
64
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_styling.InputWrapper, {
65
- disabled: disabled,
66
- readOnly: readOnly,
67
- margin: margin,
65
+ $disabled: disabled,
66
+ $readOnly: readOnly,
67
+ $margin: margin,
68
68
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(PasswordRow, {
69
69
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_styling.InputFieldStyling, _objectSpread({
70
70
  id: id,
@@ -76,7 +76,7 @@ var PasswordField = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
76
76
  className: cls,
77
77
  tabIndex: disabled || readOnly ? -1 : 0,
78
78
  autoComplete: autoComplete,
79
- activeErrorMessage: !!validationMessage,
79
+ $activeErrorMessage: !!validationMessage,
80
80
  placeholder: placeholder,
81
81
  disabled: disabled,
82
82
  required: required,
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordField.cjs","names":["React","_interopRequireWildcard","require","_styledComponents","_styles","_styling","_common","_Button","_icons","_jsxRuntime","_excluded","_templateObject","_templateObject2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","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","StyledPassSwitch","styled","div","_taggedTemplateLiteral2","Z_INDEXES","badge","PasswordRow","PasswordField","forwardRef","_ref","ref","id","disabled","onChange","invalid","value","validationMessage","autoComplete","placeholder","required","readOnly","size","margin","className","dataTestId","_ref$name","name","rest","_objectWithoutProperties2","_React$useState","useState","_React$useState2","_slicedToArray2","passwordHidden","setPasswordHidden","inputRef","useFocusVisibleRef","theme","useTheme","useImperativeHandle","current","handleKeyDown","keyCode","cls","concat","jsxs","Fragment","children","jsx","InputWrapper","InputFieldStyling","type","tabIndex","activeErrorMessage","_e$target","target","IconButton","iconColor","variant","shape","onKeyPress","action","SystemIcons","VisibleOff","VisibleOn","ErrorMessage","TechnicalWarning","color","COLORS","getColor","propTypes","_propTypes","string","isRequired","bool","func","_default","exports"],"sources":["../../src/InputFields/PasswordField.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport styled, { useTheme } from 'styled-components';\r\nimport { COLORS } from '../styles';\r\nimport { Size, Testable } from '../types';\r\nimport { InputFieldStyling, InputWrapper, ErrorMessage } from './styling';\r\nimport { Z_INDEXES } from '../styles';\r\nimport { useFocusVisibleRef } from '../common';\r\nimport { IconButton } from '../Button';\r\nimport { SystemIcons } from '../icons';\r\n\r\nexport type PasswordFieldProps =\r\n Testable & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'id' | 'onChange' | 'readOnly' | 'required' | 'placeholder' | 'autoComplete' | 'value' | 'disabled' | 'tabIndex' | 'type'>\r\n & {\r\n /**\r\n * Required. The ID of the password field.\r\n */\r\n id: string;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the password field is disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Optional. A function to be called when the value of the password field changes.\r\n */\r\n onChange?: (text: string) => void;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the password field is invalid.\r\n */\r\n invalid?: boolean;\r\n\r\n /**\r\n * Optional. The current value of the password field.\r\n */\r\n value?: string;\r\n\r\n /**\r\n * Optional. The validation message to be displayed when the password field is invalid.\r\n */\r\n validationMessage?: string;\r\n\r\n /**\r\n * Optional. The autocomplete attribute for the password field.\r\n */\r\n autoComplete?: string;\r\n\r\n /**\r\n * Optional. The placeholder text for the password field.\r\n */\r\n placeholder?: string;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the password field is required.\r\n */\r\n required?: boolean;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the password field is read-only.\r\n */\r\n readOnly?: boolean;\r\n\r\n /**\r\n * Optional. The size of the password field. Can be 'Small' or 'Medium'.\r\n */\r\n size?: Size.Small | Size.Medium;\r\n\r\n /**\r\n * Optional. The margin of the password field. Can be any valid CSS margin value.\r\n */\r\n margin?: string;\r\n};\r\n\r\nconst StyledPassSwitch = styled.div`\r\n z-index: ${Z_INDEXES.badge};\r\n right: 0;\r\n position: absolute;\r\n`;\r\n\r\nconst PasswordRow = styled.div`\r\n position: relative;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n`;\r\n\r\nconst PasswordField = React.forwardRef<HTMLInputElement, PasswordFieldProps>(({\r\n id,\r\n disabled,\r\n onChange,\r\n invalid,\r\n value,\r\n validationMessage,\r\n autoComplete,\r\n placeholder,\r\n required,\r\n readOnly,\r\n size,\r\n margin,\r\n className,\r\n dataTestId,\r\n name = 'password',\r\n ...rest\r\n }: PasswordFieldProps, ref) => {\r\n const [passwordHidden, setPasswordHidden] = React.useState<Boolean>(true);\r\n const inputRef = useFocusVisibleRef();\r\n const theme = useTheme();\r\n\r\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\r\n\r\n const handleKeyDown = (e: any) => {\r\n if (e.keyCode === 13) {\r\n setPasswordHidden(!passwordHidden);\r\n }\r\n };\r\n\r\n const cls = `${invalid ? 'invalid' : ''} ${size || ''} ${className}`;\r\n\r\n return (\r\n <>\r\n <InputWrapper disabled={disabled} readOnly={readOnly} margin={margin}>\r\n <PasswordRow>\r\n <InputFieldStyling\r\n id={id}\r\n data-testid={dataTestId}\r\n ref={inputRef}\r\n type={passwordHidden ? 'password' : 'text'}\r\n name={name}\r\n value={value}\r\n className={cls}\r\n tabIndex={disabled || readOnly ? -1 : 0}\r\n autoComplete={autoComplete}\r\n activeErrorMessage={!!validationMessage}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n required={required}\r\n readOnly={readOnly}\r\n onChange={(e: any) => onChange && onChange(e?.target?.value || '')}\r\n {...rest}\r\n />\r\n <StyledPassSwitch className={size ? size : ''}>\r\n {!disabled && !readOnly ? (\r\n passwordHidden ? (\r\n <IconButton\r\n id={`${id}_Visible`}\r\n iconColor={'#666666'}\r\n variant={'secondary'}\r\n shape={'circular'}\r\n onKeyPress={handleKeyDown}\r\n action={() => setPasswordHidden(!passwordHidden)}>\r\n <SystemIcons.VisibleOff />\r\n </IconButton>\r\n ) : (\r\n <IconButton\r\n id={`${id}_NotVisible`}\r\n iconColor={'#666666'}\r\n variant={'secondary'}\r\n shape={'circular'}\r\n onKeyPress={handleKeyDown}\r\n action={() => setPasswordHidden(!passwordHidden)}>\r\n <SystemIcons.VisibleOn />\r\n </IconButton>\r\n )\r\n ) : null}\r\n </StyledPassSwitch>\r\n </PasswordRow>\r\n </InputWrapper>\r\n {validationMessage && (\r\n <ErrorMessage className={size || ''}>\r\n <SystemIcons.TechnicalWarning color={COLORS.getColor('critical_400', theme)} />\r\n <span>{validationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n </>\r\n );\r\n});\r\n\r\nexport default PasswordField;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"PasswordField.cjs","names":["React","_interopRequireWildcard","require","_styledComponents","_styles","_styling","_common","_Button","_icons","_jsxRuntime","_excluded","_templateObject","_templateObject2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","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","StyledPassSwitch","styled","div","_taggedTemplateLiteral2","Z_INDEXES","badge","PasswordRow","PasswordField","forwardRef","_ref","ref","id","disabled","onChange","invalid","value","validationMessage","autoComplete","placeholder","required","readOnly","size","margin","className","dataTestId","_ref$name","name","rest","_objectWithoutProperties2","_React$useState","useState","_React$useState2","_slicedToArray2","passwordHidden","setPasswordHidden","inputRef","useFocusVisibleRef","theme","useTheme","useImperativeHandle","current","handleKeyDown","keyCode","cls","concat","jsxs","Fragment","children","jsx","InputWrapper","$disabled","$readOnly","$margin","InputFieldStyling","type","tabIndex","$activeErrorMessage","_e$target","target","IconButton","iconColor","variant","shape","onKeyPress","action","SystemIcons","VisibleOff","VisibleOn","ErrorMessage","TechnicalWarning","color","COLORS","getColor","propTypes","_propTypes","string","isRequired","bool","func","_default","exports"],"sources":["../../src/InputFields/PasswordField.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport styled, { useTheme } from 'styled-components';\r\nimport { COLORS } from '../styles';\r\nimport { Size, Testable } from '../types';\r\nimport { InputFieldStyling, InputWrapper, ErrorMessage } from './styling';\r\nimport { Z_INDEXES } from '../styles';\r\nimport { useFocusVisibleRef } from '../common';\r\nimport { IconButton } from '../Button';\r\nimport { SystemIcons } from '../icons';\r\n\r\nexport type PasswordFieldProps =\r\n Testable & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'id' | 'onChange' | 'readOnly' | 'required' | 'placeholder' | 'autoComplete' | 'value' | 'disabled' | 'tabIndex' | 'type'>\r\n & {\r\n /**\r\n * Required. The ID of the password field.\r\n */\r\n id: string;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the password field is disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Optional. A function to be called when the value of the password field changes.\r\n */\r\n onChange?: (text: string) => void;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the password field is invalid.\r\n */\r\n invalid?: boolean;\r\n\r\n /**\r\n * Optional. The current value of the password field.\r\n */\r\n value?: string;\r\n\r\n /**\r\n * Optional. The validation message to be displayed when the password field is invalid.\r\n */\r\n validationMessage?: string;\r\n\r\n /**\r\n * Optional. The autocomplete attribute for the password field.\r\n */\r\n autoComplete?: string;\r\n\r\n /**\r\n * Optional. The placeholder text for the password field.\r\n */\r\n placeholder?: string;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the password field is required.\r\n */\r\n required?: boolean;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the password field is read-only.\r\n */\r\n readOnly?: boolean;\r\n\r\n /**\r\n * Optional. The size of the password field. Can be 'Small' or 'Medium'.\r\n */\r\n size?: Size.Small | Size.Medium;\r\n\r\n /**\r\n * Optional. The margin of the password field. Can be any valid CSS margin value.\r\n */\r\n margin?: string;\r\n};\r\n\r\nconst StyledPassSwitch = styled.div`\r\n z-index: ${Z_INDEXES.badge};\r\n right: 0;\r\n position: absolute;\r\n`;\r\n\r\nconst PasswordRow = styled.div`\r\n position: relative;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n`;\r\n\r\nconst PasswordField = React.forwardRef<HTMLInputElement, PasswordFieldProps>(({\r\n id,\r\n disabled,\r\n onChange,\r\n invalid,\r\n value,\r\n validationMessage,\r\n autoComplete,\r\n placeholder,\r\n required,\r\n readOnly,\r\n size,\r\n margin,\r\n className,\r\n dataTestId,\r\n name = 'password',\r\n ...rest\r\n }: PasswordFieldProps, ref) => {\r\n const [passwordHidden, setPasswordHidden] = React.useState<Boolean>(true);\r\n const inputRef = useFocusVisibleRef();\r\n const theme = useTheme();\r\n\r\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\r\n\r\n const handleKeyDown = (e: any) => {\r\n if (e.keyCode === 13) {\r\n setPasswordHidden(!passwordHidden);\r\n }\r\n };\r\n\r\n const cls = `${invalid ? 'invalid' : ''} ${size || ''} ${className}`;\r\n\r\n return (\r\n <>\r\n <InputWrapper $disabled={disabled} $readOnly={readOnly} $margin={margin}>\r\n <PasswordRow>\r\n <InputFieldStyling\r\n id={id}\r\n data-testid={dataTestId}\r\n ref={inputRef}\r\n type={passwordHidden ? 'password' : 'text'}\r\n name={name}\r\n value={value}\r\n className={cls}\r\n tabIndex={disabled || readOnly ? -1 : 0}\r\n autoComplete={autoComplete}\r\n $activeErrorMessage={!!validationMessage}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n required={required}\r\n readOnly={readOnly}\r\n onChange={(e: any) => onChange && onChange(e?.target?.value || '')}\r\n {...rest}\r\n />\r\n <StyledPassSwitch className={size ? size : ''}>\r\n {!disabled && !readOnly ? (\r\n passwordHidden ? (\r\n <IconButton\r\n id={`${id}_Visible`}\r\n iconColor={'#666666'}\r\n variant={'secondary'}\r\n shape={'circular'}\r\n onKeyPress={handleKeyDown}\r\n action={() => setPasswordHidden(!passwordHidden)}>\r\n <SystemIcons.VisibleOff />\r\n </IconButton>\r\n ) : (\r\n <IconButton\r\n id={`${id}_NotVisible`}\r\n iconColor={'#666666'}\r\n variant={'secondary'}\r\n shape={'circular'}\r\n onKeyPress={handleKeyDown}\r\n action={() => setPasswordHidden(!passwordHidden)}>\r\n <SystemIcons.VisibleOn />\r\n </IconButton>\r\n )\r\n ) : null}\r\n </StyledPassSwitch>\r\n </PasswordRow>\r\n </InputWrapper>\r\n {validationMessage && (\r\n <ErrorMessage className={size || ''}>\r\n <SystemIcons.TechnicalWarning color={COLORS.getColor('critical_400', theme)} />\r\n <span>{validationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n </>\r\n );\r\n});\r\n\r\nexport default PasswordField;\r\n"],"mappings":"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","ignoreList":[]}