@skbkontur/react-ui 0.0.0-95a1dbe516 → 0.0.0-9ab4f802f3

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 (647) hide show
  1. package/CHANGELOG.md +120 -0
  2. package/README.md +41 -13
  3. package/cjs/components/Autocomplete/Autocomplete.js +12 -6
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Autocomplete/Autocomplete.md +76 -3
  6. package/cjs/components/Autocomplete/Autocomplete.styles.d.ts +1 -0
  7. package/cjs/components/Autocomplete/Autocomplete.styles.js +7 -1
  8. package/cjs/components/Autocomplete/Autocomplete.styles.js.map +1 -1
  9. package/cjs/components/Button/Button.js +2 -2
  10. package/cjs/components/Button/Button.js.map +1 -1
  11. package/cjs/components/Button/Button.md +38 -11
  12. package/cjs/components/Calendar/Calendar.d.ts +28 -5
  13. package/cjs/components/Calendar/Calendar.js +80 -36
  14. package/cjs/components/Calendar/Calendar.js.map +1 -1
  15. package/cjs/components/Calendar/Calendar.md +82 -1
  16. package/cjs/components/Calendar/Calendar.styles.js +1 -1
  17. package/cjs/components/Calendar/Calendar.styles.js.map +1 -1
  18. package/cjs/components/Calendar/CalendarContext.d.ts +12 -0
  19. package/cjs/components/Calendar/CalendarContext.js +16 -0
  20. package/cjs/components/Calendar/CalendarContext.js.map +1 -0
  21. package/cjs/components/Calendar/CalendarDateShape.d.ts +4 -2
  22. package/cjs/components/Calendar/CalendarDateShape.js +13 -3
  23. package/cjs/components/Calendar/CalendarDateShape.js.map +1 -1
  24. package/cjs/components/Calendar/CalendarDay.d.ts +12 -0
  25. package/cjs/components/Calendar/CalendarDay.js +79 -0
  26. package/cjs/components/Calendar/CalendarDay.js.map +1 -0
  27. package/cjs/components/Calendar/CalendarDay.md +70 -0
  28. package/cjs/components/Calendar/CalendarUtils.d.ts +2 -1
  29. package/cjs/components/Calendar/CalendarUtils.js +4 -6
  30. package/cjs/components/Calendar/CalendarUtils.js.map +1 -1
  31. package/cjs/components/Calendar/DayCellView.d.ts +4 -12
  32. package/cjs/components/Calendar/DayCellView.js +20 -42
  33. package/cjs/components/Calendar/DayCellView.js.map +1 -1
  34. package/cjs/components/Calendar/DayCellView.styles.d.ts +2 -5
  35. package/cjs/components/Calendar/DayCellView.styles.js +37 -43
  36. package/cjs/components/Calendar/DayCellView.styles.js.map +1 -1
  37. package/cjs/components/Calendar/Month.d.ts +0 -10
  38. package/cjs/components/Calendar/Month.js +36 -88
  39. package/cjs/components/Calendar/Month.js.map +1 -1
  40. package/cjs/components/Calendar/MonthView.d.ts +3 -2
  41. package/cjs/components/Calendar/MonthView.js +47 -37
  42. package/cjs/components/Calendar/MonthView.js.map +1 -1
  43. package/cjs/components/Calendar/MonthView.styles.d.ts +3 -0
  44. package/cjs/components/Calendar/MonthView.styles.js +45 -7
  45. package/cjs/components/Calendar/MonthView.styles.js.map +1 -1
  46. package/cjs/components/Calendar/MonthViewModel.js +24 -6
  47. package/cjs/components/Calendar/MonthViewModel.js.map +1 -1
  48. package/cjs/components/Calendar/config.js +12 -6
  49. package/cjs/components/Calendar/config.js.map +1 -1
  50. package/cjs/components/Calendar/index.d.ts +1 -0
  51. package/cjs/components/Calendar/index.js +2 -1
  52. package/cjs/components/Calendar/index.js.map +1 -1
  53. package/cjs/components/Checkbox/Checkbox.js +1 -1
  54. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  55. package/cjs/components/DateInput/DateFragmentsView.js +1 -1
  56. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  57. package/cjs/components/DateInput/DateInput.js +1 -1
  58. package/cjs/components/DateInput/DateInput.js.map +1 -1
  59. package/cjs/components/DatePicker/DatePicker.d.ts +4 -1
  60. package/cjs/components/DatePicker/DatePicker.js +72 -45
  61. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  62. package/cjs/components/DatePicker/DatePicker.md +29 -1
  63. package/cjs/components/DatePicker/DatePickerHelpers.js +2 -1
  64. package/cjs/components/DatePicker/DatePickerHelpers.js.map +1 -1
  65. package/cjs/components/DatePicker/MobilePicker.d.ts +10 -0
  66. package/cjs/components/DatePicker/MobilePicker.js +118 -0
  67. package/cjs/components/DatePicker/MobilePicker.js.map +1 -0
  68. package/cjs/components/DatePicker/MobilePicker.styles.d.ts +3 -0
  69. package/cjs/components/DatePicker/MobilePicker.styles.js +8 -0
  70. package/cjs/components/DatePicker/MobilePicker.styles.js.map +1 -0
  71. package/cjs/components/DatePicker/Picker.js +1 -1
  72. package/cjs/components/DatePicker/Picker.js.map +1 -1
  73. package/cjs/components/DatePicker/getMobilePickerTheme.d.ts +2 -0
  74. package/cjs/components/DatePicker/getMobilePickerTheme.js +19 -0
  75. package/cjs/components/DatePicker/getMobilePickerTheme.js.map +1 -0
  76. package/cjs/components/Dropdown/Dropdown.js +1 -1
  77. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  78. package/cjs/components/DropdownMenu/DropdownMenu.js +1 -1
  79. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  80. package/cjs/components/DropdownMenu/DropdownMenu.md +39 -0
  81. package/cjs/components/FileUploader/FileUploader.d.ts +2 -0
  82. package/cjs/components/FileUploader/FileUploader.js +32 -9
  83. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  84. package/cjs/components/FileUploader/FileUploader.md +29 -0
  85. package/cjs/components/FxInput/FxInput.js +1 -1
  86. package/cjs/components/FxInput/FxInput.js.map +1 -1
  87. package/cjs/components/Group/Group.js +1 -1
  88. package/cjs/components/Group/Group.js.map +1 -1
  89. package/cjs/components/Hint/Hint.d.ts +4 -3
  90. package/cjs/components/Hint/Hint.js +9 -8
  91. package/cjs/components/Hint/Hint.js.map +1 -1
  92. package/cjs/components/Input/Input.js +1 -1
  93. package/cjs/components/Input/Input.js.map +1 -1
  94. package/cjs/components/Input/Input.styles.d.ts +1 -1
  95. package/cjs/components/Input/Input.styles.js +3 -2
  96. package/cjs/components/Input/Input.styles.js.map +1 -1
  97. package/cjs/components/Input/InputLayout/InputLayout.styles.d.ts +1 -1
  98. package/cjs/components/Input/InputLayout/InputLayout.styles.js +3 -2
  99. package/cjs/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
  100. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +1 -1
  101. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  102. package/cjs/components/Kebab/Kebab.js +6 -1
  103. package/cjs/components/Kebab/Kebab.js.map +1 -1
  104. package/cjs/components/Link/Link.js +3 -2
  105. package/cjs/components/Link/Link.js.map +1 -1
  106. package/cjs/components/Loader/Loader.js +1 -1
  107. package/cjs/components/Loader/Loader.js.map +1 -1
  108. package/cjs/components/MenuItem/MenuItem.js +2 -2
  109. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  110. package/cjs/components/MiniModal/MiniModal.js +1 -1
  111. package/cjs/components/MiniModal/MiniModal.js.map +1 -1
  112. package/cjs/components/Modal/Modal.js +1 -1
  113. package/cjs/components/Modal/Modal.js.map +1 -1
  114. package/cjs/components/Modal/ModalBody.js +1 -1
  115. package/cjs/components/Modal/ModalBody.js.map +1 -1
  116. package/cjs/components/Paging/Paging.js +8 -3
  117. package/cjs/components/Paging/Paging.js.map +1 -1
  118. package/cjs/components/PasswordInput/PasswordInput.js +1 -1
  119. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  120. package/cjs/components/Radio/Radio.js +1 -1
  121. package/cjs/components/Radio/Radio.js.map +1 -1
  122. package/cjs/components/RadioGroup/RadioGroup.js +10 -1
  123. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  124. package/cjs/components/ScrollContainer/ScrollBar.js +1 -1
  125. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  126. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  127. package/cjs/components/ScrollContainer/ScrollContainer.js +6 -0
  128. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  129. package/cjs/components/Select/Select.js +6 -3
  130. package/cjs/components/Select/Select.js.map +1 -1
  131. package/cjs/components/SidePage/SidePage.js +1 -1
  132. package/cjs/components/SidePage/SidePage.js.map +1 -1
  133. package/cjs/components/SidePage/SidePageBody.js +1 -1
  134. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  135. package/cjs/components/SidePage/SidePageContainer.js +1 -1
  136. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  137. package/cjs/components/SidePage/SidePageFooter.js +1 -1
  138. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  139. package/cjs/components/SidePage/SidePageHeader.js +1 -1
  140. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  141. package/cjs/components/Spinner/Spinner.js +1 -1
  142. package/cjs/components/Spinner/Spinner.js.map +1 -1
  143. package/cjs/components/Switcher/Switcher.js +1 -1
  144. package/cjs/components/Switcher/Switcher.js.map +1 -1
  145. package/cjs/components/Tabs/Indicator.js +1 -1
  146. package/cjs/components/Tabs/Indicator.js.map +1 -1
  147. package/cjs/components/Tabs/Tab.js +2 -2
  148. package/cjs/components/Tabs/Tab.js.map +1 -1
  149. package/cjs/components/Tabs/Tabs.js +1 -1
  150. package/cjs/components/Tabs/Tabs.js.map +1 -1
  151. package/cjs/components/Textarea/Textarea.js +1 -1
  152. package/cjs/components/Textarea/Textarea.js.map +1 -1
  153. package/cjs/components/Toast/Toast.js +1 -1
  154. package/cjs/components/Toast/Toast.js.map +1 -1
  155. package/cjs/components/Toast/ToastView.js +1 -1
  156. package/cjs/components/Toast/ToastView.js.map +1 -1
  157. package/cjs/components/Toggle/Toggle.js +1 -1
  158. package/cjs/components/Toggle/Toggle.js.map +1 -1
  159. package/cjs/components/Token/Token.js +2 -1
  160. package/cjs/components/Token/Token.js.map +1 -1
  161. package/cjs/components/TokenInput/TokenInput.js +1 -1
  162. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  163. package/cjs/components/TokenInput/TokenInputMenu.js +2 -2
  164. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  165. package/cjs/components/Tooltip/Tooltip.d.ts +10 -5
  166. package/cjs/components/Tooltip/Tooltip.js +59 -20
  167. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  168. package/cjs/components/TooltipMenu/TooltipMenu.js +4 -4
  169. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  170. package/cjs/hooks/useDrop.d.ts +1 -1
  171. package/cjs/hooks/useDrop.js.map +1 -1
  172. package/cjs/index.d.ts +2 -0
  173. package/cjs/index.js +2 -0
  174. package/cjs/index.js.map +1 -1
  175. package/cjs/internal/CommonWrapper/CommonWrapper.js +2 -2
  176. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  177. package/cjs/internal/CommonWrapper/{extractCommonProps.d.ts → utils/extractCommonProps.d.ts} +2 -2
  178. package/cjs/internal/CommonWrapper/utils/extractCommonProps.js.map +1 -0
  179. package/cjs/internal/CommonWrapper/{getCommonVisualStateDataAttributes.js → utils/getCommonVisualStateDataAttributes.js} +3 -4
  180. package/cjs/internal/CommonWrapper/utils/getCommonVisualStateDataAttributes.js.map +1 -0
  181. package/cjs/internal/CommonWrapper/{getVisualStateDataAttributes.d.ts → utils/getVisualStateDataAttributes.d.ts} +1 -1
  182. package/cjs/internal/CommonWrapper/{getVisualStateDataAttributes.js → utils/getVisualStateDataAttributes.js} +3 -3
  183. package/cjs/internal/CommonWrapper/utils/getVisualStateDataAttributes.js.map +1 -0
  184. package/cjs/internal/CommonWrapper/utils/tryGetBoolean.d.ts +1 -0
  185. package/cjs/internal/CommonWrapper/utils/tryGetBoolean.js +1 -0
  186. package/cjs/internal/CommonWrapper/utils/tryGetBoolean.js.map +1 -0
  187. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +2 -3
  188. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  189. package/cjs/internal/CustomComboBox/ComboBoxView.js +3 -1
  190. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  191. package/cjs/internal/DateSelect/DateSelect.d.ts +2 -0
  192. package/cjs/internal/DateSelect/DateSelect.js +51 -4
  193. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  194. package/cjs/internal/DateSelect/DateSelect.styles.d.ts +1 -0
  195. package/cjs/internal/DateSelect/DateSelect.styles.js +15 -1
  196. package/cjs/internal/DateSelect/DateSelect.styles.js.map +1 -1
  197. package/cjs/internal/DateSelect/locale/locales/en.js +2 -1
  198. package/cjs/internal/DateSelect/locale/locales/en.js.map +1 -1
  199. package/cjs/internal/DateSelect/locale/locales/ru.js +2 -1
  200. package/cjs/internal/DateSelect/locale/locales/ru.js.map +1 -1
  201. package/cjs/internal/DateSelect/locale/types.d.ts +1 -0
  202. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +5 -2
  203. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +16 -3
  204. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  205. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -0
  206. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +4 -2
  207. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  208. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
  209. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +3 -2
  210. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  211. package/cjs/internal/InputLikeText/InputLikeText.js +2 -2
  212. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  213. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js +1 -1
  214. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
  215. package/cjs/internal/InternalMenu/InternalMenu.js +2 -2
  216. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  217. package/cjs/internal/Menu/Menu.js +2 -2
  218. package/cjs/internal/Menu/Menu.js.map +1 -1
  219. package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
  220. package/cjs/internal/MobilePopup/MobilePopup.js +7 -1
  221. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  222. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +7 -0
  223. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +32 -0
  224. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -0
  225. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +4 -0
  226. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +15 -0
  227. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -0
  228. package/cjs/internal/MobilePopup/MobilePopupFooter/index.d.ts +1 -0
  229. package/cjs/internal/MobilePopup/MobilePopupFooter/index.js +1 -0
  230. package/cjs/internal/MobilePopup/MobilePopupFooter/index.js.map +1 -0
  231. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
  232. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  233. package/cjs/internal/NativeDateInput/utils.js +3 -2
  234. package/cjs/internal/NativeDateInput/utils.js.map +1 -1
  235. package/cjs/internal/Popup/Popup.d.ts +15 -4
  236. package/cjs/internal/Popup/Popup.js +67 -4
  237. package/cjs/internal/Popup/Popup.js.map +1 -1
  238. package/cjs/internal/PopupMenu/PopupMenu.js +1 -1
  239. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  240. package/cjs/internal/RenderContainer/RenderContainer.d.ts +3 -0
  241. package/cjs/internal/RenderContainer/RenderContainer.js +34 -24
  242. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  243. package/cjs/internal/RenderContainer/RenderInnerContainer.js +8 -4
  244. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  245. package/cjs/internal/RenderLayer/RenderLayer.js +5 -1
  246. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  247. package/cjs/internal/ThemePlayground/Playground.js +1 -1
  248. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  249. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +9 -6
  250. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  251. package/cjs/internal/ThemePlayground/constants.js +2 -1
  252. package/cjs/internal/ThemePlayground/constants.js.map +1 -1
  253. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +1 -1
  254. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  255. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  256. package/cjs/internal/ZIndex/ZIndex.d.ts +7 -3
  257. package/cjs/internal/ZIndex/ZIndex.js +41 -3
  258. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  259. package/cjs/internal/themes/DarkTheme.d.ts +2 -0
  260. package/cjs/internal/themes/DarkTheme.js +6 -1
  261. package/cjs/internal/themes/DarkTheme.js.map +1 -1
  262. package/cjs/internal/themes/DefaultTheme.d.ts +18 -0
  263. package/cjs/internal/themes/DefaultTheme.js +32 -4
  264. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  265. package/cjs/lib/date/InternalDate.d.ts +2 -0
  266. package/cjs/lib/date/InternalDate.js +8 -1
  267. package/cjs/lib/date/InternalDate.js.map +1 -1
  268. package/cjs/lib/date/InternalDateTransformer.d.ts +3 -0
  269. package/cjs/lib/date/InternalDateTransformer.js +23 -0
  270. package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
  271. package/cjs/lib/date/InternalDateValidator.js +2 -1
  272. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  273. package/cjs/lib/date/comparison.d.ts +6 -0
  274. package/cjs/lib/date/comparison.js +44 -0
  275. package/cjs/lib/date/comparison.js.map +1 -0
  276. package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +24 -0
  277. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  278. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  279. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
  280. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  281. package/cjs/lib/listenFocusOutside.js +4 -2
  282. package/cjs/lib/listenFocusOutside.js.map +1 -1
  283. package/cjs/lib/locale/constants.d.ts +3 -0
  284. package/cjs/lib/locale/constants.js +6 -2
  285. package/cjs/lib/locale/constants.js.map +1 -1
  286. package/cjs/lib/taskWithDelayAndMinimalDuration.js +1 -0
  287. package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
  288. package/cjs/lib/theming/Emotion.d.ts +7 -1
  289. package/cjs/lib/theming/Emotion.js +6 -3
  290. package/cjs/lib/theming/Emotion.js.map +1 -1
  291. package/cjs/lib/theming/ThemeContext.d.ts +0 -2
  292. package/cjs/lib/theming/ThemeContext.js +1 -3
  293. package/cjs/lib/theming/ThemeContext.js.map +1 -1
  294. package/cjs/lib/theming/ThemeContext.md +3 -1
  295. package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.d.ts +30 -0
  296. package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.js +50 -0
  297. package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.js.map +1 -0
  298. package/cjs/lib/theming/themes/Theme2022Update2024.d.ts +46 -0
  299. package/cjs/lib/theming/themes/Theme2022Update2024.js +75 -0
  300. package/cjs/lib/theming/themes/Theme2022Update2024.js.map +1 -0
  301. package/cjs/lib/widgets/StylesContainer.d.ts +13 -0
  302. package/cjs/lib/widgets/StylesContainer.js +70 -0
  303. package/cjs/lib/widgets/StylesContainer.js.map +1 -0
  304. package/cjs/lib/widgets/index.d.ts +1 -0
  305. package/cjs/lib/widgets/index.js +1 -0
  306. package/cjs/lib/widgets/index.js.map +1 -0
  307. package/components/Autocomplete/Autocomplete/Autocomplete.js +11 -5
  308. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  309. package/components/Autocomplete/Autocomplete.md +76 -3
  310. package/components/Autocomplete/Autocomplete.styles/Autocomplete.styles.js +4 -1
  311. package/components/Autocomplete/Autocomplete.styles/Autocomplete.styles.js.map +1 -1
  312. package/components/Autocomplete/Autocomplete.styles.d.ts +1 -0
  313. package/components/Button/Button/Button.js +3 -3
  314. package/components/Button/Button/Button.js.map +1 -1
  315. package/components/Button/Button.md +38 -11
  316. package/components/Calendar/Calendar/Calendar.js +83 -66
  317. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  318. package/components/Calendar/Calendar.d.ts +28 -5
  319. package/components/Calendar/Calendar.md +82 -1
  320. package/components/Calendar/Calendar.styles/Calendar.styles.js +1 -1
  321. package/components/Calendar/Calendar.styles/Calendar.styles.js.map +1 -1
  322. package/components/Calendar/CalendarContext/CalendarContext.js +2 -0
  323. package/components/Calendar/CalendarContext/CalendarContext.js.map +1 -0
  324. package/components/Calendar/CalendarContext/package.json +6 -0
  325. package/components/Calendar/CalendarContext.d.ts +12 -0
  326. package/components/Calendar/CalendarDateShape/CalendarDateShape.js +23 -1
  327. package/components/Calendar/CalendarDateShape/CalendarDateShape.js.map +1 -1
  328. package/components/Calendar/CalendarDateShape.d.ts +4 -2
  329. package/components/Calendar/CalendarDay/CalendarDay.js +64 -0
  330. package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -0
  331. package/components/Calendar/CalendarDay/package.json +6 -0
  332. package/components/Calendar/CalendarDay.d.ts +12 -0
  333. package/components/Calendar/CalendarDay.md +70 -0
  334. package/components/Calendar/CalendarUtils/CalendarUtils.js +5 -4
  335. package/components/Calendar/CalendarUtils/CalendarUtils.js.map +1 -1
  336. package/components/Calendar/CalendarUtils.d.ts +2 -1
  337. package/components/Calendar/DayCellView/DayCellView.js +33 -46
  338. package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
  339. package/components/Calendar/DayCellView.d.ts +4 -12
  340. package/components/Calendar/DayCellView.styles/DayCellView.styles.js +10 -14
  341. package/components/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
  342. package/components/Calendar/DayCellView.styles.d.ts +2 -5
  343. package/components/Calendar/Month/Month.js +50 -84
  344. package/components/Calendar/Month/Month.js.map +1 -1
  345. package/components/Calendar/Month.d.ts +0 -10
  346. package/components/Calendar/MonthView/MonthView.js +50 -45
  347. package/components/Calendar/MonthView/MonthView.js.map +1 -1
  348. package/components/Calendar/MonthView.d.ts +3 -2
  349. package/components/Calendar/MonthView.styles/MonthView.styles.js +20 -6
  350. package/components/Calendar/MonthView.styles/MonthView.styles.js.map +1 -1
  351. package/components/Calendar/MonthView.styles.d.ts +3 -0
  352. package/components/Calendar/MonthViewModel/MonthViewModel.js +9 -6
  353. package/components/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
  354. package/components/Calendar/config/config.js +6 -4
  355. package/components/Calendar/config/config.js.map +1 -1
  356. package/components/Calendar/index/index.js +2 -1
  357. package/components/Calendar/index/index.js.map +1 -1
  358. package/components/Calendar/index.d.ts +1 -0
  359. package/components/Checkbox/Checkbox/Checkbox.js +2 -2
  360. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  361. package/components/DateInput/DateFragmentsView/DateFragmentsView.js +2 -2
  362. package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
  363. package/components/DateInput/DateInput/DateInput.js +2 -2
  364. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  365. package/components/DatePicker/DatePicker/DatePicker.js +62 -41
  366. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  367. package/components/DatePicker/DatePicker.d.ts +4 -1
  368. package/components/DatePicker/DatePicker.md +29 -1
  369. package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js +2 -1
  370. package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js.map +1 -1
  371. package/components/DatePicker/MobilePicker/MobilePicker.js +91 -0
  372. package/components/DatePicker/MobilePicker/MobilePicker.js.map +1 -0
  373. package/components/DatePicker/MobilePicker/package.json +6 -0
  374. package/components/DatePicker/MobilePicker.d.ts +10 -0
  375. package/components/DatePicker/MobilePicker.styles/MobilePicker.styles.js +10 -0
  376. package/components/DatePicker/MobilePicker.styles/MobilePicker.styles.js.map +1 -0
  377. package/components/DatePicker/MobilePicker.styles/package.json +6 -0
  378. package/components/DatePicker/MobilePicker.styles.d.ts +3 -0
  379. package/components/DatePicker/Picker/Picker.js +3 -3
  380. package/components/DatePicker/Picker/Picker.js.map +1 -1
  381. package/components/DatePicker/getMobilePickerTheme/getMobilePickerTheme.js +14 -0
  382. package/components/DatePicker/getMobilePickerTheme/getMobilePickerTheme.js.map +1 -0
  383. package/components/DatePicker/getMobilePickerTheme/package.json +6 -0
  384. package/components/DatePicker/getMobilePickerTheme.d.ts +2 -0
  385. package/components/Dropdown/Dropdown/Dropdown.js +3 -3
  386. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  387. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -3
  388. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  389. package/components/DropdownMenu/DropdownMenu.md +39 -0
  390. package/components/FileUploader/FileUploader/FileUploader.js +30 -8
  391. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  392. package/components/FileUploader/FileUploader.d.ts +2 -0
  393. package/components/FileUploader/FileUploader.md +29 -0
  394. package/components/FxInput/FxInput/FxInput.js +2 -2
  395. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  396. package/components/Group/Group/Group.js +2 -2
  397. package/components/Group/Group/Group.js.map +1 -1
  398. package/components/Hint/Hint/Hint.js +53 -48
  399. package/components/Hint/Hint/Hint.js.map +1 -1
  400. package/components/Hint/Hint.d.ts +4 -3
  401. package/components/Input/Input/Input.js +3 -3
  402. package/components/Input/Input/Input.js.map +1 -1
  403. package/components/Input/Input.styles/Input.styles.js +2 -2
  404. package/components/Input/Input.styles/Input.styles.js.map +1 -1
  405. package/components/Input/Input.styles.d.ts +1 -1
  406. package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js +2 -2
  407. package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js.map +1 -1
  408. package/components/Input/InputLayout/InputLayout.styles.d.ts +1 -1
  409. package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js +1 -1
  410. package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
  411. package/components/Kebab/Kebab/Kebab.js +7 -4
  412. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  413. package/components/Link/Link/Link.js +6 -3
  414. package/components/Link/Link/Link.js.map +1 -1
  415. package/components/Loader/Loader/Loader.js +2 -2
  416. package/components/Loader/Loader/Loader.js.map +1 -1
  417. package/components/MenuItem/MenuItem/MenuItem.js +3 -3
  418. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  419. package/components/MiniModal/MiniModal/MiniModal.js +2 -2
  420. package/components/MiniModal/MiniModal/MiniModal.js.map +1 -1
  421. package/components/Modal/Modal/Modal.js +3 -3
  422. package/components/Modal/Modal/Modal.js.map +1 -1
  423. package/components/Modal/ModalBody/ModalBody.js +3 -3
  424. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  425. package/components/Paging/Paging/Paging.js +10 -6
  426. package/components/Paging/Paging/Paging.js.map +1 -1
  427. package/components/PasswordInput/PasswordInput/PasswordInput.js +2 -2
  428. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  429. package/components/Radio/Radio/Radio.js +2 -2
  430. package/components/Radio/Radio/Radio.js.map +1 -1
  431. package/components/RadioGroup/RadioGroup/RadioGroup.js +8 -4
  432. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  433. package/components/ScrollContainer/ScrollBar/ScrollBar.js +2 -2
  434. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  435. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +5 -0
  436. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  437. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  438. package/components/Select/Select/Select.js +6 -5
  439. package/components/Select/Select/Select.js.map +1 -1
  440. package/components/SidePage/SidePage/SidePage.js +2 -2
  441. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  442. package/components/SidePage/SidePageBody/SidePageBody.js +2 -2
  443. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  444. package/components/SidePage/SidePageContainer/SidePageContainer.js +2 -2
  445. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  446. package/components/SidePage/SidePageFooter/SidePageFooter.js +2 -2
  447. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  448. package/components/SidePage/SidePageHeader/SidePageHeader.js +2 -2
  449. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  450. package/components/Spinner/Spinner/Spinner.js +2 -2
  451. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  452. package/components/Switcher/Switcher/Switcher.js +3 -3
  453. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  454. package/components/Tabs/Indicator/Indicator.js +2 -2
  455. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  456. package/components/Tabs/Tab/Tab.js +3 -3
  457. package/components/Tabs/Tab/Tab.js.map +1 -1
  458. package/components/Tabs/Tabs/Tabs.js +2 -2
  459. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  460. package/components/Textarea/Textarea/Textarea.js +2 -2
  461. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  462. package/components/Toast/Toast/Toast.js +3 -3
  463. package/components/Toast/Toast/Toast.js.map +1 -1
  464. package/components/Toast/ToastView/ToastView.js +2 -2
  465. package/components/Toast/ToastView/ToastView.js.map +1 -1
  466. package/components/Toggle/Toggle/Toggle.js +2 -2
  467. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  468. package/components/Token/Token/Token.js +6 -3
  469. package/components/Token/Token/Token.js.map +1 -1
  470. package/components/TokenInput/TokenInput/TokenInput.js +2 -2
  471. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  472. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +3 -3
  473. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  474. package/components/Tooltip/Tooltip/Tooltip.js +67 -46
  475. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  476. package/components/Tooltip/Tooltip.d.ts +10 -5
  477. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +3 -3
  478. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  479. package/hooks/useDrop/useDrop.js.map +1 -1
  480. package/hooks/useDrop.d.ts +1 -1
  481. package/index.d.ts +2 -0
  482. package/index.js +2 -0
  483. package/index.js.map +1 -1
  484. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +2 -2
  485. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  486. package/internal/CommonWrapper/utils/extractCommonProps/extractCommonProps.js.map +1 -0
  487. package/internal/CommonWrapper/{extractCommonProps → utils/extractCommonProps}/package.json +1 -1
  488. package/internal/CommonWrapper/{extractCommonProps.d.ts → utils/extractCommonProps.d.ts} +2 -2
  489. package/internal/CommonWrapper/{getCommonVisualStateDataAttributes → utils/getCommonVisualStateDataAttributes}/getCommonVisualStateDataAttributes.js +1 -5
  490. package/internal/CommonWrapper/utils/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +1 -0
  491. package/internal/CommonWrapper/{getCommonVisualStateDataAttributes → utils/getCommonVisualStateDataAttributes}/package.json +1 -1
  492. package/internal/CommonWrapper/{getVisualStateDataAttributes → utils/getVisualStateDataAttributes}/getVisualStateDataAttributes.js +3 -3
  493. package/internal/CommonWrapper/utils/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +1 -0
  494. package/internal/CommonWrapper/{getVisualStateDataAttributes → utils/getVisualStateDataAttributes}/package.json +1 -1
  495. package/internal/CommonWrapper/{getVisualStateDataAttributes.d.ts → utils/getVisualStateDataAttributes.d.ts} +1 -1
  496. package/internal/CommonWrapper/utils/tryGetBoolean/package.json +6 -0
  497. package/internal/CommonWrapper/utils/tryGetBoolean/tryGetBoolean.js +3 -0
  498. package/internal/CommonWrapper/utils/tryGetBoolean/tryGetBoolean.js.map +1 -0
  499. package/internal/CommonWrapper/utils/tryGetBoolean.d.ts +1 -0
  500. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +3 -3
  501. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  502. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +5 -3
  503. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  504. package/internal/DateSelect/DateSelect/DateSelect.js +59 -6
  505. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  506. package/internal/DateSelect/DateSelect.d.ts +2 -0
  507. package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js +4 -1
  508. package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js.map +1 -1
  509. package/internal/DateSelect/DateSelect.styles.d.ts +1 -0
  510. package/internal/DateSelect/locale/locales/en/en.js +2 -1
  511. package/internal/DateSelect/locale/locales/en/en.js.map +1 -1
  512. package/internal/DateSelect/locale/locales/ru/ru.js +2 -1
  513. package/internal/DateSelect/locale/locales/ru/ru.js.map +1 -1
  514. package/internal/DateSelect/locale/types.d.ts +1 -0
  515. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +12 -3
  516. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
  517. package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +5 -2
  518. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +4 -2
  519. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  520. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -0
  521. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +4 -2
  522. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  523. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
  524. package/internal/InputLikeText/InputLikeText/InputLikeText.js +3 -3
  525. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  526. package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js +2 -2
  527. package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
  528. package/internal/InternalMenu/InternalMenu/InternalMenu.js +3 -3
  529. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  530. package/internal/Menu/Menu/Menu.js +3 -3
  531. package/internal/Menu/Menu/Menu.js.map +1 -1
  532. package/internal/MobilePopup/MobilePopup/MobilePopup.js +4 -3
  533. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  534. package/internal/MobilePopup/MobilePopup.d.ts +4 -0
  535. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js +37 -0
  536. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js.map +1 -0
  537. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/package.json +6 -0
  538. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +7 -0
  539. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js +11 -0
  540. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js.map +1 -0
  541. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/package.json +6 -0
  542. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +4 -0
  543. package/internal/MobilePopup/MobilePopupFooter/index/index.js +1 -0
  544. package/internal/MobilePopup/MobilePopupFooter/index/index.js.map +1 -0
  545. package/internal/MobilePopup/MobilePopupFooter/index/package.json +6 -0
  546. package/internal/MobilePopup/MobilePopupFooter/index.d.ts +1 -0
  547. package/internal/MobilePopup/MobilePopupFooter/package.json +6 -0
  548. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +2 -2
  549. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  550. package/internal/NativeDateInput/utils/utils.js +2 -1
  551. package/internal/NativeDateInput/utils/utils.js.map +1 -1
  552. package/internal/Popup/Popup/Popup.js +53 -10
  553. package/internal/Popup/Popup/Popup.js.map +1 -1
  554. package/internal/Popup/Popup.d.ts +15 -4
  555. package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -3
  556. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  557. package/internal/RenderContainer/RenderContainer/RenderContainer.js +19 -12
  558. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  559. package/internal/RenderContainer/RenderContainer.d.ts +3 -0
  560. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +11 -5
  561. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  562. package/internal/RenderLayer/RenderLayer/RenderLayer.js +2 -2
  563. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  564. package/internal/ThemePlayground/Playground/Playground.js +2 -2
  565. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  566. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +10 -7
  567. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  568. package/internal/ThemePlayground/constants/constants.js +3 -0
  569. package/internal/ThemePlayground/constants/constants.js.map +1 -1
  570. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +2 -2
  571. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  572. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  573. package/internal/ZIndex/ZIndex/ZIndex.js +55 -7
  574. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  575. package/internal/ZIndex/ZIndex.d.ts +7 -3
  576. package/internal/themes/DarkTheme/DarkTheme.js +2 -0
  577. package/internal/themes/DarkTheme/DarkTheme.js.map +1 -1
  578. package/internal/themes/DarkTheme.d.ts +2 -0
  579. package/internal/themes/DefaultTheme/DefaultTheme.js +32 -1
  580. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  581. package/internal/themes/DefaultTheme.d.ts +18 -0
  582. package/lib/date/InternalDate/InternalDate.js +7 -1
  583. package/lib/date/InternalDate/InternalDate.js.map +1 -1
  584. package/lib/date/InternalDate.d.ts +2 -0
  585. package/lib/date/InternalDateTransformer/InternalDateTransformer.js +30 -0
  586. package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
  587. package/lib/date/InternalDateTransformer.d.ts +3 -0
  588. package/lib/date/InternalDateValidator/InternalDateValidator.js +6 -1
  589. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  590. package/lib/date/comparison/comparison.js +45 -0
  591. package/lib/date/comparison/comparison.js.map +1 -0
  592. package/lib/date/comparison/package.json +6 -0
  593. package/lib/date/comparison.d.ts +6 -0
  594. package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +24 -0
  595. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  596. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
  597. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  598. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  599. package/lib/listenFocusOutside/listenFocusOutside.js +3 -2
  600. package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
  601. package/lib/locale/constants/constants.js +4 -1
  602. package/lib/locale/constants/constants.js.map +1 -1
  603. package/lib/locale/constants.d.ts +3 -0
  604. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +2 -0
  605. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
  606. package/lib/theming/Emotion/Emotion.js +12 -3
  607. package/lib/theming/Emotion/Emotion.js.map +1 -1
  608. package/lib/theming/Emotion.d.ts +7 -1
  609. package/lib/theming/ThemeContext/ThemeContext.js +0 -2
  610. package/lib/theming/ThemeContext/ThemeContext.js.map +1 -1
  611. package/lib/theming/ThemeContext.d.ts +0 -2
  612. package/lib/theming/ThemeContext.md +3 -1
  613. package/lib/theming/themes/Theme2022DarkUpdate2024/Theme2022DarkUpdate2024.js +33 -0
  614. package/lib/theming/themes/Theme2022DarkUpdate2024/Theme2022DarkUpdate2024.js.map +1 -0
  615. package/lib/theming/themes/Theme2022DarkUpdate2024/package.json +6 -0
  616. package/lib/theming/themes/Theme2022DarkUpdate2024.d.ts +30 -0
  617. package/lib/theming/themes/Theme2022Update2024/Theme2022Update2024.js +50 -0
  618. package/lib/theming/themes/Theme2022Update2024/Theme2022Update2024.js.map +1 -0
  619. package/lib/theming/themes/Theme2022Update2024/package.json +6 -0
  620. package/lib/theming/themes/Theme2022Update2024.d.ts +46 -0
  621. package/lib/widgets/StylesContainer/StylesContainer.js +65 -0
  622. package/lib/widgets/StylesContainer/StylesContainer.js.map +1 -0
  623. package/lib/widgets/StylesContainer/package.json +6 -0
  624. package/lib/widgets/StylesContainer.d.ts +13 -0
  625. package/lib/widgets/index/index.js +1 -0
  626. package/lib/widgets/index/index.js.map +1 -0
  627. package/lib/widgets/index/package.json +6 -0
  628. package/lib/widgets/index.d.ts +1 -0
  629. package/lib/widgets/package.json +6 -0
  630. package/package.json +3 -2
  631. package/cjs/internal/CommonWrapper/extractCommonProps.js.map +0 -1
  632. package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js.map +0 -1
  633. package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js.map +0 -1
  634. package/cjs/lib/theming/StyleContainer.d.ts +0 -4
  635. package/cjs/lib/theming/StyleContainer.js +0 -21
  636. package/cjs/lib/theming/StyleContainer.js.map +0 -1
  637. package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js.map +0 -1
  638. package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +0 -1
  639. package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +0 -1
  640. package/lib/theming/StyleContainer/StyleContainer.js +0 -21
  641. package/lib/theming/StyleContainer/StyleContainer.js.map +0 -1
  642. package/lib/theming/StyleContainer/package.json +0 -6
  643. package/lib/theming/StyleContainer.d.ts +0 -4
  644. /package/cjs/internal/CommonWrapper/{extractCommonProps.js → utils/extractCommonProps.js} +0 -0
  645. /package/cjs/internal/CommonWrapper/{getCommonVisualStateDataAttributes.d.ts → utils/getCommonVisualStateDataAttributes.d.ts} +0 -0
  646. /package/internal/CommonWrapper/{extractCommonProps → utils/extractCommonProps}/extractCommonProps.js +0 -0
  647. /package/internal/CommonWrapper/{getCommonVisualStateDataAttributes.d.ts → utils/getCommonVisualStateDataAttributes.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["Modal.tsx"],"names":["React","FocusLock","throttle","globalObject","isNonNullable","isKeyEscape","LayoutEvents","RenderContainer","ZIndex","stopPropagation","HideBodyVerticalScroll","ModalStack","ResizeDetector","isIE11","CommonWrapper","EmotionConsumer","createPropsGetter","ResponsiveLayout","ThemeConsumer","ThemeProvider","ModalContext","ModalFooter","ModalHeader","ModalBody","ModalClose","getStyles","getModalTheme","mountedModalsCount","ModalDataTids","container","content","close","Modal","getProps","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","handleResize","emit","setHasHeader","setHasFooter","setHasPanel","componentDidMount","add","addEventListener","componentWillUnmount","removeEventListener","remove","render","emotion","theme","renderMain","noClose","width","alignTop","children","ariaLabel","ariaLabelledby","role","disableFocusLock","modalContextProps","additionalPadding","style","containerStyle","styles","root","bg","isMobile","cx","containerMobile","centerContainer","mobileCenterContainer","Boolean","undefined","window","mobileWindow","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWithoutHeader","Component","__KONTUR_REACT_UI__","displayName","Header","Body","Footer"],"mappings":"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","sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport { ModalStack, ModalStackSubscription } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { ThemeConsumer, ThemeProvider } from '../../lib/theming/ThemeContext';\n\nimport { ModalContext, ModalContextProps } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { getStyles } from './Modal.styles';\nimport { getModalTheme } from './getModalTheme';\n\nlet mountedModalsCount = 0;\n\nexport interface ModalProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {\n /**\n * Отключает событие onClose, также дизейблит кнопку закрытия модалки\n */\n disableClose?: boolean;\n\n /**\n * Выравнивание окна по верху страницы.\n */\n alignTop?: boolean;\n\n /**\n * Не закрывать окно при клике на фон.\n */\n ignoreBackgroundClick?: boolean;\n\n /**\n * Не показывать крестик для закрытия окна.\n */\n noClose?: boolean;\n width?: number | string;\n\n /**\n * Вызывается, когда пользователь запросил закрытие окна (нажал на фон, на\n * Escape или на крестик).\n */\n onClose?: () => void;\n\n /**\n * Не использовать фокус-лок внутри модалки.\n * По умолчанию true для IE11.\n */\n disableFocusLock?: boolean;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const ModalDataTids = {\n container: 'modal-container',\n content: 'modal-content',\n close: 'modal-close',\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role'>>;\n\n/**\n * Модальное окно\n *\n * Содержит в себе три компоненты: **Modal.Header**,\n * **Modal.Body** и **Modal.Footer**\n *\n * Для отображения серой плашки в футере в компонент\n * **Footer** необходимо передать пропс **panel**\n *\n * Для отключения прилипания шапки и футера\n * в соответствующий компонент нужно передать\n * проп **sticky** со значением **false**\n * (по-умолчанию прилипание включено)\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n public static displayName = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps: DefaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n role: 'dialog',\n };\n\n private getProps = createPropsGetter(Modal.defaultProps);\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n globalObject.addEventListener?.('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n globalObject.removeEventListener?.('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public render(): JSX.Element {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeConsumer>\n {(theme) => {\n this.theme = getModalTheme(theme, this.props.theme);\n return <ThemeProvider value={this.theme}>{this.renderMain()}</ThemeProvider>;\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private renderMain() {\n const {\n noClose,\n disableClose,\n width,\n alignTop,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n } = this.props;\n const { hasHeader, hasFooter, hasPanel } = this.state;\n const { role, disableFocusLock } = this.getProps();\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n if (!noClose) {\n modalContextProps.close = {\n disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter) {\n modalContextProps.additionalPadding = true;\n }\n if (hasFooter && hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (width) {\n style.width = width;\n } else {\n containerStyle.width = 'auto';\n }\n\n const styles = getStyles(this.emotion);\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && (\n <div\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n className={styles.bg(this.theme)}\n />\n )}\n <ResponsiveLayout>\n {({ isMobile }) => (\n <div\n aria-labelledby={ariaLabelledby}\n ref={this.refContainer}\n className={this.emotion.cx(styles.container(), isMobile && styles.containerMobile(this.theme))}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <div\n aria-modal\n aria-label={ariaLabel}\n role={role}\n className={this.emotion.cx({\n [styles.centerContainer()]: true,\n [styles.mobileCenterContainer()]: isMobile,\n [styles.alignTop()]: Boolean(alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={this.emotion.cx({\n [styles.window(this.theme)]: true,\n [styles.mobileWindow()]: isMobile,\n })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={disableFocusLock}\n autoFocus={false}\n className={this.emotion.cx(\n { [styles.columnFlexContainer()]: isMobile },\n 'focus-lock-container',\n )}\n >\n {!hasHeader && !noClose && (\n <ZIndex\n className={this.emotion.cx({\n [styles.closeWrapper(this.theme)]: true,\n [styles.mobileCloseWrapper(this.theme)]: isMobile,\n })}\n >\n <ModalClose\n className={this.emotion.cx({\n [styles.mobileCloseWithoutHeader()]: isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>{children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n </div>\n )}\n </ResponsiveLayout>\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private throttledCheckHorizontalScroll = throttle(this.checkHorizontalScrollAppearance, 100);\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"]}
1
+ {"version":3,"sources":["Modal.tsx"],"names":["React","FocusLock","throttle","globalObject","isNonNullable","isKeyEscape","LayoutEvents","RenderContainer","ZIndex","stopPropagation","HideBodyVerticalScroll","ModalStack","ResizeDetector","isIE11","CommonWrapper","EmotionConsumer","createPropsGetter","ResponsiveLayout","ThemeContext","ModalContext","ModalFooter","ModalHeader","ModalBody","ModalClose","getStyles","getModalTheme","mountedModalsCount","ModalDataTids","container","content","close","Modal","getProps","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","handleResize","emit","setHasHeader","setHasFooter","setHasPanel","componentDidMount","add","addEventListener","componentWillUnmount","removeEventListener","remove","render","emotion","theme","renderMain","noClose","width","alignTop","children","ariaLabel","ariaLabelledby","role","disableFocusLock","modalContextProps","additionalPadding","style","containerStyle","styles","root","bg","isMobile","cx","containerMobile","centerContainer","mobileCenterContainer","Boolean","undefined","window","mobileWindow","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWithoutHeader","Component","__KONTUR_REACT_UI__","displayName","Header","Body","Footer"],"mappings":"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","sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport { ModalStack, ModalStackSubscription } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { ModalContext, ModalContextProps } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { getStyles } from './Modal.styles';\nimport { getModalTheme } from './getModalTheme';\n\nlet mountedModalsCount = 0;\n\nexport interface ModalProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {\n /**\n * Отключает событие onClose, также дизейблит кнопку закрытия модалки\n */\n disableClose?: boolean;\n\n /**\n * Выравнивание окна по верху страницы.\n */\n alignTop?: boolean;\n\n /**\n * Не закрывать окно при клике на фон.\n */\n ignoreBackgroundClick?: boolean;\n\n /**\n * Не показывать крестик для закрытия окна.\n */\n noClose?: boolean;\n width?: number | string;\n\n /**\n * Вызывается, когда пользователь запросил закрытие окна (нажал на фон, на\n * Escape или на крестик).\n */\n onClose?: () => void;\n\n /**\n * Не использовать фокус-лок внутри модалки.\n * По умолчанию true для IE11.\n */\n disableFocusLock?: boolean;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const ModalDataTids = {\n container: 'modal-container',\n content: 'modal-content',\n close: 'modal-close',\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role'>>;\n\n/**\n * Модальное окно\n *\n * Содержит в себе три компоненты: **Modal.Header**,\n * **Modal.Body** и **Modal.Footer**\n *\n * Для отображения серой плашки в футере в компонент\n * **Footer** необходимо передать пропс **panel**\n *\n * Для отключения прилипания шапки и футера\n * в соответствующий компонент нужно передать\n * проп **sticky** со значением **false**\n * (по-умолчанию прилипание включено)\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n public static displayName = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps: DefaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n role: 'dialog',\n };\n\n private getProps = createPropsGetter(Modal.defaultProps);\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n globalObject.addEventListener?.('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n globalObject.removeEventListener?.('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public render(): JSX.Element {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalTheme(theme, this.props.theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private renderMain() {\n const {\n noClose,\n disableClose,\n width,\n alignTop,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n } = this.props;\n const { hasHeader, hasFooter, hasPanel } = this.state;\n const { role, disableFocusLock } = this.getProps();\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n if (!noClose) {\n modalContextProps.close = {\n disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter) {\n modalContextProps.additionalPadding = true;\n }\n if (hasFooter && hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (width) {\n style.width = width;\n } else {\n containerStyle.width = 'auto';\n }\n\n const styles = getStyles(this.emotion);\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && (\n <div\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n className={styles.bg(this.theme)}\n />\n )}\n <ResponsiveLayout>\n {({ isMobile }) => (\n <div\n aria-labelledby={ariaLabelledby}\n ref={this.refContainer}\n className={this.emotion.cx(styles.container(), isMobile && styles.containerMobile(this.theme))}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <div\n aria-modal\n aria-label={ariaLabel}\n role={role}\n className={this.emotion.cx({\n [styles.centerContainer()]: true,\n [styles.mobileCenterContainer()]: isMobile,\n [styles.alignTop()]: Boolean(alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={this.emotion.cx({\n [styles.window(this.theme)]: true,\n [styles.mobileWindow()]: isMobile,\n })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={disableFocusLock}\n autoFocus={false}\n className={this.emotion.cx(\n { [styles.columnFlexContainer()]: isMobile },\n 'focus-lock-container',\n )}\n >\n {!hasHeader && !noClose && (\n <ZIndex\n className={this.emotion.cx({\n [styles.closeWrapper(this.theme)]: true,\n [styles.mobileCloseWrapper(this.theme)]: isMobile,\n })}\n >\n <ModalClose\n className={this.emotion.cx({\n [styles.mobileCloseWithoutHeader()]: isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>{children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n </div>\n )}\n </ResponsiveLayout>\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private throttledCheckHorizontalScroll = throttle(this.checkHorizontalScrollAppearance, 100);\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"]}
@@ -11,7 +11,7 @@ import * as LayoutEvents from "../../../lib/LayoutEvents";
11
11
  import { ResizeDetector } from "../../../internal/ResizeDetector";
12
12
  import { rootNode } from "../../../lib/rootNode";
13
13
  import { EmotionConsumer } from "../../../lib/theming/Emotion";
14
- import { ThemeConsumer, ThemeProvider } from "../../../lib/theming/ThemeContext";
14
+ import { ThemeContext } from "../../../lib/theming/ThemeContext";
15
15
  import { ModalContext } from "../ModalContext";
16
16
  import { getStyles } from "../Modal.styles";
17
17
  import { getModalBodyTheme } from "../getModalBodyTheme";
@@ -47,9 +47,9 @@ var ModalBody = responsiveLayout(_class = rootNode(_class = (_temp = _class2 = /
47
47
 
48
48
  return /*#__PURE__*/React.createElement(EmotionConsumer, null, function (emotion) {
49
49
  _this2.emotion = emotion;
50
- return /*#__PURE__*/React.createElement(ThemeConsumer, null, function (theme) {
50
+ return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
51
51
  _this2.theme = getModalBodyTheme(theme);
52
- return /*#__PURE__*/React.createElement(ThemeProvider, {
52
+ return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
53
53
  value: _this2.theme
54
54
  }, _this2.renderMain());
55
55
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["ModalBody.tsx"],"names":["React","ZIndex","CommonWrapper","responsiveLayout","LayoutEvents","ResizeDetector","rootNode","EmotionConsumer","ThemeConsumer","ThemeProvider","ModalContext","getStyles","getModalBodyTheme","ModalBody","handleResize","emit","render","emotion","theme","renderMain","noPadding","props","styles","additionalPadding","hasHeader","setRootNode","cx","body","mobileBody","isMobileLayout","bodyWithoutHeader","mobileBodyWithoutHeader","bodyAddPaddingForPanel","mobileBodyAddPaddingForPanel","bodyWithoutPadding","children","Component","__KONTUR_REACT_UI__","displayName","__MODAL_BODY__"],"mappings":"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","sourcesContent":["import React from 'react';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { ThemeConsumer, ThemeProvider } from '../../lib/theming/ThemeContext';\n\nimport { ModalContext } from './ModalContext';\nimport { getStyles } from './Modal.styles';\nimport { getModalBodyTheme } from './getModalBodyTheme';\n\nexport interface ModalBodyProps extends CommonProps {\n /**\n * убирает отступы\n */\n noPadding?: boolean;\n}\n\n/**\n * Контейнер с отступами от края модалки\n *\n * @visibleName Modal.Body\n */\n@responsiveLayout\n@rootNode\nexport class ModalBody extends React.Component<ModalBodyProps> {\n public static __KONTUR_REACT_UI__ = 'ModalBody';\n public static displayName = 'ModalBody';\n public static __MODAL_BODY__ = true;\n\n private theme!: Theme;\n private emotion!: Emotion;\n private isMobileLayout!: boolean;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeConsumer>\n {(theme) => {\n this.theme = getModalBodyTheme(theme);\n return <ThemeProvider value={this.theme}>{this.renderMain()}</ThemeProvider>;\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n public renderMain(): JSX.Element {\n const { noPadding } = this.props;\n const styles = getStyles(this.emotion);\n\n return (\n <ModalContext.Consumer>\n {({ additionalPadding, hasHeader }) => (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <ZIndex\n className={this.emotion.cx({\n [styles.body(this.theme)]: true,\n [styles.mobileBody(this.theme)]: this.isMobileLayout,\n [styles.bodyWithoutHeader(this.theme)]: !hasHeader,\n [styles.mobileBodyWithoutHeader()]: !hasHeader && this.isMobileLayout,\n [styles.bodyAddPaddingForPanel(this.theme)]: additionalPadding,\n [styles.mobileBodyAddPaddingForPanel(this.theme)]: additionalPadding && this.isMobileLayout,\n [styles.bodyWithoutPadding()]: noPadding,\n })}\n >\n {this.isMobileLayout ? (\n <ResizeDetector onResize={this.handleResize}>{this.props.children}</ResizeDetector>\n ) : (\n this.props.children\n )}\n </ZIndex>\n </CommonWrapper>\n )}\n </ModalContext.Consumer>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["ModalBody.tsx"],"names":["React","ZIndex","CommonWrapper","responsiveLayout","LayoutEvents","ResizeDetector","rootNode","EmotionConsumer","ThemeContext","ModalContext","getStyles","getModalBodyTheme","ModalBody","handleResize","emit","render","emotion","theme","renderMain","noPadding","props","styles","additionalPadding","hasHeader","setRootNode","cx","body","mobileBody","isMobileLayout","bodyWithoutHeader","mobileBodyWithoutHeader","bodyAddPaddingForPanel","mobileBodyAddPaddingForPanel","bodyWithoutPadding","children","Component","__KONTUR_REACT_UI__","displayName","__MODAL_BODY__"],"mappings":"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","sourcesContent":["import React from 'react';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { ModalContext } from './ModalContext';\nimport { getStyles } from './Modal.styles';\nimport { getModalBodyTheme } from './getModalBodyTheme';\n\nexport interface ModalBodyProps extends CommonProps {\n /**\n * убирает отступы\n */\n noPadding?: boolean;\n}\n\n/**\n * Контейнер с отступами от края модалки\n *\n * @visibleName Modal.Body\n */\n@responsiveLayout\n@rootNode\nexport class ModalBody extends React.Component<ModalBodyProps> {\n public static __KONTUR_REACT_UI__ = 'ModalBody';\n public static displayName = 'ModalBody';\n public static __MODAL_BODY__ = true;\n\n private theme!: Theme;\n private emotion!: Emotion;\n private isMobileLayout!: boolean;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalBodyTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n public renderMain(): JSX.Element {\n const { noPadding } = this.props;\n const styles = getStyles(this.emotion);\n\n return (\n <ModalContext.Consumer>\n {({ additionalPadding, hasHeader }) => (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <ZIndex\n className={this.emotion.cx({\n [styles.body(this.theme)]: true,\n [styles.mobileBody(this.theme)]: this.isMobileLayout,\n [styles.bodyWithoutHeader(this.theme)]: !hasHeader,\n [styles.mobileBodyWithoutHeader()]: !hasHeader && this.isMobileLayout,\n [styles.bodyAddPaddingForPanel(this.theme)]: additionalPadding,\n [styles.mobileBodyAddPaddingForPanel(this.theme)]: additionalPadding && this.isMobileLayout,\n [styles.bodyWithoutPadding()]: noPadding,\n })}\n >\n {this.isMobileLayout ? (\n <ResizeDetector onResize={this.handleResize}>{this.props.children}</ResizeDetector>\n ) : (\n this.props.children\n )}\n </ZIndex>\n </CommonWrapper>\n )}\n </ModalContext.Consumer>\n );\n }\n}\n"]}
@@ -17,8 +17,8 @@ import { CommonWrapper } from "../../../internal/CommonWrapper";
17
17
  import { rootNode } from "../../../lib/rootNode";
18
18
  import { createPropsGetter } from "../../../lib/createPropsGetter";
19
19
  import { isTheme2022 } from "../../../lib/theming/ThemeHelpers";
20
- import { getVisualStateDataAttributes } from "../../../internal/CommonWrapper/getVisualStateDataAttributes";
21
- import { ThemeConsumer } from "../../../lib/theming/ThemeContext";
20
+ import { getVisualStateDataAttributes } from "../../../internal/CommonWrapper/utils/getVisualStateDataAttributes";
21
+ import { ThemeContext } from "../../../lib/theming/ThemeContext";
22
22
  import { EmotionConsumer } from "../../../lib/theming/Emotion";
23
23
  import { getStyles } from "../Paging.styles";
24
24
  import * as NavigationHelper from "../NavigationHelper";
@@ -109,7 +109,7 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
109
109
  }, /*#__PURE__*/React.createElement(ArrowChevronRightIcon, {
110
110
  size: _this.theme.pagingForwardIconSize
111
111
  }));
112
- return /*#__PURE__*/React.createElement(Component, {
112
+ return /*#__PURE__*/React.createElement(Component, _extends({
113
113
  key: 'forward',
114
114
  "data-tid": PagingDataTids.forwardLink,
115
115
  active: false,
@@ -117,7 +117,9 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
117
117
  onClick: disabled ? emptyHandler : _this.goForward,
118
118
  tabIndex: -1,
119
119
  pageNumber: 'forward'
120
- }, _this.props.caption || forward, forwardIcon);
120
+ }, getVisualStateDataAttributes({
121
+ disabled: disabled
122
+ })), _this.props.caption || forward, forwardIcon);
121
123
  };
122
124
 
123
125
  _this.renderPageLink = function (pageNumber, active, focused) {
@@ -445,7 +447,7 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
445
447
 
446
448
  return /*#__PURE__*/React.createElement(EmotionConsumer, null, function (emotion) {
447
449
  _this2.emotion = emotion;
448
- return /*#__PURE__*/React.createElement(ThemeConsumer, null, function (theme) {
450
+ return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
449
451
  _this2.theme = theme;
450
452
  return _this2.renderMain();
451
453
  });
@@ -462,7 +464,9 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
462
464
  var styles = getStyles(this.emotion);
463
465
  return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
464
466
  rootNodeRef: this.setRootNode
465
- }, this.props), /*#__PURE__*/React.createElement("span", {
467
+ }, this.props, getVisualStateDataAttributes({
468
+ disabled: this.props.disabled
469
+ })), /*#__PURE__*/React.createElement("span", {
466
470
  tabIndex: this.props.disabled ? -1 : 0,
467
471
  "data-tid": dataTid,
468
472
  className: this.emotion.cx((_this$emotion$cx4 = {}, _this$emotion$cx4[styles.paging(this.theme)] = true, _this$emotion$cx4[styles.pagingDisabled()] = this.props.disabled, _this$emotion$cx4)),
@@ -1 +1 @@
1
- {"version":3,"sources":["Paging.tsx"],"names":["React","func","number","globalObject","isInstanceOf","isKeyArrowLeft","isKeyArrowRight","isKeyEnter","locale","keyListener","emptyHandler","isIE11","ArrowChevronRightIcon","CommonWrapper","rootNode","createPropsGetter","isTheme2022","getVisualStateDataAttributes","ThemeConsumer","EmotionConsumer","getStyles","NavigationHelper","getItems","PagingLocaleHelper","PagingDefaultComponent","ForwardIcon","IGNORE_EVENT_TAGS","PagingDataTids","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","getProps","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","styles","emotion","cx","theme","dotsDisabled","classes","pageLinkFocused","pageLinkDisabled","forwardLinkFocused","forwardLinkDisabled","Component","component","forward","forwardIcon","parseInt","pagingForwardIconSize","marginLeft","goForward","caption","pageNumber","pageLinkCurrent","pageLinkCurrentDisabled","handleClick","goToPage","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","hint","transparent","getKeyName","pageLinkHint","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","dataTid","setRootNode","paging","pagingDisabled","undefined","map","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { func, number } from 'prop-types';\nimport { globalObject } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\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 { Theme } from '../../lib/theming/Theme';\nimport { ArrowChevronRightIcon } from '../../internal/icons/16px';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/getVisualStateDataAttributes';\nimport { ThemeConsumer } from '../../lib/theming/ThemeContext';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\n\nimport { getStyles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport { PagingLocale, PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\nimport { ForwardIcon } from './ForwardIcon';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\nexport interface 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\nexport const PagingDataTids = {\n root: 'Paging__root',\n dots: 'Paging__dots',\n forwardLink: 'Paging__forwardLink',\n pageLinkWrapper: 'Paging__pageLinkWrapper',\n pageLink: 'Paging__pageLink',\n} as const;\n\ntype DefaultProps = Required<\n Pick<PagingProps, 'component' | 'shouldBeVisibleWithLessThanTwoPages' | 'useGlobalListener' | 'data-tid'>\n>;\n\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n public static displayName = 'Paging';\n\n public static defaultProps: DefaultProps = {\n component: PagingDefaultComponent,\n shouldBeVisibleWithLessThanTwoPages: true,\n useGlobalListener: false,\n 'data-tid': PagingDataTids.root,\n };\n\n private getProps = createPropsGetter(Paging.defaultProps);\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.getProps().useGlobalListener,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private readonly locale!: PagingLocale;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (!prevProps.useGlobalListener && useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== useGlobalListener) {\n this.setState({\n keyboardControl: useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2 && !this.getProps().shouldBeVisibleWithLessThanTwoPages) {\n return null;\n }\n\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeConsumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private renderMain() {\n const { 'data-tid': dataTid, useGlobalListener } = this.getProps();\n const styles = getStyles(this.emotion);\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span\n tabIndex={this.props.disabled ? -1 : 0}\n data-tid={dataTid}\n className={this.emotion.cx({\n [styles.paging(this.theme)]: true,\n [styles.pagingDisabled()]: this.props.disabled,\n })}\n onKeyDown={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 const styles = getStyles(this.emotion);\n return (\n <span\n data-tid={PagingDataTids.dots}\n key={key}\n className={this.emotion.cx({\n [styles.dots(this.theme)]: true,\n [styles.dotsDisabled(this.theme)]: this.props.disabled,\n })}\n >\n {'...'}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const styles = getStyles(this.emotion);\n const classes = isTheme2022(this.theme)\n ? this.emotion.cx(\n styles.pageLink(this.theme),\n styles.forwardLink(this.theme),\n focused && styles.pageLinkFocused(this.theme),\n (disabled || this.props.disabled) && styles.pageLinkDisabled(this.theme),\n )\n : this.emotion.cx({\n [styles.forwardLink(this.theme)]: true,\n [styles.forwardLinkFocused()]: focused,\n [styles.forwardLinkDisabled(this.theme)]: disabled || this.props.disabled,\n });\n const Component = this.getProps().component;\n const { forward } = this.locale;\n\n const forwardIcon = isTheme2022(this.theme) ? (\n <ForwardIcon size={parseInt(this.theme.pagingForwardIconSize)} style={{ marginLeft: 4 }} />\n ) : (\n <span className={styles.forwardIcon(this.theme)}>\n <ArrowChevronRightIcon size={this.theme.pagingForwardIconSize} />\n </span>\n );\n\n return (\n <Component\n key={'forward'}\n data-tid={PagingDataTids.forwardLink}\n active={false}\n className={classes}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n >\n {this.props.caption || forward}\n {forwardIcon}\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const styles = getStyles(this.emotion);\n const disabled = this.props.disabled;\n const classes = this.emotion.cx({\n [styles.pageLink(this.theme)]: true,\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.pageLinkDisabled(this.theme)]: disabled,\n [styles.pageLinkCurrent(this.theme)]: active,\n [styles.pageLinkCurrentDisabled(this.theme)]: active && disabled,\n });\n const Component = this.getProps().component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid={PagingDataTids.pageLinkWrapper}\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n {...getVisualStateDataAttributes({ active, disabled })}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid={PagingDataTids.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 let hint = null;\n const styles = getStyles(this.emotion);\n if (keyboardControl && (canGoBackward || canGoForward)) {\n hint = (\n <>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </>\n );\n }\n return <div className={styles.pageLinkHint(this.theme)}>{hint}</div>;\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 globalObject.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 isInstanceOf(target, globalObject.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 = () => {\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 globalObject.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.getProps().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 globalObject.document?.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n globalObject.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","globalObject","isInstanceOf","isKeyArrowLeft","isKeyArrowRight","isKeyEnter","locale","keyListener","emptyHandler","isIE11","ArrowChevronRightIcon","CommonWrapper","rootNode","createPropsGetter","isTheme2022","getVisualStateDataAttributes","ThemeContext","EmotionConsumer","getStyles","NavigationHelper","getItems","PagingLocaleHelper","PagingDefaultComponent","ForwardIcon","IGNORE_EVENT_TAGS","PagingDataTids","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","getProps","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","styles","emotion","cx","theme","dotsDisabled","classes","pageLinkFocused","pageLinkDisabled","forwardLinkFocused","forwardLinkDisabled","Component","component","forward","forwardIcon","parseInt","pagingForwardIconSize","marginLeft","goForward","caption","pageNumber","pageLinkCurrent","pageLinkCurrentDisabled","handleClick","goToPage","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","hint","transparent","getKeyName","pageLinkHint","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","dataTid","setRootNode","paging","pagingDisabled","undefined","map","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","isRequired"],"mappings":"iKAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,EAAeC,MAAf,QAA6B,YAA7B;AACA,SAASC,YAAT,QAA6B,0BAA7B;;;AAGA,SAASC,YAAT,QAA6B,wBAA7B;AACA,SAASC,cAAT,EAAyBC,eAAzB,EAA0CC,UAA1C,QAA4D,uCAA5D;AACA,SAASC,MAAT,QAAuB,6BAAvB;;AAEA,SAASC,WAAT,QAA4B,8BAA5B;AACA,SAASC,YAAT,QAA6B,iBAA7B;AACA,SAASC,MAAT,QAAuB,kBAAvB;;AAEA,SAASC,qBAAT,QAAsC,2BAAtC;AACA,SAAsBC,aAAtB,QAA2C,8BAA3C;AACA,SAASC,QAAT,QAAuC,oBAAvC;AACA,SAASC,iBAAT,QAAkC,6BAAlC;AACA,SAASC,WAAT,QAA4B,gCAA5B;AACA,SAASC,4BAAT,QAA6C,iEAA7C;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,eAAT,QAAgC,2BAAhC;;AAEA,SAASC,SAAT,QAA0B,iBAA1B;AACA,OAAO,KAAKC,gBAAZ,MAAkC,oBAAlC;AACA,SAASC,QAAT,QAAyB,gBAAzB;AACA,SAAuBC,kBAAvB,QAAiD,UAAjD;AACA,SAASC,sBAAT,QAAuC,0BAAvC;AACA,SAASC,WAAT,QAA4B,eAA5B;;AAEA,IAAMC,iBAAiB,GAAG,CAAC,OAAD,EAAU,UAAV,CAA1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,OAAO,IAAMC,cAAc,GAAG;AAC5BC,EAAAA,IAAI,EAAE,cADsB;AAE5BC,EAAAA,IAAI,EAAE,cAFsB;AAG5BC,EAAAA,WAAW,EAAE,qBAHe;AAI5BC,EAAAA,eAAe,EAAE,yBAJW;AAK5BC,EAAAA,QAAQ,EAAE,kBALkB,EAAvB;;;;;;;;;AAcP,WAAaC,MAAb,WADCzB,MAAM,CAAC,QAAD,EAAWe,kBAAX,CACP,EAFCT,QAED;;;;;;;;;;;AAWUoB,IAAAA,QAXV,GAWqBnB,iBAAiB,CAACkB,MAAM,CAACE,YAAR,CAXtC;;;;;;;;;AAoBSC,IAAAA,KApBT,GAoB8B;AAC1BC,MAAAA,YAAY,EAAE,KADY;AAE1BC,MAAAA,WAAW,EAAE,IAFa;AAG1BC,MAAAA,eAAe,EAAE,MAAKL,QAAL,GAAgBM,iBAHP,EApB9B;;;;;;AA6BUC,IAAAA,mBA7BV,GA6BgC,KA7BhC;AA8BUC,IAAAA,SA9BV,GA8B8C,IA9B9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GUC,IAAAA,UA9GV,GA8GuB,UAACC,IAAD,EAAiBC,KAAjB,EAAmC;AACtD,UAAMC,OAAO,GAAG,MAAKC,cAAL,OAA0BH,IAA1C;AACA,cAAQA,IAAR;AACE,aAAK,GAAL,CAAU;AACR,gBAAMI,GAAG,aAAUH,KAAK,GAAG,CAAR,GAAY,MAAZ,GAAqB,OAA/B,CAAT;AACA,mBAAO,MAAKI,UAAL,CAAgBD,GAAhB,CAAP;AACD;AACD,aAAK,SAAL,CAAgB;AACd,gBAAME,QAAQ,GAAG,MAAKC,cAAL,CAAoBP,IAApB,CAAjB;AACA,mBAAO,MAAKQ,iBAAL,CAAuBF,QAAvB,EAAiCJ,OAAjC,CAAP;AACD;AACD,gBAAS;AACP,gBAAMO,MAAM,GAAG,MAAKC,KAAL,CAAWC,UAAX,KAA0BX,IAAzC;AACA,mBAAO,MAAKY,cAAL,CAAoBZ,IAApB,EAA0BS,MAA1B,EAAkCP,OAAlC,CAAP;AACD,WAZH;;AAcD,KA9HH;;AAgIUG,IAAAA,UAhIV,GAgIuB,UAACD,GAAD,EAAiB;AACpC,UAAMS,MAAM,GAAGrC,SAAS,CAAC,MAAKsC,OAAN,CAAxB;AACA;AACE;AACE,sBAAU/B,cAAc,CAACE,IAD3B;AAEE,UAAA,GAAG,EAAEmB,GAFP;AAGE,UAAA,SAAS,EAAE,MAAKU,OAAL,CAAaC,EAAb;AACRF,UAAAA,MAAM,CAAC5B,IAAP,CAAY,MAAK+B,KAAjB,CADQ,IACkB,IADlB;AAERH,UAAAA,MAAM,CAACI,YAAP,CAAoB,MAAKD,KAAzB,CAFQ,IAE0B,MAAKN,KAAL,CAAWJ,QAFrC,oBAHb;;;AAQG,aARH,CADF;;;AAYD,KA9IH;;AAgJUE,IAAAA,iBAhJV,GAgJ8B,UAACF,QAAD,EAAoBJ,OAApB,EAAsD;AAChF,UAAMW,MAAM,GAAGrC,SAAS,CAAC,MAAKsC,OAAN,CAAxB;AACA,UAAMI,OAAO,GAAG9C,WAAW,CAAC,MAAK4C,KAAN,CAAX;AACZ,YAAKF,OAAL,CAAaC,EAAb;AACEF,MAAAA,MAAM,CAACzB,QAAP,CAAgB,MAAK4B,KAArB,CADF;AAEEH,MAAAA,MAAM,CAAC3B,WAAP,CAAmB,MAAK8B,KAAxB,CAFF;AAGEd,MAAAA,OAAO,IAAIW,MAAM,CAACM,eAAP,CAAuB,MAAKH,KAA5B,CAHb;AAIE,OAACV,QAAQ,IAAI,MAAKI,KAAL,CAAWJ,QAAxB,KAAqCO,MAAM,CAACO,gBAAP,CAAwB,MAAKJ,KAA7B,CAJvC,CADY;;AAOZ,YAAKF,OAAL,CAAaC,EAAb;AACGF,MAAAA,MAAM,CAAC3B,WAAP,CAAmB,MAAK8B,KAAxB,CADH,IACoC,IADpC;AAEGH,MAAAA,MAAM,CAACQ,kBAAP,EAFH,IAEiCnB,OAFjC;AAGGW,MAAAA,MAAM,CAACS,mBAAP,CAA2B,MAAKN,KAAhC,CAHH,IAG4CV,QAAQ,IAAI,MAAKI,KAAL,CAAWJ,QAHnE,qBAPJ;;AAYA,UAAMiB,SAAS,GAAG,MAAKjC,QAAL,GAAgBkC,SAAlC;AACA,UAAQC,OAAR,GAAoB,MAAK7D,MAAzB,CAAQ6D,OAAR;;AAEA,UAAMC,WAAW,GAAGtD,WAAW,CAAC,MAAK4C,KAAN,CAAX;AAClB,0BAAC,WAAD,IAAa,IAAI,EAAEW,QAAQ,CAAC,MAAKX,KAAL,CAAWY,qBAAZ,CAA3B,EAA+D,KAAK,EAAE,EAAEC,UAAU,EAAE,CAAd,EAAtE,GADkB;;AAGlB,oCAAM,SAAS,EAAEhB,MAAM,CAACa,WAAP,CAAmB,MAAKV,KAAxB,CAAjB;AACE,0BAAC,qBAAD,IAAuB,IAAI,EAAE,MAAKA,KAAL,CAAWY,qBAAxC,GADF,CAHF;;;;AAQA;AACE,4BAAC,SAAD;AACE,UAAA,GAAG,EAAE,SADP;AAEE,sBAAU7C,cAAc,CAACG,WAF3B;AAGE,UAAA,MAAM,EAAE,KAHV;AAIE,UAAA,SAAS,EAAEgC,OAJb;AAKE,UAAA,OAAO,EAAEZ,QAAQ,GAAGxC,YAAH,GAAkB,MAAKgE,SAL1C;AAME,UAAA,QAAQ,EAAE,CAAC,CANb;AAOE,UAAA,UAAU,EAAE,SAPd;AAQMzD,QAAAA,4BAA4B,CAAC,EAAEiC,QAAQ,EAARA,QAAF,EAAD,CARlC;;AAUG,cAAKI,KAAL,CAAWqB,OAAX,IAAsBN,OAVzB;AAWGC,QAAAA,WAXH,CADF;;;AAeD,KAxLH;;AA0LUd,IAAAA,cA1LV,GA0L2B,UAACoB,UAAD,EAAqBvB,MAArB,EAAsCP,OAAtC,EAAwE;AAC/F,UAAMW,MAAM,GAAGrC,SAAS,CAAC,MAAKsC,OAAN,CAAxB;AACA,UAAMR,QAAQ,GAAG,MAAKI,KAAL,CAAWJ,QAA5B;AACA,UAAMY,OAAO,GAAG,MAAKJ,OAAL,CAAaC,EAAb;AACbF,MAAAA,MAAM,CAACzB,QAAP,CAAgB,MAAK4B,KAArB,CADa,IACiB,IADjB;AAEbH,MAAAA,MAAM,CAACM,eAAP,CAAuB,MAAKH,KAA5B,CAFa,IAEwBd,OAFxB;AAGbW,MAAAA,MAAM,CAACO,gBAAP,CAAwB,MAAKJ,KAA7B,CAHa,IAGyBV,QAHzB;AAIbO,MAAAA,MAAM,CAACoB,eAAP,CAAuB,MAAKjB,KAA5B,CAJa,IAIwBP,MAJxB;AAKbI,MAAAA,MAAM,CAACqB,uBAAP,CAA+B,MAAKlB,KAApC,CALa,IAKgCP,MAAM,IAAIH,QAL1C,qBAAhB;;AAOA,UAAMiB,SAAS,GAAG,MAAKjC,QAAL,GAAgBkC,SAAlC;AACA,UAAMW,WAAW,GAAG,SAAdA,WAAc,WAAM,MAAKC,QAAL,CAAcJ,UAAd,CAAN,EAApB;;AAEA;AACE;AACE,sBAAUjD,cAAc,CAACI,eAD3B;AAEE,UAAA,GAAG,EAAE6C,UAFP;AAGE,UAAA,SAAS,EAAEnB,MAAM,CAAC1B,eAAP,EAHb;AAIMd,QAAAA,4BAA4B,CAAC,EAAEoC,MAAM,EAANA,MAAF,EAAUH,QAAQ,EAARA,QAAV,EAAD,CAJlC;AAKE,UAAA,WAAW,EAAE,MAAK+B,uBALpB;;AAOE,4BAAC,SAAD;AACE,sBAAUtD,cAAc,CAACK,QAD3B;AAEE,UAAA,MAAM,EAAEqB,MAFV;AAGE,UAAA,SAAS,EAAES,OAHb;AAIE,UAAA,OAAO,EAAEiB,WAJX;AAKE,UAAA,QAAQ,EAAE,CAAC,CALb;AAME,UAAA,UAAU,EAAEH,UANd;;AAQGA,QAAAA,UARH,CAPF;;AAiBGvB,QAAAA,MAAM,IAAI,MAAK6B,oBAAL,EAjBb,CADF;;;AAqBD,KA5NH;;AA8NUA,IAAAA,oBA9NV,GA8NiC,YAAM;AACnC,UAAI,MAAK5B,KAAL,CAAW6B,qBAAf,EAAsC;AACpC,eAAO,IAAP;AACD;;AAED,UAAQ5C,eAAR,GAA4B,MAAKH,KAAjC,CAAQG,eAAR;AACA,UAAM6C,aAAa,GAAG,MAAKA,aAAL,EAAtB;AACA,UAAMC,YAAY,GAAG,MAAKA,YAAL,EAArB;;AAEA,UAAIC,IAAI,GAAG,IAAX;AACA,UAAM7B,MAAM,GAAGrC,SAAS,CAAC,MAAKsC,OAAN,CAAxB;AACA,UAAInB,eAAe,KAAK6C,aAAa,IAAIC,YAAtB,CAAnB,EAAwD;AACtDC,QAAAA,IAAI;AACF;AACE,sCAAM,SAAS,EAAEF,aAAa,GAAG,EAAH,GAAQ3B,MAAM,CAAC8B,WAAP,EAAtC,IAA6D,GAA7D,CADF;AAEE,0CAAOlE,gBAAgB,CAACmE,UAAjB,EAAP,CAFF;AAGE,sCAAM,SAAS,EAAEH,YAAY,GAAG,EAAH,GAAQ5B,MAAM,CAAC8B,WAAP,EAArC,IAA4D,GAA5D,CAHF,CADF;;;AAOD;AACD,0BAAO,6BAAK,SAAS,EAAE9B,MAAM,CAACgC,YAAP,CAAoB,MAAK7B,KAAzB,CAAhB,IAAkD0B,IAAlD,CAAP;AACD,KAnPH;;AAqPUI,IAAAA,eArPV,GAqP4B,YAAM;AAC9B,YAAKC,QAAL,CAAc,EAAEtD,YAAY,EAAE,KAAhB,EAAuBC,WAAW,EAAE,IAApC,EAAd;AACD,KAvPH;;AAyPU2C,IAAAA,uBAzPV,GAyPoC,YAAM;AACtC,UAAItE,MAAJ,EAAY;AACV;AACA;AACAR,QAAAA,YAAY,CAACyF,UAAb,CAAwB,oBAAM,MAAKlD,SAAL,IAAkB,MAAKA,SAAL,CAAemD,KAAf,EAAxB,EAAxB,EAAwE,CAAxE;AACD;AACF,KA/PH;;AAiQUC,IAAAA,aAjQV,GAiQ0B,UAACC,CAAD,EAAyD;AAC/E,UAAIA,CAAC,CAACC,QAAN,EAAgB;AACd;AACD;;AAED,UAAMC,MAAM,GAAGF,CAAC,CAACE,MAAjB;;AAEA,UAAMC,WAAW,GAAG7F,cAAc,CAAC0F,CAAD,CAAlC;AACA,UAAMI,YAAY,GAAG7F,eAAe,CAACyF,CAAD,CAApC;;AAEA;AACE3F,MAAAA,YAAY,CAAC6F,MAAD,EAAS9F,YAAY,CAACiG,OAAtB,CAAZ;AACC1E,MAAAA,iBAAiB,CAAC2E,QAAlB,CAA2BJ,MAAM,CAACK,OAAP,CAAeC,WAAf,EAA3B,KAA6DN,MAAD,CAAwBO,iBADrF,CADF;AAGE;AACA;AACD;;AAED,UAAInF,gBAAgB,CAACoF,eAAjB,CAAiCV,CAAjC,KAAuCG,WAA3C,EAAwD;AACtD,cAAKP,QAAL,CAAc,EAAErD,WAAW,EAAE,IAAf,EAAd,EAAqC,MAAKoE,UAA1C;AACA;AACD;AACD,UAAIrF,gBAAgB,CAACoF,eAAjB,CAAiCV,CAAjC,KAAuCI,YAA3C,EAAyD;AACvD,cAAKR,QAAL,CAAc,EAAErD,WAAW,EAAE,IAAf,EAAd,EAAqC,MAAKoC,SAA1C;AACA;AACD;;AAED,UAAI,MAAKhC,SAAL,IAAkB,MAAKA,SAAL,KAAmBqD,CAAC,CAACE,MAA3C,EAAmD;AACjD,YAAIC,WAAJ,EAAiB;AACf,gBAAKP,QAAL,CAAc,EAAEtD,YAAY,EAAE,IAAhB,EAAd,EAAsC,MAAKsE,aAA3C;AACA;AACD;AACD,YAAIR,YAAJ,EAAkB;AAChB,gBAAKR,QAAL,CAAc,EAAEtD,YAAY,EAAE,IAAhB,EAAd,EAAsC,MAAKuE,cAA3C;AACA;AACD;AACD,YAAIrG,UAAU,CAACwF,CAAD,CAAd,EAAmB;AACjB,gBAAKc,iBAAL,CAAuB,MAAK9D,cAAL,EAAvB;AACA;AACD;AACF;AACF,KAzSH;;AA2SU+D,IAAAA,WA3SV,GA2SwB,YAAM;AAC1B,UAAI,MAAKxD,KAAL,CAAWJ,QAAf,EAAyB;AACvB;AACD;;AAED,YAAKyC,QAAL,CAAc,EAAEpD,eAAe,EAAE,IAAnB,EAAd;;AAEA;AACA;AACApC,MAAAA,YAAY,CAAC4G,qBAAb,oBAAA5G,YAAY,CAAC4G,qBAAb,CAAqC,YAAM;AACzC,YAAItG,WAAW,CAACuG,YAAhB,EAA8B;AAC5B,gBAAKrB,QAAL,CAAc,EAAEtD,YAAY,EAAE,IAAhB,EAAd;AACD;AACF,OAJD;AAKD,KAzTH;;AA2TU4E,IAAAA,UA3TV,GA2TuB,YAAM;AACzB,YAAKtB,QAAL,CAAc;AACZtD,QAAAA,YAAY,EAAE,KADF;AAEZE,QAAAA,eAAe,EAAE,MAAKL,QAAL,GAAgBM,iBAAhB,IAAqC,KAF1C,EAAd;;AAID,KAhUH;;AAkUUlB,IAAAA,QAlUV,GAkUqB,YAAkB;AACnC,aAAOA,QAAQ,CAAC,MAAKgC,KAAL,CAAWC,UAAZ,EAAwB,MAAKD,KAAL,CAAW4D,UAAnC,CAAR,CAAuDC,MAAvD,CAA8D,SAA9D,CAAP;AACD,KApUH;;AAsUUpE,IAAAA,cAtUV,GAsU2B,YAA0B;AACjD,UAAI,CAAC,MAAKX,KAAL,CAAWC,YAAhB,EAA8B;AAC5B,eAAO,IAAP;AACD;;AAED,UAAQC,WAAR,GAAwB,MAAKF,KAA7B,CAAQE,WAAR;AACA,UAAIA,WAAW,IAAI,MAAKhB,QAAL,GAAgB+E,QAAhB,CAAyB/D,WAAzB,CAAf,IAAwD,MAAK8E,eAAL,CAAqB9E,WAArB,CAA5D,EAA+F;AAC7F,eAAOA,WAAP;AACD;;AAED,aAAO,MAAKgB,KAAL,CAAWC,UAAlB;AACD,KAjVH;;AAmVU6D,IAAAA,eAnVV,GAmV4B,UAACxE,IAAD,EAAoB;AAC5C,aAAO,CAAC,MAAKO,cAAL,CAAoBP,IAApB,CAAR;AACD,KArVH;;AAuVUO,IAAAA,cAvVV,GAuV2B,UAACP,IAAD,EAAoB;AAC3C,cAAQA,IAAR;AACE,aAAK,GAAL;AACE,iBAAO,IAAP;AACF,aAAK,SAAL;AACE,iBAAO,CAAC,MAAKyC,YAAL,EAAR;AACF;AACE,iBAAO,KAAP,CANJ;;AAQD,KAhWH;;AAkWUwB,IAAAA,iBAlWV,GAkW8B,UAACjE,IAAD,EAA8B;AACxD,UAAIA,IAAI,KAAK,SAAb,EAAwB;AACtB,cAAK8B,SAAL;AACD;AACD,UAAI,OAAO9B,IAAP,KAAgB,QAApB,EAA8B;AAC5B,cAAKoC,QAAL,CAAcpC,IAAd;AACD;AACF,KAzWH;;AA2WU+D,IAAAA,aA3WV,GA2W0B,YAAM;AAC5B,YAAKU,SAAL,CAAe,CAAC,CAAhB;AACD,KA7WH;;AA+WUT,IAAAA,cA/WV,GA+W2B,YAAM;AAC7B,YAAKS,SAAL,CAAe,CAAf;AACD,KAjXH;;AAmXUA,IAAAA,SAnXV,GAmXsB,UAACC,IAAD,EAAkB;AACpC,UAAMhF,WAAW,GAAG,MAAKS,cAAL,EAApB;AACA,UAAMwE,KAAK,GAAG,MAAKjG,QAAL,EAAd;AACA,UAAIuB,KAAK,GAAG0E,KAAK,CAACC,SAAN,CAAgB,UAACC,CAAD,UAAOA,CAAC,KAAKnF,WAAb,EAAhB,CAAZ;AACA,SAAG;AACDO,QAAAA,KAAK,GAAG,CAACA,KAAK,GAAGyE,IAAR,GAAeC,KAAK,CAACG,MAAtB,IAAgCH,KAAK,CAACG,MAA9C;AACD,OAFD,QAES,CAAC,MAAKN,eAAL,CAAqBG,KAAK,CAAC1E,KAAD,CAA1B,CAFV;AAGA,YAAK8C,QAAL,CAAc,EAAErD,WAAW,EAAEiF,KAAK,CAAC1E,KAAD,CAApB,EAAd;AACD,KA3XH;;AA6XUuC,IAAAA,aA7XV,GA6X0B,YAAe;AACrC,aAAO,MAAK9B,KAAL,CAAWC,UAAX,GAAwB,CAA/B;AACD,KA/XH;;AAiYU8B,IAAAA,YAjYV,GAiYyB,YAAe;AACpC,aAAO,MAAK/B,KAAL,CAAWC,UAAX,GAAwB,MAAKD,KAAL,CAAW4D,UAA1C;AACD,KAnYH;;AAqYUR,IAAAA,UArYV,GAqYuB,YAAM;AACzB,YAAK1B,QAAL,CAAc,MAAK1B,KAAL,CAAWC,UAAX,GAAwB,CAAtC;AACD,KAvYH;;AAyYUmB,IAAAA,SAzYV,GAyYsB,YAAM;AACxB,YAAKM,QAAL,CAAc,MAAK1B,KAAL,CAAWC,UAAX,GAAwB,CAAtC;AACD,KA3YH;;AA6YUyB,IAAAA,QA7YV,GA6YqB,UAACJ,UAAD,EAAwB;AACzC,UAAIA,UAAU,IAAI,CAAd,IAAmBA,UAAU,KAAK,MAAKtB,KAAL,CAAWC,UAA7C,IAA2DqB,UAAU,IAAI,MAAKtB,KAAL,CAAW4D,UAAxF,EAAoG;AAClG,cAAK5D,KAAL,CAAWqE,YAAX,CAAwB/C,UAAxB;AACD;AACF,KAjZH;;AAmZUgD,IAAAA,iBAnZV,GAmZ8B,YAAM;AAChC,UAAI,MAAKnF,mBAAT,EAA8B;AAC5B;AACD;;AAED,+BAAAtC,YAAY,CAAC0H,QAAb,2CAAuBC,gBAAvB,CAAwC,SAAxC,EAAmD,MAAKhC,aAAxD;AACA,YAAKrD,mBAAL,GAA2B,IAA3B;AACD,KA1ZH;;AA4ZUsF,IAAAA,oBA5ZV,GA4ZiC,YAAM;AACnC,UAAI,MAAKtF,mBAAT,EAA8B;AAC5B,kCAAAtC,YAAY,CAAC0H,QAAb,4CAAuBG,mBAAvB,CAA2C,SAA3C,EAAsD,MAAKlC,aAA3D;;AAEA,cAAKrD,mBAAL,GAA2B,KAA3B;AACD;AACF,KAlaH;;AAoaUwF,IAAAA,YApaV,GAoayB,UAACC,OAAD,EAAqC;AAC1D,YAAKxF,SAAL,GAAiBwF,OAAjB;AACD,KAtaH,sBAgBgBC,SAhBhB,GAgBE,mBAAwBvD,UAAxB,EAAiE,aAAc,CAC7E,OAAOA,UAAU,KAAK,SAAtB,CACD,CAlBH,sCAgCSwD,iBAhCT,GAgCE,6BAA2B,CACzB,IAAM5F,iBAAiB,GAAG,KAAKN,QAAL,GAAgBM,iBAA1C,CACA,IAAIA,iBAAJ,EAAuB,CACrB,KAAKoF,iBAAL,GACD,CACF,CArCH,QAuCSS,kBAvCT,GAuCE,4BAA0BC,SAA1B,EAAkD,CAChD,IAAM9F,iBAAiB,GAAG,KAAKN,QAAL,GAAgBM,iBAA1C,CACA,IAAI,CAAC8F,SAAS,CAAC9F,iBAAX,IAAgCA,iBAApC,EAAuD,CACrD,KAAKoF,iBAAL,GACD,CAED,IAAIU,SAAS,CAAC9F,iBAAV,IAA+B,CAACA,iBAApC,EAAuD,CACrD,KAAKuF,oBAAL,GACD,CAED,IAAIO,SAAS,CAAC9F,iBAAV,KAAgCA,iBAApC,EAAuD,CACrD,KAAKmD,QAAL,CAAc,EACZpD,eAAe,EAAEC,iBADL,EAAd,EAGD,CACF,CAtDH,QAwDS+F,oBAxDT,GAwDE,gCAA8B,CAC5B,KAAKR,oBAAL,GACD,CA1DH,QA4DSS,MA5DT,GA4DE,kBAAgB,mBACd,IAAI,KAAKlF,KAAL,CAAW4D,UAAX,GAAwB,CAAxB,IAA6B,CAAC,KAAKhF,QAAL,GAAgBuG,mCAAlD,EAAuF,CACrF,OAAO,IAAP,CACD,CAED,oBACE,oBAAC,eAAD,QACG,UAAC/E,OAAD,EAAa,CACZ,MAAI,CAACA,OAAL,GAAeA,OAAf,CACA,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACE,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAAC8E,UAAL,EAAP,CACD,CAJH,CADF,CAQD,CAXH,CADF,CAeD,CAhFH,QAkFUA,UAlFV,GAkFE,sBAAqB,uBACnB,qBAAmD,KAAKxG,QAAL,EAAnD,CAAoByG,OAApB,kBAAQ,UAAR,EAA6BnG,iBAA7B,kBAA6BA,iBAA7B,CACA,IAAMiB,MAAM,GAAGrC,SAAS,CAAC,KAAKsC,OAAN,CAAxB,CACA,oBACE,oBAAC,aAAD,aACE,WAAW,EAAE,KAAKkF,WADpB,IAEM,KAAKtF,KAFX,EAGMrC,4BAA4B,CAAC,EAAEiC,QAAQ,EAAE,KAAKI,KAAL,CAAWJ,QAAvB,EAAD,CAHlC,gBAKE,8BACE,QAAQ,EAAE,KAAKI,KAAL,CAAWJ,QAAX,GAAsB,CAAC,CAAvB,GAA2B,CADvC,EAEE,YAAUyF,OAFZ,EAGE,SAAS,EAAE,KAAKjF,OAAL,CAAaC,EAAb,4CACRF,MAAM,CAACoF,MAAP,CAAc,KAAKjF,KAAnB,CADQ,IACoB,IADpB,oBAERH,MAAM,CAACqF,cAAP,EAFQ,IAEkB,KAAKxF,KAAL,CAAWJ,QAF7B,qBAHb,EAOE,SAAS,EAAEV,iBAAiB,GAAGuG,SAAH,GAAe,KAAKjD,aAPlD,EAQE,OAAO,EAAE,KAAKgB,WARhB,EASE,MAAM,EAAE,KAAKG,UATf,EAUE,WAAW,EAAE,KAAKvB,eAVpB,EAWE,GAAG,EAAE,KAAKuC,YAXZ,IAaG,KAAK3G,QAAL,GAAgB0H,GAAhB,CAAoB,KAAKrG,UAAzB,CAbH,CALF,CADF,CAuBD,CA5GH,iBAA4B3C,KAAK,CAACiJ,aAAlC,WACgBC,mBADhB,GACsC,QADtC,UAEgBC,WAFhB,GAE8B,QAF9B,UAIgBhH,YAJhB,GAI6C,EACzCiC,SAAS,EAAE5C,sBAD8B,EAEzCiH,mCAAmC,EAAE,IAFI,EAGzCjG,iBAAiB,EAAE,KAHsB,EAIzC,YAAYb,cAAc,CAACC,IAJc,EAJ7C,UAagBwH,SAbhB,GAa4B,EAb5B;;;AAyaAnH,MAAM,CAACmH,SAAP,GAAmB;AACjB;AACF;AACA;AACE7F,EAAAA,UAAU,EAAErD,MAAM,CAACmJ,UAJF;;AAMjB;AACF;AACA;AACA;AACA;AACEjF,EAAAA,SAAS,EAAEnE,IAXM;;AAajB;AACF;AACA;AACEiH,EAAAA,UAAU,EAAEhH,MAAM,CAACmJ,UAhBF;;AAkBjB;AACF;AACA;AACE1B,EAAAA,YAAY,EAAE1H,IAAI,CAACoJ,UArBF,EAAnB","sourcesContent":["import React from 'react';\nimport { func, number } from 'prop-types';\nimport { globalObject } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\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 { Theme } from '../../lib/theming/Theme';\nimport { ArrowChevronRightIcon } from '../../internal/icons/16px';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\n\nimport { getStyles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport { PagingLocale, PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\nimport { ForwardIcon } from './ForwardIcon';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\nexport interface 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\nexport const PagingDataTids = {\n root: 'Paging__root',\n dots: 'Paging__dots',\n forwardLink: 'Paging__forwardLink',\n pageLinkWrapper: 'Paging__pageLinkWrapper',\n pageLink: 'Paging__pageLink',\n} as const;\n\ntype DefaultProps = Required<\n Pick<PagingProps, 'component' | 'shouldBeVisibleWithLessThanTwoPages' | 'useGlobalListener' | 'data-tid'>\n>;\n\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n public static displayName = 'Paging';\n\n public static defaultProps: DefaultProps = {\n component: PagingDefaultComponent,\n shouldBeVisibleWithLessThanTwoPages: true,\n useGlobalListener: false,\n 'data-tid': PagingDataTids.root,\n };\n\n private getProps = createPropsGetter(Paging.defaultProps);\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.getProps().useGlobalListener,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private readonly locale!: PagingLocale;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (!prevProps.useGlobalListener && useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== useGlobalListener) {\n this.setState({\n keyboardControl: useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2 && !this.getProps().shouldBeVisibleWithLessThanTwoPages) {\n return null;\n }\n\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private renderMain() {\n const { 'data-tid': dataTid, useGlobalListener } = this.getProps();\n const styles = getStyles(this.emotion);\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...this.props}\n {...getVisualStateDataAttributes({ disabled: this.props.disabled })}\n >\n <span\n tabIndex={this.props.disabled ? -1 : 0}\n data-tid={dataTid}\n className={this.emotion.cx({\n [styles.paging(this.theme)]: true,\n [styles.pagingDisabled()]: this.props.disabled,\n })}\n onKeyDown={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 const styles = getStyles(this.emotion);\n return (\n <span\n data-tid={PagingDataTids.dots}\n key={key}\n className={this.emotion.cx({\n [styles.dots(this.theme)]: true,\n [styles.dotsDisabled(this.theme)]: this.props.disabled,\n })}\n >\n {'...'}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const styles = getStyles(this.emotion);\n const classes = isTheme2022(this.theme)\n ? this.emotion.cx(\n styles.pageLink(this.theme),\n styles.forwardLink(this.theme),\n focused && styles.pageLinkFocused(this.theme),\n (disabled || this.props.disabled) && styles.pageLinkDisabled(this.theme),\n )\n : this.emotion.cx({\n [styles.forwardLink(this.theme)]: true,\n [styles.forwardLinkFocused()]: focused,\n [styles.forwardLinkDisabled(this.theme)]: disabled || this.props.disabled,\n });\n const Component = this.getProps().component;\n const { forward } = this.locale;\n\n const forwardIcon = isTheme2022(this.theme) ? (\n <ForwardIcon size={parseInt(this.theme.pagingForwardIconSize)} style={{ marginLeft: 4 }} />\n ) : (\n <span className={styles.forwardIcon(this.theme)}>\n <ArrowChevronRightIcon size={this.theme.pagingForwardIconSize} />\n </span>\n );\n\n return (\n <Component\n key={'forward'}\n data-tid={PagingDataTids.forwardLink}\n active={false}\n className={classes}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n {...getVisualStateDataAttributes({ disabled })}\n >\n {this.props.caption || forward}\n {forwardIcon}\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const styles = getStyles(this.emotion);\n const disabled = this.props.disabled;\n const classes = this.emotion.cx({\n [styles.pageLink(this.theme)]: true,\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.pageLinkDisabled(this.theme)]: disabled,\n [styles.pageLinkCurrent(this.theme)]: active,\n [styles.pageLinkCurrentDisabled(this.theme)]: active && disabled,\n });\n const Component = this.getProps().component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid={PagingDataTids.pageLinkWrapper}\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n {...getVisualStateDataAttributes({ active, disabled })}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid={PagingDataTids.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 let hint = null;\n const styles = getStyles(this.emotion);\n if (keyboardControl && (canGoBackward || canGoForward)) {\n hint = (\n <>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </>\n );\n }\n return <div className={styles.pageLinkHint(this.theme)}>{hint}</div>;\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 globalObject.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 isInstanceOf(target, globalObject.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 = () => {\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 globalObject.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.getProps().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 globalObject.document?.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n globalObject.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"]}
@@ -20,7 +20,7 @@ import { KeyboardEventCodes as Codes } from "../../../lib/events/keyboard/Keyboa
20
20
  import { Input } from "../../Input";
21
21
  import { isIE11 } from "../../../lib/client";
22
22
  import { CommonWrapper } from "../../../internal/CommonWrapper";
23
- import { ThemeConsumer } from "../../../lib/theming/ThemeContext";
23
+ import { ThemeContext } from "../../../lib/theming/ThemeContext";
24
24
  import { EmotionConsumer } from "../../../lib/theming/Emotion";
25
25
  import { rootNode } from "../../../lib/rootNode";
26
26
  import { createPropsGetter } from "../../../lib/createPropsGetter";
@@ -217,7 +217,7 @@ var PasswordInput = (_dec = locale('PasswordInput', PasswordInputLocaleHelper),
217
217
 
218
218
  return /*#__PURE__*/React.createElement(EmotionConsumer, null, function (emotion) {
219
219
  _this2.emotion = emotion;
220
- return /*#__PURE__*/React.createElement(ThemeConsumer, null, function (theme) {
220
+ return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
221
221
  _this2.theme = theme;
222
222
  return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
223
223
  rootNodeRef: _this2.setRootNode
@@ -1 +1 @@
1
- {"version":3,"sources":["PasswordInput.tsx"],"names":["React","PropTypes","globalObject","isBrowser","locale","RenderLayer","isNonNullable","isKeyCapsLock","KeyboardEventCodes","Codes","Input","isIE11","CommonWrapper","ThemeConsumer","EmotionConsumer","rootNode","createPropsGetter","isTheme2022","getStyles","PasswordInputIcon","PasswordInputLocaleHelper","PasswordInputDataTids","root","capsLockDetector","eyeIcon","PasswordInput","getProps","defaultProps","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","props","onKeyPress","detectCapsLock","getModifierState","CapsLock","setState","handleKeydown","onKeyDown","handleToggleVisibility","prevState","handleFocus","renderEye","styles","emotion","iconWrapper","cx","toggleVisibility","theme","getEyeWrapperClassname","disabled","eyeClosedAriaLabel","eyeOpenedAriaLabel","icon","size","refInput","element","hideSymbols","renderMain","rest","inputProps","rightIcon","componentDidMount","document","msCapsLockWarningOff","getDerivedStateFromProps","render","setRootNode","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","bool"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { locale } from '../../lib/locale/decorators';\nimport { RenderLayer } from '../../internal/RenderLayer';\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 { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeConsumer } from '../../lib/theming/ThemeContext';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { getStyles } from './PasswordInput.styles';\nimport { PasswordInputIcon } from './PasswordInputIcon';\nimport { PasswordInputLocale, PasswordInputLocaleHelper } from './locale';\n\nexport interface PasswordInputProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, InputProps {\n detectCapsLock?: boolean;\n}\n\nexport interface PasswordInputState {\n visible: boolean;\n capsLockEnabled?: boolean | null;\n}\n\nexport const PasswordInputDataTids = {\n root: 'PasswordInput',\n capsLockDetector: 'PasswordInputCapsLockDetector',\n eyeIcon: 'PasswordInputEyeIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<PasswordInputProps, 'size'>>;\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\n@locale('PasswordInput', PasswordInputLocaleHelper)\nexport class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {\n public static __KONTUR_REACT_UI__ = 'PasswordInput';\n public static displayName = 'PasswordInput';\n\n public static propTypes = {\n /**\n * Включает CapsLock детектор\n */\n detectCapsLock: PropTypes.bool,\n };\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(PasswordInput.defaultProps);\n\n public state: PasswordInputState = {\n visible: false,\n capsLockEnabled: false,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n\n private input: Nullable<Input>;\n private setRootNode!: TSetRootNode;\n private readonly locale!: PasswordInputLocale;\n\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-expect-error: IE-specific API.\n if (isIE11 && isBrowser(globalObject) && !globalObject.document.msCapsLockWarningOff) {\n // @ts-expect-error: Read the comment above.\n // turns off default ie capslock warning\n globalObject.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 <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeConsumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\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 getEyeWrapperClassname() {\n const styles = getStyles(this.emotion);\n switch (this.getProps().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 const styles = getStyles(this.emotion);\n return (\n <span className={styles.iconWrapper()}>\n {capsLockEnabled && (\n <span className={styles.capsLockDetector()} data-tid={PasswordInputDataTids.capsLockDetector} />\n )}\n <span className={this.emotion.cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}>\n {!this.props.disabled && (\n <button\n type=\"button\"\n aria-label={this.state.visible ? this.locale.eyeClosedAriaLabel : this.locale.eyeOpenedAriaLabel}\n onClick={this.handleToggleVisibility}\n className={styles.icon()}\n data-tid={PasswordInputDataTids.eyeIcon}\n >\n <PasswordInputIcon\n size={this.props.size}\n visible={this.state.visible}\n isTheme2022={isTheme2022(this.theme)}\n />\n </button>\n )}\n </span>\n </span>\n );\n };\n\n private refInput = (element: Input) => {\n this.input = element;\n };\n\n private hideSymbols = () => {\n this.setState({ visible: false });\n };\n\n private renderMain = (props: CommonWrapperRestProps<PasswordInputProps>) => {\n const { detectCapsLock, ...rest } = props;\n const inputProps = {\n ...rest,\n onKeyDown: this.handleKeydown,\n onKeyPress: this.handleKeyPress,\n rightIcon: this.renderEye(),\n };\n\n const styles = getStyles(this.emotion);\n return (\n <RenderLayer onFocusOutside={this.hideSymbols} onClickOutside={this.hideSymbols}>\n <div data-tid={PasswordInputDataTids.root} className={styles.root()}>\n <Input ref={this.refInput} type={this.state.visible ? 'text' : 'password'} {...inputProps} />\n </div>\n </RenderLayer>\n );\n };\n}\n"]}
1
+ {"version":3,"sources":["PasswordInput.tsx"],"names":["React","PropTypes","globalObject","isBrowser","locale","RenderLayer","isNonNullable","isKeyCapsLock","KeyboardEventCodes","Codes","Input","isIE11","CommonWrapper","ThemeContext","EmotionConsumer","rootNode","createPropsGetter","isTheme2022","getStyles","PasswordInputIcon","PasswordInputLocaleHelper","PasswordInputDataTids","root","capsLockDetector","eyeIcon","PasswordInput","getProps","defaultProps","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","props","onKeyPress","detectCapsLock","getModifierState","CapsLock","setState","handleKeydown","onKeyDown","handleToggleVisibility","prevState","handleFocus","renderEye","styles","emotion","iconWrapper","cx","toggleVisibility","theme","getEyeWrapperClassname","disabled","eyeClosedAriaLabel","eyeOpenedAriaLabel","icon","size","refInput","element","hideSymbols","renderMain","rest","inputProps","rightIcon","componentDidMount","document","msCapsLockWarningOff","getDerivedStateFromProps","render","setRootNode","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","bool"],"mappings":"+XAAA;AACA;AACA,OAAOA,KAAP,MAAsC,OAAtC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,YAAT,EAAuBC,SAAvB,QAAwC,0BAAxC;;;AAGA,SAASC,MAAT,QAAuB,6BAAvB;AACA,SAASC,WAAT,QAA4B,4BAA5B;AACA,SAASC,aAAT,QAA8B,iBAA9B;AACA,SAASC,aAAT,QAA8B,uCAA9B;AACA,SAASC,kBAAkB,IAAIC,KAA/B,QAA4C,8CAA5C;AACA,SAASC,KAAT,QAAkC,UAAlC;;AAEA,SAASC,MAAT,QAAuB,kBAAvB;AACA,SAAsBC,aAAtB,QAAmE,8BAAnE;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,eAAT,QAAgC,2BAAhC;AACA,SAASC,QAAT,QAAuC,oBAAvC;AACA,SAASC,iBAAT,QAAkC,6BAAlC;AACA,SAASC,WAAT,QAA4B,gCAA5B;;AAEA,SAASC,SAAT,QAA0B,wBAA1B;AACA,SAASC,iBAAT,QAAkC,qBAAlC;AACA,SAA8BC,yBAA9B,QAA+D,UAA/D;;;;;;;;;;;AAWA,OAAO,IAAMC,qBAAqB,GAAG;AACnCC,EAAAA,IAAI,EAAE,eAD6B;AAEnCC,EAAAA,gBAAgB,EAAE,+BAFiB;AAGnCC,EAAAA,OAAO,EAAE,sBAH0B,EAA9B;;;;;;;;;;AAaP,OALA;AACA;AACA,GAGA,IAAaC,aAAb,WADCrB,MAAM,CAAC,eAAD,EAAkBgB,yBAAlB,CACP,EAFCL,QAED;;;;;;;;;;;;;AAeUW,IAAAA,QAfV,GAeqBV,iBAAiB,CAACS,aAAa,CAACE,YAAf,CAftC;;AAiBSC,IAAAA,KAjBT,GAiBqC;AACjCC,MAAAA,OAAO,EAAE,KADwB;AAEjCC,MAAAA,eAAe,EAAE,KAFgB,EAjBrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2ESC,IAAAA,KA3ET,GA2EiB,YAAM;AACnB,UAAI,MAAKC,KAAT,EAAgB;AACd,cAAKA,KAAL,CAAWD,KAAX;AACD;AACF,KA/EH;;;;;AAoFSE,IAAAA,IApFT,GAoFgB,YAAM;AAClB,YAAKC,UAAL;AACD,KAtFH;;AAwFUC,IAAAA,cAxFV,GAwF2B,UAACC,CAAD,EAA8C;AACrE,wBAAuC,MAAKC,KAA5C,CAAQC,UAAR,eAAQA,UAAR,CAAoBC,cAApB,eAAoBA,cAApB;;AAEA,UAAID,UAAJ,EAAgB;AACdA,QAAAA,UAAU,CAACF,CAAD,CAAV;AACD;;AAED,UAAI,CAACG,cAAL,EAAqB;AACnB;AACD;;AAED,UAAMT,eAAe,GAAGM,CAAC,CAACI,gBAAF,CAAmB/B,KAAK,CAACgC,QAAzB,CAAxB;;AAEA,YAAKC,QAAL,CAAc,EAAEZ,eAAe,EAAfA,eAAF,EAAd;AACD,KAtGH;;AAwGUa,IAAAA,aAxGV,GAwG0B,UAACP,CAAD,EAA8C;AACpE;AACEC,MAAAA,KADF,CACWE,cADX,0BACWA,cADX,CAC2BK,SAD3B,0BAC2BA,SAD3B;AAEWd,MAAAA,eAFX,yBAEEF,KAFF,CAEWE,eAFX;;;AAKA,UAAIc,SAAJ,EAAe;AACbA,QAAAA,SAAS,CAACR,CAAD,CAAT;AACD;;AAED,UAAI,CAACG,cAAL,EAAqB;AACnB;AACD;;AAED,UAAIhC,aAAa,CAAC6B,CAAD,CAAb,IAAoB9B,aAAa,CAACwB,eAAD,CAArC,EAAwD;AACtD,cAAKY,QAAL,CAAc,EAAEZ,eAAe,EAAE,CAACA,eAApB,EAAd;AACD;AACF,KAzHH;;AA2HUe,IAAAA,sBA3HV,GA2HmC,YAAM;AACrC,YAAKH,QAAL,CAAc,UAACI,SAAD,UAAgB,EAAEjB,OAAO,EAAE,CAACiB,SAAS,CAACjB,OAAtB,EAAhB,EAAd,EAAgE,MAAKkB,WAArE;AACD,KA7HH;;AA+HUA,IAAAA,WA/HV,GA+HwB,YAAM;AAC1B,UAAI,MAAKf,KAAT,EAAgB;AACd,cAAKA,KAAL,CAAWD,KAAX;AACD;AACF,KAnIH;;AAqIUG,IAAAA,UArIV,GAqIuB,YAAM;AACzB,UAAI,MAAKF,KAAT,EAAgB;AACd,cAAKA,KAAL,CAAWC,IAAX;AACD;AACF,KAzIH;;;;;;;;;;;;;;;AAwJUe,IAAAA,SAxJV,GAwJsB,YAAM;AACxB,UAAQlB,eAAR,GAA4B,MAAKF,KAAjC,CAAQE,eAAR;AACA,UAAMmB,MAAM,GAAG/B,SAAS,CAAC,MAAKgC,OAAN,CAAxB;AACA;AACE,sCAAM,SAAS,EAAED,MAAM,CAACE,WAAP,EAAjB;AACGrB,QAAAA,eAAe;AACd,sCAAM,SAAS,EAAEmB,MAAM,CAAC1B,gBAAP,EAAjB,EAA4C,YAAUF,qBAAqB,CAACE,gBAA5E,GAFJ;;AAIE,sCAAM,SAAS,EAAE,MAAK2B,OAAL,CAAaE,EAAb,CAAgBH,MAAM,CAACI,gBAAP,CAAwB,MAAKC,KAA7B,CAAhB,EAAqD,MAAKC,sBAAL,EAArD,CAAjB;AACG,SAAC,MAAKlB,KAAL,CAAWmB,QAAZ;AACC;AACE,UAAA,IAAI,EAAC,QADP;AAEE,wBAAY,MAAK5B,KAAL,CAAWC,OAAX,GAAqB,MAAKzB,MAAL,CAAYqD,kBAAjC,GAAsD,MAAKrD,MAAL,CAAYsD,kBAFhF;AAGE,UAAA,OAAO,EAAE,MAAKb,sBAHhB;AAIE,UAAA,SAAS,EAAEI,MAAM,CAACU,IAAP,EAJb;AAKE,sBAAUtC,qBAAqB,CAACG,OALlC;;AAOE,4BAAC,iBAAD;AACE,UAAA,IAAI,EAAE,MAAKa,KAAL,CAAWuB,IADnB;AAEE,UAAA,OAAO,EAAE,MAAKhC,KAAL,CAAWC,OAFtB;AAGE,UAAA,WAAW,EAAEZ,WAAW,CAAC,MAAKqC,KAAN,CAH1B,GAPF,CAFJ,CAJF,CADF;;;;;;;AAwBD,KAnLH;;AAqLUO,IAAAA,QArLV,GAqLqB,UAACC,OAAD,EAAoB;AACrC,YAAK9B,KAAL,GAAa8B,OAAb;AACD,KAvLH;;AAyLUC,IAAAA,WAzLV,GAyLwB,YAAM;AAC1B,YAAKrB,QAAL,CAAc,EAAEb,OAAO,EAAE,KAAX,EAAd;AACD,KA3LH;;AA6LUmC,IAAAA,UA7LV,GA6LuB,UAAC3B,KAAD,EAAuD;AAC1E,UAAQE,cAAR,GAAoCF,KAApC,CAAQE,cAAR,CAA2B0B,IAA3B,iCAAoC5B,KAApC;AACA,UAAM6B,UAAU;AACXD,MAAAA,IADW;AAEdrB,QAAAA,SAAS,EAAE,MAAKD,aAFF;AAGdL,QAAAA,UAAU,EAAE,MAAKH,cAHH;AAIdgC,QAAAA,SAAS,EAAE,MAAKnB,SAAL,EAJG,GAAhB;;;AAOA,UAAMC,MAAM,GAAG/B,SAAS,CAAC,MAAKgC,OAAN,CAAxB;AACA;AACE,4BAAC,WAAD,IAAa,cAAc,EAAE,MAAKa,WAAlC,EAA+C,cAAc,EAAE,MAAKA,WAApE;AACE,qCAAK,YAAU1C,qBAAqB,CAACC,IAArC,EAA2C,SAAS,EAAE2B,MAAM,CAAC3B,IAAP,EAAtD;AACE,4BAAC,KAAD,aAAO,GAAG,EAAE,MAAKuC,QAAjB,EAA2B,IAAI,EAAE,MAAKjC,KAAL,CAAWC,OAAX,GAAqB,MAArB,GAA8B,UAA/D,IAA+EqC,UAA/E,EADF,CADF,CADF;;;;AAOD,KA9MH,2DA6BSE,iBA7BT,GA6BE,6BAA2B,CACzB,IAAI,KAAK/B,KAAL,CAAWE,cAAf,EAA+B,CAC7B,KAAKG,QAAL,CAAc,EAAEZ,eAAe,EAAE,IAAnB,EAAd,EACD,CAHwB,CAKzB;AACA,QAAInB,MAAM,IAAIR,SAAS,CAACD,YAAD,CAAnB,IAAqC,CAACA,YAAY,CAACmE,QAAb,CAAsBC,oBAAhE,EAAsF,CACpF;AACA;AACApE,MAAAA,YAAY,CAACmE,QAAb,CAAsBC,oBAAtB,GAA6C,IAA7C,CACD,CACF,CAxCH,eA0CgBC,wBA1ChB,GA0CE,kCAAuClC,KAAvC,EAAkET,KAAlE,EAA6F,CAC3F,IAAIS,KAAK,CAACmB,QAAV,EAAoB,CAClB,OAAO,EAAE3B,OAAO,EAAE,KAAX,EAAP,CACD,CAED,OAAOD,KAAP,CACD,CAhDH,QAkDS4C,MAlDT,GAkDE,kBAAgB,mBACd,oBACE,oBAAC,eAAD,QACG,UAACtB,OAAD,EAAa,CACZ,MAAI,CAACA,OAAL,GAAeA,OAAf,CACA,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACI,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,oBAAC,aAAD,aAAe,WAAW,EAAE,MAAI,CAACmB,WAAjC,IAAkD,MAAI,CAACpC,KAAvD,GACG,MAAI,CAAC2B,UADR,CADF,CAKD,CARH,CADF,CAYD,CAfH,CADF,CAmBD,CAtEH,CAwEE;AACF;AACA,KA1EA,QA2IUT,sBA3IV,GA2IE,kCAAiC,CAC/B,IAAMN,MAAM,GAAG/B,SAAS,CAAC,KAAKgC,OAAN,CAAxB,CACA,QAAQ,KAAKxB,QAAL,GAAgBkC,IAAxB,GACE,KAAK,OAAL,CACE,OAAOX,MAAM,CAACyB,eAAP,CAAuB,KAAKpB,KAA5B,CAAP,CACF,KAAK,QAAL,CACE,OAAOL,MAAM,CAAC0B,gBAAP,CAAwB,KAAKrB,KAA7B,CAAP,CACF,KAAK,OAAL,CACA,QACE,OAAOL,MAAM,CAAC2B,eAAP,CAAuB,KAAKtB,KAA5B,CAAP,CAPJ,CASD,CAtJH,wBAAmCtD,KAAK,CAAC6E,aAAzC,WACgBC,mBADhB,GACsC,eADtC,UAEgBC,WAFhB,GAE8B,eAF9B,UAIgBC,SAJhB,GAI4B,EACxB;AACJ;AACA,KACIzC,cAAc,EAAEtC,SAAS,CAACgF,IAJF,EAJ5B,UAWgBtD,YAXhB,GAW6C,EACzCiC,IAAI,EAAE,OADmC,EAX7C","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { locale } from '../../lib/locale/decorators';\nimport { RenderLayer } from '../../internal/RenderLayer';\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 { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { getStyles } from './PasswordInput.styles';\nimport { PasswordInputIcon } from './PasswordInputIcon';\nimport { PasswordInputLocale, PasswordInputLocaleHelper } from './locale';\n\nexport interface PasswordInputProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, InputProps {\n detectCapsLock?: boolean;\n}\n\nexport interface PasswordInputState {\n visible: boolean;\n capsLockEnabled?: boolean | null;\n}\n\nexport const PasswordInputDataTids = {\n root: 'PasswordInput',\n capsLockDetector: 'PasswordInputCapsLockDetector',\n eyeIcon: 'PasswordInputEyeIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<PasswordInputProps, 'size'>>;\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\n@locale('PasswordInput', PasswordInputLocaleHelper)\nexport class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {\n public static __KONTUR_REACT_UI__ = 'PasswordInput';\n public static displayName = 'PasswordInput';\n\n public static propTypes = {\n /**\n * Включает CapsLock детектор\n */\n detectCapsLock: PropTypes.bool,\n };\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(PasswordInput.defaultProps);\n\n public state: PasswordInputState = {\n visible: false,\n capsLockEnabled: false,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n\n private input: Nullable<Input>;\n private setRootNode!: TSetRootNode;\n private readonly locale!: PasswordInputLocale;\n\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-expect-error: IE-specific API.\n if (isIE11 && isBrowser(globalObject) && !globalObject.document.msCapsLockWarningOff) {\n // @ts-expect-error: Read the comment above.\n // turns off default ie capslock warning\n globalObject.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 <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\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 </EmotionConsumer>\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 getEyeWrapperClassname() {\n const styles = getStyles(this.emotion);\n switch (this.getProps().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 const styles = getStyles(this.emotion);\n return (\n <span className={styles.iconWrapper()}>\n {capsLockEnabled && (\n <span className={styles.capsLockDetector()} data-tid={PasswordInputDataTids.capsLockDetector} />\n )}\n <span className={this.emotion.cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}>\n {!this.props.disabled && (\n <button\n type=\"button\"\n aria-label={this.state.visible ? this.locale.eyeClosedAriaLabel : this.locale.eyeOpenedAriaLabel}\n onClick={this.handleToggleVisibility}\n className={styles.icon()}\n data-tid={PasswordInputDataTids.eyeIcon}\n >\n <PasswordInputIcon\n size={this.props.size}\n visible={this.state.visible}\n isTheme2022={isTheme2022(this.theme)}\n />\n </button>\n )}\n </span>\n </span>\n );\n };\n\n private refInput = (element: Input) => {\n this.input = element;\n };\n\n private hideSymbols = () => {\n this.setState({ visible: false });\n };\n\n private renderMain = (props: CommonWrapperRestProps<PasswordInputProps>) => {\n const { detectCapsLock, ...rest } = props;\n const inputProps = {\n ...rest,\n onKeyDown: this.handleKeydown,\n onKeyPress: this.handleKeyPress,\n rightIcon: this.renderEye(),\n };\n\n const styles = getStyles(this.emotion);\n return (\n <RenderLayer onFocusOutside={this.hideSymbols} onClickOutside={this.hideSymbols}>\n <div data-tid={PasswordInputDataTids.root} className={styles.root()}>\n <Input ref={this.refInput} type={this.state.visible ? 'text' : 'password'} {...inputProps} />\n </div>\n </RenderLayer>\n );\n };\n}\n"]}
@@ -10,7 +10,7 @@ var _class, _class2, _temp; // TODO: Enable this rule in functional components.
10
10
 
11
11
  import React from 'react';
12
12
  import { globalObject } from '@skbkontur/global-object';
13
- import { ThemeConsumer } from "../../../lib/theming/ThemeContext";
13
+ import { ThemeContext } from "../../../lib/theming/ThemeContext";
14
14
  import { CommonWrapper } from "../../../internal/CommonWrapper";
15
15
  import { EmotionConsumer } from "../../../lib/theming/Emotion";
16
16
  import { keyListener } from "../../../lib/events/keyListener";
@@ -231,7 +231,7 @@ var Radio = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
231
231
 
232
232
  return /*#__PURE__*/React.createElement(EmotionConsumer, null, function (emotion) {
233
233
  _this2.emotion = emotion;
234
- return /*#__PURE__*/React.createElement(ThemeConsumer, null, function (theme) {
234
+ return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
235
235
  _this2.theme = theme;
236
236
  return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
237
237
  rootNodeRef: _this2.setRootNode