@skbkontur/react-ui 4.1.2 → 4.2.2

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 (449) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +3 -0
  3. package/cjs/components/Autocomplete/Autocomplete.js +12 -3
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +3 -0
  6. package/cjs/components/Button/Button.js +8 -4
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Button/Button.styles.d.ts +1 -1
  9. package/cjs/components/Button/Button.styles.js +6 -6
  10. package/cjs/components/Button/Button.styles.js.map +1 -1
  11. package/cjs/components/Center/Center.d.ts +3 -0
  12. package/cjs/components/Center/Center.js +8 -3
  13. package/cjs/components/Center/Center.js.map +1 -1
  14. package/cjs/components/Checkbox/Checkbox.d.ts +3 -0
  15. package/cjs/components/Checkbox/Checkbox.js +8 -2
  16. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  17. package/cjs/components/Checkbox/Checkbox.md +48 -0
  18. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +4 -1
  19. package/cjs/components/CurrencyInput/CurrencyInput.js +23 -5
  20. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  21. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
  22. package/cjs/components/CurrencyLabel/CurrencyLabel.js +6 -2
  23. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  24. package/cjs/components/DatePicker/DatePicker.d.ts +5 -0
  25. package/cjs/components/DatePicker/DatePicker.js +14 -3
  26. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  27. package/cjs/components/DatePicker/Picker.js +7 -2
  28. package/cjs/components/DatePicker/Picker.js.map +1 -1
  29. package/cjs/components/Dropdown/Dropdown.d.ts +3 -0
  30. package/cjs/components/Dropdown/Dropdown.js +7 -2
  31. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  32. package/cjs/components/FileUploader/FileUploader.d.ts +5 -0
  33. package/cjs/components/FileUploader/FileUploader.js +10 -4
  34. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  35. package/cjs/components/FxInput/FxInput.d.ts +3 -0
  36. package/cjs/components/FxInput/FxInput.js +7 -3
  37. package/cjs/components/FxInput/FxInput.js.map +1 -1
  38. package/cjs/components/Gapped/Gapped.d.ts +4 -0
  39. package/cjs/components/Gapped/Gapped.js +9 -4
  40. package/cjs/components/Gapped/Gapped.js.map +1 -1
  41. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +3 -0
  42. package/cjs/components/GlobalLoader/GlobalLoader.js +6 -2
  43. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  44. package/cjs/components/Group/Group.d.ts +3 -0
  45. package/cjs/components/Group/Group.js +7 -3
  46. package/cjs/components/Group/Group.js.map +1 -1
  47. package/cjs/components/Input/Input.d.ts +3 -0
  48. package/cjs/components/Input/Input.js +7 -3
  49. package/cjs/components/Input/Input.js.map +1 -1
  50. package/cjs/components/Link/Link.d.ts +4 -1
  51. package/cjs/components/Link/Link.js +8 -4
  52. package/cjs/components/Link/Link.js.map +1 -1
  53. package/cjs/components/Loader/Loader.d.ts +4 -0
  54. package/cjs/components/Loader/Loader.js +8 -3
  55. package/cjs/components/Loader/Loader.js.map +1 -1
  56. package/cjs/components/MenuHeader/MenuHeader.d.ts +3 -0
  57. package/cjs/components/MenuHeader/MenuHeader.js +7 -2
  58. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  59. package/cjs/components/MenuItem/MenuItem.d.ts +5 -1
  60. package/cjs/components/MenuItem/MenuItem.js +11 -5
  61. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  62. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +3 -0
  63. package/cjs/components/MenuSeparator/MenuSeparator.js +7 -3
  64. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  65. package/cjs/components/Modal/Modal.d.ts +5 -0
  66. package/cjs/components/Modal/Modal.js +9 -3
  67. package/cjs/components/Modal/Modal.js.map +1 -1
  68. package/cjs/components/Modal/ModalClose.js +3 -2
  69. package/cjs/components/Modal/ModalClose.js.map +1 -1
  70. package/cjs/components/Modal/ModalFooter.d.ts +3 -0
  71. package/cjs/components/Modal/ModalFooter.js +8 -3
  72. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  73. package/cjs/components/Modal/ModalHeader.d.ts +3 -0
  74. package/cjs/components/Modal/ModalHeader.js +9 -3
  75. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  76. package/cjs/components/Paging/Paging.d.ts +8 -1
  77. package/cjs/components/Paging/Paging.js +15 -7
  78. package/cjs/components/Paging/Paging.js.map +1 -1
  79. package/cjs/components/PasswordInput/PasswordInput.d.ts +5 -0
  80. package/cjs/components/PasswordInput/PasswordInput.js +13 -5
  81. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  82. package/cjs/components/Radio/Radio.d.ts +3 -0
  83. package/cjs/components/Radio/Radio.js +7 -3
  84. package/cjs/components/Radio/Radio.js.map +1 -1
  85. package/cjs/components/RadioGroup/RadioGroup.d.ts +9 -0
  86. package/cjs/components/RadioGroup/RadioGroup.js +21 -4
  87. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  88. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +1 -1
  89. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
  90. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +4 -0
  91. package/cjs/components/ScrollContainer/ScrollContainer.js +14 -4
  92. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  93. package/cjs/components/Select/Select.d.ts +3 -0
  94. package/cjs/components/Select/Select.js +11 -3
  95. package/cjs/components/Select/Select.js.map +1 -1
  96. package/cjs/components/SidePage/SidePage.d.ts +4 -0
  97. package/cjs/components/SidePage/SidePage.js +7 -2
  98. package/cjs/components/SidePage/SidePage.js.map +1 -1
  99. package/cjs/components/SidePage/SidePageBody.d.ts +3 -0
  100. package/cjs/components/SidePage/SidePageBody.js +10 -3
  101. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  102. package/cjs/components/SidePage/SidePageContainer.d.ts +3 -0
  103. package/cjs/components/SidePage/SidePageContainer.js +7 -2
  104. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  105. package/cjs/components/SidePage/SidePageFooter.d.ts +3 -0
  106. package/cjs/components/SidePage/SidePageFooter.js +11 -3
  107. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  108. package/cjs/components/SidePage/SidePageHeader.d.ts +4 -0
  109. package/cjs/components/SidePage/SidePageHeader.js +9 -4
  110. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  111. package/cjs/components/Spinner/Spinner.d.ts +3 -0
  112. package/cjs/components/Spinner/Spinner.js +7 -3
  113. package/cjs/components/Spinner/Spinner.js.map +1 -1
  114. package/cjs/components/Sticky/Sticky.d.ts +3 -0
  115. package/cjs/components/Sticky/Sticky.js +7 -3
  116. package/cjs/components/Sticky/Sticky.js.map +1 -1
  117. package/cjs/components/Switcher/Switcher.d.ts +3 -0
  118. package/cjs/components/Switcher/Switcher.js +7 -3
  119. package/cjs/components/Switcher/Switcher.js.map +1 -1
  120. package/cjs/components/Tabs/Indicator.js +4 -2
  121. package/cjs/components/Tabs/Indicator.js.map +1 -1
  122. package/cjs/components/Tabs/Tab.d.ts +3 -0
  123. package/cjs/components/Tabs/Tab.js +7 -2
  124. package/cjs/components/Tabs/Tab.js.map +1 -1
  125. package/cjs/components/Tabs/Tabs.d.ts +4 -0
  126. package/cjs/components/Tabs/Tabs.js +12 -3
  127. package/cjs/components/Tabs/Tabs.js.map +1 -1
  128. package/cjs/components/Textarea/Textarea.d.ts +4 -0
  129. package/cjs/components/Textarea/Textarea.js +8 -3
  130. package/cjs/components/Textarea/Textarea.js.map +1 -1
  131. package/cjs/components/Textarea/TextareaCounter.js +10 -9
  132. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  133. package/cjs/components/Toast/Toast.d.ts +6 -0
  134. package/cjs/components/Toast/Toast.js +9 -2
  135. package/cjs/components/Toast/Toast.js.map +1 -1
  136. package/cjs/components/Toast/ToastStatic.js +1 -1
  137. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  138. package/cjs/components/Toast/ToastView.js +5 -4
  139. package/cjs/components/Toast/ToastView.js.map +1 -1
  140. package/cjs/components/Toggle/Toggle.d.ts +3 -0
  141. package/cjs/components/Toggle/Toggle.js +7 -3
  142. package/cjs/components/Toggle/Toggle.js.map +1 -1
  143. package/cjs/components/Token/Token.d.ts +3 -0
  144. package/cjs/components/Token/Token.js +8 -3
  145. package/cjs/components/Token/Token.js.map +1 -1
  146. package/cjs/components/TokenInput/TokenInput.d.ts +4 -0
  147. package/cjs/components/TokenInput/TokenInput.js +7 -2
  148. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  149. package/cjs/components/TokenInput/TokenInputMenu.js +4 -3
  150. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  151. package/cjs/components/Tooltip/Tooltip.d.ts +4 -0
  152. package/cjs/components/Tooltip/Tooltip.js +9 -3
  153. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  154. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +3 -0
  155. package/cjs/components/TooltipMenu/TooltipMenu.js +7 -2
  156. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  157. package/cjs/internal/Calendar/Calendar.d.ts +6 -0
  158. package/cjs/internal/Calendar/Calendar.js +9 -2
  159. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  160. package/cjs/internal/Calendar/MonthView.js +5 -4
  161. package/cjs/internal/Calendar/MonthView.js.map +1 -1
  162. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
  163. package/cjs/internal/CommonWrapper/CommonWrapper.js +4 -2
  164. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  165. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
  166. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +23 -5
  167. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  168. package/cjs/internal/CustomComboBox/ComboBoxView.js +4 -2
  169. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  170. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
  171. package/cjs/internal/CustomComboBox/CustomComboBox.js +6 -2
  172. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  173. package/cjs/internal/DataTids/DATATIDS.md +12 -0
  174. package/cjs/internal/DataTids/DataTids.d.ts +12 -0
  175. package/cjs/internal/DataTids/DataTids.js +46 -0
  176. package/cjs/internal/DataTids/DataTids.js.map +1 -0
  177. package/cjs/internal/DataTids/DataTids.styles.d.ts +7 -0
  178. package/cjs/internal/DataTids/DataTids.styles.js +41 -0
  179. package/cjs/internal/DataTids/DataTids.styles.js.map +1 -0
  180. package/cjs/internal/DataTids/componentsDataTids.d.ts +5 -0
  181. package/cjs/internal/DataTids/componentsDataTids.js +16 -0
  182. package/cjs/internal/DataTids/componentsDataTids.js.map +1 -0
  183. package/cjs/internal/DateSelect/DateSelect.d.ts +4 -0
  184. package/cjs/internal/DateSelect/DateSelect.js +8 -3
  185. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  186. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +7 -0
  187. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +14 -6
  188. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  189. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +3 -0
  190. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +6 -2
  191. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  192. package/cjs/internal/InputLikeText/InputLikeText.d.ts +4 -0
  193. package/cjs/internal/InputLikeText/InputLikeText.js +10 -4
  194. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  195. package/cjs/internal/InternalMenu/InternalMenu.d.ts +3 -0
  196. package/cjs/internal/InternalMenu/InternalMenu.js +8 -3
  197. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  198. package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -1
  199. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  200. package/cjs/internal/MaskedInput/MaskedInput.d.ts +3 -0
  201. package/cjs/internal/MaskedInput/MaskedInput.js +7 -3
  202. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  203. package/cjs/internal/Menu/Menu.d.ts +3 -0
  204. package/cjs/internal/Menu/Menu.js +8 -3
  205. package/cjs/internal/Menu/Menu.js.map +1 -1
  206. package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
  207. package/cjs/internal/MobilePopup/MobilePopup.js +10 -3
  208. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  209. package/cjs/internal/Popup/Popup.d.ts +5 -0
  210. package/cjs/internal/Popup/Popup.js +10 -4
  211. package/cjs/internal/Popup/Popup.js.map +1 -1
  212. package/cjs/internal/Popup/PopupPin.js +2 -1
  213. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  214. package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -0
  215. package/cjs/internal/PopupMenu/PopupMenu.js +9 -4
  216. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  217. package/cjs/internal/RenderLayer/RenderLayer.d.ts +1 -0
  218. package/cjs/internal/RenderLayer/RenderLayer.js +8 -3
  219. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  220. package/cjs/internal/icons/16px/index.js +1 -1
  221. package/cjs/internal/icons/16px/index.js.map +1 -1
  222. package/cjs/lib/listenFocusOutside.js +1 -1
  223. package/cjs/lib/listenFocusOutside.js.map +1 -1
  224. package/components/Autocomplete/Autocomplete/Autocomplete.js +10 -6
  225. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  226. package/components/Autocomplete/Autocomplete.d.ts +3 -0
  227. package/components/Button/Button/Button.js +5 -1
  228. package/components/Button/Button/Button.js.map +1 -1
  229. package/components/Button/Button.d.ts +3 -0
  230. package/components/Button/Button.styles/Button.styles.js +6 -6
  231. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  232. package/components/Button/Button.styles.d.ts +1 -1
  233. package/components/Center/Center/Center.js +10 -5
  234. package/components/Center/Center/Center.js.map +1 -1
  235. package/components/Center/Center.d.ts +3 -0
  236. package/components/Checkbox/Checkbox/Checkbox.js +4 -0
  237. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  238. package/components/Checkbox/Checkbox.d.ts +3 -0
  239. package/components/Checkbox/Checkbox.md +48 -0
  240. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +27 -12
  241. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  242. package/components/CurrencyInput/CurrencyInput.d.ts +4 -1
  243. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +6 -1
  244. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  245. package/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
  246. package/components/DatePicker/DatePicker/DatePicker.js +6 -0
  247. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  248. package/components/DatePicker/DatePicker.d.ts +5 -0
  249. package/components/DatePicker/Picker/Picker.js +3 -1
  250. package/components/DatePicker/Picker/Picker.js.map +1 -1
  251. package/components/Dropdown/Dropdown/Dropdown.js +9 -5
  252. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  253. package/components/Dropdown/Dropdown.d.ts +3 -0
  254. package/components/FileUploader/FileUploader/FileUploader.js +9 -2
  255. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  256. package/components/FileUploader/FileUploader.d.ts +5 -0
  257. package/components/FxInput/FxInput/FxInput.js +6 -2
  258. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  259. package/components/FxInput/FxInput.d.ts +3 -0
  260. package/components/Gapped/Gapped/Gapped.js +12 -5
  261. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  262. package/components/Gapped/Gapped.d.ts +4 -0
  263. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +4 -1
  264. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  265. package/components/GlobalLoader/GlobalLoader.d.ts +3 -0
  266. package/components/Group/Group/Group.js +4 -0
  267. package/components/Group/Group/Group.js.map +1 -1
  268. package/components/Group/Group.d.ts +3 -0
  269. package/components/Input/Input/Input.js +11 -6
  270. package/components/Input/Input/Input.js.map +1 -1
  271. package/components/Input/Input.d.ts +3 -0
  272. package/components/Link/Link/Link.js +11 -6
  273. package/components/Link/Link/Link.js.map +1 -1
  274. package/components/Link/Link.d.ts +4 -1
  275. package/components/Loader/Loader/Loader.js +10 -6
  276. package/components/Loader/Loader/Loader.js.map +1 -1
  277. package/components/Loader/Loader.d.ts +4 -0
  278. package/components/MenuHeader/MenuHeader/MenuHeader.js +4 -0
  279. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  280. package/components/MenuHeader/MenuHeader.d.ts +3 -0
  281. package/components/MenuItem/MenuItem/MenuItem.js +16 -10
  282. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  283. package/components/MenuItem/MenuItem.d.ts +5 -1
  284. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +4 -0
  285. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
  286. package/components/MenuSeparator/MenuSeparator.d.ts +3 -0
  287. package/components/Modal/Modal/Modal.js +7 -2
  288. package/components/Modal/Modal/Modal.js.map +1 -1
  289. package/components/Modal/Modal.d.ts +5 -0
  290. package/components/Modal/ModalClose/ModalClose.js +2 -1
  291. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  292. package/components/Modal/ModalFooter/ModalFooter.js +6 -2
  293. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  294. package/components/Modal/ModalFooter.d.ts +3 -0
  295. package/components/Modal/ModalHeader/ModalHeader.js +6 -2
  296. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  297. package/components/Modal/ModalHeader.d.ts +3 -0
  298. package/components/Paging/Paging/Paging.js +12 -5
  299. package/components/Paging/Paging/Paging.js.map +1 -1
  300. package/components/Paging/Paging.d.ts +8 -1
  301. package/components/PasswordInput/PasswordInput/PasswordInput.js +12 -6
  302. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  303. package/components/PasswordInput/PasswordInput.d.ts +5 -0
  304. package/components/Radio/Radio/Radio.js +10 -5
  305. package/components/Radio/Radio/Radio.js.map +1 -1
  306. package/components/Radio/Radio.d.ts +3 -0
  307. package/components/RadioGroup/RadioGroup/RadioGroup.js +23 -11
  308. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  309. package/components/RadioGroup/RadioGroup.d.ts +9 -0
  310. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js +1 -1
  311. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js.map +1 -1
  312. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +6 -1
  313. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  314. package/components/ScrollContainer/ScrollContainer.d.ts +4 -0
  315. package/components/Select/Select/Select.js +4 -0
  316. package/components/Select/Select/Select.js.map +1 -1
  317. package/components/Select/Select.d.ts +3 -0
  318. package/components/SidePage/SidePage/SidePage.js +6 -2
  319. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  320. package/components/SidePage/SidePage.d.ts +4 -0
  321. package/components/SidePage/SidePageBody/SidePageBody.js +10 -6
  322. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  323. package/components/SidePage/SidePageBody.d.ts +3 -0
  324. package/components/SidePage/SidePageContainer/SidePageContainer.js +10 -6
  325. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  326. package/components/SidePage/SidePageContainer.d.ts +3 -0
  327. package/components/SidePage/SidePageFooter/SidePageFooter.js +10 -6
  328. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  329. package/components/SidePage/SidePageFooter.d.ts +3 -0
  330. package/components/SidePage/SidePageHeader/SidePageHeader.js +12 -7
  331. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  332. package/components/SidePage/SidePageHeader.d.ts +4 -0
  333. package/components/Spinner/Spinner/Spinner.js +8 -4
  334. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  335. package/components/Spinner/Spinner.d.ts +3 -0
  336. package/components/Sticky/Sticky/Sticky.js +4 -0
  337. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  338. package/components/Sticky/Sticky.d.ts +3 -0
  339. package/components/Switcher/Switcher/Switcher.js +4 -0
  340. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  341. package/components/Switcher/Switcher.d.ts +3 -0
  342. package/components/Tabs/Indicator/Indicator.js +2 -0
  343. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  344. package/components/Tabs/Tab/Tab.js +4 -0
  345. package/components/Tabs/Tab/Tab.js.map +1 -1
  346. package/components/Tabs/Tab.d.ts +3 -0
  347. package/components/Tabs/Tabs/Tabs.js +11 -6
  348. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  349. package/components/Tabs/Tabs.d.ts +4 -0
  350. package/components/Textarea/Textarea/Textarea.js +15 -9
  351. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  352. package/components/Textarea/Textarea.d.ts +4 -0
  353. package/components/Textarea/TextareaCounter/TextareaCounter.js +8 -3
  354. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  355. package/components/Toast/Toast/Toast.js +16 -10
  356. package/components/Toast/Toast/Toast.js.map +1 -1
  357. package/components/Toast/Toast.d.ts +6 -0
  358. package/components/Toast/ToastStatic/ToastStatic.js +2 -2
  359. package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
  360. package/components/Toast/ToastView/ToastView.js +4 -3
  361. package/components/Toast/ToastView/ToastView.js.map +1 -1
  362. package/components/Toggle/Toggle/Toggle.js +8 -4
  363. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  364. package/components/Toggle/Toggle.d.ts +3 -0
  365. package/components/Token/Token/Token.js +4 -0
  366. package/components/Token/Token/Token.js.map +1 -1
  367. package/components/Token/Token.d.ts +3 -0
  368. package/components/TokenInput/TokenInput/TokenInput.js +5 -0
  369. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  370. package/components/TokenInput/TokenInput.d.ts +4 -0
  371. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +2 -0
  372. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  373. package/components/Tooltip/Tooltip/Tooltip.js +7 -1
  374. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  375. package/components/Tooltip/Tooltip.d.ts +4 -0
  376. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +16 -12
  377. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  378. package/components/TooltipMenu/TooltipMenu.d.ts +3 -0
  379. package/internal/Calendar/Calendar/Calendar.js +7 -1
  380. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  381. package/internal/Calendar/Calendar.d.ts +6 -0
  382. package/internal/Calendar/MonthView/MonthView.js +4 -3
  383. package/internal/Calendar/MonthView/MonthView.js.map +1 -1
  384. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +4 -5
  385. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  386. package/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
  387. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +12 -5
  388. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  389. package/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
  390. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +2 -0
  391. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  392. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +3 -0
  393. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  394. package/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
  395. package/internal/DataTids/DATATIDS.md +12 -0
  396. package/internal/DataTids/DataTids/DataTids.js +69 -0
  397. package/internal/DataTids/DataTids/DataTids.js.map +1 -0
  398. package/internal/DataTids/DataTids/package.json +6 -0
  399. package/internal/DataTids/DataTids.d.ts +12 -0
  400. package/internal/DataTids/DataTids.styles/DataTids.styles.js +22 -0
  401. package/internal/DataTids/DataTids.styles/DataTids.styles.js.map +1 -0
  402. package/internal/DataTids/DataTids.styles/package.json +6 -0
  403. package/internal/DataTids/DataTids.styles.d.ts +7 -0
  404. package/internal/DataTids/componentsDataTids/componentsDataTids.js +14 -0
  405. package/internal/DataTids/componentsDataTids/componentsDataTids.js.map +1 -0
  406. package/internal/DataTids/componentsDataTids/package.json +6 -0
  407. package/internal/DataTids/componentsDataTids.d.ts +5 -0
  408. package/internal/DateSelect/DateSelect/DateSelect.js +6 -2
  409. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  410. package/internal/DateSelect/DateSelect.d.ts +4 -0
  411. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +12 -5
  412. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  413. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +7 -0
  414. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +4 -1
  415. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  416. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +3 -0
  417. package/internal/InputLikeText/InputLikeText/InputLikeText.js +8 -2
  418. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  419. package/internal/InputLikeText/InputLikeText.d.ts +4 -0
  420. package/internal/InternalMenu/InternalMenu/InternalMenu.js +4 -0
  421. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  422. package/internal/InternalMenu/InternalMenu.d.ts +3 -0
  423. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
  424. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  425. package/internal/MaskedInput/MaskedInput/MaskedInput.js +4 -0
  426. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  427. package/internal/MaskedInput/MaskedInput.d.ts +3 -0
  428. package/internal/Menu/Menu/Menu.js +4 -0
  429. package/internal/Menu/Menu/Menu.js.map +1 -1
  430. package/internal/Menu/Menu.d.ts +3 -0
  431. package/internal/MobilePopup/MobilePopup/MobilePopup.js +6 -0
  432. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  433. package/internal/MobilePopup/MobilePopup.d.ts +4 -0
  434. package/internal/Popup/Popup/Popup.js +7 -2
  435. package/internal/Popup/Popup/Popup.js.map +1 -1
  436. package/internal/Popup/Popup.d.ts +5 -0
  437. package/internal/Popup/PopupPin/PopupPin.js +2 -0
  438. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  439. package/internal/PopupMenu/PopupMenu/PopupMenu.js +7 -2
  440. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  441. package/internal/PopupMenu/PopupMenu.d.ts +4 -0
  442. package/internal/RenderLayer/RenderLayer/RenderLayer.js +10 -7
  443. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  444. package/internal/RenderLayer/RenderLayer.d.ts +1 -0
  445. package/internal/icons/16px/index/index.js +1 -1
  446. package/internal/icons/16px/index/index.js.map +1 -1
  447. package/lib/listenFocusOutside/listenFocusOutside.js +1 -1
  448. package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
  449. package/package.json +3 -3
@@ -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,6 +64,7 @@ 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,
@@ -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","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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,MAAM,EAAE,KAAKlB,KAAL,CAAWmB,MAPrB;AAQE,QAAA,OAAO,EAAE,KAAKnB,KAAL,CAAWoB,OARtB;AASE,QAAA,WAAW,MATb;AAUE,QAAA,iBAAiB,EAAE,KAAKpB,KAAL,CAAWqB,iBAVhC;;AAYG,WAAKrB,KAAL,CAAWsB,QAZd,CADF,CADF;;;;AAkBD,GA7DH,sBAAiC/B,KAAK,CAACgC,SAAvC,WACgBC,mBADhB,GACsC,aADtC,UAIgBC,YAJhB,GAI+B,EAC3BJ,iBAAiB,EAAEzB,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\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 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"]}
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"]}
@@ -42,6 +42,9 @@ export interface TooltipMenuProps extends CommonProps, Pick<PopupMenuProps, 'onO
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
  *
@@ -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();
@@ -199,7 +205,7 @@ export var Calendar = /*#__PURE__*/function (_React$Component) {
199
205
  return /*#__PURE__*/React.createElement("div", {
200
206
  ref: _this.refRoot,
201
207
  className: styles.root(_this.theme),
202
- "data-tid": "Calendar"
208
+ "data-tid": CalendarDataTids.root
203
209
  }, /*#__PURE__*/React.createElement("div", {
204
210
  style: wrapperStyle,
205
211
  className: styles.wrapper()
@@ -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","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 ?? 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=\"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: {
@@ -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
@@ -1 +1 @@
1
- {"version":3,"sources":["MonthView.tsx"],"names":["React","useContext","DateSelect","ThemeContext","ColorFunctions","cx","styles","themeConfig","CDS","MonthView","props","theme","children","height","isFirstInYear","isLastInYear","maxDate","minDate","month","top","year","onMonthSelect","onYearSelect","monthSelectRef","yearSelectRef","isTopNegative","isHeaderSticky","headerTop","Math","min","MONTH_TITLE_HEIGHT","alpha","borderBottomColor","fade","calendarMonthTitleBorderBottomColor","isYearVisible","yearTop","monthSelectDisabled","yearSelectDisabled","getMinMonth","value","i","isGreaterOrEqual","date","getMaxMonth","max","isLessOrEqual","header","headerSticky","monthTitle","headerMonth","undefined","headerYear"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;;AAEA,SAASC,UAAT,QAA2B,eAA3B;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,OAAO,KAAKC,cAAZ,MAAgC,iCAAhC;AACA,SAASC,EAAT,QAAmB,2BAAnB;;AAEA,SAASC,MAAT,QAAuB,oBAAvB;AACA,SAASC,WAAT,QAA4B,UAA5B;AACA,OAAO,KAAKC,GAAZ,MAAqB,qBAArB;;;;;;;;;;;;;;;;;;;AAmBA,OAAO,SAASC,SAAT,CAAmBC,KAAnB,EAA0C;AAC/C,MAAMC,KAAK,GAAGV,UAAU,CAACE,YAAD,CAAxB;;AAEA;AACES,EAAAA,QADF;;;;;;;;;;;;;AAcIF,EAAAA,KAdJ,CACEE,QADF,CAEEC,MAFF,GAcIH,KAdJ,CAEEG,MAFF,CAGEC,aAHF,GAcIJ,KAdJ,CAGEI,aAHF,CAIEC,YAJF,GAcIL,KAdJ,CAIEK,YAJF,CAKEC,OALF,GAcIN,KAdJ,CAKEM,OALF,CAMEC,OANF,GAcIP,KAdJ,CAMEO,OANF,CAOEC,KAPF,GAcIR,KAdJ,CAOEQ,KAPF,CAQEC,GARF,GAcIT,KAdJ,CAQES,GARF,CASEC,IATF,GAcIV,KAdJ,CASEU,IATF,CAUEC,aAVF,GAcIX,KAdJ,CAUEW,aAVF,CAWEC,YAXF,GAcIZ,KAdJ,CAWEY,YAXF,CAYEC,cAZF,GAcIb,KAdJ,CAYEa,cAZF,CAaEC,aAbF,GAcId,KAdJ,CAaEc,aAbF;;AAgBA,MAAMC,aAAa,GAAGN,GAAG,IAAI,CAA7B;AACA,MAAMO,cAAc,GAAGD,aAAa,IAAIZ,MAAM,IAAI,CAACM,GAAnD;AACA,MAAMQ,SAAS,GAAGD,cAAc,GAAGE,IAAI,CAACC,GAAL,CAAS,CAACV,GAAV,EAAeN,MAAM,GAAGN,WAAW,CAACI,KAAD,CAAX,CAAmBmB,kBAA3C,CAAH,GAAoE,CAApG;AACA,MAAMC,KAAK,GAAGL,cAAc,GAAG,CAACb,MAAM,GAAGM,GAAT,GAAeZ,WAAW,CAACI,KAAD,CAAX,CAAmBmB,kBAAnC,IAAyD,EAA5D,GAAiE,CAA7F;AACA,MAAME,iBAAiB,GAAG5B,cAAc,CAAC6B,IAAf,CAAoBtB,KAAK,CAACuB,mCAA1B,EAA+DH,KAA/D,CAA1B;AACA,MAAMI,aAAa,GAAGrB,aAAa,IAAIY,cAAvC;AACA,MAAMU,OAAO,GAAGV,cAAc,IAAI,CAACX,YAAnB,GAAkC,CAACY,SAAD,GAAaR,GAA/C,GAAqD,CAArE;AACA,MAAMkB,mBAAmB,GAAGlB,GAAG,GAAG,EAAN,IAAYQ,SAAS,GAAG,CAAxB,IAA6BA,SAAS,IAAId,MAAM,GAAGN,WAAW,CAACI,KAAD,CAAX,CAAmBmB,kBAAlG;AACA,MAAMQ,kBAAkB,GAAGnB,GAAG,GAAG,EAAN,IAAaJ,YAAY,IAAII,GAAG,GAAG,CAACN,MAAD,GAAUN,WAAW,CAACI,KAAD,CAAX,CAAmBmB,kBAA3F;;AAEA,MAAMS,WAAW,GAAG,SAAdA,WAAc,CAACC,KAAD,EAAmB;AACrC,QAAIX,GAAG,GAAG,CAAV;AACA,SAAK,IAAIY,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,EAApB,EAAwB,EAAEA,CAA1B,EAA6B;AAC3B,UAAIxB,OAAO,IAAIT,GAAG,CAACkC,gBAAJ,CAAqB,EAAEC,IAAI,EAAE,EAAR,EAAYzB,KAAK,EAAEuB,CAAnB,EAAsBrB,IAAI,EAAEoB,KAA5B,EAArB,EAA0DvB,OAA1D,CAAf,EAAmF;AACjFY,QAAAA,GAAG,GAAGY,CAAN;AACA;AACD;AACF;AACD,WAAOZ,GAAP;AACD,GATD;;AAWA,MAAMe,WAAW,GAAG,SAAdA,WAAc,CAACJ,KAAD,EAAmB;AACrC,QAAIK,GAAG,GAAG,EAAV;AACA,SAAK,IAAIJ,CAAC,GAAG,EAAb,EAAiBA,CAAC,IAAI,CAAtB,EAAyB,EAAEA,CAA3B,EAA8B;AAC5B,UAAIzB,OAAO,IAAIR,GAAG,CAACsC,aAAJ,CAAkB,EAAEH,IAAI,EAAE,CAAR,EAAWzB,KAAK,EAAEuB,CAAlB,EAAqBrB,IAAI,EAAEoB,KAA3B,EAAlB,EAAsDxB,OAAtD,CAAf,EAA+E;AAC7E6B,QAAAA,GAAG,GAAGJ,CAAN;AACA;AACD;AACF;AACD,WAAOI,GAAP;AACD,GATD;;AAWA;AACE,iCAAK,YAAS,kBAAd,EAAiC,SAAS,EAAEvC,MAAM,CAACY,KAAP,CAAaP,KAAb,CAA5C,EAAiE,KAAK,EAAE,EAAEQ,GAAG,EAAHA,GAAF,EAAxE,EAAiF,GAAG,EAAED,KAAK,GAAG,GAAR,GAAcE,IAApG;AACE;AACE,MAAA,KAAK,EAAE,EAAED,GAAG,EAAEQ,SAAP,EADT;AAEE,MAAA,SAAS,EAAEtB,EAAE;AACVC,MAAAA,MAAM,CAACyC,MAAP,EADU,IACQ,IADR;AAEVzC,MAAAA,MAAM,CAAC0C,YAAP,CAAoBrC,KAApB,CAFU,IAEmBe,cAFnB,OAFf;;;AAOE,iCAAK,KAAK,EAAE,EAAEM,iBAAiB,EAAjBA,iBAAF,EAAZ,EAAmC,SAAS,EAAE1B,MAAM,CAAC2C,UAAP,CAAkBtC,KAAlB,CAA9C;AACE,iCAAK,YAAS,wBAAd,EAAuC,SAAS,EAAEL,MAAM,CAAC4C,WAAP,CAAmBvC,KAAnB,CAAlD;AACE,wBAAC,UAAD;AACE,MAAA,QAAQ,EAAE0B,mBADZ;AAEE,MAAA,KAAK,EAAE,EAFT;AAGE,MAAA,IAAI,EAAC,OAHP;AAIE,MAAA,KAAK,EAAEnB,KAJT;AAKE,MAAA,aAAa,EAAEG,aALjB;AAME,MAAA,GAAG,EAAE,CAACgB,mBAAD,GAAuBd,cAAvB,GAAwC4B,SAN/C;AAOE,MAAA,QAAQ,EAAEZ,WAAW,CAACnB,IAAD,CAPvB;AAQE,MAAA,QAAQ,EAAEwB,WAAW,CAACxB,IAAD,CARvB,GADF,CADF;;;AAaGe,IAAAA,aAAa;AACZ,iCAAK,YAAS,uBAAd,EAAsC,SAAS,EAAE7B,MAAM,CAAC8C,UAAP,CAAkBzC,KAAlB,CAAjD,EAA2E,KAAK,EAAE,EAAEQ,GAAG,EAAEiB,OAAP,EAAlF;AACE,wBAAC,UAAD;AACE,MAAA,QAAQ,EAAEE,kBADZ;AAEE,MAAA,KAAK,EAAE,EAFT;AAGE,MAAA,IAAI,EAAC,MAHP;AAIE,MAAA,KAAK,EAAElB,IAJT;AAKE,MAAA,QAAQ,EAAEH,OAAO,GAAGA,OAAO,CAACG,IAAX,GAAkB+B,SALrC;AAME,MAAA,QAAQ,EAAEnC,OAAO,GAAGA,OAAO,CAACI,IAAX,GAAkB+B,SANrC;AAOE,MAAA,aAAa,EAAE7B,YAPjB;AAQE,MAAA,GAAG,EAAE,CAACgB,kBAAD,GAAsBd,aAAtB,GAAsC2B,SAR7C,GADF,CAdJ,CAPF,CADF;;;;;;AAqCGvC,IAAAA,QArCH,CADF;;;AAyCD","sourcesContent":["import React, { useContext } from 'react';\n\nimport { DateSelect } from '../DateSelect';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport * as ColorFunctions from '../../lib/styles/ColorFunctions';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './MonthView.styles';\nimport { themeConfig } from './config';\nimport * as CDS from './CalendarDateShape';\n\ninterface MonthViewProps {\n children: React.ReactNode;\n firstDayOffset: number;\n height: number;\n isFirstInYear?: boolean;\n isLastInYear?: boolean;\n maxDate?: CDS.CalendarDateShape;\n minDate?: CDS.CalendarDateShape;\n month: number;\n top: number;\n year: number;\n onMonthSelect: (month: number) => void;\n onYearSelect: (month: number) => void;\n monthSelectRef: (select: DateSelect | null) => void;\n yearSelectRef: (select: DateSelect | null) => void;\n}\n\nexport function MonthView(props: MonthViewProps) {\n const theme = useContext(ThemeContext);\n\n const {\n children,\n height,\n isFirstInYear,\n isLastInYear,\n maxDate,\n minDate,\n month,\n top,\n year,\n onMonthSelect,\n onYearSelect,\n monthSelectRef,\n yearSelectRef,\n } = props;\n\n const isTopNegative = top <= 0;\n const isHeaderSticky = isTopNegative && height >= -top;\n const headerTop = isHeaderSticky ? Math.min(-top, height - themeConfig(theme).MONTH_TITLE_HEIGHT) : 0;\n const alpha = isHeaderSticky ? (height + top - themeConfig(theme).MONTH_TITLE_HEIGHT) / 10 : 1;\n const borderBottomColor = ColorFunctions.fade(theme.calendarMonthTitleBorderBottomColor, alpha);\n const isYearVisible = isFirstInYear || isHeaderSticky;\n const yearTop = isHeaderSticky && !isLastInYear ? -headerTop - top : 0;\n const monthSelectDisabled = top > 40 || headerTop < 0 || headerTop >= height - themeConfig(theme).MONTH_TITLE_HEIGHT;\n const yearSelectDisabled = top > 40 || (isLastInYear && top < -height + themeConfig(theme).MONTH_TITLE_HEIGHT);\n\n const getMinMonth = (value: number) => {\n let min = 0;\n for (let i = 0; i < 12; ++i) {\n if (minDate && CDS.isGreaterOrEqual({ date: 31, month: i, year: value }, minDate)) {\n min = i;\n break;\n }\n }\n return min;\n };\n\n const getMaxMonth = (value: number) => {\n let max = 11;\n for (let i = 11; i >= 0; --i) {\n if (maxDate && CDS.isLessOrEqual({ date: 1, month: i, year: value }, maxDate)) {\n max = i;\n break;\n }\n }\n return max;\n };\n\n return (\n <div data-tid=\"MonthView__month\" className={styles.month(theme)} style={{ top }} key={month + '-' + year}>\n <div\n style={{ top: headerTop }}\n className={cx({\n [styles.header()]: true,\n [styles.headerSticky(theme)]: isHeaderSticky,\n })}\n >\n <div style={{ borderBottomColor }} className={styles.monthTitle(theme)}>\n <div data-tid=\"MonthView__headerMonth\" className={styles.headerMonth(theme)}>\n <DateSelect\n disabled={monthSelectDisabled}\n width={85}\n type=\"month\"\n value={month}\n onValueChange={onMonthSelect}\n ref={!monthSelectDisabled ? monthSelectRef : undefined}\n minValue={getMinMonth(year)}\n maxValue={getMaxMonth(year)}\n />\n </div>\n {isYearVisible && (\n <div data-tid=\"MonthView__headerYear\" className={styles.headerYear(theme)} style={{ top: yearTop }}>\n <DateSelect\n disabled={yearSelectDisabled}\n width={50}\n type=\"year\"\n value={year}\n minValue={minDate ? minDate.year : undefined}\n maxValue={maxDate ? maxDate.year : undefined}\n onValueChange={onYearSelect}\n ref={!yearSelectDisabled ? yearSelectRef : undefined}\n />\n </div>\n )}\n </div>\n </div>\n {children}\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["MonthView.tsx"],"names":["React","useContext","DateSelect","ThemeContext","ColorFunctions","cx","styles","themeConfig","CDS","CalendarDataTids","MonthView","props","theme","children","height","isFirstInYear","isLastInYear","maxDate","minDate","month","top","year","onMonthSelect","onYearSelect","monthSelectRef","yearSelectRef","isTopNegative","isHeaderSticky","headerTop","Math","min","MONTH_TITLE_HEIGHT","alpha","borderBottomColor","fade","calendarMonthTitleBorderBottomColor","isYearVisible","yearTop","monthSelectDisabled","yearSelectDisabled","getMinMonth","value","i","isGreaterOrEqual","date","getMaxMonth","max","isLessOrEqual","header","headerSticky","monthTitle","headerMonth","undefined","headerYear"],"mappings":"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","sourcesContent":["import React, { useContext } from 'react';\n\nimport { DateSelect } from '../DateSelect';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport * as ColorFunctions from '../../lib/styles/ColorFunctions';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './MonthView.styles';\nimport { themeConfig } from './config';\nimport * as CDS from './CalendarDateShape';\nimport { CalendarDataTids } from './Calendar';\n\ninterface MonthViewProps {\n children: React.ReactNode;\n firstDayOffset: number;\n height: number;\n isFirstInYear?: boolean;\n isLastInYear?: boolean;\n maxDate?: CDS.CalendarDateShape;\n minDate?: CDS.CalendarDateShape;\n month: number;\n top: number;\n year: number;\n onMonthSelect: (month: number) => void;\n onYearSelect: (month: number) => void;\n monthSelectRef: (select: DateSelect | null) => void;\n yearSelectRef: (select: DateSelect | null) => void;\n}\n\nexport function MonthView(props: MonthViewProps) {\n const theme = useContext(ThemeContext);\n\n const {\n children,\n height,\n isFirstInYear,\n isLastInYear,\n maxDate,\n minDate,\n month,\n top,\n year,\n onMonthSelect,\n onYearSelect,\n monthSelectRef,\n yearSelectRef,\n } = props;\n\n const isTopNegative = top <= 0;\n const isHeaderSticky = isTopNegative && height >= -top;\n const headerTop = isHeaderSticky ? Math.min(-top, height - themeConfig(theme).MONTH_TITLE_HEIGHT) : 0;\n const alpha = isHeaderSticky ? (height + top - themeConfig(theme).MONTH_TITLE_HEIGHT) / 10 : 1;\n const borderBottomColor = ColorFunctions.fade(theme.calendarMonthTitleBorderBottomColor, alpha);\n const isYearVisible = isFirstInYear || isHeaderSticky;\n const yearTop = isHeaderSticky && !isLastInYear ? -headerTop - top : 0;\n const monthSelectDisabled = top > 40 || headerTop < 0 || headerTop >= height - themeConfig(theme).MONTH_TITLE_HEIGHT;\n const yearSelectDisabled = top > 40 || (isLastInYear && top < -height + themeConfig(theme).MONTH_TITLE_HEIGHT);\n\n const getMinMonth = (value: number) => {\n let min = 0;\n for (let i = 0; i < 12; ++i) {\n if (minDate && CDS.isGreaterOrEqual({ date: 31, month: i, year: value }, minDate)) {\n min = i;\n break;\n }\n }\n return min;\n };\n\n const getMaxMonth = (value: number) => {\n let max = 11;\n for (let i = 11; i >= 0; --i) {\n if (maxDate && CDS.isLessOrEqual({ date: 1, month: i, year: value }, maxDate)) {\n max = i;\n break;\n }\n }\n return max;\n };\n\n return (\n <div data-tid={CalendarDataTids.month} className={styles.month(theme)} style={{ top }} key={month + '-' + year}>\n <div\n style={{ top: headerTop }}\n className={cx({\n [styles.header()]: true,\n [styles.headerSticky(theme)]: isHeaderSticky,\n })}\n >\n <div style={{ borderBottomColor }} className={styles.monthTitle(theme)}>\n <div data-tid={CalendarDataTids.headerMonth} className={styles.headerMonth(theme)}>\n <DateSelect\n disabled={monthSelectDisabled}\n width={85}\n type=\"month\"\n value={month}\n onValueChange={onMonthSelect}\n ref={!monthSelectDisabled ? monthSelectRef : undefined}\n minValue={getMinMonth(year)}\n maxValue={getMaxMonth(year)}\n />\n </div>\n {isYearVisible && (\n <div data-tid={CalendarDataTids.headerYear} className={styles.headerYear(theme)} style={{ top: yearTop }}>\n <DateSelect\n disabled={yearSelectDisabled}\n width={50}\n type=\"year\"\n value={year}\n minValue={minDate ? minDate.year : undefined}\n maxValue={maxDate ? maxDate.year : undefined}\n onValueChange={onYearSelect}\n ref={!yearSelectDisabled ? yearSelectRef : undefined}\n />\n </div>\n )}\n </div>\n </div>\n {children}\n </div>\n );\n}\n"]}
@@ -1,8 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
4
- var _excluded = ["className", "style", "rootNodeRef"],
5
- _excluded2 = ["children"];
4
+ var _excluded = ["className", "style", "children", "rootNodeRef"];
6
5
 
7
6
  var _class;
8
7
 
@@ -57,11 +56,10 @@ export var CommonWrapper = rootNode(_class = /*#__PURE__*/function (_React$Compo
57
56
  _extractCommonProps$ = _extractCommonProps[0],
58
57
  className = _extractCommonProps$.className,
59
58
  style = _extractCommonProps$.style,
59
+ children = _extractCommonProps$.children,
60
60
  rootNodeRef = _extractCommonProps$.rootNodeRef,
61
61
  dataProps = _objectWithoutPropertiesLoose(_extractCommonProps$, _excluded),
62
- _extractCommonProps$2 = _extractCommonProps[1],
63
- children = _extractCommonProps$2.children,
64
- rest = _objectWithoutPropertiesLoose(_extractCommonProps$2, _excluded2);
62
+ rest = _extends({}, _extractCommonProps[1]);
65
63
 
66
64
  this.child = isFunction(children) ? children(rest) : children;
67
65
  return /*#__PURE__*/React.isValidElement(this.child) ? /*#__PURE__*/React.cloneElement(this.child, _extends({
@@ -96,6 +94,7 @@ var isCommonProp = function isCommonProp(name) {
96
94
  case name === 'className':
97
95
  case name === 'style':
98
96
  case name === 'rootNodeRef':
97
+ case name === 'children':
99
98
  case name.indexOf('data-') === 0:
100
99
  // все data-атрибуты
101
100
  return true;
@@ -1 +1 @@
1
- {"version":3,"sources":["CommonWrapper.tsx"],"names":["React","isFunction","isRefableElement","cx","getRootNode","rootNode","isInstanceWithRootNode","callChildRef","CommonWrapper","rootNodeSubscription","ref","instance","setRootNode","props","rootNodeRef","remove","addRootNodeChangeListener","node","originalRef","child","render","extractCommonProps","className","style","dataProps","children","rest","isValidElement","cloneElement","Component","common","key","isCommonProp","name","indexOf"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isFunction, isRefableElement } from '../../lib/utils';\nimport { cx } from '../../lib/theming/Emotion';\nimport { Nullable } from '../../typings/utility-types';\nimport { getRootNode, rootNode, TSetRootNode, TRootNodeSubscription, isInstanceWithRootNode } from '../../lib/rootNode';\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\n\nexport interface CommonProps {\n /**\n * HTML-атрибут `class`.\n */\n className?: React.HTMLAttributes<HTMLElement>['className'];\n /**\n * HTML-атрибут `style`.\n */\n style?: React.HTMLAttributes<HTMLElement>['style'];\n /**\n * На равне с data-tid транслируются любые data-атрибуты. Они попадают на корневой элемент.\n */\n 'data-tid'?: string;\n}\n\ninterface CommonPropsRootNodeRef {\n rootNodeRef?: (instance: Nullable<HTMLElement>) => void;\n}\n\nexport type NotCommonProps<P> = Omit<P, keyof CommonProps>;\n\nexport type CommonWrapperProps<P> = P & {\n children: React.ReactNode | ((rest: CommonWrapperRestProps<P>) => React.ReactNode);\n};\nexport type CommonWrapperRestProps<P> = Omit<NotCommonProps<P>, 'children'>;\n\n@rootNode\nexport class CommonWrapper<P extends CommonProps & CommonPropsRootNodeRef> extends React.Component<\n CommonWrapperProps<P> & CommonPropsRootNodeRef\n> {\n private child: React.ReactNode;\n private setRootNode!: TSetRootNode;\n private rootNodeSubscription: Nullable<TRootNodeSubscription> = null;\n\n render() {\n const [{ className, style, rootNodeRef, ...dataProps }, { children, ...rest }] = extractCommonProps(this.props);\n this.child = isFunction(children) ? children(rest) : children;\n return React.isValidElement<CommonProps & React.RefAttributes<any>>(this.child)\n ? React.cloneElement(this.child, {\n ref: isRefableElement(this.child) ? this.ref : null,\n className: cx(this.child.props.className, className),\n style: {\n ...this.child.props.style,\n ...style,\n },\n ...dataProps,\n })\n : this.child;\n }\n\n private ref = (instance: Nullable<React.ReactInstance>) => {\n this.setRootNode(instance);\n this.props.rootNodeRef?.(getRootNode(instance));\n\n // refs are called when instances change\n // so we have to renew or remove old subscription\n this.rootNodeSubscription?.remove();\n this.rootNodeSubscription = null;\n\n if (instance && isInstanceWithRootNode(instance)) {\n this.rootNodeSubscription = instance.addRootNodeChangeListener?.((node) => {\n this.setRootNode(node);\n this.props.rootNodeRef?.(node);\n });\n }\n\n const originalRef = (this.child as React.RefAttributes<any>)?.ref;\n originalRef && callChildRef(originalRef, instance);\n };\n}\n\nconst extractCommonProps = <P extends CommonProps & CommonPropsRootNodeRef>(\n props: P,\n): [CommonProps & CommonPropsRootNodeRef, NotCommonProps<P>] => {\n const common = {} as CommonProps & CommonPropsRootNodeRef;\n const rest = {} as NotCommonProps<P>;\n\n for (const key in props) {\n if (isCommonProp(key)) {\n // @ts-ignore\n common[key] = props[key];\n } else {\n // @ts-ignore\n rest[key] = props[key];\n }\n }\n\n return [common, rest];\n};\n\nconst isCommonProp = (name: string) => {\n switch (true) {\n case name === 'className':\n case name === 'style':\n case name === 'rootNodeRef':\n case name.indexOf('data-') === 0: // все data-атрибуты\n return true;\n default:\n return false;\n }\n};\n"]}
1
+ {"version":3,"sources":["CommonWrapper.tsx"],"names":["React","isFunction","isRefableElement","cx","getRootNode","rootNode","isInstanceWithRootNode","callChildRef","CommonWrapper","rootNodeSubscription","ref","instance","setRootNode","props","rootNodeRef","remove","addRootNodeChangeListener","node","originalRef","child","render","extractCommonProps","className","style","children","dataProps","rest","isValidElement","cloneElement","Component","common","key","isCommonProp","name","indexOf"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isFunction, isRefableElement } from '../../lib/utils';\nimport { cx } from '../../lib/theming/Emotion';\nimport { Nullable } from '../../typings/utility-types';\nimport { getRootNode, rootNode, TSetRootNode, TRootNodeSubscription, isInstanceWithRootNode } from '../../lib/rootNode';\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\n\nexport interface CommonProps {\n /**\n * HTML-атрибут `class`.\n */\n className?: React.HTMLAttributes<HTMLElement>['className'];\n /**\n * HTML-атрибут `style`.\n */\n style?: React.HTMLAttributes<HTMLElement>['style'];\n /**\n * На равне с data-tid транслируются любые data-атрибуты. Они попадают на корневой элемент.\n */\n 'data-tid'?: string;\n children?: React.ReactNode;\n}\n\ninterface CommonPropsRootNodeRef {\n rootNodeRef?: (instance: Nullable<HTMLElement>) => void;\n}\n\nexport type NotCommonProps<P> = Omit<P, keyof CommonProps>;\n\nexport type CommonWrapperProps<P> = P & {\n children: React.ReactNode | ((rest: CommonWrapperRestProps<P>) => React.ReactNode);\n};\nexport type CommonWrapperRestProps<P> = Omit<NotCommonProps<P>, 'children'>;\n\n@rootNode\nexport class CommonWrapper<P extends CommonProps & CommonPropsRootNodeRef> extends React.Component<\n CommonWrapperProps<P> & CommonPropsRootNodeRef\n> {\n private child: React.ReactNode;\n private setRootNode!: TSetRootNode;\n private rootNodeSubscription: Nullable<TRootNodeSubscription> = null;\n\n render() {\n const [{ className, style, children, rootNodeRef, ...dataProps }, { ...rest }] = extractCommonProps(this.props);\n this.child = isFunction(children) ? children(rest) : children;\n return React.isValidElement<CommonProps & React.RefAttributes<any>>(this.child)\n ? React.cloneElement(this.child, {\n ref: isRefableElement(this.child) ? this.ref : null,\n className: cx(this.child.props.className, className),\n style: {\n ...this.child.props.style,\n ...style,\n },\n ...dataProps,\n })\n : this.child;\n }\n\n private ref = (instance: Nullable<React.ReactInstance>) => {\n this.setRootNode(instance);\n this.props.rootNodeRef?.(getRootNode(instance));\n\n // refs are called when instances change\n // so we have to renew or remove old subscription\n this.rootNodeSubscription?.remove();\n this.rootNodeSubscription = null;\n\n if (instance && isInstanceWithRootNode(instance)) {\n this.rootNodeSubscription = instance.addRootNodeChangeListener?.((node) => {\n this.setRootNode(node);\n this.props.rootNodeRef?.(node);\n });\n }\n\n const originalRef = (this.child as React.RefAttributes<any>)?.ref;\n originalRef && callChildRef(originalRef, instance);\n };\n}\n\nconst extractCommonProps = <P extends CommonProps & CommonPropsRootNodeRef>(\n props: P,\n): [CommonProps & CommonPropsRootNodeRef, NotCommonProps<P>] => {\n const common = {} as CommonProps & CommonPropsRootNodeRef;\n const rest = {} as NotCommonProps<P>;\n\n for (const key in props) {\n if (isCommonProp(key)) {\n // @ts-ignore\n common[key] = props[key];\n } else {\n // @ts-ignore\n rest[key] = props[key];\n }\n }\n\n return [common, rest];\n};\n\nconst isCommonProp = (name: string) => {\n switch (true) {\n case name === 'className':\n case name === 'style':\n case name === 'rootNodeRef':\n case name === 'children':\n case name.indexOf('data-') === 0: // все data-атрибуты\n return true;\n default:\n return false;\n }\n};\n"]}
@@ -13,6 +13,7 @@ export interface CommonProps {
13
13
  * На равне с data-tid транслируются любые data-атрибуты. Они попадают на корневой элемент.
14
14
  */
15
15
  'data-tid'?: string;
16
+ children?: React.ReactNode;
16
17
  }
17
18
  interface CommonPropsRootNodeRef {
18
19
  rootNodeRef?: (instance: Nullable<HTMLElement>) => void;
@@ -11,6 +11,13 @@ import { Spinner } from "../../../components/Spinner";
11
11
  import { MenuSeparator } from "../../../components/MenuSeparator";
12
12
  import { ComboBoxRequestStatus } from "../CustomComboBoxTypes";
13
13
  import { CustomComboBoxLocaleHelper } from "../locale";
14
+ export var ComboBoxMenuDataTids = {
15
+ loading: 'ComboBoxMenu__loading',
16
+ failed: 'ComboBoxMenu__failed',
17
+ notFound: 'ComboBoxMenu__notFound',
18
+ items: 'ComboBoxMenu__items',
19
+ item: 'ComboBoxMenu__item'
20
+ };
14
21
  export var ComboBoxMenu = (_dec = locale('ComboBox', CustomComboBoxLocaleHelper), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
15
22
  _inheritsLoose(ComboBoxMenu, _Component);
16
23
 
@@ -43,7 +50,7 @@ export var ComboBoxMenu = (_dec = locale('ComboBox', CustomComboBoxLocaleHelper)
43
50
  }
44
51
 
45
52
  return /*#__PURE__*/React.createElement(MenuItem, {
46
- "data-tid": "ComboBoxMenu__item",
53
+ "data-tid": ComboBoxMenuDataTids.item,
47
54
  onClick: function onClick() {
48
55
  return onValueChange(item);
49
56
  },
@@ -96,7 +103,7 @@ export var ComboBoxMenu = (_dec = locale('ComboBox', CustomComboBoxLocaleHelper)
96
103
  maxHeight: maxHeight,
97
104
  ref: refMenu,
98
105
  disableScrollContainer: isMobile,
99
- "data-tid": "ComboBoxMenu__loading"
106
+ "data-tid": ComboBoxMenuDataTids.loading
100
107
  }, /*#__PURE__*/React.createElement(MenuItem, {
101
108
  disabled: true,
102
109
  isMobile: isMobile
@@ -111,7 +118,7 @@ export var ComboBoxMenu = (_dec = locale('ComboBox', CustomComboBoxLocaleHelper)
111
118
  ref: refMenu,
112
119
  maxHeight: maxHeight,
113
120
  disableScrollContainer: isMobile,
114
- "data-tid": "ComboBoxMenu__failed"
121
+ "data-tid": ComboBoxMenuDataTids.failed
115
122
  }, /*#__PURE__*/React.createElement(MenuItem, {
116
123
  disabled: true,
117
124
  key: "message",
@@ -146,7 +153,7 @@ export var ComboBoxMenu = (_dec = locale('ComboBox', CustomComboBoxLocaleHelper)
146
153
  ref: refMenu,
147
154
  disableScrollContainer: isMobile
148
155
  }, /*#__PURE__*/React.createElement(MenuItem, {
149
- "data-tid": "ComboBoxMenu__notFound",
156
+ "data-tid": ComboBoxMenuDataTids.notFound,
150
157
  disabled: true,
151
158
  isMobile: isMobile
152
159
  }, notFoundValue));
@@ -177,7 +184,7 @@ export var ComboBoxMenu = (_dec = locale('ComboBox', CustomComboBoxLocaleHelper)
177
184
  }
178
185
 
179
186
  return /*#__PURE__*/React.createElement(Menu, {
180
- "data-tid": "ComboBoxMenu__items",
187
+ "data-tid": ComboBoxMenuDataTids.items,
181
188
  ref: refMenu,
182
189
  maxHeight: maxHeight,
183
190
  disableScrollContainer: isMobile
@@ -1 +1 @@
1
- {"version":3,"sources":["ComboBoxMenu.tsx"],"names":["React","Component","isNullable","locale","Menu","MenuItem","Spinner","MenuSeparator","ComboBoxRequestStatus","CustomComboBoxLocaleHelper","ComboBoxMenu","renderItem","item","index","props","onValueChange","isValidElement","element","Object","assign","key","onClick","cloneElement","isMobile","state","render","opened","items","totalCount","loading","refMenu","renderNotFound","notFound","renderTotalCount","maxMenuHeight","requestStatus","errorNetworkButton","errorNetworkMessage","renderAddButton","maxHeight","length","Failed","maxWidth","whiteSpace","repeatRequest","notFoundValue","total","renderedItems","map","countItems","filter","type","__KONTUR_REACT_UI__","fontSize","defaultProps","undefined","Unknown"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\n\nimport { isNullable } from '../../lib/utils';\nimport { locale } from '../../lib/locale/decorators';\nimport { Menu } from '../Menu';\nimport { MenuItem, MenuItemState } from '../../components/MenuItem';\nimport { Spinner } from '../../components/Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { MenuSeparator } from '../../components/MenuSeparator';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { ComboBoxLocale, CustomComboBoxLocaleHelper } from './locale';\n\nexport interface ComboBoxMenuProps<T> {\n opened?: boolean;\n items?: Nullable<T[]>;\n totalCount?: number;\n loading?: boolean;\n maxMenuHeight?: number | string;\n refMenu?: (menu: Nullable<Menu>) => void;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state: MenuItemState) => React.ReactNode;\n onValueChange: (value: T) => any;\n renderAddButton?: () => React.ReactNode;\n caption?: React.ReactNode;\n repeatRequest?: () => void;\n requestStatus?: ComboBoxRequestStatus;\n isMobile?: boolean;\n}\n\n@locale('ComboBox', CustomComboBoxLocaleHelper)\nexport class ComboBoxMenu<T> extends Component<ComboBoxMenuProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBoxMenu';\n\n public static defaultProps = {\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n\n private readonly locale!: ComboBoxLocale;\n\n public render() {\n const {\n opened,\n items,\n totalCount,\n loading,\n refMenu,\n renderNotFound = () => notFound,\n renderTotalCount,\n maxMenuHeight,\n requestStatus,\n isMobile,\n } = this.props;\n\n const { notFound, errorNetworkButton, errorNetworkMessage } = this.locale;\n\n if (!opened) {\n return null;\n }\n\n let renderAddButton = null;\n if (this.props.renderAddButton) {\n renderAddButton = this.props.renderAddButton();\n }\n\n const maxHeight = isMobile ? 'auto' : maxMenuHeight;\n\n if (loading && (!items || !items.length)) {\n return (\n <Menu maxHeight={maxHeight} ref={refMenu} disableScrollContainer={isMobile} data-tid=\"ComboBoxMenu__loading\">\n <MenuItem disabled isMobile={isMobile}>\n <Spinner type=\"mini\" dimmed />\n </MenuItem>\n </Menu>\n );\n }\n\n if (items === null && requestStatus === ComboBoxRequestStatus.Failed) {\n return (\n <Menu ref={refMenu} maxHeight={maxHeight} disableScrollContainer={isMobile} data-tid=\"ComboBoxMenu__failed\">\n <MenuItem disabled key=\"message\" isMobile={isMobile}>\n <div style={{ maxWidth: 300, whiteSpace: 'normal' }}>{errorNetworkMessage}</div>\n </MenuItem>\n <MenuItem link onClick={this.props.repeatRequest} key=\"retry\" isMobile={isMobile}>\n {errorNetworkButton}\n </MenuItem>\n </Menu>\n );\n }\n\n if ((isNullable(items) || items.length === 0) && renderNotFound) {\n const notFoundValue = renderNotFound();\n if (renderAddButton) {\n return (\n <Menu maxHeight={maxHeight} ref={refMenu} disableScrollContainer={isMobile}>\n {renderAddButton}\n </Menu>\n );\n }\n\n if (notFoundValue) {\n return (\n <Menu maxHeight={maxHeight} ref={refMenu} disableScrollContainer={isMobile}>\n <MenuItem data-tid=\"ComboBoxMenu__notFound\" disabled isMobile={isMobile}>\n {notFoundValue}\n </MenuItem>\n </Menu>\n );\n }\n\n return null;\n }\n\n let total = null;\n const renderedItems = items && items.map(this.renderItem);\n // @ts-ignore // todo fix checking\n const countItems = renderedItems?.filter((item) => item?.type?.__KONTUR_REACT_UI__ === 'MenuItem').length;\n\n if (countItems && renderTotalCount && totalCount && countItems < totalCount) {\n total = (\n <MenuItem disabled key=\"total\" isMobile={isMobile}>\n <div style={{ fontSize: 12 }}>{renderTotalCount(countItems, totalCount)}</div>\n </MenuItem>\n );\n }\n\n return (\n <Menu data-tid=\"ComboBoxMenu__items\" ref={refMenu} maxHeight={maxHeight} disableScrollContainer={isMobile}>\n {renderedItems}\n {total}\n {renderAddButton && [<MenuSeparator key=\"separator\" />, renderAddButton]}\n </Menu>\n );\n }\n\n private renderItem = (item: T, index: number): React.ReactNode => {\n // NOTE this is undesireable feature, better\n // to remove it from further versions\n const { renderItem, onValueChange } = this.props;\n if (typeof item === 'function' || React.isValidElement(item)) {\n // @ts-ignore\n const element = typeof item === 'function' ? item() : item;\n const props = Object.assign(\n {\n key: index,\n onClick: () => onValueChange(element.props),\n },\n element.props,\n );\n return React.cloneElement(element, props);\n }\n\n return (\n <MenuItem\n data-tid=\"ComboBoxMenu__item\"\n onClick={() => onValueChange(item)}\n key={index}\n isMobile={this.props.isMobile}\n >\n {(state) => renderItem(item, state)}\n </MenuItem>\n );\n };\n}\n"]}
1
+ {"version":3,"sources":["ComboBoxMenu.tsx"],"names":["React","Component","isNullable","locale","Menu","MenuItem","Spinner","MenuSeparator","ComboBoxRequestStatus","CustomComboBoxLocaleHelper","ComboBoxMenuDataTids","loading","failed","notFound","items","item","ComboBoxMenu","renderItem","index","props","onValueChange","isValidElement","element","Object","assign","key","onClick","cloneElement","isMobile","state","render","opened","totalCount","refMenu","renderNotFound","renderTotalCount","maxMenuHeight","requestStatus","errorNetworkButton","errorNetworkMessage","renderAddButton","maxHeight","length","Failed","maxWidth","whiteSpace","repeatRequest","notFoundValue","total","renderedItems","map","countItems","filter","type","__KONTUR_REACT_UI__","fontSize","defaultProps","undefined","Unknown"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\n\nimport { isNullable } from '../../lib/utils';\nimport { locale } from '../../lib/locale/decorators';\nimport { Menu } from '../Menu';\nimport { MenuItem, MenuItemState } from '../../components/MenuItem';\nimport { Spinner } from '../../components/Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { MenuSeparator } from '../../components/MenuSeparator';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { ComboBoxLocale, CustomComboBoxLocaleHelper } from './locale';\n\nexport interface ComboBoxMenuProps<T> {\n opened?: boolean;\n items?: Nullable<T[]>;\n totalCount?: number;\n loading?: boolean;\n maxMenuHeight?: number | string;\n refMenu?: (menu: Nullable<Menu>) => void;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state: MenuItemState) => React.ReactNode;\n onValueChange: (value: T) => any;\n renderAddButton?: () => React.ReactNode;\n caption?: React.ReactNode;\n repeatRequest?: () => void;\n requestStatus?: ComboBoxRequestStatus;\n isMobile?: boolean;\n}\n\nexport const ComboBoxMenuDataTids = {\n loading: 'ComboBoxMenu__loading',\n failed: 'ComboBoxMenu__failed',\n notFound: 'ComboBoxMenu__notFound',\n items: 'ComboBoxMenu__items',\n item: 'ComboBoxMenu__item',\n} as const;\n\n@locale('ComboBox', CustomComboBoxLocaleHelper)\nexport class ComboBoxMenu<T> extends Component<ComboBoxMenuProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBoxMenu';\n\n public static defaultProps = {\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n\n private readonly locale!: ComboBoxLocale;\n\n public render() {\n const {\n opened,\n items,\n totalCount,\n loading,\n refMenu,\n renderNotFound = () => notFound,\n renderTotalCount,\n maxMenuHeight,\n requestStatus,\n isMobile,\n } = this.props;\n\n const { notFound, errorNetworkButton, errorNetworkMessage } = this.locale;\n\n if (!opened) {\n return null;\n }\n\n let renderAddButton = null;\n if (this.props.renderAddButton) {\n renderAddButton = this.props.renderAddButton();\n }\n\n const maxHeight = isMobile ? 'auto' : maxMenuHeight;\n\n if (loading && (!items || !items.length)) {\n return (\n <Menu\n maxHeight={maxHeight}\n ref={refMenu}\n disableScrollContainer={isMobile}\n data-tid={ComboBoxMenuDataTids.loading}\n >\n <MenuItem disabled isMobile={isMobile}>\n <Spinner type=\"mini\" dimmed />\n </MenuItem>\n </Menu>\n );\n }\n\n if (items === null && requestStatus === ComboBoxRequestStatus.Failed) {\n return (\n <Menu\n ref={refMenu}\n maxHeight={maxHeight}\n disableScrollContainer={isMobile}\n data-tid={ComboBoxMenuDataTids.failed}\n >\n <MenuItem disabled key=\"message\" isMobile={isMobile}>\n <div style={{ maxWidth: 300, whiteSpace: 'normal' }}>{errorNetworkMessage}</div>\n </MenuItem>\n <MenuItem link onClick={this.props.repeatRequest} key=\"retry\" isMobile={isMobile}>\n {errorNetworkButton}\n </MenuItem>\n </Menu>\n );\n }\n\n if ((isNullable(items) || items.length === 0) && renderNotFound) {\n const notFoundValue = renderNotFound();\n if (renderAddButton) {\n return (\n <Menu maxHeight={maxHeight} ref={refMenu} disableScrollContainer={isMobile}>\n {renderAddButton}\n </Menu>\n );\n }\n\n if (notFoundValue) {\n return (\n <Menu maxHeight={maxHeight} ref={refMenu} disableScrollContainer={isMobile}>\n <MenuItem data-tid={ComboBoxMenuDataTids.notFound} disabled isMobile={isMobile}>\n {notFoundValue}\n </MenuItem>\n </Menu>\n );\n }\n\n return null;\n }\n\n let total = null;\n const renderedItems = items && items.map(this.renderItem);\n // @ts-ignore // todo fix checking\n const countItems = renderedItems?.filter((item) => item?.type?.__KONTUR_REACT_UI__ === 'MenuItem').length;\n\n if (countItems && renderTotalCount && totalCount && countItems < totalCount) {\n total = (\n <MenuItem disabled key=\"total\" isMobile={isMobile}>\n <div style={{ fontSize: 12 }}>{renderTotalCount(countItems, totalCount)}</div>\n </MenuItem>\n );\n }\n\n return (\n <Menu data-tid={ComboBoxMenuDataTids.items} ref={refMenu} maxHeight={maxHeight} disableScrollContainer={isMobile}>\n {renderedItems}\n {total}\n {renderAddButton && [<MenuSeparator key=\"separator\" />, renderAddButton]}\n </Menu>\n );\n }\n\n private renderItem = (item: T, index: number): React.ReactNode => {\n // NOTE this is undesireable feature, better\n // to remove it from further versions\n const { renderItem, onValueChange } = this.props;\n if (typeof item === 'function' || React.isValidElement(item)) {\n // @ts-ignore\n const element = typeof item === 'function' ? item() : item;\n const props = Object.assign(\n {\n key: index,\n onClick: () => onValueChange(element.props),\n },\n element.props,\n );\n return React.cloneElement(element, props);\n }\n\n return (\n <MenuItem\n data-tid={ComboBoxMenuDataTids.item}\n onClick={() => onValueChange(item)}\n key={index}\n isMobile={this.props.isMobile}\n >\n {(state) => renderItem(item, state)}\n </MenuItem>\n );\n };\n}\n"]}
@@ -20,6 +20,13 @@ export interface ComboBoxMenuProps<T> {
20
20
  requestStatus?: ComboBoxRequestStatus;
21
21
  isMobile?: boolean;
22
22
  }
23
+ export declare const ComboBoxMenuDataTids: {
24
+ readonly loading: "ComboBoxMenu__loading";
25
+ readonly failed: "ComboBoxMenu__failed";
26
+ readonly notFound: "ComboBoxMenu__notFound";
27
+ readonly items: "ComboBoxMenu__items";
28
+ readonly item: "ComboBoxMenu__item";
29
+ };
23
30
  export declare class ComboBoxMenu<T> extends Component<ComboBoxMenuProps<T>> {
24
31
  static __KONTUR_REACT_UI__: string;
25
32
  static defaultProps: {
@@ -19,6 +19,7 @@ import { rootNode, getRootNode } from "../../../lib/rootNode";
19
19
  import { ComboBoxMenu } from "../ComboBoxMenu";
20
20
  import { ComboBoxRequestStatus } from "../CustomComboBoxTypes";
21
21
  import { styles } from "../CustomComboBox.styles";
22
+ import { CustomComboBoxDataTids } from "../CustomComboBox";
22
23
  export var ComboBoxView = responsiveLayout(_class = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
23
24
  _inheritsLoose(ComboBoxView, _React$Component);
24
25
 
@@ -229,6 +230,7 @@ export var ComboBoxView = responsiveLayout(_class = rootNode(_class = (_temp = _
229
230
  onFocusOutside: onFocusOutside,
230
231
  active: opened
231
232
  }, /*#__PURE__*/React.createElement("span", {
233
+ "data-tid": CustomComboBoxDataTids.comboBoxView,
232
234
  style: {
233
235
  width: width
234
236
  },