@skbkontur/react-ui 4.14.2 → 4.15.1-fix-flushsync-warning

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 (365) hide show
  1. package/CHANGELOG.md +32 -5
  2. package/cjs/components/Button/Button.d.ts +2 -6
  3. package/cjs/components/Button/Button.js +14 -5
  4. package/cjs/components/Button/Button.js.map +1 -1
  5. package/cjs/components/Button/Button.styles.js +2 -1
  6. package/cjs/components/Button/Button.styles.js.map +1 -1
  7. package/cjs/components/Button/getInnerLinkTheme.js +0 -3
  8. package/cjs/components/Button/getInnerLinkTheme.js.map +1 -1
  9. package/cjs/components/Calendar/Calendar.d.ts +104 -0
  10. package/cjs/components/Calendar/Calendar.js +475 -0
  11. package/cjs/components/Calendar/Calendar.js.map +1 -0
  12. package/cjs/components/Calendar/Calendar.md +147 -0
  13. package/cjs/{internal → components}/Calendar/Calendar.styles.d.ts +1 -0
  14. package/cjs/components/Calendar/Calendar.styles.js +33 -0
  15. package/cjs/components/Calendar/Calendar.styles.js.map +1 -0
  16. package/{internal → cjs/components}/Calendar/CalendarUtils.d.ts +19 -2
  17. package/cjs/components/Calendar/CalendarUtils.js +117 -0
  18. package/cjs/components/Calendar/CalendarUtils.js.map +1 -0
  19. package/cjs/components/Calendar/Month.js.map +1 -0
  20. package/cjs/{internal → components}/Calendar/MonthView.d.ts +1 -1
  21. package/cjs/{internal → components}/Calendar/MonthView.js +1 -1
  22. package/cjs/{internal → components}/Calendar/MonthView.js.map +1 -1
  23. package/cjs/components/Calendar/locale/index.d.ts +4 -0
  24. package/cjs/components/Calendar/locale/index.js +11 -0
  25. package/cjs/components/Calendar/locale/index.js.map +1 -0
  26. package/cjs/components/Calendar/locale/locales/en.d.ts +2 -0
  27. package/cjs/components/Calendar/locale/locales/en.js +16 -0
  28. package/cjs/components/Calendar/locale/locales/en.js.map +1 -0
  29. package/cjs/components/Calendar/locale/locales/ru.d.ts +2 -0
  30. package/cjs/components/Calendar/locale/locales/ru.js +16 -0
  31. package/cjs/components/Calendar/locale/locales/ru.js.map +1 -0
  32. package/cjs/components/Calendar/locale/types.d.ts +3 -0
  33. package/cjs/components/Calendar/locale/types.js +1 -0
  34. package/cjs/components/Calendar/locale/types.js.map +1 -0
  35. package/cjs/components/DatePicker/DatePicker.d.ts +16 -17
  36. package/cjs/components/DatePicker/DatePicker.js +107 -57
  37. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  38. package/cjs/components/DatePicker/DatePicker.styles.d.ts +3 -0
  39. package/cjs/components/DatePicker/DatePicker.styles.js +36 -1
  40. package/cjs/components/DatePicker/DatePicker.styles.js.map +1 -1
  41. package/cjs/components/DatePicker/DatePickerHelpers.d.ts +1 -1
  42. package/cjs/components/DatePicker/DatePickerHelpers.js.map +1 -1
  43. package/cjs/components/DatePicker/Picker.d.ts +8 -9
  44. package/cjs/components/DatePicker/Picker.js +32 -41
  45. package/cjs/components/DatePicker/Picker.js.map +1 -1
  46. package/cjs/components/DatePicker/locale/locales/en.js +3 -15
  47. package/cjs/components/DatePicker/locale/locales/en.js.map +1 -1
  48. package/cjs/components/DatePicker/locale/locales/ru.js +3 -15
  49. package/cjs/components/DatePicker/locale/locales/ru.js.map +1 -1
  50. package/cjs/components/DatePicker/locale/types.d.ts +2 -2
  51. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -1
  52. package/cjs/components/DropdownMenu/DropdownMenu.js +2 -1
  53. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  54. package/cjs/components/FileUploader/FileUploader.d.ts +1 -0
  55. package/cjs/components/FileUploader/FileUploader.js +3 -1
  56. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  57. package/cjs/components/Kebab/Kebab.d.ts +4 -1
  58. package/cjs/components/Kebab/Kebab.js +9 -3
  59. package/cjs/components/Kebab/Kebab.js.map +1 -1
  60. package/cjs/components/Link/Link.js +4 -2
  61. package/cjs/components/Link/Link.js.map +1 -1
  62. package/cjs/components/Link/Link.mixins.d.ts +1 -2
  63. package/cjs/components/Link/Link.mixins.js +4 -16
  64. package/cjs/components/Link/Link.mixins.js.map +1 -1
  65. package/cjs/components/Link/Link.styles.d.ts +2 -0
  66. package/cjs/components/Link/Link.styles.js +56 -38
  67. package/cjs/components/Link/Link.styles.js.map +1 -1
  68. package/cjs/components/Loader/Loader.js +1 -3
  69. package/cjs/components/Loader/Loader.js.map +1 -1
  70. package/cjs/components/Modal/Modal.d.ts +3 -3
  71. package/cjs/components/Modal/Modal.js +19 -2
  72. package/cjs/components/Modal/Modal.js.map +1 -1
  73. package/cjs/components/Modal/Modal.styles.d.ts +0 -2
  74. package/cjs/components/Modal/Modal.styles.js +25 -36
  75. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  76. package/cjs/components/Modal/ModalBody.js +0 -2
  77. package/cjs/components/Modal/ModalBody.js.map +1 -1
  78. package/cjs/components/Modal/ModalFooter.js +3 -6
  79. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  80. package/cjs/components/Modal/ModalHeader.js +2 -7
  81. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  82. package/cjs/components/PasswordInput/PasswordInput.js +4 -6
  83. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  84. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  85. package/cjs/components/ScrollContainer/ScrollContainer.js +9 -1
  86. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  87. package/cjs/components/SidePage/SidePage.d.ts +3 -3
  88. package/cjs/components/SidePage/SidePage.js +8 -1
  89. package/cjs/components/SidePage/SidePage.js.map +1 -1
  90. package/cjs/components/Spinner/Spinner.md +1 -1
  91. package/cjs/components/Switcher/Switcher.d.ts +4 -2
  92. package/cjs/components/Switcher/Switcher.js +13 -3
  93. package/cjs/components/Switcher/Switcher.js.map +1 -1
  94. package/cjs/components/Toast/Toast.md +16 -12
  95. package/cjs/components/TokenInput/TokenInput.d.ts +44 -1
  96. package/cjs/components/TokenInput/TokenInput.js +42 -0
  97. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  98. package/cjs/components/TokenInput/TokenInput.md +100 -0
  99. package/cjs/index.d.ts +1 -0
  100. package/cjs/index.js +1 -0
  101. package/cjs/index.js.map +1 -1
  102. package/cjs/internal/CustomComboBox/CustomComboBox.js +25 -13
  103. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  104. package/cjs/internal/DateSelect/DateSelect.js +3 -3
  105. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  106. package/cjs/internal/InputLikeText/InputLikeText.js +4 -1
  107. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  108. package/cjs/internal/NativeDateInput/utils.d.ts +1 -1
  109. package/cjs/internal/NativeDateInput/utils.js.map +1 -1
  110. package/cjs/internal/PopupMenu/PopupMenu.d.ts +8 -0
  111. package/cjs/internal/PopupMenu/PopupMenu.js +23 -3
  112. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  113. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  114. package/cjs/internal/ZIndex/ZIndexStorage.d.ts +0 -5
  115. package/cjs/internal/ZIndex/ZIndexStorage.js +1 -6
  116. package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
  117. package/cjs/internal/icons/SpinnerIcon.styles.js +2 -1
  118. package/cjs/internal/icons/SpinnerIcon.styles.js.map +1 -1
  119. package/cjs/internal/themes/DefaultTheme.d.ts +4 -15
  120. package/cjs/internal/themes/DefaultTheme.js +15 -48
  121. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  122. package/cjs/internal/themes/Theme2022.d.ts +0 -3
  123. package/cjs/internal/themes/Theme2022.js +2 -11
  124. package/cjs/internal/themes/Theme2022.js.map +1 -1
  125. package/cjs/lib/date/InternalDate.d.ts +1 -1
  126. package/cjs/lib/date/InternalDate.js +1 -1
  127. package/cjs/lib/date/InternalDate.js.map +1 -1
  128. package/cjs/lib/locale/decorators.js +0 -3
  129. package/cjs/lib/locale/decorators.js.map +1 -1
  130. package/cjs/lib/locale/types.d.ts +2 -0
  131. package/cjs/lib/locale/types.js +2 -0
  132. package/cjs/lib/locale/types.js.map +1 -1
  133. package/cjs/typings/html.d.ts +1 -1
  134. package/cjs/typings/utility-types.d.ts +6 -0
  135. package/components/Button/Button/Button.js +13 -4
  136. package/components/Button/Button/Button.js.map +1 -1
  137. package/components/Button/Button.d.ts +2 -6
  138. package/components/Button/Button.styles/Button.styles.js +1 -1
  139. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  140. package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js +0 -3
  141. package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js.map +1 -1
  142. package/{internal → components}/Calendar/Calendar/Calendar.js +136 -71
  143. package/components/Calendar/Calendar/Calendar.js.map +1 -0
  144. package/{internal → components}/Calendar/Calendar/package.json +1 -1
  145. package/components/Calendar/Calendar.d.ts +104 -0
  146. package/components/Calendar/Calendar.md +147 -0
  147. package/components/Calendar/Calendar.styles/Calendar.styles.js +17 -0
  148. package/components/Calendar/Calendar.styles/Calendar.styles.js.map +1 -0
  149. package/{internal → components}/Calendar/Calendar.styles/package.json +1 -1
  150. package/{internal → components}/Calendar/Calendar.styles.d.ts +1 -0
  151. package/{internal → components}/Calendar/CalendarDateShape/package.json +1 -1
  152. package/{internal → components}/Calendar/CalendarScrollEvents/package.json +1 -1
  153. package/{internal → components}/Calendar/CalendarUtils/CalendarUtils.js +34 -0
  154. package/components/Calendar/CalendarUtils/CalendarUtils.js.map +1 -0
  155. package/{internal → components}/Calendar/CalendarUtils/package.json +1 -1
  156. package/{cjs/internal → components}/Calendar/CalendarUtils.d.ts +19 -2
  157. package/{internal → components}/Calendar/DayCellView/package.json +1 -1
  158. package/{internal → components}/Calendar/DayCellView.styles/package.json +1 -1
  159. package/{internal → components}/Calendar/DayCellViewModel/package.json +1 -1
  160. package/components/Calendar/Month/Month.js.map +1 -0
  161. package/{internal → components}/Calendar/Month/package.json +1 -1
  162. package/{internal → components}/Calendar/MonthView/MonthView.js +1 -1
  163. package/components/Calendar/MonthView/MonthView.js.map +1 -0
  164. package/{internal → components}/Calendar/MonthView/package.json +1 -1
  165. package/{internal → components}/Calendar/MonthView.d.ts +1 -1
  166. package/{internal → components}/Calendar/MonthView.styles/package.json +1 -1
  167. package/{internal → components}/Calendar/MonthViewModel/package.json +1 -1
  168. package/{internal → components}/Calendar/config/package.json +1 -1
  169. package/{internal → components}/Calendar/index/package.json +1 -1
  170. package/components/Calendar/locale/index/index.js +8 -0
  171. package/components/Calendar/locale/index/index.js.map +1 -0
  172. package/components/Calendar/locale/index/package.json +6 -0
  173. package/components/Calendar/locale/index.d.ts +4 -0
  174. package/components/Calendar/locale/locales/en/en.js +3 -0
  175. package/components/Calendar/locale/locales/en/en.js.map +1 -0
  176. package/components/Calendar/locale/locales/en/package.json +6 -0
  177. package/components/Calendar/locale/locales/en.d.ts +2 -0
  178. package/components/Calendar/locale/locales/ru/package.json +6 -0
  179. package/components/Calendar/locale/locales/ru/ru.js +3 -0
  180. package/components/Calendar/locale/locales/ru/ru.js.map +1 -0
  181. package/components/Calendar/locale/locales/ru.d.ts +2 -0
  182. package/components/Calendar/locale/package.json +6 -0
  183. package/components/Calendar/locale/types/package.json +6 -0
  184. package/components/Calendar/locale/types/types.js +1 -0
  185. package/components/Calendar/locale/types/types.js.map +1 -0
  186. package/components/Calendar/locale/types.d.ts +3 -0
  187. package/{internal → components}/Calendar/package.json +1 -1
  188. package/components/DatePicker/DatePicker/DatePicker.js +112 -62
  189. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  190. package/components/DatePicker/DatePicker.d.ts +16 -17
  191. package/components/DatePicker/DatePicker.styles/DatePicker.styles.js +7 -1
  192. package/components/DatePicker/DatePicker.styles/DatePicker.styles.js.map +1 -1
  193. package/components/DatePicker/DatePicker.styles.d.ts +3 -0
  194. package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js.map +1 -1
  195. package/components/DatePicker/DatePickerHelpers.d.ts +1 -1
  196. package/components/DatePicker/Picker/Picker.js +50 -66
  197. package/components/DatePicker/Picker/Picker.js.map +1 -1
  198. package/components/DatePicker/Picker.d.ts +8 -9
  199. package/components/DatePicker/locale/locales/en/en.js +3 -3
  200. package/components/DatePicker/locale/locales/en/en.js.map +1 -1
  201. package/components/DatePicker/locale/locales/ru/ru.js +3 -3
  202. package/components/DatePicker/locale/locales/ru/ru.js.map +1 -1
  203. package/components/DatePicker/locale/types.d.ts +2 -2
  204. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +2 -1
  205. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  206. package/components/DropdownMenu/DropdownMenu.d.ts +1 -1
  207. package/components/FileUploader/FileUploader/FileUploader.js +3 -1
  208. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  209. package/components/FileUploader/FileUploader.d.ts +1 -0
  210. package/components/Kebab/Kebab/Kebab.js +6 -1
  211. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  212. package/components/Kebab/Kebab.d.ts +4 -1
  213. package/components/Link/Link/Link.js +4 -4
  214. package/components/Link/Link/Link.js.map +1 -1
  215. package/components/Link/Link.mixins/Link.mixins.js +2 -5
  216. package/components/Link/Link.mixins/Link.mixins.js.map +1 -1
  217. package/components/Link/Link.mixins.d.ts +1 -2
  218. package/components/Link/Link.styles/Link.styles.js +28 -21
  219. package/components/Link/Link.styles/Link.styles.js.map +1 -1
  220. package/components/Link/Link.styles.d.ts +2 -0
  221. package/components/Loader/Loader/Loader.js +0 -2
  222. package/components/Loader/Loader/Loader.js.map +1 -1
  223. package/components/Modal/Modal/Modal.js +28 -11
  224. package/components/Modal/Modal/Modal.js.map +1 -1
  225. package/components/Modal/Modal.d.ts +3 -3
  226. package/components/Modal/Modal.styles/Modal.styles.js +24 -30
  227. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  228. package/components/Modal/Modal.styles.d.ts +0 -2
  229. package/components/Modal/ModalBody/ModalBody.js +0 -2
  230. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  231. package/components/Modal/ModalFooter/ModalFooter.js +3 -7
  232. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  233. package/components/Modal/ModalHeader/ModalHeader.js +3 -7
  234. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  235. package/components/PasswordInput/PasswordInput/PasswordInput.js +6 -5
  236. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  237. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +12 -4
  238. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  239. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  240. package/components/SidePage/SidePage/SidePage.js +9 -3
  241. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  242. package/components/SidePage/SidePage.d.ts +3 -3
  243. package/components/Spinner/Spinner.md +1 -1
  244. package/components/Switcher/Switcher/Switcher.js +8 -2
  245. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  246. package/components/Switcher/Switcher.d.ts +4 -2
  247. package/components/Toast/Toast.md +16 -12
  248. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  249. package/components/TokenInput/TokenInput.d.ts +44 -1
  250. package/components/TokenInput/TokenInput.md +100 -0
  251. package/index.d.ts +1 -0
  252. package/index.js +1 -0
  253. package/index.js.map +1 -1
  254. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +33 -14
  255. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  256. package/internal/DateSelect/DateSelect/DateSelect.js +4 -2
  257. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  258. package/internal/InputLikeText/InputLikeText/InputLikeText.js +5 -2
  259. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  260. package/internal/NativeDateInput/utils/utils.js.map +1 -1
  261. package/internal/NativeDateInput/utils.d.ts +1 -1
  262. package/internal/PopupMenu/PopupMenu/PopupMenu.js +13 -2
  263. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  264. package/internal/PopupMenu/PopupMenu.d.ts +8 -0
  265. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  266. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +1 -6
  267. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
  268. package/internal/ZIndex/ZIndexStorage.d.ts +0 -5
  269. package/internal/icons/SpinnerIcon.styles/SpinnerIcon.styles.js +1 -1
  270. package/internal/icons/SpinnerIcon.styles/SpinnerIcon.styles.js.map +1 -1
  271. package/internal/themes/DefaultTheme/DefaultTheme.js +25 -80
  272. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  273. package/internal/themes/DefaultTheme.d.ts +4 -15
  274. package/internal/themes/Theme2022/Theme2022.js +6 -21
  275. package/internal/themes/Theme2022/Theme2022.js.map +1 -1
  276. package/internal/themes/Theme2022.d.ts +0 -3
  277. package/lib/date/InternalDate/InternalDate.js +1 -1
  278. package/lib/date/InternalDate/InternalDate.js.map +1 -1
  279. package/lib/date/InternalDate.d.ts +1 -1
  280. package/lib/locale/decorators/decorators.js.map +1 -1
  281. package/lib/locale/types/types.js.map +1 -1
  282. package/lib/locale/types.d.ts +2 -0
  283. package/package.json +2 -5
  284. package/typings/html.d.ts +1 -1
  285. package/typings/utility-types.d.ts +6 -0
  286. package/cjs/components/DatePicker/Picker.styles.d.ts +0 -5
  287. package/cjs/components/DatePicker/Picker.styles.js +0 -39
  288. package/cjs/components/DatePicker/Picker.styles.js.map +0 -1
  289. package/cjs/internal/Calendar/Calendar.d.ts +0 -63
  290. package/cjs/internal/Calendar/Calendar.js +0 -387
  291. package/cjs/internal/Calendar/Calendar.js.map +0 -1
  292. package/cjs/internal/Calendar/Calendar.styles.js +0 -23
  293. package/cjs/internal/Calendar/Calendar.styles.js.map +0 -1
  294. package/cjs/internal/Calendar/CalendarUtils.js +0 -71
  295. package/cjs/internal/Calendar/CalendarUtils.js.map +0 -1
  296. package/cjs/internal/Calendar/Month.js.map +0 -1
  297. package/components/DatePicker/Picker.styles/Picker.styles.js +0 -13
  298. package/components/DatePicker/Picker.styles/Picker.styles.js.map +0 -1
  299. package/components/DatePicker/Picker.styles/package.json +0 -6
  300. package/components/DatePicker/Picker.styles.d.ts +0 -5
  301. package/internal/Calendar/Calendar/Calendar.js.map +0 -1
  302. package/internal/Calendar/Calendar.d.ts +0 -63
  303. package/internal/Calendar/Calendar.styles/Calendar.styles.js +0 -14
  304. package/internal/Calendar/Calendar.styles/Calendar.styles.js.map +0 -1
  305. package/internal/Calendar/CalendarUtils/CalendarUtils.js.map +0 -1
  306. package/internal/Calendar/Month/Month.js.map +0 -1
  307. package/internal/Calendar/MonthView/MonthView.js.map +0 -1
  308. /package/cjs/{internal → components}/Calendar/CalendarDateShape.d.ts +0 -0
  309. /package/cjs/{internal → components}/Calendar/CalendarDateShape.js +0 -0
  310. /package/cjs/{internal → components}/Calendar/CalendarDateShape.js.map +0 -0
  311. /package/cjs/{internal → components}/Calendar/CalendarScrollEvents.d.ts +0 -0
  312. /package/cjs/{internal → components}/Calendar/CalendarScrollEvents.js +0 -0
  313. /package/cjs/{internal → components}/Calendar/CalendarScrollEvents.js.map +0 -0
  314. /package/cjs/{internal → components}/Calendar/DayCellView.d.ts +0 -0
  315. /package/cjs/{internal → components}/Calendar/DayCellView.js +0 -0
  316. /package/cjs/{internal → components}/Calendar/DayCellView.js.map +0 -0
  317. /package/cjs/{internal → components}/Calendar/DayCellView.styles.d.ts +0 -0
  318. /package/cjs/{internal → components}/Calendar/DayCellView.styles.js +0 -0
  319. /package/cjs/{internal → components}/Calendar/DayCellView.styles.js.map +0 -0
  320. /package/cjs/{internal → components}/Calendar/DayCellViewModel.d.ts +0 -0
  321. /package/cjs/{internal → components}/Calendar/DayCellViewModel.js +0 -0
  322. /package/cjs/{internal → components}/Calendar/DayCellViewModel.js.map +0 -0
  323. /package/cjs/{internal → components}/Calendar/Month.d.ts +0 -0
  324. /package/cjs/{internal → components}/Calendar/Month.js +0 -0
  325. /package/cjs/{internal → components}/Calendar/MonthView.styles.d.ts +0 -0
  326. /package/cjs/{internal → components}/Calendar/MonthView.styles.js +0 -0
  327. /package/cjs/{internal → components}/Calendar/MonthView.styles.js.map +0 -0
  328. /package/cjs/{internal → components}/Calendar/MonthViewModel.d.ts +0 -0
  329. /package/cjs/{internal → components}/Calendar/MonthViewModel.js +0 -0
  330. /package/cjs/{internal → components}/Calendar/MonthViewModel.js.map +0 -0
  331. /package/cjs/{internal → components}/Calendar/config.d.ts +0 -0
  332. /package/cjs/{internal → components}/Calendar/config.js +0 -0
  333. /package/cjs/{internal → components}/Calendar/config.js.map +0 -0
  334. /package/cjs/{internal → components}/Calendar/index.d.ts +0 -0
  335. /package/cjs/{internal → components}/Calendar/index.js +0 -0
  336. /package/cjs/{internal → components}/Calendar/index.js.map +0 -0
  337. /package/{internal → components}/Calendar/CalendarDateShape/CalendarDateShape.js +0 -0
  338. /package/{internal → components}/Calendar/CalendarDateShape/CalendarDateShape.js.map +0 -0
  339. /package/{internal → components}/Calendar/CalendarDateShape.d.ts +0 -0
  340. /package/{internal → components}/Calendar/CalendarScrollEvents/CalendarScrollEvents.js +0 -0
  341. /package/{internal → components}/Calendar/CalendarScrollEvents/CalendarScrollEvents.js.map +0 -0
  342. /package/{internal → components}/Calendar/CalendarScrollEvents.d.ts +0 -0
  343. /package/{internal → components}/Calendar/DayCellView/DayCellView.js +0 -0
  344. /package/{internal → components}/Calendar/DayCellView/DayCellView.js.map +0 -0
  345. /package/{internal → components}/Calendar/DayCellView.d.ts +0 -0
  346. /package/{internal → components}/Calendar/DayCellView.styles/DayCellView.styles.js +0 -0
  347. /package/{internal → components}/Calendar/DayCellView.styles/DayCellView.styles.js.map +0 -0
  348. /package/{internal → components}/Calendar/DayCellView.styles.d.ts +0 -0
  349. /package/{internal → components}/Calendar/DayCellViewModel/DayCellViewModel.js +0 -0
  350. /package/{internal → components}/Calendar/DayCellViewModel/DayCellViewModel.js.map +0 -0
  351. /package/{internal → components}/Calendar/DayCellViewModel.d.ts +0 -0
  352. /package/{internal → components}/Calendar/Month/Month.js +0 -0
  353. /package/{internal → components}/Calendar/Month.d.ts +0 -0
  354. /package/{internal → components}/Calendar/MonthView.styles/MonthView.styles.js +0 -0
  355. /package/{internal → components}/Calendar/MonthView.styles/MonthView.styles.js.map +0 -0
  356. /package/{internal → components}/Calendar/MonthView.styles.d.ts +0 -0
  357. /package/{internal → components}/Calendar/MonthViewModel/MonthViewModel.js +0 -0
  358. /package/{internal → components}/Calendar/MonthViewModel/MonthViewModel.js.map +0 -0
  359. /package/{internal → components}/Calendar/MonthViewModel.d.ts +0 -0
  360. /package/{internal → components}/Calendar/config/config.js +0 -0
  361. /package/{internal → components}/Calendar/config/config.js.map +0 -0
  362. /package/{internal → components}/Calendar/config.d.ts +0 -0
  363. /package/{internal → components}/Calendar/index/index.js +0 -0
  364. /package/{internal → components}/Calendar/index/index.js.map +0 -0
  365. /package/{internal → components}/Calendar/index.d.ts +0 -0
@@ -1,30 +1,25 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
1
2
  import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
2
3
 
3
4
  var _dec, _class, _class2, _temp;
4
5
 
5
6
  import React from 'react';
6
- import shallowEqual from 'shallowequal';
7
- import { InternalDate } from "../../../lib/date/InternalDate";
7
+ import warning from 'warning';
8
+ import { InternalDateTransformer } from "../../../lib/date/InternalDateTransformer";
9
+ import { ThemeFactory } from "../../../lib/theming/ThemeFactory";
10
+ import { cx } from "../../../lib/theming/Emotion";
8
11
  import { InternalDateGetter } from "../../../lib/date/InternalDateGetter";
9
- import { Calendar, isGreater, isLess } from "../../../internal/Calendar";
12
+ import { InternalDate } from "../../../lib/date/InternalDate";
10
13
  import { locale } from "../../../lib/locale/decorators";
14
+ import { Calendar } from "../../Calendar";
11
15
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
16
+ import { getTodayDate } from "../../Calendar/CalendarUtils";
12
17
  import { isTheme2022 } from "../../../lib/theming/ThemeHelpers";
13
18
  import { Button } from "../../Button";
14
19
  import { ArrowAUpIcon16Light } from "../../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light";
15
- import { styles } from "../Picker.styles";
16
- import { DatePickerLocaleHelper } from "../locale";
20
+ import { styles } from "../DatePicker.styles";
17
21
  import { DatePickerDataTids } from "../DatePicker";
18
-
19
- var getTodayCalendarDate = function getTodayCalendarDate() {
20
- var d = new Date();
21
- return {
22
- date: d.getDate(),
23
- month: d.getMonth(),
24
- year: d.getFullYear()
25
- };
26
- };
27
-
22
+ import { DatePickerLocaleHelper } from "../locale";
28
23
  export var Picker = (_dec = locale('DatePicker', DatePickerLocaleHelper), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
29
24
  _inheritsLoose(Picker, _React$Component);
30
25
 
@@ -34,20 +29,32 @@ export var Picker = (_dec = locale('DatePicker', DatePickerLocaleHelper), _dec(_
34
29
  _this = _React$Component.call(this, props) || this;
35
30
  _this.calendar = null;
36
31
 
37
- _this.scrollToMonth = function (month, year) {
38
- if (_this.calendar) {
39
- _this.calendar.scrollToMonth(month, year);
32
+ _this.isHoliday = function (day, isWeekend) {
33
+ var dateShape = new InternalDate().parseValue(day).getComponentsLikeNumber();
34
+ return !!(_this.props.isHoliday != null && _this.props.isHoliday(_extends({}, dateShape, {
35
+ isWeekend: isWeekend
36
+ })));
37
+ };
38
+
39
+ _this.onValueChange = function (date) {
40
+ var dateShape = new InternalDate().parseValue(date).getComponentsLikeNumber();
41
+ return _this.props.onPick(dateShape);
42
+ };
43
+
44
+ _this.getDateFromShape = function (dateShape) {
45
+ if (!dateShape) {
46
+ return undefined;
40
47
  }
48
+
49
+ return InternalDateTransformer.dateToInternalString(dateShape);
41
50
  };
42
51
 
43
52
  _this.handleSelectToday = function (today) {
44
53
  return function () {
45
54
  if (_this.props.onSelect) {
46
- var todayInNativeFormat = today.toNativeFormat();
55
+ var todayInNativeFormat = new InternalDate().parseValue(today).toNativeFormat();
47
56
 
48
- if (todayInNativeFormat) {
49
- _this.props.onSelect(todayInNativeFormat);
50
- }
57
+ _this.props.onSelect(todayInNativeFormat);
51
58
  }
52
59
 
53
60
  if (_this.calendar) {
@@ -60,57 +67,34 @@ export var Picker = (_dec = locale('DatePicker', DatePickerLocaleHelper), _dec(_
60
67
  };
61
68
  };
62
69
 
63
- _this.getInitialDate = function (today) {
64
- if (_this.props.value) {
65
- return _this.props.value;
66
- }
67
-
68
- if (_this.props.minDate && isLess(today, _this.props.minDate)) {
69
- return _this.props.minDate;
70
- }
71
-
72
- if (_this.props.maxDate && isGreater(today, _this.props.maxDate)) {
73
- return _this.props.maxDate;
74
- }
75
-
76
- return today;
77
- };
78
-
79
- var _today = getTodayCalendarDate();
80
-
81
70
  _this.state = {
82
- date: _this.getInitialDate(_today),
83
- today: _today
71
+ today: getTodayDate()
84
72
  };
73
+ warning(false, "<Picker /> has been deprecated. It will be removed in the next major version of the library. If you wish to have a similar component make use of public component <Calendar />.");
85
74
  return _this;
86
75
  }
87
76
 
88
77
  var _proto = Picker.prototype;
89
78
 
90
- _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
91
- var value = this.props.value;
92
-
93
- if (value && !shallowEqual(value, prevProps.value)) {
94
- this.scrollToMonth(value.month, value.year);
95
- }
96
- };
97
-
98
79
  _proto.render = function render() {
99
80
  var _this2 = this;
100
81
 
101
82
  return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
102
83
  _this2.theme = theme;
103
- return _this2.renderMain();
84
+ return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
85
+ value: ThemeFactory.create({
86
+ calendarBottomSeparatorBorder: 'none'
87
+ }, theme)
88
+ }, _this2.renderMain());
104
89
  });
105
90
  };
106
91
 
107
92
  _proto.renderMain = function renderMain() {
108
93
  var _this3 = this;
109
94
 
110
- var date = this.state.date;
111
95
  return /*#__PURE__*/React.createElement("div", {
112
96
  "data-tid": DatePickerDataTids.pickerRoot,
113
- className: styles.root(this.theme),
97
+ className: styles.calendarWrapper(this.theme),
114
98
  onMouseDown: function onMouseDown(e) {
115
99
  return e.preventDefault();
116
100
  }
@@ -118,24 +102,27 @@ export var Picker = (_dec = locale('DatePicker', DatePickerLocaleHelper), _dec(_
118
102
  ref: function ref(c) {
119
103
  return _this3.calendar = c;
120
104
  },
121
- value: this.props.value,
122
- initialMonth: date.month,
123
- initialYear: date.year,
124
- onSelect: this.props.onPick,
125
- minDate: this.props.minDate,
126
- maxDate: this.props.maxDate,
127
- isHoliday: this.props.isHoliday
105
+ maxDate: this.getDateFromShape(this.props.maxDate),
106
+ minDate: this.getDateFromShape(this.props.minDate),
107
+ onValueChange: this.onValueChange,
108
+ isHoliday: this.isHoliday,
109
+ value: this.getDateFromShape(this.props.value)
128
110
  }), this.props.enableTodayLink && this.renderTodayLink(), ' ');
129
111
  };
130
112
 
131
113
  _proto.renderTodayLink = function renderTodayLink() {
114
+ var _cx;
115
+
132
116
  var _this$locale = this.locale,
133
117
  order = _this$locale.order,
134
118
  separator = _this$locale.separator;
135
119
  var today = new InternalDate({
136
120
  order: order,
137
121
  separator: separator
138
- }).setComponents(InternalDateGetter.getTodayComponents());
122
+ }).setComponents(InternalDateGetter.getTodayComponents()).toString({
123
+ withPad: true,
124
+ withSeparator: true
125
+ });
139
126
 
140
127
  if (isTheme2022(this.theme)) {
141
128
  return /*#__PURE__*/React.createElement("div", {
@@ -152,13 +139,10 @@ export var Picker = (_dec = locale('DatePicker', DatePickerLocaleHelper), _dec(_
152
139
 
153
140
  return /*#__PURE__*/React.createElement("button", {
154
141
  "data-tid": DatePickerDataTids.pickerTodayWrapper,
155
- className: styles.todayWrapper(this.theme),
142
+ className: cx((_cx = {}, _cx[styles.todayLinkWrapper(this.theme)] = true, _cx)),
156
143
  onClick: this.handleSelectToday(today),
157
144
  tabIndex: -1
158
- }, this.locale.today + " " + today.toString({
159
- withPad: true,
160
- withSeparator: true
161
- }));
145
+ }, this.locale.today + " " + today);
162
146
  };
163
147
 
164
148
  return Picker;
@@ -1 +1 @@
1
- {"version":3,"sources":["Picker.tsx"],"names":["React","shallowEqual","InternalDate","InternalDateGetter","Calendar","isGreater","isLess","locale","ThemeContext","isTheme2022","Button","ArrowAUpIcon16Light","styles","DatePickerLocaleHelper","DatePickerDataTids","getTodayCalendarDate","d","Date","date","getDate","month","getMonth","year","getFullYear","Picker","props","calendar","scrollToMonth","handleSelectToday","today","onSelect","todayInNativeFormat","toNativeFormat","state","getInitialDate","value","minDate","maxDate","componentDidUpdate","prevProps","render","theme","renderMain","pickerRoot","root","e","preventDefault","c","onPick","isHoliday","enableTodayLink","renderTodayLink","order","separator","setComponents","getTodayComponents","margin","pickerTodayWrapper","todayWrapper","toString","withPad","withSeparator","Component","__KONTUR_REACT_UI__"],"mappings":"uGAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,YAAP,MAAyB,cAAzB;;AAEA,SAASC,YAAT,QAA6B,6BAA7B;AACA,SAASC,kBAAT,QAAmC,mCAAnC;AACA,SAASC,QAAT,EAAsCC,SAAtC,EAAiDC,MAAjD,QAA+D,yBAA/D;AACA,SAASC,MAAT,QAAuB,6BAAvB;;;AAGA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,WAAT,QAA4B,gCAA5B;AACA,SAASC,MAAT,QAAuB,WAAvB;AACA,SAASC,mBAAT,QAAoC,uDAApC;;AAEA,SAASC,MAAT,QAAuB,iBAAvB;AACA,SAA2BC,sBAA3B,QAAyD,UAAzD;AACA,SAASC,kBAAT,QAAmC,cAAnC;;;;;;;;;;;;;;;;;AAiBA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,GAAM;AACjC,MAAMC,CAAC,GAAG,IAAIC,IAAJ,EAAV;AACA,SAAO;AACLC,IAAAA,IAAI,EAAEF,CAAC,CAACG,OAAF,EADD;AAELC,IAAAA,KAAK,EAAEJ,CAAC,CAACK,QAAF,EAFF;AAGLC,IAAAA,IAAI,EAAEN,CAAC,CAACO,WAAF,EAHD,EAAP;;AAKD,CAPD;;;AAUA,WAAaC,MAAb,WADCjB,MAAM,CAAC,YAAD,EAAeM,sBAAf,CACP;;;;;;;AAOE,kBAAYY,KAAZ,EAA0B;AACxB,wCAAMA,KAAN,UADwB,MAHlBC,QAGkB,GAHU,IAGV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDlBC,IAAAA,aAnDkB,GAmDF,UAACP,KAAD,EAAgBE,IAAhB,EAAiC;AACvD,UAAI,MAAKI,QAAT,EAAmB;AACjB,cAAKA,QAAL,CAAcC,aAAd,CAA4BP,KAA5B,EAAmCE,IAAnC;AACD;AACF,KAvDyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwFlBM,IAAAA,iBAxFkB,GAwFE,UAACC,KAAD,UAAyB,YAAM;AACzD,YAAI,MAAKJ,KAAL,CAAWK,QAAf,EAAyB;AACvB,cAAMC,mBAAmB,GAAGF,KAAK,CAACG,cAAN,EAA5B;AACA,cAAID,mBAAJ,EAAyB;AACvB,kBAAKN,KAAL,CAAWK,QAAX,CAAoBC,mBAApB;AACD;AACF;;AAED,YAAI,MAAKL,QAAT,EAAmB;AACjB,kCAAwB,MAAKO,KAAL,CAAWJ,KAAnC,CAAQT,KAAR,qBAAQA,KAAR,CAAeE,IAAf,qBAAeA,IAAf;AACA,gBAAKI,QAAL,CAAcC,aAAd,CAA4BP,KAA5B,EAAmCE,IAAnC;AACD;AACF,OAZ2B,EAxFF;;AAsGlBY,IAAAA,cAtGkB,GAsGD,UAACL,KAAD,EAA8B;AACrD,UAAI,MAAKJ,KAAL,CAAWU,KAAf,EAAsB;AACpB,eAAO,MAAKV,KAAL,CAAWU,KAAlB;AACD;;AAED,UAAI,MAAKV,KAAL,CAAWW,OAAX,IAAsB9B,MAAM,CAACuB,KAAD,EAAQ,MAAKJ,KAAL,CAAWW,OAAnB,CAAhC,EAA6D;AAC3D,eAAO,MAAKX,KAAL,CAAWW,OAAlB;AACD;;AAED,UAAI,MAAKX,KAAL,CAAWY,OAAX,IAAsBhC,SAAS,CAACwB,KAAD,EAAQ,MAAKJ,KAAL,CAAWY,OAAnB,CAAnC,EAAgE;AAC9D,eAAO,MAAKZ,KAAL,CAAWY,OAAlB;AACD;;AAED,aAAOR,KAAP;AACD,KApHyB,CAExB,IAAMA,MAAK,GAAGd,oBAAoB,EAAlC,CACA,MAAKkB,KAAL,GAAa,EACXf,IAAI,EAAE,MAAKgB,cAAL,CAAoBL,MAApB,CADK,EAEXA,KAAK,EAALA,MAFW,EAAb,CAHwB,aAOzB,CAdH,qCAgBSS,kBAhBT,GAgBE,4BAA0BC,SAA1B,EAA4C,CAC1C,IAAQJ,KAAR,GAAkB,KAAKV,KAAvB,CAAQU,KAAR,CACA,IAAIA,KAAK,IAAI,CAAClC,YAAY,CAACkC,KAAD,EAAQI,SAAS,CAACJ,KAAlB,CAA1B,EAAoD,CAClD,KAAKR,aAAL,CAAmBQ,KAAK,CAACf,KAAzB,EAAgCe,KAAK,CAACb,IAAtC,EACD,CACF,CArBH,QAuBSkB,MAvBT,GAuBE,kBAAgB,mBACd,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACC,UAAL,EAAP,CACD,CAJH,CADF,CAQD,CAhCH,QAkCUA,UAlCV,GAkCE,sBAAqB,mBACnB,IAAQxB,IAAR,GAAiB,KAAKe,KAAtB,CAAQf,IAAR,CAEA,oBACE,6BACE,YAAUJ,kBAAkB,CAAC6B,UAD/B,EAEE,SAAS,EAAE/B,MAAM,CAACgC,IAAP,CAAY,KAAKH,KAAjB,CAFb,EAGE,WAAW,EAAE,qBAACI,CAAD,UAAOA,CAAC,CAACC,cAAF,EAAP,EAHf,iBAKE,oBAAC,QAAD,IACE,GAAG,EAAE,aAACC,CAAD,UAAQ,MAAI,CAACrB,QAAL,GAAgBqB,CAAxB,EADP,EAEE,KAAK,EAAE,KAAKtB,KAAL,CAAWU,KAFpB,EAGE,YAAY,EAAEjB,IAAI,CAACE,KAHrB,EAIE,WAAW,EAAEF,IAAI,CAACI,IAJpB,EAKE,QAAQ,EAAE,KAAKG,KAAL,CAAWuB,MALvB,EAME,OAAO,EAAE,KAAKvB,KAAL,CAAWW,OANtB,EAOE,OAAO,EAAE,KAAKX,KAAL,CAAWY,OAPtB,EAQE,SAAS,EAAE,KAAKZ,KAAL,CAAWwB,SARxB,GALF,EAeG,KAAKxB,KAAL,CAAWyB,eAAX,IAA8B,KAAKC,eAAL,EAfjC,EAeyD,GAfzD,CADF,CAmBD,CAxDH,QAgEUA,eAhEV,GAgEE,2BAA0B,CACxB,mBAA6B,KAAK5C,MAAlC,CAAQ6C,KAAR,gBAAQA,KAAR,CAAeC,SAAf,gBAAeA,SAAf,CACA,IAAMxB,KAAK,GAAG,IAAI3B,YAAJ,CAAiB,EAAEkD,KAAK,EAALA,KAAF,EAASC,SAAS,EAATA,SAAT,EAAjB,EAAuCC,aAAvC,CAAqDnD,kBAAkB,CAACoD,kBAAnB,EAArD,CAAd,CAEA,IAAI9C,WAAW,CAAC,KAAKgC,KAAN,CAAf,EAA6B,CAC3B,oBACE,6BAAK,KAAK,EAAE,EAAEe,MAAM,EAAE,CAAV,EAAZ,iBACE,oBAAC,MAAD,IACE,YAAU1C,kBAAkB,CAAC2C,kBAD/B,EAEE,KAAK,EAAC,MAFR,EAGE,OAAO,EAAE,KAAK7B,iBAAL,CAAuBC,KAAvB,CAHX,EAIE,IAAI,eAAE,oBAAC,mBAAD,OAJR,IAMG,KAAKtB,MAAL,CAAYsB,KANf,CADF,CADF,CAYD,CAED,oBACE,gCACE,YAAUf,kBAAkB,CAAC2C,kBAD/B,EAEE,SAAS,EAAE7C,MAAM,CAAC8C,YAAP,CAAoB,KAAKjB,KAAzB,CAFb,EAGE,OAAO,EAAE,KAAKb,iBAAL,CAAuBC,KAAvB,CAHX,EAIE,QAAQ,EAAE,CAAC,CAJb,IAMM,KAAKtB,MAAL,CAAYsB,KANlB,SAM2BA,KAAK,CAAC8B,QAAN,CAAe,EAAEC,OAAO,EAAE,IAAX,EAAiBC,aAAa,EAAE,IAAhC,EAAf,CAN3B,CADF,CAUD,CA7FH,iBAA4B7D,KAAK,CAAC8D,SAAlC,WACgBC,mBADhB,GACsC,QADtC","sourcesContent":["import React from 'react';\nimport shallowEqual from 'shallowequal';\n\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { Calendar, CalendarDateShape, isGreater, isLess } from '../../internal/Calendar';\nimport { locale } from '../../lib/locale/decorators';\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { Button } from '../Button';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\n\nimport { styles } from './Picker.styles';\nimport { DatePickerLocale, DatePickerLocaleHelper } from './locale';\nimport { DatePickerDataTids } from './DatePicker';\n\ninterface Props {\n maxDate?: CalendarDateShape;\n minDate?: CalendarDateShape;\n value: Nullable<CalendarDateShape>;\n onPick: (date: CalendarDateShape) => void;\n onSelect?: (date: CalendarDateShape) => void;\n enableTodayLink?: boolean;\n isHoliday?: (day: CalendarDateShape & { isWeekend: boolean }) => boolean;\n}\n\ninterface State {\n date: CalendarDateShape;\n today: CalendarDateShape;\n}\n\nconst getTodayCalendarDate = () => {\n const d = new Date();\n return {\n date: d.getDate(),\n month: d.getMonth(),\n year: d.getFullYear(),\n };\n};\n\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class Picker extends React.Component<Props, State> {\n public static __KONTUR_REACT_UI__ = 'Picker';\n\n private theme!: Theme;\n private calendar: Calendar | null = null;\n private readonly locale!: DatePickerLocale;\n\n constructor(props: Props) {\n super(props);\n const today = getTodayCalendarDate();\n this.state = {\n date: this.getInitialDate(today),\n today,\n };\n }\n\n public componentDidUpdate(prevProps: Props) {\n const { value } = this.props;\n if (value && !shallowEqual(value, prevProps.value)) {\n this.scrollToMonth(value.month, value.year);\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 private renderMain() {\n const { date } = this.state;\n\n return (\n <div\n data-tid={DatePickerDataTids.pickerRoot}\n className={styles.root(this.theme)}\n onMouseDown={(e) => e.preventDefault()}\n >\n <Calendar\n ref={(c) => (this.calendar = c)}\n value={this.props.value}\n initialMonth={date.month}\n initialYear={date.year}\n onSelect={this.props.onPick}\n minDate={this.props.minDate}\n maxDate={this.props.maxDate}\n isHoliday={this.props.isHoliday}\n />\n {this.props.enableTodayLink && this.renderTodayLink()}{' '}\n </div>\n );\n }\n\n private scrollToMonth = (month: number, year: number) => {\n if (this.calendar) {\n this.calendar.scrollToMonth(month, year);\n }\n };\n\n private renderTodayLink() {\n const { order, separator } = this.locale;\n const today = new InternalDate({ order, separator }).setComponents(InternalDateGetter.getTodayComponents());\n\n if (isTheme2022(this.theme)) {\n return (\n <div style={{ margin: 8 }}>\n <Button\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n width=\"100%\"\n onClick={this.handleSelectToday(today)}\n icon={<ArrowAUpIcon16Light />}\n >\n {this.locale.today}\n </Button>\n </div>\n );\n }\n\n return (\n <button\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n className={styles.todayWrapper(this.theme)}\n onClick={this.handleSelectToday(today)}\n tabIndex={-1}\n >\n {`${this.locale.today} ${today.toString({ withPad: true, withSeparator: true })}`}\n </button>\n );\n }\n\n private handleSelectToday = (today: InternalDate) => () => {\n if (this.props.onSelect) {\n const todayInNativeFormat = today.toNativeFormat();\n if (todayInNativeFormat) {\n this.props.onSelect(todayInNativeFormat);\n }\n }\n\n if (this.calendar) {\n const { month, year } = this.state.today;\n this.calendar.scrollToMonth(month, year);\n }\n };\n\n private getInitialDate = (today: CalendarDateShape) => {\n if (this.props.value) {\n return this.props.value;\n }\n\n if (this.props.minDate && isLess(today, this.props.minDate)) {\n return this.props.minDate;\n }\n\n if (this.props.maxDate && isGreater(today, this.props.maxDate)) {\n return this.props.maxDate;\n }\n\n return today;\n };\n}\n"]}
1
+ {"version":3,"sources":["Picker.tsx"],"names":["React","warning","InternalDateTransformer","ThemeFactory","cx","InternalDateGetter","InternalDate","locale","Calendar","ThemeContext","getTodayDate","isTheme2022","Button","ArrowAUpIcon16Light","styles","DatePickerDataTids","DatePickerLocaleHelper","Picker","props","calendar","isHoliday","day","isWeekend","dateShape","parseValue","getComponentsLikeNumber","onValueChange","date","onPick","getDateFromShape","undefined","dateToInternalString","handleSelectToday","today","onSelect","todayInNativeFormat","toNativeFormat","state","month","year","scrollToMonth","render","theme","create","calendarBottomSeparatorBorder","renderMain","pickerRoot","calendarWrapper","e","preventDefault","c","maxDate","minDate","value","enableTodayLink","renderTodayLink","order","separator","setComponents","getTodayComponents","toString","withPad","withSeparator","margin","pickerTodayWrapper","todayLinkWrapper","Component","__KONTUR_REACT_UI__"],"mappings":"iKAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,OAAP,MAAoB,SAApB;;AAEA,SAASC,uBAAT,QAAwC,wCAAxC;AACA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,kBAAT,QAAmC,mCAAnC;AACA,SAASC,YAAT,QAA6B,6BAA7B;AACA,SAASC,MAAT,QAAuB,6BAAvB;AACA,SAASC,QAAT,QAAyB,aAAzB;;;AAGA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,YAAT,QAA6B,2BAA7B;AACA,SAASC,WAAT,QAA4B,gCAA5B;AACA,SAASC,MAAT,QAAuB,WAAvB;AACA,SAASC,mBAAT,QAAoC,uDAApC;;AAEA,SAASC,MAAT,QAAuB,qBAAvB;AACA,SAASC,kBAAT,QAAmC,cAAnC;AACA,SAA2BC,sBAA3B,QAAyD,UAAzD;;;;;;;;;;;;;;;;;AAiBA,WAAaC,MAAb,WADCV,MAAM,CAAC,YAAD,EAAeS,sBAAf,CACP;;;;;;;AAOE,kBAAYE,KAAZ,EAAgC;AAC9B,wCAAMA,KAAN,UAD8B,MAHxBC,QAGwB,GAHI,IAGJ;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BxBC,IAAAA,SA3BwB,GA2BZ,UAACC,GAAD,EAAcC,SAAd,EAAqC;AACvD,UAAMC,SAAS,GAAG,IAAIjB,YAAJ,GAAmBkB,UAAnB,CAA8BH,GAA9B,EAAmCI,uBAAnC,EAAlB;;AAEA,aAAO,CAAC,EAAC,MAAKP,KAAL,CAAWE,SAAZ,YAAC,MAAKF,KAAL,CAAWE,SAAX,cAA4BG,SAA5B,IAAuCD,SAAS,EAATA,SAAvC,IAAD,CAAR;AACD,KA/B+B;;AAiCxBI,IAAAA,aAjCwB,GAiCR,UAACC,IAAD,EAAkB;AACxC,UAAMJ,SAAS,GAAG,IAAIjB,YAAJ,GAAmBkB,UAAnB,CAA8BG,IAA9B,EAAoCF,uBAApC,EAAlB;;AAEA,aAAO,MAAKP,KAAL,CAAWU,MAAX,CAAkBL,SAAlB,CAAP;AACD,KArC+B;;;;;;;;;;;;;;;;;;;;;;AA2DxBM,IAAAA,gBA3DwB,GA2DL,UAACN,SAAD,EAAqD;AAC9E,UAAI,CAACA,SAAL,EAAgB;AACd,eAAOO,SAAP;AACD;;AAED,aAAO5B,uBAAuB,CAAC6B,oBAAxB,CAA6CR,SAA7C,CAAP;AACD,KAjE+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsGxBS,IAAAA,iBAtGwB,GAsGJ,UAACC,KAAD,UAAmB,YAAM;AACnD,YAAI,MAAKf,KAAL,CAAWgB,QAAf,EAAyB;AACvB,cAAMC,mBAAmB,GAAG,IAAI7B,YAAJ,GAAmBkB,UAAnB,CAA8BS,KAA9B,EAAqCG,cAArC,EAA5B;AACA,gBAAKlB,KAAL,CAAWgB,QAAX,CAAoBC,mBAApB;AACD;;AAED,YAAI,MAAKhB,QAAT,EAAmB;AACjB,kCAAwB,MAAKkB,KAAL,CAAWJ,KAAnC,CAAQK,KAAR,qBAAQA,KAAR,CAAeC,IAAf,qBAAeA,IAAf;AACA,gBAAKpB,QAAL,CAAcqB,aAAd,CAA4BF,KAA5B,EAAmCC,IAAnC;AACD;AACF,OAV2B,EAtGI,CAE9B,MAAKF,KAAL,GAAa,EACXJ,KAAK,EAAEvB,YAAY,EADR,EAAb,CAGAT,OAAO,CACL,KADK,oLAAP,CAL8B,aAS/B,CAhBH,qCAkBSwC,MAlBT,GAkBE,kBAAgB,mBACd,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CAEA,oBACE,oBAAC,YAAD,CAAc,QAAd,IAAuB,KAAK,EAAEvC,YAAY,CAACwC,MAAb,CAAoB,EAAEC,6BAA6B,EAAE,MAAjC,EAApB,EAA+DF,KAA/D,CAA9B,IACG,MAAI,CAACG,UAAL,EADH,CADF,CAKD,CATH,CADF,CAaD,CAhCH,QA8CUA,UA9CV,GA8CE,sBAAqB,mBACnB,oBACE,6BACE,YAAU9B,kBAAkB,CAAC+B,UAD/B,EAEE,SAAS,EAAEhC,MAAM,CAACiC,eAAP,CAAuB,KAAKL,KAA5B,CAFb,EAGE,WAAW,EAAE,qBAACM,CAAD,UAAOA,CAAC,CAACC,cAAF,EAAP,EAHf,iBAKE,oBAAC,QAAD,IACE,GAAG,EAAE,aAACC,CAAD,UAAQ,MAAI,CAAC/B,QAAL,GAAgB+B,CAAxB,EADP,EAEE,OAAO,EAAE,KAAKrB,gBAAL,CAAsB,KAAKX,KAAL,CAAWiC,OAAjC,CAFX,EAGE,OAAO,EAAE,KAAKtB,gBAAL,CAAsB,KAAKX,KAAL,CAAWkC,OAAjC,CAHX,EAIE,aAAa,EAAE,KAAK1B,aAJtB,EAKE,SAAS,EAAE,KAAKN,SALlB,EAME,KAAK,EAAE,KAAKS,gBAAL,CAAsB,KAAKX,KAAL,CAAWmC,KAAjC,CANT,GALF,EAaG,KAAKnC,KAAL,CAAWoC,eAAX,IAA8B,KAAKC,eAAL,EAbjC,EAayD,GAbzD,CADF,CAiBD,CAhEH,QA0EUA,eA1EV,GA0EE,2BAA0B,SACxB,mBAA6B,KAAKhD,MAAlC,CAAQiD,KAAR,gBAAQA,KAAR,CAAeC,SAAf,gBAAeA,SAAf,CACA,IAAMxB,KAAK,GAAG,IAAI3B,YAAJ,CAAiB,EAAEkD,KAAK,EAALA,KAAF,EAASC,SAAS,EAATA,SAAT,EAAjB,EACXC,aADW,CACGrD,kBAAkB,CAACsD,kBAAnB,EADH,EAEXC,QAFW,CAEF,EAAEC,OAAO,EAAE,IAAX,EAAiBC,aAAa,EAAE,IAAhC,EAFE,CAAd,CAIA,IAAInD,WAAW,CAAC,KAAK+B,KAAN,CAAf,EAA6B,CAC3B,oBACE,6BAAK,KAAK,EAAE,EAAEqB,MAAM,EAAE,CAAV,EAAZ,iBACE,oBAAC,MAAD,IACE,YAAUhD,kBAAkB,CAACiD,kBAD/B,EAEE,KAAK,EAAC,MAFR,EAGE,OAAO,EAAE,KAAKhC,iBAAL,CAAuBC,KAAvB,CAHX,EAIE,IAAI,eAAE,oBAAC,mBAAD,OAJR,IAMG,KAAK1B,MAAL,CAAY0B,KANf,CADF,CADF,CAYD,CAED,oBACE,gCACE,YAAUlB,kBAAkB,CAACiD,kBAD/B,EAEE,SAAS,EAAE5D,EAAE,gBACVU,MAAM,CAACmD,gBAAP,CAAwB,KAAKvB,KAA7B,CADU,IAC4B,IAD5B,OAFf,EAKE,OAAO,EAAE,KAAKV,iBAAL,CAAuBC,KAAvB,CALX,EAME,QAAQ,EAAE,CAAC,CANb,IAQM,KAAK1B,MAAL,CAAY0B,KARlB,SAQ2BA,KAR3B,CADF,CAYD,CA3GH,iBAA4BjC,KAAK,CAACkE,SAAlC,WACgBC,mBADhB,GACsC,QADtC","sourcesContent":["import React from 'react';\nimport warning from 'warning';\n\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Nullable } from '../../typings/utility-types';\nimport { cx } from '../../lib/theming/Emotion';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { locale } from '../../lib/locale/decorators';\nimport { Calendar } from '../Calendar';\nimport { CalendarDateShape } from '../Calendar/CalendarDateShape';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { getTodayDate } from '../Calendar/CalendarUtils';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { Button } from '../Button';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\n\nimport { styles } from './DatePicker.styles';\nimport { DatePickerDataTids } from './DatePicker';\nimport { DatePickerLocale, DatePickerLocaleHelper } from './locale';\n\ninterface PickerProps {\n maxDate?: CalendarDateShape;\n minDate?: CalendarDateShape;\n value: Nullable<CalendarDateShape>;\n onPick: (date: CalendarDateShape) => void;\n onSelect?: (date: CalendarDateShape) => void;\n enableTodayLink?: boolean;\n isHoliday?: (day: CalendarDateShape & { isWeekend: boolean }) => boolean;\n}\n\ninterface PickerState {\n today: CalendarDateShape;\n}\n\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class Picker extends React.Component<PickerProps, PickerState> {\n public static __KONTUR_REACT_UI__ = 'Picker';\n\n private theme!: Theme;\n private calendar: Calendar | null = null;\n private readonly locale!: DatePickerLocale;\n\n constructor(props: PickerProps) {\n super(props);\n this.state = {\n today: getTodayDate(),\n };\n warning(\n false,\n `<Picker /> has been deprecated. It will be removed in the next major version of the library. If you wish to have a similar component make use of public component <Calendar />.`,\n );\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ calendarBottomSeparatorBorder: 'none' }, theme)}>\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private isHoliday = (day: string, isWeekend: boolean) => {\n const dateShape = new InternalDate().parseValue(day).getComponentsLikeNumber();\n\n return !!this.props.isHoliday?.({ ...dateShape, isWeekend });\n };\n\n private onValueChange = (date: string) => {\n const dateShape = new InternalDate().parseValue(date).getComponentsLikeNumber();\n\n return this.props.onPick(dateShape);\n };\n\n private renderMain() {\n return (\n <div\n data-tid={DatePickerDataTids.pickerRoot}\n className={styles.calendarWrapper(this.theme)}\n onMouseDown={(e) => e.preventDefault()}\n >\n <Calendar\n ref={(c) => (this.calendar = c)}\n maxDate={this.getDateFromShape(this.props.maxDate)}\n minDate={this.getDateFromShape(this.props.minDate)}\n onValueChange={this.onValueChange}\n isHoliday={this.isHoliday}\n value={this.getDateFromShape(this.props.value)}\n />\n {this.props.enableTodayLink && this.renderTodayLink()}{' '}\n </div>\n );\n }\n\n private getDateFromShape = (dateShape: CalendarDateShape | undefined | null) => {\n if (!dateShape) {\n return undefined;\n }\n\n return InternalDateTransformer.dateToInternalString(dateShape);\n };\n\n private renderTodayLink() {\n const { order, separator } = this.locale;\n const today = new InternalDate({ order, separator })\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n if (isTheme2022(this.theme)) {\n return (\n <div style={{ margin: 8 }}>\n <Button\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n width=\"100%\"\n onClick={this.handleSelectToday(today)}\n icon={<ArrowAUpIcon16Light />}\n >\n {this.locale.today}\n </Button>\n </div>\n );\n }\n\n return (\n <button\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n className={cx({\n [styles.todayLinkWrapper(this.theme)]: true,\n })}\n onClick={this.handleSelectToday(today)}\n tabIndex={-1}\n >\n {`${this.locale.today} ${today}`}\n </button>\n );\n }\n\n private handleSelectToday = (today: string) => () => {\n if (this.props.onSelect) {\n const todayInNativeFormat = new InternalDate().parseValue(today).toNativeFormat() as CalendarDateShape;\n this.props.onSelect(todayInNativeFormat);\n }\n\n if (this.calendar) {\n const { month, year } = this.state.today;\n this.calendar.scrollToMonth(month, year);\n }\n };\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { CalendarDateShape } from '../../internal/Calendar';
3
2
  import { Nullable } from '../../typings/utility-types';
4
- interface Props {
3
+ import { CalendarDateShape } from '../Calendar/CalendarDateShape';
4
+ interface PickerProps {
5
5
  maxDate?: CalendarDateShape;
6
6
  minDate?: CalendarDateShape;
7
7
  value: Nullable<CalendarDateShape>;
@@ -12,22 +12,21 @@ interface Props {
12
12
  isWeekend: boolean;
13
13
  }) => boolean;
14
14
  }
15
- interface State {
16
- date: CalendarDateShape;
15
+ interface PickerState {
17
16
  today: CalendarDateShape;
18
17
  }
19
- export declare class Picker extends React.Component<Props, State> {
18
+ export declare class Picker extends React.Component<PickerProps, PickerState> {
20
19
  static __KONTUR_REACT_UI__: string;
21
20
  private theme;
22
21
  private calendar;
23
22
  private readonly locale;
24
- constructor(props: Props);
25
- componentDidUpdate(prevProps: Props): void;
23
+ constructor(props: PickerProps);
26
24
  render(): JSX.Element;
25
+ private isHoliday;
26
+ private onValueChange;
27
27
  private renderMain;
28
- private scrollToMonth;
28
+ private getDateFromShape;
29
29
  private renderTodayLink;
30
30
  private handleSelectToday;
31
- private getInitialDate;
32
31
  }
33
32
  export {};
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { internalDateLocale } from "../../../../../lib/date/localeSets";
3
3
  import { LangCodes } from "../../../../../lib/locale";
4
+ import { componentsLocales as CalendarLocales } from "../../../../Calendar/locale/locales/en";
4
5
  export var componentsLocales = _extends({
5
- today: 'Today',
6
- months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
7
- }, internalDateLocale[LangCodes.en_GB]);
6
+ today: 'Today'
7
+ }, CalendarLocales, internalDateLocale[LangCodes.en_GB]);
@@ -1 +1 @@
1
- {"version":3,"sources":["en.ts"],"names":["internalDateLocale","LangCodes","componentsLocales","today","months","en_GB"],"mappings":"0DAAA,SAASA,kBAAT,QAAmC,iCAAnC;AACA,SAASC,SAAT,QAA0B,wBAA1B;;;AAGA,OAAO,IAAMC,iBAAmC;AAC9CC,EAAAA,KAAK,EAAE,OADuC;AAE9CC,EAAAA,MAAM,EAAE;AACN,WADM;AAEN,YAFM;AAGN,SAHM;AAIN,SAJM;AAKN,OALM;AAMN,QANM;AAON,QAPM;AAQN,UARM;AASN,aATM;AAUN,WAVM;AAWN,YAXM;AAYN,YAZM,CAFsC;;AAgB3CJ,kBAAkB,CAACC,SAAS,CAACI,KAAX,CAhByB,CAAzC","sourcesContent":["import { internalDateLocale } from '../../../../lib/date/localeSets';\nimport { LangCodes } from '../../../../lib/locale';\nimport { DatePickerLocale } from '../types';\n\nexport const componentsLocales: DatePickerLocale = {\n today: 'Today',\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n ...internalDateLocale[LangCodes.en_GB],\n};\n"]}
1
+ {"version":3,"sources":["en.ts"],"names":["internalDateLocale","LangCodes","componentsLocales","CalendarLocales","today","en_GB"],"mappings":"0DAAA,SAASA,kBAAT,QAAmC,iCAAnC;AACA,SAASC,SAAT,QAA0B,wBAA1B;;AAEA,SAASC,iBAAiB,IAAIC,eAA9B,QAAqD,qCAArD;;AAEA,OAAO,IAAMD,iBAAmC;AAC9CE,EAAAA,KAAK,EAAE,OADuC;AAE3CD,eAF2C;AAG3CH,kBAAkB,CAACC,SAAS,CAACI,KAAX,CAHyB,CAAzC","sourcesContent":["import { internalDateLocale } from '../../../../lib/date/localeSets';\nimport { LangCodes } from '../../../../lib/locale';\nimport { DatePickerLocale } from '../types';\nimport { componentsLocales as CalendarLocales } from '../../../Calendar/locale/locales/en';\n\nexport const componentsLocales: DatePickerLocale = {\n today: 'Today',\n ...CalendarLocales,\n ...internalDateLocale[LangCodes.en_GB],\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { internalDateLocale } from "../../../../../lib/date/localeSets";
3
3
  import { LangCodes } from "../../../../../lib/locale";
4
+ import { componentsLocales as CalendarLocales } from "../../../../Calendar/locale/locales/ru";
4
5
  export var componentsLocales = _extends({
5
- today: 'Сегодня',
6
- months: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь']
7
- }, internalDateLocale[LangCodes.ru_RU]);
6
+ today: 'Сегодня'
7
+ }, CalendarLocales, internalDateLocale[LangCodes.ru_RU]);
@@ -1 +1 @@
1
- {"version":3,"sources":["ru.ts"],"names":["internalDateLocale","LangCodes","componentsLocales","today","months","ru_RU"],"mappings":"0DAAA,SAASA,kBAAT,QAAmC,iCAAnC;AACA,SAASC,SAAT,QAA0B,wBAA1B;;;AAGA,OAAO,IAAMC,iBAAmC;AAC9CC,EAAAA,KAAK,EAAE,SADuC;AAE9CC,EAAAA,MAAM,EAAE;AACN,UADM;AAEN,WAFM;AAGN,QAHM;AAIN,UAJM;AAKN,OALM;AAMN,QANM;AAON,QAPM;AAQN,UARM;AASN,YATM;AAUN,WAVM;AAWN,UAXM;AAYN,WAZM,CAFsC;;AAgB3CJ,kBAAkB,CAACC,SAAS,CAACI,KAAX,CAhByB,CAAzC","sourcesContent":["import { internalDateLocale } from '../../../../lib/date/localeSets';\nimport { LangCodes } from '../../../../lib/locale';\nimport { DatePickerLocale } from '../types';\n\nexport const componentsLocales: DatePickerLocale = {\n today: 'Сегодня',\n months: [\n 'Январь',\n 'Февраль',\n 'Март',\n 'Апрель',\n 'Май',\n 'Июнь',\n 'Июль',\n 'Август',\n 'Сентябрь',\n 'Октябрь',\n 'Ноябрь',\n 'Декабрь',\n ],\n ...internalDateLocale[LangCodes.ru_RU],\n};\n"]}
1
+ {"version":3,"sources":["ru.ts"],"names":["internalDateLocale","LangCodes","componentsLocales","CalendarLocales","today","ru_RU"],"mappings":"0DAAA,SAASA,kBAAT,QAAmC,iCAAnC;AACA,SAASC,SAAT,QAA0B,wBAA1B;;AAEA,SAASC,iBAAiB,IAAIC,eAA9B,QAAqD,qCAArD;;AAEA,OAAO,IAAMD,iBAAmC;AAC9CE,EAAAA,KAAK,EAAE,SADuC;AAE3CD,eAF2C;AAG3CH,kBAAkB,CAACC,SAAS,CAACI,KAAX,CAHyB,CAAzC","sourcesContent":["import { internalDateLocale } from '../../../../lib/date/localeSets';\nimport { LangCodes } from '../../../../lib/locale';\nimport { DatePickerLocale } from '../types';\nimport { componentsLocales as CalendarLocales } from '../../../Calendar/locale/locales/ru';\n\nexport const componentsLocales: DatePickerLocale = {\n today: 'Сегодня',\n ...CalendarLocales,\n ...internalDateLocale[LangCodes.ru_RU],\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  import { InternalDateLocaleSet } from '../../../lib/date/types';
2
- export interface DatePickerLocale extends InternalDateLocaleSet {
2
+ import { CalendarLocale } from '../../Calendar/locale/types';
3
+ export interface DatePickerLocale extends CalendarLocale, InternalDateLocaleSet {
3
4
  today: string;
4
- months: string[];
5
5
  }
@@ -83,7 +83,8 @@ var DropdownMenu = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_
83
83
  footer: this.props.footer,
84
84
  width: this.props.width,
85
85
  onClose: this.props.onClose,
86
- onOpen: this.props.onOpen
86
+ onOpen: this.props.onOpen,
87
+ popupMenuId: this.props.popupMenuId
87
88
  }, this.props.children));
88
89
  };
89
90
 
@@ -1 +1 @@
1
- {"version":3,"sources":["DropdownMenu.tsx"],"names":["React","ThemeContext","PopupMenu","isProductionEnv","isTestEnv","CommonWrapper","rootNode","createPropsGetter","getDropdownMenuTheme","DropdownMenu","props","getProps","defaultProps","popupMenu","open","close","refPopupMenu","ref","caption","Error","render","theme","renderMain","positions","disableAnimations","setRootNode","menuMaxHeight","menuWidth","header","footer","width","onClose","onOpen","children","Component","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Nullable } from '../../typings/utility-types';\nimport { PopupMenu, PopupMenuProps } from '../../internal/PopupMenu';\nimport { isProductionEnv, isTestEnv } from '../../lib/currentEnvironment';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { getDropdownMenuTheme } from './getDropdownMenuTheme';\n\nexport interface DropdownMenuProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose'> {\n /** Максимальная высота меню */\n menuMaxHeight?: React.CSSProperties['maxWidth'];\n /** Ширина меню */\n menuWidth?: React.CSSProperties['width'];\n /** Ширина caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо `caption`,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: PopupMenuProps['caption'];\n\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 /**\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 * @default ['bottom left', 'bottom right', 'top left', 'top right']\n */\n positions?: PopupPositionsType[];\n\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n}\n\ntype DefaultProps = Required<Pick<DropdownMenuProps, 'disableAnimations' | 'positions'>>;\n\n/**\n * Меню, раскрывающееся по клику на переданный в `caption` элемент\n */\n@rootNode\nexport class DropdownMenu extends React.Component<DropdownMenuProps> {\n public static __KONTUR_REACT_UI__ = 'DropdownMenu';\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n };\n\n private getProps = createPropsGetter(DropdownMenu.defaultProps);\n\n private popupMenu: Nullable<PopupMenu> = null;\n private setRootNode!: TSetRootNode;\n\n constructor(props: DropdownMenuProps) {\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 <ThemeContext.Provider value={getDropdownMenuTheme(theme)}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n if (!this.props.caption) {\n return null;\n }\n const { positions, disableAnimations } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n ref={this.refPopupMenu}\n caption={this.props.caption}\n menuMaxHeight={this.props.menuMaxHeight}\n menuWidth={this.props.menuWidth}\n popupHasPin={false}\n positions={positions}\n disableAnimations={disableAnimations}\n header={this.props.header}\n footer={this.props.footer}\n width={this.props.width}\n onClose={this.props.onClose}\n onOpen={this.props.onOpen}\n >\n {this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n public open = (): void => {\n if (this.popupMenu) {\n this.popupMenu.open();\n }\n };\n\n public close = (): void => {\n if (this.popupMenu) {\n this.popupMenu.close();\n }\n };\n\n private refPopupMenu = (ref: Nullable<PopupMenu>) => (this.popupMenu = ref);\n}\n"]}
1
+ {"version":3,"sources":["DropdownMenu.tsx"],"names":["React","ThemeContext","PopupMenu","isProductionEnv","isTestEnv","CommonWrapper","rootNode","createPropsGetter","getDropdownMenuTheme","DropdownMenu","props","getProps","defaultProps","popupMenu","open","close","refPopupMenu","ref","caption","Error","render","theme","renderMain","positions","disableAnimations","setRootNode","menuMaxHeight","menuWidth","header","footer","width","onClose","onOpen","popupMenuId","children","Component","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Nullable } from '../../typings/utility-types';\nimport { PopupMenu, PopupMenuProps } from '../../internal/PopupMenu';\nimport { isProductionEnv, isTestEnv } from '../../lib/currentEnvironment';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { getDropdownMenuTheme } from './getDropdownMenuTheme';\n\nexport interface DropdownMenuProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId'> {\n /** Максимальная высота меню */\n menuMaxHeight?: React.CSSProperties['maxWidth'];\n /** Ширина меню */\n menuWidth?: React.CSSProperties['width'];\n /** Ширина caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо `caption`,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: PopupMenuProps['caption'];\n\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 /**\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 * @default ['bottom left', 'bottom right', 'top left', 'top right']\n */\n positions?: PopupPositionsType[];\n\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n}\n\ntype DefaultProps = Required<Pick<DropdownMenuProps, 'disableAnimations' | 'positions'>>;\n\n/**\n * Меню, раскрывающееся по клику на переданный в `caption` элемент\n */\n@rootNode\nexport class DropdownMenu extends React.Component<DropdownMenuProps> {\n public static __KONTUR_REACT_UI__ = 'DropdownMenu';\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n };\n\n private getProps = createPropsGetter(DropdownMenu.defaultProps);\n\n private popupMenu: Nullable<PopupMenu> = null;\n private setRootNode!: TSetRootNode;\n\n constructor(props: DropdownMenuProps) {\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 <ThemeContext.Provider value={getDropdownMenuTheme(theme)}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n if (!this.props.caption) {\n return null;\n }\n const { positions, disableAnimations } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n ref={this.refPopupMenu}\n caption={this.props.caption}\n menuMaxHeight={this.props.menuMaxHeight}\n menuWidth={this.props.menuWidth}\n popupHasPin={false}\n positions={positions}\n disableAnimations={disableAnimations}\n header={this.props.header}\n footer={this.props.footer}\n width={this.props.width}\n onClose={this.props.onClose}\n onOpen={this.props.onOpen}\n popupMenuId={this.props.popupMenuId}\n >\n {this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n public open = (): void => {\n if (this.popupMenu) {\n this.popupMenu.open();\n }\n };\n\n public close = (): void => {\n if (this.popupMenu) {\n this.popupMenu.close();\n }\n };\n\n private refPopupMenu = (ref: Nullable<PopupMenu>) => (this.popupMenu = ref);\n}\n"]}
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { PopupMenuProps } from '../../internal/PopupMenu';
3
3
  import { PopupPositionsType } from '../../internal/Popup';
4
4
  import { CommonProps } from '../../internal/CommonWrapper';
5
- export interface DropdownMenuProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose'> {
5
+ export interface DropdownMenuProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId'> {
6
6
  /** Максимальная высота меню */
7
7
  menuMaxHeight?: React.CSSProperties['maxWidth'];
8
8
  /** Ширина меню */
@@ -32,7 +32,8 @@ var stopPropagation = function stopPropagation(e) {
32
32
  export var FileUploaderDataTids = {
33
33
  root: 'FileUploader__root',
34
34
  content: 'FileUploader__content',
35
- link: 'FileUploader__link'
35
+ link: 'FileUploader__link',
36
+ input: 'FileUploader__input'
36
37
  };
37
38
 
38
39
  var defaultRenderFile = function defaultRenderFile(file, fileNode) {
@@ -313,6 +314,7 @@ var _FileUploader = /*#__PURE__*/React.forwardRef(function (props, ref) {
313
314
  }))) : /*#__PURE__*/React.createElement(React.Fragment, null, locale.orDragHere, "\xA0", /*#__PURE__*/React.createElement("div", {
314
315
  className: uploadButtonIconClassNames
315
316
  }, icon)))), /*#__PURE__*/React.createElement("input", _extends({}, inputProps, {
317
+ "data-tid": FileUploaderDataTids.input,
316
318
  ref: inputRef,
317
319
  tabIndex: disabled ? -1 : 0,
318
320
  type: "file",
@@ -1 +1 @@
1
- {"version":3,"sources":["FileUploader.tsx"],"names":["React","useCallback","useContext","useEffect","useImperativeHandle","useRef","useState","getAttachedFile","cx","useMemoObject","FileUploaderControlContext","useControlLocale","useUpload","useDrop","ThemeContext","UploadIcon","withFileUploaderControlProvider","keyListener","FileUploaderFile","FileUploaderFileList","isBrowser","CommonWrapper","FileUploaderFileValidationResult","useFileUploaderSize","isTheme2022","UploadIcon2022","globalClasses","jsStyles","stopPropagation","e","FileUploaderDataTids","root","content","link","defaultRenderFile","file","fileNode","_FileUploader","forwardRef","props","ref","theme","_isTheme2022","disabled","error","warning","multiple","width","fileUploaderWidth","hideFiles","onBlur","onFocus","onChange","request","validateBeforeUpload","onRequestSuccess","onRequestError","size","renderFile","inputProps","files","setFiles","removeFile","reset","setFileValidationResult","isMinLengthReached","locale","inputRef","fileDivRef","isAsync","isSingleMode","isLinkVisible","setIsLinkVisible","upload","tryValidateAndUpload","forEach","validationMessage","id","sizeClassName","small","sizeSmall","medium","sizeMedium","large","sizeLarge","sizeIconClass","iconSmall","iconMedium","iconLarge","contentInnerClass","contentInnerSmall","contentInnerMedium","contentInnerLarge","handleChange","newFiles","filesArray","Array","from","attachedFiles","map","length","handleDrop","event","dataTransfer","clearData","onDrop","isDraggable","labelRef","isWindowDraggable","windowRef","current","window","document","focus","isTabPressed","blur","getRootNode","rootNodeRef","focusedByTab","setFocusedByTab","handleInputChange","target","handleFocus","requestAnimationFrame","handleBlur","hovered","setHovered","uploadButtonClassNames","uploadButton","uploadButtonFocus","dragOver","canDrop","uploadButtonWrapperClassNames","windowDragOver","windowDragOver2022","uploadButtonIconClassNames","icon","iconDisabled","hasOneFile","hasOneFileForSingle","contentClassNames","contentWithFiles","linkClassNames","linkHovered","linkDisabled","iconSizes","parseInt","btnIconSizeSmall","btnIconSizeMedium","btnIconSizeLarge","choosedFile","chooseFile","String","fromCharCode","afterLinkText","afterLinkText_HasFiles","singleFile","orDragHere","fileInput","FileUploader","memo","displayName"],"mappings":"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","sourcesContent":["import React, { useCallback, useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\n\nimport { FileUploaderAttachedFile, getAttachedFile } from '../../internal/FileUploaderControl/fileUtils';\nimport { cx } from '../../lib/theming/Emotion';\nimport { InstanceWithRootNode } from '../../lib/rootNode';\nimport { useMemoObject } from '../../hooks/useMemoObject';\nimport { FileUploaderControlContext } from '../../internal/FileUploaderControl/FileUploaderControlContext';\nimport { useControlLocale } from '../../internal/FileUploaderControl/hooks/useControlLocale';\nimport { useUpload } from '../../internal/FileUploaderControl/hooks/useUpload';\nimport { useDrop } from '../../hooks/useDrop';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { UploadIcon } from '../../internal/icons/16px';\nimport { FileUploaderControlProviderProps } from '../../internal/FileUploaderControl/FileUploaderControlProvider';\nimport { withFileUploaderControlProvider } from '../../internal/FileUploaderControl/withFileUploaderControlProvider';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { FileUploaderFile } from '../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile';\nimport { FileUploaderFileList } from '../../internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList';\nimport { isBrowser } from '../../lib/client';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { FileUploaderFileValidationResult } from '../../internal/FileUploaderControl/FileUploaderFileValidationResult';\nimport { useFileUploaderSize } from '../../internal/FileUploaderControl/hooks/useFileUploaderSize';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { UploadIcon as UploadIcon2022 } from './UploadIcon';\nimport { globalClasses, jsStyles } from './FileUploader.styles';\n\nconst stopPropagation: React.ReactEventHandler = (e) => e.stopPropagation();\n\nexport type FileUploaderSize = 'small' | 'medium' | 'large';\n\ntype FileUploaderOverriddenProps = 'size';\n\ninterface _FileUploaderProps\n extends CommonProps,\n Omit<React.InputHTMLAttributes<HTMLInputElement>, FileUploaderOverriddenProps> {\n /** Состояние ошибки всего контрола */\n error?: boolean;\n /** Состояние предупреждения всего контрола */\n warning?: boolean;\n /** Свойство ширины. */\n width?: React.CSSProperties['width'];\n /**\n * Задаёт размер контрола.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: FileUploaderSize;\n /** Свойство, скрывающее отображение файлов. */\n hideFiles?: boolean;\n\n /** Функция, через которую отправляем файлы. Используется для отслеживания статуса загрузки файла. */\n request?: (file: FileUploaderAttachedFile) => Promise<void>;\n /** Срабатывает при удачной попытке отправки через request */\n onRequestSuccess?: (fileId: string) => void;\n /** Срабатывает при неудачной попытке отправки через request */\n onRequestError?: (fileId: string) => void;\n\n /**\n * Функция валидации каждого файла.\n * Срабатывает после выбора файлов и перед попыткой отправить в request.\n * Чтобы вывести валидацию ошибки, промис должен вернуть строку.\n * */\n validateBeforeUpload?: (file: FileUploaderAttachedFile) => Promise<Nullable<string>>;\n\n /**\n * Функция, позволяющая кастомизировать файлы.\n * Через нее можно вешать кастомные валидации на каждый файл.\n * */\n renderFile?: (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => React.ReactNode;\n}\n\nexport interface FileUploaderRef extends InstanceWithRootNode {\n focus: () => void;\n blur: () => void;\n /** Сбрасывает выбранные файлы */\n reset: () => void;\n}\n\nexport const FileUploaderDataTids = {\n root: 'FileUploader__root',\n content: 'FileUploader__content',\n link: 'FileUploader__link',\n} as const;\n\nconst defaultRenderFile = (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => fileNode;\n\nconst _FileUploader = React.forwardRef<FileUploaderRef, _FileUploaderProps>((props: _FileUploaderProps, ref) => {\n const theme = useContext(ThemeContext);\n const _isTheme2022 = isTheme2022(theme);\n\n const {\n disabled,\n error,\n warning,\n multiple = false,\n width = theme.fileUploaderWidth,\n hideFiles = false,\n onBlur,\n onFocus,\n onChange,\n request,\n validateBeforeUpload,\n onRequestSuccess,\n onRequestError,\n size = 'small',\n renderFile = defaultRenderFile,\n ...inputProps\n } = props;\n\n const { files, setFiles, removeFile, reset, setFileValidationResult, isMinLengthReached } =\n useContext(FileUploaderControlContext);\n\n const locale = useControlLocale();\n\n const inputRef = useRef<HTMLInputElement>(null);\n const fileDivRef = useRef<HTMLDivElement>(null);\n\n const isAsync = !!request;\n const isSingleMode = !multiple;\n\n const [isLinkVisible, setIsLinkVisible] = useState(true);\n const upload = useUpload(request, onRequestSuccess, onRequestError);\n\n const tryValidateAndUpload = useCallback(\n (files: FileUploaderAttachedFile[]) => {\n files.forEach(async (file) => {\n const validationMessage = validateBeforeUpload && (await validateBeforeUpload(file));\n\n if (!validationMessage) {\n isAsync && upload(file);\n } else {\n setFileValidationResult(file.id, FileUploaderFileValidationResult.error(validationMessage));\n }\n });\n },\n [validateBeforeUpload, isAsync, upload, setFileValidationResult],\n );\n\n const sizeClassName = useFileUploaderSize(size, {\n small: jsStyles.sizeSmall(theme),\n medium: jsStyles.sizeMedium(theme),\n large: jsStyles.sizeLarge(theme),\n });\n\n const sizeIconClass = useFileUploaderSize(size, {\n small: jsStyles.iconSmall(theme),\n medium: jsStyles.iconMedium(theme),\n large: jsStyles.iconLarge(theme),\n });\n\n const contentInnerClass = useFileUploaderSize(size, {\n small: jsStyles.contentInnerSmall(theme),\n medium: jsStyles.contentInnerMedium(theme),\n large: jsStyles.contentInnerLarge(theme),\n });\n\n /** common part **/\n const handleChange = useCallback(\n (newFiles: FileList | null) => {\n if (!newFiles) {\n return;\n }\n\n let filesArray = Array.from(newFiles);\n\n if (isSingleMode) {\n filesArray = [filesArray[0]];\n }\n\n const attachedFiles = filesArray.map(getAttachedFile);\n\n if (isSingleMode && attachedFiles.length && files.length) {\n removeFile(files[0].id);\n }\n\n if (attachedFiles.length) {\n setFiles(attachedFiles);\n tryValidateAndUpload(attachedFiles);\n }\n },\n [tryValidateAndUpload, setFiles, isSingleMode, files, removeFile],\n );\n\n const handleDrop = useCallback(\n (event) => {\n if (disabled) {\n return;\n }\n\n const { dataTransfer } = event;\n const { files } = dataTransfer;\n\n if (files?.length > 0) {\n handleChange(files);\n dataTransfer.clearData();\n }\n },\n [handleChange, disabled],\n );\n\n const { isDraggable, ref: labelRef } = useDrop<HTMLLabelElement>({ onDrop: handleDrop });\n const { isDraggable: isWindowDraggable, ref: windowRef } = useDrop<Document>();\n\n if (isBrowser) {\n windowRef.current = window.document;\n }\n\n const focus = useCallback(() => {\n keyListener.isTabPressed = true;\n inputRef.current?.focus();\n }, []);\n\n const blur = useCallback(() => {\n inputRef.current?.blur();\n }, []);\n\n useImperativeHandle(ref, () => ({ focus, blur, reset, getRootNode: () => rootNodeRef.current }), [\n ref,\n blur,\n focus,\n reset,\n ]);\n\n const [focusedByTab, setFocusedByTab] = useState(false);\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n handleChange(event.target.files);\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n if (!disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n setFocusedByTab(true);\n }\n });\n onFocus?.(e);\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedByTab(false);\n if (!disabled) {\n onBlur?.(e);\n }\n };\n\n const [hovered, setHovered] = useState(false);\n\n const uploadButtonClassNames = cx(\n jsStyles.uploadButton(theme),\n sizeClassName,\n focusedByTab && jsStyles.uploadButtonFocus(theme),\n disabled && jsStyles.disabled(theme),\n !disabled && hovered && jsStyles.hovered(theme),\n !!warning && jsStyles.warning(theme),\n !!error && jsStyles.error(theme),\n isDraggable && !disabled && jsStyles.dragOver(theme),\n );\n\n const canDrop = isWindowDraggable && !disabled;\n const uploadButtonWrapperClassNames = cx(\n !_isTheme2022 && canDrop && jsStyles.windowDragOver(theme),\n _isTheme2022 && canDrop && jsStyles.windowDragOver2022(theme),\n );\n\n const uploadButtonIconClassNames = cx(jsStyles.icon(theme), sizeIconClass, disabled && jsStyles.iconDisabled(theme));\n\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const contentClassNames = cx(jsStyles.content(), hasOneFileForSingle && jsStyles.contentWithFiles());\n\n const linkClassNames = cx(\n jsStyles.link(theme),\n !disabled && hovered && jsStyles.linkHovered(theme),\n disabled && jsStyles.linkDisabled(theme),\n );\n\n useEffect(() => {\n setIsLinkVisible(hasOneFileForSingle ? !isMinLengthReached : true);\n }, [isMinLengthReached, hasOneFileForSingle]);\n\n const rootNodeRef = useRef(null);\n\n const iconSizes: Record<FileUploaderSize, number> = {\n small: parseInt(theme.btnIconSizeSmall),\n medium: parseInt(theme.btnIconSizeMedium),\n large: parseInt(theme.btnIconSizeLarge),\n };\n const icon = _isTheme2022 ? <UploadIcon2022 size={iconSizes[size]} /> : <UploadIcon />;\n\n return (\n <CommonWrapper {...props}>\n <div\n data-tid={FileUploaderDataTids.root}\n className={jsStyles.root(theme)}\n style={useMemoObject({ width })}\n ref={rootNodeRef}\n >\n {!hideFiles && !isSingleMode && !!files.length && <FileUploaderFileList renderFile={renderFile} size={size} />}\n <div className={uploadButtonWrapperClassNames}>\n <label\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n ref={labelRef}\n className={uploadButtonClassNames}\n >\n <div\n data-tid={FileUploaderDataTids.content}\n className={cx(contentClassNames, { [contentInnerClass]: !files.length || !isSingleMode })}\n >\n {isLinkVisible && (\n <span data-tid={FileUploaderDataTids.link} className={linkClassNames}>\n {hasOneFileForSingle ? locale.choosedFile : locale.chooseFile}\n </span>\n )}\n {isLinkVisible && String.fromCharCode(0xa0) /* &nbsp; */}\n <div\n className={cx(\n globalClasses.afterLinkText,\n hasOneFileForSingle ? jsStyles.afterLinkText_HasFiles(theme) : jsStyles.afterLinkText(theme),\n )}\n >\n {hasOneFileForSingle ? (\n <div ref={fileDivRef} className={jsStyles.singleFile()}>\n {renderFile(files[0], <FileUploaderFile file={files[0]} size={size} />)}\n </div>\n ) : (\n <>\n {locale.orDragHere}&nbsp;\n <div className={uploadButtonIconClassNames}>{icon}</div>\n </>\n )}\n </div>\n </div>\n <input\n {...inputProps}\n ref={inputRef}\n tabIndex={disabled ? -1 : 0}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n className={jsStyles.fileInput()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n // для того, чтобы срабатывало событие change при выборе одного и того же файла подряд\n value={''}\n />\n </label>\n </div>\n </div>\n </CommonWrapper>\n );\n});\n\nexport interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {}\n\nexport const FileUploader = withFileUploaderControlProvider<FileUploaderProps, FileUploaderRef>(\n React.memo(_FileUploader),\n);\nFileUploader.displayName = 'FileUploader';\n"]}
1
+ {"version":3,"sources":["FileUploader.tsx"],"names":["React","useCallback","useContext","useEffect","useImperativeHandle","useRef","useState","getAttachedFile","cx","useMemoObject","FileUploaderControlContext","useControlLocale","useUpload","useDrop","ThemeContext","UploadIcon","withFileUploaderControlProvider","keyListener","FileUploaderFile","FileUploaderFileList","isBrowser","CommonWrapper","FileUploaderFileValidationResult","useFileUploaderSize","isTheme2022","UploadIcon2022","globalClasses","jsStyles","stopPropagation","e","FileUploaderDataTids","root","content","link","input","defaultRenderFile","file","fileNode","_FileUploader","forwardRef","props","ref","theme","_isTheme2022","disabled","error","warning","multiple","width","fileUploaderWidth","hideFiles","onBlur","onFocus","onChange","request","validateBeforeUpload","onRequestSuccess","onRequestError","size","renderFile","inputProps","files","setFiles","removeFile","reset","setFileValidationResult","isMinLengthReached","locale","inputRef","fileDivRef","isAsync","isSingleMode","isLinkVisible","setIsLinkVisible","upload","tryValidateAndUpload","forEach","validationMessage","id","sizeClassName","small","sizeSmall","medium","sizeMedium","large","sizeLarge","sizeIconClass","iconSmall","iconMedium","iconLarge","contentInnerClass","contentInnerSmall","contentInnerMedium","contentInnerLarge","handleChange","newFiles","filesArray","Array","from","attachedFiles","map","length","handleDrop","event","dataTransfer","clearData","onDrop","isDraggable","labelRef","isWindowDraggable","windowRef","current","window","document","focus","isTabPressed","blur","getRootNode","rootNodeRef","focusedByTab","setFocusedByTab","handleInputChange","target","handleFocus","requestAnimationFrame","handleBlur","hovered","setHovered","uploadButtonClassNames","uploadButton","uploadButtonFocus","dragOver","canDrop","uploadButtonWrapperClassNames","windowDragOver","windowDragOver2022","uploadButtonIconClassNames","icon","iconDisabled","hasOneFile","hasOneFileForSingle","contentClassNames","contentWithFiles","linkClassNames","linkHovered","linkDisabled","iconSizes","parseInt","btnIconSizeSmall","btnIconSizeMedium","btnIconSizeLarge","choosedFile","chooseFile","String","fromCharCode","afterLinkText","afterLinkText_HasFiles","singleFile","orDragHere","fileInput","FileUploader","memo","displayName"],"mappings":"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","sourcesContent":["import React, { useCallback, useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\n\nimport { FileUploaderAttachedFile, getAttachedFile } from '../../internal/FileUploaderControl/fileUtils';\nimport { cx } from '../../lib/theming/Emotion';\nimport { InstanceWithRootNode } from '../../lib/rootNode';\nimport { useMemoObject } from '../../hooks/useMemoObject';\nimport { FileUploaderControlContext } from '../../internal/FileUploaderControl/FileUploaderControlContext';\nimport { useControlLocale } from '../../internal/FileUploaderControl/hooks/useControlLocale';\nimport { useUpload } from '../../internal/FileUploaderControl/hooks/useUpload';\nimport { useDrop } from '../../hooks/useDrop';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { UploadIcon } from '../../internal/icons/16px';\nimport { FileUploaderControlProviderProps } from '../../internal/FileUploaderControl/FileUploaderControlProvider';\nimport { withFileUploaderControlProvider } from '../../internal/FileUploaderControl/withFileUploaderControlProvider';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { FileUploaderFile } from '../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile';\nimport { FileUploaderFileList } from '../../internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList';\nimport { isBrowser } from '../../lib/client';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { FileUploaderFileValidationResult } from '../../internal/FileUploaderControl/FileUploaderFileValidationResult';\nimport { useFileUploaderSize } from '../../internal/FileUploaderControl/hooks/useFileUploaderSize';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { UploadIcon as UploadIcon2022 } from './UploadIcon';\nimport { globalClasses, jsStyles } from './FileUploader.styles';\n\nconst stopPropagation: React.ReactEventHandler = (e) => e.stopPropagation();\n\nexport type FileUploaderSize = 'small' | 'medium' | 'large';\n\ntype FileUploaderOverriddenProps = 'size';\n\ninterface _FileUploaderProps\n extends CommonProps,\n Omit<React.InputHTMLAttributes<HTMLInputElement>, FileUploaderOverriddenProps> {\n /** Состояние ошибки всего контрола */\n error?: boolean;\n /** Состояние предупреждения всего контрола */\n warning?: boolean;\n /** Свойство ширины. */\n width?: React.CSSProperties['width'];\n /**\n * Задаёт размер контрола.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: FileUploaderSize;\n /** Свойство, скрывающее отображение файлов. */\n hideFiles?: boolean;\n\n /** Функция, через которую отправляем файлы. Используется для отслеживания статуса загрузки файла. */\n request?: (file: FileUploaderAttachedFile) => Promise<void>;\n /** Срабатывает при удачной попытке отправки через request */\n onRequestSuccess?: (fileId: string) => void;\n /** Срабатывает при неудачной попытке отправки через request */\n onRequestError?: (fileId: string) => void;\n\n /**\n * Функция валидации каждого файла.\n * Срабатывает после выбора файлов и перед попыткой отправить в request.\n * Чтобы вывести валидацию ошибки, промис должен вернуть строку.\n * */\n validateBeforeUpload?: (file: FileUploaderAttachedFile) => Promise<Nullable<string>>;\n\n /**\n * Функция, позволяющая кастомизировать файлы.\n * Через нее можно вешать кастомные валидации на каждый файл.\n * */\n renderFile?: (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => React.ReactNode;\n}\n\nexport interface FileUploaderRef extends InstanceWithRootNode {\n focus: () => void;\n blur: () => void;\n /** Сбрасывает выбранные файлы */\n reset: () => void;\n}\n\nexport const FileUploaderDataTids = {\n root: 'FileUploader__root',\n content: 'FileUploader__content',\n link: 'FileUploader__link',\n input: 'FileUploader__input',\n} as const;\n\nconst defaultRenderFile = (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => fileNode;\n\nconst _FileUploader = React.forwardRef<FileUploaderRef, _FileUploaderProps>((props: _FileUploaderProps, ref) => {\n const theme = useContext(ThemeContext);\n const _isTheme2022 = isTheme2022(theme);\n\n const {\n disabled,\n error,\n warning,\n multiple = false,\n width = theme.fileUploaderWidth,\n hideFiles = false,\n onBlur,\n onFocus,\n onChange,\n request,\n validateBeforeUpload,\n onRequestSuccess,\n onRequestError,\n size = 'small',\n renderFile = defaultRenderFile,\n ...inputProps\n } = props;\n\n const { files, setFiles, removeFile, reset, setFileValidationResult, isMinLengthReached } =\n useContext(FileUploaderControlContext);\n\n const locale = useControlLocale();\n\n const inputRef = useRef<HTMLInputElement>(null);\n const fileDivRef = useRef<HTMLDivElement>(null);\n\n const isAsync = !!request;\n const isSingleMode = !multiple;\n\n const [isLinkVisible, setIsLinkVisible] = useState(true);\n const upload = useUpload(request, onRequestSuccess, onRequestError);\n\n const tryValidateAndUpload = useCallback(\n (files: FileUploaderAttachedFile[]) => {\n files.forEach(async (file) => {\n const validationMessage = validateBeforeUpload && (await validateBeforeUpload(file));\n\n if (!validationMessage) {\n isAsync && upload(file);\n } else {\n setFileValidationResult(file.id, FileUploaderFileValidationResult.error(validationMessage));\n }\n });\n },\n [validateBeforeUpload, isAsync, upload, setFileValidationResult],\n );\n\n const sizeClassName = useFileUploaderSize(size, {\n small: jsStyles.sizeSmall(theme),\n medium: jsStyles.sizeMedium(theme),\n large: jsStyles.sizeLarge(theme),\n });\n\n const sizeIconClass = useFileUploaderSize(size, {\n small: jsStyles.iconSmall(theme),\n medium: jsStyles.iconMedium(theme),\n large: jsStyles.iconLarge(theme),\n });\n\n const contentInnerClass = useFileUploaderSize(size, {\n small: jsStyles.contentInnerSmall(theme),\n medium: jsStyles.contentInnerMedium(theme),\n large: jsStyles.contentInnerLarge(theme),\n });\n\n /** common part **/\n const handleChange = useCallback(\n (newFiles: FileList | null) => {\n if (!newFiles) {\n return;\n }\n\n let filesArray = Array.from(newFiles);\n\n if (isSingleMode) {\n filesArray = [filesArray[0]];\n }\n\n const attachedFiles = filesArray.map(getAttachedFile);\n\n if (isSingleMode && attachedFiles.length && files.length) {\n removeFile(files[0].id);\n }\n\n if (attachedFiles.length) {\n setFiles(attachedFiles);\n tryValidateAndUpload(attachedFiles);\n }\n },\n [tryValidateAndUpload, setFiles, isSingleMode, files, removeFile],\n );\n\n const handleDrop = useCallback(\n (event) => {\n if (disabled) {\n return;\n }\n\n const { dataTransfer } = event;\n const { files } = dataTransfer;\n\n if (files?.length > 0) {\n handleChange(files);\n dataTransfer.clearData();\n }\n },\n [handleChange, disabled],\n );\n\n const { isDraggable, ref: labelRef } = useDrop<HTMLLabelElement>({ onDrop: handleDrop });\n const { isDraggable: isWindowDraggable, ref: windowRef } = useDrop<Document>();\n\n if (isBrowser) {\n windowRef.current = window.document;\n }\n\n const focus = useCallback(() => {\n keyListener.isTabPressed = true;\n inputRef.current?.focus();\n }, []);\n\n const blur = useCallback(() => {\n inputRef.current?.blur();\n }, []);\n\n useImperativeHandle(ref, () => ({ focus, blur, reset, getRootNode: () => rootNodeRef.current }), [\n ref,\n blur,\n focus,\n reset,\n ]);\n\n const [focusedByTab, setFocusedByTab] = useState(false);\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n handleChange(event.target.files);\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n if (!disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n setFocusedByTab(true);\n }\n });\n onFocus?.(e);\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedByTab(false);\n if (!disabled) {\n onBlur?.(e);\n }\n };\n\n const [hovered, setHovered] = useState(false);\n\n const uploadButtonClassNames = cx(\n jsStyles.uploadButton(theme),\n sizeClassName,\n focusedByTab && jsStyles.uploadButtonFocus(theme),\n disabled && jsStyles.disabled(theme),\n !disabled && hovered && jsStyles.hovered(theme),\n !!warning && jsStyles.warning(theme),\n !!error && jsStyles.error(theme),\n isDraggable && !disabled && jsStyles.dragOver(theme),\n );\n\n const canDrop = isWindowDraggable && !disabled;\n const uploadButtonWrapperClassNames = cx(\n !_isTheme2022 && canDrop && jsStyles.windowDragOver(theme),\n _isTheme2022 && canDrop && jsStyles.windowDragOver2022(theme),\n );\n\n const uploadButtonIconClassNames = cx(jsStyles.icon(theme), sizeIconClass, disabled && jsStyles.iconDisabled(theme));\n\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const contentClassNames = cx(jsStyles.content(), hasOneFileForSingle && jsStyles.contentWithFiles());\n\n const linkClassNames = cx(\n jsStyles.link(theme),\n !disabled && hovered && jsStyles.linkHovered(theme),\n disabled && jsStyles.linkDisabled(theme),\n );\n\n useEffect(() => {\n setIsLinkVisible(hasOneFileForSingle ? !isMinLengthReached : true);\n }, [isMinLengthReached, hasOneFileForSingle]);\n\n const rootNodeRef = useRef(null);\n\n const iconSizes: Record<FileUploaderSize, number> = {\n small: parseInt(theme.btnIconSizeSmall),\n medium: parseInt(theme.btnIconSizeMedium),\n large: parseInt(theme.btnIconSizeLarge),\n };\n const icon = _isTheme2022 ? <UploadIcon2022 size={iconSizes[size]} /> : <UploadIcon />;\n\n return (\n <CommonWrapper {...props}>\n <div\n data-tid={FileUploaderDataTids.root}\n className={jsStyles.root(theme)}\n style={useMemoObject({ width })}\n ref={rootNodeRef}\n >\n {!hideFiles && !isSingleMode && !!files.length && <FileUploaderFileList renderFile={renderFile} size={size} />}\n <div className={uploadButtonWrapperClassNames}>\n <label\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n ref={labelRef}\n className={uploadButtonClassNames}\n >\n <div\n data-tid={FileUploaderDataTids.content}\n className={cx(contentClassNames, { [contentInnerClass]: !files.length || !isSingleMode })}\n >\n {isLinkVisible && (\n <span data-tid={FileUploaderDataTids.link} className={linkClassNames}>\n {hasOneFileForSingle ? locale.choosedFile : locale.chooseFile}\n </span>\n )}\n {isLinkVisible && String.fromCharCode(0xa0) /* &nbsp; */}\n <div\n className={cx(\n globalClasses.afterLinkText,\n hasOneFileForSingle ? jsStyles.afterLinkText_HasFiles(theme) : jsStyles.afterLinkText(theme),\n )}\n >\n {hasOneFileForSingle ? (\n <div ref={fileDivRef} className={jsStyles.singleFile()}>\n {renderFile(files[0], <FileUploaderFile file={files[0]} size={size} />)}\n </div>\n ) : (\n <>\n {locale.orDragHere}&nbsp;\n <div className={uploadButtonIconClassNames}>{icon}</div>\n </>\n )}\n </div>\n </div>\n <input\n {...inputProps}\n data-tid={FileUploaderDataTids.input}\n ref={inputRef}\n tabIndex={disabled ? -1 : 0}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n className={jsStyles.fileInput()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n // для того, чтобы срабатывало событие change при выборе одного и того же файла подряд\n value={''}\n />\n </label>\n </div>\n </div>\n </CommonWrapper>\n );\n});\n\nexport interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {}\n\nexport const FileUploader = withFileUploaderControlProvider<FileUploaderProps, FileUploaderRef>(\n React.memo(_FileUploader),\n);\nFileUploader.displayName = 'FileUploader';\n"]}
@@ -49,6 +49,7 @@ export declare const FileUploaderDataTids: {
49
49
  readonly root: "FileUploader__root";
50
50
  readonly content: "FileUploader__content";
51
51
  readonly link: "FileUploader__link";
52
+ readonly input: "FileUploader__input";
52
53
  };
53
54
  export interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {
54
55
  }