@laerdal/life-react-components 1.8.0 → 1.9.0-dev.1.full

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (399) hide show
  1. package/dist/Breadcrumb/Breadcrumb.cjs +1 -0
  2. package/dist/Breadcrumb/Breadcrumb.cjs.map +1 -1
  3. package/dist/Breadcrumb/Breadcrumb.js +1 -0
  4. package/dist/Breadcrumb/Breadcrumb.js.map +1 -1
  5. package/dist/Button/Button.cjs +4 -4
  6. package/dist/Button/Button.cjs.map +1 -1
  7. package/dist/Button/Button.d.ts +1 -1
  8. package/dist/Button/Button.js +4 -4
  9. package/dist/Button/Button.js.map +1 -1
  10. package/dist/Button/DualFunctionButton.cjs +1 -1
  11. package/dist/Button/DualFunctionButton.cjs.map +1 -1
  12. package/dist/Button/DualFunctionButton.js +1 -1
  13. package/dist/Button/DualFunctionButton.js.map +1 -1
  14. package/dist/Button/Iconbutton.cjs +8 -2
  15. package/dist/Button/Iconbutton.cjs.map +1 -1
  16. package/dist/Button/Iconbutton.d.ts +3 -0
  17. package/dist/Button/Iconbutton.js +8 -2
  18. package/dist/Button/Iconbutton.js.map +1 -1
  19. package/dist/Chips/ChipStyles.cjs +1 -1
  20. package/dist/Chips/ChipStyles.cjs.map +1 -1
  21. package/dist/Chips/ChipStyles.js +1 -1
  22. package/dist/Chips/ChipStyles.js.map +1 -1
  23. package/dist/Chips/ChipTypes.d.ts +3 -3
  24. package/dist/Chips/ChoiceChips.cjs +1 -1
  25. package/dist/Chips/ChoiceChips.cjs.map +1 -1
  26. package/dist/Chips/ChoiceChips.js +1 -1
  27. package/dist/Chips/ChoiceChips.js.map +1 -1
  28. package/dist/Chips/FilterChip.cjs +2 -2
  29. package/dist/Chips/FilterChip.cjs.map +1 -1
  30. package/dist/Chips/FilterChip.js +2 -2
  31. package/dist/Chips/FilterChip.js.map +1 -1
  32. package/dist/Chips/InputChip.cjs.map +1 -1
  33. package/dist/Chips/InputChip.js +1 -1
  34. package/dist/Chips/InputChip.js.map +1 -1
  35. package/dist/ChipsInput/ChipDropdownInput.cjs +5 -6
  36. package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -1
  37. package/dist/ChipsInput/ChipDropdownInput.d.ts +0 -1
  38. package/dist/ChipsInput/ChipDropdownInput.js +6 -7
  39. package/dist/ChipsInput/ChipDropdownInput.js.map +1 -1
  40. package/dist/ChipsInput/ChipInput.cjs +0 -2
  41. package/dist/ChipsInput/ChipInput.cjs.map +1 -1
  42. package/dist/ChipsInput/ChipInput.js +0 -2
  43. package/dist/ChipsInput/ChipInput.js.map +1 -1
  44. package/dist/ChipsInput/ChipInputField.cjs +11 -18
  45. package/dist/ChipsInput/ChipInputField.cjs.map +1 -1
  46. package/dist/ChipsInput/ChipInputField.d.ts +1 -1
  47. package/dist/ChipsInput/ChipInputField.js +13 -20
  48. package/dist/ChipsInput/ChipInputField.js.map +1 -1
  49. package/dist/ChipsInput/ChipInputTypes.d.ts +1 -1
  50. package/dist/Dropdown/BasicDropdown.cjs +9 -11
  51. package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
  52. package/dist/Dropdown/BasicDropdown.d.ts +2 -2
  53. package/dist/Dropdown/BasicDropdown.js +10 -12
  54. package/dist/Dropdown/BasicDropdown.js.map +1 -1
  55. package/dist/Dropdown/CommonStyling.cjs +25 -13
  56. package/dist/Dropdown/CommonStyling.cjs.map +1 -1
  57. package/dist/Dropdown/CommonStyling.d.ts +7 -6
  58. package/dist/Dropdown/CommonStyling.js +11 -11
  59. package/dist/Dropdown/CommonStyling.js.map +1 -1
  60. package/dist/Dropdown/DropdownButton.cjs +76 -18
  61. package/dist/Dropdown/DropdownButton.cjs.map +1 -1
  62. package/dist/Dropdown/DropdownButton.d.ts +1 -1
  63. package/dist/Dropdown/DropdownButton.js +73 -19
  64. package/dist/Dropdown/DropdownButton.js.map +1 -1
  65. package/dist/Dropdown/DropdownButtonTypes.d.ts +16 -5
  66. package/dist/Dropdown/DropdownFilter.cjs +93 -151
  67. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  68. package/dist/Dropdown/DropdownFilter.d.ts +9 -15
  69. package/dist/Dropdown/DropdownFilter.js +94 -152
  70. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  71. package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs +107 -176
  72. package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs.map +1 -1
  73. package/dist/GlobalNavigationBar/GlobalNavigationBar.d.ts +13 -27
  74. package/dist/GlobalNavigationBar/GlobalNavigationBar.js +106 -176
  75. package/dist/GlobalNavigationBar/GlobalNavigationBar.js.map +1 -1
  76. package/dist/GlobalNavigationBar/Logo.cjs +3 -5
  77. package/dist/GlobalNavigationBar/Logo.cjs.map +1 -1
  78. package/dist/GlobalNavigationBar/Logo.js +1 -1
  79. package/dist/GlobalNavigationBar/Logo.js.map +1 -1
  80. package/dist/GlobalNavigationBar/NavigationHelper.cjs +38 -0
  81. package/dist/GlobalNavigationBar/NavigationHelper.cjs.map +1 -0
  82. package/dist/GlobalNavigationBar/NavigationHelper.d.ts +4 -0
  83. package/dist/GlobalNavigationBar/NavigationHelper.js +27 -0
  84. package/dist/GlobalNavigationBar/NavigationHelper.js.map +1 -0
  85. package/dist/GlobalNavigationBar/desktop/DesktopActions.cjs +129 -0
  86. package/dist/GlobalNavigationBar/desktop/DesktopActions.cjs.map +1 -0
  87. package/dist/GlobalNavigationBar/desktop/DesktopActions.d.ts +15 -0
  88. package/dist/GlobalNavigationBar/desktop/DesktopActions.js +99 -0
  89. package/dist/GlobalNavigationBar/desktop/DesktopActions.js.map +1 -0
  90. package/dist/GlobalNavigationBar/{ExtendedMainMenu.cjs → desktop/ExtendedMainMenu.cjs} +7 -9
  91. package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.cjs.map +1 -0
  92. package/dist/GlobalNavigationBar/{ExtendedMainMenu.d.ts → desktop/ExtendedMainMenu.d.ts} +2 -2
  93. package/dist/GlobalNavigationBar/{ExtendedMainMenu.js → desktop/ExtendedMainMenu.js} +6 -6
  94. package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.js.map +1 -0
  95. package/dist/GlobalNavigationBar/{MainMenu.cjs → desktop/MainMenu.cjs} +17 -21
  96. package/dist/GlobalNavigationBar/desktop/MainMenu.cjs.map +1 -0
  97. package/dist/GlobalNavigationBar/desktop/MainMenu.d.ts +8 -0
  98. package/dist/GlobalNavigationBar/{MainMenu.js → desktop/MainMenu.js} +17 -21
  99. package/dist/GlobalNavigationBar/desktop/MainMenu.js.map +1 -0
  100. package/dist/GlobalNavigationBar/{RightSideNav.cjs → desktop/RightSideNav.cjs} +22 -26
  101. package/dist/GlobalNavigationBar/desktop/RightSideNav.cjs.map +1 -0
  102. package/dist/GlobalNavigationBar/desktop/RightSideNav.d.ts +8 -0
  103. package/dist/GlobalNavigationBar/desktop/RightSideNav.js +59 -0
  104. package/dist/GlobalNavigationBar/desktop/RightSideNav.js.map +1 -0
  105. package/dist/GlobalNavigationBar/desktop/UserMenu.cjs +204 -0
  106. package/dist/GlobalNavigationBar/desktop/UserMenu.cjs.map +1 -0
  107. package/dist/GlobalNavigationBar/desktop/UserMenu.d.ts +7 -0
  108. package/dist/GlobalNavigationBar/desktop/UserMenu.js +163 -0
  109. package/dist/GlobalNavigationBar/desktop/UserMenu.js.map +1 -0
  110. package/dist/GlobalNavigationBar/index.cjs +15 -18
  111. package/dist/GlobalNavigationBar/index.cjs.map +1 -1
  112. package/dist/GlobalNavigationBar/index.d.ts +2 -2
  113. package/dist/GlobalNavigationBar/index.js +2 -2
  114. package/dist/GlobalNavigationBar/index.js.map +1 -1
  115. package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs +15 -21
  116. package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs.map +1 -1
  117. package/dist/GlobalNavigationBar/mobile/CommonStyles.d.ts +3 -6
  118. package/dist/GlobalNavigationBar/mobile/CommonStyles.js +14 -15
  119. package/dist/GlobalNavigationBar/mobile/CommonStyles.js.map +1 -1
  120. package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs +117 -221
  121. package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs.map +1 -1
  122. package/dist/GlobalNavigationBar/mobile/MobileMenu.d.ts +6 -25
  123. package/dist/GlobalNavigationBar/mobile/MobileMenu.js +116 -216
  124. package/dist/GlobalNavigationBar/mobile/MobileMenu.js.map +1 -1
  125. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs +221 -0
  126. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs.map +1 -0
  127. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.d.ts +11 -0
  128. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js +184 -0
  129. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js.map +1 -0
  130. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.cjs +160 -0
  131. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.cjs.map +1 -0
  132. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.d.ts +12 -0
  133. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.js +139 -0
  134. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.js.map +1 -0
  135. package/dist/GlobalNavigationBar/types.cjs +6 -0
  136. package/dist/GlobalNavigationBar/types.cjs.map +1 -0
  137. package/dist/GlobalNavigationBar/types.d.ts +120 -0
  138. package/dist/GlobalNavigationBar/types.js +2 -0
  139. package/dist/GlobalNavigationBar/types.js.map +1 -0
  140. package/dist/InputFields/Checkbox.cjs +10 -10
  141. package/dist/InputFields/Checkbox.cjs.map +1 -1
  142. package/dist/InputFields/Checkbox.d.ts +3 -3
  143. package/dist/InputFields/Checkbox.js +10 -10
  144. package/dist/InputFields/Checkbox.js.map +1 -1
  145. package/dist/InputFields/DatepickerField.cjs +15 -17
  146. package/dist/InputFields/DatepickerField.cjs.map +1 -1
  147. package/dist/InputFields/DatepickerField.d.ts +3 -3
  148. package/dist/InputFields/DatepickerField.js +15 -21
  149. package/dist/InputFields/DatepickerField.js.map +1 -1
  150. package/dist/InputFields/Label.cjs +24 -14
  151. package/dist/InputFields/Label.cjs.map +1 -1
  152. package/dist/InputFields/Label.js +24 -16
  153. package/dist/InputFields/Label.js.map +1 -1
  154. package/dist/InputFields/NumberField.cjs +288 -0
  155. package/dist/InputFields/NumberField.cjs.map +1 -0
  156. package/dist/InputFields/NumberField.d.ts +21 -0
  157. package/dist/InputFields/NumberField.js +252 -0
  158. package/dist/InputFields/NumberField.js.map +1 -0
  159. package/dist/InputFields/PasswordField.cjs +23 -18
  160. package/dist/InputFields/PasswordField.cjs.map +1 -1
  161. package/dist/InputFields/PasswordField.d.ts +2 -3
  162. package/dist/InputFields/PasswordField.js +21 -16
  163. package/dist/InputFields/PasswordField.js.map +1 -1
  164. package/dist/InputFields/QuickSearch.cjs +2 -3
  165. package/dist/InputFields/QuickSearch.cjs.map +1 -1
  166. package/dist/InputFields/QuickSearch.js +2 -3
  167. package/dist/InputFields/QuickSearch.js.map +1 -1
  168. package/dist/InputFields/RadioButton.cjs +5 -7
  169. package/dist/InputFields/RadioButton.cjs.map +1 -1
  170. package/dist/InputFields/RadioButton.d.ts +1 -1
  171. package/dist/InputFields/RadioButton.js +5 -5
  172. package/dist/InputFields/RadioButton.js.map +1 -1
  173. package/dist/InputFields/SearchBar.cjs +2 -2
  174. package/dist/InputFields/SearchBar.cjs.map +1 -1
  175. package/dist/InputFields/SearchBar.js +3 -3
  176. package/dist/InputFields/SearchBar.js.map +1 -1
  177. package/dist/InputFields/TextField.cjs +35 -40
  178. package/dist/InputFields/TextField.cjs.map +1 -1
  179. package/dist/InputFields/TextField.d.ts +6 -6
  180. package/dist/InputFields/TextField.js +35 -41
  181. package/dist/InputFields/TextField.js.map +1 -1
  182. package/dist/InputFields/Textarea.cjs +26 -31
  183. package/dist/InputFields/Textarea.cjs.map +1 -1
  184. package/dist/InputFields/Textarea.d.ts +1 -12
  185. package/dist/InputFields/Textarea.js +31 -33
  186. package/dist/InputFields/Textarea.js.map +1 -1
  187. package/dist/InputFields/components/SearchBarInput.cjs +1 -1
  188. package/dist/InputFields/components/SearchBarInput.cjs.map +1 -1
  189. package/dist/InputFields/components/SearchBarInput.js +1 -1
  190. package/dist/InputFields/components/SearchBarInput.js.map +1 -1
  191. package/dist/InputFields/components/SearchField.cjs +1 -3
  192. package/dist/InputFields/components/SearchField.cjs.map +1 -1
  193. package/dist/InputFields/components/SearchField.js +1 -2
  194. package/dist/InputFields/components/SearchField.js.map +1 -1
  195. package/dist/InputFields/index.cjs +8 -0
  196. package/dist/InputFields/index.cjs.map +1 -1
  197. package/dist/InputFields/index.d.ts +2 -1
  198. package/dist/InputFields/index.js +2 -1
  199. package/dist/InputFields/index.js.map +1 -1
  200. package/dist/InputFields/styling.cjs +22 -28
  201. package/dist/InputFields/styling.cjs.map +1 -1
  202. package/dist/InputFields/styling.d.ts +7 -7
  203. package/dist/InputFields/styling.js +19 -23
  204. package/dist/InputFields/styling.js.map +1 -1
  205. package/dist/InputFields/types.cjs +6 -0
  206. package/dist/InputFields/types.cjs.map +1 -0
  207. package/dist/InputFields/types.d.ts +38 -0
  208. package/dist/InputFields/types.js +2 -0
  209. package/dist/InputFields/types.js.map +1 -0
  210. package/dist/List/ListRow.cjs +1 -0
  211. package/dist/List/ListRow.cjs.map +1 -1
  212. package/dist/List/ListRow.js +1 -0
  213. package/dist/List/ListRow.js.map +1 -1
  214. package/dist/MenuItem/MenuItem.cjs +26 -11
  215. package/dist/MenuItem/MenuItem.cjs.map +1 -1
  216. package/dist/MenuItem/MenuItem.d.ts +6 -4
  217. package/dist/MenuItem/MenuItem.js +26 -11
  218. package/dist/MenuItem/MenuItem.js.map +1 -1
  219. package/dist/MenuItem/index.cjs.map +1 -1
  220. package/dist/MenuItem/index.js.map +1 -1
  221. package/dist/Modals/ModalNote.cjs +1 -1
  222. package/dist/Modals/ModalNote.cjs.map +1 -1
  223. package/dist/Modals/ModalNote.js +2 -2
  224. package/dist/Modals/ModalNote.js.map +1 -1
  225. package/dist/Popover/Popover.cjs +267 -0
  226. package/dist/Popover/Popover.cjs.map +1 -0
  227. package/dist/Popover/Popover.d.ts +26 -0
  228. package/dist/Popover/Popover.js +231 -0
  229. package/dist/Popover/Popover.js.map +1 -0
  230. package/dist/Popover/index.cjs +16 -0
  231. package/dist/Popover/index.cjs.map +1 -0
  232. package/dist/Popover/index.d.ts +1 -0
  233. package/dist/Popover/index.js +2 -0
  234. package/dist/Popover/index.js.map +1 -0
  235. package/dist/ProfileButton/ProfileButton.cjs +105 -0
  236. package/dist/ProfileButton/ProfileButton.cjs.map +1 -0
  237. package/dist/ProfileButton/ProfileButton.d.ts +14 -0
  238. package/dist/ProfileButton/ProfileButton.js +79 -0
  239. package/dist/ProfileButton/ProfileButton.js.map +1 -0
  240. package/dist/ProfileButton/index.cjs +16 -0
  241. package/dist/ProfileButton/index.cjs.map +1 -0
  242. package/dist/ProfileButton/index.d.ts +1 -0
  243. package/dist/ProfileButton/index.js +2 -0
  244. package/dist/ProfileButton/index.js.map +1 -0
  245. package/dist/QuizButton/QuizButton.cjs +1 -1
  246. package/dist/QuizButton/QuizButton.cjs.map +1 -1
  247. package/dist/QuizButton/QuizButton.js +1 -1
  248. package/dist/QuizButton/QuizButton.js.map +1 -1
  249. package/dist/Switcher/MobileSwitcherMenu.cjs +24 -78
  250. package/dist/Switcher/MobileSwitcherMenu.cjs.map +1 -1
  251. package/dist/Switcher/MobileSwitcherMenu.d.ts +6 -5
  252. package/dist/Switcher/MobileSwitcherMenu.js +26 -70
  253. package/dist/Switcher/MobileSwitcherMenu.js.map +1 -1
  254. package/dist/Table/Table.cjs +22 -22
  255. package/dist/Table/Table.cjs.map +1 -1
  256. package/dist/Table/Table.js +22 -22
  257. package/dist/Table/Table.js.map +1 -1
  258. package/dist/Table/TableBody.cjs +1 -1
  259. package/dist/Table/TableBody.cjs.map +1 -1
  260. package/dist/Table/TableBody.js +1 -1
  261. package/dist/Table/TableBody.js.map +1 -1
  262. package/dist/Table/TableFooter.cjs +12 -14
  263. package/dist/Table/TableFooter.cjs.map +1 -1
  264. package/dist/Table/TableFooter.js +13 -15
  265. package/dist/Table/TableFooter.js.map +1 -1
  266. package/dist/Table/TableHeaders.cjs +1 -0
  267. package/dist/Table/TableHeaders.cjs.map +1 -1
  268. package/dist/Table/TableHeaders.js +1 -0
  269. package/dist/Table/TableHeaders.js.map +1 -1
  270. package/dist/Tabs/TabLink.cjs +2 -3
  271. package/dist/Tabs/TabLink.cjs.map +1 -1
  272. package/dist/Tabs/TabLink.d.ts +1 -2
  273. package/dist/Tabs/TabLink.js +2 -3
  274. package/dist/Tabs/TabLink.js.map +1 -1
  275. package/dist/Tile/Tile.cjs +61 -0
  276. package/dist/Tile/Tile.cjs.map +1 -0
  277. package/dist/Tile/Tile.d.ts +4 -0
  278. package/dist/Tile/Tile.js +43 -0
  279. package/dist/Tile/Tile.js.map +1 -0
  280. package/dist/Tile/TileBody.cjs +37 -0
  281. package/dist/Tile/TileBody.cjs.map +1 -0
  282. package/dist/Tile/TileBody.d.ts +6 -0
  283. package/dist/Tile/TileBody.js +22 -0
  284. package/dist/Tile/TileBody.js.map +1 -0
  285. package/dist/Tile/TileCommonItems.cjs +165 -0
  286. package/dist/Tile/TileCommonItems.cjs.map +1 -0
  287. package/dist/Tile/TileCommonItems.d.ts +9 -0
  288. package/dist/Tile/TileCommonItems.js +126 -0
  289. package/dist/Tile/TileCommonItems.js.map +1 -0
  290. package/dist/Tile/TileFooter.cjs +48 -0
  291. package/dist/Tile/TileFooter.cjs.map +1 -0
  292. package/dist/Tile/TileFooter.d.ts +7 -0
  293. package/dist/Tile/TileFooter.js +32 -0
  294. package/dist/Tile/TileFooter.js.map +1 -0
  295. package/dist/Tile/TileHeader.cjs +90 -0
  296. package/dist/Tile/TileHeader.cjs.map +1 -0
  297. package/dist/Tile/TileHeader.d.ts +7 -0
  298. package/dist/Tile/TileHeader.js +68 -0
  299. package/dist/Tile/TileHeader.js.map +1 -0
  300. package/dist/Tile/TileTypes.cjs +6 -0
  301. package/dist/Tile/TileTypes.cjs.map +1 -0
  302. package/dist/Tile/TileTypes.d.ts +57 -0
  303. package/dist/Tile/TileTypes.js +2 -0
  304. package/dist/Tile/TileTypes.js.map +1 -0
  305. package/dist/Tile/index.cjs +33 -0
  306. package/dist/Tile/index.cjs.map +1 -0
  307. package/dist/Tile/index.d.ts +3 -0
  308. package/dist/Tile/index.js +4 -0
  309. package/dist/Tile/index.js.map +1 -0
  310. package/dist/common/StackState.cjs +47 -0
  311. package/dist/common/StackState.cjs.map +1 -0
  312. package/dist/common/StackState.d.ts +7 -0
  313. package/dist/common/StackState.js +30 -0
  314. package/dist/common/StackState.js.map +1 -0
  315. package/dist/hooks/useClickOutside.cjs +6 -2
  316. package/dist/hooks/useClickOutside.cjs.map +1 -1
  317. package/dist/hooks/useClickOutside.d.ts +1 -1
  318. package/dist/hooks/useClickOutside.js +6 -2
  319. package/dist/hooks/useClickOutside.js.map +1 -1
  320. package/dist/icons/contenticons/ContentIcons.cjs +3214 -3182
  321. package/dist/icons/contenticons/ContentIcons.cjs.map +1 -1
  322. package/dist/icons/contenticons/ContentIcons.d.ts +17 -0
  323. package/dist/icons/contenticons/ContentIcons.js +3341 -3365
  324. package/dist/icons/contenticons/ContentIcons.js.map +1 -1
  325. package/dist/icons/index.cjs +22 -69
  326. package/dist/icons/index.cjs.map +1 -1
  327. package/dist/icons/index.d.ts +1 -4
  328. package/dist/icons/index.js +19 -64
  329. package/dist/icons/index.js.map +1 -1
  330. package/dist/icons/systemicons/SystemIcons.cjs +3216 -2433
  331. package/dist/icons/systemicons/SystemIcons.cjs.map +1 -1
  332. package/dist/icons/systemicons/SystemIcons.d.ts +12 -2
  333. package/dist/icons/systemicons/SystemIcons.js +3016 -2267
  334. package/dist/icons/systemicons/SystemIcons.js.map +1 -1
  335. package/dist/index.cjs +56 -0
  336. package/dist/index.cjs.map +1 -1
  337. package/dist/index.d.ts +4 -0
  338. package/dist/index.js +4 -0
  339. package/dist/index.js.map +1 -1
  340. package/dist/styles/colors.cjs +1 -0
  341. package/dist/styles/colors.cjs.map +1 -1
  342. package/dist/styles/colors.d.ts +1 -0
  343. package/dist/styles/colors.js +1 -0
  344. package/dist/styles/colors.js.map +1 -1
  345. package/dist/styles/z-indexes.cjs +2 -1
  346. package/dist/styles/z-indexes.cjs.map +1 -1
  347. package/dist/styles/z-indexes.d.ts +1 -0
  348. package/dist/styles/z-indexes.js +2 -1
  349. package/dist/styles/z-indexes.js.map +1 -1
  350. package/dist/types.cjs +20 -1
  351. package/dist/types.cjs.map +1 -1
  352. package/dist/types.d.ts +10 -31
  353. package/dist/types.js +17 -0
  354. package/dist/types.js.map +1 -1
  355. package/package.json +13 -9
  356. package/dist/GlobalNavigationBar/Actions.cjs +0 -185
  357. package/dist/GlobalNavigationBar/Actions.cjs.map +0 -1
  358. package/dist/GlobalNavigationBar/Actions.d.ts +0 -13
  359. package/dist/GlobalNavigationBar/Actions.js +0 -160
  360. package/dist/GlobalNavigationBar/Actions.js.map +0 -1
  361. package/dist/GlobalNavigationBar/Avatar.cjs +0 -104
  362. package/dist/GlobalNavigationBar/Avatar.cjs.map +0 -1
  363. package/dist/GlobalNavigationBar/Avatar.d.ts +0 -15
  364. package/dist/GlobalNavigationBar/Avatar.js +0 -77
  365. package/dist/GlobalNavigationBar/Avatar.js.map +0 -1
  366. package/dist/GlobalNavigationBar/ExtendedMainMenu.cjs.map +0 -1
  367. package/dist/GlobalNavigationBar/ExtendedMainMenu.js.map +0 -1
  368. package/dist/GlobalNavigationBar/MainMenu.cjs.map +0 -1
  369. package/dist/GlobalNavigationBar/MainMenu.d.ts +0 -8
  370. package/dist/GlobalNavigationBar/MainMenu.js.map +0 -1
  371. package/dist/GlobalNavigationBar/RightSideNav.cjs.map +0 -1
  372. package/dist/GlobalNavigationBar/RightSideNav.d.ts +0 -8
  373. package/dist/GlobalNavigationBar/RightSideNav.js +0 -61
  374. package/dist/GlobalNavigationBar/RightSideNav.js.map +0 -1
  375. package/dist/GlobalNavigationBar/UserMenu/MenuLink.cjs +0 -112
  376. package/dist/GlobalNavigationBar/UserMenu/MenuLink.cjs.map +0 -1
  377. package/dist/GlobalNavigationBar/UserMenu/MenuLink.d.ts +0 -11
  378. package/dist/GlobalNavigationBar/UserMenu/MenuLink.js +0 -86
  379. package/dist/GlobalNavigationBar/UserMenu/MenuLink.js.map +0 -1
  380. package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.cjs +0 -178
  381. package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.cjs.map +0 -1
  382. package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.d.ts +0 -16
  383. package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.js +0 -146
  384. package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.js.map +0 -1
  385. package/dist/GlobalNavigationBar/UserMenu/UserMenu.cjs +0 -168
  386. package/dist/GlobalNavigationBar/UserMenu/UserMenu.cjs.map +0 -1
  387. package/dist/GlobalNavigationBar/UserMenu/UserMenu.d.ts +0 -15
  388. package/dist/GlobalNavigationBar/UserMenu/UserMenu.js +0 -135
  389. package/dist/GlobalNavigationBar/UserMenu/UserMenu.js.map +0 -1
  390. package/dist/GlobalNavigationBar/mobile/ExitMenuButton.cjs +0 -49
  391. package/dist/GlobalNavigationBar/mobile/ExitMenuButton.cjs.map +0 -1
  392. package/dist/GlobalNavigationBar/mobile/ExitMenuButton.d.ts +0 -6
  393. package/dist/GlobalNavigationBar/mobile/ExitMenuButton.js +0 -27
  394. package/dist/GlobalNavigationBar/mobile/ExitMenuButton.js.map +0 -1
  395. package/dist/GlobalNavigationBar/mobile/MobileActionMenu.cjs +0 -91
  396. package/dist/GlobalNavigationBar/mobile/MobileActionMenu.cjs.map +0 -1
  397. package/dist/GlobalNavigationBar/mobile/MobileActionMenu.d.ts +0 -13
  398. package/dist/GlobalNavigationBar/mobile/MobileActionMenu.js +0 -70
  399. package/dist/GlobalNavigationBar/mobile/MobileActionMenu.js.map +0 -1
@@ -0,0 +1,288 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
+
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+
18
+ var React = _interopRequireWildcard(require("react"));
19
+
20
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
21
+
22
+ var _Button = require("../Button");
23
+
24
+ var _icons = require("../icons");
25
+
26
+ var _styles = require("../styles");
27
+
28
+ var _typography = require("../styles/typography");
29
+
30
+ var _types = require("../types");
31
+
32
+ var _jsxRuntime = require("react/jsx-runtime");
33
+
34
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
35
+
36
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
+
38
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
+
40
+ var Container = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)([""])));
41
+
42
+ var LabelContainer = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n margin-bottom: 4px;\n color: ", ";\n display: flex;\n ", "\n"])), _styles.COLORS.neutral_500, function (props) {
43
+ return props.size === _types.Size.Small ? (0, _typography.ComponentXXSStyling)(_typography.ComponentTextStyle.Regular, null) : (0, _typography.ComponentXSStyling)(_typography.ComponentTextStyle.Regular, null);
44
+ });
45
+
46
+ var LabelText = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)([""])));
47
+
48
+ var LabelIcon = _styledComponents.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n margin-right: ", ";\n svg {\n height: 9px;\n width: 9px;\n }\n"])), function (props) {
49
+ return props.size === _types.Size.Small ? '6px' : '8px';
50
+ });
51
+
52
+ var InputWrapper = _styledComponents.default.div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n margin: ", ";\n display: flex;\n flex-grow: 1;\n"])), function (props) {
53
+ return props.size === _types.Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px';
54
+ });
55
+
56
+ var PrefixContainer = _styledComponents.default.div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n margin-right: 4px;\n width: ", ";\n height: ", ";\n color: ", ";\n ", "\n"])), function (props) {
57
+ return props.size === _types.Size.Small ? '10px' : '11px';
58
+ }, function (props) {
59
+ return props.size === _types.Size.Small ? '20px' : '24px';
60
+ }, _styles.COLORS.neutral_500, function (props) {
61
+ return props.size === _types.Size.Small ? (0, _typography.ComponentSStyling)(_typography.ComponentTextStyle.Regular, null) : (0, _typography.ComponentMStyling)(_typography.ComponentTextStyle.Regular, null);
62
+ });
63
+
64
+ var OperatorWrapper = _styledComponents.default.div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n margin:", ";\n svg {\n height: 14px;\n width: 14px;\n }\n .divider {\n margin: 16px 0;\n background: ", ";\n width: 1px;\n }\n"])), function (props) {
65
+ return props.size === _types.Size.Medium ? '4px 0' : '';
66
+ }, _styles.COLORS.neutral_200);
67
+
68
+ var NumberInput = _styledComponents.default.input(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n width: 100%; \n height: ", "; \n border: none;\n color: ", ";\n padding: 0; \n ", "\n\n &:hover, &:focus, &:active {\n outline: none;\n }\n\n &::placeholder {\n ", "\n }\n"])), function (props) {
69
+ return props.fieldSize === _types.Size.Small ? '20px' : '24px';
70
+ }, _styles.COLORS.neutral_500, function (props) {
71
+ return props.fieldSize === _types.Size.Small ? (0, _typography.ComponentSStyling)(_typography.ComponentTextStyle.Regular, _styles.COLORS.black) : (0, _typography.ComponentMStyling)(_typography.ComponentTextStyle.Regular, _styles.COLORS.black);
72
+ }, function (props) {
73
+ return props.fieldSize === _types.Size.Small ? (0, _typography.ComponentSStyling)(_typography.ComponentTextStyle.Italic, null) : (0, _typography.ComponentMStyling)(_typography.ComponentTextStyle.Italic, null);
74
+ });
75
+
76
+ var NoteLabel = _styledComponents.default.div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n ", " \n"])), _styles.COLORS.neutral_500, function (props) {
77
+ return props.size === _types.Size.Small ? (0, _typography.ComponentXXSStyling)(_typography.ComponentTextStyle.Regular, null) : (0, _typography.ComponentXSStyling)(_typography.ComponentTextStyle.Regular, null);
78
+ });
79
+
80
+ var NoteIcon = _styledComponents.default.div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n svg {\n height: 16px;\n }\n"])));
81
+
82
+ var NoteContainer = _styledComponents.default.div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n margin-top: 5px;\n\n &.valid {\n ", " {\n color: ", ";\n }\n\n ", " {\n svg path {\n fill: ", ";\n }\n }\n }\n\n &.invalid {\n ", " {\n color: ", ";\n }\n\n ", " {\n svg path {\n fill: ", ";\n }\n }\n }\n"])), NoteLabel, _styles.COLORS.correct_500, NoteIcon, _styles.COLORS.correct_500, NoteLabel, _styles.COLORS.critical_500, NoteIcon, _styles.COLORS.critical_500);
83
+
84
+ var InputContainer = _styledComponents.default.div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2.default)(["\n min-width: 160px;\n height: ", ";\n display: flex;\n border: 0;\n border-radius: 4px;\n box-shadow: inset 0px 0px 0px 1px ", ";\n\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n\n &:focus-within:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n\n &:active:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n\n &.disabled {\n box-shadow: inset 0px 0px 0px 1px ", ";\n cursor: not-allowed;\n \n ", "{\n color: ", ";\n }\n\n ", "{\n color: ", ";\n cursor: not-allowed;\n pointer-events: none;\n\n &::placeholder {\n color: ", ";\n }\n }\n }\n\n &.readOnly {\n background: ", ";\n box-shadow: inset 0px 0px 0px 1px ", ";\n cursor: not-allowed;\n\n ", "{\n background: ", ";\n cursor: not-allowed;\n pointer-events: none;\n }\n }\n\n &.valid {\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n\n &.invalid {\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n"])), function (props) {
85
+ return props.size === _types.Size.Small ? '48px' : '56px';
86
+ }, _styles.COLORS.neutral_400, _styles.COLORS.primary_700, _styles.COLORS.primary_800, _styles.COLORS.primary_800, _styles.COLORS.neutral_100, PrefixContainer, _styles.COLORS.neutral_300, NumberInput, _styles.COLORS.neutral_300, _styles.COLORS.neutral_300, _styles.COLORS.neutral_100, _styles.COLORS.neutral_300, NumberInput, _styles.COLORS.neutral_100, _styles.COLORS.correct_400, _styles.COLORS.critical_400);
87
+
88
+ var NumberField = function NumberField(_ref) {
89
+ var _ref$size = _ref.size,
90
+ size = _ref$size === void 0 ? _types.Size.Small : _ref$size,
91
+ label = _ref.label,
92
+ note = _ref.note,
93
+ noteIcon = _ref.noteIcon,
94
+ required = _ref.required,
95
+ prefix = _ref.prefix,
96
+ _ref$interval = _ref.interval,
97
+ interval = _ref$interval === void 0 ? 1 : _ref$interval,
98
+ minValue = _ref.minValue,
99
+ maxValue = _ref.maxValue,
100
+ allowNegative = _ref.allowNegative,
101
+ decimalPrecision = _ref.decimalPrecision,
102
+ _ref$disabled = _ref.disabled,
103
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
104
+ _ref$readOnly = _ref.readOnly,
105
+ readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
106
+ valid = _ref.valid,
107
+ defaultVal = _ref.defaultVal;
108
+
109
+ var _React$useState = React.useState(defaultVal ? defaultVal.toString() : ''),
110
+ _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
111
+ userInput = _React$useState2[0],
112
+ setUserInput = _React$useState2[1];
113
+
114
+ var fieldState = valid !== undefined ? valid ? 'valid' : 'invalid' : undefined;
115
+
116
+ var handleKeyPress = function handleKeyPress(e) {
117
+ switch (e.key) {
118
+ case 'ArrowUp':
119
+ addInterval();
120
+ break;
121
+
122
+ case 'ArrowDown':
123
+ subtractInterval();
124
+ break;
125
+
126
+ default:
127
+ break;
128
+ }
129
+ };
130
+
131
+ var handleInput = function handleInput(e) {
132
+ e.preventDefault();
133
+ var simpleRegex = new RegExp(/^[0-9]\d*$/);
134
+ var decimalFormationRegEx = new RegExp(/^[0-9]\d*\.$/);
135
+ var negativeDecimalFormationRegEx = new RegExp(/^[-][0-9]\d*\.$/);
136
+ var allowNegativeRegex = new RegExp(/^[-][0-9]\d*$/);
137
+ var decimalPrecisionRegex = decimalPrecision ? new RegExp("^[0-9]\\d*\\.[0-9]\\d{0,".concat(decimalPrecision - 1, "}$")) : undefined;
138
+ var negativeAndDecimalRegex = decimalPrecision && allowNegative ? new RegExp("^[-][0-9]\\d*\\.[0-9]\\d{0,".concat(decimalPrecision - 1, "}$")) : undefined;
139
+ var val = e.target.value;
140
+
141
+ if (val !== '') {
142
+ if (allowNegative && decimalPrecision) {
143
+ if (val.length === 1 && val.charAt(0) === '-') setUserInput(val);else {
144
+ if ((negativeAndDecimalRegex.test(val) || decimalPrecisionRegex.test(val)) && isInRange(val, true)) setUserInput(val);else if ((negativeDecimalFormationRegEx.test(val) || decimalFormationRegEx.test(val)) && isInRange(val.replace('.', ''), true)) setUserInput(val);else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, true)) setUserInput(val);
145
+ }
146
+ } else if (allowNegative) {
147
+ if (val.length === 1 && val.charAt(0) === '-') setUserInput(val);else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, false)) setUserInput(val);
148
+ } else if (decimalPrecision && val.indexOf('.') === val.lastIndexOf('.') && isInRange(val, true)) {
149
+ if (decimalPrecisionRegex.test(val)) setUserInput(val);else if (decimalFormationRegEx.test(val)) setUserInput(val);else if (!val.includes('.') && simpleRegex.test(val)) setUserInput(val);
150
+ } else if (simpleRegex.test(val) && isInRange(val, false)) {
151
+ setUserInput(val);
152
+ }
153
+ }
154
+
155
+ if (val === '') setUserInput('');
156
+ };
157
+
158
+ var isInRange = function isInRange(value, isDecimal) {
159
+ var x = isDecimal ? parseFloat(value).toFixed(decimalPrecision) : parseInt(value);
160
+ if (minValue && minValue > x) return false;else if (maxValue && maxValue < x) return false;else return true;
161
+ };
162
+
163
+ var addInterval = function addInterval() {
164
+ var val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);
165
+ val = isNaN(val) && userInput === '' ? minValue !== null && minValue !== void 0 ? minValue : 0 : val;
166
+
167
+ if (!isNaN(val)) {
168
+ if (decimalPrecision) val = Math.round((val + interval) * Math.pow(10, decimalPrecision)) / Math.pow(10, decimalPrecision);else val += 1;
169
+ if (maxValue && maxValue >= val) setUserInput(val.toString());else if (!maxValue) setUserInput(val.toString());
170
+ }
171
+ };
172
+
173
+ var subtractInterval = function subtractInterval() {
174
+ var val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);
175
+ val = isNaN(val) && userInput === '' ? maxValue !== null && maxValue !== void 0 ? maxValue : 0 : val;
176
+
177
+ if (!isNaN(val)) {
178
+ if (decimalPrecision) val = Math.round((val - interval) * Math.pow(10, decimalPrecision)) / Math.pow(10, decimalPrecision);else val -= 1;
179
+ if (minValue && minValue <= val) allowNegative ? setUserInput(val.toString()) : val >= 0 ? setUserInput(val.toString()) : undefined;else if (!minValue) allowNegative ? setUserInput(val.toString()) : val >= 0 ? setUserInput(val.toString()) : undefined;
180
+ }
181
+ };
182
+
183
+ var isLocked = function isLocked(input, operator) {
184
+ var val = decimalPrecision ? parseFloat(input) : parseInt(input);
185
+ val = isNaN(val) && userInput === '' ? 0 : val;
186
+ var operatorState = false;
187
+ if (operator === 'add' && maxValue) operatorState = val < maxValue ? false : true;
188
+ if (operator === 'subtract' && minValue) operatorState = val > minValue ? false : true;
189
+ if (operator === 'subtract' && !minValue && !allowNegative) operatorState = val > 0 ? false : true;
190
+ return operatorState;
191
+ };
192
+
193
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Container, {
194
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(LabelContainer, {
195
+ size: size,
196
+ children: [required && /*#__PURE__*/(0, _jsxRuntime.jsx)(LabelIcon, {
197
+ size: size,
198
+ "data-testid": 'labelIcon',
199
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.SystemIcons.Asterisk, {
200
+ color: _styles.COLORS.critical_500
201
+ })
202
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(LabelText, {
203
+ children: label
204
+ })]
205
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(InputContainer, {
206
+ size: size,
207
+ "data-testid": 'inputContainer',
208
+ tabIndex: -1,
209
+ className: 'numberField'.concat(disabled ? ' disabled' : '').concat(readOnly ? ' readOnly' : '').concat(fieldState ? " ".concat(fieldState) : ''),
210
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(InputWrapper, {
211
+ size: size,
212
+ children: [prefix && /*#__PURE__*/(0, _jsxRuntime.jsx)(PrefixContainer, {
213
+ size: size,
214
+ children: prefix
215
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(NumberInput, {
216
+ fieldSize: size,
217
+ placeholder: "Enter number",
218
+ value: userInput,
219
+ tabIndex: disabled || readOnly ? -1 : 0,
220
+ onChange: function onChange(e) {
221
+ return handleInput(e);
222
+ },
223
+ onKeyDown: function onKeyDown(e) {
224
+ return handleKeyPress(e);
225
+ }
226
+ })]
227
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(OperatorWrapper, {
228
+ "data-testid": 'operators',
229
+ size: size,
230
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
231
+ tabIndex: -1,
232
+ variant: "secondary",
233
+ shape: "square",
234
+ action: function action() {
235
+ return subtractInterval();
236
+ },
237
+ useTransparentBackground: true,
238
+ disabled: disabled || readOnly || isLocked(userInput, 'subtract'),
239
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.SystemIcons.Minus, {
240
+ size: "14px"
241
+ })
242
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
243
+ className: "divider"
244
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
245
+ tabIndex: -1,
246
+ variant: "secondary",
247
+ shape: "square",
248
+ action: function action() {
249
+ return addInterval();
250
+ },
251
+ useTransparentBackground: true,
252
+ disabled: disabled || readOnly || isLocked(userInput, 'add'),
253
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.SystemIcons.Plus, {
254
+ size: "14px"
255
+ })
256
+ })]
257
+ })]
258
+ }), note && /*#__PURE__*/(0, _jsxRuntime.jsxs)(NoteContainer, {
259
+ className: 'noteField'.concat(fieldState ? " ".concat(fieldState) : ''),
260
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(NoteIcon, {
261
+ children: noteIcon
262
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(NoteLabel, {
263
+ size: size,
264
+ children: note
265
+ })]
266
+ })]
267
+ });
268
+ };
269
+
270
+ NumberField.propTypes = {
271
+ prefix: _propTypes.default.string,
272
+ interval: _propTypes.default.number,
273
+ label: _propTypes.default.string.isRequired,
274
+ note: _propTypes.default.string,
275
+ noteIcon: _propTypes.default.node,
276
+ required: _propTypes.default.bool,
277
+ minValue: _propTypes.default.number,
278
+ maxValue: _propTypes.default.number,
279
+ allowNegative: _propTypes.default.bool,
280
+ decimalPrecision: _propTypes.default.number,
281
+ disabled: _propTypes.default.bool,
282
+ readOnly: _propTypes.default.bool,
283
+ valid: _propTypes.default.bool,
284
+ defaultVal: _propTypes.default.number
285
+ };
286
+ var _default = NumberField;
287
+ exports.default = _default;
288
+ //# sourceMappingURL=NumberField.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/InputFields/NumberField.tsx"],"names":["Container","styled","div","LabelContainer","COLORS","neutral_500","props","size","Size","Small","ComponentTextStyle","Regular","LabelText","LabelIcon","InputWrapper","PrefixContainer","OperatorWrapper","Medium","neutral_200","NumberInput","input","fieldSize","black","Italic","NoteLabel","NoteIcon","NoteContainer","correct_500","critical_500","InputContainer","neutral_400","primary_700","primary_800","neutral_100","neutral_300","correct_400","critical_400","NumberField","label","note","noteIcon","required","prefix","interval","minValue","maxValue","allowNegative","decimalPrecision","disabled","readOnly","valid","defaultVal","React","useState","toString","userInput","setUserInput","fieldState","undefined","handleKeyPress","e","key","addInterval","subtractInterval","handleInput","preventDefault","simpleRegex","RegExp","decimalFormationRegEx","negativeDecimalFormationRegEx","allowNegativeRegex","decimalPrecisionRegex","negativeAndDecimalRegex","val","target","value","length","charAt","test","isInRange","replace","indexOf","lastIndexOf","includes","isDecimal","x","parseFloat","toFixed","parseInt","isNaN","Math","round","pow","isLocked","operator","operatorState","concat"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport { IconButton } from '../Button';\nimport { SystemIcons } from '../icons';\nimport { COLORS } from '../styles';\nimport { ComponentMStyling, ComponentSStyling, ComponentTextStyle, ComponentXXSStyling, ComponentXSStyling } from '../styles/typography';\nimport { Size } from '../types';\n\nconst Container = styled.div``;\n\nconst LabelContainer = styled.div<{size: Size}>`\n margin-bottom: 4px;\n color: ${COLORS.neutral_500};\n display: flex;\n ${props=>props.size===Size.Small ? ComponentXXSStyling(ComponentTextStyle.Regular,null) : ComponentXSStyling(ComponentTextStyle.Regular,null)}\n`;\n\nconst LabelText = styled.div``;\n\nconst LabelIcon = styled.div<{size: Size}>`\n margin-right: ${props => props.size === Size.Small?'6px':'8px'};\n svg {\n height: 9px;\n width: 9px;\n }\n`;\n\nconst InputWrapper = styled.div<{size: Size}>`\n margin: ${props => props.size === Size.Small?'14px 0 14px 16px':'16px 0 16px 16px'};\n display: flex;\n flex-grow: 1;\n`;\n\nconst PrefixContainer = styled.div<{size: Size}>`\n margin-right: 4px;\n width: ${props => props.size === Size.Small?'10px':'11px'};\n height: ${props => props.size === Size.Small?'20px':'24px'};\n color: ${COLORS.neutral_500};\n ${props=>props.size===Size.Small?ComponentSStyling(ComponentTextStyle.Regular,null):ComponentMStyling(ComponentTextStyle.Regular,null)}\n`;\n\nconst OperatorWrapper = styled.div<{size: Size}>`\n display: flex;\n margin:${props => props.size === Size.Medium?'4px 0':''};\n svg {\n height: 14px;\n width: 14px;\n }\n .divider {\n margin: 16px 0;\n background: ${COLORS.neutral_200};\n width: 1px;\n }\n`;\n\nconst NumberInput = styled.input<{fieldSize: Size}>`\n width: 100%; \n height: ${props => props.fieldSize === Size.Small?'20px':'24px'}; \n border: none;\n color: ${COLORS.neutral_500};\n padding: 0; \n ${props => props.fieldSize === Size.Small?ComponentSStyling(ComponentTextStyle.Regular, COLORS.black):ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}\n\n &:hover, &:focus, &:active {\n outline: none;\n }\n\n &::placeholder {\n ${props => props.fieldSize === Size.Small?ComponentSStyling(ComponentTextStyle.Italic, null):ComponentMStyling(ComponentTextStyle.Italic, null)}\n }\n`;\n\nconst NoteLabel = styled.div<{size: Size}>`\n color: ${COLORS.neutral_500};\n ${props=>props.size===Size.Small ? ComponentXXSStyling(ComponentTextStyle.Regular,null) : ComponentXSStyling(ComponentTextStyle.Regular,null)} \n`;\n\nconst NoteIcon = styled.div`\n svg {\n height: 16px;\n }\n`;\n\nconst NoteContainer = styled.div`\n display: flex;\n margin-top: 5px;\n\n &.valid {\n ${NoteLabel} {\n color: ${COLORS.correct_500};\n }\n\n ${NoteIcon} {\n svg path {\n fill: ${COLORS.correct_500};\n }\n }\n }\n\n &.invalid {\n ${NoteLabel} {\n color: ${COLORS.critical_500};\n }\n\n ${NoteIcon} {\n svg path {\n fill: ${COLORS.critical_500};\n }\n }\n }\n`;\n\nconst InputContainer = styled.div<{size: Size}>`\n min-width: 160px;\n height: ${props => props.size === Size.Small?'48px':'56px'};\n display: flex;\n border: 0;\n border-radius: 4px;\n box-shadow: inset 0px 0px 0px 1px ${COLORS.neutral_400};\n\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_700};\n }\n\n &:focus-within:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_800};\n }\n\n &:active:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_800};\n }\n\n &.disabled {\n box-shadow: inset 0px 0px 0px 1px ${COLORS.neutral_100};\n cursor: not-allowed;\n \n ${PrefixContainer}{\n color: ${COLORS.neutral_300};\n }\n\n ${NumberInput}{\n color: ${COLORS.neutral_300};\n cursor: not-allowed;\n pointer-events: none;\n\n &::placeholder {\n color: ${COLORS.neutral_300};\n }\n }\n }\n\n &.readOnly {\n background: ${COLORS.neutral_100};\n box-shadow: inset 0px 0px 0px 1px ${COLORS.neutral_300};\n cursor: not-allowed;\n\n ${NumberInput}{\n background: ${COLORS.neutral_100};\n cursor: not-allowed;\n pointer-events: none;\n }\n }\n\n &.valid {\n box-shadow: inset 0px 0px 0px 2px ${COLORS.correct_400};\n }\n\n &.invalid {\n box-shadow: inset 0px 0px 0px 2px ${COLORS.critical_400};\n }\n`;\n\ntype NumberFieldProps = {\n size: Size.Small | Size.Medium;\n prefix?: string;\n interval?: number;\n label: string;\n note?: string;\n noteIcon?: React.ReactNode;\n required?: boolean;\n minValue?: number;\n maxValue?: number;\n allowNegative?: boolean;\n decimalPrecision?: number;\n disabled?: boolean;\n readOnly?: boolean;\n valid?: boolean;\n defaultVal?: number;\n}\n\nconst NumberField: React.FunctionComponent<NumberFieldProps> = (\n {size=Size.Small, \n label,\n note, \n noteIcon, \n required, \n prefix,\n interval=1, \n minValue, \n maxValue, \n allowNegative, \n decimalPrecision, \n disabled=false, \n readOnly=false, \n valid,\n defaultVal}) => {\n const [userInput, setUserInput] = React.useState(defaultVal?defaultVal.toString():'');\n let fieldState = (valid!==undefined) ? (valid?'valid':'invalid') : undefined;\n\n const handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n switch(e.key){\n case 'ArrowUp': addInterval();\n break;\n case 'ArrowDown': subtractInterval();\n break;\n default: break;\n }\n }\n\n const handleInput = (e: React.ChangeEvent<HTMLInputElement>) => {\n e.preventDefault();\n let simpleRegex = new RegExp(/^[0-9]\\d*$/);\n let decimalFormationRegEx = new RegExp(/^[0-9]\\d*\\.$/); \n let negativeDecimalFormationRegEx = new RegExp(/^[-][0-9]\\d*\\.$/);\n \n let allowNegativeRegex = new RegExp(/^[-][0-9]\\d*$/); \n let decimalPrecisionRegex = decimalPrecision ? new RegExp(`^[0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\n let negativeAndDecimalRegex = (decimalPrecision && allowNegative) ? new RegExp(`^[-][0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`): undefined;\n \n let val = e.target.value; \n if(val!==''){\n if(allowNegative && decimalPrecision){\n if(val.length===1 && val.charAt(0)==='-')\n setUserInput(val);\n else{\n if((negativeAndDecimalRegex!.test(val) || decimalPrecisionRegex!.test(val)) && isInRange(val,true))\n setUserInput(val);\n\n else if((negativeDecimalFormationRegEx.test(val) || decimalFormationRegEx.test(val)) && isInRange(val.replace('.',''),true))\n setUserInput(val);\n \n else if((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val,true))\n setUserInput(val);\n }\n }\n\n else if(allowNegative){\n if(val.length===1 && val.charAt(0)==='-')\n setUserInput(val);\n else if((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val,false))\n setUserInput(val);\n }\n\n else if(decimalPrecision && (val.indexOf('.')===val.lastIndexOf('.')) && isInRange(val,true)){\n if(decimalPrecisionRegex!.test(val))\n setUserInput(val);\n else if(decimalFormationRegEx.test(val))\n setUserInput(val);\n else if(!val.includes('.') && simpleRegex.test(val))\n setUserInput(val);\n }\n\n else if(simpleRegex.test(val) && isInRange(val, false)){\n setUserInput(val);\n }\n }\n\n if(val==='')\n setUserInput('');\n }\n\n const isInRange = (value: string, isDecimal: boolean): boolean => {\n let x = isDecimal ? parseFloat(value).toFixed(decimalPrecision) : parseInt(value);\n if(minValue && minValue>x)\n return false;\n else if(maxValue && maxValue<x)\n return false;\n else\n return true;\n }\n\n const addInterval = () => {\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\n val = isNaN(val) && userInput === '' ? (minValue ?? 0) : val;\n if(!isNaN(val)){\n if(decimalPrecision)\n val = Math.round((val+interval)*Math.pow(10,decimalPrecision!))/Math.pow(10,decimalPrecision!);\n else\n val +=1;\n\n if(maxValue && maxValue>=val)\n setUserInput(val.toString());\n else if(!maxValue)\n setUserInput(val.toString());\n }\n }\n\n const subtractInterval = () => {\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\n val = isNaN(val) && userInput === '' ? (maxValue ?? 0) : val;\n if(!isNaN(val)){\n if(decimalPrecision)\n val = Math.round((val-interval)*Math.pow(10,decimalPrecision!))/Math.pow(10,decimalPrecision!);\n else\n val -=1;\n \n if(minValue && minValue<=val)\n allowNegative ? setUserInput(val.toString()) : (val>=0 ? setUserInput(val.toString()) : undefined);\n else if(!minValue)\n allowNegative ? setUserInput(val.toString()) : (val>=0 ? setUserInput(val.toString()) : undefined);\n }\n }\n\n const isLocked = (input: string, operator: string): boolean => {\n let val = decimalPrecision ? parseFloat(input) : parseInt(input);\n val = isNaN(val) && userInput === '' ? 0 : val;\n let operatorState = false;\n if(operator === 'add' && maxValue)\n operatorState = val < maxValue ? false : true;\n \n if(operator === 'subtract' && minValue)\n operatorState = val > minValue ? false : true;\n\n if(operator === 'subtract' && !minValue && !allowNegative)\n operatorState = val > 0 ? false : true;\n\n return operatorState;\n }\n\n return (\n <Container>\n <LabelContainer size={size}>\n {required && <LabelIcon size={size} data-testid={'labelIcon'}>\n <SystemIcons.Asterisk color={COLORS.critical_500}/>\n </LabelIcon>\n }\n <LabelText>\n {label}\n </LabelText>\n </LabelContainer>\n\n <InputContainer size={size} data-testid={'inputContainer'} tabIndex={-1} className={'numberField'.concat(disabled?' disabled':'')\n .concat(readOnly?' readOnly':'')\n .concat(fieldState?` ${fieldState}`:'')}>\n <InputWrapper size={size}>\n {prefix && <PrefixContainer size={size}>\n {prefix}\n </PrefixContainer>}\n <NumberInput fieldSize={size} placeholder='Enter number' value={userInput} tabIndex={(disabled || readOnly) ? -1 : 0} onChange={e=>handleInput(e)} onKeyDown={e=>handleKeyPress(e)}/>\n </InputWrapper>\n\n <OperatorWrapper data-testid={'operators'} size={size}>\n <IconButton tabIndex={-1} variant='secondary' shape='square' action={()=>subtractInterval()} useTransparentBackground disabled={disabled || readOnly || isLocked(userInput,'subtract')}>\n <SystemIcons.Minus size='14px'/>\n </IconButton> \n <div className='divider'></div>\n <IconButton tabIndex={-1} variant='secondary' shape='square' action={()=>addInterval()} useTransparentBackground disabled={disabled || readOnly || isLocked(userInput,'add')}>\n <SystemIcons.Plus size='14px'/>\n </IconButton>\n </OperatorWrapper>\n </InputContainer>\n\n {note && <NoteContainer className={'noteField'.concat(fieldState?` ${fieldState}`:'')}>\n <NoteIcon>\n {noteIcon}\n </NoteIcon>\n <NoteLabel size={size}>\n {note}\n </NoteLabel> \n </NoteContainer>\n }\n </Container>\n ); \n}\n\nexport default NumberField;\n"],"file":"NumberField.cjs"}
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import { Size } from '../types';
3
+ declare type NumberFieldProps = {
4
+ size: Size.Small | Size.Medium;
5
+ prefix?: string;
6
+ interval?: number;
7
+ label: string;
8
+ note?: string;
9
+ noteIcon?: React.ReactNode;
10
+ required?: boolean;
11
+ minValue?: number;
12
+ maxValue?: number;
13
+ allowNegative?: boolean;
14
+ decimalPrecision?: number;
15
+ disabled?: boolean;
16
+ readOnly?: boolean;
17
+ valid?: boolean;
18
+ defaultVal?: number;
19
+ };
20
+ declare const NumberField: React.FunctionComponent<NumberFieldProps>;
21
+ export default NumberField;
@@ -0,0 +1,252 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
3
+ import _pt from "prop-types";
4
+
5
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
6
+
7
+ import * as React from 'react';
8
+ import styled from 'styled-components';
9
+ import { IconButton } from '../Button';
10
+ import { SystemIcons } from '../icons';
11
+ import { COLORS } from '../styles';
12
+ import { ComponentMStyling, ComponentSStyling, ComponentTextStyle, ComponentXXSStyling, ComponentXSStyling } from '../styles/typography';
13
+ import { Size } from '../types';
14
+ import { jsx as _jsx } from "react/jsx-runtime";
15
+ import { jsxs as _jsxs } from "react/jsx-runtime";
16
+ var Container = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral([""])));
17
+ var LabelContainer = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-bottom: 4px;\n color: ", ";\n display: flex;\n ", "\n"])), COLORS.neutral_500, function (props) {
18
+ return props.size === Size.Small ? ComponentXXSStyling(ComponentTextStyle.Regular, null) : ComponentXSStyling(ComponentTextStyle.Regular, null);
19
+ });
20
+ var LabelText = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([""])));
21
+ var LabelIcon = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n margin-right: ", ";\n svg {\n height: 9px;\n width: 9px;\n }\n"])), function (props) {
22
+ return props.size === Size.Small ? '6px' : '8px';
23
+ });
24
+ var InputWrapper = styled.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n margin: ", ";\n display: flex;\n flex-grow: 1;\n"])), function (props) {
25
+ return props.size === Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px';
26
+ });
27
+ var PrefixContainer = styled.div(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n margin-right: 4px;\n width: ", ";\n height: ", ";\n color: ", ";\n ", "\n"])), function (props) {
28
+ return props.size === Size.Small ? '10px' : '11px';
29
+ }, function (props) {
30
+ return props.size === Size.Small ? '20px' : '24px';
31
+ }, COLORS.neutral_500, function (props) {
32
+ return props.size === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, null) : ComponentMStyling(ComponentTextStyle.Regular, null);
33
+ });
34
+ var OperatorWrapper = styled.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n display: flex;\n margin:", ";\n svg {\n height: 14px;\n width: 14px;\n }\n .divider {\n margin: 16px 0;\n background: ", ";\n width: 1px;\n }\n"])), function (props) {
35
+ return props.size === Size.Medium ? '4px 0' : '';
36
+ }, COLORS.neutral_200);
37
+ var NumberInput = styled.input(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n width: 100%; \n height: ", "; \n border: none;\n color: ", ";\n padding: 0; \n ", "\n\n &:hover, &:focus, &:active {\n outline: none;\n }\n\n &::placeholder {\n ", "\n }\n"])), function (props) {
38
+ return props.fieldSize === Size.Small ? '20px' : '24px';
39
+ }, COLORS.neutral_500, function (props) {
40
+ return props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.black) : ComponentMStyling(ComponentTextStyle.Regular, COLORS.black);
41
+ }, function (props) {
42
+ return props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Italic, null) : ComponentMStyling(ComponentTextStyle.Italic, null);
43
+ });
44
+ var NoteLabel = styled.div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n color: ", ";\n ", " \n"])), COLORS.neutral_500, function (props) {
45
+ return props.size === Size.Small ? ComponentXXSStyling(ComponentTextStyle.Regular, null) : ComponentXSStyling(ComponentTextStyle.Regular, null);
46
+ });
47
+ var NoteIcon = styled.div(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n svg {\n height: 16px;\n }\n"])));
48
+ var NoteContainer = styled.div(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n display: flex;\n margin-top: 5px;\n\n &.valid {\n ", " {\n color: ", ";\n }\n\n ", " {\n svg path {\n fill: ", ";\n }\n }\n }\n\n &.invalid {\n ", " {\n color: ", ";\n }\n\n ", " {\n svg path {\n fill: ", ";\n }\n }\n }\n"])), NoteLabel, COLORS.correct_500, NoteIcon, COLORS.correct_500, NoteLabel, COLORS.critical_500, NoteIcon, COLORS.critical_500);
49
+ var InputContainer = styled.div(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n min-width: 160px;\n height: ", ";\n display: flex;\n border: 0;\n border-radius: 4px;\n box-shadow: inset 0px 0px 0px 1px ", ";\n\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n\n &:focus-within:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n\n &:active:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n\n &.disabled {\n box-shadow: inset 0px 0px 0px 1px ", ";\n cursor: not-allowed;\n \n ", "{\n color: ", ";\n }\n\n ", "{\n color: ", ";\n cursor: not-allowed;\n pointer-events: none;\n\n &::placeholder {\n color: ", ";\n }\n }\n }\n\n &.readOnly {\n background: ", ";\n box-shadow: inset 0px 0px 0px 1px ", ";\n cursor: not-allowed;\n\n ", "{\n background: ", ";\n cursor: not-allowed;\n pointer-events: none;\n }\n }\n\n &.valid {\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n\n &.invalid {\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n"])), function (props) {
50
+ return props.size === Size.Small ? '48px' : '56px';
51
+ }, COLORS.neutral_400, COLORS.primary_700, COLORS.primary_800, COLORS.primary_800, COLORS.neutral_100, PrefixContainer, COLORS.neutral_300, NumberInput, COLORS.neutral_300, COLORS.neutral_300, COLORS.neutral_100, COLORS.neutral_300, NumberInput, COLORS.neutral_100, COLORS.correct_400, COLORS.critical_400);
52
+
53
+ var NumberField = function NumberField(_ref) {
54
+ var _ref$size = _ref.size,
55
+ size = _ref$size === void 0 ? Size.Small : _ref$size,
56
+ label = _ref.label,
57
+ note = _ref.note,
58
+ noteIcon = _ref.noteIcon,
59
+ required = _ref.required,
60
+ prefix = _ref.prefix,
61
+ _ref$interval = _ref.interval,
62
+ interval = _ref$interval === void 0 ? 1 : _ref$interval,
63
+ minValue = _ref.minValue,
64
+ maxValue = _ref.maxValue,
65
+ allowNegative = _ref.allowNegative,
66
+ decimalPrecision = _ref.decimalPrecision,
67
+ _ref$disabled = _ref.disabled,
68
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
69
+ _ref$readOnly = _ref.readOnly,
70
+ readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
71
+ valid = _ref.valid,
72
+ defaultVal = _ref.defaultVal;
73
+
74
+ var _React$useState = React.useState(defaultVal ? defaultVal.toString() : ''),
75
+ _React$useState2 = _slicedToArray(_React$useState, 2),
76
+ userInput = _React$useState2[0],
77
+ setUserInput = _React$useState2[1];
78
+
79
+ var fieldState = valid !== undefined ? valid ? 'valid' : 'invalid' : undefined;
80
+
81
+ var handleKeyPress = function handleKeyPress(e) {
82
+ switch (e.key) {
83
+ case 'ArrowUp':
84
+ addInterval();
85
+ break;
86
+
87
+ case 'ArrowDown':
88
+ subtractInterval();
89
+ break;
90
+
91
+ default:
92
+ break;
93
+ }
94
+ };
95
+
96
+ var handleInput = function handleInput(e) {
97
+ e.preventDefault();
98
+ var simpleRegex = new RegExp(/^[0-9]\d*$/);
99
+ var decimalFormationRegEx = new RegExp(/^[0-9]\d*\.$/);
100
+ var negativeDecimalFormationRegEx = new RegExp(/^[-][0-9]\d*\.$/);
101
+ var allowNegativeRegex = new RegExp(/^[-][0-9]\d*$/);
102
+ var decimalPrecisionRegex = decimalPrecision ? new RegExp("^[0-9]\\d*\\.[0-9]\\d{0,".concat(decimalPrecision - 1, "}$")) : undefined;
103
+ var negativeAndDecimalRegex = decimalPrecision && allowNegative ? new RegExp("^[-][0-9]\\d*\\.[0-9]\\d{0,".concat(decimalPrecision - 1, "}$")) : undefined;
104
+ var val = e.target.value;
105
+
106
+ if (val !== '') {
107
+ if (allowNegative && decimalPrecision) {
108
+ if (val.length === 1 && val.charAt(0) === '-') setUserInput(val);else {
109
+ if ((negativeAndDecimalRegex.test(val) || decimalPrecisionRegex.test(val)) && isInRange(val, true)) setUserInput(val);else if ((negativeDecimalFormationRegEx.test(val) || decimalFormationRegEx.test(val)) && isInRange(val.replace('.', ''), true)) setUserInput(val);else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, true)) setUserInput(val);
110
+ }
111
+ } else if (allowNegative) {
112
+ if (val.length === 1 && val.charAt(0) === '-') setUserInput(val);else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, false)) setUserInput(val);
113
+ } else if (decimalPrecision && val.indexOf('.') === val.lastIndexOf('.') && isInRange(val, true)) {
114
+ if (decimalPrecisionRegex.test(val)) setUserInput(val);else if (decimalFormationRegEx.test(val)) setUserInput(val);else if (!val.includes('.') && simpleRegex.test(val)) setUserInput(val);
115
+ } else if (simpleRegex.test(val) && isInRange(val, false)) {
116
+ setUserInput(val);
117
+ }
118
+ }
119
+
120
+ if (val === '') setUserInput('');
121
+ };
122
+
123
+ var isInRange = function isInRange(value, isDecimal) {
124
+ var x = isDecimal ? parseFloat(value).toFixed(decimalPrecision) : parseInt(value);
125
+ if (minValue && minValue > x) return false;else if (maxValue && maxValue < x) return false;else return true;
126
+ };
127
+
128
+ var addInterval = function addInterval() {
129
+ var val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);
130
+ val = isNaN(val) && userInput === '' ? minValue !== null && minValue !== void 0 ? minValue : 0 : val;
131
+
132
+ if (!isNaN(val)) {
133
+ if (decimalPrecision) val = Math.round((val + interval) * Math.pow(10, decimalPrecision)) / Math.pow(10, decimalPrecision);else val += 1;
134
+ if (maxValue && maxValue >= val) setUserInput(val.toString());else if (!maxValue) setUserInput(val.toString());
135
+ }
136
+ };
137
+
138
+ var subtractInterval = function subtractInterval() {
139
+ var val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);
140
+ val = isNaN(val) && userInput === '' ? maxValue !== null && maxValue !== void 0 ? maxValue : 0 : val;
141
+
142
+ if (!isNaN(val)) {
143
+ if (decimalPrecision) val = Math.round((val - interval) * Math.pow(10, decimalPrecision)) / Math.pow(10, decimalPrecision);else val -= 1;
144
+ if (minValue && minValue <= val) allowNegative ? setUserInput(val.toString()) : val >= 0 ? setUserInput(val.toString()) : undefined;else if (!minValue) allowNegative ? setUserInput(val.toString()) : val >= 0 ? setUserInput(val.toString()) : undefined;
145
+ }
146
+ };
147
+
148
+ var isLocked = function isLocked(input, operator) {
149
+ var val = decimalPrecision ? parseFloat(input) : parseInt(input);
150
+ val = isNaN(val) && userInput === '' ? 0 : val;
151
+ var operatorState = false;
152
+ if (operator === 'add' && maxValue) operatorState = val < maxValue ? false : true;
153
+ if (operator === 'subtract' && minValue) operatorState = val > minValue ? false : true;
154
+ if (operator === 'subtract' && !minValue && !allowNegative) operatorState = val > 0 ? false : true;
155
+ return operatorState;
156
+ };
157
+
158
+ return /*#__PURE__*/_jsxs(Container, {
159
+ children: [/*#__PURE__*/_jsxs(LabelContainer, {
160
+ size: size,
161
+ children: [required && /*#__PURE__*/_jsx(LabelIcon, {
162
+ size: size,
163
+ "data-testid": 'labelIcon',
164
+ children: /*#__PURE__*/_jsx(SystemIcons.Asterisk, {
165
+ color: COLORS.critical_500
166
+ })
167
+ }), /*#__PURE__*/_jsx(LabelText, {
168
+ children: label
169
+ })]
170
+ }), /*#__PURE__*/_jsxs(InputContainer, {
171
+ size: size,
172
+ "data-testid": 'inputContainer',
173
+ tabIndex: -1,
174
+ className: 'numberField'.concat(disabled ? ' disabled' : '').concat(readOnly ? ' readOnly' : '').concat(fieldState ? " ".concat(fieldState) : ''),
175
+ children: [/*#__PURE__*/_jsxs(InputWrapper, {
176
+ size: size,
177
+ children: [prefix && /*#__PURE__*/_jsx(PrefixContainer, {
178
+ size: size,
179
+ children: prefix
180
+ }), /*#__PURE__*/_jsx(NumberInput, {
181
+ fieldSize: size,
182
+ placeholder: "Enter number",
183
+ value: userInput,
184
+ tabIndex: disabled || readOnly ? -1 : 0,
185
+ onChange: function onChange(e) {
186
+ return handleInput(e);
187
+ },
188
+ onKeyDown: function onKeyDown(e) {
189
+ return handleKeyPress(e);
190
+ }
191
+ })]
192
+ }), /*#__PURE__*/_jsxs(OperatorWrapper, {
193
+ "data-testid": 'operators',
194
+ size: size,
195
+ children: [/*#__PURE__*/_jsx(IconButton, {
196
+ tabIndex: -1,
197
+ variant: "secondary",
198
+ shape: "square",
199
+ action: function action() {
200
+ return subtractInterval();
201
+ },
202
+ useTransparentBackground: true,
203
+ disabled: disabled || readOnly || isLocked(userInput, 'subtract'),
204
+ children: /*#__PURE__*/_jsx(SystemIcons.Minus, {
205
+ size: "14px"
206
+ })
207
+ }), /*#__PURE__*/_jsx("div", {
208
+ className: "divider"
209
+ }), /*#__PURE__*/_jsx(IconButton, {
210
+ tabIndex: -1,
211
+ variant: "secondary",
212
+ shape: "square",
213
+ action: function action() {
214
+ return addInterval();
215
+ },
216
+ useTransparentBackground: true,
217
+ disabled: disabled || readOnly || isLocked(userInput, 'add'),
218
+ children: /*#__PURE__*/_jsx(SystemIcons.Plus, {
219
+ size: "14px"
220
+ })
221
+ })]
222
+ })]
223
+ }), note && /*#__PURE__*/_jsxs(NoteContainer, {
224
+ className: 'noteField'.concat(fieldState ? " ".concat(fieldState) : ''),
225
+ children: [/*#__PURE__*/_jsx(NoteIcon, {
226
+ children: noteIcon
227
+ }), /*#__PURE__*/_jsx(NoteLabel, {
228
+ size: size,
229
+ children: note
230
+ })]
231
+ })]
232
+ });
233
+ };
234
+
235
+ NumberField.propTypes = {
236
+ prefix: _pt.string,
237
+ interval: _pt.number,
238
+ label: _pt.string.isRequired,
239
+ note: _pt.string,
240
+ noteIcon: _pt.node,
241
+ required: _pt.bool,
242
+ minValue: _pt.number,
243
+ maxValue: _pt.number,
244
+ allowNegative: _pt.bool,
245
+ decimalPrecision: _pt.number,
246
+ disabled: _pt.bool,
247
+ readOnly: _pt.bool,
248
+ valid: _pt.bool,
249
+ defaultVal: _pt.number
250
+ };
251
+ export default NumberField;
252
+ //# sourceMappingURL=NumberField.js.map