@skbkontur/react-ui 0.0.0-8824ede9eb → 0.0.0-8ea1692541

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 (708) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +9 -17
  3. package/cjs/components/Autocomplete/Autocomplete.js +13 -7
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +4 -5
  6. package/cjs/components/Button/Button.js +8 -3
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Button/Button.mixins.js +1 -1
  9. package/cjs/components/Button/Button.mixins.js.map +1 -1
  10. package/cjs/components/Button/Button.styles.js +18 -18
  11. package/cjs/components/Button/Button.styles.js.map +1 -1
  12. package/cjs/components/Center/Center.d.ts +4 -3
  13. package/cjs/components/Center/Center.js +9 -3
  14. package/cjs/components/Center/Center.js.map +1 -1
  15. package/cjs/components/Checkbox/Checkbox.js +4 -2
  16. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  17. package/cjs/components/Checkbox/Checkbox.md +48 -0
  18. package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -1
  19. package/cjs/components/Checkbox/Checkbox.styles.js +1 -1
  20. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  21. package/cjs/components/ComboBox/ComboBox.d.ts +8 -13
  22. package/cjs/components/ComboBox/ComboBox.js +12 -2
  23. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  24. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -9
  25. package/cjs/components/CurrencyInput/CurrencyInput.js +25 -10
  26. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  27. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +3 -1
  28. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js +14 -2
  29. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js.map +1 -1
  30. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +3 -9
  31. package/cjs/components/CurrencyLabel/CurrencyLabel.js +15 -15
  32. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  33. package/cjs/components/DateInput/DateFragmentsView.d.ts +1 -1
  34. package/cjs/components/DateInput/DateFragmentsView.js +10 -1
  35. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  36. package/cjs/components/DateInput/DateInput.d.ts +9 -12
  37. package/cjs/components/DateInput/DateInput.js +11 -3
  38. package/cjs/components/DateInput/DateInput.js.map +1 -1
  39. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js +1 -2
  40. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js.map +1 -1
  41. package/cjs/components/DateInput/helpers/SelectionHelpers.js +2 -2
  42. package/cjs/components/DateInput/helpers/SelectionHelpers.js.map +1 -1
  43. package/cjs/components/DatePicker/DatePicker.d.ts +7 -9
  44. package/cjs/components/DatePicker/DatePicker.js +23 -9
  45. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  46. package/cjs/components/DatePicker/Picker.js +5 -1
  47. package/cjs/components/DatePicker/Picker.js.map +1 -1
  48. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +5 -5
  49. package/cjs/components/DropdownMenu/DropdownMenu.js +9 -3
  50. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  51. package/cjs/components/FileUploader/FileUploader.js +2 -2
  52. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  53. package/cjs/components/FileUploader/FileUploader.md +8 -1
  54. package/cjs/components/FxInput/FxInput.d.ts +6 -6
  55. package/cjs/components/FxInput/FxInput.js +16 -11
  56. package/cjs/components/FxInput/FxInput.js.map +1 -1
  57. package/cjs/components/Gapped/Gapped.d.ts +7 -8
  58. package/cjs/components/Gapped/Gapped.js +12 -6
  59. package/cjs/components/Gapped/Gapped.js.map +1 -1
  60. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +7 -14
  61. package/cjs/components/GlobalLoader/GlobalLoader.js +13 -9
  62. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  63. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
  64. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  65. package/cjs/components/Hint/Hint.d.ts +8 -12
  66. package/cjs/components/Hint/Hint.js +15 -5
  67. package/cjs/components/Hint/Hint.js.map +1 -1
  68. package/cjs/components/Hint/Hint.md +14 -0
  69. package/cjs/components/Input/Input.d.ts +4 -3
  70. package/cjs/components/Input/Input.js +10 -5
  71. package/cjs/components/Input/Input.js.map +1 -1
  72. package/cjs/components/Input/Input.md +5 -1
  73. package/cjs/components/Kebab/Kebab.d.ts +8 -15
  74. package/cjs/components/Kebab/Kebab.js +14 -5
  75. package/cjs/components/Kebab/Kebab.js.map +1 -1
  76. package/cjs/components/Link/Link.d.ts +5 -7
  77. package/cjs/components/Link/Link.js +12 -5
  78. package/cjs/components/Link/Link.js.map +1 -1
  79. package/cjs/components/Loader/Loader.d.ts +9 -5
  80. package/cjs/components/Loader/Loader.js +15 -4
  81. package/cjs/components/Loader/Loader.js.map +1 -1
  82. package/cjs/components/Loader/__stories__/LoaderAndButton.js +6 -0
  83. package/cjs/components/Loader/__stories__/LoaderAndButton.js.map +1 -1
  84. package/cjs/components/MenuItem/MenuItem.js +3 -1
  85. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  86. package/cjs/components/Modal/Modal.d.ts +4 -3
  87. package/cjs/components/Modal/Modal.js +9 -4
  88. package/cjs/components/Modal/Modal.js.map +1 -1
  89. package/cjs/components/Modal/Modal.styles.d.ts +2 -2
  90. package/cjs/components/Modal/Modal.styles.js +2 -2
  91. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  92. package/cjs/components/Modal/ModalBody.js +2 -2
  93. package/cjs/components/Modal/ModalBody.js.map +1 -1
  94. package/cjs/components/Modal/ModalFooter.js +1 -1
  95. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  96. package/cjs/components/Modal/ModalHeader.js +1 -1
  97. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  98. package/cjs/components/Paging/Paging.d.ts +7 -10
  99. package/cjs/components/Paging/Paging.js +16 -6
  100. package/cjs/components/Paging/Paging.js.map +1 -1
  101. package/cjs/components/Paging/PagingDefaultComponent.d.ts +3 -3
  102. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
  103. package/cjs/components/PasswordInput/PasswordInput.d.ts +4 -3
  104. package/cjs/components/PasswordInput/PasswordInput.js +14 -7
  105. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  106. package/cjs/components/Radio/Radio.d.ts +4 -3
  107. package/cjs/components/Radio/Radio.js +11 -4
  108. package/cjs/components/Radio/Radio.js.map +1 -1
  109. package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -4
  110. package/cjs/components/RadioGroup/RadioGroup.js +4 -2
  111. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  112. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +2 -2
  113. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  114. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +7 -8
  115. package/cjs/components/ScrollContainer/ScrollContainer.helpers.js +4 -4
  116. package/cjs/components/ScrollContainer/ScrollContainer.helpers.js.map +1 -1
  117. package/cjs/components/ScrollContainer/ScrollContainer.js +12 -6
  118. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  119. package/cjs/components/Select/Item.d.ts +4 -2
  120. package/cjs/components/Select/Item.js +3 -0
  121. package/cjs/components/Select/Item.js.map +1 -1
  122. package/cjs/components/Select/Select.d.ts +3 -12
  123. package/cjs/components/Select/Select.js +8 -1
  124. package/cjs/components/Select/Select.js.map +1 -1
  125. package/cjs/components/Select/Select.styles.js +4 -4
  126. package/cjs/components/Select/Select.styles.js.map +1 -1
  127. package/cjs/components/SidePage/SidePage.d.ts +5 -6
  128. package/cjs/components/SidePage/SidePage.js +8 -1
  129. package/cjs/components/SidePage/SidePage.js.map +1 -1
  130. package/cjs/components/SidePage/SidePageFooter.d.ts +6 -4
  131. package/cjs/components/SidePage/SidePageFooter.js +4 -0
  132. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  133. package/cjs/components/Spinner/Spinner.d.ts +4 -2
  134. package/cjs/components/Spinner/Spinner.js +10 -4
  135. package/cjs/components/Spinner/Spinner.js.map +1 -1
  136. package/cjs/components/Spinner/Spinner.styles.d.ts +1 -1
  137. package/cjs/components/Spinner/Spinner.styles.js +7 -7
  138. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  139. package/cjs/components/Sticky/Sticky.d.ts +5 -4
  140. package/cjs/components/Sticky/Sticky.js +9 -2
  141. package/cjs/components/Sticky/Sticky.js.map +1 -1
  142. package/cjs/components/Tabs/Indicator.d.ts +1 -1
  143. package/cjs/components/Tabs/Indicator.js +1 -1
  144. package/cjs/components/Tabs/Indicator.js.map +1 -1
  145. package/cjs/components/Tabs/Tab.d.ts +4 -4
  146. package/cjs/components/Tabs/Tab.js +11 -13
  147. package/cjs/components/Tabs/Tab.js.map +1 -1
  148. package/cjs/components/Tabs/Tabs.d.ts +4 -4
  149. package/cjs/components/Tabs/Tabs.js +12 -3
  150. package/cjs/components/Tabs/Tabs.js.map +1 -1
  151. package/cjs/components/Textarea/Textarea.d.ts +8 -10
  152. package/cjs/components/Textarea/Textarea.js +13 -7
  153. package/cjs/components/Textarea/Textarea.js.map +1 -1
  154. package/cjs/components/Textarea/TextareaCounter.d.ts +2 -2
  155. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  156. package/cjs/components/Toast/Toast.js +1 -1
  157. package/cjs/components/Toast/Toast.js.map +1 -1
  158. package/cjs/components/Toggle/Toggle.d.ts +5 -6
  159. package/cjs/components/Toggle/Toggle.js +10 -4
  160. package/cjs/components/Toggle/Toggle.js.map +1 -1
  161. package/cjs/components/TokenInput/TokenInput.d.ts +19 -16
  162. package/cjs/components/TokenInput/TokenInput.js +76 -59
  163. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  164. package/cjs/components/TokenInput/TokenInputMenu.d.ts +2 -1
  165. package/cjs/components/TokenInput/TokenInputMenu.js +1 -1
  166. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  167. package/cjs/components/Tooltip/Tooltip.d.ts +13 -19
  168. package/cjs/components/Tooltip/Tooltip.js +27 -24
  169. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  170. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +6 -5
  171. package/cjs/components/TooltipMenu/TooltipMenu.js +11 -5
  172. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  173. package/cjs/hooks/useEffectWithoutInitCall.d.ts +2 -2
  174. package/cjs/hooks/useEffectWithoutInitCall.js +2 -2
  175. package/cjs/hooks/useEffectWithoutInitCall.js.map +1 -1
  176. package/cjs/hooks/useMemoObject.d.ts +2 -1
  177. package/cjs/hooks/useMemoObject.js +2 -0
  178. package/cjs/hooks/useMemoObject.js.map +1 -1
  179. package/cjs/internal/BGRuler.d.ts +13 -15
  180. package/cjs/internal/BGRuler.js +16 -8
  181. package/cjs/internal/BGRuler.js.map +1 -1
  182. package/cjs/internal/Calendar/Calendar.d.ts +4 -13
  183. package/cjs/internal/Calendar/Calendar.js +10 -5
  184. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  185. package/cjs/internal/Calendar/DayCellView.styles.js +1 -1
  186. package/cjs/internal/Calendar/DayCellView.styles.js.map +1 -1
  187. package/cjs/internal/Calendar/Month.js +16 -11
  188. package/cjs/internal/Calendar/Month.js.map +1 -1
  189. package/cjs/internal/Calendar/MonthViewModel.d.ts +1 -1
  190. package/cjs/internal/Calendar/config.d.ts +1 -8
  191. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
  192. package/cjs/internal/CommonWrapper/CommonWrapper.js +5 -4
  193. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  194. package/cjs/internal/ComponentCombinator.d.ts +6 -8
  195. package/cjs/internal/ComponentCombinator.js +6 -2
  196. package/cjs/internal/ComponentCombinator.js.map +1 -1
  197. package/cjs/internal/ComponentTable.d.ts +7 -8
  198. package/cjs/internal/ComponentTable.js +14 -3
  199. package/cjs/internal/ComponentTable.js.map +1 -1
  200. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +6 -6
  201. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +14 -8
  202. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  203. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -12
  204. package/cjs/internal/CustomComboBox/ComboBoxView.js +18 -10
  205. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  206. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +4 -5
  207. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  208. package/cjs/internal/DataTids/DataTids.d.ts +5 -5
  209. package/cjs/internal/DataTids/DataTids.js +4 -0
  210. package/cjs/internal/DataTids/DataTids.js.map +1 -1
  211. package/cjs/internal/DateSelect/DateSelect.d.ts +4 -6
  212. package/cjs/internal/DateSelect/DateSelect.js +16 -10
  213. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  214. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  215. package/cjs/internal/DropdownContainer/DropdownContainer.js +8 -5
  216. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  217. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  218. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  219. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
  220. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  221. package/cjs/internal/InputLikeText/InputLikeText.d.ts +4 -3
  222. package/cjs/internal/InputLikeText/InputLikeText.js +11 -4
  223. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  224. package/cjs/internal/InternalMenu/InternalMenu.d.ts +3 -9
  225. package/cjs/internal/InternalMenu/InternalMenu.js +36 -14
  226. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  227. package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -1
  228. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  229. package/cjs/internal/MaskedInput/MaskedInput.d.ts +5 -2
  230. package/cjs/internal/MaskedInput/MaskedInput.js +20 -7
  231. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  232. package/cjs/internal/Menu/Menu.d.ts +4 -7
  233. package/cjs/internal/Menu/Menu.js +14 -4
  234. package/cjs/internal/Menu/Menu.js.map +1 -1
  235. package/cjs/internal/MobilePopup/MobilePopup.js +1 -1
  236. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  237. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
  238. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  239. package/cjs/internal/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
  240. package/cjs/internal/Popup/Popup.d.ts +11 -17
  241. package/cjs/internal/Popup/Popup.js +38 -19
  242. package/cjs/internal/Popup/Popup.js.map +1 -1
  243. package/cjs/internal/Popup/PopupHelper.d.ts +1 -1
  244. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  245. package/cjs/internal/Popup/PopupPin.d.ts +1 -1
  246. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  247. package/cjs/internal/PopupMenu/PopupMenu.d.ts +8 -11
  248. package/cjs/internal/PopupMenu/PopupMenu.js +8 -1
  249. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  250. package/cjs/internal/RenderLayer/RenderLayer.d.ts +6 -4
  251. package/cjs/internal/RenderLayer/RenderLayer.js +15 -4
  252. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  253. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
  254. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js +7 -0
  255. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js.map +1 -1
  256. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
  257. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js +2 -3
  258. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js.map +1 -1
  259. package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
  260. package/cjs/internal/ThemePlayground/FxInputPlayground.js +5 -5
  261. package/cjs/internal/ThemePlayground/FxInputPlayground.js.map +1 -1
  262. package/cjs/internal/ThemePlayground/HintPlayground.d.ts +1 -1
  263. package/cjs/internal/ThemePlayground/HintPlayground.js.map +1 -1
  264. package/cjs/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
  265. package/cjs/internal/ThemePlayground/PagingPlayground.js +5 -2
  266. package/cjs/internal/ThemePlayground/PagingPlayground.js.map +1 -1
  267. package/cjs/internal/ThemePlayground/Playground.d.ts +1 -1
  268. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  269. package/cjs/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
  270. package/cjs/internal/ThemePlayground/SelectPlayground.js +6 -0
  271. package/cjs/internal/ThemePlayground/SelectPlayground.js.map +1 -1
  272. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +2 -2
  273. package/cjs/internal/ThemePlayground/SizesGroup.js +2 -0
  274. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
  275. package/cjs/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
  276. package/cjs/internal/ThemePlayground/SwitcherPlayground.js +6 -1
  277. package/cjs/internal/ThemePlayground/SwitcherPlayground.js.map +1 -1
  278. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -4
  279. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  280. package/cjs/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
  281. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  282. package/cjs/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
  283. package/cjs/internal/ThemePlayground/TogglePlayground.js +4 -10
  284. package/cjs/internal/ThemePlayground/TogglePlayground.js.map +1 -1
  285. package/cjs/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
  286. package/cjs/internal/ThemePlayground/TokenInputPlayground.js +3 -0
  287. package/cjs/internal/ThemePlayground/TokenInputPlayground.js.map +1 -1
  288. package/cjs/internal/ThemePlayground/VariableValue.d.ts +6 -8
  289. package/cjs/internal/ThemePlayground/VariableValue.js +6 -1
  290. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  291. package/cjs/internal/ThemePlayground/helpers.d.ts +1 -1
  292. package/cjs/internal/ThemePlayground/helpers.js +4 -2
  293. package/cjs/internal/ThemePlayground/helpers.js.map +1 -1
  294. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  295. package/cjs/internal/ZIndex/ZIndex.d.ts +7 -11
  296. package/cjs/internal/ZIndex/ZIndex.js +7 -7
  297. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  298. package/cjs/internal/themes/DefaultTheme.js +1 -1
  299. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  300. package/cjs/lib/ConditionalHandler.js.map +1 -1
  301. package/cjs/lib/InstanceWithAnchorElement.d.ts +1 -1
  302. package/cjs/lib/InstanceWithAnchorElement.js.map +1 -1
  303. package/cjs/lib/ModalStack.js +2 -2
  304. package/cjs/lib/ModalStack.js.map +1 -1
  305. package/cjs/lib/SSRSafe.d.ts +2 -1
  306. package/cjs/lib/SSRSafe.js +9 -1
  307. package/cjs/lib/SSRSafe.js.map +1 -1
  308. package/cjs/lib/animation/index.js +1 -0
  309. package/cjs/lib/animation/index.js.map +1 -1
  310. package/cjs/lib/callChildRef/callChildRef.js +1 -1
  311. package/cjs/lib/callChildRef/callChildRef.js.map +1 -1
  312. package/cjs/lib/createPropsGetter.d.ts +2 -1
  313. package/cjs/lib/createPropsGetter.js +3 -0
  314. package/cjs/lib/createPropsGetter.js.map +1 -1
  315. package/cjs/lib/date/InternalDateCalculator.d.ts +1 -1
  316. package/cjs/lib/date/InternalDateCalculator.js +1 -1
  317. package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
  318. package/cjs/lib/date/InternalDateValidator.d.ts +1 -1
  319. package/cjs/lib/date/InternalDateValidator.js +9 -2
  320. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  321. package/cjs/lib/extractKeyboardAction.d.ts +1 -1
  322. package/cjs/lib/extractKeyboardAction.js.map +1 -1
  323. package/cjs/lib/filterProps.js +0 -1
  324. package/cjs/lib/filterProps.js.map +1 -1
  325. package/cjs/lib/listenFocusOutside.d.ts +1 -1
  326. package/cjs/lib/listenFocusOutside.js.map +1 -1
  327. package/cjs/lib/locale/useLocaleForControl.d.ts +1 -1
  328. package/cjs/lib/locale/useLocaleForControl.js.map +1 -1
  329. package/cjs/lib/memo.d.ts +3 -1
  330. package/cjs/lib/memo.js +3 -3
  331. package/cjs/lib/memo.js.map +1 -1
  332. package/cjs/lib/net/fetch.js +2 -2
  333. package/cjs/lib/net/fetch.js.map +1 -1
  334. package/cjs/lib/reactGetTextContent.js +0 -1
  335. package/cjs/lib/reactGetTextContent.js.map +1 -1
  336. package/cjs/lib/rootNode/getRootNode.d.ts +3 -3
  337. package/cjs/lib/rootNode/getRootNode.js +7 -7
  338. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  339. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +9 -9
  340. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  341. package/cjs/lib/styles/ColorFactory.js +2 -2
  342. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  343. package/cjs/lib/styles/ColorFunctions.js.map +1 -1
  344. package/cjs/lib/theming/AnimationKeyframes.d.ts +3 -5
  345. package/cjs/lib/theming/AnimationKeyframes.js +8 -22
  346. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  347. package/cjs/lib/theming/Emotion.js +1 -0
  348. package/cjs/lib/theming/Emotion.js.map +1 -1
  349. package/cjs/lib/theming/ThemeFactory.d.ts +1 -1
  350. package/cjs/lib/theming/ThemeFactory.js +3 -1
  351. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  352. package/cjs/lib/theming/ThemeHelpers.d.ts +2 -2
  353. package/cjs/lib/theming/ThemeHelpers.js +1 -1
  354. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  355. package/cjs/lib/utils.d.ts +3 -1
  356. package/cjs/lib/utils.js +5 -2
  357. package/cjs/lib/utils.js.map +1 -1
  358. package/cjs/lib/withClassWrapper.js +1 -4
  359. package/cjs/lib/withClassWrapper.js.map +1 -1
  360. package/cjs/typings/event-types.d.ts +2 -2
  361. package/components/Autocomplete/Autocomplete/Autocomplete.js +26 -13
  362. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  363. package/components/Autocomplete/Autocomplete.d.ts +9 -17
  364. package/components/Button/Button/Button.js +11 -5
  365. package/components/Button/Button/Button.js.map +1 -1
  366. package/components/Button/Button.d.ts +4 -5
  367. package/components/Button/Button.mixins/Button.mixins.js +1 -1
  368. package/components/Button/Button.mixins/Button.mixins.js.map +1 -1
  369. package/components/Button/Button.styles/Button.styles.js +18 -18
  370. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  371. package/components/Center/Center/Center.js +7 -5
  372. package/components/Center/Center/Center.js.map +1 -1
  373. package/components/Center/Center.d.ts +4 -3
  374. package/components/Checkbox/Checkbox/Checkbox.js +5 -2
  375. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  376. package/components/Checkbox/Checkbox.md +48 -0
  377. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +1 -1
  378. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  379. package/components/Checkbox/Checkbox.styles.d.ts +1 -1
  380. package/components/ComboBox/ComboBox/ComboBox.js +3 -1
  381. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  382. package/components/ComboBox/ComboBox.d.ts +8 -13
  383. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +36 -21
  384. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  385. package/components/CurrencyInput/CurrencyInput.d.ts +6 -9
  386. package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js +4 -2
  387. package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js.map +1 -1
  388. package/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +3 -1
  389. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +21 -15
  390. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  391. package/components/CurrencyLabel/CurrencyLabel.d.ts +3 -9
  392. package/components/DateInput/DateFragmentsView/DateFragmentsView.js +11 -1
  393. package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
  394. package/components/DateInput/DateFragmentsView.d.ts +1 -1
  395. package/components/DateInput/DateInput/DateInput.js +18 -5
  396. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  397. package/components/DateInput/DateInput.d.ts +9 -12
  398. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js +0 -1
  399. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js.map +1 -1
  400. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js +2 -2
  401. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js.map +1 -1
  402. package/components/DatePicker/DatePicker/DatePicker.js +25 -21
  403. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  404. package/components/DatePicker/DatePicker.d.ts +7 -9
  405. package/components/DatePicker/Picker/Picker.js +5 -1
  406. package/components/DatePicker/Picker/Picker.js.map +1 -1
  407. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +8 -2
  408. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  409. package/components/DropdownMenu/DropdownMenu.d.ts +5 -5
  410. package/components/FileUploader/FileUploader/FileUploader.js +2 -2
  411. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  412. package/components/FileUploader/FileUploader.md +8 -1
  413. package/components/FxInput/FxInput/FxInput.js +15 -10
  414. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  415. package/components/FxInput/FxInput.d.ts +6 -6
  416. package/components/Gapped/Gapped/Gapped.js +17 -8
  417. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  418. package/components/Gapped/Gapped.d.ts +7 -8
  419. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +35 -16
  420. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  421. package/components/GlobalLoader/GlobalLoader.d.ts +7 -14
  422. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  423. package/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
  424. package/components/Hint/Hint/Hint.js +30 -18
  425. package/components/Hint/Hint/Hint.js.map +1 -1
  426. package/components/Hint/Hint.d.ts +8 -12
  427. package/components/Hint/Hint.md +14 -0
  428. package/components/Input/Input/Input.js +13 -8
  429. package/components/Input/Input/Input.js.map +1 -1
  430. package/components/Input/Input.d.ts +4 -3
  431. package/components/Input/Input.md +5 -1
  432. package/components/Kebab/Kebab/Kebab.js +19 -8
  433. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  434. package/components/Kebab/Kebab.d.ts +8 -15
  435. package/components/Link/Link/Link.js +10 -7
  436. package/components/Link/Link/Link.js.map +1 -1
  437. package/components/Link/Link.d.ts +5 -7
  438. package/components/Loader/Loader/Loader.js +22 -17
  439. package/components/Loader/Loader/Loader.js.map +1 -1
  440. package/components/Loader/Loader.d.ts +9 -5
  441. package/components/Loader/__stories__/LoaderAndButton/LoaderAndButton.js.map +1 -1
  442. package/components/MenuItem/MenuItem/MenuItem.js +4 -1
  443. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  444. package/components/Modal/Modal/Modal.js +5 -3
  445. package/components/Modal/Modal/Modal.js.map +1 -1
  446. package/components/Modal/Modal.d.ts +4 -3
  447. package/components/Modal/Modal.styles/Modal.styles.js +2 -2
  448. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  449. package/components/Modal/Modal.styles.d.ts +2 -2
  450. package/components/Modal/ModalBody/ModalBody.js +2 -2
  451. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  452. package/components/Modal/ModalFooter/ModalFooter.js +2 -2
  453. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  454. package/components/Modal/ModalHeader/ModalHeader.js +2 -2
  455. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  456. package/components/Paging/Paging/Paging.js +25 -15
  457. package/components/Paging/Paging/Paging.js.map +1 -1
  458. package/components/Paging/Paging.d.ts +7 -10
  459. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -1
  460. package/components/Paging/PagingDefaultComponent.d.ts +3 -3
  461. package/components/PasswordInput/PasswordInput/PasswordInput.js +14 -13
  462. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  463. package/components/PasswordInput/PasswordInput.d.ts +4 -3
  464. package/components/Radio/Radio/Radio.js +11 -6
  465. package/components/Radio/Radio/Radio.js.map +1 -1
  466. package/components/Radio/Radio.d.ts +4 -3
  467. package/components/RadioGroup/RadioGroup/RadioGroup.js +10 -10
  468. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  469. package/components/RadioGroup/RadioGroup.d.ts +2 -4
  470. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +3 -1
  471. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  472. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +11 -7
  473. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  474. package/components/ScrollContainer/ScrollContainer.d.ts +7 -8
  475. package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js +4 -4
  476. package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js.map +1 -1
  477. package/components/Select/Item/Item.js.map +1 -1
  478. package/components/Select/Item.d.ts +4 -2
  479. package/components/Select/Select/Select.js +4 -3
  480. package/components/Select/Select/Select.js.map +1 -1
  481. package/components/Select/Select.d.ts +3 -12
  482. package/components/Select/Select.styles/Select.styles.js +4 -4
  483. package/components/Select/Select.styles/Select.styles.js.map +1 -1
  484. package/components/SidePage/SidePage/SidePage.js +14 -9
  485. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  486. package/components/SidePage/SidePage.d.ts +5 -6
  487. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  488. package/components/SidePage/SidePageFooter.d.ts +6 -4
  489. package/components/Spinner/Spinner/Spinner.js +8 -6
  490. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  491. package/components/Spinner/Spinner.d.ts +4 -2
  492. package/components/Spinner/Spinner.styles/Spinner.styles.js +3 -3
  493. package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
  494. package/components/Spinner/Spinner.styles.d.ts +1 -1
  495. package/components/Sticky/Sticky/Sticky.js +7 -4
  496. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  497. package/components/Sticky/Sticky.d.ts +5 -4
  498. package/components/Tabs/Indicator/Indicator.js +1 -1
  499. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  500. package/components/Tabs/Indicator.d.ts +1 -1
  501. package/components/Tabs/Tab/Tab.js +15 -7
  502. package/components/Tabs/Tab/Tab.js.map +1 -1
  503. package/components/Tabs/Tab.d.ts +4 -4
  504. package/components/Tabs/Tabs/Tabs.js +10 -8
  505. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  506. package/components/Tabs/Tabs.d.ts +4 -4
  507. package/components/Textarea/Textarea/Textarea.js +23 -15
  508. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  509. package/components/Textarea/Textarea.d.ts +8 -10
  510. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  511. package/components/Textarea/TextareaCounter.d.ts +2 -2
  512. package/components/Toast/Toast/Toast.js +1 -1
  513. package/components/Toast/Toast/Toast.js.map +1 -1
  514. package/components/Toggle/Toggle/Toggle.js +12 -7
  515. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  516. package/components/Toggle/Toggle.d.ts +5 -6
  517. package/components/TokenInput/TokenInput/TokenInput.js +107 -77
  518. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  519. package/components/TokenInput/TokenInput.d.ts +19 -16
  520. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +1 -1
  521. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  522. package/components/TokenInput/TokenInputMenu.d.ts +2 -1
  523. package/components/Tooltip/Tooltip/Tooltip.js +60 -47
  524. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  525. package/components/Tooltip/Tooltip.d.ts +13 -19
  526. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +15 -13
  527. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  528. package/components/TooltipMenu/TooltipMenu.d.ts +6 -5
  529. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js +2 -2
  530. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js.map +1 -1
  531. package/hooks/useEffectWithoutInitCall.d.ts +2 -2
  532. package/hooks/useMemoObject/useMemoObject.js.map +1 -1
  533. package/hooks/useMemoObject.d.ts +2 -1
  534. package/internal/BGRuler/BGRuler.js +11 -6
  535. package/internal/BGRuler/BGRuler.js.map +1 -1
  536. package/internal/BGRuler.d.ts +13 -15
  537. package/internal/Calendar/Calendar/Calendar.js +11 -5
  538. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  539. package/internal/Calendar/Calendar.d.ts +4 -13
  540. package/internal/Calendar/DayCellView.styles/DayCellView.styles.js +1 -1
  541. package/internal/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
  542. package/internal/Calendar/Month/Month.js +20 -11
  543. package/internal/Calendar/Month/Month.js.map +1 -1
  544. package/internal/Calendar/MonthViewModel.d.ts +1 -1
  545. package/internal/Calendar/config.d.ts +1 -8
  546. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -2
  547. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  548. package/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
  549. package/internal/ComponentCombinator/ComponentCombinator.js +8 -5
  550. package/internal/ComponentCombinator/ComponentCombinator.js.map +1 -1
  551. package/internal/ComponentCombinator.d.ts +6 -8
  552. package/internal/ComponentTable/ComponentTable.js +16 -4
  553. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  554. package/internal/ComponentTable.d.ts +7 -8
  555. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +18 -19
  556. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  557. package/internal/CustomComboBox/ComboBoxMenu.d.ts +6 -6
  558. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +21 -10
  559. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  560. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -12
  561. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +4 -5
  562. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  563. package/internal/DataTids/DataTids/DataTids.js.map +1 -1
  564. package/internal/DataTids/DataTids.d.ts +5 -5
  565. package/internal/DateSelect/DateSelect/DateSelect.js +15 -12
  566. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  567. package/internal/DateSelect/DateSelect.d.ts +4 -6
  568. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +6 -10
  569. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  570. package/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  571. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  572. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  573. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
  574. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  575. package/internal/InputLikeText/InputLikeText/InputLikeText.js +9 -4
  576. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  577. package/internal/InputLikeText/InputLikeText.d.ts +4 -3
  578. package/internal/InternalMenu/InternalMenu/InternalMenu.js +38 -17
  579. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  580. package/internal/InternalMenu/InternalMenu.d.ts +3 -9
  581. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
  582. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  583. package/internal/MaskedInput/MaskedInput/MaskedInput.js +16 -7
  584. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  585. package/internal/MaskedInput/MaskedInput.d.ts +5 -2
  586. package/internal/Menu/Menu/Menu.js +16 -4
  587. package/internal/Menu/Menu/Menu.js.map +1 -1
  588. package/internal/Menu/Menu.d.ts +4 -7
  589. package/internal/MobilePopup/MobilePopup/MobilePopup.js +1 -1
  590. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  591. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +1 -1
  592. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  593. package/internal/PerformanceMetrics/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
  594. package/internal/Popup/Popup/Popup.js +52 -35
  595. package/internal/Popup/Popup/Popup.js.map +1 -1
  596. package/internal/Popup/Popup.d.ts +11 -17
  597. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  598. package/internal/Popup/PopupHelper.d.ts +1 -1
  599. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  600. package/internal/Popup/PopupPin.d.ts +1 -1
  601. package/internal/PopupMenu/PopupMenu/PopupMenu.js +12 -4
  602. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  603. package/internal/PopupMenu/PopupMenu.d.ts +8 -11
  604. package/internal/RenderLayer/RenderLayer/RenderLayer.js +18 -11
  605. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  606. package/internal/RenderLayer/RenderLayer.d.ts +6 -4
  607. package/internal/ThemePlayground/AnotherInputsPlayground/AnotherInputsPlayground.js.map +1 -1
  608. package/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
  609. package/internal/ThemePlayground/CurrencyInputPlayground/CurrencyInputPlayground.js.map +1 -1
  610. package/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
  611. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js +10 -6
  612. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js.map +1 -1
  613. package/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
  614. package/internal/ThemePlayground/HintPlayground/HintPlayground.js.map +1 -1
  615. package/internal/ThemePlayground/HintPlayground.d.ts +1 -1
  616. package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js +2 -2
  617. package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js.map +1 -1
  618. package/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
  619. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  620. package/internal/ThemePlayground/Playground.d.ts +1 -1
  621. package/internal/ThemePlayground/SelectPlayground/SelectPlayground.js.map +1 -1
  622. package/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
  623. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -1
  624. package/internal/ThemePlayground/SizesGroup.d.ts +2 -2
  625. package/internal/ThemePlayground/SwitcherPlayground/SwitcherPlayground.js.map +1 -1
  626. package/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
  627. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +13 -3
  628. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  629. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  630. package/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
  631. package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js +5 -17
  632. package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js.map +1 -1
  633. package/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
  634. package/internal/ThemePlayground/TokenInputPlayground/TokenInputPlayground.js.map +1 -1
  635. package/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
  636. package/internal/ThemePlayground/VariableValue/VariableValue.js +4 -2
  637. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  638. package/internal/ThemePlayground/VariableValue.d.ts +6 -8
  639. package/internal/ThemePlayground/helpers/helpers.js +0 -1
  640. package/internal/ThemePlayground/helpers/helpers.js.map +1 -1
  641. package/internal/ThemePlayground/helpers.d.ts +1 -1
  642. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  643. package/internal/ZIndex/ZIndex/ZIndex.js +21 -16
  644. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  645. package/internal/ZIndex/ZIndex.d.ts +7 -11
  646. package/internal/themes/DefaultTheme/DefaultTheme.js +6 -6
  647. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  648. package/lib/ConditionalHandler/ConditionalHandler.js.map +1 -1
  649. package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js.map +1 -1
  650. package/lib/InstanceWithAnchorElement.d.ts +1 -1
  651. package/lib/ModalStack/ModalStack.js +2 -2
  652. package/lib/ModalStack/ModalStack.js.map +1 -1
  653. package/lib/SSRSafe/SSRSafe.js +7 -0
  654. package/lib/SSRSafe/SSRSafe.js.map +1 -1
  655. package/lib/SSRSafe.d.ts +2 -1
  656. package/lib/animation/index/index.js +1 -1
  657. package/lib/animation/index/index.js.map +1 -1
  658. package/lib/callChildRef/callChildRef/callChildRef.js +1 -1
  659. package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -1
  660. package/lib/createPropsGetter/createPropsGetter.js +1 -0
  661. package/lib/createPropsGetter/createPropsGetter.js.map +1 -1
  662. package/lib/createPropsGetter.d.ts +2 -1
  663. package/lib/date/InternalDateCalculator/InternalDateCalculator.js +1 -2
  664. package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
  665. package/lib/date/InternalDateCalculator.d.ts +1 -1
  666. package/lib/date/InternalDateValidator/InternalDateValidator.js +8 -2
  667. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  668. package/lib/date/InternalDateValidator.d.ts +1 -1
  669. package/lib/extractKeyboardAction/extractKeyboardAction.js.map +1 -1
  670. package/lib/extractKeyboardAction.d.ts +1 -1
  671. package/lib/filterProps/filterProps.js +0 -1
  672. package/lib/filterProps/filterProps.js.map +1 -1
  673. package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
  674. package/lib/listenFocusOutside.d.ts +1 -1
  675. package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +1 -1
  676. package/lib/locale/useLocaleForControl.d.ts +1 -1
  677. package/lib/memo/memo.js +2 -4
  678. package/lib/memo/memo.js.map +1 -1
  679. package/lib/memo.d.ts +3 -1
  680. package/lib/net/fetch/fetch.js +2 -2
  681. package/lib/net/fetch/fetch.js.map +1 -1
  682. package/lib/reactGetTextContent/reactGetTextContent.js +0 -1
  683. package/lib/reactGetTextContent/reactGetTextContent.js.map +1 -1
  684. package/lib/rootNode/getRootNode/getRootNode.js +8 -8
  685. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  686. package/lib/rootNode/getRootNode.d.ts +3 -3
  687. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  688. package/lib/rootNode/rootNodeDecorator.d.ts +9 -9
  689. package/lib/styles/ColorFactory/ColorFactory.js +3 -1
  690. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  691. package/lib/styles/ColorFunctions/ColorFunctions.js.map +1 -1
  692. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +8 -14
  693. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
  694. package/lib/theming/AnimationKeyframes.d.ts +3 -5
  695. package/lib/theming/Emotion/Emotion.js.map +1 -1
  696. package/lib/theming/ThemeFactory/ThemeFactory.js +4 -1
  697. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  698. package/lib/theming/ThemeFactory.d.ts +1 -1
  699. package/lib/theming/ThemeHelpers/ThemeHelpers.js +1 -1
  700. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  701. package/lib/theming/ThemeHelpers.d.ts +2 -2
  702. package/lib/utils/utils.js +2 -2
  703. package/lib/utils/utils.js.map +1 -1
  704. package/lib/utils.d.ts +3 -1
  705. package/lib/withClassWrapper/withClassWrapper.js +1 -4
  706. package/lib/withClassWrapper/withClassWrapper.js.map +1 -1
  707. package/package.json +3 -3
  708. package/typings/event-types.d.ts +2 -2
@@ -11,6 +11,7 @@ import { SpinnerIcon } from "../../../internal/icons/SpinnerIcon";
11
11
  import { CommonWrapper } from "../../../internal/CommonWrapper";
12
12
  import { cx } from "../../../lib/theming/Emotion";
13
13
  import { rootNode } from "../../../lib/rootNode";
14
+ import { createPropsGetter } from "../../../lib/createPropsGetter";
14
15
  import { styles } from "../Spinner.styles";
15
16
  import { SpinnerLocaleHelper } from "../locale";
16
17
  var types = {
@@ -21,11 +22,11 @@ var types = {
21
22
  export var SpinnerDataTids = {
22
23
  root: 'Spinner__root'
23
24
  };
25
+ export
24
26
  /**
25
- * DRAFT - инлайн-лоадер
26
- */
27
-
28
- export var Spinner = (_dec = locale('Spinner', SpinnerLocaleHelper), rootNode(_class = _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
27
+ * DRAFT - инлайн-лоадер
28
+ */
29
+ var Spinner = (_dec = locale('Spinner', SpinnerLocaleHelper), rootNode(_class = _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
29
30
  _inheritsLoose(Spinner, _React$Component);
30
31
 
31
32
  function Spinner() {
@@ -36,13 +37,14 @@ export var Spinner = (_dec = locale('Spinner', SpinnerLocaleHelper), rootNode(_c
36
37
  }
37
38
 
38
39
  _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
40
+ _this.getProps = createPropsGetter(Spinner.defaultProps);
39
41
 
40
42
  _this.renderSpinner = function (type, dimmed, inline) {
41
43
  var _cx;
42
44
 
43
45
  return /*#__PURE__*/React.createElement(SpinnerIcon, {
44
46
  size: type,
45
- className: cx((_cx = {}, _cx[styles.circle(_this.theme)] = !dimmed && !_this.props.color, _cx[styles.circleDimmedColor(_this.theme)] = dimmed, _cx[styles.circleWithoutColorAnimation(_this.theme)] = dimmed || !!_this.props.color, _cx)),
47
+ className: cx((_cx = {}, _cx[styles.circle(_this.theme)] = !dimmed && !_this.props.color, _cx[styles.circleDimmedColor(_this.theme)] = dimmed, _cx[styles.circleWithoutColorAnimation()] = dimmed || !!_this.props.color, _cx)),
46
48
  dimmed: dimmed,
47
49
  width: _this.props.width,
48
50
  color: _this.props.color,
@@ -72,11 +74,11 @@ export var Spinner = (_dec = locale('Spinner', SpinnerLocaleHelper), rootNode(_c
72
74
 
73
75
  _proto.renderMain = function renderMain() {
74
76
  var _this$props = this.props,
75
- type = _this$props.type,
76
77
  _this$props$caption = _this$props.caption,
77
78
  caption = _this$props$caption === void 0 ? this.locale.loading : _this$props$caption,
78
79
  dimmed = _this$props.dimmed,
79
80
  inline = _this$props.inline;
81
+ var type = this.getProps().type;
80
82
  return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
81
83
  rootNodeRef: this.setRootNode
82
84
  }, this.props), /*#__PURE__*/React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["Spinner.tsx"],"names":["React","PropTypes","locale","ThemeContext","SpinnerIcon","CommonWrapper","cx","rootNode","styles","SpinnerLocaleHelper","types","big","mini","normal","SpinnerDataTids","root","Spinner","renderSpinner","type","dimmed","inline","circle","theme","props","color","circleDimmedColor","circleWithoutColorAnimation","width","renderCaption","caption","captionColor","render","renderMain","loading","setRootNode","spinner","inner","Component","__KONTUR_REACT_UI__","propTypes","node","bool","oneOf","Object","keys","defaultProps","Types"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { locale } from '../../lib/locale/decorators';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { SpinnerIcon } from '../../internal/icons/SpinnerIcon';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Spinner.styles';\nimport { SpinnerLocale, SpinnerLocaleHelper } from './locale';\n\nconst types: Record<SpinnerType, SpinnerType> = {\n big: 'big',\n mini: 'mini',\n normal: 'normal',\n};\n\nexport type SpinnerType = 'mini' | 'normal' | 'big';\n\nexport interface SpinnerProps extends CommonProps {\n caption?: React.ReactNode;\n dimmed?: boolean;\n /**\n * Тип спиннера\n * @default normal\n */\n type: SpinnerType;\n inline?: boolean;\n /**\n * Толщина спиннера\n */\n width?: number;\n /**\n * Цвет спиннера\n */\n color?: React.CSSProperties['color'];\n}\n\nexport const SpinnerDataTids = {\n root: 'Spinner__root',\n} as const;\n\n/**\n * DRAFT - инлайн-лоадер\n */\n\n@rootNode\n@locale('Spinner', SpinnerLocaleHelper)\nexport class Spinner extends React.Component<SpinnerProps> {\n public static __KONTUR_REACT_UI__ = 'Spinner';\n\n public static propTypes = {\n /**\n * Текст рядом с мини-лоадером.\n *\n * 'Загрузка' - значение по-умолчанию\n */\n caption: PropTypes.node,\n\n dimmed: PropTypes.bool,\n\n /**\n * Тип спиннера: mini, normal, big\n *\n * Значение по-умолчанию - normal\n *\n * Spinner.types - все доступные типы\n */\n type: PropTypes.oneOf(Object.keys(types)),\n };\n\n public static defaultProps: SpinnerProps = {\n type: 'normal',\n };\n\n public static Types: typeof types = types;\n private theme!: Theme;\n private readonly locale!: SpinnerLocale;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { type, caption = this.locale.loading, dimmed, inline } = this.props;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SpinnerDataTids.root} className={styles.spinner()}>\n <span className={styles.inner()}>{this.renderSpinner(type, dimmed, inline)}</span>\n {caption && this.renderCaption(type, caption)}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderSpinner = (type: SpinnerType, dimmed?: boolean, inline?: boolean) => {\n return (\n <SpinnerIcon\n size={type}\n className={cx({\n [styles.circle(this.theme)]: !dimmed && !this.props.color,\n [styles.circleDimmedColor(this.theme)]: dimmed,\n [styles.circleWithoutColorAnimation(this.theme)]: dimmed || !!this.props.color,\n })}\n dimmed={dimmed}\n width={this.props.width}\n color={this.props.color}\n inline={inline}\n />\n );\n };\n\n private renderCaption = (type: SpinnerType, caption: React.ReactNode) => (\n <span className={cx(styles[type](this.theme), styles.captionColor(this.theme))}>{caption}</span>\n );\n}\n"]}
1
+ {"version":3,"sources":["Spinner.tsx"],"names":["React","PropTypes","locale","ThemeContext","SpinnerIcon","CommonWrapper","cx","rootNode","createPropsGetter","styles","SpinnerLocaleHelper","types","big","mini","normal","SpinnerDataTids","root","Spinner","getProps","defaultProps","renderSpinner","type","dimmed","inline","circle","theme","props","color","circleDimmedColor","circleWithoutColorAnimation","width","renderCaption","caption","captionColor","render","renderMain","loading","setRootNode","spinner","inner","Component","__KONTUR_REACT_UI__","propTypes","node","bool","oneOf","Object","keys","Types"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { locale } from '../../lib/locale/decorators';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { SpinnerIcon } from '../../internal/icons/SpinnerIcon';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Spinner.styles';\nimport { SpinnerLocale, SpinnerLocaleHelper } from './locale';\n\nconst types: Record<SpinnerType, SpinnerType> = {\n big: 'big',\n mini: 'mini',\n normal: 'normal',\n};\n\nexport type SpinnerType = 'mini' | 'normal' | 'big';\n\nexport interface SpinnerProps extends CommonProps {\n caption?: React.ReactNode;\n dimmed?: boolean;\n /**\n * Тип спиннера\n * @default normal\n */\n type?: SpinnerType;\n inline?: boolean;\n /**\n * Толщина спиннера\n */\n width?: number;\n /**\n * Цвет спиннера\n */\n color?: React.CSSProperties['color'];\n}\n\nexport const SpinnerDataTids = {\n root: 'Spinner__root',\n} as const;\n\ntype DefaultProps = Required<Pick<SpinnerProps, 'type'>>;\n\n/**\n * DRAFT - инлайн-лоадер\n */\n\n@rootNode\n@locale('Spinner', SpinnerLocaleHelper)\nexport class Spinner extends React.Component<SpinnerProps> {\n public static __KONTUR_REACT_UI__ = 'Spinner';\n\n public static propTypes = {\n /**\n * Текст рядом с мини-лоадером.\n *\n * 'Загрузка' - значение по-умолчанию\n */\n caption: PropTypes.node,\n\n dimmed: PropTypes.bool,\n\n /**\n * Тип спиннера: mini, normal, big\n *\n * Значение по-умолчанию - normal\n *\n * Spinner.types - все доступные типы\n */\n type: PropTypes.oneOf(Object.keys(types)),\n };\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n };\n\n private getProps = createPropsGetter(Spinner.defaultProps);\n\n public static Types: typeof types = types;\n private theme!: Theme;\n private readonly locale!: SpinnerLocale;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption = this.locale.loading, dimmed, inline } = this.props;\n const type = this.getProps().type;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SpinnerDataTids.root} className={styles.spinner()}>\n <span className={styles.inner()}>{this.renderSpinner(type, dimmed, inline)}</span>\n {caption && this.renderCaption(type, caption)}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderSpinner = (type: SpinnerType, dimmed?: boolean, inline?: boolean) => {\n return (\n <SpinnerIcon\n size={type}\n className={cx({\n [styles.circle(this.theme)]: !dimmed && !this.props.color,\n [styles.circleDimmedColor(this.theme)]: dimmed,\n [styles.circleWithoutColorAnimation()]: dimmed || !!this.props.color,\n })}\n dimmed={dimmed}\n width={this.props.width}\n color={this.props.color}\n inline={inline}\n />\n );\n };\n\n private renderCaption = (type: SpinnerType, caption: React.ReactNode) => (\n <span className={cx(styles[type](this.theme), styles.captionColor(this.theme))}>{caption}</span>\n );\n}\n"]}
@@ -10,7 +10,7 @@ export interface SpinnerProps extends CommonProps {
10
10
  * Тип спиннера
11
11
  * @default normal
12
12
  */
13
- type: SpinnerType;
13
+ type?: SpinnerType;
14
14
  inline?: boolean;
15
15
  /**
16
16
  * Толщина спиннера
@@ -24,6 +24,7 @@ export interface SpinnerProps extends CommonProps {
24
24
  export declare const SpinnerDataTids: {
25
25
  readonly root: "Spinner__root";
26
26
  };
27
+ declare type DefaultProps = Required<Pick<SpinnerProps, 'type'>>;
27
28
  /**
28
29
  * DRAFT - инлайн-лоадер
29
30
  */
@@ -46,7 +47,8 @@ export declare class Spinner extends React.Component<SpinnerProps> {
46
47
  */
47
48
  type: PropTypes.Requireable<string>;
48
49
  };
49
- static defaultProps: SpinnerProps;
50
+ static defaultProps: DefaultProps;
51
+ private getProps;
50
52
  static Types: typeof types;
51
53
  private theme;
52
54
  private readonly locale;
@@ -7,13 +7,13 @@ import { AnimationKeyframes } from "../../../lib/theming/AnimationKeyframes";
7
7
  import { isIE11 } from "../../../lib/client";
8
8
  export var styles = memoizeStyle({
9
9
  circle: function circle(t) {
10
- return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n stroke: ", ";\n\n ", "\n "])), t.spinnerColor, !isIE11 && "\n animation: " + AnimationKeyframes.spinnerCircleOffset(t) + " 1s cubic-bezier(0.5, 0.2, 0.5, 0.8) infinite,\n " + AnimationKeyframes.spinnerCircleLength(t) + " 2s cubic-bezier(0.36, 0.14, 0.38, 0.69) infinite,\n " + AnimationKeyframes.spinnerCircleRotate(t) + " 2s linear infinite,\n " + AnimationKeyframes.spinnerColor(t) + " 6s ease-in-out infinite;\n ");
10
+ return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n stroke: ", ";\n\n ", "\n "])), t.spinnerColor, !isIE11 && "\n animation: " + AnimationKeyframes.spinnerCircleOffset() + " 1s cubic-bezier(0.5, 0.2, 0.5, 0.8) infinite,\n " + AnimationKeyframes.spinnerCircleLength() + " 2s cubic-bezier(0.36, 0.14, 0.38, 0.69) infinite,\n " + AnimationKeyframes.spinnerCircleRotate() + " 2s linear infinite,\n " + AnimationKeyframes.spinnerColor(t) + " 6s ease-in-out infinite;\n ");
11
11
  },
12
12
  circleDimmedColor: function circleDimmedColor(t) {
13
13
  return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n stroke: ", ";\n "])), t.spinnerDimmedColor);
14
14
  },
15
- circleWithoutColorAnimation: function circleWithoutColorAnimation(t) {
16
- return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n ", "\n "])), !isIE11 && "\n animation: " + AnimationKeyframes.spinnerCircleOffset(t) + " 1s cubic-bezier(0.5, 0.2, 0.5, 0.8) infinite,\n " + AnimationKeyframes.spinnerCircleLength(t) + " 2s cubic-bezier(0.36, 0.14, 0.38, 0.69) infinite,\n " + AnimationKeyframes.spinnerCircleRotate(t) + " 2s linear infinite;\n ");
15
+ circleWithoutColorAnimation: function circleWithoutColorAnimation() {
16
+ return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n ", "\n "])), !isIE11 && "\n animation: " + AnimationKeyframes.spinnerCircleOffset() + " 1s cubic-bezier(0.5, 0.2, 0.5, 0.8) infinite,\n " + AnimationKeyframes.spinnerCircleLength() + " 2s cubic-bezier(0.36, 0.14, 0.38, 0.69) infinite,\n " + AnimationKeyframes.spinnerCircleRotate() + " 2s linear infinite;\n ");
17
17
  },
18
18
  captionColor: function captionColor(t) {
19
19
  return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n color: ", ";\n "])), t.spinnerCaptionColor);
@@ -1 +1 @@
1
- {"version":3,"sources":["Spinner.styles.ts"],"names":["css","memoizeStyle","AnimationKeyframes","isIE11","styles","circle","t","spinnerColor","spinnerCircleOffset","spinnerCircleLength","spinnerCircleRotate","circleDimmedColor","spinnerDimmedColor","circleWithoutColorAnimation","captionColor","spinnerCaptionColor","inline","mini","spinnerCaptionGapSmall","spinnerFontSizeSmall","spinnerLineHeightSmall","normal","spinnerFontSizeMedium","spinnerLineHeightMedium","spinnerCaptionGapMedium","big","spinnerFontSizeLarge","spinnerLineHeightLarge","spinnerCaptionGapLarge","spinner","inner"],"mappings":"uRAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;AAEA,SAASC,kBAAT,QAAmC,sCAAnC;AACA,SAASC,MAAT,QAAuB,kBAAvB;;AAEA,OAAO,IAAMC,MAAM,GAAGH,YAAY,CAAC;AACjCI,EAAAA,MADiC,kBAC1BC,CAD0B,EAChB;AACf,WAAON,GAAP;AACYM,IAAAA,CAAC,CAACC,YADd;;AAGI,KAACJ,MAAD;;AAEeD,IAAAA,kBAAkB,CAACM,mBAAnB,CAAuCF,CAAvC,CAFf;AAGMJ,IAAAA,kBAAkB,CAACO,mBAAnB,CAAuCH,CAAvC,CAHN;AAIMJ,IAAAA,kBAAkB,CAACQ,mBAAnB,CAAuCJ,CAAvC,CAJN;AAKMJ,IAAAA,kBAAkB,CAACK,YAAnB,CAAgCD,CAAhC,CALN,wCAHJ;;;AAWD,GAbgC;AAcjCK,EAAAA,iBAdiC,6BAcfL,CAde,EAcL;AAC1B,WAAON,GAAP;AACYM,IAAAA,CAAC,CAACM,kBADd;;AAGD,GAlBgC;AAmBjCC,EAAAA,2BAnBiC,uCAmBLP,CAnBK,EAmBK;AACpC,WAAON,GAAP;AACI,KAACG,MAAD;;AAEeD,IAAAA,kBAAkB,CAACM,mBAAnB,CAAuCF,CAAvC,CAFf;AAGIJ,IAAAA,kBAAkB,CAACO,mBAAnB,CAAuCH,CAAvC,CAHJ;AAIIJ,IAAAA,kBAAkB,CAACQ,mBAAnB,CAAuCJ,CAAvC,CAJJ,mCADJ;;;AAQD,GA5BgC;;AA8BjCQ,EAAAA,YA9BiC,wBA8BpBR,CA9BoB,EA8BV;AACrB,WAAON,GAAP;AACWM,IAAAA,CAAC,CAACS,mBADb;;AAGD,GAlCgC;;AAoCjCC,EAAAA,MApCiC,oBAoCxB;AACP,WAAOhB,GAAP;;;;AAID,GAzCgC;;AA2CjCiB,EAAAA,IA3CiC,gBA2C5BX,CA3C4B,EA2ClB;AACb,WAAON,GAAP;AACiBM,IAAAA,CAAC,CAACY,sBADnB;AAEeZ,IAAAA,CAAC,CAACa,oBAFjB;AAGiBb,IAAAA,CAAC,CAACc,sBAHnB;;AAKD,GAjDgC;;AAmDjCC,EAAAA,MAnDiC,kBAmD1Bf,CAnD0B,EAmDhB;AACf,WAAON,GAAP;;AAEeM,IAAAA,CAAC,CAACgB,qBAFjB;AAGiBhB,IAAAA,CAAC,CAACiB,uBAHnB;AAIgBjB,IAAAA,CAAC,CAACkB,uBAJlB;;AAMD,GA1DgC;;AA4DjCC,EAAAA,GA5DiC,eA4D7BnB,CA5D6B,EA4DnB;AACZ,WAAON,GAAP;;AAEeM,IAAAA,CAAC,CAACoB,oBAFjB;AAGiBpB,IAAAA,CAAC,CAACqB,sBAHnB;AAIgBrB,IAAAA,CAAC,CAACsB,sBAJlB;;AAMD,GAnEgC;;AAqEjCC,EAAAA,OArEiC,qBAqEvB;AACR,WAAO7B,GAAP;;;;;AAKD,GA3EgC;;AA6EjC8B,EAAAA,KA7EiC,mBA6EzB;AACN,WAAO9B,GAAP;;;AAGD,GAjFgC,EAAD,CAA3B","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { AnimationKeyframes } from '../../lib/theming/AnimationKeyframes';\nimport { isIE11 } from '../../lib/client';\n\nexport const styles = memoizeStyle({\n circle(t: Theme) {\n return css`\n stroke: ${t.spinnerColor};\n\n ${!isIE11 &&\n `\n animation: ${AnimationKeyframes.spinnerCircleOffset(t)} 1s cubic-bezier(0.5, 0.2, 0.5, 0.8) infinite,\n ${AnimationKeyframes.spinnerCircleLength(t)} 2s cubic-bezier(0.36, 0.14, 0.38, 0.69) infinite,\n ${AnimationKeyframes.spinnerCircleRotate(t)} 2s linear infinite,\n ${AnimationKeyframes.spinnerColor(t)} 6s ease-in-out infinite;\n `}\n `;\n },\n circleDimmedColor(t: Theme) {\n return css`\n stroke: ${t.spinnerDimmedColor};\n `;\n },\n circleWithoutColorAnimation(t: Theme) {\n return css`\n ${!isIE11 &&\n `\n animation: ${AnimationKeyframes.spinnerCircleOffset(t)} 1s cubic-bezier(0.5, 0.2, 0.5, 0.8) infinite,\n ${AnimationKeyframes.spinnerCircleLength(t)} 2s cubic-bezier(0.36, 0.14, 0.38, 0.69) infinite,\n ${AnimationKeyframes.spinnerCircleRotate(t)} 2s linear infinite;\n `}\n `;\n },\n\n captionColor(t: Theme) {\n return css`\n color: ${t.spinnerCaptionColor};\n `;\n },\n\n inline() {\n return css`\n font-size: inherit;\n line-height: inherit;\n `;\n },\n\n mini(t: Theme) {\n return css`\n margin-left: ${t.spinnerCaptionGapSmall};\n font-size: ${t.spinnerFontSizeSmall};\n line-height: ${t.spinnerLineHeightSmall};\n `;\n },\n\n normal(t: Theme) {\n return css`\n display: block;\n font-size: ${t.spinnerFontSizeMedium};\n line-height: ${t.spinnerLineHeightMedium};\n margin-top: ${t.spinnerCaptionGapMedium};\n `;\n },\n\n big(t: Theme) {\n return css`\n display: block;\n font-size: ${t.spinnerFontSizeLarge};\n line-height: ${t.spinnerLineHeightLarge};\n margin-top: ${t.spinnerCaptionGapLarge};\n `;\n },\n\n spinner() {\n return css`\n display: inline-block;\n text-align: center;\n line-height: normal;\n `;\n },\n\n inner() {\n return css`\n display: inline-block;\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Spinner.styles.ts"],"names":["css","memoizeStyle","AnimationKeyframes","isIE11","styles","circle","t","spinnerColor","spinnerCircleOffset","spinnerCircleLength","spinnerCircleRotate","circleDimmedColor","spinnerDimmedColor","circleWithoutColorAnimation","captionColor","spinnerCaptionColor","inline","mini","spinnerCaptionGapSmall","spinnerFontSizeSmall","spinnerLineHeightSmall","normal","spinnerFontSizeMedium","spinnerLineHeightMedium","spinnerCaptionGapMedium","big","spinnerFontSizeLarge","spinnerLineHeightLarge","spinnerCaptionGapLarge","spinner","inner"],"mappings":"uRAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;AAEA,SAASC,kBAAT,QAAmC,sCAAnC;AACA,SAASC,MAAT,QAAuB,kBAAvB;;AAEA,OAAO,IAAMC,MAAM,GAAGH,YAAY,CAAC;AACjCI,EAAAA,MADiC,kBAC1BC,CAD0B,EAChB;AACf,WAAON,GAAP;AACYM,IAAAA,CAAC,CAACC,YADd;;AAGI,KAACJ,MAAD;;AAEeD,IAAAA,kBAAkB,CAACM,mBAAnB,EAFf;AAGMN,IAAAA,kBAAkB,CAACO,mBAAnB,EAHN;AAIMP,IAAAA,kBAAkB,CAACQ,mBAAnB,EAJN;AAKMR,IAAAA,kBAAkB,CAACK,YAAnB,CAAgCD,CAAhC,CALN,wCAHJ;;;AAWD,GAbgC;AAcjCK,EAAAA,iBAdiC,6BAcfL,CAde,EAcL;AAC1B,WAAON,GAAP;AACYM,IAAAA,CAAC,CAACM,kBADd;;AAGD,GAlBgC;AAmBjCC,EAAAA,2BAnBiC,yCAmBH;AAC5B,WAAOb,GAAP;AACI,KAACG,MAAD;;AAEeD,IAAAA,kBAAkB,CAACM,mBAAnB,EAFf;AAGIN,IAAAA,kBAAkB,CAACO,mBAAnB,EAHJ;AAIIP,IAAAA,kBAAkB,CAACQ,mBAAnB,EAJJ,mCADJ;;;AAQD,GA5BgC;;AA8BjCI,EAAAA,YA9BiC,wBA8BpBR,CA9BoB,EA8BV;AACrB,WAAON,GAAP;AACWM,IAAAA,CAAC,CAACS,mBADb;;AAGD,GAlCgC;;AAoCjCC,EAAAA,MApCiC,oBAoCxB;AACP,WAAOhB,GAAP;;;;AAID,GAzCgC;;AA2CjCiB,EAAAA,IA3CiC,gBA2C5BX,CA3C4B,EA2ClB;AACb,WAAON,GAAP;AACiBM,IAAAA,CAAC,CAACY,sBADnB;AAEeZ,IAAAA,CAAC,CAACa,oBAFjB;AAGiBb,IAAAA,CAAC,CAACc,sBAHnB;;AAKD,GAjDgC;;AAmDjCC,EAAAA,MAnDiC,kBAmD1Bf,CAnD0B,EAmDhB;AACf,WAAON,GAAP;;AAEeM,IAAAA,CAAC,CAACgB,qBAFjB;AAGiBhB,IAAAA,CAAC,CAACiB,uBAHnB;AAIgBjB,IAAAA,CAAC,CAACkB,uBAJlB;;AAMD,GA1DgC;;AA4DjCC,EAAAA,GA5DiC,eA4D7BnB,CA5D6B,EA4DnB;AACZ,WAAON,GAAP;;AAEeM,IAAAA,CAAC,CAACoB,oBAFjB;AAGiBpB,IAAAA,CAAC,CAACqB,sBAHnB;AAIgBrB,IAAAA,CAAC,CAACsB,sBAJlB;;AAMD,GAnEgC;;AAqEjCC,EAAAA,OArEiC,qBAqEvB;AACR,WAAO7B,GAAP;;;;;AAKD,GA3EgC;;AA6EjC8B,EAAAA,KA7EiC,mBA6EzB;AACN,WAAO9B,GAAP;;;AAGD,GAjFgC,EAAD,CAA3B","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { AnimationKeyframes } from '../../lib/theming/AnimationKeyframes';\nimport { isIE11 } from '../../lib/client';\n\nexport const styles = memoizeStyle({\n circle(t: Theme) {\n return css`\n stroke: ${t.spinnerColor};\n\n ${!isIE11 &&\n `\n animation: ${AnimationKeyframes.spinnerCircleOffset()} 1s cubic-bezier(0.5, 0.2, 0.5, 0.8) infinite,\n ${AnimationKeyframes.spinnerCircleLength()} 2s cubic-bezier(0.36, 0.14, 0.38, 0.69) infinite,\n ${AnimationKeyframes.spinnerCircleRotate()} 2s linear infinite,\n ${AnimationKeyframes.spinnerColor(t)} 6s ease-in-out infinite;\n `}\n `;\n },\n circleDimmedColor(t: Theme) {\n return css`\n stroke: ${t.spinnerDimmedColor};\n `;\n },\n circleWithoutColorAnimation() {\n return css`\n ${!isIE11 &&\n `\n animation: ${AnimationKeyframes.spinnerCircleOffset()} 1s cubic-bezier(0.5, 0.2, 0.5, 0.8) infinite,\n ${AnimationKeyframes.spinnerCircleLength()} 2s cubic-bezier(0.36, 0.14, 0.38, 0.69) infinite,\n ${AnimationKeyframes.spinnerCircleRotate()} 2s linear infinite;\n `}\n `;\n },\n\n captionColor(t: Theme) {\n return css`\n color: ${t.spinnerCaptionColor};\n `;\n },\n\n inline() {\n return css`\n font-size: inherit;\n line-height: inherit;\n `;\n },\n\n mini(t: Theme) {\n return css`\n margin-left: ${t.spinnerCaptionGapSmall};\n font-size: ${t.spinnerFontSizeSmall};\n line-height: ${t.spinnerLineHeightSmall};\n `;\n },\n\n normal(t: Theme) {\n return css`\n display: block;\n font-size: ${t.spinnerFontSizeMedium};\n line-height: ${t.spinnerLineHeightMedium};\n margin-top: ${t.spinnerCaptionGapMedium};\n `;\n },\n\n big(t: Theme) {\n return css`\n display: block;\n font-size: ${t.spinnerFontSizeLarge};\n line-height: ${t.spinnerLineHeightLarge};\n margin-top: ${t.spinnerCaptionGapLarge};\n `;\n },\n\n spinner() {\n return css`\n display: inline-block;\n text-align: center;\n line-height: normal;\n `;\n },\n\n inner() {\n return css`\n display: inline-block;\n `;\n },\n});\n"]}
@@ -2,7 +2,7 @@ import { Theme } from '../../lib/theming/Theme';
2
2
  export declare const styles: {
3
3
  circle(t: Theme): string;
4
4
  circleDimmedColor(t: Theme): string;
5
- circleWithoutColorAnimation(t: Theme): string;
5
+ circleWithoutColorAnimation(): string;
6
6
  captionColor(t: Theme): string;
7
7
  inline(): string;
8
8
  mini(t: Theme): string;
@@ -13,6 +13,7 @@ import { CommonWrapper } from "../../../internal/CommonWrapper";
13
13
  import { cx } from "../../../lib/theming/Emotion";
14
14
  import { rootNode } from "../../../lib/rootNode";
15
15
  import { getDOMRect } from "../../../lib/dom/getDOMRect";
16
+ import { createPropsGetter } from "../../../lib/createPropsGetter";
16
17
  import { styles } from "../Sticky.styles";
17
18
  var MAX_REFLOW_RETRIES = 5;
18
19
  export var StickyDataTids = {
@@ -29,6 +30,7 @@ export var Sticky = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
29
30
  }
30
31
 
31
32
  _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
33
+ _this.getProps = createPropsGetter(Sticky.defaultProps);
32
34
  _this.state = {
33
35
  fixed: false,
34
36
  deltaHeight: 0,
@@ -72,13 +74,15 @@ export var Sticky = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
72
74
  height = _getDOMRect2.height;
73
75
 
74
76
  var _this$props = _this.props,
75
- offset = _this$props.offset,
76
77
  getStop = _this$props.getStop,
77
78
  side = _this$props.side;
78
79
  var _this$state = _this.state,
79
80
  prevFixed = _this$state.fixed,
80
81
  _this$state$height = _this$state.height,
81
82
  prevHeight = _this$state$height === void 0 ? height : _this$state$height;
83
+
84
+ var offset = _this.getProps().offset;
85
+
82
86
  var fixed = side === 'top' ? top < offset : Math.floor(bottom) > windowHeight - offset;
83
87
 
84
88
  _this.setState({
@@ -152,9 +156,8 @@ export var Sticky = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
152
156
  var _cx;
153
157
 
154
158
  var children = this.props.children;
155
- var _this$props2 = this.props,
156
- side = _this$props2.side,
157
- offset = _this$props2.offset;
159
+ var side = this.props.side;
160
+ var offset = this.getProps().offset;
158
161
  var _this$state2 = this.state,
159
162
  fixed = _this$state2.fixed,
160
163
  stopped = _this$state2.stopped,
@@ -1 +1 @@
1
- {"version":3,"sources":["Sticky.tsx"],"names":["React","PropTypes","shallowEqual","LayoutEvents","isFunction","ZIndex","CommonWrapper","cx","rootNode","getDOMRect","styles","MAX_REFLOW_RETRIES","StickyDataTids","root","Sticky","state","fixed","deltaHeight","stopped","relativeTop","layoutSubscription","remove","reflowCounter","refWrapper","ref","wrapper","refInner","inner","reflow","document","documentElement","Error","windowHeight","window","innerHeight","clientHeight","top","bottom","left","width","height","props","offset","getStop","side","prevFixed","prevHeight","Math","floor","setState","stop","stopRect","outerHeight","componentDidMount","addListener","componentWillUnmount","componentDidUpdate","prevProps","prevState","emit","render","children","innerStyle","setRootNode","container","Component","__KONTUR_REACT_UI__","propTypes","oneOfType","node","func","number","oneOf","isRequired","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport shallowEqual from 'shallowequal';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { isFunction } from '../../lib/utils';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { styles } from './Sticky.styles';\n\nconst MAX_REFLOW_RETRIES = 5;\n\nexport interface StickyProps extends CommonProps {\n side: 'top' | 'bottom';\n /**\n * Отступ в пикселях от края экрана, на сколько сдвигается элемент в залипшем состоянии\n * @default 0\n */\n offset: number;\n getStop?: () => Nullable<HTMLElement>;\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n}\n\nexport interface StickyState {\n fixed: boolean;\n deltaHeight: number;\n height?: number;\n width?: number;\n left?: number;\n stopped: boolean;\n relativeTop: number;\n}\n\nexport const StickyDataTids = {\n root: 'Spinner__root',\n} as const;\n\n@rootNode\nexport class Sticky extends React.Component<StickyProps, StickyState> {\n public static __KONTUR_REACT_UI__ = 'Sticky';\n\n public static propTypes = {\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n /**\n * Функция, которая возвращает DOM-элемент, который нельзя пересекать.\n */\n getStop: PropTypes.func,\n\n /**\n * Отступ от границы в пикселях\n */\n offset: PropTypes.number,\n\n side: PropTypes.oneOf(['top', 'bottom']).isRequired,\n };\n\n public static defaultProps = { offset: 0 };\n\n public state: StickyState = {\n fixed: false,\n deltaHeight: 0,\n stopped: false,\n relativeTop: 0,\n };\n\n private wrapper: Nullable<HTMLElement>;\n private inner: Nullable<HTMLElement>;\n private layoutSubscription: { remove: Nullable<() => void> } = { remove: null };\n private reflowCounter = 0;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.reflow();\n\n this.layoutSubscription = LayoutEvents.addListener(this.reflow);\n }\n\n public componentWillUnmount() {\n if (this.layoutSubscription.remove) {\n this.layoutSubscription.remove();\n }\n }\n\n public componentDidUpdate(prevProps: StickyProps, prevState: StickyState) {\n if (!shallowEqual(prevProps, this.props) || !shallowEqual(prevState, this.state)) {\n if (this.reflowCounter < MAX_REFLOW_RETRIES) {\n LayoutEvents.emit();\n this.reflowCounter += 1;\n return;\n }\n }\n this.reflowCounter = 0;\n }\n\n public render() {\n let { children } = this.props;\n const { side, offset } = this.props;\n const { fixed, stopped, relativeTop, deltaHeight, width, height, left } = this.state;\n const innerStyle: React.CSSProperties = {};\n\n if (fixed) {\n if (stopped) {\n innerStyle.top = relativeTop;\n innerStyle[side === 'top' ? 'marginTop' : 'marginBottom'] = deltaHeight;\n } else {\n innerStyle.width = width;\n innerStyle[side] = offset;\n innerStyle.left = left;\n }\n }\n\n if (isFunction(children)) {\n children = children(fixed);\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={StickyDataTids.root} ref={this.refWrapper} className={styles.wrapper()}>\n <ZIndex\n priority=\"Sticky\"\n applyZIndex={fixed}\n className={cx(styles.inner(), {\n [styles.fixed()]: fixed && !stopped,\n [styles.stopped()]: stopped,\n })}\n style={innerStyle}\n wrapperRef={this.refInner}\n >\n <div className={styles.container()}>{children}</div>\n </ZIndex>\n {fixed && !stopped ? <div style={{ width, height }} /> : null}\n </div>\n </CommonWrapper>\n );\n }\n\n private refWrapper = (ref: Nullable<HTMLElement>) => (this.wrapper = ref);\n\n private refInner = (ref: Nullable<HTMLElement>) => (this.inner = ref);\n\n /**\n * Пересчитать габариты и позицию залипшего элемента\n *\n * @public\n */\n public reflow = () => {\n const { documentElement } = document;\n\n if (!documentElement) {\n throw Error('There is no \"documentElement\" in document');\n }\n\n const windowHeight = window.innerHeight || documentElement.clientHeight;\n if (!this.wrapper || !this.inner) {\n return;\n }\n const { top, bottom, left } = getDOMRect(this.wrapper);\n const { width, height } = getDOMRect(this.inner);\n const { offset, getStop, side } = this.props;\n const { fixed: prevFixed, height: prevHeight = height } = this.state;\n const fixed = side === 'top' ? top < offset : Math.floor(bottom) > windowHeight - offset;\n\n this.setState({ fixed, left });\n\n if (fixed && !prevFixed) {\n this.setState({ width, height });\n }\n\n if (fixed) {\n const stop = getStop && getStop();\n if (stop) {\n const deltaHeight = prevHeight - height;\n const stopRect = getDOMRect(stop);\n const outerHeight = height + offset;\n let stopped = false;\n let relativeTop = 0;\n\n if (side === 'top') {\n stopped = stopRect.top - outerHeight < 0;\n relativeTop = stopRect.top - prevHeight - top;\n } else {\n stopped = stopRect.bottom + outerHeight > windowHeight;\n relativeTop = stopRect.bottom - top;\n }\n\n this.setState({ relativeTop, deltaHeight, stopped });\n }\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["Sticky.tsx"],"names":["React","PropTypes","shallowEqual","LayoutEvents","isFunction","ZIndex","CommonWrapper","cx","rootNode","getDOMRect","createPropsGetter","styles","MAX_REFLOW_RETRIES","StickyDataTids","root","Sticky","getProps","defaultProps","state","fixed","deltaHeight","stopped","relativeTop","layoutSubscription","remove","reflowCounter","refWrapper","ref","wrapper","refInner","inner","reflow","document","documentElement","Error","windowHeight","window","innerHeight","clientHeight","top","bottom","left","width","height","props","getStop","side","prevFixed","prevHeight","offset","Math","floor","setState","stop","stopRect","outerHeight","componentDidMount","addListener","componentWillUnmount","componentDidUpdate","prevProps","prevState","emit","render","children","innerStyle","setRootNode","container","Component","__KONTUR_REACT_UI__","propTypes","oneOfType","node","func","number","oneOf","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport shallowEqual from 'shallowequal';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { isFunction } from '../../lib/utils';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Sticky.styles';\n\nconst MAX_REFLOW_RETRIES = 5;\n\nexport interface StickyProps extends CommonProps {\n side: 'top' | 'bottom';\n /**\n * Отступ в пикселях от края экрана, на сколько сдвигается элемент в залипшем состоянии\n * @default 0\n */\n offset?: number;\n getStop?: () => Nullable<HTMLElement>;\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n}\n\nexport interface StickyState {\n fixed: boolean;\n deltaHeight: number;\n height?: number;\n width?: number;\n left?: number;\n stopped: boolean;\n relativeTop: number;\n}\n\nexport const StickyDataTids = {\n root: 'Spinner__root',\n} as const;\n\ntype DefaultProps = Required<Pick<StickyProps, 'offset'>>;\n\n@rootNode\nexport class Sticky extends React.Component<StickyProps, StickyState> {\n public static __KONTUR_REACT_UI__ = 'Sticky';\n\n public static propTypes = {\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n /**\n * Функция, которая возвращает DOM-элемент, который нельзя пересекать.\n */\n getStop: PropTypes.func,\n\n /**\n * Отступ от границы в пикселях\n */\n offset: PropTypes.number,\n\n side: PropTypes.oneOf(['top', 'bottom']).isRequired,\n };\n\n public static defaultProps: DefaultProps = { offset: 0 };\n\n private getProps = createPropsGetter(Sticky.defaultProps);\n\n public state: StickyState = {\n fixed: false,\n deltaHeight: 0,\n stopped: false,\n relativeTop: 0,\n };\n\n private wrapper: Nullable<HTMLElement>;\n private inner: Nullable<HTMLElement>;\n private layoutSubscription: { remove: Nullable<() => void> } = { remove: null };\n private reflowCounter = 0;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.reflow();\n\n this.layoutSubscription = LayoutEvents.addListener(this.reflow);\n }\n\n public componentWillUnmount() {\n if (this.layoutSubscription.remove) {\n this.layoutSubscription.remove();\n }\n }\n\n public componentDidUpdate(prevProps: StickyProps, prevState: StickyState) {\n if (!shallowEqual(prevProps, this.props) || !shallowEqual(prevState, this.state)) {\n if (this.reflowCounter < MAX_REFLOW_RETRIES) {\n LayoutEvents.emit();\n this.reflowCounter += 1;\n return;\n }\n }\n this.reflowCounter = 0;\n }\n\n public render() {\n let { children } = this.props;\n const { side } = this.props;\n const offset = this.getProps().offset;\n const { fixed, stopped, relativeTop, deltaHeight, width, height, left } = this.state;\n const innerStyle: React.CSSProperties = {};\n\n if (fixed) {\n if (stopped) {\n innerStyle.top = relativeTop;\n innerStyle[side === 'top' ? 'marginTop' : 'marginBottom'] = deltaHeight;\n } else {\n innerStyle.width = width;\n innerStyle[side] = offset;\n innerStyle.left = left;\n }\n }\n\n if (isFunction(children)) {\n children = children(fixed);\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={StickyDataTids.root} ref={this.refWrapper} className={styles.wrapper()}>\n <ZIndex\n priority=\"Sticky\"\n applyZIndex={fixed}\n className={cx(styles.inner(), {\n [styles.fixed()]: fixed && !stopped,\n [styles.stopped()]: stopped,\n })}\n style={innerStyle}\n wrapperRef={this.refInner}\n >\n <div className={styles.container()}>{children}</div>\n </ZIndex>\n {fixed && !stopped ? <div style={{ width, height }} /> : null}\n </div>\n </CommonWrapper>\n );\n }\n\n private refWrapper = (ref: Nullable<HTMLElement>) => (this.wrapper = ref);\n\n private refInner = (ref: Nullable<HTMLElement>) => (this.inner = ref);\n\n /**\n * Пересчитать габариты и позицию залипшего элемента\n *\n * @public\n */\n public reflow = () => {\n const { documentElement } = document;\n\n if (!documentElement) {\n throw Error('There is no \"documentElement\" in document');\n }\n\n const windowHeight = window.innerHeight || documentElement.clientHeight;\n if (!this.wrapper || !this.inner) {\n return;\n }\n const { top, bottom, left } = getDOMRect(this.wrapper);\n const { width, height } = getDOMRect(this.inner);\n const { getStop, side } = this.props;\n const { fixed: prevFixed, height: prevHeight = height } = this.state;\n const offset = this.getProps().offset;\n const fixed = side === 'top' ? top < offset : Math.floor(bottom) > windowHeight - offset;\n\n this.setState({ fixed, left });\n\n if (fixed && !prevFixed) {\n this.setState({ width, height });\n }\n\n if (fixed) {\n const stop = getStop && getStop();\n if (stop) {\n const deltaHeight = prevHeight - height;\n const stopRect = getDOMRect(stop);\n const outerHeight = height + offset;\n let stopped = false;\n let relativeTop = 0;\n\n if (side === 'top') {\n stopped = stopRect.top - outerHeight < 0;\n relativeTop = stopRect.top - prevHeight - top;\n } else {\n stopped = stopRect.bottom + outerHeight > windowHeight;\n relativeTop = stopRect.bottom - top;\n }\n\n this.setState({ relativeTop, deltaHeight, stopped });\n }\n }\n };\n}\n"]}
@@ -8,7 +8,7 @@ export interface StickyProps extends CommonProps {
8
8
  * Отступ в пикселях от края экрана, на сколько сдвигается элемент в залипшем состоянии
9
9
  * @default 0
10
10
  */
11
- offset: number;
11
+ offset?: number;
12
12
  getStop?: () => Nullable<HTMLElement>;
13
13
  children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);
14
14
  }
@@ -24,6 +24,7 @@ export interface StickyState {
24
24
  export declare const StickyDataTids: {
25
25
  readonly root: "Spinner__root";
26
26
  };
27
+ declare type DefaultProps = Required<Pick<StickyProps, 'offset'>>;
27
28
  export declare class Sticky extends React.Component<StickyProps, StickyState> {
28
29
  static __KONTUR_REACT_UI__: string;
29
30
  static propTypes: {
@@ -38,9 +39,8 @@ export declare class Sticky extends React.Component<StickyProps, StickyState> {
38
39
  offset: PropTypes.Requireable<number>;
39
40
  side: PropTypes.Validator<string>;
40
41
  };
41
- static defaultProps: {
42
- offset: number;
43
- };
42
+ static defaultProps: DefaultProps;
43
+ private getProps;
44
44
  state: StickyState;
45
45
  private wrapper;
46
46
  private inner;
@@ -60,3 +60,4 @@ export declare class Sticky extends React.Component<StickyProps, StickyState> {
60
60
  */
61
61
  reflow: () => void;
62
62
  }
63
+ export {};
@@ -70,7 +70,7 @@ export var Indicator = rootNode(_class = (_temp = _class2 = /*#__PURE__*/functio
70
70
  }
71
71
  };
72
72
 
73
- _proto.componentDidUpdate = function componentDidUpdate(_, prevState) {
73
+ _proto.componentDidUpdate = function componentDidUpdate() {
74
74
  this.reflow();
75
75
  };
76
76
 
@@ -1 +1 @@
1
- {"version":3,"sources":["Indicator.tsx"],"names":["React","throttle","LayoutEvents","ThemeContext","cx","getRootNode","rootNode","getDOMRect","styles","TabsContext","TabsDataTids","Indicator","context","state","eventListener","removeTabUpdatesListener","reflow","getTab","activeTab","node","nodeStyles","getStyles","stylesUpdated","some","prop","setState","componentDidMount","addListener","props","tabUpdates","on","componentWillUnmount","cancel","remove","componentDidUpdate","_","prevState","render","theme","renderMain","indicators","getIndicators","error","warning","success","primary","disabled","indicatorRoot","root","className","setRootNode","htmlNode","HTMLElement","rect","vertical","width","tabBorderWidth","left","offsetLeft","top","offsetTop","height","bottom","parseInt","offsetHeight","right","Component","contextType"],"mappings":"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","sourcesContent":["import React from 'react';\nimport throttle from 'lodash.throttle';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { styles } from './Indicator.styles';\nimport { TabsContext, TabsContextType } from './TabsContext';\nimport { TabIndicators } from './Tab';\nimport { TabsDataTids } from './Tabs';\n\nexport interface IndicatorProps {\n className?: string;\n tabUpdates: {\n on: (x0: () => void) => () => void;\n };\n vertical: boolean;\n}\n\nexport interface IndicatorState {\n styles: React.CSSProperties;\n}\n\n@rootNode\nexport class Indicator extends React.Component<IndicatorProps, IndicatorState> {\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public state: IndicatorState = {\n styles: {},\n };\n\n private theme!: Theme;\n\n private eventListener: Nullable<{\n remove: () => void;\n }> = null;\n\n private removeTabUpdatesListener: Nullable<() => void> = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.eventListener = LayoutEvents.addListener(this.reflow);\n this.removeTabUpdatesListener = this.props.tabUpdates.on(this.reflow);\n this.reflow();\n }\n\n public componentWillUnmount() {\n this.reflow.cancel();\n\n if (this.eventListener) {\n this.eventListener.remove();\n }\n if (this.removeTabUpdatesListener) {\n this.removeTabUpdatesListener();\n }\n }\n\n public componentDidUpdate(_: IndicatorProps, prevState: IndicatorState) {\n this.reflow();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { getTab, activeTab } = this.context;\n const node = getTab(activeTab);\n const indicators: TabIndicators = (node && node.getIndicators && node.getIndicators()) || {\n error: false,\n warning: false,\n success: false,\n primary: false,\n disabled: false,\n };\n return (\n <div\n data-tid={TabsDataTids.indicatorRoot}\n className={cx(\n styles.root(this.theme),\n indicators.primary && styles.primary(this.theme),\n indicators.success && styles.success(this.theme),\n indicators.warning && styles.warning(this.theme),\n indicators.error && styles.error(this.theme),\n this.props.className,\n )}\n style={this.state.styles}\n ref={this.setRootNode}\n />\n );\n }\n\n private reflow = throttle(() => {\n const { getTab, activeTab } = this.context;\n const node = getTab(activeTab);\n const nodeStyles = this.getStyles(node);\n const stylesUpdated = ['left', 'top', 'width', 'height'].some(\n (prop) => nodeStyles[prop as keyof React.CSSProperties] !== this.state.styles[prop as keyof React.CSSProperties],\n );\n if (stylesUpdated) {\n this.setState({ styles: nodeStyles });\n }\n }, 100);\n\n private getStyles(node: any): React.CSSProperties {\n const htmlNode = getRootNode(node);\n\n if (htmlNode && htmlNode instanceof HTMLElement) {\n const rect = getDOMRect(htmlNode);\n if (this.props.vertical) {\n return {\n width: this.theme.tabBorderWidth,\n left: htmlNode.offsetLeft,\n top: htmlNode.offsetTop,\n height: rect.bottom - rect.top,\n };\n }\n\n const tabBorderWidth = parseInt(this.theme.tabBorderWidth, 10) || 0;\n return {\n left: htmlNode.offsetLeft,\n top: htmlNode.offsetHeight + htmlNode.offsetTop - tabBorderWidth,\n width: rect.right - rect.left,\n };\n }\n\n return {};\n }\n}\n"]}
1
+ {"version":3,"sources":["Indicator.tsx"],"names":["React","throttle","LayoutEvents","ThemeContext","cx","getRootNode","rootNode","getDOMRect","styles","TabsContext","TabsDataTids","Indicator","context","state","eventListener","removeTabUpdatesListener","reflow","getTab","activeTab","node","nodeStyles","getStyles","stylesUpdated","some","prop","setState","componentDidMount","addListener","props","tabUpdates","on","componentWillUnmount","cancel","remove","componentDidUpdate","render","theme","renderMain","indicators","getIndicators","error","warning","success","primary","disabled","indicatorRoot","root","className","setRootNode","htmlNode","HTMLElement","rect","vertical","width","tabBorderWidth","left","offsetLeft","top","offsetTop","height","bottom","parseInt","offsetHeight","right","Component","contextType"],"mappings":"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","sourcesContent":["import React from 'react';\nimport throttle from 'lodash.throttle';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { styles } from './Indicator.styles';\nimport { TabsContext, TabsContextType } from './TabsContext';\nimport { TabIndicators } from './Tab';\nimport { TabsDataTids } from './Tabs';\n\nexport interface IndicatorProps {\n className?: string;\n tabUpdates: {\n on: (x0: () => void) => () => void;\n };\n vertical: boolean;\n}\n\nexport interface IndicatorState {\n styles: React.CSSProperties;\n}\n\n@rootNode\nexport class Indicator extends React.Component<IndicatorProps, IndicatorState> {\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public state: IndicatorState = {\n styles: {},\n };\n\n private theme!: Theme;\n\n private eventListener: Nullable<{\n remove: () => void;\n }> = null;\n\n private removeTabUpdatesListener: Nullable<() => void> = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.eventListener = LayoutEvents.addListener(this.reflow);\n this.removeTabUpdatesListener = this.props.tabUpdates.on(this.reflow);\n this.reflow();\n }\n\n public componentWillUnmount() {\n this.reflow.cancel();\n\n if (this.eventListener) {\n this.eventListener.remove();\n }\n if (this.removeTabUpdatesListener) {\n this.removeTabUpdatesListener();\n }\n }\n\n public componentDidUpdate() {\n this.reflow();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { getTab, activeTab } = this.context;\n const node = getTab(activeTab);\n const indicators: TabIndicators = (node && node.getIndicators && node.getIndicators()) || {\n error: false,\n warning: false,\n success: false,\n primary: false,\n disabled: false,\n };\n return (\n <div\n data-tid={TabsDataTids.indicatorRoot}\n className={cx(\n styles.root(this.theme),\n indicators.primary && styles.primary(this.theme),\n indicators.success && styles.success(this.theme),\n indicators.warning && styles.warning(this.theme),\n indicators.error && styles.error(this.theme),\n this.props.className,\n )}\n style={this.state.styles}\n ref={this.setRootNode}\n />\n );\n }\n\n private reflow = throttle(() => {\n const { getTab, activeTab } = this.context;\n const node = getTab(activeTab);\n const nodeStyles = this.getStyles(node);\n const stylesUpdated = ['left', 'top', 'width', 'height'].some(\n (prop) => nodeStyles[prop as keyof React.CSSProperties] !== this.state.styles[prop as keyof React.CSSProperties],\n );\n if (stylesUpdated) {\n this.setState({ styles: nodeStyles });\n }\n }, 100);\n\n private getStyles(node: any): React.CSSProperties {\n const htmlNode = getRootNode(node);\n\n if (htmlNode && htmlNode instanceof HTMLElement) {\n const rect = getDOMRect(htmlNode);\n if (this.props.vertical) {\n return {\n width: this.theme.tabBorderWidth,\n left: htmlNode.offsetLeft,\n top: htmlNode.offsetTop,\n height: rect.bottom - rect.top,\n };\n }\n\n const tabBorderWidth = parseInt(this.theme.tabBorderWidth, 10) || 0;\n return {\n left: htmlNode.offsetLeft,\n top: htmlNode.offsetHeight + htmlNode.offsetTop - tabBorderWidth,\n width: rect.right - rect.left,\n };\n }\n\n return {};\n }\n}\n"]}
@@ -20,7 +20,7 @@ export declare class Indicator extends React.Component<IndicatorProps, Indicator
20
20
  private setRootNode;
21
21
  componentDidMount(): void;
22
22
  componentWillUnmount(): void;
23
- componentDidUpdate(_: IndicatorProps, prevState: IndicatorState): void;
23
+ componentDidUpdate(): void;
24
24
  render(): JSX.Element;
25
25
  private renderMain;
26
26
  private reflow;
@@ -15,6 +15,7 @@ import { ThemeContext } from "../../../lib/theming/ThemeContext";
15
15
  import { CommonWrapper } from "../../../internal/CommonWrapper";
16
16
  import { cx } from "../../../lib/theming/Emotion";
17
17
  import { rootNode } from "../../../lib/rootNode";
18
+ import { createPropsGetter } from "../../../lib/createPropsGetter";
18
19
  import { TabsContext, TabsContextDefaultValue } from "../TabsContext";
19
20
  import { styles, horizontalStyles, verticalStyles, globalClasses } from "../Tab.styles";
20
21
  export var TabDataTids = {
@@ -44,6 +45,7 @@ var Tab = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Com
44
45
 
45
46
  _this = _React$Component.call(this, props) || this;
46
47
  _this.context = _this.context;
48
+ _this.getProps = createPropsGetter(Tab.defaultProps);
47
49
  _this.state = {
48
50
  focusedByKeyboard: false
49
51
  };
@@ -54,7 +56,7 @@ var Tab = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Com
54
56
  };
55
57
 
56
58
  _this.getId = function () {
57
- return _this.props.id || _this.props.href;
59
+ return _this.props.id || _this.getProps().href;
58
60
  };
59
61
 
60
62
  _this.refTabComponent = function (instance) {
@@ -71,7 +73,11 @@ var Tab = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Com
71
73
  return;
72
74
  }
73
75
 
74
- var id = _this.props.id || _this.props.href;
76
+ var _this$getProps = _this.getProps(),
77
+ href = _this$getProps.href,
78
+ component = _this$getProps.component;
79
+
80
+ var id = _this.props.id || href;
75
81
 
76
82
  if (_this.props.onClick) {
77
83
  _this.props.onClick(event);
@@ -85,7 +91,7 @@ var Tab = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Com
85
91
  _this.context.switchTab(id);
86
92
  }
87
93
 
88
- if (_this.props.component === 'a' && !_this.props.href) {
94
+ if (component === 'a' && !href) {
89
95
  event.preventDefault();
90
96
  }
91
97
  };
@@ -201,10 +207,12 @@ var Tab = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Com
201
207
  error = _this$props.error,
202
208
  warning = _this$props.warning,
203
209
  success = _this$props.success,
204
- primary = _this$props.primary,
205
- _this$props$component = _this$props.component,
206
- Component = _this$props$component === void 0 ? Tab.defaultProps.component : _this$props$component,
207
- href = _this$props.href;
210
+ primary = _this$props.primary;
211
+
212
+ var _this$getProps2 = this.getProps(),
213
+ Component = _this$getProps2.component,
214
+ href = _this$getProps2.href;
215
+
208
216
  var isActive = false;
209
217
  var isVertical = false;
210
218
  var id = this.getId();
@@ -1 +1 @@
1
- {"version":3,"sources":["Tab.tsx"],"names":["React","PropTypes","invariant","ResizeDetector","isKeyArrow","isKeyArrowLeft","isKeyArrowUp","keyListener","isFunctionalComponent","ThemeContext","CommonWrapper","cx","rootNode","TabsContext","TabsContextDefaultValue","styles","horizontalStyles","verticalStyles","globalClasses","TabDataTids","root","Tab","props","context","state","focusedByKeyboard","tabComponent","getUnderlyingNode","getId","id","href","refTabComponent","instance","getTabInstance","switchTab","event","disabled","preventDefault","onClick","defaultPrevented","component","handleKeyDown","e","onKeyDown","delta","shiftFocus","handleFocus","requestAnimationFrame","isTabPressed","isArrowPressed","setState","handleBlur","componentDidMount","addTab","componentDidUpdate","activeTab","notifyUpdate","componentWillUnmount","removeTab","render","theme","renderMain","getIndicators","error","Boolean","warning","success","primary","children","Component","defaultProps","isActive","isVertical","vertical","orientationStyles","setRootNode","active","focus","__KONTUR_REACT_UI__","contextType","propTypes","node","bool","string","isRequired","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isKeyArrow, isKeyArrowLeft, isKeyArrowUp } from '../../lib/events/keyboard/identifiers';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Nullable } from '../../typings/utility-types';\nimport { isFunctionalComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { TabsContext, TabsContextType, TabsContextDefaultValue } from './TabsContext';\nimport { styles, horizontalStyles, verticalStyles, globalClasses } from './Tab.styles';\n\nexport interface TabIndicators {\n error: boolean;\n warning: boolean;\n success: boolean;\n primary: boolean;\n disabled: boolean;\n}\n\nexport const TabDataTids = {\n root: 'Tab__root',\n} as const;\n\nexport interface TabProps<T extends string = string> extends CommonProps {\n /**\n * Tab content\n */\n children?: React.ReactNode;\n\n /**\n * Component to use as a tab\n */\n component?: React.ComponentType<any> | string;\n\n /**\n * Link href\n */\n href?: string;\n\n /**\n * Tab identifier\n */\n id?: T;\n\n /**\n * Click event\n */\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /**\n * Click event\n */\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /**\n * Disabled indicator\n */\n disabled?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * Success indicator\n */\n success?: boolean;\n\n /**\n * Primary indicator\n */\n primary?: boolean;\n\n /**\n * Style property\n */\n style?: React.CSSProperties;\n}\n\nexport interface TabState {\n focusedByKeyboard: boolean;\n}\n\n/**\n * Tab element of Tabs component\n *\n * Can be used for creating custom tabs\n * ```js\n *\n * const RouteTab = (props) => (\n * <Tab id={props.to} component={RouteLink} {...props}/>\n * )\n *\n * const MyAwesomeTab = (props) => <Tab id={props.id}>8) {props.children}</Tab>\n * ```\n *\n * Works only inside Tabs component, otherwise throws\n */\n@rootNode\nexport class Tab<T extends string = string> extends React.Component<TabProps<T>, TabState> {\n public static __KONTUR_REACT_UI__ = 'Tab';\n\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n href: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n onKeyDown: PropTypes.func,\n };\n\n public static defaultProps = {\n component: 'a',\n href: '',\n };\n\n public state: TabState = {\n focusedByKeyboard: false,\n };\n\n private theme!: Theme;\n private tabComponent: Nullable<React.ReactElement<Tab<T>>> = null;\n private setRootNode!: TSetRootNode;\n\n constructor(props: TabProps<T>) {\n super(props);\n invariant(this.context !== TabsContextDefaultValue, 'Tab should be placed inside Tabs component');\n }\n\n public componentDidMount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.addTab(id, this.getTabInstance);\n }\n }\n\n public componentDidUpdate() {\n if (this.context.activeTab === this.props.id) {\n this.context.notifyUpdate();\n }\n }\n\n public componentWillUnmount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.removeTab(id);\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getIndicators() {\n return {\n error: Boolean(this.props.error),\n warning: Boolean(this.props.warning),\n success: Boolean(this.props.success),\n primary: Boolean(this.props.primary),\n disabled: Boolean(this.props.disabled),\n };\n }\n\n public getUnderlyingNode = () => this.tabComponent;\n\n private renderMain() {\n const {\n children,\n disabled,\n error,\n warning,\n success,\n primary,\n component: Component = Tab.defaultProps.component,\n href,\n } = this.props;\n\n let isActive = false;\n let isVertical = false;\n\n const id = this.getId();\n if (typeof id === 'string') {\n isActive = this.context.activeTab === this.getId();\n isVertical = this.context.vertical;\n }\n const orientationStyles = isVertical ? verticalStyles : horizontalStyles;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Component\n data-tid={TabDataTids.root}\n className={cx({\n [styles.root(this.theme)]: true,\n [styles.vertical(this.theme)]: !!isVertical,\n [orientationStyles.primary(this.theme)]: !!primary,\n [orientationStyles.success(this.theme)]: !!success,\n [orientationStyles.warning(this.theme)]: !!warning,\n [orientationStyles.error(this.theme)]: !!error,\n [styles.active()]: !!isActive,\n [orientationStyles.active(this.theme)]: !!isActive,\n [styles.disabled(this.theme)]: !!disabled,\n [orientationStyles.disabled()]: !!disabled,\n })}\n onBlur={this.handleBlur}\n onClick={this.switchTab}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n tabIndex={disabled ? -1 : 0}\n ref={isFunctionalComponent(Component) ? null : this.refTabComponent}\n href={href}\n >\n <ResizeDetector onResize={this.context.notifyUpdate}>{children}</ResizeDetector>\n {this.state.focusedByKeyboard && <div className={cx(styles.focus(this.theme), globalClasses.focus)} />}\n </Component>\n </CommonWrapper>\n );\n }\n\n private getId = () => this.props.id || this.props.href;\n\n private refTabComponent = (instance: React.ReactElement<any>) => {\n this.tabComponent = instance;\n };\n\n private getTabInstance = () => this;\n\n private switchTab = (event: React.MouseEvent<HTMLElement>) => {\n if (this.props.disabled) {\n event.preventDefault();\n return;\n }\n\n const id = this.props.id || this.props.href;\n if (this.props.onClick) {\n this.props.onClick(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n if (typeof id === 'string') {\n this.context.switchTab(id);\n }\n if (this.props.component === 'a' && !this.props.href) {\n event.preventDefault();\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n if (e.defaultPrevented) {\n return;\n }\n }\n const id = this.getId();\n if (typeof id !== 'string') {\n return;\n }\n if (!isKeyArrow(e)) {\n return;\n }\n e.preventDefault();\n const delta = isKeyArrowLeft(e) || isKeyArrowUp(e) ? -1 : 1;\n this.context.shiftFocus(id, delta);\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n // focus event fires before keyDown eventlistener\n // so we should check focusKeyPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed || keyListener.isArrowPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n };\n\n private handleBlur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focusedByKeyboard: false });\n };\n}\n"]}
1
+ {"version":3,"sources":["Tab.tsx"],"names":["React","PropTypes","invariant","ResizeDetector","isKeyArrow","isKeyArrowLeft","isKeyArrowUp","keyListener","isFunctionalComponent","ThemeContext","CommonWrapper","cx","rootNode","createPropsGetter","TabsContext","TabsContextDefaultValue","styles","horizontalStyles","verticalStyles","globalClasses","TabDataTids","root","Tab","props","context","getProps","defaultProps","state","focusedByKeyboard","tabComponent","getUnderlyingNode","getId","id","href","refTabComponent","instance","getTabInstance","switchTab","event","disabled","preventDefault","component","onClick","defaultPrevented","handleKeyDown","e","onKeyDown","delta","shiftFocus","handleFocus","requestAnimationFrame","isTabPressed","isArrowPressed","setState","handleBlur","componentDidMount","addTab","componentDidUpdate","activeTab","notifyUpdate","componentWillUnmount","removeTab","render","theme","renderMain","getIndicators","error","Boolean","warning","success","primary","children","Component","isActive","isVertical","vertical","orientationStyles","setRootNode","active","focus","__KONTUR_REACT_UI__","contextType","propTypes","node","bool","string","isRequired","func"],"mappings":"iPAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,SAAP,MAAsB,WAAtB;;AAEA,SAASC,cAAT,QAA+B,+BAA/B;AACA,SAASC,UAAT,EAAqBC,cAArB,EAAqCC,YAArC,QAAyD,uCAAzD;AACA,SAASC,WAAT,QAA4B,8BAA5B;;AAEA,SAASC,qBAAT,QAAsC,iBAAtC;AACA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAAsBC,aAAtB,QAA2C,8BAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,QAAT,QAAuC,oBAAvC;AACA,SAASC,iBAAT,QAAkC,6BAAlC;;AAEA,SAASC,WAAT,EAAuCC,uBAAvC,QAAsE,eAAtE;AACA,SAASC,MAAT,EAAiBC,gBAAjB,EAAmCC,cAAnC,EAAmDC,aAAnD,QAAwE,cAAxE;;;;;;;;;;AAUA,OAAO,IAAMC,WAAW,GAAG;AACzBC,EAAAA,IAAI,EAAE,WADmB,EAApB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwFP,OAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAEA,IAAaC,GAAb,GADCV,QACD;;;;;;;;;;;;;;;AA6BE,eAAYW,KAAZ,EAAgC;AAC9B,wCAAMA,KAAN,UAD8B,MAzBzBC,OAyByB,GAzBE,MAAKA,OAyBP,OAVxBC,QAUwB,GAVbZ,iBAAiB,CAACS,GAAG,CAACI,YAAL,CAUJ,OARzBC,KAQyB,GARP,EACvBC,iBAAiB,EAAE,KADI,EAQO,OAHxBC,YAGwB,GAH6B,IAG7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CzBC,IAAAA,iBA9CyB,GA8CL,oBAAM,MAAKD,YAAX,EA9CK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6FxBE,IAAAA,KA7FwB,GA6FhB,oBAAM,MAAKR,KAAL,CAAWS,EAAX,IAAiB,MAAKP,QAAL,GAAgBQ,IAAvC,EA7FgB;;AA+FxBC,IAAAA,eA/FwB,GA+FN,UAACC,QAAD,EAAuC;AAC/D,YAAKN,YAAL,GAAoBM,QAApB;AACD,KAjG+B;;AAmGxBC,IAAAA,cAnGwB,GAmGP,mDAnGO;;AAqGxBC,IAAAA,SArGwB,GAqGZ,UAACC,KAAD,EAA0C;AAC5D,UAAI,MAAKf,KAAL,CAAWgB,QAAf,EAAyB;AACvBD,QAAAA,KAAK,CAACE,cAAN;AACA;AACD;AACD,2BAA4B,MAAKf,QAAL,EAA5B,CAAQQ,IAAR,kBAAQA,IAAR,CAAcQ,SAAd,kBAAcA,SAAd;;AAEA,UAAMT,EAAE,GAAG,MAAKT,KAAL,CAAWS,EAAX,IAAiBC,IAA5B;AACA,UAAI,MAAKV,KAAL,CAAWmB,OAAf,EAAwB;AACtB,cAAKnB,KAAL,CAAWmB,OAAX,CAAmBJ,KAAnB;AACA,YAAIA,KAAK,CAACK,gBAAV,EAA4B;AAC1B;AACD;AACF;AACD,UAAI,OAAOX,EAAP,KAAc,QAAlB,EAA4B;AAC1B,cAAKR,OAAL,CAAaa,SAAb,CAAuBL,EAAvB;AACD;AACD,UAAIS,SAAS,KAAK,GAAd,IAAqB,CAACR,IAA1B,EAAgC;AAC9BK,QAAAA,KAAK,CAACE,cAAN;AACD;AACF,KAzH+B;;AA2HxBI,IAAAA,aA3HwB,GA2HR,UAACC,CAAD,EAAyC;AAC/D,UAAI,MAAKtB,KAAL,CAAWgB,QAAf,EAAyB;AACvB;AACD;;AAED,UAAI,MAAKhB,KAAL,CAAWuB,SAAf,EAA0B;AACxB,cAAKvB,KAAL,CAAWuB,SAAX,CAAqBD,CAArB;AACA,YAAIA,CAAC,CAACF,gBAAN,EAAwB;AACtB;AACD;AACF;AACD,UAAMX,EAAE,GAAG,MAAKD,KAAL,EAAX;AACA,UAAI,OAAOC,EAAP,KAAc,QAAlB,EAA4B;AAC1B;AACD;AACD,UAAI,CAAC5B,UAAU,CAACyC,CAAD,CAAf,EAAoB;AAClB;AACD;AACDA,MAAAA,CAAC,CAACL,cAAF;AACA,UAAMO,KAAK,GAAG1C,cAAc,CAACwC,CAAD,CAAd,IAAqBvC,YAAY,CAACuC,CAAD,CAAjC,GAAuC,CAAC,CAAxC,GAA4C,CAA1D;AACA,YAAKrB,OAAL,CAAawB,UAAb,CAAwBhB,EAAxB,EAA4Be,KAA5B;AACD,KAhJ+B;;AAkJxBE,IAAAA,WAlJwB,GAkJV,YAAM;AAC1B,UAAI,MAAK1B,KAAL,CAAWgB,QAAf,EAAyB;AACvB;AACD;;AAED;AACA;AACAW,MAAAA,qBAAqB,CAAC,YAAM;AAC1B,YAAI3C,WAAW,CAAC4C,YAAZ,IAA4B5C,WAAW,CAAC6C,cAA5C,EAA4D;AAC1D,gBAAKC,QAAL,CAAc,EAAEzB,iBAAiB,EAAE,IAArB,EAAd;AACD;AACF,OAJoB,CAArB;AAKD,KA9J+B;;AAgKxB0B,IAAAA,UAhKwB,GAgKX,YAAM;AACzB,UAAI,MAAK/B,KAAL,CAAWgB,QAAf,EAAyB;AACvB;AACD;;AAED,YAAKc,QAAL,CAAc,EAAEzB,iBAAiB,EAAE,KAArB,EAAd;AACD,KAtK+B,CAE9B1B,SAAS,CAAC,MAAKsB,OAAL,KAAiBT,uBAAlB,EAA2C,4CAA3C,CAAT,CAF8B,aAG/B,CAhCH,kCAkCSwC,iBAlCT,GAkCE,6BAA2B,CACzB,IAAMvB,EAAE,GAAG,KAAKD,KAAL,EAAX,CACA,IAAI,OAAOC,EAAP,KAAc,QAAlB,EAA4B,CAC1B,KAAKR,OAAL,CAAagC,MAAb,CAAoBxB,EAApB,EAAwB,KAAKI,cAA7B,EACD,CACF,CAvCH,QAyCSqB,kBAzCT,GAyCE,8BAA4B,CAC1B,IAAI,KAAKjC,OAAL,CAAakC,SAAb,KAA2B,KAAKnC,KAAL,CAAWS,EAA1C,EAA8C,CAC5C,KAAKR,OAAL,CAAamC,YAAb,GACD,CACF,CA7CH,QA+CSC,oBA/CT,GA+CE,gCAA8B,CAC5B,IAAM5B,EAAE,GAAG,KAAKD,KAAL,EAAX,CACA,IAAI,OAAOC,EAAP,KAAc,QAAlB,EAA4B,CAC1B,KAAKR,OAAL,CAAaqC,SAAb,CAAuB7B,EAAvB,EACD,CACF,CApDH,QAsDS8B,MAtDT,GAsDE,kBAAgB,mBACd,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACC,UAAL,EAAP,CACD,CAJH,CADF,CAQD,CA/DH,QAiESC,aAjET,GAiEE,yBAAuB,CACrB,OAAO,EACLC,KAAK,EAAEC,OAAO,CAAC,KAAK5C,KAAL,CAAW2C,KAAZ,CADT,EAELE,OAAO,EAAED,OAAO,CAAC,KAAK5C,KAAL,CAAW6C,OAAZ,CAFX,EAGLC,OAAO,EAAEF,OAAO,CAAC,KAAK5C,KAAL,CAAW8C,OAAZ,CAHX,EAILC,OAAO,EAAEH,OAAO,CAAC,KAAK5C,KAAL,CAAW+C,OAAZ,CAJX,EAKL/B,QAAQ,EAAE4B,OAAO,CAAC,KAAK5C,KAAL,CAAWgB,QAAZ,CALZ,EAAP,CAOD,CAzEH,QA6EUyB,UA7EV,GA6EE,sBAAqB,SACnB,kBAAiE,KAAKzC,KAAtE,CAAQgD,QAAR,eAAQA,QAAR,CAAkBhC,QAAlB,eAAkBA,QAAlB,CAA4B2B,KAA5B,eAA4BA,KAA5B,CAAmCE,OAAnC,eAAmCA,OAAnC,CAA4CC,OAA5C,eAA4CA,OAA5C,CAAqDC,OAArD,eAAqDA,OAArD,CACA,sBAAuC,KAAK7C,QAAL,EAAvC,CAAmB+C,SAAnB,mBAAQ/B,SAAR,CAA8BR,IAA9B,mBAA8BA,IAA9B,CAEA,IAAIwC,QAAQ,GAAG,KAAf,CACA,IAAIC,UAAU,GAAG,KAAjB,CAEA,IAAM1C,EAAE,GAAG,KAAKD,KAAL,EAAX,CACA,IAAI,OAAOC,EAAP,KAAc,QAAlB,EAA4B,CAC1ByC,QAAQ,GAAG,KAAKjD,OAAL,CAAakC,SAAb,KAA2B,KAAK3B,KAAL,EAAtC,CACA2C,UAAU,GAAG,KAAKlD,OAAL,CAAamD,QAA1B,CACD,CACD,IAAMC,iBAAiB,GAAGF,UAAU,GAAGxD,cAAH,GAAoBD,gBAAxD,CAEA,oBACE,oBAAC,aAAD,aAAe,WAAW,EAAE,KAAK4D,WAAjC,IAAkD,KAAKtD,KAAvD,gBACE,oBAAC,SAAD,IACE,YAAUH,WAAW,CAACC,IADxB,EAEE,SAAS,EAAEV,EAAE,gBACVK,MAAM,CAACK,IAAP,CAAY,KAAK0C,KAAjB,CADU,IACgB,IADhB,MAEV/C,MAAM,CAAC2D,QAAP,CAAgB,KAAKZ,KAArB,CAFU,IAEoB,CAAC,CAACW,UAFtB,MAGVE,iBAAiB,CAACN,OAAlB,CAA0B,KAAKP,KAA/B,CAHU,IAG8B,CAAC,CAACO,OAHhC,MAIVM,iBAAiB,CAACP,OAAlB,CAA0B,KAAKN,KAA/B,CAJU,IAI8B,CAAC,CAACM,OAJhC,MAKVO,iBAAiB,CAACR,OAAlB,CAA0B,KAAKL,KAA/B,CALU,IAK8B,CAAC,CAACK,OALhC,MAMVQ,iBAAiB,CAACV,KAAlB,CAAwB,KAAKH,KAA7B,CANU,IAM4B,CAAC,CAACG,KAN9B,MAOVlD,MAAM,CAAC8D,MAAP,EAPU,IAOQ,CAAC,CAACL,QAPV,MAQVG,iBAAiB,CAACE,MAAlB,CAAyB,KAAKf,KAA9B,CARU,IAQ6B,CAAC,CAACU,QAR/B,MASVzD,MAAM,CAACuB,QAAP,CAAgB,KAAKwB,KAArB,CATU,IASoB,CAAC,CAACxB,QATtB,MAUVqC,iBAAiB,CAACrC,QAAlB,EAVU,IAUqB,CAAC,CAACA,QAVvB,OAFf,EAcE,MAAM,EAAE,KAAKe,UAdf,EAeE,OAAO,EAAE,KAAKjB,SAfhB,EAgBE,OAAO,EAAE,KAAKY,WAhBhB,EAiBE,SAAS,EAAE,KAAKL,aAjBlB,EAkBE,QAAQ,EAAEL,QAAQ,GAAG,CAAC,CAAJ,GAAQ,CAlB5B,EAmBE,GAAG,EAAE/B,qBAAqB,CAACgE,SAAD,CAArB,GAAmC,IAAnC,GAA0C,KAAKtC,eAnBtD,EAoBE,IAAI,EAAED,IApBR,iBAsBE,oBAAC,cAAD,IAAgB,QAAQ,EAAE,KAAKT,OAAL,CAAamC,YAAvC,IAAsDY,QAAtD,CAtBF,EAuBG,KAAK5C,KAAL,CAAWC,iBAAX,iBAAgC,6BAAK,SAAS,EAAEjB,EAAE,CAACK,MAAM,CAAC+D,KAAP,CAAa,KAAKhB,KAAlB,CAAD,EAA2B5C,aAAa,CAAC4D,KAAzC,CAAlB,GAvBnC,CADF,CADF,CA6BD,CAxHH,cAAoD/E,KAAK,CAACwE,SAA1D,WACgBQ,mBADhB,GACsC,KADtC,UAGgBC,WAHhB,GAG8BnE,WAH9B,UAMgBoE,SANhB,GAM4B,EACxBX,QAAQ,EAAEtE,SAAS,CAACkF,IADI,EAExB5C,QAAQ,EAAEtC,SAAS,CAACmF,IAFI,EAGxBnD,IAAI,EAAEhC,SAAS,CAACoF,MAAV,CAAiBC,UAHC,EAIxB5C,OAAO,EAAEzC,SAAS,CAACsF,IAJK,EAKxBzC,SAAS,EAAE7C,SAAS,CAACsF,IALG,EAN5B,UAcgB7D,YAdhB,GAc6C,EACzCe,SAAS,EAAE,GAD8B,EAEzCR,IAAI,EAAE,EAFmC,EAd7C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isKeyArrow, isKeyArrowLeft, isKeyArrowUp } from '../../lib/events/keyboard/identifiers';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Nullable } from '../../typings/utility-types';\nimport { isFunctionalComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { TabsContext, TabsContextType, TabsContextDefaultValue } from './TabsContext';\nimport { styles, horizontalStyles, verticalStyles, globalClasses } from './Tab.styles';\n\nexport interface TabIndicators {\n error: boolean;\n warning: boolean;\n success: boolean;\n primary: boolean;\n disabled: boolean;\n}\n\nexport const TabDataTids = {\n root: 'Tab__root',\n} as const;\n\nexport interface TabProps<T extends string = string> extends CommonProps {\n /**\n * Tab content\n */\n children?: React.ReactNode;\n\n /**\n * Component to use as a tab\n */\n component?: React.ComponentType<any> | string;\n\n /**\n * Link href\n */\n href?: string;\n\n /**\n * Tab identifier\n */\n id?: T;\n\n /**\n * Click event\n */\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /**\n * Click event\n */\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /**\n * Disabled indicator\n */\n disabled?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * Success indicator\n */\n success?: boolean;\n\n /**\n * Primary indicator\n */\n primary?: boolean;\n\n /**\n * Style property\n */\n style?: React.CSSProperties;\n}\n\nexport interface TabState {\n focusedByKeyboard: boolean;\n}\n\ntype DefaultProps = Required<Pick<TabProps, 'component' | 'href'>>;\n\n/**\n * Tab element of Tabs component\n *\n * Can be used for creating custom tabs\n * ```js\n *\n * const RouteTab = (props) => (\n * <Tab id={props.to} component={RouteLink} {...props}/>\n * )\n *\n * const MyAwesomeTab = (props) => <Tab id={props.id}>8) {props.children}</Tab>\n * ```\n *\n * Works only inside Tabs component, otherwise throws\n */\n@rootNode\nexport class Tab<T extends string = string> extends React.Component<TabProps<T>, TabState> {\n public static __KONTUR_REACT_UI__ = 'Tab';\n\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n href: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n onKeyDown: PropTypes.func,\n };\n\n public static defaultProps: DefaultProps = {\n component: 'a',\n href: '',\n };\n\n private getProps = createPropsGetter(Tab.defaultProps);\n\n public state: TabState = {\n focusedByKeyboard: false,\n };\n\n private theme!: Theme;\n private tabComponent: Nullable<React.ReactElement<Tab<T>>> = null;\n private setRootNode!: TSetRootNode;\n\n constructor(props: TabProps<T>) {\n super(props);\n invariant(this.context !== TabsContextDefaultValue, 'Tab should be placed inside Tabs component');\n }\n\n public componentDidMount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.addTab(id, this.getTabInstance);\n }\n }\n\n public componentDidUpdate() {\n if (this.context.activeTab === this.props.id) {\n this.context.notifyUpdate();\n }\n }\n\n public componentWillUnmount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.removeTab(id);\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getIndicators() {\n return {\n error: Boolean(this.props.error),\n warning: Boolean(this.props.warning),\n success: Boolean(this.props.success),\n primary: Boolean(this.props.primary),\n disabled: Boolean(this.props.disabled),\n };\n }\n\n public getUnderlyingNode = () => this.tabComponent;\n\n private renderMain() {\n const { children, disabled, error, warning, success, primary } = this.props;\n const { component: Component, href } = this.getProps();\n\n let isActive = false;\n let isVertical = false;\n\n const id = this.getId();\n if (typeof id === 'string') {\n isActive = this.context.activeTab === this.getId();\n isVertical = this.context.vertical;\n }\n const orientationStyles = isVertical ? verticalStyles : horizontalStyles;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Component\n data-tid={TabDataTids.root}\n className={cx({\n [styles.root(this.theme)]: true,\n [styles.vertical(this.theme)]: !!isVertical,\n [orientationStyles.primary(this.theme)]: !!primary,\n [orientationStyles.success(this.theme)]: !!success,\n [orientationStyles.warning(this.theme)]: !!warning,\n [orientationStyles.error(this.theme)]: !!error,\n [styles.active()]: !!isActive,\n [orientationStyles.active(this.theme)]: !!isActive,\n [styles.disabled(this.theme)]: !!disabled,\n [orientationStyles.disabled()]: !!disabled,\n })}\n onBlur={this.handleBlur}\n onClick={this.switchTab}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n tabIndex={disabled ? -1 : 0}\n ref={isFunctionalComponent(Component) ? null : this.refTabComponent}\n href={href}\n >\n <ResizeDetector onResize={this.context.notifyUpdate}>{children}</ResizeDetector>\n {this.state.focusedByKeyboard && <div className={cx(styles.focus(this.theme), globalClasses.focus)} />}\n </Component>\n </CommonWrapper>\n );\n }\n\n private getId = () => this.props.id || this.getProps().href;\n\n private refTabComponent = (instance: React.ReactElement<any>) => {\n this.tabComponent = instance;\n };\n\n private getTabInstance = () => this;\n\n private switchTab = (event: React.MouseEvent<HTMLElement>) => {\n if (this.props.disabled) {\n event.preventDefault();\n return;\n }\n const { href, component } = this.getProps();\n\n const id = this.props.id || href;\n if (this.props.onClick) {\n this.props.onClick(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n if (typeof id === 'string') {\n this.context.switchTab(id);\n }\n if (component === 'a' && !href) {\n event.preventDefault();\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n if (e.defaultPrevented) {\n return;\n }\n }\n const id = this.getId();\n if (typeof id !== 'string') {\n return;\n }\n if (!isKeyArrow(e)) {\n return;\n }\n e.preventDefault();\n const delta = isKeyArrowLeft(e) || isKeyArrowUp(e) ? -1 : 1;\n this.context.shiftFocus(id, delta);\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n // focus event fires before keyDown eventlistener\n // so we should check focusKeyPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed || keyListener.isArrowPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n };\n\n private handleBlur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focusedByKeyboard: false });\n };\n}\n"]}
@@ -66,6 +66,7 @@ export interface TabProps<T extends string = string> extends CommonProps {
66
66
  export interface TabState {
67
67
  focusedByKeyboard: boolean;
68
68
  }
69
+ declare type DefaultProps = Required<Pick<TabProps, 'component' | 'href'>>;
69
70
  /**
70
71
  * Tab element of Tabs component
71
72
  *
@@ -92,10 +93,8 @@ export declare class Tab<T extends string = string> extends React.Component<TabP
92
93
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
93
94
  onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
94
95
  };
95
- static defaultProps: {
96
- component: string;
97
- href: string;
98
- };
96
+ static defaultProps: DefaultProps;
97
+ private getProps;
99
98
  state: TabState;
100
99
  private theme;
101
100
  private tabComponent;
@@ -122,3 +121,4 @@ export declare class Tab<T extends string = string> extends React.Component<TabP
122
121
  private handleFocus;
123
122
  private handleBlur;
124
123
  }
124
+ export {};
@@ -11,6 +11,7 @@ import { CommonWrapper } from "../../../internal/CommonWrapper";
11
11
  import { cx } from "../../../lib/theming/Emotion";
12
12
  import { getRootNode } from "../../../lib/rootNode/getRootNode";
13
13
  import { rootNode } from "../../../lib/rootNode";
14
+ import { createPropsGetter } from "../../../lib/createPropsGetter";
14
15
  import { Indicator } from "../Indicator";
15
16
  import { styles } from "../Tabs.styles";
16
17
  import { TabsContext } from "../TabsContext";
@@ -19,13 +20,13 @@ export var TabsDataTids = {
19
20
  root: 'Tabs__root',
20
21
  indicatorRoot: 'Indicator__root'
21
22
  };
23
+ export
22
24
  /**
23
- * Tabs wrapper
24
- *
25
- * contains static property `Tab`
26
- */
27
-
28
- export var Tabs = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
25
+ * Tabs wrapper
26
+ *
27
+ * contains static property `Tab`
28
+ */
29
+ var Tabs = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
29
30
  _inheritsLoose(Tabs, _React$Component);
30
31
 
31
32
  function Tabs() {
@@ -36,6 +37,7 @@ export var Tabs = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_R
36
37
  }
37
38
 
38
39
  _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
40
+ _this.getProps = createPropsGetter(Tabs.defaultProps);
39
41
  _this.tabs = [];
40
42
  _this.tabUpdates = {
41
43
  on: function on(cb) {
@@ -113,11 +115,11 @@ export var Tabs = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_R
113
115
  var _this2 = this;
114
116
 
115
117
  var _this$props2 = this.props,
116
- vertical = _this$props2.vertical,
117
118
  value = _this$props2.value,
118
119
  width = _this$props2.width,
119
120
  children = _this$props2.children,
120
121
  indicatorClassName = _this$props2.indicatorClassName;
122
+ var vertical = this.getProps().vertical;
121
123
  return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
122
124
  _this2.theme = theme;
123
125
  return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
@@ -142,7 +144,7 @@ export var Tabs = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_R
142
144
  }, children, /*#__PURE__*/React.createElement(Indicator, {
143
145
  className: indicatorClassName,
144
146
  tabUpdates: _this2.tabUpdates,
145
- vertical: vertical
147
+ vertical: _this2.getProps().vertical
146
148
  }))));
147
149
  });
148
150
  };