@skbkontur/react-ui 4.1.0 → 4.1.1

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 (368) hide show
  1. package/CHANGELOG.md +15 -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.styles.js +4 -7
  9. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  10. package/cjs/components/CurrencyInput/CurrencyHelper.js +18 -12
  11. package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  12. package/cjs/components/CurrencyInput/CurrencyInput.js +15 -7
  13. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  14. package/cjs/components/CurrencyInput/CurrencyInputHelper.js +7 -5
  15. package/cjs/components/CurrencyInput/CurrencyInputHelper.js.map +1 -1
  16. package/cjs/components/CurrencyInput/CursorHelper.js +19 -16
  17. package/cjs/components/CurrencyInput/CursorHelper.js.map +1 -1
  18. package/cjs/components/DateInput/helpers/InternalDateMediator.js +8 -2
  19. package/cjs/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
  20. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -4
  21. package/cjs/components/DropdownMenu/DropdownMenu.js +2 -16
  22. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  23. package/cjs/components/FileUploader/FileUploader.js +3 -1
  24. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  25. package/cjs/components/Gapped/Gapped.js +2 -2
  26. package/cjs/components/Gapped/Gapped.js.map +1 -1
  27. package/cjs/components/GlobalLoader/GlobalLoader.js +3 -5
  28. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  29. package/cjs/components/Group/Group.js +74 -31
  30. package/cjs/components/Group/Group.js.map +1 -1
  31. package/cjs/components/Input/Input.js.map +1 -1
  32. package/cjs/components/Kebab/Kebab.d.ts +2 -13
  33. package/cjs/components/Kebab/Kebab.js +5 -29
  34. package/cjs/components/Kebab/Kebab.js.map +1 -1
  35. package/cjs/components/Modal/Modal.js +2 -1
  36. package/cjs/components/Modal/Modal.js.map +1 -1
  37. package/cjs/components/Modal/ModalFooter.js +1 -1
  38. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  39. package/cjs/components/Modal/ModalHeader.js +1 -1
  40. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  41. package/cjs/components/Paging/Paging.d.ts +1 -1
  42. package/cjs/components/Paging/Paging.js +3 -3
  43. package/cjs/components/Paging/Paging.js.map +1 -1
  44. package/cjs/components/PasswordInput/PasswordInput.js +2 -1
  45. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  46. package/cjs/components/Radio/Radio.styles.js +4 -7
  47. package/cjs/components/Radio/Radio.styles.js.map +1 -1
  48. package/cjs/components/RadioGroup/RadioGroup.js +1 -1
  49. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  50. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +1 -1
  51. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  52. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +3 -4
  53. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  54. package/cjs/components/Select/Select.js +30 -12
  55. package/cjs/components/Select/Select.js.map +1 -1
  56. package/cjs/components/SidePage/SidePage.js +2 -1
  57. package/cjs/components/SidePage/SidePage.js.map +1 -1
  58. package/cjs/components/Spinner/Spinner.d.ts +0 -1
  59. package/cjs/components/Spinner/Spinner.js +1 -5
  60. package/cjs/components/Spinner/Spinner.js.map +1 -1
  61. package/cjs/components/Spinner/SpinnerFallbackAnimation.js +16 -5
  62. package/cjs/components/Spinner/SpinnerFallbackAnimation.js.map +1 -1
  63. package/cjs/components/Textarea/Textarea.js.map +1 -1
  64. package/cjs/components/Textarea/TextareaCounter.d.ts +1 -2
  65. package/cjs/components/Textarea/TextareaCounter.js +5 -4
  66. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  67. package/cjs/components/Toggle/Toggle.d.ts +1 -1
  68. package/cjs/components/Toggle/Toggle.js.map +1 -1
  69. package/cjs/components/Token/Token.js +14 -2
  70. package/cjs/components/Token/Token.js.map +1 -1
  71. package/cjs/components/Token/Token.styles.js +13 -6
  72. package/cjs/components/Token/Token.styles.js.map +1 -1
  73. package/cjs/components/TokenInput/TokenInput.js +13 -10
  74. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  75. package/cjs/components/Tooltip/Tooltip.js +5 -2
  76. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  77. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  78. package/cjs/components/TooltipMenu/TooltipMenu.js +2 -0
  79. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  80. package/cjs/hooks/useDrop.js +3 -1
  81. package/cjs/hooks/useDrop.js.map +1 -1
  82. package/cjs/internal/Calendar/Calendar.js +3 -3
  83. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  84. package/cjs/internal/Calendar/CalendarDateShape.d.ts +1 -1
  85. package/cjs/internal/Calendar/MonthViewModel.js +36 -17
  86. package/cjs/internal/Calendar/MonthViewModel.js.map +1 -1
  87. package/cjs/internal/CommonWrapper/CommonWrapper.js +3 -3
  88. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  89. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +6 -1
  90. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  91. package/cjs/internal/CustomComboBox/CustomComboBox.js +3 -2
  92. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  93. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  94. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +35 -35
  95. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  96. package/cjs/internal/DateSelect/DateSelect.js +22 -11
  97. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  98. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +3 -1
  99. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  100. package/cjs/internal/InternalMenu/InternalMenu.js +4 -7
  101. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  102. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  103. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js +16 -0
  104. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  105. package/cjs/internal/MaskedInput/MaskedInput.js +7 -2
  106. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  107. package/cjs/internal/Menu/Menu.js +12 -13
  108. package/cjs/internal/Menu/Menu.js.map +1 -1
  109. package/cjs/internal/Popup/Popup.d.ts +1 -0
  110. package/cjs/internal/Popup/Popup.js +8 -9
  111. package/cjs/internal/Popup/Popup.js.map +1 -1
  112. package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -0
  113. package/cjs/internal/PopupMenu/PopupMenu.js +13 -0
  114. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  115. package/cjs/internal/PopupMenu/validatePositions.js +6 -6
  116. package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
  117. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +1 -1
  118. package/cjs/internal/RenderContainer/RenderInnerContainer.js +2 -1
  119. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  120. package/cjs/internal/RenderLayer/RenderLayer.js +4 -1
  121. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  122. package/cjs/internal/ThemePlayground/ThemeEditor.js +6 -1
  123. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  124. package/cjs/internal/ThemePlayground/VariableValue.js +18 -6
  125. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  126. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +4 -7
  127. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  128. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  129. package/cjs/internal/ThemeShowcase/VariablesCollector.js +5 -6
  130. package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
  131. package/cjs/internal/ZIndex/ZIndexStorage.d.ts +2 -1
  132. package/cjs/internal/ZIndex/ZIndexStorage.js +13 -6
  133. package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
  134. package/cjs/internal/icons/16px/index.d.ts +19 -19
  135. package/cjs/internal/icons/16px/index.js +37 -38
  136. package/cjs/internal/icons/16px/index.js.map +1 -1
  137. package/cjs/lib/animation/index.d.ts +1 -1
  138. package/cjs/lib/animation/index.js +3 -3
  139. package/cjs/lib/animation/index.js.map +1 -1
  140. package/cjs/lib/date/InternalDate.js +23 -9
  141. package/cjs/lib/date/InternalDate.js.map +1 -1
  142. package/cjs/lib/date/InternalDateCalculator.js +16 -2
  143. package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
  144. package/cjs/lib/date/InternalDateGetter.js +23 -6
  145. package/cjs/lib/date/InternalDateGetter.js.map +1 -1
  146. package/cjs/lib/date/InternalDateTransformer.js +11 -2
  147. package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
  148. package/cjs/lib/date/InternalDateValidator.js +31 -6
  149. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  150. package/cjs/lib/events/keyboard/extractCode.js +7 -5
  151. package/cjs/lib/events/keyboard/extractCode.js.map +1 -1
  152. package/cjs/lib/rootNode/getRootNode.d.ts +9 -0
  153. package/cjs/lib/rootNode/getRootNode.js +34 -6
  154. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  155. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +9 -1
  156. package/cjs/lib/rootNode/rootNodeDecorator.js +9 -1
  157. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  158. package/cjs/lib/stringUtils.js +3 -1
  159. package/cjs/lib/stringUtils.js.map +1 -1
  160. package/cjs/lib/styles/ColorFactory.js +9 -9
  161. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  162. package/cjs/lib/styles/ColorHelpers.d.ts +1 -0
  163. package/cjs/lib/styles/ColorHelpers.js +33 -10
  164. package/cjs/lib/styles/ColorHelpers.js.map +1 -1
  165. package/cjs/lib/styles/ColorObject.js +3 -2
  166. package/cjs/lib/styles/ColorObject.js.map +1 -1
  167. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  168. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js +9 -0
  169. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -0
  170. package/cjs/lib/taskWithDelayAndMinimalDuration.js +3 -1
  171. package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
  172. package/cjs/lib/theming/Emotion.js +5 -2
  173. package/cjs/lib/theming/Emotion.js.map +1 -1
  174. package/cjs/lib/theming/ThemeFactory.js +5 -1
  175. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  176. package/cjs/lib/theming/ThemeHelpers.js +7 -2
  177. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  178. package/cjs/lib/utils.d.ts +15 -0
  179. package/cjs/lib/utils.js +45 -9
  180. package/cjs/lib/utils.js.map +1 -1
  181. package/components/Autocomplete/Autocomplete/Autocomplete.js +6 -5
  182. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  183. package/components/Button/Button/Button.js +4 -10
  184. package/components/Button/Button/Button.js.map +1 -1
  185. package/components/Button/Button.d.ts +1 -5
  186. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +2 -1
  187. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  188. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +12 -11
  189. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
  190. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +15 -7
  191. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  192. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js +7 -1
  193. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js.map +1 -1
  194. package/components/CurrencyInput/CursorHelper/CursorHelper.js +18 -11
  195. package/components/CurrencyInput/CursorHelper/CursorHelper.js.map +1 -1
  196. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js +7 -7
  197. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js.map +1 -1
  198. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -16
  199. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  200. package/components/DropdownMenu/DropdownMenu.d.ts +1 -4
  201. package/components/FileUploader/FileUploader/FileUploader.js +4 -1
  202. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  203. package/components/Gapped/Gapped/Gapped.js +2 -2
  204. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  205. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +5 -7
  206. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  207. package/components/Group/Group/Group.js +62 -30
  208. package/components/Group/Group/Group.js.map +1 -1
  209. package/components/Input/Input/Input.js.map +1 -1
  210. package/components/Kebab/Kebab/Kebab.js +3 -13
  211. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  212. package/components/Kebab/Kebab.d.ts +2 -13
  213. package/components/Modal/Modal/Modal.js +2 -1
  214. package/components/Modal/Modal/Modal.js.map +1 -1
  215. package/components/Modal/ModalFooter/ModalFooter.js +1 -1
  216. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  217. package/components/Modal/ModalHeader/ModalHeader.js +1 -1
  218. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  219. package/components/Paging/Paging/Paging.js +6 -5
  220. package/components/Paging/Paging/Paging.js.map +1 -1
  221. package/components/Paging/Paging.d.ts +1 -1
  222. package/components/PasswordInput/PasswordInput/PasswordInput.js +2 -1
  223. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  224. package/components/Radio/Radio.styles/Radio.styles.js +2 -1
  225. package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
  226. package/components/RadioGroup/RadioGroup/RadioGroup.js +2 -2
  227. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  228. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +1 -1
  229. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  230. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +3 -3
  231. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  232. package/components/Select/Select/Select.js +26 -12
  233. package/components/Select/Select/Select.js.map +1 -1
  234. package/components/SidePage/SidePage/SidePage.js +2 -1
  235. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  236. package/components/Spinner/Spinner/Spinner.js +6 -2
  237. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  238. package/components/Spinner/Spinner.d.ts +0 -1
  239. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js +18 -4
  240. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js.map +1 -1
  241. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  242. package/components/Textarea/TextareaCounter/TextareaCounter.js +2 -1
  243. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  244. package/components/Textarea/TextareaCounter.d.ts +1 -2
  245. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  246. package/components/Toggle/Toggle.d.ts +1 -1
  247. package/components/Token/Token/Token.js +12 -1
  248. package/components/Token/Token/Token.js.map +1 -1
  249. package/components/Token/Token.styles/Token.styles.js +11 -4
  250. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  251. package/components/TokenInput/TokenInput/TokenInput.js +19 -14
  252. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  253. package/components/Tooltip/Tooltip/Tooltip.js +5 -2
  254. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  255. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +2 -0
  256. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  257. package/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  258. package/hooks/useDrop/useDrop.js +5 -1
  259. package/hooks/useDrop/useDrop.js.map +1 -1
  260. package/internal/Calendar/Calendar/Calendar.js +6 -4
  261. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  262. package/internal/Calendar/CalendarDateShape.d.ts +1 -1
  263. package/internal/Calendar/MonthViewModel/MonthViewModel.js +35 -18
  264. package/internal/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
  265. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -3
  266. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  267. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +23 -15
  268. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  269. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +18 -17
  270. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  271. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +35 -35
  272. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  273. package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  274. package/internal/DateSelect/DateSelect/DateSelect.js +21 -15
  275. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  276. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +5 -1
  277. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
  278. package/internal/InternalMenu/InternalMenu/InternalMenu.js +13 -16
  279. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  280. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js +14 -0
  281. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  282. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/package.json +6 -0
  283. package/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  284. package/internal/MaskedInput/MaskedInput/MaskedInput.js +8 -3
  285. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  286. package/internal/Menu/Menu/Menu.js +9 -14
  287. package/internal/Menu/Menu/Menu.js.map +1 -1
  288. package/internal/Popup/Popup/Popup.js +8 -7
  289. package/internal/Popup/Popup/Popup.js.map +1 -1
  290. package/internal/Popup/Popup.d.ts +1 -0
  291. package/internal/PopupMenu/PopupMenu/PopupMenu.js +8 -0
  292. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  293. package/internal/PopupMenu/PopupMenu.d.ts +4 -0
  294. package/internal/PopupMenu/validatePositions/validatePositions.js +6 -6
  295. package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
  296. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +5 -2
  297. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  298. package/internal/RenderContainer/RenderInnerContainer.d.ts +1 -1
  299. package/internal/RenderLayer/RenderLayer/RenderLayer.js +5 -1
  300. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  301. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js +5 -1
  302. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  303. package/internal/ThemePlayground/VariableValue/VariableValue.js +16 -5
  304. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  305. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +3 -6
  306. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  307. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +4 -6
  308. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
  309. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  310. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +12 -6
  311. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
  312. package/internal/ZIndex/ZIndexStorage.d.ts +2 -1
  313. package/internal/icons/16px/index/index.js +21 -20
  314. package/internal/icons/16px/index/index.js.map +1 -1
  315. package/internal/icons/16px/index.d.ts +19 -19
  316. package/lib/animation/index/index.js +1 -1
  317. package/lib/animation/index/index.js.map +1 -1
  318. package/lib/animation/index.d.ts +1 -1
  319. package/lib/date/InternalDate/InternalDate.js +16 -1
  320. package/lib/date/InternalDate/InternalDate.js.map +1 -1
  321. package/lib/date/InternalDateCalculator/InternalDateCalculator.js +14 -2
  322. package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
  323. package/lib/date/InternalDateGetter/InternalDateGetter.js +20 -6
  324. package/lib/date/InternalDateGetter/InternalDateGetter.js.map +1 -1
  325. package/lib/date/InternalDateTransformer/InternalDateTransformer.js +11 -1
  326. package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
  327. package/lib/date/InternalDateValidator/InternalDateValidator.js +31 -4
  328. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  329. package/lib/events/keyboard/extractCode/extractCode.js +5 -5
  330. package/lib/events/keyboard/extractCode/extractCode.js.map +1 -1
  331. package/lib/rootNode/getRootNode/getRootNode.js +35 -8
  332. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  333. package/lib/rootNode/getRootNode.d.ts +9 -0
  334. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +1 -1
  335. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  336. package/lib/rootNode/rootNodeDecorator.d.ts +9 -1
  337. package/lib/stringUtils/stringUtils.js +4 -1
  338. package/lib/stringUtils/stringUtils.js.map +1 -1
  339. package/lib/styles/ColorFactory/ColorFactory.js +9 -9
  340. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  341. package/lib/styles/ColorHelpers/ColorHelpers.js +26 -9
  342. package/lib/styles/ColorHelpers/ColorHelpers.js.map +1 -1
  343. package/lib/styles/ColorHelpers.d.ts +1 -0
  344. package/lib/styles/ColorObject/ColorObject.js +2 -2
  345. package/lib/styles/ColorObject/ColorObject.js.map +1 -1
  346. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js +9 -0
  347. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js.map +1 -0
  348. package/lib/styles/getLabGrotesqueBaselineCompensation/package.json +6 -0
  349. package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  350. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +4 -1
  351. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
  352. package/lib/theming/Emotion/Emotion.js +5 -2
  353. package/lib/theming/Emotion/Emotion.js.map +1 -1
  354. package/lib/theming/ThemeFactory/ThemeFactory.js +5 -2
  355. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  356. package/lib/theming/ThemeHelpers/ThemeHelpers.js +5 -1
  357. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  358. package/lib/utils/utils.js +42 -6
  359. package/lib/utils/utils.js.map +1 -1
  360. package/lib/utils.d.ts +15 -0
  361. package/package.json +4 -3
  362. package/cjs/components/Button/Corners.d.ts +0 -6
  363. package/cjs/components/Button/Corners.js +0 -5
  364. package/cjs/components/Button/Corners.js.map +0 -1
  365. package/components/Button/Corners/Corners.js +0 -6
  366. package/components/Button/Corners/Corners.js.map +0 -1
  367. package/components/Button/Corners/package.json +0 -6
  368. package/components/Button/Corners.d.ts +0 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["Paging.tsx"],"names":["React","func","number","isKeyArrowLeft","isKeyArrowRight","isKeyEnter","locale","keyListener","emptyHandler","isIE11","ThemeContext","ArrowChevronRightIcon","CommonWrapper","cx","rootNode","styles","NavigationHelper","getItems","PagingLocaleHelper","PagingDefaultComponent","IGNORE_EVENT_TAGS","Paging","state","focusedByTab","focusedItem","keyboardControl","props","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","activePage","renderPageLink","dots","theme","classes","forwardLink","forwardLinkFocused","Component","component","caption","forward","goForward","forwardIcon","pagingForwardIconSize","pageNumber","pageLink","pageLinkFocused","handleClick","goToPage","pageLinkWrapper","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","pageLinkHint","transparent","getKeyName","pageLinkHintPlaceHolder","handleMouseDown","setState","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","isTabPressed","handleBlur","pagesCount","concat","isItemFocusable","moveFocus","step","items","findIndex","x","length","onPageChange","addGlobalListener","document","addEventListener","removeGlobalListener","removeEventListener","refContainer","element","isForward","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","shouldBeVisibleWithLessThanTwoPages","renderMain","setRootNode","paging","undefined","map","PureComponent","__KONTUR_REACT_UI__","defaultProps","propTypes","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { func, number } from 'prop-types';\n\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport { Nullable } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { emptyHandler } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ArrowChevronRightIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport { PagingLocale, PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\ninterface ItemComponentProps {\n active: boolean;\n children?: React.ReactNode;\n className: string;\n onClick: () => void;\n pageNumber: number | 'forward';\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n activePage: number;\n /**\n * Компонент обертки по умолчанию\n * @default <span />\n */\n component: React.ComponentType<ItemComponentProps>;\n onPageChange: (pageNumber: number) => void;\n pagesCount: number;\n disabled?: boolean;\n /**\n * Отключает навигационные подсказки.\n * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры\n * (либо элемент в фокусе, либо globalListeners === true)\n */\n withoutNavigationHint?: boolean;\n caption?: string;\n /**\n * Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.\n * Если на странице используется несколько элементов\n * **Paging** с useGlobalListener === true, то обработчик keyDown будет вызываться\n * на каждом из них. Такие случаи лучше обрабатывать отдельно.\n */\n useGlobalListener: boolean;\n /**\n * Определяет, нужно ли показывать `Paging` когда страница всего одна.\n *\n * Этот проп будет удалён в 5-ой версии библиотеки,\n * так как поведение со скрытием `Paging`'а станет поведением по умолчанию.\n *\n * @default false\n */\n shouldBeVisibleWithLessThanTwoPages: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n\n public static defaultProps = {\n component: PagingDefaultComponent,\n shouldBeVisibleWithLessThanTwoPages: true,\n useGlobalListener: false,\n ['data-tid']: 'Paging__root',\n };\n\n public static propTypes = {};\n private setRootNode!: TSetRootNode;\n\n public static isForward(pageNumber: number | 'forward'): boolean /* %checks */ {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.props.useGlobalListener,\n };\n\n private theme!: Theme;\n private readonly locale!: PagingLocale;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const { useGlobalListener } = this.props;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n if (!prevProps.useGlobalListener && this.props.useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !this.props.useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== this.props.useGlobalListener) {\n this.setState({\n keyboardControl: this.props.useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2 && !this.props.shouldBeVisibleWithLessThanTwoPages) {\n return null;\n }\n\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 return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span\n tabIndex={0}\n data-tid={this.props['data-tid']}\n className={styles.paging(this.theme)}\n onKeyDown={this.props.useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map(this.renderItem)}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n return (\n <span data-tid=\"Paging__dots\" key={key} className={styles.dots(this.theme)}>\n {'...'}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.forwardLink(this.theme)]: true,\n [styles.forwardLinkFocused()]: focused,\n [styles.disabled(this.theme)]: disabled,\n });\n const { component: Component, caption } = this.props;\n const { forward } = this.locale;\n\n return (\n <Component\n key={'forward'}\n data-tid=\"Paging__forwardLink\"\n active={false}\n className={classes}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n >\n {caption || forward}\n <span className={styles.forwardIcon(this.theme)}>\n <ArrowChevronRightIcon size={this.theme.pagingForwardIconSize} />\n </span>\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.pageLink(this.theme)]: true,\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.active(this.theme)]: active,\n });\n const Component = this.props.component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid=\"Paging__pageLinkWrapper\"\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid=\"Paging__pageLink\"\n active={active}\n className={classes}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n if (keyboardControl && (canGoBackward || canGoForward)) {\n return (\n <span className={styles.pageLinkHint(this.theme)}>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </span>\n );\n }\n\n return <div className={styles.pageLinkHintPlaceHolder(this.theme)} />;\n };\n\n private handleMouseDown = () => {\n this.setState({ focusedByTab: false, focusedItem: null });\n };\n\n private handleMouseDownPageLink = () => {\n if (isIE11) {\n // Клик по span внутри контейнера с tabindex=\"0\" переносит фокус именно на этот span.\n // Поэтому горячие клавиши работают пока span существует на странице.\n setTimeout(() => this.container && this.container.focus(), 0);\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n if (e.shiftKey) {\n return;\n }\n\n const target = e.target;\n\n const isArrowLeft = isKeyArrowLeft(e);\n const isArrowRight = isKeyArrowRight(e);\n\n if (\n target instanceof Element &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.props.useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (1 <= pageNumber && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n document.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n document.removeEventListener('keydown', this.handleKeyDown);\n\n this.addedGlobalListener = false;\n }\n };\n\n private refContainer = (element: HTMLSpanElement | null) => {\n this.container = element;\n };\n}\n\nPaging.propTypes = {\n /**\n * Current active page\n */\n activePage: number.isRequired,\n\n /**\n * React component that would be used for rendering items\n *\n * Usefull for router integration\n */\n component: func,\n\n /**\n * Total page count\n */\n pagesCount: number.isRequired,\n\n /**\n * Calls when page has been changed\n */\n onPageChange: func.isRequired,\n};\n"]}
1
+ {"version":3,"sources":["Paging.tsx"],"names":["React","func","number","isKeyArrowLeft","isKeyArrowRight","isKeyEnter","locale","keyListener","emptyHandler","isIE11","ThemeContext","ArrowChevronRightIcon","CommonWrapper","cx","rootNode","styles","NavigationHelper","getItems","PagingLocaleHelper","PagingDefaultComponent","IGNORE_EVENT_TAGS","Paging","state","focusedByTab","focusedItem","keyboardControl","props","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","activePage","renderPageLink","dots","theme","classes","forwardLink","forwardLinkFocused","Component","component","caption","forward","goForward","forwardIcon","pagingForwardIconSize","pageNumber","pageLink","pageLinkFocused","handleClick","goToPage","pageLinkWrapper","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","pageLinkHint","transparent","getKeyName","pageLinkHintPlaceHolder","handleMouseDown","setState","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","isTabPressed","handleBlur","pagesCount","concat","isItemFocusable","moveFocus","step","items","findIndex","x","length","onPageChange","addGlobalListener","document","addEventListener","removeGlobalListener","removeEventListener","refContainer","element","isForward","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","shouldBeVisibleWithLessThanTwoPages","renderMain","setRootNode","paging","undefined","map","PureComponent","__KONTUR_REACT_UI__","defaultProps","propTypes","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { func, number } from 'prop-types';\n\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport { Nullable } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { emptyHandler } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ArrowChevronRightIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport { PagingLocale, PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\ninterface ItemComponentProps {\n active: boolean;\n children?: React.ReactNode;\n className: string;\n onClick: () => void;\n pageNumber: number | 'forward';\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n activePage: number;\n /**\n * Компонент обертки по умолчанию\n * @default <span />\n */\n component: React.ComponentType<ItemComponentProps>;\n onPageChange: (pageNumber: number) => void;\n pagesCount: number;\n disabled?: boolean;\n /**\n * Отключает навигационные подсказки.\n * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры\n * (либо элемент в фокусе, либо globalListeners === true)\n */\n withoutNavigationHint?: boolean;\n caption?: string;\n /**\n * Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.\n * Если на странице используется несколько элементов\n * **Paging** с useGlobalListener === true, то обработчик keyDown будет вызываться\n * на каждом из них. Такие случаи лучше обрабатывать отдельно.\n */\n useGlobalListener: boolean;\n /**\n * Определяет, нужно ли показывать `Paging` когда страница всего одна.\n *\n * Этот проп будет удалён в 5-ой версии библиотеки,\n * так как поведение со скрытием `Paging`'а станет поведением по умолчанию.\n *\n * @default false\n */\n shouldBeVisibleWithLessThanTwoPages: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n\n public static defaultProps = {\n component: PagingDefaultComponent,\n shouldBeVisibleWithLessThanTwoPages: true,\n useGlobalListener: false,\n 'data-tid': 'Paging__root',\n };\n\n public static propTypes = {};\n private setRootNode!: TSetRootNode;\n\n public static isForward(pageNumber: number | 'forward'): boolean /* %checks */ {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.props.useGlobalListener,\n };\n\n private theme!: Theme;\n private readonly locale!: PagingLocale;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const { useGlobalListener } = this.props;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n if (!prevProps.useGlobalListener && this.props.useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !this.props.useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== this.props.useGlobalListener) {\n this.setState({\n keyboardControl: this.props.useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2 && !this.props.shouldBeVisibleWithLessThanTwoPages) {\n return null;\n }\n\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 return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span\n tabIndex={0}\n data-tid={this.props['data-tid']}\n className={styles.paging(this.theme)}\n onKeyDown={this.props.useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map(this.renderItem)}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n return (\n <span data-tid=\"Paging__dots\" key={key} className={styles.dots(this.theme)}>\n {'...'}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.forwardLink(this.theme)]: true,\n [styles.forwardLinkFocused()]: focused,\n [styles.disabled(this.theme)]: disabled,\n });\n const { component: Component, caption } = this.props;\n const { forward } = this.locale;\n\n return (\n <Component\n key={'forward'}\n data-tid=\"Paging__forwardLink\"\n active={false}\n className={classes}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n >\n {caption || forward}\n <span className={styles.forwardIcon(this.theme)}>\n <ArrowChevronRightIcon size={this.theme.pagingForwardIconSize} />\n </span>\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.pageLink(this.theme)]: true,\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.active(this.theme)]: active,\n });\n const Component = this.props.component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid=\"Paging__pageLinkWrapper\"\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid=\"Paging__pageLink\"\n active={active}\n className={classes}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n if (keyboardControl && (canGoBackward || canGoForward)) {\n return (\n <span className={styles.pageLinkHint(this.theme)}>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </span>\n );\n }\n\n return <div className={styles.pageLinkHintPlaceHolder(this.theme)} />;\n };\n\n private handleMouseDown = () => {\n this.setState({ focusedByTab: false, focusedItem: null });\n };\n\n private handleMouseDownPageLink = () => {\n if (isIE11) {\n // Клик по span внутри контейнера с tabindex=\"0\" переносит фокус именно на этот span.\n // Поэтому горячие клавиши работают пока span существует на странице.\n setTimeout(() => this.container && this.container.focus(), 0);\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n if (e.shiftKey) {\n return;\n }\n\n const target = e.target;\n\n const isArrowLeft = isKeyArrowLeft(e);\n const isArrowRight = isKeyArrowRight(e);\n\n if (\n target instanceof Element &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.props.useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (pageNumber >= 1 && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n document.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n document.removeEventListener('keydown', this.handleKeyDown);\n\n this.addedGlobalListener = false;\n }\n };\n\n private refContainer = (element: HTMLSpanElement | null) => {\n this.container = element;\n };\n}\n\nPaging.propTypes = {\n /**\n * Current active page\n */\n activePage: number.isRequired,\n\n /**\n * React component that would be used for rendering items\n *\n * Usefull for router integration\n */\n component: func,\n\n /**\n * Total page count\n */\n pagesCount: number.isRequired,\n\n /**\n * Calls when page has been changed\n */\n onPageChange: func.isRequired,\n};\n"]}
@@ -55,7 +55,7 @@ export declare class Paging extends React.PureComponent<PagingProps, PagingState
55
55
  component: ({ onClick, className, children, ...rest }: import("./PagingDefaultComponent").PagingDefaultComponentProps) => JSX.Element;
56
56
  shouldBeVisibleWithLessThanTwoPages: boolean;
57
57
  useGlobalListener: boolean;
58
- "data-tid": string;
58
+ 'data-tid': string;
59
59
  };
60
60
  static propTypes: {};
61
61
  private setRootNode;
@@ -8,6 +8,7 @@ var _class, _class2, _temp;
8
8
 
9
9
  import React from 'react';
10
10
  import PropTypes from 'prop-types';
11
+ import { isNonNullable } from "../../../lib/utils";
11
12
  import { isKeyCapsLock } from "../../../lib/events/keyboard/identifiers";
12
13
  import { KeyboardEventCodes as Codes } from "../../../lib/events/keyboard/KeyboardEventCodes";
13
14
  import { Input } from "../../Input";
@@ -83,7 +84,7 @@ var PasswordInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
83
84
  return;
84
85
  }
85
86
 
86
- if (isKeyCapsLock(e) && capsLockEnabled != null) {
87
+ if (isKeyCapsLock(e) && isNonNullable(capsLockEnabled)) {
87
88
  _this.setState({
88
89
  capsLockEnabled: !capsLockEnabled
89
90
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["PasswordInput.tsx"],"names":["React","PropTypes","isKeyCapsLock","KeyboardEventCodes","Codes","Input","isIE11","CommonWrapper","ThemeContext","cx","rootNode","styles","PasswordInputIcon","PasswordInput","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","props","onKeyPress","detectCapsLock","getModifierState","CapsLock","setState","handleKeydown","onKeyDown","handleToggleVisibility","prevState","handleFocus","onBlur","renderEye","iconWrapper","capsLockDetector","toggleVisibility","theme","getEyeWrapperClassname","disabled","refInput","element","renderMain","rest","inputProps","rightIcon","root","componentDidMount","window","document","msCapsLockWarningOff","getDerivedStateFromProps","render","setRootNode","right","size","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isKeyCapsLock } from '../../lib/events/keyboard/identifiers';\nimport { KeyboardEventCodes as Codes } from '../../lib/events/keyboard/KeyboardEventCodes';\nimport { Input, InputProps } from '../Input';\nimport { Nullable } from '../../typings/utility-types';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './PasswordInput.styles';\nimport { PasswordInputIcon } from './PasswordInputIcon';\n\nexport interface PasswordInputProps extends CommonProps, InputProps {\n detectCapsLock?: boolean;\n}\n\nexport interface PasswordInputState {\n visible: boolean;\n capsLockEnabled?: boolean | null;\n}\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\nexport class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {\n public static __KONTUR_REACT_UI__ = 'PasswordInput';\n\n public static propTypes = {\n /**\n * Включает CapsLock детектор\n */\n detectCapsLock: PropTypes.bool,\n };\n\n public static defaultProps = {\n size: 'small',\n };\n\n public state: PasswordInputState = {\n visible: false,\n capsLockEnabled: false,\n };\n\n private theme!: Theme;\n\n private input: Nullable<Input>;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-ignore\n if (isIE11 && !window.document.msCapsLockWarningOff) {\n // turns off default ie capslock warning\n // @ts-ignore\n window.document.msCapsLockWarningOff = true;\n }\n }\n\n public static getDerivedStateFromProps(props: PasswordInputProps, state: PasswordInputState) {\n if (props.disabled) {\n return { visible: false };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\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 this.handleBlur();\n };\n\n private handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const { onKeyPress, detectCapsLock } = this.props;\n\n if (onKeyPress) {\n onKeyPress(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n const capsLockEnabled = e.getModifierState(Codes.CapsLock);\n\n this.setState({ capsLockEnabled });\n };\n\n private handleKeydown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const {\n props: { detectCapsLock, onKeyDown },\n state: { capsLockEnabled },\n } = this;\n\n if (onKeyDown) {\n onKeyDown(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n if (isKeyCapsLock(e) && capsLockEnabled != null) {\n this.setState({ capsLockEnabled: !capsLockEnabled });\n }\n };\n\n private handleToggleVisibility = () => {\n this.setState((prevState) => ({ visible: !prevState.visible }), this.handleFocus);\n };\n\n private handleFocus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n private handleBlur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private onBlur = (e: React.FocusEvent<HTMLInputElement, Element>) => {\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n\n this.setState({ visible: false });\n };\n\n private getEyeWrapperClassname(right = false) {\n switch (this.props.size) {\n case 'large':\n return styles.eyeWrapperLarge(this.theme);\n case 'medium':\n return styles.eyeWrapperMedium(this.theme);\n case 'small':\n default:\n return styles.eyeWrapperSmall(this.theme);\n }\n }\n\n private renderEye = () => {\n const { capsLockEnabled } = this.state;\n\n return (\n <span className={styles.iconWrapper()}>\n {capsLockEnabled && <span className={styles.capsLockDetector()} data-tid=\"PasswordInputCapsLockDetector\" />}\n <span\n data-tid=\"PasswordInputEyeIcon\"\n className={cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}\n onClick={this.handleToggleVisibility}\n >\n {!this.props.disabled && <PasswordInputIcon visible={this.state.visible} />}\n </span>\n </span>\n );\n };\n\n private refInput = (element: Input) => {\n this.input = element;\n };\n\n private renderMain = (props: CommonWrapperRestProps<PasswordInputProps>) => {\n const { detectCapsLock, ...rest } = props;\n const inputProps = {\n ...rest,\n onBlur: this.onBlur,\n onKeyDown: this.handleKeydown,\n onKeyPress: this.handleKeyPress,\n rightIcon: this.renderEye(),\n };\n\n return (\n <div className={styles.root()}>\n <Input ref={this.refInput} type={this.state.visible ? 'text' : 'password'} {...inputProps} />\n </div>\n );\n };\n}\n"]}
1
+ {"version":3,"sources":["PasswordInput.tsx"],"names":["React","PropTypes","isNonNullable","isKeyCapsLock","KeyboardEventCodes","Codes","Input","isIE11","CommonWrapper","ThemeContext","cx","rootNode","styles","PasswordInputIcon","PasswordInput","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","props","onKeyPress","detectCapsLock","getModifierState","CapsLock","setState","handleKeydown","onKeyDown","handleToggleVisibility","prevState","handleFocus","onBlur","renderEye","iconWrapper","capsLockDetector","toggleVisibility","theme","getEyeWrapperClassname","disabled","refInput","element","renderMain","rest","inputProps","rightIcon","root","componentDidMount","window","document","msCapsLockWarningOff","getDerivedStateFromProps","render","setRootNode","right","size","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyCapsLock } from '../../lib/events/keyboard/identifiers';\nimport { KeyboardEventCodes as Codes } from '../../lib/events/keyboard/KeyboardEventCodes';\nimport { Input, InputProps } from '../Input';\nimport { Nullable } from '../../typings/utility-types';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './PasswordInput.styles';\nimport { PasswordInputIcon } from './PasswordInputIcon';\n\nexport interface PasswordInputProps extends CommonProps, InputProps {\n detectCapsLock?: boolean;\n}\n\nexport interface PasswordInputState {\n visible: boolean;\n capsLockEnabled?: boolean | null;\n}\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\nexport class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {\n public static __KONTUR_REACT_UI__ = 'PasswordInput';\n\n public static propTypes = {\n /**\n * Включает CapsLock детектор\n */\n detectCapsLock: PropTypes.bool,\n };\n\n public static defaultProps = {\n size: 'small',\n };\n\n public state: PasswordInputState = {\n visible: false,\n capsLockEnabled: false,\n };\n\n private theme!: Theme;\n\n private input: Nullable<Input>;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-ignore\n if (isIE11 && !window.document.msCapsLockWarningOff) {\n // turns off default ie capslock warning\n // @ts-ignore\n window.document.msCapsLockWarningOff = true;\n }\n }\n\n public static getDerivedStateFromProps(props: PasswordInputProps, state: PasswordInputState) {\n if (props.disabled) {\n return { visible: false };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\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 this.handleBlur();\n };\n\n private handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const { onKeyPress, detectCapsLock } = this.props;\n\n if (onKeyPress) {\n onKeyPress(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n const capsLockEnabled = e.getModifierState(Codes.CapsLock);\n\n this.setState({ capsLockEnabled });\n };\n\n private handleKeydown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const {\n props: { detectCapsLock, onKeyDown },\n state: { capsLockEnabled },\n } = this;\n\n if (onKeyDown) {\n onKeyDown(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n if (isKeyCapsLock(e) && isNonNullable(capsLockEnabled)) {\n this.setState({ capsLockEnabled: !capsLockEnabled });\n }\n };\n\n private handleToggleVisibility = () => {\n this.setState((prevState) => ({ visible: !prevState.visible }), this.handleFocus);\n };\n\n private handleFocus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n private handleBlur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private onBlur = (e: React.FocusEvent<HTMLInputElement, Element>) => {\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n\n this.setState({ visible: false });\n };\n\n private getEyeWrapperClassname(right = false) {\n switch (this.props.size) {\n case 'large':\n return styles.eyeWrapperLarge(this.theme);\n case 'medium':\n return styles.eyeWrapperMedium(this.theme);\n case 'small':\n default:\n return styles.eyeWrapperSmall(this.theme);\n }\n }\n\n private renderEye = () => {\n const { capsLockEnabled } = this.state;\n\n return (\n <span className={styles.iconWrapper()}>\n {capsLockEnabled && <span className={styles.capsLockDetector()} data-tid=\"PasswordInputCapsLockDetector\" />}\n <span\n data-tid=\"PasswordInputEyeIcon\"\n className={cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}\n onClick={this.handleToggleVisibility}\n >\n {!this.props.disabled && <PasswordInputIcon visible={this.state.visible} />}\n </span>\n </span>\n );\n };\n\n private refInput = (element: Input) => {\n this.input = element;\n };\n\n private renderMain = (props: CommonWrapperRestProps<PasswordInputProps>) => {\n const { detectCapsLock, ...rest } = props;\n const inputProps = {\n ...rest,\n onBlur: this.onBlur,\n onKeyDown: this.handleKeydown,\n onKeyPress: this.handleKeyPress,\n rightIcon: this.renderEye(),\n };\n\n return (\n <div className={styles.root()}>\n <Input ref={this.refInput} type={this.state.visible ? 'text' : 'password'} {...inputProps} />\n </div>\n );\n };\n}\n"]}
@@ -2,6 +2,7 @@ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTempla
2
2
 
3
3
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16;
4
4
 
5
+ import { getLabGrotesqueBaselineCompensation } from "../../../lib/styles/getLabGrotesqueBaselineCompensation";
5
6
  import { css, memoizeStyle, prefix } from "../../../lib/theming/Emotion";
6
7
  import { isChrome } from "../../../lib/client";
7
8
  export var globalClasses = prefix('radio')({
@@ -25,7 +26,7 @@ export var styles = memoizeStyle({
25
26
  circle: function circle(t) {
26
27
  var labGrotesqueCompenstation = parseInt(t.labGrotesqueBaselineCompensation);
27
28
  var fontSize = parseInt(t.checkboxFontSize);
28
- var baselineCompensation = fontSize < 16 && !isChrome ? labGrotesqueCompenstation : fontSize === 16 && isChrome ? -labGrotesqueCompenstation : 0;
29
+ var baselineCompensation = getLabGrotesqueBaselineCompensation(fontSize, labGrotesqueCompenstation, isChrome);
29
30
  var circleSize = "calc(" + t.radioSize + " - 2 * " + t.radioBorderWidthCompensation + ")";
30
31
  var circleOffsetY = "calc(" + t.radioCircleOffsetY + " + " + t.radioBorderWidthCompensation + " + " + baselineCompensation + "px)";
31
32
  var circleMarginX = t.radioBorderWidthCompensation;
@@ -1 +1 @@
1
- {"version":3,"sources":["Radio.styles.ts"],"names":["css","memoizeStyle","prefix","isChrome","globalClasses","circle","mixins","afterOutline","t","radioOutlineWidth","radioSizeAfter","styles","root","radioPaddingY","radioLineHeight","radioFontSize","radioHoverBg","radioHoverShadow","radioActiveBg","radioActiveShadow","radioSize","rootIE11","rootChecked","radioCheckedHoverBgColor","labGrotesqueCompenstation","parseInt","labGrotesqueBaselineCompensation","fontSize","checkboxFontSize","baselineCompensation","circleSize","radioBorderWidthCompensation","circleOffsetY","radioCircleOffsetY","circleMarginX","radioBgImage","radioBorder","radioBoxShadow","radioBgColor","focus","radioFocusShadow","radioBorderColorFocus","warning","radioBorderColorWarning","error","radioBorderColorError","checked","radioCheckedBgColor","radioCheckedBorderColor","radioBulletSize","radioCheckedBulletColor","checkedDisabled","gray","input","disabled","radioDisabledBg","radioDisabledShadow","caption","radioCaptionDisplay","radioCaptionGap","radioTextColor","captionIE11","captionDisabled","textColorDisabled","placeholder"],"mappings":"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","sourcesContent":["import { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isChrome } from '../../lib/client';\n\nexport const globalClasses = prefix('radio')({\n circle: 'circle',\n});\n\nconst mixins = {\n afterOutline(t: Theme) {\n return css`\n content: ' ';\n position: absolute;\n left: -${t.radioOutlineWidth};\n top: -${t.radioOutlineWidth};\n width: ${t.radioSizeAfter};\n height: ${t.radioSizeAfter};\n border-width: ${t.radioOutlineWidth};\n border-style: solid;\n border-radius: 50%;\n box-sizing: border-box;\n `;\n },\n};\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n cursor: pointer;\n position: relative;\n white-space: nowrap;\n padding-top: ${t.radioPaddingY};\n padding-bottom: ${t.radioPaddingY};\n display: inline-flex;\n align-items: baseline;\n line-height: ${t.radioLineHeight};\n font-size: ${t.radioFontSize};\n\n &:hover .${globalClasses.circle} {\n background: ${t.radioHoverBg};\n box-shadow: ${t.radioHoverShadow};\n }\n &:active .${globalClasses.circle} {\n background: ${t.radioActiveBg};\n box-shadow: ${t.radioActiveShadow};\n }\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned circle,\n // and also height and baseline for radio without caption.\n content: '\\\\00A0';\n display: inline-block;\n width: ${t.radioSize};\n flex: 0 0 auto;\n }\n `;\n },\n\n rootIE11() {\n return css`\n display: inline-table;\n `;\n },\n\n rootChecked(t: Theme) {\n return css`\n &:hover .${globalClasses.circle} {\n background: ${t.radioCheckedHoverBgColor};\n }\n `;\n },\n\n circle(t: Theme) {\n const labGrotesqueCompenstation = parseInt(t.labGrotesqueBaselineCompensation);\n const fontSize = parseInt(t.checkboxFontSize);\n const baselineCompensation =\n fontSize < 16 && !isChrome\n ? labGrotesqueCompenstation\n : fontSize === 16 && isChrome\n ? -labGrotesqueCompenstation\n : 0;\n const circleSize = `calc(${t.radioSize} - 2 * ${t.radioBorderWidthCompensation})`;\n const circleOffsetY = `calc(${t.radioCircleOffsetY} + ${t.radioBorderWidthCompensation} + ${baselineCompensation}px)`;\n const circleMarginX = t.radioBorderWidthCompensation;\n return css`\n background-image: ${t.radioBgImage};\n border-radius: 50%;\n border: ${t.radioBorder};\n box-shadow: ${t.radioBoxShadow};\n box-sizing: border-box;\n display: inline-block;\n height: ${circleSize};\n width: ${circleSize};\n position: absolute;\n left: 0;\n margin: ${circleOffsetY} ${circleMarginX} 0;\n background-color: ${t.radioBgColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorFocus};\n }\n `;\n },\n\n warning(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorWarning};\n }\n `;\n },\n\n error(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorError};\n }\n `;\n },\n\n checked(t: Theme) {\n return css`\n background-color: ${t.radioCheckedBgColor};\n border-color: ${t.radioCheckedBorderColor};\n\n &::before {\n content: ' ';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: auto;\n height: ${t.radioBulletSize};\n width: ${t.radioBulletSize};\n border-radius: 50%;\n background: ${t.radioCheckedBulletColor};\n }\n `;\n },\n\n checkedDisabled(t: Theme) {\n return css`\n &::before {\n background: ${t.gray};\n }\n `;\n },\n\n input() {\n return css`\n display: inline-block;\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n z-index: -1;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n background: ${t.radioDisabledBg} !important; // override root hover/active styles\n border-color: transparent !important; // override root hover/active styles\n box-shadow: ${t.radioDisabledShadow} !important; // override root hover/active styles\n `;\n },\n\n caption(t: Theme) {\n return css`\n display: ${t.radioCaptionDisplay};\n padding-left: ${t.radioCaptionGap};\n white-space: normal;\n color: ${t.radioTextColor};\n `;\n },\n\n captionIE11() {\n return css`\n display: table-cell;\n `;\n },\n\n captionDisabled(t: Theme) {\n return css`\n color: ${t.textColorDisabled};\n `;\n },\n\n placeholder() {\n return css`\n display: inline-block;\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Radio.styles.ts"],"names":["getLabGrotesqueBaselineCompensation","css","memoizeStyle","prefix","isChrome","globalClasses","circle","mixins","afterOutline","t","radioOutlineWidth","radioSizeAfter","styles","root","radioPaddingY","radioLineHeight","radioFontSize","radioHoverBg","radioHoverShadow","radioActiveBg","radioActiveShadow","radioSize","rootIE11","rootChecked","radioCheckedHoverBgColor","labGrotesqueCompenstation","parseInt","labGrotesqueBaselineCompensation","fontSize","checkboxFontSize","baselineCompensation","circleSize","radioBorderWidthCompensation","circleOffsetY","radioCircleOffsetY","circleMarginX","radioBgImage","radioBorder","radioBoxShadow","radioBgColor","focus","radioFocusShadow","radioBorderColorFocus","warning","radioBorderColorWarning","error","radioBorderColorError","checked","radioCheckedBgColor","radioCheckedBorderColor","radioBulletSize","radioCheckedBulletColor","checkedDisabled","gray","input","disabled","radioDisabledBg","radioDisabledShadow","caption","radioCaptionDisplay","radioCaptionGap","radioTextColor","captionIE11","captionDisabled","textColorDisabled","placeholder"],"mappings":"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","sourcesContent":["import { getLabGrotesqueBaselineCompensation } from '../../lib/styles/getLabGrotesqueBaselineCompensation';\nimport { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isChrome } from '../../lib/client';\n\nexport const globalClasses = prefix('radio')({\n circle: 'circle',\n});\n\nconst mixins = {\n afterOutline(t: Theme) {\n return css`\n content: ' ';\n position: absolute;\n left: -${t.radioOutlineWidth};\n top: -${t.radioOutlineWidth};\n width: ${t.radioSizeAfter};\n height: ${t.radioSizeAfter};\n border-width: ${t.radioOutlineWidth};\n border-style: solid;\n border-radius: 50%;\n box-sizing: border-box;\n `;\n },\n};\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n cursor: pointer;\n position: relative;\n white-space: nowrap;\n padding-top: ${t.radioPaddingY};\n padding-bottom: ${t.radioPaddingY};\n display: inline-flex;\n align-items: baseline;\n line-height: ${t.radioLineHeight};\n font-size: ${t.radioFontSize};\n\n &:hover .${globalClasses.circle} {\n background: ${t.radioHoverBg};\n box-shadow: ${t.radioHoverShadow};\n }\n &:active .${globalClasses.circle} {\n background: ${t.radioActiveBg};\n box-shadow: ${t.radioActiveShadow};\n }\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned circle,\n // and also height and baseline for radio without caption.\n content: '\\\\00A0';\n display: inline-block;\n width: ${t.radioSize};\n flex: 0 0 auto;\n }\n `;\n },\n\n rootIE11() {\n return css`\n display: inline-table;\n `;\n },\n\n rootChecked(t: Theme) {\n return css`\n &:hover .${globalClasses.circle} {\n background: ${t.radioCheckedHoverBgColor};\n }\n `;\n },\n\n circle(t: Theme) {\n const labGrotesqueCompenstation = parseInt(t.labGrotesqueBaselineCompensation);\n const fontSize = parseInt(t.checkboxFontSize);\n\n const baselineCompensation = getLabGrotesqueBaselineCompensation(fontSize, labGrotesqueCompenstation, isChrome);\n const circleSize = `calc(${t.radioSize} - 2 * ${t.radioBorderWidthCompensation})`;\n const circleOffsetY = `calc(${t.radioCircleOffsetY} + ${t.radioBorderWidthCompensation} + ${baselineCompensation}px)`;\n const circleMarginX = t.radioBorderWidthCompensation;\n return css`\n background-image: ${t.radioBgImage};\n border-radius: 50%;\n border: ${t.radioBorder};\n box-shadow: ${t.radioBoxShadow};\n box-sizing: border-box;\n display: inline-block;\n height: ${circleSize};\n width: ${circleSize};\n position: absolute;\n left: 0;\n margin: ${circleOffsetY} ${circleMarginX} 0;\n background-color: ${t.radioBgColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorFocus};\n }\n `;\n },\n\n warning(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorWarning};\n }\n `;\n },\n\n error(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorError};\n }\n `;\n },\n\n checked(t: Theme) {\n return css`\n background-color: ${t.radioCheckedBgColor};\n border-color: ${t.radioCheckedBorderColor};\n\n &::before {\n content: ' ';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: auto;\n height: ${t.radioBulletSize};\n width: ${t.radioBulletSize};\n border-radius: 50%;\n background: ${t.radioCheckedBulletColor};\n }\n `;\n },\n\n checkedDisabled(t: Theme) {\n return css`\n &::before {\n background: ${t.gray};\n }\n `;\n },\n\n input() {\n return css`\n display: inline-block;\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n z-index: -1;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n background: ${t.radioDisabledBg} !important; // override root hover/active styles\n border-color: transparent !important; // override root hover/active styles\n box-shadow: ${t.radioDisabledShadow} !important; // override root hover/active styles\n `;\n },\n\n caption(t: Theme) {\n return css`\n display: ${t.radioCaptionDisplay};\n padding-left: ${t.radioCaptionGap};\n white-space: normal;\n color: ${t.radioTextColor};\n `;\n },\n\n captionIE11() {\n return css`\n display: table-cell;\n `;\n },\n\n captionDisabled(t: Theme) {\n return css`\n color: ${t.textColorDisabled};\n `;\n },\n\n placeholder() {\n return css`\n display: inline-block;\n `;\n },\n});\n"]}
@@ -46,7 +46,7 @@ function _arrayLikeToArray(arr, len) {
46
46
  import React from 'react';
47
47
  import PropTypes from 'prop-types';
48
48
  import invariant from 'invariant';
49
- import { getRandomID } from "../../../lib/utils";
49
+ import { getRandomID, isNonNullable } from "../../../lib/utils";
50
50
  import { Radio } from "../../Radio";
51
51
  import { createPropsGetter } from "../../../lib/createPropsGetter";
52
52
  import { FocusTrap } from "../../../internal/FocusTrap";
@@ -97,7 +97,7 @@ var RadioGroup = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Re
97
97
  };
98
98
 
99
99
  _this.isControlled = function () {
100
- return _this.props.value != null;
100
+ return isNonNullable(_this.props.value);
101
101
  };
102
102
 
103
103
  _this.handleSelect = function (value) {
@@ -1 +1 @@
1
- {"version":3,"sources":["RadioGroup.tsx"],"names":["React","PropTypes","invariant","getRandomID","Radio","createPropsGetter","FocusTrap","ThemeContext","CommonWrapper","cx","rootNode","styles","Prevent","RadioGroupContext","RadioGroup","props","name","getProps","defaultProps","getRadioGroupContextValue","activeItem","getValue","onSelect","handleSelect","getName","disabled","error","warning","isControlled","value","state","setState","onValueChange","renderRadio","itemValue","data","index","itemProps","key","className","item","theme","itemFirst","itemInline","inline","renderItem","ref","element","node","defaultValue","render","renderMain","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","style","handlers","setRootNode","root","renderChildren","focus","radio","querySelector","items","children","mapItems","Component","__KONTUR_REACT_UI__","propTypes","bool","string","oneOfType","number","func","_value","fn","result","entry","normalizeEntry","push","Array","isArray"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport { getRandomID } from '../../lib/utils';\nimport { Radio } from '../Radio';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { FocusTrap } from '../../internal/FocusTrap';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './RadioGroup.styles';\nimport { Prevent } from './Prevent';\nimport { RadioGroupContext, RadioGroupContextType } from './RadioGroupContext';\n\nexport interface RadioGroupProps<T = string | number> extends CommonProps {\n /**\n * Значение по умолчанию. Должно быть одним из значений дочерних радиокнопок\n * или значений из параметра `items`\n */\n defaultValue?: T;\n /**\n * Значение радиогруппы. Должно быть одним из значений радиокнопок.\n * Если не указано, то компонент будет работать, как неконтролируемый\n */\n value?: T;\n /**\n * Может быть использовано, если не передан параметр `children`\n *\n * Массив параметров радиокнопок. Может быть типа `Array<Value>` или\n * `Array<[Value, Data]>`, где тип `Value` — значение радиокнопки, а `Data`\n * — значение которое будет использовано вторым параметром в `renderItem`.\n * Если тип `items: Array<Value>`, то он будет приведен к типу\n * `Array<[Value, Value]>`\n */\n items?: T[] | Array<[T, React.ReactNode]>;\n /**\n * Аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется\n * случайное имя\n */\n name?: string;\n /**\n * Дизейблит все радиокнопки\n */\n disabled?: boolean;\n /**\n * Переводит все радиокнопки в состояние валидации: предупреждение.\n */\n warning?: boolean;\n /**\n * Переводит все радиокнопки в состояние валидации: ошибка.\n */\n error?: boolean;\n /**\n * Выравнивает элементы в строку. Не работает с `children`\n */\n inline?: boolean;\n /**\n * Ширина радиогруппы. Не работает с `children`\n */\n width?: React.CSSProperties['width'];\n /**\n * Метод отрисовки контента радиокнопки. Не работает с `children`.\n *\n * Принимает два аргумента: `(value: Value, data: Data) => React.Node`\n */\n renderItem?: (itemValue: T, data: React.ReactNode) => React.ReactNode;\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n onBlur?: (event: FocusEvent) => void;\n onMouseLeave?: () => any;\n onMouseOver?: () => any;\n onMouseEnter?: () => any;\n}\n\nexport interface RadioGroupState<T> {\n activeItem?: T;\n}\n\n/**\n *\n * `children` может содержать любую разметку с компонентами Radio,\n * если не передан параметр `items`.\n * Каждому компоненту Radio нужно указать параметр `value`, такого же типа\n * как и параметр `value` самой радиогруппы.\n *\n * Значения активного элемента сравниваются по строгому равенству `===`\n */\n@rootNode\nexport class RadioGroup<T> extends React.Component<RadioGroupProps<T>, RadioGroupState<T>> {\n public static __KONTUR_REACT_UI__ = 'RadioGroup';\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n inline: PropTypes.bool,\n name: PropTypes.string,\n warning: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public static defaultProps = {\n renderItem,\n };\n\n public static Prevent = Prevent;\n\n private theme!: Theme;\n\n private node: Nullable<HTMLSpanElement>;\n private name = getRandomID();\n private getProps = createPropsGetter(RadioGroup.defaultProps);\n private setRootNode!: TSetRootNode;\n\n constructor(props: RadioGroupProps<T>) {\n super(props);\n\n this.state = {\n activeItem: this.props.defaultValue,\n };\n }\n\n private getRadioGroupContextValue = (): RadioGroupContextType<T> => {\n return {\n activeItem: this.getValue(),\n onSelect: this.handleSelect,\n name: this.getName(),\n disabled: this.props.disabled,\n error: this.props.error,\n warning: this.props.warning,\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 public renderMain() {\n const { width, onMouseLeave, onMouseOver, onMouseEnter, onBlur } = this.props;\n const style = {\n width: width != null ? width : 'auto',\n };\n const handlers = {\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n };\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <FocusTrap onBlur={onBlur}>\n <span ref={this.ref} style={style} className={styles.root()} {...handlers}>\n <RadioGroupContext.Provider value={this.getRadioGroupContextValue()}>\n {this.renderChildren()}\n </RadioGroupContext.Provider>\n </span>\n </FocusTrap>\n </CommonWrapper>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n const node = this.node;\n if (!node) {\n return;\n }\n\n let radio = node.querySelector('input[type=\"radio\"]:checked') as Nullable<HTMLInputElement>;\n\n // If no checked radios, try get first radio\n if (!radio || radio.disabled) {\n radio = node.querySelector('input[type=\"radio\"]:not([disabled])') as Nullable<HTMLInputElement>;\n }\n\n if (radio) {\n radio.focus();\n }\n }\n\n private getValue = () => (this.isControlled() ? this.props.value : this.state.activeItem);\n\n private getName = () => this.props.name || this.name;\n\n private isControlled = () => this.props.value != null;\n\n private handleSelect = (value: T) => {\n if (!this.isControlled()) {\n this.setState({ activeItem: value });\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private renderChildren() {\n const { items, children } = this.props;\n invariant((!items && children) || (items && !children), 'Either items or children must be passed, not both');\n return items ? mapItems<T>(this.renderRadio, items) : children;\n }\n\n private renderRadio = (itemValue: T, data: React.ReactNode, index: number): JSX.Element => {\n const itemProps = {\n key: typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : index,\n className: cx({\n [styles.item(this.theme)]: true,\n [styles.itemFirst()]: index === 0,\n [styles.itemInline()]: !!this.props.inline,\n }),\n };\n\n return (\n <span {...itemProps}>\n <Radio value={itemValue}>{this.getProps().renderItem<T>(itemValue, data)}</Radio>\n </span>\n );\n };\n\n private ref = (element: HTMLSpanElement) => {\n this.node = element;\n };\n}\n\nfunction renderItem<T>(_value: T, data: React.ReactNode) {\n return data;\n}\n\nfunction mapItems<T>(\n fn: (value: T, data: React.ReactNode, index: number) => React.ReactNode,\n items: T[] | Array<[T, React.ReactNode]>,\n) {\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, data] = normalizeEntry<T>(entry);\n result.push(fn(value, data, index));\n ++index;\n }\n return result;\n}\n\nfunction normalizeEntry<T>(entry: T | [T, React.ReactNode]): [T, React.ReactNode] {\n if (!Array.isArray(entry)) {\n return [entry, entry];\n }\n return entry;\n}\n"]}
1
+ {"version":3,"sources":["RadioGroup.tsx"],"names":["React","PropTypes","invariant","getRandomID","isNonNullable","Radio","createPropsGetter","FocusTrap","ThemeContext","CommonWrapper","cx","rootNode","styles","Prevent","RadioGroupContext","RadioGroup","props","name","getProps","defaultProps","getRadioGroupContextValue","activeItem","getValue","onSelect","handleSelect","getName","disabled","error","warning","isControlled","value","state","setState","onValueChange","renderRadio","itemValue","data","index","itemProps","key","className","item","theme","itemFirst","itemInline","inline","renderItem","ref","element","node","defaultValue","render","renderMain","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","style","handlers","setRootNode","root","renderChildren","focus","radio","querySelector","items","children","mapItems","Component","__KONTUR_REACT_UI__","propTypes","bool","string","oneOfType","number","func","_value","fn","result","entry","normalizeEntry","push","Array","isArray"],"mappings":"qzCAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,SAAP,MAAsB,WAAtB;;AAEA,SAASC,WAAT,EAAsBC,aAAtB,QAA2C,iBAA3C;AACA,SAASC,KAAT,QAAsB,UAAtB;AACA,SAASC,iBAAT,QAAkC,6BAAlC;;AAEA,SAASC,SAAT,QAA0B,0BAA1B;AACA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAAsBC,aAAtB,QAA2C,8BAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,QAAT,QAAuC,oBAAvC;;AAEA,SAASC,MAAT,QAAuB,qBAAvB;AACA,SAASC,OAAT,QAAwB,WAAxB;AACA,SAASC,iBAAT,QAAyD,qBAAzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4EA,OAVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAEA,IAAaC,UAAb,GADCJ,QACD;;;;;;;;;;;;;;;;;;;;;;AA8BE,sBAAYK,KAAZ,EAAuC;AACrC,wCAAMA,KAAN,UADqC,MAJ/BC,IAI+B,GAJxBd,WAAW,EAIa,OAH/Be,QAG+B,GAHpBZ,iBAAiB,CAACS,UAAU,CAACI,YAAZ,CAGG;;;;;;;AAQ/BC,IAAAA,yBAR+B,GAQH,YAAgC;AAClE,aAAO;AACLC,QAAAA,UAAU,EAAE,MAAKC,QAAL,EADP;AAELC,QAAAA,QAAQ,EAAE,MAAKC,YAFV;AAGLP,QAAAA,IAAI,EAAE,MAAKQ,OAAL,EAHD;AAILC,QAAAA,QAAQ,EAAE,MAAKV,KAAL,CAAWU,QAJhB;AAKLC,QAAAA,KAAK,EAAE,MAAKX,KAAL,CAAWW,KALb;AAMLC,QAAAA,OAAO,EAAE,MAAKZ,KAAL,CAAWY,OANf,EAAP;;AAQD,KAjBsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2E/BN,IAAAA,QA3E+B,GA2EpB,oBAAO,MAAKO,YAAL,KAAsB,MAAKb,KAAL,CAAWc,KAAjC,GAAyC,MAAKC,KAAL,CAAWV,UAA3D,EA3EoB;;AA6E/BI,IAAAA,OA7E+B,GA6ErB,oBAAM,MAAKT,KAAL,CAAWC,IAAX,IAAmB,MAAKA,IAA9B,EA7EqB;;AA+E/BY,IAAAA,YA/E+B,GA+EhB,oBAAMzB,aAAa,CAAC,MAAKY,KAAL,CAAWc,KAAZ,CAAnB,EA/EgB;;AAiF/BN,IAAAA,YAjF+B,GAiFhB,UAACM,KAAD,EAAc;AACnC,UAAI,CAAC,MAAKD,YAAL,EAAL,EAA0B;AACxB,cAAKG,QAAL,CAAc,EAAEX,UAAU,EAAES,KAAd,EAAd;AACD;AACD,UAAI,MAAKd,KAAL,CAAWiB,aAAf,EAA8B;AAC5B,cAAKjB,KAAL,CAAWiB,aAAX,CAAyBH,KAAzB;AACD;AACF,KAxFsC;;;;;;;;AAgG/BI,IAAAA,WAhG+B,GAgGjB,UAACC,SAAD,EAAeC,IAAf,EAAsCC,KAAtC,EAAqE;AACzF,UAAMC,SAAS,GAAG;AAChBC,QAAAA,GAAG,EAAE,OAAOJ,SAAP,KAAqB,QAArB,IAAiC,OAAOA,SAAP,KAAqB,QAAtD,GAAiEA,SAAjE,GAA6EE,KADlE;AAEhBG,QAAAA,SAAS,EAAE9B,EAAE;AACVE,QAAAA,MAAM,CAAC6B,IAAP,CAAY,MAAKC,KAAjB,CADU,IACgB,IADhB;AAEV9B,QAAAA,MAAM,CAAC+B,SAAP,EAFU,IAEWN,KAAK,KAAK,CAFrB;AAGVzB,QAAAA,MAAM,CAACgC,UAAP,EAHU,IAGY,CAAC,CAAC,MAAK5B,KAAL,CAAW6B,MAHzB,OAFG,EAAlB;;;;AASA;AACE,oCAAUP,SAAV;AACE,4BAAC,KAAD,IAAO,KAAK,EAAEH,SAAd,IAA0B,MAAKjB,QAAL,GAAgB4B,UAAhB,CAA8BX,SAA9B,EAAyCC,IAAzC,CAA1B,CADF,CADF;;;AAKD,KA/GsC;;AAiH/BW,IAAAA,GAjH+B,GAiHzB,UAACC,OAAD,EAA8B;AAC1C,YAAKC,IAAL,GAAYD,OAAZ;AACD,KAnHsC,CAGrC,MAAKjB,KAAL,GAAa,EACXV,UAAU,EAAE,MAAKL,KAAL,CAAWkC,YADZ,EAAb,CAHqC,aAMtC,CApCH,yCAiDSC,MAjDT,GAiDE,kBAAgB,mBACd,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACT,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACU,UAAL,EAAP,CACD,CAJH,CADF,CAQD,CA1DH,QA4DSA,UA5DT,GA4DE,sBAAoB,CAClB,kBAAmE,KAAKpC,KAAxE,CAAQqC,KAAR,eAAQA,KAAR,CAAeC,YAAf,eAAeA,YAAf,CAA6BC,WAA7B,eAA6BA,WAA7B,CAA0CC,YAA1C,eAA0CA,YAA1C,CAAwDC,MAAxD,eAAwDA,MAAxD,CACA,IAAMC,KAAK,GAAG,EACZL,KAAK,EAAEA,KAAF,WAAEA,KAAF,GAAW,MADJ,EAAd,CAGA,IAAMM,QAAQ,GAAG,EACfJ,WAAW,EAAXA,WADe,EAEfC,YAAY,EAAZA,YAFe,EAGfF,YAAY,EAAZA,YAHe,EAAjB,CAMA,oBACE,oBAAC,aAAD,aAAe,WAAW,EAAE,KAAKM,WAAjC,IAAkD,KAAK5C,KAAvD,gBACE,oBAAC,SAAD,IAAW,MAAM,EAAEyC,MAAnB,iBACE,uCAAM,GAAG,EAAE,KAAKV,GAAhB,EAAqB,KAAK,EAAEW,KAA5B,EAAmC,SAAS,EAAE9C,MAAM,CAACiD,IAAP,EAA9C,IAAiEF,QAAjE,gBACE,oBAAC,iBAAD,CAAmB,QAAnB,IAA4B,KAAK,EAAE,KAAKvC,yBAAL,EAAnC,IACG,KAAK0C,cAAL,EADH,CADF,CADF,CADF,CADF,CAWD,CAlFH,CAoFE;AACF;AACA,KAtFA,QAuFSC,KAvFT,GAuFE,iBAAe,CACb,IAAMd,IAAI,GAAG,KAAKA,IAAlB,CACA,IAAI,CAACA,IAAL,EAAW,CACT,OACD,CAED,IAAIe,KAAK,GAAGf,IAAI,CAACgB,aAAL,CAAmB,6BAAnB,CAAZ,CANa,CAQb;AACA,QAAI,CAACD,KAAD,IAAUA,KAAK,CAACtC,QAApB,EAA8B,CAC5BsC,KAAK,GAAGf,IAAI,CAACgB,aAAL,CAAmB,qCAAnB,CAAR,CACD,CAED,IAAID,KAAJ,EAAW,CACTA,KAAK,CAACD,KAAN,GACD,CACF,CAvGH,QAwHUD,cAxHV,GAwHE,0BAAyB,CACvB,mBAA4B,KAAK9C,KAAjC,CAAQkD,KAAR,gBAAQA,KAAR,CAAeC,QAAf,gBAAeA,QAAf,CACAjE,SAAS,CAAE,CAACgE,KAAD,IAAUC,QAAX,IAAyBD,KAAK,IAAI,CAACC,QAApC,EAA+C,mDAA/C,CAAT,CACA,OAAOD,KAAK,GAAGE,QAAQ,CAAI,KAAKlC,WAAT,EAAsBgC,KAAtB,CAAX,GAA0CC,QAAtD,CACD,CA5HH,qBAAmCnE,KAAK,CAACqE,SAAzC,WACgBC,mBADhB,GACsC,YADtC,UAGgBC,SAHhB,GAG4B,EACxBJ,QAAQ,EAAElE,SAAS,CAACgD,IADI,EAExBvB,QAAQ,EAAEzB,SAAS,CAACuE,IAFI,EAGxB7C,KAAK,EAAE1B,SAAS,CAACuE,IAHO,EAIxB3B,MAAM,EAAE5C,SAAS,CAACuE,IAJM,EAKxBvD,IAAI,EAAEhB,SAAS,CAACwE,MALQ,EAMxB7C,OAAO,EAAE3B,SAAS,CAACuE,IANK,EAOxBnB,KAAK,EAAEpD,SAAS,CAACyE,SAAV,CAAoB,CAACzE,SAAS,CAAC0E,MAAX,EAAmB1E,SAAS,CAACwE,MAA7B,CAApB,CAPiB,EAQxBhB,MAAM,EAAExD,SAAS,CAAC2E,IARM,EASxBpB,YAAY,EAAEvD,SAAS,CAAC2E,IATA,EAUxBtB,YAAY,EAAErD,SAAS,CAAC2E,IAVA,EAWxBrB,WAAW,EAAEtD,SAAS,CAAC2E,IAXC,EAH5B,UAiBgBzD,YAjBhB,GAiB+B,EAC3B2B,UAAU,EAAVA,UAD2B,EAjB/B,UAqBgBjC,OArBhB,GAqB0BA,OArB1B,oBAoJA,SAASiC,UAAT,CAAuB+B,MAAvB,EAAkCzC,IAAlC,EAAyD;AACvD,SAAOA,IAAP;AACD;;AAED,SAASgC,QAAT;AACEU,EADF;AAEEZ,KAFF;AAGE;AACA,MAAMa,MAAyB,GAAG,EAAlC;AACA,MAAI1C,KAAK,GAAG,CAAZ;AACA,uDAAoB6B,KAApB,wCAA2B,KAAhBc,KAAgB;AACzB,0BAAsBC,cAAc,CAAID,KAAJ,CAApC,CAAOlD,OAAP,sBAAcM,KAAd;AACA2C,IAAAA,MAAM,CAACG,IAAP,CAAYJ,EAAE,CAAChD,OAAD,EAAQM,KAAR,EAAcC,KAAd,CAAd;AACA,MAAEA,KAAF;AACD;AACD,SAAO0C,MAAP;AACD;;AAED,SAASE,cAAT,CAA2BD,KAA3B,EAAkF;AAChF,MAAI,CAACG,KAAK,CAACC,OAAN,CAAcJ,KAAd,CAAL,EAA2B;AACzB,WAAO,CAACA,KAAD,EAAQA,KAAR,CAAP;AACD;AACD,SAAOA,KAAP;AACD","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport { getRandomID, isNonNullable } from '../../lib/utils';\nimport { Radio } from '../Radio';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { FocusTrap } from '../../internal/FocusTrap';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './RadioGroup.styles';\nimport { Prevent } from './Prevent';\nimport { RadioGroupContext, RadioGroupContextType } from './RadioGroupContext';\n\nexport interface RadioGroupProps<T = string | number> extends CommonProps {\n /**\n * Значение по умолчанию. Должно быть одним из значений дочерних радиокнопок\n * или значений из параметра `items`\n */\n defaultValue?: T;\n /**\n * Значение радиогруппы. Должно быть одним из значений радиокнопок.\n * Если не указано, то компонент будет работать, как неконтролируемый\n */\n value?: T;\n /**\n * Может быть использовано, если не передан параметр `children`\n *\n * Массив параметров радиокнопок. Может быть типа `Array<Value>` или\n * `Array<[Value, Data]>`, где тип `Value` — значение радиокнопки, а `Data`\n * — значение которое будет использовано вторым параметром в `renderItem`.\n * Если тип `items: Array<Value>`, то он будет приведен к типу\n * `Array<[Value, Value]>`\n */\n items?: T[] | Array<[T, React.ReactNode]>;\n /**\n * Аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется\n * случайное имя\n */\n name?: string;\n /**\n * Дизейблит все радиокнопки\n */\n disabled?: boolean;\n /**\n * Переводит все радиокнопки в состояние валидации: предупреждение.\n */\n warning?: boolean;\n /**\n * Переводит все радиокнопки в состояние валидации: ошибка.\n */\n error?: boolean;\n /**\n * Выравнивает элементы в строку. Не работает с `children`\n */\n inline?: boolean;\n /**\n * Ширина радиогруппы. Не работает с `children`\n */\n width?: React.CSSProperties['width'];\n /**\n * Метод отрисовки контента радиокнопки. Не работает с `children`.\n *\n * Принимает два аргумента: `(value: Value, data: Data) => React.Node`\n */\n renderItem?: (itemValue: T, data: React.ReactNode) => React.ReactNode;\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n onBlur?: (event: FocusEvent) => void;\n onMouseLeave?: () => any;\n onMouseOver?: () => any;\n onMouseEnter?: () => any;\n}\n\nexport interface RadioGroupState<T> {\n activeItem?: T;\n}\n\n/**\n *\n * `children` может содержать любую разметку с компонентами Radio,\n * если не передан параметр `items`.\n * Каждому компоненту Radio нужно указать параметр `value`, такого же типа\n * как и параметр `value` самой радиогруппы.\n *\n * Значения активного элемента сравниваются по строгому равенству `===`\n */\n@rootNode\nexport class RadioGroup<T> extends React.Component<RadioGroupProps<T>, RadioGroupState<T>> {\n public static __KONTUR_REACT_UI__ = 'RadioGroup';\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n inline: PropTypes.bool,\n name: PropTypes.string,\n warning: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public static defaultProps = {\n renderItem,\n };\n\n public static Prevent = Prevent;\n\n private theme!: Theme;\n\n private node: Nullable<HTMLSpanElement>;\n private name = getRandomID();\n private getProps = createPropsGetter(RadioGroup.defaultProps);\n private setRootNode!: TSetRootNode;\n\n constructor(props: RadioGroupProps<T>) {\n super(props);\n\n this.state = {\n activeItem: this.props.defaultValue,\n };\n }\n\n private getRadioGroupContextValue = (): RadioGroupContextType<T> => {\n return {\n activeItem: this.getValue(),\n onSelect: this.handleSelect,\n name: this.getName(),\n disabled: this.props.disabled,\n error: this.props.error,\n warning: this.props.warning,\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 public renderMain() {\n const { width, onMouseLeave, onMouseOver, onMouseEnter, onBlur } = this.props;\n const style = {\n width: width ?? 'auto',\n };\n const handlers = {\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n };\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <FocusTrap onBlur={onBlur}>\n <span ref={this.ref} style={style} className={styles.root()} {...handlers}>\n <RadioGroupContext.Provider value={this.getRadioGroupContextValue()}>\n {this.renderChildren()}\n </RadioGroupContext.Provider>\n </span>\n </FocusTrap>\n </CommonWrapper>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n const node = this.node;\n if (!node) {\n return;\n }\n\n let radio = node.querySelector('input[type=\"radio\"]:checked') as Nullable<HTMLInputElement>;\n\n // If no checked radios, try get first radio\n if (!radio || radio.disabled) {\n radio = node.querySelector('input[type=\"radio\"]:not([disabled])') as Nullable<HTMLInputElement>;\n }\n\n if (radio) {\n radio.focus();\n }\n }\n\n private getValue = () => (this.isControlled() ? this.props.value : this.state.activeItem);\n\n private getName = () => this.props.name || this.name;\n\n private isControlled = () => isNonNullable(this.props.value);\n\n private handleSelect = (value: T) => {\n if (!this.isControlled()) {\n this.setState({ activeItem: value });\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private renderChildren() {\n const { items, children } = this.props;\n invariant((!items && children) || (items && !children), 'Either items or children must be passed, not both');\n return items ? mapItems<T>(this.renderRadio, items) : children;\n }\n\n private renderRadio = (itemValue: T, data: React.ReactNode, index: number): JSX.Element => {\n const itemProps = {\n key: typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : index,\n className: cx({\n [styles.item(this.theme)]: true,\n [styles.itemFirst()]: index === 0,\n [styles.itemInline()]: !!this.props.inline,\n }),\n };\n\n return (\n <span {...itemProps}>\n <Radio value={itemValue}>{this.getProps().renderItem<T>(itemValue, data)}</Radio>\n </span>\n );\n };\n\n private ref = (element: HTMLSpanElement) => {\n this.node = element;\n };\n}\n\nfunction renderItem<T>(_value: T, data: React.ReactNode) {\n return data;\n}\n\nfunction mapItems<T>(\n fn: (value: T, data: React.ReactNode, index: number) => React.ReactNode,\n items: T[] | Array<[T, React.ReactNode]>,\n) {\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, data] = normalizeEntry<T>(entry);\n result.push(fn(value, data, index));\n ++index;\n }\n return result;\n}\n\nfunction normalizeEntry<T>(entry: T | [T, React.ReactNode]): [T, React.ReactNode] {\n if (!Array.isArray(entry)) {\n return [entry, entry];\n }\n return entry;\n}\n"]}
@@ -20,5 +20,5 @@ export var ResponsiveLayout = function ResponsiveLayout(props) {
20
20
  };
21
21
  ResponsiveLayout.propTypes = {
22
22
  onLayoutChange: propTypes.func,
23
- children: propTypes.node
23
+ children: propTypes.oneOfType([propTypes.node, propTypes.func])
24
24
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["ResponsiveLayout.tsx"],"names":["React","useEffect","propTypes","isFunction","CommonWrapper","useResponsiveLayout","ResponsiveLayout","props","layoutFlags","onLayoutChange","children","func","node"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;;AAEA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,aAAT,QAA8B,8BAA9B;;;AAGA,SAASC,mBAAT,QAAoC,uBAApC;;;;;;;AAOA;AACA;AACA;;AAEA,OAAO,IAAMC,gBAAiD,GAAG,SAApDA,gBAAoD,CAACC,KAAD,EAAW;AAC1E,MAAMC,WAAW,GAAGH,mBAAmB,EAAvC;;AAEAJ,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIM,KAAK,CAACE,cAAV,EAA0B;AACxBF,MAAAA,KAAK,CAACE,cAAN,CAAqBD,WAArB;AACD;AACF,GAJQ,EAIN,CAACA,WAAD,CAJM,CAAT;;AAMA;AACE,wBAAC,aAAD,EAAmBD,KAAnB;AACGJ,IAAAA,UAAU,CAACI,KAAK,CAACG,QAAP,CAAV,sBAA6BH,KAAK,CAACG,QAAN,CAAeF,WAAf,CAA7B,8BAA4D,IAA5D,uBAAmED,KAAK,CAACG,QAAzE,+BAAqF,IADxF,CADF;;;AAKD,CAdM;;AAgBPJ,gBAAgB,CAACJ,SAAjB,GAA6B;AAC3BO,EAAAA,cAAc,EAAEP,SAAS,CAACS,IADC;AAE3BD,EAAAA,QAAQ,EAAER,SAAS,CAACU,IAFO,EAA7B","sourcesContent":["import React, { useEffect } from 'react';\nimport propTypes from 'prop-types';\n\nimport { isFunction } from '../../lib/utils';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { ResponsiveLayoutFlags } from './types';\nimport { useResponsiveLayout } from './useResponsiveLayout';\n\ninterface ResponsiveLayoutProps {\n onLayoutChange?: (layout: ResponsiveLayoutFlags) => void;\n children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags) => React.ReactNode);\n}\n\n/**\n * Компонент для определения текущего лэйаута.\n */\n\nexport const ResponsiveLayout: React.FC<ResponsiveLayoutProps> = (props) => {\n const layoutFlags = useResponsiveLayout();\n\n useEffect(() => {\n if (props.onLayoutChange) {\n props.onLayoutChange(layoutFlags);\n }\n }, [layoutFlags]);\n\n return (\n <CommonWrapper {...props}>\n {isFunction(props.children) ? props.children(layoutFlags) ?? null : props.children ?? null}\n </CommonWrapper>\n );\n};\n\nResponsiveLayout.propTypes = {\n onLayoutChange: propTypes.func,\n children: propTypes.node,\n};\n"]}
1
+ {"version":3,"sources":["ResponsiveLayout.tsx"],"names":["React","useEffect","propTypes","isFunction","CommonWrapper","useResponsiveLayout","ResponsiveLayout","props","layoutFlags","onLayoutChange","children","func","oneOfType","node"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;;AAEA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,aAAT,QAA8B,8BAA9B;;;AAGA,SAASC,mBAAT,QAAoC,uBAApC;;;;;;;AAOA;AACA;AACA;;AAEA,OAAO,IAAMC,gBAAiD,GAAG,SAApDA,gBAAoD,CAACC,KAAD,EAAW;AAC1E,MAAMC,WAAW,GAAGH,mBAAmB,EAAvC;;AAEAJ,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIM,KAAK,CAACE,cAAV,EAA0B;AACxBF,MAAAA,KAAK,CAACE,cAAN,CAAqBD,WAArB;AACD;AACF,GAJQ,EAIN,CAACA,WAAD,CAJM,CAAT;;AAMA;AACE,wBAAC,aAAD,EAAmBD,KAAnB;AACGJ,IAAAA,UAAU,CAACI,KAAK,CAACG,QAAP,CAAV,sBAA6BH,KAAK,CAACG,QAAN,CAAeF,WAAf,CAA7B,8BAA4D,IAA5D,uBAAmED,KAAK,CAACG,QAAzE,+BAAqF,IADxF,CADF;;;AAKD,CAdM;;AAgBPJ,gBAAgB,CAACJ,SAAjB,GAA6B;AAC3BO,EAAAA,cAAc,EAAEP,SAAS,CAACS,IADC;AAE3BD,EAAAA,QAAQ,EAAER,SAAS,CAACU,SAAV,CAAoB,CAACV,SAAS,CAACW,IAAX,EAAiBX,SAAS,CAACS,IAA3B,CAApB,CAFiB,EAA7B","sourcesContent":["import React, { useEffect } from 'react';\nimport propTypes from 'prop-types';\n\nimport { isFunction } from '../../lib/utils';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { ResponsiveLayoutFlags } from './types';\nimport { useResponsiveLayout } from './useResponsiveLayout';\n\ninterface ResponsiveLayoutProps {\n onLayoutChange?: (layout: ResponsiveLayoutFlags) => void;\n children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags) => React.ReactNode);\n}\n\n/**\n * Компонент для определения текущего лэйаута.\n */\n\nexport const ResponsiveLayout: React.FC<ResponsiveLayoutProps> = (props) => {\n const layoutFlags = useResponsiveLayout();\n\n useEffect(() => {\n if (props.onLayoutChange) {\n props.onLayoutChange(layoutFlags);\n }\n }, [layoutFlags]);\n\n return (\n <CommonWrapper {...props}>\n {isFunction(props.children) ? props.children(layoutFlags) ?? null : props.children ?? null}\n </CommonWrapper>\n );\n};\n\nResponsiveLayout.propTypes = {\n onLayoutChange: propTypes.func,\n children: propTypes.oneOfType([propTypes.node, propTypes.func]),\n};\n"]}
@@ -74,10 +74,10 @@ export function checkMatches(mediaQuery) {
74
74
 
75
75
  if (!eventListenersMap.has(mediaQuery)) {
76
76
  return window.matchMedia(mediaQuery).matches;
77
- } else {
78
- var eventListener = eventListenersMap.get(mediaQuery);
79
- return eventListener.mql.matches;
80
77
  }
78
+
79
+ var eventListener = eventListenersMap.get(mediaQuery);
80
+ return eventListener.mql.matches;
81
81
  }
82
82
 
83
83
  function changeCallback(e) {
@@ -1 +1 @@
1
- {"version":3,"sources":["ResponsiveLayoutEvents.ts"],"names":["canUseDOM","eventListenersMap","Map","addResponsiveLayoutListener","mediaQuery","callback","has","addCallbackToMQListener","createMQListener","remove","removeCallbackFromMQListener","eventListener","get","set","listeners","mql","window","matchMedia","newMediaQueryInfo","addEventListener","changeCallback","addListener","newListeners","filter","listener","length","removeEventListener","removeListener","checkMatches","matches","e","media","forEach"],"mappings":"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","sourcesContent":["import { canUseDOM } from '../../lib/client';\n\ninterface mediaQueryData {\n mql: MediaQueryList;\n listeners: Array<(e: MediaQueryListEvent) => void>;\n}\n\nexport interface listenerToken {\n remove: () => void;\n}\n\nexport const eventListenersMap = new Map<string, mediaQueryData>();\n\nexport function addResponsiveLayoutListener(\n mediaQuery: string,\n callback: (e: MediaQueryListEvent) => void,\n): listenerToken {\n if (eventListenersMap.has(mediaQuery)) {\n addCallbackToMQListener(mediaQuery, callback);\n } else {\n createMQListener(mediaQuery, callback);\n }\n\n return {\n remove() {\n removeCallbackFromMQListener(mediaQuery, callback);\n },\n };\n}\n\nfunction addCallbackToMQListener(mediaQuery: string, callback: (e: MediaQueryListEvent) => void) {\n const eventListener = eventListenersMap.get(mediaQuery);\n\n if (eventListener) {\n eventListenersMap.set(mediaQuery, {\n ...eventListener,\n listeners: [...eventListener.listeners, callback],\n });\n }\n}\n\nfunction createMQListener(mediaQuery: string, callback: (e: MediaQueryListEvent) => void) {\n const mql = window.matchMedia(mediaQuery);\n const newMediaQueryInfo: mediaQueryData = { mql, listeners: [callback] };\n\n eventListenersMap.set(mediaQuery, newMediaQueryInfo);\n if (mql.addEventListener) {\n mql.addEventListener('change', changeCallback);\n } else {\n mql.addListener(changeCallback);\n }\n}\n\nfunction removeCallbackFromMQListener(mediaQuery: string, callback: (e: MediaQueryListEvent) => void) {\n if (eventListenersMap.has(mediaQuery)) {\n const eventListener = eventListenersMap.get(mediaQuery);\n\n if (eventListener) {\n const newListeners = eventListener.listeners.filter((listener) => listener !== callback);\n\n if (newListeners.length === 0) {\n if (eventListener.mql.removeEventListener) {\n eventListener.mql.removeEventListener('change', changeCallback);\n } else {\n eventListener.mql.removeListener(changeCallback);\n }\n eventListenersMap.delete(mediaQuery);\n return;\n }\n\n eventListenersMap.set(mediaQuery, {\n ...eventListener,\n listeners: [...newListeners],\n });\n }\n }\n}\n\nexport function checkMatches(mediaQuery: string) {\n if (!canUseDOM) {\n return false;\n }\n\n if (!eventListenersMap.has(mediaQuery)) {\n return window.matchMedia(mediaQuery).matches;\n } else {\n const eventListener = eventListenersMap.get(mediaQuery);\n\n return eventListener!.mql.matches;\n }\n}\n\nfunction changeCallback(e: MediaQueryListEvent) {\n const eventListener = eventListenersMap.get(e.media);\n\n if (eventListener) {\n eventListener.listeners.forEach((listener) => {\n listener(e);\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["ResponsiveLayoutEvents.ts"],"names":["canUseDOM","eventListenersMap","Map","addResponsiveLayoutListener","mediaQuery","callback","has","addCallbackToMQListener","createMQListener","remove","removeCallbackFromMQListener","eventListener","get","set","listeners","mql","window","matchMedia","newMediaQueryInfo","addEventListener","changeCallback","addListener","newListeners","filter","listener","length","removeEventListener","removeListener","checkMatches","matches","e","media","forEach"],"mappings":"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","sourcesContent":["import { canUseDOM } from '../../lib/client';\n\ninterface mediaQueryData {\n mql: MediaQueryList;\n listeners: Array<(e: MediaQueryListEvent) => void>;\n}\n\nexport interface listenerToken {\n remove: () => void;\n}\n\nexport const eventListenersMap = new Map<string, mediaQueryData>();\n\nexport function addResponsiveLayoutListener(\n mediaQuery: string,\n callback: (e: MediaQueryListEvent) => void,\n): listenerToken {\n if (eventListenersMap.has(mediaQuery)) {\n addCallbackToMQListener(mediaQuery, callback);\n } else {\n createMQListener(mediaQuery, callback);\n }\n\n return {\n remove() {\n removeCallbackFromMQListener(mediaQuery, callback);\n },\n };\n}\n\nfunction addCallbackToMQListener(mediaQuery: string, callback: (e: MediaQueryListEvent) => void) {\n const eventListener = eventListenersMap.get(mediaQuery);\n\n if (eventListener) {\n eventListenersMap.set(mediaQuery, {\n ...eventListener,\n listeners: [...eventListener.listeners, callback],\n });\n }\n}\n\nfunction createMQListener(mediaQuery: string, callback: (e: MediaQueryListEvent) => void) {\n const mql = window.matchMedia(mediaQuery);\n const newMediaQueryInfo: mediaQueryData = { mql, listeners: [callback] };\n\n eventListenersMap.set(mediaQuery, newMediaQueryInfo);\n if (mql.addEventListener) {\n mql.addEventListener('change', changeCallback);\n } else {\n mql.addListener(changeCallback);\n }\n}\n\nfunction removeCallbackFromMQListener(mediaQuery: string, callback: (e: MediaQueryListEvent) => void) {\n if (eventListenersMap.has(mediaQuery)) {\n const eventListener = eventListenersMap.get(mediaQuery);\n\n if (eventListener) {\n const newListeners = eventListener.listeners.filter((listener) => listener !== callback);\n\n if (newListeners.length === 0) {\n if (eventListener.mql.removeEventListener) {\n eventListener.mql.removeEventListener('change', changeCallback);\n } else {\n eventListener.mql.removeListener(changeCallback);\n }\n eventListenersMap.delete(mediaQuery);\n return;\n }\n\n eventListenersMap.set(mediaQuery, {\n ...eventListener,\n listeners: [...newListeners],\n });\n }\n }\n}\n\nexport function checkMatches(mediaQuery: string) {\n if (!canUseDOM) {\n return false;\n }\n\n if (!eventListenersMap.has(mediaQuery)) {\n return window.matchMedia(mediaQuery).matches;\n }\n\n const eventListener = eventListenersMap.get(mediaQuery);\n return eventListener!.mql.matches;\n}\n\nfunction changeCallback(e: MediaQueryListEvent) {\n const eventListener = eventListenersMap.get(e.media);\n\n if (eventListener) {\n eventListener.listeners.forEach((listener) => {\n listener(e);\n });\n }\n}\n"]}
@@ -150,7 +150,7 @@ export var Select = (_dec = locale('Select', SelectLocaleHelper), responsiveLayo
150
150
  var _cx;
151
151
 
152
152
  return /*#__PURE__*/React.createElement("div", {
153
- className: cx((_cx = {}, _cx[styles.search()] = noMargin ? false : true, _cx))
153
+ className: cx((_cx = {}, _cx[styles.search()] = !noMargin, _cx))
154
154
  }, /*#__PURE__*/React.createElement(Input, {
155
155
  value: _this.state.searchPattern,
156
156
  ref: _this.focusInput,
@@ -370,7 +370,7 @@ export var Select = (_dec = locale('Select', SelectLocaleHelper), responsiveLayo
370
370
  var value = this.getValue();
371
371
  var item = this.getItemByValue(value);
372
372
 
373
- if (value != null) {
373
+ if (isNonNullable(value)) {
374
374
  return {
375
375
  label: this.getProps().renderValue(value, item),
376
376
  isPlaceholder: false
@@ -620,27 +620,41 @@ function areValuesEqual(value1, value2) {
620
620
  function normalizeEntry(entry) {
621
621
  if (Array.isArray(entry)) {
622
622
  return entry;
623
- } else {
624
- return [entry, entry, undefined];
625
623
  }
624
+
625
+ return [entry, entry, undefined];
626
626
  }
627
627
 
628
- function filterItem(value, item, pattern) {
629
- if (item === Select.SEP) {
630
- return false;
628
+ var getTextFromItem = function getTextFromItem(item) {
629
+ if (typeof item === 'string') {
630
+ return item;
631
631
  }
632
632
 
633
- if ( /*#__PURE__*/React.isValidElement(item) || isFunction(item) && /*#__PURE__*/React.isValidElement(item = item())) {
634
- item = reactGetTextContent(item);
633
+ if (isFunction(item)) {
634
+ return getTextFromItem(item());
635
+ }
636
+
637
+ if ( /*#__PURE__*/React.isValidElement(item)) {
638
+ return reactGetTextContent(item);
635
639
  }
636
640
 
637
641
  if (typeof item === 'number') {
638
- item = item.toString(10);
642
+ return item.toString(10);
643
+ }
644
+
645
+ return '';
646
+ };
647
+
648
+ function filterItem(value, item, pattern) {
649
+ if (item === Select.SEP) {
650
+ return false;
639
651
  }
640
652
 
641
- if (typeof item !== 'string') {
653
+ var itemText = getTextFromItem(item);
654
+
655
+ if (!itemText) {
642
656
  return false;
643
657
  }
644
658
 
645
- return item.toLowerCase().indexOf(pattern) !== -1;
659
+ return itemText.toLowerCase().indexOf(pattern) !== -1;
646
660
  }