@skbkontur/react-ui 4.0.6 → 4.1.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 (573) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/README.md +1 -1
  3. package/cjs/components/Autocomplete/Autocomplete.js +8 -4
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +1 -5
  6. package/cjs/components/Button/Button.js +4 -12
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Checkbox/Checkbox.d.ts +5 -0
  9. package/cjs/components/Checkbox/Checkbox.js +29 -1
  10. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  11. package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -0
  12. package/cjs/components/Checkbox/Checkbox.styles.js +27 -24
  13. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  14. package/cjs/components/CurrencyInput/CurrencyHelper.js +18 -12
  15. package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  16. package/cjs/components/CurrencyInput/CurrencyInput.js +15 -7
  17. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  18. package/cjs/components/CurrencyInput/CurrencyInputHelper.js +7 -5
  19. package/cjs/components/CurrencyInput/CurrencyInputHelper.js.map +1 -1
  20. package/cjs/components/CurrencyInput/CursorHelper.js +19 -16
  21. package/cjs/components/CurrencyInput/CursorHelper.js.map +1 -1
  22. package/cjs/components/DateInput/DateInput.js +5 -1
  23. package/cjs/components/DateInput/DateInput.js.map +1 -1
  24. package/cjs/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
  25. package/cjs/components/DateInput/helpers/InternalDateMediator.js +12 -2
  26. package/cjs/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
  27. package/cjs/components/DateInput/helpers/inputNumber.d.ts +1 -1
  28. package/cjs/components/DateInput/helpers/inputNumber.js +45 -12
  29. package/cjs/components/DateInput/helpers/inputNumber.js.map +1 -1
  30. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -4
  31. package/cjs/components/DropdownMenu/DropdownMenu.js +2 -16
  32. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  33. package/cjs/components/FileUploader/FileUploader.js +8 -5
  34. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  35. package/cjs/components/FileUploader/FileUploader.styles.d.ts +3 -2
  36. package/cjs/components/FileUploader/FileUploader.styles.js +21 -15
  37. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
  38. package/cjs/components/Gapped/Gapped.js +4 -3
  39. package/cjs/components/Gapped/Gapped.js.map +1 -1
  40. package/cjs/components/GlobalLoader/GlobalLoader.js +3 -5
  41. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  42. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js +5 -7
  43. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js.map +1 -1
  44. package/cjs/components/Group/Group.js +74 -31
  45. package/cjs/components/Group/Group.js.map +1 -1
  46. package/cjs/components/Input/Input.d.ts +1 -5
  47. package/cjs/components/Input/Input.js +14 -21
  48. package/cjs/components/Input/Input.js.map +1 -1
  49. package/cjs/components/Kebab/Kebab.d.ts +2 -13
  50. package/cjs/components/Kebab/Kebab.js +5 -29
  51. package/cjs/components/Kebab/Kebab.js.map +1 -1
  52. package/cjs/components/MenuItem/MenuItem.styles.js +3 -2
  53. package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
  54. package/cjs/components/Modal/Modal.js +2 -1
  55. package/cjs/components/Modal/Modal.js.map +1 -1
  56. package/cjs/components/Modal/Modal.styles.js +10 -6
  57. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  58. package/cjs/components/Modal/ModalFooter.js +1 -1
  59. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  60. package/cjs/components/Modal/ModalHeader.js +1 -1
  61. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  62. package/cjs/components/Paging/Paging.d.ts +13 -3
  63. package/cjs/components/Paging/Paging.js +15 -4
  64. package/cjs/components/Paging/Paging.js.map +1 -1
  65. package/cjs/components/Paging/PagingDefaultComponent.d.ts +9 -0
  66. package/cjs/components/Paging/PagingDefaultComponent.js +21 -0
  67. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -0
  68. package/cjs/components/PasswordInput/PasswordInput.d.ts +2 -0
  69. package/cjs/components/PasswordInput/PasswordInput.js +23 -6
  70. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  71. package/cjs/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  72. package/cjs/components/PasswordInput/PasswordInputIcon.js +15 -0
  73. package/cjs/components/PasswordInput/PasswordInputIcon.js.map +1 -0
  74. package/cjs/components/Radio/Radio.styles.js +4 -7
  75. package/cjs/components/Radio/Radio.styles.js.map +1 -1
  76. package/cjs/components/RadioGroup/RadioGroup.js +1 -1
  77. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  78. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +7 -2
  79. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  80. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +3 -4
  81. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  82. package/cjs/components/Select/Select.js +33 -15
  83. package/cjs/components/Select/Select.js.map +1 -1
  84. package/cjs/components/SidePage/SidePage.js +2 -1
  85. package/cjs/components/SidePage/SidePage.js.map +1 -1
  86. package/cjs/components/Spinner/Spinner.d.ts +0 -1
  87. package/cjs/components/Spinner/Spinner.js +1 -5
  88. package/cjs/components/Spinner/Spinner.js.map +1 -1
  89. package/cjs/components/Spinner/SpinnerFallbackAnimation.js +16 -5
  90. package/cjs/components/Spinner/SpinnerFallbackAnimation.js.map +1 -1
  91. package/cjs/components/Switcher/Switcher.styles.js +2 -2
  92. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  93. package/cjs/components/Textarea/Textarea.d.ts +2 -2
  94. package/cjs/components/Textarea/Textarea.js +6 -6
  95. package/cjs/components/Textarea/Textarea.js.map +1 -1
  96. package/cjs/components/Textarea/TextareaCounter.d.ts +1 -2
  97. package/cjs/components/Textarea/TextareaCounter.js +15 -6
  98. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  99. package/cjs/components/Toast/ToastView.js +1 -1
  100. package/cjs/components/Toast/ToastView.js.map +1 -1
  101. package/cjs/components/Toast/ToastView.styles.d.ts +1 -1
  102. package/cjs/components/Toast/ToastView.styles.js +3 -2
  103. package/cjs/components/Toast/ToastView.styles.js.map +1 -1
  104. package/cjs/components/Toggle/Toggle.d.ts +1 -1
  105. package/cjs/components/Toggle/Toggle.js.map +1 -1
  106. package/cjs/components/Toggle/Toggle.styles.js +12 -10
  107. package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
  108. package/cjs/components/Token/Token.js +14 -2
  109. package/cjs/components/Token/Token.js.map +1 -1
  110. package/cjs/components/Token/Token.styles.js +13 -6
  111. package/cjs/components/Token/Token.styles.js.map +1 -1
  112. package/cjs/components/TokenInput/TokenInput.d.ts +10 -0
  113. package/cjs/components/TokenInput/TokenInput.js +30 -12
  114. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  115. package/cjs/components/TokenInput/TokenInput.styles.js +3 -2
  116. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  117. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  118. package/cjs/components/Tooltip/Tooltip.js +5 -2
  119. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  120. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  121. package/cjs/components/TooltipMenu/TooltipMenu.js +2 -0
  122. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  123. package/cjs/hooks/useDrop.js +3 -1
  124. package/cjs/hooks/useDrop.js.map +1 -1
  125. package/cjs/index.d.ts +2 -0
  126. package/cjs/index.js +2 -0
  127. package/cjs/index.js.map +1 -1
  128. package/cjs/internal/Calendar/Calendar.js +3 -3
  129. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  130. package/cjs/internal/Calendar/CalendarDateShape.d.ts +1 -1
  131. package/cjs/internal/Calendar/MonthViewModel.js +36 -17
  132. package/cjs/internal/Calendar/MonthViewModel.js.map +1 -1
  133. package/cjs/internal/CommonWrapper/CommonWrapper.js +3 -3
  134. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  135. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +6 -1
  136. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  137. package/cjs/internal/CustomComboBox/CustomComboBox.js +3 -2
  138. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  139. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  140. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +35 -35
  141. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  142. package/cjs/internal/DateSelect/DateSelect.js +22 -11
  143. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  144. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +3 -1
  145. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  146. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +14 -10
  147. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  148. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -1
  149. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  150. package/cjs/internal/InternalMenu/InternalMenu.js +5 -12
  151. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  152. package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -2
  153. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  154. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  155. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js +16 -0
  156. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  157. package/cjs/internal/MaskedInput/MaskedInput.js +9 -2
  158. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  159. package/cjs/internal/Menu/Menu.js +14 -18
  160. package/cjs/internal/Menu/Menu.js.map +1 -1
  161. package/cjs/internal/Menu/Menu.styles.js +5 -3
  162. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  163. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  164. package/cjs/internal/Popup/Popup.d.ts +1 -0
  165. package/cjs/internal/Popup/Popup.js +8 -9
  166. package/cjs/internal/Popup/Popup.js.map +1 -1
  167. package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -0
  168. package/cjs/internal/PopupMenu/PopupMenu.js +13 -0
  169. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  170. package/cjs/internal/PopupMenu/validatePositions.js +6 -6
  171. package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
  172. package/cjs/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
  173. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  174. package/cjs/internal/RenderContainer/RenderInnerContainer.js +9 -1
  175. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  176. package/cjs/internal/RenderLayer/RenderLayer.js +4 -1
  177. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  178. package/cjs/internal/ThemePlayground/Playground.js +11 -19
  179. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  180. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  181. package/cjs/internal/ThemePlayground/SizesGroup.js +20 -0
  182. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -0
  183. package/cjs/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
  184. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -2
  185. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  186. package/cjs/internal/ThemePlayground/ThemeEditor.js +6 -1
  187. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  188. package/cjs/internal/ThemePlayground/VariableValue.js +18 -6
  189. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  190. package/cjs/internal/ThemePlayground/constants.d.ts +3 -1
  191. package/cjs/internal/ThemePlayground/constants.js +3 -1
  192. package/cjs/internal/ThemePlayground/constants.js.map +1 -1
  193. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +4 -7
  194. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  195. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  196. package/cjs/internal/ThemeShowcase/VariablesCollector.js +5 -6
  197. package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
  198. package/cjs/internal/ZIndex/ZIndexStorage.d.ts +2 -1
  199. package/cjs/internal/ZIndex/ZIndexStorage.js +13 -6
  200. package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
  201. package/cjs/internal/icons/16px/index.d.ts +19 -19
  202. package/cjs/internal/icons/16px/index.js +45 -38
  203. package/cjs/internal/icons/16px/index.js.map +1 -1
  204. package/cjs/internal/icons/20px/svg.js +6 -0
  205. package/cjs/internal/icons/20px/svg.js.map +1 -1
  206. package/cjs/internal/themes/DefaultTheme.d.ts +20 -1
  207. package/cjs/internal/themes/DefaultTheme.js +40 -5
  208. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  209. package/cjs/internal/themes/NotFlat.d.ts +6 -0
  210. package/cjs/internal/themes/NotFlat.js +12 -2
  211. package/cjs/internal/themes/NotFlat.js.map +1 -1
  212. package/cjs/internal/themes/Theme2022.d.ts +66 -0
  213. package/cjs/internal/themes/Theme2022.js +100 -0
  214. package/cjs/internal/themes/Theme2022.js.map +1 -0
  215. package/cjs/internal/themes/Theme2022Dark.d.ts +5 -0
  216. package/cjs/internal/themes/Theme2022Dark.js +9 -0
  217. package/cjs/internal/themes/Theme2022Dark.js.map +1 -0
  218. package/cjs/lib/animation/index.d.ts +1 -1
  219. package/cjs/lib/animation/index.js +3 -3
  220. package/cjs/lib/animation/index.js.map +1 -1
  221. package/cjs/lib/date/InternalDate.js +23 -9
  222. package/cjs/lib/date/InternalDate.js.map +1 -1
  223. package/cjs/lib/date/InternalDateCalculator.js +16 -2
  224. package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
  225. package/cjs/lib/date/InternalDateGetter.d.ts +1 -1
  226. package/cjs/lib/date/InternalDateGetter.js +27 -7
  227. package/cjs/lib/date/InternalDateGetter.js.map +1 -1
  228. package/cjs/lib/date/InternalDateTransformer.js +11 -2
  229. package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
  230. package/cjs/lib/date/InternalDateValidator.js +52 -17
  231. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  232. package/cjs/lib/date/types.d.ts +4 -0
  233. package/cjs/lib/date/types.js.map +1 -1
  234. package/cjs/lib/events/MouseDrag.js +5 -1
  235. package/cjs/lib/events/MouseDrag.js.map +1 -1
  236. package/cjs/lib/events/keyboard/extractCode.js +7 -5
  237. package/cjs/lib/events/keyboard/extractCode.js.map +1 -1
  238. package/cjs/lib/needsPolyfillPlaceholder.d.ts +6 -0
  239. package/cjs/lib/needsPolyfillPlaceholder.js +19 -0
  240. package/cjs/lib/needsPolyfillPlaceholder.js.map +1 -0
  241. package/cjs/lib/rootNode/getRootNode.d.ts +9 -0
  242. package/cjs/lib/rootNode/getRootNode.js +37 -8
  243. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  244. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +9 -1
  245. package/cjs/lib/rootNode/rootNodeDecorator.js +11 -2
  246. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  247. package/cjs/lib/stringUtils.js +3 -1
  248. package/cjs/lib/stringUtils.js.map +1 -1
  249. package/cjs/lib/styles/ColorFactory.js +9 -9
  250. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  251. package/cjs/lib/styles/ColorHelpers.d.ts +1 -0
  252. package/cjs/lib/styles/ColorHelpers.js +33 -10
  253. package/cjs/lib/styles/ColorHelpers.js.map +1 -1
  254. package/cjs/lib/styles/ColorObject.js +3 -2
  255. package/cjs/lib/styles/ColorObject.js.map +1 -1
  256. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  257. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js +9 -0
  258. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -0
  259. package/cjs/lib/taskWithDelayAndMinimalDuration.js +3 -1
  260. package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
  261. package/cjs/lib/theming/Emotion.js +5 -2
  262. package/cjs/lib/theming/Emotion.js.map +1 -1
  263. package/cjs/lib/theming/ThemeFactory.js +5 -1
  264. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  265. package/cjs/lib/theming/ThemeHelpers.js +7 -2
  266. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  267. package/cjs/lib/theming/themes/Theme2022.d.ts +1 -0
  268. package/cjs/lib/theming/themes/Theme2022.js +6 -0
  269. package/cjs/lib/theming/themes/Theme2022.js.map +1 -0
  270. package/cjs/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  271. package/cjs/lib/theming/themes/Theme2022Dark.js +9 -0
  272. package/cjs/lib/theming/themes/Theme2022Dark.js.map +1 -0
  273. package/cjs/lib/utils.d.ts +15 -0
  274. package/cjs/lib/utils.js +45 -9
  275. package/cjs/lib/utils.js.map +1 -1
  276. package/components/Autocomplete/Autocomplete/Autocomplete.js +6 -5
  277. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  278. package/components/Button/Button/Button.js +4 -10
  279. package/components/Button/Button/Button.js.map +1 -1
  280. package/components/Button/Button.d.ts +1 -5
  281. package/components/Checkbox/Checkbox/Checkbox.js +29 -2
  282. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  283. package/components/Checkbox/Checkbox.d.ts +5 -0
  284. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +22 -18
  285. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  286. package/components/Checkbox/Checkbox.styles.d.ts +1 -0
  287. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +12 -11
  288. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
  289. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +15 -7
  290. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  291. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js +7 -1
  292. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js.map +1 -1
  293. package/components/CurrencyInput/CursorHelper/CursorHelper.js +18 -11
  294. package/components/CurrencyInput/CursorHelper/CursorHelper.js.map +1 -1
  295. package/components/DateInput/DateInput/DateInput.js +9 -1
  296. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  297. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js +16 -10
  298. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js.map +1 -1
  299. package/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
  300. package/components/DateInput/helpers/inputNumber/inputNumber.js +53 -16
  301. package/components/DateInput/helpers/inputNumber/inputNumber.js.map +1 -1
  302. package/components/DateInput/helpers/inputNumber.d.ts +1 -1
  303. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -16
  304. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  305. package/components/DropdownMenu/DropdownMenu.d.ts +1 -4
  306. package/components/FileUploader/FileUploader/FileUploader.js +9 -7
  307. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  308. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +15 -12
  309. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
  310. package/components/FileUploader/FileUploader.styles.d.ts +3 -2
  311. package/components/Gapped/Gapped/Gapped.js +4 -3
  312. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  313. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +5 -7
  314. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  315. package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js +1 -2
  316. package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js.map +1 -1
  317. package/components/Group/Group/Group.js +62 -30
  318. package/components/Group/Group/Group.js.map +1 -1
  319. package/components/Input/Input/Input.js +7 -25
  320. package/components/Input/Input/Input.js.map +1 -1
  321. package/components/Input/Input.d.ts +1 -5
  322. package/components/Kebab/Kebab/Kebab.js +3 -13
  323. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  324. package/components/Kebab/Kebab.d.ts +2 -13
  325. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +1 -1
  326. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
  327. package/components/Modal/Modal/Modal.js +2 -1
  328. package/components/Modal/Modal/Modal.js.map +1 -1
  329. package/components/Modal/Modal.styles/Modal.styles.js +4 -4
  330. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  331. package/components/Modal/ModalFooter/ModalFooter.js +1 -1
  332. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  333. package/components/Modal/ModalHeader/ModalHeader.js +1 -1
  334. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  335. package/components/Paging/Paging/Paging.js +13 -14
  336. package/components/Paging/Paging/Paging.js.map +1 -1
  337. package/components/Paging/Paging.d.ts +13 -3
  338. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js +19 -0
  339. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -0
  340. package/components/Paging/PagingDefaultComponent/package.json +6 -0
  341. package/components/Paging/PagingDefaultComponent.d.ts +9 -0
  342. package/components/PasswordInput/PasswordInput/PasswordInput.js +27 -8
  343. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  344. package/components/PasswordInput/PasswordInput.d.ts +2 -0
  345. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js +15 -0
  346. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js.map +1 -0
  347. package/components/PasswordInput/PasswordInputIcon/package.json +6 -0
  348. package/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  349. package/components/Radio/Radio.styles/Radio.styles.js +2 -1
  350. package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
  351. package/components/RadioGroup/RadioGroup/RadioGroup.js +2 -2
  352. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  353. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -0
  354. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  355. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +3 -3
  356. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  357. package/components/Select/Select/Select.js +31 -15
  358. package/components/Select/Select/Select.js.map +1 -1
  359. package/components/SidePage/SidePage/SidePage.js +2 -1
  360. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  361. package/components/Spinner/Spinner/Spinner.js +6 -2
  362. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  363. package/components/Spinner/Spinner.d.ts +0 -1
  364. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js +18 -4
  365. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js.map +1 -1
  366. package/components/Switcher/Switcher.styles/Switcher.styles.js +1 -1
  367. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  368. package/components/Textarea/Textarea/Textarea.js +6 -6
  369. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  370. package/components/Textarea/Textarea.d.ts +2 -2
  371. package/components/Textarea/TextareaCounter/TextareaCounter.js +11 -2
  372. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  373. package/components/Textarea/TextareaCounter.d.ts +1 -2
  374. package/components/Toast/ToastView/ToastView.js +1 -1
  375. package/components/Toast/ToastView/ToastView.js.map +1 -1
  376. package/components/Toast/ToastView.styles/ToastView.styles.js +2 -2
  377. package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
  378. package/components/Toast/ToastView.styles.d.ts +1 -1
  379. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  380. package/components/Toggle/Toggle.d.ts +1 -1
  381. package/components/Toggle/Toggle.styles/Toggle.styles.js +3 -4
  382. package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
  383. package/components/Token/Token/Token.js +12 -1
  384. package/components/Token/Token/Token.js.map +1 -1
  385. package/components/Token/Token.styles/Token.styles.js +11 -4
  386. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  387. package/components/TokenInput/TokenInput/TokenInput.js +25 -16
  388. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  389. package/components/TokenInput/TokenInput.d.ts +10 -0
  390. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  391. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  392. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  393. package/components/Tooltip/Tooltip/Tooltip.js +5 -2
  394. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  395. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +2 -0
  396. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  397. package/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  398. package/hooks/useDrop/useDrop.js +5 -1
  399. package/hooks/useDrop/useDrop.js.map +1 -1
  400. package/index.d.ts +2 -0
  401. package/index.js +2 -0
  402. package/index.js.map +1 -1
  403. package/internal/Calendar/Calendar/Calendar.js +6 -4
  404. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  405. package/internal/Calendar/CalendarDateShape.d.ts +1 -1
  406. package/internal/Calendar/MonthViewModel/MonthViewModel.js +35 -18
  407. package/internal/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
  408. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -3
  409. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  410. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +23 -15
  411. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  412. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +18 -17
  413. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  414. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +35 -35
  415. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  416. package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  417. package/internal/DateSelect/DateSelect/DateSelect.js +21 -15
  418. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  419. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +5 -1
  420. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
  421. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +2 -0
  422. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  423. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  424. package/internal/InputLikeText/InputLikeText.d.ts +1 -1
  425. package/internal/InternalMenu/InternalMenu/InternalMenu.js +14 -21
  426. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  427. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
  428. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  429. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js +14 -0
  430. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  431. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/package.json +6 -0
  432. package/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  433. package/internal/MaskedInput/MaskedInput/MaskedInput.js +10 -3
  434. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  435. package/internal/Menu/Menu/Menu.js +11 -19
  436. package/internal/Menu/Menu/Menu.js.map +1 -1
  437. package/internal/Menu/Menu.styles/Menu.styles.js +1 -1
  438. package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
  439. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  440. package/internal/Popup/Popup/Popup.js +8 -7
  441. package/internal/Popup/Popup/Popup.js.map +1 -1
  442. package/internal/Popup/Popup.d.ts +1 -0
  443. package/internal/PopupMenu/PopupMenu/PopupMenu.js +8 -0
  444. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  445. package/internal/PopupMenu/PopupMenu.d.ts +4 -0
  446. package/internal/PopupMenu/validatePositions/validatePositions.js +6 -6
  447. package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
  448. package/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
  449. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +11 -2
  450. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  451. package/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  452. package/internal/RenderLayer/RenderLayer/RenderLayer.js +5 -1
  453. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  454. package/internal/ThemePlayground/Playground/Playground.js +15 -29
  455. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  456. package/internal/ThemePlayground/SizesGroup/SizesGroup.js +29 -0
  457. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -0
  458. package/internal/ThemePlayground/SizesGroup/package.json +6 -0
  459. package/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  460. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +14 -2
  461. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  462. package/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
  463. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js +5 -1
  464. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  465. package/internal/ThemePlayground/VariableValue/VariableValue.js +16 -5
  466. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  467. package/internal/ThemePlayground/constants/constants.js +2 -0
  468. package/internal/ThemePlayground/constants/constants.js.map +1 -1
  469. package/internal/ThemePlayground/constants.d.ts +3 -1
  470. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +3 -6
  471. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  472. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +4 -6
  473. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
  474. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  475. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +12 -6
  476. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
  477. package/internal/ZIndex/ZIndexStorage.d.ts +2 -1
  478. package/internal/icons/16px/index/index.js +28 -20
  479. package/internal/icons/16px/index/index.js.map +1 -1
  480. package/internal/icons/16px/index.d.ts +19 -19
  481. package/internal/icons/20px/svg/svg.js +5 -0
  482. package/internal/icons/20px/svg/svg.js.map +1 -1
  483. package/internal/themes/DefaultTheme/DefaultTheme.js +48 -4
  484. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  485. package/internal/themes/DefaultTheme.d.ts +20 -1
  486. package/internal/themes/NotFlat/NotFlat.js +15 -0
  487. package/internal/themes/NotFlat/NotFlat.js.map +1 -1
  488. package/internal/themes/NotFlat.d.ts +6 -0
  489. package/internal/themes/Theme2022/Theme2022.js +78 -0
  490. package/internal/themes/Theme2022/Theme2022.js.map +1 -0
  491. package/internal/themes/Theme2022/package.json +6 -0
  492. package/internal/themes/Theme2022.d.ts +66 -0
  493. package/internal/themes/Theme2022Dark/Theme2022Dark.js +17 -0
  494. package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  495. package/internal/themes/Theme2022Dark/package.json +6 -0
  496. package/internal/themes/Theme2022Dark.d.ts +5 -0
  497. package/lib/animation/index/index.js +1 -1
  498. package/lib/animation/index/index.js.map +1 -1
  499. package/lib/animation/index.d.ts +1 -1
  500. package/lib/date/InternalDate/InternalDate.js +16 -1
  501. package/lib/date/InternalDate/InternalDate.js.map +1 -1
  502. package/lib/date/InternalDateCalculator/InternalDateCalculator.js +14 -2
  503. package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
  504. package/lib/date/InternalDateGetter/InternalDateGetter.js +23 -7
  505. package/lib/date/InternalDateGetter/InternalDateGetter.js.map +1 -1
  506. package/lib/date/InternalDateGetter.d.ts +1 -1
  507. package/lib/date/InternalDateTransformer/InternalDateTransformer.js +11 -1
  508. package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
  509. package/lib/date/InternalDateValidator/InternalDateValidator.js +75 -34
  510. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  511. package/lib/date/types/types.js.map +1 -1
  512. package/lib/date/types.d.ts +4 -0
  513. package/lib/events/MouseDrag/MouseDrag.js +5 -1
  514. package/lib/events/MouseDrag/MouseDrag.js.map +1 -1
  515. package/lib/events/keyboard/extractCode/extractCode.js +5 -5
  516. package/lib/events/keyboard/extractCode/extractCode.js.map +1 -1
  517. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js +21 -0
  518. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js.map +1 -0
  519. package/lib/needsPolyfillPlaceholder/package.json +6 -0
  520. package/lib/needsPolyfillPlaceholder.d.ts +6 -0
  521. package/lib/rootNode/getRootNode/getRootNode.js +36 -8
  522. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  523. package/lib/rootNode/getRootNode.d.ts +9 -0
  524. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +3 -1
  525. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  526. package/lib/rootNode/rootNodeDecorator.d.ts +9 -1
  527. package/lib/stringUtils/stringUtils.js +4 -1
  528. package/lib/stringUtils/stringUtils.js.map +1 -1
  529. package/lib/styles/ColorFactory/ColorFactory.js +9 -9
  530. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  531. package/lib/styles/ColorHelpers/ColorHelpers.js +26 -9
  532. package/lib/styles/ColorHelpers/ColorHelpers.js.map +1 -1
  533. package/lib/styles/ColorHelpers.d.ts +1 -0
  534. package/lib/styles/ColorObject/ColorObject.js +2 -2
  535. package/lib/styles/ColorObject/ColorObject.js.map +1 -1
  536. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js +9 -0
  537. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js.map +1 -0
  538. package/lib/styles/getLabGrotesqueBaselineCompensation/package.json +6 -0
  539. package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  540. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +4 -1
  541. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
  542. package/lib/theming/Emotion/Emotion.js +5 -2
  543. package/lib/theming/Emotion/Emotion.js.map +1 -1
  544. package/lib/theming/ThemeFactory/ThemeFactory.js +5 -2
  545. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  546. package/lib/theming/ThemeHelpers/ThemeHelpers.js +5 -1
  547. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  548. package/lib/theming/themes/Theme2022/Theme2022.js +4 -0
  549. package/lib/theming/themes/Theme2022/Theme2022.js.map +1 -0
  550. package/lib/theming/themes/Theme2022/package.json +6 -0
  551. package/lib/theming/themes/Theme2022.d.ts +1 -0
  552. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js +5 -0
  553. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  554. package/lib/theming/themes/Theme2022Dark/package.json +6 -0
  555. package/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  556. package/lib/utils/utils.js +42 -6
  557. package/lib/utils/utils.js.map +1 -1
  558. package/lib/utils.d.ts +15 -0
  559. package/package.json +5 -3
  560. package/cjs/components/Button/Corners.d.ts +0 -6
  561. package/cjs/components/Button/Corners.js +0 -5
  562. package/cjs/components/Button/Corners.js.map +0 -1
  563. package/cjs/lib/polyfillPlaceholder.d.ts +0 -1
  564. package/cjs/lib/polyfillPlaceholder.js +0 -17
  565. package/cjs/lib/polyfillPlaceholder.js.map +0 -1
  566. package/components/Button/Corners/Corners.js +0 -6
  567. package/components/Button/Corners/Corners.js.map +0 -1
  568. package/components/Button/Corners/package.json +0 -6
  569. package/components/Button/Corners.d.ts +0 -6
  570. package/lib/polyfillPlaceholder/package.json +0 -6
  571. package/lib/polyfillPlaceholder/polyfillPlaceholder.js +0 -12
  572. package/lib/polyfillPlaceholder/polyfillPlaceholder.js.map +0 -1
  573. package/lib/polyfillPlaceholder.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["CurrencyInput.tsx"],"names":["CurrencyInput","rootNode","state","getState","props","value","fractionDigits","hideTrailingZeros","focused","tempSelectionForOnChange","SelectionHelper","fromPosition","renderMain","signed","onSubmit","integerDigits","rest","placeholder","CurrencyHelper","format","formatted","handleBlur","handleFocus","handleMouseUp","handleKeyDown","handleValueChange","handlePaste","handleCopy","handleCut","onMouseEnter","onMouseLeave","onMouseOver","refInput","focus","input","blur","debouncedSetSelectionFromEvent","setSelectionFromEvent","event","isIE11","persist","selection","getSelection","target","onKeyDown","defaultPrevented","action","CURRENCY_INPUT_ACTIONS","Ignore","Unknown","preventDefault","Submit","Backspace","inputValue","CurrencyInputHelper","moveCursor","end","Delete","start","MoveCursorLeft","MoveCursorRight","Home","setState","End","length","ExtendSelectionLeft","extendSelection","ExtendSelectionRight","FullSelection","forward","ExtendSelectionToStart","backward","ExtendSelectionToEnd","inputEnd","scrollInput","node","getNode","scrollWidth","clientWidth","PAD","SHIFT","selected","position","direction","charsCount","charWidth","frame","Math","ceil","frameStart","scrollLeft","frameEnd","getInputSelectionFromEvent","step","extended","result","safeInsert","unsigned","parsedValue","parse","onValueChange","blink","getOnChangeDelta","oldValue","substring","substr","delta","data","clipboardData","getData","formatForClipboard","setData","selectionStart","selectionEnd","selectionDirection","valueLength","onFocus","onBlur","element","componentDidMount","maxLength","undefined","MAX_SAFE_DIGITS","componentDidUpdate","prevProps","prevState","setSelectionRange","render","setRootNode","normilized","normalizeSelection","React","PureComponent","__KONTUR_REACT_UI__","propTypes","align","PropTypes","oneOf","autoFocus","bool","borderless","disabled","error","number","leftIcon","string","size","warning","width","oneOfType","func","isRequired","defaultProps","inputMode","HTMLInputElement","Error"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\nimport debounce from 'lodash.debounce';\n\nimport { isIE11 } from '../../lib/client';\nimport { Input, InputProps } from '../Input';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { TSetRootNode, rootNode } from '../../lib/rootNode';\n\nimport { MAX_SAFE_DIGITS } from './constants';\nimport { Selection, SelectionDirection, SelectionHelper } from './SelectionHelper';\nimport { CurrencyHelper } from './CurrencyHelper';\nimport { CurrencyInputHelper } from './CurrencyInputHelper';\nimport { CURRENCY_INPUT_ACTIONS, extractAction } from './CurrencyInputKeyboardActions';\n\nexport interface CurrencyInputProps\n extends CommonProps,\n Override<\n InputProps,\n {\n /** Значение */\n value: Nullable<number>;\n /** Убрать лишние нули после запятой */\n hideTrailingZeros: boolean;\n /** Кол-во цифр после запятой */\n fractionDigits?: Nullable<number>;\n /** Отрицательные значения */\n signed?: boolean;\n /**\n * Допустимое кол-во цифр целой части.\n * Если передан **0**, или `fractionDigits=15`, то и в целой части допускается только **0**.\n */\n integerDigits?: Nullable<number>;\n /** Вызывается при изменении `value` */\n onValueChange: (value: Nullable<number>) => void;\n /** onSubmit */\n onSubmit?: () => void;\n }\n > {}\n\nexport interface CurrencyInputState {\n formatted: string;\n selection: Selection;\n focused: boolean;\n}\n\n/**\n * Поле для денежных сумм (и других числовых значений).\n * Принимает любые свойства `Input`.\n *\n * Максимальная длина числа - **15 цифр** (с десятичным разделителем в любом месте).\n * <br/>\n * Если `fractionDigits=15`, то в целой части допускается **0**.\n */\n@rootNode\nexport class CurrencyInput extends React.PureComponent<CurrencyInputProps, CurrencyInputState> {\n public static __KONTUR_REACT_UI__ = 'CurrencyInput';\n\n public static propTypes = {\n align: PropTypes.oneOf(['left', 'center', 'right']),\n autoFocus: PropTypes.bool,\n borderless: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n fractionDigits: PropTypes.number,\n hideTrailingZeros: PropTypes.bool,\n leftIcon: PropTypes.element,\n placeholder: PropTypes.string,\n signed: PropTypes.bool,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n value: PropTypes.number,\n warning: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onBlur: PropTypes.func,\n onValueChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n onSubmit: PropTypes.func,\n };\n\n public static defaultProps = {\n align: 'right',\n fractionDigits: 2,\n hideTrailingZeros: false,\n value: null,\n inputMode: 'decimal',\n };\n\n public state: CurrencyInputState = {\n ...this.getState(this.props.value, this.props.fractionDigits, this.props.hideTrailingZeros),\n focused: false,\n };\n\n private input: Nullable<Input>;\n private tempSelectionForOnChange: Selection = SelectionHelper.fromPosition(0);\n private setRootNode!: TSetRootNode;\n\n public componentDidMount(): void {\n const { maxLength, integerDigits, fractionDigits } = this.props;\n warning(\n maxLength === undefined,\n `[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'`,\n );\n warning(\n (integerDigits || 0) + (fractionDigits || 0) <= MAX_SAFE_DIGITS,\n `[CurrencyInput]: Sum of 'integerDigits' and 'fractionDigits' exceeds ${MAX_SAFE_DIGITS}.` +\n `\\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15`,\n );\n }\n\n public componentDidUpdate(prevProps: CurrencyInputProps, prevState: CurrencyInputState) {\n const { value, fractionDigits, hideTrailingZeros } = this.props;\n if (value !== CurrencyHelper.parse(prevState.formatted) || prevProps.fractionDigits !== fractionDigits) {\n this.setState(this.getState(value, fractionDigits, hideTrailingZeros));\n }\n if (this.state.focused && this.input) {\n const { start, end } = this.state.selection;\n\n this.input.setSelectionRange(start, end);\n }\n if (prevState.selection !== this.state.selection) {\n this.scrollInput();\n }\n }\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<CurrencyInputProps>) => {\n const { fractionDigits, signed, onSubmit, integerDigits, hideTrailingZeros, ...rest } = props;\n const placeholder =\n this.props.placeholder == null\n ? CurrencyHelper.format(0, { fractionDigits, hideTrailingZeros })\n : this.props.placeholder;\n\n return (\n <Input\n {...rest}\n value={this.state.formatted}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onMouseUp={this.handleMouseUp}\n onKeyDown={this.handleKeyDown}\n onValueChange={this.handleValueChange}\n onPaste={this.handlePaste}\n onCopy={this.handleCopy}\n onCut={this.handleCut}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n ref={this.refInput}\n placeholder={this.state.focused ? '' : placeholder}\n />\n );\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getState(value: Nullable<number>, fractionDigits: Nullable<number>, hideTrailingZeros: boolean) {\n return {\n formatted: CurrencyHelper.format(value, { fractionDigits, hideTrailingZeros }),\n selection: SelectionHelper.fromPosition(0),\n };\n }\n\n private setSelectionFromEvent(event: React.MouseEvent<HTMLInputElement>) {\n const selection = getInputSelectionFromEvent(event.target);\n const normilized = CurrencyInputHelper.normalizeSelection(this.state.formatted, selection);\n this.setState({ selection: normilized });\n }\n\n // for IE11\n private readonly debouncedSetSelectionFromEvent = debounce(this.setSelectionFromEvent, 300);\n\n private handleMouseUp = (event: React.MouseEvent<HTMLInputElement>) => {\n if (isIE11) {\n event.persist();\n this.debouncedSetSelectionFromEvent(event);\n } else {\n this.setSelectionFromEvent(event);\n }\n };\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n this.tempSelectionForOnChange = selection;\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n\n const action = extractAction(event);\n\n if (action === CURRENCY_INPUT_ACTIONS.Ignore) {\n return;\n }\n\n if (action !== CURRENCY_INPUT_ACTIONS.Unknown) {\n event.preventDefault();\n }\n\n switch (action) {\n case CURRENCY_INPUT_ACTIONS.Submit: {\n if (this.props.onSubmit) {\n this.props.onSubmit();\n }\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Backspace: {\n this.inputValue(CurrencyInputHelper.moveCursor(this.state.formatted, selection, -1), selection.end, '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Delete: {\n this.inputValue(selection.start, CurrencyInputHelper.moveCursor(this.state.formatted, selection, +1), '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorLeft: {\n this.moveCursor(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorRight: {\n this.moveCursor(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Home: {\n this.setState({ selection: SelectionHelper.fromPosition(0) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.End: {\n const end = this.state.formatted.length;\n this.setState({ selection: SelectionHelper.fromPosition(end) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionLeft: {\n this.extendSelection(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionRight: {\n this.extendSelection(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.FullSelection: {\n this.setState({\n selection: SelectionHelper.forward(0, this.state.formatted.length),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToStart: {\n this.setState({\n selection: SelectionHelper.backward(0, selection.start),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToEnd: {\n const inputEnd = this.state.formatted.length;\n this.setState({\n selection: SelectionHelper.forward(selection.start, inputEnd),\n });\n return;\n }\n }\n };\n\n private scrollInput = () => {\n const node = this.input?.getNode();\n if (!node || node.scrollWidth === node.clientWidth) {\n return;\n }\n const PAD = 1;\n const SHIFT = 3;\n\n const selection = this.state.selection;\n const selected = selection.start !== selection.end;\n const position = selected && selection.direction === 'forward' ? selection.end : selection.start;\n const charsCount = this.state.formatted.length;\n const charWidth = node.scrollWidth / charsCount;\n const frame = Math.ceil(node.clientWidth / charWidth);\n const frameStart = Math.ceil(node.scrollLeft / charWidth);\n const frameEnd = frameStart + frame;\n\n if (position < frameStart + PAD) {\n node.scrollLeft = (position - SHIFT) * charWidth;\n }\n if (position > frameEnd - PAD) {\n node.scrollLeft = (position - frame + SHIFT) * charWidth;\n }\n };\n\n private getSelection = (input: EventTarget): Selection => {\n const selection = getInputSelectionFromEvent(input);\n return {\n start: selection.start,\n end: selection.end,\n direction: this.state.selection.direction,\n };\n };\n\n private moveCursor = (selection: Selection, step: number) => {\n const position = CurrencyInputHelper.moveCursor(this.state.formatted, selection, step);\n this.setState({ selection: SelectionHelper.fromPosition(position) });\n };\n\n private extendSelection = (selection: Selection, step: number) => {\n const extended = CurrencyInputHelper.extendSelection(this.state.formatted, selection, step);\n this.setState({ selection: extended });\n };\n\n private inputValue = (start: number, end: number, value: string) => {\n const result = CurrencyInputHelper.safeInsert(this.state.formatted, start, end, value, {\n integerDigits: this.props.integerDigits,\n fractionDigits: this.props.fractionDigits,\n unsigned: !this.props.signed,\n });\n if (result) {\n const formatted = result.value;\n const selection = SelectionHelper.fromPosition(result.position);\n this.setState({ formatted, selection }, () => {\n const parsedValue = CurrencyHelper.parse(formatted);\n if (this.props.value !== parsedValue) {\n this.props.onValueChange(parsedValue);\n }\n });\n return true;\n }\n\n if (this.input) {\n this.input.blink();\n }\n return false;\n };\n\n private getOnChangeDelta = (value: string) => {\n const selection = this.tempSelectionForOnChange;\n const oldValue = this.state.formatted;\n if (selection.start !== selection.end) {\n return value.substring(selection.start, value.length - (oldValue.length - selection.end));\n } else if (value.length > oldValue.length) {\n return value.substr(selection.start, value.length - oldValue.length);\n }\n return null;\n };\n\n private handleValueChange = (value: string): void => {\n const selection = this.tempSelectionForOnChange;\n const delta = this.getOnChangeDelta(value);\n if (delta != null && !this.inputValue(selection.start, selection.end, delta)) {\n this.setState({ selection });\n }\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const data = event.clipboardData.getData('text');\n const selection = this.getSelection(event.target);\n this.inputValue(selection.start, selection.end, data);\n event.preventDefault();\n };\n\n private handleCopy = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n }\n event.preventDefault();\n };\n\n private handleCut = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n this.inputValue(selection.start, selection.end, '');\n }\n event.preventDefault();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n const { selectionStart, selectionEnd, selectionDirection } = event.target;\n const valueLength = event.target.value.length;\n\n const selection = {\n start: selectionStart !== selectionEnd ? selectionStart || 0 : selectionStart || valueLength,\n end: selectionEnd !== selectionStart ? selectionEnd || 0 : selectionEnd || valueLength,\n direction: (selectionDirection as SelectionDirection) || 'none',\n };\n\n this.setState({\n focused: true,\n selection,\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const value = CurrencyHelper.parse(this.state.formatted);\n\n this.setState({\n ...this.getState(value, this.props.fractionDigits, this.props.hideTrailingZeros),\n focused: false,\n });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private refInput = (element: Nullable<Input>) => {\n this.input = element;\n };\n}\n\nfunction getInputSelectionFromEvent(input: EventTarget): Selection {\n if (!(input instanceof HTMLInputElement)) {\n throw new Error('input is not HTMLInputElement');\n }\n\n return {\n start: input.selectionStart!,\n end: input.selectionEnd!,\n direction: input.selectionDirection as SelectionDirection,\n };\n}\n"]}
1
+ {"version":3,"sources":["CurrencyInput.tsx"],"names":["CurrencyInput","rootNode","state","getState","props","value","fractionDigits","hideTrailingZeros","focused","tempSelectionForOnChange","SelectionHelper","fromPosition","renderMain","signed","onSubmit","integerDigits","rest","formatted","handleBlur","handleFocus","handleMouseUp","handleKeyDown","handleValueChange","handlePaste","handleCopy","handleCut","onMouseEnter","onMouseLeave","onMouseOver","refInput","getPlaceholder","focus","input","blur","debouncedSetSelectionFromEvent","setSelectionFromEvent","event","isIE11","persist","selection","getSelection","target","onKeyDown","defaultPrevented","action","CURRENCY_INPUT_ACTIONS","Ignore","Unknown","preventDefault","Submit","Backspace","inputValue","CurrencyInputHelper","moveCursor","end","Delete","start","MoveCursorLeft","MoveCursorRight","Home","setState","End","length","ExtendSelectionLeft","extendSelection","ExtendSelectionRight","FullSelection","forward","ExtendSelectionToStart","backward","ExtendSelectionToEnd","inputEnd","scrollInput","node","getNode","scrollWidth","clientWidth","PAD","SHIFT","selected","position","direction","charsCount","charWidth","frame","Math","ceil","frameStart","scrollLeft","frameEnd","getInputSelectionFromEvent","step","extended","result","safeInsert","unsigned","parsedValue","CurrencyHelper","parse","onValueChange","blink","getOnChangeDelta","oldValue","substring","substr","delta","data","clipboardData","getData","formatForClipboard","setData","selectionStart","selectionEnd","selectionDirection","valueLength","onFocus","onBlur","element","componentDidMount","maxLength","undefined","MAX_SAFE_DIGITS","componentDidUpdate","prevProps","prevState","setSelectionRange","render","setRootNode","format","normilized","normalizeSelection","React","PureComponent","__KONTUR_REACT_UI__","propTypes","align","PropTypes","oneOf","autoFocus","bool","borderless","disabled","error","number","leftIcon","placeholder","string","size","warning","width","oneOfType","func","isRequired","defaultProps","inputMode","HTMLInputElement","Error"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\nimport debounce from 'lodash.debounce';\n\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { Input, InputProps } from '../Input';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { TSetRootNode, rootNode } from '../../lib/rootNode';\n\nimport { MAX_SAFE_DIGITS } from './constants';\nimport { Selection, SelectionDirection, SelectionHelper } from './SelectionHelper';\nimport { CurrencyHelper } from './CurrencyHelper';\nimport { CurrencyInputHelper } from './CurrencyInputHelper';\nimport { CURRENCY_INPUT_ACTIONS, extractAction } from './CurrencyInputKeyboardActions';\n\nexport interface CurrencyInputProps\n extends CommonProps,\n Override<\n InputProps,\n {\n /** Значение */\n value: Nullable<number>;\n /** Убрать лишние нули после запятой */\n hideTrailingZeros: boolean;\n /** Кол-во цифр после запятой */\n fractionDigits?: Nullable<number>;\n /** Отрицательные значения */\n signed?: boolean;\n /**\n * Допустимое кол-во цифр целой части.\n * Если передан **0**, или `fractionDigits=15`, то и в целой части допускается только **0**.\n */\n integerDigits?: Nullable<number>;\n /** Вызывается при изменении `value` */\n onValueChange: (value: Nullable<number>) => void;\n /** onSubmit */\n onSubmit?: () => void;\n }\n > {}\n\nexport interface CurrencyInputState {\n formatted: string;\n selection: Selection;\n focused: boolean;\n}\n\n/**\n * Поле для денежных сумм (и других числовых значений).\n * Принимает любые свойства `Input`.\n *\n * Максимальная длина числа - **15 цифр** (с десятичным разделителем в любом месте).\n * <br/>\n * Если `fractionDigits=15`, то в целой части допускается **0**.\n */\n@rootNode\nexport class CurrencyInput extends React.PureComponent<CurrencyInputProps, CurrencyInputState> {\n public static __KONTUR_REACT_UI__ = 'CurrencyInput';\n\n public static propTypes = {\n align: PropTypes.oneOf(['left', 'center', 'right']),\n autoFocus: PropTypes.bool,\n borderless: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n fractionDigits: PropTypes.number,\n hideTrailingZeros: PropTypes.bool,\n leftIcon: PropTypes.element,\n placeholder: PropTypes.string,\n signed: PropTypes.bool,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n value: PropTypes.number,\n warning: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onBlur: PropTypes.func,\n onValueChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n onSubmit: PropTypes.func,\n };\n\n public static defaultProps = {\n align: 'right',\n fractionDigits: 2,\n hideTrailingZeros: false,\n value: null,\n inputMode: 'decimal',\n };\n\n public state: CurrencyInputState = {\n ...this.getState(this.props.value, this.props.fractionDigits, this.props.hideTrailingZeros),\n focused: false,\n };\n\n private input: Nullable<Input>;\n private tempSelectionForOnChange: Selection = SelectionHelper.fromPosition(0);\n private setRootNode!: TSetRootNode;\n\n public componentDidMount(): void {\n const { maxLength, integerDigits, fractionDigits } = this.props;\n warning(\n maxLength === undefined,\n `[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'`,\n );\n warning(\n (integerDigits || 0) + (fractionDigits || 0) <= MAX_SAFE_DIGITS,\n `[CurrencyInput]: Sum of 'integerDigits' and 'fractionDigits' exceeds ${MAX_SAFE_DIGITS}.` +\n `\\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15`,\n );\n }\n\n public componentDidUpdate(prevProps: CurrencyInputProps, prevState: CurrencyInputState) {\n const { value, fractionDigits, hideTrailingZeros } = this.props;\n if (value !== CurrencyHelper.parse(prevState.formatted) || prevProps.fractionDigits !== fractionDigits) {\n this.setState(this.getState(value, fractionDigits, hideTrailingZeros));\n }\n if (this.state.focused && this.input) {\n const { start, end } = this.state.selection;\n\n this.input.setSelectionRange(start, end);\n }\n if (prevState.selection !== this.state.selection) {\n this.scrollInput();\n }\n }\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<CurrencyInputProps>) => {\n const { fractionDigits, signed, onSubmit, integerDigits, hideTrailingZeros, ...rest } = props;\n\n return (\n <Input\n {...rest}\n value={this.state.formatted}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onMouseUp={this.handleMouseUp}\n onKeyDown={this.handleKeyDown}\n onValueChange={this.handleValueChange}\n onPaste={this.handlePaste}\n onCopy={this.handleCopy}\n onCut={this.handleCut}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n ref={this.refInput}\n placeholder={this.state.focused ? '' : getPlaceholder(props)}\n />\n );\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getState(value: Nullable<number>, fractionDigits: Nullable<number>, hideTrailingZeros: boolean) {\n return {\n formatted: CurrencyHelper.format(value, { fractionDigits, hideTrailingZeros }),\n selection: SelectionHelper.fromPosition(0),\n };\n }\n\n private setSelectionFromEvent(event: React.MouseEvent<HTMLInputElement>) {\n const selection = getInputSelectionFromEvent(event.target);\n const normilized = CurrencyInputHelper.normalizeSelection(this.state.formatted, selection);\n this.setState({ selection: normilized });\n }\n\n // for IE11\n private readonly debouncedSetSelectionFromEvent = debounce(this.setSelectionFromEvent, 300);\n\n private handleMouseUp = (event: React.MouseEvent<HTMLInputElement>) => {\n if (isIE11) {\n event.persist();\n this.debouncedSetSelectionFromEvent(event);\n } else {\n this.setSelectionFromEvent(event);\n }\n };\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n this.tempSelectionForOnChange = selection;\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n\n const action = extractAction(event);\n\n if (action === CURRENCY_INPUT_ACTIONS.Ignore) {\n return;\n }\n\n if (action !== CURRENCY_INPUT_ACTIONS.Unknown) {\n event.preventDefault();\n }\n\n switch (action) {\n case CURRENCY_INPUT_ACTIONS.Submit: {\n if (this.props.onSubmit) {\n this.props.onSubmit();\n }\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Backspace: {\n this.inputValue(CurrencyInputHelper.moveCursor(this.state.formatted, selection, -1), selection.end, '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Delete: {\n this.inputValue(selection.start, CurrencyInputHelper.moveCursor(this.state.formatted, selection, +1), '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorLeft: {\n this.moveCursor(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorRight: {\n this.moveCursor(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Home: {\n this.setState({ selection: SelectionHelper.fromPosition(0) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.End: {\n const end = this.state.formatted.length;\n this.setState({ selection: SelectionHelper.fromPosition(end) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionLeft: {\n this.extendSelection(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionRight: {\n this.extendSelection(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.FullSelection: {\n this.setState({\n selection: SelectionHelper.forward(0, this.state.formatted.length),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToStart: {\n this.setState({\n selection: SelectionHelper.backward(0, selection.start),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToEnd: {\n const inputEnd = this.state.formatted.length;\n this.setState({\n selection: SelectionHelper.forward(selection.start, inputEnd),\n });\n return;\n }\n }\n };\n\n private scrollInput = () => {\n const node = this.input?.getNode();\n if (!node || node.scrollWidth === node.clientWidth) {\n return;\n }\n const PAD = 1;\n const SHIFT = 3;\n\n const selection = this.state.selection;\n const selected = selection.start !== selection.end;\n const position = selected && selection.direction === 'forward' ? selection.end : selection.start;\n const charsCount = this.state.formatted.length;\n const charWidth = node.scrollWidth / charsCount;\n const frame = Math.ceil(node.clientWidth / charWidth);\n const frameStart = Math.ceil(node.scrollLeft / charWidth);\n const frameEnd = frameStart + frame;\n\n if (position < frameStart + PAD) {\n node.scrollLeft = (position - SHIFT) * charWidth;\n }\n if (position > frameEnd - PAD) {\n node.scrollLeft = (position - frame + SHIFT) * charWidth;\n }\n };\n\n private getSelection = (input: EventTarget): Selection => {\n const selection = getInputSelectionFromEvent(input);\n return {\n start: selection.start,\n end: selection.end,\n direction: this.state.selection.direction,\n };\n };\n\n private moveCursor = (selection: Selection, step: number) => {\n const position = CurrencyInputHelper.moveCursor(this.state.formatted, selection, step);\n this.setState({ selection: SelectionHelper.fromPosition(position) });\n };\n\n private extendSelection = (selection: Selection, step: number) => {\n const extended = CurrencyInputHelper.extendSelection(this.state.formatted, selection, step);\n this.setState({ selection: extended });\n };\n\n private inputValue = (start: number, end: number, value: string) => {\n const result = CurrencyInputHelper.safeInsert(this.state.formatted, start, end, value, {\n integerDigits: this.props.integerDigits,\n fractionDigits: this.props.fractionDigits,\n unsigned: !this.props.signed,\n });\n if (result) {\n const formatted = result.value;\n const selection = SelectionHelper.fromPosition(result.position);\n this.setState({ formatted, selection }, () => {\n const parsedValue = CurrencyHelper.parse(formatted);\n if (this.props.value !== parsedValue) {\n this.props.onValueChange(parsedValue);\n }\n });\n return true;\n }\n\n if (this.input) {\n this.input.blink();\n }\n return false;\n };\n\n private getOnChangeDelta = (value: string) => {\n const selection = this.tempSelectionForOnChange;\n const oldValue = this.state.formatted;\n if (selection.start !== selection.end) {\n return value.substring(selection.start, value.length - (oldValue.length - selection.end));\n } else if (value.length > oldValue.length) {\n return value.substr(selection.start, value.length - oldValue.length);\n }\n return null;\n };\n\n private handleValueChange = (value: string): void => {\n const selection = this.tempSelectionForOnChange;\n const delta = this.getOnChangeDelta(value);\n if (isNonNullable(delta) && !this.inputValue(selection.start, selection.end, delta)) {\n this.setState({ selection });\n }\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const data = event.clipboardData.getData('text');\n const selection = this.getSelection(event.target);\n this.inputValue(selection.start, selection.end, data);\n event.preventDefault();\n };\n\n private handleCopy = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n }\n event.preventDefault();\n };\n\n private handleCut = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n this.inputValue(selection.start, selection.end, '');\n }\n event.preventDefault();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n const { selectionStart, selectionEnd, selectionDirection } = event.target;\n const valueLength = event.target.value.length;\n\n const selection = {\n start: selectionStart !== selectionEnd ? selectionStart || 0 : selectionStart || valueLength,\n end: selectionEnd !== selectionStart ? selectionEnd || 0 : selectionEnd || valueLength,\n direction: (selectionDirection as SelectionDirection) || 'none',\n };\n\n this.setState({\n focused: true,\n selection,\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const value = CurrencyHelper.parse(this.state.formatted);\n\n this.setState({\n ...this.getState(value, this.props.fractionDigits, this.props.hideTrailingZeros),\n focused: false,\n });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private refInput = (element: Nullable<Input>) => {\n this.input = element;\n };\n}\n\nfunction getInputSelectionFromEvent(input: EventTarget): Selection {\n if (!(input instanceof HTMLInputElement)) {\n throw new Error('input is not HTMLInputElement');\n }\n\n return {\n start: input.selectionStart!,\n end: input.selectionEnd!,\n direction: input.selectionDirection as SelectionDirection,\n };\n}\n\nconst getPlaceholder = (props: CurrencyInputProps) => {\n if (isNullable(props.placeholder)) {\n return CurrencyHelper.format(0, {\n fractionDigits: props.fractionDigits,\n hideTrailingZeros: props.hideTrailingZeros,\n });\n }\n\n return props.placeholder;\n};\n"]}
@@ -12,11 +12,13 @@ var _CursorHelper = require("./CursorHelper");var
12
12
 
13
13
  CurrencyInputHelper = /*#__PURE__*/function () {function CurrencyInputHelper() {}CurrencyInputHelper.
14
14
  moveCursor = function moveCursor(value, selection, step) {
15
- return selection.start === selection.end ?
16
- _CursorHelper.CursorHelper.calculatePosition(_CurrencyHelper.CurrencyHelper.getInfo(value).cursorMap, selection.start, step) :
17
- step < 0 ?
18
- selection.start :
19
- selection.end;
15
+ if (selection.start === selection.end) {
16
+ return _CursorHelper.CursorHelper.calculatePosition(_CurrencyHelper.CurrencyHelper.getInfo(value).cursorMap, selection.start, step);
17
+ } else if (step < 0) {
18
+ return selection.start;
19
+ }
20
+
21
+ return selection.end;
20
22
  };CurrencyInputHelper.
21
23
 
22
24
  extendSelection = function extendSelection(value, selection, step) {
@@ -1 +1 @@
1
- {"version":3,"sources":["CurrencyInputHelper.tsx"],"names":["CurrencyInputHelper","moveCursor","value","selection","step","start","end","CursorHelper","calculatePosition","CurrencyHelper","getInfo","cursorMap","extendSelection","info","normalizeSelection","safeInsert","input","options","length","extracted","extractValid","insert","prefix","substring","suffix","combined","isValidString","raw","toRawPosition","info2","formattedPosition","toFormattedPosition","formatted","position"],"mappings":"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","sourcesContent":["import { Nullable } from '../../typings/utility-types';\n\nimport { Selection } from './SelectionHelper';\nimport { CurrencyHelper } from './CurrencyHelper';\nimport { CursorHelper } from './CursorHelper';\n\nexport interface DecimalOptions {\n integerDigits?: Nullable<number>;\n fractionDigits?: Nullable<number>;\n unsigned?: boolean;\n}\n\nexport class CurrencyInputHelper {\n public static moveCursor(value: string, selection: Selection, step: number): number {\n return selection.start === selection.end\n ? CursorHelper.calculatePosition(CurrencyHelper.getInfo(value).cursorMap, selection.start, step)\n : step < 0\n ? selection.start\n : selection.end;\n }\n\n public static extendSelection(value: string, selection: Selection, step: number) {\n const info = CurrencyHelper.getInfo(value);\n return CursorHelper.extendSelection(info.cursorMap, selection, step);\n }\n\n public static normalizeSelection(value: string, selection: Selection): Selection {\n const info = CurrencyHelper.getInfo(value);\n return CursorHelper.normalizeSelection(info.cursorMap, selection);\n }\n\n public static safeInsert(value: string, start: number, end: number, input: string, options: DecimalOptions) {\n if (input && start === 0 && end === value.length) {\n const extracted = CurrencyHelper.extractValid(input, options);\n if (!extracted) {\n return null;\n }\n return CurrencyInputHelper.insert(value, start, end, extracted);\n }\n\n const prefix = value.substring(0, start);\n const suffix = value.substring(end);\n\n const combined = prefix + input + suffix;\n if (CurrencyHelper.isValidString(combined, options)) {\n return CurrencyInputHelper.insert(value, start, end, input);\n }\n return null;\n }\n\n public static insert(value: string, start: number, end: number, input: string) {\n const prefix = value.substring(0, start);\n const suffix = value.substring(end);\n\n const info = CurrencyHelper.getInfo(value);\n const raw = CursorHelper.toRawPosition(info.cursorMap, start);\n const info2 = CurrencyHelper.getInfo(prefix + input + suffix);\n const formattedPosition = CursorHelper.toFormattedPosition(info2.cursorMap, raw + input.length);\n\n return { value: info2.formatted, position: formattedPosition };\n }\n}\n"]}
1
+ {"version":3,"sources":["CurrencyInputHelper.tsx"],"names":["CurrencyInputHelper","moveCursor","value","selection","step","start","end","CursorHelper","calculatePosition","CurrencyHelper","getInfo","cursorMap","extendSelection","info","normalizeSelection","safeInsert","input","options","length","extracted","extractValid","insert","prefix","substring","suffix","combined","isValidString","raw","toRawPosition","info2","formattedPosition","toFormattedPosition","formatted","position"],"mappings":"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","sourcesContent":["import { Nullable } from '../../typings/utility-types';\n\nimport { Selection } from './SelectionHelper';\nimport { CurrencyHelper } from './CurrencyHelper';\nimport { CursorHelper } from './CursorHelper';\n\nexport interface DecimalOptions {\n integerDigits?: Nullable<number>;\n fractionDigits?: Nullable<number>;\n unsigned?: boolean;\n}\n\nexport class CurrencyInputHelper {\n public static moveCursor(value: string, selection: Selection, step: number): number {\n if (selection.start === selection.end) {\n return CursorHelper.calculatePosition(CurrencyHelper.getInfo(value).cursorMap, selection.start, step);\n } else if (step < 0) {\n return selection.start;\n }\n\n return selection.end;\n }\n\n public static extendSelection(value: string, selection: Selection, step: number) {\n const info = CurrencyHelper.getInfo(value);\n return CursorHelper.extendSelection(info.cursorMap, selection, step);\n }\n\n public static normalizeSelection(value: string, selection: Selection): Selection {\n const info = CurrencyHelper.getInfo(value);\n return CursorHelper.normalizeSelection(info.cursorMap, selection);\n }\n\n public static safeInsert(value: string, start: number, end: number, input: string, options: DecimalOptions) {\n if (input && start === 0 && end === value.length) {\n const extracted = CurrencyHelper.extractValid(input, options);\n if (!extracted) {\n return null;\n }\n return CurrencyInputHelper.insert(value, start, end, extracted);\n }\n\n const prefix = value.substring(0, start);\n const suffix = value.substring(end);\n\n const combined = prefix + input + suffix;\n if (CurrencyHelper.isValidString(combined, options)) {\n return CurrencyInputHelper.insert(value, start, end, input);\n }\n return null;\n }\n\n public static insert(value: string, start: number, end: number, input: string) {\n const prefix = value.substring(0, start);\n const suffix = value.substring(end);\n\n const info = CurrencyHelper.getInfo(value);\n const raw = CursorHelper.toRawPosition(info.cursorMap, start);\n const info2 = CurrencyHelper.getInfo(prefix + input + suffix);\n const formattedPosition = CursorHelper.toFormattedPosition(info2.cursorMap, raw + input.length);\n\n return { value: info2.formatted, position: formattedPosition };\n }\n}\n"]}
@@ -1,7 +1,23 @@
1
- "use strict";exports.__esModule = true;exports.CursorHelper = void 0;function _createForOfIteratorHelperLoose(o, allowArrayLike) {var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];if (it) return (it = it.call(o)).next.bind(it);if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {if (it) o = it;var i = 0;return function () {if (i >= o.length) return { done: true };return { done: false, value: o[i++] };};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(o);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}var
1
+ "use strict";exports.__esModule = true;exports.CursorHelper = void 0;function _createForOfIteratorHelperLoose(o, allowArrayLike) {var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];if (it) return (it = it.call(o)).next.bind(it);if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {if (it) o = it;var i = 0;return function () {if (i >= o.length) return { done: true };return { done: false, value: o[i++] };};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(o);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}
2
2
 
3
3
 
4
4
 
5
+ var calculateExtendedSelection = function calculateExtendedSelection(map, selection, step) {
6
+ if (selection.direction === 'backward') {
7
+ return {
8
+ start: CursorHelper.calculatePosition(map, selection.start, step),
9
+ end: selection.end,
10
+ direction: 'backward' };
11
+
12
+ }
13
+
14
+ return {
15
+ start: selection.start,
16
+ end: CursorHelper.calculatePosition(map, selection.end, step),
17
+ direction: 'forward' };
18
+
19
+ };var
20
+
5
21
  CursorHelper = /*#__PURE__*/function () {function CursorHelper() {}CursorHelper.
6
22
  normalizePosition = function normalizePosition(map, position) {
7
23
  return map[Math.min(Math.max(0, position), map.length - 1)];
@@ -16,22 +32,9 @@ CursorHelper = /*#__PURE__*/function () {function CursorHelper() {}CursorHelper.
16
32
  };CursorHelper.
17
33
 
18
34
  extendSelection = function extendSelection(map, selection, step) {
19
- selection = CursorHelper.normalizeSelection(map, selection);
20
-
21
- selection =
22
- selection.direction === 'backward' ?
23
- {
24
- start: CursorHelper.calculatePosition(map, selection.start, step),
25
- end: selection.end,
26
- direction: 'backward' } :
27
-
28
- {
29
- start: selection.start,
30
- end: CursorHelper.calculatePosition(map, selection.end, step),
31
- direction: 'forward' };
32
-
35
+ var normalizedSelection = CursorHelper.normalizeSelection(map, selection);
33
36
 
34
- return CursorHelper.normalizeSelection(map, selection);
37
+ return CursorHelper.normalizeSelection(map, calculateExtendedSelection(map, normalizedSelection, step));
35
38
  };CursorHelper.
36
39
 
37
40
  normalizeSelection = function normalizeSelection(map, selection) {
@@ -1 +1 @@
1
- {"version":3,"sources":["CursorHelper.tsx"],"names":["CursorHelper","normalizePosition","map","position","Math","min","max","length","calculatePosition","step","Error","raw","toRawPosition","toFormattedPosition","extendSelection","selection","normalizeSelection","direction","start","end","formattedPosition","count","Set","slice","size","rawPosition","unique","add"],"mappings":"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","sourcesContent":["import { Selection } from './SelectionHelper';\n\nexport type CursorMap = number[];\n\nexport class CursorHelper {\n public static normalizePosition(map: CursorMap, position: number): number {\n return map[Math.min(Math.max(0, position), map.length - 1)];\n }\n\n public static calculatePosition(map: CursorMap, position: number, step: number) {\n if (position < 0 || map.length <= position) {\n throw new Error(`position out of range [${0} .. ${map.length - 1}], actual value: ${position}`);\n }\n const raw = CursorHelper.toRawPosition(map, position);\n return CursorHelper.toFormattedPosition(map, raw + step);\n }\n\n public static extendSelection(map: CursorMap, selection: Selection, step: number) {\n selection = CursorHelper.normalizeSelection(map, selection);\n\n selection =\n selection.direction === 'backward'\n ? {\n start: CursorHelper.calculatePosition(map, selection.start, step),\n end: selection.end,\n direction: 'backward',\n }\n : {\n start: selection.start,\n end: CursorHelper.calculatePosition(map, selection.end, step),\n direction: 'forward',\n };\n\n return CursorHelper.normalizeSelection(map, selection);\n }\n\n public static normalizeSelection(map: CursorMap, selection: Selection): Selection {\n const start = CursorHelper.normalizePosition(map, selection.start);\n const end = CursorHelper.normalizePosition(map, selection.end);\n\n if (start === end) {\n return {\n start,\n end,\n direction: 'none',\n };\n }\n\n if (start < end) {\n return {\n start,\n end,\n direction: selection.direction === 'backward' ? 'backward' : 'forward',\n };\n }\n\n return {\n start: end,\n end: start,\n direction: selection.direction === 'backward' ? 'forward' : 'backward',\n };\n }\n\n public static toRawPosition(map: CursorMap, formattedPosition: number) {\n const count = Math.min(Math.max(0, formattedPosition), map.length - 1);\n return new Set(map.slice(0, count + 1)).size - 1;\n }\n\n public static toFormattedPosition(map: CursorMap, rawPosition: number) {\n const count = Math.max(0, rawPosition) + 1;\n const unique = new Set();\n\n for (const position of map) {\n unique.add(position);\n if (unique.size === count) {\n return position;\n }\n }\n\n return map[map.length - 1];\n }\n}\n"]}
1
+ {"version":3,"sources":["CursorHelper.tsx"],"names":["calculateExtendedSelection","map","selection","step","direction","start","CursorHelper","calculatePosition","end","normalizePosition","position","Math","min","max","length","Error","raw","toRawPosition","toFormattedPosition","extendSelection","normalizedSelection","normalizeSelection","formattedPosition","count","Set","slice","size","rawPosition","unique","add"],"mappings":"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","sourcesContent":["import { Selection } from './SelectionHelper';\n\nexport type CursorMap = number[];\n\nconst calculateExtendedSelection = (map: CursorMap, selection: Selection, step: number): Selection => {\n if (selection.direction === 'backward') {\n return {\n start: CursorHelper.calculatePosition(map, selection.start, step),\n end: selection.end,\n direction: 'backward',\n };\n }\n\n return {\n start: selection.start,\n end: CursorHelper.calculatePosition(map, selection.end, step),\n direction: 'forward',\n };\n};\n\nexport class CursorHelper {\n public static normalizePosition(map: CursorMap, position: number): number {\n return map[Math.min(Math.max(0, position), map.length - 1)];\n }\n\n public static calculatePosition(map: CursorMap, position: number, step: number) {\n if (position < 0 || map.length <= position) {\n throw new Error(`position out of range [${0} .. ${map.length - 1}], actual value: ${position}`);\n }\n const raw = CursorHelper.toRawPosition(map, position);\n return CursorHelper.toFormattedPosition(map, raw + step);\n }\n\n public static extendSelection(map: CursorMap, selection: Selection, step: number) {\n const normalizedSelection = CursorHelper.normalizeSelection(map, selection);\n\n return CursorHelper.normalizeSelection(map, calculateExtendedSelection(map, normalizedSelection, step));\n }\n\n public static normalizeSelection(map: CursorMap, selection: Selection): Selection {\n const start = CursorHelper.normalizePosition(map, selection.start);\n const end = CursorHelper.normalizePosition(map, selection.end);\n\n if (start === end) {\n return {\n start,\n end,\n direction: 'none',\n };\n }\n\n if (start < end) {\n return {\n start,\n end,\n direction: selection.direction === 'backward' ? 'backward' : 'forward',\n };\n }\n\n return {\n start: end,\n end: start,\n direction: selection.direction === 'backward' ? 'forward' : 'backward',\n };\n }\n\n public static toRawPosition(map: CursorMap, formattedPosition: number) {\n const count = Math.min(Math.max(0, formattedPosition), map.length - 1);\n return new Set(map.slice(0, count + 1)).size - 1;\n }\n\n public static toFormattedPosition(map: CursorMap, rawPosition: number) {\n const count = Math.max(0, rawPosition) + 1;\n const unique = new Set();\n\n for (const position of map) {\n unique.add(position);\n if (unique.size === count) {\n return position;\n }\n }\n\n return map[map.length - 1];\n }\n}\n"]}
@@ -432,7 +432,11 @@ DateInput = (_dec = (0, _decorators.locale)('DatePicker', _locale.DatePickerLoca
432
432
  _this.iDateMediator.clear(_types.InternalDateComponentType.All);
433
433
  _this.setState({ selected: selected });
434
434
  }
435
- var inputMode = _this.iDateMediator.inputKey(event.key, selected, _this.state.inputMode);
435
+ var _this$iDateMediator$i = _this.iDateMediator.inputKey(event.key, selected, _this.state.inputMode),inputMode = _this$iDateMediator$i.inputMode,changed = _this$iDateMediator$i.changed;
436
+ if (!changed) {
437
+ _this.blink();
438
+ return;
439
+ }
436
440
 
437
441
  if (!inputMode) {
438
442
  _this.ignoringDelimiter = true;
@@ -1 +1 @@
1
- {"version":3,"sources":["DateInput.tsx"],"names":["DateInput","DatePickerLocaleHelper","rootNode","props","iDateMediator","InternalDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","blurEvent","conditionalHandler","ConditionalHandler","add","Actions","MoveSelectionLeft","shiftSelection","MoveSelectionRight","Separator","pressDelimiter","MoveSelectionFirst","selectDateComponent","getLeftmostType","MoveSelectionLast","getRightmostType","Increment","shiftDateComponent","Decrement","Digit","e","inputValue","ClearSelection","clearSelected","ClearOneChar","clearOneChar","FullSelection","fullSelection","WrongInput","blink","build","selectNode","type","state","selected","getRootNode","InternalDateComponentType","All","selectInnerNode","index","getTypesOrder","indexOf","renderIcon","withIcon","size","disabled","theme","iconStyles","styles","icon","iconSmall","iconMedium","iconLarge","iconDisabled","handleFocus","setState","prevState","focused","onFocus","handleBlur","restored","restore","updateValue","inputMode","onBlur","persist","handleMouseDownCapture","isFragment","target","preventDefault","handleSelectDateComponent","isEmpty","handleMouseDragStart","dragged","handleMouseDragEnd","selection","getSelection","toString","length","LENGTH_FULLDATE","handleKeyDown","onKeyDown","handlePaste","pasted","clipboardData","getData","trim","validateString","paste","handleDoubleClick","inputLikeTextRef","el","dateFragmentsViewRef","valueFormatted","getString","emitChange","updateFromProps","update","locale","value","get","getInternalString","onValueChange","clear","nextType","isNull","deleteOneCharRight","step","changed","getShiftedType","event","inputKey","key","componentDidUpdate","prevProps","minDate","maxDate","isChangedLocale","componentDidMount","autoFocus","focus","blur","render","renderMain","showValue","Boolean","setRootNode","width","error","warning","onClick","valueVisible","getFragments","React","Component","__KONTUR_REACT_UI__","defaultProps","MIN_FULLDATE","MAX_FULLDATE"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ConditionalHandler } from '../../lib/ConditionalHandler';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateComponentType } from '../../lib/date/types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InputLikeText } from '../../internal/InputLikeText';\nimport { locale } from '../../lib/locale/decorators';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CalendarIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { DateFragmentsView } from './DateFragmentsView';\nimport { styles } from './DateInput.styles';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions';\nimport { InternalDateMediator } from './helpers/InternalDateMediator';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport interface DateInputProps extends CommonProps {\n autoFocus?: boolean;\n value: string;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n disabled?: boolean;\n /**\n * Минимальная дата.\n * @default '01.01.1900'\n */\n minDate: string;\n /**\n * Максимальная дата\n * @default '31.12.2099'\n */\n maxDate: string;\n /**\n * Ширина поля\n * @default 125\n */\n width?: string | number;\n withIcon?: boolean;\n /**\n * Размер поля\n * @default 'small'\n */\n size: 'small' | 'large' | 'medium';\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange?: (value: string) => void;\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n\n public static defaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n size: 'small',\n width: 125,\n };\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps, prevState: DateInputState) {\n if (\n prevProps.value !== this.props.value ||\n prevProps.minDate !== this.props.minDate ||\n prevProps.maxDate !== this.props.maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps();\n }\n this.selectNode();\n }\n\n public selectNode = () => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps();\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur() {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus() {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink() {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { focused, selected, inputMode, valueFormatted } = this.state;\n const showValue = Boolean(focused || valueFormatted);\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <InputLikeText\n width={this.props.width}\n ref={this.inputLikeTextRef}\n size={this.props.size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n >\n <span className={cx(styles.value(), { [styles.valueVisible()]: showValue })}>\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={this.iDateMediator.getFragments()}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </span>\n </InputLikeText>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, size, disabled = false } = this.props;\n\n if (withIcon) {\n const theme = this.theme;\n const iconStyles = cx({\n [styles.icon(theme)]: true,\n [styles.iconSmall(theme)]: size === 'small',\n [styles.iconMedium(theme)]: size === 'medium',\n [styles.iconLarge(theme)]: size === 'large',\n [styles.iconDisabled(theme)]: disabled,\n });\n return (\n <span className={iconStyles}>\n <CalendarIcon />\n </span>\n );\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n const restored = this.iDateMediator.restore();\n this.updateValue({ focused: false, selected: null, inputMode: false });\n\n if (this.props.onBlur) {\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = getSelection();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n };\n\n private updateFromProps = (): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue();\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value === value) {\n return;\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n const inputMode = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"]}
1
+ {"version":3,"sources":["DateInput.tsx"],"names":["DateInput","DatePickerLocaleHelper","rootNode","props","iDateMediator","InternalDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","blurEvent","conditionalHandler","ConditionalHandler","add","Actions","MoveSelectionLeft","shiftSelection","MoveSelectionRight","Separator","pressDelimiter","MoveSelectionFirst","selectDateComponent","getLeftmostType","MoveSelectionLast","getRightmostType","Increment","shiftDateComponent","Decrement","Digit","e","inputValue","ClearSelection","clearSelected","ClearOneChar","clearOneChar","FullSelection","fullSelection","WrongInput","blink","build","selectNode","type","state","selected","getRootNode","InternalDateComponentType","All","selectInnerNode","index","getTypesOrder","indexOf","renderIcon","withIcon","size","disabled","theme","iconStyles","styles","icon","iconSmall","iconMedium","iconLarge","iconDisabled","handleFocus","setState","prevState","focused","onFocus","handleBlur","restored","restore","updateValue","inputMode","onBlur","persist","handleMouseDownCapture","isFragment","target","preventDefault","handleSelectDateComponent","isEmpty","handleMouseDragStart","dragged","handleMouseDragEnd","selection","getSelection","toString","length","LENGTH_FULLDATE","handleKeyDown","onKeyDown","handlePaste","pasted","clipboardData","getData","trim","validateString","paste","handleDoubleClick","inputLikeTextRef","el","dateFragmentsViewRef","valueFormatted","getString","emitChange","updateFromProps","update","locale","value","get","getInternalString","onValueChange","clear","nextType","isNull","deleteOneCharRight","step","changed","getShiftedType","event","inputKey","key","componentDidUpdate","prevProps","minDate","maxDate","isChangedLocale","componentDidMount","autoFocus","focus","blur","render","renderMain","showValue","Boolean","setRootNode","width","error","warning","onClick","valueVisible","getFragments","React","Component","__KONTUR_REACT_UI__","defaultProps","MIN_FULLDATE","MAX_FULLDATE"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ConditionalHandler } from '../../lib/ConditionalHandler';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateComponentType } from '../../lib/date/types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InputLikeText } from '../../internal/InputLikeText';\nimport { locale } from '../../lib/locale/decorators';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CalendarIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { DateFragmentsView } from './DateFragmentsView';\nimport { styles } from './DateInput.styles';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions';\nimport { InternalDateMediator } from './helpers/InternalDateMediator';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport interface DateInputProps extends CommonProps {\n autoFocus?: boolean;\n value: string;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n disabled?: boolean;\n /**\n * Минимальная дата.\n * @default '01.01.1900'\n */\n minDate: string;\n /**\n * Максимальная дата\n * @default '31.12.2099'\n */\n maxDate: string;\n /**\n * Ширина поля\n * @default 125\n */\n width?: string | number;\n withIcon?: boolean;\n /**\n * Размер поля\n * @default 'small'\n */\n size: 'small' | 'large' | 'medium';\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange?: (value: string) => void;\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n\n public static defaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n size: 'small',\n width: 125,\n };\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps, prevState: DateInputState) {\n if (\n prevProps.value !== this.props.value ||\n prevProps.minDate !== this.props.minDate ||\n prevProps.maxDate !== this.props.maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps();\n }\n this.selectNode();\n }\n\n public selectNode = () => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps();\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur() {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus() {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink() {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { focused, selected, inputMode, valueFormatted } = this.state;\n const showValue = Boolean(focused || valueFormatted);\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <InputLikeText\n width={this.props.width}\n ref={this.inputLikeTextRef}\n size={this.props.size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n >\n <span className={cx(styles.value(), { [styles.valueVisible()]: showValue })}>\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={this.iDateMediator.getFragments()}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </span>\n </InputLikeText>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, size, disabled = false } = this.props;\n\n if (withIcon) {\n const theme = this.theme;\n const iconStyles = cx({\n [styles.icon(theme)]: true,\n [styles.iconSmall(theme)]: size === 'small',\n [styles.iconMedium(theme)]: size === 'medium',\n [styles.iconLarge(theme)]: size === 'large',\n [styles.iconDisabled(theme)]: disabled,\n });\n return (\n <span className={iconStyles}>\n <CalendarIcon />\n </span>\n );\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n const restored = this.iDateMediator.restore();\n this.updateValue({ focused: false, selected: null, inputMode: false });\n\n if (this.props.onBlur) {\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = getSelection();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n };\n\n private updateFromProps = (): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue();\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value === value) {\n return;\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n const { inputMode, changed } = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n if (!changed) {\n this.blink();\n return;\n }\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"]}
@@ -1,11 +1,11 @@
1
1
  import { InternalDate } from '../../../lib/date/InternalDate';
2
- import { InternalDateComponentType, InternalDateTypesOrder } from '../../../lib/date/types';
2
+ import { InputKeyResult, InternalDateComponentType, InternalDateTypesOrder } from '../../../lib/date/types';
3
3
  import { DatePickerLocale } from '../../DatePicker/locale';
4
4
  import { DateInputProps } from '../DateInput';
5
5
  export declare class InternalDateMediator {
6
6
  iDate: InternalDate;
7
7
  update: (props: DateInputProps, locale: DatePickerLocale) => InternalDateMediator;
8
- inputKey(key: string, type: InternalDateComponentType | null, inputMode: boolean): boolean;
8
+ inputKey(key: string, type: InternalDateComponentType | null, inputMode: boolean): InputKeyResult;
9
9
  paste: (pasted: string) => InternalDateMediator;
10
10
  restore: () => boolean;
11
11
  shiftDateComponent(type: InternalDateComponentType | null, step: number): boolean;
@@ -5,6 +5,11 @@ var _types = require("../../../lib/date/types");
5
5
 
6
6
 
7
7
 
8
+
9
+
10
+
11
+
12
+
8
13
  var _inputNumber2 = require("./inputNumber");var
9
14
 
10
15
  InternalDateMediator = /*#__PURE__*/function () {function InternalDateMediator() {var _this = this;this.
@@ -61,6 +66,8 @@ InternalDateMediator = /*#__PURE__*/function () {function InternalDateMediator()
61
66
 
62
67
 
63
68
 
69
+
70
+
64
71
  paste = function (pasted) {
65
72
  _this.iDate.parseValue(pasted).restore().cutOffExcess();
66
73
  return _this;
@@ -116,6 +123,9 @@ InternalDateMediator = /*#__PURE__*/function () {function InternalDateMediator()
116
123
 
117
124
 
118
125
 
126
+
127
+
128
+
119
129
 
120
130
 
121
131
 
@@ -155,7 +165,7 @@ InternalDateMediator = /*#__PURE__*/function () {function InternalDateMediator()
155
165
 
156
166
  getLeftmostType = function () {return _this.getTypesOrder()[0];};this.
157
167
 
158
- getRightmostType = function () {return _this.getTypesOrder()[2];};}var _proto = InternalDateMediator.prototype;_proto.inputKey = function inputKey(key, type, inputMode) {var prevValue = this.iDate.get(type);if (type === null) {type = this.getLeftmostType();this.clear(type);}if (type !== _types.InternalDateComponentType.Year) {this.iDate.cutOffExcess(type);} else {this.iDate.restore(type);}var _inputNumber = (0, _inputNumber2.inputNumber)(type, prevValue, key, inputMode),nextValue = _inputNumber.nextValue,nextInputMode = _inputNumber.nextInputMode;this.iDate.set(type, nextValue);return nextInputMode;};_proto.shiftDateComponent = function shiftDateComponent(type, step) {type = type === null ? this.getLeftmostType() : type;var iDate = this.iDate.clone();var isValidRange = iDate.validate({ checks: [_types.InternalDateValidateCheck.Range] });var start = iDate.getRangeStart();var end = iDate.getRangeEnd();if (!isValidRange) {// Удерживаем дату в заданном диапазоне
159
- if (start && _InternalDateGetter.InternalDateGetter.max([iDate, start]) === start) {iDate.duplicateOf(start);} else if (end && _InternalDateGetter.InternalDateGetter.min([iDate, end]) === end) {iDate.duplicateOf(end);}} else {var clone = iDate.clone().shift(type, step, { isRange: false, isLoop: true });if (clone.validate({ checks: [_types.InternalDateValidateCheck.Range] })) {iDate.duplicateOf(clone);}}var changed = !this.iDate.isEqualComponentDate(type, iDate);this.iDate = iDate;return changed;};_proto.getShiftedType = function getShiftedType(type, step) {var typesOrder = this.getTypesOrder();var index = type === null ? 0 : typesOrder.indexOf(type);var nextIndex = index + step; // Если выделено всё поле, то в завимости от направления перемещения, выделям крайний компонент
168
+ getRightmostType = function () {return _this.getTypesOrder()[2];};}var _proto = InternalDateMediator.prototype;_proto.inputKey = function inputKey(key, type, inputMode) {var prevValue = this.iDate.get(type);if (type === null) {var leftMostType = this.getLeftmostType();this.clear(leftMostType);}if (type !== _types.InternalDateComponentType.Year) {this.iDate.cutOffExcess(type);} else {this.iDate.restore(type);}var maxValue = _InternalDateGetter.InternalDateGetter.getDefaultMax(type, this.iDate.getComponentsLikeNumber());var _inputNumber = (0, _inputNumber2.inputNumber)(type, prevValue, key, inputMode, maxValue),nextValue = _inputNumber.nextValue,nextInputMode = _inputNumber.nextInputMode;this.iDate.set(type, nextValue);return { inputMode: nextInputMode, changed: nextValue !== prevValue };};_proto.shiftDateComponent = function shiftDateComponent(type, step) {var calculatedType = type != null ? type : this.getLeftmostType();var iDate = this.iDate.clone();var start = iDate.getRangeStart();var end = iDate.getRangeEnd();var isValidRange = iDate.validate({ checks: [_types.InternalDateValidateCheck.Range] });if (!isValidRange) {// Удерживаем дату в заданном диапазоне
169
+ if (start && _InternalDateGetter.InternalDateGetter.max([iDate, start]) === start) {iDate.duplicateOf(start);} else if (end && _InternalDateGetter.InternalDateGetter.min([iDate, end]) === end) {iDate.duplicateOf(end);}} else {var clone = iDate.clone().shift(calculatedType, step, { isRange: false, isLoop: true, isCutFeb: true });if (clone.validate({ checks: [_types.InternalDateValidateCheck.Range] })) {iDate.duplicateOf(clone);}}var changed = !this.iDate.isEqualComponentDate(calculatedType, iDate);this.iDate = iDate;return changed;};_proto.getShiftedType = function getShiftedType(type, step) {var typesOrder = this.getTypesOrder();var index = type === null ? 0 : typesOrder.indexOf(type);var nextIndex = index + step; // Если выделено всё поле, то в завимости от направления перемещения, выделям крайний компонент
160
170
  if (type === _types.InternalDateComponentType.All) {return step < 0 ? typesOrder[0] : typesOrder[2];} // Если текущий компонент "год", и он не пуст, то при перемещении выделения "восстанавливаем" значение года
161
171
  if (type === _types.InternalDateComponentType.Year && this.iDate.getYear() !== null) {this.iDate.restore(type);}var shiftedType = typesOrder[nextIndex];return typeof shiftedType === 'number' ? shiftedType : type;};return InternalDateMediator;}();exports.InternalDateMediator = InternalDateMediator;
@@ -1 +1 @@
1
- {"version":3,"sources":["InternalDateMediator.ts"],"names":["InternalDateMediator","iDate","InternalDate","update","props","locale","start","getRangeStart","min","toInternalString","end","getRangeEnd","max","order","separator","setOrder","setSeparator","minDate","setRangeStart","value","maxDate","setRangeEnd","parseInternalValue","paste","pasted","parseValue","restore","cutOffExcess","isIncomplete","restored","clone","isEqual","duplicateOf","getFragments","toFragments","withSeparator","withPad","deleteOneCharRight","type","inputMode","prev","get","String","InternalDateTransformer","padDateComponent","next","replace","set","isChangedLocale","getOrder","getSeparator","isNull","isEmpty","clear","validateString","parseValueToDate","getString","toString","getInternalString","getTypesOrder","map","getLeftmostType","getRightmostType","inputKey","key","prevValue","InternalDateComponentType","Year","nextValue","nextInputMode","shiftDateComponent","step","isValidRange","validate","checks","InternalDateValidateCheck","Range","InternalDateGetter","shift","isRange","isLoop","changed","isEqualComponentDate","getShiftedType","typesOrder","index","indexOf","nextIndex","All","getYear","shiftedType"],"mappings":"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","sourcesContent":["import { InternalDate } from '../../../lib/date/InternalDate';\nimport { InternalDateGetter } from '../../../lib/date/InternalDateGetter';\nimport { InternalDateTransformer } from '../../../lib/date/InternalDateTransformer';\nimport { InternalDateComponentType, InternalDateTypesOrder, InternalDateValidateCheck } from '../../../lib/date/types';\nimport { DatePickerLocale } from '../../DatePicker/locale';\nimport { DateInputProps } from '../DateInput';\n\nimport { inputNumber } from './inputNumber';\n\nexport class InternalDateMediator {\n public iDate: InternalDate = new InternalDate();\n\n public update = (props: DateInputProps, locale: DatePickerLocale): InternalDateMediator => {\n const start = this.iDate.getRangeStart();\n const min = start && start.toInternalString();\n const end = this.iDate.getRangeEnd();\n const max = end && end.toInternalString();\n const { order, separator } = locale;\n this.iDate.setOrder(order).setSeparator(separator);\n if (props.minDate !== min) {\n this.iDate.setRangeStart(\n props.minDate\n ? new InternalDate({\n order,\n separator,\n value: props.minDate,\n })\n : null,\n );\n }\n if (props.maxDate !== max) {\n this.iDate.setRangeEnd(\n props.maxDate\n ? new InternalDate({\n order,\n separator,\n value: props.maxDate,\n })\n : null,\n );\n }\n if (!props.value || props.value !== this.iDate.toInternalString()) {\n this.iDate.parseInternalValue(props.value);\n }\n return this;\n };\n\n public inputKey(key: string, type: InternalDateComponentType | null, inputMode: boolean): boolean {\n const prevValue = this.iDate.get(type);\n if (type === null) {\n type = this.getLeftmostType();\n this.clear(type);\n }\n if (type !== InternalDateComponentType.Year) {\n this.iDate.cutOffExcess(type);\n } else {\n this.iDate.restore(type);\n }\n const { nextValue, nextInputMode } = inputNumber(type, prevValue, key, inputMode);\n this.iDate.set(type, nextValue);\n return nextInputMode;\n }\n\n public paste = (pasted: string): InternalDateMediator => {\n this.iDate.parseValue(pasted).restore().cutOffExcess();\n return this;\n };\n\n public restore = (): boolean => {\n if (this.iDate.isIncomplete()) {\n const restored = this.iDate.clone().restore();\n if (!this.iDate.isEqual(restored)) {\n this.iDate.duplicateOf(restored);\n }\n return true;\n }\n return false;\n };\n\n public shiftDateComponent(type: InternalDateComponentType | null, step: number): boolean {\n type = type === null ? this.getLeftmostType() : type;\n const iDate = this.iDate.clone();\n const isValidRange = iDate.validate({ checks: [InternalDateValidateCheck.Range] });\n const start = iDate.getRangeStart();\n const end = iDate.getRangeEnd();\n if (!isValidRange) {\n // Удерживаем дату в заданном диапазоне\n if (start && InternalDateGetter.max([iDate, start]) === start) {\n iDate.duplicateOf(start);\n } else if (end && InternalDateGetter.min([iDate, end]) === end) {\n iDate.duplicateOf(end);\n }\n } else {\n const clone = iDate.clone().shift(type, step, { isRange: false, isLoop: true });\n if (clone.validate({ checks: [InternalDateValidateCheck.Range] })) {\n iDate.duplicateOf(clone);\n }\n }\n const changed = !this.iDate.isEqualComponentDate(type, iDate);\n this.iDate = iDate;\n return changed;\n }\n\n public getShiftedType(type: InternalDateComponentType | null, step: number): InternalDateComponentType | null {\n const typesOrder = this.getTypesOrder();\n const index = type === null ? 0 : typesOrder.indexOf(type);\n const nextIndex = index + step;\n\n // Если выделено всё поле, то в завимости от направления перемещения, выделям крайний компонент\n if (type === InternalDateComponentType.All) {\n return step < 0 ? typesOrder[0] : typesOrder[2];\n }\n\n // Если текущий компонент \"год\", и он не пуст, то при перемещении выделения \"восстанавливаем\" значение года\n if (type === InternalDateComponentType.Year && this.iDate.getYear() !== null) {\n this.iDate.restore(type);\n }\n\n const shiftedType = typesOrder[nextIndex];\n return typeof shiftedType === 'number' ? shiftedType : type;\n }\n\n public getFragments = () =>\n this.iDate.toFragments({\n withSeparator: true,\n withPad: true,\n });\n\n public deleteOneCharRight = (type: InternalDateComponentType, inputMode: boolean) => {\n let prev = this.iDate.get(type);\n prev = String(inputMode ? prev : InternalDateTransformer.padDateComponent(type, prev));\n const next = prev.replace(/.$/, '') || null;\n this.iDate.set(type, next);\n };\n\n public isChangedLocale = (locale: DatePickerLocale): boolean =>\n locale.order !== this.iDate.getOrder() || locale.separator !== this.iDate.getSeparator();\n\n public isNull = (type: InternalDateComponentType | null): boolean => this.iDate.get(type) === null;\n\n public isEmpty = (): boolean => this.iDate.isEmpty();\n\n public get = (type: InternalDateComponentType | null) => this.iDate.get(type);\n\n public clear = (type: InternalDateComponentType | null): InternalDate => this.iDate.set(type, null);\n\n public validateString = (value: string): boolean =>\n InternalDateTransformer.parseValueToDate(value, this.iDate.getOrder()) !== null;\n\n public getString = (): string => (this.iDate.isEmpty() ? '' : this.iDate.toString());\n\n public getInternalString = (): string => (this.iDate.isEmpty() ? '' : this.iDate.toInternalString());\n\n public getTypesOrder = () => this.iDate.toFragments().map(({ type }) => type) as InternalDateTypesOrder;\n\n public getLeftmostType = (): InternalDateComponentType => this.getTypesOrder()[0];\n\n public getRightmostType = (): InternalDateComponentType => this.getTypesOrder()[2];\n}\n"]}
1
+ {"version":3,"sources":["InternalDateMediator.ts"],"names":["InternalDateMediator","iDate","InternalDate","update","props","locale","start","getRangeStart","min","toInternalString","end","getRangeEnd","max","order","separator","setOrder","setSeparator","minDate","setRangeStart","value","maxDate","setRangeEnd","parseInternalValue","paste","pasted","parseValue","restore","cutOffExcess","isIncomplete","restored","clone","isEqual","duplicateOf","getFragments","toFragments","withSeparator","withPad","deleteOneCharRight","type","inputMode","prev","get","String","InternalDateTransformer","padDateComponent","next","replace","set","isChangedLocale","getOrder","getSeparator","isNull","isEmpty","clear","validateString","parseValueToDate","getString","toString","getInternalString","getTypesOrder","map","getLeftmostType","getRightmostType","inputKey","key","prevValue","leftMostType","InternalDateComponentType","Year","maxValue","InternalDateGetter","getDefaultMax","getComponentsLikeNumber","nextValue","nextInputMode","changed","shiftDateComponent","step","calculatedType","isValidRange","validate","checks","InternalDateValidateCheck","Range","shift","isRange","isLoop","isCutFeb","isEqualComponentDate","getShiftedType","typesOrder","index","indexOf","nextIndex","All","getYear","shiftedType"],"mappings":"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","sourcesContent":["import { InternalDate } from '../../../lib/date/InternalDate';\nimport { InternalDateGetter } from '../../../lib/date/InternalDateGetter';\nimport { InternalDateTransformer } from '../../../lib/date/InternalDateTransformer';\nimport {\n InputKeyResult,\n InternalDateComponentType,\n InternalDateTypesOrder,\n InternalDateValidateCheck,\n} from '../../../lib/date/types';\nimport { DatePickerLocale } from '../../DatePicker/locale';\nimport { DateInputProps } from '../DateInput';\n\nimport { inputNumber } from './inputNumber';\n\nexport class InternalDateMediator {\n public iDate: InternalDate = new InternalDate();\n\n public update = (props: DateInputProps, locale: DatePickerLocale): InternalDateMediator => {\n const start = this.iDate.getRangeStart();\n const min = start && start.toInternalString();\n const end = this.iDate.getRangeEnd();\n const max = end && end.toInternalString();\n const { order, separator } = locale;\n this.iDate.setOrder(order).setSeparator(separator);\n if (props.minDate !== min) {\n this.iDate.setRangeStart(\n props.minDate\n ? new InternalDate({\n order,\n separator,\n value: props.minDate,\n })\n : null,\n );\n }\n if (props.maxDate !== max) {\n this.iDate.setRangeEnd(\n props.maxDate\n ? new InternalDate({\n order,\n separator,\n value: props.maxDate,\n })\n : null,\n );\n }\n if (!props.value || props.value !== this.iDate.toInternalString()) {\n this.iDate.parseInternalValue(props.value);\n }\n return this;\n };\n\n public inputKey(key: string, type: InternalDateComponentType | null, inputMode: boolean): InputKeyResult {\n const prevValue = this.iDate.get(type);\n if (type === null) {\n const leftMostType = this.getLeftmostType();\n this.clear(leftMostType);\n }\n\n if (type !== InternalDateComponentType.Year) {\n this.iDate.cutOffExcess(type);\n } else {\n this.iDate.restore(type);\n }\n const maxValue = InternalDateGetter.getDefaultMax(type, this.iDate.getComponentsLikeNumber());\n const { nextValue, nextInputMode } = inputNumber(type, prevValue, key, inputMode, maxValue);\n this.iDate.set(type, nextValue);\n return { inputMode: nextInputMode, changed: nextValue !== prevValue };\n }\n\n public paste = (pasted: string): InternalDateMediator => {\n this.iDate.parseValue(pasted).restore().cutOffExcess();\n return this;\n };\n\n public restore = (): boolean => {\n if (this.iDate.isIncomplete()) {\n const restored = this.iDate.clone().restore();\n if (!this.iDate.isEqual(restored)) {\n this.iDate.duplicateOf(restored);\n }\n return true;\n }\n return false;\n };\n\n public shiftDateComponent(type: InternalDateComponentType | null, step: number): boolean {\n const calculatedType = type ?? this.getLeftmostType();\n\n const iDate = this.iDate.clone();\n const start = iDate.getRangeStart();\n const end = iDate.getRangeEnd();\n\n const isValidRange = iDate.validate({ checks: [InternalDateValidateCheck.Range] });\n if (!isValidRange) {\n // Удерживаем дату в заданном диапазоне\n if (start && InternalDateGetter.max([iDate, start]) === start) {\n iDate.duplicateOf(start);\n } else if (end && InternalDateGetter.min([iDate, end]) === end) {\n iDate.duplicateOf(end);\n }\n } else {\n const clone = iDate.clone().shift(calculatedType, step, { isRange: false, isLoop: true, isCutFeb: true });\n if (clone.validate({ checks: [InternalDateValidateCheck.Range] })) {\n iDate.duplicateOf(clone);\n }\n }\n\n const changed = !this.iDate.isEqualComponentDate(calculatedType, iDate);\n this.iDate = iDate;\n return changed;\n }\n\n public getShiftedType(type: InternalDateComponentType | null, step: number): InternalDateComponentType | null {\n const typesOrder = this.getTypesOrder();\n const index = type === null ? 0 : typesOrder.indexOf(type);\n const nextIndex = index + step;\n\n // Если выделено всё поле, то в завимости от направления перемещения, выделям крайний компонент\n if (type === InternalDateComponentType.All) {\n return step < 0 ? typesOrder[0] : typesOrder[2];\n }\n\n // Если текущий компонент \"год\", и он не пуст, то при перемещении выделения \"восстанавливаем\" значение года\n if (type === InternalDateComponentType.Year && this.iDate.getYear() !== null) {\n this.iDate.restore(type);\n }\n\n const shiftedType = typesOrder[nextIndex];\n return typeof shiftedType === 'number' ? shiftedType : type;\n }\n\n public getFragments = () =>\n this.iDate.toFragments({\n withSeparator: true,\n withPad: true,\n });\n\n public deleteOneCharRight = (type: InternalDateComponentType, inputMode: boolean) => {\n let prev = this.iDate.get(type);\n prev = String(inputMode ? prev : InternalDateTransformer.padDateComponent(type, prev));\n const next = prev.replace(/.$/, '') || null;\n this.iDate.set(type, next);\n };\n\n public isChangedLocale = (locale: DatePickerLocale): boolean =>\n locale.order !== this.iDate.getOrder() || locale.separator !== this.iDate.getSeparator();\n\n public isNull = (type: InternalDateComponentType | null): boolean => this.iDate.get(type) === null;\n\n public isEmpty = (): boolean => this.iDate.isEmpty();\n\n public get = (type: InternalDateComponentType | null) => this.iDate.get(type);\n\n public clear = (type: InternalDateComponentType | null): InternalDate => this.iDate.set(type, null);\n\n public validateString = (value: string): boolean =>\n InternalDateTransformer.parseValueToDate(value, this.iDate.getOrder()) !== null;\n\n public getString = (): string => (this.iDate.isEmpty() ? '' : this.iDate.toString());\n\n public getInternalString = (): string => (this.iDate.isEmpty() ? '' : this.iDate.toInternalString());\n\n public getTypesOrder = () => this.iDate.toFragments().map(({ type }) => type) as InternalDateTypesOrder;\n\n public getLeftmostType = (): InternalDateComponentType => this.getTypesOrder()[0];\n\n public getRightmostType = (): InternalDateComponentType => this.getTypesOrder()[2];\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { InternalDateComponentRaw, InternalDateComponentType } from '../../../lib/date/types';
2
- export declare const inputNumber: (type: InternalDateComponentType | null, prev: InternalDateComponentRaw, key: string, inputMode: boolean) => {
2
+ export declare const inputNumber: (type: InternalDateComponentType | null, prev: InternalDateComponentRaw, key: string, inputMode: boolean, maxValue: number) => {
3
3
  nextValue: InternalDateComponentRaw;
4
4
  nextInputMode: boolean;
5
5
  };