@skbkontur/react-ui 4.0.6 → 4.1.2-fix-zindex

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 (822) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/README.md +1 -1
  3. package/cjs/components/Autocomplete/Autocomplete.d.ts +3 -0
  4. package/cjs/components/Autocomplete/Autocomplete.js +20 -7
  5. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/Button/Button.d.ts +4 -5
  7. package/cjs/components/Button/Button.js +8 -12
  8. package/cjs/components/Button/Button.js.map +1 -1
  9. package/cjs/components/Center/Center.d.ts +3 -0
  10. package/cjs/components/Center/Center.js +8 -3
  11. package/cjs/components/Center/Center.js.map +1 -1
  12. package/cjs/components/Checkbox/Checkbox.d.ts +8 -0
  13. package/cjs/components/Checkbox/Checkbox.js +37 -3
  14. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  15. package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -0
  16. package/cjs/components/Checkbox/Checkbox.styles.js +27 -24
  17. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  18. package/cjs/components/CurrencyInput/CurrencyHelper.js +18 -12
  19. package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  20. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +3 -0
  21. package/cjs/components/CurrencyInput/CurrencyInput.js +23 -10
  22. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  23. package/cjs/components/CurrencyInput/CurrencyInputHelper.js +7 -5
  24. package/cjs/components/CurrencyInput/CurrencyInputHelper.js.map +1 -1
  25. package/cjs/components/CurrencyInput/CursorHelper.js +19 -16
  26. package/cjs/components/CurrencyInput/CursorHelper.js.map +1 -1
  27. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
  28. package/cjs/components/CurrencyLabel/CurrencyLabel.js +6 -2
  29. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  30. package/cjs/components/DateInput/DateInput.js +5 -1
  31. package/cjs/components/DateInput/DateInput.js.map +1 -1
  32. package/cjs/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
  33. package/cjs/components/DateInput/helpers/InternalDateMediator.js +12 -2
  34. package/cjs/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
  35. package/cjs/components/DateInput/helpers/inputNumber.d.ts +1 -1
  36. package/cjs/components/DateInput/helpers/inputNumber.js +45 -12
  37. package/cjs/components/DateInput/helpers/inputNumber.js.map +1 -1
  38. package/cjs/components/DatePicker/DatePicker.d.ts +5 -0
  39. package/cjs/components/DatePicker/DatePicker.js +14 -3
  40. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  41. package/cjs/components/DatePicker/Picker.js +7 -2
  42. package/cjs/components/DatePicker/Picker.js.map +1 -1
  43. package/cjs/components/Dropdown/Dropdown.d.ts +3 -0
  44. package/cjs/components/Dropdown/Dropdown.js +7 -2
  45. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  46. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -4
  47. package/cjs/components/DropdownMenu/DropdownMenu.js +2 -16
  48. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  49. package/cjs/components/FileUploader/FileUploader.d.ts +5 -0
  50. package/cjs/components/FileUploader/FileUploader.js +18 -9
  51. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  52. package/cjs/components/FileUploader/FileUploader.styles.d.ts +3 -2
  53. package/cjs/components/FileUploader/FileUploader.styles.js +21 -15
  54. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
  55. package/cjs/components/FxInput/FxInput.d.ts +3 -0
  56. package/cjs/components/FxInput/FxInput.js +7 -3
  57. package/cjs/components/FxInput/FxInput.js.map +1 -1
  58. package/cjs/components/Gapped/Gapped.d.ts +4 -0
  59. package/cjs/components/Gapped/Gapped.js +13 -7
  60. package/cjs/components/Gapped/Gapped.js.map +1 -1
  61. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +3 -0
  62. package/cjs/components/GlobalLoader/GlobalLoader.js +9 -7
  63. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  64. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js +5 -7
  65. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js.map +1 -1
  66. package/cjs/components/Group/Group.d.ts +3 -0
  67. package/cjs/components/Group/Group.js +80 -33
  68. package/cjs/components/Group/Group.js.map +1 -1
  69. package/cjs/components/Input/Input.d.ts +4 -5
  70. package/cjs/components/Input/Input.js +21 -24
  71. package/cjs/components/Input/Input.js.map +1 -1
  72. package/cjs/components/Kebab/Kebab.d.ts +2 -13
  73. package/cjs/components/Kebab/Kebab.js +5 -29
  74. package/cjs/components/Kebab/Kebab.js.map +1 -1
  75. package/cjs/components/Link/Link.d.ts +3 -0
  76. package/cjs/components/Link/Link.js +7 -3
  77. package/cjs/components/Link/Link.js.map +1 -1
  78. package/cjs/components/Loader/Loader.d.ts +4 -0
  79. package/cjs/components/Loader/Loader.js +8 -3
  80. package/cjs/components/Loader/Loader.js.map +1 -1
  81. package/cjs/components/MenuHeader/MenuHeader.d.ts +3 -0
  82. package/cjs/components/MenuHeader/MenuHeader.js +7 -2
  83. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  84. package/cjs/components/MenuItem/MenuItem.d.ts +4 -0
  85. package/cjs/components/MenuItem/MenuItem.js +10 -4
  86. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  87. package/cjs/components/MenuItem/MenuItem.styles.js +3 -2
  88. package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
  89. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +3 -0
  90. package/cjs/components/MenuSeparator/MenuSeparator.js +7 -3
  91. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  92. package/cjs/components/Modal/Modal.d.ts +5 -0
  93. package/cjs/components/Modal/Modal.js +10 -3
  94. package/cjs/components/Modal/Modal.js.map +1 -1
  95. package/cjs/components/Modal/Modal.styles.js +10 -6
  96. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  97. package/cjs/components/Modal/ModalClose.js +3 -2
  98. package/cjs/components/Modal/ModalClose.js.map +1 -1
  99. package/cjs/components/Modal/ModalFooter.d.ts +3 -0
  100. package/cjs/components/Modal/ModalFooter.js +8 -3
  101. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  102. package/cjs/components/Modal/ModalHeader.d.ts +3 -0
  103. package/cjs/components/Modal/ModalHeader.js +9 -3
  104. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  105. package/cjs/components/Paging/Paging.d.ts +20 -3
  106. package/cjs/components/Paging/Paging.js +29 -10
  107. package/cjs/components/Paging/Paging.js.map +1 -1
  108. package/cjs/components/Paging/PagingDefaultComponent.d.ts +9 -0
  109. package/cjs/components/Paging/PagingDefaultComponent.js +21 -0
  110. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -0
  111. package/cjs/components/PasswordInput/PasswordInput.d.ts +7 -0
  112. package/cjs/components/PasswordInput/PasswordInput.js +36 -11
  113. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  114. package/cjs/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  115. package/cjs/components/PasswordInput/PasswordInputIcon.js +15 -0
  116. package/cjs/components/PasswordInput/PasswordInputIcon.js.map +1 -0
  117. package/cjs/components/Radio/Radio.d.ts +3 -0
  118. package/cjs/components/Radio/Radio.js +7 -3
  119. package/cjs/components/Radio/Radio.js.map +1 -1
  120. package/cjs/components/Radio/Radio.styles.js +4 -7
  121. package/cjs/components/Radio/Radio.styles.js.map +1 -1
  122. package/cjs/components/RadioGroup/RadioGroup.d.ts +9 -0
  123. package/cjs/components/RadioGroup/RadioGroup.js +22 -5
  124. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  125. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +7 -2
  126. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  127. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +3 -4
  128. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  129. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +4 -0
  130. package/cjs/components/ScrollContainer/ScrollContainer.js +14 -4
  131. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  132. package/cjs/components/Select/Select.d.ts +3 -0
  133. package/cjs/components/Select/Select.js +43 -17
  134. package/cjs/components/Select/Select.js.map +1 -1
  135. package/cjs/components/SidePage/SidePage.d.ts +4 -0
  136. package/cjs/components/SidePage/SidePage.js +9 -3
  137. package/cjs/components/SidePage/SidePage.js.map +1 -1
  138. package/cjs/components/SidePage/SidePageBody.d.ts +3 -0
  139. package/cjs/components/SidePage/SidePageBody.js +10 -3
  140. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  141. package/cjs/components/SidePage/SidePageContainer.d.ts +3 -0
  142. package/cjs/components/SidePage/SidePageContainer.js +7 -2
  143. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  144. package/cjs/components/SidePage/SidePageFooter.d.ts +3 -0
  145. package/cjs/components/SidePage/SidePageFooter.js +11 -3
  146. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  147. package/cjs/components/SidePage/SidePageHeader.d.ts +4 -0
  148. package/cjs/components/SidePage/SidePageHeader.js +9 -4
  149. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  150. package/cjs/components/Spinner/Spinner.d.ts +3 -1
  151. package/cjs/components/Spinner/Spinner.js +8 -8
  152. package/cjs/components/Spinner/Spinner.js.map +1 -1
  153. package/cjs/components/Spinner/SpinnerFallbackAnimation.js +16 -5
  154. package/cjs/components/Spinner/SpinnerFallbackAnimation.js.map +1 -1
  155. package/cjs/components/Sticky/Sticky.d.ts +3 -0
  156. package/cjs/components/Sticky/Sticky.js +7 -3
  157. package/cjs/components/Sticky/Sticky.js.map +1 -1
  158. package/cjs/components/Switcher/Switcher.d.ts +3 -0
  159. package/cjs/components/Switcher/Switcher.js +7 -3
  160. package/cjs/components/Switcher/Switcher.js.map +1 -1
  161. package/cjs/components/Switcher/Switcher.styles.js +2 -2
  162. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  163. package/cjs/components/Tabs/Indicator.js +4 -2
  164. package/cjs/components/Tabs/Indicator.js.map +1 -1
  165. package/cjs/components/Tabs/Tab.d.ts +3 -0
  166. package/cjs/components/Tabs/Tab.js +7 -2
  167. package/cjs/components/Tabs/Tab.js.map +1 -1
  168. package/cjs/components/Tabs/Tabs.d.ts +4 -0
  169. package/cjs/components/Tabs/Tabs.js +12 -3
  170. package/cjs/components/Tabs/Tabs.js.map +1 -1
  171. package/cjs/components/Textarea/Textarea.d.ts +6 -2
  172. package/cjs/components/Textarea/Textarea.js +14 -9
  173. package/cjs/components/Textarea/Textarea.js.map +1 -1
  174. package/cjs/components/Textarea/TextareaCounter.d.ts +1 -2
  175. package/cjs/components/Textarea/TextareaCounter.js +21 -12
  176. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  177. package/cjs/components/Toast/Toast.d.ts +6 -0
  178. package/cjs/components/Toast/Toast.js +9 -2
  179. package/cjs/components/Toast/Toast.js.map +1 -1
  180. package/cjs/components/Toast/ToastStatic.js +1 -1
  181. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  182. package/cjs/components/Toast/ToastView.js +6 -5
  183. package/cjs/components/Toast/ToastView.js.map +1 -1
  184. package/cjs/components/Toast/ToastView.styles.d.ts +1 -1
  185. package/cjs/components/Toast/ToastView.styles.js +3 -2
  186. package/cjs/components/Toast/ToastView.styles.js.map +1 -1
  187. package/cjs/components/Toggle/Toggle.d.ts +4 -1
  188. package/cjs/components/Toggle/Toggle.js +7 -3
  189. package/cjs/components/Toggle/Toggle.js.map +1 -1
  190. package/cjs/components/Toggle/Toggle.styles.js +12 -10
  191. package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
  192. package/cjs/components/Token/Token.d.ts +3 -0
  193. package/cjs/components/Token/Token.js +20 -3
  194. package/cjs/components/Token/Token.js.map +1 -1
  195. package/cjs/components/Token/Token.styles.js +13 -6
  196. package/cjs/components/Token/Token.styles.js.map +1 -1
  197. package/cjs/components/TokenInput/TokenInput.d.ts +14 -0
  198. package/cjs/components/TokenInput/TokenInput.js +36 -13
  199. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  200. package/cjs/components/TokenInput/TokenInput.styles.js +3 -2
  201. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  202. package/cjs/components/TokenInput/TokenInputMenu.js +4 -3
  203. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  204. package/cjs/components/Tooltip/Tooltip.d.ts +3 -0
  205. package/cjs/components/Tooltip/Tooltip.js +12 -4
  206. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  207. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +4 -1
  208. package/cjs/components/TooltipMenu/TooltipMenu.js +9 -2
  209. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  210. package/cjs/hooks/useDrop.js +3 -1
  211. package/cjs/hooks/useDrop.js.map +1 -1
  212. package/cjs/index.d.ts +2 -0
  213. package/cjs/index.js +2 -0
  214. package/cjs/index.js.map +1 -1
  215. package/cjs/internal/Calendar/Calendar.d.ts +6 -0
  216. package/cjs/internal/Calendar/Calendar.js +12 -5
  217. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  218. package/cjs/internal/Calendar/CalendarDateShape.d.ts +1 -1
  219. package/cjs/internal/Calendar/MonthView.js +5 -4
  220. package/cjs/internal/Calendar/MonthView.js.map +1 -1
  221. package/cjs/internal/Calendar/MonthViewModel.js +36 -17
  222. package/cjs/internal/Calendar/MonthViewModel.js.map +1 -1
  223. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
  224. package/cjs/internal/CommonWrapper/CommonWrapper.js +7 -5
  225. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  226. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
  227. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +28 -5
  228. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  229. package/cjs/internal/CustomComboBox/ComboBoxView.js +4 -2
  230. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  231. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
  232. package/cjs/internal/CustomComboBox/CustomComboBox.js +9 -4
  233. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  234. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  235. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +35 -35
  236. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  237. package/cjs/internal/DataTids/DATATIDS.md +12 -0
  238. package/cjs/internal/DataTids/DataTids.d.ts +12 -0
  239. package/cjs/internal/DataTids/DataTids.js +46 -0
  240. package/cjs/internal/DataTids/DataTids.js.map +1 -0
  241. package/cjs/internal/DataTids/DataTids.styles.d.ts +7 -0
  242. package/cjs/internal/DataTids/DataTids.styles.js +41 -0
  243. package/cjs/internal/DataTids/DataTids.styles.js.map +1 -0
  244. package/cjs/internal/DataTids/componentsDataTids.d.ts +5 -0
  245. package/cjs/internal/DataTids/componentsDataTids.js +16 -0
  246. package/cjs/internal/DataTids/componentsDataTids.js.map +1 -0
  247. package/cjs/internal/DateSelect/DateSelect.d.ts +4 -0
  248. package/cjs/internal/DateSelect/DateSelect.js +28 -12
  249. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  250. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +3 -1
  251. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  252. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +7 -0
  253. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +14 -6
  254. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  255. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +3 -0
  256. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +6 -2
  257. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  258. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +14 -10
  259. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  260. package/cjs/internal/InputLikeText/InputLikeText.d.ts +5 -1
  261. package/cjs/internal/InputLikeText/InputLikeText.js +10 -4
  262. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  263. package/cjs/internal/InternalMenu/InternalMenu.d.ts +3 -0
  264. package/cjs/internal/InternalMenu/InternalMenu.js +10 -12
  265. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  266. package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -2
  267. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  268. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  269. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js +16 -0
  270. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  271. package/cjs/internal/MaskedInput/MaskedInput.d.ts +3 -0
  272. package/cjs/internal/MaskedInput/MaskedInput.js +16 -5
  273. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  274. package/cjs/internal/Menu/Menu.d.ts +3 -0
  275. package/cjs/internal/Menu/Menu.js +22 -21
  276. package/cjs/internal/Menu/Menu.js.map +1 -1
  277. package/cjs/internal/Menu/Menu.styles.js +5 -3
  278. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  279. package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
  280. package/cjs/internal/MobilePopup/MobilePopup.js +10 -3
  281. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  282. package/cjs/internal/Popup/Popup.d.ts +6 -0
  283. package/cjs/internal/Popup/Popup.js +18 -13
  284. package/cjs/internal/Popup/Popup.js.map +1 -1
  285. package/cjs/internal/Popup/PopupPin.js +2 -1
  286. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  287. package/cjs/internal/PopupMenu/PopupMenu.d.ts +8 -0
  288. package/cjs/internal/PopupMenu/PopupMenu.js +22 -4
  289. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  290. package/cjs/internal/PopupMenu/validatePositions.js +6 -6
  291. package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
  292. package/cjs/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
  293. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  294. package/cjs/internal/RenderContainer/RenderInnerContainer.js +9 -1
  295. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  296. package/cjs/internal/RenderLayer/RenderLayer.js +4 -1
  297. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  298. package/cjs/internal/ThemePlayground/Playground.js +11 -19
  299. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  300. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  301. package/cjs/internal/ThemePlayground/SizesGroup.js +20 -0
  302. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -0
  303. package/cjs/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
  304. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -2
  305. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  306. package/cjs/internal/ThemePlayground/ThemeEditor.js +6 -1
  307. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  308. package/cjs/internal/ThemePlayground/VariableValue.js +18 -6
  309. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  310. package/cjs/internal/ThemePlayground/constants.d.ts +3 -1
  311. package/cjs/internal/ThemePlayground/constants.js +3 -1
  312. package/cjs/internal/ThemePlayground/constants.js.map +1 -1
  313. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +4 -7
  314. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  315. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  316. package/cjs/internal/ThemeShowcase/VariablesCollector.js +5 -6
  317. package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
  318. package/cjs/internal/ZIndex/ZIndex.d.ts +8 -0
  319. package/cjs/internal/ZIndex/ZIndex.js +25 -3
  320. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  321. package/cjs/internal/ZIndex/ZIndexStorage.d.ts +2 -1
  322. package/cjs/internal/ZIndex/ZIndexStorage.js +13 -6
  323. package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
  324. package/cjs/internal/icons/16px/index.d.ts +19 -19
  325. package/cjs/internal/icons/16px/index.js +45 -38
  326. package/cjs/internal/icons/16px/index.js.map +1 -1
  327. package/cjs/internal/icons/20px/svg.js +6 -0
  328. package/cjs/internal/icons/20px/svg.js.map +1 -1
  329. package/cjs/internal/themes/DefaultTheme.d.ts +20 -1
  330. package/cjs/internal/themes/DefaultTheme.js +40 -5
  331. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  332. package/cjs/internal/themes/NotFlat.d.ts +6 -0
  333. package/cjs/internal/themes/NotFlat.js +12 -2
  334. package/cjs/internal/themes/NotFlat.js.map +1 -1
  335. package/cjs/internal/themes/Theme2022.d.ts +66 -0
  336. package/cjs/internal/themes/Theme2022.js +100 -0
  337. package/cjs/internal/themes/Theme2022.js.map +1 -0
  338. package/cjs/internal/themes/Theme2022Dark.d.ts +5 -0
  339. package/cjs/internal/themes/Theme2022Dark.js +9 -0
  340. package/cjs/internal/themes/Theme2022Dark.js.map +1 -0
  341. package/cjs/lib/animation/index.d.ts +1 -1
  342. package/cjs/lib/animation/index.js +3 -3
  343. package/cjs/lib/animation/index.js.map +1 -1
  344. package/cjs/lib/date/InternalDate.js +23 -9
  345. package/cjs/lib/date/InternalDate.js.map +1 -1
  346. package/cjs/lib/date/InternalDateCalculator.js +16 -2
  347. package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
  348. package/cjs/lib/date/InternalDateGetter.d.ts +1 -1
  349. package/cjs/lib/date/InternalDateGetter.js +27 -7
  350. package/cjs/lib/date/InternalDateGetter.js.map +1 -1
  351. package/cjs/lib/date/InternalDateTransformer.js +11 -2
  352. package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
  353. package/cjs/lib/date/InternalDateValidator.js +52 -17
  354. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  355. package/cjs/lib/date/types.d.ts +4 -0
  356. package/cjs/lib/date/types.js.map +1 -1
  357. package/cjs/lib/events/MouseDrag.js +5 -1
  358. package/cjs/lib/events/MouseDrag.js.map +1 -1
  359. package/cjs/lib/events/keyboard/extractCode.js +7 -5
  360. package/cjs/lib/events/keyboard/extractCode.js.map +1 -1
  361. package/cjs/lib/needsPolyfillPlaceholder.d.ts +6 -0
  362. package/cjs/lib/needsPolyfillPlaceholder.js +19 -0
  363. package/cjs/lib/needsPolyfillPlaceholder.js.map +1 -0
  364. package/cjs/lib/rootNode/getRootNode.d.ts +9 -0
  365. package/cjs/lib/rootNode/getRootNode.js +37 -8
  366. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  367. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +9 -1
  368. package/cjs/lib/rootNode/rootNodeDecorator.js +11 -2
  369. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  370. package/cjs/lib/stringUtils.js +3 -1
  371. package/cjs/lib/stringUtils.js.map +1 -1
  372. package/cjs/lib/styles/ColorFactory.js +9 -9
  373. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  374. package/cjs/lib/styles/ColorHelpers.d.ts +1 -0
  375. package/cjs/lib/styles/ColorHelpers.js +33 -10
  376. package/cjs/lib/styles/ColorHelpers.js.map +1 -1
  377. package/cjs/lib/styles/ColorObject.js +3 -2
  378. package/cjs/lib/styles/ColorObject.js.map +1 -1
  379. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  380. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js +9 -0
  381. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -0
  382. package/cjs/lib/taskWithDelayAndMinimalDuration.js +3 -1
  383. package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
  384. package/cjs/lib/theming/Emotion.js +5 -2
  385. package/cjs/lib/theming/Emotion.js.map +1 -1
  386. package/cjs/lib/theming/ThemeFactory.js +5 -1
  387. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  388. package/cjs/lib/theming/ThemeHelpers.js +7 -2
  389. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  390. package/cjs/lib/theming/themes/Theme2022.d.ts +1 -0
  391. package/cjs/lib/theming/themes/Theme2022.js +6 -0
  392. package/cjs/lib/theming/themes/Theme2022.js.map +1 -0
  393. package/cjs/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  394. package/cjs/lib/theming/themes/Theme2022Dark.js +9 -0
  395. package/cjs/lib/theming/themes/Theme2022Dark.js.map +1 -0
  396. package/cjs/lib/utils.d.ts +15 -0
  397. package/cjs/lib/utils.js +45 -9
  398. package/cjs/lib/utils.js.map +1 -1
  399. package/components/Autocomplete/Autocomplete/Autocomplete.js +16 -11
  400. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  401. package/components/Autocomplete/Autocomplete.d.ts +3 -0
  402. package/components/Button/Button/Button.js +8 -10
  403. package/components/Button/Button/Button.js.map +1 -1
  404. package/components/Button/Button.d.ts +4 -5
  405. package/components/Center/Center/Center.js +10 -5
  406. package/components/Center/Center/Center.js.map +1 -1
  407. package/components/Center/Center.d.ts +3 -0
  408. package/components/Checkbox/Checkbox/Checkbox.js +33 -2
  409. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  410. package/components/Checkbox/Checkbox.d.ts +8 -0
  411. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +22 -18
  412. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  413. package/components/Checkbox/Checkbox.styles.d.ts +1 -0
  414. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +12 -11
  415. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
  416. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +30 -17
  417. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  418. package/components/CurrencyInput/CurrencyInput.d.ts +3 -0
  419. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js +7 -1
  420. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js.map +1 -1
  421. package/components/CurrencyInput/CursorHelper/CursorHelper.js +18 -11
  422. package/components/CurrencyInput/CursorHelper/CursorHelper.js.map +1 -1
  423. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +6 -1
  424. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  425. package/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
  426. package/components/DateInput/DateInput/DateInput.js +9 -1
  427. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  428. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js +16 -10
  429. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js.map +1 -1
  430. package/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
  431. package/components/DateInput/helpers/inputNumber/inputNumber.js +53 -16
  432. package/components/DateInput/helpers/inputNumber/inputNumber.js.map +1 -1
  433. package/components/DateInput/helpers/inputNumber.d.ts +1 -1
  434. package/components/DatePicker/DatePicker/DatePicker.js +6 -0
  435. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  436. package/components/DatePicker/DatePicker.d.ts +5 -0
  437. package/components/DatePicker/Picker/Picker.js +3 -1
  438. package/components/DatePicker/Picker/Picker.js.map +1 -1
  439. package/components/Dropdown/Dropdown/Dropdown.js +9 -5
  440. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  441. package/components/Dropdown/Dropdown.d.ts +3 -0
  442. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -16
  443. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  444. package/components/DropdownMenu/DropdownMenu.d.ts +1 -4
  445. package/components/FileUploader/FileUploader/FileUploader.js +18 -9
  446. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  447. package/components/FileUploader/FileUploader.d.ts +5 -0
  448. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +15 -12
  449. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
  450. package/components/FileUploader/FileUploader.styles.d.ts +3 -2
  451. package/components/FxInput/FxInput/FxInput.js +6 -2
  452. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  453. package/components/FxInput/FxInput.d.ts +3 -0
  454. package/components/Gapped/Gapped/Gapped.js +16 -8
  455. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  456. package/components/Gapped/Gapped.d.ts +4 -0
  457. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +9 -8
  458. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  459. package/components/GlobalLoader/GlobalLoader.d.ts +3 -0
  460. package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js +1 -2
  461. package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js.map +1 -1
  462. package/components/Group/Group/Group.js +66 -30
  463. package/components/Group/Group/Group.js.map +1 -1
  464. package/components/Group/Group.d.ts +3 -0
  465. package/components/Input/Input/Input.js +18 -31
  466. package/components/Input/Input/Input.js.map +1 -1
  467. package/components/Input/Input.d.ts +4 -5
  468. package/components/Kebab/Kebab/Kebab.js +3 -13
  469. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  470. package/components/Kebab/Kebab.d.ts +2 -13
  471. package/components/Link/Link/Link.js +10 -5
  472. package/components/Link/Link/Link.js.map +1 -1
  473. package/components/Link/Link.d.ts +3 -0
  474. package/components/Loader/Loader/Loader.js +10 -6
  475. package/components/Loader/Loader/Loader.js.map +1 -1
  476. package/components/Loader/Loader.d.ts +4 -0
  477. package/components/MenuHeader/MenuHeader/MenuHeader.js +4 -0
  478. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  479. package/components/MenuHeader/MenuHeader.d.ts +3 -0
  480. package/components/MenuItem/MenuItem/MenuItem.js +15 -9
  481. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  482. package/components/MenuItem/MenuItem.d.ts +4 -0
  483. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +1 -1
  484. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
  485. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +4 -0
  486. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
  487. package/components/MenuSeparator/MenuSeparator.d.ts +3 -0
  488. package/components/Modal/Modal/Modal.js +9 -3
  489. package/components/Modal/Modal/Modal.js.map +1 -1
  490. package/components/Modal/Modal.d.ts +5 -0
  491. package/components/Modal/Modal.styles/Modal.styles.js +4 -4
  492. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  493. package/components/Modal/ModalClose/ModalClose.js +2 -1
  494. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  495. package/components/Modal/ModalFooter/ModalFooter.js +5 -1
  496. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  497. package/components/Modal/ModalFooter.d.ts +3 -0
  498. package/components/Modal/ModalHeader/ModalHeader.js +5 -1
  499. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  500. package/components/Modal/ModalHeader.d.ts +3 -0
  501. package/components/Paging/Paging/Paging.js +24 -18
  502. package/components/Paging/Paging/Paging.js.map +1 -1
  503. package/components/Paging/Paging.d.ts +20 -3
  504. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js +19 -0
  505. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -0
  506. package/components/Paging/PagingDefaultComponent/package.json +6 -0
  507. package/components/Paging/PagingDefaultComponent.d.ts +9 -0
  508. package/components/PasswordInput/PasswordInput/PasswordInput.js +39 -14
  509. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  510. package/components/PasswordInput/PasswordInput.d.ts +7 -0
  511. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js +15 -0
  512. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js.map +1 -0
  513. package/components/PasswordInput/PasswordInputIcon/package.json +6 -0
  514. package/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  515. package/components/Radio/Radio/Radio.js +10 -5
  516. package/components/Radio/Radio/Radio.js.map +1 -1
  517. package/components/Radio/Radio.d.ts +3 -0
  518. package/components/Radio/Radio.styles/Radio.styles.js +2 -1
  519. package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
  520. package/components/RadioGroup/RadioGroup/RadioGroup.js +25 -13
  521. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  522. package/components/RadioGroup/RadioGroup.d.ts +9 -0
  523. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -0
  524. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  525. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +3 -3
  526. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  527. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +6 -1
  528. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  529. package/components/ScrollContainer/ScrollContainer.d.ts +4 -0
  530. package/components/Select/Select/Select.js +35 -15
  531. package/components/Select/Select/Select.js.map +1 -1
  532. package/components/Select/Select.d.ts +3 -0
  533. package/components/SidePage/SidePage/SidePage.js +8 -3
  534. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  535. package/components/SidePage/SidePage.d.ts +4 -0
  536. package/components/SidePage/SidePageBody/SidePageBody.js +10 -6
  537. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  538. package/components/SidePage/SidePageBody.d.ts +3 -0
  539. package/components/SidePage/SidePageContainer/SidePageContainer.js +10 -6
  540. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  541. package/components/SidePage/SidePageContainer.d.ts +3 -0
  542. package/components/SidePage/SidePageFooter/SidePageFooter.js +10 -6
  543. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  544. package/components/SidePage/SidePageFooter.d.ts +3 -0
  545. package/components/SidePage/SidePageHeader/SidePageHeader.js +12 -7
  546. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  547. package/components/SidePage/SidePageHeader.d.ts +4 -0
  548. package/components/Spinner/Spinner/Spinner.js +14 -6
  549. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  550. package/components/Spinner/Spinner.d.ts +3 -1
  551. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js +18 -4
  552. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js.map +1 -1
  553. package/components/Sticky/Sticky/Sticky.js +4 -0
  554. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  555. package/components/Sticky/Sticky.d.ts +3 -0
  556. package/components/Switcher/Switcher/Switcher.js +4 -0
  557. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  558. package/components/Switcher/Switcher.d.ts +3 -0
  559. package/components/Switcher/Switcher.styles/Switcher.styles.js +1 -1
  560. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  561. package/components/Tabs/Indicator/Indicator.js +2 -0
  562. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  563. package/components/Tabs/Tab/Tab.js +4 -0
  564. package/components/Tabs/Tab/Tab.js.map +1 -1
  565. package/components/Tabs/Tab.d.ts +3 -0
  566. package/components/Tabs/Tabs/Tabs.js +11 -6
  567. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  568. package/components/Tabs/Tabs.d.ts +4 -0
  569. package/components/Textarea/Textarea/Textarea.js +21 -15
  570. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  571. package/components/Textarea/Textarea.d.ts +6 -2
  572. package/components/Textarea/TextareaCounter/TextareaCounter.js +13 -2
  573. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  574. package/components/Textarea/TextareaCounter.d.ts +1 -2
  575. package/components/Toast/Toast/Toast.js +16 -10
  576. package/components/Toast/Toast/Toast.js.map +1 -1
  577. package/components/Toast/Toast.d.ts +6 -0
  578. package/components/Toast/ToastStatic/ToastStatic.js +2 -2
  579. package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
  580. package/components/Toast/ToastView/ToastView.js +5 -4
  581. package/components/Toast/ToastView/ToastView.js.map +1 -1
  582. package/components/Toast/ToastView.styles/ToastView.styles.js +2 -2
  583. package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
  584. package/components/Toast/ToastView.styles.d.ts +1 -1
  585. package/components/Toggle/Toggle/Toggle.js +8 -4
  586. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  587. package/components/Toggle/Toggle.d.ts +4 -1
  588. package/components/Toggle/Toggle.styles/Toggle.styles.js +3 -4
  589. package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
  590. package/components/Token/Token/Token.js +16 -1
  591. package/components/Token/Token/Token.js.map +1 -1
  592. package/components/Token/Token.d.ts +3 -0
  593. package/components/Token/Token.styles/Token.styles.js +11 -4
  594. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  595. package/components/TokenInput/TokenInput/TokenInput.js +30 -16
  596. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  597. package/components/TokenInput/TokenInput.d.ts +14 -0
  598. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  599. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  600. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +2 -0
  601. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  602. package/components/Tooltip/Tooltip/Tooltip.js +9 -2
  603. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  604. package/components/Tooltip/Tooltip.d.ts +3 -0
  605. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +18 -12
  606. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  607. package/components/TooltipMenu/TooltipMenu.d.ts +4 -1
  608. package/hooks/useDrop/useDrop.js +5 -1
  609. package/hooks/useDrop/useDrop.js.map +1 -1
  610. package/index.d.ts +2 -0
  611. package/index.js +2 -0
  612. package/index.js.map +1 -1
  613. package/internal/Calendar/Calendar/Calendar.js +13 -5
  614. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  615. package/internal/Calendar/Calendar.d.ts +6 -0
  616. package/internal/Calendar/CalendarDateShape.d.ts +1 -1
  617. package/internal/Calendar/MonthView/MonthView.js +4 -3
  618. package/internal/Calendar/MonthView/MonthView.js.map +1 -1
  619. package/internal/Calendar/MonthViewModel/MonthViewModel.js +35 -18
  620. package/internal/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
  621. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +7 -8
  622. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  623. package/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
  624. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +34 -19
  625. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  626. package/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
  627. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +2 -0
  628. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  629. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +21 -17
  630. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  631. package/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
  632. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +35 -35
  633. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  634. package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  635. package/internal/DataTids/DATATIDS.md +12 -0
  636. package/internal/DataTids/DataTids/DataTids.js +69 -0
  637. package/internal/DataTids/DataTids/DataTids.js.map +1 -0
  638. package/internal/DataTids/DataTids/package.json +6 -0
  639. package/internal/DataTids/DataTids.d.ts +12 -0
  640. package/internal/DataTids/DataTids.styles/DataTids.styles.js +22 -0
  641. package/internal/DataTids/DataTids.styles/DataTids.styles.js.map +1 -0
  642. package/internal/DataTids/DataTids.styles/package.json +6 -0
  643. package/internal/DataTids/DataTids.styles.d.ts +7 -0
  644. package/internal/DataTids/componentsDataTids/componentsDataTids.js +14 -0
  645. package/internal/DataTids/componentsDataTids/componentsDataTids.js.map +1 -0
  646. package/internal/DataTids/componentsDataTids/package.json +6 -0
  647. package/internal/DataTids/componentsDataTids.d.ts +5 -0
  648. package/internal/DateSelect/DateSelect/DateSelect.js +27 -17
  649. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  650. package/internal/DateSelect/DateSelect.d.ts +4 -0
  651. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +5 -1
  652. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
  653. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +12 -5
  654. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  655. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +7 -0
  656. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +4 -1
  657. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  658. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +3 -0
  659. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +2 -0
  660. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  661. package/internal/InputLikeText/InputLikeText/InputLikeText.js +8 -2
  662. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  663. package/internal/InputLikeText/InputLikeText.d.ts +5 -1
  664. package/internal/InternalMenu/InternalMenu/InternalMenu.js +18 -21
  665. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  666. package/internal/InternalMenu/InternalMenu.d.ts +3 -0
  667. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
  668. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  669. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js +14 -0
  670. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  671. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/package.json +6 -0
  672. package/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  673. package/internal/MaskedInput/MaskedInput/MaskedInput.js +14 -3
  674. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  675. package/internal/MaskedInput/MaskedInput.d.ts +3 -0
  676. package/internal/Menu/Menu/Menu.js +15 -19
  677. package/internal/Menu/Menu/Menu.js.map +1 -1
  678. package/internal/Menu/Menu.d.ts +3 -0
  679. package/internal/Menu/Menu.styles/Menu.styles.js +1 -1
  680. package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
  681. package/internal/MobilePopup/MobilePopup/MobilePopup.js +6 -0
  682. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  683. package/internal/MobilePopup/MobilePopup.d.ts +4 -0
  684. package/internal/Popup/Popup/Popup.js +15 -9
  685. package/internal/Popup/Popup/Popup.js.map +1 -1
  686. package/internal/Popup/Popup.d.ts +6 -0
  687. package/internal/Popup/PopupPin/PopupPin.js +2 -0
  688. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  689. package/internal/PopupMenu/PopupMenu/PopupMenu.js +15 -2
  690. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  691. package/internal/PopupMenu/PopupMenu.d.ts +8 -0
  692. package/internal/PopupMenu/validatePositions/validatePositions.js +6 -6
  693. package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
  694. package/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
  695. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +11 -2
  696. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  697. package/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  698. package/internal/RenderLayer/RenderLayer/RenderLayer.js +5 -1
  699. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  700. package/internal/ThemePlayground/Playground/Playground.js +15 -29
  701. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  702. package/internal/ThemePlayground/SizesGroup/SizesGroup.js +29 -0
  703. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -0
  704. package/internal/ThemePlayground/SizesGroup/package.json +6 -0
  705. package/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  706. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +14 -2
  707. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  708. package/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
  709. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js +5 -1
  710. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  711. package/internal/ThemePlayground/VariableValue/VariableValue.js +16 -5
  712. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  713. package/internal/ThemePlayground/constants/constants.js +2 -0
  714. package/internal/ThemePlayground/constants/constants.js.map +1 -1
  715. package/internal/ThemePlayground/constants.d.ts +3 -1
  716. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +3 -6
  717. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  718. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +4 -6
  719. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
  720. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  721. package/internal/ZIndex/ZIndex/ZIndex.js +23 -8
  722. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  723. package/internal/ZIndex/ZIndex.d.ts +8 -0
  724. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +12 -6
  725. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
  726. package/internal/ZIndex/ZIndexStorage.d.ts +2 -1
  727. package/internal/icons/16px/index/index.js +28 -20
  728. package/internal/icons/16px/index/index.js.map +1 -1
  729. package/internal/icons/16px/index.d.ts +19 -19
  730. package/internal/icons/20px/svg/svg.js +5 -0
  731. package/internal/icons/20px/svg/svg.js.map +1 -1
  732. package/internal/themes/DefaultTheme/DefaultTheme.js +48 -4
  733. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  734. package/internal/themes/DefaultTheme.d.ts +20 -1
  735. package/internal/themes/NotFlat/NotFlat.js +15 -0
  736. package/internal/themes/NotFlat/NotFlat.js.map +1 -1
  737. package/internal/themes/NotFlat.d.ts +6 -0
  738. package/internal/themes/Theme2022/Theme2022.js +78 -0
  739. package/internal/themes/Theme2022/Theme2022.js.map +1 -0
  740. package/internal/themes/Theme2022/package.json +6 -0
  741. package/internal/themes/Theme2022.d.ts +66 -0
  742. package/internal/themes/Theme2022Dark/Theme2022Dark.js +17 -0
  743. package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  744. package/internal/themes/Theme2022Dark/package.json +6 -0
  745. package/internal/themes/Theme2022Dark.d.ts +5 -0
  746. package/lib/animation/index/index.js +1 -1
  747. package/lib/animation/index/index.js.map +1 -1
  748. package/lib/animation/index.d.ts +1 -1
  749. package/lib/date/InternalDate/InternalDate.js +16 -1
  750. package/lib/date/InternalDate/InternalDate.js.map +1 -1
  751. package/lib/date/InternalDateCalculator/InternalDateCalculator.js +14 -2
  752. package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
  753. package/lib/date/InternalDateGetter/InternalDateGetter.js +23 -7
  754. package/lib/date/InternalDateGetter/InternalDateGetter.js.map +1 -1
  755. package/lib/date/InternalDateGetter.d.ts +1 -1
  756. package/lib/date/InternalDateTransformer/InternalDateTransformer.js +11 -1
  757. package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
  758. package/lib/date/InternalDateValidator/InternalDateValidator.js +75 -34
  759. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  760. package/lib/date/types/types.js.map +1 -1
  761. package/lib/date/types.d.ts +4 -0
  762. package/lib/events/MouseDrag/MouseDrag.js +5 -1
  763. package/lib/events/MouseDrag/MouseDrag.js.map +1 -1
  764. package/lib/events/keyboard/extractCode/extractCode.js +5 -5
  765. package/lib/events/keyboard/extractCode/extractCode.js.map +1 -1
  766. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js +21 -0
  767. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js.map +1 -0
  768. package/lib/needsPolyfillPlaceholder/package.json +6 -0
  769. package/lib/needsPolyfillPlaceholder.d.ts +6 -0
  770. package/lib/rootNode/getRootNode/getRootNode.js +36 -8
  771. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  772. package/lib/rootNode/getRootNode.d.ts +9 -0
  773. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +3 -1
  774. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  775. package/lib/rootNode/rootNodeDecorator.d.ts +9 -1
  776. package/lib/stringUtils/stringUtils.js +4 -1
  777. package/lib/stringUtils/stringUtils.js.map +1 -1
  778. package/lib/styles/ColorFactory/ColorFactory.js +9 -9
  779. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  780. package/lib/styles/ColorHelpers/ColorHelpers.js +26 -9
  781. package/lib/styles/ColorHelpers/ColorHelpers.js.map +1 -1
  782. package/lib/styles/ColorHelpers.d.ts +1 -0
  783. package/lib/styles/ColorObject/ColorObject.js +2 -2
  784. package/lib/styles/ColorObject/ColorObject.js.map +1 -1
  785. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js +9 -0
  786. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js.map +1 -0
  787. package/lib/styles/getLabGrotesqueBaselineCompensation/package.json +6 -0
  788. package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  789. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +4 -1
  790. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
  791. package/lib/theming/Emotion/Emotion.js +5 -2
  792. package/lib/theming/Emotion/Emotion.js.map +1 -1
  793. package/lib/theming/ThemeFactory/ThemeFactory.js +5 -2
  794. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  795. package/lib/theming/ThemeHelpers/ThemeHelpers.js +5 -1
  796. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  797. package/lib/theming/themes/Theme2022/Theme2022.js +4 -0
  798. package/lib/theming/themes/Theme2022/Theme2022.js.map +1 -0
  799. package/lib/theming/themes/Theme2022/package.json +6 -0
  800. package/lib/theming/themes/Theme2022.d.ts +1 -0
  801. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js +5 -0
  802. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  803. package/lib/theming/themes/Theme2022Dark/package.json +6 -0
  804. package/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  805. package/lib/utils/utils.js +42 -6
  806. package/lib/utils/utils.js.map +1 -1
  807. package/lib/utils.d.ts +15 -0
  808. package/package.json +5 -6
  809. package/cjs/components/Button/Corners.d.ts +0 -6
  810. package/cjs/components/Button/Corners.js +0 -5
  811. package/cjs/components/Button/Corners.js.map +0 -1
  812. package/cjs/lib/polyfillPlaceholder.d.ts +0 -1
  813. package/cjs/lib/polyfillPlaceholder.js +0 -17
  814. package/cjs/lib/polyfillPlaceholder.js.map +0 -1
  815. package/components/Button/Corners/Corners.js +0 -6
  816. package/components/Button/Corners/Corners.js.map +0 -1
  817. package/components/Button/Corners/package.json +0 -6
  818. package/components/Button/Corners.d.ts +0 -6
  819. package/lib/polyfillPlaceholder/package.json +0 -6
  820. package/lib/polyfillPlaceholder/polyfillPlaceholder.js +0 -12
  821. package/lib/polyfillPlaceholder/polyfillPlaceholder.js.map +0 -1
  822. package/lib/polyfillPlaceholder.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["Tooltip.tsx"],"names":["React","warning","isEqual","ThemeFactory","DefaultPosition","Popup","RenderLayer","CrossIcon","containsTargetOrRenderContainer","ThemeContext","isTestEnv","CommonWrapper","responsiveLayout","rootNode","styles","Positions","Tooltip","state","opened","focused","hoverTimeout","contentElement","positions","clickedOutside","popupRef","createRef","renderContent","content","props","render","refContent","tooltipContent","theme","renderCloseButton","getAnchorElement","current","anchorElement","mobileCloseHandler","trigger","close","node","open","setState","handleMouseEnter","event","isHoverAnchor","target","clearHoverTimeout","window","setTimeout","delay","handleMouseLeave","isMobileLayout","relatedTarget","handleClick","handleClickOutsideAnchor","isClickOutsideContent","onCloseRequest","handleFocus","handleBlur","handleCloseButtonClick","stopPropagation","onCloseClick","defaultPrevented","componentDidUpdate","prevProps","allowedPositions","pos","posChanged","allowedChanged","componentWillUnmount","create","popupPinOffset","tooltipPinOffset","popupMargin","tooltipMargin","popupBorder","tooltipBorder","popupBorderRadius","tooltipBorderRadius","popupPinSize","tooltipPinSize","popupPinOffsetX","tooltipPinOffsetX","popupPinOffsetY","tooltipPinOffsetY","renderMain","hasCross","closeButton","undefined","triggersWithoutCloseButton","includes","cross","show","hide","getProps","popupProps","layerProps","active","children","popup","renderPopup","setRootNode","disableAnimations","getPositions","onOpen","onClose","index","indexOf","Error","join","slice","useWrapper","onClickOutside","onMouseEnter","onMouseLeave","onClick","onFocus","onBlur","clearTimeout","Element","PureComponent","__KONTUR_REACT_UI__","propTypes","propName","componentName","Array","isArray","defaultProps","closeOnChildrenMouseLeave"],"mappings":"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","sourcesContent":["import React from 'react';\nimport warning from 'warning';\nimport isEqual from 'lodash.isequal';\n\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { DefaultPosition, Popup, PopupProps, PopupPositionsType } from '../../internal/Popup';\nimport { RenderLayer, RenderLayerProps } from '../../internal/RenderLayer';\nimport { CrossIcon } from '../../internal/icons/CrossIcon';\nimport { Nullable } from '../../typings/utility-types';\nimport { MouseEventType } from '../../typings/event-types';\nimport { containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { InstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\n\nimport { styles } from './Tooltip.styles';\n\nexport type TooltipTrigger =\n /** Наведение на children и на тултип */\n | 'hover'\n /** Клик на children */\n | 'click'\n /** Фокус на children */\n | 'focus'\n /** Наведение на children и на тултип и фокус на children */\n | 'hover&focus'\n /** Просто открыт */\n | 'opened'\n /** Просто закрыт */\n | 'closed'\n /** Наведение ТОЛЬКО на children, а не на тултип */\n | 'hoverAnchor'\n /** Управление через публичные функции show и hide */\n | 'manual';\n\nexport interface TooltipProps extends CommonProps {\n /**\n * Относительно какого элемента позиционировать тултип\n */\n anchorElement?: HTMLElement;\n\n /**\n * Если не указан `anchorElement` то тултип будет позиционироваться\n * относительно дочерних элементов\n */\n children?: React.ReactNode;\n\n className?: string;\n\n /**\n * Показывать крестик для закрытия тултипа. По-умолчанию крестик\n * показывается если проп *trigger* не `hover` и не `focus`.\n */\n closeButton?: boolean;\n\n /**\n * Функция, которая возвращает содержимое тултипа.\n *\n * Если эта функция вернула `null`, то тултип не показывается.\n */\n render?: Nullable<() => React.ReactNode>;\n\n /**\n * Значение по умолчанию: `\"top left\"`.\n */\n pos: PopupPositionsType;\n\n /**\n * Триггер открытия тултипа\n * ```ts\n * type TooltipTrigger =\n * | 'hover'\n * | 'click'\n * | 'focus'\n * | 'hover&focus'\n * | 'opened'\n * | 'closed'\n * | 'hoverAnchor'\n * | 'manual';\n * ```\n */\n trigger: TooltipTrigger;\n\n /**\n * Хэндлер, вызываемый при клике по крестику\n */\n onCloseClick?: React.MouseEventHandler<HTMLElement>;\n\n /**\n * Хэндлер, вызываемый при клике по крестику или\n * снаружи тултипа\n */\n onCloseRequest?: () => void;\n\n /**\n * Хэндлер, вызываемый при закрытии тултипа\n */\n onClose?: () => void;\n\n /**\n * Хэндлер, вызываемый при открытии тултипа\n */\n onOpen?: () => void;\n\n /**\n * Список позиций, которые тултип будет занимать.\n * Если положение тултипа в определенной позиции\n * будет выходить за край экрана, то будет выбрана\n * следующая позиция. Обязательно должен включать\n * позицию указанную в `pos`\n */\n allowedPositions: PopupPositionsType[];\n\n /**\n * Флаг отключения анимации.\n * @default false\n */\n disableAnimations: boolean;\n\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper: boolean;\n}\n\nexport interface TooltipState {\n opened: boolean;\n focused: boolean;\n}\n\nconst Positions: PopupPositionsType[] = [\n 'right bottom',\n 'right middle',\n 'right top',\n 'top right',\n 'top center',\n 'top left',\n 'left top',\n 'left middle',\n 'left bottom',\n 'bottom left',\n 'bottom center',\n 'bottom right',\n];\n\n@rootNode\n@responsiveLayout\nexport class Tooltip extends React.PureComponent<TooltipProps, TooltipState> implements InstanceWithAnchorElement {\n public static __KONTUR_REACT_UI__ = 'Tooltip';\n\n private isMobileLayout!: boolean;\n\n public static propTypes = {\n children(props: TooltipProps, propName: keyof TooltipProps, componentName: string) {\n const children = props[propName];\n warning(\n children || props.anchorElement,\n `[${componentName}]: you must provide either 'children' or 'anchorElement' prop for ${componentName} to work properly`,\n );\n warning(\n !(Array.isArray(children) && props.useWrapper === false),\n `[${componentName}]: you provided multiple children, but useWrapper={false} - forcing wrapper <span/> for positioning to work correctly`,\n );\n },\n };\n\n public static defaultProps = {\n pos: DefaultPosition,\n trigger: 'hover',\n allowedPositions: Positions,\n disableAnimations: isTestEnv,\n useWrapper: false,\n closeOnChildrenMouseLeave: false,\n };\n\n public static delay = 100;\n private static triggersWithoutCloseButton: TooltipTrigger[] = ['hover', 'hoverAnchor', 'focus', 'hover&focus'];\n\n public state: TooltipState = { opened: false, focused: false };\n private theme!: Theme;\n private hoverTimeout: Nullable<number> = null;\n private contentElement: Nullable<HTMLElement> = null;\n private positions: Nullable<PopupPositionsType[]> = null;\n private clickedOutside = true;\n private setRootNode!: TSetRootNode;\n\n private popupRef = React.createRef<Popup>();\n public componentDidUpdate(prevProps: TooltipProps) {\n if (this.props.trigger === 'closed' && this.state.opened) {\n this.close();\n }\n\n const { allowedPositions, pos } = this.props;\n const posChanged = prevProps.pos !== pos;\n const allowedChanged = !isEqual(prevProps.allowedPositions, allowedPositions);\n\n if (posChanged || allowedChanged) {\n this.positions = null;\n }\n }\n\n public componentWillUnmount() {\n this.clearHoverTimeout();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.tooltipPinOffset,\n popupMargin: theme.tooltipMargin,\n popupBorder: theme.tooltipBorder,\n popupBorderRadius: theme.tooltipBorderRadius,\n popupPinSize: theme.tooltipPinSize,\n popupPinOffsetX: theme.tooltipPinOffsetX,\n popupPinOffsetY: theme.tooltipPinOffsetY,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderContent = () => {\n const content = this.props.render ? this.props.render() : null;\n if (content == null) {\n return null;\n }\n\n return (\n <div ref={this.refContent} className={styles.tooltipContent(this.theme)}>\n {content}\n {this.renderCloseButton()}\n </div>\n );\n };\n\n public renderCloseButton() {\n const hasCross =\n this.props.closeButton === undefined\n ? !Tooltip.triggersWithoutCloseButton.includes(this.props.trigger)\n : this.props.closeButton;\n\n if (!hasCross || this.isMobileLayout) {\n return null;\n }\n\n return (\n <div className={styles.cross(this.theme)} onClick={this.handleCloseButtonClick}>\n <CrossIcon />\n </div>\n );\n }\n\n public getAnchorElement = (): Nullable<HTMLElement> => {\n return this.popupRef.current?.anchorElement;\n };\n\n /**\n * Программно открывает тултип.\n * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>\n * @public\n */\n public show() {\n if (this.state.opened) return;\n if (this.props.trigger === 'opened' || this.props.trigger === 'closed') {\n warning(true, `Function 'show' is not supported with trigger specified '${this.props.trigger}'`);\n return;\n }\n this.open();\n }\n\n /**\n * Программно закрывает тултип.\n * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>\n * @public\n */\n public hide() {\n if (this.props.trigger === 'opened' || this.props.trigger === 'closed') {\n warning(true, `Function 'hide' is not supported with trigger specified '${this.props.trigger}'`);\n return;\n }\n this.close();\n }\n\n private renderMain() {\n const props = this.props;\n const content = this.renderContent();\n const { popupProps, layerProps = { active: false } } = this.getProps();\n const anchorElement = props.children || props.anchorElement;\n const popup = this.renderPopup(anchorElement, popupProps, content);\n\n if (this.isMobileLayout) {\n return popup;\n }\n\n return (\n <RenderLayer {...layerProps} getAnchorElement={this.getAnchorElement}>\n {popup}\n </RenderLayer>\n );\n }\n\n private renderPopup(\n anchorElement: React.ReactNode | HTMLElement,\n popupProps: Partial<PopupProps>,\n content: JSX.Element | null,\n ) {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Popup\n anchorElement={anchorElement}\n hasPin\n hasShadow\n maxWidth=\"none\"\n opened={this.state.opened}\n disableAnimations={this.props.disableAnimations}\n positions={this.getPositions()}\n ignoreHover={this.props.trigger === 'hoverAnchor'}\n onOpen={this.props.onOpen}\n onClose={this.props.onClose}\n mobileOnCloseRequest={this.mobileCloseHandler}\n tryPreserveFirstRenderedPosition\n ref={this.popupRef}\n {...popupProps}\n >\n {content}\n </Popup>\n </CommonWrapper>\n );\n }\n\n private mobileCloseHandler = () => {\n if (this.props.trigger === 'manual' || this.props.trigger === 'closed' || this.props.trigger === 'opened') {\n return;\n }\n\n this.close();\n };\n\n private refContent = (node: HTMLElement | null) => {\n this.contentElement = node;\n };\n\n private getPositions() {\n if (!this.positions) {\n const allowedPositions = this.props.allowedPositions;\n const index = allowedPositions.indexOf(this.props.pos);\n if (index === -1) {\n throw new Error('Unexpected position passed to Tooltip. Expected one of: ' + allowedPositions.join(', '));\n }\n\n this.positions = [...allowedPositions.slice(index), ...allowedPositions.slice(0, index)];\n }\n\n return this.positions;\n }\n\n private getProps(): {\n layerProps?: Partial<RenderLayerProps>;\n popupProps: Partial<PopupProps>;\n } {\n const props = this.props;\n const useWrapper = !!props.children && props.useWrapper;\n\n switch (this.props.trigger) {\n case 'opened':\n return {\n layerProps: {\n active: true,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n opened: true,\n useWrapper,\n },\n };\n\n case 'closed':\n return {\n popupProps: {\n opened: false,\n useWrapper,\n },\n };\n\n case 'hoverAnchor':\n case 'hover':\n return {\n popupProps: {\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n useWrapper,\n },\n };\n case 'manual':\n return {\n popupProps: {\n useWrapper,\n },\n };\n case 'click':\n return {\n layerProps: {\n active: this.state.opened,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n onClick: this.handleClick,\n useWrapper,\n },\n };\n\n case 'focus':\n return {\n popupProps: {\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n useWrapper,\n },\n };\n\n case 'hover&focus':\n return {\n layerProps: {\n active: this.state.opened,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n useWrapper,\n },\n };\n\n default:\n throw new Error('Unknown trigger specified: ' + props.trigger);\n }\n }\n\n private open = () => this.setState({ opened: true });\n\n private close = () => this.setState({ opened: false });\n\n private clearHoverTimeout() {\n if (this.hoverTimeout) {\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = null;\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n const isHoverAnchor = this.props.trigger === 'hoverAnchor';\n if (isHoverAnchor && event.target === this.contentElement) {\n return;\n }\n\n this.clearHoverTimeout();\n\n this.hoverTimeout = window.setTimeout(this.open, Tooltip.delay);\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n if (this.isMobileLayout) {\n return;\n }\n\n if (\n (this.props.trigger === 'hover&focus' && this.state.focused) ||\n (this.props.trigger === 'hover' && event.relatedTarget === this.contentElement)\n ) {\n return;\n }\n\n this.clearHoverTimeout();\n\n if (this.props.trigger === 'hoverAnchor') {\n this.close();\n } else {\n this.hoverTimeout = window.setTimeout(this.close, Tooltip.delay);\n }\n };\n\n private handleClick = () => {\n this.open();\n };\n\n private handleClickOutsideAnchor = (event: Event) => {\n this.clickedOutside = this.isClickOutsideContent(event);\n if (this.clickedOutside) {\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest();\n }\n this.close();\n }\n };\n\n private isClickOutsideContent(event: Event) {\n if (this.contentElement && event.target instanceof Element) {\n return !containsTargetOrRenderContainer(event.target)(this.contentElement);\n }\n\n return true;\n }\n\n private handleFocus = () => {\n this.setState({ focused: true });\n this.open();\n };\n\n private handleBlur = () => {\n if (this.props.trigger === 'hover&focus' && this.clickedOutside) {\n this.close();\n }\n\n if (this.props.trigger === 'focus') {\n this.close();\n }\n\n this.clickedOutside = true;\n this.setState({ focused: false });\n };\n\n private handleCloseButtonClick = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n\n if (this.props.onCloseClick) {\n this.props.onCloseClick(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest();\n }\n\n this.close();\n };\n}\n"]}
1
+ {"version":3,"sources":["Tooltip.tsx"],"names":["React","warning","isEqual","isNullable","ThemeFactory","DefaultPosition","Popup","RenderLayer","CrossIcon","containsTargetOrRenderContainer","ThemeContext","isTestEnv","CommonWrapper","responsiveLayout","rootNode","styles","TooltipDataTids","root","Positions","Tooltip","state","opened","focused","hoverTimeout","contentElement","positions","clickedOutside","popupRef","createRef","renderContent","content","props","render","refContent","tooltipContent","theme","renderCloseButton","getAnchorElement","current","anchorElement","mobileCloseHandler","trigger","close","node","open","setState","handleMouseEnter","event","isHoverAnchor","target","clearHoverTimeout","window","setTimeout","delay","handleMouseLeave","isMobileLayout","relatedTarget","handleClick","handleClickOutsideAnchor","isClickOutsideContent","onCloseRequest","handleFocus","handleBlur","handleCloseButtonClick","stopPropagation","onCloseClick","defaultPrevented","componentDidUpdate","prevProps","allowedPositions","pos","posChanged","allowedChanged","componentWillUnmount","create","popupPinOffset","tooltipPinOffset","popupMargin","tooltipMargin","popupBorder","tooltipBorder","popupBorderRadius","tooltipBorderRadius","popupPinSize","tooltipPinSize","popupPinOffsetX","tooltipPinOffsetX","popupPinOffsetY","tooltipPinOffsetY","renderMain","hasCross","closeButton","undefined","triggersWithoutCloseButton","includes","cross","show","hide","getProps","popupProps","layerProps","active","children","popup","renderPopup","setRootNode","disableAnimations","getPositions","onOpen","onClose","index","indexOf","Error","join","slice","useWrapper","onClickOutside","onMouseEnter","onMouseLeave","onClick","onFocus","onBlur","clearTimeout","Element","PureComponent","__KONTUR_REACT_UI__","propTypes","propName","componentName","Array","isArray","defaultProps","closeOnChildrenMouseLeave"],"mappings":"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","sourcesContent":["import React from 'react';\nimport warning from 'warning';\nimport isEqual from 'lodash.isequal';\n\nimport { isNullable } from '../../lib/utils';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { DefaultPosition, Popup, PopupProps, PopupPositionsType } from '../../internal/Popup';\nimport { RenderLayer, RenderLayerProps } from '../../internal/RenderLayer';\nimport { CrossIcon } from '../../internal/icons/CrossIcon';\nimport { Nullable } from '../../typings/utility-types';\nimport { MouseEventType } from '../../typings/event-types';\nimport { containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { InstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\n\nimport { styles } from './Tooltip.styles';\n\nexport type TooltipTrigger =\n /** Наведение на children и на тултип */\n | 'hover'\n /** Клик на children */\n | 'click'\n /** Фокус на children */\n | 'focus'\n /** Наведение на children и на тултип и фокус на children */\n | 'hover&focus'\n /** Просто открыт */\n | 'opened'\n /** Просто закрыт */\n | 'closed'\n /** Наведение ТОЛЬКО на children, а не на тултип */\n | 'hoverAnchor'\n /** Управление через публичные функции show и hide */\n | 'manual';\n\nexport interface TooltipProps extends CommonProps {\n /**\n * Относительно какого элемента позиционировать тултип\n */\n anchorElement?: HTMLElement;\n\n /**\n * Если не указан `anchorElement` то тултип будет позиционироваться\n * относительно дочерних элементов\n */\n children?: React.ReactNode;\n\n className?: string;\n\n /**\n * Показывать крестик для закрытия тултипа. По-умолчанию крестик\n * показывается если проп *trigger* не `hover` и не `focus`.\n */\n closeButton?: boolean;\n\n /**\n * Функция, которая возвращает содержимое тултипа.\n *\n * Если эта функция вернула `null`, то тултип не показывается.\n */\n render?: Nullable<() => React.ReactNode>;\n\n /**\n * Значение по умолчанию: `\"top left\"`.\n */\n pos: PopupPositionsType;\n\n /**\n * Триггер открытия тултипа\n * ```ts\n * type TooltipTrigger =\n * | 'hover'\n * | 'click'\n * | 'focus'\n * | 'hover&focus'\n * | 'opened'\n * | 'closed'\n * | 'hoverAnchor'\n * | 'manual';\n * ```\n */\n trigger: TooltipTrigger;\n\n /**\n * Хэндлер, вызываемый при клике по крестику\n */\n onCloseClick?: React.MouseEventHandler<HTMLElement>;\n\n /**\n * Хэндлер, вызываемый при клике по крестику или\n * снаружи тултипа\n */\n onCloseRequest?: () => void;\n\n /**\n * Хэндлер, вызываемый при закрытии тултипа\n */\n onClose?: () => void;\n\n /**\n * Хэндлер, вызываемый при открытии тултипа\n */\n onOpen?: () => void;\n\n /**\n * Список позиций, которые тултип будет занимать.\n * Если положение тултипа в определенной позиции\n * будет выходить за край экрана, то будет выбрана\n * следующая позиция. Обязательно должен включать\n * позицию указанную в `pos`\n */\n allowedPositions: PopupPositionsType[];\n\n /**\n * Флаг отключения анимации.\n * @default false\n */\n disableAnimations: boolean;\n\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper: boolean;\n}\n\nexport interface TooltipState {\n opened: boolean;\n focused: boolean;\n}\n\nexport const TooltipDataTids = {\n root: 'Tooltip__root',\n} as const;\n\nconst Positions: PopupPositionsType[] = [\n 'right bottom',\n 'right middle',\n 'right top',\n 'top right',\n 'top center',\n 'top left',\n 'left top',\n 'left middle',\n 'left bottom',\n 'bottom left',\n 'bottom center',\n 'bottom right',\n];\n\n@rootNode\n@responsiveLayout\nexport class Tooltip extends React.PureComponent<TooltipProps, TooltipState> implements InstanceWithAnchorElement {\n public static __KONTUR_REACT_UI__ = 'Tooltip';\n\n private isMobileLayout!: boolean;\n\n public static propTypes = {\n children(props: TooltipProps, propName: keyof TooltipProps, componentName: string) {\n const children = props[propName];\n warning(\n children || props.anchorElement,\n `[${componentName}]: you must provide either 'children' or 'anchorElement' prop for ${componentName} to work properly`,\n );\n warning(\n !(Array.isArray(children) && props.useWrapper === false),\n `[${componentName}]: you provided multiple children, but useWrapper={false} - forcing wrapper <span/> for positioning to work correctly`,\n );\n },\n };\n\n public static defaultProps = {\n pos: DefaultPosition,\n trigger: 'hover',\n allowedPositions: Positions,\n disableAnimations: isTestEnv,\n useWrapper: false,\n closeOnChildrenMouseLeave: false,\n };\n\n public static delay = 100;\n private static triggersWithoutCloseButton: TooltipTrigger[] = ['hover', 'hoverAnchor', 'focus', 'hover&focus'];\n\n public state: TooltipState = { opened: false, focused: false };\n private theme!: Theme;\n private hoverTimeout: Nullable<number> = null;\n private contentElement: Nullable<HTMLElement> = null;\n private positions: Nullable<PopupPositionsType[]> = null;\n private clickedOutside = true;\n private setRootNode!: TSetRootNode;\n\n private popupRef = React.createRef<Popup>();\n public componentDidUpdate(prevProps: TooltipProps) {\n if (this.props.trigger === 'closed' && this.state.opened) {\n this.close();\n }\n\n const { allowedPositions, pos } = this.props;\n const posChanged = prevProps.pos !== pos;\n const allowedChanged = !isEqual(prevProps.allowedPositions, allowedPositions);\n\n if (posChanged || allowedChanged) {\n this.positions = null;\n }\n }\n\n public componentWillUnmount() {\n this.clearHoverTimeout();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.tooltipPinOffset,\n popupMargin: theme.tooltipMargin,\n popupBorder: theme.tooltipBorder,\n popupBorderRadius: theme.tooltipBorderRadius,\n popupPinSize: theme.tooltipPinSize,\n popupPinOffsetX: theme.tooltipPinOffsetX,\n popupPinOffsetY: theme.tooltipPinOffsetY,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderContent = () => {\n const content = this.props.render ? this.props.render() : null;\n if (isNullable(content)) {\n return null;\n }\n\n return (\n <div ref={this.refContent} className={styles.tooltipContent(this.theme)}>\n {content}\n {this.renderCloseButton()}\n </div>\n );\n };\n\n public renderCloseButton() {\n const hasCross =\n this.props.closeButton === undefined\n ? !Tooltip.triggersWithoutCloseButton.includes(this.props.trigger)\n : this.props.closeButton;\n\n if (!hasCross || this.isMobileLayout) {\n return null;\n }\n\n return (\n <div className={styles.cross(this.theme)} onClick={this.handleCloseButtonClick}>\n <CrossIcon />\n </div>\n );\n }\n\n public getAnchorElement = (): Nullable<HTMLElement> => {\n return this.popupRef.current?.anchorElement;\n };\n\n /**\n * Программно открывает тултип.\n * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>\n * @public\n */\n public show() {\n if (this.state.opened) {\n return;\n }\n if (this.props.trigger === 'opened' || this.props.trigger === 'closed') {\n warning(true, `Function 'show' is not supported with trigger specified '${this.props.trigger}'`);\n return;\n }\n this.open();\n }\n\n /**\n * Программно закрывает тултип.\n * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>\n * @public\n */\n public hide() {\n if (this.props.trigger === 'opened' || this.props.trigger === 'closed') {\n warning(true, `Function 'hide' is not supported with trigger specified '${this.props.trigger}'`);\n return;\n }\n this.close();\n }\n\n private renderMain() {\n const props = this.props;\n const content = this.renderContent();\n const { popupProps, layerProps = { active: false } } = this.getProps();\n const anchorElement = props.children || props.anchorElement;\n const popup = this.renderPopup(anchorElement, popupProps, content);\n\n if (this.isMobileLayout) {\n return popup;\n }\n\n return (\n <RenderLayer {...layerProps} getAnchorElement={this.getAnchorElement}>\n {popup}\n </RenderLayer>\n );\n }\n\n private renderPopup(\n anchorElement: React.ReactNode | HTMLElement,\n popupProps: Partial<PopupProps>,\n content: JSX.Element | null,\n ) {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Popup\n data-tid={TooltipDataTids.root}\n anchorElement={anchorElement}\n hasPin\n hasShadow\n maxWidth=\"none\"\n opened={this.state.opened}\n disableAnimations={this.props.disableAnimations}\n positions={this.getPositions()}\n ignoreHover={this.props.trigger === 'hoverAnchor'}\n onOpen={this.props.onOpen}\n onClose={this.props.onClose}\n mobileOnCloseRequest={this.mobileCloseHandler}\n tryPreserveFirstRenderedPosition\n ref={this.popupRef}\n {...popupProps}\n >\n {content}\n </Popup>\n </CommonWrapper>\n );\n }\n\n private mobileCloseHandler = () => {\n if (this.props.trigger === 'manual' || this.props.trigger === 'closed' || this.props.trigger === 'opened') {\n return;\n }\n\n this.close();\n };\n\n private refContent = (node: HTMLElement | null) => {\n this.contentElement = node;\n };\n\n private getPositions() {\n if (!this.positions) {\n const allowedPositions = this.props.allowedPositions;\n const index = allowedPositions.indexOf(this.props.pos);\n if (index === -1) {\n throw new Error('Unexpected position passed to Tooltip. Expected one of: ' + allowedPositions.join(', '));\n }\n\n this.positions = [...allowedPositions.slice(index), ...allowedPositions.slice(0, index)];\n }\n\n return this.positions;\n }\n\n private getProps(): {\n layerProps?: Partial<RenderLayerProps>;\n popupProps: Partial<PopupProps>;\n } {\n const props = this.props;\n const useWrapper = !!props.children && props.useWrapper;\n\n switch (this.props.trigger) {\n case 'opened':\n return {\n layerProps: {\n active: true,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n opened: true,\n useWrapper,\n },\n };\n\n case 'closed':\n return {\n popupProps: {\n opened: false,\n useWrapper,\n },\n };\n\n case 'hoverAnchor':\n case 'hover':\n return {\n popupProps: {\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n useWrapper,\n },\n };\n case 'manual':\n return {\n popupProps: {\n useWrapper,\n },\n };\n case 'click':\n return {\n layerProps: {\n active: this.state.opened,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n onClick: this.handleClick,\n useWrapper,\n },\n };\n\n case 'focus':\n return {\n popupProps: {\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n useWrapper,\n },\n };\n\n case 'hover&focus':\n return {\n layerProps: {\n active: this.state.opened,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n useWrapper,\n },\n };\n\n default:\n throw new Error('Unknown trigger specified: ' + props.trigger);\n }\n }\n\n private open = () => this.setState({ opened: true });\n\n private close = () => this.setState({ opened: false });\n\n private clearHoverTimeout() {\n if (this.hoverTimeout) {\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = null;\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n const isHoverAnchor = this.props.trigger === 'hoverAnchor';\n if (isHoverAnchor && event.target === this.contentElement) {\n return;\n }\n\n this.clearHoverTimeout();\n\n this.hoverTimeout = window.setTimeout(this.open, Tooltip.delay);\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n if (this.isMobileLayout) {\n return;\n }\n\n if (\n (this.props.trigger === 'hover&focus' && this.state.focused) ||\n (this.props.trigger === 'hover' && event.relatedTarget === this.contentElement)\n ) {\n return;\n }\n\n this.clearHoverTimeout();\n\n if (this.props.trigger === 'hoverAnchor') {\n this.close();\n } else {\n this.hoverTimeout = window.setTimeout(this.close, Tooltip.delay);\n }\n };\n\n private handleClick = () => {\n this.open();\n };\n\n private handleClickOutsideAnchor = (event: Event) => {\n this.clickedOutside = this.isClickOutsideContent(event);\n if (this.clickedOutside) {\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest();\n }\n this.close();\n }\n };\n\n private isClickOutsideContent(event: Event) {\n if (this.contentElement && event.target instanceof Element) {\n return !containsTargetOrRenderContainer(event.target)(this.contentElement);\n }\n\n return true;\n }\n\n private handleFocus = () => {\n this.setState({ focused: true });\n this.open();\n };\n\n private handleBlur = () => {\n if (this.props.trigger === 'hover&focus' && this.clickedOutside) {\n this.close();\n }\n\n if (this.props.trigger === 'focus') {\n this.close();\n }\n\n this.clickedOutside = true;\n this.setState({ focused: false });\n };\n\n private handleCloseButtonClick = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n\n if (this.props.onCloseClick) {\n this.props.onCloseClick(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest();\n }\n\n this.close();\n };\n}\n"]}
@@ -102,6 +102,9 @@ export interface TooltipState {
102
102
  opened: boolean;
103
103
  focused: boolean;
104
104
  }
105
+ export declare const TooltipDataTids: {
106
+ readonly root: "Tooltip__root";
107
+ };
105
108
  export declare class Tooltip extends React.PureComponent<TooltipProps, TooltipState> implements InstanceWithAnchorElement {
106
109
  static __KONTUR_REACT_UI__: string;
107
110
  private isMobileLayout;
@@ -10,19 +10,22 @@ import { PopupMenu } from "../../../internal/PopupMenu";
10
10
  import { isProductionEnv, isTestEnv } from "../../../lib/currentEnvironment";
11
11
  import { CommonWrapper } from "../../../internal/CommonWrapper";
12
12
  import { rootNode } from "../../../lib/rootNode";
13
- export
13
+ export var TooltipMenuDataTids = {
14
+ root: 'TooltipMenu__root'
15
+ };
14
16
  /**
15
- * Меню, раскрывающееся по клику на переданный в `caption` элемент.
16
- *
17
- * Положение меню задаётся с помощью массива `positions` и работает так:
18
- * первое значение в массиве - дефолтная позиция, меню раскроется на этой позиции, если оно не будет выходить за пределы `viewport`,
19
- * если раскрыться в дефолтной позиции не получится - будет использована следующая позиция, и так далее, пока не будет достигнут конец массива. Если все положения из списка будут выходить за пределы `viewport`, в качестве положения будет использовано первое значение в массиве.
20
- *
21
- * Если меню должно раскрываться только в одну сторону - массив `positions` должен содержать только один элемент: сторону, в которую должно открываться меню.
22
- *
23
- * Если массив `positions` не передан (или передан пустой массив), будут использованы всевозможные значения.
24
- */
25
- var TooltipMenu = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
17
+ * Меню, раскрывающееся по клику на переданный в `caption` элемент.
18
+ *
19
+ * Положение меню задаётся с помощью массива `positions` и работает так:
20
+ * первое значение в массиве - дефолтная позиция, меню раскроется на этой позиции, если оно не будет выходить за пределы `viewport`,
21
+ * если раскрыться в дефолтной позиции не получится - будет использована следующая позиция, и так далее, пока не будет достигнут конец массива. Если все положения из списка будут выходить за пределы `viewport`, в качестве положения будет использовано первое значение в массиве.
22
+ *
23
+ * Если меню должно раскрываться только в одну сторону - массив `positions` должен содержать только один элемент: сторону, в которую должно открываться меню.
24
+ *
25
+ * Если массив `positions` не передан (или передан пустой массив), будут использованы всевозможные значения.
26
+ */
27
+
28
+ export var TooltipMenu = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
26
29
  _inheritsLoose(TooltipMenu, _React$Component);
27
30
 
28
31
  function TooltipMenu(props) {
@@ -61,12 +64,15 @@ var TooltipMenu = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_R
61
64
  return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
62
65
  rootNodeRef: this.setRootNode
63
66
  }, this.props), /*#__PURE__*/React.createElement(PopupMenu, {
67
+ "data-tid": TooltipMenuDataTids.root,
64
68
  menuMaxHeight: this.props.menuMaxHeight,
65
69
  menuWidth: this.props.menuWidth,
66
70
  caption: this.props.caption,
67
71
  header: this.props.header,
68
72
  footer: this.props.footer,
69
73
  positions: this.props.positions,
74
+ onOpen: this.props.onOpen,
75
+ onClose: this.props.onClose,
70
76
  popupHasPin: true,
71
77
  disableAnimations: this.props.disableAnimations
72
78
  }, this.props.children));
@@ -1 +1 @@
1
- {"version":3,"sources":["TooltipMenu.tsx"],"names":["React","ThemeFactory","ThemeContext","PopupMenu","isProductionEnv","isTestEnv","CommonWrapper","rootNode","TooltipMenu","props","caption","Error","render","theme","create","popupPinOffset","tooltipMenuPinOffset","popupMargin","tooltipMenuMargin","popupPinSize","tooltipMenuPinSize","renderMain","setRootNode","menuMaxHeight","menuWidth","header","footer","positions","disableAnimations","children","Component","__KONTUR_REACT_UI__","defaultProps"],"mappings":"2JAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,SAAT,QAA0C,0BAA1C;;AAEA,SAASC,eAAT,EAA0BC,SAA1B,QAA2C,8BAA3C;;;AAGA,SAAsBC,aAAtB,QAA2C,8BAA3C;AACA,SAASC,QAAT,QAAuC,oBAAvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,OAZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAEA,IAAaC,WAAb,GADCD,QACD,qHAOE,qBAAYE,KAAZ,EAAqC,WACnC,oCAAMA,KAAN,UAEA,IAAI,CAACA,KAAK,CAACC,OAAP,IAAkB,CAACN,eAAvB,EAAwC;AACtC,YAAM,IAAIO,KAAJ,CAAU,+BAAV,CAAN;AACD,KALkC;AAMpC,GAbH;;AAeSC,EAAAA,MAfT,GAeE,kBAAgB;AACd;AACE,0BAAC,YAAD,CAAc,QAAd;AACG,gBAACC,KAAD,EAAW;AACV;AACE,8BAAC,YAAD,CAAc,QAAd;AACE,YAAA,KAAK,EAAEZ,YAAY,CAACa,MAAb;AACL;AACEC,cAAAA,cAAc,EAAEF,KAAK,CAACG,oBADxB;AAEEC,cAAAA,WAAW,EAAEJ,KAAK,CAACK,iBAFrB;AAGEC,cAAAA,YAAY,EAAEN,KAAK,CAACO,kBAHtB,EADK;;AAMLP,YAAAA,KANK,CADT;;;AAUG,UAAA,MAAI,CAACQ,UAAL,EAVH,CADF;;;AAcD,OAhBH,CADF;;;AAoBD,GApCH;;AAsCSA,EAAAA,UAtCT,GAsCE,sBAAoB;AAClB,QAAI,CAAC,KAAKZ,KAAL,CAAWC,OAAhB,EAAyB;AACvB,aAAO,IAAP;AACD;;AAED;AACE,0BAAC,aAAD,aAAe,WAAW,EAAE,KAAKY,WAAjC,IAAkD,KAAKb,KAAvD;AACE,0BAAC,SAAD;AACE,QAAA,aAAa,EAAE,KAAKA,KAAL,CAAWc,aAD5B;AAEE,QAAA,SAAS,EAAE,KAAKd,KAAL,CAAWe,SAFxB;AAGE,QAAA,OAAO,EAAE,KAAKf,KAAL,CAAWC,OAHtB;AAIE,QAAA,MAAM,EAAE,KAAKD,KAAL,CAAWgB,MAJrB;AAKE,QAAA,MAAM,EAAE,KAAKhB,KAAL,CAAWiB,MALrB;AAME,QAAA,SAAS,EAAE,KAAKjB,KAAL,CAAWkB,SANxB;AAOE,QAAA,WAAW,EAAE,IAPf;AAQE,QAAA,iBAAiB,EAAE,KAAKlB,KAAL,CAAWmB,iBARhC;;AAUG,WAAKnB,KAAL,CAAWoB,QAVd,CADF,CADF;;;;AAgBD,GA3DH,sBAAiC7B,KAAK,CAAC8B,SAAvC,WACgBC,mBADhB,GACsC,aADtC,UAIgBC,YAJhB,GAI+B,EAC3BJ,iBAAiB,EAAEvB,SADQ,EAJ/B","sourcesContent":["import React from 'react';\n\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { PopupMenu, PopupMenuProps } from '../../internal/PopupMenu';\nimport { MenuItemProps } from '../MenuItem';\nimport { isProductionEnv, isTestEnv } from '../../lib/currentEnvironment';\nimport { MenuHeaderProps } from '../MenuHeader';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nexport type TooltipMenuChildType = React.ReactElement<MenuItemProps | {} | MenuHeaderProps>;\n\nexport interface TooltipMenuProps extends CommonProps {\n children?: TooltipMenuChildType | TooltipMenuChildType[];\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо `caption`,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: PopupMenuProps['caption'];\n /**\n * Произвольный элемент, который будет отрендерен в шапке меню.\n *\n * _Примечание_: контрол [`MenuHeader`](#/Components/MenuHeader) передаётся только в `children` меню-контролов. Не стоит передавать `MenuHeader` в `header`.\n */\n header?: React.ReactNode;\n /**\n * Произвольный элемент, который будет отрендерен в подвале меню.\n *\n * Перед элементом переданным в `footer` будет отрендерен [`MenuSeparator`](#/Components/MenuSeparator).\n */\n footer?: React.ReactNode;\n /** Список позиций доступных для расположения выпадашки относительно `caption`.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n */\n positions?: PopupPositionsType[];\n /**\n * Не показывать анимацию\n */\n disableAnimations: boolean;\n}\n\n/**\n * Меню, раскрывающееся по клику на переданный в `caption` элемент.\n *\n * Положение меню задаётся с помощью массива `positions` и работает так:\n * первое значение в массиве - дефолтная позиция, меню раскроется на этой позиции, если оно не будет выходить за пределы `viewport`,\n * если раскрыться в дефолтной позиции не получится - будет использована следующая позиция, и так далее, пока не будет достигнут конец массива. Если все положения из списка будут выходить за пределы `viewport`, в качестве положения будет использовано первое значение в массиве.\n *\n * Если меню должно раскрываться только в одну сторону - массив `positions` должен содержать только один элемент: сторону, в которую должно открываться меню.\n *\n * Если массив `positions` не передан (или передан пустой массив), будут использованы всевозможные значения.\n */\n@rootNode\nexport class TooltipMenu extends React.Component<TooltipMenuProps> {\n public static __KONTUR_REACT_UI__ = 'TooltipMenu';\n private setRootNode!: TSetRootNode;\n\n public static defaultProps = {\n disableAnimations: isTestEnv,\n };\n constructor(props: TooltipMenuProps) {\n super(props);\n\n if (!props.caption && !isProductionEnv) {\n throw new Error('Prop \"caption\" is required!!!');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.tooltipMenuPinOffset,\n popupMargin: theme.tooltipMenuMargin,\n popupPinSize: theme.tooltipMenuPinSize,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n if (!this.props.caption) {\n return null;\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n menuMaxHeight={this.props.menuMaxHeight}\n menuWidth={this.props.menuWidth}\n caption={this.props.caption}\n header={this.props.header}\n footer={this.props.footer}\n positions={this.props.positions}\n popupHasPin={true}\n disableAnimations={this.props.disableAnimations}\n >\n {this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["TooltipMenu.tsx"],"names":["React","ThemeFactory","ThemeContext","PopupMenu","isProductionEnv","isTestEnv","CommonWrapper","rootNode","TooltipMenuDataTids","root","TooltipMenu","props","caption","Error","render","theme","create","popupPinOffset","tooltipMenuPinOffset","popupMargin","tooltipMenuMargin","popupPinSize","tooltipMenuPinSize","renderMain","setRootNode","menuMaxHeight","menuWidth","header","footer","positions","onOpen","onClose","disableAnimations","children","Component","__KONTUR_REACT_UI__","defaultProps"],"mappings":"2JAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,SAAT,QAA0C,0BAA1C;;AAEA,SAASC,eAAT,EAA0BC,SAA1B,QAA2C,8BAA3C;;;AAGA,SAAsBC,aAAtB,QAA2C,8BAA3C;AACA,SAASC,QAAT,QAAuC,oBAAvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,OAAO,IAAMC,mBAAmB,GAAG;AACjCC,EAAAA,IAAI,EAAE,mBAD2B,EAA5B;;;AAIP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAaC,WAAb,GADCH,QACD;;;;;;;AAOE,uBAAYI,KAAZ,EAAqC;AACnC,wCAAMA,KAAN;;AAEA,QAAI,CAACA,KAAK,CAACC,OAAP,IAAkB,CAACR,eAAvB,EAAwC;AACtC,YAAM,IAAIS,KAAJ,CAAU,+BAAV,CAAN;AACD,KALkC;AAMpC,GAbH;;AAeSC,EAAAA,MAfT,GAeE,kBAAgB;AACd;AACE,0BAAC,YAAD,CAAc,QAAd;AACG,gBAACC,KAAD,EAAW;AACV;AACE,8BAAC,YAAD,CAAc,QAAd;AACE,YAAA,KAAK,EAAEd,YAAY,CAACe,MAAb;AACL;AACEC,cAAAA,cAAc,EAAEF,KAAK,CAACG,oBADxB;AAEEC,cAAAA,WAAW,EAAEJ,KAAK,CAACK,iBAFrB;AAGEC,cAAAA,YAAY,EAAEN,KAAK,CAACO,kBAHtB,EADK;;AAMLP,YAAAA,KANK,CADT;;;AAUG,UAAA,MAAI,CAACQ,UAAL,EAVH,CADF;;;AAcD,OAhBH,CADF;;;AAoBD,GApCH;;AAsCSA,EAAAA,UAtCT,GAsCE,sBAAoB;AAClB,QAAI,CAAC,KAAKZ,KAAL,CAAWC,OAAhB,EAAyB;AACvB,aAAO,IAAP;AACD;;AAED;AACE,0BAAC,aAAD,aAAe,WAAW,EAAE,KAAKY,WAAjC,IAAkD,KAAKb,KAAvD;AACE,0BAAC,SAAD;AACE,oBAAUH,mBAAmB,CAACC,IADhC;AAEE,QAAA,aAAa,EAAE,KAAKE,KAAL,CAAWc,aAF5B;AAGE,QAAA,SAAS,EAAE,KAAKd,KAAL,CAAWe,SAHxB;AAIE,QAAA,OAAO,EAAE,KAAKf,KAAL,CAAWC,OAJtB;AAKE,QAAA,MAAM,EAAE,KAAKD,KAAL,CAAWgB,MALrB;AAME,QAAA,MAAM,EAAE,KAAKhB,KAAL,CAAWiB,MANrB;AAOE,QAAA,SAAS,EAAE,KAAKjB,KAAL,CAAWkB,SAPxB;AAQE,QAAA,MAAM,EAAE,KAAKlB,KAAL,CAAWmB,MARrB;AASE,QAAA,OAAO,EAAE,KAAKnB,KAAL,CAAWoB,OATtB;AAUE,QAAA,WAAW,MAVb;AAWE,QAAA,iBAAiB,EAAE,KAAKpB,KAAL,CAAWqB,iBAXhC;;AAaG,WAAKrB,KAAL,CAAWsB,QAbd,CADF,CADF;;;;AAmBD,GA9DH,sBAAiCjC,KAAK,CAACkC,SAAvC,WACgBC,mBADhB,GACsC,aADtC,UAIgBC,YAJhB,GAI+B,EAC3BJ,iBAAiB,EAAE3B,SADQ,EAJ/B","sourcesContent":["import React from 'react';\n\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { PopupMenu, PopupMenuProps } from '../../internal/PopupMenu';\nimport { MenuItemProps } from '../MenuItem';\nimport { isProductionEnv, isTestEnv } from '../../lib/currentEnvironment';\nimport { MenuHeaderProps } from '../MenuHeader';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nexport type TooltipMenuChildType = React.ReactElement<MenuItemProps | {} | MenuHeaderProps>;\n\nexport interface TooltipMenuProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose'> {\n children?: TooltipMenuChildType | TooltipMenuChildType[];\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо `caption`,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: PopupMenuProps['caption'];\n /**\n * Произвольный элемент, который будет отрендерен в шапке меню.\n *\n * _Примечание_: контрол [`MenuHeader`](#/Components/MenuHeader) передаётся только в `children` меню-контролов. Не стоит передавать `MenuHeader` в `header`.\n */\n header?: React.ReactNode;\n /**\n * Произвольный элемент, который будет отрендерен в подвале меню.\n *\n * Перед элементом переданным в `footer` будет отрендерен [`MenuSeparator`](#/Components/MenuSeparator).\n */\n footer?: React.ReactNode;\n /** Список позиций доступных для расположения выпадашки относительно `caption`.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n */\n positions?: PopupPositionsType[];\n /**\n * Не показывать анимацию\n */\n disableAnimations: boolean;\n}\n\nexport const TooltipMenuDataTids = {\n root: 'TooltipMenu__root',\n} as const;\n\n/**\n * Меню, раскрывающееся по клику на переданный в `caption` элемент.\n *\n * Положение меню задаётся с помощью массива `positions` и работает так:\n * первое значение в массиве - дефолтная позиция, меню раскроется на этой позиции, если оно не будет выходить за пределы `viewport`,\n * если раскрыться в дефолтной позиции не получится - будет использована следующая позиция, и так далее, пока не будет достигнут конец массива. Если все положения из списка будут выходить за пределы `viewport`, в качестве положения будет использовано первое значение в массиве.\n *\n * Если меню должно раскрываться только в одну сторону - массив `positions` должен содержать только один элемент: сторону, в которую должно открываться меню.\n *\n * Если массив `positions` не передан (или передан пустой массив), будут использованы всевозможные значения.\n */\n@rootNode\nexport class TooltipMenu extends React.Component<TooltipMenuProps> {\n public static __KONTUR_REACT_UI__ = 'TooltipMenu';\n private setRootNode!: TSetRootNode;\n\n public static defaultProps = {\n disableAnimations: isTestEnv,\n };\n constructor(props: TooltipMenuProps) {\n super(props);\n\n if (!props.caption && !isProductionEnv) {\n throw new Error('Prop \"caption\" is required!!!');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.tooltipMenuPinOffset,\n popupMargin: theme.tooltipMenuMargin,\n popupPinSize: theme.tooltipMenuPinSize,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n if (!this.props.caption) {\n return null;\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n data-tid={TooltipMenuDataTids.root}\n menuMaxHeight={this.props.menuMaxHeight}\n menuWidth={this.props.menuWidth}\n caption={this.props.caption}\n header={this.props.header}\n footer={this.props.footer}\n positions={this.props.positions}\n onOpen={this.props.onOpen}\n onClose={this.props.onClose}\n popupHasPin\n disableAnimations={this.props.disableAnimations}\n >\n {this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n}\n"]}
@@ -5,7 +5,7 @@ import { MenuHeaderProps } from '../MenuHeader';
5
5
  import { PopupPositionsType } from '../../internal/Popup';
6
6
  import { CommonProps } from '../../internal/CommonWrapper';
7
7
  export declare type TooltipMenuChildType = React.ReactElement<MenuItemProps | {} | MenuHeaderProps>;
8
- export interface TooltipMenuProps extends CommonProps {
8
+ export interface TooltipMenuProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose'> {
9
9
  children?: TooltipMenuChildType | TooltipMenuChildType[];
10
10
  /** Максимальная высота меню */
11
11
  menuMaxHeight?: number | string;
@@ -42,6 +42,9 @@ export interface TooltipMenuProps extends CommonProps {
42
42
  */
43
43
  disableAnimations: boolean;
44
44
  }
45
+ export declare const TooltipMenuDataTids: {
46
+ readonly root: "TooltipMenu__root";
47
+ };
45
48
  /**
46
49
  * Меню, раскрывающееся по клику на переданный в `caption` элемент.
47
50
  *
@@ -38,7 +38,11 @@ export var useDrop = function useDrop(props) {
38
38
  }, [preventDefault, onDrop]);
39
39
  useEffect(function () {
40
40
  var ref = droppableRef.current;
41
- if (!ref) return;
41
+
42
+ if (!ref) {
43
+ return;
44
+ }
45
+
42
46
  ref.addEventListener('dragenter', preventDefault);
43
47
  ref.addEventListener('dragleave', preventDefault);
44
48
  ref.addEventListener('dragover', handleDragOver);
@@ -1 +1 @@
1
- {"version":3,"sources":["useDrop.ts"],"names":["useCallback","useEffect","useRef","useState","useDrop","props","onDrop","droppableRef","overRef","timerId","isDraggable","setIsDraggable","clearTimer","current","clearTimeout","handleDragOver","event","preventDefault","setTimeout","stopPropagation","handleDrop","ref","addEventListener","removeEventListener"],"mappings":"AAAA,SAA2BA,WAA3B,EAAwCC,SAAxC,EAAmDC,MAAnD,EAA2DC,QAA3D,QAA2E,OAA3E;;;;;;;;;;;;;AAaA,OAAO,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAAwCC,KAAxC,EAAgG,KAAxDA,KAAwD,cAAxDA,KAAwD,GAAjC,EAAiC;AACrH,eAAmBA,KAAnB,CAAQC,MAAR,UAAQA,MAAR;;AAEA,MAAMC,YAAY,GAAGL,MAAM,CAAW,IAAX,CAA3B;AACA,MAAMM,OAAO,GAAGN,MAAM,CAAU,KAAV,CAAtB;AACA,MAAMO,OAAO,GAAGP,MAAM,EAAtB;AACA,kBAAsCC,QAAQ,CAAU,KAAV,CAA9C,CAAOO,WAAP,gBAAoBC,cAApB;;AAEA,MAAMC,UAAU,GAAGZ,WAAW,CAAC,YAAM;AACnCS,IAAAA,OAAO,CAACI,OAAR,IAAmBC,YAAY,CAACL,OAAO,CAACI,OAAT,CAA/B;AACD,GAF6B,EAE3B,EAF2B,CAA9B;;AAIA,MAAME,cAAc,GAAGf,WAAW;AAChC,YAACgB,KAAD,EAAW;AACTA,IAAAA,KAAK,CAACC,cAAN;AACAN,IAAAA,cAAc,CAAC,IAAD,CAAd;;AAEAC,IAAAA,UAAU;AACVH,IAAAA,OAAO,CAACI,OAAR,GAAkBK,UAAU,CAAC,YAAM;AACjCV,MAAAA,OAAO,CAACK,OAAR,GAAkB,KAAlB;AACAF,MAAAA,cAAc,CAAC,KAAD,CAAd;AACD,KAH2B,EAGzB,GAHyB,CAA5B;AAID,GAV+B;AAWhC,GAACC,UAAD,CAXgC,CAAlC;;;AAcA,MAAMK,cAAc,GAAGjB,WAAW,CAAC,UAACgB,KAAD,EAAW;AAC5CA,IAAAA,KAAK,CAACC,cAAN;AACAD,IAAAA,KAAK,CAACG,eAAN;AACD,GAHiC,EAG/B,EAH+B,CAAlC;;AAKA,MAAMC,UAAU,GAAGpB,WAAW;AAC5B,YAACgB,KAAD,EAAkB;AAChBC,IAAAA,cAAc,CAACD,KAAD,CAAd;AACAL,IAAAA,cAAc,CAAC,KAAD,CAAd;AACAH,IAAAA,OAAO,CAACK,OAAR,GAAkB,KAAlB;;AAEAP,IAAAA,MAAM,QAAN,YAAAA,MAAM,CAAGU,KAAH,CAAN;AACD,GAP2B;AAQ5B,GAACC,cAAD,EAAiBX,MAAjB,CAR4B,CAA9B;;;AAWAL,EAAAA,SAAS,CAAC,YAAM;AACd,QAAMoB,GAAG,GAAGd,YAAY,CAACM,OAAzB;;AAEA,QAAI,CAACQ,GAAL,EAAU;;AAEVA,IAAAA,GAAG,CAACC,gBAAJ,CAAqB,WAArB,EAAkCL,cAAlC;AACAI,IAAAA,GAAG,CAACC,gBAAJ,CAAqB,WAArB,EAAkCL,cAAlC;AACAI,IAAAA,GAAG,CAACC,gBAAJ,CAAqB,UAArB,EAAiCP,cAAjC;AACAM,IAAAA,GAAG,CAACC,gBAAJ,CAAqB,MAArB,EAA6BF,UAA7B;;AAEA,WAAO,YAAM;AACXC,MAAAA,GAAG,CAACE,mBAAJ,CAAwB,WAAxB,EAAqCN,cAArC;AACAI,MAAAA,GAAG,CAACE,mBAAJ,CAAwB,WAAxB,EAAqCN,cAArC;AACAI,MAAAA,GAAG,CAACE,mBAAJ,CAAwB,UAAxB,EAAoCR,cAApC;AACAM,MAAAA,GAAG,CAACE,mBAAJ,CAAwB,MAAxB,EAAgCH,UAAhC;AACD,KALD;AAMD,GAhBQ,EAgBN,CAACA,UAAD,EAAaL,cAAb,EAA6BE,cAA7B,CAhBM,CAAT;;AAkBA,SAAO,EAAEP,WAAW,EAAXA,WAAF,EAAeW,GAAG,EAAEd,YAApB,EAAP;AACD,CA7DM","sourcesContent":["import { MutableRefObject, useCallback, useEffect, useRef, useState } from 'react';\n\ninterface IUseDropProps {\n onDrop?: (event: Event) => void;\n}\n\ntype IElementWithListener = Pick<HTMLElement, 'addEventListener' | 'removeEventListener'>;\n\ninterface IUseDropResult<TElement extends IElementWithListener> {\n isDraggable: boolean;\n ref: MutableRefObject<TElement | null>;\n}\n\nexport const useDrop = <TElement extends IElementWithListener>(props: IUseDropProps = {}): IUseDropResult<TElement> => {\n const { onDrop } = props;\n\n const droppableRef = useRef<TElement>(null);\n const overRef = useRef<boolean>(false);\n const timerId = useRef<NodeJS.Timeout>();\n const [isDraggable, setIsDraggable] = useState<boolean>(false);\n\n const clearTimer = useCallback(() => {\n timerId.current && clearTimeout(timerId.current);\n }, []);\n\n const handleDragOver = useCallback(\n (event) => {\n event.preventDefault();\n setIsDraggable(true);\n\n clearTimer();\n timerId.current = setTimeout(() => {\n overRef.current = false;\n setIsDraggable(false);\n }, 200);\n },\n [clearTimer],\n );\n\n const preventDefault = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n const handleDrop = useCallback(\n (event: Event) => {\n preventDefault(event);\n setIsDraggable(false);\n overRef.current = false;\n\n onDrop?.(event);\n },\n [preventDefault, onDrop],\n );\n\n useEffect(() => {\n const ref = droppableRef.current;\n\n if (!ref) return;\n\n ref.addEventListener('dragenter', preventDefault);\n ref.addEventListener('dragleave', preventDefault);\n ref.addEventListener('dragover', handleDragOver);\n ref.addEventListener('drop', handleDrop);\n\n return () => {\n ref.removeEventListener('dragenter', preventDefault);\n ref.removeEventListener('dragleave', preventDefault);\n ref.removeEventListener('dragover', handleDragOver);\n ref.removeEventListener('drop', handleDrop);\n };\n }, [handleDrop, handleDragOver, preventDefault]);\n\n return { isDraggable, ref: droppableRef };\n};\n"]}
1
+ {"version":3,"sources":["useDrop.ts"],"names":["useCallback","useEffect","useRef","useState","useDrop","props","onDrop","droppableRef","overRef","timerId","isDraggable","setIsDraggable","clearTimer","current","clearTimeout","handleDragOver","event","preventDefault","setTimeout","stopPropagation","handleDrop","ref","addEventListener","removeEventListener"],"mappings":"AAAA,SAA2BA,WAA3B,EAAwCC,SAAxC,EAAmDC,MAAnD,EAA2DC,QAA3D,QAA2E,OAA3E;;;;;;;;;;;;;AAaA,OAAO,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAAwCC,KAAxC,EAAgG,KAAxDA,KAAwD,cAAxDA,KAAwD,GAAjC,EAAiC;AACrH,eAAmBA,KAAnB,CAAQC,MAAR,UAAQA,MAAR;;AAEA,MAAMC,YAAY,GAAGL,MAAM,CAAW,IAAX,CAA3B;AACA,MAAMM,OAAO,GAAGN,MAAM,CAAU,KAAV,CAAtB;AACA,MAAMO,OAAO,GAAGP,MAAM,EAAtB;AACA,kBAAsCC,QAAQ,CAAU,KAAV,CAA9C,CAAOO,WAAP,gBAAoBC,cAApB;;AAEA,MAAMC,UAAU,GAAGZ,WAAW,CAAC,YAAM;AACnCS,IAAAA,OAAO,CAACI,OAAR,IAAmBC,YAAY,CAACL,OAAO,CAACI,OAAT,CAA/B;AACD,GAF6B,EAE3B,EAF2B,CAA9B;;AAIA,MAAME,cAAc,GAAGf,WAAW;AAChC,YAACgB,KAAD,EAAW;AACTA,IAAAA,KAAK,CAACC,cAAN;AACAN,IAAAA,cAAc,CAAC,IAAD,CAAd;;AAEAC,IAAAA,UAAU;AACVH,IAAAA,OAAO,CAACI,OAAR,GAAkBK,UAAU,CAAC,YAAM;AACjCV,MAAAA,OAAO,CAACK,OAAR,GAAkB,KAAlB;AACAF,MAAAA,cAAc,CAAC,KAAD,CAAd;AACD,KAH2B,EAGzB,GAHyB,CAA5B;AAID,GAV+B;AAWhC,GAACC,UAAD,CAXgC,CAAlC;;;AAcA,MAAMK,cAAc,GAAGjB,WAAW,CAAC,UAACgB,KAAD,EAAW;AAC5CA,IAAAA,KAAK,CAACC,cAAN;AACAD,IAAAA,KAAK,CAACG,eAAN;AACD,GAHiC,EAG/B,EAH+B,CAAlC;;AAKA,MAAMC,UAAU,GAAGpB,WAAW;AAC5B,YAACgB,KAAD,EAAkB;AAChBC,IAAAA,cAAc,CAACD,KAAD,CAAd;AACAL,IAAAA,cAAc,CAAC,KAAD,CAAd;AACAH,IAAAA,OAAO,CAACK,OAAR,GAAkB,KAAlB;;AAEAP,IAAAA,MAAM,QAAN,YAAAA,MAAM,CAAGU,KAAH,CAAN;AACD,GAP2B;AAQ5B,GAACC,cAAD,EAAiBX,MAAjB,CAR4B,CAA9B;;;AAWAL,EAAAA,SAAS,CAAC,YAAM;AACd,QAAMoB,GAAG,GAAGd,YAAY,CAACM,OAAzB;;AAEA,QAAI,CAACQ,GAAL,EAAU;AACR;AACD;;AAEDA,IAAAA,GAAG,CAACC,gBAAJ,CAAqB,WAArB,EAAkCL,cAAlC;AACAI,IAAAA,GAAG,CAACC,gBAAJ,CAAqB,WAArB,EAAkCL,cAAlC;AACAI,IAAAA,GAAG,CAACC,gBAAJ,CAAqB,UAArB,EAAiCP,cAAjC;AACAM,IAAAA,GAAG,CAACC,gBAAJ,CAAqB,MAArB,EAA6BF,UAA7B;;AAEA,WAAO,YAAM;AACXC,MAAAA,GAAG,CAACE,mBAAJ,CAAwB,WAAxB,EAAqCN,cAArC;AACAI,MAAAA,GAAG,CAACE,mBAAJ,CAAwB,WAAxB,EAAqCN,cAArC;AACAI,MAAAA,GAAG,CAACE,mBAAJ,CAAwB,UAAxB,EAAoCR,cAApC;AACAM,MAAAA,GAAG,CAACE,mBAAJ,CAAwB,MAAxB,EAAgCH,UAAhC;AACD,KALD;AAMD,GAlBQ,EAkBN,CAACA,UAAD,EAAaL,cAAb,EAA6BE,cAA7B,CAlBM,CAAT;;AAoBA,SAAO,EAAEP,WAAW,EAAXA,WAAF,EAAeW,GAAG,EAAEd,YAApB,EAAP;AACD,CA/DM","sourcesContent":["import { MutableRefObject, useCallback, useEffect, useRef, useState } from 'react';\n\ninterface IUseDropProps {\n onDrop?: (event: Event) => void;\n}\n\ntype IElementWithListener = Pick<HTMLElement, 'addEventListener' | 'removeEventListener'>;\n\ninterface IUseDropResult<TElement extends IElementWithListener> {\n isDraggable: boolean;\n ref: MutableRefObject<TElement | null>;\n}\n\nexport const useDrop = <TElement extends IElementWithListener>(props: IUseDropProps = {}): IUseDropResult<TElement> => {\n const { onDrop } = props;\n\n const droppableRef = useRef<TElement>(null);\n const overRef = useRef<boolean>(false);\n const timerId = useRef<NodeJS.Timeout>();\n const [isDraggable, setIsDraggable] = useState<boolean>(false);\n\n const clearTimer = useCallback(() => {\n timerId.current && clearTimeout(timerId.current);\n }, []);\n\n const handleDragOver = useCallback(\n (event) => {\n event.preventDefault();\n setIsDraggable(true);\n\n clearTimer();\n timerId.current = setTimeout(() => {\n overRef.current = false;\n setIsDraggable(false);\n }, 200);\n },\n [clearTimer],\n );\n\n const preventDefault = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n const handleDrop = useCallback(\n (event: Event) => {\n preventDefault(event);\n setIsDraggable(false);\n overRef.current = false;\n\n onDrop?.(event);\n },\n [preventDefault, onDrop],\n );\n\n useEffect(() => {\n const ref = droppableRef.current;\n\n if (!ref) {\n return;\n }\n\n ref.addEventListener('dragenter', preventDefault);\n ref.addEventListener('dragleave', preventDefault);\n ref.addEventListener('dragover', handleDragOver);\n ref.addEventListener('drop', handleDrop);\n\n return () => {\n ref.removeEventListener('dragenter', preventDefault);\n ref.removeEventListener('dragleave', preventDefault);\n ref.removeEventListener('dragover', handleDragOver);\n ref.removeEventListener('drop', handleDrop);\n };\n }, [handleDrop, handleDragOver, preventDefault]);\n\n return { isDraggable, ref: droppableRef };\n};\n"]}
package/index.d.ts CHANGED
@@ -49,4 +49,6 @@ export * from './lib/theming/themes/DefaultTheme';
49
49
  export * from './lib/theming/themes/DarkTheme';
50
50
  export * from './lib/theming/themes/DefaultTheme8pxOld';
51
51
  export * from './lib/theming/themes/FlatTheme8pxOld';
52
+ export * from './lib/theming/themes/Theme2022';
53
+ export * from './lib/theming/themes/Theme2022Dark';
52
54
  export * from './internal/Popup/types';
package/index.js CHANGED
@@ -49,4 +49,6 @@ export * from './lib/theming/themes/DefaultTheme';
49
49
  export * from './lib/theming/themes/DarkTheme';
50
50
  export * from './lib/theming/themes/DefaultTheme8pxOld';
51
51
  export * from './lib/theming/themes/FlatTheme8pxOld';
52
+ export * from './lib/theming/themes/Theme2022';
53
+ export * from './lib/theming/themes/Theme2022Dark';
52
54
  export * from './internal/Popup/types';
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAAd;AACA,cAAc,qBAAd;AACA,cAAc,qBAAd;AACA,cAAc,uBAAd;AACA,cAAc,uBAAd;AACA,cAAc,4BAAd;AACA,cAAc,4BAAd;AACA,cAAc,wBAAd;AACA,cAAc,yBAAd;AACA,cAAc,uBAAd;AACA,cAAc,2BAAd;AACA,cAAc,2BAAd;AACA,cAAc,sBAAd;AACA,cAAc,qBAAd;AACA,cAAc,2BAAd;AACA,cAAc,oBAAd;AACA,cAAc,mBAAd;AACA,cAAc,oBAAd;AACA,cAAc,oBAAd;AACA,cAAc,mBAAd;AACA,cAAc,qBAAd;AACA,cAAc,yBAAd;AACA,cAAc,uBAAd;AACA,cAAc,4BAAd;AACA,cAAc,oBAAd;AACA,cAAc,qBAAd;AACA,cAAc,4BAAd;AACA,cAAc,oBAAd;AACA,cAAc,yBAAd;AACA,cAAc,8BAAd;AACA,cAAc,qBAAd;AACA,cAAc,uBAAd;AACA,cAAc,sBAAd;AACA,cAAc,qBAAd;AACA,cAAc,uBAAd;AACA,cAAc,mBAAd;AACA,cAAc,uBAAd;AACA,cAAc,oBAAd;AACA,cAAc,qBAAd;AACA,cAAc,oBAAd;AACA,cAAc,yBAAd;AACA,cAAc,sBAAd;AACA,cAAc,0BAAd;AACA,cAAc,+BAAd;AACA,cAAc,cAAd;AACA,cAAc,4BAAd;AACA,cAAc,4BAAd;AACA,cAAc,mCAAd;AACA,cAAc,gCAAd;AACA,cAAc,yCAAd;AACA,cAAc,sCAAd;AACA,cAAc,wBAAd","sourcesContent":["export * from './components/Autocomplete';\nexport * from './components/Button';\nexport * from './components/Center';\nexport * from './components/Checkbox';\nexport * from './components/ComboBox';\nexport * from './components/CurrencyInput';\nexport * from './components/CurrencyLabel';\nexport * from './components/DateInput';\nexport * from './components/DatePicker';\nexport * from './components/Dropdown';\nexport * from './components/DropdownMenu';\nexport * from './components/FileUploader';\nexport * from './components/FxInput';\nexport * from './components/Gapped';\nexport * from './components/GlobalLoader';\nexport * from './components/Group';\nexport * from './components/Hint';\nexport * from './components/Input';\nexport * from './components/Kebab';\nexport * from './components/Link';\nexport * from './components/Loader';\nexport * from './components/MenuHeader';\nexport * from './components/MenuItem';\nexport * from './components/MenuSeparator';\nexport * from './components/Modal';\nexport * from './components/Paging';\nexport * from './components/PasswordInput';\nexport * from './components/Radio';\nexport * from './components/RadioGroup';\nexport * from './components/ScrollContainer';\nexport * from './components/Select';\nexport * from './components/SidePage';\nexport * from './components/Spinner';\nexport * from './components/Sticky';\nexport * from './components/Switcher';\nexport * from './components/Tabs';\nexport * from './components/Textarea';\nexport * from './components/Toast';\nexport * from './components/Toggle';\nexport * from './components/Token';\nexport * from './components/TokenInput';\nexport * from './components/Tooltip';\nexport * from './components/TooltipMenu';\nexport * from './components/ResponsiveLayout';\nexport * from './lib/locale';\nexport * from './lib/theming/ThemeContext';\nexport * from './lib/theming/ThemeFactory';\nexport * from './lib/theming/themes/DefaultTheme';\nexport * from './lib/theming/themes/DarkTheme';\nexport * from './lib/theming/themes/DefaultTheme8pxOld';\nexport * from './lib/theming/themes/FlatTheme8pxOld';\nexport * from './internal/Popup/types';\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAAd;AACA,cAAc,qBAAd;AACA,cAAc,qBAAd;AACA,cAAc,uBAAd;AACA,cAAc,uBAAd;AACA,cAAc,4BAAd;AACA,cAAc,4BAAd;AACA,cAAc,wBAAd;AACA,cAAc,yBAAd;AACA,cAAc,uBAAd;AACA,cAAc,2BAAd;AACA,cAAc,2BAAd;AACA,cAAc,sBAAd;AACA,cAAc,qBAAd;AACA,cAAc,2BAAd;AACA,cAAc,oBAAd;AACA,cAAc,mBAAd;AACA,cAAc,oBAAd;AACA,cAAc,oBAAd;AACA,cAAc,mBAAd;AACA,cAAc,qBAAd;AACA,cAAc,yBAAd;AACA,cAAc,uBAAd;AACA,cAAc,4BAAd;AACA,cAAc,oBAAd;AACA,cAAc,qBAAd;AACA,cAAc,4BAAd;AACA,cAAc,oBAAd;AACA,cAAc,yBAAd;AACA,cAAc,8BAAd;AACA,cAAc,qBAAd;AACA,cAAc,uBAAd;AACA,cAAc,sBAAd;AACA,cAAc,qBAAd;AACA,cAAc,uBAAd;AACA,cAAc,mBAAd;AACA,cAAc,uBAAd;AACA,cAAc,oBAAd;AACA,cAAc,qBAAd;AACA,cAAc,oBAAd;AACA,cAAc,yBAAd;AACA,cAAc,sBAAd;AACA,cAAc,0BAAd;AACA,cAAc,+BAAd;AACA,cAAc,cAAd;AACA,cAAc,4BAAd;AACA,cAAc,4BAAd;AACA,cAAc,mCAAd;AACA,cAAc,gCAAd;AACA,cAAc,yCAAd;AACA,cAAc,sCAAd;AACA,cAAc,gCAAd;AACA,cAAc,oCAAd;AACA,cAAc,wBAAd","sourcesContent":["export * from './components/Autocomplete';\nexport * from './components/Button';\nexport * from './components/Center';\nexport * from './components/Checkbox';\nexport * from './components/ComboBox';\nexport * from './components/CurrencyInput';\nexport * from './components/CurrencyLabel';\nexport * from './components/DateInput';\nexport * from './components/DatePicker';\nexport * from './components/Dropdown';\nexport * from './components/DropdownMenu';\nexport * from './components/FileUploader';\nexport * from './components/FxInput';\nexport * from './components/Gapped';\nexport * from './components/GlobalLoader';\nexport * from './components/Group';\nexport * from './components/Hint';\nexport * from './components/Input';\nexport * from './components/Kebab';\nexport * from './components/Link';\nexport * from './components/Loader';\nexport * from './components/MenuHeader';\nexport * from './components/MenuItem';\nexport * from './components/MenuSeparator';\nexport * from './components/Modal';\nexport * from './components/Paging';\nexport * from './components/PasswordInput';\nexport * from './components/Radio';\nexport * from './components/RadioGroup';\nexport * from './components/ScrollContainer';\nexport * from './components/Select';\nexport * from './components/SidePage';\nexport * from './components/Spinner';\nexport * from './components/Sticky';\nexport * from './components/Switcher';\nexport * from './components/Tabs';\nexport * from './components/Textarea';\nexport * from './components/Toast';\nexport * from './components/Toggle';\nexport * from './components/Token';\nexport * from './components/TokenInput';\nexport * from './components/Tooltip';\nexport * from './components/TooltipMenu';\nexport * from './components/ResponsiveLayout';\nexport * from './lib/locale';\nexport * from './lib/theming/ThemeContext';\nexport * from './lib/theming/ThemeFactory';\nexport * from './lib/theming/themes/DefaultTheme';\nexport * from './lib/theming/themes/DarkTheme';\nexport * from './lib/theming/themes/DefaultTheme8pxOld';\nexport * from './lib/theming/themes/FlatTheme8pxOld';\nexport * from './lib/theming/themes/Theme2022';\nexport * from './lib/theming/themes/Theme2022Dark';\nexport * from './internal/Popup/types';\n"]}
@@ -7,7 +7,7 @@ import normalizeWheel from 'normalize-wheel';
7
7
  import throttle from 'lodash.throttle';
8
8
  import { MAX_DATE, MAX_MONTH, MAX_YEAR, MIN_DATE, MIN_MONTH, MIN_YEAR } from "../../../lib/date/constants";
9
9
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
10
- import { Animation } from "../../../lib/animation";
10
+ import { animation } from "../../../lib/animation";
11
11
  import { isMobile } from "../../../lib/client";
12
12
  import { themeConfig } from "../config";
13
13
  import * as CalendarUtils from "../CalendarUtils";
@@ -16,6 +16,12 @@ import * as CalendarScrollEvents from "../CalendarScrollEvents";
16
16
  import { Month } from "../Month";
17
17
  import { styles } from "../Calendar.styles";
18
18
  import { create, isGreater, isLess } from "../CalendarDateShape";
19
+ export var CalendarDataTids = {
20
+ root: 'Calendar',
21
+ month: 'MonthView__month',
22
+ headerMonth: 'MonthView__headerMonth',
23
+ headerYear: 'MonthView__headerYear'
24
+ };
19
25
 
20
26
  var getTodayDate = function getTodayDate() {
21
27
  var date = new Date();
@@ -30,10 +36,12 @@ export var Calendar = /*#__PURE__*/function (_React$Component) {
30
36
  _inheritsLoose(Calendar, _React$Component);
31
37
 
32
38
  function Calendar(props) {
39
+ var _props$initialMonth, _props$initialYear;
40
+
33
41
  var _this;
34
42
 
35
43
  _this = _React$Component.call(this, props) || this;
36
- _this.animation = Animation();
44
+ _this.animation = animation();
37
45
  _this.touchStartY = null;
38
46
 
39
47
  _this.scrollToMonth = /*#__PURE__*/function () {
@@ -197,7 +205,7 @@ export var Calendar = /*#__PURE__*/function (_React$Component) {
197
205
  return /*#__PURE__*/React.createElement("div", {
198
206
  ref: _this.refRoot,
199
207
  className: styles.root(_this.theme),
200
- "data-tid": "Calendar"
208
+ "data-tid": CalendarDataTids.root
201
209
  }, /*#__PURE__*/React.createElement("div", {
202
210
  style: wrapperStyle,
203
211
  className: styles.wrapper()
@@ -346,8 +354,8 @@ export var Calendar = /*#__PURE__*/function (_React$Component) {
346
354
  };
347
355
 
348
356
  var today = getTodayDate();
349
- var initialMonth = props.initialMonth == null ? today.month : props.initialMonth;
350
- var initialYear = props.initialYear == null ? today.year : props.initialYear;
357
+ var initialMonth = (_props$initialMonth = props.initialMonth) != null ? _props$initialMonth : today.month;
358
+ var initialYear = (_props$initialYear = props.initialYear) != null ? _props$initialYear : today.year;
351
359
  _this.state = {
352
360
  scrollPosition: 0,
353
361
  months: CalendarUtils.getMonths(initialMonth, initialYear),
@@ -1 +1 @@
1
- {"version":3,"sources":["Calendar.tsx"],"names":["React","normalizeWheel","throttle","MAX_DATE","MAX_MONTH","MAX_YEAR","MIN_DATE","MIN_MONTH","MIN_YEAR","ThemeContext","Animation","isMobile","themeConfig","CalendarUtils","MonthViewModel","CalendarScrollEvents","Month","styles","create","isGreater","isLess","getTodayDate","date","Date","getDate","month","getMonth","year","getFullYear","Calendar","props","animation","touchStartY","scrollToMonth","inProgress","finish","Promise","r","setTimeout","minDate","maxDate","currentMonth","state","months","diffInMonths","scrollTo","maxMonthsToAdd","theme","MAX_MONTHS_TO_APPEND_ON_SCROLL","onEnd","setState","getMonths","scrollPosition","isYearChanges","Math","abs","monthsToPrependCount","min","monthsToPrepend","Array","from","length","_","index","yearChanges","isFirstInYear","isLastInYear","concat","getMonthsHeight","targetPosition","getHeight","monthsToAppendCount","monthsToAppend","slice","renderMain","positions","getMonthPositions","wrapperStyle","height","WRAPPER_HEIGHT","refRoot","root","wrapper","map","x","i","filter","top","isMonthVisible","renderMonth","element","addEventListener","handleTouchStart","throttledHandleTouchMove","handleWheel","passive","removeEventListener","handleMonthYearChange","executeAnimations","pixelY","calculateScrollPosition","scrollTarget","handleWheelEnd","animate","deltaY","applyDelta","emit","event","TouchEvent","clientY","targetTouches","handleTouchMove","changedTouches","WheelEvent","preventDefault","wheelEndTimeout","clearTimeout","window","scrollToNearestWeek","scrollDirection","trasholdHeight","MONTH_TITLE_OFFSET_HEIGHT","DAY_SIZE","amount","pos","scrollAmmount","scrollAmount","today","initialMonth","initialYear","touchStart","componentWillUnmount","cancel","render","value","onSelect","isHoliday","position","push","Component","__KONTUR_REACT_UI__","defaultProps","holidays"],"mappings":"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","sourcesContent":["import React from 'react';\nimport normalizeWheel from 'normalize-wheel';\nimport throttle from 'lodash.throttle';\n\nimport { MAX_DATE, MAX_MONTH, MAX_YEAR, MIN_DATE, MIN_MONTH, MIN_YEAR } from '../../lib/date/constants';\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Animation } from '../../lib/animation';\nimport { isMobile } from '../../lib/client';\n\nimport { themeConfig } from './config';\nimport * as CalendarUtils from './CalendarUtils';\nimport { MonthViewModel } from './MonthViewModel';\nimport * as CalendarScrollEvents from './CalendarScrollEvents';\nimport { Month } from './Month';\nimport { styles } from './Calendar.styles';\nimport { CalendarDateShape, create, isGreater, isLess } from './CalendarDateShape';\n\nexport interface CalendarProps {\n initialMonth?: number;\n initialYear?: number;\n onSelect?: (date: CalendarDateShape) => void;\n value?: Nullable<CalendarDateShape>;\n maxDate?: CalendarDateShape;\n minDate?: CalendarDateShape;\n isHoliday?: (day: CalendarDateShape & { isWeekend: boolean }) => boolean;\n}\n\nexport interface CalendarState {\n scrollPosition: number;\n months: MonthViewModel[];\n today: CalendarDateShape;\n scrollDirection: number;\n scrollTarget: number;\n touchStart: number;\n}\n\nconst getTodayDate = () => {\n const date = new Date();\n return {\n date: date.getDate(),\n month: date.getMonth(),\n year: date.getFullYear(),\n };\n};\n\nexport class Calendar extends React.Component<CalendarProps, CalendarState> {\n public static __KONTUR_REACT_UI__ = 'Calendar';\n\n public static defaultProps = {\n holidays: [],\n minDate: {\n year: MIN_YEAR,\n month: MIN_MONTH,\n date: MIN_DATE,\n },\n maxDate: {\n year: MAX_YEAR,\n month: MAX_MONTH,\n date: MAX_DATE,\n },\n };\n\n private theme!: Theme;\n private wheelEndTimeout: Nullable<number>;\n private root: Nullable<HTMLElement>;\n private animation = Animation();\n private touchStartY: Nullable<number> = null;\n\n constructor(props: CalendarProps) {\n super(props);\n\n const today = getTodayDate();\n\n const initialMonth = props.initialMonth == null ? today.month : props.initialMonth;\n const initialYear = props.initialYear == null ? today.year : props.initialYear;\n\n this.state = {\n scrollPosition: 0,\n months: CalendarUtils.getMonths(initialMonth, initialYear),\n today,\n scrollDirection: 1,\n scrollTarget: 0,\n touchStart: 0,\n };\n }\n\n public componentWillUnmount() {\n if (this.animation.inProgress()) {\n this.animation.cancel();\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 /**\n * Scrolls calendar to given date\n * @public\n */\n public scrollToMonth = async (month: number, year: number) => {\n if (this.animation.inProgress()) {\n this.animation.finish();\n // FIXME: Dirty hack to await batched updates\n await new Promise((r) => setTimeout(r));\n }\n\n const { minDate, maxDate } = this.props;\n\n if (minDate && isGreater(minDate, create(32, month, year))) {\n this.scrollToMonth(minDate.month, minDate.year);\n return;\n }\n\n if (maxDate && isLess(maxDate, create(0, month, year))) {\n this.scrollToMonth(maxDate.month, maxDate.year);\n return;\n }\n\n const currentMonth = this.state.months[1];\n const diffInMonths = currentMonth.month + currentMonth.year * 12 - month - year * 12;\n\n if (diffInMonths === 0) {\n this.scrollTo(0);\n return;\n }\n\n const maxMonthsToAdd = themeConfig(this.theme).MAX_MONTHS_TO_APPEND_ON_SCROLL;\n\n const onEnd = () =>\n this.setState({\n months: CalendarUtils.getMonths(month, year),\n scrollPosition: 0,\n });\n\n const isYearChanges = (state: CalendarState) =>\n state.months[1].year !== year &&\n // if diff in months is 2 or less,\n // either year is not changing either months already\n // have right isFirstInYear/isLastInYear flags\n Math.abs(diffInMonths) > 2;\n\n // If scrolling upwards, prepend maximum maxMonthsToAdd months\n // and scroll to the first month\n if (diffInMonths > 0) {\n const monthsToPrependCount = Math.min(Math.abs(diffInMonths) - 1, maxMonthsToAdd);\n const monthsToPrepend = Array.from({ length: monthsToPrependCount }, (_, index) =>\n MonthViewModel.create(month + index, year),\n );\n this.setState(\n (state) => {\n const yearChanges = isYearChanges(state);\n if (yearChanges) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[0].isFirstInYear = true;\n if (monthsToPrepend.length) {\n // Mutating item here is safe as it was just created\n monthsToPrepend[monthsToPrepend.length - 1].isLastInYear = true;\n }\n }\n return {\n months: monthsToPrepend.concat(state.months),\n scrollPosition: -CalendarUtils.getMonthsHeight(monthsToPrepend, this.theme),\n };\n },\n () => {\n const targetPosition = this.state.months[0].getHeight(this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n\n // If scrolling downwards, append maximum maxMonthsToAdd months\n // and scroll to the last but one month\n if (diffInMonths < 0) {\n const monthsToAppendCount = Math.min(Math.abs(diffInMonths), maxMonthsToAdd);\n const monthsToAppend = Array.from({ length: monthsToAppendCount }, (_, index) =>\n MonthViewModel.create(month + index - monthsToAppendCount + 2, year),\n );\n this.setState(\n (state) => {\n if (isYearChanges(state)) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[state.months.length - 1].isLastInYear = true;\n // Mutating item here is safe as it was just created\n if (monthsToAppend[0]) {\n monthsToAppend[0].isFirstInYear = true;\n }\n }\n return { months: state.months.concat(monthsToAppend) };\n },\n () => {\n const targetPosition = -1 * CalendarUtils.getMonthsHeight(this.state.months.slice(1, -2), this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n };\n\n private renderMain = () => {\n const positions = this.getMonthPositions();\n const wrapperStyle = { height: themeConfig(this.theme).WRAPPER_HEIGHT };\n return (\n <div ref={this.refRoot} className={styles.root(this.theme)} data-tid=\"Calendar\">\n <div style={wrapperStyle} className={styles.wrapper()}>\n {this.state.months\n .map<[number, MonthViewModel]>((x, i) => [positions[i], x])\n .filter(([top, month]) => CalendarUtils.isMonthVisible(top, month, this.theme))\n .map(this.renderMonth, this)}\n </div>\n </div>\n );\n };\n\n private refRoot = (element: HTMLElement | null) => {\n if (!this.root && element) {\n if (isMobile) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n }\n if (this.root && !element) {\n if (isMobile) {\n this.root.removeEventListener('touchstart', this.handleTouchStart);\n this.root.removeEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n this.root.removeEventListener('wheel', this.handleWheel);\n }\n }\n this.root = element;\n };\n\n private renderMonth([top, month]: [number, MonthViewModel]) {\n return (\n <Month\n key={month.month + '-' + month.year}\n top={top}\n month={month}\n maxDate={this.props.maxDate}\n minDate={this.props.minDate}\n today={this.state.today}\n value={this.props.value}\n onDateClick={this.props.onSelect}\n onMonthYearChange={this.handleMonthYearChange}\n isHoliday={this.props.isHoliday}\n />\n );\n }\n\n private getMonthPositions() {\n const { scrollPosition, months } = this.state;\n\n const positions = [scrollPosition - months[0].getHeight(this.theme)];\n for (let i = 1; i < months.length; i++) {\n const position = positions[i - 1] + months[i - 1].getHeight(this.theme);\n positions.push(position);\n }\n return positions;\n }\n\n private handleMonthYearChange = (month: number, year: number) => {\n this.scrollToMonth(month, year);\n };\n\n private executeAnimations = (pixelY: number) => {\n this.setState(({ months, scrollPosition }) => {\n const targetPosition = CalendarUtils.calculateScrollPosition(\n months,\n scrollPosition,\n pixelY,\n this.theme,\n ).scrollPosition;\n return { scrollTarget: targetPosition };\n }, this.handleWheelEnd);\n\n this.animation.animate(pixelY, (deltaY) =>\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any),\n );\n\n CalendarScrollEvents.emit();\n };\n\n private handleTouchStart = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n const clientY = event.targetTouches[0].clientY;\n this.touchStartY = clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n\n const deltaY = (this.touchStartY || 0) - clientY;\n this.touchStartY = clientY;\n\n this.executeAnimations(deltaY);\n };\n\n private throttledHandleTouchMove = throttle(this.handleTouchMove, 10);\n\n private handleWheel = (event: Event) => {\n if (!(event instanceof WheelEvent)) {\n return;\n }\n event.preventDefault();\n const { pixelY } = normalizeWheel(event);\n\n this.executeAnimations(pixelY);\n };\n\n private handleWheelEnd = () => {\n if (this.wheelEndTimeout) {\n clearTimeout(this.wheelEndTimeout);\n }\n this.wheelEndTimeout = window.setTimeout(this.scrollToNearestWeek, 300);\n };\n private scrollToNearestWeek = () => {\n const { scrollTarget, scrollDirection } = this.state;\n\n const trasholdHeight = themeConfig(this.theme).MONTH_TITLE_OFFSET_HEIGHT + themeConfig(this.theme).DAY_SIZE;\n\n if (scrollTarget < trasholdHeight) {\n let targetPosition = 0;\n if (scrollDirection < 0) {\n targetPosition = trasholdHeight;\n }\n\n this.setState({ scrollTarget: targetPosition }, () => {\n const amount = scrollTarget - targetPosition;\n this.animation.animate(amount, (deltaY) =>\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any),\n );\n });\n }\n };\n\n private scrollTo = (pos: number, onEnd?: () => void) => {\n const scrollAmmount = pos - this.state.scrollPosition;\n return this.scrollAmount(scrollAmmount, onEnd);\n };\n\n private scrollAmount = (scrollAmmount: number, onEnd?: () => void) => {\n return this.animation.animate(\n scrollAmmount,\n (deltaY) =>\n this.setState(({ scrollPosition }) => ({\n scrollPosition: scrollPosition + deltaY,\n })),\n onEnd,\n );\n };\n}\n"]}
1
+ {"version":3,"sources":["Calendar.tsx"],"names":["React","normalizeWheel","throttle","MAX_DATE","MAX_MONTH","MAX_YEAR","MIN_DATE","MIN_MONTH","MIN_YEAR","ThemeContext","animation","isMobile","themeConfig","CalendarUtils","MonthViewModel","CalendarScrollEvents","Month","styles","create","isGreater","isLess","CalendarDataTids","root","month","headerMonth","headerYear","getTodayDate","date","Date","getDate","getMonth","year","getFullYear","Calendar","props","touchStartY","scrollToMonth","inProgress","finish","Promise","r","setTimeout","minDate","maxDate","currentMonth","state","months","diffInMonths","scrollTo","maxMonthsToAdd","theme","MAX_MONTHS_TO_APPEND_ON_SCROLL","onEnd","setState","getMonths","scrollPosition","isYearChanges","Math","abs","monthsToPrependCount","min","monthsToPrepend","Array","from","length","_","index","yearChanges","isFirstInYear","isLastInYear","concat","getMonthsHeight","targetPosition","getHeight","monthsToAppendCount","monthsToAppend","slice","renderMain","positions","getMonthPositions","wrapperStyle","height","WRAPPER_HEIGHT","refRoot","wrapper","map","x","i","filter","top","isMonthVisible","renderMonth","element","addEventListener","handleTouchStart","throttledHandleTouchMove","handleWheel","passive","removeEventListener","handleMonthYearChange","executeAnimations","pixelY","calculateScrollPosition","scrollTarget","handleWheelEnd","animate","deltaY","applyDelta","emit","event","TouchEvent","clientY","targetTouches","handleTouchMove","changedTouches","WheelEvent","preventDefault","wheelEndTimeout","clearTimeout","window","scrollToNearestWeek","scrollDirection","trasholdHeight","MONTH_TITLE_OFFSET_HEIGHT","DAY_SIZE","amount","pos","scrollAmmount","scrollAmount","today","initialMonth","initialYear","touchStart","componentWillUnmount","cancel","render","value","onSelect","isHoliday","position","push","Component","__KONTUR_REACT_UI__","defaultProps","holidays"],"mappings":"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","sourcesContent":["import React from 'react';\nimport normalizeWheel from 'normalize-wheel';\nimport throttle from 'lodash.throttle';\n\nimport { MAX_DATE, MAX_MONTH, MAX_YEAR, MIN_DATE, MIN_MONTH, MIN_YEAR } from '../../lib/date/constants';\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { animation } from '../../lib/animation';\nimport { isMobile } from '../../lib/client';\n\nimport { themeConfig } from './config';\nimport * as CalendarUtils from './CalendarUtils';\nimport { MonthViewModel } from './MonthViewModel';\nimport * as CalendarScrollEvents from './CalendarScrollEvents';\nimport { Month } from './Month';\nimport { styles } from './Calendar.styles';\nimport { CalendarDateShape, create, isGreater, isLess } from './CalendarDateShape';\n\nexport interface CalendarProps {\n initialMonth?: number;\n initialYear?: number;\n onSelect?: (date: CalendarDateShape) => void;\n value?: Nullable<CalendarDateShape>;\n maxDate?: CalendarDateShape;\n minDate?: CalendarDateShape;\n isHoliday?: (day: CalendarDateShape & { isWeekend: boolean }) => boolean;\n}\n\nexport interface CalendarState {\n scrollPosition: number;\n months: MonthViewModel[];\n today: CalendarDateShape;\n scrollDirection: number;\n scrollTarget: number;\n touchStart: number;\n}\n\nexport const CalendarDataTids = {\n root: 'Calendar',\n month: 'MonthView__month',\n headerMonth: 'MonthView__headerMonth',\n headerYear: 'MonthView__headerYear',\n} as const;\n\nconst getTodayDate = () => {\n const date = new Date();\n return {\n date: date.getDate(),\n month: date.getMonth(),\n year: date.getFullYear(),\n };\n};\n\nexport class Calendar extends React.Component<CalendarProps, CalendarState> {\n public static __KONTUR_REACT_UI__ = 'Calendar';\n\n public static defaultProps = {\n holidays: [],\n minDate: {\n year: MIN_YEAR,\n month: MIN_MONTH,\n date: MIN_DATE,\n },\n maxDate: {\n year: MAX_YEAR,\n month: MAX_MONTH,\n date: MAX_DATE,\n },\n };\n\n private theme!: Theme;\n private wheelEndTimeout: Nullable<number>;\n private root: Nullable<HTMLElement>;\n private animation = animation();\n private touchStartY: Nullable<number> = null;\n\n constructor(props: CalendarProps) {\n super(props);\n\n const today = getTodayDate();\n\n const initialMonth = props.initialMonth ?? today.month;\n const initialYear = props.initialYear ?? today.year;\n\n this.state = {\n scrollPosition: 0,\n months: CalendarUtils.getMonths(initialMonth, initialYear),\n today,\n scrollDirection: 1,\n scrollTarget: 0,\n touchStart: 0,\n };\n }\n\n public componentWillUnmount() {\n if (this.animation.inProgress()) {\n this.animation.cancel();\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 /**\n * Scrolls calendar to given date\n * @public\n */\n public scrollToMonth = async (month: number, year: number) => {\n if (this.animation.inProgress()) {\n this.animation.finish();\n // FIXME: Dirty hack to await batched updates\n await new Promise((r) => setTimeout(r));\n }\n\n const { minDate, maxDate } = this.props;\n\n if (minDate && isGreater(minDate, create(32, month, year))) {\n this.scrollToMonth(minDate.month, minDate.year);\n return;\n }\n\n if (maxDate && isLess(maxDate, create(0, month, year))) {\n this.scrollToMonth(maxDate.month, maxDate.year);\n return;\n }\n\n const currentMonth = this.state.months[1];\n const diffInMonths = currentMonth.month + currentMonth.year * 12 - month - year * 12;\n\n if (diffInMonths === 0) {\n this.scrollTo(0);\n return;\n }\n\n const maxMonthsToAdd = themeConfig(this.theme).MAX_MONTHS_TO_APPEND_ON_SCROLL;\n\n const onEnd = () =>\n this.setState({\n months: CalendarUtils.getMonths(month, year),\n scrollPosition: 0,\n });\n\n const isYearChanges = (state: CalendarState) =>\n state.months[1].year !== year &&\n // if diff in months is 2 or less,\n // either year is not changing either months already\n // have right isFirstInYear/isLastInYear flags\n Math.abs(diffInMonths) > 2;\n\n // If scrolling upwards, prepend maximum maxMonthsToAdd months\n // and scroll to the first month\n if (diffInMonths > 0) {\n const monthsToPrependCount = Math.min(Math.abs(diffInMonths) - 1, maxMonthsToAdd);\n const monthsToPrepend = Array.from({ length: monthsToPrependCount }, (_, index) =>\n MonthViewModel.create(month + index, year),\n );\n this.setState(\n (state) => {\n const yearChanges = isYearChanges(state);\n if (yearChanges) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[0].isFirstInYear = true;\n if (monthsToPrepend.length) {\n // Mutating item here is safe as it was just created\n monthsToPrepend[monthsToPrepend.length - 1].isLastInYear = true;\n }\n }\n return {\n months: monthsToPrepend.concat(state.months),\n scrollPosition: -CalendarUtils.getMonthsHeight(monthsToPrepend, this.theme),\n };\n },\n () => {\n const targetPosition = this.state.months[0].getHeight(this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n\n // If scrolling downwards, append maximum maxMonthsToAdd months\n // and scroll to the last but one month\n if (diffInMonths < 0) {\n const monthsToAppendCount = Math.min(Math.abs(diffInMonths), maxMonthsToAdd);\n const monthsToAppend = Array.from({ length: monthsToAppendCount }, (_, index) =>\n MonthViewModel.create(month + index - monthsToAppendCount + 2, year),\n );\n this.setState(\n (state) => {\n if (isYearChanges(state)) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[state.months.length - 1].isLastInYear = true;\n // Mutating item here is safe as it was just created\n if (monthsToAppend[0]) {\n monthsToAppend[0].isFirstInYear = true;\n }\n }\n return { months: state.months.concat(monthsToAppend) };\n },\n () => {\n const targetPosition = -1 * CalendarUtils.getMonthsHeight(this.state.months.slice(1, -2), this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n };\n\n private renderMain = () => {\n const positions = this.getMonthPositions();\n const wrapperStyle = { height: themeConfig(this.theme).WRAPPER_HEIGHT };\n return (\n <div ref={this.refRoot} className={styles.root(this.theme)} data-tid={CalendarDataTids.root}>\n <div style={wrapperStyle} className={styles.wrapper()}>\n {this.state.months\n .map<[number, MonthViewModel]>((x, i) => [positions[i], x])\n .filter(([top, month]) => CalendarUtils.isMonthVisible(top, month, this.theme))\n .map(this.renderMonth, this)}\n </div>\n </div>\n );\n };\n\n private refRoot = (element: HTMLElement | null) => {\n if (!this.root && element) {\n if (isMobile) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n }\n if (this.root && !element) {\n if (isMobile) {\n this.root.removeEventListener('touchstart', this.handleTouchStart);\n this.root.removeEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n this.root.removeEventListener('wheel', this.handleWheel);\n }\n }\n this.root = element;\n };\n\n private renderMonth([top, month]: [number, MonthViewModel]) {\n return (\n <Month\n key={month.month + '-' + month.year}\n top={top}\n month={month}\n maxDate={this.props.maxDate}\n minDate={this.props.minDate}\n today={this.state.today}\n value={this.props.value}\n onDateClick={this.props.onSelect}\n onMonthYearChange={this.handleMonthYearChange}\n isHoliday={this.props.isHoliday}\n />\n );\n }\n\n private getMonthPositions() {\n const { scrollPosition, months } = this.state;\n\n const positions = [scrollPosition - months[0].getHeight(this.theme)];\n for (let i = 1; i < months.length; i++) {\n const position = positions[i - 1] + months[i - 1].getHeight(this.theme);\n positions.push(position);\n }\n return positions;\n }\n\n private handleMonthYearChange = (month: number, year: number) => {\n this.scrollToMonth(month, year);\n };\n\n private executeAnimations = (pixelY: number) => {\n this.setState(({ months, scrollPosition }) => {\n const targetPosition = CalendarUtils.calculateScrollPosition(\n months,\n scrollPosition,\n pixelY,\n this.theme,\n ).scrollPosition;\n return { scrollTarget: targetPosition };\n }, this.handleWheelEnd);\n\n this.animation.animate(pixelY, (deltaY) =>\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any),\n );\n\n CalendarScrollEvents.emit();\n };\n\n private handleTouchStart = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n const clientY = event.targetTouches[0].clientY;\n this.touchStartY = clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n\n const deltaY = (this.touchStartY || 0) - clientY;\n this.touchStartY = clientY;\n\n this.executeAnimations(deltaY);\n };\n\n private throttledHandleTouchMove = throttle(this.handleTouchMove, 10);\n\n private handleWheel = (event: Event) => {\n if (!(event instanceof WheelEvent)) {\n return;\n }\n event.preventDefault();\n const { pixelY } = normalizeWheel(event);\n\n this.executeAnimations(pixelY);\n };\n\n private handleWheelEnd = () => {\n if (this.wheelEndTimeout) {\n clearTimeout(this.wheelEndTimeout);\n }\n this.wheelEndTimeout = window.setTimeout(this.scrollToNearestWeek, 300);\n };\n private scrollToNearestWeek = () => {\n const { scrollTarget, scrollDirection } = this.state;\n\n const trasholdHeight = themeConfig(this.theme).MONTH_TITLE_OFFSET_HEIGHT + themeConfig(this.theme).DAY_SIZE;\n\n if (scrollTarget < trasholdHeight) {\n let targetPosition = 0;\n if (scrollDirection < 0) {\n targetPosition = trasholdHeight;\n }\n\n this.setState({ scrollTarget: targetPosition }, () => {\n const amount = scrollTarget - targetPosition;\n this.animation.animate(amount, (deltaY) =>\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any),\n );\n });\n }\n };\n\n private scrollTo = (pos: number, onEnd?: () => void) => {\n const scrollAmmount = pos - this.state.scrollPosition;\n return this.scrollAmount(scrollAmmount, onEnd);\n };\n\n private scrollAmount = (scrollAmmount: number, onEnd?: () => void) => {\n return this.animation.animate(\n scrollAmmount,\n (deltaY) =>\n this.setState(({ scrollPosition }) => ({\n scrollPosition: scrollPosition + deltaY,\n })),\n onEnd,\n );\n };\n}\n"]}
@@ -21,6 +21,12 @@ export interface CalendarState {
21
21
  scrollTarget: number;
22
22
  touchStart: number;
23
23
  }
24
+ export declare const CalendarDataTids: {
25
+ readonly root: "Calendar";
26
+ readonly month: "MonthView__month";
27
+ readonly headerMonth: "MonthView__headerMonth";
28
+ readonly headerYear: "MonthView__headerYear";
29
+ };
24
30
  export declare class Calendar extends React.Component<CalendarProps, CalendarState> {
25
31
  static __KONTUR_REACT_UI__: string;
26
32
  static defaultProps: {
@@ -5,7 +5,7 @@ export interface CalendarDateShape {
5
5
  date: number;
6
6
  }
7
7
  export declare const isEqual: (a: Nullable<CalendarDateShape>, b: Nullable<CalendarDateShape>) => boolean | null | undefined;
8
- export declare const comparator: (a: CalendarDateShape, b: CalendarDateShape) => 1 | 0 | -1;
8
+ export declare const comparator: (a: CalendarDateShape, b: CalendarDateShape) => 0 | 1 | -1;
9
9
  export declare const create: (date: number, month: number, year: number) => CalendarDateShape;
10
10
  export declare const isLess: (left: CalendarDateShape, right: CalendarDateShape) => boolean;
11
11
  export declare const isLessOrEqual: (left: CalendarDateShape, right: CalendarDateShape) => boolean | null | undefined;
@@ -6,6 +6,7 @@ import { cx } from "../../../lib/theming/Emotion";
6
6
  import { styles } from "../MonthView.styles";
7
7
  import { themeConfig } from "../config";
8
8
  import * as CDS from "../CalendarDateShape";
9
+ import { CalendarDataTids } from "../Calendar";
9
10
  export function MonthView(props) {
10
11
  var _cx;
11
12
 
@@ -68,7 +69,7 @@ export function MonthView(props) {
68
69
  };
69
70
 
70
71
  return /*#__PURE__*/React.createElement("div", {
71
- "data-tid": "MonthView__month",
72
+ "data-tid": CalendarDataTids.month,
72
73
  className: styles.month(theme),
73
74
  style: {
74
75
  top: top
@@ -85,7 +86,7 @@ export function MonthView(props) {
85
86
  },
86
87
  className: styles.monthTitle(theme)
87
88
  }, /*#__PURE__*/React.createElement("div", {
88
- "data-tid": "MonthView__headerMonth",
89
+ "data-tid": CalendarDataTids.headerMonth,
89
90
  className: styles.headerMonth(theme)
90
91
  }, /*#__PURE__*/React.createElement(DateSelect, {
91
92
  disabled: monthSelectDisabled,
@@ -97,7 +98,7 @@ export function MonthView(props) {
97
98
  minValue: getMinMonth(year),
98
99
  maxValue: getMaxMonth(year)
99
100
  })), isYearVisible && /*#__PURE__*/React.createElement("div", {
100
- "data-tid": "MonthView__headerYear",
101
+ "data-tid": CalendarDataTids.headerYear,
101
102
  className: styles.headerYear(theme),
102
103
  style: {
103
104
  top: yearTop