@skbkontur/react-ui 4.21.2 → 4.21.3

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 (592) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +1 -0
  3. package/cjs/components/Autocomplete/Autocomplete.js +2 -1
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +1 -0
  6. package/cjs/components/Button/Button.js +2 -1
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Calendar/Calendar.d.ts +1 -0
  9. package/cjs/components/Calendar/Calendar.js +2 -1
  10. package/cjs/components/Calendar/Calendar.js.map +1 -1
  11. package/cjs/components/Calendar/DayCellView.js +8 -5
  12. package/cjs/components/Calendar/DayCellView.js.map +1 -1
  13. package/cjs/components/Center/Center.d.ts +1 -0
  14. package/cjs/components/Center/Center.js +2 -1
  15. package/cjs/components/Center/Center.js.map +1 -1
  16. package/cjs/components/Checkbox/Checkbox.d.ts +1 -0
  17. package/cjs/components/Checkbox/Checkbox.js +2 -1
  18. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  19. package/cjs/components/ComboBox/ComboBox.d.ts +1 -0
  20. package/cjs/components/ComboBox/ComboBox.js +2 -1
  21. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  22. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +1 -0
  23. package/cjs/components/CurrencyInput/CurrencyInput.js +2 -1
  24. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  25. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +1 -0
  26. package/cjs/components/CurrencyLabel/CurrencyLabel.js +1 -0
  27. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  28. package/cjs/components/DateInput/DateInput.d.ts +1 -0
  29. package/cjs/components/DateInput/DateInput.js +2 -1
  30. package/cjs/components/DateInput/DateInput.js.map +1 -1
  31. package/cjs/components/DatePicker/DatePicker.d.ts +1 -0
  32. package/cjs/components/DatePicker/DatePicker.js +2 -1
  33. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  34. package/cjs/components/DatePicker/Picker.d.ts +1 -0
  35. package/cjs/components/DatePicker/Picker.js +2 -1
  36. package/cjs/components/DatePicker/Picker.js.map +1 -1
  37. package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
  38. package/cjs/components/Dropdown/Dropdown.js +2 -1
  39. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  40. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -0
  41. package/cjs/components/DropdownMenu/DropdownMenu.js +2 -1
  42. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  43. package/cjs/components/FileUploader/FileUploader.js +2 -1
  44. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  45. package/cjs/components/FxInput/FxInput.d.ts +1 -0
  46. package/cjs/components/FxInput/FxInput.js +2 -1
  47. package/cjs/components/FxInput/FxInput.js.map +1 -1
  48. package/cjs/components/Gapped/Gapped.d.ts +1 -0
  49. package/cjs/components/Gapped/Gapped.js +2 -1
  50. package/cjs/components/Gapped/Gapped.js.map +1 -1
  51. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +2 -0
  52. package/cjs/components/GlobalLoader/GlobalLoader.js +4 -1
  53. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  54. package/cjs/components/Group/Group.d.ts +1 -0
  55. package/cjs/components/Group/Group.js +3 -1
  56. package/cjs/components/Group/Group.js.map +1 -1
  57. package/cjs/components/Hint/Hint.d.ts +1 -0
  58. package/cjs/components/Hint/Hint.js +2 -1
  59. package/cjs/components/Hint/Hint.js.map +1 -1
  60. package/cjs/components/Input/Input.d.ts +1 -0
  61. package/cjs/components/Input/Input.js +2 -1
  62. package/cjs/components/Input/Input.js.map +1 -1
  63. package/cjs/components/Kebab/Kebab.d.ts +1 -0
  64. package/cjs/components/Kebab/Kebab.js +2 -1
  65. package/cjs/components/Kebab/Kebab.js.map +1 -1
  66. package/cjs/components/Link/Link.d.ts +1 -0
  67. package/cjs/components/Link/Link.js +2 -1
  68. package/cjs/components/Link/Link.js.map +1 -1
  69. package/cjs/components/Loader/Loader.d.ts +1 -0
  70. package/cjs/components/Loader/Loader.js +2 -1
  71. package/cjs/components/Loader/Loader.js.map +1 -1
  72. package/cjs/components/MenuFooter/MenuFooter.d.ts +1 -0
  73. package/cjs/components/MenuFooter/MenuFooter.js +1 -0
  74. package/cjs/components/MenuFooter/MenuFooter.js.map +1 -1
  75. package/cjs/components/MenuHeader/MenuHeader.d.ts +1 -0
  76. package/cjs/components/MenuHeader/MenuHeader.js +1 -0
  77. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  78. package/cjs/components/MenuItem/MenuItem.d.ts +4 -0
  79. package/cjs/components/MenuItem/MenuItem.js +29 -10
  80. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  81. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +1 -0
  82. package/cjs/components/MenuSeparator/MenuSeparator.js +2 -1
  83. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  84. package/cjs/components/MiniModal/MiniModal.js +0 -2
  85. package/cjs/components/MiniModal/MiniModal.js.map +1 -1
  86. package/cjs/components/Modal/Modal.d.ts +1 -0
  87. package/cjs/components/Modal/Modal.js +2 -1
  88. package/cjs/components/Modal/Modal.js.map +1 -1
  89. package/cjs/components/Modal/ModalBody.d.ts +1 -0
  90. package/cjs/components/Modal/ModalBody.js +2 -1
  91. package/cjs/components/Modal/ModalBody.js.map +1 -1
  92. package/cjs/components/Modal/ModalClose.d.ts +4 -0
  93. package/cjs/components/Modal/ModalClose.js +4 -1
  94. package/cjs/components/Modal/ModalClose.js.map +1 -1
  95. package/cjs/components/Modal/ModalFooter.d.ts +1 -0
  96. package/cjs/components/Modal/ModalFooter.js +1 -0
  97. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  98. package/cjs/components/Modal/ModalHeader.d.ts +1 -0
  99. package/cjs/components/Modal/ModalHeader.js +1 -0
  100. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  101. package/cjs/components/Modal/ModalSeparator.d.ts +4 -0
  102. package/cjs/components/Modal/ModalSeparator.js +4 -1
  103. package/cjs/components/Modal/ModalSeparator.js.map +1 -1
  104. package/cjs/components/Paging/Paging.d.ts +1 -0
  105. package/cjs/components/Paging/Paging.js +10 -6
  106. package/cjs/components/Paging/Paging.js.map +1 -1
  107. package/cjs/components/PasswordInput/PasswordInput.d.ts +1 -0
  108. package/cjs/components/PasswordInput/PasswordInput.js +2 -1
  109. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  110. package/cjs/components/Radio/Radio.d.ts +1 -0
  111. package/cjs/components/Radio/Radio.js +2 -1
  112. package/cjs/components/Radio/Radio.js.map +1 -1
  113. package/cjs/components/RadioGroup/RadioGroup.d.ts +1 -0
  114. package/cjs/components/RadioGroup/RadioGroup.js +2 -1
  115. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  116. package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +4 -0
  117. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +4 -1
  118. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  119. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  120. package/cjs/components/ScrollContainer/ScrollContainer.js +2 -1
  121. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  122. package/cjs/components/Select/Item.d.ts +1 -0
  123. package/cjs/components/Select/Item.js +2 -1
  124. package/cjs/components/Select/Item.js.map +1 -1
  125. package/cjs/components/Select/Select.d.ts +2 -0
  126. package/cjs/components/Select/Select.js +5 -2
  127. package/cjs/components/Select/Select.js.map +1 -1
  128. package/cjs/components/SidePage/SidePage.d.ts +1 -0
  129. package/cjs/components/SidePage/SidePage.js +2 -1
  130. package/cjs/components/SidePage/SidePage.js.map +1 -1
  131. package/cjs/components/SidePage/SidePageBody.d.ts +1 -0
  132. package/cjs/components/SidePage/SidePageBody.js +2 -1
  133. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  134. package/cjs/components/SidePage/SidePageCloseButton.d.ts +5 -1
  135. package/cjs/components/SidePage/SidePageCloseButton.js +4 -1
  136. package/cjs/components/SidePage/SidePageCloseButton.js.map +1 -1
  137. package/cjs/components/SidePage/SidePageContainer.d.ts +1 -0
  138. package/cjs/components/SidePage/SidePageContainer.js +2 -1
  139. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  140. package/cjs/components/SidePage/SidePageFooter.d.ts +1 -0
  141. package/cjs/components/SidePage/SidePageFooter.js +2 -1
  142. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  143. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
  144. package/cjs/components/SidePage/SidePageHeader.js +2 -1
  145. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  146. package/cjs/components/SingleToast/SingleToast.d.ts +2 -0
  147. package/cjs/components/SingleToast/SingleToast.js +4 -1
  148. package/cjs/components/SingleToast/SingleToast.js.map +1 -1
  149. package/cjs/components/Spinner/Spinner.d.ts +1 -0
  150. package/cjs/components/Spinner/Spinner.js +2 -1
  151. package/cjs/components/Spinner/Spinner.js.map +1 -1
  152. package/cjs/components/Sticky/Sticky.d.ts +1 -0
  153. package/cjs/components/Sticky/Sticky.js +2 -1
  154. package/cjs/components/Sticky/Sticky.js.map +1 -1
  155. package/cjs/components/Switcher/Switcher.d.ts +1 -0
  156. package/cjs/components/Switcher/Switcher.js +2 -1
  157. package/cjs/components/Switcher/Switcher.js.map +1 -1
  158. package/cjs/components/Tabs/Tab.d.ts +1 -0
  159. package/cjs/components/Tabs/Tab.js +7 -1
  160. package/cjs/components/Tabs/Tab.js.map +1 -1
  161. package/cjs/components/Tabs/Tabs.d.ts +1 -0
  162. package/cjs/components/Tabs/Tabs.js +2 -1
  163. package/cjs/components/Tabs/Tabs.js.map +1 -1
  164. package/cjs/components/Textarea/Textarea.d.ts +1 -0
  165. package/cjs/components/Textarea/Textarea.js +2 -1
  166. package/cjs/components/Textarea/Textarea.js.map +1 -1
  167. package/cjs/components/Toast/Toast.d.ts +1 -0
  168. package/cjs/components/Toast/Toast.js +3 -1
  169. package/cjs/components/Toast/Toast.js.map +1 -1
  170. package/cjs/components/Toggle/Toggle.d.ts +1 -0
  171. package/cjs/components/Toggle/Toggle.js +2 -1
  172. package/cjs/components/Toggle/Toggle.js.map +1 -1
  173. package/cjs/components/Token/Token.d.ts +1 -0
  174. package/cjs/components/Token/Token.js +8 -1
  175. package/cjs/components/Token/Token.js.map +1 -1
  176. package/cjs/components/TokenInput/TokenInput.d.ts +1 -0
  177. package/cjs/components/TokenInput/TokenInput.js +2 -1
  178. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  179. package/cjs/components/TokenInput/TokenInputMenu.d.ts +1 -0
  180. package/cjs/components/TokenInput/TokenInputMenu.js +2 -1
  181. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  182. package/cjs/components/Tooltip/Tooltip.d.ts +1 -0
  183. package/cjs/components/Tooltip/Tooltip.js +2 -1
  184. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  185. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -0
  186. package/cjs/components/TooltipMenu/TooltipMenu.js +3 -1
  187. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  188. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js +4 -1
  189. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  190. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +5 -26
  191. package/cjs/internal/CommonWrapper/CommonWrapper.js +7 -56
  192. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  193. package/cjs/internal/CommonWrapper/extractCommonProps.d.ts +3 -0
  194. package/cjs/internal/CommonWrapper/extractCommonProps.js +34 -0
  195. package/cjs/internal/CommonWrapper/extractCommonProps.js.map +1 -0
  196. package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.d.ts +2 -0
  197. package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js +12 -0
  198. package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js.map +1 -0
  199. package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.d.ts +3 -0
  200. package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js +23 -0
  201. package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js.map +1 -0
  202. package/cjs/internal/CommonWrapper/index.d.ts +2 -0
  203. package/cjs/internal/CommonWrapper/index.js.map +1 -1
  204. package/cjs/internal/CommonWrapper/types.d.ts +25 -0
  205. package/cjs/internal/CommonWrapper/types.js +1 -0
  206. package/cjs/internal/CommonWrapper/types.js.map +1 -0
  207. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
  208. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +2 -1
  209. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  210. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +1 -0
  211. package/cjs/internal/CustomComboBox/ComboBoxView.js +2 -1
  212. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  213. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  214. package/cjs/internal/CustomComboBox/CustomComboBox.js +2 -1
  215. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  216. package/cjs/internal/DateSelect/DateSelect.d.ts +1 -0
  217. package/cjs/internal/DateSelect/DateSelect.js +2 -1
  218. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  219. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +1 -0
  220. package/cjs/internal/DropdownContainer/DropdownContainer.js +2 -1
  221. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  222. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
  223. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +1 -0
  224. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  225. package/cjs/internal/FocusTrap/FocusTrap.d.ts +1 -0
  226. package/cjs/internal/FocusTrap/FocusTrap.js +3 -1
  227. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  228. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -0
  229. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
  230. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  231. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +2 -1
  232. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  233. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
  234. package/cjs/internal/InputLikeText/InputLikeText.js +2 -1
  235. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  236. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.d.ts +1 -0
  237. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js +2 -1
  238. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
  239. package/cjs/internal/InternalMenu/InternalMenu.d.ts +1 -0
  240. package/cjs/internal/InternalMenu/InternalMenu.js +2 -1
  241. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  242. package/cjs/internal/Menu/Menu.d.ts +1 -0
  243. package/cjs/internal/Menu/Menu.js +2 -1
  244. package/cjs/internal/Menu/Menu.js.map +1 -1
  245. package/cjs/internal/MobilePopup/MobilePopup.d.ts +1 -0
  246. package/cjs/internal/MobilePopup/MobilePopup.js +2 -1
  247. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  248. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
  249. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +2 -1
  250. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  251. package/cjs/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
  252. package/cjs/internal/NativeDateInput/NativeDateInput.js +3 -1
  253. package/cjs/internal/NativeDateInput/NativeDateInput.js.map +1 -1
  254. package/cjs/internal/Popup/Popup.d.ts +1 -0
  255. package/cjs/internal/Popup/Popup.js +2 -1
  256. package/cjs/internal/Popup/Popup.js.map +1 -1
  257. package/cjs/internal/Popup/PopupPin.d.ts +1 -0
  258. package/cjs/internal/Popup/PopupPin.js +2 -1
  259. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  260. package/cjs/internal/PopupMenu/PopupMenu.d.ts +1 -0
  261. package/cjs/internal/PopupMenu/PopupMenu.js +2 -1
  262. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  263. package/cjs/internal/RenderContainer/RenderContainer.d.ts +1 -0
  264. package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
  265. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  266. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +3 -0
  267. package/cjs/internal/RenderContainer/RenderInnerContainer.js +7 -2
  268. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  269. package/cjs/internal/RenderLayer/RenderLayer.d.ts +1 -0
  270. package/cjs/internal/RenderLayer/RenderLayer.js +2 -1
  271. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  272. package/cjs/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  273. package/cjs/internal/ResizeDetector/ResizeDetector.js +2 -1
  274. package/cjs/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  275. package/cjs/internal/ZIndex/ZIndex.d.ts +1 -0
  276. package/cjs/internal/ZIndex/ZIndex.js +2 -1
  277. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  278. package/cjs/internal/icons/20px/Icon.d.ts +1 -0
  279. package/cjs/internal/icons/20px/Icon.js +2 -1
  280. package/cjs/internal/icons/20px/Icon.js.map +1 -1
  281. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
  282. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  283. package/cjs/lib/locale/LocaleContext.js +2 -1
  284. package/cjs/lib/locale/LocaleContext.js.map +1 -1
  285. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -0
  286. package/cjs/lib/rootNode/rootNodeDecorator.js +4 -1
  287. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  288. package/cjs/lib/theming/ThemeContext.js +2 -1
  289. package/cjs/lib/theming/ThemeContext.js.map +1 -1
  290. package/cjs/lib/toKebabCase.d.ts +1 -0
  291. package/cjs/lib/toKebabCase.js +10 -0
  292. package/cjs/lib/toKebabCase.js.map +1 -0
  293. package/cjs/typings/global-react.d.ts +12 -0
  294. package/components/Autocomplete/Autocomplete/Autocomplete.js +1 -1
  295. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  296. package/components/Autocomplete/Autocomplete.d.ts +1 -0
  297. package/components/Button/Button/Button.js +1 -1
  298. package/components/Button/Button/Button.js.map +1 -1
  299. package/components/Button/Button.d.ts +1 -0
  300. package/components/Calendar/Calendar/Calendar.js +1 -1
  301. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  302. package/components/Calendar/Calendar.d.ts +1 -0
  303. package/components/Calendar/DayCellView/DayCellView.js +9 -3
  304. package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
  305. package/components/Center/Center/Center.js +1 -1
  306. package/components/Center/Center/Center.js.map +1 -1
  307. package/components/Center/Center.d.ts +1 -0
  308. package/components/Checkbox/Checkbox/Checkbox.js +1 -1
  309. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  310. package/components/Checkbox/Checkbox.d.ts +1 -0
  311. package/components/ComboBox/ComboBox/ComboBox.js +1 -1
  312. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  313. package/components/ComboBox/ComboBox.d.ts +1 -0
  314. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +1 -1
  315. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  316. package/components/CurrencyInput/CurrencyInput.d.ts +1 -0
  317. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +1 -0
  318. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  319. package/components/CurrencyLabel/CurrencyLabel.d.ts +1 -0
  320. package/components/DateInput/DateInput/DateInput.js +1 -1
  321. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  322. package/components/DateInput/DateInput.d.ts +1 -0
  323. package/components/DatePicker/DatePicker/DatePicker.js +1 -1
  324. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  325. package/components/DatePicker/DatePicker.d.ts +1 -0
  326. package/components/DatePicker/Picker/Picker.js +1 -1
  327. package/components/DatePicker/Picker/Picker.js.map +1 -1
  328. package/components/DatePicker/Picker.d.ts +1 -0
  329. package/components/Dropdown/Dropdown/Dropdown.js +1 -1
  330. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  331. package/components/Dropdown/Dropdown.d.ts +1 -0
  332. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
  333. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  334. package/components/DropdownMenu/DropdownMenu.d.ts +1 -0
  335. package/components/FileUploader/FileUploader/FileUploader.js +2 -1
  336. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  337. package/components/FxInput/FxInput/FxInput.js +1 -1
  338. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  339. package/components/FxInput/FxInput.d.ts +1 -0
  340. package/components/Gapped/Gapped/Gapped.js +1 -1
  341. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  342. package/components/Gapped/Gapped.d.ts +1 -0
  343. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +1 -1
  344. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  345. package/components/GlobalLoader/GlobalLoader.d.ts +2 -0
  346. package/components/Group/Group/Group.js +1 -1
  347. package/components/Group/Group/Group.js.map +1 -1
  348. package/components/Group/Group.d.ts +1 -0
  349. package/components/Hint/Hint/Hint.js +1 -1
  350. package/components/Hint/Hint/Hint.js.map +1 -1
  351. package/components/Hint/Hint.d.ts +1 -0
  352. package/components/Input/Input/Input.js +1 -1
  353. package/components/Input/Input/Input.js.map +1 -1
  354. package/components/Input/Input.d.ts +1 -0
  355. package/components/Kebab/Kebab/Kebab.js +1 -1
  356. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  357. package/components/Kebab/Kebab.d.ts +1 -0
  358. package/components/Link/Link/Link.js +1 -1
  359. package/components/Link/Link/Link.js.map +1 -1
  360. package/components/Link/Link.d.ts +1 -0
  361. package/components/Loader/Loader/Loader.js +1 -1
  362. package/components/Loader/Loader/Loader.js.map +1 -1
  363. package/components/Loader/Loader.d.ts +1 -0
  364. package/components/MenuFooter/MenuFooter/MenuFooter.js +1 -0
  365. package/components/MenuFooter/MenuFooter/MenuFooter.js.map +1 -1
  366. package/components/MenuFooter/MenuFooter.d.ts +1 -0
  367. package/components/MenuHeader/MenuHeader/MenuHeader.js +1 -0
  368. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  369. package/components/MenuHeader/MenuHeader.d.ts +1 -0
  370. package/components/MenuItem/MenuItem/MenuItem.js +29 -6
  371. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  372. package/components/MenuItem/MenuItem.d.ts +4 -0
  373. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +1 -0
  374. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
  375. package/components/MenuSeparator/MenuSeparator.d.ts +1 -0
  376. package/components/MiniModal/MiniModal/MiniModal.js +0 -1
  377. package/components/MiniModal/MiniModal/MiniModal.js.map +1 -1
  378. package/components/Modal/Modal/Modal.js +1 -0
  379. package/components/Modal/Modal/Modal.js.map +1 -1
  380. package/components/Modal/Modal.d.ts +1 -0
  381. package/components/Modal/ModalBody/ModalBody.js +1 -1
  382. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  383. package/components/Modal/ModalBody.d.ts +1 -0
  384. package/components/Modal/ModalClose/ModalClose.js +3 -1
  385. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  386. package/components/Modal/ModalClose.d.ts +4 -0
  387. package/components/Modal/ModalFooter/ModalFooter.js +1 -0
  388. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  389. package/components/Modal/ModalFooter.d.ts +1 -0
  390. package/components/Modal/ModalHeader/ModalHeader.js +1 -0
  391. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  392. package/components/Modal/ModalHeader.d.ts +1 -0
  393. package/components/Modal/ModalSeparator/ModalSeparator.js +3 -1
  394. package/components/Modal/ModalSeparator/ModalSeparator.js.map +1 -1
  395. package/components/Modal/ModalSeparator.d.ts +4 -0
  396. package/components/Paging/Paging/Paging.js +11 -5
  397. package/components/Paging/Paging/Paging.js.map +1 -1
  398. package/components/Paging/Paging.d.ts +1 -0
  399. package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -1
  400. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  401. package/components/PasswordInput/PasswordInput.d.ts +1 -0
  402. package/components/Radio/Radio/Radio.js +1 -1
  403. package/components/Radio/Radio/Radio.js.map +1 -1
  404. package/components/Radio/Radio.d.ts +1 -0
  405. package/components/RadioGroup/RadioGroup/RadioGroup.js +1 -1
  406. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  407. package/components/RadioGroup/RadioGroup.d.ts +1 -0
  408. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +3 -1
  409. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  410. package/components/ResponsiveLayout/ResponsiveLayout.d.ts +4 -0
  411. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -1
  412. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  413. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  414. package/components/Select/Item/Item.js +2 -1
  415. package/components/Select/Item/Item.js.map +1 -1
  416. package/components/Select/Item.d.ts +1 -0
  417. package/components/Select/Select/Select.js +4 -2
  418. package/components/Select/Select/Select.js.map +1 -1
  419. package/components/Select/Select.d.ts +2 -0
  420. package/components/SidePage/SidePage/SidePage.js +1 -0
  421. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  422. package/components/SidePage/SidePage.d.ts +1 -0
  423. package/components/SidePage/SidePageBody/SidePageBody.js +1 -1
  424. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  425. package/components/SidePage/SidePageBody.d.ts +1 -0
  426. package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js +3 -1
  427. package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js.map +1 -1
  428. package/components/SidePage/SidePageCloseButton.d.ts +5 -1
  429. package/components/SidePage/SidePageContainer/SidePageContainer.js +1 -1
  430. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  431. package/components/SidePage/SidePageContainer.d.ts +1 -0
  432. package/components/SidePage/SidePageFooter/SidePageFooter.js +1 -1
  433. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  434. package/components/SidePage/SidePageFooter.d.ts +1 -0
  435. package/components/SidePage/SidePageHeader/SidePageHeader.js +1 -1
  436. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  437. package/components/SidePage/SidePageHeader.d.ts +1 -0
  438. package/components/SingleToast/SingleToast/SingleToast.js +2 -0
  439. package/components/SingleToast/SingleToast/SingleToast.js.map +1 -1
  440. package/components/SingleToast/SingleToast.d.ts +2 -0
  441. package/components/Spinner/Spinner/Spinner.js +1 -1
  442. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  443. package/components/Spinner/Spinner.d.ts +1 -0
  444. package/components/Sticky/Sticky/Sticky.js +1 -1
  445. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  446. package/components/Sticky/Sticky.d.ts +1 -0
  447. package/components/Switcher/Switcher/Switcher.js +1 -1
  448. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  449. package/components/Switcher/Switcher.d.ts +1 -0
  450. package/components/Tabs/Tab/Tab.js +6 -2
  451. package/components/Tabs/Tab/Tab.js.map +1 -1
  452. package/components/Tabs/Tab.d.ts +1 -0
  453. package/components/Tabs/Tabs/Tabs.js +1 -1
  454. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  455. package/components/Tabs/Tabs.d.ts +1 -0
  456. package/components/Textarea/Textarea/Textarea.js +1 -1
  457. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  458. package/components/Textarea/Textarea.d.ts +1 -0
  459. package/components/Toast/Toast/Toast.js +1 -1
  460. package/components/Toast/Toast/Toast.js.map +1 -1
  461. package/components/Toast/Toast.d.ts +1 -0
  462. package/components/Toggle/Toggle/Toggle.js +1 -1
  463. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  464. package/components/Toggle/Toggle.d.ts +1 -0
  465. package/components/Token/Token/Token.js +2 -2
  466. package/components/Token/Token/Token.js.map +1 -1
  467. package/components/Token/Token.d.ts +1 -0
  468. package/components/TokenInput/TokenInput/TokenInput.js +1 -1
  469. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  470. package/components/TokenInput/TokenInput.d.ts +1 -0
  471. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +2 -1
  472. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  473. package/components/TokenInput/TokenInputMenu.d.ts +1 -0
  474. package/components/Tooltip/Tooltip/Tooltip.js +1 -1
  475. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  476. package/components/Tooltip/Tooltip.d.ts +1 -0
  477. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +1 -1
  478. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  479. package/components/TooltipMenu/TooltipMenu.d.ts +1 -0
  480. package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js +3 -1
  481. package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  482. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +8 -38
  483. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  484. package/internal/CommonWrapper/CommonWrapper.d.ts +5 -26
  485. package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js +31 -0
  486. package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js.map +1 -0
  487. package/internal/CommonWrapper/extractCommonProps/package.json +6 -0
  488. package/internal/CommonWrapper/extractCommonProps.d.ts +3 -0
  489. package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js +12 -0
  490. package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +1 -0
  491. package/internal/CommonWrapper/getCommonVisualStateDataAttributes/package.json +6 -0
  492. package/internal/CommonWrapper/getCommonVisualStateDataAttributes.d.ts +2 -0
  493. package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js +16 -0
  494. package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +1 -0
  495. package/internal/CommonWrapper/getVisualStateDataAttributes/package.json +6 -0
  496. package/internal/CommonWrapper/getVisualStateDataAttributes.d.ts +3 -0
  497. package/internal/CommonWrapper/index/index.js +2 -1
  498. package/internal/CommonWrapper/index/index.js.map +1 -1
  499. package/internal/CommonWrapper/index.d.ts +2 -0
  500. package/internal/CommonWrapper/types/package.json +6 -0
  501. package/internal/CommonWrapper/types/types.js +1 -0
  502. package/internal/CommonWrapper/types/types.js.map +1 -0
  503. package/internal/CommonWrapper/types.d.ts +25 -0
  504. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +1 -1
  505. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  506. package/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
  507. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +1 -1
  508. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  509. package/internal/CustomComboBox/ComboBoxView.d.ts +1 -0
  510. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +1 -1
  511. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  512. package/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  513. package/internal/DateSelect/DateSelect/DateSelect.js +1 -1
  514. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  515. package/internal/DateSelect/DateSelect.d.ts +1 -0
  516. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +1 -0
  517. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  518. package/internal/DropdownContainer/DropdownContainer.d.ts +1 -0
  519. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +1 -0
  520. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  521. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
  522. package/internal/FocusTrap/FocusTrap/FocusTrap.js +1 -1
  523. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  524. package/internal/FocusTrap/FocusTrap.d.ts +1 -0
  525. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +1 -0
  526. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  527. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -0
  528. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +1 -1
  529. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  530. package/internal/InputLikeText/InputLikeText/InputLikeText.js +1 -1
  531. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  532. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  533. package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js +2 -1
  534. package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
  535. package/internal/InternalMaskedInput/InternalMaskedInput.d.ts +1 -0
  536. package/internal/InternalMenu/InternalMenu/InternalMenu.js +1 -1
  537. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  538. package/internal/InternalMenu/InternalMenu.d.ts +1 -0
  539. package/internal/Menu/Menu/Menu.js +1 -1
  540. package/internal/Menu/Menu/Menu.js.map +1 -1
  541. package/internal/Menu/Menu.d.ts +1 -0
  542. package/internal/MobilePopup/MobilePopup/MobilePopup.js +2 -1
  543. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  544. package/internal/MobilePopup/MobilePopup.d.ts +1 -0
  545. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +2 -1
  546. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  547. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
  548. package/internal/NativeDateInput/NativeDateInput/NativeDateInput.js +2 -1
  549. package/internal/NativeDateInput/NativeDateInput/NativeDateInput.js.map +1 -1
  550. package/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
  551. package/internal/Popup/Popup/Popup.js +1 -1
  552. package/internal/Popup/Popup/Popup.js.map +1 -1
  553. package/internal/Popup/Popup.d.ts +1 -0
  554. package/internal/Popup/PopupPin/PopupPin.js +1 -0
  555. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  556. package/internal/Popup/PopupPin.d.ts +1 -0
  557. package/internal/PopupMenu/PopupMenu/PopupMenu.js +1 -1
  558. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  559. package/internal/PopupMenu/PopupMenu.d.ts +1 -0
  560. package/internal/RenderContainer/RenderContainer/RenderContainer.js +1 -0
  561. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  562. package/internal/RenderContainer/RenderContainer.d.ts +1 -0
  563. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +4 -1
  564. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  565. package/internal/RenderContainer/RenderInnerContainer.d.ts +3 -0
  566. package/internal/RenderLayer/RenderLayer/RenderLayer.js +1 -1
  567. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  568. package/internal/RenderLayer/RenderLayer.d.ts +1 -0
  569. package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js +2 -1
  570. package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js.map +1 -1
  571. package/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  572. package/internal/ZIndex/ZIndex/ZIndex.js +1 -1
  573. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  574. package/internal/ZIndex/ZIndex.d.ts +1 -0
  575. package/internal/icons/20px/Icon/Icon.js +1 -0
  576. package/internal/icons/20px/Icon/Icon.js.map +1 -1
  577. package/internal/icons/20px/Icon.d.ts +1 -0
  578. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
  579. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  580. package/lib/locale/LocaleContext/LocaleContext.js +2 -1
  581. package/lib/locale/LocaleContext/LocaleContext.js.map +1 -1
  582. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +1 -1
  583. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  584. package/lib/rootNode/rootNodeDecorator.d.ts +2 -0
  585. package/lib/theming/ThemeContext/ThemeContext.js +2 -1
  586. package/lib/theming/ThemeContext/ThemeContext.js.map +1 -1
  587. package/lib/toKebabCase/package.json +6 -0
  588. package/lib/toKebabCase/toKebabCase.js +7 -0
  589. package/lib/toKebabCase/toKebabCase.js.map +1 -0
  590. package/lib/toKebabCase.d.ts +1 -0
  591. package/package.json +8 -8
  592. package/typings/global-react.d.ts +12 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["RenderInnerContainer.tsx"],"names":["SSRPlaceholder","Portal","container","rt_rootID","children","ReactDOM","createPortal","RenderInnerContainer","render","props","anchor","domContainer","rootId","inner","React","Component","__KONTUR_REACT_UI__","propTypes","globalObject","HTMLElement","string","isRequired","node"],"mappings":"iRAAA;AACA;AACA;AACA;;;AAGA;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,wBAAM,yCAAQ,WAAQ,iBAAhB,GAAN,EAAvB;;AAEO,IAAMC,MAAM,GAAG,SAATA,MAAS,OAAqD,KAAlDC,SAAkD,QAAlDA,SAAkD,CAAvCC,SAAuC,QAAvCA,SAAuC,CAA5BC,QAA4B,QAA5BA,QAA4B;AACzE;AACA;AACE,iCAAC,cAAD,CAAO,QAAP;AACGF,IAAAA,SAAS,gBAAGG,kBAASC,YAAT,CAAsBF,QAAtB,EAAgCF,SAAhC,CAAH,gBAAgD,6BAAC,cAAD,OAD5D;AAEGA,IAAAA,SAAS,gBAAG,2CAAU,4BAA0BC,SAApC,GAAH,gBAAuD,6BAAC,cAAD,OAFnE,CADF;;;AAMD,CARM,C;;AAUMI,oB;;;AAGJC,EAAAA,M,GAAP,kBAAgB;AACd,sBAAmD,KAAKC,KAAxD,CAAQC,MAAR,eAAQA,MAAR,CAAgBN,QAAhB,eAAgBA,QAAhB,CAA0BO,YAA1B,eAA0BA,YAA1B,CAAwCC,MAAxC,eAAwCA,MAAxC;AACA,QAAIC,KAAK,GAAGH,MAAZ;;AAEA,QAAIN,QAAJ,EAAc;AACZS,MAAAA,KAAK;AACH,mCAAC,cAAD,CAAO,QAAP;AACGH,MAAAA,MADH;AAEE,mCAAC,MAAD,IAAQ,GAAG,EAAC,YAAZ,EAAyB,SAAS,EAAEE,MAApC,EAA4C,SAAS,EAAED,YAAvD;AACGP,MAAAA,QADH,CAFF,CADF;;;;AAQD;;AAED,WAAOS,KAAP;AACD,G,+BAnBuCC,eAAMC,S,sDAAnCR,oB,CACGS,mB,GAAsB,sB;;;AAqBtCf,MAAM,CAACgB,SAAP,GAAmB;AACjBf,EAAAA,SAAS,EAAE,sCAAwBgB,2BAAaC,WAArC,CADM;AAEjBhB,EAAAA,SAAS,EAAEc,mBAAUG,MAAV,CAAiBC,UAFX;AAGjBjB,EAAAA,QAAQ,EAAEa,mBAAUK,IAAV,CAAeD,UAHR,EAAnB","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport propTypes from 'prop-types';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { safePropTypesInstanceOf } from '../../lib/SSRSafe';\n\nimport { PortalProps, RenderContainerProps } from './RenderContainerTypes';\n\ninterface RenderInnerContainerProps extends RenderContainerProps {\n domContainer: Nullable<HTMLElement>;\n rootId: string;\n}\n\n// Заглушка нужна для корректной гидрации порталов после SSR,\n// которую реакт сам пока не поддерживает.\n// @see https://github.com/facebook/react/issues/13097\n// А также для вставки актуального render-container-id на клиенте.\n//\n// Дело в том, что во время гидрации, структура HTML на сервере\n// и на клиенте должна совпадать, иначе возможны артефакты.\n// Алгоритм там примерно такой. Клиент во время гидрации идет\n// по этим двум деревьям и сравнивает узлы. Элементы разных типов\n// он подменяет на свои. А те, что совпадают, он оставляет как есть\n// вместе со всеми атрибутами, навесив только обработчики событий.\n//\n// Поэтому, для портала, который рендерится только на клиенте,\n// нужно использовать серверную заглушку, чтобы при гидрации\n// он не испортил какой-то другой элемент. Null не подходит,\n// т.к. на сервере он тоже не рендерится.\n// А элемент с render-container-id нужно отрендерить с нуля.\n\nconst SSRPlaceholder = () => <script data-id=\"ssr-placeholder\" />;\n\nexport const Portal = ({ container, rt_rootID, children }: PortalProps) => {\n // container exists only in browser\n return (\n <React.Fragment>\n {container ? ReactDOM.createPortal(children, container) : <SSRPlaceholder />}\n {container ? <noscript data-render-container-id={rt_rootID} /> : <SSRPlaceholder />}\n </React.Fragment>\n );\n};\n\nexport class RenderInnerContainer extends React.Component<RenderInnerContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderInnerContainer';\n\n public render() {\n const { anchor, children, domContainer, rootId } = this.props;\n let inner = anchor;\n\n if (children) {\n inner = (\n <React.Fragment>\n {anchor}\n <Portal key=\"portal-ref\" rt_rootID={rootId} container={domContainer}>\n {children}\n </Portal>\n </React.Fragment>\n );\n }\n\n return inner;\n }\n}\n\nPortal.propTypes = {\n container: safePropTypesInstanceOf(globalObject.HTMLElement),\n rt_rootID: propTypes.string.isRequired,\n children: propTypes.node.isRequired,\n};\n"]}
1
+ {"version":3,"sources":["RenderInnerContainer.tsx"],"names":["SSRPlaceholder","Portal","container","rt_rootID","children","ReactDOM","createPortal","RenderInnerContainer","render","props","anchor","domContainer","rootId","inner","React","Component","__KONTUR_REACT_UI__","displayName","propTypes","globalObject","HTMLElement","string","isRequired","node"],"mappings":"iRAAA;AACA;AACA;AACA;;;AAGA;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,wBAAM,yCAAQ,WAAQ,iBAAhB,GAAN,EAAvB;;AAEO,IAAMC,MAAM,GAAG,SAATA,MAAS,OAAqD,KAAlDC,SAAkD,QAAlDA,SAAkD,CAAvCC,SAAuC,QAAvCA,SAAuC,CAA5BC,QAA4B,QAA5BA,QAA4B;AACzE;AACA;AACE,iCAAC,cAAD,CAAO,QAAP;AACGF,IAAAA,SAAS,gBAAGG,kBAASC,YAAT,CAAsBF,QAAtB,EAAgCF,SAAhC,CAAH,gBAAgD,6BAAC,cAAD,OAD5D;AAEGA,IAAAA,SAAS,gBAAG,2CAAU,4BAA0BC,SAApC,GAAH,gBAAuD,6BAAC,cAAD,OAFnE,CADF;;;AAMD,CARM,C;;AAUMI,oB;;;;AAIJC,EAAAA,M,GAAP,kBAAgB;AACd,sBAAmD,KAAKC,KAAxD,CAAQC,MAAR,eAAQA,MAAR,CAAgBN,QAAhB,eAAgBA,QAAhB,CAA0BO,YAA1B,eAA0BA,YAA1B,CAAwCC,MAAxC,eAAwCA,MAAxC;AACA,QAAIC,KAAK,GAAGH,MAAZ;;AAEA,QAAIN,QAAJ,EAAc;AACZS,MAAAA,KAAK;AACH,mCAAC,cAAD,CAAO,QAAP;AACGH,MAAAA,MADH;AAEE,mCAAC,MAAD,IAAQ,GAAG,EAAC,YAAZ,EAAyB,SAAS,EAAEE,MAApC,EAA4C,SAAS,EAAED,YAAvD;AACGP,MAAAA,QADH,CAFF,CADF;;;;AAQD;;AAED,WAAOS,KAAP;AACD,G,+BApBuCC,eAAMC,S,sDAAnCR,oB,CACGS,mB,GAAsB,sB,CADzBT,oB,CAEGU,W,GAAc,sB;;;AAqB9BhB,MAAM,CAACiB,SAAP,GAAmB;AACjBhB,EAAAA,SAAS,EAAE,sCAAwBiB,2BAAaC,WAArC,CADM;AAEjBjB,EAAAA,SAAS,EAAEe,mBAAUG,MAAV,CAAiBC,UAFX;AAGjBlB,EAAAA,QAAQ,EAAEc,mBAAUK,IAAV,CAAeD,UAHR,EAAnB;;;AAMArB,MAAM,CAACe,mBAAP,GAA6B,QAA7B;AACAf,MAAM,CAACgB,WAAP,GAAqB,QAArB","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport propTypes from 'prop-types';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { safePropTypesInstanceOf } from '../../lib/SSRSafe';\n\nimport { PortalProps, RenderContainerProps } from './RenderContainerTypes';\n\ninterface RenderInnerContainerProps extends RenderContainerProps {\n domContainer: Nullable<HTMLElement>;\n rootId: string;\n}\n\n// Заглушка нужна для корректной гидрации порталов после SSR,\n// которую реакт сам пока не поддерживает.\n// @see https://github.com/facebook/react/issues/13097\n// А также для вставки актуального render-container-id на клиенте.\n//\n// Дело в том, что во время гидрации, структура HTML на сервере\n// и на клиенте должна совпадать, иначе возможны артефакты.\n// Алгоритм там примерно такой. Клиент во время гидрации идет\n// по этим двум деревьям и сравнивает узлы. Элементы разных типов\n// он подменяет на свои. А те, что совпадают, он оставляет как есть\n// вместе со всеми атрибутами, навесив только обработчики событий.\n//\n// Поэтому, для портала, который рендерится только на клиенте,\n// нужно использовать серверную заглушку, чтобы при гидрации\n// он не испортил какой-то другой элемент. Null не подходит,\n// т.к. на сервере он тоже не рендерится.\n// А элемент с render-container-id нужно отрендерить с нуля.\n\nconst SSRPlaceholder = () => <script data-id=\"ssr-placeholder\" />;\n\nexport const Portal = ({ container, rt_rootID, children }: PortalProps) => {\n // container exists only in browser\n return (\n <React.Fragment>\n {container ? ReactDOM.createPortal(children, container) : <SSRPlaceholder />}\n {container ? <noscript data-render-container-id={rt_rootID} /> : <SSRPlaceholder />}\n </React.Fragment>\n );\n};\n\nexport class RenderInnerContainer extends React.Component<RenderInnerContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderInnerContainer';\n public static displayName = 'RenderInnerContainer';\n\n public render() {\n const { anchor, children, domContainer, rootId } = this.props;\n let inner = anchor;\n\n if (children) {\n inner = (\n <React.Fragment>\n {anchor}\n <Portal key=\"portal-ref\" rt_rootID={rootId} container={domContainer}>\n {children}\n </Portal>\n </React.Fragment>\n );\n }\n\n return inner;\n }\n}\n\nPortal.propTypes = {\n container: safePropTypesInstanceOf(globalObject.HTMLElement),\n rt_rootID: propTypes.string.isRequired,\n children: propTypes.node.isRequired,\n};\n\nPortal.__KONTUR_REACT_UI__ = 'Portal';\nPortal.displayName = 'Portal';\n"]}
@@ -11,6 +11,7 @@ export interface RenderLayerProps extends CommonProps {
11
11
  declare type DefaultProps = Required<Pick<RenderLayerProps, 'active'>>;
12
12
  export declare class RenderLayer extends React.Component<RenderLayerProps> {
13
13
  static __KONTUR_REACT_UI__: string;
14
+ static displayName: string;
14
15
  static propTypes: {
15
16
  active(props: RenderLayerProps, propName: keyof RenderLayerProps, componentName: string): Error | undefined;
16
17
  };
@@ -37,6 +37,7 @@ RenderLayer = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/f
37
37
 
38
38
 
39
39
 
40
+
40
41
  getProps = (0, _createPropsGetter.createPropsGetter)(RenderLayer.defaultProps);_this.
41
42
 
42
43
  focusOutsideListenerToken =
@@ -127,4 +128,4 @@ RenderLayer = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/f
127
128
  if (_this.props.onClickOutside) {
128
129
  _this.props.onClickOutside(event);
129
130
  }
130
- };return _this;}var _proto = RenderLayer.prototype;_proto.componentDidMount = function componentDidMount() {if (this.getProps().active) {this.attachListeners();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var active = this.getProps().active;if (!prevProps.active && active) {this.attachListeners();}if (prevProps.active && !active) {this.detachListeners();}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.getProps().active) {this.detachListeners();}};_proto.render = function render() {return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), _react.default.Children.only(this.props.children));};_proto.getAnchorNode = function getAnchorNode() {var getAnchorElement = this.props.getAnchorElement;return getAnchorElement ? getAnchorElement() : (0, _rootNode.getRootNode)(this);};_proto.attachListeners = function attachListeners() {var _globalObject$documen;var node = this.getAnchorNode();if (!node) {return;}this.focusOutsideListenerToken = (0, _listenFocusOutside.listen)(function () {return [node];}, this.handleFocusOutside);_globalObject.globalObject.addEventListener == null ? void 0 : _globalObject.globalObject.addEventListener('blur', this.handleFocusOutside);(_globalObject$documen = _globalObject.globalObject.document) == null ? void 0 : _globalObject$documen.addEventListener('ontouchstart' in _globalObject.globalObject.document.documentElement && 'onpointerup' in _globalObject.globalObject.document.documentElement ? 'pointerup' : 'mousedown', this.handleNativeDocClick);};_proto.detachListeners = function detachListeners() {var _globalObject$documen2;if (this.focusOutsideListenerToken) {this.focusOutsideListenerToken.remove();this.focusOutsideListenerToken = null;}_globalObject.globalObject.removeEventListener == null ? void 0 : _globalObject.globalObject.removeEventListener('blur', this.handleFocusOutside);(_globalObject$documen2 = _globalObject.globalObject.document) == null ? void 0 : _globalObject$documen2.removeEventListener('ontouchstart' in _globalObject.globalObject.document.documentElement && 'onpointerup' in _globalObject.globalObject.document.documentElement ? 'pointerup' : 'mousedown', this.handleNativeDocClick);};return RenderLayer;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'RenderLayer', _class2.propTypes = { active: function active(props, propName, componentName) {var active = props.active,onClickOutside = props.onClickOutside,onFocusOutside = props.onFocusOutside;if (active && !(onClickOutside || onFocusOutside)) {return new Error("[" + componentName + "]: using the component without either 'onClickOutside' or 'onFocusOutside' callback is pointless.");}} }, _class2.defaultProps = { active: true }, _temp)) || _class;exports.RenderLayer = RenderLayer;
131
+ };return _this;}var _proto = RenderLayer.prototype;_proto.componentDidMount = function componentDidMount() {if (this.getProps().active) {this.attachListeners();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var active = this.getProps().active;if (!prevProps.active && active) {this.attachListeners();}if (prevProps.active && !active) {this.detachListeners();}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.getProps().active) {this.detachListeners();}};_proto.render = function render() {return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), _react.default.Children.only(this.props.children));};_proto.getAnchorNode = function getAnchorNode() {var getAnchorElement = this.props.getAnchorElement;return getAnchorElement ? getAnchorElement() : (0, _rootNode.getRootNode)(this);};_proto.attachListeners = function attachListeners() {var _globalObject$documen;var node = this.getAnchorNode();if (!node) {return;}this.focusOutsideListenerToken = (0, _listenFocusOutside.listen)(function () {return [node];}, this.handleFocusOutside);_globalObject.globalObject.addEventListener == null ? void 0 : _globalObject.globalObject.addEventListener('blur', this.handleFocusOutside);(_globalObject$documen = _globalObject.globalObject.document) == null ? void 0 : _globalObject$documen.addEventListener('ontouchstart' in _globalObject.globalObject.document.documentElement && 'onpointerup' in _globalObject.globalObject.document.documentElement ? 'pointerup' : 'mousedown', this.handleNativeDocClick);};_proto.detachListeners = function detachListeners() {var _globalObject$documen2;if (this.focusOutsideListenerToken) {this.focusOutsideListenerToken.remove();this.focusOutsideListenerToken = null;}_globalObject.globalObject.removeEventListener == null ? void 0 : _globalObject.globalObject.removeEventListener('blur', this.handleFocusOutside);(_globalObject$documen2 = _globalObject.globalObject.document) == null ? void 0 : _globalObject$documen2.removeEventListener('ontouchstart' in _globalObject.globalObject.document.documentElement && 'onpointerup' in _globalObject.globalObject.document.documentElement ? 'pointerup' : 'mousedown', this.handleNativeDocClick);};return RenderLayer;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'RenderLayer', _class2.displayName = 'RenderLayer', _class2.propTypes = { active: function active(props, propName, componentName) {var active = props.active,onClickOutside = props.onClickOutside,onFocusOutside = props.onFocusOutside;if (active && !(onClickOutside || onFocusOutside)) {return new Error("[" + componentName + "]: using the component without either 'onClickOutside' or 'onFocusOutside' callback is pointless.");}} }, _class2.defaultProps = { active: true }, _temp)) || _class;exports.RenderLayer = RenderLayer;
@@ -1 +1 @@
1
- {"version":3,"sources":["RenderLayer.tsx"],"names":["RenderLayer","rootNode","getProps","defaultProps","focusOutsideListenerToken","handleFocusOutside","event","props","onFocusOutside","handleNativeDocClick","target","srcElement","node","getAnchorNode","globalObject","Element","onClickOutside","componentDidMount","active","attachListeners","componentDidUpdate","prevProps","detachListeners","componentWillUnmount","render","setRootNode","React","Children","only","children","getAnchorElement","addEventListener","document","documentElement","remove","removeEventListener","Component","__KONTUR_REACT_UI__","propTypes","propName","componentName","Error"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { listen as listenFocusOutside, containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { Nullable } from '../../typings/utility-types';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\n\nexport interface RenderLayerProps extends CommonProps {\n children: JSX.Element;\n onClickOutside?: (e: Event) => void;\n onFocusOutside?: (e: Event) => void;\n active?: boolean;\n getAnchorElement?: () => Nullable<Element>;\n}\n\ntype DefaultProps = Required<Pick<RenderLayerProps, 'active'>>;\n\n@rootNode\nexport class RenderLayer extends React.Component<RenderLayerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderLayer';\n\n public static propTypes = {\n active(props: RenderLayerProps, propName: keyof RenderLayerProps, componentName: string) {\n const { active, onClickOutside, onFocusOutside } = props;\n if (active && !(onClickOutside || onFocusOutside)) {\n return new Error(\n `[${componentName}]: using the component without either 'onClickOutside' or 'onFocusOutside' callback is pointless.`,\n );\n }\n },\n };\n\n public static defaultProps: DefaultProps = {\n active: true,\n };\n\n private getProps = createPropsGetter(RenderLayer.defaultProps);\n\n private focusOutsideListenerToken: {\n remove: () => void;\n } | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.getProps().active) {\n this.attachListeners();\n }\n }\n\n public componentDidUpdate(prevProps: RenderLayerProps) {\n const active = this.getProps().active;\n if (!prevProps.active && active) {\n this.attachListeners();\n }\n if (prevProps.active && !active) {\n this.detachListeners();\n }\n }\n\n public componentWillUnmount() {\n if (this.getProps().active) {\n this.detachListeners();\n }\n }\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {React.Children.only(this.props.children)}\n </CommonWrapper>\n );\n }\n\n private getAnchorNode(): Nullable<Element> {\n const { getAnchorElement } = this.props;\n return getAnchorElement ? getAnchorElement() : getRootNode(this);\n }\n\n private attachListeners() {\n const node = this.getAnchorNode();\n if (!node) {\n return;\n }\n\n this.focusOutsideListenerToken = listenFocusOutside(() => [node], this.handleFocusOutside);\n globalObject.addEventListener?.('blur', this.handleFocusOutside);\n globalObject.document?.addEventListener(\n 'ontouchstart' in globalObject.document.documentElement && 'onpointerup' in globalObject.document.documentElement\n ? 'pointerup'\n : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n\n private detachListeners() {\n if (this.focusOutsideListenerToken) {\n this.focusOutsideListenerToken.remove();\n this.focusOutsideListenerToken = null;\n }\n\n globalObject.removeEventListener?.('blur', this.handleFocusOutside);\n globalObject.document?.removeEventListener(\n 'ontouchstart' in globalObject.document.documentElement && 'onpointerup' in globalObject.document.documentElement\n ? 'pointerup'\n : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n\n private handleFocusOutside = (event: Event) => {\n if (this.props.onFocusOutside) {\n this.props.onFocusOutside(event);\n }\n };\n\n private handleNativeDocClick = (event: Event) => {\n const target = event.target || event.srcElement;\n const node = this.getAnchorNode();\n\n if (!node || (isInstanceOf(target, globalObject.Element) && containsTargetOrRenderContainer(target)(node))) {\n return;\n }\n\n if (this.props.onClickOutside) {\n this.props.onClickOutside(event);\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["RenderLayer.tsx"],"names":["RenderLayer","rootNode","getProps","defaultProps","focusOutsideListenerToken","handleFocusOutside","event","props","onFocusOutside","handleNativeDocClick","target","srcElement","node","getAnchorNode","globalObject","Element","onClickOutside","componentDidMount","active","attachListeners","componentDidUpdate","prevProps","detachListeners","componentWillUnmount","render","setRootNode","React","Children","only","children","getAnchorElement","addEventListener","document","documentElement","remove","removeEventListener","Component","__KONTUR_REACT_UI__","displayName","propTypes","propName","componentName","Error"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { listen as listenFocusOutside, containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { Nullable } from '../../typings/utility-types';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\n\nexport interface RenderLayerProps extends CommonProps {\n children: JSX.Element;\n onClickOutside?: (e: Event) => void;\n onFocusOutside?: (e: Event) => void;\n active?: boolean;\n getAnchorElement?: () => Nullable<Element>;\n}\n\ntype DefaultProps = Required<Pick<RenderLayerProps, 'active'>>;\n\n@rootNode\nexport class RenderLayer extends React.Component<RenderLayerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderLayer';\n public static displayName = 'RenderLayer';\n\n public static propTypes = {\n active(props: RenderLayerProps, propName: keyof RenderLayerProps, componentName: string) {\n const { active, onClickOutside, onFocusOutside } = props;\n if (active && !(onClickOutside || onFocusOutside)) {\n return new Error(\n `[${componentName}]: using the component without either 'onClickOutside' or 'onFocusOutside' callback is pointless.`,\n );\n }\n },\n };\n\n public static defaultProps: DefaultProps = {\n active: true,\n };\n\n private getProps = createPropsGetter(RenderLayer.defaultProps);\n\n private focusOutsideListenerToken: {\n remove: () => void;\n } | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.getProps().active) {\n this.attachListeners();\n }\n }\n\n public componentDidUpdate(prevProps: RenderLayerProps) {\n const active = this.getProps().active;\n if (!prevProps.active && active) {\n this.attachListeners();\n }\n if (prevProps.active && !active) {\n this.detachListeners();\n }\n }\n\n public componentWillUnmount() {\n if (this.getProps().active) {\n this.detachListeners();\n }\n }\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {React.Children.only(this.props.children)}\n </CommonWrapper>\n );\n }\n\n private getAnchorNode(): Nullable<Element> {\n const { getAnchorElement } = this.props;\n return getAnchorElement ? getAnchorElement() : getRootNode(this);\n }\n\n private attachListeners() {\n const node = this.getAnchorNode();\n if (!node) {\n return;\n }\n\n this.focusOutsideListenerToken = listenFocusOutside(() => [node], this.handleFocusOutside);\n globalObject.addEventListener?.('blur', this.handleFocusOutside);\n globalObject.document?.addEventListener(\n 'ontouchstart' in globalObject.document.documentElement && 'onpointerup' in globalObject.document.documentElement\n ? 'pointerup'\n : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n\n private detachListeners() {\n if (this.focusOutsideListenerToken) {\n this.focusOutsideListenerToken.remove();\n this.focusOutsideListenerToken = null;\n }\n\n globalObject.removeEventListener?.('blur', this.handleFocusOutside);\n globalObject.document?.removeEventListener(\n 'ontouchstart' in globalObject.document.documentElement && 'onpointerup' in globalObject.document.documentElement\n ? 'pointerup'\n : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n\n private handleFocusOutside = (event: Event) => {\n if (this.props.onFocusOutside) {\n this.props.onFocusOutside(event);\n }\n };\n\n private handleNativeDocClick = (event: Event) => {\n const target = event.target || event.srcElement;\n const node = this.getAnchorNode();\n\n if (!node || (isInstanceOf(target, globalObject.Element) && containsTargetOrRenderContainer(target)(node))) {\n return;\n }\n\n if (this.props.onClickOutside) {\n this.props.onClickOutside(event);\n }\n };\n}\n"]}
@@ -5,6 +5,7 @@ export interface ResizeDetectorProps {
5
5
  }
6
6
  export declare class ResizeDetector extends React.Component<ResizeDetectorProps> {
7
7
  static __KONTUR_REACT_UI__: string;
8
+ static displayName: string;
8
9
  private iframeWindow;
9
10
  componentDidMount(): void;
10
11
  render(): JSX.Element;
@@ -12,6 +12,7 @@ var _ResizeDetector = require("./ResizeDetector.styles");var
12
12
  ResizeDetector = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(ResizeDetector, _React$Component);function ResizeDetector() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
13
13
 
14
14
 
15
+
15
16
  iframeWindow = null;_this.
16
17
 
17
18
 
@@ -41,4 +42,4 @@ ResizeDetector = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.d
41
42
  if (iframe && iframe.contentWindow) {
42
43
  _this.iframeWindow = iframe.contentWindow;
43
44
  }
44
- };return _this;}var _proto = ResizeDetector.prototype;_proto.componentDidMount = function componentDidMount() {if (this.iframeWindow) {this.iframeWindow.addEventListener('resize', this.handleResize);}};_proto.render = function render() {var _cx;return /*#__PURE__*/_react.default.createElement("div", { className: _ResizeDetector.styles.root() }, /*#__PURE__*/_react.default.createElement("iframe", { title: "resizeDetector", ref: this.iframeRef, className: _ResizeDetector.styles.iframe(), tabIndex: -1 }), /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx = {}, _cx[_ResizeDetector.styles.content()] = true, _cx[_ResizeDetector.styles.fullHeight()] = this.props.fullHeight, _cx)) }, this.props.children));};return ResizeDetector;}(_react.default.Component);exports.ResizeDetector = ResizeDetector;ResizeDetector.__KONTUR_REACT_UI__ = 'ResizeDetector';
45
+ };return _this;}var _proto = ResizeDetector.prototype;_proto.componentDidMount = function componentDidMount() {if (this.iframeWindow) {this.iframeWindow.addEventListener('resize', this.handleResize);}};_proto.render = function render() {var _cx;return /*#__PURE__*/_react.default.createElement("div", { className: _ResizeDetector.styles.root() }, /*#__PURE__*/_react.default.createElement("iframe", { title: "resizeDetector", ref: this.iframeRef, className: _ResizeDetector.styles.iframe(), tabIndex: -1 }), /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx = {}, _cx[_ResizeDetector.styles.content()] = true, _cx[_ResizeDetector.styles.fullHeight()] = this.props.fullHeight, _cx)) }, this.props.children));};return ResizeDetector;}(_react.default.Component);exports.ResizeDetector = ResizeDetector;ResizeDetector.__KONTUR_REACT_UI__ = 'ResizeDetector';ResizeDetector.displayName = 'ResizeDetector';
@@ -1 +1 @@
1
- {"version":3,"sources":["ResizeDetector.tsx"],"names":["ResizeDetector","iframeWindow","handleResize","event","props","onResize","iframeRef","iframe","contentWindow","componentDidMount","addEventListener","render","styles","root","content","fullHeight","children","React","Component","__KONTUR_REACT_UI__"],"mappings":"0PAAA;;AAEA;;AAEA,yD;;;;;;;AAOaA,c;;;AAGHC,IAAAA,Y,GAA8B,I;;;;;;;;;;;;;;;;;;;AAmB9BC,IAAAA,Y,GAAe,UAACC,KAAD,EAAoB;AACzC,UAAI,MAAKC,KAAL,CAAWC,QAAf,EAAyB;AACvB,cAAKD,KAAL,CAAWC,QAAX,CAAoBF,KAApB;AACD;AACF,K;;AAEOG,IAAAA,S,GAAY,UAACC,MAAD,EAA+B;AACjD,UAAIA,MAAM,IAAIA,MAAM,CAACC,aAArB,EAAoC;AAClC,cAAKP,YAAL,GAAoBM,MAAM,CAACC,aAA3B;AACD;AACF,K,4DA3BMC,iB,GAAP,6BAA2B,CACzB,IAAI,KAAKR,YAAT,EAAuB,CACrB,KAAKA,YAAL,CAAkBS,gBAAlB,CAAmC,QAAnC,EAA6C,KAAKR,YAAlD,EACD,CACF,C,QAEMS,M,GAAP,kBAAgB,SACd,oBACE,sCAAK,SAAS,EAAEC,uBAAOC,IAAP,EAAhB,iBACE,yCAAQ,KAAK,EAAC,gBAAd,EAA+B,GAAG,EAAE,KAAKP,SAAzC,EAAoD,SAAS,EAAEM,uBAAOL,MAAP,EAA/D,EAAgF,QAAQ,EAAE,CAAC,CAA3F,GADF,eAEE,sCAAK,SAAS,EAAE,gCAAMK,uBAAOE,OAAP,EAAN,IAAyB,IAAzB,MAAgCF,uBAAOG,UAAP,EAAhC,IAAsD,KAAKX,KAAL,CAAWW,UAAjE,OAAhB,IACG,KAAKX,KAAL,CAAWY,QADd,CAFF,CADF,CAQD,C,yBApBiCC,eAAMC,S,0CAA7BlB,c,CACGmB,mB,GAAsB,gB","sourcesContent":["import React from 'react';\n\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './ResizeDetector.styles';\n\nexport interface ResizeDetectorProps {\n onResize?: (event: UIEvent) => void;\n fullHeight?: boolean;\n}\n\nexport class ResizeDetector extends React.Component<ResizeDetectorProps> {\n public static __KONTUR_REACT_UI__ = 'ResizeDetector';\n\n private iframeWindow: Window | null = null;\n\n public componentDidMount() {\n if (this.iframeWindow) {\n this.iframeWindow.addEventListener('resize', this.handleResize);\n }\n }\n\n public render() {\n return (\n <div className={styles.root()}>\n <iframe title=\"resizeDetector\" ref={this.iframeRef} className={styles.iframe()} tabIndex={-1} />\n <div className={cx({ [styles.content()]: true, [styles.fullHeight()]: this.props.fullHeight })}>\n {this.props.children}\n </div>\n </div>\n );\n }\n\n private handleResize = (event: UIEvent) => {\n if (this.props.onResize) {\n this.props.onResize(event);\n }\n };\n\n private iframeRef = (iframe: HTMLIFrameElement) => {\n if (iframe && iframe.contentWindow) {\n this.iframeWindow = iframe.contentWindow;\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["ResizeDetector.tsx"],"names":["ResizeDetector","iframeWindow","handleResize","event","props","onResize","iframeRef","iframe","contentWindow","componentDidMount","addEventListener","render","styles","root","content","fullHeight","children","React","Component","__KONTUR_REACT_UI__","displayName"],"mappings":"0PAAA;;AAEA;;AAEA,yD;;;;;;;AAOaA,c;;;;AAIHC,IAAAA,Y,GAA8B,I;;;;;;;;;;;;;;;;;;;AAmB9BC,IAAAA,Y,GAAe,UAACC,KAAD,EAAoB;AACzC,UAAI,MAAKC,KAAL,CAAWC,QAAf,EAAyB;AACvB,cAAKD,KAAL,CAAWC,QAAX,CAAoBF,KAApB;AACD;AACF,K;;AAEOG,IAAAA,S,GAAY,UAACC,MAAD,EAA+B;AACjD,UAAIA,MAAM,IAAIA,MAAM,CAACC,aAArB,EAAoC;AAClC,cAAKP,YAAL,GAAoBM,MAAM,CAACC,aAA3B;AACD;AACF,K,4DA3BMC,iB,GAAP,6BAA2B,CACzB,IAAI,KAAKR,YAAT,EAAuB,CACrB,KAAKA,YAAL,CAAkBS,gBAAlB,CAAmC,QAAnC,EAA6C,KAAKR,YAAlD,EACD,CACF,C,QAEMS,M,GAAP,kBAAgB,SACd,oBACE,sCAAK,SAAS,EAAEC,uBAAOC,IAAP,EAAhB,iBACE,yCAAQ,KAAK,EAAC,gBAAd,EAA+B,GAAG,EAAE,KAAKP,SAAzC,EAAoD,SAAS,EAAEM,uBAAOL,MAAP,EAA/D,EAAgF,QAAQ,EAAE,CAAC,CAA3F,GADF,eAEE,sCAAK,SAAS,EAAE,gCAAMK,uBAAOE,OAAP,EAAN,IAAyB,IAAzB,MAAgCF,uBAAOG,UAAP,EAAhC,IAAsD,KAAKX,KAAL,CAAWW,UAAjE,OAAhB,IACG,KAAKX,KAAL,CAAWY,QADd,CAFF,CADF,CAQD,C,yBArBiCC,eAAMC,S,0CAA7BlB,c,CACGmB,mB,GAAsB,gB,CADzBnB,c,CAEGoB,W,GAAc,gB","sourcesContent":["import React from 'react';\n\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './ResizeDetector.styles';\n\nexport interface ResizeDetectorProps {\n onResize?: (event: UIEvent) => void;\n fullHeight?: boolean;\n}\n\nexport class ResizeDetector extends React.Component<ResizeDetectorProps> {\n public static __KONTUR_REACT_UI__ = 'ResizeDetector';\n public static displayName = 'ResizeDetector';\n\n private iframeWindow: Window | null = null;\n\n public componentDidMount() {\n if (this.iframeWindow) {\n this.iframeWindow.addEventListener('resize', this.handleResize);\n }\n }\n\n public render() {\n return (\n <div className={styles.root()}>\n <iframe title=\"resizeDetector\" ref={this.iframeRef} className={styles.iframe()} tabIndex={-1} />\n <div className={cx({ [styles.content()]: true, [styles.fullHeight()]: this.props.fullHeight })}>\n {this.props.children}\n </div>\n </div>\n );\n }\n\n private handleResize = (event: UIEvent) => {\n if (this.props.onResize) {\n this.props.onResize(event);\n }\n };\n\n private iframeRef = (iframe: HTMLIFrameElement) => {\n if (iframe && iframe.contentWindow) {\n this.iframeWindow = iframe.contentWindow;\n }\n };\n}\n"]}
@@ -26,6 +26,7 @@ interface ZIndexState {
26
26
  }
27
27
  export declare class ZIndex extends React.Component<ZIndexProps, ZIndexState> {
28
28
  static __KONTUR_REACT_UI__: string;
29
+ static displayName: string;
29
30
  static defaultProps: DefaultProps;
30
31
  state: {
31
32
  zIndex: number;
@@ -75,6 +75,7 @@ ZIndex = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functi
75
75
 
76
76
 
77
77
 
78
+
78
79
 
79
80
 
80
81
  function ZIndex(props) {var _this;
@@ -167,4 +168,4 @@ ZIndex = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functi
167
168
  var _this$getProps = _this.getProps(),priority = _this$getProps.priority,delta = _this$getProps.delta;
168
169
 
169
170
  return (0, _ZIndexStorage.incrementZIndex)(priority, delta);
170
- };_this.state.zIndex = _this.increment();return _this;}var _proto = ZIndex.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (prevProps.priority !== this.props.priority || prevProps.delta !== this.props.delta) {(0, _ZIndexStorage.removeZIndex)(this.state.zIndex);this.setState({ zIndex: this.increment() });}};_proto.componentWillUnmount = function componentWillUnmount() {(0, _ZIndexStorage.removeZIndex)(this.state.zIndex);};_proto.render = function render() {var _this2 = this;var _this$getProps2 = this.getProps(),style = _this$getProps2.style,children = _this$getProps2.children,delta = _this$getProps2.delta,priority = _this$getProps2.priority,applyZIndex = _this$getProps2.applyZIndex,coverChildren = _this$getProps2.coverChildren,createStackingContext = _this$getProps2.createStackingContext,wrapperRef = _this$getProps2.wrapperRef,useWrapper = _this$getProps2.useWrapper,rest = (0, _objectWithoutPropertiesLoose2.default)(_this$getProps2, _excluded);var wrapperStyle = {};return /*#__PURE__*/_react.default.createElement(ZIndexContext.Consumer, null, function (_ref) {var parentLayerZIndex = _ref.parentLayerZIndex,maxZIndex = _ref.maxZIndex;var zIndexContextValue = { parentLayerZIndex: parentLayerZIndex, maxZIndex: maxZIndex };if (applyZIndex) {var newZIndex = _this2.calcZIndex(parentLayerZIndex, maxZIndex);wrapperStyle.zIndex = newZIndex;zIndexContextValue = coverChildren ? { parentLayerZIndex: parentLayerZIndex, maxZIndex: newZIndex } : { parentLayerZIndex: newZIndex, maxZIndex: Number.isFinite(maxZIndex) ? newZIndex : Infinity };if (createStackingContext) {(0, _globalObject.isBrowser)(_globalObject.globalObject) && 'isolation' in _globalObject.globalObject.document.body.style ? wrapperStyle.isolation = 'isolate' : wrapperStyle.transform = 'rotate(0)';}}var child = !useWrapper ? children : /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({ style: (0, _extends2.default)({}, style, wrapperStyle), ref: _this2.wrapperRef }, rest), children);return /*#__PURE__*/_react.default.createElement(ZIndexContext.Provider, { value: zIndexContextValue }, child);});};_proto.calcZIndex = function calcZIndex(parentLayerZIndex, maxZIndex) {var newZIndex = this.state.zIndex;if (Number.isFinite(maxZIndex)) {var allowedValuesIntervalLength = maxZIndex - parentLayerZIndex;var scale = _ZIndexStorage.upperBorder / allowedValuesIntervalLength;newZIndex = Math.ceil(newZIndex / scale);}newZIndex += parentLayerZIndex;return newZIndex;};return ZIndex;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'ZIndex', _class2.defaultProps = { delta: 10, priority: 0, style: {}, applyZIndex: true, coverChildren: false, createStackingContext: false, useWrapper: true }, _class2.propTypes = { delta: function delta(props) {if ((props.delta || _class2.defaultProps.delta) <= 0) {return new Error("[ZIndex]: Prop 'delta' must be greater than 0, received " + props.delta);}if (Math.trunc(props.delta || _class2.defaultProps.delta) !== props.delta) {return new Error("[ZIndex]: Prop 'delta' must be integer, received " + props.delta);}} }, _temp)) || _class;exports.ZIndex = ZIndex;
171
+ };_this.state.zIndex = _this.increment();return _this;}var _proto = ZIndex.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (prevProps.priority !== this.props.priority || prevProps.delta !== this.props.delta) {(0, _ZIndexStorage.removeZIndex)(this.state.zIndex);this.setState({ zIndex: this.increment() });}};_proto.componentWillUnmount = function componentWillUnmount() {(0, _ZIndexStorage.removeZIndex)(this.state.zIndex);};_proto.render = function render() {var _this2 = this;var _this$getProps2 = this.getProps(),style = _this$getProps2.style,children = _this$getProps2.children,delta = _this$getProps2.delta,priority = _this$getProps2.priority,applyZIndex = _this$getProps2.applyZIndex,coverChildren = _this$getProps2.coverChildren,createStackingContext = _this$getProps2.createStackingContext,wrapperRef = _this$getProps2.wrapperRef,useWrapper = _this$getProps2.useWrapper,rest = (0, _objectWithoutPropertiesLoose2.default)(_this$getProps2, _excluded);var wrapperStyle = {};return /*#__PURE__*/_react.default.createElement(ZIndexContext.Consumer, null, function (_ref) {var parentLayerZIndex = _ref.parentLayerZIndex,maxZIndex = _ref.maxZIndex;var zIndexContextValue = { parentLayerZIndex: parentLayerZIndex, maxZIndex: maxZIndex };if (applyZIndex) {var newZIndex = _this2.calcZIndex(parentLayerZIndex, maxZIndex);wrapperStyle.zIndex = newZIndex;zIndexContextValue = coverChildren ? { parentLayerZIndex: parentLayerZIndex, maxZIndex: newZIndex } : { parentLayerZIndex: newZIndex, maxZIndex: Number.isFinite(maxZIndex) ? newZIndex : Infinity };if (createStackingContext) {(0, _globalObject.isBrowser)(_globalObject.globalObject) && 'isolation' in _globalObject.globalObject.document.body.style ? wrapperStyle.isolation = 'isolate' : wrapperStyle.transform = 'rotate(0)';}}var child = !useWrapper ? children : /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({ style: (0, _extends2.default)({}, style, wrapperStyle), ref: _this2.wrapperRef }, rest), children);return /*#__PURE__*/_react.default.createElement(ZIndexContext.Provider, { value: zIndexContextValue }, child);});};_proto.calcZIndex = function calcZIndex(parentLayerZIndex, maxZIndex) {var newZIndex = this.state.zIndex;if (Number.isFinite(maxZIndex)) {var allowedValuesIntervalLength = maxZIndex - parentLayerZIndex;var scale = _ZIndexStorage.upperBorder / allowedValuesIntervalLength;newZIndex = Math.ceil(newZIndex / scale);}newZIndex += parentLayerZIndex;return newZIndex;};return ZIndex;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'ZIndex', _class2.displayName = 'ZIndex', _class2.defaultProps = { delta: 10, priority: 0, style: {}, applyZIndex: true, coverChildren: false, createStackingContext: false, useWrapper: true }, _class2.propTypes = { delta: function delta(props) {if ((props.delta || _class2.defaultProps.delta) <= 0) {return new Error("[ZIndex]: Prop 'delta' must be greater than 0, received " + props.delta);}if (Math.trunc(props.delta || _class2.defaultProps.delta) !== props.delta) {return new Error("[ZIndex]: Prop 'delta' must be integer, received " + props.delta);}} }, _temp)) || _class;exports.ZIndex = ZIndex;
@@ -1 +1 @@
1
- {"version":3,"sources":["ZIndex.tsx"],"names":["ZIndexContext","React","createContext","parentLayerZIndex","maxZIndex","Infinity","displayName","ZIndex","rootNode","props","state","zIndex","getProps","defaultProps","wrapperRef","element","setRootNode","increment","priority","delta","componentDidUpdate","prevProps","setState","componentWillUnmount","render","style","children","applyZIndex","coverChildren","createStackingContext","useWrapper","rest","wrapperStyle","zIndexContextValue","newZIndex","calcZIndex","Number","isFinite","globalObject","document","body","isolation","transform","child","allowedValuesIntervalLength","scale","upperBorder","Math","ceil","Component","__KONTUR_REACT_UI__","propTypes","Error","trunc"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { incrementZIndex, removeZIndex, upperBorder, LayerComponentName } from './ZIndexStorage';\n\nconst ZIndexContext = React.createContext({ parentLayerZIndex: 0, maxZIndex: Infinity });\n\nZIndexContext.displayName = 'ZIndexContext';\n\nexport interface ZIndexProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Приращение к z-index\n */\n delta?: number;\n priority?: number | LayerComponentName;\n style?: React.CSSProperties;\n createStackingContext?: boolean;\n coverChildren?: boolean;\n applyZIndex?: boolean;\n className?: string;\n wrapperRef?: React.Ref<HTMLDivElement> | undefined | null;\n\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<div/>`.\n * Для случаев, когда необходимо задать **только** контекст для области.\n *\n * @default true\n */\n useWrapper?: boolean;\n}\n\ntype DefaultProps = Required<\n Pick<\n ZIndexProps,\n 'delta' | 'priority' | 'style' | 'applyZIndex' | 'coverChildren' | 'createStackingContext' | 'useWrapper'\n >\n>;\n\ninterface ZIndexState {\n zIndex: number;\n}\n\n@rootNode\nexport class ZIndex extends React.Component<ZIndexProps, ZIndexState> {\n public static __KONTUR_REACT_UI__ = 'ZIndex';\n\n public static defaultProps: DefaultProps = {\n delta: 10,\n priority: 0,\n style: {},\n applyZIndex: true,\n coverChildren: false,\n createStackingContext: false,\n useWrapper: true,\n };\n\n public state = {\n zIndex: 0,\n };\n\n private getProps = createPropsGetter(ZIndex.defaultProps);\n\n public static propTypes = {\n delta(props: ZIndexProps) {\n if ((props.delta || ZIndex.defaultProps.delta) <= 0) {\n return new Error(`[ZIndex]: Prop 'delta' must be greater than 0, received ${props.delta}`);\n }\n if (Math.trunc(props.delta || ZIndex.defaultProps.delta) !== props.delta) {\n return new Error(`[ZIndex]: Prop 'delta' must be integer, received ${props.delta}`);\n }\n },\n };\n\n private setRootNode!: TSetRootNode;\n\n constructor(props: ZIndexProps) {\n super(props);\n this.state.zIndex = this.increment();\n }\n\n public componentDidUpdate(prevProps: Readonly<ZIndexProps>) {\n if (prevProps.priority !== this.props.priority || prevProps.delta !== this.props.delta) {\n removeZIndex(this.state.zIndex);\n this.setState({ zIndex: this.increment() });\n }\n }\n\n public componentWillUnmount() {\n removeZIndex(this.state.zIndex);\n }\n\n public render() {\n const {\n style,\n children,\n delta,\n priority,\n applyZIndex,\n coverChildren,\n createStackingContext,\n wrapperRef,\n useWrapper,\n ...rest\n } = this.getProps();\n\n const wrapperStyle: React.CSSProperties = {};\n\n return (\n <ZIndexContext.Consumer>\n {({ parentLayerZIndex, maxZIndex }) => {\n let zIndexContextValue = { parentLayerZIndex, maxZIndex };\n\n if (applyZIndex) {\n const newZIndex = this.calcZIndex(parentLayerZIndex, maxZIndex);\n wrapperStyle.zIndex = newZIndex;\n\n zIndexContextValue = coverChildren\n ? { parentLayerZIndex, maxZIndex: newZIndex }\n : { parentLayerZIndex: newZIndex, maxZIndex: Number.isFinite(maxZIndex) ? newZIndex : Infinity };\n\n if (createStackingContext) {\n isBrowser(globalObject) && 'isolation' in globalObject.document.body.style\n ? (wrapperStyle.isolation = 'isolate')\n : (wrapperStyle.transform = 'rotate(0)');\n }\n }\n\n const child = !useWrapper ? (\n children\n ) : (\n <div style={{ ...style, ...wrapperStyle }} ref={this.wrapperRef} {...rest}>\n {children}\n </div>\n );\n\n return <ZIndexContext.Provider value={zIndexContextValue}>{child}</ZIndexContext.Provider>;\n }}\n </ZIndexContext.Consumer>\n );\n }\n\n private wrapperRef = (element: HTMLDivElement | null) => {\n const { wrapperRef } = this.props;\n this.setRootNode(element);\n wrapperRef && callChildRef(wrapperRef, element);\n };\n\n private calcZIndex(parentLayerZIndex: number, maxZIndex: number) {\n let newZIndex = this.state.zIndex;\n\n if (Number.isFinite(maxZIndex)) {\n const allowedValuesIntervalLength = maxZIndex - parentLayerZIndex;\n const scale = upperBorder / allowedValuesIntervalLength;\n newZIndex = Math.ceil(newZIndex / scale);\n }\n\n newZIndex += parentLayerZIndex;\n\n return newZIndex;\n }\n\n private increment = () => {\n const { priority, delta } = this.getProps();\n\n return incrementZIndex(priority, delta);\n };\n}\n"]}
1
+ {"version":3,"sources":["ZIndex.tsx"],"names":["ZIndexContext","React","createContext","parentLayerZIndex","maxZIndex","Infinity","displayName","ZIndex","rootNode","props","state","zIndex","getProps","defaultProps","wrapperRef","element","setRootNode","increment","priority","delta","componentDidUpdate","prevProps","setState","componentWillUnmount","render","style","children","applyZIndex","coverChildren","createStackingContext","useWrapper","rest","wrapperStyle","zIndexContextValue","newZIndex","calcZIndex","Number","isFinite","globalObject","document","body","isolation","transform","child","allowedValuesIntervalLength","scale","upperBorder","Math","ceil","Component","__KONTUR_REACT_UI__","propTypes","Error","trunc"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { incrementZIndex, removeZIndex, upperBorder, LayerComponentName } from './ZIndexStorage';\n\nconst ZIndexContext = React.createContext({ parentLayerZIndex: 0, maxZIndex: Infinity });\n\nZIndexContext.displayName = 'ZIndexContext';\n\nexport interface ZIndexProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Приращение к z-index\n */\n delta?: number;\n priority?: number | LayerComponentName;\n style?: React.CSSProperties;\n createStackingContext?: boolean;\n coverChildren?: boolean;\n applyZIndex?: boolean;\n className?: string;\n wrapperRef?: React.Ref<HTMLDivElement> | undefined | null;\n\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<div/>`.\n * Для случаев, когда необходимо задать **только** контекст для области.\n *\n * @default true\n */\n useWrapper?: boolean;\n}\n\ntype DefaultProps = Required<\n Pick<\n ZIndexProps,\n 'delta' | 'priority' | 'style' | 'applyZIndex' | 'coverChildren' | 'createStackingContext' | 'useWrapper'\n >\n>;\n\ninterface ZIndexState {\n zIndex: number;\n}\n\n@rootNode\nexport class ZIndex extends React.Component<ZIndexProps, ZIndexState> {\n public static __KONTUR_REACT_UI__ = 'ZIndex';\n public static displayName = 'ZIndex';\n\n public static defaultProps: DefaultProps = {\n delta: 10,\n priority: 0,\n style: {},\n applyZIndex: true,\n coverChildren: false,\n createStackingContext: false,\n useWrapper: true,\n };\n\n public state = {\n zIndex: 0,\n };\n\n private getProps = createPropsGetter(ZIndex.defaultProps);\n\n public static propTypes = {\n delta(props: ZIndexProps) {\n if ((props.delta || ZIndex.defaultProps.delta) <= 0) {\n return new Error(`[ZIndex]: Prop 'delta' must be greater than 0, received ${props.delta}`);\n }\n if (Math.trunc(props.delta || ZIndex.defaultProps.delta) !== props.delta) {\n return new Error(`[ZIndex]: Prop 'delta' must be integer, received ${props.delta}`);\n }\n },\n };\n\n private setRootNode!: TSetRootNode;\n\n constructor(props: ZIndexProps) {\n super(props);\n this.state.zIndex = this.increment();\n }\n\n public componentDidUpdate(prevProps: Readonly<ZIndexProps>) {\n if (prevProps.priority !== this.props.priority || prevProps.delta !== this.props.delta) {\n removeZIndex(this.state.zIndex);\n this.setState({ zIndex: this.increment() });\n }\n }\n\n public componentWillUnmount() {\n removeZIndex(this.state.zIndex);\n }\n\n public render() {\n const {\n style,\n children,\n delta,\n priority,\n applyZIndex,\n coverChildren,\n createStackingContext,\n wrapperRef,\n useWrapper,\n ...rest\n } = this.getProps();\n\n const wrapperStyle: React.CSSProperties = {};\n\n return (\n <ZIndexContext.Consumer>\n {({ parentLayerZIndex, maxZIndex }) => {\n let zIndexContextValue = { parentLayerZIndex, maxZIndex };\n\n if (applyZIndex) {\n const newZIndex = this.calcZIndex(parentLayerZIndex, maxZIndex);\n wrapperStyle.zIndex = newZIndex;\n\n zIndexContextValue = coverChildren\n ? { parentLayerZIndex, maxZIndex: newZIndex }\n : { parentLayerZIndex: newZIndex, maxZIndex: Number.isFinite(maxZIndex) ? newZIndex : Infinity };\n\n if (createStackingContext) {\n isBrowser(globalObject) && 'isolation' in globalObject.document.body.style\n ? (wrapperStyle.isolation = 'isolate')\n : (wrapperStyle.transform = 'rotate(0)');\n }\n }\n\n const child = !useWrapper ? (\n children\n ) : (\n <div style={{ ...style, ...wrapperStyle }} ref={this.wrapperRef} {...rest}>\n {children}\n </div>\n );\n\n return <ZIndexContext.Provider value={zIndexContextValue}>{child}</ZIndexContext.Provider>;\n }}\n </ZIndexContext.Consumer>\n );\n }\n\n private wrapperRef = (element: HTMLDivElement | null) => {\n const { wrapperRef } = this.props;\n this.setRootNode(element);\n wrapperRef && callChildRef(wrapperRef, element);\n };\n\n private calcZIndex(parentLayerZIndex: number, maxZIndex: number) {\n let newZIndex = this.state.zIndex;\n\n if (Number.isFinite(maxZIndex)) {\n const allowedValuesIntervalLength = maxZIndex - parentLayerZIndex;\n const scale = upperBorder / allowedValuesIntervalLength;\n newZIndex = Math.ceil(newZIndex / scale);\n }\n\n newZIndex += parentLayerZIndex;\n\n return newZIndex;\n }\n\n private increment = () => {\n const { priority, delta } = this.getProps();\n\n return incrementZIndex(priority, delta);\n };\n}\n"]}
@@ -17,6 +17,7 @@ export interface IconProps {
17
17
  }
18
18
  export declare class Icon extends React.Component<IconProps> {
19
19
  static __KONTUR_REACT_UI__: string;
20
+ static displayName: string;
20
21
  static propTypes: {
21
22
  color: PropTypes.Requireable<string>;
22
23
  /**
@@ -32,6 +32,7 @@ Icon = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Ic
32
32
 
33
33
 
34
34
 
35
+
35
36
  getAllNames = function getAllNames() {
36
37
  return Object.keys(MAP);
37
38
  };var _proto = Icon.prototype;_proto.
@@ -39,6 +40,6 @@ Icon = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Ic
39
40
  render = function render() {
40
41
  var _this$props = this.props,name = _this$props.name,color = _this$props.color;
41
42
  return /*#__PURE__*/_react.default.createElement(MAP[name], { color: color });
42
- };return Icon;}(_react.default.Component);exports.Icon = Icon;Icon.__KONTUR_REACT_UI__ = 'Icon20px';Icon.propTypes = { color: _propTypes.default.string, /**
43
+ };return Icon;}(_react.default.Component);exports.Icon = Icon;Icon.__KONTUR_REACT_UI__ = 'Icon20px';Icon.displayName = 'Icon20px';Icon.propTypes = { color: _propTypes.default.string, /**
43
44
  * Icon id.
44
45
  */name: _propTypes.default.oneOf(Object.keys(MAP)) };
@@ -1 +1 @@
1
- {"version":3,"sources":["Icon.tsx"],"names":["MAP","warning","Warning","ok","Ok","gear","Gear","user","User","wait","Wait","clear","Clear","money","Money","HelpCircle","kebab","Kebab","Icon","getAllNames","Object","keys","render","props","name","color","React","createElement","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","string","oneOf"],"mappings":"gPAAA;AACA;;AAEA;;AAEA,IAAMA,GAAG,GAAG;AACVC,EAAAA,OAAO,EAAEC,YADC;AAEVC,EAAAA,EAAE,EAAEC,OAFM;AAGVC,EAAAA,IAAI,EAAEC,SAHI;AAIVC,EAAAA,IAAI,EAAEC,SAJI;AAKVC,EAAAA,IAAI,EAAEC,SALI;AAMVC,EAAAA,KAAK,EAAEC,UANG;AAOVC,EAAAA,KAAK,EAAEC,UAPG;AAQV,iBAAeC,eARL;AASVC,EAAAA,KAAK,EAAEC,UATG,EAAZ,C;;;;;;;;AAiBaC,I;;;;;;;;;;;;AAYGC,EAAAA,W,GAAd,uBAA4B;AAC1B,WAAOC,MAAM,CAACC,IAAP,CAAYrB,GAAZ,CAAP;AACD,G;;AAEMsB,EAAAA,M,GAAP,kBAAgB;AACd,sBAAwB,KAAKC,KAA7B,CAAQC,IAAR,eAAQA,IAAR,CAAcC,KAAd,eAAcA,KAAd;AACA,wBAAOC,eAAMC,aAAN,CAAoB3B,GAAG,CAACwB,IAAD,CAAvB,EAA+B,EAAEC,KAAK,EAALA,KAAF,EAA/B,CAAP;AACD,G,eAnBuBC,eAAME,S,sBAAnBV,I,CACGW,mB,GAAsB,U,CADzBX,I,CAGGY,S,GAAY,EACxBL,KAAK,EAAEM,mBAAUC,MADO,EAGxB;AACJ;AACA,KACIR,IAAI,EAAEO,mBAAUE,KAAV,CAAgBb,MAAM,CAACC,IAAP,CAAYrB,GAAZ,CAAhB,CANkB,E","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Warning, Ok, Gear, User, Wait, Clear, Money, HelpCircle, Kebab } from './svg';\n\nconst MAP = {\n warning: Warning,\n ok: Ok,\n gear: Gear,\n user: User,\n wait: Wait,\n clear: Clear,\n money: Money,\n 'help-circle': HelpCircle,\n kebab: Kebab,\n};\n\nexport interface IconProps {\n name: keyof typeof MAP;\n color?: React.CSSProperties['color'];\n}\n\nexport class Icon extends React.Component<IconProps> {\n public static __KONTUR_REACT_UI__ = 'Icon20px';\n\n public static propTypes = {\n color: PropTypes.string,\n\n /**\n * Icon id.\n */\n name: PropTypes.oneOf(Object.keys(MAP)),\n };\n\n public static getAllNames() {\n return Object.keys(MAP);\n }\n\n public render() {\n const { name, color } = this.props;\n return React.createElement(MAP[name], { color });\n }\n}\n"]}
1
+ {"version":3,"sources":["Icon.tsx"],"names":["MAP","warning","Warning","ok","Ok","gear","Gear","user","User","wait","Wait","clear","Clear","money","Money","HelpCircle","kebab","Kebab","Icon","getAllNames","Object","keys","render","props","name","color","React","createElement","Component","__KONTUR_REACT_UI__","displayName","propTypes","PropTypes","string","oneOf"],"mappings":"gPAAA;AACA;;AAEA;;AAEA,IAAMA,GAAG,GAAG;AACVC,EAAAA,OAAO,EAAEC,YADC;AAEVC,EAAAA,EAAE,EAAEC,OAFM;AAGVC,EAAAA,IAAI,EAAEC,SAHI;AAIVC,EAAAA,IAAI,EAAEC,SAJI;AAKVC,EAAAA,IAAI,EAAEC,SALI;AAMVC,EAAAA,KAAK,EAAEC,UANG;AAOVC,EAAAA,KAAK,EAAEC,UAPG;AAQV,iBAAeC,eARL;AASVC,EAAAA,KAAK,EAAEC,UATG,EAAZ,C;;;;;;;;AAiBaC,I;;;;;;;;;;;;;AAaGC,EAAAA,W,GAAd,uBAA4B;AAC1B,WAAOC,MAAM,CAACC,IAAP,CAAYrB,GAAZ,CAAP;AACD,G;;AAEMsB,EAAAA,M,GAAP,kBAAgB;AACd,sBAAwB,KAAKC,KAA7B,CAAQC,IAAR,eAAQA,IAAR,CAAcC,KAAd,eAAcA,KAAd;AACA,wBAAOC,eAAMC,aAAN,CAAoB3B,GAAG,CAACwB,IAAD,CAAvB,EAA+B,EAAEC,KAAK,EAALA,KAAF,EAA/B,CAAP;AACD,G,eApBuBC,eAAME,S,sBAAnBV,I,CACGW,mB,GAAsB,U,CADzBX,I,CAEGY,W,GAAc,U,CAFjBZ,I,CAIGa,S,GAAY,EACxBN,KAAK,EAAEO,mBAAUC,MADO,EAGxB;AACJ;AACA,KACIT,IAAI,EAAEQ,mBAAUE,KAAV,CAAgBd,MAAM,CAACC,IAAP,CAAYrB,GAAZ,CAAhB,CANkB,E","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Warning, Ok, Gear, User, Wait, Clear, Money, HelpCircle, Kebab } from './svg';\n\nconst MAP = {\n warning: Warning,\n ok: Ok,\n gear: Gear,\n user: User,\n wait: Wait,\n clear: Clear,\n money: Money,\n 'help-circle': HelpCircle,\n kebab: Kebab,\n};\n\nexport interface IconProps {\n name: keyof typeof MAP;\n color?: React.CSSProperties['color'];\n}\n\nexport class Icon extends React.Component<IconProps> {\n public static __KONTUR_REACT_UI__ = 'Icon20px';\n public static displayName = 'Icon20px';\n\n public static propTypes = {\n color: PropTypes.string,\n\n /**\n * Icon id.\n */\n name: PropTypes.oneOf(Object.keys(MAP)),\n };\n\n public static getAllNames() {\n return Object.keys(MAP);\n }\n\n public render() {\n const { name, color } = this.props;\n return React.createElement(MAP[name], { color });\n }\n}\n"]}
@@ -19,4 +19,6 @@ var reactUIFeatureFlagsDefault = {
19
19
 
20
20
 
21
21
  var ReactUIFeatureFlagsContext = /*#__PURE__*/_react.default.createContext(reactUIFeatureFlagsDefault);exports.ReactUIFeatureFlagsContext = ReactUIFeatureFlagsContext;
22
- ReactUIFeatureFlagsContext.displayName = 'ReactUIFeatureFlagsContext';
22
+
23
+ ReactUIFeatureFlagsContext.displayName = 'ReactUIFeatureFlagsContext';
24
+ ReactUIFeatureFlagsContext.__KONTUR_REACT_UI__ = 'ReactUIFeatureFlagsContext';
@@ -1 +1 @@
1
- {"version":3,"sources":["ReactUIFeatureFlagsContext.tsx"],"names":["reactUIFeatureFlagsDefault","tokenInputRemoveWhitespaceFromDefaultDelimiters","sidePageEnableFocusLockWhenBackgroundBlocked","spinnerLoaderRemoveDefaultCaption","menuItemsAtAnyLevel","textareaUseSafari17Workaround","comboBoxAllowValueChangeInEditingState","ReactUIFeatureFlagsContext","React","createContext","displayName"],"mappings":"6MAAA;;;;;;;;;;;AAWO,IAAMA,0BAA+C,GAAG;AAC7DC,EAAAA,+CAA+C,EAAE,KADY;AAE7DC,EAAAA,4CAA4C,EAAE,KAFe;AAG7DC,EAAAA,iCAAiC,EAAE,KAH0B;AAI7DC,EAAAA,mBAAmB,EAAE,KAJwC;AAK7DC,EAAAA,6BAA6B,EAAE,KAL8B;AAM7DC,EAAAA,sCAAsC,EAAE,KANqB,EAAxD,C;;;AASA,IAAMC,0BAA0B,gBAAGC,eAAMC,aAAN,CAAyCT,0BAAzC,CAAnC,C;AACPO,0BAA0B,CAACG,WAA3B,GAAyC,4BAAzC","sourcesContent":["import React from 'react';\n\nexport interface ReactUIFeatureFlags {\n tokenInputRemoveWhitespaceFromDefaultDelimiters?: boolean;\n sidePageEnableFocusLockWhenBackgroundBlocked?: boolean;\n spinnerLoaderRemoveDefaultCaption?: boolean;\n menuItemsAtAnyLevel?: boolean;\n textareaUseSafari17Workaround?: boolean;\n comboBoxAllowValueChangeInEditingState?: boolean;\n}\n\nexport const reactUIFeatureFlagsDefault: ReactUIFeatureFlags = {\n tokenInputRemoveWhitespaceFromDefaultDelimiters: false,\n sidePageEnableFocusLockWhenBackgroundBlocked: false,\n spinnerLoaderRemoveDefaultCaption: false,\n menuItemsAtAnyLevel: false,\n textareaUseSafari17Workaround: false,\n comboBoxAllowValueChangeInEditingState: false,\n};\n\nexport const ReactUIFeatureFlagsContext = React.createContext<ReactUIFeatureFlags>(reactUIFeatureFlagsDefault);\nReactUIFeatureFlagsContext.displayName = 'ReactUIFeatureFlagsContext';\n"]}
1
+ {"version":3,"sources":["ReactUIFeatureFlagsContext.tsx"],"names":["reactUIFeatureFlagsDefault","tokenInputRemoveWhitespaceFromDefaultDelimiters","sidePageEnableFocusLockWhenBackgroundBlocked","spinnerLoaderRemoveDefaultCaption","menuItemsAtAnyLevel","textareaUseSafari17Workaround","comboBoxAllowValueChangeInEditingState","ReactUIFeatureFlagsContext","React","createContext","displayName","__KONTUR_REACT_UI__"],"mappings":"6MAAA;;;;;;;;;;;AAWO,IAAMA,0BAA+C,GAAG;AAC7DC,EAAAA,+CAA+C,EAAE,KADY;AAE7DC,EAAAA,4CAA4C,EAAE,KAFe;AAG7DC,EAAAA,iCAAiC,EAAE,KAH0B;AAI7DC,EAAAA,mBAAmB,EAAE,KAJwC;AAK7DC,EAAAA,6BAA6B,EAAE,KAL8B;AAM7DC,EAAAA,sCAAsC,EAAE,KANqB,EAAxD,C;;;AASA,IAAMC,0BAA0B,gBAAGC,eAAMC,aAAN,CAAyCT,0BAAzC,CAAnC,C;;AAEPO,0BAA0B,CAACG,WAA3B,GAAyC,4BAAzC;AACAH,0BAA0B,CAACI,mBAA3B,GAAiD,4BAAjD","sourcesContent":["import React from 'react';\n\nexport interface ReactUIFeatureFlags {\n tokenInputRemoveWhitespaceFromDefaultDelimiters?: boolean;\n sidePageEnableFocusLockWhenBackgroundBlocked?: boolean;\n spinnerLoaderRemoveDefaultCaption?: boolean;\n menuItemsAtAnyLevel?: boolean;\n textareaUseSafari17Workaround?: boolean;\n comboBoxAllowValueChangeInEditingState?: boolean;\n}\n\nexport const reactUIFeatureFlagsDefault: ReactUIFeatureFlags = {\n tokenInputRemoveWhitespaceFromDefaultDelimiters: false,\n sidePageEnableFocusLockWhenBackgroundBlocked: false,\n spinnerLoaderRemoveDefaultCaption: false,\n menuItemsAtAnyLevel: false,\n textareaUseSafari17Workaround: false,\n comboBoxAllowValueChangeInEditingState: false,\n};\n\nexport const ReactUIFeatureFlagsContext = React.createContext<ReactUIFeatureFlags>(reactUIFeatureFlagsDefault);\n\nReactUIFeatureFlagsContext.displayName = 'ReactUIFeatureFlagsContext';\nReactUIFeatureFlagsContext.__KONTUR_REACT_UI__ = 'ReactUIFeatureFlagsContext';\n"]}
@@ -13,4 +13,5 @@ var LocaleContext = /*#__PURE__*/_react.default.createContext({
13
13
  langCode: _constants.defaultLangCode });exports.LocaleContext = LocaleContext;
14
14
 
15
15
 
16
- LocaleContext.displayName = 'LocaleContext';
16
+ LocaleContext.displayName = 'LocaleContext';
17
+ LocaleContext.__KONTUR_REACT_UI__ = 'LocaleContext';
@@ -1 +1 @@
1
- {"version":3,"sources":["LocaleContext.ts"],"names":["LocaleContext","React","createContext","locale","langCode","defaultLangCode","displayName"],"mappings":"2JAAA;;;AAGA;;;;;;;AAOO,IAAMA,aAAa,gBAAGC,eAAMC,aAAN,CAAwC;AACnEC,EAAAA,MAAM,EAAE,EAD2D;AAEnEC,EAAAA,QAAQ,EAAEC,0BAFyD,EAAxC,CAAtB,C;;;AAKPL,aAAa,CAACM,WAAd,GAA4B,eAA5B","sourcesContent":["import React from 'react';\n\nimport { LangCodes, LocaleControls } from './types';\nimport { defaultLangCode } from './constants';\n\nexport interface LocaleContextProps {\n locale?: LocaleControls;\n langCode?: LangCodes;\n}\n\nexport const LocaleContext = React.createContext<LocaleContextProps>({\n locale: {},\n langCode: defaultLangCode,\n});\n\nLocaleContext.displayName = 'LocaleContext';\n"]}
1
+ {"version":3,"sources":["LocaleContext.ts"],"names":["LocaleContext","React","createContext","locale","langCode","defaultLangCode","displayName","__KONTUR_REACT_UI__"],"mappings":"2JAAA;;;AAGA;;;;;;;AAOO,IAAMA,aAAa,gBAAGC,eAAMC,aAAN,CAAwC;AACnEC,EAAAA,MAAM,EAAE,EAD2D;AAEnEC,EAAAA,QAAQ,EAAEC,0BAFyD,EAAxC,CAAtB,C;;;AAKPL,aAAa,CAACM,WAAd,GAA4B,eAA5B;AACAN,aAAa,CAACO,mBAAd,GAAoC,eAApC","sourcesContent":["import React from 'react';\n\nimport { LangCodes, LocaleControls } from './types';\nimport { defaultLangCode } from './constants';\n\nexport interface LocaleContextProps {\n locale?: LocaleControls;\n langCode?: LangCodes;\n}\n\nexport const LocaleContext = React.createContext<LocaleContextProps>({\n locale: {},\n langCode: defaultLangCode,\n});\n\nLocaleContext.displayName = 'LocaleContext';\nLocaleContext.__KONTUR_REACT_UI__ = 'LocaleContext';\n"]}
@@ -14,6 +14,7 @@ interface ComponentWithDefaultRootNode {
14
14
  }
15
15
  interface ComponentWithKonturReactUI {
16
16
  __KONTUR_REACT_UI__?: string;
17
+ displayName?: string;
17
18
  }
18
19
  interface DecoratableClassComponent extends ComponentWithDefaultRootNode, ComponentWithKonturReactUI {
19
20
  new (...args: any[]): React.Component;
@@ -50,6 +51,7 @@ export declare function rootNode<T extends DecoratableClassComponent>(Component:
50
51
  UNSAFE_componentWillUpdate?(nextProps: Readonly<{}>, nextState: Readonly<{}>, nextContext: any): void;
51
52
  };
52
53
  __KONTUR_REACT_UI__: string | undefined;
54
+ displayName: string | undefined;
53
55
  defaultRootNode?: Element | null | undefined;
54
56
  } & T;
55
57
  export declare const isInstanceWithRootNode: (instance: unknown) => instance is InstanceWithRootNode;
@@ -26,6 +26,7 @@ var _getRootNode = require("./getRootNode"); /* eslint-disable react/display-nam
26
26
 
27
27
 
28
28
 
29
+
29
30
 
30
31
 
31
32
  function rootNode(Component) {var _class, _temp;
@@ -33,6 +34,8 @@ function rootNode(Component) {var _class, _temp;
33
34
 
34
35
 
35
36
 
37
+
38
+
36
39
  function rootNode() {var _this;
37
40
  _this = _Component.call(this, arguments.length <= 0 ? undefined : arguments[0]) || this;_this.rootNode = Component.defaultRootNode;_this.rootNodeEmitter = new _eventemitter.default();_this.
38
41
 
@@ -56,7 +59,7 @@ function rootNode(Component) {var _class, _temp;
56
59
  _this.rootNodeEmitter.removeListener('change', callback);
57
60
  } };
58
61
 
59
- };return _this;}return rootNode;}(Component), _class.__KONTUR_REACT_UI__ = Component.__KONTUR_REACT_UI__, _temp);
62
+ };return _this;}return rootNode;}(Component), _class.__KONTUR_REACT_UI__ = Component.__KONTUR_REACT_UI__, _class.displayName = Component.displayName, _temp);
60
63
 
61
64
 
62
65
  var nameDescriptor = Object.getOwnPropertyDescriptor(rootNode, 'name');
@@ -1 +1 @@
1
- {"version":3,"sources":["rootNodeDecorator.tsx"],"names":["rootNode","Component","defaultRootNode","rootNodeEmitter","EventEmitter","setRootNode","instance","emit","getRootNode","addRootNodeChangeListener","callback","addListener","remove","removeListener","__KONTUR_REACT_UI__","nameDescriptor","Object","getOwnPropertyDescriptor","configurable","defineProperty","value","name","isInstanceWithRootNode","Boolean","prototype","hasOwnProperty","call"],"mappings":";;AAEA;;;;AAIA,4C,CANA;;;;;;;;;;;;;;;;;;;;;;;;AA8BO,SAASA,QAAT,CAAuDC,SAAvD,EAAqE;AAC1E,MAAMD,QAAQ;;;;AAIZ,wBAAmC;AACjC,8FADiC,MAH5BA,QAG4B,GAHEC,SAAS,CAACC,eAGZ,OAD5BC,eAC4B,GADV,IAAIC,qBAAJ,EACU;;;AAI5BC,MAAAA,WAJ4B,GAId,UAACC,QAAD,EAA6C;AAChE,YAAMN,SAAQ,GAAG,8BAAYM,QAAZ,CAAjB;AACA,YAAIN,SAAQ,KAAK,MAAKA,QAAtB,EAAgC;AAC9B,gBAAKA,QAAL,GAAgBA,SAAhB;AACA,gBAAKG,eAAL,CAAqBI,IAArB,CAA0B,QAA1B,EAAoCP,SAApC;AACD;AACF,OAVkC;;AAY5BQ,MAAAA,WAZ4B,GAYd,YAAyB;AAC5C,eAAO,MAAKR,QAAZ;AACD,OAdkC;;AAgB5BS,MAAAA,yBAhB4B,GAgBA,UAACC,QAAD,EAAwE;AACzG,cAAKP,eAAL,CAAqBQ,WAArB,CAAiC,QAAjC,EAA2CD,QAA3C;AACA,eAAO;AACLE,UAAAA,MAAM,EAAE,kBAAM;AACZ,kBAAKT,eAAL,CAAqBU,cAArB,CAAoC,QAApC,EAA8CH,QAA9C;AACD,WAHI,EAAP;;AAKD,OAvBkC,cAElC,CANW,kBAAiBT,SAAjB,UAEEa,mBAFF,GAEwBb,SAAS,CAACa,mBAFlC,QAAd;;;AA8BA,MAAMC,cAAc,GAAGC,MAAM,CAACC,wBAAP,CAAgCjB,QAAhC,EAA0C,MAA1C,CAAvB;AACA,MAAI,CAACe,cAAD,IAAmBA,cAAc,CAACG,YAAtC,EAAoD;AAClDF,IAAAA,MAAM,CAACG,cAAP,CAAsBnB,QAAtB,EAAgC,MAAhC,EAAwC,EAAEoB,KAAK,EAAEnB,SAAS,CAACoB,IAAnB,EAAxC;AACD;;AAED,SAAOrB,QAAP;AACD;;AAEM,IAAMsB,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAChB,QAAD,EAAyD;AAC7F,SAAOiB,OAAO,CAACjB,QAAD,CAAP,IAAqBU,MAAM,CAACQ,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCpB,QAArC,EAA+C,aAA/C,CAA5B;AACD,CAFM,C","sourcesContent":["/* eslint-disable react/display-name */\nimport React from 'react';\nimport EventEmitter from 'eventemitter3';\n\nimport { Nullable } from '../../typings/utility-types';\n\nimport { getRootNode } from './getRootNode';\n\nexport type TSetRootNode = (e: Nullable<React.ReactNode>) => void;\n\nexport interface TRootNodeSubscription {\n remove: () => void;\n}\n\nexport interface InstanceWithRootNode {\n getRootNode: () => Nullable<Element>;\n addRootNodeChangeListener?: (callback: (node: Nullable<Element>) => void) => TRootNodeSubscription;\n}\n\ninterface ComponentWithDefaultRootNode {\n defaultRootNode?: Element | null;\n}\ninterface ComponentWithKonturReactUI {\n __KONTUR_REACT_UI__?: string;\n}\n\ninterface DecoratableClassComponent extends ComponentWithDefaultRootNode, ComponentWithKonturReactUI {\n new (...args: any[]): React.Component;\n}\n\nexport function rootNode<T extends DecoratableClassComponent>(Component: T) {\n const rootNode = class extends Component implements InstanceWithRootNode {\n public rootNode: Nullable<Element> = Component.defaultRootNode;\n public static __KONTUR_REACT_UI__ = Component.__KONTUR_REACT_UI__;\n public rootNodeEmitter = new EventEmitter();\n public constructor(...args: any[]) {\n super(args[0]);\n }\n\n public setRootNode = (instance: Nullable<React.ReactInstance>) => {\n const rootNode = getRootNode(instance);\n if (rootNode !== this.rootNode) {\n this.rootNode = rootNode;\n this.rootNodeEmitter.emit('change', rootNode);\n }\n };\n\n public getRootNode = (): Nullable<Element> => {\n return this.rootNode;\n };\n\n public addRootNodeChangeListener = (callback: (node: Nullable<Element>) => void): TRootNodeSubscription => {\n this.rootNodeEmitter.addListener('change', callback);\n return {\n remove: () => {\n this.rootNodeEmitter.removeListener('change', callback);\n },\n };\n };\n };\n\n const nameDescriptor = Object.getOwnPropertyDescriptor(rootNode, 'name');\n if (!nameDescriptor || nameDescriptor.configurable) {\n Object.defineProperty(rootNode, 'name', { value: Component.name });\n }\n\n return rootNode;\n}\n\nexport const isInstanceWithRootNode = (instance: unknown): instance is InstanceWithRootNode => {\n return Boolean(instance) && Object.prototype.hasOwnProperty.call(instance, 'getRootNode');\n};\n"]}
1
+ {"version":3,"sources":["rootNodeDecorator.tsx"],"names":["rootNode","Component","defaultRootNode","rootNodeEmitter","EventEmitter","setRootNode","instance","emit","getRootNode","addRootNodeChangeListener","callback","addListener","remove","removeListener","__KONTUR_REACT_UI__","displayName","nameDescriptor","Object","getOwnPropertyDescriptor","configurable","defineProperty","value","name","isInstanceWithRootNode","Boolean","prototype","hasOwnProperty","call"],"mappings":";;AAEA;;;;AAIA,4C,CANA;;;;;;;;;;;;;;;;;;;;;;;;;AA+BO,SAASA,QAAT,CAAuDC,SAAvD,EAAqE;AAC1E,MAAMD,QAAQ;;;;;;AAMZ,wBAAmC;AACjC,8FADiC,MAF5BA,QAE4B,GAFEC,SAAS,CAACC,eAEZ,OAD5BC,eAC4B,GADV,IAAIC,qBAAJ,EACU;;;AAI5BC,MAAAA,WAJ4B,GAId,UAACC,QAAD,EAA6C;AAChE,YAAMN,SAAQ,GAAG,8BAAYM,QAAZ,CAAjB;AACA,YAAIN,SAAQ,KAAK,MAAKA,QAAtB,EAAgC;AAC9B,gBAAKA,QAAL,GAAgBA,SAAhB;AACA,gBAAKG,eAAL,CAAqBI,IAArB,CAA0B,QAA1B,EAAoCP,SAApC;AACD;AACF,OAVkC;;AAY5BQ,MAAAA,WAZ4B,GAYd,YAAyB;AAC5C,eAAO,MAAKR,QAAZ;AACD,OAdkC;;AAgB5BS,MAAAA,yBAhB4B,GAgBA,UAACC,QAAD,EAAwE;AACzG,cAAKP,eAAL,CAAqBQ,WAArB,CAAiC,QAAjC,EAA2CD,QAA3C;AACA,eAAO;AACLE,UAAAA,MAAM,EAAE,kBAAM;AACZ,kBAAKT,eAAL,CAAqBU,cAArB,CAAoC,QAApC,EAA8CH,QAA9C;AACD,WAHI,EAAP;;AAKD,OAvBkC,cAElC,CARW,kBAAiBT,SAAjB,UACEa,mBADF,GACwBb,SAAS,CAACa,mBADlC,SAEEC,WAFF,GAEgBd,SAAS,CAACc,WAF1B,QAAd;;;AAgCA,MAAMC,cAAc,GAAGC,MAAM,CAACC,wBAAP,CAAgClB,QAAhC,EAA0C,MAA1C,CAAvB;AACA,MAAI,CAACgB,cAAD,IAAmBA,cAAc,CAACG,YAAtC,EAAoD;AAClDF,IAAAA,MAAM,CAACG,cAAP,CAAsBpB,QAAtB,EAAgC,MAAhC,EAAwC,EAAEqB,KAAK,EAAEpB,SAAS,CAACqB,IAAnB,EAAxC;AACD;;AAED,SAAOtB,QAAP;AACD;;AAEM,IAAMuB,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACjB,QAAD,EAAyD;AAC7F,SAAOkB,OAAO,CAAClB,QAAD,CAAP,IAAqBW,MAAM,CAACQ,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCrB,QAArC,EAA+C,aAA/C,CAA5B;AACD,CAFM,C","sourcesContent":["/* eslint-disable react/display-name */\nimport React from 'react';\nimport EventEmitter from 'eventemitter3';\n\nimport { Nullable } from '../../typings/utility-types';\n\nimport { getRootNode } from './getRootNode';\n\nexport type TSetRootNode = (e: Nullable<React.ReactNode>) => void;\n\nexport interface TRootNodeSubscription {\n remove: () => void;\n}\n\nexport interface InstanceWithRootNode {\n getRootNode: () => Nullable<Element>;\n addRootNodeChangeListener?: (callback: (node: Nullable<Element>) => void) => TRootNodeSubscription;\n}\n\ninterface ComponentWithDefaultRootNode {\n defaultRootNode?: Element | null;\n}\ninterface ComponentWithKonturReactUI {\n __KONTUR_REACT_UI__?: string;\n displayName?: string;\n}\n\ninterface DecoratableClassComponent extends ComponentWithDefaultRootNode, ComponentWithKonturReactUI {\n new (...args: any[]): React.Component;\n}\n\nexport function rootNode<T extends DecoratableClassComponent>(Component: T) {\n const rootNode = class extends Component implements InstanceWithRootNode {\n public static __KONTUR_REACT_UI__ = Component.__KONTUR_REACT_UI__;\n public static displayName = Component.displayName;\n\n public rootNode: Nullable<Element> = Component.defaultRootNode;\n public rootNodeEmitter = new EventEmitter();\n public constructor(...args: any[]) {\n super(args[0]);\n }\n\n public setRootNode = (instance: Nullable<React.ReactInstance>) => {\n const rootNode = getRootNode(instance);\n if (rootNode !== this.rootNode) {\n this.rootNode = rootNode;\n this.rootNodeEmitter.emit('change', rootNode);\n }\n };\n\n public getRootNode = (): Nullable<Element> => {\n return this.rootNode;\n };\n\n public addRootNodeChangeListener = (callback: (node: Nullable<Element>) => void): TRootNodeSubscription => {\n this.rootNodeEmitter.addListener('change', callback);\n return {\n remove: () => {\n this.rootNodeEmitter.removeListener('change', callback);\n },\n };\n };\n };\n\n const nameDescriptor = Object.getOwnPropertyDescriptor(rootNode, 'name');\n if (!nameDescriptor || nameDescriptor.configurable) {\n Object.defineProperty(rootNode, 'name', { value: Component.name });\n }\n\n return rootNode;\n}\n\nexport const isInstanceWithRootNode = (instance: unknown): instance is InstanceWithRootNode => {\n return Boolean(instance) && Object.prototype.hasOwnProperty.call(instance, 'getRootNode');\n};\n"]}
@@ -4,4 +4,5 @@ var _DefaultTheme = require("./themes/DefaultTheme");
4
4
 
5
5
  var ThemeContext = /*#__PURE__*/_react.default.createContext(_DefaultTheme.DEFAULT_THEME);exports.ThemeContext = ThemeContext;
6
6
 
7
- ThemeContext.displayName = 'ThemeContext';
7
+ ThemeContext.displayName = 'ThemeContext';
8
+ ThemeContext.__KONTUR_REACT_UI__ = 'ThemeContext';
@@ -1 +1 @@
1
- {"version":3,"sources":["ThemeContext.ts"],"names":["ThemeContext","React","createContext","DEFAULT_THEME","displayName"],"mappings":"0JAAA;;AAEA;;AAEO,IAAMA,YAAY,gBAAGC,eAAMC,aAAN,CAAoBC,2BAApB,CAArB,C;;AAEPH,YAAY,CAACI,WAAb,GAA2B,cAA3B","sourcesContent":["import React from 'react';\n\nimport { DEFAULT_THEME } from './themes/DefaultTheme';\n\nexport const ThemeContext = React.createContext(DEFAULT_THEME);\n\nThemeContext.displayName = 'ThemeContext';\n"]}
1
+ {"version":3,"sources":["ThemeContext.ts"],"names":["ThemeContext","React","createContext","DEFAULT_THEME","displayName","__KONTUR_REACT_UI__"],"mappings":"0JAAA;;AAEA;;AAEO,IAAMA,YAAY,gBAAGC,eAAMC,aAAN,CAAoBC,2BAApB,CAArB,C;;AAEPH,YAAY,CAACI,WAAb,GAA2B,cAA3B;AACAJ,YAAY,CAACK,mBAAb,GAAmC,cAAnC","sourcesContent":["import React from 'react';\n\nimport { DEFAULT_THEME } from './themes/DefaultTheme';\n\nexport const ThemeContext = React.createContext(DEFAULT_THEME);\n\nThemeContext.displayName = 'ThemeContext';\nThemeContext.__KONTUR_REACT_UI__ = 'ThemeContext';\n"]}
@@ -0,0 +1 @@
1
+ export declare const toKebabCase: (value: string) => string;
@@ -0,0 +1,10 @@
1
+ "use strict";exports.__esModule = true;exports.toKebabCase = void 0;var toKebabCase = function toKebabCase(value) {
2
+ if (!value) {
3
+ return '';
4
+ }
5
+
6
+ return value.
7
+ split(/\.?(?=[A-Z])/).
8
+ join('-').
9
+ toLowerCase();
10
+ };exports.toKebabCase = toKebabCase;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["toKebabCase.ts"],"names":["toKebabCase","value","split","join","toLowerCase"],"mappings":"oEAAO,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAACC,KAAD,EAAmB;AAC5C,MAAI,CAACA,KAAL,EAAY;AACV,WAAO,EAAP;AACD;;AAED,SAAOA,KAAK;AACTC,EAAAA,KADI,CACE,cADF;AAEJC,EAAAA,IAFI,CAEC,GAFD;AAGJC,EAAAA,WAHI,EAAP;AAID,CATM,C","sourcesContent":["export const toKebabCase = (value: string) => {\n if (!value) {\n return '';\n }\n\n return value\n .split(/\\.?(?=[A-Z])/)\n .join('-')\n .toLowerCase();\n};\n"]}
@@ -0,0 +1,12 @@
1
+ export * from 'react';
2
+
3
+ interface KonturComponent {
4
+ __KONTUR_REACT_UI__?: string;
5
+ }
6
+
7
+ declare module 'react' {
8
+ interface Context extends KonturComponent {}
9
+ interface ForwardRefExoticComponent extends KonturComponent {}
10
+ interface FunctionComponent extends KonturComponent {}
11
+ interface ComponentClass extends KonturComponent {}
12
+ }
@@ -470,7 +470,7 @@ var Autocomplete = (_dec = locale('Autocomplete', AutocompleteLocaleHelper), res
470
470
  };
471
471
 
472
472
  return Autocomplete;
473
- }(React.Component), _class2.__KONTUR_REACT_UI__ = 'Autocomplete', _class2.propTypes = {
473
+ }(React.Component), _class2.__KONTUR_REACT_UI__ = 'Autocomplete', _class2.displayName = 'Autocomplete', _class2.propTypes = {
474
474
  /**
475
475
  * Функция для отрисовки элемента в выпадающем списке. Единственный аргумент
476
476
  * — *item*.
@@ -1 +1 @@
1
- {"version":3,"sources":["Autocomplete.tsx"],"names":["React","PropTypes","MenuMessage","locale","getRandomID","isNullable","ThemeContext","isKeyArrowDown","isKeyArrowUp","isKeyEnter","isKeyEscape","Input","DropdownContainer","Menu","MenuItem","RenderLayer","createPropsGetter","fixClickFocusIE","CommonWrapper","MobilePopup","responsiveLayout","getRootNode","rootNode","getDOMRect","styles","AutocompleteLocaleHelper","getAutocompleteTheme","match","pattern","items","Promise","resolve","lowerCasedPattern","toLowerCase","itemsMatchingPattern","filter","item","includes","renderItem","AutocompleteDataTids","root","menu","AutocompleteIds","Autocomplete","state","selected","focused","isMobileOpened","opened","input","menuId","requestId","getProps","defaultProps","renderMain","props","isMobile","isMobileLayout","onValueChange","onKeyDown","onFocus","onBlur","_renderItem","disablePortal","hasShadow","menuAlign","menuMaxHeight","preventWindowScroll","source","width","theme","inputWidth","mobileMenuHeaderText","ariaLabel","rest","inputProps","handleValueChange","handleKeyDown","handleFocus","ref","refInput","handleBlur","handleClickOutside","refRootSpan","renderMobileMenu","renderMenu","autoFocus","onKeyPress","handleKeyPressMobile","value","placeholder","enterValue","handleCloseMobile","refMobilePopup","refMenu","mobilePopup","close","length","getItems","renderHints","map","i","handleMenuItemClick","size","fireChange","setState","e","key","event","blur","preventDefault","up","down","enter","getAnchor","el","span","rootSpan","focus","componentDidUpdate","prevProps","updateItems","render","setRootNode","notFound","updateValue","menuWidth","menuPos","menuProps","maxHeight","handleItemClick","index","button","choose","trim","promise","expectingId","then","Component","__KONTUR_REACT_UI__","propTypes","func","oneOfType","array"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes, KeyboardEvent } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { MenuMessage } from '../../internal/MenuMessage';\nimport { locale } from '../../lib/locale/decorators';\nimport { getRandomID, isNullable } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { Input, InputProps } from '../Input';\nimport { DropdownContainer, DropdownContainerProps } from '../../internal/DropdownContainer';\nimport { Menu } from '../../internal/Menu';\nimport { MenuItem } from '../MenuItem';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './Autocomplete.styles';\nimport { AutocompleteLocale, AutocompleteLocaleHelper } from './locale';\nimport { getAutocompleteTheme } from './getAutocompleteTheme';\n\nfunction match(pattern: string, items: string[]) {\n if (!pattern || !items) {\n return Promise.resolve([]);\n }\n\n const lowerCasedPattern = pattern.toLowerCase();\n const itemsMatchingPattern = items.filter((item) => {\n return item.toLowerCase().includes(lowerCasedPattern);\n });\n\n return Promise.resolve(itemsMatchingPattern);\n}\n\nfunction renderItem(item: any) {\n return item;\n}\n\nexport interface AutocompleteProps\n extends CommonProps,\n Pick<DropdownContainerProps, 'menuPos'>,\n Pick<AriaAttributes, 'aria-label'>,\n Override<\n InputProps,\n {\n /** Функция отрисовки элемента меню */\n renderItem?: (item: string) => React.ReactNode;\n /** Промис, резолвящий элементы меню */\n source?: string[] | ((patter: string) => Promise<string[]>);\n /** Отключает использование портала */\n disablePortal?: boolean;\n /** Отрисовка тени у выпадающего меню */\n hasShadow?: boolean;\n /** Выравнивание выпадающего меню */\n menuAlign?: 'left' | 'right';\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Отключить скролл окна, когда меню открыто */\n preventWindowScroll?: boolean;\n /** Вызывается при изменении `value` */\n onValueChange: (value: string) => void;\n /** onBlur */\n onBlur?: () => void;\n /** Размер инпута */\n size?: SizeProp;\n /** value */\n value: string;\n /**\n * Текст заголовка выпадающего меню в мобильной версии\n */\n mobileMenuHeaderText?: string;\n }\n > {}\n\nexport interface AutocompleteState {\n items: Nullable<string[]>;\n selected: number;\n focused: boolean;\n isMobileOpened: boolean;\n}\n\nexport const AutocompleteDataTids = {\n root: 'Autocomplete__root',\n menu: 'Autocomplete__menu',\n} as const;\n\nexport const AutocompleteIds = {\n menu: AutocompleteDataTids.menu,\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n AutocompleteProps,\n 'renderItem' | 'size' | 'disablePortal' | 'hasShadow' | 'menuMaxHeight' | 'menuAlign' | 'preventWindowScroll'\n >\n>;\n\n/**\n * Стандартный инпут с подсказками.\n *\n * Все свойства передаются во внутренний *Input*.\n */\n@responsiveLayout\n@rootNode\n@locale('Autocomplete', AutocompleteLocaleHelper)\nexport class Autocomplete extends React.Component<AutocompleteProps, AutocompleteState> {\n public static __KONTUR_REACT_UI__ = 'Autocomplete';\n\n public static propTypes = {\n /**\n * Функция для отрисовки элемента в выпадающем списке. Единственный аргумент\n * — *item*.\n */\n renderItem: PropTypes.func,\n\n /**\n * Если передан массив, то совпадения ищутся по этому массиву.\n *\n * Если передается функция, то она должна возвращать thenable, который\n * резолвится уже отфильтрованным массивом. Возвращенный thenable может\n * иметь метод cancel, который будет вызван при отмене поиска (пользователь\n * изменил строку поиска, автокомплит потерял фокус).\n * ```\n * function(pattern) {\n * return service.findAll(pattern);\n * }\n * ```\n */\n source: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n };\n\n public static defaultProps: DefaultProps = {\n renderItem,\n size: 'small',\n disablePortal: false,\n hasShadow: true,\n menuMaxHeight: 300,\n menuAlign: 'left',\n preventWindowScroll: true,\n };\n\n public state: AutocompleteState = {\n items: null,\n selected: -1,\n focused: false,\n isMobileOpened: false,\n };\n\n private theme!: Theme;\n private readonly locale!: AutocompleteLocale;\n private isMobileLayout!: boolean;\n private opened = false;\n private input: Nullable<Input> = null;\n private menu: Nullable<Menu>;\n private menuId = AutocompleteIds.menu + getRandomID();\n private rootSpan: Nullable<HTMLSpanElement>;\n private mobilePopup: Nullable<MobilePopup>;\n\n private requestId = 0;\n\n private getProps = createPropsGetter(Autocomplete.defaultProps);\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.input) {\n this.input.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n this.handleBlur();\n }\n\n public componentDidUpdate(prevProps: AutocompleteProps) {\n if (prevProps.value !== this.props.value) {\n this.updateItems(this.props.value || '');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getAutocompleteTheme(theme);\n return (\n <ThemeContext.Provider value={this.theme}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n public renderMain = (props: CommonWrapperRestProps<AutocompleteProps>) => {\n const { focused } = this.state;\n\n const isMobile = this.isMobileLayout;\n\n const {\n onValueChange,\n onKeyDown,\n onFocus,\n onBlur,\n renderItem: _renderItem,\n disablePortal,\n hasShadow,\n menuAlign,\n menuMaxHeight,\n preventWindowScroll,\n source,\n width = this.theme.inputWidth,\n mobileMenuHeaderText,\n 'aria-label': ariaLabel,\n ...rest\n } = props;\n\n const inputProps = {\n ...rest,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n ref: this.refInput,\n };\n\n return (\n <RenderLayer onFocusOutside={this.handleBlur} onClickOutside={this.handleClickOutside} active={focused}>\n <span\n data-tid={AutocompleteDataTids.root}\n className={styles.root(this.theme)}\n style={{ width }}\n ref={this.refRootSpan}\n >\n <Input aria-label={ariaLabel} aria-controls={this.menuId} {...inputProps} />\n {isMobile ? this.renderMobileMenu() : this.renderMenu()}\n </span>\n </RenderLayer>\n );\n };\n\n private renderHints(): React.ReactNode {\n const items = this.state.items;\n\n if (!this.props.value) {\n return <MenuMessage>{this.locale.enterValue}</MenuMessage>;\n }\n\n if (items?.length === 0 && this.props.value) {\n return <MenuMessage>{this.locale.notFound}</MenuMessage>;\n }\n\n if (isNullable(items) && this.props.value) {\n return <MenuMessage>{this.locale.updateValue}</MenuMessage>;\n }\n\n return null;\n }\n\n private renderMenu(): React.ReactNode {\n const items = this.state.items;\n const { menuMaxHeight, hasShadow, menuWidth, width, preventWindowScroll, menuAlign, disablePortal, menuPos } =\n this.getProps();\n const menuProps = {\n ref: this.refMenu,\n maxHeight: menuMaxHeight,\n hasShadow,\n width: menuWidth || (width && getDOMRect(this.rootSpan).width),\n preventWindowScroll,\n };\n if (!items || items.length === 0) {\n return null;\n }\n\n return (\n <DropdownContainer\n id={this.menuId}\n data-tid={AutocompleteDataTids.menu}\n getParent={this.getAnchor}\n align={menuAlign}\n disablePortal={disablePortal}\n menuPos={menuPos}\n >\n <Menu {...menuProps}>{this.getItems()}</Menu>\n </DropdownContainer>\n );\n }\n\n private renderMobileMenu = () => {\n const inputProps: InputProps = {\n autoFocus: true,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyPress: this.handleKeyPressMobile,\n value: this.props.value,\n placeholder: this.locale.enterValue,\n };\n\n const items = this.state.items;\n\n return (\n <MobilePopup\n id={this.menuId}\n headerChildComponent={<Input {...inputProps} />}\n caption={this.props.mobileMenuHeaderText}\n opened={this.state.isMobileOpened}\n onCloseRequest={this.handleCloseMobile}\n ref={this.refMobilePopup}\n >\n <Menu ref={this.refMenu} onItemClick={this.mobilePopup?.close} disableScrollContainer maxHeight={'auto'}>\n {items && items.length > 0 && this.getItems()}\n {this.renderHints()}\n </Menu>\n </MobilePopup>\n );\n };\n\n private getItems = () => {\n const items = this.state.items;\n const isMobile = this.isMobileLayout;\n\n return items\n ? items.map((item, i) => {\n return (\n <MenuItem onClick={this.handleMenuItemClick(i)} key={i} isMobile={isMobile} size={this.props.size}>\n {this.getProps().renderItem(item)}\n </MenuItem>\n );\n })\n : null;\n };\n\n private handleValueChange = (value: string) => {\n this.opened = true;\n\n this.fireChange(value);\n };\n\n private handleCloseMobile = () => {\n this.setState({\n isMobileOpened: false,\n });\n\n this.handleBlur();\n };\n\n private handleKeyPressMobile = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n this.mobilePopup?.close();\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.isMobileLayout) {\n this.setState({ isMobileOpened: true });\n }\n\n if (this.state.focused) {\n return;\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = () => {\n if (!this.state.focused) {\n return;\n }\n\n this.opened = false;\n this.setState({ items: null, focused: false });\n\n if (this.input) {\n this.input.blur();\n }\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n switch (true) {\n case isKeyEscape(e):\n e.preventDefault();\n this.setState({ items: null });\n return;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n return;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n return;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n return;\n }\n };\n\n private handleMenuItemClick(i: number) {\n return (event: React.SyntheticEvent<HTMLElement>) => this.handleItemClick(event, i);\n }\n\n private getAnchor = () => {\n return getRootNode(this);\n };\n\n private handleItemClick(event: React.SyntheticEvent<HTMLElement> | React.MouseEvent<HTMLElement>, index: number) {\n if ((event as React.MouseEvent<HTMLElement>).button) {\n return;\n }\n\n event.preventDefault();\n this.choose(index);\n }\n\n private choose(index: number) {\n if (!this.state.items) {\n return;\n }\n\n const value = this.state.items[index];\n this.opened = false;\n this.setState({\n selected: -1,\n items: null,\n });\n\n this.fireChange(value);\n this.blur();\n }\n\n private updateItems(value: string) {\n if (!this.opened) {\n return;\n }\n const pattern = value.trim();\n const source = this.props.source;\n\n if (!source) {\n return;\n }\n\n let promise;\n this.requestId += 1;\n const expectingId = this.requestId;\n if (typeof source === 'function') {\n promise = source(pattern);\n } else {\n promise = match(pattern, source);\n }\n promise.then((items) => {\n if (this.opened && expectingId === this.requestId) {\n this.setState({\n items,\n selected: -1,\n });\n }\n });\n }\n\n private fireChange(value: string) {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n }\n\n private refInput = (el: Input | null) => {\n this.input = el;\n };\n\n private refMenu = (menu: Menu | null) => {\n this.menu = menu;\n };\n\n private refRootSpan = (span: HTMLSpanElement) => {\n this.rootSpan = span;\n };\n\n private refMobilePopup = (mobilePopup: MobilePopup | null) => {\n this.mobilePopup = mobilePopup;\n };\n}\n"]}
1
+ {"version":3,"sources":["Autocomplete.tsx"],"names":["React","PropTypes","MenuMessage","locale","getRandomID","isNullable","ThemeContext","isKeyArrowDown","isKeyArrowUp","isKeyEnter","isKeyEscape","Input","DropdownContainer","Menu","MenuItem","RenderLayer","createPropsGetter","fixClickFocusIE","CommonWrapper","MobilePopup","responsiveLayout","getRootNode","rootNode","getDOMRect","styles","AutocompleteLocaleHelper","getAutocompleteTheme","match","pattern","items","Promise","resolve","lowerCasedPattern","toLowerCase","itemsMatchingPattern","filter","item","includes","renderItem","AutocompleteDataTids","root","menu","AutocompleteIds","Autocomplete","state","selected","focused","isMobileOpened","opened","input","menuId","requestId","getProps","defaultProps","renderMain","props","isMobile","isMobileLayout","onValueChange","onKeyDown","onFocus","onBlur","_renderItem","disablePortal","hasShadow","menuAlign","menuMaxHeight","preventWindowScroll","source","width","theme","inputWidth","mobileMenuHeaderText","ariaLabel","rest","inputProps","handleValueChange","handleKeyDown","handleFocus","ref","refInput","handleBlur","handleClickOutside","refRootSpan","renderMobileMenu","renderMenu","autoFocus","onKeyPress","handleKeyPressMobile","value","placeholder","enterValue","handleCloseMobile","refMobilePopup","refMenu","mobilePopup","close","length","getItems","renderHints","map","i","handleMenuItemClick","size","fireChange","setState","e","key","event","blur","preventDefault","up","down","enter","getAnchor","el","span","rootSpan","focus","componentDidUpdate","prevProps","updateItems","render","setRootNode","notFound","updateValue","menuWidth","menuPos","menuProps","maxHeight","handleItemClick","index","button","choose","trim","promise","expectingId","then","Component","__KONTUR_REACT_UI__","displayName","propTypes","func","oneOfType","array"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes, KeyboardEvent } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { MenuMessage } from '../../internal/MenuMessage';\nimport { locale } from '../../lib/locale/decorators';\nimport { getRandomID, isNullable } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { Input, InputProps } from '../Input';\nimport { DropdownContainer, DropdownContainerProps } from '../../internal/DropdownContainer';\nimport { Menu } from '../../internal/Menu';\nimport { MenuItem } from '../MenuItem';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './Autocomplete.styles';\nimport { AutocompleteLocale, AutocompleteLocaleHelper } from './locale';\nimport { getAutocompleteTheme } from './getAutocompleteTheme';\n\nfunction match(pattern: string, items: string[]) {\n if (!pattern || !items) {\n return Promise.resolve([]);\n }\n\n const lowerCasedPattern = pattern.toLowerCase();\n const itemsMatchingPattern = items.filter((item) => {\n return item.toLowerCase().includes(lowerCasedPattern);\n });\n\n return Promise.resolve(itemsMatchingPattern);\n}\n\nfunction renderItem(item: any) {\n return item;\n}\n\nexport interface AutocompleteProps\n extends CommonProps,\n Pick<DropdownContainerProps, 'menuPos'>,\n Pick<AriaAttributes, 'aria-label'>,\n Override<\n InputProps,\n {\n /** Функция отрисовки элемента меню */\n renderItem?: (item: string) => React.ReactNode;\n /** Промис, резолвящий элементы меню */\n source?: string[] | ((patter: string) => Promise<string[]>);\n /** Отключает использование портала */\n disablePortal?: boolean;\n /** Отрисовка тени у выпадающего меню */\n hasShadow?: boolean;\n /** Выравнивание выпадающего меню */\n menuAlign?: 'left' | 'right';\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Отключить скролл окна, когда меню открыто */\n preventWindowScroll?: boolean;\n /** Вызывается при изменении `value` */\n onValueChange: (value: string) => void;\n /** onBlur */\n onBlur?: () => void;\n /** Размер инпута */\n size?: SizeProp;\n /** value */\n value: string;\n /**\n * Текст заголовка выпадающего меню в мобильной версии\n */\n mobileMenuHeaderText?: string;\n }\n > {}\n\nexport interface AutocompleteState {\n items: Nullable<string[]>;\n selected: number;\n focused: boolean;\n isMobileOpened: boolean;\n}\n\nexport const AutocompleteDataTids = {\n root: 'Autocomplete__root',\n menu: 'Autocomplete__menu',\n} as const;\n\nexport const AutocompleteIds = {\n menu: AutocompleteDataTids.menu,\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n AutocompleteProps,\n 'renderItem' | 'size' | 'disablePortal' | 'hasShadow' | 'menuMaxHeight' | 'menuAlign' | 'preventWindowScroll'\n >\n>;\n\n/**\n * Стандартный инпут с подсказками.\n *\n * Все свойства передаются во внутренний *Input*.\n */\n@responsiveLayout\n@rootNode\n@locale('Autocomplete', AutocompleteLocaleHelper)\nexport class Autocomplete extends React.Component<AutocompleteProps, AutocompleteState> {\n public static __KONTUR_REACT_UI__ = 'Autocomplete';\n public static displayName = 'Autocomplete';\n\n public static propTypes = {\n /**\n * Функция для отрисовки элемента в выпадающем списке. Единственный аргумент\n * — *item*.\n */\n renderItem: PropTypes.func,\n\n /**\n * Если передан массив, то совпадения ищутся по этому массиву.\n *\n * Если передается функция, то она должна возвращать thenable, который\n * резолвится уже отфильтрованным массивом. Возвращенный thenable может\n * иметь метод cancel, который будет вызван при отмене поиска (пользователь\n * изменил строку поиска, автокомплит потерял фокус).\n * ```\n * function(pattern) {\n * return service.findAll(pattern);\n * }\n * ```\n */\n source: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n };\n\n public static defaultProps: DefaultProps = {\n renderItem,\n size: 'small',\n disablePortal: false,\n hasShadow: true,\n menuMaxHeight: 300,\n menuAlign: 'left',\n preventWindowScroll: true,\n };\n\n public state: AutocompleteState = {\n items: null,\n selected: -1,\n focused: false,\n isMobileOpened: false,\n };\n\n private theme!: Theme;\n private readonly locale!: AutocompleteLocale;\n private isMobileLayout!: boolean;\n private opened = false;\n private input: Nullable<Input> = null;\n private menu: Nullable<Menu>;\n private menuId = AutocompleteIds.menu + getRandomID();\n private rootSpan: Nullable<HTMLSpanElement>;\n private mobilePopup: Nullable<MobilePopup>;\n\n private requestId = 0;\n\n private getProps = createPropsGetter(Autocomplete.defaultProps);\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.input) {\n this.input.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n this.handleBlur();\n }\n\n public componentDidUpdate(prevProps: AutocompleteProps) {\n if (prevProps.value !== this.props.value) {\n this.updateItems(this.props.value || '');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getAutocompleteTheme(theme);\n return (\n <ThemeContext.Provider value={this.theme}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n public renderMain = (props: CommonWrapperRestProps<AutocompleteProps>) => {\n const { focused } = this.state;\n\n const isMobile = this.isMobileLayout;\n\n const {\n onValueChange,\n onKeyDown,\n onFocus,\n onBlur,\n renderItem: _renderItem,\n disablePortal,\n hasShadow,\n menuAlign,\n menuMaxHeight,\n preventWindowScroll,\n source,\n width = this.theme.inputWidth,\n mobileMenuHeaderText,\n 'aria-label': ariaLabel,\n ...rest\n } = props;\n\n const inputProps = {\n ...rest,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n ref: this.refInput,\n };\n\n return (\n <RenderLayer onFocusOutside={this.handleBlur} onClickOutside={this.handleClickOutside} active={focused}>\n <span\n data-tid={AutocompleteDataTids.root}\n className={styles.root(this.theme)}\n style={{ width }}\n ref={this.refRootSpan}\n >\n <Input aria-label={ariaLabel} aria-controls={this.menuId} {...inputProps} />\n {isMobile ? this.renderMobileMenu() : this.renderMenu()}\n </span>\n </RenderLayer>\n );\n };\n\n private renderHints(): React.ReactNode {\n const items = this.state.items;\n\n if (!this.props.value) {\n return <MenuMessage>{this.locale.enterValue}</MenuMessage>;\n }\n\n if (items?.length === 0 && this.props.value) {\n return <MenuMessage>{this.locale.notFound}</MenuMessage>;\n }\n\n if (isNullable(items) && this.props.value) {\n return <MenuMessage>{this.locale.updateValue}</MenuMessage>;\n }\n\n return null;\n }\n\n private renderMenu(): React.ReactNode {\n const items = this.state.items;\n const { menuMaxHeight, hasShadow, menuWidth, width, preventWindowScroll, menuAlign, disablePortal, menuPos } =\n this.getProps();\n const menuProps = {\n ref: this.refMenu,\n maxHeight: menuMaxHeight,\n hasShadow,\n width: menuWidth || (width && getDOMRect(this.rootSpan).width),\n preventWindowScroll,\n };\n if (!items || items.length === 0) {\n return null;\n }\n\n return (\n <DropdownContainer\n id={this.menuId}\n data-tid={AutocompleteDataTids.menu}\n getParent={this.getAnchor}\n align={menuAlign}\n disablePortal={disablePortal}\n menuPos={menuPos}\n >\n <Menu {...menuProps}>{this.getItems()}</Menu>\n </DropdownContainer>\n );\n }\n\n private renderMobileMenu = () => {\n const inputProps: InputProps = {\n autoFocus: true,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyPress: this.handleKeyPressMobile,\n value: this.props.value,\n placeholder: this.locale.enterValue,\n };\n\n const items = this.state.items;\n\n return (\n <MobilePopup\n id={this.menuId}\n headerChildComponent={<Input {...inputProps} />}\n caption={this.props.mobileMenuHeaderText}\n opened={this.state.isMobileOpened}\n onCloseRequest={this.handleCloseMobile}\n ref={this.refMobilePopup}\n >\n <Menu ref={this.refMenu} onItemClick={this.mobilePopup?.close} disableScrollContainer maxHeight={'auto'}>\n {items && items.length > 0 && this.getItems()}\n {this.renderHints()}\n </Menu>\n </MobilePopup>\n );\n };\n\n private getItems = () => {\n const items = this.state.items;\n const isMobile = this.isMobileLayout;\n\n return items\n ? items.map((item, i) => {\n return (\n <MenuItem onClick={this.handleMenuItemClick(i)} key={i} isMobile={isMobile} size={this.props.size}>\n {this.getProps().renderItem(item)}\n </MenuItem>\n );\n })\n : null;\n };\n\n private handleValueChange = (value: string) => {\n this.opened = true;\n\n this.fireChange(value);\n };\n\n private handleCloseMobile = () => {\n this.setState({\n isMobileOpened: false,\n });\n\n this.handleBlur();\n };\n\n private handleKeyPressMobile = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n this.mobilePopup?.close();\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.isMobileLayout) {\n this.setState({ isMobileOpened: true });\n }\n\n if (this.state.focused) {\n return;\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = () => {\n if (!this.state.focused) {\n return;\n }\n\n this.opened = false;\n this.setState({ items: null, focused: false });\n\n if (this.input) {\n this.input.blur();\n }\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n switch (true) {\n case isKeyEscape(e):\n e.preventDefault();\n this.setState({ items: null });\n return;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n return;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n return;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n return;\n }\n };\n\n private handleMenuItemClick(i: number) {\n return (event: React.SyntheticEvent<HTMLElement>) => this.handleItemClick(event, i);\n }\n\n private getAnchor = () => {\n return getRootNode(this);\n };\n\n private handleItemClick(event: React.SyntheticEvent<HTMLElement> | React.MouseEvent<HTMLElement>, index: number) {\n if ((event as React.MouseEvent<HTMLElement>).button) {\n return;\n }\n\n event.preventDefault();\n this.choose(index);\n }\n\n private choose(index: number) {\n if (!this.state.items) {\n return;\n }\n\n const value = this.state.items[index];\n this.opened = false;\n this.setState({\n selected: -1,\n items: null,\n });\n\n this.fireChange(value);\n this.blur();\n }\n\n private updateItems(value: string) {\n if (!this.opened) {\n return;\n }\n const pattern = value.trim();\n const source = this.props.source;\n\n if (!source) {\n return;\n }\n\n let promise;\n this.requestId += 1;\n const expectingId = this.requestId;\n if (typeof source === 'function') {\n promise = source(pattern);\n } else {\n promise = match(pattern, source);\n }\n promise.then((items) => {\n if (this.opened && expectingId === this.requestId) {\n this.setState({\n items,\n selected: -1,\n });\n }\n });\n }\n\n private fireChange(value: string) {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n }\n\n private refInput = (el: Input | null) => {\n this.input = el;\n };\n\n private refMenu = (menu: Menu | null) => {\n this.menu = menu;\n };\n\n private refRootSpan = (span: HTMLSpanElement) => {\n this.rootSpan = span;\n };\n\n private refMobilePopup = (mobilePopup: MobilePopup | null) => {\n this.mobilePopup = mobilePopup;\n };\n}\n"]}