@skbkontur/react-ui 5.2.1 → 5.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (555) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +7 -7
  3. package/cjs/components/Autocomplete/Autocomplete.d.ts +6 -23
  4. package/cjs/components/Autocomplete/Autocomplete.js +49 -46
  5. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/Button/Button.d.ts +2 -0
  7. package/cjs/components/Button/Button.js +29 -1
  8. package/cjs/components/Button/Button.js.map +1 -1
  9. package/cjs/components/Button/Button.styles.d.ts +6 -0
  10. package/cjs/components/Button/Button.styles.js +107 -75
  11. package/cjs/components/Button/Button.styles.js.map +1 -1
  12. package/cjs/components/Calendar/Calendar.d.ts +2 -0
  13. package/cjs/components/Calendar/Calendar.js +1 -0
  14. package/cjs/components/Calendar/Calendar.js.map +1 -1
  15. package/cjs/components/Center/Center.d.ts +2 -0
  16. package/cjs/components/Center/Center.js +1 -0
  17. package/cjs/components/Center/Center.js.map +1 -1
  18. package/cjs/components/Checkbox/Checkbox.d.ts +2 -12
  19. package/cjs/components/Checkbox/Checkbox.js +2 -14
  20. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  21. package/cjs/components/ComboBox/ComboBox.d.ts +2 -0
  22. package/cjs/components/ComboBox/ComboBox.js +1 -0
  23. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  24. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -24
  25. package/cjs/components/CurrencyInput/CurrencyInput.js +5 -28
  26. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  27. package/cjs/components/CurrencyInput/constants.js +1 -2
  28. package/cjs/components/CurrencyInput/constants.js.map +1 -1
  29. package/cjs/components/CurrencyLabel/CurrencyLabel.js +21 -28
  30. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  31. package/cjs/components/DateInput/DateInput.d.ts +2 -0
  32. package/cjs/components/DateInput/DateInput.js +1 -0
  33. package/cjs/components/DateInput/DateInput.js.map +1 -1
  34. package/cjs/components/DatePicker/DatePicker.d.ts +6 -33
  35. package/cjs/components/DatePicker/DatePicker.js +6 -60
  36. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  37. package/cjs/components/Dropdown/Dropdown.d.ts +2 -47
  38. package/cjs/components/Dropdown/Dropdown.js +2 -82
  39. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  40. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +4 -2
  41. package/cjs/components/DropdownMenu/DropdownMenu.js +1 -0
  42. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  43. package/cjs/components/FxInput/FxInput.d.ts +2 -5
  44. package/cjs/components/FxInput/FxInput.js +2 -7
  45. package/cjs/components/FxInput/FxInput.js.map +1 -1
  46. package/cjs/components/Gapped/Gapped.d.ts +2 -15
  47. package/cjs/components/Gapped/Gapped.js +1 -24
  48. package/cjs/components/Gapped/Gapped.js.map +1 -1
  49. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +2 -0
  50. package/cjs/components/GlobalLoader/GlobalLoader.js +1 -0
  51. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  52. package/cjs/components/Group/Group.d.ts +5 -4
  53. package/cjs/components/Group/Group.js +91 -40
  54. package/cjs/components/Group/Group.js.map +1 -1
  55. package/cjs/components/Group/Group.styles.d.ts +1 -0
  56. package/cjs/components/Group/Group.styles.js +12 -6
  57. package/cjs/components/Group/Group.styles.js.map +1 -1
  58. package/cjs/components/Hint/Hint.d.ts +2 -0
  59. package/cjs/components/Hint/Hint.js +1 -0
  60. package/cjs/components/Hint/Hint.js.map +1 -1
  61. package/cjs/components/Input/Input.d.ts +2 -0
  62. package/cjs/components/Input/Input.js +1 -0
  63. package/cjs/components/Input/Input.js.map +1 -1
  64. package/cjs/components/Kebab/Kebab.d.ts +2 -1
  65. package/cjs/components/Kebab/Kebab.js +2 -26
  66. package/cjs/components/Kebab/Kebab.js.map +1 -1
  67. package/cjs/components/Link/Link.d.ts +2 -0
  68. package/cjs/components/Link/Link.js +1 -0
  69. package/cjs/components/Link/Link.js.map +1 -1
  70. package/cjs/components/Loader/Loader.d.ts +6 -36
  71. package/cjs/components/Loader/Loader.js +3 -57
  72. package/cjs/components/Loader/Loader.js.map +1 -1
  73. package/cjs/components/MaskedInput/MaskedInput.d.ts +1 -0
  74. package/cjs/components/MaskedInput/MaskedInput.js +17 -1
  75. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  76. package/cjs/components/MenuItem/MenuItem.d.ts +2 -12
  77. package/cjs/components/MenuItem/MenuItem.js +2 -22
  78. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  79. package/cjs/components/MiniModal/MiniModal.styles.d.ts +1 -0
  80. package/cjs/components/MiniModal/MiniModal.styles.js +14 -7
  81. package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -1
  82. package/cjs/components/MiniModal/MiniModalBody.js +17 -2
  83. package/cjs/components/MiniModal/MiniModalBody.js.map +1 -1
  84. package/cjs/components/Modal/Modal.styles.d.ts +1 -0
  85. package/cjs/components/Modal/Modal.styles.js +36 -28
  86. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  87. package/cjs/components/Modal/ModalBody.d.ts +2 -0
  88. package/cjs/components/Modal/ModalBody.js +1 -0
  89. package/cjs/components/Modal/ModalBody.js.map +1 -1
  90. package/cjs/components/Modal/ModalHeader.d.ts +5 -0
  91. package/cjs/components/Modal/ModalHeader.js +8 -1
  92. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  93. package/cjs/components/Paging/DotsIcon.d.ts +3 -0
  94. package/cjs/components/Paging/DotsIcon.js +13 -0
  95. package/cjs/components/Paging/DotsIcon.js.map +1 -0
  96. package/cjs/components/Paging/ForwardIcon.d.ts +3 -0
  97. package/cjs/components/Paging/ForwardIcon.js +13 -1
  98. package/cjs/components/Paging/ForwardIcon.js.map +1 -1
  99. package/cjs/components/Paging/NavigationHelper.d.ts +3 -2
  100. package/cjs/components/Paging/NavigationHelper.js +8 -6
  101. package/cjs/components/Paging/NavigationHelper.js.map +1 -1
  102. package/cjs/components/Paging/Paging.d.ts +13 -2
  103. package/cjs/components/Paging/Paging.js +120 -50
  104. package/cjs/components/Paging/Paging.js.map +1 -1
  105. package/cjs/components/Paging/Paging.styles.d.ts +24 -1
  106. package/cjs/components/Paging/Paging.styles.js +151 -22
  107. package/cjs/components/Paging/Paging.styles.js.map +1 -1
  108. package/cjs/components/Paging/PagingHelper.d.ts +1 -1
  109. package/cjs/components/Paging/PagingHelper.js +18 -11
  110. package/cjs/components/Paging/PagingHelper.js.map +1 -1
  111. package/cjs/components/PasswordInput/PasswordInput.d.ts +2 -7
  112. package/cjs/components/PasswordInput/PasswordInput.js +2 -11
  113. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  114. package/cjs/components/Radio/Radio.d.ts +2 -0
  115. package/cjs/components/Radio/Radio.js +1 -0
  116. package/cjs/components/Radio/Radio.js.map +1 -1
  117. package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -0
  118. package/cjs/components/RadioGroup/RadioGroup.js +1 -0
  119. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  120. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +2 -9
  121. package/cjs/components/ScrollContainer/ScrollContainer.js +2 -11
  122. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  123. package/cjs/components/Select/Select.d.ts +2 -0
  124. package/cjs/components/Select/Select.js +2 -1
  125. package/cjs/components/Select/Select.js.map +1 -1
  126. package/cjs/components/SidePage/SidePage.styles.d.ts +3 -1
  127. package/cjs/components/SidePage/SidePage.styles.js +52 -38
  128. package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
  129. package/cjs/components/SidePage/SidePageBody.d.ts +2 -0
  130. package/cjs/components/SidePage/SidePageBody.js +1 -0
  131. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  132. package/cjs/components/SidePage/SidePageContainer.d.ts +2 -0
  133. package/cjs/components/SidePage/SidePageContainer.js +1 -0
  134. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  135. package/cjs/components/SidePage/SidePageFooter.d.ts +2 -0
  136. package/cjs/components/SidePage/SidePageFooter.js +1 -0
  137. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  138. package/cjs/components/SidePage/SidePageHeader.d.ts +12 -2
  139. package/cjs/components/SidePage/SidePageHeader.js +60 -19
  140. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  141. package/cjs/components/Spinner/Spinner.d.ts +2 -18
  142. package/cjs/components/Spinner/Spinner.js +2 -32
  143. package/cjs/components/Spinner/Spinner.js.map +1 -1
  144. package/cjs/components/Sticky/Sticky.d.ts +2 -13
  145. package/cjs/components/Sticky/Sticky.js +2 -22
  146. package/cjs/components/Sticky/Sticky.js.map +1 -1
  147. package/cjs/components/Switcher/Switcher.d.ts +6 -21
  148. package/cjs/components/Switcher/Switcher.js +11 -20
  149. package/cjs/components/Switcher/Switcher.js.map +1 -1
  150. package/cjs/components/Switcher/Switcher.styles.d.ts +1 -0
  151. package/cjs/components/Switcher/Switcher.styles.js +17 -9
  152. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  153. package/cjs/components/Tabs/Indicator.d.ts +2 -0
  154. package/cjs/components/Tabs/Indicator.js +1 -0
  155. package/cjs/components/Tabs/Indicator.js.map +1 -1
  156. package/cjs/components/Tabs/Tab.d.ts +2 -0
  157. package/cjs/components/Tabs/Tab.js +1 -0
  158. package/cjs/components/Tabs/Tab.js.map +1 -1
  159. package/cjs/components/Tabs/Tabs.d.ts +2 -0
  160. package/cjs/components/Tabs/Tabs.js +1 -0
  161. package/cjs/components/Tabs/Tabs.js.map +1 -1
  162. package/cjs/components/Textarea/Textarea.d.ts +2 -44
  163. package/cjs/components/Textarea/Textarea.js +2 -56
  164. package/cjs/components/Textarea/Textarea.js.map +1 -1
  165. package/cjs/components/Textarea/TextareaCounter.js +2 -13
  166. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  167. package/cjs/components/Toast/Toast.d.ts +2 -0
  168. package/cjs/components/Toast/Toast.js +1 -0
  169. package/cjs/components/Toast/Toast.js.map +1 -1
  170. package/cjs/components/Toast/ToastView.d.ts +2 -14
  171. package/cjs/components/Toast/ToastView.js +3 -22
  172. package/cjs/components/Toast/ToastView.js.map +1 -1
  173. package/cjs/components/Toggle/Toggle.d.ts +2 -10
  174. package/cjs/components/Toggle/Toggle.js +1 -11
  175. package/cjs/components/Toggle/Toggle.js.map +1 -1
  176. package/cjs/components/Token/Token.d.ts +2 -0
  177. package/cjs/components/Token/Token.js +1 -0
  178. package/cjs/components/Token/Token.js.map +1 -1
  179. package/cjs/components/TokenInput/TokenInput.d.ts +2 -0
  180. package/cjs/components/TokenInput/TokenInput.js +1 -0
  181. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  182. package/cjs/components/Tooltip/Tooltip.d.ts +14 -9
  183. package/cjs/components/Tooltip/Tooltip.js +95 -13
  184. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  185. package/cjs/components/Tooltip/Tooltip.styles.d.ts +7 -1
  186. package/cjs/components/Tooltip/Tooltip.styles.js +50 -12
  187. package/cjs/components/Tooltip/Tooltip.styles.js.map +1 -1
  188. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +4 -2
  189. package/cjs/components/TooltipMenu/TooltipMenu.js +1 -0
  190. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  191. package/cjs/index.d.ts +1 -0
  192. package/cjs/index.js.map +1 -1
  193. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
  194. package/cjs/internal/CommonWrapper/CommonWrapper.js +1 -0
  195. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  196. package/cjs/internal/ComponentTable.js +2 -3
  197. package/cjs/internal/ComponentTable.js.map +1 -1
  198. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
  199. package/cjs/internal/CustomComboBox/ComboBoxView.js +1 -0
  200. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  201. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
  202. package/cjs/internal/CustomComboBox/CustomComboBox.js +1 -0
  203. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  204. package/cjs/internal/DateSelect/DateSelect.d.ts +0 -10
  205. package/cjs/internal/DateSelect/DateSelect.js +1 -18
  206. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  207. package/cjs/internal/FocusTrap/FocusTrap.d.ts +2 -0
  208. package/cjs/internal/FocusTrap/FocusTrap.js +1 -0
  209. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  210. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +1 -0
  211. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  212. package/cjs/internal/InputLikeText/InputLikeText.d.ts +2 -0
  213. package/cjs/internal/InputLikeText/InputLikeText.js +1 -0
  214. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  215. package/cjs/internal/Menu/Menu.d.ts +2 -0
  216. package/cjs/internal/Menu/Menu.js +1 -0
  217. package/cjs/internal/Menu/Menu.js.map +1 -1
  218. package/cjs/internal/MobilePopup/MobilePopup.d.ts +2 -0
  219. package/cjs/internal/MobilePopup/MobilePopup.js +1 -0
  220. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  221. package/cjs/internal/Popup/Popup.d.ts +41 -59
  222. package/cjs/internal/Popup/Popup.js +36 -79
  223. package/cjs/internal/Popup/Popup.js.map +1 -1
  224. package/cjs/internal/Popup/PopupPin.d.ts +23 -33
  225. package/cjs/internal/Popup/PopupPin.js +2 -35
  226. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  227. package/cjs/internal/Popup/PopupPinNew.d.ts +31 -0
  228. package/cjs/internal/Popup/PopupPinNew.js +180 -0
  229. package/cjs/internal/Popup/PopupPinNew.js.map +1 -0
  230. package/cjs/internal/Popup/PopupPinNew.styles.d.ts +7 -0
  231. package/cjs/internal/Popup/PopupPinNew.styles.js +33 -0
  232. package/cjs/internal/Popup/PopupPinNew.styles.js.map +1 -0
  233. package/cjs/internal/PopupMenu/PopupMenu.d.ts +2 -0
  234. package/cjs/internal/PopupMenu/PopupMenu.js +1 -0
  235. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  236. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
  237. package/cjs/internal/RenderContainer/RenderInnerContainer.js +0 -9
  238. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  239. package/cjs/internal/RenderLayer/RenderLayer.d.ts +2 -3
  240. package/cjs/internal/RenderLayer/RenderLayer.js +3 -12
  241. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  242. package/cjs/internal/ThemePlayground/Playground.js +1 -1
  243. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  244. package/cjs/internal/ThemePlayground/Playground.styles.js +5 -8
  245. package/cjs/internal/ThemePlayground/Playground.styles.js.map +1 -1
  246. package/cjs/internal/ThemePlayground/ShowcaseGroup.js +12 -1
  247. package/cjs/internal/ThemePlayground/ShowcaseGroup.js.map +1 -1
  248. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  249. package/cjs/internal/ZIndex/ZIndex.d.ts +3 -3
  250. package/cjs/internal/ZIndex/ZIndex.js +5 -1
  251. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  252. package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
  253. package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js +16 -0
  254. package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js.map +1 -0
  255. package/cjs/internal/themes/BasicTheme.d.ts +112 -20
  256. package/cjs/internal/themes/BasicTheme.js +149 -18
  257. package/cjs/internal/themes/BasicTheme.js.map +1 -1
  258. package/cjs/internal/themes/DarkTheme5_2.js +1 -1
  259. package/cjs/internal/themes/DarkTheme5_2.js.map +1 -1
  260. package/cjs/internal/themes/DarkTheme5_3.d.ts +1 -0
  261. package/cjs/internal/themes/DarkTheme5_3.js +13 -0
  262. package/cjs/internal/themes/DarkTheme5_3.js.map +1 -0
  263. package/cjs/internal/themes/LightTheme5_3.d.ts +1 -0
  264. package/cjs/internal/themes/LightTheme5_3.js +13 -0
  265. package/cjs/internal/themes/LightTheme5_3.js.map +1 -0
  266. package/cjs/lib/delay.mts +3 -0
  267. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
  268. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
  269. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +11 -1
  270. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  271. package/cjs/lib/forwardRefAndName.d.ts +1 -1
  272. package/cjs/lib/forwardRefAndName.js +0 -1
  273. package/cjs/lib/forwardRefAndName.js.map +1 -1
  274. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -1
  275. package/cjs/lib/rootNode/rootNodeDecorator.js +1 -0
  276. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  277. package/cjs/lib/theming/ThemeVersions.d.ts +1 -1
  278. package/cjs/lib/theming/ThemeVersions.js.map +1 -1
  279. package/cjs/lib/theming/themes/DarkTheme.d.ts +1 -0
  280. package/cjs/lib/theming/themes/DarkTheme.js +4 -2
  281. package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
  282. package/cjs/lib/theming/themes/LightTheme.d.ts +1 -0
  283. package/cjs/lib/theming/themes/LightTheme.js +4 -2
  284. package/cjs/lib/theming/themes/LightTheme.js.map +1 -1
  285. package/cjs/lib/utils.d.ts +4 -0
  286. package/cjs/lib/utils.js +5 -1
  287. package/cjs/lib/utils.js.map +1 -1
  288. package/components/Autocomplete/Autocomplete/Autocomplete.js +49 -45
  289. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  290. package/components/Autocomplete/Autocomplete.d.ts +6 -23
  291. package/components/Button/Button/Button.js +26 -5
  292. package/components/Button/Button/Button.js.map +1 -1
  293. package/components/Button/Button.d.ts +2 -0
  294. package/components/Button/Button.styles/Button.styles.js +78 -60
  295. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  296. package/components/Button/Button.styles.d.ts +6 -0
  297. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  298. package/components/Calendar/Calendar.d.ts +2 -0
  299. package/components/Center/Center/Center.js.map +1 -1
  300. package/components/Center/Center.d.ts +2 -0
  301. package/components/Checkbox/Checkbox/Checkbox.js +0 -11
  302. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  303. package/components/Checkbox/Checkbox.d.ts +2 -12
  304. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  305. package/components/ComboBox/ComboBox.d.ts +2 -0
  306. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +12 -36
  307. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  308. package/components/CurrencyInput/CurrencyInput.d.ts +6 -24
  309. package/components/CurrencyInput/constants/constants.js +0 -1
  310. package/components/CurrencyInput/constants/constants.js.map +1 -1
  311. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +10 -22
  312. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  313. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  314. package/components/DateInput/DateInput.d.ts +2 -0
  315. package/components/DatePicker/DatePicker/DatePicker.js +1 -32
  316. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  317. package/components/DatePicker/DatePicker.d.ts +6 -33
  318. package/components/Dropdown/Dropdown/Dropdown.js +1 -47
  319. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  320. package/components/Dropdown/Dropdown.d.ts +2 -47
  321. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  322. package/components/DropdownMenu/DropdownMenu.d.ts +4 -2
  323. package/components/FxInput/FxInput/FxInput.js +1 -5
  324. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  325. package/components/FxInput/FxInput.d.ts +2 -5
  326. package/components/Gapped/Gapped/Gapped.js +1 -15
  327. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  328. package/components/Gapped/Gapped.d.ts +2 -15
  329. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  330. package/components/GlobalLoader/GlobalLoader.d.ts +2 -0
  331. package/components/Group/Group/Group.js +64 -28
  332. package/components/Group/Group/Group.js.map +1 -1
  333. package/components/Group/Group.d.ts +5 -4
  334. package/components/Group/Group.styles/Group.styles.js +9 -6
  335. package/components/Group/Group.styles/Group.styles.js.map +1 -1
  336. package/components/Group/Group.styles.d.ts +1 -0
  337. package/components/Hint/Hint/Hint.js.map +1 -1
  338. package/components/Hint/Hint.d.ts +2 -0
  339. package/components/Input/Input/Input.js.map +1 -1
  340. package/components/Input/Input.d.ts +2 -0
  341. package/components/Kebab/Kebab/Kebab.js +2 -20
  342. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  343. package/components/Kebab/Kebab.d.ts +2 -1
  344. package/components/Link/Link/Link.js.map +1 -1
  345. package/components/Link/Link.d.ts +2 -0
  346. package/components/Loader/Loader/Loader.js +0 -33
  347. package/components/Loader/Loader/Loader.js.map +1 -1
  348. package/components/Loader/Loader.d.ts +6 -36
  349. package/components/MaskedInput/MaskedInput/MaskedInput.js +14 -0
  350. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  351. package/components/MaskedInput/MaskedInput.d.ts +1 -0
  352. package/components/MenuItem/MenuItem/MenuItem.js +1 -12
  353. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  354. package/components/MenuItem/MenuItem.d.ts +2 -12
  355. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js +10 -7
  356. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js.map +1 -1
  357. package/components/MiniModal/MiniModal.styles.d.ts +1 -0
  358. package/components/MiniModal/MiniModalBody/MiniModalBody.js +13 -5
  359. package/components/MiniModal/MiniModalBody/MiniModalBody.js.map +1 -1
  360. package/components/Modal/Modal.styles/Modal.styles.js +31 -28
  361. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  362. package/components/Modal/Modal.styles.d.ts +1 -0
  363. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  364. package/components/Modal/ModalBody.d.ts +2 -0
  365. package/components/Modal/ModalHeader/ModalHeader.js +3 -1
  366. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  367. package/components/Modal/ModalHeader.d.ts +5 -0
  368. package/components/Paging/DotsIcon/DotsIcon.js +14 -0
  369. package/components/Paging/DotsIcon/DotsIcon.js.map +1 -0
  370. package/components/Paging/DotsIcon/package.json +6 -0
  371. package/components/Paging/DotsIcon.d.ts +3 -0
  372. package/components/Paging/ForwardIcon/ForwardIcon.js +15 -1
  373. package/components/Paging/ForwardIcon/ForwardIcon.js.map +1 -1
  374. package/components/Paging/ForwardIcon.d.ts +3 -0
  375. package/components/Paging/NavigationHelper/NavigationHelper.js +9 -8
  376. package/components/Paging/NavigationHelper/NavigationHelper.js.map +1 -1
  377. package/components/Paging/NavigationHelper.d.ts +3 -2
  378. package/components/Paging/Paging/Paging.js +96 -47
  379. package/components/Paging/Paging/Paging.js.map +1 -1
  380. package/components/Paging/Paging.d.ts +13 -2
  381. package/components/Paging/Paging.styles/Paging.styles.js +77 -16
  382. package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
  383. package/components/Paging/Paging.styles.d.ts +24 -1
  384. package/components/Paging/PagingHelper/PagingHelper.js +16 -8
  385. package/components/Paging/PagingHelper/PagingHelper.js.map +1 -1
  386. package/components/Paging/PagingHelper.d.ts +1 -1
  387. package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -7
  388. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  389. package/components/PasswordInput/PasswordInput.d.ts +2 -7
  390. package/components/Radio/Radio/Radio.js.map +1 -1
  391. package/components/Radio/Radio.d.ts +2 -0
  392. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  393. package/components/RadioGroup/RadioGroup.d.ts +2 -0
  394. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -9
  395. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  396. package/components/ScrollContainer/ScrollContainer.d.ts +2 -9
  397. package/components/Select/Select/Select.js +2 -2
  398. package/components/Select/Select/Select.js.map +1 -1
  399. package/components/Select/Select.d.ts +2 -0
  400. package/components/SidePage/SidePage.styles/SidePage.styles.js +41 -35
  401. package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
  402. package/components/SidePage/SidePage.styles.d.ts +3 -1
  403. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  404. package/components/SidePage/SidePageBody.d.ts +2 -0
  405. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  406. package/components/SidePage/SidePageContainer.d.ts +2 -0
  407. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  408. package/components/SidePage/SidePageFooter.d.ts +2 -0
  409. package/components/SidePage/SidePageHeader/SidePageHeader.js +61 -39
  410. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  411. package/components/SidePage/SidePageHeader.d.ts +12 -2
  412. package/components/Spinner/Spinner/Spinner.js +1 -18
  413. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  414. package/components/Spinner/Spinner.d.ts +2 -18
  415. package/components/Sticky/Sticky/Sticky.js +1 -13
  416. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  417. package/components/Sticky/Sticky.d.ts +2 -13
  418. package/components/Switcher/Switcher/Switcher.js +19 -16
  419. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  420. package/components/Switcher/Switcher.d.ts +6 -21
  421. package/components/Switcher/Switcher.styles/Switcher.styles.js +12 -9
  422. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  423. package/components/Switcher/Switcher.styles.d.ts +1 -0
  424. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  425. package/components/Tabs/Indicator.d.ts +2 -0
  426. package/components/Tabs/Tab/Tab.js.map +1 -1
  427. package/components/Tabs/Tab.d.ts +2 -0
  428. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  429. package/components/Tabs/Tabs.d.ts +2 -0
  430. package/components/Textarea/Textarea/Textarea.js +1 -44
  431. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  432. package/components/Textarea/Textarea.d.ts +2 -44
  433. package/components/Textarea/TextareaCounter/TextareaCounter.js +1 -11
  434. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  435. package/components/Toast/Toast/Toast.js.map +1 -1
  436. package/components/Toast/Toast.d.ts +2 -0
  437. package/components/Toast/ToastView/ToastView.js +3 -17
  438. package/components/Toast/ToastView/ToastView.js.map +1 -1
  439. package/components/Toast/ToastView.d.ts +2 -14
  440. package/components/Toggle/Toggle/Toggle.js +1 -10
  441. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  442. package/components/Toggle/Toggle.d.ts +2 -10
  443. package/components/Token/Token/Token.js.map +1 -1
  444. package/components/Token/Token.d.ts +2 -0
  445. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  446. package/components/TokenInput/TokenInput.d.ts +2 -0
  447. package/components/Tooltip/Tooltip/Tooltip.js +67 -20
  448. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  449. package/components/Tooltip/Tooltip.d.ts +14 -9
  450. package/components/Tooltip/Tooltip.styles/Tooltip.styles.js +22 -4
  451. package/components/Tooltip/Tooltip.styles/Tooltip.styles.js.map +1 -1
  452. package/components/Tooltip/Tooltip.styles.d.ts +7 -1
  453. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  454. package/components/TooltipMenu/TooltipMenu.d.ts +4 -2
  455. package/index.d.ts +1 -0
  456. package/index.js +1 -0
  457. package/index.js.map +1 -1
  458. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  459. package/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
  460. package/internal/ComponentTable/ComponentTable.js +0 -2
  461. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  462. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  463. package/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
  464. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  465. package/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
  466. package/internal/DateSelect/DateSelect/DateSelect.js +1 -10
  467. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  468. package/internal/DateSelect/DateSelect.d.ts +0 -10
  469. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  470. package/internal/FocusTrap/FocusTrap.d.ts +2 -0
  471. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  472. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  473. package/internal/InputLikeText/InputLikeText.d.ts +2 -0
  474. package/internal/Menu/Menu/Menu.js.map +1 -1
  475. package/internal/Menu/Menu.d.ts +2 -0
  476. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  477. package/internal/MobilePopup/MobilePopup.d.ts +2 -0
  478. package/internal/Popup/Popup/Popup.js +14 -64
  479. package/internal/Popup/Popup/Popup.js.map +1 -1
  480. package/internal/Popup/Popup.d.ts +41 -59
  481. package/internal/Popup/PopupPin/PopupPin.js +1 -34
  482. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  483. package/internal/Popup/PopupPin.d.ts +23 -33
  484. package/internal/Popup/PopupPinNew/PopupPinNew.js +146 -0
  485. package/internal/Popup/PopupPinNew/PopupPinNew.js.map +1 -0
  486. package/internal/Popup/PopupPinNew/package.json +6 -0
  487. package/internal/Popup/PopupPinNew.d.ts +31 -0
  488. package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js +20 -0
  489. package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js.map +1 -0
  490. package/internal/Popup/PopupPinNew.styles/package.json +6 -0
  491. package/internal/Popup/PopupPinNew.styles.d.ts +7 -0
  492. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  493. package/internal/PopupMenu/PopupMenu.d.ts +2 -0
  494. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +0 -8
  495. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  496. package/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
  497. package/internal/RenderLayer/RenderLayer/RenderLayer.js +3 -11
  498. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  499. package/internal/RenderLayer/RenderLayer.d.ts +2 -3
  500. package/internal/ThemePlayground/Playground/Playground.js +4 -3
  501. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  502. package/internal/ThemePlayground/Playground.styles/Playground.styles.js +4 -4
  503. package/internal/ThemePlayground/Playground.styles/Playground.styles.js.map +1 -1
  504. package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js +6 -1
  505. package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js.map +1 -1
  506. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  507. package/internal/ZIndex/ZIndex/ZIndex.js +8 -10
  508. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  509. package/internal/ZIndex/ZIndex.d.ts +3 -3
  510. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js +21 -0
  511. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js.map +1 -0
  512. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/package.json +6 -0
  513. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
  514. package/internal/themes/BasicTheme/BasicTheme.js +170 -26
  515. package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
  516. package/internal/themes/BasicTheme.d.ts +112 -20
  517. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js +3 -3
  518. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js.map +1 -1
  519. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js +16 -0
  520. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js.map +1 -0
  521. package/internal/themes/DarkTheme5_3/package.json +6 -0
  522. package/internal/themes/DarkTheme5_3.d.ts +1 -0
  523. package/internal/themes/LightTheme5_3/LightTheme5_3.js +16 -0
  524. package/internal/themes/LightTheme5_3/LightTheme5_3.js.map +1 -0
  525. package/internal/themes/LightTheme5_3/package.json +6 -0
  526. package/internal/themes/LightTheme5_3.d.ts +1 -0
  527. package/lib/delay.d.mts +1 -0
  528. package/lib/delay.mts +3 -0
  529. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
  530. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +6 -1
  531. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  532. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
  533. package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
  534. package/lib/forwardRefAndName.d.ts +1 -1
  535. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  536. package/lib/rootNode/rootNodeDecorator.d.ts +2 -1
  537. package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -1
  538. package/lib/theming/ThemeVersions.d.ts +1 -1
  539. package/lib/theming/themes/DarkTheme/DarkTheme.js +3 -1
  540. package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
  541. package/lib/theming/themes/DarkTheme.d.ts +1 -0
  542. package/lib/theming/themes/LightTheme/LightTheme.js +3 -1
  543. package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
  544. package/lib/theming/themes/LightTheme.d.ts +1 -0
  545. package/lib/utils/utils.js +2 -0
  546. package/lib/utils/utils.js.map +1 -1
  547. package/lib/utils.d.ts +4 -0
  548. package/package.json +10 -13
  549. package/cjs/lib/SSRSafe.d.ts +0 -2
  550. package/cjs/lib/SSRSafe.js +0 -5
  551. package/cjs/lib/SSRSafe.js.map +0 -1
  552. package/lib/SSRSafe/SSRSafe.js +0 -4
  553. package/lib/SSRSafe/SSRSafe.js.map +0 -1
  554. package/lib/SSRSafe/package.json +0 -6
  555. package/lib/SSRSafe.d.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"names":["React","CommonWrapper","ThemeContext","responsiveLayout","cx","rootNode","styles","SidePageContext","SidePageBodyDataTids","root","SidePageBody","_class","_SidePageBody","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","_inheritsLoose","_proto","prototype","componentDidUpdate","updateLayout","render","_this2","createElement","Consumer","theme","_cx","_extends","rootNodeRef","setRootNode","props","className","body","mobileBody","isMobileLayout","children","Component","__KONTUR_REACT_UI__","displayName","contextType"],"sources":["SidePageBody.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\n\nimport { styles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\n\nexport interface SidePageBodyProps extends CommonProps {\n children?: React.ReactNode;\n}\n\nexport const SidePageBodyDataTids = {\n root: 'SidePageBody__root',\n} as const;\n/**\n * Тело для сайдпейджа\n *\n * @visibleName SidePage.Body\n */\n@responsiveLayout\n@rootNode\nexport class SidePageBody extends React.Component<SidePageBodyProps> {\n public static __KONTUR_REACT_UI__ = 'SidePageBody';\n public static displayName = 'SidePageBody';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n private isMobileLayout!: boolean;\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate() {\n this.context.updateLayout();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageBodyDataTids.root}\n className={cx(styles.body(theme), { [styles.mobileBody()]: this.isMobileLayout })}\n >\n {this.props.children}\n </div>\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n}\n"],"mappings":"0JAAA,OAAOA,KAAK,MAAM,OAAO;;;AAGzB,SAASC,aAAa,QAAQ,8BAA8B;AAC5D,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,SAASC,gBAAgB,QAAQ,+BAA+B;AAChE,SAASC,EAAE,QAAQ,2BAA2B;;AAE9C,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C,SAASC,MAAM,QAAQ,mBAAmB;;AAE1C,SAASC,eAAe,QAAQ,mBAAmB;;;;;;AAMnD,OAAO,IAAMC,oBAAoB,GAAG;EAClCC,IAAI,EAAE;AACR,CAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEaC,YAAY,GAFxBP,gBAAgB,CAAAQ,MAAA,GAChBN,QAAQ,CAAAM,MAAA,IAAAC,aAAA,0BAAAC,gBAAA,YAAAH,aAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;IAMAU,OAAO,GAAwBV,KAAA,CAAKU,OAAO,QAAAV,KAAA,EAAAW,cAAA,CAAAf,YAAA,EAAAG,gBAAA,MAAAa,MAAA,GAAAhB,YAAA,CAAAiB,SAAA,CAAAD,MAAA;;;;EAI3CE,kBAAkB,GAAzB,SAAAA,mBAAA,EAA4B;IAC1B,IAAI,CAACJ,OAAO,CAACK,YAAY,CAAC,CAAC;EAC7B,CAAC,CAAAH,MAAA;;EAEMI,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA;IACd;MACE/B,KAAA,CAAAgC,aAAA,CAAC9B,YAAY,CAAC+B,QAAQ;MACnB,UAACC,KAAK,EAAK,KAAAC,GAAA;QACV;UACEnC,KAAA,CAAAgC,aAAA,CAAC/B,aAAa,EAAAmC,QAAA,GAACC,WAAW,EAAEN,MAAI,CAACO,WAAY,IAAKP,MAAI,CAACQ,KAAK;UAC1DvC,KAAA,CAAAgC,aAAA;YACE,YAAUxB,oBAAoB,CAACC,IAAK;YACpC+B,SAAS,EAAEpC,EAAE,CAACE,MAAM,CAACmC,IAAI,CAACP,KAAK,CAAC,GAAAC,GAAA,OAAAA,GAAA,CAAK7B,MAAM,CAACoC,UAAU,CAAC,CAAC,IAAGX,MAAI,CAACY,cAAc,EAAAR,GAAA,CAAE,CAAE;;UAEjFJ,MAAI,CAACQ,KAAK,CAACK;UACT;UACQ,CAAC;;MAEpB;MACqB,CAAC;;EAE5B,CAAC,QAAAlC,YAAA,GA9B+BV,KAAK,CAAC6C,SAAS,GAAAjC,aAAA,CACjCkC,mBAAmB,GAAG,cAAc,EAAAlC,aAAA,CACpCmC,WAAW,GAAG,cAAc,EAAAnC,aAAA,CAE5BoC,WAAW,GAAGzC,eAAe,EAAAK,aAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
1
+ {"version":3,"names":["React","CommonWrapper","ThemeContext","responsiveLayout","cx","rootNode","styles","SidePageContext","SidePageBodyDataTids","root","SidePageBody","_class","_SidePageBody","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","_inheritsLoose","_proto","prototype","componentDidUpdate","updateLayout","render","_this2","createElement","Consumer","theme","_cx","_extends","rootNodeRef","setRootNode","props","className","body","mobileBody","isMobileLayout","children","Component","__KONTUR_REACT_UI__","displayName","contextType"],"sources":["SidePageBody.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\n\nimport { styles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\n\nexport interface SidePageBodyProps extends CommonProps {\n children?: React.ReactNode;\n}\n\nexport const SidePageBodyDataTids = {\n root: 'SidePageBody__root',\n} as const;\n/**\n * Тело для сайдпейджа\n *\n * @visibleName SidePage.Body\n */\n@responsiveLayout\n@rootNode\nexport class SidePageBody extends React.Component<SidePageBodyProps> {\n public static __KONTUR_REACT_UI__ = 'SidePageBody';\n public static displayName = 'SidePageBody';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n private isMobileLayout!: boolean;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate() {\n this.context.updateLayout();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageBodyDataTids.root}\n className={cx(styles.body(theme), { [styles.mobileBody()]: this.isMobileLayout })}\n >\n {this.props.children}\n </div>\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n}\n"],"mappings":"0JAAA,OAAOA,KAAK,MAAM,OAAO;;;AAGzB,SAASC,aAAa,QAAQ,8BAA8B;AAC5D,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,SAASC,gBAAgB,QAAQ,+BAA+B;AAChE,SAASC,EAAE,QAAQ,2BAA2B;;AAE9C,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C,SAASC,MAAM,QAAQ,mBAAmB;;AAE1C,SAASC,eAAe,QAAQ,mBAAmB;;;;;;AAMnD,OAAO,IAAMC,oBAAoB,GAAG;EAClCC,IAAI,EAAE;AACR,CAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEaC,YAAY,GAFxBP,gBAAgB,CAAAQ,MAAA,GAChBN,QAAQ,CAAAM,MAAA,IAAAC,aAAA,0BAAAC,gBAAA,YAAAH,aAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;IAMAU,OAAO,GAAwBV,KAAA,CAAKU,OAAO,QAAAV,KAAA,EAAAW,cAAA,CAAAf,YAAA,EAAAG,gBAAA,MAAAa,MAAA,GAAAhB,YAAA,CAAAiB,SAAA,CAAAD,MAAA;;;;;EAK3CE,kBAAkB,GAAzB,SAAAA,mBAAA,EAA4B;IAC1B,IAAI,CAACJ,OAAO,CAACK,YAAY,CAAC,CAAC;EAC7B,CAAC,CAAAH,MAAA;;EAEMI,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA;IACd;MACE/B,KAAA,CAAAgC,aAAA,CAAC9B,YAAY,CAAC+B,QAAQ;MACnB,UAACC,KAAK,EAAK,KAAAC,GAAA;QACV;UACEnC,KAAA,CAAAgC,aAAA,CAAC/B,aAAa,EAAAmC,QAAA,GAACC,WAAW,EAAEN,MAAI,CAACO,WAAY,IAAKP,MAAI,CAACQ,KAAK;UAC1DvC,KAAA,CAAAgC,aAAA;YACE,YAAUxB,oBAAoB,CAACC,IAAK;YACpC+B,SAAS,EAAEpC,EAAE,CAACE,MAAM,CAACmC,IAAI,CAACP,KAAK,CAAC,GAAAC,GAAA,OAAAA,GAAA,CAAK7B,MAAM,CAACoC,UAAU,CAAC,CAAC,IAAGX,MAAI,CAACY,cAAc,EAAAR,GAAA,CAAE,CAAE;;UAEjFJ,MAAI,CAACQ,KAAK,CAACK;UACT;UACQ,CAAC;;MAEpB;MACqB,CAAC;;EAE5B,CAAC,QAAAlC,YAAA,GA/B+BV,KAAK,CAAC6C,SAAS,GAAAjC,aAAA,CACjCkC,mBAAmB,GAAG,cAAc,EAAAlC,aAAA,CACpCmC,WAAW,GAAG,cAAc,EAAAnC,aAAA,CAE5BoC,WAAW,GAAGzC,eAAe,EAAAK,aAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { CommonProps } from '../../internal/CommonWrapper';
3
+ import type { TGetRootNode } from '../../lib/rootNode';
3
4
  import type { SidePageContextType } from './SidePageContext';
4
5
  export interface SidePageBodyProps extends CommonProps {
5
6
  children?: React.ReactNode;
@@ -18,6 +19,7 @@ export declare class SidePageBody extends React.Component<SidePageBodyProps> {
18
19
  static contextType: React.Context<SidePageContextType>;
19
20
  context: SidePageContextType;
20
21
  private isMobileLayout;
22
+ getRootNode: TGetRootNode;
21
23
  private setRootNode;
22
24
  componentDidUpdate(): void;
23
25
  render(): React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"names":["React","ThemeContext","CommonWrapper","cx","responsiveLayout","rootNode","styles","SidePageContext","SidePageContainerDataTids","root","SidePageContainer","_class","_SidePageContainer","_React$Component","apply","arguments","_inheritsLoose","_proto","prototype","render","_this","createElement","Consumer","theme","renderMain","_this2","_ref","_cx","hasHeader","hasFooter","hasPanel","_extends","rootNodeRef","setRootNode","props","className","container","containerWithoutHeader","containerWithoutFooter","containerWithPanel","mobileContainer","isMobileLayout","mobileContainerWithoutHeader","children","Component","__KONTUR_REACT_UI__","displayName"],"sources":["SidePageContainer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\n\nimport { styles } from './SidePage.styles';\nimport { SidePageContext } from './SidePageContext';\n\nexport type SidePageContainerProps = CommonProps;\n\nexport const SidePageContainerDataTids = {\n root: 'SidePageContainer__root',\n} as const;\n\n/**\n * Контейнер с отступами\n *\n * @visibleName SidePage.Container\n */\n@responsiveLayout\n@rootNode\nexport class SidePageContainer extends React.Component<SidePageContainerProps> {\n public static __KONTUR_REACT_UI__ = 'SidePageContainer';\n public static displayName = 'SidePageContainer';\n\n private theme!: Theme;\n private isMobileLayout!: boolean;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n return (\n <SidePageContext.Consumer>\n {({ hasHeader, hasFooter, hasPanel }) => (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageContainerDataTids.root}\n className={cx({\n [styles.container(this.theme)]: true,\n [styles.containerWithoutHeader(this.theme)]: !hasHeader,\n [styles.containerWithoutFooter(this.theme)]: !hasFooter,\n [styles.containerWithPanel(this.theme)]: hasPanel,\n [styles.mobileContainer(this.theme)]: this.isMobileLayout,\n [styles.mobileContainerWithoutHeader(this.theme)]: this.isMobileLayout && !hasHeader,\n })}\n >\n {this.props.children}\n </div>\n </CommonWrapper>\n )}\n </SidePageContext.Consumer>\n );\n }\n}\n"],"mappings":"+JAAA,OAAOA,KAAK,MAAM,OAAO;;AAEzB,SAASC,YAAY,QAAQ,gCAAgC;;AAE7D,SAASC,aAAa,QAAQ,8BAA8B;;AAE5D,SAASC,EAAE,QAAQ,2BAA2B;AAC9C,SAASC,gBAAgB,QAAQ,+BAA+B;;AAEhE,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,eAAe,QAAQ,mBAAmB;;;;AAInD,OAAO,IAAMC,yBAAyB,GAAG;EACvCC,IAAI,EAAE;AACR,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;;AAEaC,iBAAiB,GAF7BN,gBAAgB,CAAAO,MAAA,GAChBN,QAAQ,CAAAM,MAAA,IAAAC,kBAAA,0BAAAC,gBAAA,YAAAH,kBAAA,UAAAG,gBAAA,CAAAC,KAAA,OAAAC,SAAA,WAAAC,cAAA,CAAAN,iBAAA,EAAAG,gBAAA,MAAAI,MAAA,GAAAP,iBAAA,CAAAQ,SAAA,CAAAD,MAAA;;;;;;;;EASAE,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,KAAA;IACd;MACEpB,KAAA,CAAAqB,aAAA,CAACpB,YAAY,CAACqB,QAAQ;MACnB,UAACC,KAAK,EAAK;QACVH,KAAI,CAACG,KAAK,GAAGA,KAAK;QAClB,OAAOH,KAAI,CAACI,UAAU,CAAC,CAAC;MAC1B;MACqB,CAAC;;EAE5B,CAAC,CAAAP,MAAA;;EAEMO,UAAU,GAAjB,SAAAA,WAAA,EAAoB,KAAAC,MAAA;IAClB;MACEzB,KAAA,CAAAqB,aAAA,CAACd,eAAe,CAACe,QAAQ;MACtB,UAAAI,IAAA,OAAAC,GAAA,KAAGC,SAAS,GAAAF,IAAA,CAATE,SAAS,CAAEC,SAAS,GAAAH,IAAA,CAATG,SAAS,CAAEC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;UAChC9B,KAAA,CAAAqB,aAAA,CAACnB,aAAa,EAAA6B,QAAA,GAACC,WAAW,EAAEP,MAAI,CAACQ,WAAY,IAAKR,MAAI,CAACS,KAAK;UAC1DlC,KAAA,CAAAqB,aAAA;YACE,YAAUb,yBAAyB,CAACC,IAAK;YACzC0B,SAAS,EAAEhC,EAAE,EAAAwB,GAAA,OAAAA,GAAA;YACVrB,MAAM,CAAC8B,SAAS,CAACX,MAAI,CAACF,KAAK,CAAC,IAAG,IAAI,EAAAI,GAAA;YACnCrB,MAAM,CAAC+B,sBAAsB,CAACZ,MAAI,CAACF,KAAK,CAAC,IAAG,CAACK,SAAS,EAAAD,GAAA;YACtDrB,MAAM,CAACgC,sBAAsB,CAACb,MAAI,CAACF,KAAK,CAAC,IAAG,CAACM,SAAS,EAAAF,GAAA;YACtDrB,MAAM,CAACiC,kBAAkB,CAACd,MAAI,CAACF,KAAK,CAAC,IAAGO,QAAQ,EAAAH,GAAA;YAChDrB,MAAM,CAACkC,eAAe,CAACf,MAAI,CAACF,KAAK,CAAC,IAAGE,MAAI,CAACgB,cAAc,EAAAd,GAAA;YACxDrB,MAAM,CAACoC,4BAA4B,CAACjB,MAAI,CAACF,KAAK,CAAC,IAAGE,MAAI,CAACgB,cAAc,IAAI,CAACb,SAAS,EAAAD,GAAA;YACrF,CAAE;;UAEFF,MAAI,CAACS,KAAK,CAACS;UACT;UACQ,CAAC;;MAEM,CAAC;;EAE/B,CAAC,QAAAjC,iBAAA,GAzCoCV,KAAK,CAAC4C,SAAS,GAAAhC,kBAAA,CACtCiC,mBAAmB,GAAG,mBAAmB,EAAAjC,kBAAA,CACzCkC,WAAW,GAAG,mBAAmB,EAAAlC,kBAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
1
+ {"version":3,"names":["React","ThemeContext","CommonWrapper","cx","responsiveLayout","rootNode","styles","SidePageContext","SidePageContainerDataTids","root","SidePageContainer","_class","_SidePageContainer","_React$Component","apply","arguments","_inheritsLoose","_proto","prototype","render","_this","createElement","Consumer","theme","renderMain","_this2","_ref","_cx","hasHeader","hasFooter","hasPanel","_extends","rootNodeRef","setRootNode","props","className","container","containerWithoutHeader","containerWithoutFooter","containerWithPanel","mobileContainer","isMobileLayout","mobileContainerWithoutHeader","children","Component","__KONTUR_REACT_UI__","displayName"],"sources":["SidePageContainer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\n\nimport { styles } from './SidePage.styles';\nimport { SidePageContext } from './SidePageContext';\n\nexport type SidePageContainerProps = CommonProps;\n\nexport const SidePageContainerDataTids = {\n root: 'SidePageContainer__root',\n} as const;\n\n/**\n * Контейнер с отступами\n *\n * @visibleName SidePage.Container\n */\n@responsiveLayout\n@rootNode\nexport class SidePageContainer extends React.Component<SidePageContainerProps> {\n public static __KONTUR_REACT_UI__ = 'SidePageContainer';\n public static displayName = 'SidePageContainer';\n\n private theme!: Theme;\n private isMobileLayout!: boolean;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n return (\n <SidePageContext.Consumer>\n {({ hasHeader, hasFooter, hasPanel }) => (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageContainerDataTids.root}\n className={cx({\n [styles.container(this.theme)]: true,\n [styles.containerWithoutHeader(this.theme)]: !hasHeader,\n [styles.containerWithoutFooter(this.theme)]: !hasFooter,\n [styles.containerWithPanel(this.theme)]: hasPanel,\n [styles.mobileContainer(this.theme)]: this.isMobileLayout,\n [styles.mobileContainerWithoutHeader(this.theme)]: this.isMobileLayout && !hasHeader,\n })}\n >\n {this.props.children}\n </div>\n </CommonWrapper>\n )}\n </SidePageContext.Consumer>\n );\n }\n}\n"],"mappings":"+JAAA,OAAOA,KAAK,MAAM,OAAO;;AAEzB,SAASC,YAAY,QAAQ,gCAAgC;;AAE7D,SAASC,aAAa,QAAQ,8BAA8B;;AAE5D,SAASC,EAAE,QAAQ,2BAA2B;AAC9C,SAASC,gBAAgB,QAAQ,+BAA+B;;AAEhE,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,eAAe,QAAQ,mBAAmB;;;;AAInD,OAAO,IAAMC,yBAAyB,GAAG;EACvCC,IAAI,EAAE;AACR,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;;AAEaC,iBAAiB,GAF7BN,gBAAgB,CAAAO,MAAA,GAChBN,QAAQ,CAAAM,MAAA,IAAAC,kBAAA,0BAAAC,gBAAA,YAAAH,kBAAA,UAAAG,gBAAA,CAAAC,KAAA,OAAAC,SAAA,WAAAC,cAAA,CAAAN,iBAAA,EAAAG,gBAAA,MAAAI,MAAA,GAAAP,iBAAA,CAAAQ,SAAA,CAAAD,MAAA;;;;;;;;;EAUAE,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,KAAA;IACd;MACEpB,KAAA,CAAAqB,aAAA,CAACpB,YAAY,CAACqB,QAAQ;MACnB,UAACC,KAAK,EAAK;QACVH,KAAI,CAACG,KAAK,GAAGA,KAAK;QAClB,OAAOH,KAAI,CAACI,UAAU,CAAC,CAAC;MAC1B;MACqB,CAAC;;EAE5B,CAAC,CAAAP,MAAA;;EAEMO,UAAU,GAAjB,SAAAA,WAAA,EAAoB,KAAAC,MAAA;IAClB;MACEzB,KAAA,CAAAqB,aAAA,CAACd,eAAe,CAACe,QAAQ;MACtB,UAAAI,IAAA,OAAAC,GAAA,KAAGC,SAAS,GAAAF,IAAA,CAATE,SAAS,CAAEC,SAAS,GAAAH,IAAA,CAATG,SAAS,CAAEC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;UAChC9B,KAAA,CAAAqB,aAAA,CAACnB,aAAa,EAAA6B,QAAA,GAACC,WAAW,EAAEP,MAAI,CAACQ,WAAY,IAAKR,MAAI,CAACS,KAAK;UAC1DlC,KAAA,CAAAqB,aAAA;YACE,YAAUb,yBAAyB,CAACC,IAAK;YACzC0B,SAAS,EAAEhC,EAAE,EAAAwB,GAAA,OAAAA,GAAA;YACVrB,MAAM,CAAC8B,SAAS,CAACX,MAAI,CAACF,KAAK,CAAC,IAAG,IAAI,EAAAI,GAAA;YACnCrB,MAAM,CAAC+B,sBAAsB,CAACZ,MAAI,CAACF,KAAK,CAAC,IAAG,CAACK,SAAS,EAAAD,GAAA;YACtDrB,MAAM,CAACgC,sBAAsB,CAACb,MAAI,CAACF,KAAK,CAAC,IAAG,CAACM,SAAS,EAAAF,GAAA;YACtDrB,MAAM,CAACiC,kBAAkB,CAACd,MAAI,CAACF,KAAK,CAAC,IAAGO,QAAQ,EAAAH,GAAA;YAChDrB,MAAM,CAACkC,eAAe,CAACf,MAAI,CAACF,KAAK,CAAC,IAAGE,MAAI,CAACgB,cAAc,EAAAd,GAAA;YACxDrB,MAAM,CAACoC,4BAA4B,CAACjB,MAAI,CAACF,KAAK,CAAC,IAAGE,MAAI,CAACgB,cAAc,IAAI,CAACb,SAAS,EAAAD,GAAA;YACrF,CAAE;;UAEFF,MAAI,CAACS,KAAK,CAACS;UACT;UACQ,CAAC;;MAEM,CAAC;;EAE/B,CAAC,QAAAjC,iBAAA,GA1CoCV,KAAK,CAAC4C,SAAS,GAAAhC,kBAAA,CACtCiC,mBAAmB,GAAG,mBAAmB,EAAAjC,kBAAA,CACzCkC,WAAW,GAAG,mBAAmB,EAAAlC,kBAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { CommonProps } from '../../internal/CommonWrapper';
3
+ import type { TGetRootNode } from '../../lib/rootNode';
3
4
  export type SidePageContainerProps = CommonProps;
4
5
  export declare const SidePageContainerDataTids: {
5
6
  readonly root: "SidePageContainer__root";
@@ -14,6 +15,7 @@ export declare class SidePageContainer extends React.Component<SidePageContainer
14
15
  static displayName: string;
15
16
  private theme;
16
17
  private isMobileLayout;
18
+ getRootNode: TGetRootNode;
17
19
  private setRootNode;
18
20
  render(): React.JSX.Element;
19
21
  renderMain(): React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"names":["React","LayoutEvents","ThemeContext","CommonWrapper","cx","responsiveLayout","getRootNode","rootNode","getDOMRect","Gapped","isNonNullable","ModalSeparator","styles","SidePageContext","SidePageFooterDataTids","root","SidePageFooter","_class","_SidePageFooter","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","state","fixed","content","layoutSub","update","setProperStyles","refContent","node","wrapper","wrapperRect","contentRect","top","setState","_inheritsLoose","_proto","prototype","componentDidMount","_this$context$setHasF","_this$context","_this$context$setHasP","_this$context2","footerRef","addListener","setHasFooter","setHasPanel","props","panel","componentDidUpdate","prevProps","_this$context$setHasP2","_this$context3","componentWillUnmount","_this$context$setHasF2","_this$context4","_this$context$setHasP3","_this$context5","remove","getSticky","sticky","isMobileLayout","render","_this2","createElement","Consumer","theme","renderMain","_this3","separator","_extends","rootNodeRef","setRootNode","style","height","getContentHeight","className","footerWrapper","_ref","_cx","_cx2","getWidth","footer","positionStatic","width","footerContent","footerFixed","panelFixed","mobileFooterContent","ref","gap","vertical","children","Component","__KONTUR_REACT_UI__","displayName","contextType"],"sources":["SidePageFooter.tsx"],"sourcesContent":["import React from 'react';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport type { GappedProps } from '../Gapped';\nimport { Gapped } from '../Gapped';\nimport { isNonNullable } from '../../lib/utils';\nimport { ModalSeparator } from '../Modal/ModalSeparator';\n\nimport { styles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\n\nexport interface SidePageFooterProps extends Omit<CommonProps, 'children'> {\n /** @ignore */\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n\n /** Включает серый цвет в футере. */\n panel?: boolean;\n\n /** Закрепляет футер снизу сайдпейджа. */\n sticky?: boolean;\n\n /** Задает расстояние между элементами футера в пикселях. */\n gap?: GappedProps['gap'];\n}\n\ninterface SidePageFooterState {\n fixed: boolean;\n}\n\nexport const SidePageFooterDataTids = {\n root: 'SidePageFooter__root',\n} as const;\n\n/**\n * Футер сайдпейджа.\n *\n * @visibleName SidePage.Footer\n */\n@responsiveLayout\n@rootNode\nexport class SidePageFooter extends React.Component<React.PropsWithChildren<SidePageFooterProps>> {\n public static __KONTUR_REACT_UI__ = 'SidePageFooter';\n public static displayName = 'SidePageFooter';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n private isMobileLayout!: boolean;\n\n public state: SidePageFooterState = {\n fixed: false,\n };\n\n private theme!: Theme;\n private content: HTMLElement | null = null;\n private layoutSub: ReturnType<typeof LayoutEvents.addListener> | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.context.footerRef(this);\n this.update();\n this.layoutSub = LayoutEvents.addListener(this.update);\n this.context.setHasFooter?.();\n this.context.setHasPanel?.(this.props.panel);\n }\n\n public componentDidUpdate(prevProps: Readonly<SidePageFooterProps>) {\n this.props.panel !== prevProps.panel && this.context.setHasPanel?.(this.props.panel);\n }\n\n public componentWillUnmount() {\n this.context.footerRef(null);\n if (this.layoutSub) {\n this.layoutSub.remove();\n }\n this.context.setHasFooter?.(false);\n this.context.setHasPanel?.(false);\n }\n\n public getSticky() {\n if (typeof this.props.sticky !== 'undefined') {\n return this.props.sticky;\n }\n\n if (this.isMobileLayout) {\n return false;\n }\n\n return true;\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public update = () => {\n this.setProperStyles();\n };\n\n private renderMain() {\n const separator: React.ReactNode = (this.props.panel || this.state.fixed) && (\n <ModalSeparator fixed={this.state.fixed} />\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageFooterDataTids.root}\n style={{ height: this.getContentHeight() }}\n className={styles.footerWrapper()}\n >\n <SidePageContext.Consumer>\n {({ getWidth }) => (\n <div\n className={cx(styles.footer(this.theme), {\n [styles.positionStatic()]: !this.getSticky(),\n })}\n style={{\n width: getWidth(),\n }}\n >\n {separator}\n <div\n className={cx(styles.footerContent(this.theme), {\n [styles.footerFixed(this.theme)]: this.state.fixed,\n [styles.panel(this.theme)]: !!this.props.panel,\n [styles.panelFixed(this.theme)]: !!this.props.panel && this.state.fixed,\n [styles.mobileFooterContent(this.theme)]: this.isMobileLayout,\n })}\n ref={this.refContent}\n >\n {isNonNullable(this.props.gap) ? (\n <Gapped vertical={this.isMobileLayout} gap={this.props.gap}>\n {this.props.children}\n </Gapped>\n ) : (\n this.props.children\n )}\n </div>\n </div>\n )}\n </SidePageContext.Consumer>\n </div>\n </CommonWrapper>\n );\n }\n\n private refContent = (node: HTMLElement | null) => {\n this.content = node;\n };\n\n private setProperStyles = () => {\n const wrapper = getRootNode(this);\n if (wrapper && this.content) {\n const wrapperRect = getDOMRect(wrapper);\n const contentRect = getDOMRect(this.content);\n const fixed = wrapperRect.top > contentRect.top;\n this.setState({ fixed });\n }\n };\n\n private getContentHeight() {\n if (!this.content) {\n return 'auto';\n }\n return getDOMRect(this.content).height;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","LayoutEvents","ThemeContext","CommonWrapper","cx","responsiveLayout","getRootNode","rootNode","getDOMRect","Gapped","isNonNullable","ModalSeparator","styles","SidePageContext","SidePageFooterDataTids","root","SidePageFooter","_class","_SidePageFooter","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","state","fixed","content","layoutSub","update","setProperStyles","refContent","node","wrapper","wrapperRect","contentRect","top","setState","_inheritsLoose","_proto","prototype","componentDidMount","_this$context$setHasF","_this$context","_this$context$setHasP","_this$context2","footerRef","addListener","setHasFooter","setHasPanel","props","panel","componentDidUpdate","prevProps","_this$context$setHasP2","_this$context3","componentWillUnmount","_this$context$setHasF2","_this$context4","_this$context$setHasP3","_this$context5","remove","getSticky","sticky","isMobileLayout","render","_this2","createElement","Consumer","theme","renderMain","_this3","separator","_extends","rootNodeRef","setRootNode","style","height","getContentHeight","className","footerWrapper","_ref","_cx","_cx2","getWidth","footer","positionStatic","width","footerContent","footerFixed","panelFixed","mobileFooterContent","ref","gap","vertical","children","Component","__KONTUR_REACT_UI__","displayName","contextType"],"sources":["SidePageFooter.tsx"],"sourcesContent":["import React from 'react';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport type { GappedProps } from '../Gapped';\nimport { Gapped } from '../Gapped';\nimport { isNonNullable } from '../../lib/utils';\nimport { ModalSeparator } from '../Modal/ModalSeparator';\n\nimport { styles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\n\nexport interface SidePageFooterProps extends Omit<CommonProps, 'children'> {\n /** @ignore */\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n\n /** Включает серый цвет в футере. */\n panel?: boolean;\n\n /** Закрепляет футер снизу сайдпейджа. */\n sticky?: boolean;\n\n /** Задает расстояние между элементами футера в пикселях. */\n gap?: GappedProps['gap'];\n}\n\ninterface SidePageFooterState {\n fixed: boolean;\n}\n\nexport const SidePageFooterDataTids = {\n root: 'SidePageFooter__root',\n} as const;\n\n/**\n * Футер сайдпейджа.\n *\n * @visibleName SidePage.Footer\n */\n@responsiveLayout\n@rootNode\nexport class SidePageFooter extends React.Component<React.PropsWithChildren<SidePageFooterProps>> {\n public static __KONTUR_REACT_UI__ = 'SidePageFooter';\n public static displayName = 'SidePageFooter';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n private isMobileLayout!: boolean;\n\n public state: SidePageFooterState = {\n fixed: false,\n };\n\n private theme!: Theme;\n private content: HTMLElement | null = null;\n private layoutSub: ReturnType<typeof LayoutEvents.addListener> | null = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.context.footerRef(this);\n this.update();\n this.layoutSub = LayoutEvents.addListener(this.update);\n this.context.setHasFooter?.();\n this.context.setHasPanel?.(this.props.panel);\n }\n\n public componentDidUpdate(prevProps: Readonly<SidePageFooterProps>) {\n this.props.panel !== prevProps.panel && this.context.setHasPanel?.(this.props.panel);\n }\n\n public componentWillUnmount() {\n this.context.footerRef(null);\n if (this.layoutSub) {\n this.layoutSub.remove();\n }\n this.context.setHasFooter?.(false);\n this.context.setHasPanel?.(false);\n }\n\n public getSticky() {\n if (typeof this.props.sticky !== 'undefined') {\n return this.props.sticky;\n }\n\n if (this.isMobileLayout) {\n return false;\n }\n\n return true;\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public update = () => {\n this.setProperStyles();\n };\n\n private renderMain() {\n const separator: React.ReactNode = (this.props.panel || this.state.fixed) && (\n <ModalSeparator fixed={this.state.fixed} />\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageFooterDataTids.root}\n style={{ height: this.getContentHeight() }}\n className={styles.footerWrapper()}\n >\n <SidePageContext.Consumer>\n {({ getWidth }) => (\n <div\n className={cx(styles.footer(this.theme), {\n [styles.positionStatic()]: !this.getSticky(),\n })}\n style={{\n width: getWidth(),\n }}\n >\n {separator}\n <div\n className={cx(styles.footerContent(this.theme), {\n [styles.footerFixed(this.theme)]: this.state.fixed,\n [styles.panel(this.theme)]: !!this.props.panel,\n [styles.panelFixed(this.theme)]: !!this.props.panel && this.state.fixed,\n [styles.mobileFooterContent(this.theme)]: this.isMobileLayout,\n })}\n ref={this.refContent}\n >\n {isNonNullable(this.props.gap) ? (\n <Gapped vertical={this.isMobileLayout} gap={this.props.gap}>\n {this.props.children}\n </Gapped>\n ) : (\n this.props.children\n )}\n </div>\n </div>\n )}\n </SidePageContext.Consumer>\n </div>\n </CommonWrapper>\n );\n }\n\n private refContent = (node: HTMLElement | null) => {\n this.content = node;\n };\n\n private setProperStyles = () => {\n const wrapper = getRootNode(this);\n if (wrapper && this.content) {\n const wrapperRect = getDOMRect(wrapper);\n const contentRect = getDOMRect(this.content);\n const fixed = wrapperRect.top > contentRect.top;\n this.setState({ fixed });\n }\n };\n\n private getContentHeight() {\n if (!this.content) {\n return 'auto';\n }\n return getDOMRect(this.content).height;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { CommonProps } from '../../internal/CommonWrapper';
3
+ import type { TGetRootNode } from '../../lib/rootNode';
3
4
  import type { GappedProps } from '../Gapped';
4
5
  import type { SidePageContextType } from './SidePageContext';
5
6
  export interface SidePageFooterProps extends Omit<CommonProps, 'children'> {
@@ -33,6 +34,7 @@ export declare class SidePageFooter extends React.Component<React.PropsWithChild
33
34
  private theme;
34
35
  private content;
35
36
  private layoutSub;
37
+ getRootNode: TGetRootNode;
36
38
  private setRootNode;
37
39
  componentDidMount(): void;
38
40
  componentDidUpdate(prevProps: Readonly<SidePageFooterProps>): void;
@@ -3,18 +3,18 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
3
  import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
4
4
  var _class, _SidePageHeader;
5
5
  import React from 'react';
6
- import { globalObject } from '@skbkontur/global-object';
6
+ import throttle from 'lodash.throttle';
7
7
  import { Sticky } from "../../Sticky";
8
8
  import { isFunction } from "../../../lib/utils";
9
9
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
10
10
  import { CommonWrapper } from "../../../internal/CommonWrapper";
11
11
  import { cx } from "../../../lib/theming/Emotion";
12
12
  import { responsiveLayout } from "../../ResponsiveLayout/decorator";
13
- import { rootNode } from "../../../lib/rootNode";
13
+ import { getRootNode, rootNode } from "../../../lib/rootNode";
14
14
  import { getDOMRect } from "../../../lib/dom/getDOMRect";
15
15
  import { ModalSeparator } from "../../Modal/ModalSeparator";
16
16
  import { isThemeGTE } from "../../../lib/theming/ThemeHelpers";
17
- import { ReactUIFeatureFlagsContext } from "../../../lib/featureFlagsContext";
17
+ import { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from "../../../lib/featureFlagsContext";
18
18
  import { styles } from "../SidePage.styles";
19
19
  import { SidePageContext } from "../SidePageContext";
20
20
  import { SidePageCloseButton } from "../SidePageCloseButton";
@@ -37,28 +37,42 @@ export var SidePageHeader = responsiveLayout(_class = rootNode(_class = (_SidePa
37
37
  _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
38
38
  _this.context = _this.context;
39
39
  _this.state = {
40
- isReadyToFix: false
40
+ isNativeStuck: true,
41
+ isReadyToStuck: false
41
42
  };
42
43
  _this.wrapper = null;
43
44
  _this.sticky = null;
44
45
  _this.lastRegularHeight = 0;
45
46
  _this.componentDidMount = function () {
46
- globalObject.addEventListener == null || globalObject.addEventListener('scroll', _this.update, true);
47
+ var _getRootNode;
48
+ (_getRootNode = getRootNode(_this)) == null || (_getRootNode = _getRootNode.parentNode) == null || _getRootNode.addEventListener == null || _getRootNode.addEventListener('scroll', _this.throttleHandleScroll, true);
47
49
  _this.context.setHasHeader == null || _this.context.setHasHeader();
48
50
  _this.context.headerRef(_this);
49
51
  };
50
52
  _this.componentWillUnmount = function () {
51
- globalObject.removeEventListener == null || globalObject.removeEventListener('scroll', _this.update, true);
53
+ var _getRootNode2;
54
+ (_getRootNode2 = getRootNode(_this)) == null || (_getRootNode2 = _getRootNode2.parentNode) == null || _getRootNode2.removeEventListener == null || _getRootNode2.removeEventListener('scroll', _this.throttleHandleScroll, true);
52
55
  _this.context.setHasHeader == null || _this.context.setHasHeader(false);
53
56
  _this.context.headerRef(null);
54
57
  };
58
+ _this.throttleHandleScroll = throttle(function (event) {
59
+ var target = event.currentTarget;
60
+ if (target && typeof target.scrollTop === 'number') {
61
+ _this.setState({
62
+ isNativeStuck: target.scrollTop === 0
63
+ });
64
+ }
65
+ _this.update();
66
+ }, 5);
55
67
  _this.update = function () {
56
68
  var _this$sticky;
57
69
  (_this$sticky = _this.sticky) == null || _this$sticky.reflow();
58
- _this.updateReadyToFix();
70
+ if (!_this.featureFlags.sidePageDisableHeaderShrink) {
71
+ _this.updateReadyToStuck();
72
+ }
59
73
  };
60
74
  _this.renderHeader = function (fixed) {
61
- var _cx, _cx2;
75
+ var _cx, _this$props$cutTitleO, _cx2;
62
76
  if (fixed === void 0) {
63
77
  fixed = false;
64
78
  }
@@ -66,10 +80,10 @@ export var SidePageHeader = responsiveLayout(_class = rootNode(_class = (_SidePa
66
80
  return /*#__PURE__*/(
67
81
  React.createElement("div", null, /*#__PURE__*/
68
82
  React.createElement("div", {
69
- className: cx(styles.header(_this.theme), (_cx = {}, _cx[styles.headerFixed(_this.theme)] = fixed, _cx[styles.mobileHeader(_this.theme)] = _this.isMobileLayout, _cx))
83
+ className: cx(styles.header(_this.theme), (_cx = {}, _cx[styles.headerFixed(_this.theme)] = fixed, _cx[styles.headerShrink(_this.theme)] = fixed && !_this.featureFlags.sidePageDisableHeaderShrink, _cx[styles.mobileHeader(_this.theme)] = _this.isMobileLayout, _cx))
70
84
  }, _this.renderClose(fixed), /*#__PURE__*/
71
85
  React.createElement("div", {
72
- className: cx(styles.title(_this.theme), (_cx2 = {}, _cx2[styles.title5_1(_this.theme)] = isThemeGTE(_this.theme, '5.1'), _cx2[styles.mobileTitle(_this.theme)] = _this.isMobileLayout, _cx2[styles.titleFixed()] = fixed, _cx2))
86
+ className: cx(styles.title(_this.theme), (_cx2 = {}, _cx2[styles.title5_1(_this.theme)] = isThemeGTE(_this.theme, '5.1'), _cx2[styles.mobileTitle(_this.theme)] = _this.isMobileLayout, _cx2[styles.titleCut()] = fixed && ((_this$props$cutTitleO = _this.props.cutTitleOnStuck) != null ? _this$props$cutTitleO : !_this.featureFlags.sidePageNotCutTitleOnStuckByDefault), _cx2))
73
87
  }, isFunction(_this.props.children) ? _this.props.children(fixed) : _this.props.children)), isDisplayed && /*#__PURE__*/React.createElement(ModalSeparator, {
74
88
  fixed: fixed
75
89
  }))
@@ -81,29 +95,29 @@ export var SidePageHeader = responsiveLayout(_class = rootNode(_class = (_SidePa
81
95
  var versionGTE5_1 = isThemeGTE(_this.theme, '5.1');
82
96
  return /*#__PURE__*/(
83
97
  React.createElement("div", {
84
- className: cx(styles.wrapperClose(_this.theme), (_cx3 = {}, _cx3[styles.wrapperClose5_1(_this.theme)] = versionGTE5_1, _cx3[styles.wrapperCloseFixed(_this.theme)] = fixed, _cx3[styles.wrapperCloseFixed5_1(_this.theme)] = fixed && versionGTE5_1, _cx3[styles.mobileWrapperClose(_this.theme)] = _this.isMobileLayout, _cx3[styles.mobileWrapperClose5_1(_this.theme)] = _this.isMobileLayout && versionGTE5_1, _cx3))
85
- }, _this.isMobileLayout ? /*#__PURE__*/
86
- React.createElement(SidePageCloseButton, {
87
- isHeaderFixed: fixed,
88
- isMobile: true
89
- }) : /*#__PURE__*/
90
-
98
+ className: cx(styles.wrapperClose(_this.theme), (_cx3 = {}, _cx3[styles.wrapperClose5_1(_this.theme)] = versionGTE5_1, _cx3[styles.wrapperCloseFixed(_this.theme)] = fixed && !_this.featureFlags.sidePageDisableHeaderShrink, _cx3[styles.wrapperCloseFixed5_1(_this.theme)] = fixed && versionGTE5_1 && !_this.featureFlags.sidePageDisableHeaderShrink, _cx3[styles.mobileWrapperClose(_this.theme)] = _this.isMobileLayout, _cx3[styles.mobileWrapperClose5_1(_this.theme)] = _this.isMobileLayout && versionGTE5_1, _cx3))
99
+ }, !(_this.isMobileLayout || _this.featureFlags.sidePageDisableHeaderShrink) ? /*#__PURE__*/
91
100
  React.createElement(Sticky, {
92
101
  side: "top",
93
102
  offset: stickyOffset
94
103
  }, /*#__PURE__*/
95
104
  React.createElement(SidePageCloseButton, {
96
105
  isHeaderFixed: fixed
97
- })))
106
+ })) : /*#__PURE__*/
107
+
108
+ React.createElement(SidePageCloseButton, {
109
+ isHeaderFixed: fixed,
110
+ isMobile: _this.isMobileLayout
111
+ }))
98
112
  );
99
113
  };
100
- _this.updateReadyToFix = function () {
114
+ _this.updateReadyToStuck = function () {
101
115
  if (_this.wrapper) {
102
116
  var wrapperScrolledUp = getDOMRect(_this.wrapper).top;
103
- var isReadyToFix = _this.regularHeight + wrapperScrolledUp <= _this.fixedHeaderHeight;
117
+ var isReadyToStuck = _this.regularHeight + wrapperScrolledUp <= _this.fixedHeaderHeight;
104
118
  _this.setState(function (state) {
105
- return state.isReadyToFix !== isReadyToFix ? _extends({}, state, {
106
- isReadyToFix: isReadyToFix
119
+ return state.isReadyToStuck !== isReadyToStuck ? _extends({}, state, {
120
+ isReadyToStuck: isReadyToStuck
107
121
  }) : state;
108
122
  });
109
123
  }
@@ -135,33 +149,41 @@ export var SidePageHeader = responsiveLayout(_class = rootNode(_class = (_SidePa
135
149
  return true;
136
150
  };
137
151
  _proto.renderMain = function renderMain() {
138
- var isReadyToFix = this.state.isReadyToFix;
139
- var isStickyDesktop = !this.isMobileLayout && this.getStickyProp() && isReadyToFix;
152
+ var _this3 = this;
153
+ var isReadyToStuck = this.state.isReadyToStuck;
154
+ var isStickyDesktop = !this.isMobileLayout && this.getStickyProp();
140
155
  var isStickyMobile = this.isMobileLayout && this.getStickyProp();
141
156
  var header = this.renderHeader;
142
- return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
143
- rootNodeRef: this.setRootNode
144
- }, this.props), /*#__PURE__*/React.createElement("div", {
145
- "data-tid": SidePageHeaderDataTids.root,
146
- ref: this.wrapperRef,
147
- className: styles.headerWrapper()
148
- }, /*#__PURE__*/React.createElement(ReactUIFeatureFlagsContext.Provider, {
149
- value: {
150
- stickyReduceLayoutEvents: true
157
+ return /*#__PURE__*/React.createElement(ReactUIFeatureFlagsContext.Consumer, null, function (flags) {
158
+ var _cx4;
159
+ _this3.featureFlags = getFullReactUIFlagsContext(flags);
160
+ if (!_this3.featureFlags.sidePageDisableHeaderShrink) {
161
+ isStickyDesktop = isStickyDesktop && isReadyToStuck;
151
162
  }
152
- }, isStickyDesktop || isStickyMobile ? /*#__PURE__*/React.createElement(Sticky, {
153
- ref: this.stickyRef,
154
- side: "top"
155
- }, header) : header())));
163
+ return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
164
+ rootNodeRef: _this3.setRootNode
165
+ }, _this3.props), /*#__PURE__*/React.createElement("div", {
166
+ "data-tid": SidePageHeaderDataTids.root,
167
+ ref: _this3.wrapperRef,
168
+ className: cx(styles.headerWrapper(), (_cx4 = {}, _cx4[styles.headerNativeStuck(_this3.theme)] = _this3.state.isNativeStuck, _cx4))
169
+ }, /*#__PURE__*/React.createElement(ReactUIFeatureFlagsContext.Provider, {
170
+ value: {
171
+ stickyReduceLayoutEvents: true
172
+ }
173
+ }, !_this3.state.isNativeStuck && (isStickyDesktop || isStickyMobile) ? /*#__PURE__*/React.createElement(Sticky, {
174
+ ref: _this3.stickyRef,
175
+ side: "top"
176
+ }, header) : header())));
177
+ });
156
178
  };
157
179
  return _createClass(SidePageHeader, [{
158
180
  key: "regularHeight",
159
181
  get: function get() {
160
- var isReadyToFix = this.state.isReadyToFix;
182
+ var isReadyToStuck = this.state.isReadyToStuck;
161
183
  if (!this.wrapper) {
162
184
  return 0;
163
185
  }
164
- if (!isReadyToFix) {
186
+ if (!isReadyToStuck) {
165
187
  this.lastRegularHeight = getDOMRect(this.wrapper).height;
166
188
  }
167
189
  return this.lastRegularHeight;
@@ -1 +1 @@
1
- {"version":3,"names":["React","globalObject","Sticky","isFunction","ThemeContext","CommonWrapper","cx","responsiveLayout","rootNode","getDOMRect","ModalSeparator","isThemeGTE","ReactUIFeatureFlagsContext","styles","SidePageContext","SidePageCloseButton","SidePageHeaderDataTids","root","close","SidePageHeader","_class","_SidePageHeader","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","state","isReadyToFix","wrapper","sticky","lastRegularHeight","componentDidMount","addEventListener","update","setHasHeader","headerRef","componentWillUnmount","removeEventListener","_this$sticky","reflow","updateReadyToFix","renderHeader","fixed","_cx","_cx2","isDisplayed","props","hasSeparator","createElement","className","header","theme","headerFixed","mobileHeader","isMobileLayout","renderClose","title","title5_1","mobileTitle","titleFixed","children","_cx3","stickyOffset","parseInt","sidePageHeaderStickyOffset","versionGTE5_1","wrapperClose","wrapperClose5_1","wrapperCloseFixed","wrapperCloseFixed5_1","mobileWrapperClose","mobileWrapperClose5_1","isHeaderFixed","isMobile","side","offset","wrapperScrolledUp","top","regularHeight","fixedHeaderHeight","setState","_extends","wrapperRef","el","stickyRef","_inheritsLoose","_proto","prototype","render","_this2","Consumer","renderMain","getStickyProp","isStickyDesktop","isStickyMobile","rootNodeRef","setRootNode","ref","headerWrapper","Provider","value","stickyReduceLayoutEvents","_createClass","key","get","height","sidePageHeaderFixedLineHeight","sidePageHeaderFixedPaddingY","Component","__KONTUR_REACT_UI__","displayName","contextType","defaultProps"],"sources":["SidePageHeader.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { Sticky } from '../Sticky';\nimport { isFunction } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { ModalSeparator } from '../Modal/ModalSeparator';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport { ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\nimport { SidePageCloseButton } from './SidePageCloseButton';\n\nexport interface SidePageHeaderProps extends Omit<CommonProps, 'children'> {\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n /** Закрепляет хедер сверху сайдпейджа. */\n sticky?: boolean;\n\n /** Определяет, нужно ли показывать ModalSeparator. */\n hasSeparator?: boolean;\n}\n\nexport interface SidePageHeaderState {\n isReadyToFix: boolean;\n}\n\nexport const SidePageHeaderDataTids = {\n root: 'SidePageHeader__root',\n close: 'SidePage__close',\n} as const;\n\n/**\n * Шапка сайдпейджа\n *\n * @visibleName SidePage.Header\n */\n@responsiveLayout\n@rootNode\nexport class SidePageHeader extends React.Component<SidePageHeaderProps, SidePageHeaderState> {\n public static __KONTUR_REACT_UI__ = 'SidePageHeader';\n public static displayName = 'SidePageHeader';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n\n private isMobileLayout!: boolean;\n\n public state: SidePageHeaderState = {\n isReadyToFix: false,\n };\n\n public static defaultProps: Partial<SidePageHeaderProps> = {\n hasSeparator: false,\n };\n\n private theme!: Theme;\n private wrapper: HTMLElement | null = null;\n private sticky: Sticky | null = null;\n private lastRegularHeight = 0;\n private setRootNode!: TSetRootNode;\n public get regularHeight(): number {\n const { isReadyToFix } = this.state;\n if (!this.wrapper) {\n return 0;\n }\n if (!isReadyToFix) {\n this.lastRegularHeight = getDOMRect(this.wrapper).height;\n }\n return this.lastRegularHeight;\n }\n\n public get fixedHeaderHeight(): number {\n const { theme } = this;\n return parseInt(theme.sidePageHeaderFixedLineHeight) + parseInt(theme.sidePageHeaderFixedPaddingY) * 2;\n }\n\n public componentDidMount = () => {\n globalObject.addEventListener?.('scroll', this.update, true);\n this.context.setHasHeader?.();\n this.context.headerRef(this);\n };\n\n public componentWillUnmount = () => {\n globalObject.removeEventListener?.('scroll', this.update, true);\n this.context.setHasHeader?.(false);\n this.context.headerRef(null);\n };\n\n public update = () => {\n this.sticky?.reflow();\n this.updateReadyToFix();\n };\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getStickyProp() {\n if (typeof this.props.sticky !== 'undefined') {\n return this.props.sticky;\n }\n\n if (this.isMobileLayout) {\n return false;\n }\n\n return true;\n }\n\n private renderMain() {\n const { isReadyToFix } = this.state;\n\n const isStickyDesktop = !this.isMobileLayout && this.getStickyProp() && isReadyToFix;\n const isStickyMobile = this.isMobileLayout && this.getStickyProp();\n\n const header = this.renderHeader;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SidePageHeaderDataTids.root} ref={this.wrapperRef} className={styles.headerWrapper()}>\n <ReactUIFeatureFlagsContext.Provider value={{ stickyReduceLayoutEvents: true }}>\n {isStickyDesktop || isStickyMobile ? (\n <Sticky ref={this.stickyRef} side=\"top\">\n {header}\n </Sticky>\n ) : (\n header()\n )}\n </ReactUIFeatureFlagsContext.Provider>\n </div>\n </CommonWrapper>\n );\n }\n\n private renderHeader = (fixed = false) => {\n const isDisplayed = this.props.hasSeparator || fixed;\n return (\n <div>\n <div\n className={cx(styles.header(this.theme), {\n [styles.headerFixed(this.theme)]: fixed,\n [styles.mobileHeader(this.theme)]: this.isMobileLayout,\n })}\n >\n {this.renderClose(fixed)}\n <div\n className={cx(styles.title(this.theme), {\n [styles.title5_1(this.theme)]: isThemeGTE(this.theme, '5.1'),\n [styles.mobileTitle(this.theme)]: this.isMobileLayout,\n [styles.titleFixed()]: fixed,\n })}\n >\n {isFunction(this.props.children) ? this.props.children(fixed) : this.props.children}\n </div>\n </div>\n {isDisplayed && <ModalSeparator fixed={fixed} />}\n </div>\n );\n };\n\n private renderClose = (fixed: boolean) => {\n const stickyOffset = parseInt(this.theme.sidePageHeaderStickyOffset);\n const versionGTE5_1 = isThemeGTE(this.theme, '5.1');\n return (\n <div\n className={cx(styles.wrapperClose(this.theme), {\n [styles.wrapperClose5_1(this.theme)]: versionGTE5_1,\n [styles.wrapperCloseFixed(this.theme)]: fixed,\n [styles.wrapperCloseFixed5_1(this.theme)]: fixed && versionGTE5_1,\n [styles.mobileWrapperClose(this.theme)]: this.isMobileLayout,\n [styles.mobileWrapperClose5_1(this.theme)]: this.isMobileLayout && versionGTE5_1,\n })}\n >\n {this.isMobileLayout ? (\n <SidePageCloseButton isHeaderFixed={fixed} isMobile />\n ) : (\n <Sticky side=\"top\" offset={stickyOffset}>\n <SidePageCloseButton isHeaderFixed={fixed} />\n </Sticky>\n )}\n </div>\n );\n };\n\n private updateReadyToFix = () => {\n if (this.wrapper) {\n const wrapperScrolledUp = getDOMRect(this.wrapper).top;\n const isReadyToFix = this.regularHeight + wrapperScrolledUp <= this.fixedHeaderHeight;\n this.setState((state) => (state.isReadyToFix !== isReadyToFix ? { ...state, isReadyToFix } : state));\n }\n };\n\n private wrapperRef = (el: HTMLElement | null) => {\n this.wrapper = el;\n };\n\n private stickyRef = (el: Sticky | null) => {\n this.sticky = el;\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","throttle","Sticky","isFunction","ThemeContext","CommonWrapper","cx","responsiveLayout","getRootNode","rootNode","getDOMRect","ModalSeparator","isThemeGTE","getFullReactUIFlagsContext","ReactUIFeatureFlagsContext","styles","SidePageContext","SidePageCloseButton","SidePageHeaderDataTids","root","close","SidePageHeader","_class","_SidePageHeader","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","state","isNativeStuck","isReadyToStuck","wrapper","sticky","lastRegularHeight","componentDidMount","_getRootNode","parentNode","addEventListener","throttleHandleScroll","setHasHeader","headerRef","componentWillUnmount","_getRootNode2","removeEventListener","event","target","currentTarget","scrollTop","setState","update","_this$sticky","reflow","featureFlags","sidePageDisableHeaderShrink","updateReadyToStuck","renderHeader","fixed","_cx","_this$props$cutTitleO","_cx2","isDisplayed","props","hasSeparator","createElement","className","header","theme","headerFixed","headerShrink","mobileHeader","isMobileLayout","renderClose","title","title5_1","mobileTitle","titleCut","cutTitleOnStuck","sidePageNotCutTitleOnStuckByDefault","children","_cx3","stickyOffset","parseInt","sidePageHeaderStickyOffset","versionGTE5_1","wrapperClose","wrapperClose5_1","wrapperCloseFixed","wrapperCloseFixed5_1","mobileWrapperClose","mobileWrapperClose5_1","side","offset","isHeaderFixed","isMobile","wrapperScrolledUp","top","regularHeight","fixedHeaderHeight","_extends","wrapperRef","el","stickyRef","_inheritsLoose","_proto","prototype","render","_this2","Consumer","renderMain","getStickyProp","_this3","isStickyDesktop","isStickyMobile","flags","_cx4","rootNodeRef","setRootNode","ref","headerWrapper","headerNativeStuck","Provider","value","stickyReduceLayoutEvents","_createClass","key","get","height","sidePageHeaderFixedLineHeight","sidePageHeaderFixedPaddingY","Component","__KONTUR_REACT_UI__","displayName","contextType","defaultProps"],"sources":["SidePageHeader.tsx"],"sourcesContent":["import React from 'react';\nimport throttle from 'lodash.throttle';\n\nimport { Sticky } from '../Sticky';\nimport { isFunction } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { ModalSeparator } from '../Modal/ModalSeparator';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\nimport { SidePageCloseButton } from './SidePageCloseButton';\n\nexport interface SidePageHeaderProps extends Omit<CommonProps, 'children'> {\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n /** Закрепляет хедер сверху сайдпейджа. */\n sticky?: boolean;\n\n /** Определяет, нужно ли показывать ModalSeparator. */\n hasSeparator?: boolean;\n\n /**\n * Обрезает длинный заголовок при «залипании» шапки.\n * @default true. Если включить флаг sidePageNotCutTitleOnStuckByDefault, дефолтное значение - false\n */\n cutTitleOnStuck?: boolean;\n}\n\nexport interface SidePageHeaderState {\n isNativeStuck: boolean;\n isReadyToStuck: boolean;\n}\n\nexport const SidePageHeaderDataTids = {\n root: 'SidePageHeader__root',\n close: 'SidePage__close',\n} as const;\n\n/**\n * Шапка сайдпейджа\n *\n * @visibleName SidePage.Header\n */\n@responsiveLayout\n@rootNode\nexport class SidePageHeader extends React.Component<SidePageHeaderProps, SidePageHeaderState> {\n public static __KONTUR_REACT_UI__ = 'SidePageHeader';\n public static displayName = 'SidePageHeader';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n\n private isMobileLayout!: boolean;\n\n public state: SidePageHeaderState = {\n isNativeStuck: true,\n isReadyToStuck: false,\n };\n\n public static defaultProps: Partial<SidePageHeaderProps> = {\n hasSeparator: false,\n };\n\n private theme!: Theme;\n private wrapper: HTMLElement | null = null;\n private sticky: Sticky | null = null;\n private lastRegularHeight = 0;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private featureFlags!: ReactUIFeatureFlags;\n public get regularHeight(): number {\n const { isReadyToStuck } = this.state;\n if (!this.wrapper) {\n return 0;\n }\n if (!isReadyToStuck) {\n this.lastRegularHeight = getDOMRect(this.wrapper).height;\n }\n return this.lastRegularHeight;\n }\n\n public get fixedHeaderHeight(): number {\n const { theme } = this;\n return parseInt(theme.sidePageHeaderFixedLineHeight) + parseInt(theme.sidePageHeaderFixedPaddingY) * 2;\n }\n\n public componentDidMount = () => {\n getRootNode(this)?.parentNode?.addEventListener?.('scroll', this.throttleHandleScroll, true);\n this.context.setHasHeader?.();\n this.context.headerRef(this);\n };\n\n public componentWillUnmount = () => {\n getRootNode(this)?.parentNode?.removeEventListener?.('scroll', this.throttleHandleScroll, true);\n this.context.setHasHeader?.(false);\n this.context.headerRef(null);\n };\n\n private throttleHandleScroll = throttle((event: Event) => {\n const target = event.currentTarget as HTMLElement;\n if (target && typeof target.scrollTop === 'number') {\n this.setState({ isNativeStuck: target.scrollTop === 0 });\n }\n this.update();\n }, 5);\n\n public update = () => {\n this.sticky?.reflow();\n if (!this.featureFlags.sidePageDisableHeaderShrink) {\n this.updateReadyToStuck();\n }\n };\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getStickyProp() {\n if (typeof this.props.sticky !== 'undefined') {\n return this.props.sticky;\n }\n\n if (this.isMobileLayout) {\n return false;\n }\n\n return true;\n }\n\n private renderMain() {\n const { isReadyToStuck } = this.state;\n\n let isStickyDesktop = !this.isMobileLayout && this.getStickyProp();\n const isStickyMobile = this.isMobileLayout && this.getStickyProp();\n\n const header = this.renderHeader;\n\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n if (!this.featureFlags.sidePageDisableHeaderShrink) {\n isStickyDesktop = isStickyDesktop && isReadyToStuck;\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageHeaderDataTids.root}\n ref={this.wrapperRef}\n className={cx(styles.headerWrapper(), {\n [styles.headerNativeStuck(this.theme)]: this.state.isNativeStuck,\n })}\n >\n <ReactUIFeatureFlagsContext.Provider value={{ stickyReduceLayoutEvents: true }}>\n {!this.state.isNativeStuck && (isStickyDesktop || isStickyMobile) ? (\n <Sticky ref={this.stickyRef} side=\"top\">\n {header}\n </Sticky>\n ) : (\n header()\n )}\n </ReactUIFeatureFlagsContext.Provider>\n </div>\n </CommonWrapper>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n private renderHeader = (fixed = false) => {\n const isDisplayed = this.props.hasSeparator || fixed;\n return (\n <div>\n <div\n className={cx(styles.header(this.theme), {\n [styles.headerFixed(this.theme)]: fixed,\n [styles.headerShrink(this.theme)]: fixed && !this.featureFlags.sidePageDisableHeaderShrink,\n [styles.mobileHeader(this.theme)]: this.isMobileLayout,\n })}\n >\n {this.renderClose(fixed)}\n <div\n className={cx(styles.title(this.theme), {\n [styles.title5_1(this.theme)]: isThemeGTE(this.theme, '5.1'),\n [styles.mobileTitle(this.theme)]: this.isMobileLayout,\n [styles.titleCut()]:\n fixed && (this.props.cutTitleOnStuck ?? !this.featureFlags.sidePageNotCutTitleOnStuckByDefault),\n })}\n >\n {isFunction(this.props.children) ? this.props.children(fixed) : this.props.children}\n </div>\n </div>\n {isDisplayed && <ModalSeparator fixed={fixed} />}\n </div>\n );\n };\n\n private renderClose = (fixed: boolean) => {\n const stickyOffset = parseInt(this.theme.sidePageHeaderStickyOffset);\n const versionGTE5_1 = isThemeGTE(this.theme, '5.1');\n return (\n <div\n className={cx(styles.wrapperClose(this.theme), {\n [styles.wrapperClose5_1(this.theme)]: versionGTE5_1,\n [styles.wrapperCloseFixed(this.theme)]: fixed && !this.featureFlags.sidePageDisableHeaderShrink,\n [styles.wrapperCloseFixed5_1(this.theme)]:\n fixed && versionGTE5_1 && !this.featureFlags.sidePageDisableHeaderShrink,\n [styles.mobileWrapperClose(this.theme)]: this.isMobileLayout,\n [styles.mobileWrapperClose5_1(this.theme)]: this.isMobileLayout && versionGTE5_1,\n })}\n >\n {!(this.isMobileLayout || this.featureFlags.sidePageDisableHeaderShrink) ? (\n <Sticky side=\"top\" offset={stickyOffset}>\n <SidePageCloseButton isHeaderFixed={fixed} />\n </Sticky>\n ) : (\n <SidePageCloseButton isHeaderFixed={fixed} isMobile={this.isMobileLayout} />\n )}\n </div>\n );\n };\n\n private updateReadyToStuck = () => {\n if (this.wrapper) {\n const wrapperScrolledUp = getDOMRect(this.wrapper).top;\n const isReadyToStuck = this.regularHeight + wrapperScrolledUp <= this.fixedHeaderHeight;\n this.setState((state) => (state.isReadyToStuck !== isReadyToStuck ? { ...state, isReadyToStuck } : state));\n }\n };\n\n private wrapperRef = (el: HTMLElement | null) => {\n this.wrapper = el;\n };\n\n private stickyRef = (el: Sticky | null) => {\n this.sticky = el;\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { CommonProps } from '../../internal/CommonWrapper';
3
+ import type { TGetRootNode } from '../../lib/rootNode';
3
4
  import type { SidePageContextType } from './SidePageContext';
4
5
  export interface SidePageHeaderProps extends Omit<CommonProps, 'children'> {
5
6
  children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);
@@ -7,9 +8,15 @@ export interface SidePageHeaderProps extends Omit<CommonProps, 'children'> {
7
8
  sticky?: boolean;
8
9
  /** Определяет, нужно ли показывать ModalSeparator. */
9
10
  hasSeparator?: boolean;
11
+ /**
12
+ * Обрезает длинный заголовок при «залипании» шапки.
13
+ * @default true. Если включить флаг sidePageNotCutTitleOnStuckByDefault, дефолтное значение - false
14
+ */
15
+ cutTitleOnStuck?: boolean;
10
16
  }
11
17
  export interface SidePageHeaderState {
12
- isReadyToFix: boolean;
18
+ isNativeStuck: boolean;
19
+ isReadyToStuck: boolean;
13
20
  }
14
21
  export declare const SidePageHeaderDataTids: {
15
22
  readonly root: "SidePageHeader__root";
@@ -32,18 +39,21 @@ export declare class SidePageHeader extends React.Component<SidePageHeaderProps,
32
39
  private wrapper;
33
40
  private sticky;
34
41
  private lastRegularHeight;
42
+ getRootNode: TGetRootNode;
35
43
  private setRootNode;
44
+ private featureFlags;
36
45
  get regularHeight(): number;
37
46
  get fixedHeaderHeight(): number;
38
47
  componentDidMount: () => void;
39
48
  componentWillUnmount: () => void;
49
+ private throttleHandleScroll;
40
50
  update: () => void;
41
51
  render(): JSX.Element;
42
52
  getStickyProp(): boolean;
43
53
  private renderMain;
44
54
  private renderHeader;
45
55
  private renderClose;
46
- private updateReadyToFix;
56
+ private updateReadyToStuck;
47
57
  private wrapperRef;
48
58
  private stickyRef;
49
59
  }
@@ -2,7 +2,6 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
3
3
  var _class, _Spinner;
4
4
  import React from 'react';
5
- import PropTypes from 'prop-types';
6
5
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
7
6
  import { SpinnerIcon } from "../../../internal/SpinnerIcon/SpinnerIcon";
8
7
  import { CommonWrapper } from "../../../internal/CommonWrapper";
@@ -79,23 +78,7 @@ export var Spinner = rootNode(_class = (_Spinner = /*#__PURE__*/function (_React
79
78
  }, this.renderSpinner(type, dimmed, inline)), caption && this.renderCaption(type, caption)));
80
79
  };
81
80
  return Spinner;
82
- }(React.Component), _Spinner.__KONTUR_REACT_UI__ = 'Spinner', _Spinner.displayName = 'Spinner', _Spinner.propTypes = {
83
- /**
84
- * Текст рядом с мини-лоадером.
85
- *
86
- * 'Загрузка' - значение по-умолчанию
87
- */
88
- caption: PropTypes.node,
89
- dimmed: PropTypes.bool,
90
- /**
91
- * Тип спиннера: mini, normal, big
92
- *
93
- * Значение по-умолчанию - normal
94
- *
95
- * Spinner.types - все доступные типы
96
- */
97
- type: PropTypes.oneOf(types)
98
- }, _Spinner.defaultProps = {
81
+ }(React.Component), _Spinner.__KONTUR_REACT_UI__ = 'Spinner', _Spinner.displayName = 'Spinner', _Spinner.defaultProps = {
99
82
  type: 'normal'
100
83
  }, _Spinner.Types = Object.assign.apply(Object, [{}].concat(types.map(function (type) {
101
84
  var _ref;
@@ -1 +1 @@
1
- {"version":3,"names":["React","PropTypes","ThemeContext","SpinnerIcon","CommonWrapper","cx","rootNode","createPropsGetter","styles","types","SpinnerDataTids","root","Spinner","_class","_Spinner","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","renderSpinner","type","dimmed","inline","_cx","createElement","size","className","circle","theme","props","color","circleDimmedColor","circleWithoutColorAnimation","width","renderCaption","caption","captionColor","_inheritsLoose","_proto","prototype","render","_this2","Consumer","renderMain","_this$props","_this$props$caption","_extends","rootNodeRef","setRootNode","spinner","inner","Component","__KONTUR_REACT_UI__","displayName","propTypes","node","bool","oneOf","Types","Object","assign","map","_ref"],"sources":["Spinner.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { SpinnerIcon } from '../../internal/SpinnerIcon/SpinnerIcon';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Spinner.styles';\n\nconst types = ['big', 'mini', 'normal'] as const;\n\nexport type SpinnerType = (typeof types)[number];\n\nexport interface SpinnerProps extends CommonProps {\n /** Задает подпись под спиннером.\n * @default \"Загрузка\" */\n caption?: React.ReactNode;\n\n /** Переводит спиннер в \"затемнённый режим\".\n * Цвет спиннера в \"затемнённом режиме\" определяется переменной `spinnerDimmedColor`. */\n dimmed?: boolean;\n\n /** Задает размер спиннера и текста.\n * @default normal. */\n type?: SpinnerType;\n\n /** Уменьшает спиннер для вставки в инлайн элемент. При type = \"big\"|\"normal\" размер спиннера уменьшается. */\n inline?: boolean;\n\n /** Задает толщину спиннера. */\n width?: number;\n\n /** Задает цвет спиннера. Не работает с пропом dimmed. */\n color?: React.CSSProperties['color'];\n}\n\nexport const SpinnerDataTids = {\n root: 'Spinner__root',\n} as const;\n\ntype DefaultProps = Required<Pick<SpinnerProps, 'type'>>;\n\n/**\n * `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.\n *\n * Используйте `Spinner`, чтобы показать, что система выполняет команду, которую дал пользователь.\n * Не применяйте `Spinner` для заполнения паузы при загрузке контента, для этого предназначен GlobalLoader.\n *\n * Используйте компонент `Spinner`, если вам нужен спиннер, без дополнительного функционала, который предоставляет компонент Loader.\n */\n@rootNode\nexport class Spinner extends React.Component<SpinnerProps> {\n public static __KONTUR_REACT_UI__ = 'Spinner';\n public static displayName = 'Spinner';\n\n public static propTypes = {\n /**\n * Текст рядом с мини-лоадером.\n *\n * 'Загрузка' - значение по-умолчанию\n */\n caption: PropTypes.node,\n\n dimmed: PropTypes.bool,\n\n /**\n * Тип спиннера: mini, normal, big\n *\n * Значение по-умолчанию - normal\n *\n * Spinner.types - все доступные типы\n */\n type: PropTypes.oneOf(types),\n };\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n };\n\n private getProps = createPropsGetter(Spinner.defaultProps);\n\n public static Types: Record<SpinnerType, SpinnerType> = Object.assign({}, ...types.map((type) => ({ [type]: type })));\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption = null, dimmed, inline } = this.props;\n const type = this.getProps().type;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SpinnerDataTids.root} className={styles.spinner()}>\n <span className={styles.inner()}>{this.renderSpinner(type, dimmed, inline)}</span>\n {caption && this.renderCaption(type, caption)}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderSpinner = (type: SpinnerType, dimmed?: boolean, inline?: boolean) => {\n return (\n <SpinnerIcon\n size={type}\n className={cx({\n [styles.circle(this.theme)]: !dimmed && !this.props.color,\n [styles.circleDimmedColor(this.theme)]: dimmed,\n [styles.circleWithoutColorAnimation()]: dimmed || !!this.props.color,\n })}\n dimmed={dimmed}\n width={this.props.width}\n color={this.props.color}\n inline={inline}\n />\n );\n };\n\n private renderCaption = (type: SpinnerType, caption: React.ReactNode) => (\n <span className={cx(styles[type](this.theme), styles.captionColor(this.theme))}>{caption}</span>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","ThemeContext","SpinnerIcon","CommonWrapper","cx","rootNode","createPropsGetter","styles","types","SpinnerDataTids","root","Spinner","_class","_Spinner","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","renderSpinner","type","dimmed","inline","_cx","createElement","size","className","circle","theme","props","color","circleDimmedColor","circleWithoutColorAnimation","width","renderCaption","caption","captionColor","_inheritsLoose","_proto","prototype","render","_this2","Consumer","renderMain","_this$props","_this$props$caption","_extends","rootNodeRef","setRootNode","spinner","inner","Component","__KONTUR_REACT_UI__","displayName","Types","Object","assign","map","_ref"],"sources":["Spinner.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { SpinnerIcon } from '../../internal/SpinnerIcon/SpinnerIcon';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Spinner.styles';\n\nconst types = ['big', 'mini', 'normal'] as const;\n\nexport type SpinnerType = (typeof types)[number];\n\nexport interface SpinnerProps extends CommonProps {\n /** Задает подпись под спиннером.\n * @default \"Загрузка\" */\n caption?: React.ReactNode;\n\n /** Переводит спиннер в \"затемнённый режим\".\n * Цвет спиннера в \"затемнённом режиме\" определяется переменной `spinnerDimmedColor`. */\n dimmed?: boolean;\n\n /** Задает размер спиннера и текста.\n * @default normal. */\n type?: SpinnerType;\n\n /** Уменьшает спиннер для вставки в инлайн элемент. При type = \"big\"|\"normal\" размер спиннера уменьшается. */\n inline?: boolean;\n\n /** Задает толщину спиннера. */\n width?: number;\n\n /** Задает цвет спиннера. Не работает с пропом dimmed. */\n color?: React.CSSProperties['color'];\n}\n\nexport const SpinnerDataTids = {\n root: 'Spinner__root',\n} as const;\n\ntype DefaultProps = Required<Pick<SpinnerProps, 'type'>>;\n\n/**\n * `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.\n *\n * Используйте `Spinner`, чтобы показать, что система выполняет команду, которую дал пользователь.\n * Не применяйте `Spinner` для заполнения паузы при загрузке контента, для этого предназначен GlobalLoader.\n *\n * Используйте компонент `Spinner`, если вам нужен спиннер, без дополнительного функционала, который предоставляет компонент Loader.\n */\n@rootNode\nexport class Spinner extends React.Component<SpinnerProps> {\n public static __KONTUR_REACT_UI__ = 'Spinner';\n public static displayName = 'Spinner';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n };\n\n private getProps = createPropsGetter(Spinner.defaultProps);\n\n public static Types: Record<SpinnerType, SpinnerType> = Object.assign({}, ...types.map((type) => ({ [type]: type })));\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption = null, dimmed, inline } = this.props;\n const type = this.getProps().type;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SpinnerDataTids.root} className={styles.spinner()}>\n <span className={styles.inner()}>{this.renderSpinner(type, dimmed, inline)}</span>\n {caption && this.renderCaption(type, caption)}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderSpinner = (type: SpinnerType, dimmed?: boolean, inline?: boolean) => {\n return (\n <SpinnerIcon\n size={type}\n className={cx({\n [styles.circle(this.theme)]: !dimmed && !this.props.color,\n [styles.circleDimmedColor(this.theme)]: dimmed,\n [styles.circleWithoutColorAnimation()]: dimmed || !!this.props.color,\n })}\n dimmed={dimmed}\n width={this.props.width}\n color={this.props.color}\n inline={inline}\n />\n );\n };\n\n private renderCaption = (type: SpinnerType, caption: React.ReactNode) => (\n <span className={cx(styles[type](this.theme), styles.captionColor(this.theme))}>{caption}</span>\n );\n}\n"],"mappings":"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","ignoreList":[]}